gamma-app-controller 1.2.18 → 1.2.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/esm2020/lib/application-controller/page-controller/page-controller/page-controller.component.mjs +2 -1
  2. package/esm2020/lib/shared/advanced-component/app-advance-header/app-header.component.mjs +21 -8
  3. package/esm2020/lib/shared/advanced-component/gamma-today-previous/gamma-today-previous.component.mjs +1 -2
  4. package/esm2020/lib/template-module/defaulLandingComponent/landing-component.component.mjs +2 -3
  5. package/esm2020/lib/template-module/defaulLandingMultiLayoutComponent/defaulLandingMultiLayout.component.mjs +1248 -0
  6. package/esm2020/lib/template-module/defaulLandingMultiLayoutComponent/defaulLandingMultiLayout.module.mjs +151 -0
  7. package/esm2020/lib/template-module/defaulLandingMultiLayoutComponent/defaulLandingMultiLayout.service.mjs +121 -0
  8. package/esm2020/lib/template-module/defaulLandingMultiLayoutComponent/multi-landing-dataset-call.service.mjs +364 -0
  9. package/esm2020/lib/template-module/defaulLandingMultiLayoutComponent/multi-landing.tokenStorage.servce.mjs +36 -0
  10. package/esm2020/public-api.mjs +6 -1
  11. package/fesm2015/gamma-app-controller.mjs +1923 -19
  12. package/fesm2015/gamma-app-controller.mjs.map +1 -1
  13. package/fesm2020/gamma-app-controller.mjs +1900 -19
  14. package/fesm2020/gamma-app-controller.mjs.map +1 -1
  15. package/lib/shared/advanced-component/app-advance-header/app-header.component.d.ts +8 -3
  16. package/lib/template-module/defaulLandingMultiLayoutComponent/defaulLandingMultiLayout.component.d.ts +141 -0
  17. package/lib/template-module/defaulLandingMultiLayoutComponent/defaulLandingMultiLayout.module.d.ts +16 -0
  18. package/lib/template-module/defaulLandingMultiLayoutComponent/defaulLandingMultiLayout.service.d.ts +33 -0
  19. package/lib/template-module/defaulLandingMultiLayoutComponent/multi-landing-dataset-call.service.d.ts +24 -0
  20. package/lib/template-module/defaulLandingMultiLayoutComponent/multi-landing.tokenStorage.servce.d.ts +12 -0
  21. package/package.json +1 -1
  22. package/public-api.d.ts +5 -0
@@ -7106,7 +7106,6 @@ class GammaTodayPreviousComponent {
7106
7106
  }
7107
7107
  this.currentDateData = sortedData[0];
7108
7108
  const timeValue = parseInt((_g = (_f = value.kpiConfig) === null || _f === void 0 ? void 0 : _f.dataConfig) === null || _g === void 0 ? void 0 : _g.timeValue) || 1;
7109
- console.log(timeValue);
7110
7109
  this.prevousDaysData = this.isPreviousDay ? sortedData[timeValue] || null : null;
7111
7110
  if (this.isPreviousDay && this.prevousDaysData) {
7112
7111
  let calValue = Math.abs((parseInt(this.getDynamicValue(this.currentDateData)) - parseInt(this.getDynamicValue(this.prevousDaysData))) /
@@ -7158,7 +7157,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
7158
7157
  args: ['chartDataSource']
7159
7158
  }] } });
7160
7159
 
7161
- const TOKEN_KEY$3 = 'x-auth-token';
7160
+ const TOKEN_KEY$4 = 'x-auth-token';
7162
7161
  class AppLocalStorage {
7163
7162
  constructor(environment) {
7164
7163
  this.environment = environment;
@@ -7173,7 +7172,7 @@ class AppLocalStorage {
7173
7172
  return window.localStorage.removeItem[this.getAppVariableName(type)];
7174
7173
  }
7175
7174
  destroy() {
7176
- window.localStorage.removeItem(TOKEN_KEY$3);
7175
+ window.localStorage.removeItem(TOKEN_KEY$4);
7177
7176
  }
7178
7177
  getAppVariableName(attributeName) {
7179
7178
  return this.environment.appName + '__' + attributeName;
@@ -8161,10 +8160,12 @@ class AppAdvanceHeaderComponent {
8161
8160
  };
8162
8161
  this.srvTypeDataSource = [];
8163
8162
  this.srvTypeDisplayValue = [];
8163
+ this.selectedDetesforView = '';
8164
8164
  this.selectedDateRangeOrServtype = new EventEmitter();
8165
8165
  this.getFilterPageConfig = new EventEmitter();
8166
8166
  this.getOperatorName = new EventEmitter();
8167
8167
  this.getContextFilterData = new EventEmitter();
8168
+ this.selectedDatesMap = {};
8168
8169
  }
8169
8170
  set filterItems(value) {
8170
8171
  if (value === undefined || value.length === 0) {
@@ -8244,6 +8245,13 @@ class AppAdvanceHeaderComponent {
8244
8245
  });
8245
8246
  }
8246
8247
  }
8248
+ ngOnChanges(changes) {
8249
+ var _a;
8250
+ if (changes['filterObjects'] && ((_a = this.filterObjects) === null || _a === void 0 ? void 0 : _a.widgetId)) {
8251
+ const widgetId = this.filterObjects.widgetId;
8252
+ this.selectedDatesMap[widgetId] = this.selectedDetesforView;
8253
+ }
8254
+ }
8247
8255
  getContextMenuChange(event) {
8248
8256
  if (event.event) {
8249
8257
  const foundObject = this.contextFilterItemsForFilter.find(item => item.defaultFilterValue === event.value);
@@ -8329,18 +8337,21 @@ class AppAdvanceHeaderComponent {
8329
8337
  }
8330
8338
  }
8331
8339
  });
8340
+ let selectedText = '';
8332
8341
  if (displayStartDate && displayEndDate) {
8333
- this.selectedDetesforView = `${displayStartDate} - ${displayEndDate}`;
8342
+ selectedText = `${displayStartDate} - ${displayEndDate}`;
8334
8343
  }
8335
8344
  else if (displayStartDate) {
8336
- this.selectedDetesforView = displayStartDate;
8345
+ selectedText = displayStartDate;
8337
8346
  }
8338
8347
  else if (displayEndDate) {
8339
- this.selectedDetesforView = displayEndDate;
8348
+ selectedText = displayEndDate;
8340
8349
  }
8341
- else {
8342
- this.selectedDetesforView = '';
8350
+ const element = document.getElementById(this.filterObjects.widgetId);
8351
+ if (element) {
8352
+ element.innerText = selectedText;
8343
8353
  }
8354
+ filter['filterObjects'] = (this.filterObjects) ? this.filterObjects : null;
8344
8355
  this.getFilterPageConfig.emit(filter);
8345
8356
  }
8346
8357
  getOperatorDataSource(event) {
@@ -8392,10 +8403,10 @@ class AppAdvanceHeaderComponent {
8392
8403
  }
8393
8404
  }
8394
8405
  AppAdvanceHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppAdvanceHeaderComponent, deps: [{ token: i2.ActivatedRoute }, { token: i2.Router }, { token: CommonService }, { token: AppLocalStorage }], target: i0.ɵɵFactoryTarget.Component });
