{"version":3,"file":"auditour1.mjs","sources":["../../../projects/auditour1/src/lib/auditour1.service.ts","../../../projects/auditour1/src/lib/auditour1.component.ts","../../../projects/auditour1/src/lib/Buttons/button/button.component.ts","../../../projects/auditour1/src/lib/Buttons/button/button.component.html","../../../projects/auditour1/src/lib/Buttons/clear-button/clear-button.component.ts","../../../projects/auditour1/src/lib/Buttons/clear-button/clear-button.component.html","../../../projects/auditour1/src/lib/Table/table/table.component.ts","../../../projects/auditour1/src/lib/Table/table/table.component.html","../../../projects/auditour1/src/lib/DropDowns/dropdown/dropdown.component.ts","../../../projects/auditour1/src/lib/DropDowns/dropdown/dropdown.component.html","../../../projects/auditour1/src/lib/Table/table-tree/table-tree.component.ts","../../../projects/auditour1/src/lib/Table/table-tree/table-tree.component.html","../../../projects/auditour1/src/lib/SelectionBoxes/sliders/sliders.component.ts","../../../projects/auditour1/src/lib/SelectionBoxes/sliders/sliders.component.html","../../../projects/auditour1/src/lib/SelectionBoxes/range-selector/range-selector.component.ts","../../../projects/auditour1/src/lib/SelectionBoxes/range-selector/range-selector.component.html","../../../projects/auditour1/src/lib/SelectionBoxes/radio-button/radio-button.component.ts","../../../projects/auditour1/src/lib/SelectionBoxes/radio-button/radio-button.component.html","../../../projects/auditour1/src/lib/SelectionBoxes/checkbox/checkbox.component.ts","../../../projects/auditour1/src/lib/SelectionBoxes/checkbox/checkbox.component.html","../../../projects/auditour1/src/lib/Others/breadcrumb/breadcrumb.component.ts","../../../projects/auditour1/src/lib/Others/breadcrumb/breadcrumb.component.html","../../../projects/auditour1/src/lib/InputBoxes/password/password.component.ts","../../../projects/auditour1/src/lib/InputBoxes/password/password.component.html","../../../projects/auditour1/src/lib/Others/tabs/tabs.component.ts","../../../projects/auditour1/src/lib/Others/tabs/tabs.component.html","../../../projects/auditour1/src/lib/Others/toggle-switch/toggle-switch.component.ts","../../../projects/auditour1/src/lib/Others/toggle-switch/toggle-switch.component.html","../../../projects/auditour1/src/lib/Others/tree-view/tree-view.component.ts","../../../projects/auditour1/src/lib/Others/tree-view/tree-view.component.html","../../../projects/auditour1/src/lib/ModalDailog/accordian/accordian.component.ts","../../../projects/auditour1/src/lib/ModalDailog/accordian/accordian.component.html","../../../projects/auditour1/src/lib/ModalDailog/modal-general/modal-general.component.ts","../../../projects/auditour1/src/lib/ModalDailog/modal-general/modal-general.component.html","../../../projects/auditour1/src/lib/ModalDailog/modal-m1/modal-m1.component.ts","../../../projects/auditour1/src/lib/ModalDailog/modal-m1/modal-m1.component.html","../../../projects/auditour1/src/lib/ModalDailog/modal-m2/modal-m2.component.ts","../../../projects/auditour1/src/lib/ModalDailog/modal-m2/modal-m2.component.html","../../../projects/auditour1/src/lib/ModalDailog/modal-m3/modal-m3.component.ts","../../../projects/auditour1/src/lib/ModalDailog/modal-m3/modal-m3.component.html","../../../projects/auditour1/src/lib/ModalDailog/modal-m4/modal-m4.component.ts","../../../projects/auditour1/src/lib/ModalDailog/modal-m4/modal-m4.component.html","../../../projects/auditour1/src/lib/ModalDailog/modal-s/modal-s.component.ts","../../../projects/auditour1/src/lib/ModalDailog/modal-s/modal-s.component.html","../../../projects/auditour1/src/lib/ModalDailog/splitter/splitter.component.ts","../../../projects/auditour1/src/lib/ModalDailog/splitter/splitter.component.html","../../../projects/auditour1/src/lib/ModalDailog/timeline/timeline.component.ts","../../../projects/auditour1/src/lib/ModalDailog/timeline/timeline.component.html","../../../projects/auditour1/src/lib/ModalDailog/toaster/toaster.component.ts","../../../projects/auditour1/src/lib/ModalDailog/toaster/toaster.component.html","../../../projects/auditour1/src/lib/InputBoxes/inputbox-text/inputbox-text.component.ts","../../../projects/auditour1/src/lib/InputBoxes/inputbox-text/inputbox-text.component.html","../../../projects/auditour1/src/lib/InputBoxes/input-key-filters-number/input-key-filters-number.component.ts","../../../projects/auditour1/src/lib/InputBoxes/input-key-filters-number/input-key-filters-number.component.html","../../../projects/auditour1/src/lib/services/common/common.service.ts","../../../projects/auditour1/src/lib/InputBoxes/rich-text-editor/rich-text-editor.component.ts","../../../projects/auditour1/src/lib/InputBoxes/rich-text-editor/rich-text-editor.component.html","../../../projects/auditour1/src/lib/InputBoxes/textarea-large/textarea-large.component.ts","../../../projects/auditour1/src/lib/InputBoxes/textarea-large/textarea-large.component.html","../../../projects/auditour1/src/lib/InputBoxes/textarea-medium/textarea-medium.component.ts","../../../projects/auditour1/src/lib/InputBoxes/textarea-medium/textarea-medium.component.html","../../../projects/auditour1/src/lib/Buttons/button-with-icon/button-with-icon.component.ts","../../../projects/auditour1/src/lib/Buttons/button-with-icon/button-with-icon.component.html","../../../projects/auditour1/src/lib/Filters/global-filters/global-filters.component.ts","../../../projects/auditour1/src/lib/Filters/global-filters/global-filters.component.html","../../../projects/auditour1/src/lib/Filters/reports-filter/reports-filter.component.ts","../../../projects/auditour1/src/lib/Filters/reports-filter/reports-filter.component.html","../../../projects/auditour1/src/lib/FileUpload/fileuploads/fileuploads.component.ts","../../../projects/auditour1/src/lib/FileUpload/fileuploads/fileuploads.component.html","../../../projects/auditour1/src/lib/DatePicker/date-picker/date-picker.component.ts","../../../projects/auditour1/src/lib/DatePicker/date-picker/date-picker.component.html","../../../projects/auditour1/src/lib/DatePicker/date-range-picker/date-range-picker.component.ts","../../../projects/auditour1/src/lib/DatePicker/date-range-picker/date-range-picker.component.html","../../../projects/auditour1/src/lib/DatePicker/date-time-picker/date-time-picker.component.ts","../../../projects/auditour1/src/lib/DatePicker/date-time-picker/date-time-picker.component.html","../../../projects/auditour1/src/lib/Buttons/button-icon-only/button-icon-only.component.ts","../../../projects/auditour1/src/lib/Buttons/button-icon-only/button-icon-only.component.html","../../../projects/auditour1/src/lib/Buttons/button-link/button-link.component.ts","../../../projects/auditour1/src/lib/Buttons/button-link/button-link.component.html","../../../projects/auditour1/src/lib/Buttons/button-overflow/button-overflow.component.ts","../../../projects/auditour1/src/lib/Buttons/button-overflow/button-overflow.component.html","../../../projects/auditour1/src/lib/Buttons/button-split/button-split.component.ts","../../../projects/auditour1/src/lib/Buttons/button-split/button-split.component.html","../../../projects/auditour1/src/lib/Buttons/button-text/button-text.component.ts","../../../projects/auditour1/src/lib/Buttons/button-text/button-text.component.html","../../../projects/auditour1/src/lib/ModalDailog/modal-l/modal-l.component.ts","../../../projects/auditour1/src/lib/ModalDailog/modal-l/modal-l.component.html","../../../projects/auditour1/src/lib/Others/menu/menu.component.ts","../../../projects/auditour1/src/lib/Others/menu/menu.component.html","../../../projects/auditour1/src/lib/InputBoxes/input-inline/input-inline.component.ts","../../../projects/auditour1/src/lib/InputBoxes/input-inline/input-inline.component.html","../../../projects/auditour1/src/lib/Others/tags/tags.component.ts","../../../projects/auditour1/src/lib/Others/tags/tags.component.html","../../../projects/auditour1/src/lib/DropDowns/single-select/single-select.component.ts","../../../projects/auditour1/src/lib/DropDowns/single-select/single-select.component.html","../../../projects/auditour1/src/lib/charts/piechart/piechart.component.ts","../../../projects/auditour1/src/lib/charts/piechart/piechart.component.html","../../../projects/auditour1/src/lib/charts/barchart/barchart.component.ts","../../../projects/auditour1/src/lib/charts/barchart/barchart.component.html","../../../projects/auditour1/src/lib/charts/stacked-bar-chart/stacked-bar-chart.component.ts","../../../projects/auditour1/src/lib/charts/stacked-bar-chart/stacked-bar-chart.component.html","../../../projects/auditour1/src/lib/Table/tablewithcheckbox/tablewithcheckbox.component.ts","../../../projects/auditour1/src/lib/Table/tablewithcheckbox/tablewithcheckbox.component.html","../../../projects/auditour1/src/lib/Others/collapse-side-nav/collapse-side-nav.component.ts","../../../projects/auditour1/src/lib/Others/collapse-side-nav/collapse-side-nav.component.html","../../../projects/auditour1/src/lib/Others/expand-side-nav/expand-side-nav.component.ts","../../../projects/auditour1/src/lib/Others/expand-side-nav/expand-side-nav.component.html","../../../projects/auditour1/src/lib/Others/sidenav/sidenav.component.ts","../../../projects/auditour1/src/lib/Others/sidenav/sidenav.component.html","../../../projects/auditour1/src/lib/services/subscription.service.ts","../../../projects/auditour1/src/lib/services/storage.service.ts","../../../projects/auditour1/src/lib/Others/megamemu/megamemu.component.ts","../../../projects/auditour1/src/lib/Others/megamemu/megamemu.component.html","../../../projects/auditour1/src/lib/Others/topnav/topnav.component.ts","../../../projects/auditour1/src/lib/Others/topnav/topnav.component.html","../../../projects/auditour1/src/lib/services/login/login.service.ts","../../../projects/auditour1/src/lib/Others/site-loader/site-loaders.component.ts","../../../projects/auditour1/src/lib/Others/site-loader/site-loaders.component.html","../../../projects/auditour1/src/lib/pages/login/login.component.ts","../../../projects/auditour1/src/lib/pages/login/login.component.html","../../../projects/auditour1/src/lib/directives/tooltip.directive.ts","../../../projects/auditour1/src/lib/Reports/fieldlevelfilter/fieldlevelfilter.component.ts","../../../projects/auditour1/src/lib/Reports/fieldlevelfilter/fieldlevelfilter.component.html","../../../projects/auditour1/src/lib/Reports/customfilters/customfilters.component.ts","../../../projects/auditour1/src/lib/Reports/customfilters/customfilters.component.html","../../../projects/auditour1/src/lib/Reports/reportstable/reportstable.component.ts","../../../projects/auditour1/src/lib/Reports/reportstable/reportstable.component.html","../../../projects/auditour1/src/lib/services/popup.service.ts","../../../projects/auditour1/src/lib/Reports/optional-columns/optional-columns.component.ts","../../../projects/auditour1/src/lib/Reports/optional-columns/optional-columns.component.html","../../../projects/auditour1/src/lib/FileUpload/fileuploads/attachmentwithpopup/attachmentwithpopup.component.ts","../../../projects/auditour1/src/lib/FileUpload/fileuploads/attachmentwithpopup/attachmentwithpopup.component.html","../../../projects/auditour1/src/lib/ModalDailog/confirmation-dialog/confirmation.dialog.component.ts","../../../projects/auditour1/src/lib/ModalDailog/confirmation-dialog/confirmation-dialog.component.html","../../../projects/auditour1/src/lib/Others/card/card.component.ts","../../../projects/auditour1/src/lib/Others/card/card.component.html","../../../projects/auditour1/src/lib/Table/accordian-table/accordian-table.component.ts","../../../projects/auditour1/src/lib/Table/accordian-table/accordian-table.component.html","../../../projects/auditour1/src/lib/Filters/entity-filter/entity-filter.component.ts","../../../projects/auditour1/src/lib/Filters/entity-filter/entity-filter.component.html","../../../projects/auditour1/src/lib/Table/checkboxtablewithoutpagination/checkboxtablewithoutpagination.component.ts","../../../projects/auditour1/src/lib/Table/checkboxtablewithoutpagination/checkboxtablewithoutpagination.component.html","../../../projects/auditour1/src/lib/Others/logout/logout.component.ts","../../../projects/auditour1/src/lib/Others/logout/logout.component.html","../../../projects/auditour1/src/lib/ModalDailog/modelwithoutdiameters/modelwithoutdiameters.component.ts","../../../projects/auditour1/src/lib/ModalDailog/modelwithoutdiameters/modelwithoutdiameters.component.html","../../../projects/auditour1/src/lib/auditour1.module.ts","../../../projects/auditour1/src/lib/helpers/jwt.interceptor.ts","../../../projects/auditour1/src/lib/helpers/error.interceptor.ts","../../../projects/auditour1/src/lib/services/networkStatus.service.ts","../../../projects/auditour1/src/lib/helpers/guards/auth.guard.ts","../../../projects/auditour1/src/lib/helpers/formdata.compare.helper.ts","../../../projects/auditour1/src/lib/helpers/pattern/pattern.helper.ts","../../../projects/auditour1/src/public-api.ts","../../../projects/auditour1/src/auditour1.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { MessageService } from 'primeng/api';\r\nimport * as DOMPurify from 'dompurify';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class Auditour1Service {\r\n\r\n  constructor(public messageService: MessageService) {}\r\n\r\n  // SANITZE CONTRENT FROM RICH TEXT EDITOR\r\n  sanitizeContent(content: string): string {    \r\n    let result = DOMPurify.sanitize(content, {\r\n      ALLOWED_TAGS: ['b', 'i', 'u', 'p', 'ul', 'li', 'a', 'img'],        \r\n      ALLOWED_ATTR: ['href', 'target', 'src', 'alt'],        \r\n      FORBID_ATTR: ['style', 'onclick', 'onload', 'onerror', 'onmouseover', 'onfocus', 'onblur', 'ondblclick', 'onmousedown',\r\n        'onmouseup', 'onkeydown', 'onkeyup', 'onkeypress', 'onresize', 'onsubmit', 'onchange', 'oninput', 'formaction',\r\n        'srcdoc', 'target', 'xlink:href', 'xmlns', 'framesrc', 'data', 'codebase', 'href','span']\r\n    });    \r\n    return result.replace(/&lt;|&gt;|\\//g, '');\r\n  }\r\n\r\n  ngOnDestroy() {\r\n          \r\n  }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-auditour1',\r\n  template: `\r\n    <p>\r\n      auditour1 works!\r\n    </p>\r\n  `,\r\n  styles: [\r\n  ]\r\n})\r\nexport class Auditour1Component {\r\n\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-button',\r\n  templateUrl: './button.component.html',\r\n  styleUrls: ['./button.component.scss'],\r\n})\r\nexport class ButtonComponent {\r\n  @Input() name: string = ''; // Dynamic button label\r\n  @Input() buttonDisabled: boolean = false; // Controls disabled state\r\n  @Input() isProcessing: boolean = false; // Indicates if a process is ongoing\r\n  @Input() tooltip: string = ''; // Tooltip for button\r\n  @Input() toolTipPosition: string = '';\r\n  @Input() buttonClass: string = 'p-button-primary'; // Dynamic class for styling\r\n  @Input() applyCustomStyle: boolean = false;\r\n  @Output() buttonClick = new EventEmitter<any>();\r\n\r\n  buttonClickMethod() {\r\n    if (!this.buttonDisabled && !this.isProcessing) {\r\n      this.buttonClick.emit();\r\n    }\r\n  }\r\n}\r\n","<p>\r\n  <button\r\n    pButton\r\n    class=\"p-button-primary\"\r\n    [disabled]=\"buttonDisabled\"\r\n    [ngClass]=\"{\r\n      'custom-button-style': applyCustomStyle,\r\n      'disabled-button': buttonDisabled\r\n    }\"\r\n    (click)=\"buttonClickMethod()\"\r\n    pTooltip=\"{{ tooltip }}\"\r\n    tooltipPosition=\"{{ toolTipPosition }}\"\r\n  >\r\n    <ng-container *ngIf=\"!isProcessing; else loading\">\r\n      {{ name }}\r\n    </ng-container>\r\n\r\n    <ng-template #loading>\r\n      <i class=\"pi pi-spin pi-spinner\"></i> Loading...\r\n    </ng-template>\r\n  </button>\r\n</p>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-clear-button',\r\n  templateUrl: './clear-button.component.html',\r\n  styleUrls: ['./clear-button.component.scss']\r\n})\r\nexport class ClearButtonComponent {\r\n  @Input() name: string = ''; // Dynamic button label\r\n  @Input() buttonDisabled: boolean = false; // Controls disabled state\r\n  @Input() isProcessing: boolean = false; // Indicates if a process is ongoing\r\n  @Input() tooltip: string = ''; // Tooltip for button\r\n  @Input() toolTipPosition: string = '';\r\n  @Input() buttonClass: string = 'p-button-primary'; // Dynamic class for styling\r\n\r\n  @Output() buttonClick = new EventEmitter<any>();\r\n\r\n  buttonClickMethod() {\r\n    if (!this.buttonDisabled && !this.isProcessing) {\r\n      this.buttonClick.emit();\r\n    }\r\n  }\r\n}\r\n","<p>\r\n    <button pButton class=\"p-clear-button\" [disabled]=\"buttonDisabled\" (click)=\"buttonClickMethod()\">\r\n        <ng-container *ngIf=\"!isProcessing; else loading\">\r\n            {{ name }}\r\n        </ng-container>\r\n\r\n        <ng-template #loading>\r\n            <i class=\"pi pi-spin pi-spinner\"></i> Loading...\r\n        </ng-template>\r\n    </button>\r\n</p>","import {\r\n  Component,\r\n  EventEmitter,\r\n  Input,\r\n  Output,\r\n  ViewChild,\r\n} from '@angular/core';\r\nimport { NavigationExtras, Router } from '@angular/router';\r\nimport { OverlayPanel } from 'primeng/overlaypanel';\r\n\r\nexport type TABLE_DEFAULT_CONFIG_TYPES = {\r\n  name: string;\r\n  value: string;\r\n  inputType: TABLE_ENUM_INPUT_TYPES;\r\n  sorting: boolean;\r\n  entityFilter: boolean;\r\n};\r\n\r\nexport enum TABLE_ENUM_INPUT_TYPES {\r\n  text = 'text',\r\n  link = 'link',\r\n  dot = 'dot',\r\n  box = 'box',\r\n  circle = 'circle',\r\n  circleToolTip = 'circleToolTip',\r\n  actions = 'actions',\r\n  menu = 'menu',\r\n  linkWithNavigationExtras = 'linkWithNavigationExtras',\r\n  iconWithText = 'iconWithText',\r\n  navigationDirectly = 'navigationDirectly',\r\n}\r\n\r\nexport type TABLE_LINK_NAVIGATION_EXTRA_CONFIG = {\r\n  path: string;\r\n  queryParams: Object;\r\n};\r\n\r\nexport type TABLE_ACTION_EVENT_INPUT_PARAMS_TYPES = {\r\n  action: string;\r\n  record: any;\r\n};\r\n@Component({\r\n  selector: 'lib-table',\r\n  templateUrl: './table.component.html',\r\n  styleUrls: ['./table.component.scss'],\r\n})\r\nexport class TableComponent {\r\n  @ViewChild('menu') menu!: OverlayPanel;\r\n  @Input() tableData: any = [];\r\n  @Input() displayColumns: any[] = [];\r\n  sortOrder: number = -1;\r\n  @Input() nodes!: any[];\r\n  @Input() buttonDisabled: boolean = false;\r\n  selectedNodes: any = [];\r\n  @Output() filteredDataEvent = new EventEmitter<any>();\r\n  @Input() itemsPerPage: number = 13;\r\n  @Input() totalRecords: number = 0;\r\n  @Input() firstOrder: number = 0;\r\n  @Input() paginatorValue: boolean = true;\r\n  @Output() tablePageChange = new EventEmitter<any>();\r\n  @Output() triggerAction = new EventEmitter<any>();\r\n  @Output() sorting = new EventEmitter<any>();\r\n  @ViewChild('searchOverlay') searchOverlay!: OverlayPanel;\r\n  search_bar!: string;\r\n  @Output() searchChange = new EventEmitter<string>(); // Emit search value\r\n  @Output() searchSubmit = new EventEmitter<string>(); // Emit search when Enter key is pressed\r\n  @Output() searchClosed = new EventEmitter<void>(); // Emit when search is closed\r\n  @Output() navigationDirectly = new EventEmitter<string>(); // Emit search value\r\n\r\n\r\n  constructor(private router: Router) { }\r\n\r\n  columnSortState: { [key: string]: number } = {};\r\n  customSort(field: string) {\r\n    if (!this.columnSortState[field]) {\r\n      this.columnSortState[field] = 0; // Initialize state if not already set\r\n    }\r\n\r\n    this.columnSortState[field] =\r\n      this.columnSortState[field] === 1 ? -1 : this.columnSortState[field] + 1;\r\n    this.sortOrder = this.sortOrder === 1 ? -1 : 1;\r\n\r\n    const currentPage = this.firstOrder; // Store current page index before sorting\r\n\r\n    this.sorting.emit({ sortOrder: this.sortOrder, field });\r\n\r\n    this.firstOrder = currentPage; // Restore page index after sorting\r\n  }\r\n\r\n  handlePageChange(event: any) {\r\n    this.firstOrder = event.first; // Maintain correct page index\r\n    const pageIndex = event.first / event.rows; // Calculate the page index\r\n    const pageSize = event.rows; // Rows per page\r\n    this.tablePageChange.emit(event); // Emit the pagination event to the parent\r\n  }\r\n\r\n  triggerActions(action: string, record: any) {\r\n    this.triggerAction.emit({ action, record });\r\n  }\r\n\r\n  navigatingPageWithParams(tableData: TABLE_LINK_NAVIGATION_EXTRA_CONFIG) {\r\n    const navigationExtras: NavigationExtras = {\r\n      queryParams: {\r\n        ...tableData.queryParams,\r\n      },\r\n    };\r\n    this.router.navigate([tableData.path], navigationExtras);\r\n  }\r\n\r\n  clearAll(): void {\r\n    this.selectedNodes = [];\r\n    this.filteredDataEvent.emit(this.selectedNodes);\r\n    this.menu.hide();\r\n  }\r\n\r\n  // Apply the filter\r\n  applyFilter(): void {\r\n    const childIds: number[] = [];\r\n    this.selectedNodes.forEach(\r\n      (node: { children: string | any[]; id: number }) => {\r\n        if (!node.children || node.children.length === 0) {\r\n          // Add to the list if it's a child (leaf) node\r\n          childIds.push(node.id);\r\n        }\r\n      }\r\n    );\r\n    this.filteredDataEvent.emit(childIds);\r\n    this.menu.hide();\r\n    // Add logic to apply the filter\r\n  }\r\n  closeFunctionlity() {\r\n    this.menu.hide();\r\n  }\r\n  // Track sort state for each column\r\n\r\n  clearSearch(overlayPanel: any) {\r\n    this.search_bar = '';\r\n    this.searchChange.emit(this.search_bar);\r\n    this.searchClosed.emit();\r\n    overlayPanel.hide();\r\n  }\r\n\r\n  onSearchChange() {\r\n    this.searchChange.emit(this.search_bar);\r\n  }\r\n\r\n  onSearchSubmit() {\r\n    if (this.search_bar.trim()) {\r\n      this.searchSubmit.emit(this.search_bar);\r\n    }\r\n  }\r\n  onInputChange() {\r\n    if (this.search_bar.startsWith(' ')) {\r\n      this.search_bar = this.search_bar.trim(); // Remove leading spaces\r\n    }\r\n  }\r\n  navigatingDirectly(data: any) {\r\n    this.navigationDirectly.emit(data);\r\n  }\r\n\r\n  showOverlaySearch(event: MouseEvent, overlay: OverlayPanel) {\r\n    event.stopPropagation();\r\n    overlay.show(event);\r\n  }\r\n\r\n}\r\n","<!-- [rowsPerPageOptions]=\"[10, 25, 50]\"  -->\r\n<div class=\"card table-container\">\r\n  <p-table\r\n    #dt\r\n    [value]=\"tableData\"\r\n    dataKey=\"id\"\r\n    [scrollable]=\"true\"\r\n    scrollHeight=\"calc(100vh - 225px)\"\r\n    [paginator]=\"paginatorValue\"\r\n    [lazy]=\"true\"\r\n    [customSort]=\"true\"\r\n    (sortFunction)=\"customSort($event)\"\r\n    [tableStyle]=\"{ 'min-width': '50rem' }\"\r\n    [rows]=\"itemsPerPage\"\r\n    [resizableColumns]=\"true\"\r\n    [totalRecords]=\"totalRecords\"\r\n    styleClass=\"p-datatable-gridlines\"\r\n    (onPage)=\"handlePageChange($event)\"\r\n    [first]=\"firstOrder\"\r\n  >\r\n    >\r\n\r\n    <ng-template pTemplate=\"header\">\r\n      <tr>\r\n        <th\r\n          pResizableColumn\r\n          *ngFor=\"let column of displayColumns\"\r\n          [pSortableColumn]=\"column.value\"\r\n        >\r\n        <span (click)=\"$event.stopPropagation()\">\r\n          {{ column.name }}\r\n        </span>\r\n\r\n          <!-- Sort Icon: Only for 'Id' column -->\r\n          <p-sortIcon\r\n            (click)=\"customSort(column.value)\"\r\n            *ngIf=\"column.sorting\"\r\n            field=\"{{ column.value }}\"\r\n          ></p-sortIcon>\r\n\r\n          <!-- Filter Icon: Only for 'Entity' column -->\r\n          <i\r\n            *ngIf=\"column.entityFilter\"\r\n            class=\"pi pi-filter\"\r\n            [ngClass]=\"{ active: selectedNodes.length !== 0 }\"\r\n            (click)=\"menu.toggle($event)\"\r\n            title=\"Filter {{ column.name }}\"\r\n          ></i>\r\n          <i\r\n            class=\"pi pi-search search-icon\"\r\n            *ngIf=\"column.searchName\"\r\n            [ngClass]=\"{ active: search_bar }\"\r\n            (click)=\"showOverlaySearch($event, searchOverlay)\"\r\n          ></i>\r\n\r\n          <!-- Overlay Panel with Search Input -->\r\n          <p-overlayPanel #searchOverlay styleClass=\"custom-search-overlay\">\r\n            <div></div>\r\n            <div class=\"search-container\">\r\n              <!-- Search Input -->\r\n              <input\r\n                type=\"text\"\r\n                pInputText\r\n                [(ngModel)]=\"search_bar\"\r\n                (ngModelChange)=\"onInputChange()\"\r\n                (input)=\"onSearchChange()\"\r\n                (keyup.enter)=\"onSearchSubmit()\"\r\n                placeholder=\"Search Name\"\r\n                [maxlength]=\"100\"\r\n                class=\"search-input\"\r\n                name=\"searchInput\"\r\n                #searchInput=\"ngModel\"\r\n                required\r\n              />\r\n\r\n              <i class=\"pi pi-times cross-icon\" (click)=\"clearSearch(searchOverlay)\"></i>\r\n            </div>\r\n          </p-overlayPanel>\r\n        </th>\r\n      </tr>\r\n    </ng-template>\r\n    <ng-template pTemplate=\"body\" let-row>\r\n      <tr [pSelectableRow]=\"row\" class=\"hover-row\">\r\n        <td *ngFor=\"let column of displayColumns; let i = index\">\r\n          <div [ngSwitch]=\"column.inputType\">\r\n            <div *ngSwitchCase=\"'text'\">\r\n              {{ row[column.value] ? row[column.value] : \"-\" }}\r\n            </div>\r\n\r\n            <div *ngSwitchCase=\"'link'\">\r\n              <a href=\"\" routerLink=\"{{ row.routerPath }}\">{{\r\n                row[column.value]\r\n              }}</a>\r\n            </div>\r\n\r\n            <div *ngSwitchCase=\"'navigationDirectly'\">\r\n              <a (click)=\"navigatingDirectly(row)\">{{ row[column.value] }}</a>\r\n            </div>\r\n            <div *ngSwitchCase=\"'linkWithNavigationExtras'\">\r\n              <a\r\n                (click)=\"\r\n                  navigatingPageWithParams(\r\n                    row[column.value + '_navigateRouteExtraParams']\r\n                  )\r\n                \"\r\n                >{{ row[column.value] }}</a\r\n              >\r\n            </div>\r\n\r\n            <div *ngSwitchCase=\"'box'\">{{ row[column.value] }}</div>\r\n\r\n            <div *ngSwitchCase=\"'dot'\">\r\n              <span class=\"td-dot {{ row[column.value + '_class'] }}\"></span>\r\n              {{ row[column.value] }}\r\n            </div>\r\n\r\n            <div\r\n              *ngSwitchCase=\"'iconWithText'\"\r\n              tooltipPosition=\"bottom\"\r\n              class=\"iconWithText\"\r\n            >\r\n              <span\r\n                pTooltip=\"{{ row['name_icon_toolTip'] }}\"\r\n                tooltipPosition=\"bottom\"\r\n                ><img src=\"{{ row['name_icon'] }}\" alt=\"image\" />\r\n              </span>\r\n              <span class=\"table-content\">{{\r\n                row[column.value] ? row[column.value] : \"-\"\r\n              }}</span>\r\n            </div>\r\n\r\n            <div *ngSwitchCase=\"'circle'\">\r\n              <span class=\"{{ row[column.value + '_class'] }}\">{{\r\n                row[column.value]\r\n              }}</span>\r\n            </div>\r\n\r\n            <div\r\n              *ngSwitchCase=\"'circleToolTip'\"\r\n              pTooltip=\"{{ row.circleToolTipValue }}\"\r\n              tooltipPosition=\"top\"\r\n            >\r\n              <span class=\"{{ row[column.value + '_class'] }}\">{{\r\n                row[column.value]\r\n              }}</span>\r\n            </div>\r\n\r\n            <div *ngSwitchCase=\"'actions'\">\r\n              <button\r\n                *ngFor=\"let action of row.actions\"\r\n                class=\"actionbtn\"\r\n                [disabled]=\"action.isDisabled\"\r\n                (click)=\"triggerActions(action.actionType, row)\"\r\n                pTooltip=\"{{ action.actionType }}\"\r\n                tooltipPosition=\"top\"\r\n              >\r\n                <span class=\"image-background\" [ngSwitch]=\"action.actionType\">\r\n                  <span *ngSwitchCase=\"'Edit'\">\r\n                    <span class=\"action-img editImg\"></span>\r\n                  </span>\r\n                  <span *ngSwitchCase=\"'Delete'\">\r\n                    <span class=\"action-img deleteImg\"></span>\r\n                  </span>\r\n                  <span *ngSwitchCase=\"'Restore'\">\r\n                    <span class=\"action-img restoreImg\"></span>\r\n                  </span>\r\n                  <span *ngSwitchCase=\"'Unmap'\">\r\n                    <span class=\"action-img unmapImg\"></span>\r\n                  </span>\r\n                </span>\r\n              </button>\r\n            </div>\r\n            <div *ngSwitchDefault>{{ row[column.value] }}</div>\r\n          </div>\r\n        </td>\r\n      </tr>\r\n    </ng-template>\r\n    <ng-template pTemplate=\"emptymessage\">\r\n      <tr *ngIf=\"tableData?.length === 0\">\r\n        <td\r\n          [attr.colspan]=\"displayColumns.length + 1\"\r\n          style=\"text-align: center\"\r\n        >\r\n          No records found\r\n        </td>\r\n      </tr>\r\n    </ng-template>\r\n  </p-table>\r\n</div>\r\n\r\n<p-overlayPanel #menu [style]=\"{ width: '350px' }\" [dismissable]=\"false\">\r\n  <div class=\"entity-header flex justify-content-between\">\r\n    <h4 class=\"bodytext\">Entity Filter</h4>\r\n    <!-- Close Button -->\r\n    <button\r\n      pButton\r\n      icon=\"pi pi-times\"\r\n      class=\"p-button-rounded p-button-secondary p-button-sm\"\r\n      (click)=\"menu.hide()\"\r\n    ></button>\r\n  </div>\r\n\r\n  <!-- TreeSelect Dropdown -->\r\n  <div class=\"tree-select-dropdown w-100\">\r\n    <p-treeSelect\r\n      [(ngModel)]=\"selectedNodes\"\r\n      [options]=\"nodes\"\r\n      display=\"chip\"\r\n      selectionMode=\"checkbox\"\r\n      [panelStyle]=\"{ width: '300px', maxWidth: '300px' }\"\r\n      placeholder=\"Select Items\"\r\n      [metaKeySelection]=\"false\"\r\n    >\r\n      <ng-template let-node pTemplate=\"default\">\r\n        <span [style.fontWeight]=\"node.parent ? 'normal' : 'bold'\">\r\n          {{ node.label }}\r\n        </span>\r\n      </ng-template>\r\n    </p-treeSelect>\r\n  </div>\r\n\r\n  <!-- Buttons -->\r\n  <div class=\"actions\" style=\"margin-top: 20px; text-align: right\">\r\n    <lib-clear-button\r\n      [name]=\"'CLEAR'\"\r\n      [buttonDisabled]=\"buttonDisabled\"\r\n      (buttonClick)=\"clearAll()\"\r\n    >\r\n    </lib-clear-button>\r\n    <!-- <lib-button\r\n      [name]=\"'CLEAR'\"\r\n      [buttonDisabled]=\"buttonDisabled || selectedNodes?.length === 0\"\r\n      (buttonClick)=\"clearAll()\"\r\n    >\r\n    </lib-button> -->\r\n    <lib-button\r\n      [name]=\"'APPLY'\"\r\n      [buttonDisabled]=\"buttonDisabled || selectedNodes?.length === 0\"\r\n      (buttonClick)=\"applyFilter()\"\r\n    >\r\n    </lib-button>\r\n  </div>\r\n</p-overlayPanel>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'lib-dropdown',\r\n  templateUrl: './dropdown.component.html',\r\n  styleUrls: ['./dropdown.component.scss'],\r\n})\r\nexport class DropdownComponent {\r\n  @Input() label: string = ''; // Label text\r\n  @Input() options: any[] = []; // Options for the dropdown\r\n  @Input() placeholder = 'Select an option'; // Placeholder text\r\n  @Input() optionLabel: string = 'name'; // Label for display\r\n  @Input() optionValue: string = ''; // Value for the selected option\r\n  @Input() control: any = new FormControl(); // Form control\r\n  @Input() requiredField: boolean = false; // Show clear button\r\n  @Input() disabled: boolean = false; // Show clear button\r\n  @Output() valueChange: EventEmitter<any[]> = new EventEmitter<any[]>(); // Emit changes\r\n  @Input() showClear: boolean = true;\r\n  @Input() applyCustomStyle: boolean = false;\r\n\r\n  onValueChange(selectedValues: any[]) {\r\n    this.valueChange.emit(selectedValues); // Emit the selected values\r\n  }\r\n\r\n  toTitleCase(str: string): string {\r\n    return str\r\n      .replace(/_/g, ' ')\r\n      .toLowerCase()\r\n      .split(' ')\r\n      .map(word => word.charAt(0).toUpperCase() + word.slice(1))\r\n      .join(' ');\r\n  }\r\n\r\n  getSelectedLabelsTitleCase(selectedItems: any[]): string {\r\n    if (!selectedItems) return '';\r\n    return selectedItems\r\n      .map(item => this.toTitleCase(item[this.optionLabel]))\r\n      .join(', ');\r\n  }\r\n}\r\n","<div>\r\n  <label class=\"dropdown-label\">{{ label }}</label>\r\n\r\n  <p-multiSelect\r\n    [options]=\"options\"\r\n    [formControl]=\"control\"\r\n    [optionLabel]=\"optionLabel\"\r\n    [optionValue]=\"optionValue\"\r\n    [placeholder]=\"placeholder\"\r\n    [required]=\"requiredField\"\r\n    (onChange)=\"onValueChange($event.value)\"\r\n    [disabled]=\"disabled\"\r\n    [showClear]=\"showClear\"\r\n  >\r\n    <ng-template let-item pTemplate=\"item\">\r\n      {{ toTitleCase(item[optionLabel]) }}\r\n    </ng-template>\r\n    <ng-template let-selectedItems pTemplate=\"selectedItems\">\r\n      <span *ngIf=\"selectedItems?.length; else placeholderText\">\r\n        {{ getSelectedLabelsTitleCase(selectedItems) }}\r\n      </span>\r\n      <ng-template #placeholderText>\r\n        {{ placeholder }}\r\n      </ng-template>\r\n    </ng-template>\r\n  </p-multiSelect>\r\n\r\n  <div *ngIf=\"control.invalid && control.touched\" class=\"error-message\">\r\n    This field is required.\r\n  </div>\r\n</div>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-table-tree',\r\n  templateUrl: './table-tree.component.html',\r\n  styleUrls: ['./table-tree.component.scss']\r\n})\r\nexport class TableTreeComponent {\r\n\r\n}\r\n","<p>table-tree works!</p>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-sliders',\r\n  templateUrl: './sliders.component.html',\r\n  styleUrls: ['./sliders.component.scss']\r\n})\r\nexport class SlidersComponent {\r\n\r\n}\r\n","<p-slider formControlName=\"value\" class=\"p-slider\"></p-slider>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-range-selector',\r\n  templateUrl: './range-selector.component.html',\r\n  styleUrls: ['./range-selector.component.scss']\r\n})\r\nexport class RangeSelectorComponent {\r\n\r\n}\r\n","<p>range-selector works!</p>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-radio-button',\r\n  templateUrl: './radio-button.component.html',\r\n  styleUrls: ['./radio-button.component.scss']\r\n})\r\nexport class RadioButtonComponent {\r\n  @Input() control!: any; // FormControl to bind the radio button\r\n  @Input() value!: string; // Value of the radio button\r\n  @Input() label!: string;\r\n  @Input() disabled: boolean = false; // Input to dynamically control disabled state\r\n}\r\n","<div class=\"radio-button-class\">\r\n  <p-radioButton [formControl]=\"control\" [value]=\"value\" [label]=\"label\" [disabled]=\"disabled\"></p-radioButton>\r\n</div>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-checkbox',\r\n  templateUrl: './checkbox.component.html',\r\n  styleUrls: ['./checkbox.component.scss']\r\n})\r\nexport class CheckboxComponent {\r\n\r\n}\r\n","<div>\r\n    <p-checkbox class=\"p-checkbox\"></p-checkbox>\r\n    <label class=\"checkbox-label\" for=\"ny\">New York</label>\r\n  </div>","import { Component, Input } from '@angular/core';\r\ntype Types_routes = {\r\n  label: string;\r\n  url?: string;\r\n  route?: string;\r\n  icon?: string;\r\n};\r\n\r\n@Component({\r\n  selector: 'lib-breadcrumb',\r\n  templateUrl: './breadcrumb.component.html',\r\n  styleUrls: ['./breadcrumb.component.scss'],\r\n})\r\nexport class BreadcrumbComponent {\r\n  @Input() navigationURL: string = '';\r\n  @Input() routes: Types_routes[] = [];\r\n  homeData = {\r\n    label: 'All Modules',\r\n    command: () =>\r\n      (window.location.href = this.navigationURL + 'overview/allmainscreen'),\r\n  };\r\n}\r\n","<!-- <p-breadcrumb class=\"max-w-full\" [model]=\"routes\">\r\n    <ng-template pTemplate=\"item\" let-item>\r\n        <ng-container *ngIf=\"item.route; else elseBlock\">\r\n            <a [routerLink]=\"item.route\" class=\"pa-menuitem-link\">\r\n                <span [ngClass]=\"[item.icon ? item.icon : '', 'text-color']\"></span>\r\n                <span class=\"text-primary font-semibold\">{{ item.label }}</span>\r\n            </a>\r\n        </ng-container>\r\n        <ng-template #elseBlock>\r\n            <a [href]=\"item.url\" *ngIf=\"item.url\" class=\"pa-menuitem-link\">\r\n                <span class=\"text-color\">{{ item.label }}</span>\r\n            </a>\r\n            <span class=\"text-primary font-semibold\" *ngIf=\"!item.url\">{{ item.label }}</span>\r\n        </ng-template>\r\n    </ng-template>\r\n</p-breadcrumb>      -->\r\n\r\n<p-breadcrumb class=\"max-w-full\" [model]=\"routes\" [home]=\"homeData\">\r\n  <ng-template pTemplate=\"home\" let-homeItem>\r\n    <a class=\"all-modu-link\" (click)=\"homeItem.command?.()\">\r\n      <span>{{ homeItem.label }}</span>\r\n    </a>\r\n  </ng-template>\r\n\r\n  <ng-template pTemplate=\"item\" let-item>\r\n    <ng-container *ngIf=\"item.route; else elseBlock\">\r\n      <a [routerLink]=\"item.route\" class=\"pa-menuitem-link\">\r\n        <span *ngIf=\"item.icon\" [ngClass]=\"[item.icon, 'text-color']\"></span>\r\n        <span class=\"text-primary font-semibold\">{{ item.label }}</span>\r\n      </a>\r\n    </ng-container>\r\n    <ng-template #elseBlock>\r\n      <a [href]=\"item.url\" *ngIf=\"item.url\" class=\"pa-menuitem-link\">\r\n        <span class=\"text-color\">{{ item.label }}</span>\r\n      </a>\r\n      <span class=\"text-primary font-semibold\" *ngIf=\"!item.url\">{{\r\n        item.label\r\n      }}</span>\r\n    </ng-template>\r\n  </ng-template>\r\n</p-breadcrumb>\r\n","import { Component, Input } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'lib-password',\r\n  templateUrl: './password.component.html',\r\n  styleUrls: ['./password.component.scss']\r\n})\r\nexport class PasswordComponent {\r\n  @Input() control: any = FormControl;\r\n  @Input() label: string = ''; // Label for the input\r\n  @Input() placeholder: string = ''; // Placeholder text for the input\r\n  @Input() required: boolean = false; // Required attribute\r\n}\r\n","<!-- PASSWORD TEMPLATE - START -->\r\n<div class=\"card flex justify-content-center\">\r\n  <label class=\"name-heading\">{{ label }}</label> <p-password class=\"pa-password-container\" [formControl]=\"control\"\r\n    [placeholder]=\"placeholder\" [required]=\"required\"> \r\n<!--     \r\n    <ng-template pTemplate=\"header\" class=\"m-audit-0\">\r\n      <h6 class=\"pa-password-error-head m-audit-0\">Pick a password</h6>\r\n    </ng-template> <ng-template pTemplate=\"footer\" class=\"pa-password-error-container m-audit-0\"> <p-divider\r\n        class=\"\"></p-divider>\r\n      <p class=\"m-audit-0\">Suggestions</p>\r\n      <ul class=\"\">\r\n        <li>At least one lowercase</li>\r\n        <li>At least one uppercase</li>\r\n        <li>At least one numeric</li>\r\n        <li>Minimum 8 characters</li>\r\n      </ul>\r\n    </ng-template> -->\r\n   </p-password>\r\n</div><!-- PASSWORD TEMPLATE - END -->","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-tabs',\r\n  templateUrl: './tabs.component.html',\r\n  styleUrls: ['./tabs.component.scss']\r\n})\r\nexport class TabsComponent {\r\n\r\n}\r\n"," <!-- TAB VIEW - START -->\r\n <div class=\"card\">\r\n    <h3>Tab view</h3> <p-tabView class=\"pa-tabView-container\"> <p-tabPanel header=\"Header I\">\r\n        <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore\r\n          magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\r\n          consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla\r\n          pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est\r\n          laborum. </p>\r\n      </p-tabPanel> <p-tabPanel header=\"Header II\">\r\n        <p> Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem\r\n          aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo\r\n          enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos\r\n          qui ratione voluptatem sequi nesciunt. Consectetur, adipisci velit, sed quia non numquam eius modi. </p>\r\n      </p-tabPanel> <p-tabPanel header=\"Header III\">\r\n        <p> At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti\r\n          atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt\r\n          in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est\r\n          et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus.\r\n        </p>\r\n      </p-tabPanel> </p-tabView>\r\n  </div><!-- TAB VIEW - END -->","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-toggle-switch',\r\n  templateUrl: './toggle-switch.component.html',\r\n  styleUrls: ['./toggle-switch.component.scss']\r\n})\r\nexport class ToggleSwitchComponent {\r\n\r\n}\r\n","<div>\r\n    <p-inputSwitch></p-inputSwitch>\r\n  </div>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-tree-view',\r\n  templateUrl: './tree-view.component.html',\r\n  styleUrls: ['./tree-view.component.scss']\r\n})\r\nexport class TreeViewComponent {\r\n  selectedFiles: any;\r\n  files: any = [];\r\n}\r\n","<!-- TREE VIEW- START -->\r\n<div class=\"card flex flex-column align-items-center justify-content-center\">\r\n    <h3>Tree View</h3> <p-tree [value]=\"files\" selectionMode=\"checkbox\" class=\"w-full md:w-30rem pa-tree-container\"\r\n      [(selection)]=\"selectedFiles\"></p-tree>\r\n  </div><!-- TREE VIEW - END -->","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-accordian',\r\n  templateUrl: './accordian.component.html',\r\n  styleUrls: ['./accordian.component.scss']\r\n})\r\nexport class AccordianComponent {\r\n\r\n}\r\n","<p>accordian works!</p>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-modal-general',\r\n  templateUrl: './modal-general.component.html',\r\n  styleUrls: ['./modal-general.component.scss']\r\n})\r\nexport class ModalGeneralComponent {\r\n\r\n}\r\n","<p>modal-general works!</p>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-modal-m1',\r\n  templateUrl: './modal-m1.component.html',\r\n  styleUrls: ['./modal-m1.component.scss']\r\n})\r\nexport class ModalM1Component {\r\n  visibleMedium1: boolean = false;\r\n\r\n  showDialogMedium1() {\r\n    this.visibleMedium1 = true;\r\n  }\r\n\r\n}\r\n","<p-button (onClick)=\"showDialogMedium1()\" label=\"Medium 1\" />\r\n<p-dialog header=\"Edit Profile\" [modal]=\"true\" [(visible)]=\"visibleMedium1\"\r\n  [style]=\"{ width: '36.5rem', height:'19.375rem' }\">\r\n  <span class=\"p-text-secondary block mb-5\">Update your information.</span>\r\n  <div class=\"flex align-items-center gap-3 mb-3\">\r\n    <label for=\"username\" class=\"font-semibold w-6rem\">Username</label>\r\n    <input pInputText id=\"username\" class=\"flex-auto\" autocomplete=\"off\" />\r\n  </div>\r\n  <div class=\"flex align-items-center gap-3 mb-5\">\r\n    <label for=\"email\" class=\"font-semibold w-6rem\">Email</label>\r\n    <input pInputText id=\"email\" class=\"flex-auto\" autocomplete=\"off\" />\r\n  </div>\r\n  <div class=\"flex justify-content-end gap-2\">\r\n    <p-button label=\"Cancel\" severity=\"secondary\" (onClick)=\"visibleMedium1 = false\" />\r\n    <p-button label=\"Save\" (onClick)=\"visibleMedium1 = false\" />\r\n  </div>\r\n</p-dialog>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-modal-m2',\r\n  templateUrl: './modal-m2.component.html',\r\n  styleUrls: ['./modal-m2.component.scss']\r\n})\r\nexport class ModalM2Component {\r\n  visibleMedium2: boolean = false;\r\n\r\n  showDialogMedium2() {\r\n    this.visibleMedium2 = true;\r\n  }\r\n\r\n}\r\n","<p-button (onClick)=\"showDialogMedium2()\" label=\"Medium 2\" />\r\n<p-dialog header=\"Edit Profile\" [modal]=\"true\" [(visible)]=\"visibleMedium2\"\r\n  [style]=\"{ width: '36.5rem', height:'22.313' }\">\r\n  <span class=\"p-text-secondary block mb-5\">Update your information.</span>\r\n  <div class=\"flex align-items-center gap-3 mb-3\">\r\n    <label for=\"username\" class=\"font-semibold w-6rem\">Username</label>\r\n    <input pInputText id=\"username\" class=\"flex-auto\" autocomplete=\"off\" />\r\n  </div>\r\n  <div class=\"flex align-items-center gap-3 mb-5\">\r\n    <label for=\"email\" class=\"font-semibold w-6rem\">Email</label>\r\n    <input pInputText id=\"email\" class=\"flex-auto\" autocomplete=\"off\" />\r\n  </div>\r\n  <div class=\"flex justify-content-end gap-2\">\r\n    <p-button label=\"Cancel\" severity=\"secondary\" (onClick)=\"visibleMedium2 = false\" />\r\n    <p-button label=\"Save\" (onClick)=\"visibleMedium2 = false\" />\r\n  </div>\r\n</p-dialog>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-modal-m3',\r\n  templateUrl: './modal-m3.component.html',\r\n  styleUrls: ['./modal-m3.component.scss']\r\n})\r\nexport class ModalM3Component {\r\n  visibleMedium3: boolean = false;\r\n\r\n  showDialogMedium3() {\r\n    this.visibleMedium3 = true;\r\n  }\r\n}\r\n","<p-button (onClick)=\"showDialogMedium3()\" label=\"Medium 3\" />\r\n<p-dialog header=\"Edit Profile\" [modal]=\"true\" [(visible)]=\"visibleMedium3\"\r\n  [style]=\"{ width: '50.25rem', height:'33.313rem' }\">\r\n  <span class=\"p-text-secondary block mb-5\">Update your information.</span>\r\n  <div class=\"flex align-items-center gap-3 mb-3\">\r\n    <label for=\"username\" class=\"font-semibold w-6rem\">Username</label>\r\n    <input pInputText id=\"username\" class=\"flex-auto\" autocomplete=\"off\" />\r\n  </div>\r\n  <div class=\"flex align-items-center gap-3 mb-5\">\r\n    <label for=\"email\" class=\"font-semibold w-6rem\">Email</label>\r\n    <input pInputText id=\"email\" class=\"flex-auto\" autocomplete=\"off\" />\r\n  </div>\r\n  <div class=\"flex justify-content-end gap-2\">\r\n    <p-button label=\"Cancel\" severity=\"secondary\" (onClick)=\"visibleMedium3 = false\" />\r\n    <p-button label=\"Save\" (onClick)=\"visibleMedium3 = false\" />\r\n  </div>\r\n</p-dialog>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-modal-m4',\r\n  templateUrl: './modal-m4.component.html',\r\n  styleUrls: ['./modal-m4.component.scss']\r\n})\r\nexport class ModalM4Component {\r\n  visibleMedium4: boolean = false;\r\n\r\n  showDialogMedium4() {\r\n    this.visibleMedium4 = true;\r\n  }\r\n\r\n}\r\n","<p-button (onClick)=\"showDialogMedium4()\" label=\"Medium 4 Modal\" />\r\n<p-dialog header=\"Edit Profile\" [modal]=\"true\" [(visible)]=\"visibleMedium4\"\r\n  [style]=\"{  width: '60.625rem', height:'40rem' }\">\r\n  <span class=\"p-text-secondary block mb-5\">Update your information.</span>\r\n  <div class=\"flex align-items-center gap-3 mb-3\">\r\n    <label for=\"username\" class=\"font-semibold w-6rem\">Username</label>\r\n    <input pInputText id=\"username\" class=\"flex-auto\" autocomplete=\"off\" />\r\n  </div>\r\n  <div class=\"flex align-items-center gap-3 mb-5\">\r\n    <label for=\"email\" class=\"font-semibold w-6rem\">Email</label>\r\n    <input pInputText id=\"email\" class=\"flex-auto\" autocomplete=\"off\" />\r\n  </div>\r\n  <div class=\"flex justify-content-end gap-2\">\r\n    <p-button label=\"Cancel\" severity=\"secondary\" (onClick)=\"visibleMedium4 = false\" />\r\n    <p-button label=\"Save\" (onClick)=\"visibleMedium4 = false\" />\r\n  </div>\r\n</p-dialog>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-modal-s',\r\n  templateUrl: './modal-s.component.html',\r\n  styleUrls: ['./modal-s.component.scss']\r\n})\r\nexport class ModalSComponent {\r\n  visibleSmall: boolean = false;\r\n\r\n  showDialogSmall() {\r\n    this.visibleSmall = true;\r\n  }\r\n}\r\n","<p-button (onClick)=\"showDialogSmall()\" label=\"Small PopUP\" />\r\n<p-dialog header=\"Edit Profile\" [modal]=\"true\" [(visible)]=\"visibleSmall\"\r\n  [style]=\"{ width: '25rem', height:'15.625rem' }\">\r\n  <span class=\"p-text-secondary block mb-5\">Update your information.</span>\r\n  <div class=\"flex align-items-center gap-3 mb-3\">\r\n    <label for=\"username\" class=\"font-semibold w-6rem\">Username</label>\r\n    <input pInputText id=\"username\" class=\"flex-auto\" autocomplete=\"off\" />\r\n  </div>\r\n  <div class=\"flex align-items-center gap-3 mb-5\">\r\n    <label for=\"email\" class=\"font-semibold w-6rem\">Email</label>\r\n    <input pInputText id=\"email\" class=\"flex-auto\" autocomplete=\"off\" />\r\n  </div>\r\n  <div class=\"flex justify-content-end gap-2\">\r\n    <p-button label=\"Cancel\" severity=\"secondary\" (onClick)=\"visibleSmall = false\" />\r\n    <p-button label=\"Save\" (onClick)=\"visibleSmall = false\" />\r\n  </div>\r\n</p-dialog>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-splitter',\r\n  templateUrl: './splitter.component.html',\r\n  styleUrls: ['./splitter.component.scss']\r\n})\r\nexport class SplitterComponent {\r\n\r\n}\r\n","<p>splitter works!</p>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-timeline',\r\n  templateUrl: './timeline.component.html',\r\n  styleUrls: ['./timeline.component.scss']\r\n})\r\nexport class TimelineComponent {\r\n  events: any = [\r\n    { status: 'Ordered', date: '15/10/2020 10:30', icon: 'pi pi-shopping-cart', color: '#9C27B0', image: 'game-controller.jpg' },\r\n    { status: 'Processing', date: '15/10/2020 14:00', icon: 'pi pi-cog', color: '#673AB7' },\r\n    { status: 'Shipped', date: '15/10/2020 16:15', icon: 'pi pi-shopping-cart', color: '#FF9800' },\r\n    { status: 'Delivered', date: '16/10/2020 10:00', icon: 'pi pi-check', color: '#607D8B' }\r\n  ];\r\n}\r\n","<div class=\"timeline\">\r\n    <p-timeline [value]=\"events\">\r\n      <ng-template pTemplate=\"content\" let-event>\r\n        {{ event.status }}\r\n      </ng-template>\r\n    </p-timeline>\r\n  </div>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-toaster',\r\n  templateUrl: './toaster.component.html',\r\n  styleUrls: ['./toaster.component.scss']\r\n})\r\nexport class ToasterComponent {\r\n\r\n}\r\n","<p>toaster works!</p>\r\n","import { Component, Input } from '@angular/core';\r\nimport { Validators } from '@angular/forms';\r\n// import { Patterns } from 'projects/auditour1/src/public-api';\r\n\r\n@Component({\r\n  selector: 'lib-inputbox-text',\r\n  templateUrl: './inputbox-text.component.html',\r\n  styleUrls: ['./inputbox-text.component.scss'],\r\n})\r\nexport class InputboxTextComponent {\r\n  @Input() control!: any;\r\n  @Input() label: string = '';\r\n  @Input() placeholder: string = '';\r\n  @Input() id: string = '';\r\n  @Input() type: string = 'text';\r\n  @Input() required: boolean = false;\r\n  @Input() pattern?: any;\r\n  @Input() minLength?: number;\r\n  @Input() maxLength?: number;\r\n  @Input() disabled: boolean = false;\r\n  @Input() applyCustomStyle: boolean = false;\r\n\r\n  // Error message inputs\r\n  @Input() patternErrorMessage: string =\r\n    'The first character cannot be a special character.';\r\n  @Input() requiredErrorMessage: string = 'This field is required.';\r\n  @Input() minLengthErrorMessage: string = 'Minimum length not met.';\r\n  @Input() maxLengthErrorMessage: string = 'Maximum length exceeded.';\r\n\r\n  value: string = '';\r\n  onChange: (value: string) => void = () => {};\r\n  onTouched: () => void = () => {};\r\n  ngOnInit(): void {\r\n    const validators = [];\r\n\r\n    if (this.required) {\r\n      validators.push(Validators.required);\r\n    }\r\n\r\n    // Use the provided pattern or default to the custom pattern for validation\r\n    const customPattern = this.pattern || /^[a-zA-Z0-9][\\s\\S]*$/;\r\n    validators.push(Validators.pattern(customPattern));\r\n\r\n    if (this.minLength !== undefined) {\r\n      validators.push(Validators.minLength(this.minLength));\r\n    }\r\n\r\n    if (this.maxLength !== undefined) {\r\n      validators.push(Validators.maxLength(this.maxLength));\r\n    }\r\n\r\n    this.control.setValidators(validators);\r\n    this.control.updateValueAndValidity();\r\n\r\n    // Set the control disabled if the input property is true\r\n    if (this.disabled) {\r\n      this.control.disable();\r\n    }\r\n  }\r\n\r\n  writeValue(value: string): void {\r\n    this.value = value;\r\n  }\r\n\r\n  registerOnChange(fn: (value: string) => void): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: () => void): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  // Update the value and notify the form\r\n  // onInput(event: any): void {\r\n  //   const sanitizedValue = this.sanitizeInput(event.target.value);\r\n  //   this.value = sanitizedValue;\r\n  //   this.control.setValue(sanitizedValue, { emitEvent: false });\r\n  //   this.onChange(sanitizedValue);\r\n  //   this.onTouched();\r\n  // }\r\n\r\n  // Function to sanitize input (e.g., trim whitespace)\r\n  sanitizeInput(value: string): string {\r\n    return value.trim();\r\n  }\r\n}\r\n","<div class=\"input-one\" style=\"margin: 10px 0px\">\r\n  <label class=\"name-heading\" [attr.for]=\"id\">{{ label }}</label>\r\n  <input\r\n    class=\"custom-input\"\r\n    pInputText\r\n    [id]=\"id\"\r\n    [placeholder]=\"placeholder\"\r\n    [required]=\"required\"\r\n    [value]=\"value\"\r\n    [type]=\"type\"\r\n    [formControl]=\"control\"\r\n    [disabled]=\"disabled\"\r\n  />\r\n  <!-- (input)=\"onInput($event)\" -->\r\n  <ng-container *ngIf=\"control.invalid && (control.dirty || control.touched)\">\r\n<div class=\"error-msg-input\">\r\n  <div *ngIf=\"control.hasError('required')\" class=\"error-message\">\r\n    {{ requiredErrorMessage }}\r\n  </div>\r\n  <div *ngIf=\"control.hasError('pattern')\" class=\"error-message\">\r\n    {{ patternErrorMessage }}\r\n  </div>\r\n  <span style=\"color: red;\"\r\n      *ngIf=\"(control?.hasError('pattern') && control?.touched) && (control?.hasError('minlength') && control?.touched)\">,</span>\r\n      <div *ngIf=\"control.hasError('minlength')\" class=\"error-message\">\r\n        {{ minLengthErrorMessage }}\r\n      </div>\r\n      <span style=\"color: red;\"\r\n          *ngIf=\"(control?.hasError('pattern') && control?.touched) && (control?.hasError('maxlength') && control?.touched)\">,</span>\r\n  <div *ngIf=\"control.hasError('maxlength')\" class=\"error-message\">\r\n    {{ maxLengthErrorMessage }}\r\n  </div>\r\n</div>\r\n\r\n  </ng-container>\r\n</div>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-input-key-filters-number',\r\n  templateUrl: './input-key-filters-number.component.html',\r\n  styleUrls: ['./input-key-filters-number.component.scss']\r\n})\r\nexport class InputKeyFiltersNumberComponent {\r\n\r\n}\r\n","<div class=\"input-one\">\r\n    <label class=\"number-heading\">Integers</label>\r\n    <input class=\"custom-input\" pInputText pKeyFilter=\"int\" placeholder=\"Integers\" />\r\n  </div>","// import { DatePipe } from '@angular/common';\r\nimport { Injectable, Input, SimpleChanges } from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { jwtDecode } from 'jwt-decode';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { NgxSpinnerService } from 'ngx-spinner';\r\nimport { DatePipe } from '@angular/common';\r\n\r\ntype ToastrType = 'success' | 'error' | 'info' | 'warning';\r\n\r\n// TOASTER CONST\r\nexport const TOASTER_SUCCESS = 'success';\r\nexport const TOASTER_ERROR = 'error';\r\nexport const TOASTER_INFO = 'info';\r\nexport const TOASTER_WARNING = 'warning';\r\nexport const ERROR_MESSAGE = 'Something went wrong';\r\n\r\n// LOCAL STORAGE CONST\r\nexport const STORAGE_ACCESS_TOKEN = 'access_token';\r\nexport const STORAGE_REFRESH_TOKEN = 'refresh_token';\r\nexport const STORAGE_CURRENT_USER = 'current_user';\r\nexport const STORAGE_ROLE_TYPE = 'role_type';\r\nexport const STORAGE_ROLES = 'roles';\r\nexport const STORAGE_IS_CHANGED = 'isChanged';\r\nexport let SITE_LOGIN_URL: string = '';\r\nexport let SITE_IP: string = '';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class CommonService {\r\n  @Input() navigationURL: string = '';\r\n  // public SITE_LOGIN_URL: string = '';\r\n  // public SITE_IP: string = '';\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (this.navigationURL)\r\n      return (SITE_LOGIN_URL = this.navigationURL + '/auth');\r\n    return (SITE_IP = `${this.navigationURL}`);\r\n  }\r\n  constructor(\r\n    private toastr: ToastrService,\r\n    private date: DatePipe,\r\n    private siteLoader: NgxSpinnerService,\r\n    private cookieService: CookieService\r\n  ) {}\r\n\r\n  // setNavigationURL(url: string): void {\r\n  //   this.navigationURL = url;\r\n  //   this.SITE_LOGIN_URL = `${this.navigationURL}/auth`;\r\n  // }\r\n\r\n  // getLoginURL(): string {\r\n  //   return this.SITE_LOGIN_URL;\r\n  // }\r\n\r\n  // SHOW TOASTER\r\n  showToastr(type: ToastrType, message: string) {\r\n    this.toastr[type](message);\r\n  }\r\n\r\n  roles: any = localStorage.getItem(STORAGE_ROLES);\r\n  auth() {\r\n    return (\r\n      !this.roles.includes('Compliance Reader') &&\r\n      !this.roles.includes('Compliance Manager') &&\r\n      !this.roles.includes('Compliance User') &&\r\n      !this.roles.includes('Application Admin') &&\r\n      !this.roles.includes('Super Admin')\r\n    );\r\n  }\r\n\r\n  // SITE LOADERS\r\n  startLoader() {\r\n    this.siteLoader.show();\r\n  }\r\n\r\n  stopLoader() {\r\n    this.siteLoader.hide();\r\n  }\r\n\r\n  //CHECK FILE EXTENSION\r\n  checkFileExtension(fileExtension: string, isSkipZip = false) {\r\n    let allowedExtensions = [];\r\n    if (isSkipZip) {\r\n      allowedExtensions = [\r\n        'docx',\r\n        'pdf',\r\n        'csv',\r\n        'xlsx',\r\n        'png',\r\n        'xls',\r\n        'jpeg',\r\n        'jpg',\r\n      ];\r\n    } else {\r\n      allowedExtensions = [\r\n        'docx',\r\n        'pdf',\r\n        'csv',\r\n        'xlsx',\r\n        'png',\r\n        'xls',\r\n        'jpeg',\r\n        'jpg',\r\n        'zip',\r\n      ];\r\n    }\r\n    return allowedExtensions.includes(fileExtension);\r\n  }\r\n\r\n  // FILE DOWNLOAD\r\n  fileDownload(blob: any, fileName: any) {\r\n    const link = document.createElement('a');\r\n    link.href = window.URL.createObjectURL(blob);\r\n    link.download = fileName;\r\n    return link.click();\r\n  }\r\n\r\n  // DATE TRANSFORM\r\n  dateTransform(date: any, format = 'YYYY-MM-dd') {\r\n    return this.date.transform(date, format);\r\n  }\r\n\r\n  // Local storage - Set and get details\r\n  setStorage(key: string, value: string) {\r\n    localStorage.setItem(key, value);\r\n  }\r\n\r\n  getStorage(key: string) {\r\n    return localStorage.getItem(key);\r\n  }\r\n\r\n  clearAllStorage() {\r\n    localStorage.clear();\r\n  }\r\n  setSession(token: string): void {\r\n    const decodedToken: any = jwtDecode(token);\r\n    const expTime = decodedToken.exp * 1000; // Convert to milliseconds\r\n    const expDate = new Date(expTime);\r\n\r\n    this.cookieService.set(\r\n      STORAGE_ACCESS_TOKEN,\r\n      token,\r\n      expDate,\r\n      '/',\r\n      '',\r\n      false,\r\n      'Strict'\r\n    );\r\n  }\r\n\r\n  getSession(): string {\r\n    return this.cookieService.get(STORAGE_ACCESS_TOKEN);\r\n  }\r\n\r\n  clearSession(): void {\r\n    this.cookieService.delete(STORAGE_ACCESS_TOKEN, '/');\r\n  }\r\n\r\n  isSessionExpired(): boolean {\r\n    const token = this.getSession();\r\n    if (!token) {\r\n      return true; // No token means session is expired\r\n    }\r\n    const decodedToken: any = jwtDecode(token);\r\n    const expTime = decodedToken.exp * 1000; // Convert to milliseconds\r\n    const currentTime = Date.now();\r\n    let status = currentTime > expTime;\r\n    return status;\r\n  }\r\n\r\n  isLoggedIn(): boolean {\r\n    return !!localStorage.getItem(STORAGE_ACCESS_TOKEN);\r\n  }\r\n  patternValidation(inputMessage: string | null): string | null {\r\n    const isBase64 = (str: string): boolean => {\r\n      const base64Pattern = /^[A-Za-z0-9+/]+={0,2}$/;\r\n      return base64Pattern.test(str) && str.length % 4 === 0;\r\n    };\r\n    const decodeDescription = (str: string | null): string | null => {\r\n      if (!str) {\r\n        return null;\r\n      }\r\n      try {\r\n        const paddedStr = str.padEnd(Math.ceil(str.length / 4) * 4, '=');\r\n        if (isBase64(paddedStr)) {\r\n          return atob(paddedStr);\r\n        } else {\r\n          return null;\r\n        }\r\n      } catch (error) {\r\n        return inputMessage;\r\n      }\r\n    };\r\n    const description = inputMessage ?? null;\r\n    const decodedDescription = decodeDescription(description);\r\n    if (decodedDescription) {\r\n      return decodedDescription;\r\n    } else {\r\n      return inputMessage;\r\n    }\r\n  }\r\n\r\n\r\n  patternValidationView(inputMessage: string | null): string | null {\r\n    const isBase64 = (str: string): boolean => {\r\n      const base64Pattern = /^[A-Za-z0-9+/]+={0,2}$/;\r\n      return base64Pattern.test(str) && str.length % 4 === 0;\r\n    };\r\n \r\n    const decodeDescription = (str: string | null): string | null => {\r\n      if (!str) {\r\n        return null;\r\n      }\r\n      try {\r\n        const paddedStr = str.padEnd(Math.ceil(str.length / 4) * 4, '=');\r\n        if (isBase64(paddedStr)) {\r\n          return atob(paddedStr);\r\n        } else {\r\n          return null;\r\n        }\r\n      } catch (error) {\r\n        return inputMessage;\r\n      }\r\n    };\r\n \r\n    const stripHtmlTags = (html: string): string => {\r\n      const doc = new DOMParser().parseFromString(html, \"text/html\");\r\n      return doc.body.textContent || \"\";\r\n    };\r\n \r\n    const description = inputMessage ?? null;\r\n    const decodedDescription = decodeDescription(description);\r\n \r\n    return decodedDescription ? stripHtmlTags(decodedDescription) : stripHtmlTags(inputMessage || \"\");\r\n  }\r\n\r\n\r\n  //***   Checking Payload size*/\r\n\r\n  getPayloadSize(payload: any): number {\r\n    const payloadString = JSON.stringify(payload);\r\n    return new TextEncoder().encode(payloadString).length / (1024 * 1024);\r\n  }\r\n\r\n  isPayloadValid(payload: any, maxSizeMB: number = 2): boolean {\r\n    const payloadSize = this.getPayloadSize(payload);\r\n    if (payloadSize > maxSizeMB) {\r\n      return false;\r\n    }\r\n    return true;\r\n  }\r\n\r\n  /** Conversion payload */\r\n\r\n  safeBase64Decode(encodedStr: string): string {\r\n    try {\r\n      if (!encodedStr) return '';\r\n      const isBase64 =\r\n        /^[A-Za-z0-9+/]*={0,2}$/.test(encodedStr.trim()) &&\r\n        encodedStr.length % 4 === 0;\r\n      if (isBase64) {\r\n        return decodeURIComponent(escape(atob(encodedStr)));\r\n      } else {\r\n        return encodedStr;\r\n      }\r\n    } catch (error) {\r\n      return encodedStr;\r\n    }\r\n  }\r\n\r\n  safeBase64Encode(str: string): string {\r\n    try {\r\n      if (!str) return '';\r\n      return btoa(unescape(encodeURIComponent(str)));\r\n    } catch (error) {\r\n      this.showToastr(\r\n        TOASTER_ERROR,\r\n        'Invalid Base64 string or old record detected:'\r\n      );\r\n      return str;\r\n    }\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  ElementRef,\r\n  Input,\r\n  QueryList,\r\n  ViewChildren,\r\n} from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { CommonService } from '../../services/common/common.service';\r\n\r\n@Component({\r\n  selector: 'lib-rich-text-editor',\r\n  templateUrl: './rich-text-editor.component.html',\r\n  styleUrls: ['./rich-text-editor.component.scss'],\r\n})\r\nexport class RichTextEditorComponent {\r\n  @ViewChildren('textarea') textareas!: QueryList<\r\n    ElementRef<HTMLTextAreaElement>\r\n  >;\r\n\r\n  @Input() control: any = FormControl;\r\n  @Input() expand: boolean = false;\r\n  @Input() className!: string;\r\n  @Input() dynamicLabel: string = '';\r\n  private textAreaIdCounter = 0;\r\n  textEditorOptions = {\r\n    toolbar: [\r\n      [{ header: [1, 2, 3, 4, 5, 6, false] }],\r\n      ['bold', 'italic', 'underline'],\r\n      [{ color: [] }, { background: [] }],\r\n      [{ list: 'ordered' }, { list: 'bullet' }],\r\n      [{ align: [] }],\r\n      ['link'],\r\n    ],\r\n  };\r\n\r\n  constructor(private commonService: CommonService) {}\r\n\r\n  generateTextareaId(): string {\r\n    this.textAreaIdCounter += this.textAreaIdCounter;\r\n    return `textarea-${this.dynamicLabel}-id-${this.textAreaIdCounter}`;\r\n  }\r\n\r\n  currentTextAreaId() {\r\n    return `textarea-${this.dynamicLabel}-id-${this.textAreaIdCounter}`;\r\n  }\r\n\r\n  onEditorCreated(quill: any) {\r\n    quill.root.addEventListener('paste', (event: ClipboardEvent) => {\r\n      this.handlePateEvents(event, quill);\r\n    });\r\n  }\r\n\r\n  async handlePateEvents(event: ClipboardEvent, quill: any) {\r\n    let fileSizestatus = await this.imageFileSizeRestriction(event, quill);\r\n    if (fileSizestatus) {\r\n      const imageLimit = 3;\r\n      setTimeout(() => {\r\n        const updatedImages = quill.root.querySelectorAll('img');\r\n        const totalImages = updatedImages.length;\r\n        if (totalImages > imageLimit) {\r\n          this.commonService.showToastr(\r\n            'error',\r\n            'Image limit exceeded. Only 3 images are allowed.'\r\n          );\r\n          for (let i = totalImages - 1; i >= imageLimit; i--) {\r\n            updatedImages[i].remove();\r\n          }\r\n        }\r\n      }, 100);\r\n    }\r\n  }\r\n\r\n  totalContentSizeMB = 0;\r\n\r\n  imageFileSizeRestriction(event: ClipboardEvent, quill: any) {\r\n    return new Promise((resolve, reject) => {\r\n      const clipboardData = event.clipboardData;\r\n      const items: any = clipboardData?.items;\r\n\r\n      let pastedImageSizeBytes = 0;\r\n\r\n      if (items) {\r\n        for (const item of items) {\r\n          if (item.type.startsWith('image/')) {\r\n            const file = item.getAsFile();\r\n            if (file) {\r\n              pastedImageSizeBytes += file.size;\r\n            }\r\n          }\r\n        }\r\n\r\n        // Calculate text size\r\n        const text = quill.getText().trim();\r\n        const textSizeBytes = new Blob([text]).size;\r\n\r\n        // Calculate existing image size\r\n        const images = quill.root.querySelectorAll('img');\r\n        let existingImageSizeBytes = 0;\r\n\r\n        images.forEach((img: HTMLImageElement) => {\r\n          const src = img.getAttribute('src');\r\n          if (src && src.startsWith('data:image')) {\r\n            const base64String = src.split(',')[1];\r\n            existingImageSizeBytes += (base64String.length * 3) / 4; // Base64 to bytes\r\n          }\r\n        });\r\n\r\n        // Calculate total size\r\n        this.totalContentSizeMB =\r\n          (textSizeBytes + existingImageSizeBytes + pastedImageSizeBytes) /\r\n          (1024 * 1024);\r\n\r\n        if (this.totalContentSizeMB > 0.5) {\r\n          event.preventDefault();\r\n          this.commonService.showToastr(\r\n            'error',\r\n            ` Total Image size (${(this.totalContentSizeMB * 1024).toFixed(\r\n              2\r\n            )} KB) exceeds the 500KB limit.`\r\n          );\r\n          resolve(false);\r\n        } else {\r\n          resolve(true);\r\n        }\r\n      } else {\r\n        resolve(false);\r\n      }\r\n    });\r\n  }\r\n}\r\n","<!-- <quill-editor [formControl]=\"formControl\" [modules]=\"textEditorOptions\"  style=\"width: 100%;\" >             \r\n</quill-editor> -->\r\n\r\n<div style=\"margin-bottom: 10px\">\r\n    <label>{{ dynamicLabel }}</label>\r\n    <quill-editor\r\n      customToolbarPosition=\"bottom\"\r\n      [formControl]=\"control\"\r\n      [modules]=\"textEditorOptions\"\r\n      style=\"width: 100%\"\r\n      (onEditorCreated)=\"onEditorCreated($event)\"\r\n    >\r\n    </quill-editor>\r\n  </div>\r\n\r\n\r\n<!-- NOTES -->\r\n\r\n<!-- \r\n    1. Install quill-editor library using npm or yarn: Need to install NPM are => quill-editor@23.0.2, @types/quill@1.3.10,dompurify@2.3.6 and @types/dompurify\": \"^2.3.3\r\n    2. Add quil css in style.css file for your application. For your reference these css are added in custom-css file.\r\n    3. Import QuillModule in your module.ts file.\r\n    4. After that using dompurify for sanitizing your data while binding in rich text editor.\r\n    5. Here, Auditour1Service => sanitizeContent(content:string)  method is used to sanitize content. Initally bind content to use this method and whenever submit form value to api,\r\n    need to use this method also then send it to the API params.\r\n -->","import { Component, Input } from '@angular/core';\r\nimport { Validators } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'lib-textarea-large',\r\n  templateUrl: './textarea-large.component.html',\r\n  styleUrls: ['./textarea-large.component.scss'],\r\n})\r\nexport class TextareaLargeComponent {\r\n  @Input() dynamicLabel!: string;\r\n  @Input() pattern!: string; // Dynamic pattern input\r\n  @Input() required = false; // Control required validation\r\n  @Input() control: any;\r\n  @Input() id: string = '';\r\n  @Input() minLength?: number;\r\n  @Input() maxLength?: number = 2000;\r\n  @Input() patternErrorMessage: string =\r\n    'The first character cannot be a special character.';\r\n  @Input() requiredErrorMessage: string = 'This field is required.';\r\n  @Input() minLengthErrorMessage: string = 'Minimum length not met.';\r\n  @Input() maxLengthErrorMessage: string = 'Maximum length exceeded.';\r\n  @Input() disabled: boolean = false;\r\n  @Input() applyCustomStyle: boolean = false;\r\n  value: string = '';\r\n  onChange: (value: string) => void = () => {};\r\n  onTouched: () => void = () => {};\r\n  ngOnInit(): void {\r\n    const validators = [];\r\n\r\n    if (this.required) {\r\n      validators.push(Validators.required);\r\n    }\r\n\r\n    // Use the provided pattern or default to the custom pattern for validation\r\n    const customPattern = this.pattern || /^[a-zA-Z0-9][\\s\\S]*$/;\r\n    validators.push(Validators.pattern(customPattern));\r\n\r\n    if (this.minLength !== undefined) {\r\n      validators.push(Validators.minLength(this.minLength));\r\n    }\r\n\r\n    if (this.maxLength !== undefined) {\r\n      validators.push(Validators.maxLength(this.maxLength));\r\n    }\r\n\r\n    this.control.setValidators(validators);\r\n    this.control.updateValueAndValidity();\r\n\r\n    // Set the control disabled if the input property is true\r\n    if (this.disabled) {\r\n      this.control.disable();\r\n    }\r\n  }\r\n\r\n  writeValue(value: string): void {\r\n    this.value = value;\r\n  }\r\n\r\n  registerOnChange(fn: (value: string) => void): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: () => void): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  // Update the value and notify the form\r\n  // onInput(event: any): void {\r\n  //   const sanitizedValue = this.sanitizeInput(event.target.value);\r\n  //   this.value = sanitizedValue;\r\n  //   this.control.setValue(sanitizedValue, { emitEvent: false });\r\n  //   this.onChange(sanitizedValue);\r\n  //   this.onTouched();\r\n  // }\r\n\r\n  // Function to sanitize input (e.g., trim whitespace)\r\n  sanitizeInput(value: string): string {\r\n    return value.trim();\r\n  }\r\n}\r\n","<div class=\"textarea-container\">\r\n  <label class=\"text-area-name-heading\" [attr.for]=\"id\">{{\r\n    dynamicLabel\r\n  }}</label>\r\n  <textarea\r\n    placeholder=\"Enter Text\"\r\n    [id]=\"id\"\r\n    rows=\"5\"\r\n    cols=\"30\"\r\n    pInputTextarea\r\n    [formControl]=\"control\"\r\n    [disabled]=\"disabled\"\r\n    [ngClass]=\"{\r\n      'textarea-disabled': disabled\r\n    }\"\r\n  ></textarea>\r\n\r\n  <ng-container *ngIf=\"control.invalid && (control.dirty || control.touched)\">\r\n    <div *ngIf=\"control.hasError('required')\" class=\"error-message\">\r\n      {{ requiredErrorMessage }}\r\n    </div>\r\n    <div *ngIf=\"control.hasError('pattern')\" class=\"error-message\">\r\n      {{ patternErrorMessage }}\r\n    </div>\r\n    <div *ngIf=\"control.hasError('minlength')\" class=\"error-message\">\r\n      {{ minLengthErrorMessage }}\r\n    </div>\r\n    <div *ngIf=\"control.hasError('maxlength')\" class=\"error-message\">\r\n      {{ maxLengthErrorMessage }}\r\n    </div>\r\n  </ng-container>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'lib-textarea-medium',\r\n  templateUrl: './textarea-medium.component.html',\r\n  styleUrls: ['./textarea-medium.component.scss']\r\n})\r\nexport class TextareaMediumComponent {\r\n  @Input() dynamicLabel!: string;\r\n  @Input() pattern!: string; // Dynamic pattern input\r\n  @Input() required = false; // Control required validation\r\n  @Input() control: any;\r\n  @Input() id: string = '';\r\n  @Input() minLength?: number;\r\n  @Input() maxLength?: number = 500;\r\n  @Input() patternErrorMessage: string =\r\n    'The first character cannot be a special character.';\r\n  @Input() requiredErrorMessage: string = 'This field is required.';\r\n  @Input() minLengthErrorMessage: string = 'Minimum length not met.';\r\n  @Input() maxLengthErrorMessage: string = 'Maximum length exceeded.';\r\n  @Input() disabled: boolean = false;\r\n\r\n  value: string = '';\r\n  onChange: (value: string) => void = () => {};\r\n  onTouched: () => void = () => {};\r\n  ngOnInit(): void {\r\n    const validators = [];\r\n\r\n    if (this.required) {\r\n      validators.push(Validators.required);\r\n    }\r\n\r\n    // Use the provided pattern or default to the custom pattern for validation\r\n    const customPattern = this.pattern || /^[a-zA-Z0-9][\\s\\S]*$/;\r\n    validators.push(Validators.pattern(customPattern));\r\n\r\n    if (this.minLength !== undefined) {\r\n      validators.push(Validators.minLength(this.minLength));\r\n    }\r\n\r\n    if (this.maxLength !== undefined) {\r\n      validators.push(Validators.maxLength(this.maxLength));\r\n    }\r\n\r\n    this.control.setValidators(validators);\r\n    this.control.updateValueAndValidity();\r\n\r\n    // Set the control disabled if the input property is true\r\n    if (this.disabled) {\r\n      this.control.disable();\r\n    }\r\n  }\r\n\r\n  writeValue(value: string): void {\r\n    this.value = value;\r\n  }\r\n\r\n  registerOnChange(fn: (value: string) => void): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: () => void): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  // Update the value and notify the form\r\n  // onInput(event: any): void {\r\n  //   const sanitizedValue = this.sanitizeInput(event.target.value);\r\n  //   this.value = sanitizedValue;\r\n  //   this.control.setValue(sanitizedValue, { emitEvent: false });\r\n  //   this.onChange(sanitizedValue);\r\n  //   this.onTouched();\r\n  // }\r\n\r\n  // Function to sanitize input (e.g., trim whitespace)\r\n  sanitizeInput(value: string): string {\r\n    return value.trim();\r\n  }\r\n}\r\n","<div class=\"textarea-container\">\r\n  <label class=\"text-area-name-heading\" [attr.for]=\"id\">{{\r\n    dynamicLabel\r\n  }}</label>\r\n  <textarea\r\n    placeholder=\"Enter Text\"\r\n    [id]=\"id\"\r\n    rows=\"5\"\r\n    cols=\"30\"\r\n    pInputTextarea\r\n    [formControl]=\"control\"\r\n    [disabled]=\"disabled\"\r\n    [ngClass]=\"{ 'textarea-disabled': disabled }\"\r\n  ></textarea>\r\n\r\n  <ng-container *ngIf=\"control.invalid && (control.dirty || control.touched)\">\r\n    <div class=\"error-msg-input\">\r\n      <div *ngIf=\"control.hasError('required')\" class=\"error-message\">\r\n        {{ requiredErrorMessage }}\r\n      </div>\r\n      <div *ngIf=\"control.hasError('pattern')\" class=\"error-message\">\r\n        {{ patternErrorMessage }}\r\n      </div>\r\n\r\n      <span\r\n        style=\"color: red\"\r\n        *ngIf=\"\r\n          control?.hasError('pattern') &&\r\n          control?.touched &&\r\n          control?.hasError('minlength') &&\r\n          control?.touched\r\n        \"\r\n        >,</span\r\n      >\r\n      <div *ngIf=\"control.hasError('minlength')\" class=\"error-message\">\r\n        {{ minLengthErrorMessage }}\r\n      </div>\r\n      <span\r\n        style=\"color: red\"\r\n        *ngIf=\"\r\n          control?.hasError('pattern') &&\r\n          control?.touched &&\r\n          control?.hasError('maxlength') &&\r\n          control?.touched\r\n        \"\r\n        >,</span\r\n      >\r\n      <div *ngIf=\"control.hasError('maxlength')\" class=\"error-message\">\r\n        {{ maxLengthErrorMessage }}\r\n      </div>\r\n    </div>\r\n  </ng-container>\r\n</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-button-with-icon',\r\n  templateUrl: './button-with-icon.component.html',\r\n  styleUrls: ['./button-with-icon.component.scss']\r\n})\r\nexport class ButtonWithIconComponent {\r\n@Input() label:string=''\r\n}\r\n","<P><button pButton class=\"icon-bacground-button\" [label]=\"label\" icon=\"pi pi-filter\"></button></P>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup, FormBuilder } from '@angular/forms';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Component({\r\n  selector: 'lib-global-filters',\r\n  templateUrl: './global-filters.component.html',\r\n  styleUrls: ['./global-filters.component.scss']\r\n})\r\nexport class GlobalFiltersComponent {\r\n  form!: FormGroup;\r\n\r\n  @Output() filteredDataEvent = new EventEmitter<any[]>();\r\n  @Input() columns: any;\r\n  @Input() data: any = [];\r\n  @Input() filterData: any = [];\r\n  @Input() commonData: any;\r\n  @Input() filterName: string = '';\r\n  @Input() selectedfinalRowList: any = [];\r\n  @Input() serverSideFilter: boolean = false;\r\n\r\n  constructor(private fb: FormBuilder, private sanitizer: DomSanitizer) {\r\n    this.form = this.fb.group({\r\n      type: [],\r\n      select_item: [[]],\r\n    });\r\n  }\r\n  getKeys(item: any): string[] {\r\n    return Object.keys(item);\r\n  }\r\n  getSelectedOptionsText() {\r\n    const selectedOptions = this.form.get('select_item')?.value || [];\r\n    if (selectedOptions.length > 2) {\r\n      return `${selectedOptions.slice(0, 2).join(', ')} +${selectedOptions.length - 2\r\n        }`;\r\n    }\r\n\r\n    return selectedOptions.join(', ');\r\n  }\r\n\r\n  optionsTrackBy(index: number, item: any): any {\r\n    return item;\r\n  }\r\n  selectedFilterValues: any = [];\r\n  selectedArray: any = [];\r\n  onSubmit() {\r\n    this.finalOptions = [];\r\n    var filter = {\r\n      [this.form.value?.type]: this.form.value?.select_item,\r\n    };\r\n\r\n    this.selectedFilterValues = this.selectedFilterValues.filter(\r\n      (item: any) => !item.hasOwnProperty(this.form.value?.type)\r\n    );\r\n\r\n    this.selectedFilterValues.push({ ...filter });\r\n\r\n    this.filteredDataEvent.emit(this.selectedFilterValues);\r\n\r\n    this.form.reset();\r\n  }\r\n  finalOptions: any[] = [];\r\n  onOptionChanged(event: any) {\r\n    this.alreadySelectedItem = [];\r\n    this.finalOptions = [];\r\n    this.finalOptions = this.data[event.value] || [];\r\n    this.selectedFilterValues.forEach((ele: any) => {\r\n      Object.keys(ele).forEach((key) => {\r\n        if (event.value === key) {\r\n          this.alreadySelectedItem = ele[key];\r\n        }\r\n      });\r\n    });\r\n    this.formpatch();\r\n  }\r\n  toTitleCase(str: string): string {\r\n    if (typeof str !== 'string') {\r\n      return '';\r\n    }\r\n\r\n    return str\r\n      .toLowerCase()\r\n      .replace(/_/g, ' ')\r\n      .split(' ')\r\n      .map((word) => {\r\n        if (word.length > 0 && /[a-zA-Z]/.test(word.charAt(0))) {\r\n          return word.charAt(0).toUpperCase() + word.slice(1);\r\n        }\r\n        return word;\r\n      })\r\n      .join(' ');\r\n  }\r\n  removeItem(index: number) {\r\n    this.selectedFilterValues.splice(index, 1);\r\n\r\n    this.filteredDataEvent.emit(this.selectedFilterValues);\r\n  }\r\n  alreadySelectedItem: string[] = [];\r\n  formpatch() {\r\n    this.form.patchValue({\r\n      select_item: this.alreadySelectedItem,\r\n    });\r\n  }\r\n  clearAll() {\r\n    this.form.reset();\r\n    this.selectedFilterValues = [];\r\n    this.filteredDataEvent.emit(this.selectedFilterValues);\r\n  }\r\n\r\n  formatTooltipContent(data: string[]): SafeHtml {\r\n    const content = data.length <= 4\r\n      ? data.join('<br>')\r\n      : `${data.slice(0, 4).join('<br>')}<br>...and ${data.length - 4} more`;\r\n    return this.sanitizer.bypassSecurityTrustHtml(content);\r\n  }\r\n}\r\n","<div class=\"d-flex dynamic-filter\" style=\"width: fit-content\" >\r\n    <div class=\"d-flex\" style=\"flex-wrap: wrap; justify-content: end\">\r\n      <div\r\n        *ngFor=\"let item of selectedFilterValues; let i = index\"\r\n        class=\"d-flex selected-filter-list position-relative\"\r\n      >\r\n        <div\r\n          *ngFor=\"let key of getKeys(item)\"\r\n          class=\"keys-beautyfication\"\r\n          class=\"d-flex\"\r\n        >\r\n          <span>{{ toTitleCase(key) }} &nbsp;: &nbsp; </span>\r\n          <span>\r\n            {{ item[key][0] }}\r\n            <span *ngIf=\"item[key].length > 1\" pTooltip=\"{{ item[key] }}\" tooltipPosition=\"top\" >\r\n              +{{ item[key].length - 1 }}\r\n            </span>\r\n\r\n            <!-- <span *ngIf=\"item[key].length > 1\" \r\n              [tooltipPosition]=\"'top'\"\r\n              [tooltipStyleClass]=\"'custom-tooltip'\"\r\n              pTooltip=\"{{ formatTooltipContent(item[key]) }}\"\r\n              [escape]=\"false\"\r\n              >\r\n              +{{ item[key].length - 1 }}\r\n            </span> -->\r\n          </span>\r\n        </div>\r\n        <div class=\"filter-close-icon\">\r\n          <button (click)=\"removeItem(i)\">\r\n            <i class=\"hover-close\"></i>\r\n          </button>\r\n        </div>\r\n      </div>\r\n    </div>\r\n    <div>\r\n      <form [formGroup]=\"form\">\r\n        <div pTooltip=\"Filter\" tooltipPosition=\"bottom\">\r\n\r\n          <!-- <button class=\"filter-button\" [matMenuTriggerFor]=\"animals_menu\"> -->\r\n            <lib-button-with-icon class=\"filter-button\" [label]=\"filterName\" [matMenuTriggerFor]=\"animals_menu\"></lib-button-with-icon>            \r\n          <!-- </button>           -->\r\n          <!-- <button class=\"filter-button\" [matMenuTriggerFor]=\"animals_menu\">\r\n            Filters\r\n            <span class=\"arrow-icon\">\r\n              <img src=\"./assets/image/down_arrow.svg\" alt=\"\" />\r\n            </span>\r\n          </button> -->\r\n        </div>\r\n  \r\n        <mat-menu #animals_menu=\"matMenu\" [class]=\"'custom-filter'\">\r\n          <div class=\"filter-dropdown\">\r\n            <div class=\"filter-sharemodules\" (click)=\"$event.stopPropagation()\">\r\n              <label>Type</label>\r\n              <mat-form-field appearance=\"outline\">\r\n                <mat-select\r\n                  formControlName=\"type\"\r\n                  placeholder=\"Select Type\"\r\n                  (selectionChange)=\"onOptionChanged($event)\"\r\n                >\r\n                  <mat-option\r\n                    *ngFor=\"let item of columns; trackBy: optionsTrackBy\"\r\n                    [value]=\"item\"\r\n                  >\r\n                    {{ toTitleCase(item) }}\r\n                  </mat-option>\r\n                </mat-select>\r\n              </mat-form-field>\r\n            </div>\r\n            <div class=\"filter-sharemodules\" (click)=\"$event.stopPropagation()\">\r\n              <label>Select Item</label>\r\n              <mat-form-field appearance=\"outline\">\r\n                <mat-select\r\n                  formControlName=\"select_item\"\r\n                  placeholder=\"Select items\"\r\n                  multiple\r\n                  [value]=\"form.get('select_item')?.value\"\r\n                >\r\n                  <mat-select-trigger>\r\n                    {{ getSelectedOptionsText() }}\r\n                  </mat-select-trigger>\r\n                  <mat-option *ngIf=\"finalOptions?.length == 0\">\r\n                    No records\r\n                  </mat-option>\r\n                  <ng-container *ngFor=\"let item of finalOptions; trackBy: optionsTrackBy\">\r\n                    <mat-option\r\n                      *ngIf=\"item && item != null\"\r\n                      [value]=\"item\">\r\n                    <span > {{ item }}</span>\r\n                    </mat-option>\r\n                  </ng-container>\r\n                </mat-select>\r\n              </mat-form-field>\r\n            </div>\r\n  \r\n            <div class=\"apply-clear-button\">\r\n              <button\r\n                type=\"submit\"\r\n                class=\"apply-button\"\r\n                [disabled]=\"\r\n                  form.value?.type === null ||\r\n                  form.value?.select_item?.length === 0\r\n                \"\r\n                (click)=\"onSubmit()\"\r\n              >\r\n                APPLY\r\n              </button>\r\n              <button\r\n                type=\"button\"\r\n                class=\"clear-button\"\r\n                [disabled]=\"selectedFilterValues?.length == 0\"\r\n                (click)=\"clearAll()\"\r\n              >\r\n                CLEAR ALL\r\n              </button>\r\n            </div>\r\n          </div>\r\n        </mat-menu>\r\n      </form>\r\n    </div>\r\n  </div>\r\n  \r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-reports-filter',\r\n  templateUrl: './reports-filter.component.html',\r\n  styleUrls: ['./reports-filter.component.scss']\r\n})\r\nexport class ReportsFilterComponent {\r\n\r\n}\r\n","<p>reports-filter works!</p>\r\n","import { Component, ElementRef, ViewChild } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-fileuploads',\r\n  templateUrl: './fileuploads.component.html',\r\n  styleUrls: ['./fileuploads.component.scss']\r\n})\r\nexport class FileuploadsComponent {\r\n  @ViewChild('fileSelect') fileInput!: ElementRef;\r\n\r\n  selectedFile: File | null = null;\r\n\r\n  onFileSelect(event: any) {\r\n    const file = event.target.files[0];\r\n\r\n    if (file) {\r\n      this.selectedFile = file; // Store the selected file\r\n      // Handle the file upload or processing logic here\r\n    }\r\n  }\r\n\r\n  removeFile() {\r\n    this.selectedFile = null; // Clear the file selection\r\n    this.fileInput.nativeElement.value = ''; // Reset the file input element\r\n  }\r\n}\r\n\r\n\r\n","<div class=\"mb-2 task-attachment\">\r\n    <label class=\"form-label\" for=\"formFile\"></label>\r\n    <input (change)=\"onFileSelect($event)\" #fileSelect accept=\"all/*\" type=\"file\" class=\"choose-file\" />\r\n    <p-button *ngIf=\"selectedFile\" (click)=\"removeFile()\" aria-hidden=\"true\" icon=\"pi pi-times\" [rounded]=\"true\"\r\n      [text]=\"true\"></p-button>\r\n  </div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'lib-date-picker',\r\n  templateUrl: './date-picker.component.html',\r\n  styleUrls: ['./date-picker.component.scss'],\r\n})\r\nexport class DatePickerComponent {\r\n  @Input() control: any = FormControl;\r\n  @Input() label: string = '';\r\n  @Input() placeholder: string = '';\r\n  @Input() required: boolean = false;\r\n  @Output() onSelect: EventEmitter<any> = new EventEmitter<any>();\r\n  @Input() requiredErrorMessage: string = 'This field is required.';\r\n  // Method to emit onSelect event when a date is selected\r\n  @Input() applyCustomStyle: boolean = false;\r\n\r\n  onDateSelect(event: any): void {\r\n    this.onSelect.emit(event);\r\n  }\r\n}\r\n","<div class=\"date-cotainer\">\r\n  <label for=\"\" class=\"date-name-heading\"> {{ label }} </label>\r\n  <p-calendar\r\n    [showIcon]=\"true\"\r\n    [showButtonBar]=\"true\"\r\n    class=\"p-calendar-container\"\r\n    [formControl]=\"control\"\r\n    [required]=\"required\"\r\n    [placeholder]=\"placeholder\"\r\n    (onSelect)=\"onDateSelect($event)\"\r\n     appendTo=\"body\"\r\n  >\r\n  </p-calendar>\r\n  <ng-container *ngIf=\"control.invalid && (control.dirty || control.touched)\">\r\n    <div *ngIf=\"control.hasError('required')\" class=\"error-message\">\r\n      {{ requiredErrorMessage }}\r\n    </div>\r\n  </ng-container>\r\n</div>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-date-range-picker',\r\n  templateUrl: './date-range-picker.component.html',\r\n  styleUrls: ['./date-range-picker.component.scss']\r\n})\r\nexport class DateRangePickerComponent {\r\n\r\n}\r\n","<div class=\"date-cotainer\"> <label for=\"\" class=\"common-label\"> Calendar Range </label>\r\n    <p-calendar selectionMode=\"range\" [readonlyInput]=\"true\" placeholder=\"DD-MM-YYYY\" [showIcon]=\"true\"\r\n      [showButtonBar]=\"true\" class=\"p-calendar-container\"></p-calendar>\r\n  </div>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-date-time-picker',\r\n  templateUrl: './date-time-picker.component.html',\r\n  styleUrls: ['./date-time-picker.component.scss']\r\n})\r\nexport class DateTimePickerComponent {\r\n\r\n}\r\n","<div class=\"date-cotainer\"> <label for=\"\" class=\"common-label\"> Calendar with time </label> <p-calendar\r\n    [showTime]=\"true\" [showSeconds]=\"true\" [showButtonBar]=\"true\" [showIcon]=\"true\"\r\n    class=\"p-calendar-container\"></p-calendar></div>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-button-icon-only',\r\n  templateUrl: './button-icon-only.component.html',\r\n  styleUrls: ['./button-icon-only.component.scss']\r\n})\r\nexport class ButtonIconOnlyComponent {\r\n\r\n}\r\n","<p>button-icon-only works!</p>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-button-link',\r\n  templateUrl: './button-link.component.html',\r\n  styleUrls: ['./button-link.component.scss']\r\n})\r\nexport class ButtonLinkComponent {\r\n\r\n}\r\n","<p-button class=\"link\" label=\"Submit\" [link]=\"true\"></p-button>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-button-overflow',\r\n  templateUrl: './button-overflow.component.html',\r\n  styleUrls: ['./button-overflow.component.scss']\r\n})\r\nexport class ButtonOverflowComponent {\r\n\r\n}\r\n","<p>button-overflow works!</p>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-button-split',\r\n  templateUrl: './button-split.component.html',\r\n  styleUrls: ['./button-split.component.scss'],\r\n})\r\nexport class ButtonSplitComponent {\r\n  @Input() items: any[] = []; // Receive menu items dynamically\r\n  @Input() label: string = 'Button'; // Default button label\r\n  @Input() styleClass: string = ''; // Button style classes\r\n  @Output() buttonClick = new EventEmitter<void>(); // Emit click events to the parent\r\n  @Input() disabled: boolean = false;\r\n  @Input() applySplitbuttonCustomStyle: boolean = false;\r\n  onButtonClick() {\r\n    this.buttonClick.emit(); // Notify parent on button click\r\n  }\r\n\r\n  // items = [\r\n  //   {\r\n  //     label: 'Update',\r\n  //     icon: 'pi pi-refresh',\r\n  //     command: () => {\r\n  //       this.update();\r\n  //     },\r\n  //   },\r\n  //   {\r\n  //     label: 'Delete',\r\n  //     icon: 'pi pi-times',\r\n  //     command: () => {\r\n  //       this.delete();\r\n  //     },\r\n  //   },\r\n  //   { label: 'Angular.io', icon: 'pi pi-info', url: 'http://angular.io' },\r\n  //   { separator: true },\r\n  // ];\r\n\r\n  // update() {\r\n  //   // this.messageService.add({ severity: 'success', summary: 'Success', detail: 'Data Updated' });\r\n  // }\r\n\r\n  // delete() {\r\n  //   // this.messageService.add({ severity: 'success', summary: 'Success', detail: 'Data Deleted' });\r\n  // }\r\n  // save(severity: string) {\r\n  //   // this.messageService.add({ severity: severity, summary: 'Success', detail: 'Data Saved' });\r\n  // }\r\n}\r\n","<p-splitButton\r\n  [model]=\"items\"\r\n  [label]=\"label\"\r\n  [styleClass]=\"styleClass\"\r\n  [disabled]=\"disabled\"\r\n  (onClick)=\"onButtonClick()\"\r\n  [ngClass]=\"{\r\n    'custom-splitbutton-style': applySplitbuttonCustomStyle,\r\n    'disabled-button': disabled\r\n  }\"\r\n></p-splitButton>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-button-text',\r\n  templateUrl: './button-text.component.html',\r\n  styleUrls: ['./button-text.component.scss']\r\n})\r\nexport class ButtonTextComponent {\r\n\r\n}\r\n","<p>button-text works!</p>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-modal-l',\r\n  templateUrl: './modal-l.component.html',\r\n  styleUrls: ['./modal-l.component.scss']\r\n})\r\nexport class ModalLComponent {\r\n  visibleLargeModal: boolean = false;\r\n\r\n  visibleSmall: boolean = false;\r\n\r\n  showDialogLargeModal() {\r\n    this.visibleLargeModal = true;\r\n  }\r\n}\r\n","<p-button (onClick)=\"showDialogLargeModal()\" label=\"Large Modal\" />\r\n<p-dialog header=\"Edit Profile\" [modal]=\"true\" [(visible)]=\"visibleLargeModal\"\r\n  [style]=\"{ width: '83.438rem', height:'35rem' }\">\r\n  <span class=\"p-text-secondary block mb-5\">Update your information.</span>\r\n  <div class=\"flex align-items-center gap-3 mb-3\">\r\n    <label for=\"username\" class=\"font-semibold w-6rem\">Username</label>\r\n    <input pInputText id=\"username\" class=\"flex-auto\" autocomplete=\"off\" />\r\n  </div>\r\n  <div class=\"flex align-items-center gap-3 mb-5\">\r\n    <label for=\"email\" class=\"font-semibold w-6rem\">Email</label>\r\n    <input pInputText id=\"email\" class=\"flex-auto\" autocomplete=\"off\" />\r\n  </div>\r\n  <div class=\"flex justify-content-end gap-2\">\r\n    <p-button label=\"Cancel\" severity=\"secondary\" (onClick)=\"visibleLargeModal = false\" />\r\n    <p-button label=\"Save\" (onClick)=\"visibleLargeModal = false\" />\r\n  </div>\r\n</p-dialog>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\ninterface MenuItem {\r\n  label: string;\r\n  iconPath: string; // New property for image path\r\n  action: string;\r\n  disabled: boolean;\r\n}\r\n@Component({\r\n  selector: 'lib-menu',\r\n  templateUrl: './menu.component.html',\r\n  styleUrls: ['./menu.component.scss'],\r\n})\r\nexport class MenuComponent {\r\n  @Input() menuItems: any[] = [];\r\n  @Input() tooltip: string = '';\r\n  @Output() menuAction = new EventEmitter<string>();\r\n\r\n  onMenuAction(action: string) {\r\n    this.menuAction.emit(action); // Emit the selected action to the parent\r\n  }\r\n  ngOnInit() {}\r\n}\r\n","<div>\r\n  <button\r\n    [matMenuTriggerFor]=\"menu\"\r\n    class=\"dots-3\"\r\n    pTooltip=\"{{ tooltip }}\"\r\n    tooltipPosition=\"bottom\"\r\n  >\r\n    <i class=\"a-more\"></i>\r\n  </button>\r\n  <mat-menu #menu=\"matMenu\">\r\n    <button\r\n      class=\"menu-button-cm\"\r\n      mat-menu-item\r\n      *ngFor=\"let item of menuItems\"\r\n      (click)=\"onMenuAction(item.action)\"\r\n      [disabled]=\"item.disabled\"\r\n    >\r\n      <img\r\n        [src]=\"item.iconPath\"\r\n        width=\"20\"\r\n        height=\"20\"\r\n        style=\"margin-right: 8px\"\r\n      />\r\n      <span>{{ item.label }}</span>\r\n    </button>\r\n  </mat-menu>\r\n</div>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-input-inline',\r\n  templateUrl: './input-inline.component.html',\r\n  styleUrls: ['./input-inline.component.scss']\r\n})\r\nexport class InputInlineComponent {\r\n\r\n}\r\n","<div class=\"border-bootam\">\r\n    <label for=\"\">border input</label>\r\n    <input type=\"text\" class=\"border-bottom-input\" />\r\n</div>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-tags',\r\n  templateUrl: './tags.component.html',\r\n  styleUrls: ['./tags.component.scss']\r\n})\r\nexport class TagsComponent {\r\n\r\n}\r\n","<div class=\"card flex justify-content-center gap-2\">\r\n    <h3>Tag Severity</h3>\r\n    <p-tag value=\"Primary\" class=\"pa-tag-container Critical\"></p-tag>\r\n  </div><!-- TAG - END -->","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'lib-single-select',\r\n  templateUrl: './single-select.component.html',\r\n  styleUrls: ['./single-select.component.scss'],\r\n})\r\nexport class SingleSelectComponent {\r\n  @Input() control: any = FormControl;\r\n  @Input() options: any[] = []; // Options for the dropdown\r\n  @Input() selectedValue: any; // Selected value\r\n  @Input() label: string = ''; // Label to display above dropdown\r\n  @Input() formControlName!: string; // Form control name for binding\r\n  @Input() placeholder: string = 'Select an option'; // Placeholder for the dropdown\r\n  @Input() optionLabel: string = 'name'; // Property name for option label\r\n  @Input() optionValue: string = ''; // Property name for option label\r\n  @Input() isMultiSelect: boolean = false; // Determines if multi-select or single-select\r\n  @Input() disabled: boolean = false; // Determines if multi-select or single-select\r\n  @Input() showClear: boolean = true; // Show clear button\r\n  @Output() selectionChanged = new EventEmitter<any>(); // Emit selected option\r\n  @Output() selectionCleared = new EventEmitter<any>(); // Emit selected option\r\n  @Input() requiredField: boolean = false; // Show clear button\r\n  @Input() clearSearchIcon: boolean = true; // Show clear button\r\n  @Input() applyCustomStyle: boolean = false;\r\n  @Input() showTitleCase:boolean= true;\r\n\r\n  onSelectionChange(event: any) {\r\n    if (!event.value) {\r\n      this.selectionCleared.emit(event.value);\r\n    } else {\r\n      this.selectionChanged.emit(event.value);\r\n    }\r\n  }\r\n\r\n//   toTitleCase(str: string): string {\r\n//   if (!str) return '';\r\n//   return str\r\n//     .replace(/_/g, ' ')\r\n//     .toLowerCase()\r\n//     .split(' ')\r\n//     .map(word => word.charAt(0).toUpperCase() + word.slice(1))\r\n//     .join(' ');\r\n// }\r\n\r\n  getLabel(value: any): string {\r\n    if (typeof value === 'string') {\r\n      return this.showTitleCase ? this.toTitleCase(value) : value;\r\n    }\r\n    return value?.toString() ?? '';\r\n  }\r\n\r\n  toTitleCase(str: string): string {\r\n    return str.replace(/\\w\\S*/g, (txt) =>\r\n      txt.charAt(0).toUpperCase() + txt.slice(1).toLowerCase()\r\n    );\r\n  }\r\n\r\n}\r\n","<!-- <div class=\"form-group\">\r\n  <label class=\"dropdown-label\">{{ label }}</label>\r\n <p-dropdown\r\n  [options]=\"options\"\r\n  [formControl]=\"control\"\r\n  [optionLabel]=\"optionLabel\"\r\n  [optionValue]=\"optionValue\"\r\n  [required]=\"requiredField\"\r\n  [filter]=\"clearSearchIcon\"\r\n  [showClear]=\"showClear\"\r\n  [placeholder]=\"placeholder\"\r\n  [filterBy]=\"optionLabel\"\r\n  appendTo=\"body\"\r\n  (onChange)=\"onSelectionChange($event)\"\r\n  [disabled]=\"disabled\"\r\n>\r\n  <ng-template let-item pTemplate=\"item\">\r\n    {{ toTitleCase(item[optionLabel]) }}\r\n  </ng-template>\r\n  <ng-template let-item pTemplate=\"selectedItem\">\r\n    {{ toTitleCase(item[optionLabel]) }}\r\n  </ng-template>\r\n</p-dropdown>\r\n  <div *ngIf=\"control.invalid && control.touched\" class=\"error-message\">\r\n    This field is required.\r\n  </div>\r\n</div> -->\r\n\r\n\r\n<div class=\"form-group\">\r\n  <label class=\"dropdown-label\">{{ label }}</label>\r\n  <p-dropdown\r\n  [options]=\"options\"\r\n  [formControl]=\"control\"\r\n  [optionValue]=\"optionValue\"\r\n  [required]=\"requiredField\"\r\n  [filter]=\"clearSearchIcon\"\r\n  [showClear]=\"showClear\"\r\n  [placeholder]=\"placeholder\"\r\n  [filterBy]=\"optionLabel\"\r\n  appendTo=\"body\"\r\n  (onChange)=\"onSelectionChange($event)\"\r\n  [disabled]=\"disabled\"\r\n>\r\n   <ng-template let-item pTemplate=\"item\">\r\n    {{ getLabel(item[optionLabel]) }}\r\n  </ng-template>\r\n\r\n  <!-- Selected item template -->\r\n  <ng-template let-selectedItem pTemplate=\"selectedItem\">\r\n    {{ selectedItem ? getLabel(selectedItem[optionLabel]) : '' }}\r\n  </ng-template>\r\n  \r\n</p-dropdown>\r\n\r\n  <!-- Validation Message -->\r\n  <div *ngIf=\"control.invalid && control.touched\" class=\"error-message\">\r\n    This field is required.\r\n  </div>\r\n</div>\r\n","import { Component, Input, SimpleChanges } from '@angular/core';\r\nimport * as Highcharts from 'highcharts';\r\n\r\n@Component({\r\n  selector: 'lib-piechart',\r\n  templateUrl: './piechart.component.html',\r\n  styleUrls: ['./piechart.component.scss']\r\n})\r\nexport class PiechartComponent {\r\n  Highcharts: typeof Highcharts = Highcharts;\r\n  pieChartByEntity!: Highcharts.Options;\r\n\r\n\r\n  @Input() totalRecords: any[] = [];\r\n  @Input() title: any;\r\n  @Input() seriesLabelname: any;\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (changes['totalRecords'] && changes['totalRecords'].currentValue) {\r\n      const countByEntity1 = this.totalRecords.map((item: any) => ({\r\n        name: item.name,\r\n        y: item.count\r\n      }));\r\n\r\n      this.pieChartByEntity = {\r\n        chart: {\r\n          type: 'donut',\r\n        },\r\n        plotOptions: {\r\n          column: {\r\n            dataLabels: {\r\n              enabled: true\r\n            }\r\n          },\r\n          pie: {\r\n            allowPointSelect: true,\r\n            cursor: 'pointer',\r\n            dataLabels: {\r\n              enabled: true,\r\n              format: '<b>{point.name}</b>: {point.percentage:.1f} %',\r\n            },\r\n            showInLegend: true,\r\n            states: {\r\n              select: {\r\n                borderColor: '#333333',\r\n                borderWidth: 1,\r\n                halo: {\r\n                  size: 10,\r\n                  opacity: 0.25\r\n                }\r\n              },\r\n            },\r\n            slicedOffset: 20,\r\n          },\r\n        },\r\n        title: {\r\n          text: this.title\r\n        },\r\n        series: [{\r\n          name: this.seriesLabelname,\r\n          type: 'pie',\r\n          data: countByEntity1\r\n        }] as Highcharts.SeriesOptionsType[],\r\n\r\n        exporting: {\r\n          enabled: true,\r\n          buttons: {\r\n            contextButton: {\r\n              menuItems: ['downloadCSV', 'downloadXLS']\r\n            }\r\n          }\r\n        }\r\n      };\r\n\r\n    }\r\n  }\r\n\r\n  constructor() { }\r\n}\r\n","<highcharts-chart [Highcharts]=\"Highcharts\" [options]=\"pieChartByEntity\">\r\n</highcharts-chart>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-barchart',\r\n  templateUrl: './barchart.component.html',\r\n  styleUrls: ['./barchart.component.scss']\r\n})\r\nexport class BarchartComponent {\r\n\r\n}\r\n","","import { Component, Input, SimpleChanges } from '@angular/core';\r\nimport * as Highcharts from 'highcharts';\r\nimport { SeriesBarOptions } from 'highcharts';\r\n\r\n@Component({\r\n  selector: 'lib-stacked-bar-chart',\r\n  templateUrl: './stacked-bar-chart.component.html',\r\n  styleUrls: ['./stacked-bar-chart.component.scss']\r\n})\r\nexport class StackedBarChartComponent {\r\n  Highcharts: typeof Highcharts = Highcharts;\r\n  stackedBarChartByClassification!: Highcharts.Options;\r\n\r\n  @Input() totalRecords: any[] = [];\r\n  @Input() title: any;\r\n  @Input() xAxisLabelname: any;\r\n  @Input() yAxisLabelname: any;\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (changes['totalRecords'] && changes['totalRecords'].currentValue) {\r\n      if (this.totalRecords) {\r\n        this.stackedBarChart();\r\n      }\r\n    }\r\n  }\r\n  dataenable: boolean = false\r\n  stackedBarChart() {\r\n    const classificationsSet = new Set<string>();\r\n    this.totalRecords.forEach(item => {\r\n      item.classifications.forEach((c: any) => classificationsSet.add(c.classification));\r\n    });\r\n    const classifications = Array.from(classificationsSet);\r\n    const seriesData: { [classification: string]: number[] } = {};\r\n    this.totalRecords.forEach(item => {\r\n      item.classifications.forEach((c: any) => {\r\n        const classification = c.classification;\r\n        if (!seriesData[classification]) {\r\n          seriesData[classification] = new Array(this.totalRecords.length).fill(0);\r\n        }\r\n        const effectivenessIndex = this.totalRecords.findIndex(i => i.control_effectiveness === item.control_effectiveness);\r\n        seriesData[classification][effectivenessIndex] = c.count;\r\n      });\r\n    });\r\n    this.dataenable = true\r\n    const series: SeriesBarOptions[] = Object.keys(seriesData).map(classification => ({\r\n      name: classification,\r\n      data: seriesData[classification],\r\n      type: 'bar' as const\r\n    }));\r\n    this.stackedBarChartByClassification = {\r\n      chart: {\r\n        type: 'bar'\r\n      },\r\n      title: {\r\n        text: this.title\r\n      },\r\n      xAxis: {\r\n        categories: classifications,\r\n        title: {\r\n          text: this.xAxisLabelname\r\n        }\r\n      },\r\n      yAxis: {\r\n        min: 0,\r\n        title: {\r\n          text: this.yAxisLabelname\r\n        },\r\n        categories: this.totalRecords.map(item => item.control_effectiveness)\r\n      },\r\n      legend: {\r\n        reversed: true\r\n      },\r\n      plotOptions: {\r\n        series: {\r\n          stacking: 'normal'\r\n        }\r\n      },\r\n      series: series\r\n    };\r\n  }\r\n}\r\n","<highcharts-chart [Highcharts]=\"Highcharts\" [options]=\"stackedBarChartByClassification\"> {{dataenable|json }}\r\n</highcharts-chart>","import {\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ElementRef,\r\n  EventEmitter,\r\n  Input,\r\n  OnChanges,\r\n  Output,\r\n  SimpleChanges,\r\n  ViewChild,\r\n} from '@angular/core';\r\nimport { NavigationExtras, Router } from '@angular/router';\r\n// import { TABLE_DEFAULT_CONFIG_TYPES, TABLE_LINK_NAVIGATION_EXTRA_CONFIG } from 'auditour1';\r\nimport { TableLazyLoadEvent } from 'primeng/table';\r\nimport {\r\n  TABLE_DEFAULT_CONFIG_TYPES,\r\n  TABLE_LINK_NAVIGATION_EXTRA_CONFIG,\r\n} from '../table/table.component';\r\n\r\nexport type TYPES_TABLE_CHECKBOX_ACTIONS = {\r\n  isSelectedAll: boolean;\r\n  isSelectedRecord: boolean;\r\n  record: any;\r\n};\r\n\r\n@Component({\r\n  selector: 'lib-tablewithcheckbox',\r\n  templateUrl: './tablewithcheckbox.component.html',\r\n  styleUrls: ['./tablewithcheckbox.component.scss'],\r\n})\r\nexport class TablewithcheckboxComponent {\r\n  @ViewChild('rowRef', { static: false })\r\n  rowRef!: ElementRef<HTMLTableRowElement>;\r\n  @ViewChild('dataTable', { static: false }) dataTable!: ElementRef;\r\n\r\n  virtualScrollItemSize: number = 0;\r\n  @Input() displayColumns: TABLE_DEFAULT_CONFIG_TYPES[] = [];\r\n  @Input() tableData: any = [];\r\n  @Output() lazyLoad: any = new EventEmitter<any>();\r\n  @Input() itemsPerPage: number = 13;\r\n  @Input() totalRecords: number = 0;\r\n  @Input() showCheckBox: boolean = false;\r\n  @Output() triggerAction = new EventEmitter<any>();\r\n  @Output() checkBoxActions = new EventEmitter<TYPES_TABLE_CHECKBOX_ACTIONS>();\r\n  @Output() sorting = new EventEmitter<any>();\r\n  sortOrder: number = -1;\r\n  columnSortState: { [key: string]: number } = {};\r\n  @Input() lazyLoadValue: boolean = true;\r\n  @Input() virtualScrollValue: boolean = true;\r\n  @Input() scrollValue: boolean = true;\r\n  @Input() maxHeightScroll: string = '1000px';\r\n  @Input() menuOptions: any[] = [];\r\n  constructor(private router: Router, private cdRef: ChangeDetectorRef) { }\r\n\r\n  ngOnInit() {\r\n    this.tableData.forEach((row: any) => {\r\n      row.menuItems = this.menuOptions.map(option => ({\r\n        ...option,\r\n        command: () => option.command(row)  // bind row\r\n      }));\r\n    });\r\n  }\r\n\r\n  selectedRows: any[] = [];\r\n\r\n  selectAllRow(event: any) {\r\n    this.checkBoxActions.emit({\r\n      isSelectedAll: event,\r\n      isSelectedRecord: false,\r\n      record: {},\r\n    });\r\n  }\r\n\r\n  triggerActions(action: string, record: any) {\r\n    this.triggerAction.emit({ action, record });\r\n  }\r\n\r\n  navigatingPageWithParams(tableData: TABLE_LINK_NAVIGATION_EXTRA_CONFIG) {\r\n    const navigationExtras: NavigationExtras = {\r\n      queryParams: {\r\n        ...tableData.queryParams,\r\n      },\r\n    };\r\n    this.router.navigate([tableData.path], navigationExtras);\r\n  }\r\n\r\n  loadCarsLazy(event: TableLazyLoadEvent) {\r\n    this.lazyLoad.emit(event);\r\n  }\r\n\r\n  selectRow(row: any, event: any) {\r\n    this.checkBoxActions.emit({\r\n      isSelectedAll: false,\r\n      isSelectedRecord: event,\r\n      record: row,\r\n    });\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (changes['showCheckBox']) {\r\n      const currentValue = changes['showCheckBox'].currentValue;\r\n      const previousValue = changes['showCheckBox'].previousValue;\r\n    }\r\n  }\r\n\r\n  ngAfterViewInit() {\r\n    this.calculateRowHeight();\r\n  }\r\n\r\n  customSort(field: string) {\r\n    if (!this.columnSortState[field]) {\r\n      this.columnSortState[field] = 0;\r\n    }\r\n    this.columnSortState[field] =\r\n      this.columnSortState[field] === 1 ? -1 : this.columnSortState[field] + 1;\r\n    this.sortOrder = this.sortOrder === 1 ? -1 : 1;\r\n    this.sorting.emit({ sortOrder: this.sortOrder, field });\r\n  }\r\n\r\n  calculateRowHeight() {\r\n    // Wait for table to render rows\r\n    setTimeout(() => {\r\n      const tableElement = this.dataTable.nativeElement;\r\n\r\n      // Find the first row in the table body\r\n      const firstRow = tableElement?.querySelector('.p-datatable-tbody tr')\r\n        ? tableElement?.querySelector('.p-datatable-tbody tr')\r\n        : undefined;\r\n\r\n      if (firstRow) {\r\n        this.virtualScrollItemSize = firstRow?.offsetHeight + 50; // Dynamically set row height\r\n      } else {\r\n      }\r\n    }, 1000);\r\n  }\r\n}\r\n","<div class=\"table-container\">\r\n  <p-table\r\n    #dataTable\r\n    [columns]=\"displayColumns\"\r\n    [value]=\"tableData\"\r\n    [scrollable]=\"scrollValue\"\r\n    scrollHeight=\"{{ maxHeightScroll }}\"\r\n    [rows]=\"itemsPerPage\"\r\n    [totalRecords]=\"totalRecords\"\r\n    [virtualScroll]=\"virtualScrollValue\"\r\n    [virtualScrollItemSize]=\"virtualScrollItemSize\"\r\n    [lazy]=\"lazyLoadValue\"\r\n    [customSort]=\"true\"\r\n    (onLazyLoad)=\"loadCarsLazy($event)\"\r\n    [(selection)]=\"selectedRows\"\r\n    styleClass=\"p-datatable-gridlines\"\r\n  >\r\n    <ng-template pTemplate=\"header\">\r\n      <tr>\r\n        <th *ngIf=\"showCheckBox\">\r\n          <p-tableHeaderCheckbox\r\n            (click)=\"selectAllRow(e.checked)\"\r\n            #e\r\n          ></p-tableHeaderCheckbox>\r\n        </th>\r\n        <th\r\n          pResizableColumn\r\n          *ngFor=\"let column of displayColumns\"\r\n          pSortableColumn=\"{{ column.value }}\"\r\n        >\r\n          {{ column.name }}\r\n          <!-- <p-sortIcon field=\"{{column.value}}\"></p-sortIcon> -->\r\n          <p-sortIcon\r\n            (click)=\"customSort(column.value)\"\r\n            *ngIf=\"column.sorting\"\r\n            field=\"{{ column.value }}\"\r\n          ></p-sortIcon>\r\n        </th>\r\n      </tr>\r\n    </ng-template>\r\n    <ng-template pTemplate=\"body\" let-row>\r\n      <tr [pSelectableRow]=\"row\" class=\"hover-row\">\r\n        <td *ngIf=\"showCheckBox\">\r\n          <p-tableCheckbox\r\n            [value]=\"row\"\r\n            (click)=\"selectRow(row, e.checked)\"\r\n            #e\r\n          ></p-tableCheckbox>\r\n        </td>\r\n\r\n        <td *ngFor=\"let column of displayColumns; let i = index\">\r\n          <div [ngSwitch]=\"column.inputType\">\r\n            <div *ngSwitchCase=\"'text'\">\r\n              {{ row[column.value] ? row[column.value] : \"-\" }}\r\n            </div>\r\n\r\n            <div *ngSwitchCase=\"'link'\">\r\n              <a href=\"\" routerLink=\"{{ row.routerPath }}\">{{\r\n                row[column.value]\r\n              }}</a>\r\n            </div>\r\n\r\n            <div *ngSwitchCase=\"'linkWithNavigationExtras'\">\r\n              <a\r\n                (click)=\"\r\n                  navigatingPageWithParams(\r\n                    row[column.value + '_navigateRouteExtraParams']\r\n                  )\r\n                \"\r\n                >{{ row[column.value] }}</a\r\n              >\r\n            </div>\r\n\r\n            <div *ngSwitchCase=\"'box'\">{{ row[column.value] }}</div>\r\n\r\n            <div *ngSwitchCase=\"'dot'\">\r\n              <span class=\"td-dot {{ row[column.value + '_class'] }}\"></span>\r\n              {{ row[column.value] }}\r\n            </div>\r\n\r\n            <div\r\n              *ngSwitchCase=\"'iconWithText'\"\r\n              tooltipPosition=\"bottom\"\r\n              class=\"iconWithText\"\r\n            >\r\n              <span\r\n                pTooltip=\"{{ row['name_icon_toolTip'] }}\"\r\n                tooltipPosition=\"bottom\"\r\n                ><img src=\"{{ row['name_icon'] }}\" alt=\"image\" />\r\n              </span>\r\n              <span class=\"table-content\">{{ row[column.value] }}</span>\r\n            </div>\r\n\r\n            <div *ngSwitchCase=\"'circle'\">\r\n              <span class=\"{{ row[column.value + '_class'] }}\">{{\r\n                row[column.value]\r\n              }}</span>\r\n            </div>\r\n\r\n            <div\r\n              *ngSwitchCase=\"'circleToolTip'\"\r\n              pTooltip=\"{{ row.circleToolTipValue }}\"\r\n              tooltipPosition=\"top\"\r\n            >\r\n              <span class=\"{{ row[column.value + '_class'] }}\">{{\r\n                row[column.value]\r\n              }}</span>\r\n            </div>\r\n\r\n            <div *ngSwitchCase=\"'actions'\">\r\n              <button\r\n                *ngFor=\"let action of row.actions\"\r\n                class=\"actionbtn\"\r\n                [disabled]=\"action.isDisabled\"\r\n                (click)=\"triggerActions(action.actionType, row)\"\r\n                pTooltip=\"{{ action.actionType }}\"\r\n                tooltipPosition=\"top\"\r\n              >\r\n                <span class=\"image-background\" [ngSwitch]=\"action.actionType\">\r\n                  <span *ngSwitchCase=\"'Edit'\">\r\n                    <span class=\"action-img editImg\"></span>\r\n                  </span>\r\n                  <span *ngSwitchCase=\"'Delete'\">\r\n                    <span class=\"action-img deleteImg\"></span>\r\n                  </span>\r\n                  <span *ngSwitchCase=\"'Restore'\">\r\n                    <span class=\"action-img restoreImg\"></span>\r\n                  </span>\r\n                  <span *ngSwitchCase=\"'view'\">\r\n                    <span class=\"action-img viewImg\"></span>\r\n                  </span>\r\n                </span>\r\n              </button>\r\n            </div>\r\n\r\n            <div *ngSwitchCase=\"'menu'\" class=\"menu-cell\">\r\n              <p-menu #menu [model]=\"row[column.value]\"></p-menu>\r\n              <button\r\n                pButton\r\n                type=\"button\"\r\n                icon=\"pi pi-ellipsis-v\"\r\n                class=\"p-button-text p-button-sm\"\r\n                (click)=\"menu.toggle($event)\"\r\n              ></button>\r\n            </div>\r\n            <div *ngSwitchDefault>{{ row[column.value] }}</div>\r\n          </div>\r\n        </td>\r\n      </tr>\r\n    </ng-template>\r\n    <ng-template pTemplate=\"emptymessage\">\r\n      <tr *ngIf=\"tableData?.length === 0\">\r\n        <td\r\n          [attr.colspan]=\"displayColumns.length + 1\"\r\n          style=\"text-align: center\"\r\n        >\r\n          No records found\r\n        </td>\r\n      </tr>\r\n    </ng-template>\r\n  </p-table>\r\n</div>\r\n","import { Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n  selector: 'lib-collapse-side-nav',\r\n  templateUrl: './collapse-side-nav.component.html',\r\n  styleUrls: ['./collapse-side-nav.component.scss']\r\n})\r\nexport class CollapseSideNavComponent implements OnChanges, OnDestroy{\r\n  @Input() menu: MenuItem[] = [];\r\n  @Input() title:string = '';  \r\n  routesSubscription!:Subscription;\r\n  constructor(private router: Router){    \r\n    this.updateActiveClass(this.router.url); \r\n  }\r\n  ngOnDestroy(): void {    \r\n    this.routesSubscription ? this.routesSubscription.unsubscribe() : \"\"\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {      \r\n    if (changes['menu']) {\r\n      this.updateActiveClass(this.router.url); \r\n      // this.routesSubscription = this.router.events.subscribe(event => {\r\n      //   if (event instanceof NavigationEnd) {\r\n      //     this.updateActiveClass(event.urlAfterRedirects);\r\n      //   }\r\n      // });\r\n    }\r\n  }\r\n\r\n  updateActiveClass(url: string) {    \r\n  }\r\n \r\n\r\n  showTitle(title:string) {    \r\n    const words = title.split(' ');        \r\n    const firstLetters = words.map(word => word.charAt(0));        \r\n    return firstLetters.join('');\r\n  }\r\n}\r\n","<div class=\"shrink-sidenav-container\" >\r\n    <div class=\"sidenav-head-container\">\r\n        <h1 class=\"sidenav-head\">\r\n            {{showTitle(title)}}\r\n        </h1>        \r\n        <p-divider></p-divider>\r\n    </div>\r\n    <div class=\"sidenav-content\">       \r\n        <div class=\"tieredMenu-container\">\r\n            <p-tieredMenu [model]=\"menu\"></p-tieredMenu>                \r\n        </div>                            \r\n    </div>        \r\n</div>","import { Component, Input } from '@angular/core';\r\nimport { MenuItem } from 'primeng/api';\r\n\r\n@Component({\r\n  selector: 'lib-expand-side-nav',\r\n  templateUrl: './expand-side-nav.component.html',\r\n  styleUrls: ['./expand-side-nav.component.scss']\r\n})\r\nexport class ExpandSideNavComponent {\r\n  @Input() menu: MenuItem[] = [];\r\n  @Input() title:string = '';  \r\n  \r\n  ngOnInit() {\r\n    \r\n  }  \r\n}\r\n","<div class=\"expand-sidenav-container\" >\r\n    <div class=\"sidenav-head-container\">\r\n        <h1 class=\"sidenav-head\">\r\n            {{title}}        \r\n        </h1>\r\n        \r\n        <p-divider></p-divider>\r\n    </div>\r\n\r\n    <div class=\"sidenav-content\">\r\n        <!-- <a class=\"nav-content-container\" routerLink=\"/\" routerLinkActive=\"active\" >\r\n            <div class=\"nav-icon dashboard-icon\">\r\n            </div>\r\n            <div class=\"nav-content\">\r\n                Dashboard\r\n            </div>\r\n        </a>\r\n      \r\n        <a class=\"nav-content-container\" >\r\n            \r\n            <div class=\"nav-icon library-icon\">\r\n\r\n            </div>\r\n            <div class=\"nav-content\">\r\n                Compliance Library\r\n            </div>\r\n        </a>\r\n\r\n        <a class=\"nav-content-container\">\r\n            <div class=\"nav-icon report-icon\">\r\n\r\n            </div>\r\n            <div class=\"nav-content\">\r\n                Compliance Report\r\n            </div>\r\n        </a> -->\r\n\r\n        <a class=\"nav-content-container panel-container\" > \r\n            <p-panelMenu [model]=\"menu\" class=\"nav-content\"  />\r\n        </a>        \r\n    </div>        \r\n</div>","import { Component, Input } from '@angular/core';\r\nimport { MenuItem } from 'primeng/api';\r\n\r\n@Component({\r\n  selector: 'lib-sidenav',\r\n  templateUrl: './sidenav.component.html',  \r\n  styleUrls: ['./sidenav.component.scss']\r\n})\r\nexport class SidenavComponent {\r\n  \r\n  isExpandSideNav: boolean = true;\r\n  @Input() menu: MenuItem[] = [];\r\n  @Input() title:string = ''\r\n\r\n  ngOnInit() {  \r\n  }\r\n\r\n  collapseSideNav(){\r\n    this.isExpandSideNav = !this.isExpandSideNav;    \r\n  }\r\n}\r\n\r\n","<!-- EXPAND SIDE NAV -->\r\n<div class=\"sidenav-container\">\r\n\r\n    <div *ngIf=\"isExpandSideNav\" class=\"sidenav-expand-container\">\r\n        <lib-expand-side-nav [menu]=\"menu\" [title]=\"title\"></lib-expand-side-nav>\r\n\r\n        <div class=\"sidenav-footer\" [ngClass]=\"isExpandSideNav ? 'sidenav-expand-container' :'sidenav-shrink-container'\">\r\n            <p-divider></p-divider>\r\n            \r\n            <div class=\"collapse-icon-container\">\r\n                <div class=\"nav-icon\" [ngClass]=\"isExpandSideNav ? 'expand-icon' : 'shrink-icon'\" pTooltip=\"{{isExpandSideNav ? 'Collapse':'Expand'}}\"  tooltipPosition=\"right\" (click)=\"collapseSideNav()\">                 \r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n\r\n    <!-- COLLAPSE SIDE NAV -->\r\n    <div *ngIf=\"!isExpandSideNav\" class=\"sidenav-shrink-container\">\r\n        <lib-collapse-side-nav [menu]=\"menu\" [title]=\"title\"></lib-collapse-side-nav>\r\n\r\n        <div class=\"sidenav-footer\" [ngClass]=\"isExpandSideNav ? 'sidenav-expand-container' :'sidenav-shrink-container'\">\r\n            <p-divider></p-divider>\r\n            \r\n            <div class=\"collapse-icon-container\">\r\n                <div class=\"nav-icon\" [ngClass]=\"isExpandSideNav ? 'expand-icon' : 'shrink-icon'\" pTooltip=\"{{isExpandSideNav ? 'Collapse':'Expand'}}\"  tooltipPosition=\"right\" (click)=\"collapseSideNav()\">                 \r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>    \r\n</div>","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\r\nimport { map, take, tap } from 'rxjs/operators';\r\n\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class SubscriptionService {\r\n  \r\n  private subscriptionSubject = new BehaviorSubject<any | null>(null);\r\n  public subscription$ = this.subscriptionSubject.asObservable();\r\n\r\n  constructor(private http: HttpClient) {}\r\n  \r\n  loadSubscriptionData(url:string) {\r\n    \r\n    const subscriptionApiUrl = url +\"/subscription/apps\";\r\n    // this.subscriptionSubscribe ? this.subscriptionSubscribe.unsubscribe() : \"\";\r\n    // this.subscriptionSubscribe = this.http.get<any>(subscriptionApiUrl).subscribe(response => {\r\n    //     // this.constructSubscription(response?.data?.modules)\r\n    //   this.subscriptionSubject.next(response?.data ? response?.data:{modules:[]});\r\n    // });\r\n\r\n    return this.http.get<any>(subscriptionApiUrl).pipe(\r\n      tap(data => this.subscriptionSubject.next(data))\r\n    );\r\n  }\r\n\r\n  getSubscription(): Observable<any | null> {\r\n    return this.subscriptionSubject.asObservable();\r\n  }\r\n\r\n  resetSubscription(){\r\n    this.subscriptionSubject.next(null)    \r\n  }\r\n\r\n  hasModuleAccess(moduleName: string, subModuleName?: string): Observable<boolean> {\r\n    return this.subscriptionSubject.asObservable().pipe(\r\n      map((subscription: any | null) => {\r\n\r\n        if (!subscription) return false;\r\n        const module: any = subscription?.modules.find(\r\n          (mod: any) => mod?.name === moduleName\r\n        );\r\n        if (!module) return false;\r\n        return module?.has_access;\r\n        // if (!subModuleName) return module?.has_access;\r\n\r\n        // const subModule: any = module?.submodules?.find(\r\n        //   (sub: any) => sub?.name === subModuleName\r\n        // );\r\n        // return subModule ? subModule?.has_access : false;\r\n      })\r\n    );\r\n  }\r\n\r\n  get getModuleAccess$(): Observable<{ [key: string]: boolean }> {\r\n    return this.subscription$.pipe(\r\n      map(subscription => {\r\n        const modules = subscription?.data.modules ?? [];\r\n        return modules.reduce((acc:any, mod:any) => {\r\n          acc[mod.name] = mod.has_access;      \r\n          return acc;\r\n        }, {} as { [key: string]: boolean });\r\n      })\r\n    );\r\n  }\r\n}\r\n","// import { DatePipe } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { jwtDecode } from 'jwt-decode';\r\nimport { CookieService } from 'ngx-cookie-service';\r\n\r\n// LOCAL STORAGE CONST\r\nexport const STORAGE_ACCESS_TOKEN = 'access_token';\r\nexport const STORAGE_REFRESH_TOKEN = 'refresh_token';\r\nexport const STORAGE_CURRENT_USER = 'current_user';\r\nexport const STORAGE_ROLE_TYPE = 'role_type';\r\nexport const STORAGE_ROLES = 'roles';\r\nexport const STORAGE_IS_CHANGED = 'isChanged';\r\n\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class StorageService {\r\n  //\r\n\r\n  constructor(\r\n    private cookieService: CookieService\r\n  ) { }\r\n\r\n  // Local storage - Set and get details\r\n  setStorage(key: string, value: string) {\r\n    localStorage.setItem(key, value);\r\n  }\r\n\r\n  getStorage(key: string) {\r\n    return localStorage.getItem(key);\r\n  }\r\n\r\n  clearAllStorage() {\r\n    localStorage.clear()\r\n  }\r\n  setSession(token: string): void {\r\n    const decodedToken: any = jwtDecode(token);\r\n    const expTime = decodedToken.exp * 1000; // Convert to milliseconds\r\n    const expDate = new Date(expTime);\r\n    this.cookieService.set(STORAGE_ACCESS_TOKEN, token, expDate, '/', '', false, 'Strict');\r\n  }\r\n\r\n  getSession(): string {\r\n    return this.cookieService.get(STORAGE_ACCESS_TOKEN);\r\n  }\r\n\r\n  clearSession(): void {\r\n    this.cookieService.delete(STORAGE_ACCESS_TOKEN, '/');\r\n  }\r\n\r\n  isSessionExpired(): boolean {\r\n    const token = this.getSession();\r\n    if (!token) {\r\n      return true; // No token means session is expired\r\n    }\r\n    const decodedToken: any = jwtDecode(token);\r\n    const expTime = decodedToken.exp * 1000; // Convert to milliseconds\r\n    const currentTime = Date.now();\r\n    let status = currentTime > expTime;\r\n    return status\r\n  }\r\n}\r\n","import {\r\n  Component,\r\n  EventEmitter,\r\n  Input,\r\n  Output,\r\n  SimpleChanges,\r\n} from '@angular/core';\r\n// import { STORAGE_ROLES } from '../../services/storage.service';\r\nimport {\r\n  STORAGE_CURRENT_USER,\r\n  STORAGE_ROLE_TYPE,\r\n  STORAGE_ROLES,\r\n} from '../../services/storage.service';\r\nimport { CommonService } from '../../services/common/common.service';\r\nimport { Router } from '@angular/router';\r\nimport { SubscriptionService } from '../../services/subscription.service';\r\n\r\n@Component({\r\n  selector: 'lib-megamemu',\r\n  templateUrl: './megamemu.component.html',\r\n  styleUrls: ['./megamemu.component.scss'],\r\n})\r\nexport class MegamemuComponent {\r\n  event: any = {};\r\n\r\n  @Input() navigationURL: string = '';\r\n  @Input() visible: boolean = false;\r\n  @Output() closeDialog = new EventEmitter<void>();\r\n\r\n  // closeDialog() {\r\n  //   // this.closeDialog.emit();\r\n  // }\r\n\r\n  roles: any = this.commonService.getStorage(STORAGE_ROLES);\r\n  roleType: any = this.commonService.getStorage(STORAGE_ROLE_TYPE);\r\n  currentUser = this.commonService.getStorage(STORAGE_CURRENT_USER);\r\n  rbacPermissionUser?: boolean;\r\n  userCheckRbac?: boolean = false;\r\n  allUserListRbac: any = [];\r\n  constructor(\r\n    private router: Router,\r\n    public subscriptionService : SubscriptionService,\r\n    private commonService: CommonService\r\n  ) // public config:DynamicDialogConfig\r\n  {}\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (changes['navigationURL'] && changes['navigationURL'].currentValue) {\r\n      this.navigationURL = this.navigationURL;\r\n    }\r\n  }\r\n  ngOnInit(): void {\r\n    this.rbacCheck();\r\n  }\r\n  showDialog() {\r\n    this.visible = true;\r\n  }\r\n  onDialogHide() {\r\n    this.closeDialog.emit();\r\n  }\r\n\r\n  // closeDialogData() {\r\n  //   this.visible = false;\r\n  // }\r\n\r\n  dashboard() {\r\n    window.location.href = this.navigationURL + 'risk/risk-dashboard';\r\n  }\r\n  risk() {\r\n    window.location.href = this.navigationURL + 'risk/risk';\r\n  }\r\n  control() {\r\n    window.location.href = this.navigationURL + 'risk/control';\r\n  }\r\n  invenyory() {\r\n    window.location.href = this.navigationURL + 'risk/asset';\r\n  }\r\n  MyDashboard() {\r\n    window.location.href = this.navigationURL + 'overview/dashboard';\r\n  }\r\n  task() {\r\n    window.location.href = this.navigationURL + 'task/task';\r\n  }\r\n\r\n  userMgt() {\r\n    window.location.href = this.navigationURL + 'rbac/users';\r\n  }\r\n  businessentites() {\r\n    window.location.href = this.navigationURL + 'overview/entities';\r\n  }\r\n  policyManagement() {\r\n    window.location.href = this.navigationURL + 'policy/policymangement';\r\n  }\r\n  policyTemplates() {\r\n    window.location.href = this.navigationURL + 'policy/template';\r\n  }\r\n  auditdashboard() {\r\n    window.location.href = this.navigationURL + 'audit/dashboard';\r\n  }\r\n  auditUniverse() {\r\n    window.location.href = this.navigationURL + 'audit/audituniverse';\r\n  }\r\n\r\n  audit() {\r\n    window.location.href = this.navigationURL + 'audit/audits';\r\n  }\r\n  evidence() {\r\n    window.location.href = this.navigationURL + 'risk/evidence';\r\n  }\r\n  issues() {\r\n    window.location.href = this.navigationURL + 'issue/issues';\r\n  }\r\n  Indicators() {\r\n    window.location.href = this.navigationURL + 'indicator/indicators';\r\n  }\r\n\r\n  incidents() {\r\n    window.location.href = this.navigationURL + 'incidents/incident';\r\n  }\r\n\r\n  Remediations() {\r\n    window.location.href = this.navigationURL + 'remediation/remdiations';\r\n  }\r\n\r\n  Project() {\r\n    window.location.href =\r\n      this.navigationURL + 'projectmanagement/project-list';\r\n  }\r\n  reports() {\r\n    window.location.href = this.navigationURL + 'dashboards/reports';\r\n  }\r\n  compliance() {\r\n    window.location.href = this.navigationURL + 'compliance/compliancelibrary';\r\n  }\r\n  compliancelibrary() {\r\n    window.location.href = this.navigationURL + 'compliance/compliancelibrary';\r\n  }\r\n  complianceliDrarydashbord() {\r\n    window.location.href = this.navigationURL + 'compliance/dashboard';\r\n  }\r\n  complianceReport() {\r\n    window.location.href = this.navigationURL + 'compliance/reports';\r\n  }\r\n  assessment() {\r\n    window.location.href = this.navigationURL + 'compliance/assessments';\r\n  }\r\n  risksuite() {\r\n    window.location.href =\r\n      this.navigationURL + 'ai_services/service/risk-insight-suite';\r\n  }\r\n  surveygeneration() {\r\n    window.location.href =\r\n      this.navigationURL + 'ai_services/service/survey-questionnaire';\r\n  }\r\n  DocumentAIRoutes() {\r\n    window.location.href =\r\n      this.navigationURL + 'ai_services/service/survey-questionnaire';\r\n  }\r\n\r\n  contentLibraryRoutes(page: string) {\r\n    switch (page) {\r\n      case 'riskLibrary':\r\n        window.location.href =\r\n          this.navigationURL + 'ContentLibrary/risklibrary';\r\n        break;\r\n\r\n      case 'controlLibrary':\r\n        window.location.href = this.navigationURL + 'ContentLibrary/controls';\r\n        break;\r\n\r\n      case 'indicatorLibrary':\r\n        window.location.href = this.navigationURL + 'ContentLibrary/indicatorLibrary';\r\n      break;\r\n      case 'standardLibrary':\r\n        window.location.href = this.navigationURL + 'ContentLibrary/controls';\r\n        break;\r\n\r\n      case 'KnowledgeBase':\r\n        window.location.href = this.navigationURL + 'ContentLibrary/controls';\r\n        break;\r\n\r\n      default:\r\n        window.location.href =\r\n          this.navigationURL + 'ContentLibrary/risklibrary';\r\n        break;\r\n    }\r\n  }\r\n\r\n  auditorAIRoutes(page: string) {\r\n    switch (page) {\r\n      case 'aiService':\r\n        window.location.href = this.navigationURL + 'ai_services/service';\r\n        break;\r\n\r\n      case 'Analytics':\r\n        window.location.href = this.navigationURL + 'ai_services/analytics';\r\n        break;\r\n\r\n      default:\r\n        window.location.href = this.navigationURL + 'ai_services/service';\r\n        break;\r\n    }\r\n  }\r\n  UserAdmin: boolean = false;\r\n  rbacCheck() {\r\n    // const checkField = ['New', 'In Progress'];\r\n    const statusCheck: any = [];\r\n    if (statusCheck) {\r\n      const allowedRoletype = ['Super Admin', 'Application Admin'];\r\n      const UserAdmindRoletype = ['User Admin'];\r\n      if (this.roles === 'User Admin') {\r\n        this.UserAdmin = true;\r\n      }\r\n      const roleTypePerMission = allowedRoletype.includes(this.roleType);\r\n      this.rbacPermissionUser = roleTypePerMission;\r\n      if (!roleTypePerMission) {\r\n        const allowedRoles = [\r\n          'Audit Manager',\r\n          'Auditor',\r\n          'Audit User',\r\n          'Risk Reader',\r\n          'Risk Manager',\r\n          'Risk User',\r\n          'Compliance Reader',\r\n          'Compliance Manager',\r\n          'Compliance User',\r\n        ];\r\n        const allowedPermissions = this.roles.split(',');\r\n        const atLeastOneIncluded = allowedPermissions.some(\r\n          (permission: string) =>\r\n            allowedRoles.some((role) =>\r\n              role.toLowerCase().includes(permission.toLowerCase())\r\n            )\r\n        );\r\n        if (atLeastOneIncluded !== true) {\r\n          const allowedUserPermissions = this.roles;\r\n          if (allowedUserPermissions == 'General Manager') {\r\n            this.userCheckRbac = true;\r\n          }\r\n          if (allowedUserPermissions == 'General User') {\r\n            this.userCheckRbac = true;\r\n          }\r\n\r\n          if (this.userCheckRbac) {\r\n            const memberCheck = this.allUserListRbac.includes(this.currentUser);\r\n\r\n            this.rbacPermissionUser = memberCheck;\r\n          } else {\r\n            // this.rbacPermissionUser = false;\r\n          }\r\n        }\r\n      }\r\n    } else {\r\n      this.rbacPermissionUser = false;\r\n    }\r\n  }\r\n  orgcontext() {\r\n    window.location.href = this.navigationURL + 'governance/orgstructure';\r\n  }\r\n\r\n  navigateURL(url:string){\r\n    window.location.href = this.navigationURL + url;\r\n  }\r\n}\r\n","<!-- menu.component.html -->\r\n<p-dialog\r\n  [modal]=\"true\"\r\n  [(visible)]=\"visible\"\r\n  [showHeader]=\"false\"\r\n  [dismissableMask]=\"true\"\r\n  [style]=\"{ width: '25rem' }\"\r\n  (onHide)=\"onDialogHide()\"\r\n  maskStyleClass=\"my-custom-mask-class\"\r\n>\r\n  <div class=\"all-modules-megamenu\">\r\n    <div\r\n      class=\"four-modules-risk-audit-plan-task flex-wrap\"\r\n      *ngIf=\"subscriptionService.getModuleAccess$ | async as accessMap\"\r\n    >\r\n      <div class=\"risk-am\" *ngIf=\"accessMap['Governance']\">\r\n        <div class=\"risk-management\">\r\n          <div class=\"menu-head isms-menu-head\">\r\n            <span>\r\n              <i class=\"a-governes\"></i>\r\n            </span>\r\n            <button\r\n              class=\"n-management text-nowrap\"\r\n              (click)=\"orgcontext()\"\r\n              [disabled]=\"\r\n                (!roles.includes('Compliance Reader') &&\r\n                  !roles.includes('Compliance Manager') &&\r\n                  !roles.includes('Compliance User') &&\r\n                  !roles.includes('Application Admin') &&\r\n                  !roles.includes('Super Admin')) ||\r\n                (UserAdmin && userCheckRbac)\r\n              \"\r\n            >\r\n              Governance\r\n            </button>\r\n          </div>\r\n          <button\r\n            class=\"risks-title text-nowrap\"\r\n            (click)=\"orgcontext()\"\r\n            [disabled]=\"\r\n              (!roles.includes('Compliance Reader') &&\r\n                !roles.includes('Compliance Manager') &&\r\n                !roles.includes('Compliance User') &&\r\n                !roles.includes('Application Admin') &&\r\n                !roles.includes('Super Admin')) ||\r\n              (UserAdmin && userCheckRbac)\r\n            \"\r\n          >\r\n            Org Context\r\n          </button>\r\n          <button\r\n            class=\"risks-title text-nowrap\"\r\n            (click)=\"navigateURL('governance/contextissues')\"\r\n            [disabled]=\"\r\n              (!roles.includes('Compliance Reader') &&\r\n                !roles.includes('Compliance Manager') &&\r\n                !roles.includes('Compliance User') &&\r\n                !roles.includes('Application Admin') &&\r\n                !roles.includes('Super Admin')) ||\r\n              (UserAdmin && userCheckRbac)\r\n            \"\r\n          >\r\n            Context Issues\r\n          </button>\r\n          <button\r\n            class=\"risks-title text-nowrap\"\r\n            (click)=\"navigateURL('governance/interestedparties')\"\r\n            [disabled]=\"\r\n              (!roles.includes('Compliance Reader') &&\r\n                !roles.includes('Compliance Manager') &&\r\n                !roles.includes('Compliance User') &&\r\n                !roles.includes('Application Admin') &&\r\n                !roles.includes('Super Admin')) ||\r\n              (UserAdmin && userCheckRbac)\r\n            \"\r\n          >\r\n            Interested parties\r\n          </button>\r\n\r\n          <button class=\"risks-title text-nowrap\" (click)=\"Indicators()\">\r\n            Indicators\r\n          </button>\r\n          <!-- <button class=\"Dashboard-MEGAMEMu\">Management Reviews</button> -->\r\n          <!-- <button  class=\"risks-title\">\r\n                    Indicators\r\n                </button> -->\r\n        </div>\r\n      </div>\r\n\r\n      <!-- policy management  -->\r\n\r\n      <div class=\"task-am policy-mgt\" *ngIf=\"accessMap['Policy Management']\">\r\n        <div class=\"task-management\">\r\n          <div class=\"menu-head isms-menu-head\">\r\n            <span>\r\n              <i class=\"a-policymanagement\"></i>\r\n            </span>\r\n            <button\r\n              class=\"n-management text-nowrap\"\r\n              [disabled]=\"\r\n                (!roles.includes('Compliance Reader') &&\r\n                  !roles.includes('Compliance Manager') &&\r\n                  !roles.includes('Compliance User') &&\r\n                  !roles.includes('Application Admin') &&\r\n                  !roles.includes('Super Admin')) ||\r\n                (UserAdmin && userCheckRbac)\r\n              \"\r\n              (click)=\"policyManagement()\"\r\n            >\r\n              Policy Management\r\n            </button>\r\n          </div>\r\n\r\n          <button\r\n            [disabled]=\"\r\n              (!roles.includes('Compliance Reader') &&\r\n                !roles.includes('Compliance Manager') &&\r\n                !roles.includes('Compliance User') &&\r\n                !roles.includes('Application Admin') &&\r\n                !roles.includes('Super Admin')) ||\r\n              (UserAdmin && userCheckRbac)\r\n            \"\r\n            (click)=\"policyTemplates()\"\r\n            class=\"risks-title text-nowrap\"\r\n          >\r\n            Policy Templates\r\n          </button>\r\n          <button\r\n            [disabled]=\"\r\n              (!roles.includes('Compliance Reader') &&\r\n                !roles.includes('Compliance Manager') &&\r\n                !roles.includes('Compliance User') &&\r\n                !roles.includes('Application Admin') &&\r\n                !roles.includes('Super Admin')) ||\r\n              (UserAdmin && userCheckRbac)\r\n            \"\r\n            (click)=\"policyManagement()\"\r\n            class=\"risks-title text-nowrap\"\r\n          >\r\n            Policies\r\n          </button>\r\n          <!-- <button\r\n            [disabled]=\"\r\n              (!roles.includes('Compliance Reader') &&\r\n                !roles.includes('Compliance Manager') &&\r\n                !roles.includes('Compliance User') &&\r\n                !roles.includes('Application Admin') &&\r\n                !roles.includes('Super Admin')) ||\r\n              (UserAdmin && userCheckRbac)\r\n            \"\r\n            class=\"Dashboard-MEGAMEMu\"\r\n          >\r\n            Policy Distribution\r\n          </button>\r\n          <button\r\n            [disabled]=\"\r\n              (!roles.includes('Compliance Reader') &&\r\n                !roles.includes('Compliance Manager') &&\r\n                !roles.includes('Compliance User') &&\r\n                !roles.includes('Application Admin') &&\r\n                !roles.includes('Super Admin')) ||\r\n              (UserAdmin && userCheckRbac)\r\n            \"\r\n            class=\"Dashboard-MEGAMEMu\"\r\n          >\r\n            Policy Exception\r\n          </button> -->\r\n        </div>\r\n      </div>\r\n\r\n      <!-- risk management  -->\r\n      <div class=\"risk-am\" *ngIf=\"accessMap['Risk Management']\">\r\n        <div class=\"risk-management\">\r\n          <div class=\"menu-head isms-menu-head\">\r\n            <span>\r\n              <i class=\"a-risk\"></i>\r\n            </span>\r\n            <button\r\n              class=\"n-management text-nowrap\"\r\n              (click)=\"dashboard()\"\r\n              [disabled]=\"\r\n                (!roles.includes('Risk Reader') &&\r\n                  !roles.includes('Risk Manager') &&\r\n                  !roles.includes('Risk User') &&\r\n                  !roles.includes('Application Admin') &&\r\n                  !roles.includes('Super Admin')) ||\r\n                (UserAdmin && userCheckRbac)\r\n              \"\r\n            >\r\n              Risk Management\r\n            </button>\r\n          </div>\r\n          <button\r\n            class=\"risks-title text-nowrap\"\r\n            (click)=\"dashboard()\"\r\n            [disabled]=\"\r\n              (!roles.includes('Risk Reader') &&\r\n                !roles.includes('Risk Manager') &&\r\n                !roles.includes('Risk User') &&\r\n                !roles.includes('Application Admin') &&\r\n                !roles.includes('Super Admin')) ||\r\n              (UserAdmin && userCheckRbac)\r\n            \"\r\n          >\r\n            Dashboard\r\n          </button>\r\n          <button\r\n            [disabled]=\"\r\n              (!roles.includes('Risk Reader') &&\r\n                !roles.includes('Risk Manager') &&\r\n                !roles.includes('Risk User') &&\r\n                !roles.includes('Application Admin') &&\r\n                !roles.includes('Super Admin')) ||\r\n              (UserAdmin && userCheckRbac)\r\n            \"\r\n            (click)=\"risk()\"\r\n            class=\"risks-title text-nowrap\"\r\n          >\r\n            Risks\r\n          </button>\r\n          <button\r\n            [disabled]=\"\r\n              (!roles.includes('Risk Reader') &&\r\n                !roles.includes('Risk Manager') &&\r\n                !roles.includes('Risk User') &&\r\n                !roles.includes('Application Admin') &&\r\n                !roles.includes('Super Admin') &&\r\n                !roles.includes('Compliance Reader') &&\r\n                !roles.includes('Compliance Manager') &&\r\n                !roles.includes('Compliance User')) ||\r\n              (UserAdmin && userCheckRbac)\r\n            \"\r\n            (click)=\"control()\"\r\n            class=\"risks-title text-nowrap\"\r\n          >\r\n            Controls\r\n          </button>\r\n          <button\r\n            [disabled]=\"\r\n              (!roles.includes('Risk Reader') &&\r\n                !roles.includes('Risk Manager') &&\r\n                !roles.includes('Risk User') &&\r\n                !roles.includes('Compliance Reader') &&\r\n                !roles.includes('Compliance Manager') &&\r\n                !roles.includes('Compliance User') &&\r\n                !roles.includes('Audit Reader') &&\r\n                !roles.includes('Audit Manager') &&\r\n                !roles.includes('Audit User') &&\r\n                !roles.includes('Application Admin') &&\r\n                !roles.includes('Super Admin') &&\r\n                !roles.includes('Auditor')) ||\r\n              (UserAdmin && userCheckRbac)\r\n            \"\r\n            (click)=\"evidence()\"\r\n            class=\"nrisks-title text-nowrap\"\r\n          >\r\n            Evidence\r\n          </button>\r\n\r\n          <button\r\n            [disabled]=\"\r\n              (!roles.includes('Risk Reader') &&\r\n                !roles.includes('Risk Manager') &&\r\n                !roles.includes('Risk User') &&\r\n                !roles.includes('Application Admin') &&\r\n                !roles.includes('Super Admin') &&\r\n                !roles.includes('Compliance Reader') &&\r\n                !roles.includes('Compliance Manager') &&\r\n                !roles.includes('Compliance User')) ||\r\n              (UserAdmin && userCheckRbac)\r\n            \"\r\n            (click)=\"invenyory()\"\r\n            class=\"risks-title text-nowrap\"\r\n          >\r\n            Inventory\r\n          </button>\r\n          <!-- <button  class=\"risks-title\">\r\n                    Indicators\r\n                </button> -->\r\n        </div>\r\n      </div>\r\n      <!-- issues -->\r\n      <div class=\"issues-inci\" *ngIf=\"accessMap['Issue Management']\">\r\n        <div class=\"Project-Plan\">\r\n          <div class=\"menu-head isms-menu-head\">\r\n            <span>\r\n              <i class=\"a-issue-incident\"></i>\r\n            </span>\r\n            <button\r\n              [disabled]=\"UserAdmin\"\r\n              class=\"n-management text-nowrap\"\r\n              (click)=\"issues()\"\r\n            >\r\n              Issues & Incidents\r\n            </button>\r\n          </div>\r\n\r\n          <!-- <button [disabled]=\"UserAdmin\" class=\"Dashboard-MEGAMEMu\">\r\n            Dashboard\r\n          </button> -->\r\n          <button\r\n            [disabled]=\"UserAdmin\"\r\n            (click)=\"issues()\"\r\n            class=\"risks-title text-nowrap\"\r\n          >\r\n            Issues\r\n          </button>\r\n          <button\r\n            [disabled]=\"UserAdmin\"\r\n            (click)=\"incidents()\"\r\n            class=\"risks-title text-nowrap\"\r\n          >\r\n            Incidents\r\n          </button>\r\n          <button\r\n            [disabled]=\"UserAdmin\"\r\n            (click)=\"Remediations()\"\r\n            class=\"risks-title text-nowrap\"\r\n          >\r\n            Action Plans\r\n          </button>\r\n        </div>\r\n      </div>\r\n      <!-- generic -->\r\n      <div class=\"generic-m\" *ngIf=\"accessMap['General Modules']\">\r\n        <div class=\"Project-Plan\">\r\n          <div class=\"menu-head isms-menu-head\">\r\n            <span>\r\n              <i class=\"a-generic\"></i>\r\n            </span>\r\n            <button class=\"n-management text-nowrap\" (click)=\"MyDashboard()\">\r\n              Generic Features\r\n            </button>\r\n          </div>\r\n          <button\r\n            (click)=\"MyDashboard()\"\r\n            [disabled]=\"UserAdmin\"\r\n            class=\"risks-title text-nowrap\"\r\n          >\r\n            My Dashboard\r\n          </button>\r\n          <button\r\n            (click)=\"task()\"\r\n            [disabled]=\"UserAdmin\"\r\n            class=\"risks-title text-nowrap\"\r\n          >\r\n            Tasks\r\n          </button>\r\n          <button\r\n            class=\"risks-title text-nowrap\"\r\n            (click)=\"Project()\"\r\n            [disabled]=\"UserAdmin\"\r\n          >\r\n            Projects\r\n          </button>\r\n          <button (click)=\"reports()\" class=\"risks-title text-nowrap\">\r\n            Reports\r\n          </button>\r\n          <!-- <button (click)=\"businessentites()\" class=\"risks-title text-nowrap\">\r\n      Business Entities\r\n    </button> -->\r\n\r\n          <!-- <button class=\"risks-title\" >\r\n                Management Reviews\r\n            </button> -->\r\n          <!-- <button (click)=\"userMgt()\" class=\"risks-title text-nowrap\">User Management</button> -->\r\n        </div>\r\n      </div>\r\n      <!-- Audit -management  -->\r\n\r\n      <div class=\"audit-am\" *ngIf=\"accessMap['Audit Management']\">\r\n        <div class=\"Audit-management\">\r\n          <div class=\"menu-head isms-menu-head\">\r\n            <span>\r\n              <i class=\"a-audit\"></i>\r\n            </span>\r\n            <button\r\n              class=\"n-management text-nowrap\"\r\n              [disabled]=\"\r\n                (!roles.includes('Audit Reader') &&\r\n                  !roles.includes('Audit Manager') &&\r\n                  !roles.includes('Audit User') &&\r\n                  !roles.includes('Application Admin') &&\r\n                  !roles.includes('Super Admin') &&\r\n                  !roles.includes('Auditor')) ||\r\n                (UserAdmin && userCheckRbac)\r\n              \"\r\n              (click)=\"auditdashboard()\"\r\n            >\r\n              Audit Management\r\n            </button>\r\n          </div>\r\n\r\n          <button\r\n            [disabled]=\"\r\n              (!roles.includes('Audit Reader') &&\r\n                !roles.includes('Audit Manager') &&\r\n                !roles.includes('Audit User') &&\r\n                !roles.includes('Application Admin') &&\r\n                !roles.includes('Super Admin') &&\r\n                !roles.includes('Auditor')) ||\r\n              (UserAdmin && userCheckRbac)\r\n            \"\r\n            (click)=\"auditdashboard()\"\r\n            class=\"risks-title text-nowrap\"\r\n          >\r\n            Dashboard\r\n          </button>\r\n          <button\r\n            [disabled]=\"\r\n              (!roles.includes('Audit Reader') &&\r\n                !roles.includes('Audit Manager') &&\r\n                !roles.includes('Audit User') &&\r\n                !roles.includes('Application Admin') &&\r\n                !roles.includes('Super Admin') &&\r\n                !roles.includes('Auditor')) ||\r\n              (UserAdmin && userCheckRbac)\r\n            \"\r\n            (click)=\"auditUniverse()\"\r\n            class=\"nrisks-title text-nowrap\"\r\n          >\r\n            Audit Universe\r\n          </button>\r\n          <!-- <button class=\"risks-title\">\r\n                        Audit Programs\r\n                    </button> -->\r\n          <button\r\n            [disabled]=\"\r\n              (!roles.includes('Audit Reader') &&\r\n                !roles.includes('Audit Manager') &&\r\n                !roles.includes('Audit User') &&\r\n                !roles.includes('Application Admin') &&\r\n                !roles.includes('Super Admin') &&\r\n                !roles.includes('Auditor')) ||\r\n              (UserAdmin && userCheckRbac)\r\n            \"\r\n            (click)=\"audit()\"\r\n            class=\"nrisks-title text-nowrap\"\r\n          >\r\n            Audits\r\n          </button>\r\n        </div>\r\n      </div>\r\n\r\n      <!-- </div> -->\r\n\r\n      <!-- <div class=\"comeing-soon-four\"></div> -->\r\n\r\n      <div\r\n        class=\"four-modules-isms-iso-policy-control\"\r\n        *ngIf=\"accessMap['Compliance Management']\"\r\n      >\r\n        <!-- isms   -->\r\n\r\n        <!-- Third Party Risk  -->\r\n\r\n        <!-- <div class=\"controll-am\">\r\n      <div class=\"content-library\">\r\n        <div class=\"menu-head isms-menu-head\">\r\n          <span>\r\n            <i class=\"a-Project\"></i>\r\n          </span>\r\n          <button class=\"n-management text-nowrap\" [disabled]=\"UserAdmin\" (click)=\"Project()\">Project\r\n            Management</button>\r\n        </div>\r\n\r\n\r\n      </div>\r\n    </div> -->\r\n\r\n        <div class=\"bussiness-m\">\r\n          <div class=\"policy-panagement\">\r\n            <div class=\"menu-head isms-menu-head\">\r\n              <span>\r\n                <div class=\"iso-menu-head isms-menu-head\">\r\n                  <i class=\"a-Compliance\"></i>\r\n                </div>\r\n              </span>\r\n              <button\r\n                class=\"n-management text-nowrap\"\r\n                [disabled]=\"\r\n                  (!roles.includes('Compliance Reader') &&\r\n                    !roles.includes('Compliance Manager') &&\r\n                    !roles.includes('Compliance User') &&\r\n                    !roles.includes('Application Admin') &&\r\n                    !roles.includes('Super Admin')) ||\r\n                  (UserAdmin && userCheckRbac)\r\n                \"\r\n                (click)=\"compliance()\"\r\n              >\r\n                Compliance\r\n              </button>\r\n            </div>\r\n            <button\r\n              class=\"risks-title text-nowrap\"\r\n              [disabled]=\"\r\n                (!roles.includes('Compliance Reader') &&\r\n                  !roles.includes('Compliance Manager') &&\r\n                  !roles.includes('Compliance User') &&\r\n                  !roles.includes('Application Admin') &&\r\n                  !roles.includes('Super Admin')) ||\r\n                (UserAdmin && userCheckRbac)\r\n              \"\r\n              [disabled]=\"UserAdmin\"\r\n              (click)=\"complianceliDrarydashbord()\"\r\n            >\r\n              Dashboard\r\n            </button>\r\n            <button\r\n              class=\"risks-title text-nowrap\"\r\n              [disabled]=\"\r\n                (!roles.includes('Compliance Reader') &&\r\n                  !roles.includes('Compliance Manager') &&\r\n                  !roles.includes('Compliance User') &&\r\n                  !roles.includes('Application Admin') &&\r\n                  !roles.includes('Super Admin')) ||\r\n                (UserAdmin && userCheckRbac)\r\n              \"\r\n              (click)=\"compliancelibrary()\"\r\n            >\r\n              Compliance Library\r\n            </button>\r\n          </div>\r\n\r\n          <button\r\n            class=\"risks-title text-nowrap\"\r\n            [disabled]=\"\r\n              (!roles.includes('Compliance Reader') &&\r\n                !roles.includes('Compliance Manager') &&\r\n                !roles.includes('Compliance User') &&\r\n                !roles.includes('Application Admin') &&\r\n                !roles.includes('Super Admin')) ||\r\n              (UserAdmin && userCheckRbac)\r\n            \"\r\n            (click)=\"complianceReport()\"\r\n          >\r\n            Compliance Reports\r\n          </button>\r\n          <button\r\n            class=\"risks-title text-nowrap\"\r\n            [disabled]=\"\r\n              (!roles.includes('General Manager') &&\r\n                !roles.includes('General User') &&\r\n                !roles.includes('Assessment Response') &&\r\n                !roles.includes('Application Admin') &&\r\n                !roles.includes('Super Admin')) ||\r\n              (UserAdmin && userCheckRbac)\r\n            \"\r\n            (click)=\"assessment()\"\r\n          >\r\n            Assessments\r\n          </button>\r\n        </div>\r\n      </div>\r\n      <div class=\"iso-am\" *ngIf=\"accessMap['Content Library']\">\r\n        <!-- <span class=\"comming-isms\">COMING SOON</span> -->\r\n        <div class=\"third-party-risk\">\r\n          <div class=\"menu-head isms-menu-head\">\r\n            <span>\r\n              <i class=\"a-thirdparty\"></i>\r\n            </span>\r\n            <button\r\n              class=\"n-management text-nowrap\"\r\n              [disabled]=\"UserAdmin && userCheckRbac\"\r\n              (click)=\"contentLibraryRoutes('riskLibrary')\"\r\n            >\r\n              Content Library\r\n            </button>\r\n          </div>\r\n\r\n          <button\r\n            class=\"risks-title text-nowrap\"\r\n            [disabled]=\"UserAdmin && userCheckRbac\"\r\n            (click)=\"contentLibraryRoutes('riskLibrary')\"\r\n          >\r\n            Risk Library\r\n          </button>\r\n          <button\r\n            class=\"risks-title text-nowrap\"\r\n            [disabled]=\"UserAdmin && userCheckRbac\"\r\n            (click)=\"contentLibraryRoutes('controlLibrary')\"\r\n          >\r\n            Control Library\r\n          </button>\r\n          <button\r\n            class=\"risks-title text-nowrap\"\r\n            [disabled]=\"UserAdmin && userCheckRbac\"\r\n            (click)=\"contentLibraryRoutes('indicatorLibrary')\"\r\n          >\r\n            Indicator Library\r\n          </button>\r\n          <!-- <button class=\"risks-title text-nowrap\" [disabled]=\"UserAdmin&& userCheckRbac\"\r\n          (click)=\"contentLibraryRoutes('riskLibrary')\">Standards Library</button> -->\r\n          <!-- <button\r\n            class=\"Dashboard-MEGAMEMu\"\r\n            [disabled]=\"UserAdmin && userCheckRbac\"\r\n          >\r\n            Knowledge Base\r\n          </button> -->\r\n        </div>\r\n      </div>\r\n      <div class=\"project-m\" *ngIf=\"accessMap['Assurtiv AI']\">\r\n        <!-- <span class=\"comming-Project\">COMING SOON</span> -->\r\n        <div class=\"isms\">\r\n          <div class=\"menu-head isms-menu-head\">\r\n            <span>\r\n              <i class=\"a-delectedit\"></i>\r\n            </span>\r\n            <button\r\n              class=\"n-management text-nowrap\"\r\n              [disabled]=\"\r\n                !roles.includes('AI Manager') &&\r\n                !roles.includes('AI User') &&\r\n                !roles.includes('Application Admin') &&\r\n                !roles.includes('Super Admin')\r\n              \"\r\n              (click)=\"auditorAIRoutes('aiService')\"\r\n            >\r\n              Assurtiv AI\r\n            </button>\r\n          </div>\r\n\r\n          <button\r\n            class=\"risks-title text-nowrap\"\r\n            [disabled]=\"\r\n              !roles.includes('AI Manager') &&\r\n              !roles.includes('AI User') &&\r\n              !roles.includes('Application Admin') &&\r\n              !roles.includes('Super Admin')\r\n            \"\r\n            (click)=\"auditorAIRoutes('aiService')\"\r\n          >\r\n            AI Services\r\n          </button>\r\n          <button\r\n            class=\"risks-title text-nowrap\"\r\n            [disabled]=\"\r\n              !roles.includes('AI Manager') &&\r\n              !roles.includes('AI User') &&\r\n              !roles.includes('Application Admin') &&\r\n              !roles.includes('Super Admin')\r\n            \"\r\n            (click)=\"risksuite()\"\r\n          >\r\n            RiskInsight Suite\r\n          </button>\r\n          <button\r\n            class=\"risks-title text-nowrap\"\r\n            [disabled]=\"\r\n              !roles.includes('AI Manager') &&\r\n              !roles.includes('AI User') &&\r\n              !roles.includes('Application Admin') &&\r\n              !roles.includes('Super Admin')\r\n            \"\r\n            (click)=\"surveygeneration()\"\r\n          >\r\n            Survey Generator\r\n          </button>\r\n          <!-- <button class=\"Dashboard-MEGAMEMu\">Document Bot</button> -->\r\n        </div>\r\n      </div>\r\n      <!-- Policy Management  -->\r\n\r\n      <!-- content-library  -->\r\n    </div>\r\n    <!-- </div> -->\r\n  </div>\r\n</p-dialog>\r\n","import {\r\n  Component,\r\n  EventEmitter,\r\n  Input,\r\n  OnDestroy,\r\n  Output,\r\n  SimpleChanges,\r\n  ViewChild,\r\n} from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { OverlayPanel } from 'primeng/overlaypanel';\r\nimport { SubscriptionService } from '../../services/subscription.service';\r\nimport { Subscription } from 'rxjs';\r\n@Component({\r\n  selector: 'lib-topnav',\r\n  templateUrl: './topnav.component.html',\r\n  styleUrls: ['./topnav.component.scss'],\r\n})\r\nexport class TopnavComponent implements OnDestroy{\r\n  @ViewChild('profilePanel') profilePanel!: OverlayPanel;\r\n  @Input() roleBasedConditionCheck: boolean = true;\r\n  @Input() breadCrumbItems: any = [];\r\n  @Input() navigationURL: any = '';\r\n  @Input() usersData: any = [];\r\n  @Input() unReadNotificationCount: any = [];\r\n  @Output() notificationsIconclick = new EventEmitter<any>();\r\n  @Output() logoutClick = new EventEmitter<any>();\r\n  isDialogVisible: boolean = false;\r\n  activeClass: any = { megamenu: false, notification: false, profile: false };\r\n  number: any = '99+';\r\n  @Input() subscriptionAPIUrl:string = ''\r\n  subscriptionSubscribe!:Subscription;\r\n\r\n  constructor(private subscriptionService:SubscriptionService) {}\r\n  \r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (changes['subscriptionAPIUrl']) {\r\n      this.subscriptionSubscribe = this.subscriptionService.loadSubscriptionData(this.subscriptionAPIUrl).subscribe()\r\n    }\r\n  }\r\n  activeContainter(section: string) {\r\n    switch (section) {\r\n      case 'megamenu':\r\n        this.activeClass = {\r\n          megamenu: true,\r\n          notification: false,\r\n          profile: false,\r\n        };\r\n        break;\r\n      case 'notification':\r\n        this.activeClass = {\r\n          megamenu: false,\r\n          notification: true,\r\n          profile: false,\r\n        };\r\n        break;\r\n      case 'profile':\r\n        this.activeClass = {\r\n          megamenu: false,\r\n          notification: false,\r\n          profile: true,\r\n        };\r\n        break;\r\n      default:\r\n        this.activeClass = {\r\n          megamenu: true,\r\n          notification: false,\r\n          profile: false,\r\n        };\r\n    }\r\n  }\r\n\r\n  openDialog() {\r\n    this.isDialogVisible = true;\r\n  }\r\n\r\n  onDialogClose() {\r\n    this.isDialogVisible = false;\r\n  }\r\n  navigateHome() {\r\n    if (this.roleBasedConditionCheck) {\r\n      window.location.href = this.navigationURL + 'overview/allmainscreen';\r\n    }\r\n  }\r\n  notificationsOnClick() {\r\n    this.notificationsIconclick.emit();\r\n  }\r\n  logout() {\r\n    this.subscriptionService.resetSubscription()\r\n    this.logoutClick.emit();\r\n    this.profilePanel.hide(); // Hide panel after logout\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.subscriptionSubscribe ? this.subscriptionSubscribe.unsubscribe() : ''\r\n  }\r\n  \r\n}\r\n","<div class=\"header-container\">\r\n  <div\r\n    class=\"audit-logo-container site-logo-container\"\r\n    [ngStyle]=\"{ cursor: roleBasedConditionCheck ? 'pointer' : 'default' }\"\r\n    (click)=\"navigateHome()\"\r\n  ></div>\r\n\r\n  <div class=\"breadcrumb-container card flex justify-content-center\">\r\n    <lib-breadcrumb\r\n      [routes]=\"breadCrumbItems\"\r\n      [navigationURL]=\"navigationURL\"\r\n    ></lib-breadcrumb>\r\n  </div>\r\n\r\n  <div class=\"other-logos-container\">\r\n    <div\r\n      class=\"mega-each-menu-container\"\r\n      [ngClass]=\"{ 'menu-container-active': activeClass.megamenu === true }\"\r\n      (click)=\"activeContainter('megamenu')\"\r\n      pTooltip=\"Menu\"\r\n      tooltipPosition=\"bottom\"\r\n      *ngIf=\"roleBasedConditionCheck\"\r\n    >\r\n      <div class=\"other-logo-container menu-container\" (click)=\"openDialog()\">\r\n        <lib-megamemu\r\n          [visible]=\"isDialogVisible\"\r\n          [navigationURL]=\"navigationURL\"\r\n          (closeDialog)=\"onDialogClose()\"\r\n        ></lib-megamemu>\r\n      </div>\r\n    </div>\r\n    <div\r\n      class=\"mega-each-menu-container\"\r\n      [ngClass]=\"{\r\n        'notification-container-active': activeClass.notification === true\r\n      }\"\r\n      pTooltip=\"Notifications\"\r\n      tooltipPosition=\"bottom\"\r\n    >\r\n      <div\r\n        class=\"other-logo-container notification-container\"\r\n        (click)=\"notificationsOnClick()\"\r\n      >\r\n        <i\r\n          *ngIf=\"\r\n            unReadNotificationCount?.length > 0 &&\r\n            unReadNotificationCount?.length <= 9\r\n          \"\r\n          class=\"a-bell\"\r\n          ngClass=\"notifaction-zero-ten-class\"\r\n          matBadge=\"{{ unReadNotificationCount.length }}\"\r\n          matBadgeColor=\"warn\"\r\n        >\r\n        </i>\r\n        <i\r\n          *ngIf=\"\r\n            unReadNotificationCount?.length > 9 &&\r\n            unReadNotificationCount?.length <= 99\r\n          \"\r\n          class=\"a-bell test22\"\r\n          ngClass=\"notifaction-ten-ninetynine-class\"\r\n          style=\"width: 20px !important\"\r\n          matBadge=\"{{ unReadNotificationCount.length }}\"\r\n          matBadgeColor=\"warn\"\r\n        >\r\n        </i>\r\n        <i\r\n          class=\"more99\"\r\n          *ngIf=\"unReadNotificationCount?.length > 99\"\r\n          class=\"a-bell\"\r\n          matBadge=\"{{ number }}\"\r\n          matBadgeColor=\"warn\"\r\n          ngClass=\"notifaction-aboveninetynine-class\"\r\n          style=\"width: 25px !important\"\r\n        >\r\n        </i>\r\n\r\n        <i *ngIf=\"unReadNotificationCount?.length === 0\" class=\"a-bell\"> </i>\r\n      </div>\r\n    </div>\r\n\r\n    <div\r\n      class=\"mega-each-menu-container\"\r\n      [ngClass]=\"{ 'profile-container-active': activeClass.profile === true }\"\r\n      pTooltip=\"Profile\"\r\n      tooltipPosition=\"bottom\"\r\n    >\r\n      <div\r\n        class=\"other-logo-container profile-container\"\r\n        (click)=\"profilePanel.toggle($event)\"\r\n      >\r\n        <p-overlayPanel #profilePanel [showCloseIcon]=\"false\">\r\n          <div class=\"profile-panel\">\r\n            <div class=\"profile-header\">\r\n              <div class=\"profile-avatar\">\r\n                {{ usersData?.email?.slice(0, 2).toUpperCase() }}\r\n              </div>\r\n              <div class=\"profile-info\">\r\n                <div class=\"profile-name\">{{ usersData?.username }}</div>\r\n                <div class=\"profile-email\">{{ usersData?.email }}</div>\r\n              </div>\r\n            </div>\r\n            <div class=\"profile-actions\">\r\n              <button pButton class=\"logout-btn\" (click)=\"logout()\">\r\n                <i class=\"pi pi-sign-out\"></i> Logout\r\n              </button>\r\n            </div>\r\n          </div>\r\n        </p-overlayPanel>\r\n      </div>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { SITE_LOGIN_URL } from '../common/common.service';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class LoginService {\r\n\r\n  \r\n  private refreshTokenUrl = SITE_LOGIN_URL + '/refresh_token';\r\n  constructor(private http: HttpClient) { }\r\n\r\n\r\n  loginCall(data: {}): Observable<any> {    \r\n    const url = SITE_LOGIN_URL+'/login';\r\n    const headers = new HttpHeaders({\r\n      'Content-Type': 'application/json',\r\n    });\r\n    return this.http.post<any>(url, data, { headers });\r\n  }\r\n\r\n  logOut() {\r\n    \r\n    const url = SITE_LOGIN_URL+'/login';\r\n    return this.http.post(url + '/logout', '');\r\n  }\r\n\r\n\r\n  refreshAccessToken(refresh_token: string | null): Observable<any> {\r\n    // Define the headers for the request\r\n    localStorage.removeItem('access_token');\r\n    const headers = new HttpHeaders({\r\n      'Content-Type': 'application/json',\r\n      Authorization: `Bearer ${localStorage.getItem('refresh_token')}`,\r\n    });\r\n\r\n    // Prepare the request body with the refresh token\r\n\r\n    // Send a POST request to the refresh token endpoint\r\n    return this.http.post<any>(this.refreshTokenUrl, null, { headers });\r\n  }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-site-loader',\r\n  templateUrl: './site-loaders.component.html',\r\n  styleUrls: ['./site-loaders.component.scss']\r\n})\r\nexport class SiteLoadersComponent {\r\n  \r\n\r\n}\r\n","<!-- <ngx-spinner bdColor=\"rgba(0,0,0,0.0)\" size=\"medium\" color=\"#009579\" [fullScreen]=\"true\" template=\"<div class='spinner-img' >  </div>\"></ngx-spinner> -->\r\n<ngx-spinner bdColor=\"rgba(0,0,0,0.0)\" size=\"medium\" color=\"#009579\" [fullScreen]=\"true\" template=\"<div class='loader-container' > <img src='https://dev.assurtiv.com/overview/assets/image/spinner.gif' style='width: 100% !important;\r\n    height: 100% !important;'/> </div>\"></ngx-spinner>\r\n","import { Component, Input } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { NavigationExtras, Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { LoginService } from '../../services/login/login.service';\r\nimport { CommonService, ERROR_MESSAGE, STORAGE_ACCESS_TOKEN, STORAGE_CURRENT_USER, STORAGE_IS_CHANGED, STORAGE_REFRESH_TOKEN, STORAGE_ROLES, STORAGE_ROLE_TYPE, TOASTER_ERROR, TOASTER_SUCCESS } from '../../services/common/common.service';\r\nimport { jwtDecode } from 'jwt-decode';\r\nimport { SubscriptionService } from '../../services/subscription.service';\r\n\r\n@Component({\r\n  selector: 'lib-login',\r\n  templateUrl: './login.component.html',\r\n  styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent {\r\n  password?: string;\r\n  email?: string;\r\n  tenant?: string;\r\n  loginSubscribe!: Subscription;\r\n  form!: FormGroup;\r\n  required: boolean = true;\r\n  isDisabled: boolean = false;\r\n  @Input() routePath:string ='';\r\n\r\n  constructor(private fb: FormBuilder,\r\n    private router: Router,\r\n    private loginService :LoginService,\r\n    private commonService : CommonService,\r\n    private subscriptionService : SubscriptionService,\r\n    // private http: HttpClient\r\n  ) {\r\n    this.subscriptionService.resetSubscription()\r\n\r\n   }\r\n  ngOnInit() {\r\n    this.form = this.fb.group({\r\n      email: [\r\n        { value: null, disabled: this.isDisabled },\r\n        [\r\n          Validators.required,\r\n          Validators.pattern('^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,6}$'),\r\n        ],\r\n      ],\r\n      password: [\r\n        { value: null, disabled: this.isDisabled },\r\n        [\r\n          Validators.required,\r\n          Validators.minLength(8),\r\n          Validators.maxLength(16),\r\n          Validators.pattern('^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).{8,}$'),\r\n        ],\r\n      ],\r\n      tenant: [\r\n        { value: null, disabled: this.isDisabled },\r\n        [\r\n          Validators.required,\r\n          Validators.minLength(6),\r\n          Validators.maxLength(6),\r\n        ],\r\n      ],\r\n    });\r\n  }\r\n\r\n\r\n  login(data: {}):  any{  \r\n    return this.loginService.loginCall(data)\r\n  }\r\n\r\n  userLogin() {\r\n    if (this.form.valid) {\r\n      this.commonService.startLoader();\r\n      this.isDisabled = true;\r\n      let login = {\r\n        password: this.form.value.password,\r\n        tenant: this.form.value.tenant.toUpperCase(),\r\n        email: this.form.value.email,\r\n      };\r\n      this.loginSubscribe = this.login(login).subscribe({\r\n        next: (loginData: any) => {\r\n          this.isDisabled = false;\r\n          const decoded_access_token: any = jwtDecode(\r\n            loginData?.data?.access_token\r\n          );\r\n          this.commonService.setStorage(\r\n            STORAGE_ACCESS_TOKEN,\r\n            loginData?.data?.access_token\r\n          );\r\n          this.commonService.setStorage(\r\n            STORAGE_REFRESH_TOKEN,\r\n            loginData?.data?.refresh_token\r\n          );\r\n          this.commonService.setStorage(\r\n            STORAGE_CURRENT_USER,\r\n            decoded_access_token.sub\r\n          );\r\n          this.commonService.setStorage(\r\n            STORAGE_ROLE_TYPE,\r\n            decoded_access_token.role_type\r\n          );\r\n          this.commonService.setStorage(\r\n            STORAGE_ROLES,\r\n            decoded_access_token.roles\r\n          );\r\n          this.commonService.showToastr(TOASTER_SUCCESS, loginData.message);\r\n        },\r\n        error: (error: any) => {\r\n          this.isDisabled = false;\r\n          this.password = '';\r\n          let err: string = error?.error?.message\r\n            ? error?.error?.message\r\n            : ERROR_MESSAGE;\r\n          err ? this.commonService.showToastr(TOASTER_ERROR, err) : '';\r\n          this.commonService.stopLoader();\r\n          this.commonService.setStorage(\r\n            STORAGE_IS_CHANGED,\r\n            error?.error?.message\r\n          );\r\n          const isChanged = this.commonService.getStorage(STORAGE_IS_CHANGED);\r\n          if (isChanged === 'Kindly reset your password') {\r\n            const navigationExtras: NavigationExtras = {\r\n              queryParams: {\r\n                redirectUrl: 'login',\r\n              },\r\n            };\r\n            this.router.navigate(['/changepassword'], navigationExtras);\r\n          }\r\n        },\r\n        complete: () => {\r\n          this.isDisabled = false;\r\n          // this.roles = this.commonService.getStorage(STORAGE_ROLES);\r\n          this.commonService.stopLoader();\r\n          // this.router.navigate(['/allmainscreen']);\r\n          this.router.navigate([this.routePath]);\r\n        }\r\n      });\r\n    }\r\n  }\r\n\r\n  forgetPassword() {\r\n    this.router.navigate(['/forgotpassword']);\r\n  }\r\n\r\n  privacyNavigation() { }\r\n\r\n  ngOnDestroy(): void {\r\n    if (this.loginSubscribe) {\r\n      this.loginSubscribe.unsubscribe();\r\n    }\r\n  }\r\n\r\n}\r\n","<lib-site-loader></lib-site-loader>\r\n\r\n<div class=\"row login-page\">\r\n    <div class=\"col-md-6 img-side-login d-flex justify-content-center align-items-center\">\r\n        <div class=\"intergate-middle-content\">\r\n            <span class=\"sub-tile-login\">Welcome to your</span>\r\n            <hr class=\"boarderline\">\r\n            <span class=\"grc-title\">Integrated GRC </span>\r\n            <span class=\"platfrom-title\">Platform</span>\r\n            <br>\r\n            <span class=\"sub-tile-login\">Log in to unify Governance, Risk, and <br>Compliance management.\r\n\r\n            </span>\r\n        </div>\r\n    </div>\r\n    <div class=\"col-md-6 login-inputbox d-flex justify-content-center align-items-center\">\r\n\r\n        <div style=\"width: 48%; margin: auto;\">\r\n\r\n            <div class=\"image-position d-flex justify-content-center mb-4 site-logo\">\r\n                <!-- <img class=\"auditour-image\" src=\"../../../assets/logo.svg\" style=\"width: 60.3%;\" alt=\"\" /> -->\r\n            </div>\r\n\r\n            <form class=\"\" [formGroup]=\"form\">\r\n                <div class=\" bussinesemails-login\">\r\n                    <lib-inputbox-text [label]=\"'Bussiness Email'\" [type]=\"'email'\" [required]=\"true\"\r\n                        [placeholder]=\"'Bussiness Email'\" [control]=\"form.get('email')\"\r\n                        [required]=\"true\"></lib-inputbox-text>\r\n                </div>\r\n                <div class=\" passwoard-login\">\r\n                    <lib-password [placeholder]=\"'password'\" [label]=\"'Password'\" [control]=\"form.get('password')\"></lib-password>\r\n                </div>\r\n\r\n                <div class=\" company-code-login\">\r\n                    <lib-inputbox-text [label]=\"'Company Code'\" [placeholder]=\"'Enter Company Code'\" [control]=\"form.get('tenant')\" [type]=\"'text'\"\r\n                        [required]=\"true\"></lib-inputbox-text>\r\n                </div>\r\n                <div class=\"d-flex justify-content-end mb-4\">\r\n                    <a class=\"login-forget-text\" (click)=\"forgetPassword()\">Forgot password?</a>\r\n                </div>\r\n                <div class=\"mb-5 justify-content-center\">\r\n                    <lib-button class=\"button-alinments\" [name]=\"'Login'\" (click)=\"userLogin()\"></lib-button>\r\n                </div>\r\n                <div class=\"justify-content-center allright-reserved\">\r\n                    <hr style=\"border-top: solid #cdd3dc !important\" />\r\n                    <p class=\"allright-reserved\" class=\"mb-0\">\r\n                        © Auditour. All rights reserved.\r\n                    </p>\r\n                    <span class=\"privacy-policy\">Privacy Policy</span>\r\n                </div>\r\n            </form>\r\n        </div>\r\n    </div>\r\n</div>","import { Directive, ElementRef, Input, Renderer2, AfterViewInit } from '@angular/core';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\n@Directive({\r\n  selector: '[libToolTip]',\r\n//   standalone: true,\r\n//   imports: [TooltipModule],\r\n\r\n})\r\nexport class PrimengTooltipDirective implements AfterViewInit {\r\n  @Input('libToolTip') tooltipText!: string; // Tooltip text\r\n  @Input() libTooltipPosition: 'top' | 'bottom' | 'left' | 'right' = 'top'; // Tooltip position\r\n  @Input() libTooltipDisabled = false; // Enable/disable tooltip\r\n\r\n  constructor(private el: ElementRef, private renderer: Renderer2) {}\r\n\r\n  ngAfterViewInit(): void {\r\n    if (!this.libTooltipDisabled) {\r\n      this.renderer.setAttribute(this.el.nativeElement, 'pTooltip', this.tooltipText);\r\n      this.renderer.setAttribute(this.el.nativeElement, 'tooltipPosition', this.libTooltipPosition);\r\n    }\r\n  }\r\n}","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { Table } from 'primeng/table';\r\n\r\n@Component({\r\n  selector: 'lib-fieldlevelfilter',\r\n  templateUrl: './fieldlevelfilter.component.html',\r\n  styleUrls: ['./fieldlevelfilter.component.scss']\r\n})\r\nexport class FieldlevelfilterComponent {\r\n  @Input() products: any[] = [];\r\n  @Input() filteredData: any[] = [];\r\n  @Input() filters: any[] = [];\r\n  @Input() dropdownFilterscol: any[] = [];\r\n  @Input() searchFilterscol: any[] = [];\r\n  @Input() totalColumns: any[] = [];\r\n  @Input() needsDuplicateData: boolean = false;\r\n  // @Input() duplucateData: any[] = [];\r\n  @Output() filterUpdated = new EventEmitter<any[]>();\r\n\r\n  form!: FormGroup;\r\n  relatedDataDropdown: any[] = [];\r\n  operatorOptions: any[] = [];\r\n  stringOperators = [\r\n    { label: 'Contains', value: 'contains' },\r\n    { label: 'Does Not Contain', value: 'not_contains' },\r\n    { label: 'Starts With', value: 'startswith' },\r\n    { label: 'Ends With', value: 'endswith' },\r\n  ];\r\n  datefilterValue = 'monthly';\r\n  numberOperators = [\r\n    { label: 'Greater Than', value: 'greater_than' },\r\n    { label: 'Less Than', value: 'less_than' },\r\n    { label: 'Equals', value: 'equals' },\r\n    { label: 'Not Equal', value: 'not_equal' },\r\n    { label: 'Greater Than or Equal', value: 'greater_than_equal' },\r\n    { label: 'Less Than or Equal', value: 'less_than_equal' },\r\n  ];\r\n  constructor(private fb: FormBuilder) { }\r\n  ngOnInit(): void {\r\n    this.form = this.fb.group({\r\n      // option: ['created'],\r\n      // selectedOptionalColumns: [[]],\r\n      // rangeDates: [[]],\r\n      standardColumn: [null, Validators.required],\r\n      standardValues: [[], Validators.required],\r\n      comparisonColumn: [null],\r\n      comparisonOperator: [null],\r\n      comparisonValue: [null],\r\n    });\r\n  }\r\n  updateRelatedDropdown() {\r\n    const column = this.form.get('standardColumn')?.value;\r\n    if (column) {\r\n      const uniqueValues = [\r\n        ...new Set(\r\n          this.products\r\n            .map((item: any) => {\r\n              const value = column\r\n                .split('.')\r\n                .reduce((obj: any, key: string) => obj && obj[key], item);\r\n\r\n              if (Array.isArray(value)) {\r\n                return value; // keep arrays for flattening\r\n              }\r\n\r\n              return value !== null && typeof value !== 'object' ? value : undefined;\r\n            })\r\n            .flat()\r\n            .filter((value) => value !== undefined)\r\n        ),\r\n      ];\r\n\r\n      this.relatedDataDropdown = uniqueValues.map((value) => ({\r\n        label: String(value),\r\n        value,\r\n      }));\r\n\r\n      const existingFilter = this.filters.find(\r\n        (filter) => filter.selectedColumn === column && !filter.isComparison\r\n      );\r\n\r\n      if (existingFilter) {\r\n        this.form\r\n          .get('standardValues')\r\n          ?.setValue(existingFilter.selectedValues);\r\n      } else {\r\n        this.form.get('standardValues')?.setValue([]);\r\n      }\r\n    }\r\n  }\r\n\r\n  onComparisonColumnChange() {\r\n    const column = this.form.get('comparisonColumn')?.value;\r\n    const selectedColumn = this.searchFilterscol.find(\r\n      (col: any) => col.field === column\r\n    );\r\n\r\n    if (selectedColumn) {\r\n      this.operatorOptions =\r\n        selectedColumn.type === 'number'\r\n          ? this.numberOperators\r\n          : this.stringOperators;\r\n\r\n      const existingFilter = this.filters.find(\r\n        (filter) => filter.selectedColumn === column && filter.isComparison\r\n      );\r\n\r\n      if (existingFilter) {\r\n        this.form\r\n          .get('comparisonOperator')\r\n          ?.setValue(existingFilter.selectedOperator);\r\n        this.form\r\n          .get('comparisonValue')\r\n          ?.setValue(existingFilter.comparisonValue);\r\n      } else {\r\n        this.form.get('comparisonOperator')?.reset();\r\n        this.form.get('comparisonValue')?.reset();\r\n      }\r\n    }\r\n  }\r\n\r\n  applyStandardFilter() {\r\n    const column = this.form.get('standardColumn')?.value;\r\n    const values = this.form.get('standardValues')?.value;\r\n\r\n    if (column && values?.length) {\r\n      // Check if a filter for the selected column already exists\r\n      const existingFilterIndex = this.filters.findIndex(\r\n        (filter) => filter.selectedColumn === column && !filter.isComparison\r\n      );\r\n      if (existingFilterIndex !== -1) {\r\n        // Update the existing filter's selected values\r\n        this.filters[existingFilterIndex].selectedValues = values;\r\n      } else {\r\n        // Add a new filter\r\n        this.filters.push({\r\n          selectedColumn: column,\r\n          selectedValues: values,\r\n          isComparison: false,\r\n        });\r\n\r\n      }\r\n\r\n      this.applyFilters();\r\n      this.form.get('standardColumn')?.reset();\r\n      this.form.get('standardValues')?.reset();\r\n    }\r\n  }\r\n\r\n  applyComparisonFilter() {\r\n    const column = this.form.get('comparisonColumn')?.value;\r\n    const operator = this.form.get('comparisonOperator')?.value;\r\n    const value = this.form.get('comparisonValue')?.value;\r\n\r\n    if (column && operator && value !== null) {\r\n      // Check if a comparison filter for the selected column already exists\r\n      const existingFilterIndex = this.filters.findIndex(\r\n        (filter) => filter.selectedColumn === column && filter.isComparison\r\n      );\r\n\r\n      if (existingFilterIndex !== -1) {\r\n        // Update the existing filter's operator and value\r\n        this.filters[existingFilterIndex].selectedOperator = operator;\r\n        this.filters[existingFilterIndex].comparisonValue = value;\r\n      } else {\r\n        // Add a new comparison filter\r\n        this.filters.push({\r\n          selectedColumn: column,\r\n          selectedOperator: operator,\r\n          comparisonValue: value,\r\n          isComparison: true,\r\n        });\r\n      }\r\n\r\n      // Reapply filters to update the UI\r\n      this.applyFilters();\r\n\r\n      // Reset the form fields\r\n      this.form.get('comparisonColumn')?.reset();\r\n      this.form.get('comparisonOperator')?.reset();\r\n      this.form.get('comparisonValue')?.reset();\r\n    }\r\n  }\r\n\r\n  applyFilters() {\r\n  this.filteredData = this.products.filter((item) => {\r\n  return this.filters.every((filter) => {\r\n    const columnValue = item[filter.selectedColumn];\r\n\r\n    if (!filter.isComparison) {\r\n      if (Array.isArray(columnValue)) {\r\n        return columnValue.some((val: any) =>\r\n          filter.selectedValues.includes(val)\r\n        );\r\n      } else {\r\n        return filter.selectedValues.includes(columnValue);\r\n      }\r\n    }\r\n        switch (filter.selectedOperator) {\r\n          case 'greater_than':\r\n            return columnValue > filter.comparisonValue;\r\n          case 'less_than':\r\n            return columnValue < filter.comparisonValue;\r\n          case 'equals':\r\n            return columnValue == filter.comparisonValue;\r\n          case 'not_equal':\r\n            return columnValue != filter.comparisonValue;\r\n          case 'greater_than_equal':\r\n            return columnValue >= filter.comparisonValue;\r\n          case 'less_than_equal':\r\n            return columnValue <= filter.comparisonValue;\r\n          case 'contains':\r\n            return (\r\n              typeof columnValue === 'string' &&\r\n              columnValue\r\n                .toLowerCase()\r\n                .includes(filter.comparisonValue.toLowerCase())\r\n            );\r\n          case 'not_contains':\r\n            return (\r\n              typeof columnValue === 'string' &&\r\n              !columnValue\r\n                .toLowerCase()\r\n                .includes(filter.comparisonValue.toLowerCase())\r\n            );\r\n          case 'startswith':\r\n            return (\r\n              typeof columnValue === 'string' &&\r\n              columnValue\r\n                .toLowerCase()\r\n                .startsWith(filter.comparisonValue.toLowerCase())\r\n            );\r\n          case 'endswith':\r\n            return (\r\n              typeof columnValue === 'string' &&\r\n              columnValue\r\n                .toLowerCase()\r\n                .endsWith(filter.comparisonValue.toLowerCase())\r\n            );\r\n          default:\r\n            return true;\r\n        }\r\n      });\r\n    });\r\n\r\n    this.filterUpdated.emit(this.filteredData);\r\n  }\r\n\r\n  // removeFilter(index: number) {\r\n  //   this.filters.splice(index, 1);\r\n  //   this.applyFilters();\r\n  // }\r\n  removeFilter(index: number) {\r\n    // Remove the selected filter\r\n    this.filters.splice(index, 1);\r\n\r\n    // Reapply filters to update filteredData\r\n    this.applyFilters();\r\n  }\r\n\r\n  getColumnLabel(columnValue: string): string {\r\n    const column = this.totalColumns.find(\r\n      (opt: any) => opt.field === columnValue\r\n    );\r\n    return column ? column.header : '';\r\n  }\r\n  clearAll() {\r\n    this.form.reset();\r\n\r\n    // Disable fields that depend on selections\r\n    // this.form.get('standardValues')?.disable();\r\n    // this.form.get('comparisonOperator')?.disable();\r\n    // this.form.get('comparisonValue')?.disable();\r\n\r\n    // Clear the applied filters\r\n    this.filters = [];\r\n\r\n    // Reapply filters (show full data)\r\n    this.applyFilters();\r\n  }\r\n}\r\n","<div class=\"filter-main\">\r\n  <div\r\n    class=\"selected-filters\"\r\n    *ngIf=\"filters?.length\"\r\n    (click)=\"$event.stopPropagation()\"\r\n  >\r\n    <div class=\"bg-filter\">\r\n      <div\r\n        class=\"bg-childs selected-filter-list\"\r\n        *ngFor=\"let filter of filters; let i = index\"\r\n      >\r\n        <span class=\"name-1\" *ngIf=\"!filter.isComparison\">\r\n          {{ getColumnLabel(filter.selectedColumn) }}&nbsp;:\r\n          {{ filter.selectedValues[0]| titlecase }}\r\n          <span class=\"name-2\" *ngIf=\"filter.selectedValues.length > 1\">\r\n            +{{ filter.selectedValues.length - 1 }}</span\r\n          >\r\n        </span>\r\n        <span class=\"name-3\" *ngIf=\"filter.isComparison\">\r\n          {{ getColumnLabel(filter.selectedColumn) }}\r\n          {{ filter.selectedOperator | titlecase }}\r\n          {{ filter.comparisonValue }}\r\n        </span>\r\n        <div class=\"filter-close-icon\">\r\n          <button (click)=\"removeFilter(i)\">\r\n            x\r\n            <!-- <button (click)=\"removeItem(i)\"> -->\r\n            <i class=\"hover-close\"></i>\r\n          </button>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n  <lib-button-with-icon class=\"filter-button\" [matMenuTriggerFor]=\"menu_reportfilter\"></lib-button-with-icon>\r\n  <!-- <lib-button-with-icon class=\"filter-button\"></lib-button-with-icon> -->\r\n  <form [formGroup]=\"form\">\r\n    <mat-menu #menu_reportfilter=\"matMenu\" [class]=\"'custom-filter'\">\r\n    <div class=\"filter-container\">\r\n      <div class=\"standard-filter\" (click)=\"$event.stopPropagation()\">\r\n        <p class=\"bodytext add-bold-text font-medium\">Dropdown Filters</p>\r\n        <div class=\"dropdown-filter-bottom-gap\">\r\n          <p-dropdown\r\n            [options]=\"dropdownFilterscol\"\r\n            formControlName=\"standardColumn\"\r\n            placeholder=\"Select Column\"\r\n            optionLabel=\"header\"\r\n            optionValue=\"field\"\r\n            (onChange)=\"updateRelatedDropdown()\"\r\n            [showClear]=\"true\"\r\n          ></p-dropdown>\r\n        </div>\r\n        <div class=\"dropdown-filter-bottom-gap1\">\r\n          <p-multiSelect\r\n            [options]=\"relatedDataDropdown\"\r\n            formControlName=\"standardValues\"\r\n            placeholder=\"Select Values\"\r\n            [showClear]=\"true\"\r\n          ></p-multiSelect>\r\n        </div>\r\n        <div>\r\n          <lib-button\r\n            (click)=\"applyStandardFilter()\"\r\n            [name]=\"'APPLY'\"\r\n          ></lib-button>\r\n          <!-- <button (click)=\"clearAll()\">Clear</button> -->\r\n        </div>\r\n      </div>\r\n\r\n      <div class=\"comparison-filter\" (click)=\"$event.stopPropagation()\">\r\n        <p class=\"bodytext add-bold-text\">Search Filters</p>\r\n        <div class=\"dropdown-filter-bottom-gap\">\r\n          <p-dropdown\r\n            [options]=\"searchFilterscol\"\r\n            formControlName=\"comparisonColumn\"\r\n            placeholder=\"Select Column for Comparison\"\r\n            optionLabel=\"header\"\r\n            optionValue=\"field\"\r\n            (onChange)=\"onComparisonColumnChange()\"\r\n            [showClear]=\"true\"\r\n          ></p-dropdown>\r\n        </div>\r\n        <div class=\"dropdown-filter-bottom-gap1\">\r\n          <p-dropdown\r\n            [options]=\"operatorOptions\"\r\n            formControlName=\"comparisonOperator\"\r\n            placeholder=\"Select Operator\"\r\n            [showClear]=\"true\"\r\n          ></p-dropdown>\r\n        </div>\r\n\r\n        <input\r\n          class=\"custom-input\"\r\n          pInputText\r\n          *ngIf=\"form.get('comparisonOperator')?.value\"\r\n          formControlName=\"comparisonValue\"\r\n          placeholder=\"Enter Value\"\r\n        />\r\n        <lib-button\r\n          [name]=\"'APPLY'\"\r\n          (click)=\"applyComparisonFilter()\"\r\n        ></lib-button>\r\n      </div>\r\n    </div>\r\n    </mat-menu>\r\n  </form>\r\n</div>","import { Component, EventEmitter, Input, Output, SimpleChanges } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'lib-customfilters',\r\n  templateUrl: './customfilters.component.html',\r\n  styleUrls: ['./customfilters.component.scss']\r\n})\r\nexport class CustomfiltersComponent {\r\n  form!: FormGroup;\r\n  @Input() reportsLabel: any = '';\r\n  @Input() ReportPeriodPlaceholder: any = '';\r\n  @Input() dateRangePlaceholder1: any = '';\r\n  @Input() dateRangePlaceholder2: any = '';\r\n  @Input() startdatelabel: any = '';\r\n  @Input() enddatelabel: any = '';\r\n  @Input() RadioButton1: any = '';\r\n  @Input() RadioButton2: any = '';\r\n  @Input() placeholder: string = '';\r\n  @Input() ReportByLabel: string = '';\r\n  @Input() custodateLabel: string = '';\r\n  @Input() selectedDateFilter: Boolean = false;\r\n  @Input() dateOptions: any[] = [];\r\n  @Output() selectedvalue = new EventEmitter<any>();\r\n  radioDisabled: boolean = false;\r\n  @Output() optionChangedRadio = new EventEmitter<string>();\r\n  nameofAppliedfilter: string = 'This Month';\r\n  appliedFilterLabel!: string;\r\n// @Input() placeholder:string='';\r\n\r\n  constructor(private fb: FormBuilder) { }\r\n\r\n  selectperiod: any = 'monthly'\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n\r\n\r\n    if (changes['dateOptions'] && changes['dateOptions'].currentValue) {\r\n      this.form = this.fb.group({\r\n        // selectperiod: ['monthly'], // Default value\r\n        startDate: [null],\r\n        endDate: [null],\r\n        option: ['created']\r\n      });\r\n    }\r\n  }\r\n  \r\n\r\n  handleDropdownChange(event: any) {\r\n    if (event.value?.value !== 'Custom') {\r\n      if (\r\n        event.value?.value !== 'last_7_days' &&\r\n        event.value?.value !== 'annually' &&\r\n        event.value?.value !== 'half_yearly' &&\r\n        event.value?.value !== 'quarterly' &&\r\n        event.value?.value !== 'monthly' &&\r\n        event.value?.value !== 'weekly'\r\n      ) {\r\n        this.selectedDateFilter = false;\r\n        this.radioDisabled = true;\r\n        this.selectedvalue.emit(event?.value?.value);\r\n      } else {\r\n        this.selectedDateFilter = false;\r\n        this.radioDisabled = false;\r\n        this.selectedvalue.emit(event?.value?.value);\r\n\r\n      }\r\n    } else {\r\n      this.selectedDateFilter = true;\r\n      this.radioDisabled = false;\r\n    }\r\n  }\r\n\r\n  onStartDateSelected(event: any): void {\r\n    this.updateSelectedDates();\r\n  }\r\n\r\n  onEndDateSelected(event: any): void {\r\n    this.updateSelectedDates();\r\n  }\r\n\r\n  private updateSelectedDates(): void {\r\n    const startDate = this.form.get('startDate')?.value;\r\n    const endDate = this.form.get('endDate')?.value;\r\n\r\n    if (startDate && endDate) {\r\n      this.selectedvalue.emit({\r\n        filter_type: 'Custom',\r\n        start_date: this.formatDateToLocale(startDate),\r\n        end_date: this.formatDateToLocale(endDate),\r\n      });\r\n    }\r\n  }\r\n\r\n  private formatDateToLocale(date: Date): string {\r\n    return date.toLocaleDateString('en-CA'); // 'en-CA' outputs date as 'YYYY-MM-DD'\r\n  }\r\n\r\n    onRadioChange(event: any): void {\r\n    if (!this.radioDisabled) {\r\n      this.optionChangedRadio.emit(event);\r\n    }\r\n  }\r\n}\r\n","<form [formGroup]=\"form\">\r\n  <div class=\"dflex-customfilters\">\r\n    <div>\r\n      <p class=\"bodytext\">{{ custodateLabel }}</p>\r\n      <p-dropdown\r\n        [options]=\"dateOptions\"\r\n        placeholder=\"Select Option\"\r\n        optionLabel=\"label\"\r\n        [(ngModel)]=\"selectperiod\"\r\n        (onChange)=\"handleDropdownChange($event)\"\r\n      >\r\n      </p-dropdown>\r\n    </div>\r\n    <div *ngIf=\"selectedDateFilter\">\r\n      <div class=\"to-make-row-datepicker\">\r\n        <div>\r\n          <lib-date-picker\r\n            [control]=\"form.get('startDate')\"\r\n            [label]=\"startdatelabel\"\r\n            (onSelect)=\"onStartDateSelected($event)\"\r\n            [placeholder]=\"dateRangePlaceholder1\"\r\n          >\r\n            ></lib-date-picker\r\n          >\r\n        </div>\r\n        <div>\r\n          <lib-date-picker\r\n            [control]=\"form.get('endDate')\"\r\n            [label]=\"enddatelabel\"\r\n            (onSelect)=\"onEndDateSelected($event)\"\r\n            [placeholder]=\"dateRangePlaceholder2\"\r\n          ></lib-date-picker>\r\n        </div>\r\n      </div>\r\n    </div>\r\n    <div class=\"reportby-radiooptions-main\">\r\n      <p class=\"bodytext\">{{ ReportByLabel }}</p>\r\n      <div class=\"to-set-height-radio\">\r\n      <label>\r\n        <p-radioButton\r\n          formControlName=\"option\"\r\n          value=\"created\"\r\n          (click)=\"onRadioChange('created')\"\r\n          [disabled]=\"radioDisabled\"\r\n        />\r\n        <span class=\"bodytext\">&nbsp;&nbsp;{{ RadioButton1 }}</span> </label\r\n      >&nbsp;&nbsp;\r\n      <label>\r\n        <p-radioButton\r\n          formControlName=\"option\"\r\n          value=\"updated\"\r\n          (click)=\"onRadioChange('updated')\"\r\n          [disabled]=\"radioDisabled\"\r\n        />\r\n        <span class=\"bodytext\">&nbsp;&nbsp; {{ RadioButton2 }}</span>\r\n      </label>\r\n    </div>\r\n    </div>\r\n  </div>\r\n</form>","import { Component, Input, ViewChild } from '@angular/core';\r\nimport { Table } from 'primeng/table';\r\nimport { saveAs } from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\nimport { CommonService } from '../../services/common/common.service';\r\ninterface Column {\r\n  field: string;\r\n  header: string;\r\n}\r\n@Component({\r\n  selector: 'lib-reportstable',\r\n  templateUrl: './reportstable.component.html',\r\n  styleUrls: ['./reportstable.component.scss']\r\n})\r\n\r\nexport class ReportstableComponent {\r\n  @Input() selectedColumns: any[] = [];\r\n  @Input() filteredData: any[] = [];\r\n  @Input() defaultCols: any[] = [];\r\n  @Input() nameofReport!: string;\r\n  @Input() currentUserData!: string;\r\n  @Input() formattedDate: any[] = [];\r\n\r\n  constructor(private commonService: CommonService) { }\r\n  @ViewChild('dt') dt!: Table;\r\n  getCellStyle(column: any, value: any): { [key: string]: string } {\r\n    const styles: { [key: string]: string } = {};\r\n\r\n\r\n    const centerAlignedColumns = ['owner', 'current_risk_score', 'inherent_risk', 'residual_risk', 'control_effectiveness']; // Replace with your column fields\r\n    if (centerAlignedColumns.includes(column.field)) {\r\n      Object.assign(styles, {\r\n        'text-align': 'center',\r\n      });\r\n    }\r\n\r\n    return styles;\r\n  }\r\n  getFormattedOwner(value: string): string {\r\n    if (value) {\r\n      return value.substring(0, 2).toUpperCase(); // Extract first 2 characters and convert to uppercase\r\n    }\r\n    return '';\r\n  }\r\n\r\n  exportCSV() {\r\n    this.dt?.exportCSV();\r\n  }\r\n\r\n  exportExcel() {\r\n    const tableData = this.dt.filteredValue || this.dt.value;\r\n\r\n    if (!tableData || tableData.length === 0) {\r\n      return;\r\n    }\r\n\r\n    const exportData = tableData.map((row) => {\r\n      const selectedColumns = this.dt.columns;\r\n      const exportRow: any = {};\r\n      this.selectedColumns.forEach((col: any) => {\r\n        exportRow[col.header || col.field] = row[col.field];\r\n      });\r\n      return exportRow;\r\n    });\r\n\r\n    const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet(exportData);\r\n    const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n    XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');\r\n    const excelBuffer: any = XLSX.write(wb, {\r\n      bookType: 'xlsx',\r\n      type: 'array',\r\n    });\r\n    const excelBlob: Blob = new Blob([excelBuffer], {\r\n      type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n    });\r\n    const fileName = this.dt.exportFilename || 'exported-data.xlsx';\r\n    saveAs(excelBlob, fileName);\r\n  }\r\n\r\n  processBase64(rawBase64: string) {\r\n    // const decoded = this.commonService.safeBase64Decode(rawBase64) ? this.commonService.safeBase64Decode(rawBase64) : '-';\r\n    const validated = this.commonService.patternValidationView(rawBase64)\r\n    return Array.isArray(validated) ? validated : [validated];\r\n  }\r\n\r\n}\r\n","<p-table\r\n  #dt\r\n  [columns]=\"selectedColumns\"\r\n  [value]=\"filteredData\"\r\n  [scrollable]=\"true\"\r\n  scrollHeight=\"67vh\"\r\n  [tableStyle]=\"{ 'min-width': '50vw' }\"\r\n  styleClass=\"p-datatable-sm\"\r\n  [exportFilename]=\"\r\n    nameofReport + '-' + (currentUserData | titlecase) + '-' + formattedDate\r\n  \"\r\n>\r\n  <ng-template pTemplate=\"header\" let-columns>\r\n    <tr>\r\n      <th *ngFor=\"let col of columns\" [style.min-width]=\"col.minWidth\">\r\n        {{ col.header }}\r\n      </th>\r\n    </tr>\r\n  </ng-template>\r\n\r\n  <ng-template pTemplate=\"body\" let-product let-columns=\"columns\">\r\n    <tr>\r\n      <td\r\n        *ngFor=\"let col of columns\"\r\n        [ngStyle]=\"getCellStyle(col, product[col.field])\"\r\n      >\r\n        <span\r\n          *ngIf=\"\r\n            col.field !== 'owner' &&\r\n            col.field !== 'impact_description' &&\r\n            col.field !== 'justification'\r\n          \"\r\n        >\r\n          {{ product[col.field] }}\r\n        </span>\r\n        <span *ngIf=\"col.field === 'owner'\" class=\"circle-owner\">\r\n          {{ getFormattedOwner(product[col.field]) }}\r\n        </span>\r\n        <span *ngIf=\"col.field === 'impact_description'\">\r\n          {{ processBase64(product[col.field]) }}\r\n        </span>\r\n        <span *ngIf=\"col.field === 'justification'\">\r\n          {{ processBase64(product[col.field]) }}\r\n        </span>\r\n      </td>\r\n    </tr>\r\n  </ng-template>\r\n\r\n  <ng-template pTemplate=\"emptymessage\">\r\n    <tr>\r\n      <td [attr.colspan]=\"defaultCols.length\" style=\"text-align: center\">\r\n        No records found\r\n      </td>\r\n    </tr>\r\n  </ng-template>\r\n</p-table>\r\n","import { Injectable } from '@angular/core';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog';\r\n\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class Auditour1PopupService {\r\n\r\n  constructor(public dialogService: DialogService, private confirmationService: ConfirmationService) { }\r\n\r\n  ref: DynamicDialogRef | undefined;\r\n\r\n  showLargeModal(dynamiccomponent: any, data: any = '') {\r\n    this.ref = this.dialogService.open(dynamiccomponent, {\r\n      header: 'Choose a Product',\r\n      width: '83.438rem',\r\n      height: '35rem',\r\n      // contentStyle: {\"max-height\": \"500px\", \"overflow\": \"auto\"},\r\n      baseZIndex: 10000,\r\n      maximizable: true,\r\n      data: data ? data : ''\r\n    });\r\n\r\n    // this.ref.onClose.subscribe((product:any) =>{\r\n    //     if (product) {\r\n    //         this.messageService.add({severity:'info', summary: 'Product Selected', detail: product.name});\r\n    //     }\r\n    // });\r\n  }\r\n\r\n  showGenericModal(dynamiccomponent: any, title: string = '', data: any = '') {\r\n    this.ref = this.dialogService.open(dynamiccomponent, {\r\n      header: title,\r\n      width: '36.25rem',\r\n      style: {\r\n        'minHeight': '25rem'\r\n      },\r\n      contentStyle: { 'color': '#000' },\r\n      baseZIndex: 10000,\r\n      maximizable: true,\r\n      data: data ? data : '',\r\n      styleClass: 'sub-heading'\r\n    });\r\n    return this.ref;\r\n  }\r\n\r\n  showM1Modal(dynamiccomponent: any, title: string = \"\", data: any = '') {\r\n    this.ref = this.dialogService.open(dynamiccomponent, {\r\n      header: title,\r\n      width: '36.5rem',\r\n      height: '19.375rem',\r\n      baseZIndex: 10000,\r\n      maximizable: true,\r\n      data: data ? data : ''\r\n    });\r\n    return this.ref;\r\n  }\r\n\r\n  showM2Modal(dynamiccomponent: any, title: string = \"\", data: any = \"\") {\r\n    this.ref = this.dialogService.open(dynamiccomponent, {\r\n      header: title,\r\n      width: '36.5rem',\r\n      height: '22.313rem',\r\n      maximizable: true,\r\n      data: data ? data : '',\r\n      // contentStyle: {\"max-height\": \"500px\", \"overflow\": \"auto\"},\r\n      baseZIndex: 10000\r\n    });\r\n\r\n    return this.ref;\r\n\r\n    //   this.ref.onClose.subscribe((product:any) =>{\r\n    //       if (product) {\r\n    //           this.messageService.add({severity:'info', summary: 'Product Selected', detail: product.name});\r\n    //       }\r\n    //   });\r\n  }\r\n\r\n  showM3Modal(dynamiccomponent: any, title: string = \"\", data: any = \"\") {\r\n    this.ref = this.dialogService.open(dynamiccomponent, {\r\n      header: title,\r\n      width: '50.25rem',\r\n      height: '33.313rem',\r\n      maximizable: true,\r\n      data: data ? data : '',\r\n\r\n      // contentStyle: {\"max-height\": \"500px\", \"overflow\": \"auto\"},\r\n      baseZIndex: 10000\r\n    });\r\n    return this.ref;\r\n\r\n    //   this.ref.onClose.subscribe((product:any) =>{\r\n    //       if (product) {\r\n    //           this.messageService.add({severity:'info', summary: 'Product Selected', detail: product.name});\r\n    //       }\r\n    //   });\r\n  }\r\n\r\n  showM4Modal(dynamiccomponent: any, title: string = \"\", data: any = \"\") {\r\n    this.ref = this.dialogService.open(dynamiccomponent, {\r\n      header: title,\r\n      width: '60.625rem',\r\n      height: '40rem',\r\n      maximizable: true,\r\n      // contentStyle: {\"max-height\": \"500px\", \"overflow\": \"auto\"},\r\n      baseZIndex: 10000,\r\n      data: data ? data : '',\r\n      styleClass: 'heading',\r\n    });\r\n    return this.ref;\r\n\r\n    //   this.ref.onClose.subscribe((product:any) =>{\r\n    //       if (product) {\r\n    //           this.messageService.add({severity:'info', summary: 'Product Selected', detail: product.name});\r\n    //       }\r\n    //   });\r\n  }\r\n\r\n  showSmallModal(dynamiccomponent: any, title: string = \"\", data: any = \"\") {\r\n    this.ref = this.dialogService.open(dynamiccomponent, {\r\n      header: title,\r\n      width: '25rem',\r\n      height: '15.625rem',\r\n      maximizable: true,\r\n      data: data ? data : '',\r\n      // contentStyle: {\"max-height\": \"500px\", \"overflow\": \"auto\"},\r\n      baseZIndex: 10000\r\n    });\r\n    return this.ref;\r\n    //   this.ref.onClose.subscribe((product:any) =>{\r\n    //       if (product) {\r\n    //           this.messageService.add({severity:'info', summary: 'Product Selected', detail: product.name});\r\n    //       }\r\n    //   });\r\n  }\r\n\r\n  confirmModelWithFlag(message: string, header: string = \"Confirmation\"): Promise<boolean> {\r\n    return new Promise((resolve) => {\r\n      this.confirmationService.confirm({\r\n        message: message,\r\n        header: header,\r\n        acceptIcon: \"none\",\r\n        rejectIcon: \"none\",\r\n        rejectButtonStyleClass: \"p-button-text\",\r\n        accept: () => {\r\n          resolve(true); // Resolve true on accept\r\n        },\r\n        reject: () => {\r\n          resolve(false); // Resolve false on reject\r\n        }\r\n      });\r\n    });\r\n  }\r\n  openModelWithoutParams(dynamiccomponent: any, title: string = \"\", data: any = \"\",width:string, height:string) {\r\n    this.ref = this.dialogService.open(dynamiccomponent, {\r\n      header: title,\r\n      width: width,\r\n      height: height,\r\n      maximizable: true,\r\n      data: data ? data : '',\r\n      // contentStyle: {\"max-height\": \"500px\", \"overflow\": \"auto\"},\r\n      baseZIndex: 10000\r\n    });\r\n    return this.ref;\r\n    //   this.ref.onClose.subscribe((product:any) =>{\r\n    //       if (product) {\r\n    //           this.messageService.add({severity:'info', summary: 'Product Selected', detail: product.name});\r\n    //       }\r\n    //   });\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    if (this.ref) {\r\n      this.ref.close();\r\n    }\r\n  }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-optional-columns',\r\n  templateUrl: './optional-columns.component.html',\r\n  styleUrls: ['./optional-columns.component.scss']\r\n})\r\nexport class OptionalColumnsComponent {\r\n  @Input() optionalCols: any[] = [];\r\n  @Output() columnsChanged = new EventEmitter<string[]>();\r\n  selectedColumns: any;\r\n \r\n  onColumnsChange() {\r\n    this.columnsChanged.emit(this.selectedColumns);\r\n  }\r\n}\r\n","<div>\r\n    <p-multiSelect display=\"chip\" [options]=\"optionalCols\" [(ngModel)]=\"selectedColumns\" optionLabel=\"header\"\r\n        [style]=\"{ 'min-width': '200px' }\" placeholder=\"Columns Options\" [maxSelectedLabels]=\"2\"\r\n        (ngModelChange)=\"onColumnsChange()\"></p-multiSelect>\r\n</div>","import { Component, ElementRef, EventEmitter, Inject, Input, Output, ViewChild } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { CommonService, TOASTER_ERROR } from '../../../services/common/common.service';\r\n\r\n@Component({\r\n  selector: 'lib-attachmentwithpopup',\r\n  templateUrl: './attachmentwithpopup.component.html',\r\n  styleUrls: ['./attachmentwithpopup.component.scss']\r\n})\r\nexport class AttachmentwithpopupComponent {\r\n  file: any = '';\r\n  comment: any = '';\r\n  block: boolean = false;\r\n  isDisabled: boolean = false;\r\n  myFiles: any = [];\r\n  disableSave: boolean = false;\r\n  loading: boolean = false;\r\n  filesToUpload: any; \r\n  uploadfile: any = null; \r\n  uploaded_files: any = []; \r\n  uploadedfilesizes: any;\r\n  filesize: any = '';\r\n  attachmentId: any = '';\r\n  attachmentForm!: FormGroup;\r\n  form!: FormGroup;\r\n  comments?: any;\r\n  uploadedFileSizes!: string;\r\n  @ViewChild('fileSelect') fileInput!: ElementRef;\r\n  @Input() labelAttachments?: string = 'Add Attachments';\r\n  @Output() selectedFileData = new EventEmitter<any>();\r\n  selectedFile: File | null = null;\r\n  addSaveDisability: boolean = false;\r\n\r\n  constructor(\r\n    public dialogRef: MatDialogRef<AttachmentwithpopupComponent>,\r\n    @Inject(MAT_DIALOG_DATA) public data: any,\r\n    private commonService: CommonService\r\n  ) {}\r\n  onFileSelect(fileInput: any): void {\r\n    const input = fileInput.target as HTMLInputElement;\r\n\r\n    if (input.files && input.files.length > 0) {\r\n      this.selectedFile = input.files[0];\r\n    } else {\r\n      this.selectedFile = null;\r\n    }\r\n\r\n    this.file = null;\r\n    this.filesToUpload = [];\r\n    this.addSaveDisability = true;\r\n\r\n    this.filesToUpload = fileInput.target.files as Array<File>;\r\n    this.uploadedFileSizes = this.filesToUpload[0]?.size;\r\n    const files: Array<File> = this.filesToUpload;\r\n    const extension = files[0].name.split('.').pop();\r\n    if (this.commonService.checkFileExtension(extension as string, true)) {\r\n      if (this.uploadedFileSizes > '2097152') {\r\n        this.filesToUpload = [];\r\n        this.addSaveDisability = false;\r\n\r\n        this.commonService.showToastr(\r\n          TOASTER_ERROR,\r\n          'File Size is greater that 2MB, It should be less than 2MB'\r\n        );\r\n      } else if (this.uploadedFileSizes < '2048') {\r\n        this.filesToUpload = [];\r\n        this.addSaveDisability = false;\r\n\r\n        this.commonService.showToastr(\r\n          TOASTER_ERROR,\r\n          'File size is less than 2KB. It should be greater than 2KB.'\r\n        );\r\n      }\r\n      this.uploaded_files = this.filesToUpload;\r\n    } else {\r\n      this.filesToUpload = [];\r\n      this.addSaveDisability = false;\r\n\r\n      this.commonService.showToastr(\r\n        TOASTER_ERROR,\r\n        'Allowed Only docx, pdf, csv, xlsx,Png, xls, Jpeg, jpg '\r\n      );\r\n    }\r\n  }\r\n  removeFile() {\r\n    this.selectedFile = null; \r\n    this.fileInput.nativeElement.value = ''; \r\n  }\r\n\r\n  upload() {\r\n    this.dialogRef.close(this.uploaded_files);\r\n    this.selectedFileData.emit(this.uploaded_files);\r\n  }\r\n  onclickClose() {\r\n    this.dialogRef.close('result');\r\n  }\r\n}\r\n","<div class=\"task-attachment-heading mb-2\">\r\n  <div class=\"header d-flex align-items-center\">\r\n    <h5 class=\"add-attac\">Add Attachment</h5>\r\n    <span (click)=\"onclickClose()\" class=\"close-icon\"></span>\r\n  </div>\r\n  <input\r\n    (change)=\"onFileSelect($event)\"\r\n    #fileSelect\r\n    accept=\"all/*\"\r\n    type=\"file\"\r\n    class=\"choose-file\"\r\n  />\r\n\r\n  <div class=\"ass-tem-save-attachments d-flex\">\r\n    <lib-button\r\n      [name]=\"'SAVE'\"\r\n      [buttonDisabled]=\"\r\n        block || filesToUpload === undefined || !addSaveDisability\r\n      \"\r\n      (buttonClick)=\"upload()\"\r\n    ></lib-button>\r\n  </div>\r\n</div>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-confirmation-dialog',\r\n  templateUrl: './confirmation-dialog.component.html',\r\n  styleUrls: ['./confirmation-dialog.component.scss']\r\n})\r\nexport class ConfirmationDialogComponent {\r\n  \r\n  constructor(){\r\n    \r\n  }    \r\n  \r\n}\r\n","<p-confirmDialog    [position]=\"'top'\"  />    ","import { Component, Input } from '@angular/core';\r\nimport { NavigationExtras, Router } from '@angular/router';\r\n\r\nexport type TYPE_DYNAMIC_CARD_HEADER_DATA = {\r\n  headerImageURL ?:string;\r\n  headerContent  :string;\r\n  headerToolTip  ?:string;\r\n  queryParams    ?:string;\r\n  path           ?:string;  \r\n}\r\n\r\nexport type TYPE_DYNAMIC_CARD_BODY_DATA = {\r\n  bodyContent:string  \r\n}\r\n\r\nexport enum TABLE_DYNAMIC_CARD_ENUM_BODY_TYPES {\r\n  text                         = \"text\",\r\n  // textWithImage                = \"textWithImage\",\r\n  // textWithImageAndRouterLink   = \"textWithImageAndRouterLink\",  \r\n  // textWithRouterLink           = \"textWithRouterLink\",\r\n}\r\n\r\nexport enum TABLE_DYNAMIC_CARD_ENUM_HEADER_TYPES {\r\n  text                         = \"text\",\r\n  textWithImage                = \"textWithImage\",\r\n  textWithImageAndRouterLink   = \"textWithImageAndRouterLink\",  \r\n  textWithRouterLink           = \"textWithRouterLink\",\r\n}\r\n\r\n@Component({\r\n  selector: 'lib-card',\r\n  templateUrl: './card.component.html',\r\n  styleUrls: ['./card.component.scss']\r\n})\r\nexport class CardComponent {\r\n\r\n  @Input() cardHeaderType:string                          = '';\r\n  @Input() cardHeaderData!:TYPE_DYNAMIC_CARD_HEADER_DATA;\r\n  @Input() cardBodyType:string      = '';\r\n  @Input() cardBodyData!:TYPE_DYNAMIC_CARD_BODY_DATA;\r\n\r\n  constructor(private router :Router){}\r\n\r\n  navigateUrl(){\r\n    if(this.cardHeaderType === TABLE_DYNAMIC_CARD_ENUM_HEADER_TYPES.textWithImageAndRouterLink){\r\n      let queryParams:any = this.cardHeaderData?.queryParams\r\n      const navigationExtras: NavigationExtras = {\r\n        queryParams: {\r\n          ...queryParams\r\n        },  \r\n      };\r\n      this.router.navigate([this.cardHeaderData.path], navigationExtras);\r\n    }\r\n  }\r\n}\r\n","<div class=\"p-grid p-dir-col p-align-center\">    \r\n    <p-card class=\"dynamic-card\" (click)=\"navigateUrl()\">\r\n      <ng-template pTemplate=\"header\" [ngSwitch]=\"cardHeaderType\">\r\n\r\n        <div class=\"card-head-container\" *ngSwitchCase=\"'textWithImage'\">\r\n            <div class=\"card-img-container\" >\r\n                <img src=\"{{cardHeaderData.headerImageURL}}\" alt=\"img\" >\r\n            </div>            \r\n            <div class=\"card-head\">{{cardHeaderData.headerContent ? cardHeaderData.headerContent : \"-\"}}</div>\r\n        </div>        \r\n\r\n        <div class=\"card-head-container\" *ngSwitchCase=\"'textWithImageAndRouterLink'\" >\r\n            <div class=\"card-img-container\">\r\n                <img src=\"{{cardHeaderData.headerImageURL}}\" alt=\"img\" pTooltip=\"{{cardHeaderData['headerToolTip']}}\" tooltipPosition=\"top\">\r\n            </div>            \r\n            <div class=\"card-head\">{{cardHeaderData.headerContent ? cardHeaderData.headerContent : \"-\"}}</div>\r\n        </div>        \r\n\r\n        <div class=\"card-head-container\" *ngSwitchDefault>\r\n            <div class=\"card-img-container\">\r\n                <img src=\"{{cardHeaderData.headerImageURL}}\" alt=\"img\" >\r\n            </div>            \r\n            <div class=\"card-head\">{{cardHeaderData.headerContent ? cardHeaderData.headerContent : \"-\"}}</div>\r\n        </div>        \r\n\r\n      </ng-template>\r\n      <div [ngSwitch]=\"cardBodyType\">\r\n        <div class=\"card-content-container\" *ngSwitchCase=\"'text'\">\r\n            {{cardBodyData?.bodyContent ? cardBodyData?.bodyContent : \"-\"}}\r\n        </div>\r\n      </div>\r\n    </p-card>    \r\n  </div>\r\n  ","import {\r\n  Component,\r\n  EventEmitter,\r\n  Input,\r\n  Output,\r\n  ViewChild,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-accordian-table',\r\n  templateUrl: './accordian-table.component.html',\r\n  styleUrls: ['./accordian-table.component.scss'],\r\n})\r\nexport class AccordianTableComponent {\r\n  @Input() tableData: any[] = []; // Main table data\r\n  @Input() navigationurl: string = ''; // Main table data\r\n  @Input() tableData2: any[] = []; // Main table data\r\n  @Input() mainTableColumns: any[] = []; // Main table column configuration\r\n  @Input() childTableColumns: any[] = []; // Child table column configuration\r\n  @Input() childDataField: string = ''; // Field that holds the child data (e.g., 'controls')\r\n  @Input() expandAll: boolean = false; // Input to toggle expand all rows\r\n\r\n  expandedRows: { [key: string]: boolean } = {}; // Keeps track of expanded rows\r\n  ngOnInit(): void {\r\n    this.updateExpandedRows();\r\n  }\r\n  ngOnChanges(): void {\r\n    this.updateExpandedRows();\r\n  }\r\n\r\n  // Update expanded rows based on expandAll\r\n  updateExpandedRows() {\r\n    if (this.expandAll) {\r\n      this.expandedRows = this.tableData.reduce((acc, row) => {\r\n        acc[row.uuid] = true;\r\n        return acc;\r\n      }, {});\r\n    } else {\r\n      this.expandedRows = {};\r\n    }\r\n  }\r\n\r\n  getNestedValue(record: any, field: string) {\r\n    return field && record\r\n      ? field.split('.').reduce((o, i) => o?.[i], record)\r\n      : '';\r\n  }\r\n\r\n  @ViewChild('dt') dt: any;\r\n  exportToCSV(): void {\r\n    const csvRows: string[] = [];\r\n    const headers = this.mainTableColumns.map((col) => col.header).join(',');\r\n    csvRows.push(headers);\r\n    this.tableData.forEach((record) => {\r\n      const row = this.mainTableColumns\r\n        .map((col) => JSON.stringify(this.getNestedValue(record, col.field)))\r\n        .join(',');\r\n      csvRows.push(row);\r\n      const childData = this.getNestedValue(record, this.childDataField) || [];\r\n      childData.forEach((child: any) => {\r\n        const childRow = this.childTableColumns\r\n          .map((col) => JSON.stringify(this.getNestedValue(child, col.field)))\r\n          .join(',');\r\n        csvRows.push(`,${childRow}`);\r\n      });\r\n    });\r\n\r\n    const csvContent = csvRows.join('\\r\\n');\r\n    const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\r\n    const link = document.createElement('a');\r\n    const url = URL.createObjectURL(blob);\r\n    link.setAttribute('href', url);\r\n    link.setAttribute('download', 'table-data.csv');\r\n    link.style.visibility = 'hidden';\r\n    document.body.appendChild(link);\r\n    link.click();\r\n    document.body.removeChild(link);\r\n  }\r\n\r\n  columnFilters: { [key: string]: string } = {};\r\n  onColumnSearch(event: Event, column: string): void {\r\n    const value = (event.target as HTMLInputElement).value.toLowerCase();\r\n    if (value) {\r\n      this.columnFilters[column] = value;\r\n    } else {\r\n      delete this.columnFilters[column];\r\n    }\r\n    this.applyFilters();\r\n  }\r\n\r\n  applyFilters(): void {\r\n    this.tableData2 = this.tableData.filter((item) =>\r\n      Object.entries(this.columnFilters).every(([key, val]) =>\r\n        (item[key] || '').toString().toLowerCase().includes(val)\r\n      )\r\n    );\r\n  }\r\n\r\n  clearColumnFilter(column: any, inputRef: any): void {\r\n    delete this.columnFilters[column.field];\r\n    this.applyFilters();\r\n    column.showSearch = false;\r\n    column.searchValue = '';\r\n  }\r\n\r\n  @Output() navigationClick = new EventEmitter<any>();\r\n  detailView(uuid?: string) {\r\n    this.navigationClick.emit(uuid);\r\n  }\r\n}\r\n","<p-table\r\n  #dt\r\n  [value]=\"tableData2\"\r\n  dataKey=\"uuid\"\r\n  [expandedRowKeys]=\"expandedRows\"\r\n  scrollHeight=\"73vh\"\r\n>\r\n  <!-- Table Header -->\r\n  <ng-template pTemplate=\"header\">\r\n    <tr>\r\n      <th style=\"width: 1rem\" class=\"to-clear-f-weight\"></th>\r\n      <th *ngFor=\"let col of mainTableColumns\" [style.width]=\"col.Width\">\r\n        <span style=\"display: flex; justify-content: space-between\">\r\n          {{ col.header }}\r\n          <span *ngIf=\"col.field === 'reference' || col.field === 'name'\">\r\n            <i\r\n              class=\"pi pi-search\"\r\n              style=\"cursor: pointer\"\r\n              (click)=\"col.showSearch = !col.showSearch\"\r\n            ></i>\r\n            <span class=\"p-bg-input-relative\">\r\n              <p class=\"p-bg-input\">\r\n                <input\r\n                  *ngIf=\"col.showSearch\"\r\n                  type=\"text\"\r\n                  placeholder=\"Search {{ col.header }}\"\r\n                  [(ngModel)]=\"col.searchValue\"\r\n                  (input)=\"onColumnSearch($event, col.field)\"\r\n                  class=\"no-border-input\"\r\n                />\r\n                <i\r\n                  *ngIf=\"col.showSearch\"\r\n                  class=\"pi pi-times\"\r\n                  style=\"\r\n                    position: absolute;\r\n                    right: 5px;\r\n                    top: 50%;\r\n                    transform: translateY(-50%);\r\n                    cursor: pointer;\r\n                  \"\r\n                  (click)=\"clearColumnFilter(col, $event)\"\r\n                ></i>\r\n              </p>\r\n            </span>\r\n          </span>\r\n        </span>\r\n      </th>\r\n    </tr>\r\n  </ng-template>\r\n\r\n  <!-- Dynamic Main Table Rows -->\r\n  <ng-template pTemplate=\"body\" let-record let-expanded=\"expanded\">\r\n    <tr>\r\n      <td>\r\n        <button\r\n          type=\"button\"\r\n          pButton\r\n          pRipple\r\n          [pRowToggler]=\"record\"\r\n          class=\"p-button-text p-button-rounded p-button-plain\"\r\n          [icon]=\"expanded ? 'pi pi-chevron-down' : 'pi pi-chevron-right'\"\r\n        ></button>\r\n      </td>\r\n\r\n      <td *ngFor=\"let col of mainTableColumns\">\r\n        <ng-container *ngIf=\"col.field === 'compliance'; else defaultCell\">\r\n          <div class=\"control_effectiveness\">\r\n            <span\r\n              class=\"td-control_effectiveness-dot\"\r\n              [ngClass]=\"{\r\n                'td-control_compliance-notcompliant':\r\n                  record[col.field] === 'Non Compliant',\r\n                'td-control_compliance-compliant':\r\n                  record[col.field] === 'Compliant',\r\n                'td-control_effectiveness-partially-compliant':\r\n                  record[col.field] === 'Partially Compliant',\r\n                'td-control_effectiveness-NotAvable':\r\n                  record[col.field] === 'Not Available'\r\n              }\"\r\n            ></span>\r\n            {{ record[col.field] }}\r\n          </div>\r\n        </ng-container>\r\n        <ng-template #defaultCell>\r\n          {{ getNestedValue(record, col.field) }}\r\n        </ng-template>\r\n      </td>\r\n    </tr>\r\n  </ng-template>\r\n\r\n  <!-- Empty Message -->\r\n  <ng-template pTemplate=\"emptymessage\" class=\"to-make-center\">\r\n    <tr>\r\n      <td\r\n        [attr.colspan]=\"mainTableColumns.length + 1\"\r\n        style=\"text-align: center\"\r\n      >\r\n        No Records Found\r\n      </td>\r\n    </tr>\r\n  </ng-template>\r\n  <ng-template pTemplate=\"rowexpansion\" class=\"div-child-table\" let-record>\r\n    <tr>\r\n      <td [colSpan]=\"6\">\r\n        <div class=\"p-3\">\r\n          <p-table\r\n            [value]=\"getNestedValue(record, childDataField)\"\r\n            dataKey=\"uuid\"\r\n            class=\"child-table\"\r\n            [tableStyle]=\"{ width: '69.5vw', margin: 'auto' }\"\r\n          >\r\n            <ng-template pTemplate=\"header\">\r\n              <tr>\r\n                <th style=\"width: 0.5rem\"></th>\r\n                <th\r\n                  *ngFor=\"let col of childTableColumns\"\r\n                  [style.width]=\"col.Width\"\r\n                >\r\n                  {{ col.header }}\r\n                </th>\r\n              </tr>\r\n            </ng-template>\r\n\r\n            <ng-template pTemplate=\"body\" let-childRecord>\r\n              <tr>\r\n                <td style=\"width: 0.5rem\"></td>\r\n\r\n                <td *ngFor=\"let col of childTableColumns\">\r\n                  <ng-container\r\n                    *ngIf=\"\r\n                      col.field === 'control_effectiveness';\r\n                      else idOrOtherCells\r\n                    \"\r\n                  >\r\n                    <div class=\"control_effectiveness\">\r\n                      <span\r\n                        class=\"td-control_effectiveness-dot\"\r\n                        [ngClass]=\"{\r\n                          'td-control_effectiveness-Effective':\r\n                            childRecord[col.field] === 'Effective',\r\n                          'td-control_effectiveness-InEffective':\r\n                            childRecord[col.field] === 'In Effective',\r\n                          'td-control_effectiveness-partially-effective':\r\n                            childRecord[col.field] === 'Partially Effective',\r\n                          'td-control_effectiveness-NotAvable':\r\n                            childRecord[col.field] === 'Not Available'\r\n                        }\"\r\n                      ></span>\r\n                      {{ childRecord[col.field] }}\r\n                    </div>\r\n                  </ng-container>\r\n                  <ng-template #idOrOtherCells>\r\n                    <ng-container\r\n                      *ngIf=\"col.field === 'beautify_id'; else otherCells\"\r\n                    >\r\n                      <span\r\n                        class=\"id-column-class\"\r\n                        (click)=\"detailView(childRecord.uuid)\"\r\n                      >\r\n                        {{ childRecord[col.field] }}\r\n                      </span>\r\n                    </ng-container>\r\n                    <ng-template #otherCells>\r\n                      {{ getNestedValue(childRecord, col.field) }}\r\n                    </ng-template>\r\n                  </ng-template>\r\n                </td>\r\n              </tr>\r\n            </ng-template>\r\n\r\n            <ng-template pTemplate=\"emptymessage\">\r\n              <tr>\r\n                <td\r\n                  [attr.colspan]=\"childTableColumns.length\"\r\n                  style=\"text-align: center\"\r\n                >\r\n                  No Records Found\r\n                </td>\r\n              </tr>\r\n            </ng-template>\r\n          </p-table>\r\n        </div>\r\n      </td>\r\n    </tr>\r\n  </ng-template>\r\n</p-table>\r\n","import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\r\nimport { OverlayPanel } from 'primeng/overlaypanel';\r\n\r\n@Component({\r\n  selector: 'lib-entity-filter',\r\n  templateUrl: './entity-filter.component.html',\r\n  styleUrls: ['./entity-filter.component.scss']\r\n})\r\nexport class EntityFilterComponent {\r\n  @ViewChild('menu') menu!: OverlayPanel;\r\n  @Input() nodes!: any[];\r\n  @Input() buttonDisabled: boolean = false;\r\n  @Input() selectedNodes: any = [];\r\n  @Output() filteredDataEvent = new EventEmitter<any>();\r\n  @Output() entityFilteredDataEvent = new EventEmitter<any>();\r\n  constructor() {}\r\n  clearAll(): void {\r\n    this.selectedNodes = [];\r\n    this.filteredDataEvent.emit(this.selectedNodes);\r\n    this.entityFilteredDataEvent.emit(this.selectedNodes);\r\n    this.menu.hide();\r\n  }\r\n\r\n  // Apply the filter\r\n  applyFilter(): void {\r\n    const childIds: number[] = [];\r\n    this.selectedNodes.forEach(\r\n      (node: { children: string | any[]; id: number }) => {\r\n        if (!node.children || node.children.length === 0) {\r\n          // Add to the list if it's a child (leaf) node\r\n          childIds.push(node.id);\r\n        }\r\n      }\r\n    );\r\n    this.filteredDataEvent.emit(childIds);\r\n    this.entityFilteredDataEvent.emit(childIds);\r\n    this.menu.hide();\r\n    // Add logic to apply the filter\r\n  }\r\n}\r\n","<div class=\"card flex justify-content-center items-center\">\r\n    <!-- Filter Icon to Open Dropdown -->\r\n    <div class=\"entity-filter-and-name\">\r\n      <span class=\"bodytext\">Entity</span>\r\n      <i\r\n        class=\"pi pi-filter\"\r\n        style=\"cursor: pointer\"\r\n        (click)=\"menu.toggle($event)\"\r\n      ></i>\r\n    </div>\r\n  \r\n    <!-- Menu or Overlay Panel -->\r\n    <p-overlayPanel #menu [style]=\"{ width: '350px' }\" [dismissable]=\"false\" [ngClass]=\"'entity-filter-popup'\">\r\n      <div class=\"header flex justify-content-between\" style=\"height: 2rem; \">\r\n        <h4 class=\"bodytext\" style=\"font-weight: 500 !important;\">Entity Filter</h4>\r\n        <!-- Close Button -->\r\n        <button\r\n          pButton\r\n          icon=\"pi pi-times\"\r\n          class=\"p-button-rounded p-button-secondary p-button-sm\"\r\n          (click)=\"menu.hide()\"\r\n        ></button>\r\n      </div>\r\n  \r\n      <!-- TreeSelect Dropdown -->\r\n      <div class=\"tree-select-dropdown w-100\">\r\n        <p-treeSelect\r\n          [(ngModel)]=\"selectedNodes\"\r\n          [options]=\"nodes\"\r\n          display=\"chip\"\r\n          selectionMode=\"checkbox\"\r\n          [panelStyle]=\"{ width: '300px', maxWidth: '300px' }\"\r\n          placeholder=\"Select Items\"\r\n          [metaKeySelection]=\"false\"\r\n        >\r\n          <ng-template let-node pTemplate=\"default\">\r\n            <span [style.fontWeight]=\"node.parent ? 'normal' : 'bold'\">\r\n              {{ node.label }}\r\n            </span>\r\n          </ng-template>\r\n        </p-treeSelect>\r\n      </div>\r\n  \r\n      <!-- Buttons -->\r\n      <div class=\"actions\" style=\"margin-top: 20px; text-align: right\">\r\n        <lib-clear-button\r\n          [name]=\"'CLEAR'\"\r\n          [buttonDisabled]=\"buttonDisabled || selectedNodes?.length === 0\"\r\n          (buttonClick)=\"clearAll()\"\r\n        >\r\n        </lib-clear-button>\r\n        <lib-button\r\n          [name]=\"'APPLY'\"\r\n          [buttonDisabled]=\"buttonDisabled || selectedNodes?.length === 0\"\r\n          (buttonClick)=\"applyFilter()\"\r\n        >\r\n        </lib-button>\r\n      </div>\r\n    </p-overlayPanel>\r\n  </div>","import { Component, EventEmitter, Input, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { OverlayPanel } from 'primeng/overlaypanel';\r\n\r\n@Component({\r\n  selector: 'lib-checkboxtablewithoutpagination',\r\n  templateUrl: './checkboxtablewithoutpagination.component.html',\r\n  styleUrls: ['./checkboxtablewithoutpagination.component.scss']\r\n})\r\nexport class CheckboxtablewithoutpaginationComponent {\r\n  @Input() data: any[] = []; // Table data\r\n  @Input() columns: any[] = []; // Column configuration\r\n  @Input() tableHeight: string = '400px'; // Scroll height\r\n  @Input() tableMinWidth: string = '20rem'; // Minimum table width\r\n  @Input() selectable: boolean = true; // Enable row selection\r\n  @Output() selectionChange = new EventEmitter<any[]>(); // Emit selected rows to parent\r\n  @Output() searchChange = new EventEmitter<any>;\r\n  @Output() searchSubmit = new EventEmitter<string>();\r\n\r\n  @ViewChild('searchOverlay') searchOverlay!: OverlayPanel;\r\n  search_bar!: string;\r\n  activeSearchColumn: string | null = null;\r\n  searchValues: { [key: string]: string } = {};\r\n  @Output() searchClosed = new EventEmitter<void>();\r\n  duplicateCopyOfData: any[] = []\r\n  selectedRows: any[] = [];\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (changes['data'] && changes['data'].currentValue) {\r\n      if (this.data) {\r\n        this.duplicateCopyOfData = this.data\r\n      }\r\n    }\r\n  }\r\n\r\n  onSelectionChange(): void {\r\n    this.selectionChange.emit(this.selectedRows);\r\n  }\r\n\r\n  toggleSearch(field: string) {\r\n    this.activeSearchColumn = this.activeSearchColumn === field ? null : field;\r\n  }\r\n  searchArray: { field: string; value: string }[] = [];\r\n  onSearchChange(colomn: string, value: string) {\r\n    this.searchValues[colomn] = value;\r\n    this.searchArray = Object.keys(this.searchValues)\r\n      .filter(key => this.searchValues[key] && this.searchValues[key].trim() !== '')\r\n      .map(key => ({\r\n        field: key,\r\n        value: this.searchValues[key]\r\n      }));\r\n    this.searchChange.emit(this.searchArray);\r\n  }\r\n\r\n  onSearchSubmit() {\r\n    if (this.search_bar.trim()) {\r\n      this.searchSubmit.emit(this.search_bar);\r\n    }\r\n  }\r\n\r\n  showOverlaySearch(event: any, overlay: OverlayPanel) {\r\n    event.stopPropagation();\r\n    overlay.show(event);\r\n  }\r\n\r\n  initField(field: string) {\r\n    if (this.searchValues[field] === undefined) {\r\n      this.searchValues[field] = ''; // initialize as empty string\r\n    }\r\n  }\r\n\r\n  onChildSearchChange(event: { field: string; value: string }) {\r\n    this.searchValues[event.field] = event.value;\r\n  }\r\n\r\n  clearSearch(overlayPanel: any, field?: string) {\r\n    if (field) {\r\n      this.searchValues[field] = '';\r\n       this.searchArray = Object.keys(this.searchValues)\r\n      .filter(key => this.searchValues[key] && this.searchValues[key].trim() !== '')\r\n      .map(key => ({\r\n        field: key,\r\n        value: this.searchValues[key]\r\n      }));\r\n    this.searchChange.emit(this.searchArray);\r\n    } else {\r\n      this.searchValues = {};\r\n    }\r\n    overlayPanel.hide();\r\n  }\r\n\r\n}\r\n","<div class=\"card\">\r\n  <p-table\r\n    [value]=\"data\"\r\n    [(selection)]=\"selectedRows\"\r\n    [dataKey]=\"'uuid'\"\r\n    [scrollable]=\"true\"\r\n    [scrollHeight]=\"tableHeight\"\r\n    [tableStyle]=\"{ 'min-width': tableMinWidth }\"\r\n    (selectionChange)=\"onSelectionChange()\"\r\n  >\r\n    <ng-template pTemplate=\"header\">\r\n      <tr>\r\n        <th style=\"width: 1rem\" *ngIf=\"selectable\" pResizableColumn></th>\r\n        <th  [ngClass]=\"'map-asscociation-' + col.field\"\r\n          *ngFor=\"let col of columns\"\r\n          [pSortableColumn]=\"col.header === 'Id' ? col.field : null\"\r\n          pResizableColumn\r\n        >\r\n          {{ col.header }}\r\n          <p-sortIcon\r\n            *ngIf=\"col.sorting && col.header === 'Id'\"\r\n            [field]=\"col.field\"\r\n          ></p-sortIcon>\r\n          <i\r\n            *ngIf=\"col.search && col.header !== 'Id'\"\r\n            class=\"pi pi-search\"\r\n            [ngClass]=\"'searchIcon' + col.field\"\r\n            severity=\"secondary\"\r\n            (click)=\"searchAssociatedItem.toggle($event)\"\r\n            title=\"Filter {{ col.name }}\"\r\n          ></i>\r\n          <i\r\n            class=\"pi pi-search search-icon\"\r\n            *ngIf=\"col.search && col.header !== 'Id'\"\r\n            [ngClass]=\"'searchIcon' + col.field\"\r\n            [(ngModel)]=\"searchValues[col.field]\"\r\n            (input)=\"showOverlaySearch($event, searchAssociatedItem)\"\r\n            placeholder=\"Search +\"\r\n            {{\r\n            col.header\r\n            }}\r\n          ></i>\r\n\r\n          <!-- class=\"custom-search-overlay\"\r\n            [ngClass]=\"[col.field + '-another-class']\" -->\r\n          <!-- [ngClass]=\"'searchContainer' + col.field\" -->\r\n\r\n          <p-overlayPanel\r\n            [styleClass]=\"'custom-search-overlay'\"\r\n            #searchAssociatedItem\r\n          >\r\n            <div></div>\r\n            <div\r\n              class=\"search-container\"\r\n              [ngClass]=\"'searchContainer' + col.field\"\r\n            >\r\n              <input\r\n                type=\"text\"\r\n                pInputText\r\n                (focus)=\"initField(col.field)\"\r\n                [(ngModel)]=\"searchValues[col.field]\"\r\n                (input)=\"onSearchChange(col.field, searchValues[col.field])\"\r\n                (keyup.enter)=\"onSearchSubmit()\"\r\n                [placeholder]=\"'Search ' + col.field\"\r\n                [maxlength]=\"100\"\r\n                class=\"search-input\"\r\n                [name]=\"'searchInput_' + col.field\"\r\n                #searchInput=\"ngModel\"\r\n                required\r\n              />\r\n              <i\r\n                class=\"pi pi-times cross-icon\"\r\n                (click)=\"clearSearch(searchAssociatedItem, col.field)\"\r\n              ></i>\r\n            </div>\r\n          </p-overlayPanel>\r\n        </th>\r\n      </tr>\r\n    </ng-template>\r\n\r\n    <ng-template pTemplate=\"body\" let-row>\r\n      <tr [pSelectableRow]=\"row\">\r\n        <td *ngIf=\"selectable\">\r\n          <p-tableCheckbox\r\n            [value]=\"row\"\r\n            (click)=\"$event.stopPropagation()\"\r\n          ></p-tableCheckbox>\r\n        </td>\r\n        <td *ngFor=\"let col of columns\">\r\n          {{ row[col.field] }}\r\n        </td>\r\n      </tr>\r\n    </ng-template>\r\n  </p-table>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output, SimpleChanges } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { CommonService } from '../../services/common/common.service';\r\n\r\n@Component({\r\n  selector: 'lib-logout',\r\n  templateUrl: './logout.component.html',\r\n  styleUrls: ['./logout.component.scss']\r\n})\r\nexport class LogoutComponent {\r\n  ip: any;\r\n  id: any = '';\r\n  @Input() loginInfo: any = [];\r\n  usersList: any = [];\r\n  constructor(\r\n    private router: Router,\r\n    // private authService: AuthService,\r\n    private CommonService: CommonService,\r\n  ) // public config:DynamicDialogConfig\r\n  {\r\n    // this.event=config.data\r\n    if (this.event === 'logout') {\r\n      this.showDialog();\r\n    }\r\n  }\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n  }\r\n\r\n  showDialog() {\r\n    this.visible = true;\r\n  }\r\n  event: any = {};\r\n\r\n  @Input() visible: boolean = false;\r\n  @Input() navigationURL: string = '';\r\n  @Output() closeDialog = new EventEmitter<void>();\r\n  ngOnInit(): void {\r\n    //Called after the constructor, initializing input properties, and the first call to ngOnChanges.\r\n    //Add 'implements OnInit' to the class.\r\n    // this.getAllUsersList();\r\n  }\r\n\r\n  logout() {\r\n    // this.authService.logout();\r\n  }\r\n}\r\n","<!-- <div class=\"eye-btn-container\">\r\n    <div  class=\"\" (click)=\"logoutoverlayPanel.toggle($event)\">\r\n\r\n    </div>\r\n    <img\r\n      src=\"{{ frontendHost }}assets/image/View.svg\"\r\n      alt=\"\"\r\n      (click)=\"logoutoverlayPanel.toggle($event)\"\r\n      class=\"eye-view\"\r\n    />\r\n  </div>\r\n\r\n<p-overlayPanel #logoutoverlayPanel [dismissable]=\"true\">\r\n \r\n      <div>\r\n        <div class=\"d-flex name-email-sidesise\">\r\n            <div>\r\n              <span class=\"title-email\">\r\n                Bk\r\n                {{ loginInfo[0]?.email?.slice(0, 2).toUpperCase() }}\r\n              </span>\r\n            </div>\r\n            <div>\r\n              <label class=\"title-username\">\r\n                {{ loginInfo[0]?.name }}\r\n            </label>\r\n              <span class=\"title-emai\">\r\n                {{ loginInfo[0]?.email }}\r\n            </span>\r\n            </div>\r\n          </div>\r\n          <div>\r\n            <button class=\"button-logout\" (click)=\"logout()\" mat-menu-item style=\"\r\n\r\n          \">\r\n          <span class=\"material-symbols-outlined\"> <img alt src=\"./assets/image/logout.svg\" width=\"32\" height=\"32\" />\r\n          </span>\r\n          <span class=\"material-symbols-outlined\">\r\n            <img src=\"{{frontEndHost}}assets/image/logout.svg\" alt=\"img\" > \r\n          </span>\r\n          <span class=\"logot-name-heading\"> Logout </span>\r\n        </button>\r\n          </div>\r\n      </div>\r\n\r\n</p-overlayPanel> -->","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-modelwithoutdiameters',\r\n  templateUrl: './modelwithoutdiameters.component.html',\r\n  styleUrls: ['./modelwithoutdiameters.component.scss']\r\n})\r\nexport class ModelwithoutdiametersComponent {\r\n\r\n}\r\n","<p>modelwithoutdiameters works!</p>\r\n","import { NgModule } from '@angular/core';\r\nimport { Auditour1Component } from './auditour1.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { SplitButtonModule } from 'primeng/splitbutton';\r\n// import { BrowserModule } from '@angular/platform-browser';\r\n// import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; // Required for animations\r\n// PrimeNG Modules\r\nimport { CardModule } from 'primeng/card'; // For card components\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { DialogModule } from 'primeng/dialog'; // For dialogs\r\nimport { InputTextModule } from 'primeng/inputtext'; // For input fields\r\nimport { MessagesModule } from 'primeng/messages'; // For messages\r\nimport { TableModule } from 'primeng/table'; // For tables\r\nimport { ToastModule } from 'primeng/toast'; // For toasts\r\nimport { TooltipModule } from 'primeng/tooltip'; // For tooltips\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { SliderModule } from 'primeng/slider';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { KeyFilterModule } from 'primeng/keyfilter';\r\nimport { InputNumberModule } from 'primeng/inputnumber';\r\nimport { ToastrModule, ToastrService } from 'ngx-toastr';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { TimelineModule } from 'primeng/timeline';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { TableComponent } from './Table/table/table.component';\r\nimport { DropdownComponent } from './DropDowns/dropdown/dropdown.component';\r\nimport { TableTreeComponent } from './Table/table-tree/table-tree.component';\r\nimport { SlidersComponent } from './SelectionBoxes/sliders/sliders.component';\r\nimport { RangeSelectorComponent } from './SelectionBoxes/range-selector/range-selector.component';\r\nimport { RadioButtonComponent } from './SelectionBoxes/radio-button/radio-button.component';\r\nimport { CheckboxComponent } from './SelectionBoxes/checkbox/checkbox.component';\r\nimport { BreadcrumbComponent } from './Others/breadcrumb/breadcrumb.component';\r\nimport { PasswordComponent } from './InputBoxes/password/password.component';\r\nimport { TabsComponent } from './Others/tabs/tabs.component';\r\nimport { ToggleSwitchComponent } from './Others/toggle-switch/toggle-switch.component';\r\nimport { TreeViewComponent } from './Others/tree-view/tree-view.component';\r\nimport { AccordianComponent } from './ModalDailog/accordian/accordian.component';\r\nimport { ModalGeneralComponent } from './ModalDailog/modal-general/modal-general.component';\r\nimport { ModalM1Component } from './ModalDailog/modal-m1/modal-m1.component';\r\nimport { ModalM2Component } from './ModalDailog/modal-m2/modal-m2.component';\r\nimport { ModalM3Component } from './ModalDailog/modal-m3/modal-m3.component';\r\nimport { ModalM4Component } from './ModalDailog/modal-m4/modal-m4.component';\r\nimport { ModalSComponent } from './ModalDailog/modal-s/modal-s.component';\r\nimport { SplitterComponent } from './ModalDailog/splitter/splitter.component';\r\nimport { TimelineComponent } from './ModalDailog/timeline/timeline.component';\r\nimport { ToasterComponent } from './ModalDailog/toaster/toaster.component';\r\nimport { InputboxTextComponent } from './InputBoxes/inputbox-text/inputbox-text.component';\r\nimport { InputKeyFiltersNumberComponent } from './InputBoxes/input-key-filters-number/input-key-filters-number.component';\r\nimport { RichTextEditorComponent } from './InputBoxes/rich-text-editor/rich-text-editor.component';\r\nimport { TextareaLargeComponent } from './InputBoxes/textarea-large/textarea-large.component';\r\nimport { TextareaMediumComponent } from './InputBoxes/textarea-medium/textarea-medium.component';\r\nimport { GlobalFiltersComponent } from './Filters/global-filters/global-filters.component';\r\nimport { ReportsFilterComponent } from './Filters/reports-filter/reports-filter.component';\r\nimport { FileuploadsComponent } from './FileUpload/fileuploads/fileuploads.component';\r\nimport { DatePickerComponent } from './DatePicker/date-picker/date-picker.component';\r\nimport { DateRangePickerComponent } from './DatePicker/date-range-picker/date-range-picker.component';\r\nimport { DateTimePickerComponent } from './DatePicker/date-time-picker/date-time-picker.component';\r\nimport { ButtonComponent } from './Buttons/button/button.component';\r\nimport { ButtonIconOnlyComponent } from './Buttons/button-icon-only/button-icon-only.component';\r\nimport { ButtonLinkComponent } from './Buttons/button-link/button-link.component';\r\nimport { ButtonOverflowComponent } from './Buttons/button-overflow/button-overflow.component';\r\nimport { ButtonSplitComponent } from './Buttons/button-split/button-split.component';\r\nimport { ButtonTextComponent } from './Buttons/button-text/button-text.component';\r\nimport { ButtonWithIconComponent } from './Buttons/button-with-icon/button-with-icon.component';\r\nimport { ModalLComponent } from './ModalDailog/modal-l/modal-l.component';\r\nimport { MenuComponent } from './Others/menu/menu.component';\r\nimport { InputInlineComponent } from './InputBoxes/input-inline/input-inline.component';\r\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { TreeModule } from 'primeng/tree';\r\nimport { TagModule } from 'primeng/tag';\r\nimport { PasswordModule } from 'primeng/password';\r\nimport { DividerModule } from 'primeng/divider';\r\nimport { TagsComponent } from './Others/tags/tags.component';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\nimport { DialogService, DynamicDialogModule } from 'primeng/dynamicdialog';\r\nimport { Auditour1Service } from './auditour1.service';\r\nimport { ConfirmationService, MessageService } from 'primeng/api';\r\nimport { SingleSelectComponent } from './DropDowns/single-select/single-select.component';\r\nimport { PiechartComponent } from './charts/piechart/piechart.component';\r\nimport { BarchartComponent } from './charts/barchart/barchart.component';\r\nimport { HighchartsChartModule } from 'highcharts-angular';\r\nimport { StackedBarChartComponent } from './charts/stacked-bar-chart/stacked-bar-chart.component';\r\nimport { TablewithcheckboxComponent } from './Table/tablewithcheckbox/tablewithcheckbox.component';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { CollapseSideNavComponent } from './Others/collapse-side-nav/collapse-side-nav.component';\r\nimport { ExpandSideNavComponent } from './Others/expand-side-nav/expand-side-nav.component';\r\nimport { SidenavComponent } from './Others/sidenav/sidenav.component';\r\nimport { TopnavComponent } from './Others/topnav/topnav.component';\r\nimport { PanelMenuModule } from 'primeng/panelmenu';\r\nimport { TieredMenuModule } from 'primeng/tieredmenu';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { LoginService } from './services/login/login.service';\r\nimport { LoginComponent } from './pages/login/login.component';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { PrimengTooltipDirective } from './directives/tooltip.directive';\r\nimport { QuillModule } from 'ngx-quill';\r\nimport { FieldlevelfilterComponent } from './Reports/fieldlevelfilter/fieldlevelfilter.component';\r\nimport { CustomfiltersComponent } from './Reports/customfilters/customfilters.component';\r\nimport { ReportstableComponent } from './Reports/reportstable/reportstable.component';\r\nimport { Auditour1PopupService } from './services/popup.service';\r\nimport { OptionalColumnsComponent } from './Reports/optional-columns/optional-columns.component';\r\nimport { CommonService } from './services/common/common.service';\r\nimport { NgxSpinnerModule, NgxSpinnerService } from 'ngx-spinner';\r\nimport { SiteLoadersComponent } from './Others/site-loader/site-loaders.component';\r\nimport { AttachmentwithpopupComponent } from './FileUpload/fileuploads/attachmentwithpopup/attachmentwithpopup.component';\r\nimport { ClearButtonComponent } from './Buttons/clear-button/clear-button.component';\r\nimport { TreeSelectModule } from 'primeng/treeselect';\r\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\r\n\r\nimport { ConfirmationDialogComponent } from './ModalDailog/confirmation-dialog/confirmation.dialog.component';\r\nimport { CardComponent } from './Others/card/card.component';\r\nimport { AccordianTableComponent } from './Table/accordian-table/accordian-table.component';\r\nimport { EntityFilterComponent } from './Filters/entity-filter/entity-filter.component';\r\nimport { CheckboxtablewithoutpaginationComponent } from './Table/checkboxtablewithoutpagination/checkboxtablewithoutpagination.component';\r\nimport { MegamemuComponent } from './Others/megamemu/megamemu.component';\r\nimport { LogoutComponent } from './Others/logout/logout.component';\r\nimport { ModelwithoutdiametersComponent } from './ModalDailog/modelwithoutdiameters/modelwithoutdiameters.component';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MenuModule } from 'primeng/menu';\r\nimport { SubscriptionService } from './services/subscription.service';\r\n@NgModule({\r\n  declarations: [\r\n    Auditour1Component,\r\n    TableComponent,\r\n    TableTreeComponent,\r\n    DropdownComponent,\r\n    SlidersComponent,\r\n    RangeSelectorComponent,\r\n    RadioButtonComponent,\r\n    CheckboxComponent,\r\n    BreadcrumbComponent,\r\n    PasswordComponent,\r\n    TabsComponent,\r\n    ToggleSwitchComponent,\r\n    TreeViewComponent,\r\n    AccordianComponent,\r\n    ModalGeneralComponent,\r\n    ModalM1Component,\r\n    ModalM1Component,\r\n    ModalM2Component,\r\n    ModalM3Component,\r\n    ModalM4Component,\r\n    ModalSComponent,\r\n    SplitterComponent,\r\n    TimelineComponent,\r\n    ToasterComponent,\r\n    InputboxTextComponent,\r\n    InputKeyFiltersNumberComponent,\r\n    RichTextEditorComponent,\r\n    TextareaLargeComponent,\r\n    TextareaMediumComponent,\r\n    GlobalFiltersComponent,\r\n    ReportsFilterComponent,\r\n    FileuploadsComponent,\r\n    DatePickerComponent,\r\n    DateRangePickerComponent,\r\n    DateTimePickerComponent,\r\n    ButtonComponent,\r\n    ButtonIconOnlyComponent,\r\n    ButtonLinkComponent,\r\n    ButtonOverflowComponent,\r\n    ButtonSplitComponent,\r\n    ButtonTextComponent,\r\n    ButtonWithIconComponent,\r\n    ModalLComponent,\r\n    MenuComponent,\r\n    InputInlineComponent,\r\n    TagsComponent,\r\n    SingleSelectComponent,\r\n    PiechartComponent,\r\n    BarchartComponent,\r\n    StackedBarChartComponent,\r\n    TablewithcheckboxComponent,\r\n    CollapseSideNavComponent,\r\n    ExpandSideNavComponent,\r\n    SidenavComponent,\r\n    TopnavComponent,\r\n    LoginComponent,\r\n    PrimengTooltipDirective,\r\n    FieldlevelfilterComponent,\r\n    CustomfiltersComponent,\r\n    ReportstableComponent,\r\n    OptionalColumnsComponent,\r\n    SiteLoadersComponent,\r\n    AttachmentwithpopupComponent,\r\n    ClearButtonComponent,\r\n    CardComponent,\r\n    ConfirmationDialogComponent,\r\n    AccordianTableComponent,\r\n    EntityFilterComponent,\r\n    CheckboxtablewithoutpaginationComponent,\r\n    MegamemuComponent,\r\n    LogoutComponent,\r\n    ModelwithoutdiametersComponent,\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule,\r\n    HighchartsChartModule,\r\n    MatCheckboxModule,\r\n    ReactiveFormsModule,\r\n    MultiSelectModule,\r\n    MatMenuModule,\r\n    MenuModule,\r\n    ButtonModule,\r\n    DropdownModule,\r\n    SplitButtonModule,\r\n    MultiSelectModule,\r\n    CheckboxModule,\r\n    InputSwitchModule,\r\n    DynamicDialogModule,\r\n    ButtonModule,\r\n    InputTextModule,\r\n    TableModule,\r\n    TooltipModule,\r\n    SplitButtonModule,\r\n    CardModule,\r\n    DropdownModule,\r\n    CheckboxModule,\r\n    DialogModule,\r\n    ToastModule,\r\n    MessagesModule,\r\n    ConfirmDialogModule,\r\n    CheckboxModule,\r\n    RadioButtonModule,\r\n    SliderModule,\r\n    InputTextareaModule,\r\n    KeyFilterModule,\r\n    InputNumberModule,\r\n    TimelineModule,\r\n    InputSwitchModule,\r\n    MatMenuModule,\r\n    BreadcrumbModule,\r\n    TabViewModule,\r\n    TreeModule,\r\n    TagModule,\r\n    PasswordModule,\r\n    HttpClientModule,\r\n    MatSelectModule,\r\n    DividerModule,\r\n    QuillModule.forRoot(),\r\n    NgxSpinnerModule,\r\n    ToastrModule.forRoot({\r\n      positionClass: 'toast-top-center', // Set toast position to top-center\r\n      timeOut: 3000, // Duration in milliseconds\r\n      closeButton: false,\r\n    }),\r\n    CalendarModule,\r\n    NgbTooltipModule,\r\n    MatDialogModule,\r\n    PanelMenuModule,\r\n    TieredMenuModule,\r\n    TreeSelectModule,\r\n    OverlayPanelModule,\r\n    DialogModule,\r\n    MatBadgeModule,\r\n  ],\r\n  exports: [\r\n    Auditour1Component,\r\n    TableComponent,\r\n    TableTreeComponent,\r\n    DropdownComponent,\r\n    SlidersComponent,\r\n    RangeSelectorComponent,\r\n    RadioButtonComponent,\r\n    CheckboxComponent,\r\n    BreadcrumbComponent,\r\n    PasswordComponent,\r\n    TabsComponent,\r\n    ToggleSwitchComponent,\r\n    TreeViewComponent,\r\n    AccordianComponent,\r\n    ModalGeneralComponent,\r\n    ModalM1Component,\r\n    ModalM1Component,\r\n    ModalM2Component,\r\n    ModalM3Component,\r\n    ModalM4Component,\r\n    ModalSComponent,\r\n    SplitterComponent,\r\n    TimelineComponent,\r\n    ToasterComponent,\r\n    InputboxTextComponent,\r\n    InputKeyFiltersNumberComponent,\r\n    RichTextEditorComponent,\r\n    TextareaLargeComponent,\r\n    TextareaMediumComponent,\r\n    GlobalFiltersComponent,\r\n    ReportsFilterComponent,\r\n    FileuploadsComponent,\r\n    DatePickerComponent,\r\n    DateRangePickerComponent,\r\n    DateTimePickerComponent,\r\n    ButtonComponent,\r\n    ButtonIconOnlyComponent,\r\n    ButtonLinkComponent,\r\n    ButtonOverflowComponent,\r\n    ButtonSplitComponent,\r\n    ButtonTextComponent,\r\n    ButtonWithIconComponent,\r\n    ModalLComponent,\r\n    MenuComponent,\r\n    InputInlineComponent,\r\n    TagsComponent,\r\n    SingleSelectComponent,\r\n    PiechartComponent,\r\n    BarchartComponent,\r\n    StackedBarChartComponent,\r\n    TablewithcheckboxComponent,\r\n    CollapseSideNavComponent,\r\n    ExpandSideNavComponent,\r\n    SidenavComponent,\r\n    NgbTooltipModule,\r\n    TopnavComponent,\r\n    LoginComponent,\r\n    FieldlevelfilterComponent,\r\n    CustomfiltersComponent,\r\n    ReportstableComponent,\r\n    OptionalColumnsComponent,\r\n    SiteLoadersComponent,\r\n    NgxSpinnerModule,\r\n    ToastrModule,\r\n    AttachmentwithpopupComponent,\r\n    ClearButtonComponent,\r\n    CardComponent,\r\n    ConfirmationDialogComponent,\r\n    AccordianTableComponent,\r\n    EntityFilterComponent,\r\n    CheckboxtablewithoutpaginationComponent,\r\n    MegamemuComponent,\r\n    LogoutComponent,\r\n  ],\r\n  providers: [\r\n    Auditour1Service,\r\n    DialogService,\r\n    MessageService,\r\n    CommonService,\r\n    LoginService,\r\n    ConfirmationService,\r\n    CookieService,\r\n    Auditour1PopupService,\r\n    NgxSpinnerService,\r\n    ToastrService,\r\n    SubscriptionService,\r\n    DatePipe,\r\n  ],\r\n})\r\nexport class Auditour1Module {}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n  HttpRequest,\r\n  HttpHandler,\r\n  HttpEvent,\r\n  HttpInterceptor,\r\n} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n// import { AuthService } from '../authservice';\r\n\r\n@Injectable()\r\nexport class JwtInterceptor implements HttpInterceptor {\r\n  // constructor(private authService: AuthService) {}\r\n\r\n  intercept(\r\n    request: HttpRequest<any>,\r\n    next: HttpHandler\r\n  ): Observable<HttpEvent<any>> {\r\n    const accessToken = localStorage.getItem('access_token');\r\n    if (accessToken) {\r\n      request = request.clone({\r\n        setHeaders: {\r\n          Authorization: `Bearer ${accessToken}`,\r\n        },\r\n      });\r\n    }\r\n\r\n    return next.handle(request);\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n  HttpRequest,\r\n  HttpHandler,\r\n  HttpEvent,\r\n  HttpInterceptor,\r\n  HttpErrorResponse,\r\n} from '@angular/common/http';\r\nimport { Observable, throwError, BehaviorSubject } from 'rxjs';\r\nimport { catchError, switchMap, filter, take } from 'rxjs/operators';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { CommonService, SITE_IP, SITE_LOGIN_URL, STORAGE_ACCESS_TOKEN, STORAGE_REFRESH_TOKEN, TOASTER_ERROR } from '../services/common/common.service';\r\nimport { LoginService } from '../services/login/login.service';\r\n\r\nconst LoginUrl = SITE_LOGIN_URL\r\nconst ip       = SITE_IP \r\n\r\n@Injectable()\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n  private refreshingInProgress = false;\r\n  private refreshTokenSubject: BehaviorSubject<any> = new BehaviorSubject<any>(\r\n    null\r\n  );\r\n\r\n  constructor(\r\n    private authService: LoginService,\r\n    private commonService: CommonService,\r\n    private matDialogRef: MatDialog\r\n  ) {}\r\n\r\n  intercept(\r\n    request: HttpRequest<any>,\r\n    next: HttpHandler\r\n  ): Observable<HttpEvent<any>> {\r\n    return next.handle(request).pipe(\r\n      catchError((error: HttpErrorResponse) => {\r\n        if (\r\n          error?.error?.msg === 'Token has expired' &&\r\n          error.url !== LoginUrl + '/refresh_token'\r\n        ) {\r\n          return this.handle401Error(request, next);\r\n        } else {\r\n          if (\r\n            error?.error?.msg === 'Token has expired' &&\r\n            error.url === LoginUrl + '/refresh_token'\r\n          ) {\r\n            window.location.href = ip + 'overview/login';\r\n            this.commonService.clearSession()\r\n            this.commonService.clearAllStorage()\r\n            window.history.pushState({}, '', '/');\r\n            this.matDialogRef.closeAll();\r\n            this.commonService.showToastr(TOASTER_ERROR,'Session expired')\r\n          }\r\n          if (\r\n            error?.error?.message === 'Invalid token'\r\n          ) {\r\n            window.location.href = ip + 'overview/login';\r\n            this.commonService.clearSession()\r\n            this.commonService.clearAllStorage()\r\n            window.history.pushState({}, '', '/');\r\n            this.matDialogRef.closeAll();\r\n            this.commonService.showToastr(TOASTER_ERROR,'Session expired due to account update. please log in again.')\r\n          }\r\n          return throwError(error);\r\n        }\r\n      })\r\n    );\r\n  }\r\n\r\n  private handle401Error(\r\n    request: HttpRequest<any>,\r\n    next: HttpHandler\r\n  ): Observable<HttpEvent<any>> {\r\n    if (!this.refreshingInProgress) {\r\n      this.refreshingInProgress = true;\r\n      this.refreshTokenSubject.next(null);\r\n      // localStorage.getItem('refresh_token')\r\n      return this.authService\r\n        .refreshAccessToken(this.commonService.getStorage(STORAGE_REFRESH_TOKEN))\r\n        .pipe(\r\n          switchMap((response: any) => {\r\n            const newAccessToken = response?.data?.access_token;\r\n            const newRefreshToken = response?.data?.refresh_token;\r\n            this.commonService.setStorage(STORAGE_ACCESS_TOKEN,newAccessToken)\r\n            this.commonService.setStorage(STORAGE_REFRESH_TOKEN,newRefreshToken)\r\n            this.commonService.setSession(newAccessToken)\r\n            this.refreshingInProgress = false;\r\n            this.refreshTokenSubject.next(response);\r\n            request = request.clone({\r\n              setHeaders: {\r\n                Authorization: `Bearer ${newAccessToken}`,\r\n              },\r\n            });\r\n\r\n            return next.handle(request);\r\n          }),\r\n          catchError((error) => {\r\n            if (\r\n              error?.error?.msg === 'Token has expired' &&\r\n              error.url === LoginUrl + '/refresh_token'\r\n            ) {\r\n              // this.matDialogRef.close();\r\n              // this.router.navigate(['/login']);\r\n              this.commonService.clearAllStorage()\r\n              this.commonService.clearSession()\r\n              window.location.href = ip + 'overview/login';\r\n\r\n              window.history.pushState({}, '', '/');\r\n              this.matDialogRef.closeAll();\r\n              // this.toastr.warning(error?.error?.msg, '', {\r\n              //   positionClass: 'toast-top-center',\r\n              //   timeOut: 3000,\r\n              // });\r\n              this.commonService.showToastr(TOASTER_ERROR,'Session expired')\r\n            }\r\n\r\n            return throwError(error);\r\n          })\r\n        );\r\n    } else {\r\n      return this.refreshTokenSubject.pipe(\r\n        filter((token) => token !== null),\r\n        take(1),\r\n        switchMap(() => {\r\n          request = request.clone({\r\n            setHeaders: {\r\n              // Authorization: `Bearer ${localStorage.getItem('access_token')}`,\r\n              Authorization: `Bearer ${this.commonService.getStorage(STORAGE_ACCESS_TOKEN)}`,\r\n            },\r\n          });\r\n          return next.handle(request);\r\n        })\r\n      );\r\n    }\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CommonService, TOASTER_ERROR, TOASTER_SUCCESS } from './common/common.service';\r\n\r\n// import { IpCheckService } from './ip-check.service';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class NetworkStatusService {\r\n  constructor(private commonService: CommonService) {\r\n    this.initializeNetworkEvents();\r\n  }\r\n\r\n  initializeNetworkEvents() {\r\n    window.addEventListener('offline', () => {\r\n      this.commonService.showToastr(\r\n        TOASTER_ERROR,\r\n        'You are offline. Check your network connection.'\r\n      );\r\n      this.commonService.startLoader();\r\n    });\r\n    window.addEventListener('online', () => {\r\n      this.commonService.showToastr(TOASTER_SUCCESS, 'You are back online.');\r\n      this.commonService.stopLoader();\r\n    });\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CommonService } from '../../services/common/common.service';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class AuthGuard {\r\n  constructor(private commonService: CommonService) {}\r\n\r\n  canActivate(): boolean {\r\n    if (this.commonService.isLoggedIn()) {\r\n      return true;\r\n    } else {      \r\n      return false;\r\n    }\r\n  }\r\n}\r\n","export function getUpdateFormValues(initalValue:any,currentValue:any ){  \r\n    const currentValues = currentValue;\r\n    let updatedValues: any = {};\r\n  \r\n    for (const key in currentValues) {\r\n      if (currentValues.hasOwnProperty(key)) {\r\n        const currentValue = currentValues[key];\r\n        const previousValue = initalValue[key];\r\n  \r\n        if (!deepCompare(currentValue, previousValue)) {\r\n          updatedValues[key] = currentValue === \"\" ? null : currentValue;\r\n        }\r\n      }\r\n    }      \r\n    return updatedValues;\r\n  }\r\n\r\n  function deepCompare(value1: any, value2: any): boolean {\r\n    \r\n    if (value1 === value2) return true;  \r\n    \r\n    if (value1 === null || value2 === null || typeof value1 !== typeof value2) return false;  \r\n    \r\n    if (Array.isArray(value1) && Array.isArray(value2)) {\r\n      if (value1.length !== value2.length) return false;\r\n      return value1.every((item, index) => deepCompare(item, value2[index]));\r\n    }\r\n    \r\n    if (typeof value1 === \"object\" && typeof value2 === \"object\") {\r\n      const keys1 = Object.keys(value1);\r\n      const keys2 = Object.keys(value2);\r\n      if (keys1.length !== keys2.length) return false;\r\n      return keys1.every(key => deepCompare(value1[key], value2[key]));\r\n    }      \r\n    return false;\r\n  }","export const Patterns = {\r\n  email: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/,\r\n  number: '^[0-9]*$',\r\n  // nameInput: '^[a-zA-Z0-9]+[a-zA-Z0-9 ,._()\\'-]+$',\r\n  nameInput: /^[a-zA-Z0-9][\\s\\S]*$/,\r\n  commentInput: '^^[a-zA-Z0-9]+[a-zA-Z0-9 ,._()\\'-]+$',\r\n  descriptionInput: '^[a-zA-Z0-9]+[a-zA-Z0-9 ,._()\\'-]+$',\r\n  numberInput: '^[0-9]+[0-9.,]*$',\r\n  nameMessage: \"Valid characters:  [a-z] [A-Z] [0-9] .,_()'-\",\r\n  commentMessage: 'Comment Validation',\r\n  descriptionMessage: 'Description Validation',\r\n  numberMessage: 'Only Numbers allowed',\r\n};\r\n","/*\r\n * Public API Surface of auditour1\r\n */\r\n// require('./assets/theme/custom-theme.scss');\r\n// import \"./lib/styles/custom-theme.scss\";\r\n\r\nexport * from './lib/auditour1.service';\r\nexport * from './lib/auditour1.component';\r\nexport * from './lib/auditour1.module';\r\nexport * from './lib/Table/table/table.component';\r\nexport * from './lib/Table/table-tree/table-tree.component';\r\nexport * from './lib/Table/tablewithcheckbox/tablewithcheckbox.component';\r\nexport * from './lib/Table/accordian-table/accordian-table.component';\r\nexport * from './lib/DropDowns/dropdown/dropdown.component';\r\nexport * from './lib/SelectionBoxes/sliders/sliders.component';\r\nexport * from './lib/SelectionBoxes/range-selector/range-selector.component';\r\nexport * from './lib/SelectionBoxes/checkbox/checkbox.component';\r\nexport * from './lib/SelectionBoxes/radio-button/radio-button.component';\r\nexport * from './lib/Others/breadcrumb/breadcrumb.component';\r\nexport * from './lib/InputBoxes/password/password.component';\r\nexport * from './lib/Others/tabs/tabs.component';\r\nexport * from './lib/Others/tags/tags.component';\r\nexport * from './lib/Others/toggle-switch/toggle-switch.component';\r\nexport * from './lib/Others/tree-view/tree-view.component';\r\nexport * from './lib/Others/menu/menu.component';\r\nexport * from './lib/ModalDailog/accordian/accordian.component';\r\nexport * from './lib/ModalDailog/modal-general/modal-general.component';\r\nexport * from './lib/ModalDailog/modal-l/modal-l.component';\r\nexport * from './lib/ModalDailog/modal-m1/modal-m1.component';\r\nexport * from './lib/ModalDailog/modal-m2/modal-m2.component';\r\nexport * from './lib/ModalDailog/modal-m3/modal-m3.component';\r\nexport * from './lib/ModalDailog/modal-m3/modal-m3.component';\r\nexport * from './lib/ModalDailog/modal-m4/modal-m4.component';\r\nexport * from './lib/ModalDailog/modal-s/modal-s.component';\r\nexport * from './lib/ModalDailog/modelwithoutdiameters/modelwithoutdiameters.component';\r\nexport * from './lib/ModalDailog/splitter/splitter.component';\r\nexport * from './lib/ModalDailog/timeline/timeline.component';\r\nexport * from './lib/ModalDailog/toaster/toaster.component';\r\nexport * from './lib/InputBoxes/input-inline/input-inline.component';\r\nexport * from './lib/InputBoxes/input-key-filters-number/input-key-filters-number.component';\r\nexport * from './lib/InputBoxes/inputbox-text/inputbox-text.component';\r\nexport * from './lib/InputBoxes/textarea-medium/textarea-medium.component';\r\nexport * from './lib/InputBoxes/rich-text-editor/rich-text-editor.component';\r\nexport * from './lib/InputBoxes/textarea-large/textarea-large.component';\r\nexport * from './lib/FileUpload/fileuploads/fileuploads.component';\r\nexport * from './lib/Filters/global-filters/global-filters.component';\r\nexport * from './lib/Filters/reports-filter/reports-filter.component';\r\nexport * from './lib/Filters/entity-filter/entity-filter.component';\r\nexport * from './lib/DatePicker/date-picker/date-picker.component';\r\nexport * from './lib/DatePicker/date-range-picker/date-range-picker.component';\r\nexport * from './lib/DatePicker/date-time-picker/date-time-picker.component';\r\nexport * from './lib/Buttons/button/button.component';\r\nexport * from './lib/Buttons/button-icon-only/button-icon-only.component';\r\nexport * from './lib/Buttons/button-link/button-link.component';\r\nexport * from './lib/Buttons/button-overflow/button-overflow.component';\r\nexport * from './lib/Buttons/button-split/button-split.component';\r\nexport * from './lib/Buttons/button-text/button-text.component';\r\nexport * from './lib/Buttons/button-with-icon/button-with-icon.component';\r\nexport * from './lib/Buttons/clear-button/clear-button.component';\r\nexport * from './lib/DropDowns/single-select/single-select.component';\r\nexport * from './lib/charts/barchart/barchart.component';\r\nexport * from './lib/charts/piechart/piechart.component';\r\nexport * from './lib/charts/stacked-bar-chart/stacked-bar-chart.component'\r\nexport * from \"./lib/FileUpload/fileuploads/attachmentwithpopup/attachmentwithpopup.component\";\r\nexport * from \"./lib/Others/card/card.component\";\r\n\r\nexport * from \"./lib/ModalDailog/confirmation-dialog/confirmation.dialog.component\";\r\n\r\n// SIDE NAV AND TOP NAV\r\nexport * from \"./lib/Others/collapse-side-nav/collapse-side-nav.component\";\r\nexport * from \"./lib/Others/sidenav/sidenav.component\"\r\nexport * from \"./lib/Others/expand-side-nav/expand-side-nav.component\";\r\nexport * from \"./lib/Others/topnav/topnav.component\";\r\n\r\n\r\n// COMMON PAGES AND SERVICES(TOASTER,INTERCEPTOR AND AUTH GUARD)\r\nexport * from \"./lib/pages/login/login.component\";\r\nexport * from \"./lib/services/login/login.service\";\r\nexport * from \"./lib/services/common/common.service\";\r\nexport * from \"./lib/helpers/jwt.interceptor\";\r\nexport * from \"./lib/helpers/error.interceptor\";\r\nexport * from \"./lib/services/popup.service\";\r\nexport * from \"./lib/services/networkStatus.service\";\r\nexport * from \"./lib/Others/site-loader/site-loaders.component\";\r\nimport { ToastrModule } from 'ngx-toastr';\r\nexport const auditour1ToastrModule = ToastrModule; \r\nexport const AUDITOUR1_TOASTER_CONFIG = {\r\n    positionClass: 'toast-top-center',  \r\n    timeOut: 3000,  \r\n    closeButton: false}\r\nexport * from \"./lib/helpers/guards/auth.guard\"\r\n\r\nimport { NgxSpinnerModule } from 'ngx-spinner';\r\nexport const auditour1SpinnerModule = NgxSpinnerModule;\r\nexport * from \"./lib/helpers/formdata.compare.helper\";\r\nexport * from \"./lib/helpers/pattern/pattern.helper\";\r\nexport * from \"./lib/services/subscription.service\";\r\n\r\n// Reports COMPONENTS\r\nexport * from \"./lib/Reports/customfilters/customfilters.component\";\r\nexport * from \"./lib/Reports/fieldlevelfilter/fieldlevelfilter.component\";\r\nexport * from \"./lib/Reports/reportstable/reportstable.component\";\r\nexport * from \"./lib/Reports/optional-columns/optional-columns.component\";\r\nexport * from \"./lib/Table/checkboxtablewithoutpagination/checkboxtablewithoutpagination.component\"\r\nexport * from \"./lib/Others/megamemu/megamemu.component\"\r\nexport * from \"./lib/Others/logout/logout.component\"\r\n\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i4","i6","i7","i8","i10","i11.ButtonComponent","i12.ClearButtonComponent","STORAGE_ACCESS_TOKEN","STORAGE_REFRESH_TOKEN","STORAGE_CURRENT_USER","STORAGE_ROLE_TYPE","STORAGE_ROLES","STORAGE_IS_CHANGED","i1.CommonService","i9.ButtonWithIconComponent","i4.CollapseSideNavComponent","i5.ExpandSideNavComponent","i2.SubscriptionService","i3.CommonService","i5","i1.SubscriptionService","i7.BreadcrumbComponent","i8.MegamemuComponent","i3.LoginService","i4.CommonService","i5.SubscriptionService","i6.PasswordComponent","i7.InputboxTextComponent","i8.ButtonComponent","i9.SiteLoadersComponent","i7.ButtonComponent","i8.ButtonWithIconComponent","i5.DatePickerComponent","i2.CommonService","i3.ButtonComponent","i8.ClearButtonComponent","i1.LoginService"],"mappings":"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"}