{"version":3,"file":"820.29cc1c834042e6a6.js","mappings":"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","names":["i0","ctx_r0","value","MainFiltersConfirmationDialogComponent","constructor","dialogRef","data","this","title","message","valueType","close","action","ngOnInit","i1","MAT_DIALOG_DATA","selectors","decls","vars","consts","template","rf","ctx","MainFiltersConfirmationDialogComponent_span_5_Template","$event","_r1","ctx_r1","filterButtonClick","_r4","filterSaveAsMethod","checkSaveFilterDialogBtnStatus","getSelectedSavedFilterName","_r5","filterSaveText","_r3","filterMouseLeaveEvent","MainFiltersComponent_div_4_div_7_Template","MainFiltersComponent_div_4_mat_form_field_9_Template","cancelSaveFilters","saveSelectedFilters","filterSavedErrorMsg","showSaveAsSelectedFiltersOptions","saveAsNewFilter","isSaveFilterDialogBtnDisabled","item_r9","_r8","item","savedItemDelete","filterName","_r7","selectedSavedFilters","onItemSelectSavedFilters","onItemDeSelectSavedFilters","onSelectAll","onDeSelectAll","setContainerHeight","savedFilters","length","settingsSavedFilters","enableSearchFilter","MainFiltersComponent_div_6_div_5_ng_template_3_Template","_r10","item_r11","$implicit","roleSelectedItemArray","onSubFilterChange","roleName","roleItemArray","settings","enableCheckAll","disableStatus","convertToCamelcase","roleNameDisplay","_c0","_r12","staffPositionSelectedItemArray","staffPositionArray","staffpositionDdlSettings","MainFiltersComponent_div_6_div_11_div_3_div_1_Template","_r13","employeeSelectedItemArray","employeeArray","isStaffPosition","MainFiltersComponent_div_6_div_11_div_1_Template","MainFiltersComponent_div_6_div_11_div_2_Template","MainFiltersComponent_div_6_div_11_div_3_Template","isHidden","isEmployee","_r6","MainFiltersComponent_div_6_div_5_Template","selectedLocations","onMainFilterChange","locationFilterItems","settingsLocations","MainFiltersComponent_div_6_div_11_Template","clearAllUnappliedFilters","filterSaveBtnClick","applyLocationsClick","locationPointerEvent","isSaveFilterBtnDisabled","isApplyFilterBtnDisabled","_r14","chip_r15","chipIconClick","MainFiltersComponent_div_7_span_1_mat_chip_icon_4_Template","chipName","readonly","_r16","clearAllSelection","MainFiltersComponent_div_7_span_1_Template","MainFiltersComponent_div_7_span_2_Template","filterChipsToDisplay","MainFiltersComponent","_filterService","_reusableFunctions","_toastService","_currentUserStateService","_router","dialog","elementRef","tempLocations","finalFiltersToPages","filtersOutput","EventEmitter","undefined","isFilterDialogOpen","isSaveFilterDialogOpen","hideFilterButton","hierarchyCacheInfo","HierarchyFiltersCustomOptions","url","split","hierarchyCachePageInfo","getHierarchyCachePageInfo","setCurrentFilters","setDdlSettings","updateFilterChips","checkButtonDisabledStatus","getPageCache","allHierarchyCache","hierarchyGroupId","pageCache","excludeEmployee","filter","currentFilters","forEach","selectedLocationItem","originalEmployeeSelection","roleLevel","originalSelection","setRoleDisplayName","applyInnitialSettings","getPosition","subscribe","push","levelList","getUniqueItemList","topLevel","getTopLevel","populateTopLocationDetails","updateSubDDLs","locInfo","locInfoCopy","Object","assign","defaultPosition","showPosition","currentUser","userAccessLevel","showFilterButton","event","getSavedFilters","getUsersAllLocations","employeeType","setLocationData","error","Error","savedFiltersDdlitems","savedFilterItem","JSON","parse","filterString","saveHierarchyCache","getHierarchyFilters","emit","saveHierarchyFiltersToCache","getRequiredHierarchyItems","requiredLocationData","map","obj","minRequiredList","loc","isDirty","getEmptyAndNonEmptyLevels","firstEmptyLevel","lastNonEmptyLevel","lastNonEmptyWhenEmployeeNonEmpty","location","arrayNames","getArrayNames","selectArrayName","index","findIndex","setInitialDisableStatus","roleLevelList","getSortedRoleLevelList","idx","topLocation","find","setindividualDdlDisableStatus","roleLevelAtChange","nextLocation","currLocation","locationSubFiters","subLocations","sort","a","b","sortAlphaNumeric","employee","subLocation","hierarchyName","hierarchyIdentifier","employeeIdentifier","isSubFilter","filterDefaultText","labelKey","primaryKey","showLimit","singleSelection","enableSearch","showCheckbox","enableFilterSelectAll","text","selectAllText","unSelectAllText","filterUnSelectAllText","badgeShowLimit","classes","disabled","position","noDataLabel","levelsList","topLevelName","topLevelNumber","levelName","level","isMainFilter","levelAtChange","roleInfo","isChipClic","parseInt","toString","roleLevelBefore","hasEmployeeDdl","locationCount","isFilterServiceCalled","selection","count","getSubLocationDetails","uniqueRoleNames","selected","tempLoc","concat","setFilterOptionList","setEmployeesDdl","resetBottomDdls","roleInf","employeeDdlInfo","selectedVals","getPreFilterToGetEmployees","staffInf","getEmployeeByPosition","stringify","staffingKey","filterType","updateEmployeeDdl","isEmployeeTopLevel","getEmployeeDetails","employeeData","setLocationItems","lowestLocationWithSelection","employeeFilters","subLoc","Hierarchy","rolename","hierarchyidentifier","tempLocation","locationDetails","checkCurrentSelectionInAvailableList","hideDDl","topRole","getLocationDetails","getDefaultText","roleDisplayName","toCamelCase","userLocation","selectedLocation","ddlDefaultText","setEmployeeDdlSetting","emp","mainArrayName","hierarchyId","selectArray","mainArray","originalSelectArray","tempSelect","getCommonItemsFrom2Arrays","sele","main","initializeLocationObject","addSelectAllBtn","toLowerCase","collectiveRun","isDeleting","tempSelectedLocations","uniqueRoleLevels","locationItems","elementId","isEmpPositionChanged","setContainerHeightByItemsSelected","chip","hierarchyCache","setHierarchyFiltersToSave","hierarchyCachePlaceHolder","overrideExistingSavedFilters","filterSaveName","success","ddlArea","document","getElementById","inputArea","getElementsByClassName","inputAreaDdl","style","paddingBottom","clientHeight","isOpen","arrayLength","isSearchBox","isSelectAllBox","heightSearchBox","height1ListItem","heightAdjustment","setTimeout","filterItem","open","id","replace","afterClosed","result","deleteSavedFilters","savedFilterKey","warningAlert","isSavedFilterSelected","onClick","nativeElement","contains","target","i2","i3","i4","i5","i6","hostBindings","MainFiltersComponent_button_2_Template","MainFiltersComponent_div_4_Template","MainFiltersComponent_div_6_Template","MainFiltersComponent_div_7_Template","moduleLink","linkTitle","_r2","link_r3","PageHeadlineComponent_div_10_div_1_Template","linkArray","showLink","PageHeadlineComponent","routerUrl","navigate","then","inputs","module","moduleIcon","pageTitle","PageHeadlineComponent_span_8_Template","PageHeadlineComponent_div_9_Template","PageHeadlineComponent_div_10_Template"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./src/app/modules/shared/components/main-filters-confirmation-dialog/main-filters-confirmation-dialog.component.html","./src/app/modules/shared/components/main-filters-confirmation-dialog/main-filters-confirmation-dialog.component.ts","./src/app/modules/shared/components/main-filters/main-filters.component.html","./src/app/modules/shared/components/main-filters/main-filters.component.ts","./src/app/modules/shared/components/page-headline/page-headline.component.html","./src/app/modules/shared/components/page-headline/page-headline.component.ts"],"sourcesContent":["\n {{ title }}\n
\n {{ message }}\n {{ value | mask: '(000) 000-0000' }}\n
\n \n \n \n \n
\n","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\n@Component({\n selector: 'app-main-filters-confirmation-dialog',\n templateUrl: './main-filters-confirmation-dialog.component.html',\n styleUrls: ['./main-filters-confirmation-dialog.component.scss'],\n})\nexport class MainFiltersConfirmationDialogComponent implements OnInit {\n title: string;\n message: string;\n value: string;\n valueType: string;\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: any\n ) {\n this.title = data.title;\n this.message = data.message;\n this.value = data.value;\n this.valueType = data.valueType;\n }\n\n close(action: string) {\n this.dialogRef.close(action);\n }\n\n ngOnInit(): void {}\n}\n","
\n
\n \n Filter\n \n
\n
\n \n
\n
\n Save Filter\n {{ filterSavedErrorMsg }}\n
\n
\n \n
\n Save as:\n {{ getSelectedSavedFilterName() }}\n
\n
\n Save as a new name\n
\n \n
\n
\n \n \n \n
\n
\n \n Cancel\n \n \n SAVE\n \n
\n
\n
\n
\n
\n\n
\n \n \n
\n
Filter Dashboard
\n 0\"\n >\n \n \n \n \n \n \n \n \n
\n
\n Filter By\n
\n \n \n \n
\n \n
\n
\n \n
\n {{ convertToCamelcase(item.roleNameDisplay) }}\n
\n \n \n
\n \n
Position
\n \n \n
\n \n
\n {{ convertToCamelcase(item.roleNameDisplay) }}\n
\n \n \n
\n
\n \n
\n \n Clear All\n \n \n SAVE AS\n \n \n APPLY\n \n
\n \n \n \n \n \n
0\">\n \n \n {{ chip.chipName }}\n \n \n \n 1 && !readonly\"\n >Clear All\n
\n\n","import {\n Component,\n OnInit,\n Output,\n EventEmitter,\n Input,\n HostListener,\n ElementRef,\n} from '@angular/core';\nimport {\n UserLocation,\n UserLocationToSave,\n SavedFilters,\n IHierachyFilterCacheUrlInfo,\n IStaffPosition,\n IHierachyFilterCache,\n IUserEmployee,\n PageLocationFilters,\n ILocationItem,\n IDddlSettings,\n} from '../../interfaces/user-location';\nimport { FiltersService } from '../../services/filters.service';\nimport { ReusableFunctions } from '../../classes/reusable-functions';\nimport { ToastService } from '../../services/toast.service';\nimport { CurrentUserStateService } from '../../services/current-user-state.service';\nimport { Router } from '@angular/router';\nimport { HierarchyFiltersCustomOptions } from './hierarchy-filter-options/hierarchy-flters-custom-options';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MainFiltersConfirmationDialogComponent } from '../main-filters-confirmation-dialog/main-filters-confirmation-dialog.component';\n\n@Component({\n selector: 'main-filters',\n templateUrl: './main-filters.component.html',\n styleUrls: ['./main-filters.component.scss'],\n})\nexport class MainFiltersComponent implements OnInit {\n filterChipsToDisplay: ILocationItem[] = [];\n savedFilters: SavedFilters[] = [];\n selectedSavedFilters: SavedFilters[] = [];\n settingsSavedFilters: IDddlSettings = {};\n locationFilterItems: UserLocation[] = [];\n selectedLocations: UserLocation[] = [];\n settingsLocations: IDddlSettings = {};\n isSaveFilterBtnDisabled = true;\n isApplyFilterBtnDisabled = true;\n tempLocations: UserLocation[] = [];\n filterSaveText: string;\n filterSavedErrorMsg = '';\n locationPointerEvent = 'auto';\n finalFiltersToPages = '';\n showFilterButton: boolean;\n allHierarchyCache: UserLocation[];\n hierarchyCachePageInfo: IHierachyFilterCacheUrlInfo;\n hierarchyCacheInfo: HierarchyFiltersCustomOptions;\n isFilterDialogOpen: boolean;\n isSaveFilterDialogOpen: boolean;\n filterSaveAsMethod: 'overrideExisting' | 'saveAsNew';\n saveAsNewFilter: boolean;\n isSaveFilterDialogBtnDisabled: boolean;\n\n @Output() filtersOutput: EventEmitter = new EventEmitter();\n @Input() readonly?: boolean;\n\n constructor(\n private _filterService: FiltersService,\n private _reusableFunctions: ReusableFunctions,\n private _toastService: ToastService,\n private _currentUserStateService: CurrentUserStateService,\n private _router: Router,\n public dialog: MatDialog,\n private elementRef: ElementRef\n ) {}\n\n ngOnInit() {\n if (this.readonly == null || this.readonly == undefined) {\n this.readonly = false;\n }\n\n this.isFilterDialogOpen = false;\n this.isSaveFilterDialogOpen = false;\n this.isSaveFilterDialogBtnDisabled = true;\n\n if (this.hideFilterButton()) {\n this.hierarchyCacheInfo = new HierarchyFiltersCustomOptions();\n let url = this._router.url.split('?')[0];\n this.hierarchyCachePageInfo = this.hierarchyCacheInfo.getHierarchyCachePageInfo(url);\n this.setCurrentFilters();\n this.settingsSavedFilters = this.setDdlSettings(\n 'Saved Filters',\n 'filterName',\n 'savedFilterKey',\n 6,\n true,\n true,\n false\n );\n this.settingsLocations = this.setDdlSettings(\n 'Select Filter',\n 'roleNameDisplay',\n 'roleLevel',\n 10,\n false,\n false,\n true\n );\n this.filterChipsToDisplay = this.updateFilterChips(this.selectedLocations);\n this.checkButtonDisabledStatus();\n }\n }\n\n getPageCache(): UserLocation[] {\n this.allHierarchyCache = this.hierarchyCacheInfo.getPageCache(\n this.hierarchyCachePageInfo.hierarchyGroupId,\n null\n );\n let pageCache: UserLocation[] = [];\n if (this.allHierarchyCache.length > 0) {\n if (this.hierarchyCachePageInfo.excludeEmployee) {\n pageCache = this.allHierarchyCache.filter((item) => item.isEmployee != true);\n } else {\n pageCache = this.allHierarchyCache;\n }\n }\n return pageCache;\n }\n\n setCurrentFilters() {\n this.selectedLocations = [];\n let currentFilters = this.getPageCache();\n if (currentFilters.length > 0) {\n currentFilters.forEach((item) => {\n let selectedLocationItem: UserLocation = {\n isEmployee: item.isEmployee,\n employeeSelectedItemArray: item.employeeSelectedItemArray,\n originalEmployeeSelection: item.employeeSelectedItemArray,\n roleLevel: item.roleLevel,\n roleName: item.roleName,\n originalSelection: item.roleSelectedItemArray,\n roleSelectedItemArray: item.roleSelectedItemArray,\n roleItemArray: [],\n employeeArray: [],\n roleNameDisplay: this.setRoleDisplayName(item),\n isStaffPosition: item.isStaffPosition,\n staffPositionArray: [],\n staffPositionSelectedItemArray: item.staffPositionSelectedItemArray,\n };\n this.applyInnitialSettings(selectedLocationItem);\n\n if (selectedLocationItem.isStaffPosition) {\n this._filterService.getPosition().subscribe((data) => {\n selectedLocationItem.staffPositionArray = data;\n });\n }\n this.selectedLocations.push(selectedLocationItem);\n });\n let levelList = this._reusableFunctions.getUniqueItemList(\n this.selectedLocations,\n 'roleName'\n );\n let topLevel: UserLocation = this.getTopLevel(levelList)[2];\n this.populateTopLocationDetails(topLevel, false);\n this.updateSubDDLs(true, topLevel.roleLevel, topLevel);\n }\n }\n\n setRoleDisplayName(locInfo: UserLocation | UserLocationToSave) {\n let locInfoCopy = Object.assign({}, locInfo);\n let roleName = locInfoCopy.roleName;\n if (locInfo.isEmployee) {\n let defaultPosition = this.hierarchyCachePageInfo.defaultPosition;\n roleName = defaultPosition\n ? defaultPosition\n : !this.hierarchyCachePageInfo.excludeEmployee &&\n !this.hierarchyCachePageInfo.showPosition\n ? 'Originator'\n : locInfoCopy.roleName;\n }\n return roleName;\n }\n\n hideFilterButton() {\n if (this._currentUserStateService.currentUser.userAccessLevel > 1) {\n this.showFilterButton = true;\n return true;\n }\n this.showFilterButton = false;\n return false;\n }\n\n filterButtonClick(event) {\n this.isFilterDialogOpen = !this.isFilterDialogOpen;\n if (this.isFilterDialogOpen) {\n this.getSavedFilters();\n //this.selectedSavedFilters = [];\n this._filterService\n .getUsersAllLocations(this.hierarchyCachePageInfo.employeeType)\n .subscribe(\n (data) => this.setLocationData(data),\n (error) => {\n throw new Error(error);\n }\n );\n }\n }\n\n getSavedFilters() {\n this._filterService.getSavedFilters().subscribe(\n (data) => {\n let savedFiltersDdlitems = [];\n data.forEach((savedFilterItem) => {\n /*\n NOTE: If the Hierarchy filters structure is significantly changed, \n the saved filters should be deleted from the database to avoid some isuues.\n */\n let savedFilters = this.hierarchyCacheInfo.getPageCache(\n this.hierarchyCachePageInfo.hierarchyGroupId,\n JSON.parse(savedFilterItem.filterString),\n true\n );\n if (savedFilters && savedFilters.length > 0) {\n savedFiltersDdlitems.push(savedFilterItem);\n }\n });\n this.savedFilters = savedFiltersDdlitems;\n },\n (error) => {\n throw new Error(error);\n }\n );\n }\n\n setLocationData(data: UserLocation[]) {\n this.locationFilterItems = [];\n data.forEach((item) => {\n if (!(item.roleName === 'Employee' && this.hierarchyCachePageInfo.excludeEmployee)) {\n item.isEmployee = item.roleName === 'Employee';\n this.locationFilterItems.push({\n roleName: item.roleName,\n roleLevel: item.roleLevel,\n roleNameDisplay: this.setRoleDisplayName(item),\n });\n }\n });\n }\n\n applyLocationsClick() {\n this.filterChipsToDisplay = this.updateFilterChips(this.selectedLocations);\n this.checkButtonDisabledStatus();\n this.saveHierarchyCache();\n this.finalFiltersToPages = this._reusableFunctions.getHierarchyFilters();\n this.isFilterDialogOpen = !this.isFilterDialogOpen;\n this.filtersOutput.emit(this.finalFiltersToPages);\n }\n\n saveHierarchyCache() {\n this.hierarchyCacheInfo.saveHierarchyFiltersToCache(\n this.getRequiredHierarchyItems(),\n this.hierarchyCachePageInfo.hierarchyGroupId\n );\n }\n\n getRequiredHierarchyItems() {\n let requiredLocationData = this.selectedLocations.map((obj) => ({\n ...obj,\n }));\n let minRequiredList = [];\n\n for (let loc of requiredLocationData) {\n minRequiredList.push({\n employeeSelectedItemArray: loc.employeeSelectedItemArray,\n roleSelectedItemArray: loc.roleSelectedItemArray,\n staffPositionSelectedItemArray: loc.staffPositionSelectedItemArray,\n isStaffPosition: loc.isStaffPosition,\n isEmployee: loc.isEmployee,\n roleLevel: loc.roleLevel,\n roleName: loc.roleName,\n });\n }\n return minRequiredList;\n }\n\n checkButtonDisabledStatus() {\n let isDirty = false;\n if (this.selectedLocations.length > 0) {\n this.isSaveFilterBtnDisabled = false;\n this.selectedLocations.forEach((item) => {\n if (\n item.roleSelectedItemArray.length > 0 ||\n item.employeeSelectedItemArray.length > 0\n ) {\n isDirty = true;\n }\n });\n } else {\n this.isSaveFilterBtnDisabled = true;\n }\n\n if (isDirty || this.filterChipsToDisplay.length > 0) {\n this.isApplyFilterBtnDisabled = false;\n } else {\n this.isApplyFilterBtnDisabled = true;\n }\n }\n\n getEmptyAndNonEmptyLevels() {\n let firstEmptyLevel;\n let lastNonEmptyLevel;\n let lastNonEmptyWhenEmployeeNonEmpty;\n for (const location of this.selectedLocations) {\n const arrayNames = this.getArrayNames(location);\n\n if (location[arrayNames.selectArrayName].length > 0) {\n lastNonEmptyLevel = location.roleLevel;\n }\n\n if (location.isEmployee && location.employeeSelectedItemArray.length > 0) {\n let index = this.selectedLocations.findIndex(\n (item) => item.roleLevel === location.roleLevel\n );\n lastNonEmptyWhenEmployeeNonEmpty = this.selectedLocations[index - 1].roleLevel;\n } else {\n lastNonEmptyWhenEmployeeNonEmpty = lastNonEmptyLevel;\n }\n\n if (location[arrayNames.selectArrayName].length === 0) {\n firstEmptyLevel = location.roleLevel;\n break;\n }\n }\n return [firstEmptyLevel, lastNonEmptyLevel, lastNonEmptyWhenEmployeeNonEmpty];\n }\n\n setInitialDisableStatus() {\n const firstEmptyLevel = this.getEmptyAndNonEmptyLevels()[0];\n for (const location of this.selectedLocations) {\n if (location.roleLevel === firstEmptyLevel) {\n const roleLevelList = this.getSortedRoleLevelList();\n const idx = roleLevelList.findIndex((item) => item === location.roleLevel);\n const topLocation = this.selectedLocations.find(\n (item) => item.roleLevel === roleLevelList[idx - 1]\n );\n location.disableStatus = 'auto';\n\n if (topLocation) {\n topLocation.disableStatus = 'auto';\n }\n } else {\n location.disableStatus = 'none';\n }\n }\n }\n\n setindividualDdlDisableStatus(roleLevelAtChange) {\n const roleLevelList = this.getSortedRoleLevelList();\n const idx = roleLevelList.findIndex((item) => item === roleLevelAtChange);\n const topLocation = this.selectedLocations.find(\n (item) => item.roleLevel === roleLevelList[idx - 1]\n );\n const nextLocation = this.selectedLocations.find(\n (item) => item.roleLevel === roleLevelList[idx + 1]\n );\n const currLocation = this.selectedLocations.find(\n (item) => item.roleLevel === roleLevelAtChange\n );\n const arrayNames = this.getArrayNames(currLocation);\n\n currLocation.disableStatus = 'auto';\n if (currLocation[arrayNames.selectArrayName].length > 0) {\n if (nextLocation) {\n nextLocation.disableStatus = 'auto';\n }\n if (topLocation) {\n topLocation.disableStatus = 'none';\n }\n } else {\n if (nextLocation) {\n nextLocation.disableStatus = 'none';\n }\n if (topLocation) {\n topLocation.disableStatus = 'auto';\n }\n }\n }\n\n updateFilterChips(selectedLocations) {\n const locationSubFiters: ILocationItem[] = [];\n\n for (const location of selectedLocations) {\n if (location.isEmployee && !this.hierarchyCachePageInfo.excludeEmployee) {\n if (location.employeeSelectedItemArray.length > 0) {\n const subLocations = location.employeeSelectedItemArray.sort((a, b) =>\n this._reusableFunctions.sortAlphaNumeric(a.employee, b.employee)\n );\n\n for (const subLocation of subLocations) {\n locationSubFiters.push({\n roleLevel: location.roleLevel,\n roleName: location.roleName,\n chipName: subLocation.employee,\n hierarchyName: undefined,\n hierarchyIdentifier: undefined,\n employeeIdentifier: subLocation.employeeIdentifier,\n employee: subLocation.employee,\n isSubFilter: true,\n isEmployee: location.isEmployee,\n disableStatus: 'auto',\n });\n }\n }\n } else if (!location.isEmployee) {\n if (location.roleSelectedItemArray.length > 0) {\n const subLocations = location.roleSelectedItemArray.sort((a, b) =>\n this._reusableFunctions.sortAlphaNumeric(a.hierarchyName, b.hierarchyName)\n );\n\n for (const subLocation of subLocations) {\n locationSubFiters.push({\n roleLevel: subLocation.roleLevel,\n roleName: subLocation.roleName,\n chipName: subLocation.hierarchyName,\n hierarchyName: subLocation.hierarchyName,\n hierarchyIdentifier: subLocation.hierarchyIdentifier,\n employeeIdentifier: subLocation.employeeIdentifier,\n employee: subLocation.employee,\n isSubFilter: true,\n isEmployee: location.isEmployee,\n disableStatus: subLocation.disableStatus,\n });\n }\n }\n }\n }\n return locationSubFiters;\n }\n\n getSortedRoleLevelList(): Array {\n return this._reusableFunctions\n .getUniqueItemList(this.selectedLocations, 'roleLevel')\n .sort((a, b) => b - a);\n }\n\n setDdlSettings(\n filterDefaultText: string,\n labelKey: string,\n primaryKey: string,\n showLimit: number,\n singleSelection = false,\n enableSearch = true,\n showCheckbox = true,\n enableFilterSelectAll = false\n ): IDddlSettings {\n return Object.assign(\n {},\n {\n singleSelection: singleSelection,\n text: filterDefaultText,\n selectAllText: 'Select All',\n unSelectAllText: 'Deselect All',\n filterUnSelectAllText: 'Deselect all filtered results',\n enableSearchFilter: enableSearch,\n badgeShowLimit: showLimit,\n enableCheckAll: enableFilterSelectAll,\n labelKey: labelKey,\n primaryKey: primaryKey,\n classes: '',\n showCheckbox: showCheckbox,\n disabled: false,\n position: 'bottom',\n noDataLabel: 'No results found',\n }\n );\n }\n\n getTopLevel(levelsList: Array): Array {\n let topLevelName = '';\n let topLevelNumber = 0;\n let topLevel: UserLocation;\n\n for (const levelName of levelsList) {\n const location = this.selectedLocations.find((item) => item.roleName === levelName);\n if (location) {\n const level = location.roleLevel;\n if (level > topLevelNumber) {\n topLevelNumber = level;\n topLevelName = location.roleName;\n topLevel = location;\n }\n }\n }\n return [topLevelName, topLevelNumber, topLevel];\n }\n\n updateSubDDLs(\n isMainFilter: boolean,\n levelAtChange: any,\n roleInfo: UserLocation,\n isChipClic = false\n ) {\n let roleLevelAtChange = parseInt(levelAtChange.toString());\n const roleLevelList = this.getSortedRoleLevelList();\n const index = roleLevelList.findIndex(\n (item) => item.toString() === roleLevelAtChange.toString()\n );\n let roleLevelBefore = 0;\n\n if (roleLevelList[0]) {\n if (roleLevelAtChange.toString() === roleLevelList[0].toString()) {\n roleLevelBefore = parseInt(roleLevelList[0].toString());\n } else {\n if (index < 0) {\n for (let level of roleLevelList) {\n if (level.toString() > roleLevelAtChange.toString()) {\n roleLevelBefore = parseInt(level.toString());\n }\n }\n } else {\n roleLevelBefore = parseInt(roleLevelList[index - 1].toString());\n }\n }\n\n if (isMainFilter) {\n if (roleLevelAtChange.toString() === roleLevelList[0].toString() || index < 0) {\n roleLevelAtChange = parseInt(roleLevelList[0].toString());\n } else {\n roleLevelAtChange = parseInt(roleLevelList[index - 1].toString());\n }\n }\n }\n\n this.tempLocations = [];\n\n for (const loc of this.selectedLocations) {\n loc.originalSelection = loc.roleSelectedItemArray;\n loc.originalEmployeeSelection = loc.employeeSelectedItemArray;\n\n if (loc.roleLevel.toString() < roleLevelAtChange.toString()) {\n this.tempLocations.push({\n roleName: loc.roleName,\n roleItemArray: [],\n roleSelectedItemArray: [],\n employeeArray: [],\n employeeSelectedItemArray: [],\n roleLevel: loc.roleLevel,\n roleNameDisplay: this.setRoleDisplayName(loc),\n staffPositionArray: [],\n staffPositionSelectedItemArray: [],\n });\n }\n }\n\n let hasEmployeeDdl = this.selectedLocations.find((item) => item.isEmployee) ? true : false;\n let locationCount = 0;\n let isFilterServiceCalled = false;\n for (const selection of this.selectedLocations) {\n locationCount += 1;\n\n if (selection.roleLevel.toString() <= roleLevelBefore.toString()) {\n if (selection.roleSelectedItemArray.length > 0 && !selection.isEmployee) {\n selection.roleSelectedItemArray.sort((a, b) =>\n this._reusableFunctions.sortAlphaNumeric(a.hierarchyName, b.hierarchyName)\n );\n\n let count = 0;\n for (const loc of selection.roleSelectedItemArray) {\n isFilterServiceCalled = true;\n\n this._filterService\n .getSubLocationDetails(selection.roleName, loc.hierarchyIdentifier)\n .subscribe(\n (subLocations) => {\n count += 1;\n const uniqueRoleNames =\n this._reusableFunctions.getUniqueItemList(\n subLocations,\n 'roleName'\n );\n const topLevelName = this.getTopLevel(uniqueRoleNames);\n const selected = subLocations.filter(\n (item) => item.roleName === topLevelName[0]\n );\n const tempLoc = this.tempLocations.find(\n (item) => item.roleName === topLevelName[0]\n );\n\n if (tempLoc) {\n tempLoc.roleItemArray =\n tempLoc.roleItemArray.concat(selected);\n tempLoc.roleItemArray = tempLoc.roleItemArray.sort((a, b) =>\n this._reusableFunctions.sortAlphaNumeric(\n a.hierarchyName,\n b.hierarchyName\n )\n );\n }\n\n let lastNonEmptyLevel = this.getEmptyAndNonEmptyLevels()[2];\n\n if (selection.roleSelectedItemArray.length === count) {\n this.setFilterOptionList();\n if (selection.roleLevel === lastNonEmptyLevel) {\n if (hasEmployeeDdl) {\n this.setEmployeesDdl(roleInfo, isChipClic);\n } else if (isChipClic) {\n this.applyLocationsClick();\n }\n }\n }\n },\n (error) => {\n throw new Error(error);\n }\n );\n }\n } else {\n this.resetBottomDdls(selection.roleLevel);\n if (\n isChipClic &&\n this.selectedLocations.length === locationCount &&\n !isFilterServiceCalled &&\n selection.employeeSelectedItemArray.length === 0\n ) {\n this.applyLocationsClick();\n }\n }\n\n if (\n isChipClic &&\n selection.isEmployee &&\n selection.employeeSelectedItemArray.length > 0 &&\n selection.roleLevel.toString() === roleLevelAtChange.toString() &&\n !isFilterServiceCalled\n ) {\n this.setEmployeesDdl(roleInfo, isChipClic);\n }\n }\n }\n }\n\n resetBottomDdls(roleLevel) {\n for (const location of this.selectedLocations) {\n if (location.roleLevel < roleLevel) {\n location.roleItemArray = [];\n location.employeeArray = [];\n location.roleSelectedItemArray = [];\n location.employeeSelectedItemArray = [];\n }\n }\n }\n\n setEmployeesDdl(roleInf: UserLocation, isChipClic = false) {\n let employeeDdlInfo = this.selectedLocations.find((item) => item.isEmployee === true);\n const selectedVals = this.getPreFilterToGetEmployees();\n if (employeeDdlInfo && employeeDdlInfo.isEmployee && !employeeDdlInfo.isHidden) {\n if (employeeDdlInfo.isStaffPosition) {\n let staffInf = employeeDdlInfo.staffPositionSelectedItemArray[0];\n if (staffInf) {\n this._filterService\n .getEmployeeByPosition(\n JSON.stringify(selectedVals),\n staffInf.staffingKey.toString(),\n this.hierarchyCachePageInfo?.filterType\n )\n .subscribe(\n (data) => {\n this.updateEmployeeDdl(employeeDdlInfo, data, isChipClic);\n },\n (error) => {\n throw new Error(error);\n }\n );\n }\n } else {\n let isEmployeeTopLevel = false;\n if (this.selectedLocations.length == 1) {\n isEmployeeTopLevel = true;\n }\n this._filterService\n .getEmployeeDetails(\n JSON.stringify(selectedVals),\n isEmployeeTopLevel,\n this.hierarchyCachePageInfo.employeeType\n )\n .subscribe(\n (data) => {\n this.updateEmployeeDdl(employeeDdlInfo, data.employeeData, isChipClic);\n },\n (error) => {\n throw new Error(error);\n }\n );\n }\n }\n }\n\n updateEmployeeDdl(loc: UserLocation, data: IUserEmployee[], isChipClic: boolean) {\n this.setLocationItems(data, loc, false);\n loc.employeeSelectedItemArray.sort((a, b) =>\n this._reusableFunctions.sortAlphaNumeric(a.employee, b.employee)\n );\n if (isChipClic) {\n this.applyLocationsClick();\n }\n }\n\n getPreFilterToGetEmployees(): PageLocationFilters[] {\n let lowestLocationWithSelection: UserLocation = {\n roleName: '',\n };\n const employeeFilters: PageLocationFilters[] = [];\n\n for (const location of this.selectedLocations) {\n if (location.roleSelectedItemArray && !location.isEmployee) {\n lowestLocationWithSelection = location;\n }\n }\n\n if (lowestLocationWithSelection.roleSelectedItemArray) {\n for (const subLoc of lowestLocationWithSelection.roleSelectedItemArray) {\n employeeFilters.push({\n Hierarchy: {\n rolename: lowestLocationWithSelection.roleName,\n hierarchyidentifier: subLoc.hierarchyIdentifier,\n },\n });\n }\n }\n return employeeFilters;\n }\n\n setFilterOptionList() {\n for (const tempLocation of this.tempLocations) {\n const locationDetails = this.selectedLocations.find(\n (item) => item.roleName === tempLocation.roleName\n );\n locationDetails.roleItemArray = tempLocation.roleItemArray.sort((a, b) =>\n this._reusableFunctions.sortAlphaNumeric(a.hierarchyName, b.hierarchyName)\n );\n locationDetails.roleSelectedItemArray = tempLocation.roleSelectedItemArray;\n if (locationDetails.roleItemArray.length === 0) {\n locationDetails.roleSelectedItemArray = [];\n }\n this.checkCurrentSelectionInAvailableList(locationDetails);\n }\n }\n\n populateTopLocationDetails(event: UserLocation, hideDDl: boolean) {\n let roleLevelList = [];\n roleLevelList = this.getSortedRoleLevelList();\n const topRole = this.selectedLocations.find((loc) => loc.roleLevel === roleLevelList[0]);\n\n if (topRole) {\n if (topRole.isEmployee) {\n this.setEmployeesDdl(topRole);\n } else {\n this._filterService.getLocationDetails(topRole.roleName).subscribe(\n (data) => this.setLocationItems(data, topRole, false),\n (error) => {\n throw new Error(error);\n }\n );\n }\n this.selectedLocations.sort((a, b) => b.roleLevel - a.roleLevel);\n }\n }\n\n getDefaultText(loc: UserLocation) {\n let roleDisplayName = this.setRoleDisplayName(loc);\n return 'Select ' + this._reusableFunctions.toCamelCase(roleDisplayName);\n }\n\n setLocationItems(data: Array, userLocation: UserLocation, hideDDl: boolean) {\n if (this.selectedLocations.length > 0) {\n const selectedLocation = this.selectedLocations.find(\n (obj) => obj.roleName === userLocation.roleName\n );\n\n if (!hideDDl) {\n if (userLocation.isEmployee) {\n let roleName = '';\n if (userLocation.isStaffPosition) {\n roleName = userLocation.staffPositionSelectedItemArray[0].position;\n } else {\n roleName = this.setRoleDisplayName(userLocation);\n }\n\n const ddlDefaultText =\n 'Select ' + this._reusableFunctions.toCamelCase(roleName);\n selectedLocation.employeeArray = data;\n this.setEmployeeDdlSetting(selectedLocation, ddlDefaultText);\n\n for (let emp of selectedLocation.employeeArray) {\n emp.roleName = userLocation.roleName;\n }\n this.checkCurrentSelectionInAvailableList(selectedLocation);\n } else {\n selectedLocation.roleItemArray = data;\n selectedLocation.roleItemArray.sort((a, b) =>\n this._reusableFunctions.sortAlphaNumeric(a.hierarchyName, b.hierarchyName)\n );\n }\n selectedLocation.isHidden = hideDDl;\n this.selectedLocations.sort((a, b) => b.roleLevel - a.roleLevel);\n }\n }\n }\n\n getArrayNames(locationDetails: UserLocation | ILocationItem) {\n let arrayNames = {\n selectArrayName: 'roleSelectedItemArray',\n mainArrayName: 'roleItemArray',\n hierarchyId: 'hierarchyIdentifier',\n originalSelection: 'originalSelection',\n };\n\n if (locationDetails.isEmployee) {\n arrayNames = {\n selectArrayName: 'employeeSelectedItemArray',\n mainArrayName: 'employeeArray',\n hierarchyId: 'employeeIdentifier',\n originalSelection: 'originalEmployeeSelection',\n };\n }\n return arrayNames;\n }\n\n checkCurrentSelectionInAvailableList(locationDetails: UserLocation) {\n const arrayNames = this.getArrayNames(locationDetails);\n let selectArray = locationDetails[arrayNames.selectArrayName];\n const mainArray = locationDetails[arrayNames.mainArrayName];\n const originalSelectArray = locationDetails[arrayNames.originalSelection];\n let tempSelect: any[] = [];\n\n if (mainArray.length > 0) {\n if (selectArray.length === 0 && originalSelectArray.length > 0) {\n selectArray = originalSelectArray;\n }\n\n tempSelect = this.getCommonItemsFrom2Arrays(\n mainArray,\n selectArray,\n arrayNames.hierarchyId\n );\n } else {\n this.resetBottomDdls(locationDetails.roleLevel);\n }\n locationDetails[arrayNames.selectArrayName] = tempSelect;\n }\n\n getCommonItemsFrom2Arrays(mainArray, selectArray, hierarchyId) {\n const tempSelect: any[] = [];\n for (const sele of selectArray) {\n for (const main of mainArray) {\n if (sele[hierarchyId] === main[hierarchyId]) {\n tempSelect.push(sele);\n }\n }\n }\n return tempSelect;\n }\n\n initializeLocationObject(location: UserLocation) {\n if (location) {\n location.employeeSelectedItemArray = [] as IUserEmployee[];\n location.roleSelectedItemArray = [] as ILocationItem[];\n location.roleItemArray = [] as ILocationItem[];\n location.employeeArray = [] as IUserEmployee[];\n location.staffPositionArray = [];\n location.staffPositionSelectedItemArray = [];\n this.applyInnitialSettings(location);\n }\n }\n\n setEmployeeDdlSetting(location: UserLocation, ddlDefaultText: string) {\n let addSelectAllBtn = false;\n let enableSearch = false;\n if (location && location.employeeArray && location.employeeArray.length > 15) {\n enableSearch = true;\n addSelectAllBtn = true;\n }\n\n location.settings = this.setDdlSettings(\n ddlDefaultText,\n 'employee',\n 'employeeIdentifier',\n 4,\n false,\n enableSearch,\n true,\n addSelectAllBtn\n );\n }\n\n applyInnitialSettings(location: UserLocation) {\n let roleDisplayName = this.setRoleDisplayName(location);\n const ddlDefaultText = 'Select ' + this._reusableFunctions.toCamelCase(roleDisplayName);\n this.setEmployeeDdlSetting(location, ddlDefaultText);\n\n if (location.roleLevel == 1) {\n location.isEmployee = true;\n\n location.isStaffPosition = this.hierarchyCachePageInfo.showPosition;\n if (location.isStaffPosition) {\n location.staffpositionDdlSettings = this.setDdlSettings(\n 'Select Position',\n 'position',\n 'staffingKey',\n 4,\n true,\n false,\n false\n );\n }\n } else {\n location.isEmployee = false;\n location.settings = this.setDdlSettings(\n ddlDefaultText,\n 'hierarchyName',\n 'hierarchyIdentifier',\n 4\n );\n }\n }\n\n onMainFilterChange(event: UserLocation) {\n this.initializeLocationObject(event);\n let roleDisplayName = this.setRoleDisplayName(event);\n if (event.isStaffPosition) {\n this._filterService.getPosition().subscribe((data) => {\n event.staffPositionArray = data;\n let defaultPosition = data.find(\n (item) => item.position.toLowerCase() === roleDisplayName.toLowerCase()\n );\n if (defaultPosition) {\n event.staffPositionSelectedItemArray = [defaultPosition];\n const ddlDefaultText =\n 'Select ' +\n this._reusableFunctions.toCamelCase(defaultPosition.position ?? '');\n this.setEmployeeDdlSetting(event, ddlDefaultText);\n } else {\n event.staffPositionSelectedItemArray = [];\n }\n this.collectiveRun(event);\n });\n } else {\n this.collectiveRun(event);\n }\n }\n\n collectiveRun(loc: UserLocation) {\n this.populateTopLocationDetails(loc, false);\n this.updateSubDDLs(true, loc.roleLevel, loc);\n this.checkButtonDisabledStatus();\n }\n\n onItemSelectSavedFilters(event: SavedFilters) {\n if (!event.isDeleting) {\n let savedFilters = this.hierarchyCacheInfo.getPageCache(\n this.hierarchyCachePageInfo.hierarchyGroupId,\n JSON.parse(event.filterString),\n true\n );\n\n let tempSelectedLocations: UserLocation[] = [];\n const uniqueRoleLevels = this._reusableFunctions.getUniqueItemList(\n savedFilters,\n 'roleLevel'\n );\n for (let loc of savedFilters) {\n let roleDisplayName = this.setRoleDisplayName(loc);\n let locationItems: UserLocation = {\n roleLevel: loc.roleLevel,\n roleName: loc.roleName,\n isEmployee: loc.isEmployee,\n roleSelectedItemArray: loc.roleSelectedItemArray,\n originalSelection: [],\n employeeSelectedItemArray: loc.employeeSelectedItemArray,\n originalEmployeeSelection: [],\n employeeArray: [],\n roleItemArray: [],\n isHidden: false,\n disableStatus: 'auto',\n roleNameDisplay: roleDisplayName,\n isStaffPosition: loc.isStaffPosition,\n staffPositionArray: [],\n staffPositionSelectedItemArray: loc.staffPositionSelectedItemArray,\n };\n\n this.applyInnitialSettings(locationItems);\n\n if (loc.isEmployee && loc.isStaffPosition) {\n this._filterService.getPosition().subscribe((data) => {\n locationItems.staffPositionArray = data;\n });\n }\n tempSelectedLocations.push(locationItems);\n }\n if (tempSelectedLocations.length > 0) {\n this.selectedLocations = tempSelectedLocations;\n this.populateTopLocationDetails(this.selectedLocations[0], false);\n this.updateSubDDLs(true, uniqueRoleLevels[0], this.selectedLocations[0]);\n this.checkButtonDisabledStatus();\n }\n }\n }\n\n onItemDeSelectSavedFilters(event) {\n this.checkButtonDisabledStatus();\n }\n\n onSelectAll(event) {\n this.checkButtonDisabledStatus();\n }\n onDeSelectAll(event) {\n this.checkButtonDisabledStatus();\n }\n\n onSubFilterChange(\n event: IStaffPosition | ILocationItem,\n roleInfo: UserLocation,\n elementId: string,\n isEmpPositionChanged = false\n ) {\n if (roleInfo.isStaffPosition && isEmpPositionChanged) {\n roleInfo.staffPositionSelectedItemArray = [event as IStaffPosition];\n this.setEmployeesDdl(roleInfo);\n } else {\n this.updateSubDDLs(false, roleInfo.roleLevel, roleInfo);\n }\n this.checkButtonDisabledStatus();\n this.setContainerHeightByItemsSelected(elementId);\n }\n\n chipIconClick(chip: ILocationItem) {\n let loc = this.selectedLocations.find((item) => item.roleName === chip.roleName);\n if (chip.isSubFilter) {\n const arrayNames = this.getArrayNames(chip);\n loc[arrayNames.selectArrayName] = loc[arrayNames.selectArrayName].filter(\n (item) => item[arrayNames.hierarchyId] !== chip[arrayNames.hierarchyId]\n );\n }\n\n if (this.filterChipsToDisplay.length === 0) {\n this.selectedLocations = [];\n this.applyLocationsClick();\n } else {\n this.updateSubDDLs(!chip.isSubFilter, loc.roleLevel, loc, true);\n }\n }\n\n getSelectedSavedFilterName() {\n return this.selectedSavedFilters[0]?.filterName ?? '';\n }\n\n checkSaveFilterDialogBtnStatus() {\n this.isSaveFilterDialogBtnDisabled = !(\n this.filterSaveAsMethod === 'overrideExisting' ||\n (this.filterSaveText && this.filterSaveText.length > 0)\n );\n }\n\n saveSelectedFilters() {\n let hierarchyCachePlaceHolder: IHierachyFilterCache;\n let hierarchyCache = this.hierarchyCacheInfo.setHierarchyFiltersToSave(\n this.getRequiredHierarchyItems(),\n hierarchyCachePlaceHolder,\n this.hierarchyCachePageInfo.hierarchyGroupId\n );\n\n let overrideExistingSavedFilters = this.filterSaveAsMethod === 'overrideExisting';\n let filterSaveName = overrideExistingSavedFilters\n ? this.getSelectedSavedFilterName()\n : this.filterSaveText;\n\n this._filterService\n .saveSelectedFilters(\n filterSaveName,\n JSON.stringify(hierarchyCache),\n overrideExistingSavedFilters\n )\n .subscribe(\n (success) => {\n if (success > 0) {\n this.filterSavedErrorMsg = '';\n this._toastService.success('Filters are saved successfully!');\n this.isSaveFilterDialogOpen = !this.isSaveFilterDialogOpen;\n } else {\n this.filterSavedErrorMsg = 'Please recheck your entry';\n }\n },\n (error) => {\n throw new Error(error);\n }\n );\n }\n\n cancelSaveFilters() {\n this.filterSavedErrorMsg = '';\n this.getSavedFilters();\n\n this.isSaveFilterDialogOpen = !this.isSaveFilterDialogOpen;\n this.isFilterDialogOpen = !this.isFilterDialogOpen;\n }\n\n setContainerHeightByItemsSelected(elementId: string) {\n let ddlArea = document.getElementById(elementId);\n if (ddlArea) {\n let inputArea = ddlArea.getElementsByClassName('selected-list').item(0);\n let inputAreaDdl = ddlArea.getElementsByClassName('dropdown-list').item(0);\n if (inputArea) {\n ddlArea.style.paddingBottom =\n inputAreaDdl.clientHeight + inputArea.clientHeight + 55 + 'px';\n }\n }\n }\n\n setContainerHeight(\n elementId: string,\n isOpen: boolean,\n arrayLength: number,\n isSearchBox = false,\n isSelectAllBox = false\n ) {\n let ddlArea = document.getElementById(elementId);\n if (ddlArea) {\n let inputArea = ddlArea.getElementsByClassName('selected-list').item(0);\n if (isOpen) {\n if (inputArea) {\n // TODO: this can be more simplified; see setContainerHeightByItemsSelected method\n let heightSearchBox = isSearchBox ? 76 : 0;\n heightSearchBox = isSelectAllBox ? heightSearchBox + 38 : heightSearchBox;\n let height1ListItem = 38;\n let heightMoreThan6Items = heightSearchBox + 6 * height1ListItem;\n let heightLessthan6Items = heightSearchBox + arrayLength * height1ListItem;\n let heightNoItems = 60 + heightSearchBox;\n let heightAdjustment = inputArea.clientHeight - 20;\n ddlArea.style.paddingBottom =\n (arrayLength === 0\n ? heightNoItems\n : arrayLength > 5\n ? heightMoreThan6Items + heightAdjustment\n : heightLessthan6Items + heightAdjustment) + 'px';\n }\n } else {\n setTimeout(() => {\n ddlArea.style.paddingBottom = '0px';\n }, 100);\n }\n }\n }\n\n clearAllSelection() {\n this.selectedLocations = [];\n this.applyLocationsClick();\n }\n\n clearAllUnappliedFilters() {\n if (this.filterChipsToDisplay.length > 0) {\n this.clearAllSelection();\n } else {\n this.selectedLocations = [];\n }\n this.isSaveFilterBtnDisabled = true;\n this.selectedSavedFilters = [];\n }\n\n filterSaveBtnClick() {\n this.filterSaveText = '';\n this.filterSavedErrorMsg = '';\n this.isFilterDialogOpen = !this.isFilterDialogOpen;\n this.isSaveFilterDialogOpen = !this.isSaveFilterDialogOpen;\n }\n\n savedItemDelete(filterItem: SavedFilters) {\n const dialogRef = this.dialog.open(MainFiltersConfirmationDialogComponent, {\n id: 'alert-dialog',\n data: {\n title: 'Delete filter?',\n message: 'Are you sure you want to delete the saved filter ${itemName}?'.replace(\n '${itemName}',\n filterItem.filterName\n ),\n },\n });\n\n dialogRef.afterClosed().subscribe((result) => {\n if (result === 'accept') {\n filterItem.isDeleting = true;\n this._filterService.deleteSavedFilters(filterItem.savedFilterKey).subscribe(\n (success) => {\n if (success > 0) {\n this.selectedSavedFilters = [];\n this._toastService.success(\n filterItem.filterName + ' was deleted successfully!'\n );\n this.savedFilters = this.savedFilters.filter(\n (item) => item.savedFilterKey !== filterItem.savedFilterKey\n );\n } else {\n this._toastService.warningAlert(\n 'Something went wrong. Please try again.'\n );\n filterItem.isDeleting = false;\n }\n },\n (error) => {\n throw new Error(error);\n }\n );\n }\n });\n }\n\n filterMouseLeaveEvent() {\n setTimeout(() => {}, 2000);\n }\n\n showSaveAsSelectedFiltersOptions() {\n let isSavedFilterSelected = this.selectedSavedFilters?.length > 0;\n this.saveAsNewFilter = this.filterSaveAsMethod === 'saveAsNew' || !isSavedFilterSelected;\n return isSavedFilterSelected;\n }\n\n @HostListener('document:mousedown', ['$event'])\n onClick(event: MouseEvent) {\n if (!this.elementRef.nativeElement.contains(event.target)) {\n this.isFilterDialogOpen = false;\n this.isSaveFilterDialogOpen = false;\n }\n }\n\n convertToCamelcase(roleNameDisplay: string) {\n return this._reusableFunctions.toCamelCase(roleNameDisplay);\n }\n}\n","
\n
\n \n
\n
\n
\n \n Home\n  > \n \n \n
\n \n
\n
\n
\n {{ pageTitle }}\n
\n
\n
\n","import { Component, OnInit, Input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ILinkInfo } from '../../classes/page-title-parameters';\n\n@Component({\n selector: 'page-headline',\n templateUrl: './page-headline.component.html',\n styleUrls: ['./page-headline.component.scss'],\n})\nexport class PageHeadlineComponent implements OnInit {\n @Input() linkTitle: string;\n @Input() module: string;\n @Input() moduleIcon: string;\n @Input() moduleLink: string;\n @Input() pageTitle: string;\n @Input() linkArray?: ILinkInfo[];\n\n constructor(public _router: Router) {}\n\n ngOnInit() {}\n\n onClick(routerUrl: string) {\n this._router.navigate(['']).then(() => {\n this._router.navigate([routerUrl]);\n });\n }\n}\n"],"x_google_ignoreList":[]}