8395
- AppAdvanceHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: AppAdvanceHeaderComponent, selector: "app-advance-header", inputs: { pageTitle: "pageTitle", bread_crumbs_container: "bread_crumbs_container", isEditButton: "isEditButton", isAdvanceButton: "isAdvanceButton", selectedDates: "selectedDates", filterItems: "filterItems", contextFilterItems: "contextFilterItems" }, outputs: { toggleEvent: "toggleEvent", selectedDateRangeOrServtype: "selectedDateRangeOrServtype", getFilterPageConfig: "getFilterPageConfig", getOperatorName: "getOperatorName", getContextFilterData: "getContextFilterData" }, ngImport: i0, template: "<div class=\"flex flex-col mb-2\">\n <div class=\"flex justify-between border-b dark:bg-transparent\">\n <div class=\"flex flex-col ml-1\">\n <div class=\"flex items-center float-start\">\n <div class=\"flex items-center overflow-hidden\">\n <mat-icon class=\"icon-size-2\" [svgIcon]=\"'heroicons_solid:template'\"></mat-icon>\n </div>\n <h2\n class=\"text-2xl md:text-2xl py-3 font-extrabold items-center ml-2 tracking-tight leading-5 truncate capitalize\">\n {{ getPageTitle(pageTitle) }}\n </h2>\n </div>\n <div class=\"\">\n <!-- INCOMING -->\n <gamma-bread-crumbs [kpi_data_container]=\"bread_crumbs_container\"></gamma-bread-crumbs>\n </div>\n </div>\n <div class=\"flex justify-between items-center border-l-2 p-0 m-0\">\n\n <div class=\"mx-2\" *ngIf=\"isEditButton\">\n <div (click)=\"editKpi()\"\n class=\"bg-blue-700 cursor-pointer dark:bg-blue-600 dark:focus:ring-blue-800 dark:hover:bg-blue-700 focus:outline-none focus:ring-4 focus:ring-blue-300 font-medium hover:bg-blue-800 mr-2 px-2.5 py-2 rounded text-sm text-white ng-star-inserted\">\n Edit\n </div>\n </div>\n <ng-container *ngIf=\"contextFilterItemsForFilter && contextFilterItemsForFilter.length !== 0 \">\n <div class=\"w-1 h-full border-l-2\"></div>\n <div class=\"mx-2\" >\n <dx-select-box [items]=\"contextFilterItemsForFilter\" (onValueChanged)=\"getContextMenuChange($event)\" displayExpr=\"label\" valueExpr=\"defaultFilterValue\"\n [(ngModel)]=\"defaultFilterValue\"></dx-select-box>\n </div>\n </ng-container>\n \n <div class=\"w-1 h-full border-l-2\" *ngIf=\"isEditButton\"></div>\n\n <div class=\"mx-2\">\n <div class=\"cursor-pointer\" (click)=\"advanceFilterKpi()\"> {{selectedDetesforView}}</div>\n </div>\n <div class=\"w-1 h-full border-l-2\"></div>\n <div class=\"mx-2\" *ngIf=\"isAdvanceButton\">\n <button class=\"mat-focus-indicator mat-menu-trigger mat-icon-button mat-button-base\"\n aria-haspopup=\"menu\" (click)=\"advanceFilterKpi()\">\n <span class=\"mat-button-wrapper\">\n <span class=\"relative\">\n <mat-icon title=\"Filters\" [svgIcon]=\"'heroicons_outline:adjustments'\">\n </mat-icon>\n </span>\n </span>\n </button>\n </div>\n\n\n <div class=\"w-1 h-full border-l-2\"></div>\n <!-- <div class=\"mx-2\">\n <button class=\"mat-focus-indicator mat-menu-trigger mat-icon-button mat-button-base\"\n aria-haspopup=\"menu\">\n <span class=\"mat-button-wrapper\">\n <span class=\"relative\">\n <mat-icon (click)=\"callPageDocumentation()\" title=\"Add Filters\" [svgIcon]=\"\n 'heroicons_outline:question-mark-circle'\n \">\n </mat-icon>\n </span>\n </span>\n <span class=\"mat-button-focus-overlay\"></span>\n </button>\n </div> -->\n\n </div>\n </div>\n</div>\n\n<dx-popup [(visible)]=\"isAdvanceFilter\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"600\"\n [height]=\"'auto'\" [showTitle]=\"true\" class=\"popup\" title=\"Filter\">\n <div *dxTemplate=\"let data of 'content'\">\n <app-gamma-advance-filter [kpiId]=\"'231212'\" [filterOperatorData]=\"filterItemsForFilter\"\n [isButtonDesiable]=\"isAdvanceFilter\" [filterStartDate]=\"filterStartDate\" [filterEndDate]=\"filterEndDate\"\n (filterDataObject)=\"getSerchFilter($event)\"></app-gamma-advance-filter>\n </div>\n</dx-popup>", dependencies: [{ kind: "directive", type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i9$1.DxPopupComponent, selector: "dx-popup", inputs: ["accessKey", "animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "dragAndResizeArea", "dragEnabled", "dragOutsideBoundary", "elementAttr", "focusStateEnabled", "fullScreen", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "resizeEnabled", "restorePosition", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showTitle", "tabIndex", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onResize", "onResizeEnd", "onResizeStart", "onShowing", "onShown", "onTitleRendered", "accessKeyChange", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "dragAndResizeAreaChange", "dragEnabledChange", "dragOutsideBoundaryChange", "elementAttrChange", "focusStateEnabledChange", "fullScreenChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "resizeEnabledChange", "restorePositionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showTitleChange", "tabIndexChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i6$1.DxSelectBoxComponent, selector: "dx-select-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "items", "itemTemplate", "label", "labelMode", "maxLength", "minSearchLength", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showSelectionControls", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCustomItemCreating", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showSelectionControlsChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: GammaAdvanceFilterComponent, selector: "app-gamma-advance-filter", inputs: ["kpiId", "filterStartDate", "filterEndDate", "browser_api_config", "isButtonDesiable", "filterOperatorData"], outputs: ["filterDataObject"] }, { kind: "component", type: BreadCrumbsComponent, selector: "gamma-bread-crumbs", inputs: ["kpi_data_container"] }] });
8406
+ AppAdvanceHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: AppAdvanceHeaderComponent, selector: "app-advance-header", inputs: { pageTitle: "pageTitle", bread_crumbs_container: "bread_crumbs_container", isEditButton: "isEditButton", isAdvanceButton: "isAdvanceButton", selectedDates: "selectedDates", filterObjects: "filterObjects", filterItems: "filterItems", contextFilterItems: "contextFilterItems" }, outputs: { toggleEvent: "toggleEvent", selectedDateRangeOrServtype: "selectedDateRangeOrServtype", getFilterPageConfig: "getFilterPageConfig", getOperatorName: "getOperatorName", getContextFilterData: "getContextFilterData" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-col mb-2\">\n <div class=\"flex justify-between border-b dark:bg-transparent\">\n <div class=\"flex flex-col ml-1\">\n <div class=\"flex items-center float-start\">\n <div class=\"flex items-center overflow-hidden\">\n <mat-icon class=\"icon-size-2\" [svgIcon]=\"'heroicons_solid:template'\"></mat-icon>\n </div>\n <h2\n class=\"text-2xl md:text-2xl py-3 font-extrabold items-center ml-2 tracking-tight leading-5 truncate capitalize\">\n {{ getPageTitle(pageTitle) }}\n </h2>\n </div>\n <div class=\"\">\n <!-- INCOMING -->\n <gamma-bread-crumbs [kpi_data_container]=\"bread_crumbs_container\"></gamma-bread-crumbs>\n </div>\n </div>\n <div class=\"flex justify-between items-center border-l-2 p-0 m-0\">\n\n <div class=\"mx-2\" *ngIf=\"isEditButton\">\n <div (click)=\"editKpi()\"\n class=\"bg-blue-700 cursor-pointer dark:bg-blue-600 dark:focus:ring-blue-800 dark:hover:bg-blue-700 focus:outline-none focus:ring-4 focus:ring-blue-300 font-medium hover:bg-blue-800 mr-2 px-2.5 py-2 rounded text-sm text-white ng-star-inserted\">\n Edit\n </div>\n </div>\n <ng-container *ngIf=\"contextFilterItemsForFilter && contextFilterItemsForFilter.length !== 0 \">\n <div class=\"w-1 h-full border-l-2\"></div>\n <div class=\"mx-2\">\n <dx-select-box [items]=\"contextFilterItemsForFilter\" (onValueChanged)=\"getContextMenuChange($event)\"\n displayExpr=\"label\" valueExpr=\"defaultFilterValue\"\n [(ngModel)]=\"defaultFilterValue\"></dx-select-box>\n </div>\n </ng-container>\n\n <div class=\"w-1 h-full border-l-2\" *ngIf=\"isEditButton\"></div>\n\n <div class=\"mx-2\">\n <!-- <div class=\"cursor-pointer\" (click)=\"advanceFilterKpi()\" id=\"{{filterObjects.widgetId}}\"> {{selectedDetesforView}}</div> -->\n<!-- [id]=\"filterObjects.widgetId\" -->\n <div class=\"mx-2\">\n <div class=\"cursor-pointer\" (click)=\"advanceFilterKpi()\" >\n {{selectedDetesforView}}\n </div>\n </div>\n\n </div>\n <div class=\"w-1 h-full border-l-2\"></div>\n <div class=\"mx-2\" *ngIf=\"isAdvanceButton\">\n <button class=\"mat-focus-indicator mat-menu-trigger mat-icon-button mat-button-base\"\n aria-haspopup=\"menu\" (click)=\"advanceFilterKpi()\">\n <span class=\"mat-button-wrapper\">\n <span class=\"relative\">\n <mat-icon title=\"Filters\" [svgIcon]=\"'heroicons_outline:adjustments'\">\n </mat-icon>\n </span>\n </span>\n </button>\n </div>\n\n\n <div class=\"w-1 h-full border-l-2\"></div>\n <!-- <div class=\"mx-2\">\n <button class=\"mat-focus-indicator mat-menu-trigger mat-icon-button mat-button-base\"\n aria-haspopup=\"menu\">\n <span class=\"mat-button-wrapper\">\n <span class=\"relative\">\n <mat-icon (click)=\"callPageDocumentation()\" title=\"Add Filters\" [svgIcon]=\"\n 'heroicons_outline:question-mark-circle'\n \">\n </mat-icon>\n </span>\n </span>\n <span class=\"mat-button-focus-overlay\"></span>\n </button>\n </div> -->\n\n </div>\n </div>\n</div>\n\n<dx-popup [(visible)]=\"isAdvanceFilter\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"600\"\n [height]=\"'auto'\" [showTitle]=\"true\" class=\"popup\" title=\"Filter\">\n <div *dxTemplate=\"let data of 'content'\">\n <app-gamma-advance-filter [kpiId]=\"'231212'\" [filterOperatorData]=\"filterItemsForFilter\"\n [isButtonDesiable]=\"isAdvanceFilter\" [filterStartDate]=\"filterStartDate\" [filterEndDate]=\"filterEndDate\"\n (filterDataObject)=\"getSerchFilter($event)\"></app-gamma-advance-filter>\n </div>\n</dx-popup>", dependencies: [{ kind: "directive", type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i9$1.DxPopupComponent, selector: "dx-popup", inputs: ["accessKey", "animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "dragAndResizeArea", "dragEnabled", "dragOutsideBoundary", "elementAttr", "focusStateEnabled", "fullScreen", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "resizeEnabled", "restorePosition", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showTitle", "tabIndex", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onResize", "onResizeEnd", "onResizeStart", "onShowing", "onShown", "onTitleRendered", "accessKeyChange", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "dragAndResizeAreaChange", "dragEnabledChange", "dragOutsideBoundaryChange", "elementAttrChange", "focusStateEnabledChange", "fullScreenChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "resizeEnabledChange", "restorePositionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showTitleChange", "tabIndexChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i6$1.DxSelectBoxComponent, selector: "dx-select-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "buttons", "dataSource", "deferRendering", "disabled", "displayExpr", "displayValue", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "items", "itemTemplate", "label", "labelMode", "maxLength", "minSearchLength", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectedItem", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showSelectionControls", "spellcheck", "stylingMode", "tabIndex", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationStatus", "value", "valueChangeEvent", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCopy", "onCustomItemCreating", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "displayValueChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxLengthChange", "minSearchLengthChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectedItemChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showSelectionControlsChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: GammaAdvanceFilterComponent, selector: "app-gamma-advance-filter", inputs: ["kpiId", "filterStartDate", "filterEndDate", "browser_api_config", "isButtonDesiable", "filterOperatorData"], outputs: ["filterDataObject"] }, { kind: "component", type: BreadCrumbsComponent, selector: "gamma-bread-crumbs", inputs: ["kpi_data_container"] }] });
8396
8407
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppAdvanceHeaderComponent, decorators: [{
8397
8408
  type: Component,
8398
- args: [{ selector: 'app-advance-header', template: "<div class=\"flex flex-col mb-2\">\n <div class=\"flex justify-between border-b dark:bg-transparent\">\n <div class=\"flex flex-col ml-1\">\n <div class=\"flex items-center float-start\">\n <div class=\"flex items-center overflow-hidden\">\n <mat-icon class=\"icon-size-2\" [svgIcon]=\"'heroicons_solid:template'\"></mat-icon>\n </div>\n <h2\n class=\"text-2xl md:text-2xl py-3 font-extrabold items-center ml-2 tracking-tight leading-5 truncate capitalize\">\n {{ getPageTitle(pageTitle) }}\n </h2>\n </div>\n <div class=\"\">\n <!-- INCOMING -->\n <gamma-bread-crumbs [kpi_data_container]=\"bread_crumbs_container\"></gamma-bread-crumbs>\n </div>\n </div>\n <div class=\"flex justify-between items-center border-l-2 p-0 m-0\">\n\n <div class=\"mx-2\" *ngIf=\"isEditButton\">\n <div (click)=\"editKpi()\"\n class=\"bg-blue-700 cursor-pointer dark:bg-blue-600 dark:focus:ring-blue-800 dark:hover:bg-blue-700 focus:outline-none focus:ring-4 focus:ring-blue-300 font-medium hover:bg-blue-800 mr-2 px-2.5 py-2 rounded text-sm text-white ng-star-inserted\">\n Edit\n </div>\n </div>\n <ng-container *ngIf=\"contextFilterItemsForFilter && contextFilterItemsForFilter.length !== 0 \">\n <div class=\"w-1 h-full border-l-2\"></div>\n <div class=\"mx-2\" >\n <dx-select-box [items]=\"contextFilterItemsForFilter\" (onValueChanged)=\"getContextMenuChange($event)\" displayExpr=\"label\" valueExpr=\"defaultFilterValue\"\n [(ngModel)]=\"defaultFilterValue\"></dx-select-box>\n </div>\n </ng-container>\n \n <div class=\"w-1 h-full border-l-2\" *ngIf=\"isEditButton\"></div>\n\n <div class=\"mx-2\">\n <div class=\"cursor-pointer\" (click)=\"advanceFilterKpi()\"> {{selectedDetesforView}}</div>\n </div>\n <div class=\"w-1 h-full border-l-2\"></div>\n <div class=\"mx-2\" *ngIf=\"isAdvanceButton\">\n <button class=\"mat-focus-indicator mat-menu-trigger mat-icon-button mat-button-base\"\n aria-haspopup=\"menu\" (click)=\"advanceFilterKpi()\">\n <span class=\"mat-button-wrapper\">\n <span class=\"relative\">\n <mat-icon title=\"Filters\" [svgIcon]=\"'heroicons_outline:adjustments'\">\n </mat-icon>\n </span>\n </span>\n </button>\n </div>\n\n\n <div class=\"w-1 h-full border-l-2\"></div>\n <!-- <div class=\"mx-2\">\n <button class=\"mat-focus-indicator mat-menu-trigger mat-icon-button mat-button-base\"\n aria-haspopup=\"menu\">\n <span class=\"mat-button-wrapper\">\n <span class=\"relative\">\n <mat-icon (click)=\"callPageDocumentation()\" title=\"Add Filters\" [svgIcon]=\"\n 'heroicons_outline:question-mark-circle'\n \">\n </mat-icon>\n </span>\n </span>\n <span class=\"mat-button-focus-overlay\"></span>\n </button>\n </div> -->\n\n </div>\n </div>\n</div>\n\n<dx-popup [(visible)]=\"isAdvanceFilter\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"600\"\n [height]=\"'auto'\" [showTitle]=\"true\" class=\"popup\" title=\"Filter\">\n <div *dxTemplate=\"let data of 'content'\">\n <app-gamma-advance-filter [kpiId]=\"'231212'\" [filterOperatorData]=\"filterItemsForFilter\"\n [isButtonDesiable]=\"isAdvanceFilter\" [filterStartDate]=\"filterStartDate\" [filterEndDate]=\"filterEndDate\"\n (filterDataObject)=\"getSerchFilter($event)\"></app-gamma-advance-filter>\n </div>\n</dx-popup>" }]
8409
+ args: [{ selector: 'app-advance-header', template: "<div class=\"flex flex-col mb-2\">\n <div class=\"flex justify-between border-b dark:bg-transparent\">\n <div class=\"flex flex-col ml-1\">\n <div class=\"flex items-center float-start\">\n <div class=\"flex items-center overflow-hidden\">\n <mat-icon class=\"icon-size-2\" [svgIcon]=\"'heroicons_solid:template'\"></mat-icon>\n </div>\n <h2\n class=\"text-2xl md:text-2xl py-3 font-extrabold items-center ml-2 tracking-tight leading-5 truncate capitalize\">\n {{ getPageTitle(pageTitle) }}\n </h2>\n </div>\n <div class=\"\">\n <!-- INCOMING -->\n <gamma-bread-crumbs [kpi_data_container]=\"bread_crumbs_container\"></gamma-bread-crumbs>\n </div>\n </div>\n <div class=\"flex justify-between items-center border-l-2 p-0 m-0\">\n\n <div class=\"mx-2\" *ngIf=\"isEditButton\">\n <div (click)=\"editKpi()\"\n class=\"bg-blue-700 cursor-pointer dark:bg-blue-600 dark:focus:ring-blue-800 dark:hover:bg-blue-700 focus:outline-none focus:ring-4 focus:ring-blue-300 font-medium hover:bg-blue-800 mr-2 px-2.5 py-2 rounded text-sm text-white ng-star-inserted\">\n Edit\n </div>\n </div>\n <ng-container *ngIf=\"contextFilterItemsForFilter && contextFilterItemsForFilter.length !== 0 \">\n <div class=\"w-1 h-full border-l-2\"></div>\n <div class=\"mx-2\">\n <dx-select-box [items]=\"contextFilterItemsForFilter\" (onValueChanged)=\"getContextMenuChange($event)\"\n displayExpr=\"label\" valueExpr=\"defaultFilterValue\"\n [(ngModel)]=\"defaultFilterValue\"></dx-select-box>\n </div>\n </ng-container>\n\n <div class=\"w-1 h-full border-l-2\" *ngIf=\"isEditButton\"></div>\n\n <div class=\"mx-2\">\n <!-- <div class=\"cursor-pointer\" (click)=\"advanceFilterKpi()\" id=\"{{filterObjects.widgetId}}\"> {{selectedDetesforView}}</div> -->\n<!-- [id]=\"filterObjects.widgetId\" -->\n <div class=\"mx-2\">\n <div class=\"cursor-pointer\" (click)=\"advanceFilterKpi()\" >\n {{selectedDetesforView}}\n </div>\n </div>\n\n </div>\n <div class=\"w-1 h-full border-l-2\"></div>\n <div class=\"mx-2\" *ngIf=\"isAdvanceButton\">\n <button class=\"mat-focus-indicator mat-menu-trigger mat-icon-button mat-button-base\"\n aria-haspopup=\"menu\" (click)=\"advanceFilterKpi()\">\n <span class=\"mat-button-wrapper\">\n <span class=\"relative\">\n <mat-icon title=\"Filters\" [svgIcon]=\"'heroicons_outline:adjustments'\">\n </mat-icon>\n </span>\n </span>\n </button>\n </div>\n\n\n <div class=\"w-1 h-full border-l-2\"></div>\n <!-- <div class=\"mx-2\">\n <button class=\"mat-focus-indicator mat-menu-trigger mat-icon-button mat-button-base\"\n aria-haspopup=\"menu\">\n <span class=\"mat-button-wrapper\">\n <span class=\"relative\">\n <mat-icon (click)=\"callPageDocumentation()\" title=\"Add Filters\" [svgIcon]=\"\n 'heroicons_outline:question-mark-circle'\n \">\n </mat-icon>\n </span>\n </span>\n <span class=\"mat-button-focus-overlay\"></span>\n </button>\n </div> -->\n\n </div>\n </div>\n</div>\n\n<dx-popup [(visible)]=\"isAdvanceFilter\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"600\"\n [height]=\"'auto'\" [showTitle]=\"true\" class=\"popup\" title=\"Filter\">\n <div *dxTemplate=\"let data of 'content'\">\n <app-gamma-advance-filter [kpiId]=\"'231212'\" [filterOperatorData]=\"filterItemsForFilter\"\n [isButtonDesiable]=\"isAdvanceFilter\" [filterStartDate]=\"filterStartDate\" [filterEndDate]=\"filterEndDate\"\n (filterDataObject)=\"getSerchFilter($event)\"></app-gamma-advance-filter>\n </div>\n</dx-popup>" }]
8399
8410
  }], ctorParameters: function () { return [{ type: i2.ActivatedRoute }, { type: i2.Router }, { type: CommonService }, { type: AppLocalStorage }]; }, propDecorators: { pageTitle: [{
8400
8411
  type: Input
8401
8412
  }], bread_crumbs_container: [{
@@ -8416,6 +8427,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
8416
8427
  type: Output
8417
8428
  }], getContextFilterData: [{
8418
8429
  type: Output
8430
+ }], filterObjects: [{
8431
+ type: Input
8419
8432
  }], filterItems: [{
8420
8433
  type: Input,
8421
8434
  args: ['filterItems']
@@ -12786,6 +12799,7 @@ class PageControlerComponent {
12786
12799
  { "compName": "KpiWithDataSetTestComponent", "item": "Default KPI Layout" },
12787
12800
  { "compName": "KpiWithMultilayoutSetTestComponent", "item": "Multiple Layout KPI" },
12788
12801
  { "compName": "LandingComponentComponent", "item": "Default Page" },
12802
+ { "compName": "MultiLayoutLandingComponentComponent", "item": "Multiple Layout Page" },
12789
12803
  { "compName": "CdrConfigComponent", "item": "CDR Config" },
12790
12804
  { "compName": "CreateKpiTreeComponent", "item": "Create KPI Config" },
12791
12805
  { "compName": "CreateMetricsComponent", "item": "Create Metrics" },
@@ -18215,7 +18229,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
18215
18229
  }] }];
18216
18230
  } });
18217
18231
 
18218
- const TOKEN_KEY$2 = 'x-auth-token';
18232
+ const TOKEN_KEY$3 = 'x-auth-token';
18219
18233
  class AppSingleLayoutLocalStorage {
18220
18234
  constructor(environment) {
18221
18235
  this.environment = environment;
@@ -18230,7 +18244,7 @@ class AppSingleLayoutLocalStorage {
18230
18244
  return window.localStorage.removeItem[this.getAppVariableName(type)];
18231
18245
  }
18232
18246
  destroy() {
18233
- window.localStorage.removeItem(TOKEN_KEY$2);
18247
+ window.localStorage.removeItem(TOKEN_KEY$3);
18234
18248
  }
18235
18249
  getAppVariableName(attributeName) {
18236
18250
  return this.environment.appName + '__' + attributeName;
@@ -20416,7 +20430,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
20416
20430
  }] }];
20417
20431
  } });
20418
20432
 
20419
- const TOKEN_KEY$1 = 'x-auth-token';
20433
+ const TOKEN_KEY$2 = 'x-auth-token';
20420
20434
  class AppMultiLayoutLocalStorage {
20421
20435
  constructor(environment) {
20422
20436
  this.environment = environment;
@@ -20431,7 +20445,7 @@ class AppMultiLayoutLocalStorage {
20431
20445
  return window.localStorage.removeItem[this.getAppVariableName(type)];
20432
20446
  }
20433
20447
  destroy() {
20434
- window.localStorage.removeItem(TOKEN_KEY$1);
20448
+ window.localStorage.removeItem(TOKEN_KEY$2);
20435
20449
  }
20436
20450
  getAppVariableName(attributeName) {
20437
20451
  return this.environment.appName + '__' + attributeName;
@@ -22047,7 +22061,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
22047
22061
  }] }];
22048
22062
  } });
22049
22063
 
22050
- const TOKEN_KEY = 'x-auth-token';
22064
+ const TOKEN_KEY$1 = 'x-auth-token';
22051
22065
  class AppLandingLayoutLocalStorage {
22052
22066
  constructor(environment) {
22053
22067
  this.environment = environment;
@@ -22062,7 +22076,7 @@ class AppLandingLayoutLocalStorage {
22062
22076
  return window.localStorage.removeItem[this.getAppVariableName(type)];
22063
22077
  }
22064
22078
  destroy() {
22065
- window.localStorage.removeItem(TOKEN_KEY);
22079
+ window.localStorage.removeItem(TOKEN_KEY$1);
22066
22080
  }
22067
22081
  getAppVariableName(attributeName) {
22068
22082
  return this.environment.appName + '__' + attributeName;
@@ -22414,6 +22428,7 @@ class LandingComponentComponent {
22414
22428
  const innerDiv = document.createElement('div');
22415
22429
  innerDiv.classList.add('rounded', 'justify-center', 'items-center', 'border', 'p-1', 'm-1', 'flex', 'flex-row');
22416
22430
  item.compConfig.viewConfig.forEach(element => {
22431
+ console.log(element);
22417
22432
  element.kpiConfig['dataSource'] = datasetById[element.datasetId];
22418
22433
  element.kpiConfig['contextMenu'] = this.contextMenuDataSource;
22419
22434
  element['titleParams'] = item.nodeProperties.widgetParams || "";
@@ -22764,7 +22779,6 @@ class LandingComponentComponent {
22764
22779
  const queryString = new URLSearchParams(params).toString();
22765
22780
  const fullUrl = this.router.serializeUrl(this.router.createUrlTree([data.pageUrl], { queryParams: params }));
22766
22781
  this.router.navigate([data.pageUrl], { queryParams });
22767
- console.log(data);
22768
22782
  }
22769
22783
  }
22770
22784
  });
@@ -22917,7 +22931,6 @@ class LandingComponentComponent {
22917
22931
  queryParamsHandling: "merge"
22918
22932
  };
22919
22933
  this.router.navigate([], navigation);
22920
- console.log(this.stateDataSource);
22921
22934
  setTimeout(() => {
22922
22935
  this.scrollToBottom(this.mainPageDivElement);
22923
22936
  }, 200);
@@ -23425,6 +23438,1897 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
23425
23438
  }]
23426
23439
  }] });
