{"version":3,"file":"common.4056f5e44f76d6ef.js","mappings":"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","names":["selectBoardsState","createFeatureSelector","fromBoards","selectBoardList","createSelector","state","boards","selectBoardListLoading","boardsLoading","selectSpaceTemplateState","fromSpaceTemplate","selectSpaceTemplates","spaceTemplateState","listItems","selectSpaceTemplatesLoading","listItemsLoading","selectTemplateUpdate","entityUpdateOngoing","selectTemplateDeleteOngoing","deleteEntityOngoing","selectCategories","categories","i0","ManagementCardComponent","ComponentAbstract","constructor","cdr","router","super","this","ngOnInit","openSubmenu","sectionItem","urlPath","navigate","queryParamsHandling","then","selectors","ctx","ManagementCardModule","CommonModule","IconComponent","PortfolioHeaderComponent","PortfolioHeaderModule","UnitDetailsDescriptionSectionModule","InputAreaModule","ReactiveFormsModule","PipesModule","RadioButtonDropdownModule","MatProgressSpinnerModule","InputModule","UnitDetailsInspectionsModule","MatButtonModule","MatIconModule","MatSortModule","MatTableModule","MatDividerModule","MatMenuModule","UnitDetailsPicturesSectionModule","AttachmentModule","InputFileModule","PictureModule","UnitDetailsPropertySectionModule","UnitDetailsModule","EmptyDataModule","DashboardContainerModule","DashboardUserHeaderModule","MatCheckboxModule","MatTooltipModule","FormsModule","selectSystemConfigurationState","fromSystemConfiguration","selectSystemConfig","systemConfigurationState","systemConfig","selectSystemConfigUpdateInProgress","updateSystemInProgress","selectSystemConfigLoading","systemConfigLoading","selectChatHooksChannels","chatHooksChannels","selectTimerReportLoading","timerReportLoading","selectTimerReport","timerReport","selectExpandedSections","expandedSections","allowedProps","creatorOptions","showLogicTab","isAutoSave","showJSONEditorTab","questionTypes","allowChangeThemeInPreview","showSimulatorInTestSurveyTab","isStartFromGuid","name","test","substring","Serializer","category","type","visibleIndex","readOnly","ComponentCollection","title","onCreated","question","isRequired","onAfterRender","htmlElement","container","querySelector","style","display","gap","questionJSON","choices","value","text","CommonSurveyCreatorComponent","Action","id","iconName","showTitle","enabled","action","surveyJson","surveyCreatorModel","getSurveyJSON","template","JSON","stringify","saveActionLogic","discardActionLogic","creator","SurveyCreatorModel","toolbarItems","push","saveAction","discardAction","onShowingProperty","add","sender","options","canShow","includes","property","onQuestionAdded","guid","uuidv4","onPropertyChanged","propertySender","propertyOptions","newValue","onItemValuePropertyChanged","obj","propertyName","customQuestion","questions","survey","getAllQuestions","filter","q","QuestionCustomModel","length","panel","page","addNewPanel","visibleIf","requiredIf","addNewQuestion","parent","PanelModel","logoPosition","pages","loadSurveyJson","detectChanges","ngOnDestroy","selectSurveysState","fromSurveys","selectSurveyTemplates","surveyTemplates","TurnoverKanbanService","getExpandedSections","userId","parse","localStorage","getItem","getFieldName","setExpandedSection","sectionsId","setItem","LocalStorageDataEnum","factory","TurnoverListWidgetComponent","EColorPalette","showTextTooltip","showTooltip","showDataLabel","cutoutLevel","widgetItem","_widgetItem","isNumber","total","chartDataList","backgroundColor","chartColor","label","header","oppositeLabel","_oppositeValue","Math","round","abbreviateNumber","num","fixed","measureType","b","toPrecision","split","k","floor","min","slice","c","toFixed","pow","abs","TurnoverListWidgetModule","ChartModule","InspectionTypeListConst","InspectionType","sort","description","disabled","RouteData","AnimationComponent","Animation","getConfig","loop","path","getConfigPath","configPath","animationItem","AnimationModule","LottieModule","EditedCellModule","TableActionButtonsComponent","EventEmitter","edit","$event","stopPropagation","editEvent","emit","save","saveEvent","delete","deleteEvent","TableActionButtonsModule","BidManagementService","service","getTurnInfo","jwtToken","get","comment","post","accept","approve","reject","reason","deny","BoardBuilderService","markAsDone","reschedule","date","dateWithoutTimezone","TimezoneHelper","newDueDate","getTurnStepInfo","pipe","map","data","turnInfo","dateMoveIn","turnStepScheduleInfo","dueDate","postComment","CommentWidgetState","CommonCommentWidgetComponent","route","snapshot","queryParams","jwt","isCommentValid","getMainInfo","finalize","subscribe","next","info","setPredefineInfo","InProgress","setTimeout","commentInput","nativeElement","focus","error","err","errorCode","Fail","scrollToButton","document","scrollIntoView","behavior","block","inProgress","sendComment","Success","ElementRef","i2","i3","TranslateCodePipe","styles","__decorate","UntilDestroy","JustDoneWidgetState","JustDoneWidgetComponent","doneText","getDoneText","doWork","Message","OpenApiService","http","composeRoute","environment","customPatchData","body","patch","generateHeaders","update","put","upload","file","formData","FormData","append","environmentUrl","headers","HttpHeaders","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","transform","code","values","localizedText","forEach","v","i","replace","RegExp","pure"],"sourceRoot":"webpack:///","sources":["./src/app/modules/main-application/boards/store/boards.selectors.ts","./src/app/modules/main-application/inspections/pages/space-template/store/space-template.selectors.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/portfolio/components/portfolio-header/portfolio-header.component.ts","./src/app/modules/main-application/management/components/portfolio/components/portfolio-header/portfolio-header.component.html","./src/app/modules/main-application/management/components/portfolio/components/portfolio-header/portfolio-header.module.ts","./src/app/modules/main-application/management/components/portfolio/components/unit-details/components/unit-details-description-section/unit-details-description-section.module.ts","./src/app/modules/main-application/management/components/portfolio/components/unit-details/components/unit-details-inspections/unit-details-inspections.module.ts","./src/app/modules/main-application/management/components/portfolio/components/unit-details/components/unit-details-pictures-section/unit-details-pictures-section.module.ts","./src/app/modules/main-application/management/components/portfolio/components/unit-details/components/unit-details-property-section/unit-details-property-section.module.ts","./src/app/modules/main-application/management/components/portfolio/components/unit-details/unit-details.module.ts","./src/app/modules/main-application/management/components/system-configuration/store/system-configuration.selectors.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/shared/constants/inspection-type-list.const.ts","./src/app/modules/shared/enums/route-data.ts","./src/app/modules/ui-components/components/animation/animation.component.html","./src/app/modules/ui-components/components/animation/animation.component.ts","./src/app/modules/ui-components/components/animation/animation.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.html","./src/app/modules/widgets/common-abstract-widget/just-done-widget/just-done-widget.component.ts","./src/app/modules/widgets/open-api.service.ts","./src/app/modules/widgets/translate-code.pipe.ts"],"sourcesContent":["import { createFeatureSelector, createSelector } from '@ngrx/store';\n\nimport * as fromBoards from './boards.reducer';\n\nexport const selectBoardsState = createFeatureSelector(fromBoards.boardsFeatureKey);\n\nexport const selectBoardList = createSelector(selectBoardsState, state => state.boards);\nexport const selectBoardListLoading = createSelector(selectBoardsState, state => state.boardsLoading);\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\n\nimport * as fromSpaceTemplate from './space-template.reducer';\n\nexport const selectSpaceTemplateState = createFeatureSelector(\n fromSpaceTemplate.spaceTemplateFeatureKey\n);\n\nexport const selectSpaceTemplates = createSelector(\n selectSpaceTemplateState,\n spaceTemplateState => spaceTemplateState.listItems\n);\n\nexport const selectSpaceTemplatesLoading = createSelector(\n selectSpaceTemplateState,\n spaceTemplateState => spaceTemplateState.listItemsLoading\n);\n\nexport const selectTemplateUpdate = createSelector(\n selectSpaceTemplateState,\n spaceTemplateState => spaceTemplateState.entityUpdateOngoing\n);\n\nexport const selectTemplateDeleteOngoing = createSelector(\n selectSpaceTemplateState,\n spaceTemplateState => spaceTemplateState.deleteEntityOngoing\n);\n\nexport const selectCategories = createSelector(\n selectSpaceTemplateState,\n spaceTemplateState => spaceTemplateState.categories\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 { IconComponent } from '@ui-components/components/icon/icon.component';\n\nimport { ManagementCardComponent } from './management-card.component';\n\n@NgModule({\n declarations: [ManagementCardComponent],\n exports: [ManagementCardComponent],\n imports: [CommonModule, IconComponent],\n})\nexport class ManagementCardModule {}\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 { IconComponent } from '@ui-components/components/icon/icon.component';\n\nimport { UnitDetailsInspectionsComponent } from './unit-details-inspections.component';\n\n@NgModule({\n declarations: [UnitDetailsInspectionsComponent],\n imports: [\n CommonModule,\n IconComponent,\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 { IconComponent } from '@ui-components/components/icon/icon.component';\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 IconComponent,\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 { IconComponent } from '@ui-components/components/icon/icon.component';\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, IconComponent, 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 { 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 { IconComponent } from '@ui-components/components/icon/icon.component';\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 IconComponent,\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 { 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 { 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\nSerializer.addProperty('page', {\n name: 'pageType',\n category: 'general',\n type: 'string',\n readOnly: true,\n visibleIndex: 4,\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 { InspectionType } from '@main-application/inspections/models/rest-inspections-model.interface';\nimport { IRadioButtonOption } from '@shared/interfaces/radio-button-option.interface';\n\nexport const InspectionTypeListConst: IRadioButtonOption[] = [\n {\n value: InspectionType.MoveOutVacant,\n label: 'Move-out Vacant',\n sort: 0,\n description:\n 'A thorough inspection, performed upon resident move in, which documents and establishes a baseline for unit condition.',\n },\n {\n value: InspectionType.CustomInspection,\n label: 'Custom',\n sort: 1,\n },\n {\n value: InspectionType.MoveOutOccupied,\n label: 'Move-out Occupied',\n sort: 2,\n disabled: true,\n },\n {\n value: InspectionType.MoveIn,\n sort: 3,\n label: 'Move-in',\n disabled: true,\n },\n {\n value: InspectionType.Periodic,\n sort: 4,\n label: 'Periodic',\n disabled: true,\n },\n {\n value: InspectionType.Annual,\n sort: 5,\n label: 'Annual',\n disabled: true,\n },\n {\n value: InspectionType.MaintenanceCheck,\n sort: 6,\n label: 'Maintenance',\n disabled: true,\n },\n {\n value: InspectionType.Diligence,\n sort: 7,\n label: 'Diligence',\n disabled: true,\n },\n];\n","export enum RouteData {\n BREADCRUMB = 'breadcrumb',\n BREADCRUMB_ICON = 'breadcrumbIcon',\n BACK_TO_PARENT_BUTTON = 'backToParentButton',\n DASHBOARD_VIEW_TYPE = 'dashboardViewType',\n SOURCE_VIEW = 'sourceView',\n APPLIANCE_ID = 'applianceId',\n DASHBOARD_SOURCE = 'dashboardSource',\n PROPERTY_ID = 'propertyId',\n PORTFOLIO_ID = 'portfolioId',\n BULK_SECTION_ID = 'bulkSectionId',\n TICKET_ID = 'ticketId',\n COMMENT_ID = 'commentId',\n KANBAN_SECTION = 'kanban-section',\n TURNOVER_OVERVIEW_STATE = 'turnover-overview-state',\n WORKFLOW_STEP = 'workflow-step',\n}\n","
\n \n
\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\nimport { AnimationOptions } from 'ngx-lottie';\n\nimport { ComponentAbstract } from '@app/components/abstract/component.abstract';\nimport { Animation } from '@shared/enums/animation';\n\n@Component({\n selector: 'app-animation',\n templateUrl: './animation.component.html',\n styleUrls: ['./animation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AnimationComponent extends ComponentAbstract implements OnInit {\n options: AnimationOptions;\n\n @Input() animationItem: Animation = Animation.WHITE_LOGO;\n @Input() attrWidth = '200px';\n @Input() attrHeight = '200px';\n @Input() loop = true;\n\n constructor(protected cdr: ChangeDetectorRef) {\n super(cdr);\n }\n\n ngOnInit(): void {\n this.options = this.getConfig();\n }\n\n private getConfig(): AnimationOptions {\n return { loop: this.loop, path: this.getConfigPath() };\n }\n\n private getConfigPath(): string {\n const configPath = '../../../../../assets/animations/';\n switch (this.animationItem) {\n case Animation.WHITE_LOGO: {\n return `${configPath}logo_white.json`;\n }\n case Animation.BLACK_LOGO: {\n return `${configPath}logo_black.json`;\n }\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { LottieModule } from 'ngx-lottie';\n\nimport { AnimationComponent } from './animation.component';\n\n@NgModule({\n declarations: [AnimationComponent],\n imports: [CommonModule, LottieModule],\n exports: [AnimationComponent],\n})\nexport class AnimationModule {}\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 { IconComponent } from '@ui-components/components/icon/icon.component';\n\nimport { TableActionButtonsComponent } from './table-action-buttons.component';\n\n@NgModule({\n declarations: [TableActionButtonsComponent],\n exports: [TableActionButtonsComponent],\n imports: [CommonModule, MatButtonModule, IconComponent, 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","
\n
\n
\n \n
\n
\n \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","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":[]}