{"version":3,"file":"common.ce952a4cdce8527c.js","mappings":"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","names":["AcceptTokenComponent","component_abstract","constructor","cdr","router","oidcSecurityService","super","this","ngOnInit","checkAuth","pipe","take","subscribe","getAuthenticationResult","result","navigateRoute","state","replace","navigateByUrl","paramsStartAt","indexOf","navigate","url","substring","params","split","reduce","param","paramPair","queryParams","ngOnDestroy","core","selectors","__decorate","ngneat_until_destroy","playerFactory","lottie_default","routes","path","component","data","route_data","dashboard_view_type","AcceptTokenModule","common","progress_spinner","ngx_lottie","player","animation_module","rocReportTransientFeatureKey","setRocFilter","_ngrx_store__WEBPACK_IMPORTED_MODULE_0__","setInitialDateDataSuccess","setInitialDateData","reducer","filter","beginDate","endDate","initialState","action","selectRocReportState","selectRocFilter","selectRocFilterSet","RocService","restApiService","fetchReport","portfolioId","getData","moment","format","turnovers_service","updateMarketRent","turnoverId","marketRentOverride","update","updateConstructionCost","cost","updateNewRent","newRent","updateOldRent","oldRent","factory","RocEffects","actions$","rocService","store","snackbarService","timezoneService","ngrx_effects","roc_actions","switchMap","select","roc_report_store","f","first","map","taskList","report","catchError","error","snackbar_message_enum","of","value","withLatestFrom","_action","corrected","addTimezoneForEntity","_tz","environment","environment_config","Date","getCurrentDate","add","startOf","toDate","endOf","RocReportStoreModule","ngrx_store","roc_reducer","metaReducers","loadRocReport","loadRocReportSuccess","loadRocReportError","setRocSorting","setDisplayedRocSections","updateMarketRentSuccess","updateConstructionCostSuccess","updateNewRentSuccess","updateOldRentSuccess","rocFeatureKey","_shared_reducers_hydration_meta_reducer__WEBPACK_IMPORTED_MODULE_4__","dataCorrected","reportLoading","propertySorting","displayedSections","src_environments_environment__WEBPACK_IMPORTED_MODULE_2__","src_environments_environment_config__WEBPACK_IMPORTED_MODULE_3__","moment__WEBPACK_IMPORTED_MODULE_0__","metaRocReducers","_ngrx_store__WEBPACK_IMPORTED_MODULE_5__","_main_application_dashboard_reports_roc_report_store_roc_actions__WEBPACK_IMPORTED_MODULE_1__","propertyId","sorting","_angular_core__WEBPACK_IMPORTED_MODULE_2__","ManagementCardComponent","_app_components_abstract_component_abstract__WEBPACK_IMPORTED_MODULE_0__","openSubmenu","sectionItem","urlPath","queryParamsHandling","then","ctx","ManagementCardModule","_angular_common__WEBPACK_IMPORTED_MODULE_2__","_ui_components_components_icon_icon_module__WEBPACK_IMPORTED_MODULE_0__","selectSystemConfigurationState","_ngrx_store__WEBPACK_IMPORTED_MODULE_1__","_system_configuration_reducer__WEBPACK_IMPORTED_MODULE_0__","selectSystemConfig","systemConfigurationState","systemConfig","selectSystemConfigUpdateInProgress","updateSystemInProgress","selectSystemConfigLoading","systemConfigLoading","selectChatHooksChannels","chatHooksChannels","selectTimerReportLoading","timerReportLoading","selectTimerReport","timerReport","selectExpandedSections","expandedSections","loadResponsibleParties","loadResponsiblePartiesSuccess","loadResponsiblePartiesFailure","setAllStepAssigneeList","createResponsibleParties","createResponsiblePartiesSuccess","createResponsiblePartiesFailure","updateResponsibleParties","updateResponsiblePartiesSuccess","updateResponsiblePartiesFailure","resetAssigneesUpdateStatus","resetAssigneesUpdateModel","setEditedCell","resetEditedCell","setUserRadioList","resetAllUserList","updatePropertyUser","resetPropertyUser","reponsiblePartiesFeatureKey","_ngrx_store__WEBPACK_IMPORTED_MODULE_2__","responsiblePartiesLoading","responsibleParties","createResponsiblePartiesOngoing","createResponsiblePartiesStatus","updateResponsiblePartiesOngoing","updateResponsiblePartiesStatus","updatedResponsibleParties","editedCellUUId","allUsers","propertyUsers","allStepAssigneeList","_actions_turnover_configuration_step_assignees_actions__WEBPACK_IMPORTED_MODULE_1__","_shared_enums_update_status__WEBPACK_IMPORTED_MODULE_0__","uuid","TurnoverConfigurationStepAssigneesCellModule","pipes_module","edited_cell_module","user_select_dropdown_module","fesm2020_forms","tooltip","fesm2020_checkbox","TurnoverConfigurationStepAssigneesEffects","responsiblePartiesService","turnover_configuration_step_assignees_actions","getResponsiblePartiesByPortfolioId","mergeMap","TurnoverConfigurationStepAssigneesModule","portfolio_store_module","turnover_configuration_step_assignees_reducer","dashboard_container_module","dashboard_user_header_module","search_input_module","table","sort","table_action_buttons_module","table_empty_content_module","icon_module","fesm2020_button","skeleton_loader_module","ui_components_module","TurnoverConfigurationPipesModule","_angular_common__WEBPACK_IMPORTED_MODULE_1__","PortfolioHeaderComponent","_angular_core__WEBPACK_IMPORTED_MODULE_0__","PortfolioHeaderModule","UnitDetailsDescriptionSectionModule","input_area_module","radio_button_dropdown_module","input_module","UnitDetailsInspectionsModule","icon","divider","menu","UnitDetailsPicturesSectionModule","attachment_module","input_file_module","picture_module","UnitDetailsPropertySectionModule","UnitDetailsModule","portfolio_header_module","empty_data_module","allowedProps","creatorOptions","showLogicTab","isAutoSave","showJSONEditorTab","questionTypes","allowChangeThemeInPreview","showSimulatorInTestSurveyTab","isStartFromGuid","name","test","survey_core__WEBPACK_IMPORTED_MODULE_0__","category","type","visibleIndex","readOnly","title","onCreated","question","isRequired","onAfterRender","htmlElement","container","querySelector","style","display","gap","questionJSON","choices","text","CommonSurveyCreatorComponent","id","iconName","showTitle","enabled","surveyJson","surveyCreatorModel","getSurveyJSON","template","JSON","stringify","saveActionLogic","discardActionLogic","creator","survey_creator_core__WEBPACK_IMPORTED_MODULE_1__","toolbarItems","push","saveAction","discardAction","onShowingProperty","sender","options","canShow","includes","property","onQuestionAdded","guid","uuid__WEBPACK_IMPORTED_MODULE_2__","onPropertyChanged","propertySender","propertyOptions","newValue","onItemValuePropertyChanged","obj","propertyName","customQuestion","questions","survey","getAllQuestions","q","length","panel","page","addNewPanel","visibleIf","requiredIf","addNewQuestion","parent","logoPosition","pages","loadSurveyJson","detectChanges","_angular_core__WEBPACK_IMPORTED_MODULE_3__","selectSurveysState","_reducers_surveys_reducer__WEBPACK_IMPORTED_MODULE_0__","selectSurveyTemplates","surveyTemplates","TurnoverKanbanService","getExpandedSections","userId","parse","localStorage","getItem","getFieldName","setExpandedSection","sectionsId","setItem","_shared_enums_local_storage_data_enum__WEBPACK_IMPORTED_MODULE_0__","_angular_core__WEBPACK_IMPORTED_MODULE_6__","TurnoverListWidgetComponent","_app_components_abstract_component_abstract__WEBPACK_IMPORTED_MODULE_1__","_shared_enums_color_palette_enum__WEBPACK_IMPORTED_MODULE_2__","showTextTooltip","showTooltip","showDataLabel","cutoutLevel","widgetItem","_widgetItem","lodash__WEBPACK_IMPORTED_MODULE_0__","total","chartDataList","backgroundColor","chartColor","label","header","oppositeLabel","_oppositeValue","Math","round","abbreviateNumber","num","fixed","measureType","b","toPrecision","k","floor","min","slice","c","toFixed","pow","abs","TurnoverListWidgetModule","_angular_common__WEBPACK_IMPORTED_MODULE_3__","_angular_material_progress_spinner__WEBPACK_IMPORTED_MODULE_4__","_ui_components_components_chart_chart_module__WEBPACK_IMPORTED_MODULE_1__","_shared_pipes_pipes_module__WEBPACK_IMPORTED_MODULE_0__","EditedCellModule","TableActionButtonsComponent","edit","$event","stopPropagation","editEvent","emit","save","saveEvent","delete","deleteEvent","TableActionButtonsModule","_angular_material_button__WEBPACK_IMPORTED_MODULE_3__","_app_modules_ui_components_components_icon_icon_module__WEBPACK_IMPORTED_MODULE_0__","_angular_material_tooltip__WEBPACK_IMPORTED_MODULE_4__","BidManagementService","service","getTurnInfo","jwtToken","get","comment","post","accept","approve","reject","reason","deny","_angular_core__WEBPACK_IMPORTED_MODULE_1__","BoardBuilderService","markAsDone","reschedule","date","dateWithoutTimezone","_main_application_management_components_system_configuration_components_timezone_helper__WEBPACK_IMPORTED_MODULE_1__","newDueDate","getTurnStepInfo","rxjs__WEBPACK_IMPORTED_MODULE_2__","turnInfo","dateMoveIn","turnStepScheduleInfo","dueDate","postComment","CommentWidgetState","CommonCommentWidgetComponent","route","snapshot","jwt","isCommentValid","getMainInfo","next","info","setPredefineInfo","InProgress","setTimeout","commentInput","nativeElement","focus","err","errorCode","Fail","scrollToButton","document","scrollIntoView","behavior","block","inProgress","sendComment","Success","_angular_common__WEBPACK_IMPORTED_MODULE_4__","_angular_forms__WEBPACK_IMPORTED_MODULE_5__","_widgets_translate_code_pipe__WEBPACK_IMPORTED_MODULE_0__","styles","_ngneat_until_destroy__WEBPACK_IMPORTED_MODULE_7__","JustDoneWidgetState","JustDoneWidgetComponent","doneText","getDoneText","doWork","Message","_ngneat_until_destroy__WEBPACK_IMPORTED_MODULE_6__","OpenApiService","http","composeRoute","src_environments_environment__WEBPACK_IMPORTED_MODULE_0__","customPatchData","body","patch","generateHeaders","put","upload","file","formData","FormData","append","environmentUrl","headers","_angular_common_http__WEBPACK_IMPORTED_MODULE_1__","localizationDictionary","INVALID_JWT_CANT_VERIFY_SIGNATURE","INVALID_JWT_ASSIGNEE_CHANGED","INVALID_JWT_LINK_IS_EXPIRED","INVALID_JWT_TURN_CANCELLED","INVALID_JWT_TURN_COMPLETED","INVALID_JWT_BOARD_COMPLETED","INVALID_JWT_STEP_WAS_NOT_FOUND","INVALID_JWT_CANT_VERIFY_ISSUER","TranslateCodePipe","transform","code","values","localizedText","forEach","v","i","RegExp","pure"],"sourceRoot":"webpack:///","sources":["./src/app/modules/accept-token/accept-token.component.ts","./src/app/modules/accept-token/accept-token.component.html","./src/app/modules/accept-token/accept-token.module.ts","./src/app/modules/main-application/dashboard-reports/roc-report/store/index.ts","./src/app/services/roc.service.ts","./src/app/modules/main-application/dashboard-reports/roc-report/store/roc.effects.ts","./src/app/modules/main-application/dashboard-reports/roc-report/store/roc-store.module.ts","./src/app/modules/main-application/dashboard-reports/roc-report/store/roc.actions.ts","./src/app/modules/main-application/dashboard-reports/roc-report/store/roc.reducer.ts","./src/app/modules/main-application/management/components/management-card/management-card.component.html","./src/app/modules/main-application/management/components/management-card/management-card.component.ts","./src/app/modules/main-application/management/components/management-card/management-card.module.ts","./src/app/modules/main-application/management/components/system-configuration/store/system-configuration.selectors.ts","./src/app/modules/main-application/management/components/turnover-configuration/components/turnover-configuration-step-assignees/actions/turnover-configuration-step-assignees.actions.ts","./src/app/modules/main-application/management/components/turnover-configuration/components/turnover-configuration-step-assignees/reducers/turnover-configuration-step-assignees.reducer.ts","./src/app/modules/main-application/management/components/turnover-configuration/components/turnover-configuration-step-assignees-cell/turnover-configuration-step-assignees-cell.module.ts","./src/app/modules/main-application/management/components/turnover-configuration/components/turnover-configuration-step-assignees/effects/turnover-configuration-step-assignees.effects.ts","./src/app/modules/main-application/management/components/turnover-configuration/components/turnover-configuration-step-assignees/turnover-configuration-step-assignees.module.ts","./src/app/modules/main-application/management/components/turnover-configuration/pipes/turnover-configuration-pipes.module.ts","./src/app/modules/main-application/portfolio/components/portfolio-header/portfolio-header.component.ts","./src/app/modules/main-application/portfolio/components/portfolio-header/portfolio-header.component.html","./src/app/modules/main-application/portfolio/components/portfolio-header/portfolio-header.module.ts","./src/app/modules/main-application/portfolio/components/unit-details/components/unit-details-description-section/unit-details-description-section.module.ts","./src/app/modules/main-application/portfolio/components/unit-details/components/unit-details-inspections/unit-details-inspections.module.ts","./src/app/modules/main-application/portfolio/components/unit-details/components/unit-details-pictures-section/unit-details-pictures-section.module.ts","./src/app/modules/main-application/portfolio/components/unit-details/components/unit-details-property-section/unit-details-property-section.module.ts","./src/app/modules/main-application/portfolio/components/unit-details/unit-details.module.ts","./src/app/modules/main-application/survey-creator/components/survey-editor/common-survey-creator.component.ts","./src/app/modules/main-application/survey-creator/selectors/surveys.selectors.ts","./src/app/modules/main-application/turnovers/components/turnover-kanban/sevices/turnover-kanban.service.ts","./src/app/modules/main-application/turnovers/components/turnover-list/turnover-list-widget/turnover-list-widget.component.html","./src/app/modules/main-application/turnovers/components/turnover-list/turnover-list-widget/turnover-list-widget.component.ts","./src/app/modules/main-application/turnovers/components/turnover-list/turnover-list-widget/turnover-list-widget.module.ts","./src/app/modules/ui-components/components/edited-cell/edited-cell.module.ts","./src/app/modules/ui-components/components/table-action-buttons/table-action-buttons.component.html","./src/app/modules/ui-components/components/table-action-buttons/table-action-buttons.component.ts","./src/app/modules/ui-components/components/table-action-buttons/table-action-buttons.module.ts","./src/app/modules/widgets/bid-management/bid-management.service.ts","./src/app/modules/widgets/board-builder/board-builder.service.ts","./src/app/modules/widgets/common-abstract-widget/common-comment-widget/common-comment-widget.component.html","./src/app/modules/widgets/common-abstract-widget/common-comment-widget/common-comment-widget.component.ts","./src/app/modules/widgets/common-abstract-widget/just-done-widget/just-done-widget.component.ts","./src/app/modules/widgets/common-abstract-widget/just-done-widget/just-done-widget.component.html","./src/app/modules/widgets/open-api.service.ts","./src/app/modules/widgets/translate-code.pipe.ts"],"sourcesContent":["import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { UntilDestroy } from '@ngneat/until-destroy';\nimport { OidcSecurityService } from 'angular-auth-oidc-client';\nimport { take } from 'rxjs/operators';\n\nimport { ComponentAbstract } from '@app/components/abstract/component.abstract';\n\n@UntilDestroy()\n@Component({\n selector: 'app-accept-token',\n templateUrl: './accept-token.component.html',\n styleUrls: ['./accept-token.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AcceptTokenComponent extends ComponentAbstract implements OnInit, OnDestroy {\n constructor(\n protected cdr: ChangeDetectorRef,\n private router: Router,\n private oidcSecurityService: OidcSecurityService\n ) {\n super(cdr);\n }\n\n ngOnInit() {\n this.oidcSecurityService\n .checkAuth()\n .pipe(take(1))\n .subscribe(() => {\n this.oidcSecurityService.getAuthenticationResult().subscribe(result => {\n //as oidcSecurityService can not work with '&' it was replaced by '??' so we should do reverse replacement\n const navigateRoute: string = result?.state?.replace(/\\?\\?/g, '&');\n if (!navigateRoute) {\n this.router.navigateByUrl('/login');\n return;\n }\n\n const paramsStartAt = navigateRoute.indexOf('?');\n if (paramsStartAt === -1) {\n this.router.navigate([navigateRoute]);\n return;\n }\n\n const url = navigateRoute.substring(0, paramsStartAt);\n const params = navigateRoute\n .substring(paramsStartAt + 1)\n .split('&')\n .reduce((params: { [paramKey: string]: string }, param) => {\n const paramPair = param.split('=');\n params[paramPair[0]] = paramPair[1];\n return params;\n }, {});\n this.router.navigate([url], { queryParams: params });\n });\n });\n }\n\n ngOnDestroy(): void {}\n}\n","\n \n\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { RouterModule, Routes } from '@angular/router';\nimport player from 'lottie-web';\nimport { LottieModule } from 'ngx-lottie';\n\nimport { AcceptTokenComponent } from '@app/modules/accept-token/accept-token.component';\nimport { DashboardViewType } from '@shared/enums/dashboard-view-type';\nimport { RouteData } from '@shared/enums/route-data';\nimport { AnimationModule } from '@ui-components/components/animation/animation.module';\n\nexport function playerFactory() {\n return player;\n}\nconst routes: Routes = [\n {\n path: '',\n component: AcceptTokenComponent,\n data: { [RouteData.DASHBOARD_VIEW_TYPE]: DashboardViewType.NONE },\n },\n];\n\n@NgModule({\n declarations: [AcceptTokenComponent],\n imports: [\n CommonModule,\n MatProgressSpinnerModule,\n LottieModule.forRoot({ player: playerFactory }),\n AnimationModule,\n RouterModule.forChild(routes),\n ],\n exports: [AcceptTokenComponent],\n})\nexport class AcceptTokenModule {}\n","import { createAction, createFeatureSelector, createReducer, createSelector, on, props } from '@ngrx/store';\n\nimport { RocFilter } from '../interfaces/roc-list-item';\n\nexport const rocReportTransientFeatureKey = 'roc-report-transient';\n\nexport interface RocReportStateTransient {\n filter: RocFilter;\n}\n\nexport const initialState: RocReportStateTransient = {\n filter: {\n //Real initial state is setting in '\\roc.effects.ts' with next affect `setInitialDateData`\n beginDate: null,\n endDate: null,\n },\n};\n\nexport const setRocFilter = createAction('[Roc] setRocFilter', props<{ filter: RocFilter }>());\nexport const setInitialDateDataSuccess = createAction(\n '[Roc] setInitialDateDataSuccess',\n props<{ filter: RocFilter }>()\n);\nexport const setInitialDateData = createAction('[Roc] set initial date state success');\n\nexport const reducer = createReducer(\n initialState,\n on(setRocFilter, (state, action) => ({\n ...state,\n ...{ filter: action.filter },\n })),\n on(setInitialDateDataSuccess, (state, action) => ({\n ...state,\n filter: action.filter,\n }))\n);\n\nexport const selectRocReportState = createFeatureSelector(rocReportTransientFeatureKey);\nexport const selectRocFilter = createSelector(selectRocReportState, state => state.filter);\nexport const selectRocFilterSet = createSelector(\n selectRocReportState,\n state => !!state.filter.beginDate && !!state.filter.endDate\n);\n","import { Injectable } from '@angular/core';\nimport * as moment from 'moment';\nimport { Observable } from 'rxjs';\n\nimport { RestapiService } from '@app/services/restapi.service';\nimport { RocFilter } from '@main-application/dashboard-reports/roc-report/interfaces/roc-list-item';\nimport { RestTurnoverTaskModel } from '@shared/interfaces/turnover.interface';\n\nimport { TurnoversService } from './turnovers.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RocService {\n constructor(private restApiService: RestapiService) {}\n\n fetchReport(portfolioId: number, filter: RocFilter): Observable {\n return this.restApiService.getData(\n `turnovers/portfolio/${portfolioId}/underconstruction?begin=${moment(filter.beginDate).format(\n 'YYYY-MM-DD'\n )}&end=${moment(filter.endDate).format('YYYY-MM-DD')}`,\n TurnoversService.fixTimezoneForTurnoverTaskModel\n );\n }\n\n updateMarketRent(turnoverId: number, marketRentOverride: number) {\n return this.restApiService.update(`turnovers/${turnoverId}/UpdateMarketRentOverride`, marketRentOverride);\n }\n\n updateConstructionCost(turnoverId: number, cost: number) {\n return this.restApiService.update(`turnovers/${turnoverId}/UpdateConstructionCost`, cost);\n }\n\n updateNewRent(turnoverId: number, newRent: number) {\n return this.restApiService.update(`turnovers/${turnoverId}/UpdateNewRentOverride`, newRent);\n }\n\n updateOldRent(turnoverId: number, oldRent: number) {\n return this.restApiService.update(`turnovers/${turnoverId}/UpdateOldRentOverride`, oldRent);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport * as moment from 'moment';\nimport { of } from 'rxjs';\nimport { catchError, filter, first, map, switchMap, withLatestFrom } from 'rxjs/operators';\n\nimport { RocService } from '@app/services/roc.service';\nimport {\n loadRocReport,\n loadRocReportError,\n loadRocReportSuccess,\n updateConstructionCost,\n updateConstructionCostSuccess,\n updateMarketRent,\n updateMarketRentSuccess,\n updateNewRent,\n updateNewRentSuccess,\n updateOldRent,\n updateOldRentSuccess,\n} from '@main-application/dashboard-reports/roc-report/store/roc.actions';\nimport { TimezoneService } from '@main-application/management/components/system-configuration/components/date-time-configuration/timezone.service';\nimport { SnackbarErrorMessage } from '@ui-components/components/customized-snackbar/snackbar-message.enum';\nimport { SnackbarService } from '@ui-components/components/customized-snackbar/snackbar.service';\nimport { environment } from 'src/environments/environment';\nimport { EnvironmentType } from 'src/environments/environment-config';\n\nimport { selectRocFilter, selectRocFilterSet, setInitialDateData, setInitialDateDataSuccess } from '.';\n\n@Injectable()\nexport class RocEffects {\n loadRocReport$ = createEffect(() =>\n this.actions$.pipe(\n ofType(loadRocReport),\n switchMap(action =>\n this.store.select(selectRocFilter).pipe(\n filter(f => !!f.beginDate && !!f.endDate),\n first(),\n map(filter => ({\n action,\n filter,\n }))\n )\n ),\n switchMap(({ action, filter }) =>\n this.rocService.fetchReport(action.portfolioId, filter).pipe(\n map(taskList => loadRocReportSuccess({ report: taskList || [] })),\n catchError(() => {\n this.snackbarService.error(SnackbarErrorMessage.T01RetrievingTasks);\n return of(loadRocReportError());\n })\n )\n )\n )\n );\n\n updateMarketRent$ = createEffect(() =>\n this.actions$.pipe(\n ofType(updateMarketRent),\n switchMap(action =>\n this.rocService.updateMarketRent(action.turnoverId, action.value).pipe(\n map(() => updateMarketRentSuccess({ ...action })),\n catchError(() => {\n this.snackbarService.error(SnackbarErrorMessage.T01RetrievingTasks);\n return of(loadRocReport({ portfolioId: action.portfolioId }));\n })\n )\n )\n )\n );\n\n updateConstructionCost$ = createEffect(() =>\n this.actions$.pipe(\n ofType(updateConstructionCost),\n switchMap(action =>\n this.rocService.updateConstructionCost(action.turnoverId, action.value).pipe(\n map(() => updateConstructionCostSuccess({ ...action })),\n catchError(() => {\n this.snackbarService.error(SnackbarErrorMessage.T01RetrievingTasks);\n return of(loadRocReport({ portfolioId: action.portfolioId }));\n })\n )\n )\n )\n );\n\n updateNewRent$ = createEffect(() =>\n this.actions$.pipe(\n ofType(updateNewRent),\n switchMap(action =>\n this.rocService.updateNewRent(action.turnoverId, action.value).pipe(\n map(() => updateNewRentSuccess({ ...action })),\n catchError(() => {\n this.snackbarService.error(SnackbarErrorMessage.T01RetrievingTasks);\n return of(loadRocReport({ portfolioId: action.portfolioId }));\n })\n )\n )\n )\n );\n\n updateOldRent$ = createEffect(() =>\n this.actions$.pipe(\n ofType(updateOldRent),\n switchMap(action =>\n this.rocService.updateOldRent(action.turnoverId, action.value).pipe(\n map(() => updateOldRentSuccess({ ...action })),\n catchError(() => {\n this.snackbarService.error(SnackbarErrorMessage.T01RetrievingTasks);\n return of(loadRocReport({ portfolioId: action.portfolioId }));\n })\n )\n )\n )\n );\n\n setInitialDateData$ = createEffect(() =>\n this.actions$.pipe(\n ofType(setInitialDateData),\n withLatestFrom(this.store.select(selectRocFilterSet)),\n filter(([_action, corrected]) => !corrected),\n switchMap(() =>\n this.store.select(selectRocFilter).pipe(\n first(),\n this.timezoneService.addTimezoneForEntity((filter, _tz) => ({\n ...filter,\n beginDate:\n environment.type === EnvironmentType.Demo\n ? new Date('12/1/2022')\n : moment(this.timezoneService.getCurrentDate()).add(-3, 'month').startOf('day').toDate(),\n endDate: moment(this.timezoneService.getCurrentDate()).endOf('day').toDate(),\n })),\n map(filter => setInitialDateDataSuccess({ filter }))\n )\n )\n )\n );\n\n constructor(\n private actions$: Actions,\n private rocService: RocService,\n private store: Store<{}>,\n private snackbarService: SnackbarService,\n private timezoneService: TimezoneService\n ) {}\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\n\nimport * as fromRocReportTransient from '@main-application/dashboard-reports/roc-report/store/index';\nimport { RocEffects } from '@main-application/dashboard-reports/roc-report/store/roc.effects';\nimport * as fromRocReportReducer from '@main-application/dashboard-reports/roc-report/store/roc.reducer';\nimport { metaRocReducers } from '@main-application/dashboard-reports/roc-report/store/roc.reducer';\n\n@NgModule({\n imports: [\n CommonModule,\n EffectsModule.forFeature([RocEffects]),\n StoreModule.forFeature(fromRocReportReducer.rocFeatureKey, fromRocReportReducer.reducer, {\n metaReducers: metaRocReducers,\n }),\n StoreModule.forFeature(fromRocReportTransient.rocReportTransientFeatureKey, fromRocReportTransient.reducer),\n ],\n})\nexport class RocReportStoreModule {}\n","import { createAction, props } from '@ngrx/store';\n\nimport { RocSection } from '@main-application/dashboard-reports/roc-report/interfaces/roc-list-item';\nimport { SortItem } from '@shared/interfaces/sort-item';\nimport { RestTurnoverTaskModel } from '@shared/interfaces/turnover.interface';\n\nexport const loadRocReport = createAction('[Roc] Load Roc report', props<{ portfolioId: number }>());\nexport const loadRocReportSuccess = createAction('[Roc] Set Roc report', props<{ report: RestTurnoverTaskModel[] }>());\nexport const loadRocReportError = createAction('[Roc] Error Roc report');\nexport const setRocSorting = createAction('[Roc] set Roc sorting', props<{ propertyId: number; sorting: SortItem }>());\n\nexport const setDisplayedRocSections = createAction(\n '[Roc] setDisplayedRocItems',\n props<{ displayedSections: RocSection[] }>()\n);\n\nexport const updateMarketRent = createAction(\n '[Roc] updateMarketRent',\n props<{ portfolioId: number; propertyId: number; turnoverId: number; value: number }>()\n);\n\nexport const updateMarketRentSuccess = createAction(\n '[Roc] updateMarketRentSuccess',\n props<{ turnoverId: number; value: number }>()\n);\n\nexport const updateConstructionCost = createAction(\n '[Roc] updateConstructionCost',\n props<{ portfolioId: number; propertyId: number; turnoverId: number; value: number }>()\n);\n\nexport const updateConstructionCostSuccess = createAction(\n '[Roc] updateConstructionCostSuccess',\n props<{ turnoverId: number; value: number }>()\n);\n\nexport const updateNewRent = createAction(\n '[Roc] updateNewRent',\n props<{ portfolioId: number; propertyId: number; turnoverId: number; value: number }>()\n);\n\nexport const updateNewRentSuccess = createAction(\n '[Roc] updateNewRentSuccess',\n props<{ turnoverId: number; value: number }>()\n);\n\nexport const updateOldRent = createAction(\n '[Roc] updateOldRent',\n props<{ portfolioId: number; propertyId: number; turnoverId: number; value: number }>()\n);\n\nexport const updateOldRentSuccess = createAction(\n '[Roc] updateOldRentSuccess',\n props<{ turnoverId: number; value: number }>()\n);\n","import { MetaReducer, createReducer, on } from '@ngrx/store';\nimport * as moment from 'moment';\n\nimport { RocFilter, RocSection } from '@main-application/dashboard-reports/roc-report/interfaces/roc-list-item';\nimport {\n loadRocReport,\n loadRocReportError,\n loadRocReportSuccess,\n setDisplayedRocSections,\n setRocSorting,\n} from '@main-application/dashboard-reports/roc-report/store/roc.actions';\nimport { SortItem } from '@shared/interfaces/sort-item';\nimport { RestTurnoverTaskModel } from '@shared/interfaces/turnover.interface';\nimport { hydrationMetaReducer, pathInitialValue } from '@shared/reducers/hydration-meta.reducer';\nimport { environment } from 'src/environments/environment';\nimport { EnvironmentType } from 'src/environments/environment-config';\n\nexport const rocFeatureKey = 'roc-report';\n\nexport interface RocReportState {\n dataCorrected: boolean;\n reportLoading: boolean;\n report: RestTurnoverTaskModel[];\n propertySorting: { [key: number]: SortItem };\n displayedSections: RocSection[];\n filter: RocFilter;\n}\n\nexport const initialState: RocReportState = pathInitialValue(\n {\n dataCorrected: false,\n reportLoading: false,\n report: [],\n propertySorting: {},\n displayedSections: [],\n filter: {\n beginDate:\n environment.type === EnvironmentType.Demo\n ? new Date('12/1/2022')\n : moment().add(-3, 'month').startOf('day').toDate(),\n endDate: moment().endOf('day').toDate(),\n },\n },\n rocFeatureKey\n);\n\nexport const metaRocReducers: Array> = [hydrationMetaReducer(rocFeatureKey)];\n\nexport const reducer = createReducer(\n initialState,\n on(loadRocReport, state => ({\n ...state,\n reportLoading: true,\n })),\n on(loadRocReportSuccess, (state, action) => ({\n ...state,\n ...action,\n reportLoading: false,\n })),\n on(loadRocReportError, state => ({\n ...state,\n report: [],\n reportLoading: false,\n })),\n on(setRocSorting, (state, action) => ({\n ...state,\n ...{ propertySorting: { ...state.propertySorting, ...{ [action.propertyId]: action.sorting } } },\n })),\n on(setDisplayedRocSections, (state, action) => ({\n ...state,\n ...action,\n }))\n);\n","\n \n
{{ sectionItem?.label }}
\n\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ComponentAbstract } from '@app/components/abstract/component.abstract';\nimport { MenuSectionItem } from '@shared/interfaces/menu-config.interface';\n\n@Component({\n selector: 'app-management-card',\n templateUrl: './management-card.component.html',\n styleUrls: ['./management-card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ManagementCardComponent extends ComponentAbstract implements OnInit {\n @Input() sectionItem: MenuSectionItem;\n\n constructor(protected cdr: ChangeDetectorRef, private router: Router) {\n super(cdr);\n }\n\n ngOnInit(): void {}\n\n openSubmenu() {\n if (this.sectionItem.urlPath) {\n this.router\n .navigate([this.sectionItem.urlPath], {\n queryParamsHandling: 'merge',\n })\n .then();\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { IconModule } from '@ui-components/components/icon/icon.module';\n\nimport { ManagementCardComponent } from './management-card.component';\n\n@NgModule({\n declarations: [ManagementCardComponent],\n exports: [ManagementCardComponent],\n imports: [CommonModule, IconModule],\n})\nexport class ManagementCardModule {}\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\n\nimport * as fromSystemConfiguration from './system-configuration.reducer';\n\nexport const selectSystemConfigurationState = createFeatureSelector(\n fromSystemConfiguration.systemConfigurationFeatureKey\n);\n\nexport const selectSystemConfig = createSelector(\n selectSystemConfigurationState,\n systemConfigurationState => systemConfigurationState.systemConfig\n);\n\nexport const selectSystemConfigUpdateInProgress = createSelector(\n selectSystemConfigurationState,\n systemConfigurationState => systemConfigurationState.updateSystemInProgress\n);\n\nexport const selectSystemConfigLoading = createSelector(\n selectSystemConfigurationState,\n systemConfigurationState => systemConfigurationState.systemConfigLoading\n);\n\nexport const selectChatHooksChannels = createSelector(\n selectSystemConfigurationState,\n systemConfigurationState => systemConfigurationState.chatHooksChannels\n);\n\nexport const selectTimerReportLoading = createSelector(\n selectSystemConfigurationState,\n systemConfigurationState => systemConfigurationState.timerReportLoading\n);\n\nexport const selectTimerReport = createSelector(\n selectSystemConfigurationState,\n systemConfigurationState => systemConfigurationState.timerReport\n);\n\nexport const selectExpandedSections = createSelector(\n selectSystemConfigurationState,\n systemConfigurationState => systemConfigurationState.expandedSections\n);\n","import { createAction, props } from '@ngrx/store';\n\nimport { StepAssigneeTableItem } from '@main-application/management/components/turnover-configuration/components/turnover-configuration-step-assignees/config/interfaces/step-assignee-table-item.interface';\nimport { PropertyAssignees } from '@main-application/management/components/turnover-configuration/components/turnover-configuration-step-assignees/config/interfaces/step-assignees';\nimport { IRadioButtonOption } from '@shared/interfaces/radio-button-option.interface';\nimport { RestWorkflowStepAssignmentModel } from '@shared/interfaces/rest-workflow-step-assignment-model.interface';\n\n/* Load Responsible Parties */\nexport const loadResponsibleParties = createAction(\n '[StepAssignees] load responsible parties',\n props<{ portfolioId: number }>()\n);\nexport const loadResponsiblePartiesSuccess = createAction(\n '[StepAssignees] load responsible parties Success',\n props<{ responsibleParties: RestWorkflowStepAssignmentModel[] }>()\n);\nexport const loadResponsiblePartiesFailure = createAction('[StepAssignees] load responsible parties failure');\n\nexport const setAllStepAssigneeList = createAction(\n '[StepAssignees] setAllStepAssigneeList',\n props<{ allStepAssigneeList: StepAssigneeTableItem[] }>()\n);\n\n/* Create Responsible Parties */\nexport const createResponsibleParties = createAction(\n '[StepAssignees] create responsible parties',\n props<{ responsibleParties: RestWorkflowStepAssignmentModel[] }>()\n);\nexport const createResponsiblePartiesSuccess = createAction(\n '[StepAssignees] create responsible parties success',\n props<{ createResponsibleParties: RestWorkflowStepAssignmentModel[] }>()\n);\nexport const createResponsiblePartiesFailure = createAction('[StepAssignees] create responsible parties failure');\n\n/* Update Responsible Parties */\nexport const updateResponsibleParties = createAction(\n '[StepAssignees] update responsible parties',\n props<{ responsibleParties: RestWorkflowStepAssignmentModel[] }>()\n);\nexport const updateResponsiblePartiesSuccess = createAction(\n '[StepAssignees] update responsible parties success',\n\n props<{ updateResponsibleParties: RestWorkflowStepAssignmentModel[] }>()\n);\nexport const updateResponsiblePartiesFailure = createAction('[StepAssignees] update responsible parties failure');\n\nexport const resetAssigneesUpdateStatus = createAction('[StepAssignees] reset Assignees Update Status');\nexport const resetAssigneesUpdateModel = createAction('[StepAssignees] reset Assignees Update model');\n\nexport const setEditedCell = createAction('[StepAssignees] set Edited Cell', props<{ uuid: string }>());\nexport const resetEditedCell = createAction('[StepAssignees] reset Edited Cell');\n\nexport const setUserRadioList = createAction(\n '[StepAssignees] set User Radio List',\n props<{ allUsers: IRadioButtonOption[] }>()\n);\nexport const resetAllUserList = createAction('[StepAssignees] reset All User List');\n\nexport const updatePropertyUser = createAction(\n '[StepAssignees] update Property User',\n props<{ propertyUsers: PropertyAssignees[] }>()\n);\nexport const resetPropertyUser = createAction('[StepAssignees] reset Property User');\n","import { createReducer, on } from '@ngrx/store';\n\nimport { StepAssigneeTableItem } from '@main-application/management/components/turnover-configuration/components/turnover-configuration-step-assignees/config/interfaces/step-assignee-table-item.interface';\nimport { PropertyAssignees } from '@main-application/management/components/turnover-configuration/components/turnover-configuration-step-assignees/config/interfaces/step-assignees';\nimport { UpdateStatus } from '@shared/enums/update-status';\nimport { IRadioButtonOption } from '@shared/interfaces/radio-button-option.interface';\nimport { RestWorkflowStepAssignmentModel } from '@shared/interfaces/rest-workflow-step-assignment-model.interface';\n\nimport {\n createResponsibleParties,\n createResponsiblePartiesFailure,\n createResponsiblePartiesSuccess,\n loadResponsibleParties,\n loadResponsiblePartiesFailure,\n loadResponsiblePartiesSuccess,\n resetAllUserList,\n resetAssigneesUpdateModel,\n resetAssigneesUpdateStatus,\n resetEditedCell,\n resetPropertyUser,\n setAllStepAssigneeList,\n setEditedCell,\n setUserRadioList,\n updatePropertyUser,\n updateResponsibleParties,\n updateResponsiblePartiesFailure,\n updateResponsiblePartiesSuccess,\n} from '../actions/turnover-configuration-step-assignees.actions';\n\nexport const reponsiblePartiesFeatureKey = 'reponsibleParties';\n\nexport interface State {\n responsiblePartiesLoading: boolean;\n responsibleParties: RestWorkflowStepAssignmentModel[];\n\n createResponsiblePartiesOngoing: boolean;\n createResponsiblePartiesStatus: UpdateStatus;\n\n updateResponsiblePartiesOngoing: boolean;\n updateResponsiblePartiesStatus: UpdateStatus;\n\n updatedResponsibleParties: RestWorkflowStepAssignmentModel[];\n\n editedCellUUId: string;\n allUsers: IRadioButtonOption[];\n propertyUsers: PropertyAssignees[];\n allStepAssigneeList: StepAssigneeTableItem[];\n}\n\nexport const initialState: State = {\n responsiblePartiesLoading: false,\n responsibleParties: [],\n\n createResponsiblePartiesOngoing: false,\n createResponsiblePartiesStatus: null,\n\n updateResponsiblePartiesOngoing: false,\n updateResponsiblePartiesStatus: null,\n\n updatedResponsibleParties: [],\n\n editedCellUUId: null,\n allUsers: [],\n propertyUsers: [],\n allStepAssigneeList: [],\n};\n\nexport const reducer = createReducer(\n initialState,\n on(loadResponsibleParties, (state, action) => ({ ...state, responsiblePartiesLoading: true })),\n on(setAllStepAssigneeList, (state, action) => ({\n ...state,\n ...action,\n })),\n on(loadResponsiblePartiesSuccess, (state, action) => ({\n ...state,\n responsibleParties: action.responsibleParties,\n responsiblePartiesLoading: false,\n })),\n on(loadResponsiblePartiesFailure, (state, action) => ({\n ...state,\n responsibleParties: [],\n responsiblePartiesLoading: false,\n })),\n\n on(createResponsibleParties, (state, action) => ({\n ...state,\n createResponsiblePartiesOngoing: true,\n createResponsiblePartiesStatus: UpdateStatus.UPDATE,\n })),\n on(createResponsiblePartiesSuccess, (state, action) => ({\n ...state,\n createResponsiblePartiesOngoing: false,\n createResponsiblePartiesStatus: UpdateStatus.OK,\n updatedResponsibleParties: action.createResponsibleParties,\n })),\n on(createResponsiblePartiesFailure, (state, action) => ({\n ...state,\n createResponsiblePartiesOngoing: false,\n createResponsiblePartiesStatus: UpdateStatus.ERROR,\n updatedResponsibleParties: [],\n })),\n\n on(updateResponsibleParties, (state, action) => ({\n ...state,\n updateResponsiblePartiesOngoing: true,\n updateResponsiblePartiesStatus: UpdateStatus.UPDATE,\n })),\n on(updateResponsiblePartiesSuccess, (state, action) => ({\n ...state,\n updateResponsiblePartiesOngoing: false,\n updateResponsiblePartiesStatus: UpdateStatus.OK,\n updatedResponsibleParties: action.updateResponsibleParties,\n })),\n on(updateResponsiblePartiesFailure, (state, action) => ({\n ...state,\n updateResponsiblePartiesOngoing: false,\n updateResponsiblePartiesStatus: UpdateStatus.ERROR,\n updatedResponsibleParties: [],\n })),\n\n on(resetAssigneesUpdateStatus, (state, action) => ({\n ...state,\n createResponsiblePartiesStatus: null,\n updateResponsiblePartiesStatus: null,\n })),\n\n on(resetAssigneesUpdateModel, (state, action) => ({\n ...state,\n updatedResponsibleParties: [],\n })),\n\n on(setEditedCell, (state, action) => ({\n ...state,\n editedCellUUId: action.uuid,\n })),\n on(resetEditedCell, (state, action) => ({\n ...state,\n editedCellUUId: null,\n })),\n\n on(setUserRadioList, (state, action) => ({\n ...state,\n allUsers: action.allUsers,\n })),\n on(resetAllUserList, (state, action) => ({\n ...state,\n allUsers: null,\n })),\n on(updatePropertyUser, (state, action) => ({\n ...state,\n propertyUsers: action.propertyUsers,\n })),\n on(resetPropertyUser, (state, action) => ({\n ...state,\n propertyUsers: [],\n }))\n);\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { PipesModule } from '@shared/pipes/pipes.module';\nimport { EditedCellModule } from '@ui-components/components/edited-cell/edited-cell.module';\nimport { UserSelectDropdownModule } from '@ui-components/components/user-select-dropdown/user-select-dropdown.module';\n\nimport { TurnoverConfigurationStepAssigneesCellComponent } from './turnover-configuration-step-assignees-cell.component';\n\n@NgModule({\n declarations: [TurnoverConfigurationStepAssigneesCellComponent],\n exports: [TurnoverConfigurationStepAssigneesCellComponent],\n imports: [\n CommonModule,\n PipesModule,\n EditedCellModule,\n UserSelectDropdownModule,\n ReactiveFormsModule,\n MatTooltipModule,\n MatCheckboxModule,\n ],\n})\nexport class TurnoverConfigurationStepAssigneesCellModule {}\n","import { Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { of } from 'rxjs';\nimport { catchError, map, mergeMap, switchMap } from 'rxjs/operators';\n\nimport { SnackbarErrorMessage } from '@ui-components/components/customized-snackbar/snackbar-message.enum';\nimport { SnackbarService } from '@ui-components/components/customized-snackbar/snackbar.service';\n\nimport {\n createResponsibleParties,\n createResponsiblePartiesFailure,\n createResponsiblePartiesSuccess,\n loadResponsibleParties,\n loadResponsiblePartiesFailure,\n loadResponsiblePartiesSuccess,\n updateResponsibleParties,\n updateResponsiblePartiesFailure,\n updateResponsiblePartiesSuccess,\n} from '../actions/turnover-configuration-step-assignees.actions';\nimport { TurnoverConfigurationStepAssigneesService } from '../services/turnover-configuration-step-assignees.service';\n\n@Injectable()\nexport class TurnoverConfigurationStepAssigneesEffects {\n loadResponsibleParties$ = createEffect(() =>\n this.actions$.pipe(\n ofType(loadResponsibleParties),\n switchMap(action =>\n this.responsiblePartiesService.getResponsiblePartiesByPortfolioId(action.portfolioId).pipe(\n map(responsibleParties => loadResponsiblePartiesSuccess({ responsibleParties: responsibleParties || [] })),\n catchError(() => {\n this.snackbarService.error(SnackbarErrorMessage.WhileLoadingResponsibleParties);\n return of(loadResponsiblePartiesFailure());\n })\n )\n )\n )\n );\n\n createResponsibleParties$ = createEffect(() =>\n this.actions$.pipe(\n ofType(createResponsibleParties),\n mergeMap(action =>\n this.responsiblePartiesService.createResponsibleParties(action.responsibleParties).pipe(\n map(createResponsibleParties => createResponsiblePartiesSuccess({ createResponsibleParties })),\n catchError(() => {\n this.snackbarService.error(SnackbarErrorMessage.WhileCreatingAssignee);\n return of(createResponsiblePartiesFailure());\n })\n )\n )\n )\n );\n\n updateResponsibleParties$ = createEffect(() =>\n this.actions$.pipe(\n ofType(updateResponsibleParties),\n mergeMap(action =>\n this.responsiblePartiesService.updateResponsibleParties(action.responsibleParties).pipe(\n map(updateResponsibleParties => updateResponsiblePartiesSuccess({ updateResponsibleParties })),\n catchError(() => {\n this.snackbarService.error(SnackbarErrorMessage.WhileUpdatingAssignee);\n return of(updateResponsiblePartiesFailure());\n })\n )\n )\n )\n );\n\n constructor(\n private actions$: Actions,\n private snackbarService: SnackbarService,\n private responsiblePartiesService: TurnoverConfigurationStepAssigneesService\n ) {}\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\n\nimport { DashboardUserHeaderModule } from '@dashboards/components/dashboard-user-header/dashboard-user-header.module';\nimport { TurnoverConfigurationStepAssigneeComponent } from '@main-application/management/components/turnover-configuration/components/turnover-configuration-step-assignees/turnover-configuration-step-assignees.component';\nimport { TurnoverConfigurationStepAssigneesCellModule } from '@main-application/management/components/turnover-configuration/components/turnover-configuration-step-assignees-cell/turnover-configuration-step-assignees-cell.module';\nimport { PortfolioStoreModule } from '@portfolio/store/portfolio-store.module';\nimport { PipesModule } from '@shared/pipes/pipes.module';\nimport { DashboardContainerModule } from '@ui-components/components/dashboard-container/dashboard-container.module';\nimport { EditedCellModule } from '@ui-components/components/edited-cell/edited-cell.module';\nimport { IconModule } from '@ui-components/components/icon/icon.module';\nimport { SearchInputModule } from '@ui-components/components/search-input/search-input.module';\nimport { SkeletonLoaderModule } from '@ui-components/components/skeleton-loader/skeleton-loader.module';\nimport { TableActionButtonsModule } from '@ui-components/components/table-action-buttons/table-action-buttons.module';\nimport { TableEmptyContentModule } from '@ui-components/components/table-empty-content/table-empty-content.module';\nimport { UserSelectDropdownModule } from '@ui-components/components/user-select-dropdown/user-select-dropdown.module';\nimport { UiComponentsModule } from '@ui-components/ui-components.module';\n\nimport { TurnoverConfigurationStepAssigneesEffects } from './effects/turnover-configuration-step-assignees.effects';\nimport * as fromResponsibleParties from './reducers/turnover-configuration-step-assignees.reducer';\n\n@NgModule({\n declarations: [TurnoverConfigurationStepAssigneeComponent],\n imports: [\n CommonModule,\n PortfolioStoreModule,\n EffectsModule.forFeature([TurnoverConfigurationStepAssigneesEffects]),\n StoreModule.forFeature(fromResponsibleParties.reponsiblePartiesFeatureKey, fromResponsibleParties.reducer),\n DashboardContainerModule,\n DashboardUserHeaderModule,\n SearchInputModule,\n ReactiveFormsModule,\n MatTableModule,\n MatSortModule,\n EditedCellModule,\n UserSelectDropdownModule,\n PipesModule,\n TableActionButtonsModule,\n TableEmptyContentModule,\n IconModule,\n MatButtonModule,\n TurnoverConfigurationStepAssigneesCellModule,\n SkeletonLoaderModule,\n UiComponentsModule,\n MatCheckboxModule,\n MatTooltipModule,\n ],\n exports: [TurnoverConfigurationStepAssigneeComponent],\n})\nexport class TurnoverConfigurationStepAssigneesModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { FieldConfigurationPipe } from './field-configuration.pipe';\nimport { IsFieldActivePipe } from './is-field-active.pipe';\nimport { IsFieldRequiredPipe } from './is-field-required.pipe';\nimport { ShouldShowSectionPipe } from './should-show-section.pipe';\n\n@NgModule({\n declarations: [ShouldShowSectionPipe, FieldConfigurationPipe, IsFieldRequiredPipe, IsFieldActivePipe],\n imports: [CommonModule],\n exports: [ShouldShowSectionPipe, FieldConfigurationPipe, IsFieldRequiredPipe, IsFieldActivePipe],\n})\nexport class TurnoverConfigurationPipesModule {}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-portfolio-header',\n templateUrl: './portfolio-header.component.html',\n styleUrls: ['./portfolio-header.component.scss'],\n})\nexport class PortfolioHeaderComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","
\n \n
\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { PortfolioHeaderComponent } from './portfolio-header.component';\n\n@NgModule({\n declarations: [PortfolioHeaderComponent],\n imports: [CommonModule],\n exports: [PortfolioHeaderComponent],\n})\nexport class PortfolioHeaderModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { PipesModule } from '@shared/pipes/pipes.module';\nimport { InputModule } from '@ui-components/components/input/input.module';\nimport { InputAreaModule } from '@ui-components/components/input-area/input-area.module';\nimport { RadioButtonDropdownModule } from '@ui-components/components/radio-button-dropdown/radio-button-dropdown.module';\n\nimport { UnitDetailsDescriptionSectionComponent } from './unit-details-description-section.component';\n\n@NgModule({\n declarations: [UnitDetailsDescriptionSectionComponent],\n exports: [UnitDetailsDescriptionSectionComponent],\n imports: [\n CommonModule,\n InputAreaModule,\n ReactiveFormsModule,\n PipesModule,\n RadioButtonDropdownModule,\n MatProgressSpinnerModule,\n InputModule,\n ],\n})\nexport class UnitDetailsDescriptionSectionModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\n\nimport { IconModule } from '@ui-components/components/icon/icon.module';\n\nimport { UnitDetailsInspectionsComponent } from './unit-details-inspections.component';\n\n@NgModule({\n declarations: [UnitDetailsInspectionsComponent],\n imports: [\n CommonModule,\n IconModule,\n MatButtonModule,\n MatIconModule,\n MatSortModule,\n MatTableModule,\n MatDividerModule,\n MatMenuModule,\n ],\n exports: [UnitDetailsInspectionsComponent],\n})\nexport class UnitDetailsInspectionsModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { AttachmentModule } from '@ui-components/components/attachment/attachment.module';\nimport { IconModule } from '@ui-components/components/icon/icon.module';\nimport { InputFileModule } from '@ui-components/components/input-file/input-file.module';\nimport { PictureModule } from '@ui-components/components/picture/picture.module';\n\nimport { UnitDetailsPicturesSectionComponent } from './unit-details-pictures-section.component';\n\n@NgModule({\n declarations: [UnitDetailsPicturesSectionComponent],\n exports: [UnitDetailsPicturesSectionComponent],\n imports: [\n CommonModule,\n IconModule,\n MatButtonModule,\n AttachmentModule,\n InputFileModule,\n ReactiveFormsModule,\n PictureModule,\n MatProgressSpinnerModule,\n ],\n})\nexport class UnitDetailsPicturesSectionModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { PipesModule } from '@shared/pipes/pipes.module';\nimport { IconModule } from '@ui-components/components/icon/icon.module';\nimport { InputAreaModule } from '@ui-components/components/input-area/input-area.module';\nimport { RadioButtonDropdownModule } from '@ui-components/components/radio-button-dropdown/radio-button-dropdown.module';\n\nimport { UnitDetailsPropertySectionComponent } from './unit-details-property-section.component';\n\n@NgModule({\n declarations: [UnitDetailsPropertySectionComponent],\n exports: [UnitDetailsPropertySectionComponent],\n imports: [CommonModule, IconModule, InputAreaModule, ReactiveFormsModule, PipesModule, RadioButtonDropdownModule],\n})\nexport class UnitDetailsPropertySectionModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { IconModule } from '@app/modules/ui-components/components/icon/icon.module';\nimport { InputModule } from '@app/modules/ui-components/components/input/input.module';\nimport { DashboardUserHeaderModule } from '@dashboards/components/dashboard-user-header/dashboard-user-header.module';\nimport { UnitDetailsDescriptionSectionModule } from '@portfolio/components/unit-details/components/unit-details-description-section/unit-details-description-section.module';\nimport { UnitDetailsInspectionsModule } from '@portfolio/components/unit-details/components/unit-details-inspections/unit-details-inspections.module';\nimport { UnitDetailsPicturesSectionModule } from '@portfolio/components/unit-details/components/unit-details-pictures-section/unit-details-pictures-section.module';\nimport { UnitDetailsPropertySectionModule } from '@portfolio/components/unit-details/components/unit-details-property-section/unit-details-property-section.module';\nimport { PipesModule } from '@shared/pipes/pipes.module';\nimport { DashboardContainerModule } from '@ui-components/components/dashboard-container/dashboard-container.module';\nimport { EmptyDataModule } from '@ui-components/components/empty-data/empty-data.module';\nimport { InputAreaModule } from '@ui-components/components/input-area/input-area.module';\nimport { RadioButtonDropdownModule } from '@ui-components/components/radio-button-dropdown/radio-button-dropdown.module';\n\nimport { UnitDetailsComponent } from './unit-details.component';\nimport { PortfolioHeaderModule } from '../portfolio-header/portfolio-header.module';\n\n@NgModule({\n declarations: [UnitDetailsComponent],\n imports: [\n CommonModule,\n PortfolioHeaderModule,\n InputModule,\n IconModule,\n MatButtonModule,\n MatTableModule,\n MatSortModule,\n EmptyDataModule,\n DashboardContainerModule,\n DashboardUserHeaderModule,\n ReactiveFormsModule,\n InputAreaModule,\n PipesModule,\n UnitDetailsPicturesSectionModule,\n UnitDetailsPropertySectionModule,\n UnitDetailsDescriptionSectionModule,\n MatCheckboxModule,\n MatTooltipModule,\n MatProgressSpinnerModule,\n FormsModule,\n UnitDetailsInspectionsModule,\n RadioButtonDropdownModule,\n ],\n})\nexport class UnitDetailsModule {}\n","import { ChangeDetectorRef, Directive, OnDestroy, OnInit } from '@angular/core';\nimport { Action, ComponentCollection, PanelModel, Question, QuestionCustomModel, Serializer } from 'survey-core';\nimport { ICreatorOptions, SurveyCreatorModel } from 'survey-creator-core';\nimport { v4 as uuidv4 } from 'uuid';\n\nconst allowedProps = ['visibleIf', 'enableIf', 'requiredIf', 'title', 'description', 'enableFlagForMaintenanceOption'];\n\nconst creatorOptions: ICreatorOptions = {\n showLogicTab: false,\n isAutoSave: true,\n showJSONEditorTab: true,\n questionTypes: ['checkbox', 'radiogroup', 'dropdown', 'boolean', 'comment', 'panel', 'file', 'propertyState'],\n allowChangeThemeInPreview: false,\n showSimulatorInTestSurveyTab: false,\n};\n\nSerializer.addProperty('survey', {\n name: 'enableFlagForMaintenanceOption',\n category: 'general',\n type: 'boolean',\n visibleIndex: 3,\n});\n\nSerializer.addProperty('question', {\n name: 'guid',\n category: 'general',\n type: 'string',\n readOnly: true,\n visibleIndex: 1,\n});\n\nComponentCollection.Instance.add({\n name: 'propertyState',\n title: 'Property State',\n onCreated: question => {\n question.isRequired = true;\n question.title = 'Property state';\n question.name = question.title;\n },\n onAfterRender(question: Question, htmlElement: HTMLElement) {\n const container = htmlElement.querySelector('.sd-selectbase') as HTMLElement;\n if (container) {\n container.style.display = 'flex';\n container.style.gap = '32px';\n }\n },\n questionJSON: {\n type: 'radiogroup',\n choices: [\n {\n value: 'poor',\n text: 'Poor',\n },\n {\n value: 'fair',\n text: 'Fair',\n },\n {\n value: 'good',\n text: 'Good',\n },\n ],\n },\n});\n\nfunction isStartFromGuid(name: string) {\n return /[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}/.test(name.substring(0, 36));\n}\n\n@Directive()\nexport abstract class CommonSurveyCreatorComponent implements OnInit, OnDestroy {\n surveyCreatorModel: SurveyCreatorModel;\n\n protected abstract saveActionLogic(templateJson: string, title: string): void;\n protected abstract discardActionLogic(): void;\n protected abstract loadSurveyJson(): void;\n\n saveAction = new Action({\n id: 'save-changes',\n iconName: 'icon-checked',\n title: 'Save changes',\n showTitle: false,\n enabled: true,\n visibleIndex: 0,\n action: () => {\n const surveyJson = this.surveyCreatorModel.getSurveyJSON();\n const template = JSON.stringify(surveyJson);\n const title = surveyJson.title;\n this.saveActionLogic(template, title);\n },\n });\n\n discardAction = new Action({\n id: 'discard-changes',\n iconName: 'icon-clear_16x16',\n title: 'Discard changes',\n showTitle: false,\n enabled: true,\n visibleIndex: 1,\n action: () => this.discardActionLogic(),\n });\n\n constructor(protected cdr: ChangeDetectorRef) {}\n\n ngOnInit() {\n const creator = new SurveyCreatorModel(creatorOptions);\n creator.toolbarItems.push(this.saveAction);\n creator.toolbarItems.push(this.discardAction);\n creator.onShowingProperty.add(function (sender, options) {\n options.canShow = allowedProps.includes(options.property.name);\n });\n creator.onQuestionAdded.add((sender, options) => {\n const question = options.question;\n question.guid = uuidv4();\n if (!isStartFromGuid(question.name)) {\n question.title = question.name;\n question.name = uuidv4() + question.name;\n }\n\n question.onPropertyChanged.add((propertySender, propertyOptions) => {\n if (propertyOptions.name === 'title') {\n question.name = propertyOptions.newValue;\n if (isStartFromGuid(question.name)) {\n question.name = question.name.substring(0, 36) + propertyOptions.newValue;\n } else {\n question.name = uuidv4() + propertyOptions.newValue;\n }\n }\n });\n\n question.onItemValuePropertyChanged.add((sender, { obj, propertyName, name, newValue }) => {\n if (propertyName === 'choices' && name === 'text') {\n obj.value = newValue;\n }\n });\n\n if (question.customQuestion?.name === 'propertystate') {\n const questions = creator.survey.getAllQuestions().filter(q => q instanceof QuestionCustomModel);\n if (questions.length > 1) {\n question.title += questions.length - 1;\n }\n\n question.name = question.title;\n\n const panel = question.page.addNewPanel();\n panel.visibleIf = `{${question.name}} = 'poor' or {${question.name}} = 'fair'`;\n panel.requiredIf = `{${question.name}} = 'poor' or {${question.name}} = 'fair'`;\n panel.addNewQuestion('boolean');\n panel.addNewQuestion('boolean');\n panel.addNewQuestion('text');\n }\n\n if (question.parent instanceof PanelModel) {\n question.requiredIf = question.parent.requiredIf;\n }\n });\n creator.JSON = {\n logoPosition: 'right',\n pages: [\n {\n name: 'page1',\n },\n ],\n };\n this.surveyCreatorModel = creator;\n\n this.loadSurveyJson();\n\n this.cdr.detectChanges();\n }\n\n ngOnDestroy(): void {}\n}\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\n\nimport * as fromSurveys from '../reducers/surveys.reducer';\n\nexport const selectSurveysState = createFeatureSelector(fromSurveys.surveysFeatureKey);\n\nexport const selectSurveyTemplates = createSelector(selectSurveysState, state => state.surveyTemplates);\n","import { Injectable } from '@angular/core';\n\nimport { LocalStorageDataEnum } from '@shared/enums/local-storage-data.enum';\n\n@Injectable()\nexport class TurnoverKanbanService {\n constructor() {}\n\n getExpandedSections(userId: number): number[] {\n return (JSON.parse(localStorage.getItem(this.getFieldName(userId))) as number[]) || [];\n }\n\n setExpandedSection(userId: number, sectionsId: number[]) {\n localStorage.setItem(this.getFieldName(userId), JSON.stringify(sectionsId));\n }\n\n private getFieldName(userId: number): string {\n return `${LocalStorageDataEnum.KANBAN_ACTIVE_SECTIONS}_${userId}`;\n }\n}\n","
\n \n
\n\n\n
\n

{{ header }}

\n
\n \n
\n
\n \n
\n
\n
\n \n
\n
\n
{{ oppositeLabel }}
\n
{{ _oppositeValue }}%
\n
\n
\n\n\n
\n \n
\n
\n\n\n -\n\n\n\n \n \n {{\n measureType | measureType: _widgetItem.value:shortFormat\n }}\n {{ abbreviateNumber(_widgetItem.value, 0) }}\n {{\n measureType | measureType: _widgetItem.value:shortFormat\n }}\n \n \n\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { isNumber } from 'lodash';\n\nimport { ComponentAbstract } from '@app/components/abstract/component.abstract';\nimport { TurnoverListWidgetItem } from '@main-application/turnovers/config/interfaces/turnover-list-widget-item.interface';\nimport { EColorPalette } from '@shared/enums/color-palette.enum';\nimport { ChartConfig, ChartDataItem } from '@shared/interfaces/chart-data-item';\nimport { MeasureType } from '@shared/interfaces/measure-type';\n\n@Component({\n selector: 'app-turnover-list-widget',\n templateUrl: './turnover-list-widget.component.html',\n styleUrls: ['./turnover-list-widget.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TurnoverListWidgetComponent extends ComponentAbstract {\n _widgetItem: TurnoverListWidgetItem;\n _oppositeValue?: number = null;\n\n @Input() header: string;\n @Input() oppositeLabel: string;\n @Input() measureType: MeasureType;\n @Input() withChart = true;\n @Input() chartColor: EColorPalette = EColorPalette.cBlack;\n @Input() isLoading = true;\n @Input() collapsed = false;\n\n @Input() set widgetItem(widgetItem: TurnoverListWidgetItem) {\n this._widgetItem = widgetItem;\n if (isNumber(widgetItem.total) && isNumber(widgetItem.value)) {\n this.chartDataList = [\n {\n value: widgetItem.value,\n backgroundColor: this.chartColor,\n label: this.header,\n },\n {\n value: widgetItem.total - widgetItem.value,\n backgroundColor: EColorPalette.cGray2,\n label: this.oppositeLabel,\n },\n ];\n if (widgetItem.total) {\n this._oppositeValue = 100 - Math.round((widgetItem.value / widgetItem.total) * 100);\n } else {\n this._oppositeValue = null;\n }\n } else {\n this.chartDataList = [];\n this._oppositeValue = null;\n }\n this.cdr.detectChanges();\n }\n\n chartDataList: ChartDataItem[] = [];\n chartConfig: ChartConfig = {\n showTextTooltip: false,\n showTooltip: true,\n showDataLabel: false,\n cutoutLevel: 70,\n };\n\n constructor(protected cdr: ChangeDetectorRef) {\n super(cdr);\n }\n\n abbreviateNumber(num, fixed) {\n if (this.measureType === '$') {\n if (num === null) {\n return null;\n } // terminate early\n if (num === 0) {\n return '0';\n } // terminate early\n fixed = !fixed || fixed < 0 ? 0 : fixed; // number of decimal places to show\n const b = num.toPrecision(2).split('e'), // get power\n k = b.length === 1 ? 0 : Math.floor(Math.min(b[1].slice(1), 14) / 3), // floor at decimals, ceiling at trillions\n c = k < 1 ? num.toFixed(0 + fixed) : (num / Math.pow(10, k * 3)).toFixed(1 + fixed), // divide by power\n d = c < 0 ? c : Math.abs(c), // enforce -0 is 0\n e = d + ['', 'k', 'm', 'b', 't'][k]; // append power\n return e;\n } else {\n return num;\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\n\nimport { TurnoverListWidgetComponent } from '@main-application/turnovers/components/turnover-list/turnover-list-widget/turnover-list-widget.component';\nimport { PipesModule } from '@shared/pipes/pipes.module';\nimport { ChartModule } from '@ui-components/components/chart/chart.module';\n\n@NgModule({\n declarations: [TurnoverListWidgetComponent],\n imports: [CommonModule, MatProgressSpinnerModule, ChartModule, PipesModule],\n exports: [TurnoverListWidgetComponent],\n})\nexport class TurnoverListWidgetModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { EditedCellComponent } from './edited-cell.component';\n\n@NgModule({\n declarations: [EditedCellComponent],\n exports: [EditedCellComponent],\n imports: [CommonModule],\n})\nexport class EditedCellModule {}\n","
\n \n \n \n \n \n \n \n \n \n
\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\nimport { ComponentAbstract } from '@app/components/abstract/component.abstract';\n\n@Component({\n selector: 'app-table-action-buttons',\n templateUrl: './table-action-buttons.component.html',\n styleUrls: ['./table-action-buttons.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableActionButtonsComponent extends ComponentAbstract implements OnInit {\n @Input() rowReference: Object;\n @Input() currentRowReference;\n @Input() disableEdit = false;\n @Input() disableSave = false;\n @Input() disableDelete = false;\n @Input() lockFields = false;\n @Input() allowDelete = true;\n @Input() allowEdit = true;\n\n @Output() editEvent: EventEmitter = new EventEmitter();\n @Output() saveEvent: EventEmitter = new EventEmitter();\n @Output() deleteEvent: EventEmitter = new EventEmitter();\n\n constructor(protected cdr: ChangeDetectorRef) {\n super(cdr);\n }\n\n ngOnInit(): void {}\n\n edit($event: Event) {\n $event.stopPropagation();\n this.editEvent.emit();\n }\n\n save($event: Event) {\n $event.stopPropagation();\n this.saveEvent.emit();\n }\n\n delete($event: Event) {\n $event.stopPropagation();\n this.deleteEvent.emit();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { IconModule } from '@app/modules/ui-components/components/icon/icon.module';\n\nimport { TableActionButtonsComponent } from './table-action-buttons.component';\n\n@NgModule({\n declarations: [TableActionButtonsComponent],\n exports: [TableActionButtonsComponent],\n imports: [CommonModule, MatButtonModule, IconModule, MatTooltipModule],\n})\nexport class TableActionButtonsModule {}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { OpenApiService } from '@widgets/open-api.service';\n\nexport class JwtInfo {\n assignee: number;\n authKey: string; //guid\n exp: number;\n iat: number;\n iss: string;\n linkType: number;\n nbf: number;\n tenantSubscriptionId: number;\n turnoverDataBidId: number;\n}\nexport class WidgetTurnBidResponce {\n assignee: number;\n bidInfo: {\n approved: boolean;\n bidAmount: number;\n bidDate: Date;\n id: number;\n invoices: any[];\n status: number;\n turnoverDataBidCategoryId: number;\n turnoverId: number;\n vendorId: number;\n };\n timeZone: {\n id: string;\n displayName: string;\n utcOffsetMinutes: number;\n };\n turnInfo: {};\n unitInfo: {\n unitName: string;\n unitType: string;\n propertyName: string;\n propertyAddress: {\n propertyToAddressLinkId: number;\n id: number;\n addressType: number;\n addressTypeUrn: string;\n title: string;\n street1: string;\n street2: string;\n city: string;\n state: string;\n zip: string;\n url: string;\n };\n };\n users: {\n userId: number;\n firstName: string;\n lastName: string;\n displayName: string;\n email: string;\n }[];\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BidManagementService {\n constructor(protected service: OpenApiService) {}\n\n public getTurnInfo(jwtToken: string): Observable {\n return this.service.get(`bids/getTurnBidInfo?jwtToken=${jwtToken}`);\n }\n\n public comment(jwtToken: string, comment: string): Observable {\n return this.service.post(`bids/comment?jwtToken=${jwtToken}`, { comment });\n }\n\n public accept(jwtToken: string): Observable {\n return this.service.post(`bids/accept?jwtToken=${jwtToken}`);\n }\n\n public approve(jwtToken: string): Observable {\n return this.service.post(`bids/approve?jwtToken=${jwtToken}`);\n }\n\n public reject(jwtToken: string, reason: string): Observable {\n return this.service.post(`bids/reject?jwtToken=${jwtToken}`, { reason });\n }\n\n public deny(jwtToken: string, reason: string): Observable {\n return this.service.post(`bids/deny?jwtToken=${jwtToken}`, { reason });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, map } from 'rxjs';\n\nimport { ScheduleCellStatus } from '@main-application/boards/interfaces/board.enums';\nimport { TimezoneHelper } from '@main-application/management/components/system-configuration/components/timezone.helper';\nimport { OpenApiService } from '@widgets/open-api.service';\n\nclass WidgetTurnScheduleResponce {\n unitInfo: {\n unitName: string;\n unitType: string;\n propertyName: string;\n propertyAddress: {\n propertyToAddressLinkId: number;\n id: number;\n addressType: number;\n addressTypeUrn: string;\n title: string;\n street1: string;\n street2: string;\n city: string;\n state: string;\n zip: string;\n url: string;\n };\n };\n turnInfo: {\n dateMoveIn: Date;\n };\n turnStepScheduleInfo: {\n assignee: number;\n dueDate: Date;\n dateCompleted: Date;\n name: string;\n status: ScheduleCellStatus;\n };\n}\n\nexport class JwtInfo {\n tenantSubscriptionId: number;\n turnStepScheduleId: number;\n authKey: string;\n assignee: number;\n nbf: number;\n exp: number;\n iat: number;\n iss: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BoardBuilderService {\n constructor(protected service: OpenApiService) {}\n public markAsDone(jwtToken: string): Observable {\n return this.service.post(`BB/markAsDone?jwtToken=${jwtToken}`);\n }\n\n public reschedule(jwtToken: string, date: Date): Observable {\n const dateWithoutTimezone = TimezoneHelper.removeTimeZone(date);\n return this.service.post(`BB/reschedule?jwtToken=${jwtToken}`, { newDueDate: dateWithoutTimezone });\n }\n\n public getTurnStepInfo(jwtToken: string): Observable {\n return this.service.get(`BB/getTurnStepInfo?jwtToken=${jwtToken}`).pipe(\n map(data => {\n data.turnInfo.dateMoveIn = TimezoneHelper.addTimeZoneAndKeepOnlyDatePart(data.turnInfo.dateMoveIn);\n data.turnStepScheduleInfo.dueDate = TimezoneHelper.addTimeZoneAndKeepOnlyDatePart(\n data.turnStepScheduleInfo.dueDate\n );\n return data;\n })\n );\n }\n\n public postComment(jwtToken: string, comment: string): Observable {\n return this.service.post(`BB/postComment?jwtToken=${jwtToken}`, { comment });\n }\n}\n","
\n
\n \n \n \n
\n \n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatIconModule } from '@angular/material/icon';\nimport { ActivatedRoute } from '@angular/router';\nimport { UntilDestroy } from '@ngneat/until-destroy';\nimport { Observable, finalize } from 'rxjs';\n\nimport { TranslateCodePipe } from '@widgets/translate-code.pipe';\n\nenum CommentWidgetState {\n InProgress,\n Success,\n Fail,\n}\n\n@UntilDestroy()\n@Component({\n selector: 'app-common-comment-widget',\n templateUrl: './common-comment-widget.component.html',\n styleUrls: ['./common-comment-widget.component.scss'],\n standalone: true,\n imports: [CommonModule, FormsModule, MatIconModule, TranslateCodePipe],\n //changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport abstract class CommonCommentWidgetComponent implements OnInit {\n header: string;\n state: CommentWidgetState;\n CommentWidgetState = CommentWidgetState;\n errorCode = 'Failure';\n comment = '';\n inProgress = false;\n doneText = 'Thank you!';\n placeholder = 'Comment...';\n sendText = 'Send comment';\n\n get jwtToken(): string {\n return this.route.snapshot.queryParams.jwt;\n }\n\n @ViewChild('commentInput', { read: ElementRef, static: false }) commentInput: ElementRef;\n\n constructor(protected cdr: ChangeDetectorRef, private route: ActivatedRoute) {}\n\n protected abstract getMainInfo(jwtToken: string): Observable;\n protected abstract setPredefineInfo(info: T): void;\n protected abstract sendComment(jwtToken: string, comment: string): Observable;\n\n isCommentValid() {\n return !!this.comment;\n }\n\n ngOnInit() {\n this.getMainInfo(this.jwtToken)\n .pipe(finalize(() => this.cdr.detectChanges()))\n .subscribe({\n next: info => {\n this.setPredefineInfo(info);\n this.state = CommentWidgetState.InProgress;\n setTimeout(() => this.commentInput.nativeElement.focus());\n },\n error: err => {\n this.errorCode = err?.error ?? '';\n this.state = CommentWidgetState.Fail;\n },\n });\n }\n\n scrollToButton() {\n const buttonElement = document.querySelector('.button-panel');\n buttonElement?.scrollIntoView({ behavior: 'smooth', block: 'end' });\n }\n\n post() {\n if (this.inProgress || !this.isCommentValid()) {\n return;\n }\n this.inProgress = true;\n this.sendComment(this.jwtToken, this.comment)\n .pipe(finalize(() => (this.inProgress = false)))\n .subscribe({\n next: () => {\n this.state = CommentWidgetState.Success;\n this.cdr.detectChanges;\n },\n error: err => {\n this.errorCode = err?.error ?? '';\n this.state = CommentWidgetState.Fail;\n this.cdr.detectChanges;\n },\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { UntilDestroy } from '@ngneat/until-destroy';\nimport { Observable, finalize } from 'rxjs';\n\nimport { TranslateCodePipe } from '@widgets/translate-code.pipe';\n\nenum JustDoneWidgetState {\n Success,\n Fail,\n}\n\n@UntilDestroy()\n@Component({\n selector: 'app-just-done-widget',\n templateUrl: './just-done-widget.component.html',\n styleUrls: ['./just-done-widget.component.scss'],\n standalone: true,\n imports: [CommonModule, FormsModule, TranslateCodePipe],\n //changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport abstract class JustDoneWidgetComponent implements OnInit {\n state: JustDoneWidgetState;\n JustDoneWidgetState = JustDoneWidgetState;\n errorCode = 'Failure';\n doneText: string;\n\n get jwtToken(): string {\n return this.route.snapshot.queryParams.jwt;\n }\n\n constructor(protected cdr: ChangeDetectorRef, private route: ActivatedRoute) {}\n\n protected abstract doWork(jwtToken: string): Observable;\n protected abstract getDoneText(): string;\n\n ngOnInit() {\n this.doneText = this.getDoneText();\n\n this.doWork(this.jwtToken)\n .pipe(finalize(() => this.cdr.detectChanges()))\n .subscribe({\n next: () => (this.state = JustDoneWidgetState.Success),\n error: err => {\n this.errorCode = err?.error?.Message ?? err?.error ?? '';\n this.state = JustDoneWidgetState.Fail;\n },\n });\n }\n}\n","
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { environment } from 'src/environments/environment';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OpenApiService {\n constructor(protected http: HttpClient) {}\n\n public get(route: string): Observable {\n return this.http.get(this.composeRoute(route, environment.openApiUrl));\n }\n\n public customPatchData(route: string, body: unknown): Observable {\n return this.http.patch(this.composeRoute(route, environment.openApiUrl), body);\n }\n\n public post(route: string, body?: unknown): Observable {\n return this.http.post(this.composeRoute(route, environment.openApiUrl), body, this.generateHeaders());\n }\n\n public update(route: string, body: unknown): Observable {\n return this.http.put(this.composeRoute(route, environment.openApiUrl), body, this.generateHeaders());\n }\n\n public delete(route: string, body: unknown = {}): Observable {\n return this.http.delete(this.composeRoute(route, environment.openApiUrl), body);\n }\n\n public upload(route: string, file: File): Observable {\n const formData = new FormData();\n formData.append('file', file);\n return this.http.post(this.composeRoute(route, environment.openApiUrl), formData);\n }\n\n private composeRoute(route: string, environmentUrl: string) {\n return `${environmentUrl}/${route}`;\n }\n\n private generateHeaders() {\n return {\n headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\n };\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nconst localizationDictionary: { [code: string]: string } = {\n INVALID_JWT_CANT_VERIFY_SIGNATURE: 'This link is invalid',\n INVALID_JWT_ASSIGNEE_CHANGED: 'You are no longer the assignee for this task',\n INVALID_JWT_LINK_IS_EXPIRED: 'This link has expired',\n INVALID_JWT_TURN_CANCELLED: 'This turn was cancelled',\n INVALID_JWT_TURN_COMPLETED: 'This turn is no longer on the board',\n INVALID_JWT_BOARD_COMPLETED: 'This turn is no longer on the board',\n INVALID_JWT_STEP_WAS_NOT_FOUND: 'This task no longer exists',\n INVALID_JWT_CANT_VERIFY_ISSUER: 'Your link is not valid',\n};\n\n@Pipe({\n name: 'translateCode',\n standalone: true,\n})\nexport class TranslateCodePipe implements PipeTransform {\n transform(code: string, ...values): string {\n let localizedText = localizationDictionary[code] ?? code;\n if (values) {\n values.forEach((v, i) => (localizedText = localizedText.replace(new RegExp(`\\\\{${i}\\\\}`, 'g'), v)));\n }\n return localizedText;\n }\n}\n"],"x_google_ignoreList":[]}