23427
23440
 
23441
+ class LandingMultiLayoutComponentService {
23442
+ constructor(http, environment) {
23443
+ this.http = http;
23444
+ this.environment = environment;
23445
+ this.headers = new HttpHeaders().set('Content-Type', 'application/json');
23446
+ this.options = { headers: this.headers, withCredentials: true };
23447
+ this._selectedKpiOnClick = new Subject();
23448
+ this._kpilist = new Subject();
23449
+ this._selectKpiFromDropDown = new Subject();
23450
+ this._componentRegistry = new Map();
23451
+ this.kpiFilter = new BehaviorSubject([]);
23452
+ }
23453
+ handleError(error) {
23454
+ return throwError(error);
23455
+ }
23456
+ getlistKpiBrowser() {
23457
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/listKpiBrowser';
23458
+ return this.http
23459
+ .get(apiUrl, { withCredentials: true })
23460
+ .pipe(map((response) => {
23461
+ return response;
23462
+ }), catchError(this.handleError));
23463
+ }
23464
+ getAppPageDetailConfig(pageId) {
23465
+ return this.http
23466
+ .get(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppPageDetailConfig?pageConfigId=' + pageId, this.options)
23467
+ .pipe(map((response) => {
23468
+ return response;
23469
+ }), catchError(this.handleError));
23470
+ }
23471
+ getAppPageConfigs() {
23472
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppPageConfigs';
23473
+ return this.http
23474
+ .get(apiUrl, { withCredentials: true })
23475
+ .pipe(map((response) => {
23476
+ return response;
23477
+ }), catchError(this.handleError));
23478
+ }
23479
+ getAppDatasetConfigs() {
23480
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppDatasetConfigs';
23481
+ return this.http
23482
+ .get(apiUrl, { withCredentials: true })
23483
+ .pipe(map((response) => {
23484
+ return response;
23485
+ }), catchError(this.handleError));
23486
+ }
23487
+ getAppDatasetConfig(datasetId) {
23488
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppDatasetConfig?datasetId=' + datasetId;
23489
+ return this.http
23490
+ .get(apiUrl, { withCredentials: true })
23491
+ .pipe(map((response) => {
23492
+ return response;
23493
+ }), catchError(this.handleError));
23494
+ }
23495
+ getAppFilterConfig(filterId) {
23496
+ return this.http
23497
+ .get(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppFilterConfig?filterId=' + filterId, this.options)
23498
+ .pipe(map((response) => {
23499
+ return response;
23500
+ }), catchError(this.handleError));
23501
+ }
23502
+ getAppViewConfigs() {
23503
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppViewConfigs';
23504
+ return this.http
23505
+ .get(apiUrl, { withCredentials: true })
23506
+ .pipe(map((response) => {
23507
+ return response;
23508
+ }), catchError(this.handleError));
23509
+ }
23510
+ getData(body, requestID) {
23511
+ return this.http
23512
+ .post(this.environment.appUrl + this.environment.apiVersion + requestID, JSON.stringify(body), this.options)
23513
+ .pipe(map((response) => {
23514
+ return response;
23515
+ }), catchError(this.handleError));
23516
+ }
23517
+ getSimpleApiPostRequest(requestApi, body) {
23518
+ return this.http
23519
+ .post(this.environment.appUrl + this.environment.apiVersion + requestApi, JSON.stringify(body), this.options)
23520
+ .pipe(map((response) => {
23521
+ return response;
23522
+ }), catchError(this.handleError));
23523
+ }
23524
+ getSimpleApiGetRequest(requestApi) {
23525
+ return this.http
23526
+ .get(this.environment.appUrl + this.environment.apiVersion + requestApi, { withCredentials: true })
23527
+ .pipe(map((response) => {
23528
+ return response;
23529
+ }), catchError(this.handleError));
23530
+ }
23531
+ getJsonDatasetPayload(requestApi) {
23532
+ return this.http
23533
+ .get(this.environment.appUrl + this.environment.apiVersion + requestApi, { withCredentials: true })
23534
+ .pipe(map((response) => {
23535
+ return response;
23536
+ }), catchError(this.handleError));
23537
+ }
23538
+ genericSqlQueryResponse(requestApi, body) {
23539
+ return this.http
23540
+ .post(this.environment.appUrl + this.environment.apiVersion + requestApi, JSON.stringify(body), this.options)
23541
+ .pipe(map((response) => {
23542
+ return response;
23543
+ }), catchError(this.handleError));
23544
+ }
23545
+ }
23546
+ LandingMultiLayoutComponentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LandingMultiLayoutComponentService, deps: [{ token: i1.HttpClient }, { token: APP_ENVIRONMENT }], target: i0.ɵɵFactoryTarget.Injectable });
23547
+ LandingMultiLayoutComponentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LandingMultiLayoutComponentService, providedIn: "root" });
23548
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LandingMultiLayoutComponentService, decorators: [{
23549
+ type: Injectable,
23550
+ args: [{ providedIn: "root" }]
23551
+ }], ctorParameters: function () {
23552
+ return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
23553
+ type: Inject,
23554
+ args: [APP_ENVIRONMENT]
23555
+ }] }];
23556
+ } });
23557
+
23558
+ class LandingMultiLayoutApplicationDatssetsCall {
23559
+ constructor(service, kpiService, toastr, environment) {
23560
+ this.service = service;
23561
+ this.kpiService = kpiService;
23562
+ this.toastr = toastr;
23563
+ this.environment = environment;
23564
+ this.uniqueDataSetObject = {};
23565
+ }
23566
+ getDataFromDataSet(dataset, datasetId, filters) {
23567
+ if (dataset.datasetType == "mongo") {
23568
+ return this.getDataSetForMongo(dataset, datasetId);
23569
+ }
23570
+ else if (dataset.datasetType == "querybuilder") {
23571
+ return this.getDatasetForImpala(dataset, datasetId, filters);
23572
+ }
23573
+ else if (dataset.datasetType == "simpleApi") {
23574
+ return this.getDatasetForSimpleApiImpala(dataset, datasetId, filters);
23575
+ }
23576
+ else if (dataset.datasetType == "plainjson") {
23577
+ return this.getDatasetForPlainJson(dataset, datasetId, filters);
23578
+ }
23579
+ else if (dataset.datasetType == "sqlQuery") {
23580
+ return this.getDatasetForSqlTemplate(dataset, datasetId, filters);
23581
+ }
23582
+ else {
23583
+ return Promise.resolve();
23584
+ }
23585
+ }
23586
+ getDataSetForMongo(dataset, datasetId) {
23587
+ return new Promise((resolve, reject) => {
23588
+ let apiJsonObject = {
23589
+ requestId: dataset.config.serviceId,
23590
+ };
23591
+ if (dataset.config.fixOperationLevles && dataset.config.fixOperationLevles.length != 0) {
23592
+ for (const item of dataset.config.fixOperationLevles) {
23593
+ Object.assign(apiJsonObject, item);
23594
+ }
23595
+ }
23596
+ const mon_config = this.kpiService.getAllSeviceApiJson(apiJsonObject);
23597
+ this.service.getData(mon_config, dataset.config.api).subscribe({
23598
+ next: (data) => {
23599
+ const payload = data["Payload"] || data;
23600
+ this.uniqueDataSetObject[datasetId] = payload;
23601
+ resolve();
23602
+ },
23603
+ error: (err) => {
23604
+ console.error('Error:', err);
23605
+ reject(err);
23606
+ }
23607
+ });
23608
+ });
23609
+ }
23610
+ getDatasetForImpala(dataset, datasetId, filters) {
23611
+ return new Promise((resolve, reject) => {
23612
+ let request = dataset.config.queryConfig;
23613
+ let transformedObject = {};
23614
+ for (let item of request.reqFields) {
23615
+ const key = Object.keys(item)[0];
23616
+ const value = Object.values(item)[0];
23617
+ if (key === 'startDate') {
23618
+ transformedObject.recordDate = value;
23619
+ }
23620
+ else {
23621
+ transformedObject[key] = value;
23622
+ }
23623
+ }
23624
+ const operator = (filters && filters.length !== 0) ? Object.keys(filters.operationFilter).map(key => ({ [key]: filters.operationFilter[key] })) : [];
23625
+ transformedObject['filters'] = this.transformDataForMFilter(operator, request.mapedFilters);
23626
+ transformedObject['sorters'] = request.sorters;
23627
+ transformedObject["paginationRequired"] = false;
23628
+ if (dataset.config.api == "/kpi/genericAggregatePaginatedKpiServiceResponse") {
23629
+ transformedObject['measures'] = request.measures;
23630
+ transformedObject['dimensions'] = request.dimensions;
23631
+ }
23632
+ else {
23633
+ transformedObject['columns'] = this.getFormatObjectForColumn(request.columns);
23634
+ }
23635
+ if (request.havings && request.havings.length !== 0) {
23636
+ transformedObject['havings'] = request.havings;
23637
+ }
23638
+ this.service.getData(transformedObject, dataset.config.api).subscribe({
23639
+ next: (data) => {
23640
+ const payload = data['dataset'];
23641
+ this.uniqueDataSetObject[datasetId] = payload;
23642
+ resolve();
23643
+ },
23644
+ error: (err) => {
23645
+ console.error('Error:', err);
23646
+ this.toastr.error(err.message);
23647
+ reject(err);
23648
+ }
23649
+ });
23650
+ });
23651
+ }
23652
+ getFormatObjectForColumn(columns) {
23653
+ let columnData = [];
23654
+ columns.forEach(element => {
23655
+ const { advancedColumn, columnName, enrichFunction, dataField } = element;
23656
+ columnData.push({
23657
+ "advancedColumn": advancedColumn,
23658
+ "columnName": columnName,
23659
+ "enrichFunction": enrichFunction,
23660
+ "aliasName": dataField
23661
+ });
23662
+ });
23663
+ return columnData;
23664
+ }
23665
+ transformDataForMFilter(filterdata, mapData) {
23666
+ let result = [];
23667
+ mapData.forEach(mapping => {
23668
+ let resultObj = {
23669
+ columnName: mapping.serverColumn,
23670
+ dataType: mapping.dataType,
23671
+ operator: mapping.operatorName,
23672
+ value: mapping.defaultValue
23673
+ };
23674
+ if (mapping.serverColumn.includes('date') && typeof resultObj.value === 'string') {
23675
+ if (mapping.formatter && mapping.formatter !== "") {
23676
+ resultObj.value = moment$1(resultObj.value, "YYYY-MM-DD").format(mapping.formatter);
23677
+ }
23678
+ else {
23679
+ resultObj.value = moment$1(resultObj.value, "YYYY-MM-DD").format(this.environment.dataFormat);
23680
+ }
23681
+ }
23682
+ const filter = filterdata.find(f => f.hasOwnProperty(mapping.localColumn));
23683
+ if (filter) {
23684
+ if (mapping.defaultValue === "") {
23685
+ const value = filter[mapping.localColumn];
23686
+ if (Array.isArray(value)) {
23687
+ resultObj.operator = "in";
23688
+ resultObj.value = value.join(",");
23689
+ }
23690
+ else {
23691
+ resultObj.value = value;
23692
+ }
23693
+ if (mapping.serverColumn.includes('date') && typeof resultObj.value === 'string') {
23694
+ if (mapping.formatter && mapping.formatter !== "") {
23695
+ resultObj.value = moment$1(resultObj.value, "YYYY-MM-DD").format(mapping.formatter);
23696
+ }
23697
+ else {
23698
+ resultObj.value = moment$1(resultObj.value, "YYYY-MM-DD").format(this.environment.dataFormat);
23699
+ }
23700
+ }
23701
+ }
23702
+ }
23703
+ else if (mapping.defaultValue === "") {
23704
+ return;
23705
+ }
23706
+ result.push(resultObj);
23707
+ });
23708
+ filterdata = filterdata.filter(obj => {
23709
+ const key = Object.keys(obj)[0];
23710
+ return key !== 'startDate' && key !== 'endDate';
23711
+ });
23712
+ filterdata.forEach(filter => {
23713
+ const filterKey = Object.keys(filter)[0];
23714
+ const existingMapping = mapData.find(mapping => mapping.localColumn === filterKey);
23715
+ if (!existingMapping) {
23716
+ let resultObj = {
23717
+ columnName: filterKey,
23718
+ dataType: "string",
23719
+ operator: "eq",
23720
+ value: filter[filterKey]
23721
+ };
23722
+ if (Array.isArray(filter[filterKey])) {
23723
+ resultObj.operator = "in";
23724
+ resultObj.value = filter[filterKey].join(",");
23725
+ }
23726
+ else {
23727
+ resultObj.value = filter[filterKey];
23728
+ }
23729
+ if (filterKey == 'operator_key') {
23730
+ resultObj.operator = "eq";
23731
+ }
23732
+ result.push(resultObj);
23733
+ }
23734
+ });
23735
+ result = result.filter(obj => obj.value !== null && obj.value !== "");
23736
+ return result;
23737
+ }
23738
+ getDatasetForSimpleApiImpala(dataset, datasetId, filters) {
23739
+ return new Promise((resolve, reject) => {
23740
+ dataset.config.queryConfig.mapedFilters.forEach(filter => {
23741
+ if (filters.operationFilter.hasOwnProperty(filter.localColumn)) {
23742
+ filter.defaultValue = filters.operationFilter[filter.localColumn];
23743
+ }
23744
+ });
23745
+ if (dataset.config.apiType === "post") {
23746
+ let serviceJson = {};
23747
+ dataset.config.queryConfig.mapedFilters.forEach((filter) => {
23748
+ let datecolumn = filter.serverColumn.toLowerCase();
23749
+ if (datecolumn.includes('date') && typeof filter.dataType === 'string') {
23750
+ serviceJson[filter.serverColumn] = moment$1(filter.defaultValue, "YYYY-MM-DD").format(this.environment.dataFormat);
23751
+ }
23752
+ else {
23753
+ serviceJson[filter.serverColumn] = filter.defaultValue;
23754
+ }
23755
+ });
23756
+ this.service.getSimpleApiPostRequest(dataset.config.api, serviceJson).subscribe({
23757
+ next: (data) => {
23758
+ const payload = data["Payload"] || data;
23759
+ this.uniqueDataSetObject[datasetId] = payload;
23760
+ resolve();
23761
+ },
23762
+ error: (err) => {
23763
+ console.error('Error:', err);
23764
+ this.toastr.error(err.message);
23765
+ reject(err);
23766
+ }
23767
+ });
23768
+ }
23769
+ else if (dataset.config.apiType === "get") {
23770
+ let requestUrl = dataset.config.api + "?";
23771
+ dataset.config.queryConfig.mapedFilters.forEach((filter, index) => {
23772
+ requestUrl += `${filter.serverColumn}=${filter.defaultValue}`;
23773
+ if (index < dataset.config.queryConfig.mapedFilters.length - 1) {
23774
+ requestUrl += "&";
23775
+ }
23776
+ });
23777
+ this.service.getSimpleApiGetRequest(requestUrl).subscribe({
23778
+ next: (data) => {
23779
+ const payload = data["Payload"] || data;
23780
+ this.uniqueDataSetObject[datasetId] = payload;
23781
+ resolve();
23782
+ },
23783
+ error: (err) => {
23784
+ console.error('Error:', err);
23785
+ this.toastr.error(err.message);
23786
+ reject(err);
23787
+ }
23788
+ });
23789
+ }
23790
+ });
23791
+ }
23792
+ getDatasetForPlainJson(dataset, datasetId, filter) {
23793
+ return new Promise((resolve, reject) => {
23794
+ let requestapi = dataset.config.api + '?datasetId=' + dataset.datasetId;
23795
+ this.service.getJsonDatasetPayload(requestapi).subscribe({
23796
+ next: (data) => {
23797
+ const payload = data["Payload"] || data;
23798
+ this.uniqueDataSetObject[datasetId] = payload;
23799
+ resolve();
23800
+ },
23801
+ error: (err) => {
23802
+ console.error('Error:', err);
23803
+ reject(err);
23804
+ }
23805
+ });
23806
+ });
23807
+ }
23808
+ getDatasetForSqlTemplate(dataset, datasetId, filters) {
23809
+ return new Promise((resolve, reject) => {
23810
+ const operator = (filters && filters.length !== 0) ? Object.keys(filters.operationFilter).map(key => ({ [key]: filters.operationFilter[key] })) : [];
23811
+ let requestAp = dataset.config.api;
23812
+ let request_params = {
23813
+ 'dbConfig': dataset.config.queryConfig.dbConfig,
23814
+ 'databaseName': dataset.config.queryConfig.databaseName,
23815
+ 'filters': this.transformDataForMFilterForSQl(operator, dataset.config.queryConfig.mapedFilters),
23816
+ 'templateQuery': dataset.config.queryConfig.templateQuery,
23817
+ 'enrichments': dataset.config.queryConfig.enrichments,
23818
+ };
23819
+ this.service.genericSqlQueryResponse(requestAp, request_params).subscribe({
23820
+ next: (data) => {
23821
+ const payload = data["Payload"] || data;
23822
+ this.uniqueDataSetObject[datasetId] = payload;
23823
+ resolve();
23824
+ },
23825
+ error: (err) => {
23826
+ console.error('Error:', err);
23827
+ this.toastr.error(err.message);
23828
+ reject(err);
23829
+ }
23830
+ });
23831
+ });
23832
+ }
23833
+ transformDataForMFilterForSQl(filterdata, mapData) {
23834
+ let result = [];
23835
+ mapData.forEach(mapping => {
23836
+ let resultObj = {
23837
+ columnName: mapping.serverColumn,
23838
+ dataType: mapping.dataType,
23839
+ operator: mapping.operatorName,
23840
+ value: mapping.defaultValue,
23841
+ aliasColumnName: mapping.localColumn,
23842
+ };
23843
+ if (mapping.serverColumn.includes('date') && typeof resultObj.value === 'string') {
23844
+ if (mapping.formatter && mapping.formatter !== "") {
23845
+ resultObj.value = moment$1(resultObj.value, "YYYY-MM-DD").format(mapping.formatter);
23846
+ }
23847
+ else {
23848
+ resultObj.value = moment$1(resultObj.value, "YYYY-MM-DD").format(this.environment.dataFormat);
23849
+ }
23850
+ }
23851
+ const filter = filterdata.find(f => f.hasOwnProperty(mapping.localColumn));
23852
+ if (filter) {
23853
+ if (mapping.defaultValue === "") {
23854
+ const value = filter[mapping.localColumn];
23855
+ if (Array.isArray(value)) {
23856
+ resultObj.operator = "in";
23857
+ resultObj.value = value.join(",");
23858
+ }
23859
+ else {
23860
+ resultObj.value = value;
23861
+ }
23862
+ if (mapping.serverColumn.includes('date') && typeof resultObj.value === 'string') {
23863
+ resultObj.value = moment$1(resultObj.value, "YYYY-MM-DD").format(this.environment.dataFormat);
23864
+ }
23865
+ }
23866
+ }
23867
+ else if (mapping.defaultValue === "") {
23868
+ return;
23869
+ }
23870
+ result.push(resultObj);
23871
+ });
23872
+ filterdata = filterdata.filter(obj => {
23873
+ const key = Object.keys(obj)[0];
23874
+ return key !== 'startDate' && key !== 'endDate';
23875
+ });
23876
+ filterdata.forEach(filter => {
23877
+ const filterKey = Object.keys(filter)[0];
23878
+ const existingMapping = mapData.find(mapping => mapping.localColumn === filterKey);
23879
+ if (!existingMapping) {
23880
+ let resultObj = {
23881
+ columnName: filterKey,
23882
+ dataType: "string",
23883
+ operator: "eq",
23884
+ value: filter[filterKey]
23885
+ };
23886
+ if (Array.isArray(filter[filterKey])) {
23887
+ resultObj.operator = "in";
23888
+ resultObj.value = filter[filterKey].join(",");
23889
+ }
23890
+ else {
23891
+ resultObj.value = filter[filterKey];
23892
+ }
23893
+ if (filterKey == 'operator_key') {
23894
+ resultObj.operator = "eq";
23895
+ }
23896
+ result.push(resultObj);
23897
+ }
23898
+ });
23899
+ return result;
23900
+ }
23901
+ getUniqueDataSetObject() {
23902
+ return this.uniqueDataSetObject;
23903
+ }
23904
+ }
23905
+ LandingMultiLayoutApplicationDatssetsCall.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LandingMultiLayoutApplicationDatssetsCall, deps: [{ token: LandingMultiLayoutComponentService }, { token: kpicommonService$2 }, { token: i3$1.ToastrService }, { token: APP_ENVIRONMENT }], target: i0.ɵɵFactoryTarget.Injectable });
23906
+ LandingMultiLayoutApplicationDatssetsCall.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LandingMultiLayoutApplicationDatssetsCall, providedIn: "root" });
23907
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LandingMultiLayoutApplicationDatssetsCall, decorators: [{
23908
+ type: Injectable,
23909
+ args: [{ providedIn: "root" }]
23910
+ }], ctorParameters: function () {
23911
+ return [{ type: LandingMultiLayoutComponentService }, { type: kpicommonService$2 }, { type: i3$1.ToastrService }, { type: undefined, decorators: [{
23912
+ type: Inject,
23913
+ args: [APP_ENVIRONMENT]
23914
+ }] }];
23915
+ } });
23916
+
23917
+ const TOKEN_KEY = 'x-auth-token';
23918
+ class AppLandingMultiLayoutLocalStorage {
23919
+ constructor(environment) {
23920
+ this.environment = environment;
23921
+ }
23922
+ save(type, token) {
23923
+ window.localStorage[this.getAppVariableName(type)] = token;
23924
+ }
23925
+ get(type) {
23926
+ return window.localStorage[this.getAppVariableName(type)];
23927
+ }
23928
+ delete(type) {
23929
+ return window.localStorage.removeItem[this.getAppVariableName(type)];
23930
+ }
23931
+ destroy() {
23932
+ window.localStorage.removeItem(TOKEN_KEY);
23933
+ }
23934
+ getAppVariableName(attributeName) {
23935
+ return this.environment.appName + '__' + attributeName;
23936
+ }
23937
+ }
23938
+ AppLandingMultiLayoutLocalStorage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppLandingMultiLayoutLocalStorage, deps: [{ token: APP_ENVIRONMENT }], target: i0.ɵɵFactoryTarget.Injectable });
23939
+ AppLandingMultiLayoutLocalStorage.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppLandingMultiLayoutLocalStorage, providedIn: 'root' });
23940
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: AppLandingMultiLayoutLocalStorage, decorators: [{
23941
+ type: Injectable,
23942
+ args: [{
23943
+ providedIn: 'root',
23944
+ }]
23945
+ }], ctorParameters: function () {
23946
+ return [{ type: undefined, decorators: [{
23947
+ type: Inject,
23948
+ args: [APP_ENVIRONMENT]
23949
+ }] }];
23950
+ } });
23951
+
23952
+ class MultiLayoutLandingComponentComponent {
23953
+ constructor(commonService, activatedRoute, viewContainerRef, componentFactoryResolver, service, toastr, router, datasetService, storage, cdr) {
23954
+ this.commonService = commonService;
23955
+ this.activatedRoute = activatedRoute;
23956
+ this.viewContainerRef = viewContainerRef;
23957
+ this.componentFactoryResolver = componentFactoryResolver;
23958
+ this.service = service;
23959
+ this.toastr = toastr;
23960
+ this.router = router;
23961
+ this.datasetService = datasetService;
23962
+ this.storage = storage;
23963
+ this.cdr = cdr;
23964
+ this.dashbord_container = [];
23965
+ this.widget_width = ['w-full', 'w-1/2', 'w-1/3', 'w-1/4', 'w-1/5', 'w-1/6'];
23966
+ this.page_title = 'Dashboard';
23967
+ this.dynamicComponentRefs = [];
23968
+ this.componentClassMap = {
23969
+ GammaAdvanceChartComponent,
23970
+ GammaTodayPreviousComponent,
23971
+ AppAdvanceHeaderComponent,
23972
+ GammaTableWithPercentageComponent,
23973
+ GammSingleNumberCardComponent,
23974
+ GammaAdvanceOperatorTableComponent,
23975
+ AdvanceWidgetHeaderFilterComponent,
23976
+ GammaGeoChartComponent,
23977
+ GammaHeatChartComponent
23978
+ };
23979
+ this.dataSourceMataData = [];
23980
+ this.queryType = "mongo";
23981
+ this.dataSetModal = [];
23982
+ this.componentConfigDataSource = [];
23983
+ this.dataSourceModal = {};
23984
+ this.isDashBoardContent = false;
23985
+ this.selectedViewFormComponent = {};
23986
+ this.addedwidGetConfig = {
23987
+ "display": true,
23988
+ "widgetTitle": "",
23989
+ "width": "",
23990
+ "height": ""
23991
+ };
23992
+ this.dashBoardWidgetConfig = [];
23993
+ this.selectedIndexObjForChart = {};
23994
+ this.selectedContainerObjectForChart = {};
23995
+ this.uniqueDataSetObject = {};
23996
+ this.isDashBoardContentTypeView = true;
23997
+ this.allWidgetByDataset = [];
23998
+ this.stateDataSource = new Map();
23999
+ this.contextMenuDataSource = [];
24000
+ this.havingDataObject = {};
24001
+ this.globalDefaultFilter = {};
24002
+ this.defaultViewIds = [];
24003
+ this.defaultViewIdsOnPageRefresh = [];
24004
+ this.defaultMatchedFilters = { operationFilter: { startDate: "", endDate: "" } };
24005
+ this.isDefaultFilterParams = false;
24006
+ }
24007
+ ngOnInit() {
24008
+ this.loadingModal = true;
24009
+ this.pageId = this.activatedRoute.snapshot.queryParams['pageId'];
24010
+ this.getPadeDataSource(false);
24011
+ }
24012
+ getFiltersForTemplate(filter) {
24013
+ return __awaiter(this, void 0, void 0, function* () {
24014
+ this.filters = filter;
24015
+ filter.operationFilter['startDate'] = filter.startDate;
24016
+ filter.operationFilter['endDate'] = filter.endDate;
24017
+ this.loadingModal = true;
24018
+ if (filter.filterObjects && Object.entries(filter.filterObjects).length !== 0) {
24019
+ if (Array.isArray(this.dashBoardWidgetConfig.widgets)) {
24020
+ const index = this.dashBoardWidgetConfig.widgets.findIndex((widget) => widget.widgetId === filter.filterObjects.widgetId);
24021
+ if (index !== -1) {
24022
+ this.dashBoardWidgetConfig.widgets[index] = filter.filterObjects;
24023
+ }
24024
+ else {
24025
+ }
24026
+ }
24027
+ }
24028
+ else {
24029
+ yield this.getPadeDataSource(true);
24030
+ }
24031
+ this.uniqueDataSetObject = {};
24032
+ let apiCalls = [];
24033
+ this.allWidgetByDataset.forEach(view => {
24034
+ view.datasetIds.forEach(id => {
24035
+ if (view.widgetId == filter.filterObjects.widgetId) {
24036
+ let found = this.dataSetModal.find(d => d.datasetId === id);
24037
+ let widgetFilter = this.getWidgetFilterItems(filter.filterObjects.filters.filterItems);
24038
+ view.filters = widgetFilter;
24039
+ if (found) {
24040
+ apiCalls.push(this.datasetService.getDataFromDataSet(found, id, widgetFilter));
24041
+ }
24042
+ }
24043
+ });
24044
+ });
24045
+ Promise.all(apiCalls).then(() => {
24046
+ this.globalDefaultFilter = filter;
24047
+ this.uniqueDataSetObject = this.datasetService.getUniqueDataSetObject();
24048
+ this.createDivElements(this.uniqueDataSetObject, true);
24049
+ this.cdr.detectChanges();
24050
+ this.loadingModal = false;
24051
+ });
24052
+ });
24053
+ }
24054
+ getWidgetFilterItems(widgetFilterData) {
24055
+ let apiJsonObject = {};
24056
+ apiJsonObject['operationFilter'] = {};
24057
+ widgetFilterData.forEach(element => {
24058
+ if (element.filterType == 'date' || element.filterType == 'datetime') {
24059
+ apiJsonObject['operationFilter'][element.apiName] = moment$1(element.filterDataSourceValue).format(element.momentFormat);
24060
+ }
24061
+ else {
24062
+ if ((typeof element.filterDataSourceValue === "string" && element.filterDataSourceValue !== "") ||
24063
+ (Array.isArray(element.filterDataSourceValue) && element.filterDataSourceValue.length > 0)) {
24064
+ if (element.operatorName !== "") {
24065
+ if (element.filterType == "content") {
24066
+ apiJsonObject['operationFilter'][element.operatorName] = element.filterDataSourceValue;
24067
+ }
24068
+ if (element.filterType == "single") {
24069
+ apiJsonObject['operationFilter'][element.operatorName] = element.filterDataSourceValue;
24070
+ }
24071
+ else {
24072
+ apiJsonObject['operationFilter'][element.operatorName] = Array.isArray(element.filterDataSourceValue) ? element.filterDataSourceValue : [element.filterDataSourceValue];
24073
+ }
24074
+ }
24075
+ else {
24076
+ apiJsonObject[element.apiName] = element.filterDataSourceValue;
24077
+ }
24078
+ }
24079
+ }
24080
+ });
24081
+ return apiJsonObject;
24082
+ }
24083
+ getPadeDataSource(context) {
24084
+ return new Promise((resolve, reject) => {
24085
+ this.service.getAppPageDetailConfig(this.pageId).subscribe({
24086
+ next: (data) => {
24087
+ this.pageTitle = data.pageName;
24088
+ this.dashBoardWidgetConfig = data;
24089
+ if (!context) {
24090
+ if (Object.keys(this.uniqueDataSetObject).length != 0) {
24091
+ this.createDivElements(this.uniqueDataSetObject, false);
24092
+ }
24093
+ this.getComponentConfigSet();
24094
+ }
24095
+ resolve();
24096
+ },
24097
+ error: (err) => {
24098
+ this.toastr.error('Unexpected Server Exception. Please contact System Admin.', 'Error');
24099
+ reject(err);
24100
+ }
24101
+ });
24102
+ });
24103
+ }
24104
+ getPadeDataSourceByfilet(context, widgetObject) {
24105
+ return new Promise((resolve, reject) => {
24106
+ this.service.getAppPageDetailConfig(this.pageId).subscribe({
24107
+ next: (data) => {
24108
+ this.pageTitle = data.pageName;
24109
+ if (Array.isArray(data.widgets)) {
24110
+ const index = data.widgets.findIndex((widget) => widget.widgetId === widgetObject.widgetId);
24111
+ if (index !== -1) {
24112
+ data.widgets[index] = widgetObject;
24113
+ }
24114
+ else {
24115
+ }
24116
+ }
24117
+ this.dashBoardWidgetConfig = data;
24118
+ if (!context) {
24119
+ if (Object.keys(this.uniqueDataSetObject).length !== 0) {
24120
+ this.createDivElements(this.uniqueDataSetObject, false);
24121
+ }
24122
+ this.getComponentConfigSet();
24123
+ }
24124
+ resolve();
24125
+ },
24126
+ error: (err) => {
24127
+ this.toastr.error('Unexpected Server Exception. Please contact System Admin.', 'Error');
24128
+ reject(err);
24129
+ }
24130
+ });
24131
+ });
24132
+ }
24133
+ getComponentConfigSet() {
24134
+ let dataset = this.service.getAppDatasetConfigs();
24135
+ let viewComponent = this.service.getAppViewConfigs();
24136
+ this.defaultViewIds = [];
24137
+ forkJoin({
24138
+ datasetConfig: dataset,
24139
+ viewConfig: viewComponent
24140
+ }).subscribe({
24141
+ next: (({ datasetConfig, viewConfig }) => {
24142
+ this.componentConfigDataSource = viewConfig;
24143
+ this.dataSetModal = datasetConfig;
24144
+ this.allWidgetByDataset = [];
24145
+ const _a = this.activatedRoute.snapshot.queryParams, { pageId, startDate, endDate } = _a, params = __rest(_a, ["pageId", "startDate", "endDate"]);
24146
+ this.dashBoardWidgetConfig.widgets.forEach(widget => {
24147
+ var _a;
24148
+ let defaultFilters = { operationFilter: Object.assign({ startDate: "", endDate: "" }, params) };
24149
+ widget.filters.filterItems.forEach(element => {
24150
+ debugger;
24151
+ if (element.filterType === 'date' || element.filterType === 'datetime') {
24152
+ if (element.defaultFilterType === "dynamic" && element.momentFunction !== "" && element.defaultFilterValue !== "" && element.momentFormat !== "") {
24153
+ if (element.momentFunction == "monthPicker") {
24154
+ let [count, unit] = element.defaultFilterValue.split(',');
24155
+ if (element.apiName === "endDate") {
24156
+ if (element.display) {
24157
+ defaultFilters.operationFilter.endDate = (endDate && endDate !== '') ? endDate : moment$1().subtract(parseInt(count), unit).endOf(unit).format(element.momentFormat);
24158
+ this.defaultEndDate = moment$1().subtract(parseInt(count), unit).endOf(unit).format(element.momentFormat);
24159
+ }
24160
+ }
24161
+ if (element.apiName === "startDate") {
24162
+ defaultFilters.operationFilter.startDate = (startDate && startDate !== '') ? startDate : moment$1().subtract(parseInt(count), unit).startOf(unit).format(element.momentFormat);
24163
+ ;
24164
+ }
24165
+ }
24166
+ else if (element.momentFunction == "weekPicker") {
24167
+ if (element.apiName === "endDate") {
24168
+ if (element.display) {
24169
+ defaultFilters.operationFilter.endDate = (endDate && endDate !== '') ? endDate : moment$1().endOf('week').format(element.momentFormat);
24170
+ this.defaultEndDate = moment$1().endOf('week').format(element.momentFormat);
24171
+ }
24172
+ }
24173
+ if (element.apiName === "startDate") {
24174
+ defaultFilters.operationFilter.startDate = (startDate && startDate !== '') ? startDate : moment$1().startOf('week').format(element.momentFormat);
24175
+ this.defaultStartDate = moment$1().startOf('week').format(element.momentFormat);
24176
+ }
24177
+ }
24178
+ else {
24179
+ let [count, unit] = element.defaultFilterValue.split(',');
24180
+ if (element.apiName === "endDate") {
24181
+ if (element.display) {
24182
+ defaultFilters.operationFilter.endDate = (endDate && endDate !== '') ? endDate : moment$1()[element.momentFunction](parseInt(count), unit).format(element.momentFormat);
24183
+ this.defaultEndDate = moment$1()[element.momentFunction](parseInt(count), unit).format(element.momentFormat);
24184
+ }
24185
+ }
24186
+ if (element.apiName === "startDate") {
24187
+ defaultFilters.operationFilter.startDate = (startDate && startDate !== '') ? startDate : moment$1()[element.momentFunction](parseInt(count), unit).format(element.momentFormat);
24188
+ this.defaultStartDate = moment$1()[element.momentFunction](parseInt(count), unit).format(element.momentFormat);
24189
+ }
24190
+ }
24191
+ }
24192
+ else if (element.defaultFilterType === "static" && element.defaultFilterValue !== "") {
24193
+ if (element.apiName === "endDate") {
24194
+ if (element.display) {
24195
+ defaultFilters.operationFilter.endDate = element.defaultFilterValue;
24196
+ this.defaultEndDate = element.defaultFilterValue;
24197
+ }
24198
+ }
24199
+ if (element.apiName === "startDate") {
24200
+ defaultFilters.operationFilter.startDate = element.defaultFilterValue;
24201
+ this.defaultStartDate = element.defaultFilterValue;
24202
+ }
24203
+ }
24204
+ }
24205
+ else {
24206
+ if ((typeof element.filterDataSourceValue === "string" && element.filterDataSourceValue !== "") ||
24207
+ (Array.isArray(element.filterDataSourceValue) && element.filterDataSourceValue.length > 0)) {
24208
+ if (element.operatorName !== "") {
24209
+ defaultFilters.operationFilter[element.operatorName] = Array.isArray(element.filterDataSourceValue)
24210
+ ? element.filterDataSourceValue
24211
+ : [element.filterDataSourceValue];
24212
+ }
24213
+ else {
24214
+ defaultFilters.operationFilter[element.apiName] = element.filterDataSourceValue.join(",");
24215
+ }
24216
+ }
24217
+ }
24218
+ });
24219
+ let datasetIds = new Set();
24220
+ let viewIds = new Set();
24221
+ let datasetIdsSet = new Set();
24222
+ widget.widgetNode.forEach(node => {
24223
+ if (node.nodeProperties.display) {
24224
+ node.compConfig.viewConfig.forEach(view => {
24225
+ var _a;
24226
+ this.defaultViewIds.push(view.viewId);
24227
+ const foundObject = (_a = this.defaultViewIdsOnPageRefresh) === null || _a === void 0 ? void 0 : _a.find(item => item.viewId === view.viewId);
24228
+ const derivedFilters = foundObject ? this.getDrildownFilter(foundObject, defaultFilters) : defaultFilters;
24229
+ let obj = {
24230
+ "filters": JSON.parse(JSON.stringify(derivedFilters)),
24231
+ "keyToPass": [],
24232
+ "drillDownType": "natural",
24233
+ "drilldownFrom": ""
24234
+ };
24235
+ this.stateDataSource.set(view.viewId, obj);
24236
+ let node = {
24237
+ datasetId: view.datasetId,
24238
+ viewId: view.viewId,
24239
+ filter: derivedFilters
24240
+ };
24241
+ datasetIdsSet.add(view.datasetId);
24242
+ datasetIds.add(node);
24243
+ viewIds.add(view.viewId);
24244
+ });
24245
+ }
24246
+ else {
24247
+ node.compConfig.viewConfig.forEach(view => {
24248
+ this.contextMenuDataSource.push({ viewId: view.viewId, viewName: node.nodeProperties.widgetTitle, displayKey: view.kpiConfig.keyToPass });
24249
+ });
24250
+ }
24251
+ });
24252
+ if ((_a = this.defaultViewIdsOnPageRefresh) === null || _a === void 0 ? void 0 : _a.length) {
24253
+ const newViews = this.defaultViewIdsOnPageRefresh.map(item => item.viewId);
24254
+ this.defaultViewIds = [...this.defaultViewIds, ...newViews.filter(item => !this.defaultViewIds.includes(item))];
24255
+ }
24256
+ let uniquedatasetIds = Array.from(datasetIdsSet);
24257
+ let obj = {
24258
+ widgetId: widget.widgetId,
24259
+ pageId: widget.pageId,
24260
+ filters: defaultFilters,
24261
+ datasetIds: uniquedatasetIds
24262
+ };
24263
+ this.allWidgetByDataset.push(obj);
24264
+ });
24265
+ this.uniqueDataSetObject = {};
24266
+ let apiCalls = [];
24267
+ this.allWidgetByDataset.forEach(view => {
24268
+ view.datasetIds.forEach(id => {
24269
+ let found = datasetConfig.find(d => d.datasetId === id);
24270
+ if (found) {
24271
+ apiCalls.push(this.datasetService.getDataFromDataSet(found, id, view.filters));
24272
+ }
24273
+ });
24274
+ });
24275
+ Promise.all(apiCalls).then(() => {
24276
+ this.uniqueDataSetObject = this.datasetService.getUniqueDataSetObject();
24277
+ this.createDivElements(this.uniqueDataSetObject, false);
24278
+ this.loadingModal = false;
24279
+ });
24280
+ }), error: (err) => {
24281
+ this.loadingModal = false;
24282
+ this.toastr.error('Unexpected Server Exception. Please contact System Admin.', 'Error');
24283
+ }
24284
+ });
24285
+ }
24286
+ getDataSet() {
24287
+ this.service.getAppDatasetConfigs().subscribe({
24288
+ next: (data) => {
24289
+ this.dataSettableDataSource = data;
24290
+ }, error: (err) => {
24291
+ this.toastr.error('Unexpected Server Exception. Please contact System Admin.', 'Dataset Creation');
24292
+ }
24293
+ });
24294
+ }
24295
+ createDivElements(datasetById, context) {
24296
+ return __awaiter(this, void 0, void 0, function* () {
24297
+ const container = this.dynamicContainer.nativeElement;
24298
+ container.innerHTML = "";
24299
+ const context_filter = this.dashBoardWidgetConfig.filters ? this.dashBoardWidgetConfig.filters.filterItems : null;
24300
+ this.dashBoardWidgetConfig.widgets.forEach((div) => __awaiter(this, void 0, void 0, function* () {
24301
+ const rowDiv = document.createElement('div');
24302
+ let w_height = (div.widgetProperties.height == "") ? "h-auto" : 'h-[' + div.widgetProperties.height + ']';
24303
+ rowDiv.classList.add(div.widgetProperties.width, w_height);
24304
+ const filterDiv = document.createElement('div');
24305
+ const filterItems = (div.filters) ? div.filters.filterItems : [];
24306
+ debugger;
24307
+ this.loadFilterComponent(div, filterDiv, filterItems, context_filter);
24308
+ rowDiv.appendChild(filterDiv);
24309
+ if (div.widgetNode.length != 0) {
24310
+ let mainItemDiv = rowDiv.querySelector('.flex.flex-wrap');
24311
+ if (context && mainItemDiv) {
24312
+ mainItemDiv.innerHTML = "";
24313
+ }
24314
+ else {
24315
+ mainItemDiv = document.createElement('div');
24316
+ mainItemDiv.classList.add("flex", "flex-wrap");
24317
+ rowDiv.appendChild(mainItemDiv);
24318
+ }
24319
+ this.loadWidgetNodes(div, mainItemDiv, datasetById);
24320
+ }
24321
+ container.appendChild(rowDiv);
24322
+ }));
24323
+ });
24324
+ }
24325
+ loadWidgetNodes(div, mainItemDiv, datasetById) {
24326
+ this.mainPageDivElement = mainItemDiv;
24327
+ div.widgetNode.forEach(item => {
24328
+ this.loadSingleWidgetNode(item, mainItemDiv, datasetById);
24329
+ });
24330
+ }
24331
+ loadSingleWidgetNode(item, containerElement, datasetById) {
24332
+ const elementId = `id-${item.id}`;
24333
+ const existingElement = document.querySelector(`#${elementId}`);
24334
+ if (item.nodeProperties.display && !existingElement) {
24335
+ const w_height = item.nodeProperties.height === "" ? "h-auto" : `h-[${item.nodeProperties.height}]`;
24336
+ const itemDiv = document.createElement('div');
24337
+ itemDiv.id = elementId;
24338
+ itemDiv.classList.add(item.nodeProperties.width, w_height, 'mb-2');
24339
+ if (item.nodeProperties.widgetTitle !== "") {
24340
+ const widgetDiv = this.getWidgetTitleDiv(item);
24341
+ itemDiv.appendChild(widgetDiv);
24342
+ }
24343
+ const innerDiv = document.createElement('div');
24344
+ innerDiv.classList.add('rounded', 'justify-center', 'items-center', 'border', 'p-1', 'm-1', 'flex', 'flex-row');
24345
+ item.compConfig.viewConfig.forEach(element => {
24346
+ element.kpiConfig['dataSource'] = datasetById[element.datasetId];
24347
+ element.kpiConfig['contextMenu'] = this.contextMenuDataSource;
24348
+ element['titleParams'] = item.nodeProperties.widgetParams || "";
24349
+ const comp_object = this.findWidgetById(this.dashBoardWidgetConfig.widgets, item.id);
24350
+ this.loadDynamicComponent(element, comp_object, itemDiv);
24351
+ });
24352
+ containerElement.appendChild(itemDiv);
24353
+ if (!this.isDashBoardContentTypeView) {
24354
+ itemDiv.appendChild(innerDiv);
24355
+ }
24356
+ }
24357
+ else if (existingElement) {
24358
+ const itemDiv = existingElement;
24359
+ itemDiv.innerHTML = '';
24360
+ if (item.nodeProperties.widgetTitle !== "") {
24361
+ const widgetDiv = this.getWidgetTitleDiv(item);
24362
+ itemDiv.appendChild(widgetDiv);
24363
+ }
24364
+ item.compConfig.viewConfig.forEach(element => {
24365
+ element.kpiConfig['dataSource'] = datasetById[element.datasetId];
24366
+ element.kpiConfig['contextMenu'] = this.contextMenuDataSource;
24367
+ element['titleParams'] = item.nodeProperties.widgetParams || "";
24368
+ const comp_object = this.findWidgetById(this.dashBoardWidgetConfig.widgets, item.id);
24369
+ this.loadDynamicComponent(element, comp_object, itemDiv);
24370
+ });
24371
+ if (!this.isDashBoardContentTypeView) {
24372
+ const innerDiv = document.createElement('div');
24373
+ innerDiv.classList.add('rounded', 'justify-center', 'items-center', 'border', 'p-1', 'm-1', 'flex', 'flex-row');
24374
+ itemDiv.appendChild(innerDiv);
24375
+ }
24376
+ }
24377
+ }
24378
+ getWidgetTitleDiv(item) {
24379
+ var _a;
24380
+ const widgetDiv = document.createElement('div');
24381
+ widgetDiv.classList.add('flex', 'items-center', 'justify-between', 'font-bold', 'text-md', 'text-gray-900', 'dark:text-white', 'border-b', 'p-3', 'dark:bg-gray-800', 'bg-gray-200', 'mx-2', 'rounded-t-lg', 'relative');
24382
+ const titleDiv = document.createElement('div');
24383
+ titleDiv.classList.add('relative', 'group');
24384
+ let params = "";
24385
+ if (!item.nodeProperties.widgetParams && ((_a = this.defaultViewIdsOnPageRefresh) === null || _a === void 0 ? void 0 : _a.length)) {
24386
+ params = this.getTitleParams(item) || "";
24387
+ }
24388
+ else {
24389
+ params = item.nodeProperties.widgetParams || "";
24390
+ }
24391
+ const widgetTitle = item.nodeProperties.widgetTitle;
24392
+ const tooltipMatch = widgetTitle.match(/\$t\{([\s\S]*?)\}/);
24393
+ const displayTitle = widgetTitle.replace(/\$t\{[\s\S]*?\}/g, '').trim();
24394
+ titleDiv.innerText = displayTitle + params;
24395
+ if (tooltipMatch) {
24396
+ const tooltipContent = tooltipMatch[1].trim();
24397
+ const tooltipDiv = document.createElement('div');
24398
+ tooltipDiv.classList.add('absolute', 'left-0', 'bottom-full', 'mb-2', 'w-max', 'max-w-xs', 'bg-black', 'text-white', 'text-sm', 'p-2', 'rounded-lg', 'shadow-lg', 'opacity-0', 'group-hover:opacity-100', 'transition-opacity', 'duration-300', 'z-50');
24399
+ tooltipDiv.innerHTML = tooltipContent;
24400
+ titleDiv.appendChild(tooltipDiv);
24401
+ }
24402
+ widgetDiv.appendChild(titleDiv);
24403
+ const searchContainerDiv = document.createElement('div');
24404
+ searchContainerDiv.classList.add('flex', 'items-center', 'ml-auto', 'space-x-2', 'justify-end');
24405
+ if (item.nodeProperties.isWidgetFilter) {
24406
+ const searchButton = document.createElement('button');
24407
+ searchButton.innerText = 'Filter';
24408
+ searchButton.classList.add('px-3', 'py-1.5', 'bg-blue-600', 'mr-2', 'text-white', 'rounded', 'hover:bg-blue-700');
24409
+ this.nodeproperticeFilterDataSource = {};
24410
+ this.nodeproperticeFilterDataSource['viewConfig'] = item;
24411
+ this.nodeproperticeFilterDataSource['havingConfig'] = [];
24412
+ searchButton.addEventListener('click', () => {
24413
+ this.isWidgetFilters = true;
24414
+ let filtePropertice = [];
24415
+ item.compConfig.viewConfig.forEach(element => {
24416
+ let key_name = this.uniqueDataSetObject[element.datasetId][0];
24417
+ Object.keys(key_name).forEach(key => {
24418
+ if (!filtePropertice.includes(key)) {
24419
+ filtePropertice.push(key);
24420
+ }
24421
+ });
24422
+ });
24423
+ filtePropertice.forEach(element => {
24424
+ let obj = {
24425
+ columnName: element,
24426
+ dataType: "float",
24427
+ operator: "",
24428
+ value: "",
24429
+ };
24430
+ this.nodeproperticeFilterDataSource.havingConfig.push(obj);
24431
+ });
24432
+ });
24433
+ searchContainerDiv.appendChild(searchButton);
24434
+ }
24435
+ if (item.filterId) {
24436
+ this.nodeproperticeFilterDataSource = {};
24437
+ this.nodeproperticeFilterDataSource['viewConfig'] = item;
24438
+ this.nodeproperticeFilterDataSource['havingConfig'] = [];
24439
+ this.service.getAppFilterConfig(item.filterId).subscribe({
24440
+ next: (data) => {
24441
+ const filterDiv = document.createElement('div');
24442
+ this.loadWidgetFilterComponent(item, widgetDiv, data.filterItems, item);
24443
+ }, error: (err) => {
24444
+ }
24445
+ });
24446
+ }
24447
+ if (item.nodeProperties.nodefilters && item.nodeProperties.nodefilters.length !== 0) {
24448
+ item.nodeProperties.nodefilters.forEach(filter => {
24449
+ const filterDiv = document.createElement('div');
24450
+ filterDiv.classList.add('flex', 'items-center');
24451
+ if (filter.input_type === 'text') {
24452
+ const textBox = document.createElement('input');
24453
+ textBox.type = 'text';
24454
+ textBox.placeholder = `Enter ${filter.local_column}`;
24455
+ textBox.classList.add('px-2', 'py-1.5', 'rounded', 'border', 'mr-1', 'border-gray-500', 'text-gray-900', 'bg-gray-200', 'dark:bg-gray-700', 'dark:text-white');
24456
+ const searchButton = document.createElement('button');
24457
+ searchButton.innerText = 'Search';
24458
+ searchButton.classList.add('px-3', 'py-1.5', 'bg-blue-600', 'mr-2', 'text-white', 'rounded', 'hover:bg-blue-700');
24459
+ const separerotButton = document.createElement('div');
24460
+ separerotButton.innerHTML = '|';
24461
+ searchButton.addEventListener('click', () => {
24462
+ const searchTerm = textBox.value;
24463
+ this.getRearchResultFromInputBox(searchTerm, item, filter);
24464
+ });
24465
+ filterDiv.appendChild(textBox);
24466
+ filterDiv.appendChild(searchButton);
24467
+ filterDiv.appendChild(separerotButton);
24468
+ }
24469
+ searchContainerDiv.appendChild(filterDiv);
24470
+ });
24471
+ }
24472
+ widgetDiv.appendChild(searchContainerDiv);
24473
+ return widgetDiv;
24474
+ }
24475
+ loadDynamicComponent(data, indexObj, containerElement) {
24476
+ const componentClass = this.componentClassMap[data.kpiConfig.componentName];
24477
+ this.CompRefs = this.viewContainerRef.createComponent(componentClass);
24478
+ const dynamicComponentInstance = this.CompRefs.instance;
24479
+ dynamicComponentInstance.chartDataSource = data;
24480
+ dynamicComponentInstance.kpi_name = "";
24481
+ if (data.kpiConfig.componentName == "GammaAdvanceOperatorTableComponent" || data.kpiConfig.componentName == "GammaTableWithPercentageComponent") {
24482
+ dynamicComponentInstance.oRowClick.subscribe((value) => {
24483
+ this.getRowClick(value);
24484
+ });
24485
+ dynamicComponentInstance.onrightClickContextSelection.subscribe((value) => {
24486
+ this.getContextClick(value);
24487
+ });
24488
+ }
24489
+ else if (data.kpiConfig.componentName == "GammaAdvanceChartComponent") {
24490
+ dynamicComponentInstance.onChartPointClick.subscribe((value) => {
24491
+ this.getRowClick(value);
24492
+ });
24493
+ }
24494
+ const cssClass = "w-full";
24495
+ this.CompRefs.location.nativeElement.classList.add(cssClass);
24496
+ containerElement.appendChild(this.CompRefs.location.nativeElement);
24497
+ }
24498
+ loadFilterComponent(indexObj, containerElement, filterItems, context_filter) {
24499
+ let userName = this.storage.get('user_name');
24500
+ console.log(this.allWidgetByDataset, "allWidgetByDataset");
24501
+ let selectedDates = {};
24502
+ this.allWidgetByDataset.forEach(view => {
24503
+ if (view.widgetId == indexObj.widgetId) {
24504
+ selectedDates = { startDate: view.filters.operationFilter['startDate'], endDate: view.filters.operationFilter['endDate'] };
24505
+ }
24506
+ });
24507
+ const componentClass = this.componentClassMap['AppAdvanceHeaderComponent'];
24508
+ this.CompRefs = this.viewContainerRef.createComponent(componentClass);
24509
+ const dynamicComponentInstance = this.CompRefs.instance;
24510
+ dynamicComponentInstance.selectedDates = selectedDates;
24511
+ dynamicComponentInstance.filterItems = filterItems;
24512
+ dynamicComponentInstance.filterObjects = indexObj;
24513
+ dynamicComponentInstance.contextFilterItems = context_filter;
24514
+ dynamicComponentInstance.pageTitle = indexObj.widgetName;
24515
+ dynamicComponentInstance.bread_crumbs_container = this.kpi_breadcrumbs_container;
24516
+ dynamicComponentInstance.isEditButton = (userName && userName == "admin") ? true : false;
24517
+ dynamicComponentInstance.isAdvanceButton = true;
24518
+ dynamicComponentInstance.getFilterPageConfig.subscribe((value) => {
24519
+ this.getFiltersForTemplate(value);
24520
+ });
24521
+ dynamicComponentInstance.getOperatorName.subscribe((value) => {
24522
+ this.loadDataByOperator(value);
24523
+ });
24524
+ dynamicComponentInstance.getContextFilterData.subscribe((value) => {
24525
+ this.getContextFilterData(value);
24526
+ });
24527
+ indexObj.compConfig.dynamicComponentRefs.push(this.CompRefs);
24528
+ const cssClass = "w-full";
24529
+ this.CompRefs.location.nativeElement.classList.add(cssClass);
24530
+ containerElement.appendChild(this.CompRefs.location.nativeElement);
24531
+ }
24532
+ loadWidgetFilterComponent(indexObj, containerElement, filterItems, viewIds) {
24533
+ let selectedDates = { startDate: this.defaultStartDate, endDate: this.defaultEndDate };
24534
+ const componentClass = this.componentClassMap['AdvanceWidgetHeaderFilterComponent'];
24535
+ this.CompRefs = this.viewContainerRef.createComponent(componentClass);
24536
+ const dynamicComponentInstance = this.CompRefs.instance;
24537
+ dynamicComponentInstance.selectedDates = selectedDates;
24538
+ dynamicComponentInstance.filterItems = filterItems;
24539
+ dynamicComponentInstance.viewIds = viewIds;
24540
+ dynamicComponentInstance.getWidgetFilterConfig.subscribe((value) => {
24541
+ this.getWidgetFilterForTemplate(value);
24542
+ });
24543
+ indexObj.compConfig.dynamicComponentRefs.push(this.CompRefs);
24544
+ containerElement.appendChild(this.CompRefs.location.nativeElement);
24545
+ }
24546
+ getContextClick(event) {
24547
+ const stateData = Array.from(this.stateDataSource.keys());
24548
+ const currentViewIndex = stateData.indexOf(event.viewId);
24549
+ const deletedViewIds = [];
24550
+ for (let i = currentViewIndex + 1; i < stateData.length; i++) {
24551
+ deletedViewIds.push(stateData[i]);
24552
+ }
24553
+ this.loadingModal = true;
24554
+ this.dashBoardWidgetConfig.widgets.forEach(element => {
24555
+ element.widgetNode.forEach((node, nodeIndex) => {
24556
+ if (this.getElementOfCurrentView(node, event.drilldownTo)) {
24557
+ let view = element.widgetNode[nodeIndex];
24558
+ let apiCalls = [];
24559
+ let chatApiCall = [];
24560
+ let appliedFilters = this.getSetOperatorFilter(event, this.stateDataSource.get(event.drilldownFrom));
24561
+ view.compConfig.viewConfig.forEach(contentView => {
24562
+ let found = this.dataSetModal.find(d => d.datasetId === contentView.datasetId);
24563
+ if (found) {
24564
+ apiCalls.push(this.datasetService.getDataFromDataSet(found, contentView.datasetId, appliedFilters));
24565
+ }
24566
+ });
24567
+ Promise.all(apiCalls).then(() => {
24568
+ this.uniqueDataSetObject = this.datasetService.getUniqueDataSetObject();
24569
+ for (let entry of deletedViewIds) {
24570
+ element.widgetNode.forEach(viewValue => {
24571
+ viewValue.compConfig.viewConfig.forEach(viewId => {
24572
+ if (viewId.viewId == entry) {
24573
+ const exists = this.contextMenuDataSource.some(item => item.viewId === viewId.viewId);
24574
+ if (!exists) {
24575
+ this.contextMenuDataSource.push({
24576
+ viewId: viewId.viewId,
24577
+ viewName: node.nodeProperties.widgetTitle,
24578
+ displayKey: viewId.kpiConfig.keyToPass
24579
+ });
24580
+ }
24581
+ const startData = this.stateDataSource.get(entry);
24582
+ if (startData) {
24583
+ this.stateDataSource.delete(entry);
24584
+ }
24585
+ viewValue.nodeProperties['display'] = false;
24586
+ const prefixedId = `id-${viewValue.id}`;
24587
+ const elementToHide = document.querySelector(`#${prefixedId}`);
24588
+ if (elementToHide) {
24589
+ elementToHide.remove();
24590
+ }
24591
+ }
24592
+ });
24593
+ });
24594
+ }
24595
+ this.contextMenuDataSource = this.contextMenuDataSource.filter(e => e.displayKey !== event.keyToPass);
24596
+ view.compConfig.viewConfig.forEach(val => {
24597
+ let obj = {
24598
+ "filters": appliedFilters,
24599
+ "keyToPass": this.updateOperatorData(event.keyToPass, event.data),
24600
+ "drillDownType": event.drillDownType,
24601
+ "drilldownFrom": event.drilldownFrom
24602
+ };
24603
+ this.stateDataSource.set(val['viewId'], obj);
24604
+ });
24605
+ view.nodeProperties['display'] = true;
24606
+ view.nodeProperties['widgetParams'] = event.tableTitle;
24607
+ const prefixedId = `id-${view.id}`;
24608
+ const containerElement = document.querySelector(`#${prefixedId}`);
24609
+ this.loadSingleWidgetNode(view, this.mainPageDivElement, this.uniqueDataSetObject);
24610
+ setTimeout(() => {
24611
+ this.scrollToBottom(this.mainPageDivElement);
24612
+ }, 200);
24613
+ });
24614
+ }
24615
+ else {
24616
+ }
24617
+ });
24618
+ });
24619
+ }
24620
+ getRowClick(event) {
24621
+ return __awaiter(this, void 0, void 0, function* () {
24622
+ const stateData = Array.from(this.stateDataSource.keys());
24623
+ const currentViewIndex = stateData.indexOf(event.viewId);
24624
+ const deletedViewIds = [];
24625
+ for (let i = currentViewIndex + 1; i < stateData.length; i++) {
24626
+ deletedViewIds.push(stateData[i]);
24627
+ }
24628
+ const hourlyNode = this.dashBoardWidgetConfig.widgets
24629
+ .map(widget => widget.widgetNode.find(node => this.getHourlyData(node)))
24630
+ .find(node => node);
24631
+ if (hourlyNode && event.keyToPass.includes("recordDate")) {
24632
+ this.getViewByRowCLickForHourlyChart(event, hourlyNode);
24633
+ }
24634
+ const currentViewNode = this.dashBoardWidgetConfig.widgets
24635
+ .map(widget => widget.widgetNode.find(node => this.getElementOfCurrentView(node, event.viewId)))
24636
+ .find(node => node);
24637
+ const queryParams = this.activatedRoute.snapshot.queryParamMap;
24638
+ if (currentViewNode) {
24639
+ const drildownsForCurrentView = [];
24640
+ const drildownsForCurrentPage = [];
24641
+ currentViewNode.compConfig.viewConfig.forEach((element) => __awaiter(this, void 0, void 0, function* () {
24642
+ var _a;
24643
+ if (element.kpiConfig.viewProperties.enableClickEvent) {
24644
+ if (((_a = element.kpiConfig.viewProperties.clickEventOptions) === null || _a === void 0 ? void 0 : _a.eventType) !== undefined &&
24645
+ element.kpiConfig.viewProperties.clickEventOptions.eventType !== "") {
24646
+ let eventType = element.kpiConfig.viewProperties.clickEventOptions.eventType;
24647
+ let associatedViews = element.kpiConfig.viewProperties.clickEventOptions.associatedViews;
24648
+ let associatedPage = (element.kpiConfig.viewProperties.clickEventOptions.associatedPage) ? element.kpiConfig.viewProperties.clickEventOptions.associatedPage : "";
24649
+ let clickEventOptions = element.kpiConfig.viewProperties.clickEventOptions;
24650
+ if (eventType == 'optionalDrillDown') {
24651
+ if (associatedViews && associatedViews.length != 0) {
24652
+ for (let viewForDrillDown of associatedViews) {
24653
+ const filterCondition = new URLSearchParams(viewForDrillDown['filterCondition']);
24654
+ let matchFound = true;
24655
+ filterCondition.forEach((value, key) => {
24656
+ if (queryParams.get(key) !== value) {
24657
+ matchFound = false;
24658
+ }
24659
+ });
24660
+ if (matchFound) {
24661
+ viewForDrillDown['viewId'].forEach(viewForId => {
24662
+ drildownsForCurrentView.push(viewForId);
24663
+ });
24664
+ }
24665
+ }
24666
+ }
24667
+ }
24668
+ else if (eventType == 'drilldown' || eventType == 'popup') {
24669
+ for (let entry of associatedViews) {
24670
+ drildownsForCurrentView.push(entry);
24671
+ }
24672
+ }
24673
+ else if (eventType == 'navigateToPage') {
24674
+ this.service.getAppPageDetailConfig(associatedPage).subscribe({
24675
+ next: (data) => {
24676
+ let _a = this.activatedRoute.snapshot.queryParams, { pageId } = _a, params = __rest(_a, ["pageId"]);
24677
+ let associatedParamsTemplate = clickEventOptions.associatedParams;
24678
+ let appliedFilters = this.getSetOperatorFilter(event, this.stateDataSource.get(event.viewId));
24679
+ event.keyToPass.forEach(element => {
24680
+ params[element] = event.data[element];
24681
+ });
24682
+ params['pageId'] = associatedPage;
24683
+ if (associatedParamsTemplate !== "") {
24684
+ let finalAssociatedParams = this.replaceAssociatedParams(associatedParamsTemplate, params, appliedFilters);
24685
+ const queryParams = {};
24686
+ finalAssociatedParams.split("&").forEach(pair => {
24687
+ const [key, value] = pair.split("=");
24688
+ queryParams[key] = value;
24689
+ });
24690
+ queryParams['pageId'] = params['pageId'];
24691
+ const fullUrl = this.router.serializeUrl(this.router.createUrlTree([data.pageUrl], { queryParams }));
24692
+ this.router.navigate([data.pageUrl], { queryParams });
24693
+ }
24694
+ else {
24695
+ const queryString = new URLSearchParams(params).toString();
24696
+ const fullUrl = this.router.serializeUrl(this.router.createUrlTree([data.pageUrl], { queryParams: params }));
24697
+ this.router.navigate([data.pageUrl], { queryParams });
24698
+ console.log(data);
24699
+ }
24700
+ }
24701
+ });
24702
+ }
24703
+ else if (eventType == 'sameViewDrilldown') {
24704
+ debugger;
24705
+ }
24706
+ if (drildownsForCurrentView.length != 0) {
24707
+ for (let viewIdForNext of drildownsForCurrentView) {
24708
+ const nextViewNode = this.dashBoardWidgetConfig.widgets
24709
+ .map(widget => widget.widgetNode.find(node => this.getElementOfCurrentView(node, viewIdForNext)))
24710
+ .find(node => node);
24711
+ if (eventType == 'popup') {
24712
+ this.loadingModal = true;
24713
+ yield this.getModalViewByRowCLick(event, nextViewNode);
24714
+ }
24715
+ else {
24716
+ this.loadingModal = true;
24717
+ yield this.getViewByRowCLick(event, nextViewNode);
24718
+ }
24719
+ }
24720
+ }
24721
+ }
24722
+ else {
24723
+ this.dashBoardWidgetConfig.widgets.forEach(element => {
24724
+ for (let entry of deletedViewIds) {
24725
+ element.widgetNode.forEach(viewValue => {
24726
+ viewValue.compConfig.viewConfig.forEach(viewId => {
24727
+ if (viewId.viewId == entry) {
24728
+ const exists = this.contextMenuDataSource.some(item => item.viewId === viewId.viewId);
24729
+ if (!exists) {
24730
+ this.contextMenuDataSource.push({
24731
+ viewId: viewId.viewId,
24732
+ viewName: currentViewNode.nodeProperties.widgetTitle,
24733
+ displayKey: viewId.kpiConfig.keyToPass
24734
+ });
24735
+ }
24736
+ const startData = this.stateDataSource.get(entry);
24737
+ if (startData) {
24738
+ this.stateDataSource.delete(entry);
24739
+ }
24740
+ viewValue.nodeProperties['display'] = false;
24741
+ const prefixedId = `id-${viewValue.id}`;
24742
+ const elementToHide = document.querySelector(`#${prefixedId}`);
24743
+ if (elementToHide) {
24744
+ elementToHide.remove();
24745
+ }
24746
+ }
24747
+ });
24748
+ });
24749
+ }
24750
+ });
24751
+ const nextViewIndex = stateData.indexOf(event.viewId) + 1;
24752
+ const nextView = this.dashBoardWidgetConfig.widgets
24753
+ .map(widget => widget.widgetNode[nextViewIndex])
24754
+ .find(node => node);
24755
+ if (nextView) {
24756
+ this.loadingModal = true;
24757
+ yield this.getViewByRowCLick(event, nextView);
24758
+ }
24759
+ }
24760
+ }
24761
+ }));
24762
+ }
24763
+ });
24764
+ }
24765
+ getViewByRowCLickForHourlyChart(event, node) {
24766
+ let apiCalls = [];
24767
+ const deletedViewIds = [];
24768
+ node.compConfig.viewConfig.forEach(item => {
24769
+ let appliedFilters = this.getSetOperatorFilter(event, this.stateDataSource.get(item.viewId));
24770
+ let found = this.dataSetModal.find(d => d.datasetId === item.datasetId);
24771
+ deletedViewIds.push(item.viewId);
24772
+ if (found) {
24773
+ apiCalls.push(this.datasetService.getDataFromDataSet(found, item.datasetId, appliedFilters));
24774
+ }
24775
+ });
24776
+ Promise.all(apiCalls).then(() => {
24777
+ this.uniqueDataSetObject = this.datasetService.getUniqueDataSetObject();
24778
+ this.loadSingleWidgetNode(node, this.mainPageDivElement, this.uniqueDataSetObject);
24779
+ setTimeout(() => {
24780
+ this.scrollToBottom(this.mainPageDivElement);
24781
+ }, 200);
24782
+ });
24783
+ }
24784
+ getModalViewByRowCLick(event, view) {
24785
+ return __awaiter(this, void 0, void 0, function* () {
24786
+ let apiCalls = [];
24787
+ let appliedFilters = this.getSetOperatorFilter(event, this.stateDataSource.get(event.viewId));
24788
+ view.compConfig.viewConfig.forEach(contentView => {
24789
+ let found = this.dataSetModal.find(d => d.datasetId === contentView.datasetId);
24790
+ if (found) {
24791
+ apiCalls.push(this.datasetService.getDataFromDataSet(found, contentView.datasetId, appliedFilters));
24792
+ }
24793
+ });
24794
+ yield Promise.all(apiCalls);
24795
+ this.contextMenuDataSource = this.contextMenuDataSource.filter(e => e.displayKey !== event.keyToPass);
24796
+ view.compConfig.viewConfig.forEach(viewforDataSet => {
24797
+ let obj = {
24798
+ "filters": appliedFilters,
24799
+ "keyToPass": this.updateOperatorData(event.keyToPass, event.data),
24800
+ "drillDownType": event.drillDownType,
24801
+ "drilldownFrom": event.drilldownFrom
24802
+ };
24803
+ this.stateDataSource.set(viewforDataSet['viewId'], obj);
24804
+ });
24805
+ view.nodeProperties['display'] = true;
24806
+ view.nodeProperties['widgetParams'] = event.tableTitle;
24807
+ this.uniqueDataSetObject = this.datasetService.getUniqueDataSetObject();
24808
+ this.modalConfigs = {
24809
+ view: view,
24810
+ datasource: this.uniqueDataSetObject
24811
+ };
24812
+ setTimeout(() => {
24813
+ this.loadingModal = false;
24814
+ this.isPopupView = true;
24815
+ }, 200);
24816
+ });
24817
+ }
24818
+ getViewByRowCLick(event, view) {
24819
+ return __awaiter(this, void 0, void 0, function* () {
24820
+ let apiCalls = [];
24821
+ let chatApiCall = [];
24822
+ let appliedFilters = this.getSetOperatorFilter(event, this.stateDataSource.get(event.viewId));
24823
+ view.compConfig.viewConfig.forEach(contentView => {
24824
+ let found = this.dataSetModal.find(d => d.datasetId === contentView.datasetId);
24825
+ if (found) {
24826
+ apiCalls.push(this.datasetService.getDataFromDataSet(found, contentView.datasetId, appliedFilters));
24827
+ }
24828
+ });
24829
+ yield Promise.all(apiCalls);
24830
+ this.contextMenuDataSource = this.contextMenuDataSource.filter(e => e.displayKey !== event.keyToPass);
24831
+ view.compConfig.viewConfig.forEach(viewforDataSet => {
24832
+ let obj = {
24833
+ "filters": appliedFilters,
24834
+ "keyToPass": this.updateOperatorData(event.keyToPass, event.data),
24835
+ "drillDownType": event.drillDownType,
24836
+ "drilldownFrom": event.drilldownFrom
24837
+ };
24838
+ this.stateDataSource.set(viewforDataSet['viewId'], obj);
24839
+ });
24840
+ view.nodeProperties['display'] = true;
24841
+ view.nodeProperties['widgetParams'] = event.tableTitle;
24842
+ const prefixedId = `id-${view.id}`;
24843
+ const containerElement = document.querySelector(`#${prefixedId}`);
24844
+ this.uniqueDataSetObject = this.datasetService.getUniqueDataSetObject();
24845
+ this.loadSingleWidgetNode(view, this.mainPageDivElement, this.uniqueDataSetObject);
24846
+ console.log(this.stateDataSource);
24847
+ setTimeout(() => {
24848
+ this.scrollToBottom(this.mainPageDivElement);
24849
+ }, 200);
24850
+ });
24851
+ }
24852
+ replaceAssociatedParams(template, params, appliedFilters) {
24853
+ return template.replace(/\$(F|P)\{([^}]+)\}/g, (match, type, key) => {
24854
+ var _a, _b, _c;
24855
+ if (type === "F") {
24856
+ return (_b = (_a = appliedFilters.operationFilter) === null || _a === void 0 ? void 0 : _a[key]) !== null && _b !== void 0 ? _b : "";
24857
+ }
24858
+ else if (type === "P") {
24859
+ return (_c = params === null || params === void 0 ? void 0 : params[key]) !== null && _c !== void 0 ? _c : "";
24860
+ }
24861
+ return match;
24862
+ });
24863
+ }
24864
+ scrollToBottom(container) {
24865
+ setTimeout(() => {
24866
+ container.scrollIntoView({ block: 'end' });
24867
+ this.loadingModal = false;
24868
+ }, 0);
24869
+ }
24870
+ findWidgetById(configs, id) {
24871
+ for (const config of configs) {
24872
+ if (config.id === id) {
24873
+ return config;
24874
+ }
24875
+ if (config.widgetNode && config.widgetNode.length > 0) {
24876
+ const found = this.findWidgetById(config.widgetNode, id);
24877
+ if (found) {
24878
+ return found;
24879
+ }
24880
+ }
24881
+ }
24882
+ return undefined;
24883
+ }
24884
+ updateOperatorData(key_name, value_data) {
24885
+ let operator = [];
24886
+ for (const key of key_name) {
24887
+ let obj = {};
24888
+ obj[key] = value_data[key];
24889
+ operator.push(obj);
24890
+ }
24891
+ return operator;
24892
+ }
24893
+ getElementOfCurrentView(node, viewId) {
24894
+ const matchedObject = node.compConfig.viewConfig.find(object => object.viewId === viewId);
24895
+ return matchedObject ? node : null;
24896
+ }
24897
+ getHourlyData(node) {
24898
+ const matchedObject = node.compConfig.viewConfig.find(object => object.kpiConfig.formate === 'hourly');
24899
+ return matchedObject ? node : null;
24900
+ }
24901
+ getSetOperatorFilter(objectData, previousViewStates) {
24902
+ const { data, keyToPass } = objectData;
24903
+ const appliedFilter = JSON.parse(JSON.stringify(previousViewStates.filters.operationFilter));
24904
+ keyToPass.forEach(key => {
24905
+ if (key in data) {
24906
+ const normalizedKey = key.toLowerCase().replace(/_/g, '');
24907
+ if (normalizedKey === "recorddate" && "startDate" in appliedFilter && "endDate" in appliedFilter) {
24908
+ appliedFilter.startDate = data[key];
24909
+ appliedFilter.endDate = data[key];
24910
+ }
24911
+ else {
24912
+ appliedFilter[key] = data[key];
24913
+ }
24914
+ }
24915
+ });
24916
+ const defaultoperationFilter = this.globalDefaultFilter.operationFilter;
24917
+ if (defaultoperationFilter) {
24918
+ Object.keys(defaultoperationFilter).forEach(key => {
24919
+ if (!appliedFilter.hasOwnProperty(key)) {
24920
+ appliedFilter[key] = defaultoperationFilter[key];
24921
+ }
24922
+ });
24923
+ }
24924
+ const operationFilter = {};
24925
+ operationFilter['operationFilter'] = appliedFilter;
24926
+ return operationFilter;
24927
+ }
24928
+ getRearchResultFromInputBox(inputValue, viewConfig, filterObject) {
24929
+ let view = viewConfig;
24930
+ let eventNode = { data: {}, keyToPass: [] };
24931
+ eventNode.data[filterObject.server_column] = inputValue;
24932
+ eventNode['keyToPass'] = [filterObject.server_column];
24933
+ let apiCalls = [];
24934
+ view.compConfig.viewConfig.forEach(contentView => {
24935
+ let appliedFilters = this.getSetOperatorFilter(eventNode, this.stateDataSource.get(contentView.viewId));
24936
+ let found = this.dataSetModal.find(d => d.datasetId === contentView.datasetId);
24937
+ if (found) {
24938
+ apiCalls.push(this.datasetService.getDataFromDataSet(found, contentView.datasetId, appliedFilters));
24939
+ }
24940
+ });
24941
+ viewConfig.nodeProperties['display'] = false;
24942
+ const prefixedId = `id-${viewConfig.id}`;
24943
+ const elementToHide = document.querySelector(`#${prefixedId}`);
24944
+ if (elementToHide) {
24945
+ elementToHide.remove();
24946
+ }
24947
+ Promise.all(apiCalls).then(() => {
24948
+ this.uniqueDataSetObject = this.datasetService.getUniqueDataSetObject();
24949
+ this.loadingModal = true;
24950
+ this.contextMenuDataSource = this.contextMenuDataSource.filter(e => e.displayKey !== viewConfig.keyToPass);
24951
+ view.nodeProperties['display'] = true;
24952
+ const prefixedId = `id-${view.id}`;
24953
+ const containerElement = document.querySelector(`#${prefixedId}`);
24954
+ this.loadSingleWidgetNode(view, this.mainPageDivElement, this.uniqueDataSetObject);
24955
+ setTimeout(() => {
24956
+ this.scrollToBottom(this.mainPageDivElement);
24957
+ }, 200);
24958
+ let params = {};
24959
+ params[filterObject.server_column] = inputValue;
24960
+ });
24961
+ }
24962
+ submitFilter() {
24963
+ let view = this.nodeproperticeFilterDataSource.viewConfig;
24964
+ let apiCalls = [];
24965
+ this.havingDataObject = this.nodeproperticeFilterDataSource.havingConfig.filter(value => value.value !== "");
24966
+ view.compConfig.viewConfig.forEach(contentView => {
24967
+ let appliedFilters = this.stateDataSource.get(contentView.viewId);
24968
+ let found = this.dataSetModal.find(d => d.datasetId === contentView.datasetId);
24969
+ if (found) {
24970
+ apiCalls.push(this.datasetService.getDataFromDataSet(found, contentView.datasetId, appliedFilters.filters));
24971
+ }
24972
+ });
24973
+ Promise.all(apiCalls).then(() => {
24974
+ this.uniqueDataSetObject = this.datasetService.getUniqueDataSetObject();
24975
+ this.nodeproperticeFilterDataSource.viewConfig.nodeProperties['display'] = false;
24976
+ const prefixedId = `id-${this.nodeproperticeFilterDataSource.viewConfig.id}`;
24977
+ const elementToHide = document.querySelector(`#${prefixedId}`);
24978
+ if (elementToHide) {
24979
+ elementToHide.remove();
24980
+ }
24981
+ this.loadingModal = true;
24982
+ this.contextMenuDataSource = this.contextMenuDataSource.filter(e => e.displayKey !== this.nodeproperticeFilterDataSource.viewConfig.keyToPass);
24983
+ this.isWidgetFilters = false;
24984
+ view.nodeProperties['display'] = true;
24985
+ this.loadSingleWidgetNode(view, this.mainPageDivElement, this.uniqueDataSetObject);
24986
+ setTimeout(() => {
24987
+ this.scrollToBottom(this.mainPageDivElement);
24988
+ }, 200);
24989
+ });
24990
+ }
24991
+ getWidgetFilterForTemplate(value) {
24992
+ let apiCalls = [];
24993
+ const deletedViewIds = [];
24994
+ value.viewNodes.compConfig.viewConfig.forEach(item => {
24995
+ let widgetFilter = this.stateDataSource.get(item.viewId);
24996
+ let appliedFilters = widgetFilter.filters;
24997
+ let found = this.dataSetModal.find(d => d.datasetId === item.datasetId);
24998
+ deletedViewIds.push(item.viewId);
24999
+ const having = Object.entries(value.operationFilter).map(([key, value]) => ({
25000
+ columnName: key,
25001
+ dataType: "float",
25002
+ operator: "gte",
25003
+ value: value
25004
+ }));
25005
+ if (found) {
25006
+ found.config.queryConfig['havings'] = having;
25007
+ apiCalls.push(this.datasetService.getDataFromDataSet(found, item.datasetId, appliedFilters));
25008
+ }
25009
+ });
25010
+ Promise.all(apiCalls).then(() => {
25011
+ this.uniqueDataSetObject = this.datasetService.getUniqueDataSetObject();
25012
+ this.loadSingleWidgetNode(value.viewNodes, this.mainPageDivElement, this.uniqueDataSetObject);
25013
+ setTimeout(() => {
25014
+ this.scrollToBottom(this.mainPageDivElement);
25015
+ }, 200);
25016
+ });
25017
+ }
25018
+ loadDataByOperator(opName) {
25019
+ return __awaiter(this, void 0, void 0, function* () {
25020
+ let filter = { operationFilter: { startDate: "", endDate: "", operator_key: "" } };
25021
+ filter.operationFilter['startDate'] = this.defaultStartDate;
25022
+ filter.operationFilter['endDate'] = this.defaultEndDate;
25023
+ filter.operationFilter['operator_key'] = opName;
25024
+ this.loadingModal = true;
25025
+ yield this.getPadeDataSource(true);
25026
+ this.uniqueDataSetObject = {};
25027
+ let apiCalls = [];
25028
+ this.allWidgetByDataset.forEach(view => {
25029
+ view.datasetIds.forEach(id => {
25030
+ let found = this.dataSetModal.find(d => d.datasetId === id.datasetId);
25031
+ if (found) {
25032
+ apiCalls.push(this.datasetService.getDataFromDataSet(found, id.datasetId, filter));
25033
+ }
25034
+ });
25035
+ });
25036
+ Promise.all(apiCalls).then(() => {
25037
+ this.globalDefaultFilter = filter;
25038
+ this.uniqueDataSetObject = this.datasetService.getUniqueDataSetObject();
25039
+ this.createDivElements(this.uniqueDataSetObject, true);
25040
+ this.loadingModal = false;
25041
+ });
25042
+ });
25043
+ }
25044
+ getContextFilterData(value) {
25045
+ return __awaiter(this, void 0, void 0, function* () {
25046
+ let filter = { operationFilter: { startDate: "", endDate: "" } };
25047
+ filter.operationFilter['startDate'] = this.defaultStartDate;
25048
+ filter.operationFilter['endDate'] = this.defaultEndDate;
25049
+ filter.operationFilter[value.operatorName] = this.parseInput(value.defaultFilterValue);
25050
+ this.loadingModal = true;
25051
+ let obj = {};
25052
+ obj[value.operatorName] = value.defaultFilterValue;
25053
+ yield this.getPadeDataSource(true);
25054
+ this.uniqueDataSetObject = {};
25055
+ let apiCalls = [];
25056
+ this.allWidgetByDataset.forEach(view => {
25057
+ view.datasetIds.forEach(id => {
25058
+ let found = this.dataSetModal.find(d => d.datasetId === id.datasetId);
25059
+ if (found) {
25060
+ apiCalls.push(this.datasetService.getDataFromDataSet(found, id.datasetId, filter));
25061
+ }
25062
+ });
25063
+ });
25064
+ Promise.all(apiCalls).then(() => {
25065
+ this.globalDefaultFilter = filter;
25066
+ this.uniqueDataSetObject = this.datasetService.getUniqueDataSetObject();
25067
+ this.createDivElements(this.uniqueDataSetObject, true);
25068
+ this.loadingModal = false;
25069
+ });
25070
+ });
25071
+ }
25072
+ parseInput(input) {
25073
+ input = input.trim();
25074
+ if (input.includes(',')) {
25075
+ return input.split(',').map(item => item.trim());
25076
+ }
25077
+ else {
25078
+ return input;
25079
+ }
25080
+ }
25081
+ getDrilldownDisplayByUrlParams(all_views) {
25082
+ this.defaultViewIdsOnPageRefresh = [];
25083
+ const params = this.activatedRoute.snapshot.queryParams;
25084
+ this.defaultViewIdsOnPageRefresh = (params['views'] && params['views'] !== "") ? JSON.parse(decodeURIComponent(params['views'])) : [];
25085
+ all_views.forEach(element => {
25086
+ for (let entry of element.widgetNode) {
25087
+ let shouldDisplay = false;
25088
+ entry.compConfig.viewConfig.forEach(view => {
25089
+ if (this.defaultViewIdsOnPageRefresh.length !== 0) {
25090
+ const foundObject = this.defaultViewIdsOnPageRefresh.find(val => val.viewId === view.viewId);
25091
+ if (foundObject) {
25092
+ shouldDisplay = true;
25093
+ }
25094
+ }
25095
+ });
25096
+ if (shouldDisplay) {
25097
+ entry.nodeProperties.display = true;
25098
+ }
25099
+ }
25100
+ });
25101
+ }
25102
+ getFiltersForQueryParams(operators, filters, viewParams) {
25103
+ const operationFilter = operators.operationFilter || {};
25104
+ const currentParams = this.activatedRoute.snapshot.queryParams;
25105
+ let currentViews = [];
25106
+ if (currentParams['views']) {
25107
+ try {
25108
+ currentViews = JSON.parse(decodeURIComponent(currentParams['views']));
25109
+ }
25110
+ catch (e) {
25111
+ console.error("Invalid views param");
25112
+ }
25113
+ }
25114
+ const filterData = { viewId: viewParams.viewId };
25115
+ filters.forEach(filter => {
25116
+ const localKey = filter.localColumn;
25117
+ const serverKey = filter.serverColumn;
25118
+ let value = operationFilter[localKey];
25119
+ if (value !== undefined && value !== "") {
25120
+ filterData[serverKey] = value;
25121
+ }
25122
+ });
25123
+ const existingIndex = currentViews.findIndex(v => v.viewId === viewParams.viewId);
25124
+ if (existingIndex !== -1) {
25125
+ currentViews[existingIndex] = filterData;
25126
+ currentViews = currentViews.slice(0, existingIndex + 1);
25127
+ }
25128
+ else {
25129
+ currentViews.push(filterData);
25130
+ }
25131
+ const encodedViews = encodeURIComponent(JSON.stringify(currentViews));
25132
+ const mergedParams = Object.assign(Object.assign({}, currentParams), { views: encodedViews });
25133
+ }
25134
+ getDrildownFilter(drildownFilter, defaultFilter) {
25135
+ const expectedDateFields = ['recordDate', 'record_date', 'eventDate', 'event_date'];
25136
+ const result = JSON.parse(JSON.stringify(defaultFilter));
25137
+ const { viewId } = drildownFilter, filteredDrilldown = __rest(drildownFilter, ["viewId"]);
25138
+ let dateValue = null;
25139
+ for (const key of expectedDateFields) {
25140
+ if (filteredDrilldown[key]) {
25141
+ dateValue = filteredDrilldown[key];
25142
+ break;
25143
+ }
25144
+ }
25145
+ if (dateValue) {
25146
+ result.operationFilter.startDate = dateValue;
25147
+ result.operationFilter.endDate = dateValue;
25148
+ }
25149
+ for (const key in filteredDrilldown) {
25150
+ if (!expectedDateFields.includes(key)) {
25151
+ result.operationFilter[key] = filteredDrilldown[key];
25152
+ }
25153
+ }
25154
+ return result;
25155
+ }
25156
+ getTitleParams(items) {
25157
+ const results = [];
25158
+ items.compConfig.viewConfig.forEach(element => {
25159
+ const foundObject = this.defaultViewIdsOnPageRefresh.find(val => val.viewId === element.viewId);
25160
+ if (foundObject) {
25161
+ const result = Object.entries(foundObject)
25162
+ .filter(([key]) => key !== 'viewId')
25163
+ .map(([key, value]) => {
25164
+ const formattedKey = key
25165
+ .replace(/_/g, ' ')
25166
+ .replace(/\b\w/g, char => char.toUpperCase());
25167
+ return `${formattedKey} = ${value}`;
25168
+ })
25169
+ .join(' | ');
25170
+ results.push(`| ${result} `);
25171
+ }
25172
+ });
25173
+ return results.join('\n');
25174
+ }
25175
+ }
25176
+ MultiLayoutLandingComponentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MultiLayoutLandingComponentComponent, deps: [{ token: CommonService }, { token: i2.ActivatedRoute }, { token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }, { token: LandingMultiLayoutComponentService }, { token: i3$1.ToastrService }, { token: i2.Router }, { token: LandingMultiLayoutApplicationDatssetsCall }, { token: AppLandingMultiLayoutLocalStorage }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
25177
+ MultiLayoutLandingComponentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: MultiLayoutLandingComponentComponent, selector: "app-multi-layout-landing-component", viewQueries: [{ propertyName: "dynamicComponentContainer", first: true, predicate: ["dynamicComponentContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "containerRef", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef }, { propertyName: "dynamicContainer", first: true, predicate: ["dynamicContainer"], descendants: true, static: true }, { propertyName: "dynamicContainerForPopup", first: true, predicate: ["dynamicContainerForPopup"], descendants: true, static: true }], ngImport: i0, template: "<app-loading *ngIf=\"loadingModal\"></app-loading>\n\n<div class=\"w-full\">\n <div class=\"flex flex-wrap \" #dynamicContainer></div>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LoadingComponent$1, selector: "app-loading" }] });
25178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MultiLayoutLandingComponentComponent, decorators: [{
25179
+ type: Component,
25180
+ args: [{ selector: 'app-multi-layout-landing-component', template: "<app-loading *ngIf=\"loadingModal\"></app-loading>\n\n<div class=\"w-full\">\n <div class=\"flex flex-wrap \" #dynamicContainer></div>\n</div>" }]
25181
+ }], ctorParameters: function () { return [{ type: CommonService }, { type: i2.ActivatedRoute }, { type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }, { type: LandingMultiLayoutComponentService }, { type: i3$1.ToastrService }, { type: i2.Router }, { type: LandingMultiLayoutApplicationDatssetsCall }, { type: AppLandingMultiLayoutLocalStorage }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { dynamicComponentContainer: [{
25182
+ type: ViewChild,
25183
+ args: ['dynamicComponentContainer', { read: ViewContainerRef }]
25184
+ }], containerRef: [{
25185
+ type: ViewChild,
25186
+ args: ['container', { read: ViewContainerRef }]
25187
+ }], dynamicContainer: [{
25188
+ type: ViewChild,
25189
+ args: ['dynamicContainer', { static: true }]
25190
+ }], dynamicContainerForPopup: [{
25191
+ type: ViewChild,
25192
+ args: ['dynamicContainerForPopup', { static: true }]
25193
+ }] } });
25194
+
25195
+ class DefaultLandingMultiLayoutComponenttModule {
25196
+ }
25197
+ DefaultLandingMultiLayoutComponenttModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DefaultLandingMultiLayoutComponenttModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
25198
+ DefaultLandingMultiLayoutComponenttModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: DefaultLandingMultiLayoutComponenttModule, declarations: [MultiLayoutLandingComponentComponent], imports: [CommonModule,
25199
+ LoadingModule$1,
25200
+ CommonModule,
25201
+ DevExtremeModule,
25202
+ DxButtonModule,
25203
+ DxCheckBoxModule,
25204
+ DxNumberBoxModule,
25205
+ DxDataGridModule,
25206
+ DxDropDownBoxModule,
25207
+ DxTreeViewModule,
25208
+ DxScrollViewModule,
25209
+ DxFormModule,
25210
+ DxAccordionModule,
25211
+ FormsModule,
25212
+ DxTagBoxModule,
25213
+ ReactiveFormsModule,
25214
+ MatIconModule,
25215
+ DxHtmlEditorModule,
25216
+ DxBulletModule,
25217
+ DxChartModule,
25218
+ DxDateBoxModule,
25219
+ DxLoadPanelModule,
25220
+ DxLookupModule,
25221
+ DxPivotGridModule,
25222
+ DxTemplateModule,
25223
+ DxTextAreaModule,
25224
+ DxValidationSummaryModule,
25225
+ DxValidatorModule,
25226
+ DxCalendarModule,
25227
+ DxTooltipModule,
25228
+ DxContextMenuModule,
25229
+ DxLoadIndicatorModule,
25230
+ DxPieChartModule,
25231
+ MatTooltipModule,
25232
+ DxPopupModule, DxSelectBoxModule, DxTextBoxModule, DxTreeViewModule,
25233
+ MatButtonModule,
25234
+ MatDividerModule,
25235
+ MatMenuModule,
25236
+ MatIconModule,
25237
+ LoadingModule$1], exports: [MultiLayoutLandingComponentComponent] });
25238
+ DefaultLandingMultiLayoutComponenttModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DefaultLandingMultiLayoutComponenttModule, providers: [LandingMultiLayoutApplicationDatssetsCall, LandingMultiLayoutComponentService], imports: [CommonModule,
25239
+ LoadingModule$1,
25240
+ CommonModule,
25241
+ DevExtremeModule,
25242
+ DxButtonModule,
25243
+ DxCheckBoxModule,
25244
+ DxNumberBoxModule,
25245
+ DxDataGridModule,
25246
+ DxDropDownBoxModule,
25247
+ DxTreeViewModule,
25248
+ DxScrollViewModule,
25249
+ DxFormModule,
25250
+ DxAccordionModule,
25251
+ FormsModule,
25252
+ DxTagBoxModule,
25253
+ ReactiveFormsModule,
25254
+ MatIconModule,
25255
+ DxHtmlEditorModule,
25256
+ DxBulletModule,
25257
+ DxChartModule,
25258
+ DxDateBoxModule,
25259
+ DxLoadPanelModule,
25260
+ DxLookupModule,
25261
+ DxPivotGridModule,
25262
+ DxTemplateModule,
25263
+ DxTextAreaModule,
25264
+ DxValidationSummaryModule,
25265
+ DxValidatorModule,
25266
+ DxCalendarModule,
25267
+ DxTooltipModule,
25268
+ DxContextMenuModule,
25269
+ DxLoadIndicatorModule,
25270
+ DxPieChartModule,
25271
+ MatTooltipModule,
25272
+ DxPopupModule, DxSelectBoxModule, DxTextBoxModule, DxTreeViewModule,
25273
+ MatButtonModule,
25274
+ MatDividerModule,
25275
+ MatMenuModule,
25276
+ MatIconModule,
25277
+ LoadingModule$1] });
25278
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DefaultLandingMultiLayoutComponenttModule, decorators: [{
25279
+ type: NgModule,
25280
+ args: [{
25281
+ declarations: [
25282
+ MultiLayoutLandingComponentComponent,
25283
+ ],
25284
+ imports: [CommonModule,
25285
+ LoadingModule$1,
25286
+ CommonModule,
25287
+ DevExtremeModule,
25288
+ DxButtonModule,
25289
+ DxCheckBoxModule,
25290
+ DxNumberBoxModule,
25291
+ DxDataGridModule,
25292
+ DxDropDownBoxModule,
25293
+ DxTreeViewModule,
25294
+ DxScrollViewModule,
25295
+ DxFormModule,
25296
+ DxAccordionModule,
25297
+ FormsModule,
25298
+ DxTagBoxModule,
25299
+ ReactiveFormsModule,
25300
+ MatIconModule,
25301
+ DxHtmlEditorModule,
25302
+ DxBulletModule,
25303
+ DxChartModule,
25304
+ DxDateBoxModule,
25305
+ DxLoadPanelModule,
25306
+ DxLookupModule,
25307
+ DxPivotGridModule,
25308
+ DxTemplateModule,
25309
+ DxTextAreaModule,
25310
+ DxValidationSummaryModule,
25311
+ DxValidatorModule,
25312
+ DxCalendarModule,
25313
+ DxTooltipModule,
25314
+ DxContextMenuModule,
25315
+ DxLoadIndicatorModule,
25316
+ DxPieChartModule,
25317
+ MatTooltipModule,
25318
+ DxPopupModule, DxSelectBoxModule, DxTextBoxModule, DxTreeViewModule,
25319
+ MatButtonModule,
25320
+ MatDividerModule,
25321
+ MatMenuModule,
25322
+ MatIconModule,
25323
+ LoadingModule$1,
25324
+ ],
25325
+ exports: [
25326
+ MultiLayoutLandingComponentComponent
25327
+ ],
25328
+ providers: [LandingMultiLayoutApplicationDatssetsCall, LandingMultiLayoutComponentService],
25329
+ }]
25330
+ }] });
25331
+
23428
25332
  class BookmarkedService {
23429
25333
  constructor(http, environment) {
23430
25334
  this.http = http;
@@ -24837,5 +26741,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
24837
26741
  }]
24838
26742
  }] });
24839
26743
 
24840
- export { APP_ENVIRONMENT, AdvanceWidgetHeaderFilterComponent, AllMetricsConfigComponent, AppAdvanceHeaderComponent, AppHttpService, AppLandingLayoutLocalStorage, AppLocalStorage, AppMultiLayoutLocalStorage, AppSingleLayoutLocalStorage, AppTitleComponent, ApplicationChatApiCallService, ApplicationContentService, ApplicationDatssetsCall, ApplicationFilterComponent, ApplicationViewsComponent, BookMarkedTemplatemodule, BookmarkedApplicationDatssetsCall, BookmarkedService, BookmarkedTemplateComponent, BreadCrumbsComponent, CdrConfigComponent, CdrConfigMoudule, CommonHeaderComponent, CommonService, CreateCompViewComponent, CreateDatasetComponent, CreateDatasetJsonComponent, CreateDatasetSqlComponent, CreateKpiTreeComponent, CreateMetricsComponent, DashChartComponent, DashTableComponent, DashTodayPreviousComponent, DefaultLandingComponenttModule, DynamicWidgetComponent, DynamicWidgetForMultilayoutComponent, ExceptionOperationComponent, ExceptionOperationModule, GamamWidgetComponent, GammSingleNumberCardComponent, GammaAdvanceChartComponent, GammaAdvanceFilterComponent, GammaAdvanceOperatorTableComponent, GammaAppControllerComponent, GammaAppControllerModule, GammaAppControllerService, GammaGeoChartComponent, GammaHeatChartComponent, GammaTableClumnBarChartComponent, GammaTableWithPercentageComponent, GammaTodayPreviousComponent, GeoMapComponent, GoogleGeoMapComponent, HeatMapSupportComponent, IconsModule, KpiCreationModule, KpiWithDataSetTestComponent, KpiWithMultiLayoutModule, KpiWithMultiLayoutService, KpiWithMultilayoutSetTestComponent, KpiWithSingleLayoutModule, KpiWithSingleLayoutService, LandingApplicationDatssetsCall, LandingComponentComponent, LandingComponentService, LoaderComponent, LoadingComponent, LoadingModule, MultilayoutApplicationDatssetsCall, OflineMetricsComponent, OnlineMetricsComponent, PackageApplicationControllerModule, PageConfigComponent, PageConfigMultilayoutComponent, PageControlerComponent, SafeHtmlPipe, SingleLayoutApplicationDatssetsCall, SqlPipe, TableWithBarComponent, TreeViewAsideItemComponent, TreeViewBasicItemComponent, TreeViewCollapsableItemComponent, TreeViewDividerItemComponent, TreeViewGroupItemComponent, TreeViewSpacerItemComponent, TreeviewComponent, contentSafeHtml, kpicommonService$2 as kpicommonService };
26744
+ export { APP_ENVIRONMENT, AdvanceWidgetHeaderFilterComponent, AllMetricsConfigComponent, AppAdvanceHeaderComponent, AppHttpService, AppLandingLayoutLocalStorage, AppLandingMultiLayoutLocalStorage, AppLocalStorage, AppMultiLayoutLocalStorage, AppSingleLayoutLocalStorage, AppTitleComponent, ApplicationChatApiCallService, ApplicationContentService, ApplicationDatssetsCall, ApplicationFilterComponent, ApplicationViewsComponent, BookMarkedTemplatemodule, BookmarkedApplicationDatssetsCall, BookmarkedService, BookmarkedTemplateComponent, BreadCrumbsComponent, CdrConfigComponent, CdrConfigMoudule, CommonHeaderComponent, CommonService, CreateCompViewComponent, CreateDatasetComponent, CreateDatasetJsonComponent, CreateDatasetSqlComponent, CreateKpiTreeComponent, CreateMetricsComponent, DashChartComponent, DashTableComponent, DashTodayPreviousComponent, DefaultLandingComponenttModule, DefaultLandingMultiLayoutComponenttModule, DynamicWidgetComponent, DynamicWidgetForMultilayoutComponent, ExceptionOperationComponent, ExceptionOperationModule, GamamWidgetComponent, GammSingleNumberCardComponent, GammaAdvanceChartComponent, GammaAdvanceFilterComponent, GammaAdvanceOperatorTableComponent, GammaAppControllerComponent, GammaAppControllerModule, GammaAppControllerService, GammaGeoChartComponent, GammaHeatChartComponent, GammaTableClumnBarChartComponent, GammaTableWithPercentageComponent, GammaTodayPreviousComponent, GeoMapComponent, GoogleGeoMapComponent, HeatMapSupportComponent, IconsModule, KpiCreationModule, KpiWithDataSetTestComponent, KpiWithMultiLayoutModule, KpiWithMultiLayoutService, KpiWithMultilayoutSetTestComponent, KpiWithSingleLayoutModule, KpiWithSingleLayoutService, LandingApplicationDatssetsCall, LandingComponentComponent, LandingComponentService, LandingMultiLayoutApplicationDatssetsCall, LandingMultiLayoutComponentService, LoaderComponent, LoadingComponent, LoadingModule, MultiLayoutLandingComponentComponent, MultilayoutApplicationDatssetsCall, OflineMetricsComponent, OnlineMetricsComponent, PackageApplicationControllerModule, PageConfigComponent, PageConfigMultilayoutComponent, PageControlerComponent, SafeHtmlPipe, SingleLayoutApplicationDatssetsCall, SqlPipe, TableWithBarComponent, TreeViewAsideItemComponent, TreeViewBasicItemComponent, TreeViewCollapsableItemComponent, TreeViewDividerItemComponent, TreeViewGroupItemComponent, TreeViewSpacerItemComponent, TreeviewComponent, contentSafeHtml, kpicommonService$2 as kpicommonService };
24841
26745
  //# sourceMappingURL=gamma-app-controller.mjs.map