gamma-app-controller 1.3.6 → 2.0.1

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 (28) hide show
  1. package/esm2020/lib/application-controller/application-content.service.mjs +36 -36
  2. package/esm2020/lib/application-controller/application-menu-controller/application-create-menu/application-create-menu.component.mjs +2 -2
  3. package/esm2020/lib/application-controller/application-view-components/create-comp-view/create-comp-view.component.mjs +1 -2
  4. package/esm2020/lib/application-controller/page-controller/page-config/page-config.component.mjs +3 -3
  5. package/esm2020/lib/application-controller/support-components/dash-table/dash-table.component.mjs +1 -2
  6. package/esm2020/lib/shared/advanced-component/gamma-advance-chart/gamma-advance-chart.component.mjs +1 -2
  7. package/esm2020/lib/shared/permission-helper.mjs +4 -4
  8. package/esm2020/lib/shared/user-access/user-access.component.mjs +3 -3
  9. package/esm2020/lib/template-module/KpiCreationModule/create-kpi-tree.component.mjs +139 -277
  10. package/esm2020/lib/template-module/KpiCreationModule/createKpi.service.mjs +37 -6
  11. package/esm2020/lib/template-module/KpiCreationModule/treeview/components/basic/basic.component.mjs +3 -3
  12. package/esm2020/lib/template-module/KpiCreationModule/treeview/components/collapsable/collapsable.component.mjs +4 -15
  13. package/esm2020/lib/template-module/KpiCreationModule/treeview/treeview.component.mjs +4 -6
  14. package/esm2020/lib/template-module/bookmarked-template/bookmarked-layout.service.mjs +8 -8
  15. package/esm2020/lib/template-module/cdrConfigModule/cdr-browser.service.mjs +2 -2
  16. package/esm2020/lib/template-module/defaulLandingComponent/landing-component.component.mjs +1 -2
  17. package/esm2020/lib/template-module/defaulLandingComponent/landing-component.service.mjs +8 -8
  18. package/esm2020/lib/template-module/defaulLandingMultiLayoutComponent/defaulLandingMultiLayout.service.mjs +8 -8
  19. package/esm2020/lib/template-module/kpiWithMultiLayout/kpi-multi-layout.service.mjs +8 -8
  20. package/esm2020/lib/template-module/kpiWithSingleLayout/kpi-single-layout.service.mjs +8 -8
  21. package/fesm2015/gamma-app-controller.mjs +271 -403
  22. package/fesm2015/gamma-app-controller.mjs.map +1 -1
  23. package/fesm2020/gamma-app-controller.mjs +280 -403
  24. package/fesm2020/gamma-app-controller.mjs.map +1 -1
  25. package/lib/application-controller/application-content.service.d.ts +1 -1
  26. package/lib/template-module/KpiCreationModule/create-kpi-tree.component.d.ts +10 -15
  27. package/lib/template-module/KpiCreationModule/createKpi.service.d.ts +4 -0
  28. package/package.json +1 -1
@@ -196,7 +196,7 @@ class ApplicationContentService {
196
196
  }), catchError(this.handleError));
197
197
  }
198
198
  getKpiBrowserConfigById(id) {
199
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getKpiBrowserConfigById?id=' + id;
199
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getKpiBrowserConfigById?id=' + id;
200
200
  return this.http
201
201
  .get(apiUrl, { withCredentials: true })
202
202
  .pipe(map((response) => {
@@ -240,27 +240,27 @@ class ApplicationContentService {
240
240
  }
241
241
  createAppDataset(body) {
242
242
  return this.http
243
- .post(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/createAppDataset', JSON.stringify(body), this.options)
243
+ .post(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/createAppDataset', JSON.stringify(body), this.options)
244
244
  .pipe(map((response) => {
245
245
  return response;
246
246
  }), catchError(this.handleError));
247
247
  }
248
248
  updateAppDatasetConfig(body) {
249
249
  return this.http
250
- .post(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/updateAppDatasetConfig', JSON.stringify(body), this.options)
250
+ .post(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/updateAppDatasetConfig', JSON.stringify(body), this.options)
251
251
  .pipe(map((response) => {
252
252
  return response;
253
253
  }), catchError(this.handleError));
254
254
  }
255
255
  deleteAppDatasetConfig(datasetId) {
256
256
  return this.http
257
- .delete(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/deleteAppDatasetConfig/' + datasetId, this.options)
257
+ .delete(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/deleteAppDatasetConfig/' + datasetId, this.options)
258
258
  .pipe(map((response) => {
259
259
  return response;
260
260
  }), catchError(this.handleError));
261
261
  }
262
262
  getAppDatasetConfigs() {
263
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppDatasetConfigs';
263
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppDatasetConfigs';
264
264
  return this.http
265
265
  .get(apiUrl, { withCredentials: true })
266
266
  .pipe(map((response) => {
@@ -268,7 +268,7 @@ class ApplicationContentService {
268
268
  }), catchError(this.handleError));
269
269
  }
270
270
  getAppDatasetConfig(datasetId) {
271
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppDatasetConfig?datasetId=' + datasetId;
271
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppDatasetConfig?datasetId=' + datasetId;
272
272
  return this.http
273
273
  .get(apiUrl, { withCredentials: true })
274
274
  .pipe(map((response) => {
@@ -277,20 +277,20 @@ class ApplicationContentService {
277
277
  }
278
278
  createAppViewConfig(body) {
279
279
  return this.http
280
- .post(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/createAppViewConfig', JSON.stringify(body), this.options)
280
+ .post(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/createAppViewConfig', JSON.stringify(body), this.options)
281
281
  .pipe(map((response) => {
282
282
  return response;
283
283
  }), catchError(this.handleError));
284
284
  }
285
285
  updateAppViewConfig(body) {
286
286
  return this.http
287
- .post(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/updateAppViewConfig', JSON.stringify(body), this.options)
287
+ .post(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/updateAppViewConfig', JSON.stringify(body), this.options)
288
288
  .pipe(map((response) => {
289
289
  return response;
290
290
  }), catchError(this.handleError));
291
291
  }
292
292
  getAppViewConfigs() {
293
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppViewConfigs';
293
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppViewConfigs';
294
294
  return this.http
295
295
  .get(apiUrl, { withCredentials: true })
296
296
  .pipe(map((response) => {
@@ -298,7 +298,7 @@ class ApplicationContentService {
298
298
  }), catchError(this.handleError));
299
299
  }
300
300
  getAppViewConfig(viewId) {
301
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppViewConfig?viewId=' + viewId;
301
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppViewConfig?viewId=' + viewId;
302
302
  return this.http
303
303
  .get(apiUrl, { withCredentials: true })
304
304
  .pipe(map((response) => {
@@ -307,27 +307,27 @@ class ApplicationContentService {
307
307
  }
308
308
  deleteAppViewConfig(datasetId) {
309
309
  return this.http
310
- .delete(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/deleteAppViewConfig/' + datasetId, this.options)
310
+ .delete(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/deleteAppViewConfig/' + datasetId, this.options)
311
311
  .pipe(map((response) => {
312
312
  return response;
313
313
  }), catchError(this.handleError));
314
314
  }
315
315
  createAppFilterConfig(body) {
316
316
  return this.http
317
- .post(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/createAppFilterConfig', JSON.stringify(body), this.options)
317
+ .post(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/createAppFilterConfig', JSON.stringify(body), this.options)
318
318
  .pipe(map((response) => {
319
319
  return response;
320
320
  }), catchError(this.handleError));
321
321
  }
322
322
  editAppFilterConfig(body) {
323
323
  return this.http
324
- .post(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/editAppFilterConfig', JSON.stringify(body), this.options)
324
+ .post(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/editAppFilterConfig', JSON.stringify(body), this.options)
325
325
  .pipe(map((response) => {
326
326
  return response;
327
327
  }), catchError(this.handleError));
328
328
  }
329
329
  getAppFilterConfigs() {
330
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppFilterConfigs';
330
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppFilterConfigs';
331
331
  return this.http
332
332
  .get(apiUrl, { withCredentials: true })
333
333
  .pipe(map((response) => {
@@ -336,7 +336,7 @@ class ApplicationContentService {
336
336
  }
337
337
  deleteAppFilterConfig(filterId) {
338
338
  return this.http
339
- .delete(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/deleteAppFilterConfig/' + filterId, this.options)
339
+ .delete(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/deleteAppFilterConfig/' + filterId, this.options)
340
340
  .pipe(map((response) => {
341
341
  return response;
342
342
  }), catchError(this.handleError));
@@ -356,7 +356,7 @@ class ApplicationContentService {
356
356
  }), catchError(this.handleError));
357
357
  }
358
358
  getAppPageConfigs() {
359
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppPageConfigs';
359
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageConfigs';
360
360
  return this.http
361
361
  .get(apiUrl, { withCredentials: true })
362
362
  .pipe(map((response) => {
@@ -365,62 +365,62 @@ class ApplicationContentService {
365
365
  }
366
366
  createAppPageConfig(body) {
367
367
  return this.http
368
- .post(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/createAppPageConfig', JSON.stringify(body), this.options)
368
+ .post(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/createAppPageConfig', JSON.stringify(body), this.options)
369
369
  .pipe(map((response) => {
370
370
  return response;
371
371
  }), catchError(this.handleError));
372
372
  }
373
373
  editAppPageConfig(body) {
374
374
  return this.http
375
- .post(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/editAppPageConfig', JSON.stringify(body), this.options)
375
+ .post(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/editAppPageConfig', JSON.stringify(body), this.options)
376
376
  .pipe(map((response) => {
377
377
  return response;
378
378
  }), catchError(this.handleError));
379
379
  }
380
380
  deleteAppPageConfig(pageId) {
381
381
  return this.http
382
- .delete(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/deleteAppPageConfig/' + pageId, this.options)
382
+ .delete(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/deleteAppPageConfig/' + pageId, this.options)
383
383
  .pipe(map((response) => {
384
384
  return response;
385
385
  }), catchError(this.handleError));
386
386
  }
387
387
  createAppWidgetConfig(body) {
388
388
  return this.http
389
- .post(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/createAppWidgetConfig', JSON.stringify(body), this.options)
389
+ .post(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/createAppWidgetConfig', JSON.stringify(body), this.options)
390
390
  .pipe(map((response) => {
391
391
  return response;
392
392
  }), catchError(this.handleError));
393
393
  }
394
394
  editAppWidgetConfig(body) {
395
395
  return this.http
396
- .post(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/editAppWidgetConfig', JSON.stringify(body), this.options)
396
+ .post(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/editAppWidgetConfig', JSON.stringify(body), this.options)
397
397
  .pipe(map((response) => {
398
398
  return response;
399
399
  }), catchError(this.handleError));
400
400
  }
401
401
  getAppPageDetailConfig(pageId) {
402
402
  return this.http
403
- .get(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppPageDetailConfig?pageConfigId=' + pageId, this.options)
403
+ .get(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageDetailConfig?pageConfigId=' + pageId, this.options)
404
404
  .pipe(map((response) => {
405
405
  return response;
406
406
  }), catchError(this.handleError));
407
407
  }
408
408
  deleteAppWidgetConfig(filterId) {
409
409
  return this.http
410
- .delete(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/deleteAppWidgetConfig/' + filterId, this.options)
410
+ .delete(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/deleteAppWidgetConfig/' + filterId, this.options)
411
411
  .pipe(map((response) => {
412
412
  return response;
413
413
  }), catchError(this.handleError));
414
414
  }
415
415
  getAppFilterConfig(filterId) {
416
416
  return this.http
417
- .get(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppFilterConfig?filterId=' + filterId, this.options)
417
+ .get(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppFilterConfig?filterId=' + filterId, this.options)
418
418
  .pipe(map((response) => {
419
419
  return response;
420
420
  }), catchError(this.handleError));
421
421
  }
422
422
  getKPIReferenceEndPoints() {
423
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getKPIReferenceEndPoints';
423
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getKPIReferenceEndPoints';
424
424
  return this.http
425
425
  .get(apiUrl, { withCredentials: true })
426
426
  .pipe(map((response) => {
@@ -435,7 +435,7 @@ class ApplicationContentService {
435
435
  }), catchError(this.handleError));
436
436
  }
437
437
  getlistKpiBrowser() {
438
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/listKpiBrowser';
438
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/listKpiBrowser';
439
439
  return this.http
440
440
  .get(apiUrl, { withCredentials: true })
441
441
  .pipe(map((response) => {
@@ -459,14 +459,14 @@ class ApplicationContentService {
459
459
  }
460
460
  configureKpiBrowserConfig(body) {
461
461
  return this.http
462
- .post(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/configureKpiBrowserConfig', JSON.stringify(body), this.options)
462
+ .post(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/configureKpiBrowserConfig', JSON.stringify(body), this.options)
463
463
  .pipe(map((response) => {
464
464
  return response;
465
465
  }), catchError(this.handleError));
466
466
  }
467
467
  getCreateKpi(body) {
468
468
  return this.http
469
- .post(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/createKpi', JSON.stringify(body), this.options)
469
+ .post(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/createKpi', JSON.stringify(body), this.options)
470
470
  .pipe(map((response) => {
471
471
  return response;
472
472
  }), catchError(this.handleError));
@@ -477,7 +477,7 @@ class ApplicationContentService {
477
477
  });
478
478
  const options = { headers: headers, withCredentials: true };
479
479
  return this.http
480
- .post(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/uploadDatasetJsonPayload', formData, options)
480
+ .post(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/uploadDatasetJsonPayload', formData, options)
481
481
  .pipe(map((response) => {
482
482
  return response;
483
483
  }), catchError(this.handleError));
@@ -653,7 +653,7 @@ class ApplicationContentService {
653
653
  }), catchError(this.handleError));
654
654
  }
655
655
  configureAppMenuConfig(manueConfig) {
656
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/configureAppMenuConfig';
656
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/configureAppMenuConfig';
657
657
  return this.http
658
658
  .post(apiUrl, JSON.stringify(manueConfig), this.options)
659
659
  .pipe(map((response) => {
@@ -661,15 +661,15 @@ class ApplicationContentService {
661
661
  }), catchError(this.handleError));
662
662
  }
663
663
  listAppMenuConfigs() {
664
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/listAppMenuConfigs';
664
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/listAppMenuConfigs?caller=app';
665
665
  return this.http
666
666
  .get(apiUrl, { withCredentials: true })
667
667
  .pipe(map((response) => {
668
668
  return response;
669
669
  }), catchError(this.handleError));
670
670
  }
671
- getAppAppMenuConfigById(manuid) {
672
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppAppMenuConfigById?menuId=' + manuid;
671
+ getAppMenuConfigById(manuid) {
672
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppMenuConfigById?caller=app&menuId=' + manuid;
673
673
  return this.http
674
674
  .get(apiUrl, { withCredentials: true })
675
675
  .pipe(map((response) => {
@@ -677,7 +677,7 @@ class ApplicationContentService {
677
677
  }), catchError(this.handleError));
678
678
  }
679
679
  updateAppMenuConfig(manueConfig) {
680
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/updateAppMenuConfig';
680
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/updateAppMenuConfig';
681
681
  return this.http
682
682
  .post(apiUrl, JSON.stringify(manueConfig), this.options)
683
683
  .pipe(map((response) => {
@@ -686,7 +686,7 @@ class ApplicationContentService {
686
686
  }
687
687
  deleteAppMenuConfig(menuId) {
688
688
  return this.http
689
- .delete(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/deleteAppMenuConfig/' + menuId, this.options)
689
+ .delete(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/deleteAppMenuConfig/' + menuId, this.options)
690
690
  .pipe(map((response) => {
691
691
  return response;
692
692
  }), catchError(this.handleError));
@@ -4313,7 +4313,7 @@ class UserAccessComponent {
4313
4313
  this.userOptionContainer = [
4314
4314
  {
4315
4315
  entityName: 'user',
4316
- entityValues: ['${USER}']
4316
+ entityValues: ['{USER}']
4317
4317
  }
4318
4318
  ];
4319
4319
  this.emitChanges();
@@ -4322,7 +4322,7 @@ class UserAccessComponent {
4322
4322
  addNewUser() {
4323
4323
  this.userOptionContainer.push({
4324
4324
  entityName: 'user',
4325
- entityValues: ['${USER}']
4325
+ entityValues: ['{USER}']
4326
4326
  });
4327
4327
  this.emitChanges();
4328
4328
  }
@@ -4877,7 +4877,6 @@ class DashTableComponent {
4877
4877
  this.configColume = Object.keys(value.data[0]);
4878
4878
  this.dataSourseForTable = value.data.slice(0, 10);
4879
4879
  this.selectedViewConfigs = value;
4880
- debugger;
4881
4880
  this.userOptionContainer = ((_a = value.selectedWidgetConfig) === null || _a === void 0 ? void 0 : _a.permissions) ? value.selectedWidgetConfig.permissions : [];
4882
4881
  this.selectedTableViewType = value.selectedViewType;
4883
4882
  if (value.selectedWidgetConfig) {
@@ -7062,7 +7061,6 @@ class CreateCompViewComponent {
7062
7061
  this.createViewConfig(data);
7063
7062
  }
7064
7063
  createViewConfig(data) {
7065
- debugger;
7066
7064
  this.creatCompViewObject['datasetId'] = data['datasetId'];
7067
7065
  this.creatCompViewObject['viewType'] = this.selectedViewType;
7068
7066
  this.isLoader = true;
@@ -9209,7 +9207,6 @@ class GammaAdvanceChartComponent {
9209
9207
  return;
9210
9208
  }
9211
9209
  else {
9212
- debugger;
9213
9210
  this.isLoader = true;
9214
9211
  this.page_config = value;
9215
9212
  this.page_parms = value.titleParams;
@@ -12938,10 +12935,10 @@ class PageConfigComponent {
12938
12935
  }
12939
12936
  }
12940
12937
  PageConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PageConfigComponent, deps: [{ token: CommonService }, { token: i2.ActivatedRoute }, { token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }, { token: ApplicationContentService }, { token: i4$1.ToastrService }, { token: i2.Router }, { token: ApplicationDatssetsCall }], target: i0.ɵɵFactoryTarget.Component });
12941
- PageConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PageConfigComponent, selector: "app-dashbord-config", 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: "scrollView", first: true, predicate: DxScrollViewComponent, descendants: true }], ngImport: i0, template: "<app-loading *ngIf=\"loadingModal\"></app-loading>\n\n<div class=\"flex flex-row h-[90vh] w-full\">\n <div class=\"w-3/4 border-r h-full flex flex-col px-2\">\n <!-- Scrollable content -->\n <div class=\"flex-grow overflow-y-auto\">\n <div class=\"flex flex-wrap my-3\" #dynamicContainer></div>\n </div>\n\n <!-- Fixed bottom section -->\n <div class=\"flex flex-row justify-center items-center h-16 m-2 border shrink-0\">\n <lib-common-header [pageTitle]=\"''\"></lib-common-header>\n <div class=\"{{commonService.btn_primary_md}} m-2\" (click)=\"addWidget()\">Add Layout</div>\n <div class=\"{{commonService.btnOthersPurple}} m-2 cursor-pointer\" (click)=\"getViewPage()\">View Page</div>\n </div>\n </div>\n <div class=\"w-1/4 p-2 h-full\">\n <ng-container *ngIf=\"isDashBoardContent\">\n <div class=\"{{commonService.btnDarkBlack}} m-2 w-fit text-center cursar-pointer\" (click)=\"backToMainView()\">\n Back\n </div>\n <ng-container *ngFor=\"let item of page_config.api_config; let i = index\">\n <div class=\"mb-2 flex flex-row justify-between items-center border-b\">\n <div class=\"text-md py-2 font-bold text-white px-2\">\n {{item.widGetConfig.widgetTitle}}\n </div>\n <div class=\"flex space-x-2\">\n <!-- <button (click)=\"editSelectedWidget(item, i)\"\n class=\"w-8 h-8 bg-sky-600 hover:bg-blue-800 text-white rounded-full flex items-center justify-center\">\n <i class=\"fa fa-edit\"></i>\n </button> -->\n <button\n class=\"w-8 h-8 bg-red-600 hover:bg-red-800 text-white rounded-full flex items-center justify-center\">\n <i class=\"fa fa-trash-o\"></i>\n </button>\n </div>\n </div>\n\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"isWidgetCreationContent\">\n <h6 class=\"mb-2 font-bold text-lg tracking-tight text-gray-900 dark:text-white border-b pb-3\">\n <span *ngIf=\"!islayoutCreate\">Widget Settings</span>\n <span *ngIf=\"islayoutCreate\">Layout Settings</span>\n </h6>\n <div class=\"flex flex-row my-4\">\n <dx-check-box class=\"ml-auto\" [(ngModel)]=\"addedwidGetConfig.display\" text=\"Display\"></dx-check-box>\n </div>\n <div class=\"flex flex-row mb-2 justify-between\">\n <span class=\"text-md my-auto px-2\">Width</span>\n <dx-select-box class=\"w-1/2\" [items]=\"widget_width\"\n [(ngModel)]=\"addedwidGetConfig.width\"></dx-select-box>\n </div>\n <div class=\"flex flex-row mb-2 justify-between\">\n <span class=\"text-md my-auto px-2\">Height</span>\n <dx-text-box class=\"w-1/2\" [(ngModel)]=\"addedwidGetConfig.height\"></dx-text-box>\n </div>\n\n <div class=\"flex flex-row mb-2 justify-between\" *ngIf=\"!islayoutCreate\">\n <div class=\"text-md my-auto px-2\">Widget Title</div>\n <div><dx-text-box class=\"w-1/2\" [(ngModel)]=\"widgetTitle\"></dx-text-box></div>\n </div>\n <div class=\"flex flex-row mb-2 justify-between\" *ngIf=\"!islayoutCreate\">\n <span class=\"text-md my-auto px-2\">Widget Name</span>\n <dx-text-box class=\"w-1/2\" [(ngModel)]=\"widgetName\"></dx-text-box>\n </div>\n\n\n <div class=\"flex flex-row mb-5 justify-between\" *ngIf=\"islayoutCreate\">\n <span class=\"text-sm my-auto px-2\">Layout Title</span>\n <dx-text-box class=\"w-1/2\" [(ngModel)]=\"addedwidGetConfig.widgetTitle\"></dx-text-box>\n </div>\n\n <div class=\"flex flex-row mb-2 justify-between\">\n <span class=\"text-md my-auto px-2\">Filter</span>\n <dx-select-box class=\"w-1/2\" [items]=\"filterDataSource\" displayExpr=\"filterName\" [searchEnabled]=\"true\"\n valueExpr=\"filterId\" [(ngModel)]=\"selectedFilterId\"\n (onValueChanged)=\"getFilterValueById($event)\"></dx-select-box>\n </div>\n <ng-container *ngIf=\"!isUpdateWidget\">\n <div class=\"mt-6\" *ngIf=\"!islayoutCreate && isEditMainLayout\">\n <ng-container\n *ngFor=\"let item of dashBoardWidgetConfig.widgets[newWidgetIndex].widgetNode;let i = index\">\n <div class=\"mb-2 flex flex-row justify-between items-center border-b \">\n <div class=\"text-md py-2 font-bold text-white px-2\">\n {{item.nodeProperties.widgetTitle}}\n </div>\n <div class=\"flex space-x-2\">\n <button *ngIf=\"i !== 0\" class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForPageView(i, 'up')\">\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\n </button>\n\n <button\n *ngIf=\"i !== dashBoardWidgetConfig.widgets[newWidgetIndex].widgetNode.length - 1\"\n class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForPageView(i, 'down')\">\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\n </button>\n <button\n class=\"w-8 h-8 bg-red-600 hover:bg-red-800 text-white rounded-full flex items-center justify-center\">\n <i class=\"fa fa-trash-o\"></i>\n </button>\n </div>\n </div>\n\n </ng-container>\n </div>\n </ng-container>\n\n\n\n <ng-container *ngIf=\"isUpdateWidget\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Application Views\n </div>\n <div class=\"border-x border-b p-2\">\n <ng-container *ngFor=\"let item of allWidgetInnerContent; let i = index\">\n <div class=\"group w-full flex justify-between border-b items-center\">\n <div class=\"text-md font-bold py-2 cursor-pointer\">\n {{item.viewName}}\n </div>\n\n <div class=\"flex space-x-2\">\n <button *ngIf=\"i !== 0\" class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForColumns(i, 'up')\">\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\n </button>\n\n <button *ngIf=\"i !== allWidgetInnerContent.length - 1\"\n class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForColumns(i, 'down')\">\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\n </button>\n <button class=\"rounded-full p-2 text-white bg-blue-500 hover:bg-blue-700 mb-2\"\n (click)=\"editComponentViews(item)\">\n <i class=\"fa fa-eye\" aria-hidden=\"true\"></i>\n </button>\n <button class=\"rounded-full p-2 text-white bg-blue-500 hover:bg-blue-700 mb-2\"\n (click)=\"editComponentDatasets(item)\">\n <i class=\"fa fa-database\" aria-hidden=\"true\"></i>\n </button>\n <button class=\"rounded-full p-2 text-white bg-red-500 hover:bg-red-700 mb-2\"\n (click)=\"getDeleteViewFromConfig(i)\">\n <i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isUpdateWidget\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Add Filter For View\n\n </div>\n <div class=\"border-x border-b p-2\">\n <div class=\"flex flex-row py-3 border-b\">\n <dx-check-box [(ngModel)]=\"addedwidGetConfig.isWidgetFilter\"\n text=\"Popup Columns Filter Enable\"></dx-check-box>\n </div>\n <div class=\"flex flex-row my-2 border-b\">\n <ng-container *ngFor=\"let item of nodeProperticeFilters; let i = index\">\n <div class=\"flex flex-wrap border-b\">\n <div class=\"px-1 w-1/3\">\n <div class=\"text-md\">Input Type</div>\n <dx-select-box [items]=\"['text']\" [(ngModel)]=\"item.input_type\"\n value=\"text\"></dx-select-box>\n </div>\n <div class=\"px-1-1 w-2/3\" *ngIf=\"item.input_type == 'text'\">\n <div class=\"text-md\">Server Column</div>\n <dx-text-box [(ngModel)]=\"item.server_column\"></dx-text-box>\n </div>\n <div class=\"px-1-1 w-1/2\" *ngIf=\"item.input_type == 'text'\">\n <div class=\"text-md\">Local Column</div>\n <dx-text-box [(ngModel)]=\"item.local_column\"></dx-text-box>\n </div>\n <div class=\"px-1-1 w-1/3\" *ngIf=\"item.input_type == 'select'\">\n <div class=\"text-md\">Columns Name</div>\n <dx-text-box [(ngModel)]=\"item.select_box_option\"></dx-text-box>\n </div>\n <div class=\"px-1-1 w-1/2\">\n <div class=\"flex justify-end\">\n <div class=\"{{commonService.btn_danger_sm}} w-24 mt-6 text-center\"\n (click)=\"deleteNodeFilter(i)\">Delete Filter</div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"{{commonService.btn_primary_sm}} w-auto text-center\"\n (click)=\"getNodeProperticeFilterOption()\">Add\n Filter</div>\n </div>\n </ng-container>\n\n <div class=\"flex flex-row justify-end items-center h-16 m-2\">\n <div class=\"{{commonService.btnDarkBlack}} m-2 w-fit text-center cursar-pointer\"\n (click)=\"backToMainView()\">Back\n </div>\n <ng-container *ngIf=\"!isUpdateWidget\">\n <div *ngIf=\"islayoutCreate\"\n class=\"{{commonService.btn_success_md}} m-2 w-fit text-center cursar-pointer\"\n (click)=\"addLayoutTOview()\">Add View\n </div>\n <div *ngIf=\"!islayoutCreate && !isEditMainLayout\"\n class=\"{{commonService.btn_primary_md}} m-2 w-fit text-center cursar-pointer\"\n (click)=\"addWidgetTOview()\">Add Layout\n </div>\n <div *ngIf=\"!islayoutCreate && isEditMainLayout\"\n class=\"{{commonService.btn_primary_md}} m-2 w-fit text-center cursar-pointer\"\n (click)=\"updateLayoutWidgetTOview()\">Update Layout\n </div>\n\n </ng-container>\n\n <div class=\"{{commonService.btn_warning_md}} m-2 w-fit text-center cursar-pointer\"\n (click)=\"updateToView()\" *ngIf=\"isUpdateWidget\">Update View\n </div>\n\n </div>\n\n\n <!-- <pre><code>{{dashBoardWidgetConfig | json}}</code></pre> -->\n </ng-container>\n <ng-container *ngIf=\"isChartButtonClick\">\n <h6\n class=\"mb-2 font-bold text-md tracking-tight text-gray-900 dark:text-white border-b pb-3 flex items-center\">\n <i class=\"fa fa-bar-chart-o mr-2\"></i> Select View\n <div class=\"{{commonService.btnDarkBlack}} m-2 w-fit text-center cursor-pointer\"\n (click)=\"backToMainView()\">Back\n </div>\n </h6>\n <div class=\" h-[80vh] overflow-x-auto\">\n <div class=\"relative my-2 \">\n <input type=\"text\" [(ngModel)]=\"viewToSearch\" (keyup)=\"filterViews()\" (keydown)=\"filterViews()\"\n class=\"bg-gray-800 border border-gray-700 text-gray-200 text-sm focus:ring-gray-400 focus:border-gray-500 block w-full p-4 h-8 rounded\"\n placeholder=\"Search View\" />\n <button type=\"button\" class=\"absolute inset-y-0 right-0 flex items-center pr-6\">\n <mat-icon class=\"rotate-90 cursor-pointer\" [svgIcon]=\"'heroicons_outline:search'\"></mat-icon>\n </button>\n </div>\n <ng-container *ngFor=\"let item of filteredComponentConfig\">\n <div class=\"relative group my-3 w-full\">\n <!-- Item View Name -->\n <div class=\"text-md font-bold border-b py-2 cursar-pointer\">\n {{item.viewName}}</div>\n\n <!-- Hover Buttons -->\n <div\n class=\"absolute top-0 right-0 flex space-x-2 opacity-0 group-hover:opacity-100 transition-opacity duration-300 pb-2\">\n <button class=\"rounded-full p-2 text-white bg-blue-500 hover:bg-blue-700\">\n <i class=\"fa fa-pencil-square-o\" aria-hidden=\"true\"\n (click)=\"editComponentViews(item)\"></i>\n </button>\n <button class=\"rounded-full p-2 text-white bg-green-500 hover:bg-green-700\"\n (click)=\"getComponentConfig(item)\">\n <i class=\"fa fa-plus\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n </div>\n\n </ng-container>\n <ng-container *ngIf=\"isDefaultView\">\n <ng-container *ngFor=\"let item of dashBoardWidgetConfig.widgets; let i = index\">\n <div class=\"group my-3 w-full flex justify-between border-b items-center\">\n <div class=\"text-md font-bold py-2 cursor-pointer\">\n {{item.widgetTitle}}\n </div>\n\n <div class=\"flex space-x-2\">\n <button *ngIf=\"i !== 0\" class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForWidget(i, 'up')\">\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\n </button>\n\n <button *ngIf=\"i !== dashBoardWidgetConfig.widgets.length - 1\"\n class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForWidget(i, 'down')\">\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\n </button>\n <button class=\"rounded-full p-2 text-white bg-blue-500 hover:bg-blue-700 mb-2\"\n (click)=\"getEditViewFromLayout(item,i)\">\n <i class=\"fa fa-pencil-square\" aria-hidden=\"true\"></i>\n\n </button>\n <button class=\"rounded-full p-2 text-white bg-red-500 hover:bg-red-700 mb-2\"\n (click)=\"getDeleteViewFromLayout(item,i)\">\n <i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n\n </div>\n </div>\n </ng-container>\n </ng-container>\n\n\n </div>\n</div>\n<!-- </div> -->\n\n<dx-popup [(visible)]=\"isEditOptionClick\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"1200\"\n [height]=\"'auto'\" [showTitle]=\"true\" class=\"popup\" title=\"{{editViewdataSourceModal.viewName}}\">\n <div *dxTemplate=\"let data of 'content'\">\n\n <app-dash-chart [datasetmodal]=\"editViewdataSourceModal\" (getChartConfigOutPut)=\"getEmitNewChartCongig($event)\"\n *ngIf=\"editViewdataSourceModal.viewType == 'chart'\"></app-dash-chart>\n <app-dash-table [datasetmodal]=\"editViewdataSourceModal\" (getTableConfigOutPut)=\"getEmitNewChartCongig($event)\"\n *ngIf=\"editViewdataSourceModal.viewType == 'table'\"></app-dash-table>\n <!-- <app-dash-other [datasetmodal]=\"editViewdataSourceModal\" *ngIf=\"editViewdataSourceModal.viewType == 'others'\"\n (createOtherComponentView)=\"getEmitNewChartCongig($event)\"></app-dash-other> -->\n </div>\n</dx-popup>\n\n\n<dx-popup [(visible)]=\"isCreateDataset\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"1200\"\n [height]=\"600\" [showTitle]=\"true\" class=\"popup\" title=\"Dataset Editor\">\n <div *dxTemplate=\"let data of 'content'\">\n <dx-scroll-view class=\"h-full\" [width]=\"'100%'\" [height]=\"'100%'\">\n <app-create-dataset [isHeader]=\"false\"></app-create-dataset>\n </dx-scroll-view>\n </div>\n</dx-popup>\n<dx-popup [(visible)]=\"isCreateDatasetWithDatasetId\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"1200\"\n [height]=\"600\" [showTitle]=\"true\" class=\"popup\" title=\"Dataset Editor\" (onHidden)=\"getDatasetPopupHide($event)\">\n <div *dxTemplate=\"let data of 'content'\">\n <dx-scroll-view class=\"h-full\" [width]=\"'100%'\" [height]=\"'100%'\">\n <app-create-dataset [selectedDatasetId]=\"selectedDatasetId\" [isHeader]=\"false\"></app-create-dataset>\n </dx-scroll-view>\n </div>\n</dx-popup>\n\n<dx-popup [(visible)]=\"isCreateNewViewWithDefaultView\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\"\n [width]=\"1200\" [height]=\"600\" [showTitle]=\"true\" class=\"popup\" title=\"Views Editor\"\n (onHidden)=\"getViewPopupHide($event)\">\n <div *dxTemplate=\"let data of 'content'\">\n <dx-scroll-view class=\"h-full\" [width]=\"'100%'\" [height]=\"'100%'\">\n <app-create-comp-view [selectedViewId]=\"selectedViewId\" [isHeader]=\"false\"></app-create-comp-view>\n </dx-scroll-view>\n </div>\n</dx-popup>\n<dx-popup [(visible)]=\"isCreateNewView\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"1200\"\n [height]=\"600\" [showTitle]=\"true\" class=\"popup\" title=\"Views Editor\">\n <div *dxTemplate=\"let data of 'content'\">\n <dx-scroll-view class=\"h-full\" [width]=\"'100%'\" [height]=\"'100%'\">\n <app-create-comp-view [isHeader]=\"false\"></app-create-comp-view>\n </dx-scroll-view>\n </div>\n</dx-popup>\n\n\n<dx-popup [(visible)]=\"isWidgetFilters\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"800\" [height]=\"400\"\n [showTitle]=\"true\" class=\"popup\" title=\"Dataset Filter\">\n <div *dxTemplate=\"let data of 'content'\">\n <div class=\"my-2\">\n <dx-scroll-view [width]=\"'100%'\" [height]=\"'85%'\">\n <ng-container *ngFor=\"let item of nodeproperticeFilterDataSource; let i = index\">\n <div class=\"flex flex-row my-2\">\n <div class=\"m-1\">\n <dx-text-box [(ngModel)]=\"item.columnName\"></dx-text-box>\n </div>\n <div class=\"m-1\">\n <dx-select-box [items]=\"['get','let']\" [(ngModel)]=\"item.operator\"\n placeholder=\"Operator\"></dx-select-box>\n </div>\n <div class=\"m-1\">\n <dx-text-box [(ngModel)]=\"item.value\"></dx-text-box>\n </div>\n </div>\n </ng-container>\n\n </dx-scroll-view>\n <div class=\"flex justify-end mx-1 flex-grow\">\n <button class=\"{{commonService.btn_success_md}} cursor-pointer mt-2\"\n (click)=\"submitFilter()\">Submit</button>\n </div>\n\n </div>\n\n </div>\n</dx-popup>\n<dx-popup [(visible)]=\"isAdvanceLayout\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"1200\"\n [height]=\"700\" [showTitle]=\"true\" class=\"popup\" title=\"Dataset Filter\">\n <div *dxTemplate=\"let data of 'content'\">\n <div class=\"flex flex-row px-2 mb-3\">\n <div class=\"w-2/3 mb-2\">\n <div class=\"text-md mb-2\">Select Views</div>\n <dx-tag-box [dataSource]=\"componentConfigDataSource\" valueExpr=\"viewId\" displayExpr=\"viewName\"\n [multiline]=\"true\" [showSelectionControls]=\"true\" [(ngModel)]=\"selectedViewsIds\"\n [maxDisplayedTags]=\"3\" (onValueChanged)=\"getSelectedColumnSource($event)\" [searchEnabled]=\"true\">\n </dx-tag-box>\n </div>\n <div class=\"w-1/3 px-2\">\n <button class=\"{{commonService.btn_primary_md}} mt-6\" (click)=\"getProcessForConfig()\">\n Add To View\n </button>\n <!-- <button class=\"{{commonService.btn_danger_md}} cursor-pointer mt-6\" (click)=\"cancelCdrConfig()\">Cancel\n </button> -->\n </div>\n </div>\n <dx-scroll-view [width]=\"'100%'\" [height]=\"'80%'\">\n\n <div class=\"m-2 border-b\" *ngIf=\"isProceed\">\n <ng-container *ngFor=\"let item of advanceLayoutContainer; let i = index;\">\n <div class=\"flex flex-row m-2\">\n <div class=\"mx-2 w-1/2\">\n <div class=\"text-md mb-2\">View Name</div>\n <dx-text-box [(ngModel)]=\"item.compConfig.viewConfig[0].viewName\"></dx-text-box>\n </div>\n <div class=\"mx-2\">\n <div class=\"text-md mb-2\">Widget Title</div>\n <dx-text-box [(ngModel)]=\"item.nodeProperties.widgetTitle\"></dx-text-box>\n </div>\n\n <div class=\"mx-2\">\n <div class=\"text-md mb-2\">Widget Width</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"widget_width\"\n [(ngModel)]=\"item.nodeProperties.width\"></dx-select-box>\n </div>\n\n <div class=\"mx-2\">\n <div class=\"text-md mb-2\">Widget Height</div>\n <dx-text-box [(ngModel)]=\"item.nodeProperties.height\"></dx-text-box>\n </div>\n <div class=\"mx-2\">\n <div class=\"text-md mb-2\">Widget Filter</div>\n <dx-select-box [items]=\"filterDataSource\" displayExpr=\"filterName\" [searchEnabled]=\"true\"\n valueExpr=\"filterId\" [(ngModel)]=\"item.filterId\"></dx-select-box>\n </div>\n <div class=\"mx-2\">\n <div class=\"text-md mt-8\">\n <dx-check-box [(ngModel)]=\"item.nodeProperties.display\" text=\"Display\"></dx-check-box>\n </div>\n </div>\n <div class=\"mx-2\">\n <button class=\"{{commonService.btn_danger_sm}} cursor-pointer mt-8\"\n (click)=\"deleteView(i)\"><i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n </div>\n </dx-scroll-view>\n <div class=\"flex justify-end mx-1 my-2 flex-grow\">\n <button class=\"{{commonService.btn_success_md}} cursor-pointer mt-2\" (click)=\"submitAdvanceView()\">Add\n Layout</button>\n </div>\n </div>\n</dx-popup>", styles: ["::ng-deep #scrollview-demo{min-height:550px}::ng-deep #scrollview{height:auto;position:absolute;top:0;bottom:300px;padding:20px}::ng-deep #scrollview-content{white-space:pre-wrap}.scrollable-content{height:90vh;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i4$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i5$1.DxCheckBoxComponent, selector: "dx-check-box", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "iconSize", "isValid", "name", "readOnly", "rtlEnabled", "tabIndex", "text", "validationError", "validationErrors", "validationMessageMode", "validationStatus", "value", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconSizeChange", "isValidChange", "nameChange", "readOnlyChange", "rtlEnabledChange", "tabIndexChange", "textChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationStatusChange", "valueChange", "visibleChange", "widthChange", "onBlur"] }, { 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: i10$1.DxScrollViewComponent, selector: "dx-scroll-view", inputs: ["bounceEnabled", "direction", "disabled", "elementAttr", "height", "pulledDownText", "pullingDownText", "reachBottomText", "refreshingText", "rtlEnabled", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "onPullDown", "onReachBottom", "onScroll", "onUpdated", "bounceEnabledChange", "directionChange", "disabledChange", "elementAttrChange", "heightChange", "pulledDownTextChange", "pullingDownTextChange", "reachBottomTextChange", "refreshingTextChange", "rtlEnabledChange", "scrollByContentChange", "scrollByThumbChange", "showScrollbarChange", "useNativeChange", "widthChange"] }, { 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: "component", type: i8$1.DxTagBoxComponent, selector: "dx-tag-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "applyValueMode", "buttons", "dataSource", "deferRendering", "disabled", "displayExpr", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hideSelectedItems", "hint", "hoverStateEnabled", "inputAttr", "isValid", "items", "itemTemplate", "label", "labelMode", "maxDisplayedTags", "maxFilterQueryLength", "maxLength", "minSearchLength", "multiline", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectAllMode", "selectAllText", "selectedItems", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showMultiTagOnly", "showSelectionControls", "stylingMode", "tabIndex", "tagTemplate", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationStatus", "value", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCustomItemCreating", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onMultiTagPreparing", "onOpened", "onOptionChanged", "onSelectAllValueChanged", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "applyValueModeChange", "buttonsChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hideSelectedItemsChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxDisplayedTagsChange", "maxFilterQueryLengthChange", "maxLengthChange", "minSearchLengthChange", "multilineChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectAllModeChange", "selectAllTextChange", "selectedItemsChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showMultiTagOnlyChange", "showSelectionControlsChange", "stylingModeChange", "tabIndexChange", "tagTemplateChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationStatusChange", "valueChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "component", type: i7.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { 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: LoadingComponent$1, selector: "app-loading" }, { kind: "component", type: CreateCompViewComponent, selector: "app-create-comp-view", inputs: ["kpiTreeData", "isHeader", "selectedViewId"] }, { kind: "component", type: DashChartComponent, selector: "app-dash-chart", inputs: ["datasetmodal"], outputs: ["getChartConfigOutPut"] }, { kind: "component", type: DashTableComponent, selector: "app-dash-table", inputs: ["datasetmodal"], outputs: ["getTableConfigOutPut"] }, { kind: "component", type: CreateDatasetComponent, selector: "app-create-dataset", inputs: ["isHeader", "selectedDatasetId"] }, { kind: "component", type: CommonHeaderComponent, selector: "lib-common-header", inputs: ["pageTitle"] }] });
12938
+ PageConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PageConfigComponent, selector: "app-dashbord-config", 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: "scrollView", first: true, predicate: DxScrollViewComponent, descendants: true }], ngImport: i0, template: "<app-loading *ngIf=\"loadingModal\"></app-loading>\n\n<div class=\"flex flex-row h-[90vh] w-full\">\n <div class=\"w-3/4 border-r h-full flex flex-col px-2\">\n <!-- Scrollable content -->\n <div class=\"flex-grow overflow-y-auto\">\n <div class=\"flex flex-wrap my-3\" #dynamicContainer></div>\n </div>\n\n <!-- Fixed bottom section -->\n <div class=\"flex flex-row justify-center items-center h-16 m-2 border shrink-0\">\n <lib-common-header [pageTitle]=\"''\"></lib-common-header>\n <div class=\"{{commonService.btn_primary_md}} m-2\" (click)=\"addWidget()\">Add Layout</div>\n <div class=\"{{commonService.btnOthersPurple}} m-2 cursor-pointer\" (click)=\"getViewPage()\">View Page</div>\n </div>\n </div>\n <div class=\"w-1/4 p-2 h-full\">\n <ng-container *ngIf=\"isDashBoardContent\">\n <div class=\"{{commonService.btnDarkBlack}} m-2 w-fit text-center cursar-pointer\" (click)=\"backToMainView()\">\n Back\n </div>\n <ng-container *ngFor=\"let item of page_config.api_config; let i = index\">\n <div class=\"mb-2 flex flex-row justify-between items-center border-b\">\n <div class=\"text-md py-2 font-bold text-white px-2\">\n {{item.widGetConfig.widgetTitle}}\n </div>\n <div class=\"flex space-x-2\">\n <!-- <button (click)=\"editSelectedWidget(item, i)\"\n class=\"w-8 h-8 bg-sky-600 hover:bg-blue-800 text-white rounded-full flex items-center justify-center\">\n <i class=\"fa fa-edit\"></i>\n </button> -->\n <button\n class=\"w-8 h-8 bg-red-600 hover:bg-red-800 text-white rounded-full flex items-center justify-center\">\n <i class=\"fa fa-trash-o\"></i>\n </button>\n </div>\n </div>\n\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"isWidgetCreationContent\">\n <h6 class=\"mb-2 font-bold text-lg tracking-tight text-gray-900 dark:text-white border-b pb-3\">\n <span *ngIf=\"!islayoutCreate\">Widget Settings</span>\n <span *ngIf=\"islayoutCreate\">Layout Settings</span>\n </h6>\n <div class=\"flex flex-row my-4\">\n <dx-check-box class=\"ml-auto\" [(ngModel)]=\"addedwidGetConfig.display\" text=\"Display\"></dx-check-box>\n </div>\n <div class=\"flex flex-row mb-2 justify-between\">\n <span class=\"text-md my-auto px-2\">Width</span>\n <dx-select-box class=\"w-1/2\" [items]=\"widget_width\"\n [(ngModel)]=\"addedwidGetConfig.width\"></dx-select-box>\n </div>\n <div class=\"flex flex-row mb-2 justify-between\">\n <span class=\"text-md my-auto px-2\">Height</span>\n <dx-text-box class=\"w-1/2\" [(ngModel)]=\"addedwidGetConfig.height\"></dx-text-box>\n </div>\n\n <div class=\"flex flex-row mb-2 justify-between\" *ngIf=\"!islayoutCreate\">\n <div class=\"text-md my-auto px-2 inline\">Widget Title</div>\n <dx-text-box class=\"w-full\" [(ngModel)]=\"widgetTitle\"></dx-text-box>\n </div>\n <div class=\"flex flex-row mb-2 justify-between\" *ngIf=\"!islayoutCreate\">\n <div class=\"text-md my-auto px-2\">Widget Name</div>\n <dx-text-box class=\"w-full\" [(ngModel)]=\"widgetName\"></dx-text-box>\n </div>\n\n\n <div class=\"flex flex-row mb-5 justify-between\" *ngIf=\"islayoutCreate\">\n <span class=\"text-sm my-auto px-2\">Layout Title</span>\n <dx-text-box class=\"w-1/2\" [(ngModel)]=\"addedwidGetConfig.widgetTitle\"></dx-text-box>\n </div>\n\n <div class=\"flex flex-row mb-2 justify-between\">\n <span class=\"text-md my-auto px-2\">Filter</span>\n <dx-select-box class=\"w-1/2\" [items]=\"filterDataSource\" displayExpr=\"filterName\" [searchEnabled]=\"true\"\n valueExpr=\"filterId\" [(ngModel)]=\"selectedFilterId\"\n (onValueChanged)=\"getFilterValueById($event)\"></dx-select-box>\n </div>\n <ng-container *ngIf=\"!isUpdateWidget\">\n <div class=\"mt-6\" *ngIf=\"!islayoutCreate && isEditMainLayout\">\n <ng-container\n *ngFor=\"let item of dashBoardWidgetConfig.widgets[newWidgetIndex].widgetNode;let i = index\">\n <div class=\"mb-2 flex flex-row justify-between items-center border-b \">\n <div class=\"text-md py-2 font-bold text-white px-2\">\n {{item.nodeProperties.widgetTitle}}\n </div>\n <div class=\"flex space-x-2\">\n <button *ngIf=\"i !== 0\" class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForPageView(i, 'up')\">\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\n </button>\n\n <button\n *ngIf=\"i !== dashBoardWidgetConfig.widgets[newWidgetIndex].widgetNode.length - 1\"\n class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForPageView(i, 'down')\">\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\n </button>\n <button\n class=\"w-8 h-8 bg-red-600 hover:bg-red-800 text-white rounded-full flex items-center justify-center\">\n <i class=\"fa fa-trash-o\"></i>\n </button>\n </div>\n </div>\n\n </ng-container>\n </div>\n </ng-container>\n\n\n\n <ng-container *ngIf=\"isUpdateWidget\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Application Views\n </div>\n <div class=\"border-x border-b p-2\">\n <ng-container *ngFor=\"let item of allWidgetInnerContent; let i = index\">\n <div class=\"group w-full flex justify-between border-b items-center\">\n <div class=\"text-md font-bold py-2 cursor-pointer\">\n {{item.viewName}}\n </div>\n\n <div class=\"flex space-x-2\">\n <button *ngIf=\"i !== 0\" class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForColumns(i, 'up')\">\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\n </button>\n\n <button *ngIf=\"i !== allWidgetInnerContent.length - 1\"\n class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForColumns(i, 'down')\">\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\n </button>\n <button class=\"rounded-full p-2 text-white bg-blue-500 hover:bg-blue-700 mb-2\"\n (click)=\"editComponentViews(item)\">\n <i class=\"fa fa-eye\" aria-hidden=\"true\"></i>\n </button>\n <button class=\"rounded-full p-2 text-white bg-blue-500 hover:bg-blue-700 mb-2\"\n (click)=\"editComponentDatasets(item)\">\n <i class=\"fa fa-database\" aria-hidden=\"true\"></i>\n </button>\n <button class=\"rounded-full p-2 text-white bg-red-500 hover:bg-red-700 mb-2\"\n (click)=\"getDeleteViewFromConfig(i)\">\n <i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isUpdateWidget\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Add Filter For View\n\n </div>\n <div class=\"border-x border-b p-2\">\n <div class=\"flex flex-row py-3 border-b\">\n <dx-check-box [(ngModel)]=\"addedwidGetConfig.isWidgetFilter\"\n text=\"Popup Columns Filter Enable\"></dx-check-box>\n </div>\n <div class=\"flex flex-row my-2 border-b\">\n <ng-container *ngFor=\"let item of nodeProperticeFilters; let i = index\">\n <div class=\"flex flex-wrap border-b\">\n <div class=\"px-1 w-1/3\">\n <div class=\"text-md\">Input Type</div>\n <dx-select-box [items]=\"['text']\" [(ngModel)]=\"item.input_type\"\n value=\"text\"></dx-select-box>\n </div>\n <div class=\"px-1-1 w-2/3\" *ngIf=\"item.input_type == 'text'\">\n <div class=\"text-md\">Server Column</div>\n <dx-text-box [(ngModel)]=\"item.server_column\"></dx-text-box>\n </div>\n <div class=\"px-1-1 w-1/2\" *ngIf=\"item.input_type == 'text'\">\n <div class=\"text-md\">Local Column</div>\n <dx-text-box [(ngModel)]=\"item.local_column\"></dx-text-box>\n </div>\n <div class=\"px-1-1 w-1/3\" *ngIf=\"item.input_type == 'select'\">\n <div class=\"text-md\">Columns Name</div>\n <dx-text-box [(ngModel)]=\"item.select_box_option\"></dx-text-box>\n </div>\n <div class=\"px-1-1 w-1/2\">\n <div class=\"flex justify-end\">\n <div class=\"{{commonService.btn_danger_sm}} w-24 mt-6 text-center\"\n (click)=\"deleteNodeFilter(i)\">Delete Filter</div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"{{commonService.btn_primary_sm}} w-auto text-center\"\n (click)=\"getNodeProperticeFilterOption()\">Add\n Filter</div>\n </div>\n </ng-container>\n\n <div class=\"flex flex-row justify-end items-center h-16 m-2\">\n <div class=\"{{commonService.btnDarkBlack}} m-2 w-fit text-center cursar-pointer\"\n (click)=\"backToMainView()\">Back\n </div>\n <ng-container *ngIf=\"!isUpdateWidget\">\n <div *ngIf=\"islayoutCreate\"\n class=\"{{commonService.btn_success_md}} m-2 w-fit text-center cursar-pointer\"\n (click)=\"addLayoutTOview()\">Add View\n </div>\n <div *ngIf=\"!islayoutCreate && !isEditMainLayout\"\n class=\"{{commonService.btn_primary_md}} m-2 w-fit text-center cursar-pointer\"\n (click)=\"addWidgetTOview()\">Add Layout\n </div>\n <div *ngIf=\"!islayoutCreate && isEditMainLayout\"\n class=\"{{commonService.btn_primary_md}} m-2 w-fit text-center cursar-pointer\"\n (click)=\"updateLayoutWidgetTOview()\">Update Layout\n </div>\n\n </ng-container>\n\n <div class=\"{{commonService.btn_warning_md}} m-2 w-fit text-center cursar-pointer\"\n (click)=\"updateToView()\" *ngIf=\"isUpdateWidget\">Update View\n </div>\n\n </div>\n\n\n <!-- <pre><code>{{dashBoardWidgetConfig | json}}</code></pre> -->\n </ng-container>\n <ng-container *ngIf=\"isChartButtonClick\">\n <h6\n class=\"mb-2 font-bold text-md tracking-tight text-gray-900 dark:text-white border-b pb-3 flex items-center\">\n <i class=\"fa fa-bar-chart-o mr-2\"></i> Select View\n <div class=\"{{commonService.btnDarkBlack}} m-2 w-fit text-center cursor-pointer\"\n (click)=\"backToMainView()\">Back\n </div>\n </h6>\n <div class=\" h-[80vh] overflow-x-auto\">\n <div class=\"relative my-2 \">\n <input type=\"text\" [(ngModel)]=\"viewToSearch\" (keyup)=\"filterViews()\" (keydown)=\"filterViews()\"\n class=\"bg-gray-800 border border-gray-700 text-gray-200 text-sm focus:ring-gray-400 focus:border-gray-500 block w-full p-4 h-8 rounded\"\n placeholder=\"Search View\" />\n <button type=\"button\" class=\"absolute inset-y-0 right-0 flex items-center pr-6\">\n <mat-icon class=\"rotate-90 cursor-pointer\" [svgIcon]=\"'heroicons_outline:search'\"></mat-icon>\n </button>\n </div>\n <ng-container *ngFor=\"let item of filteredComponentConfig\">\n <div class=\"relative group my-3 w-full\">\n <!-- Item View Name -->\n <div class=\"text-md font-bold border-b py-2 cursar-pointer\">\n {{item.viewName}}</div>\n\n <!-- Hover Buttons -->\n <div\n class=\"absolute top-0 right-0 flex space-x-2 opacity-0 group-hover:opacity-100 transition-opacity duration-300 pb-2\">\n <button class=\"rounded-full p-2 text-white bg-blue-500 hover:bg-blue-700\">\n <i class=\"fa fa-pencil-square-o\" aria-hidden=\"true\"\n (click)=\"editComponentViews(item)\"></i>\n </button>\n <button class=\"rounded-full p-2 text-white bg-green-500 hover:bg-green-700\"\n (click)=\"getComponentConfig(item)\">\n <i class=\"fa fa-plus\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n </div>\n\n </ng-container>\n <ng-container *ngIf=\"isDefaultView\">\n <ng-container *ngFor=\"let item of dashBoardWidgetConfig.widgets; let i = index\">\n <div class=\"group my-3 w-full flex justify-between border-b items-center\">\n <div class=\"text-md font-bold py-2 cursor-pointer\">\n {{item.widgetTitle}}\n </div>\n\n <div class=\"flex space-x-2\">\n <button *ngIf=\"i !== 0\" class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForWidget(i, 'up')\">\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\n </button>\n\n <button *ngIf=\"i !== dashBoardWidgetConfig.widgets.length - 1\"\n class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForWidget(i, 'down')\">\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\n </button>\n <button class=\"rounded-full p-2 text-white bg-blue-500 hover:bg-blue-700 mb-2\"\n (click)=\"getEditViewFromLayout(item,i)\">\n <i class=\"fa fa-pencil-square\" aria-hidden=\"true\"></i>\n\n </button>\n <button class=\"rounded-full p-2 text-white bg-red-500 hover:bg-red-700 mb-2\"\n (click)=\"getDeleteViewFromLayout(item,i)\">\n <i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n\n </div>\n </div>\n </ng-container>\n </ng-container>\n\n\n </div>\n</div>\n<!-- </div> -->\n\n<dx-popup [(visible)]=\"isEditOptionClick\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"1200\"\n [height]=\"'auto'\" [showTitle]=\"true\" class=\"popup\" title=\"{{editViewdataSourceModal.viewName}}\">\n <div *dxTemplate=\"let data of 'content'\">\n\n <app-dash-chart [datasetmodal]=\"editViewdataSourceModal\" (getChartConfigOutPut)=\"getEmitNewChartCongig($event)\"\n *ngIf=\"editViewdataSourceModal.viewType == 'chart'\"></app-dash-chart>\n <app-dash-table [datasetmodal]=\"editViewdataSourceModal\" (getTableConfigOutPut)=\"getEmitNewChartCongig($event)\"\n *ngIf=\"editViewdataSourceModal.viewType == 'table'\"></app-dash-table>\n <!-- <app-dash-other [datasetmodal]=\"editViewdataSourceModal\" *ngIf=\"editViewdataSourceModal.viewType == 'others'\"\n (createOtherComponentView)=\"getEmitNewChartCongig($event)\"></app-dash-other> -->\n </div>\n</dx-popup>\n\n\n<dx-popup [(visible)]=\"isCreateDataset\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"1200\"\n [height]=\"600\" [showTitle]=\"true\" class=\"popup\" title=\"Dataset Editor\">\n <div *dxTemplate=\"let data of 'content'\">\n <dx-scroll-view class=\"h-full\" [width]=\"'100%'\" [height]=\"'100%'\">\n <app-create-dataset [isHeader]=\"false\"></app-create-dataset>\n </dx-scroll-view>\n </div>\n</dx-popup>\n<dx-popup [(visible)]=\"isCreateDatasetWithDatasetId\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"1200\"\n [height]=\"600\" [showTitle]=\"true\" class=\"popup\" title=\"Dataset Editor\" (onHidden)=\"getDatasetPopupHide($event)\">\n <div *dxTemplate=\"let data of 'content'\">\n <dx-scroll-view class=\"h-full\" [width]=\"'100%'\" [height]=\"'100%'\">\n <app-create-dataset [selectedDatasetId]=\"selectedDatasetId\" [isHeader]=\"false\"></app-create-dataset>\n </dx-scroll-view>\n </div>\n</dx-popup>\n\n<dx-popup [(visible)]=\"isCreateNewViewWithDefaultView\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\"\n [width]=\"1200\" [height]=\"600\" [showTitle]=\"true\" class=\"popup\" title=\"Views Editor\"\n (onHidden)=\"getViewPopupHide($event)\">\n <div *dxTemplate=\"let data of 'content'\">\n <dx-scroll-view class=\"h-full\" [width]=\"'100%'\" [height]=\"'100%'\">\n <app-create-comp-view [selectedViewId]=\"selectedViewId\" [isHeader]=\"false\"></app-create-comp-view>\n </dx-scroll-view>\n </div>\n</dx-popup>\n<dx-popup [(visible)]=\"isCreateNewView\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"1200\"\n [height]=\"600\" [showTitle]=\"true\" class=\"popup\" title=\"Views Editor\">\n <div *dxTemplate=\"let data of 'content'\">\n <dx-scroll-view class=\"h-full\" [width]=\"'100%'\" [height]=\"'100%'\">\n <app-create-comp-view [isHeader]=\"false\"></app-create-comp-view>\n </dx-scroll-view>\n </div>\n</dx-popup>\n\n\n<dx-popup [(visible)]=\"isWidgetFilters\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"800\" [height]=\"400\"\n [showTitle]=\"true\" class=\"popup\" title=\"Dataset Filter\">\n <div *dxTemplate=\"let data of 'content'\">\n <div class=\"my-2\">\n <dx-scroll-view [width]=\"'100%'\" [height]=\"'85%'\">\n <ng-container *ngFor=\"let item of nodeproperticeFilterDataSource; let i = index\">\n <div class=\"flex flex-row my-2\">\n <div class=\"m-1\">\n <dx-text-box [(ngModel)]=\"item.columnName\"></dx-text-box>\n </div>\n <div class=\"m-1\">\n <dx-select-box [items]=\"['get','let']\" [(ngModel)]=\"item.operator\"\n placeholder=\"Operator\"></dx-select-box>\n </div>\n <div class=\"m-1\">\n <dx-text-box [(ngModel)]=\"item.value\"></dx-text-box>\n </div>\n </div>\n </ng-container>\n\n </dx-scroll-view>\n <div class=\"flex justify-end mx-1 flex-grow\">\n <button class=\"{{commonService.btn_success_md}} cursor-pointer mt-2\"\n (click)=\"submitFilter()\">Submit</button>\n </div>\n\n </div>\n\n </div>\n</dx-popup>\n<dx-popup [(visible)]=\"isAdvanceLayout\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"1200\"\n [height]=\"700\" [showTitle]=\"true\" class=\"popup\" title=\"Dataset Filter\">\n <div *dxTemplate=\"let data of 'content'\">\n <div class=\"flex flex-row px-2 mb-3\">\n <div class=\"w-2/3 mb-2\">\n <div class=\"text-md mb-2\">Select Views</div>\n <dx-tag-box [dataSource]=\"componentConfigDataSource\" valueExpr=\"viewId\" displayExpr=\"viewName\"\n [multiline]=\"true\" [showSelectionControls]=\"true\" [(ngModel)]=\"selectedViewsIds\"\n [maxDisplayedTags]=\"3\" (onValueChanged)=\"getSelectedColumnSource($event)\" [searchEnabled]=\"true\">\n </dx-tag-box>\n </div>\n <div class=\"w-1/3 px-2\">\n <button class=\"{{commonService.btn_primary_md}} mt-6\" (click)=\"getProcessForConfig()\">\n Add To View\n </button>\n <!-- <button class=\"{{commonService.btn_danger_md}} cursor-pointer mt-6\" (click)=\"cancelCdrConfig()\">Cancel\n </button> -->\n </div>\n </div>\n <dx-scroll-view [width]=\"'100%'\" [height]=\"'80%'\">\n\n <div class=\"m-2 border-b\" *ngIf=\"isProceed\">\n <ng-container *ngFor=\"let item of advanceLayoutContainer; let i = index;\">\n <div class=\"flex flex-row m-2\">\n <div class=\"mx-2 w-1/2\">\n <div class=\"text-md mb-2\">View Name</div>\n <dx-text-box [(ngModel)]=\"item.compConfig.viewConfig[0].viewName\"></dx-text-box>\n </div>\n <div class=\"mx-2\">\n <div class=\"text-md mb-2\">Widget Title</div>\n <dx-text-box [(ngModel)]=\"item.nodeProperties.widgetTitle\"></dx-text-box>\n </div>\n\n <div class=\"mx-2\">\n <div class=\"text-md mb-2\">Widget Width</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"widget_width\"\n [(ngModel)]=\"item.nodeProperties.width\"></dx-select-box>\n </div>\n\n <div class=\"mx-2\">\n <div class=\"text-md mb-2\">Widget Height</div>\n <dx-text-box [(ngModel)]=\"item.nodeProperties.height\"></dx-text-box>\n </div>\n <div class=\"mx-2\">\n <div class=\"text-md mb-2\">Widget Filter</div>\n <dx-select-box [items]=\"filterDataSource\" displayExpr=\"filterName\" [searchEnabled]=\"true\"\n valueExpr=\"filterId\" [(ngModel)]=\"item.filterId\"></dx-select-box>\n </div>\n <div class=\"mx-2\">\n <div class=\"text-md mt-8\">\n <dx-check-box [(ngModel)]=\"item.nodeProperties.display\" text=\"Display\"></dx-check-box>\n </div>\n </div>\n <div class=\"mx-2\">\n <button class=\"{{commonService.btn_danger_sm}} cursor-pointer mt-8\"\n (click)=\"deleteView(i)\"><i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n </div>\n </dx-scroll-view>\n <div class=\"flex justify-end mx-1 my-2 flex-grow\">\n <button class=\"{{commonService.btn_success_md}} cursor-pointer mt-2\" (click)=\"submitAdvanceView()\">Add\n Layout</button>\n </div>\n </div>\n</dx-popup>", styles: ["::ng-deep #scrollview-demo{min-height:550px}::ng-deep #scrollview{height:auto;position:absolute;top:0;bottom:300px;padding:20px}::ng-deep #scrollview-content{white-space:pre-wrap}.scrollable-content{height:90vh;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i4$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i5$1.DxCheckBoxComponent, selector: "dx-check-box", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "iconSize", "isValid", "name", "readOnly", "rtlEnabled", "tabIndex", "text", "validationError", "validationErrors", "validationMessageMode", "validationStatus", "value", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconSizeChange", "isValidChange", "nameChange", "readOnlyChange", "rtlEnabledChange", "tabIndexChange", "textChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationStatusChange", "valueChange", "visibleChange", "widthChange", "onBlur"] }, { 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: i10$1.DxScrollViewComponent, selector: "dx-scroll-view", inputs: ["bounceEnabled", "direction", "disabled", "elementAttr", "height", "pulledDownText", "pullingDownText", "reachBottomText", "refreshingText", "rtlEnabled", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "onPullDown", "onReachBottom", "onScroll", "onUpdated", "bounceEnabledChange", "directionChange", "disabledChange", "elementAttrChange", "heightChange", "pulledDownTextChange", "pullingDownTextChange", "reachBottomTextChange", "refreshingTextChange", "rtlEnabledChange", "scrollByContentChange", "scrollByThumbChange", "showScrollbarChange", "useNativeChange", "widthChange"] }, { 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: "component", type: i8$1.DxTagBoxComponent, selector: "dx-tag-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "applyValueMode", "buttons", "dataSource", "deferRendering", "disabled", "displayExpr", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hideSelectedItems", "hint", "hoverStateEnabled", "inputAttr", "isValid", "items", "itemTemplate", "label", "labelMode", "maxDisplayedTags", "maxFilterQueryLength", "maxLength", "minSearchLength", "multiline", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectAllMode", "selectAllText", "selectedItems", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showMultiTagOnly", "showSelectionControls", "stylingMode", "tabIndex", "tagTemplate", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationStatus", "value", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCustomItemCreating", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onMultiTagPreparing", "onOpened", "onOptionChanged", "onSelectAllValueChanged", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "applyValueModeChange", "buttonsChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hideSelectedItemsChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxDisplayedTagsChange", "maxFilterQueryLengthChange", "maxLengthChange", "minSearchLengthChange", "multilineChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectAllModeChange", "selectAllTextChange", "selectedItemsChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showMultiTagOnlyChange", "showSelectionControlsChange", "stylingModeChange", "tabIndexChange", "tagTemplateChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationStatusChange", "valueChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "component", type: i7.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { 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: LoadingComponent$1, selector: "app-loading" }, { kind: "component", type: CreateCompViewComponent, selector: "app-create-comp-view", inputs: ["kpiTreeData", "isHeader", "selectedViewId"] }, { kind: "component", type: DashChartComponent, selector: "app-dash-chart", inputs: ["datasetmodal"], outputs: ["getChartConfigOutPut"] }, { kind: "component", type: DashTableComponent, selector: "app-dash-table", inputs: ["datasetmodal"], outputs: ["getTableConfigOutPut"] }, { kind: "component", type: CreateDatasetComponent, selector: "app-create-dataset", inputs: ["isHeader", "selectedDatasetId"] }, { kind: "component", type: CommonHeaderComponent, selector: "lib-common-header", inputs: ["pageTitle"] }] });
12942
12939
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PageConfigComponent, decorators: [{
12943
12940
  type: Component,
12944
- args: [{ selector: 'app-dashbord-config', template: "<app-loading *ngIf=\"loadingModal\"></app-loading>\n\n<div class=\"flex flex-row h-[90vh] w-full\">\n <div class=\"w-3/4 border-r h-full flex flex-col px-2\">\n <!-- Scrollable content -->\n <div class=\"flex-grow overflow-y-auto\">\n <div class=\"flex flex-wrap my-3\" #dynamicContainer></div>\n </div>\n\n <!-- Fixed bottom section -->\n <div class=\"flex flex-row justify-center items-center h-16 m-2 border shrink-0\">\n <lib-common-header [pageTitle]=\"''\"></lib-common-header>\n <div class=\"{{commonService.btn_primary_md}} m-2\" (click)=\"addWidget()\">Add Layout</div>\n <div class=\"{{commonService.btnOthersPurple}} m-2 cursor-pointer\" (click)=\"getViewPage()\">View Page</div>\n </div>\n </div>\n <div class=\"w-1/4 p-2 h-full\">\n <ng-container *ngIf=\"isDashBoardContent\">\n <div class=\"{{commonService.btnDarkBlack}} m-2 w-fit text-center cursar-pointer\" (click)=\"backToMainView()\">\n Back\n </div>\n <ng-container *ngFor=\"let item of page_config.api_config; let i = index\">\n <div class=\"mb-2 flex flex-row justify-between items-center border-b\">\n <div class=\"text-md py-2 font-bold text-white px-2\">\n {{item.widGetConfig.widgetTitle}}\n </div>\n <div class=\"flex space-x-2\">\n <!-- <button (click)=\"editSelectedWidget(item, i)\"\n class=\"w-8 h-8 bg-sky-600 hover:bg-blue-800 text-white rounded-full flex items-center justify-center\">\n <i class=\"fa fa-edit\"></i>\n </button> -->\n <button\n class=\"w-8 h-8 bg-red-600 hover:bg-red-800 text-white rounded-full flex items-center justify-center\">\n <i class=\"fa fa-trash-o\"></i>\n </button>\n </div>\n </div>\n\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"isWidgetCreationContent\">\n <h6 class=\"mb-2 font-bold text-lg tracking-tight text-gray-900 dark:text-white border-b pb-3\">\n <span *ngIf=\"!islayoutCreate\">Widget Settings</span>\n <span *ngIf=\"islayoutCreate\">Layout Settings</span>\n </h6>\n <div class=\"flex flex-row my-4\">\n <dx-check-box class=\"ml-auto\" [(ngModel)]=\"addedwidGetConfig.display\" text=\"Display\"></dx-check-box>\n </div>\n <div class=\"flex flex-row mb-2 justify-between\">\n <span class=\"text-md my-auto px-2\">Width</span>\n <dx-select-box class=\"w-1/2\" [items]=\"widget_width\"\n [(ngModel)]=\"addedwidGetConfig.width\"></dx-select-box>\n </div>\n <div class=\"flex flex-row mb-2 justify-between\">\n <span class=\"text-md my-auto px-2\">Height</span>\n <dx-text-box class=\"w-1/2\" [(ngModel)]=\"addedwidGetConfig.height\"></dx-text-box>\n </div>\n\n <div class=\"flex flex-row mb-2 justify-between\" *ngIf=\"!islayoutCreate\">\n <div class=\"text-md my-auto px-2\">Widget Title</div>\n <div><dx-text-box class=\"w-1/2\" [(ngModel)]=\"widgetTitle\"></dx-text-box></div>\n </div>\n <div class=\"flex flex-row mb-2 justify-between\" *ngIf=\"!islayoutCreate\">\n <span class=\"text-md my-auto px-2\">Widget Name</span>\n <dx-text-box class=\"w-1/2\" [(ngModel)]=\"widgetName\"></dx-text-box>\n </div>\n\n\n <div class=\"flex flex-row mb-5 justify-between\" *ngIf=\"islayoutCreate\">\n <span class=\"text-sm my-auto px-2\">Layout Title</span>\n <dx-text-box class=\"w-1/2\" [(ngModel)]=\"addedwidGetConfig.widgetTitle\"></dx-text-box>\n </div>\n\n <div class=\"flex flex-row mb-2 justify-between\">\n <span class=\"text-md my-auto px-2\">Filter</span>\n <dx-select-box class=\"w-1/2\" [items]=\"filterDataSource\" displayExpr=\"filterName\" [searchEnabled]=\"true\"\n valueExpr=\"filterId\" [(ngModel)]=\"selectedFilterId\"\n (onValueChanged)=\"getFilterValueById($event)\"></dx-select-box>\n </div>\n <ng-container *ngIf=\"!isUpdateWidget\">\n <div class=\"mt-6\" *ngIf=\"!islayoutCreate && isEditMainLayout\">\n <ng-container\n *ngFor=\"let item of dashBoardWidgetConfig.widgets[newWidgetIndex].widgetNode;let i = index\">\n <div class=\"mb-2 flex flex-row justify-between items-center border-b \">\n <div class=\"text-md py-2 font-bold text-white px-2\">\n {{item.nodeProperties.widgetTitle}}\n </div>\n <div class=\"flex space-x-2\">\n <button *ngIf=\"i !== 0\" class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForPageView(i, 'up')\">\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\n </button>\n\n <button\n *ngIf=\"i !== dashBoardWidgetConfig.widgets[newWidgetIndex].widgetNode.length - 1\"\n class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForPageView(i, 'down')\">\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\n </button>\n <button\n class=\"w-8 h-8 bg-red-600 hover:bg-red-800 text-white rounded-full flex items-center justify-center\">\n <i class=\"fa fa-trash-o\"></i>\n </button>\n </div>\n </div>\n\n </ng-container>\n </div>\n </ng-container>\n\n\n\n <ng-container *ngIf=\"isUpdateWidget\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Application Views\n </div>\n <div class=\"border-x border-b p-2\">\n <ng-container *ngFor=\"let item of allWidgetInnerContent; let i = index\">\n <div class=\"group w-full flex justify-between border-b items-center\">\n <div class=\"text-md font-bold py-2 cursor-pointer\">\n {{item.viewName}}\n </div>\n\n <div class=\"flex space-x-2\">\n <button *ngIf=\"i !== 0\" class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForColumns(i, 'up')\">\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\n </button>\n\n <button *ngIf=\"i !== allWidgetInnerContent.length - 1\"\n class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForColumns(i, 'down')\">\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\n </button>\n <button class=\"rounded-full p-2 text-white bg-blue-500 hover:bg-blue-700 mb-2\"\n (click)=\"editComponentViews(item)\">\n <i class=\"fa fa-eye\" aria-hidden=\"true\"></i>\n </button>\n <button class=\"rounded-full p-2 text-white bg-blue-500 hover:bg-blue-700 mb-2\"\n (click)=\"editComponentDatasets(item)\">\n <i class=\"fa fa-database\" aria-hidden=\"true\"></i>\n </button>\n <button class=\"rounded-full p-2 text-white bg-red-500 hover:bg-red-700 mb-2\"\n (click)=\"getDeleteViewFromConfig(i)\">\n <i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isUpdateWidget\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Add Filter For View\n\n </div>\n <div class=\"border-x border-b p-2\">\n <div class=\"flex flex-row py-3 border-b\">\n <dx-check-box [(ngModel)]=\"addedwidGetConfig.isWidgetFilter\"\n text=\"Popup Columns Filter Enable\"></dx-check-box>\n </div>\n <div class=\"flex flex-row my-2 border-b\">\n <ng-container *ngFor=\"let item of nodeProperticeFilters; let i = index\">\n <div class=\"flex flex-wrap border-b\">\n <div class=\"px-1 w-1/3\">\n <div class=\"text-md\">Input Type</div>\n <dx-select-box [items]=\"['text']\" [(ngModel)]=\"item.input_type\"\n value=\"text\"></dx-select-box>\n </div>\n <div class=\"px-1-1 w-2/3\" *ngIf=\"item.input_type == 'text'\">\n <div class=\"text-md\">Server Column</div>\n <dx-text-box [(ngModel)]=\"item.server_column\"></dx-text-box>\n </div>\n <div class=\"px-1-1 w-1/2\" *ngIf=\"item.input_type == 'text'\">\n <div class=\"text-md\">Local Column</div>\n <dx-text-box [(ngModel)]=\"item.local_column\"></dx-text-box>\n </div>\n <div class=\"px-1-1 w-1/3\" *ngIf=\"item.input_type == 'select'\">\n <div class=\"text-md\">Columns Name</div>\n <dx-text-box [(ngModel)]=\"item.select_box_option\"></dx-text-box>\n </div>\n <div class=\"px-1-1 w-1/2\">\n <div class=\"flex justify-end\">\n <div class=\"{{commonService.btn_danger_sm}} w-24 mt-6 text-center\"\n (click)=\"deleteNodeFilter(i)\">Delete Filter</div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"{{commonService.btn_primary_sm}} w-auto text-center\"\n (click)=\"getNodeProperticeFilterOption()\">Add\n Filter</div>\n </div>\n </ng-container>\n\n <div class=\"flex flex-row justify-end items-center h-16 m-2\">\n <div class=\"{{commonService.btnDarkBlack}} m-2 w-fit text-center cursar-pointer\"\n (click)=\"backToMainView()\">Back\n </div>\n <ng-container *ngIf=\"!isUpdateWidget\">\n <div *ngIf=\"islayoutCreate\"\n class=\"{{commonService.btn_success_md}} m-2 w-fit text-center cursar-pointer\"\n (click)=\"addLayoutTOview()\">Add View\n </div>\n <div *ngIf=\"!islayoutCreate && !isEditMainLayout\"\n class=\"{{commonService.btn_primary_md}} m-2 w-fit text-center cursar-pointer\"\n (click)=\"addWidgetTOview()\">Add Layout\n </div>\n <div *ngIf=\"!islayoutCreate && isEditMainLayout\"\n class=\"{{commonService.btn_primary_md}} m-2 w-fit text-center cursar-pointer\"\n (click)=\"updateLayoutWidgetTOview()\">Update Layout\n </div>\n\n </ng-container>\n\n <div class=\"{{commonService.btn_warning_md}} m-2 w-fit text-center cursar-pointer\"\n (click)=\"updateToView()\" *ngIf=\"isUpdateWidget\">Update View\n </div>\n\n </div>\n\n\n <!-- <pre><code>{{dashBoardWidgetConfig | json}}</code></pre> -->\n </ng-container>\n <ng-container *ngIf=\"isChartButtonClick\">\n <h6\n class=\"mb-2 font-bold text-md tracking-tight text-gray-900 dark:text-white border-b pb-3 flex items-center\">\n <i class=\"fa fa-bar-chart-o mr-2\"></i> Select View\n <div class=\"{{commonService.btnDarkBlack}} m-2 w-fit text-center cursor-pointer\"\n (click)=\"backToMainView()\">Back\n </div>\n </h6>\n <div class=\" h-[80vh] overflow-x-auto\">\n <div class=\"relative my-2 \">\n <input type=\"text\" [(ngModel)]=\"viewToSearch\" (keyup)=\"filterViews()\" (keydown)=\"filterViews()\"\n class=\"bg-gray-800 border border-gray-700 text-gray-200 text-sm focus:ring-gray-400 focus:border-gray-500 block w-full p-4 h-8 rounded\"\n placeholder=\"Search View\" />\n <button type=\"button\" class=\"absolute inset-y-0 right-0 flex items-center pr-6\">\n <mat-icon class=\"rotate-90 cursor-pointer\" [svgIcon]=\"'heroicons_outline:search'\"></mat-icon>\n </button>\n </div>\n <ng-container *ngFor=\"let item of filteredComponentConfig\">\n <div class=\"relative group my-3 w-full\">\n <!-- Item View Name -->\n <div class=\"text-md font-bold border-b py-2 cursar-pointer\">\n {{item.viewName}}</div>\n\n <!-- Hover Buttons -->\n <div\n class=\"absolute top-0 right-0 flex space-x-2 opacity-0 group-hover:opacity-100 transition-opacity duration-300 pb-2\">\n <button class=\"rounded-full p-2 text-white bg-blue-500 hover:bg-blue-700\">\n <i class=\"fa fa-pencil-square-o\" aria-hidden=\"true\"\n (click)=\"editComponentViews(item)\"></i>\n </button>\n <button class=\"rounded-full p-2 text-white bg-green-500 hover:bg-green-700\"\n (click)=\"getComponentConfig(item)\">\n <i class=\"fa fa-plus\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n </div>\n\n </ng-container>\n <ng-container *ngIf=\"isDefaultView\">\n <ng-container *ngFor=\"let item of dashBoardWidgetConfig.widgets; let i = index\">\n <div class=\"group my-3 w-full flex justify-between border-b items-center\">\n <div class=\"text-md font-bold py-2 cursor-pointer\">\n {{item.widgetTitle}}\n </div>\n\n <div class=\"flex space-x-2\">\n <button *ngIf=\"i !== 0\" class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForWidget(i, 'up')\">\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\n </button>\n\n <button *ngIf=\"i !== dashBoardWidgetConfig.widgets.length - 1\"\n class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForWidget(i, 'down')\">\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\n </button>\n <button class=\"rounded-full p-2 text-white bg-blue-500 hover:bg-blue-700 mb-2\"\n (click)=\"getEditViewFromLayout(item,i)\">\n <i class=\"fa fa-pencil-square\" aria-hidden=\"true\"></i>\n\n </button>\n <button class=\"rounded-full p-2 text-white bg-red-500 hover:bg-red-700 mb-2\"\n (click)=\"getDeleteViewFromLayout(item,i)\">\n <i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n\n </div>\n </div>\n </ng-container>\n </ng-container>\n\n\n </div>\n</div>\n<!-- </div> -->\n\n<dx-popup [(visible)]=\"isEditOptionClick\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"1200\"\n [height]=\"'auto'\" [showTitle]=\"true\" class=\"popup\" title=\"{{editViewdataSourceModal.viewName}}\">\n <div *dxTemplate=\"let data of 'content'\">\n\n <app-dash-chart [datasetmodal]=\"editViewdataSourceModal\" (getChartConfigOutPut)=\"getEmitNewChartCongig($event)\"\n *ngIf=\"editViewdataSourceModal.viewType == 'chart'\"></app-dash-chart>\n <app-dash-table [datasetmodal]=\"editViewdataSourceModal\" (getTableConfigOutPut)=\"getEmitNewChartCongig($event)\"\n *ngIf=\"editViewdataSourceModal.viewType == 'table'\"></app-dash-table>\n <!-- <app-dash-other [datasetmodal]=\"editViewdataSourceModal\" *ngIf=\"editViewdataSourceModal.viewType == 'others'\"\n (createOtherComponentView)=\"getEmitNewChartCongig($event)\"></app-dash-other> -->\n </div>\n</dx-popup>\n\n\n<dx-popup [(visible)]=\"isCreateDataset\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"1200\"\n [height]=\"600\" [showTitle]=\"true\" class=\"popup\" title=\"Dataset Editor\">\n <div *dxTemplate=\"let data of 'content'\">\n <dx-scroll-view class=\"h-full\" [width]=\"'100%'\" [height]=\"'100%'\">\n <app-create-dataset [isHeader]=\"false\"></app-create-dataset>\n </dx-scroll-view>\n </div>\n</dx-popup>\n<dx-popup [(visible)]=\"isCreateDatasetWithDatasetId\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"1200\"\n [height]=\"600\" [showTitle]=\"true\" class=\"popup\" title=\"Dataset Editor\" (onHidden)=\"getDatasetPopupHide($event)\">\n <div *dxTemplate=\"let data of 'content'\">\n <dx-scroll-view class=\"h-full\" [width]=\"'100%'\" [height]=\"'100%'\">\n <app-create-dataset [selectedDatasetId]=\"selectedDatasetId\" [isHeader]=\"false\"></app-create-dataset>\n </dx-scroll-view>\n </div>\n</dx-popup>\n\n<dx-popup [(visible)]=\"isCreateNewViewWithDefaultView\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\"\n [width]=\"1200\" [height]=\"600\" [showTitle]=\"true\" class=\"popup\" title=\"Views Editor\"\n (onHidden)=\"getViewPopupHide($event)\">\n <div *dxTemplate=\"let data of 'content'\">\n <dx-scroll-view class=\"h-full\" [width]=\"'100%'\" [height]=\"'100%'\">\n <app-create-comp-view [selectedViewId]=\"selectedViewId\" [isHeader]=\"false\"></app-create-comp-view>\n </dx-scroll-view>\n </div>\n</dx-popup>\n<dx-popup [(visible)]=\"isCreateNewView\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"1200\"\n [height]=\"600\" [showTitle]=\"true\" class=\"popup\" title=\"Views Editor\">\n <div *dxTemplate=\"let data of 'content'\">\n <dx-scroll-view class=\"h-full\" [width]=\"'100%'\" [height]=\"'100%'\">\n <app-create-comp-view [isHeader]=\"false\"></app-create-comp-view>\n </dx-scroll-view>\n </div>\n</dx-popup>\n\n\n<dx-popup [(visible)]=\"isWidgetFilters\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"800\" [height]=\"400\"\n [showTitle]=\"true\" class=\"popup\" title=\"Dataset Filter\">\n <div *dxTemplate=\"let data of 'content'\">\n <div class=\"my-2\">\n <dx-scroll-view [width]=\"'100%'\" [height]=\"'85%'\">\n <ng-container *ngFor=\"let item of nodeproperticeFilterDataSource; let i = index\">\n <div class=\"flex flex-row my-2\">\n <div class=\"m-1\">\n <dx-text-box [(ngModel)]=\"item.columnName\"></dx-text-box>\n </div>\n <div class=\"m-1\">\n <dx-select-box [items]=\"['get','let']\" [(ngModel)]=\"item.operator\"\n placeholder=\"Operator\"></dx-select-box>\n </div>\n <div class=\"m-1\">\n <dx-text-box [(ngModel)]=\"item.value\"></dx-text-box>\n </div>\n </div>\n </ng-container>\n\n </dx-scroll-view>\n <div class=\"flex justify-end mx-1 flex-grow\">\n <button class=\"{{commonService.btn_success_md}} cursor-pointer mt-2\"\n (click)=\"submitFilter()\">Submit</button>\n </div>\n\n </div>\n\n </div>\n</dx-popup>\n<dx-popup [(visible)]=\"isAdvanceLayout\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"1200\"\n [height]=\"700\" [showTitle]=\"true\" class=\"popup\" title=\"Dataset Filter\">\n <div *dxTemplate=\"let data of 'content'\">\n <div class=\"flex flex-row px-2 mb-3\">\n <div class=\"w-2/3 mb-2\">\n <div class=\"text-md mb-2\">Select Views</div>\n <dx-tag-box [dataSource]=\"componentConfigDataSource\" valueExpr=\"viewId\" displayExpr=\"viewName\"\n [multiline]=\"true\" [showSelectionControls]=\"true\" [(ngModel)]=\"selectedViewsIds\"\n [maxDisplayedTags]=\"3\" (onValueChanged)=\"getSelectedColumnSource($event)\" [searchEnabled]=\"true\">\n </dx-tag-box>\n </div>\n <div class=\"w-1/3 px-2\">\n <button class=\"{{commonService.btn_primary_md}} mt-6\" (click)=\"getProcessForConfig()\">\n Add To View\n </button>\n <!-- <button class=\"{{commonService.btn_danger_md}} cursor-pointer mt-6\" (click)=\"cancelCdrConfig()\">Cancel\n </button> -->\n </div>\n </div>\n <dx-scroll-view [width]=\"'100%'\" [height]=\"'80%'\">\n\n <div class=\"m-2 border-b\" *ngIf=\"isProceed\">\n <ng-container *ngFor=\"let item of advanceLayoutContainer; let i = index;\">\n <div class=\"flex flex-row m-2\">\n <div class=\"mx-2 w-1/2\">\n <div class=\"text-md mb-2\">View Name</div>\n <dx-text-box [(ngModel)]=\"item.compConfig.viewConfig[0].viewName\"></dx-text-box>\n </div>\n <div class=\"mx-2\">\n <div class=\"text-md mb-2\">Widget Title</div>\n <dx-text-box [(ngModel)]=\"item.nodeProperties.widgetTitle\"></dx-text-box>\n </div>\n\n <div class=\"mx-2\">\n <div class=\"text-md mb-2\">Widget Width</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"widget_width\"\n [(ngModel)]=\"item.nodeProperties.width\"></dx-select-box>\n </div>\n\n <div class=\"mx-2\">\n <div class=\"text-md mb-2\">Widget Height</div>\n <dx-text-box [(ngModel)]=\"item.nodeProperties.height\"></dx-text-box>\n </div>\n <div class=\"mx-2\">\n <div class=\"text-md mb-2\">Widget Filter</div>\n <dx-select-box [items]=\"filterDataSource\" displayExpr=\"filterName\" [searchEnabled]=\"true\"\n valueExpr=\"filterId\" [(ngModel)]=\"item.filterId\"></dx-select-box>\n </div>\n <div class=\"mx-2\">\n <div class=\"text-md mt-8\">\n <dx-check-box [(ngModel)]=\"item.nodeProperties.display\" text=\"Display\"></dx-check-box>\n </div>\n </div>\n <div class=\"mx-2\">\n <button class=\"{{commonService.btn_danger_sm}} cursor-pointer mt-8\"\n (click)=\"deleteView(i)\"><i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n </div>\n </dx-scroll-view>\n <div class=\"flex justify-end mx-1 my-2 flex-grow\">\n <button class=\"{{commonService.btn_success_md}} cursor-pointer mt-2\" (click)=\"submitAdvanceView()\">Add\n Layout</button>\n </div>\n </div>\n</dx-popup>", styles: ["::ng-deep #scrollview-demo{min-height:550px}::ng-deep #scrollview{height:auto;position:absolute;top:0;bottom:300px;padding:20px}::ng-deep #scrollview-content{white-space:pre-wrap}.scrollable-content{height:90vh;overflow-y:auto}\n"] }]
12941
+ args: [{ selector: 'app-dashbord-config', template: "<app-loading *ngIf=\"loadingModal\"></app-loading>\n\n<div class=\"flex flex-row h-[90vh] w-full\">\n <div class=\"w-3/4 border-r h-full flex flex-col px-2\">\n <!-- Scrollable content -->\n <div class=\"flex-grow overflow-y-auto\">\n <div class=\"flex flex-wrap my-3\" #dynamicContainer></div>\n </div>\n\n <!-- Fixed bottom section -->\n <div class=\"flex flex-row justify-center items-center h-16 m-2 border shrink-0\">\n <lib-common-header [pageTitle]=\"''\"></lib-common-header>\n <div class=\"{{commonService.btn_primary_md}} m-2\" (click)=\"addWidget()\">Add Layout</div>\n <div class=\"{{commonService.btnOthersPurple}} m-2 cursor-pointer\" (click)=\"getViewPage()\">View Page</div>\n </div>\n </div>\n <div class=\"w-1/4 p-2 h-full\">\n <ng-container *ngIf=\"isDashBoardContent\">\n <div class=\"{{commonService.btnDarkBlack}} m-2 w-fit text-center cursar-pointer\" (click)=\"backToMainView()\">\n Back\n </div>\n <ng-container *ngFor=\"let item of page_config.api_config; let i = index\">\n <div class=\"mb-2 flex flex-row justify-between items-center border-b\">\n <div class=\"text-md py-2 font-bold text-white px-2\">\n {{item.widGetConfig.widgetTitle}}\n </div>\n <div class=\"flex space-x-2\">\n <!-- <button (click)=\"editSelectedWidget(item, i)\"\n class=\"w-8 h-8 bg-sky-600 hover:bg-blue-800 text-white rounded-full flex items-center justify-center\">\n <i class=\"fa fa-edit\"></i>\n </button> -->\n <button\n class=\"w-8 h-8 bg-red-600 hover:bg-red-800 text-white rounded-full flex items-center justify-center\">\n <i class=\"fa fa-trash-o\"></i>\n </button>\n </div>\n </div>\n\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"isWidgetCreationContent\">\n <h6 class=\"mb-2 font-bold text-lg tracking-tight text-gray-900 dark:text-white border-b pb-3\">\n <span *ngIf=\"!islayoutCreate\">Widget Settings</span>\n <span *ngIf=\"islayoutCreate\">Layout Settings</span>\n </h6>\n <div class=\"flex flex-row my-4\">\n <dx-check-box class=\"ml-auto\" [(ngModel)]=\"addedwidGetConfig.display\" text=\"Display\"></dx-check-box>\n </div>\n <div class=\"flex flex-row mb-2 justify-between\">\n <span class=\"text-md my-auto px-2\">Width</span>\n <dx-select-box class=\"w-1/2\" [items]=\"widget_width\"\n [(ngModel)]=\"addedwidGetConfig.width\"></dx-select-box>\n </div>\n <div class=\"flex flex-row mb-2 justify-between\">\n <span class=\"text-md my-auto px-2\">Height</span>\n <dx-text-box class=\"w-1/2\" [(ngModel)]=\"addedwidGetConfig.height\"></dx-text-box>\n </div>\n\n <div class=\"flex flex-row mb-2 justify-between\" *ngIf=\"!islayoutCreate\">\n <div class=\"text-md my-auto px-2 inline\">Widget Title</div>\n <dx-text-box class=\"w-full\" [(ngModel)]=\"widgetTitle\"></dx-text-box>\n </div>\n <div class=\"flex flex-row mb-2 justify-between\" *ngIf=\"!islayoutCreate\">\n <div class=\"text-md my-auto px-2\">Widget Name</div>\n <dx-text-box class=\"w-full\" [(ngModel)]=\"widgetName\"></dx-text-box>\n </div>\n\n\n <div class=\"flex flex-row mb-5 justify-between\" *ngIf=\"islayoutCreate\">\n <span class=\"text-sm my-auto px-2\">Layout Title</span>\n <dx-text-box class=\"w-1/2\" [(ngModel)]=\"addedwidGetConfig.widgetTitle\"></dx-text-box>\n </div>\n\n <div class=\"flex flex-row mb-2 justify-between\">\n <span class=\"text-md my-auto px-2\">Filter</span>\n <dx-select-box class=\"w-1/2\" [items]=\"filterDataSource\" displayExpr=\"filterName\" [searchEnabled]=\"true\"\n valueExpr=\"filterId\" [(ngModel)]=\"selectedFilterId\"\n (onValueChanged)=\"getFilterValueById($event)\"></dx-select-box>\n </div>\n <ng-container *ngIf=\"!isUpdateWidget\">\n <div class=\"mt-6\" *ngIf=\"!islayoutCreate && isEditMainLayout\">\n <ng-container\n *ngFor=\"let item of dashBoardWidgetConfig.widgets[newWidgetIndex].widgetNode;let i = index\">\n <div class=\"mb-2 flex flex-row justify-between items-center border-b \">\n <div class=\"text-md py-2 font-bold text-white px-2\">\n {{item.nodeProperties.widgetTitle}}\n </div>\n <div class=\"flex space-x-2\">\n <button *ngIf=\"i !== 0\" class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForPageView(i, 'up')\">\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\n </button>\n\n <button\n *ngIf=\"i !== dashBoardWidgetConfig.widgets[newWidgetIndex].widgetNode.length - 1\"\n class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForPageView(i, 'down')\">\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\n </button>\n <button\n class=\"w-8 h-8 bg-red-600 hover:bg-red-800 text-white rounded-full flex items-center justify-center\">\n <i class=\"fa fa-trash-o\"></i>\n </button>\n </div>\n </div>\n\n </ng-container>\n </div>\n </ng-container>\n\n\n\n <ng-container *ngIf=\"isUpdateWidget\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Application Views\n </div>\n <div class=\"border-x border-b p-2\">\n <ng-container *ngFor=\"let item of allWidgetInnerContent; let i = index\">\n <div class=\"group w-full flex justify-between border-b items-center\">\n <div class=\"text-md font-bold py-2 cursor-pointer\">\n {{item.viewName}}\n </div>\n\n <div class=\"flex space-x-2\">\n <button *ngIf=\"i !== 0\" class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForColumns(i, 'up')\">\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\n </button>\n\n <button *ngIf=\"i !== allWidgetInnerContent.length - 1\"\n class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForColumns(i, 'down')\">\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\n </button>\n <button class=\"rounded-full p-2 text-white bg-blue-500 hover:bg-blue-700 mb-2\"\n (click)=\"editComponentViews(item)\">\n <i class=\"fa fa-eye\" aria-hidden=\"true\"></i>\n </button>\n <button class=\"rounded-full p-2 text-white bg-blue-500 hover:bg-blue-700 mb-2\"\n (click)=\"editComponentDatasets(item)\">\n <i class=\"fa fa-database\" aria-hidden=\"true\"></i>\n </button>\n <button class=\"rounded-full p-2 text-white bg-red-500 hover:bg-red-700 mb-2\"\n (click)=\"getDeleteViewFromConfig(i)\">\n <i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isUpdateWidget\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Add Filter For View\n\n </div>\n <div class=\"border-x border-b p-2\">\n <div class=\"flex flex-row py-3 border-b\">\n <dx-check-box [(ngModel)]=\"addedwidGetConfig.isWidgetFilter\"\n text=\"Popup Columns Filter Enable\"></dx-check-box>\n </div>\n <div class=\"flex flex-row my-2 border-b\">\n <ng-container *ngFor=\"let item of nodeProperticeFilters; let i = index\">\n <div class=\"flex flex-wrap border-b\">\n <div class=\"px-1 w-1/3\">\n <div class=\"text-md\">Input Type</div>\n <dx-select-box [items]=\"['text']\" [(ngModel)]=\"item.input_type\"\n value=\"text\"></dx-select-box>\n </div>\n <div class=\"px-1-1 w-2/3\" *ngIf=\"item.input_type == 'text'\">\n <div class=\"text-md\">Server Column</div>\n <dx-text-box [(ngModel)]=\"item.server_column\"></dx-text-box>\n </div>\n <div class=\"px-1-1 w-1/2\" *ngIf=\"item.input_type == 'text'\">\n <div class=\"text-md\">Local Column</div>\n <dx-text-box [(ngModel)]=\"item.local_column\"></dx-text-box>\n </div>\n <div class=\"px-1-1 w-1/3\" *ngIf=\"item.input_type == 'select'\">\n <div class=\"text-md\">Columns Name</div>\n <dx-text-box [(ngModel)]=\"item.select_box_option\"></dx-text-box>\n </div>\n <div class=\"px-1-1 w-1/2\">\n <div class=\"flex justify-end\">\n <div class=\"{{commonService.btn_danger_sm}} w-24 mt-6 text-center\"\n (click)=\"deleteNodeFilter(i)\">Delete Filter</div>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n <div class=\"{{commonService.btn_primary_sm}} w-auto text-center\"\n (click)=\"getNodeProperticeFilterOption()\">Add\n Filter</div>\n </div>\n </ng-container>\n\n <div class=\"flex flex-row justify-end items-center h-16 m-2\">\n <div class=\"{{commonService.btnDarkBlack}} m-2 w-fit text-center cursar-pointer\"\n (click)=\"backToMainView()\">Back\n </div>\n <ng-container *ngIf=\"!isUpdateWidget\">\n <div *ngIf=\"islayoutCreate\"\n class=\"{{commonService.btn_success_md}} m-2 w-fit text-center cursar-pointer\"\n (click)=\"addLayoutTOview()\">Add View\n </div>\n <div *ngIf=\"!islayoutCreate && !isEditMainLayout\"\n class=\"{{commonService.btn_primary_md}} m-2 w-fit text-center cursar-pointer\"\n (click)=\"addWidgetTOview()\">Add Layout\n </div>\n <div *ngIf=\"!islayoutCreate && isEditMainLayout\"\n class=\"{{commonService.btn_primary_md}} m-2 w-fit text-center cursar-pointer\"\n (click)=\"updateLayoutWidgetTOview()\">Update Layout\n </div>\n\n </ng-container>\n\n <div class=\"{{commonService.btn_warning_md}} m-2 w-fit text-center cursar-pointer\"\n (click)=\"updateToView()\" *ngIf=\"isUpdateWidget\">Update View\n </div>\n\n </div>\n\n\n <!-- <pre><code>{{dashBoardWidgetConfig | json}}</code></pre> -->\n </ng-container>\n <ng-container *ngIf=\"isChartButtonClick\">\n <h6\n class=\"mb-2 font-bold text-md tracking-tight text-gray-900 dark:text-white border-b pb-3 flex items-center\">\n <i class=\"fa fa-bar-chart-o mr-2\"></i> Select View\n <div class=\"{{commonService.btnDarkBlack}} m-2 w-fit text-center cursor-pointer\"\n (click)=\"backToMainView()\">Back\n </div>\n </h6>\n <div class=\" h-[80vh] overflow-x-auto\">\n <div class=\"relative my-2 \">\n <input type=\"text\" [(ngModel)]=\"viewToSearch\" (keyup)=\"filterViews()\" (keydown)=\"filterViews()\"\n class=\"bg-gray-800 border border-gray-700 text-gray-200 text-sm focus:ring-gray-400 focus:border-gray-500 block w-full p-4 h-8 rounded\"\n placeholder=\"Search View\" />\n <button type=\"button\" class=\"absolute inset-y-0 right-0 flex items-center pr-6\">\n <mat-icon class=\"rotate-90 cursor-pointer\" [svgIcon]=\"'heroicons_outline:search'\"></mat-icon>\n </button>\n </div>\n <ng-container *ngFor=\"let item of filteredComponentConfig\">\n <div class=\"relative group my-3 w-full\">\n <!-- Item View Name -->\n <div class=\"text-md font-bold border-b py-2 cursar-pointer\">\n {{item.viewName}}</div>\n\n <!-- Hover Buttons -->\n <div\n class=\"absolute top-0 right-0 flex space-x-2 opacity-0 group-hover:opacity-100 transition-opacity duration-300 pb-2\">\n <button class=\"rounded-full p-2 text-white bg-blue-500 hover:bg-blue-700\">\n <i class=\"fa fa-pencil-square-o\" aria-hidden=\"true\"\n (click)=\"editComponentViews(item)\"></i>\n </button>\n <button class=\"rounded-full p-2 text-white bg-green-500 hover:bg-green-700\"\n (click)=\"getComponentConfig(item)\">\n <i class=\"fa fa-plus\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n </div>\n\n </ng-container>\n <ng-container *ngIf=\"isDefaultView\">\n <ng-container *ngFor=\"let item of dashBoardWidgetConfig.widgets; let i = index\">\n <div class=\"group my-3 w-full flex justify-between border-b items-center\">\n <div class=\"text-md font-bold py-2 cursor-pointer\">\n {{item.widgetTitle}}\n </div>\n\n <div class=\"flex space-x-2\">\n <button *ngIf=\"i !== 0\" class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForWidget(i, 'up')\">\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\n </button>\n\n <button *ngIf=\"i !== dashBoardWidgetConfig.widgets.length - 1\"\n class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItemForWidget(i, 'down')\">\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\n </button>\n <button class=\"rounded-full p-2 text-white bg-blue-500 hover:bg-blue-700 mb-2\"\n (click)=\"getEditViewFromLayout(item,i)\">\n <i class=\"fa fa-pencil-square\" aria-hidden=\"true\"></i>\n\n </button>\n <button class=\"rounded-full p-2 text-white bg-red-500 hover:bg-red-700 mb-2\"\n (click)=\"getDeleteViewFromLayout(item,i)\">\n <i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n\n </div>\n </div>\n </ng-container>\n </ng-container>\n\n\n </div>\n</div>\n<!-- </div> -->\n\n<dx-popup [(visible)]=\"isEditOptionClick\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"1200\"\n [height]=\"'auto'\" [showTitle]=\"true\" class=\"popup\" title=\"{{editViewdataSourceModal.viewName}}\">\n <div *dxTemplate=\"let data of 'content'\">\n\n <app-dash-chart [datasetmodal]=\"editViewdataSourceModal\" (getChartConfigOutPut)=\"getEmitNewChartCongig($event)\"\n *ngIf=\"editViewdataSourceModal.viewType == 'chart'\"></app-dash-chart>\n <app-dash-table [datasetmodal]=\"editViewdataSourceModal\" (getTableConfigOutPut)=\"getEmitNewChartCongig($event)\"\n *ngIf=\"editViewdataSourceModal.viewType == 'table'\"></app-dash-table>\n <!-- <app-dash-other [datasetmodal]=\"editViewdataSourceModal\" *ngIf=\"editViewdataSourceModal.viewType == 'others'\"\n (createOtherComponentView)=\"getEmitNewChartCongig($event)\"></app-dash-other> -->\n </div>\n</dx-popup>\n\n\n<dx-popup [(visible)]=\"isCreateDataset\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"1200\"\n [height]=\"600\" [showTitle]=\"true\" class=\"popup\" title=\"Dataset Editor\">\n <div *dxTemplate=\"let data of 'content'\">\n <dx-scroll-view class=\"h-full\" [width]=\"'100%'\" [height]=\"'100%'\">\n <app-create-dataset [isHeader]=\"false\"></app-create-dataset>\n </dx-scroll-view>\n </div>\n</dx-popup>\n<dx-popup [(visible)]=\"isCreateDatasetWithDatasetId\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"1200\"\n [height]=\"600\" [showTitle]=\"true\" class=\"popup\" title=\"Dataset Editor\" (onHidden)=\"getDatasetPopupHide($event)\">\n <div *dxTemplate=\"let data of 'content'\">\n <dx-scroll-view class=\"h-full\" [width]=\"'100%'\" [height]=\"'100%'\">\n <app-create-dataset [selectedDatasetId]=\"selectedDatasetId\" [isHeader]=\"false\"></app-create-dataset>\n </dx-scroll-view>\n </div>\n</dx-popup>\n\n<dx-popup [(visible)]=\"isCreateNewViewWithDefaultView\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\"\n [width]=\"1200\" [height]=\"600\" [showTitle]=\"true\" class=\"popup\" title=\"Views Editor\"\n (onHidden)=\"getViewPopupHide($event)\">\n <div *dxTemplate=\"let data of 'content'\">\n <dx-scroll-view class=\"h-full\" [width]=\"'100%'\" [height]=\"'100%'\">\n <app-create-comp-view [selectedViewId]=\"selectedViewId\" [isHeader]=\"false\"></app-create-comp-view>\n </dx-scroll-view>\n </div>\n</dx-popup>\n<dx-popup [(visible)]=\"isCreateNewView\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"1200\"\n [height]=\"600\" [showTitle]=\"true\" class=\"popup\" title=\"Views Editor\">\n <div *dxTemplate=\"let data of 'content'\">\n <dx-scroll-view class=\"h-full\" [width]=\"'100%'\" [height]=\"'100%'\">\n <app-create-comp-view [isHeader]=\"false\"></app-create-comp-view>\n </dx-scroll-view>\n </div>\n</dx-popup>\n\n\n<dx-popup [(visible)]=\"isWidgetFilters\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"800\" [height]=\"400\"\n [showTitle]=\"true\" class=\"popup\" title=\"Dataset Filter\">\n <div *dxTemplate=\"let data of 'content'\">\n <div class=\"my-2\">\n <dx-scroll-view [width]=\"'100%'\" [height]=\"'85%'\">\n <ng-container *ngFor=\"let item of nodeproperticeFilterDataSource; let i = index\">\n <div class=\"flex flex-row my-2\">\n <div class=\"m-1\">\n <dx-text-box [(ngModel)]=\"item.columnName\"></dx-text-box>\n </div>\n <div class=\"m-1\">\n <dx-select-box [items]=\"['get','let']\" [(ngModel)]=\"item.operator\"\n placeholder=\"Operator\"></dx-select-box>\n </div>\n <div class=\"m-1\">\n <dx-text-box [(ngModel)]=\"item.value\"></dx-text-box>\n </div>\n </div>\n </ng-container>\n\n </dx-scroll-view>\n <div class=\"flex justify-end mx-1 flex-grow\">\n <button class=\"{{commonService.btn_success_md}} cursor-pointer mt-2\"\n (click)=\"submitFilter()\">Submit</button>\n </div>\n\n </div>\n\n </div>\n</dx-popup>\n<dx-popup [(visible)]=\"isAdvanceLayout\" [closeOnOutsideClick]=\"false\" [dragEnabled]=\"false\" [width]=\"1200\"\n [height]=\"700\" [showTitle]=\"true\" class=\"popup\" title=\"Dataset Filter\">\n <div *dxTemplate=\"let data of 'content'\">\n <div class=\"flex flex-row px-2 mb-3\">\n <div class=\"w-2/3 mb-2\">\n <div class=\"text-md mb-2\">Select Views</div>\n <dx-tag-box [dataSource]=\"componentConfigDataSource\" valueExpr=\"viewId\" displayExpr=\"viewName\"\n [multiline]=\"true\" [showSelectionControls]=\"true\" [(ngModel)]=\"selectedViewsIds\"\n [maxDisplayedTags]=\"3\" (onValueChanged)=\"getSelectedColumnSource($event)\" [searchEnabled]=\"true\">\n </dx-tag-box>\n </div>\n <div class=\"w-1/3 px-2\">\n <button class=\"{{commonService.btn_primary_md}} mt-6\" (click)=\"getProcessForConfig()\">\n Add To View\n </button>\n <!-- <button class=\"{{commonService.btn_danger_md}} cursor-pointer mt-6\" (click)=\"cancelCdrConfig()\">Cancel\n </button> -->\n </div>\n </div>\n <dx-scroll-view [width]=\"'100%'\" [height]=\"'80%'\">\n\n <div class=\"m-2 border-b\" *ngIf=\"isProceed\">\n <ng-container *ngFor=\"let item of advanceLayoutContainer; let i = index;\">\n <div class=\"flex flex-row m-2\">\n <div class=\"mx-2 w-1/2\">\n <div class=\"text-md mb-2\">View Name</div>\n <dx-text-box [(ngModel)]=\"item.compConfig.viewConfig[0].viewName\"></dx-text-box>\n </div>\n <div class=\"mx-2\">\n <div class=\"text-md mb-2\">Widget Title</div>\n <dx-text-box [(ngModel)]=\"item.nodeProperties.widgetTitle\"></dx-text-box>\n </div>\n\n <div class=\"mx-2\">\n <div class=\"text-md mb-2\">Widget Width</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"widget_width\"\n [(ngModel)]=\"item.nodeProperties.width\"></dx-select-box>\n </div>\n\n <div class=\"mx-2\">\n <div class=\"text-md mb-2\">Widget Height</div>\n <dx-text-box [(ngModel)]=\"item.nodeProperties.height\"></dx-text-box>\n </div>\n <div class=\"mx-2\">\n <div class=\"text-md mb-2\">Widget Filter</div>\n <dx-select-box [items]=\"filterDataSource\" displayExpr=\"filterName\" [searchEnabled]=\"true\"\n valueExpr=\"filterId\" [(ngModel)]=\"item.filterId\"></dx-select-box>\n </div>\n <div class=\"mx-2\">\n <div class=\"text-md mt-8\">\n <dx-check-box [(ngModel)]=\"item.nodeProperties.display\" text=\"Display\"></dx-check-box>\n </div>\n </div>\n <div class=\"mx-2\">\n <button class=\"{{commonService.btn_danger_sm}} cursor-pointer mt-8\"\n (click)=\"deleteView(i)\"><i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n </div>\n </dx-scroll-view>\n <div class=\"flex justify-end mx-1 my-2 flex-grow\">\n <button class=\"{{commonService.btn_success_md}} cursor-pointer mt-2\" (click)=\"submitAdvanceView()\">Add\n Layout</button>\n </div>\n </div>\n</dx-popup>", styles: ["::ng-deep #scrollview-demo{min-height:550px}::ng-deep #scrollview{height:auto;position:absolute;top:0;bottom:300px;padding:20px}::ng-deep #scrollview-content{white-space:pre-wrap}.scrollable-content{height:90vh;overflow-y:auto}\n"] }]
12945
12942
  }], ctorParameters: function () { return [{ type: CommonService }, { type: i2.ActivatedRoute }, { type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }, { type: ApplicationContentService }, { type: i4$1.ToastrService }, { type: i2.Router }, { type: ApplicationDatssetsCall }]; }, propDecorators: { dynamicComponentContainer: [{
12946
12943
  type: ViewChild,
12947
12944
  args: ['dynamicComponentContainer', { read: ViewContainerRef }]
@@ -13292,7 +13289,7 @@ class ApplicationCreateMenuComponent {
13292
13289
  let menuId = this.activatedRoute.snapshot.queryParams['menuId'];
13293
13290
  let contentType = this.activatedRoute.snapshot.queryParams['contentType'];
13294
13291
  if (contentType == "edit") {
13295
- this.service.getAppAppMenuConfigById(menuId).subscribe({
13292
+ this.service.getAppMenuConfigById(menuId).subscribe({
13296
13293
  next: (data) => {
13297
13294
  this.menuObject = data;
13298
13295
  this.selectedQueryParamStr = (data['queryParams'] && data['queryParams']['pageId']) ? data['queryParams']['pageId'] : "";
@@ -16086,7 +16083,7 @@ class CdrConfigService {
16086
16083
  }), catchError(this.handleError));
16087
16084
  }
16088
16085
  getKPIReferenceEndPoints() {
16089
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getKPIReferenceEndPoints';
16086
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getKPIReferenceEndPoints';
16090
16087
  return this.http
16091
16088
  .get(apiUrl, { withCredentials: true })
16092
16089
  .pipe(map((response) => {
@@ -16492,7 +16489,7 @@ class CreateKpIService {
16492
16489
  });
16493
16490
  }
16494
16491
  getKpiBrowserConfigById(id) {
16495
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getKpiBrowserConfigById?id=' + id;
16492
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getKpiBrowserConfigById?id=' + id;
16496
16493
  return this.http
16497
16494
  .get(apiUrl, { withCredentials: true })
16498
16495
  .pipe(map((response) => {
@@ -16500,7 +16497,7 @@ class CreateKpIService {
16500
16497
  }), catchError(this.handleError));
16501
16498
  }
16502
16499
  getAppPageConfigs() {
16503
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppPageConfigs';
16500
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageConfigs';
16504
16501
  return this.http
16505
16502
  .get(apiUrl, { withCredentials: true })
16506
16503
  .pipe(map((response) => {
@@ -16508,7 +16505,7 @@ class CreateKpIService {
16508
16505
  }), catchError(this.handleError));
16509
16506
  }
16510
16507
  getlistKpiBrowser() {
16511
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/listKpiBrowser';
16508
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/listKpiBrowser';
16512
16509
  return this.http
16513
16510
  .get(apiUrl, { withCredentials: true })
16514
16511
  .pipe(map((response) => {
@@ -16517,14 +16514,45 @@ class CreateKpIService {
16517
16514
  }
16518
16515
  configureKpiBrowserConfig(body) {
16519
16516
  return this.http
16520
- .post(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/configureKpiBrowserConfig', JSON.stringify(body), this.options)
16517
+ .post(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/configureKpiBrowserConfig', JSON.stringify(body), this.options)
16521
16518
  .pipe(map((response) => {
16522
16519
  return response;
16523
16520
  }), catchError(this.handleError));
16524
16521
  }
16525
16522
  getCreateKpi(body) {
16526
16523
  return this.http
16527
- .post(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/createKpi', JSON.stringify(body), this.options)
16524
+ .post(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/createKpi', JSON.stringify(body), this.options)
16525
+ .pipe(map((response) => {
16526
+ return response;
16527
+ }), catchError(this.handleError));
16528
+ }
16529
+ listKpiEntryConfigs() {
16530
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/listKpiEntryConfigs?caller=app';
16531
+ return this.http
16532
+ .get(apiUrl, { withCredentials: true })
16533
+ .pipe(map((response) => {
16534
+ return response;
16535
+ }), catchError(this.handleError));
16536
+ }
16537
+ createKpiEntryConfig(kpiObj) {
16538
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/createKpiEntryConfig';
16539
+ return this.http
16540
+ .post(apiUrl, JSON.stringify(kpiObj), this.options)
16541
+ .pipe(map((response) => {
16542
+ return response;
16543
+ }), catchError(this.handleError));
16544
+ }
16545
+ updateKpiEntryConfig(kpiObj) {
16546
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/updateKpiEntryConfig';
16547
+ return this.http
16548
+ .post(apiUrl, JSON.stringify(kpiObj), this.options)
16549
+ .pipe(map((response) => {
16550
+ return response;
16551
+ }), catchError(this.handleError));
16552
+ }
16553
+ deleteKpiEntryConfig(kpiId) {
16554
+ return this.http
16555
+ .delete(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/deleteKpiEntryConfig/' + kpiId, this.options)
16528
16556
  .pipe(map((response) => {
16529
16557
  return response;
16530
16558
  }), catchError(this.handleError));
@@ -16648,10 +16676,10 @@ class TreeViewBasicItemComponent {
16648
16676
  }
16649
16677
  }
16650
16678
  TreeViewBasicItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeViewBasicItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: CreateKpIService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
16651
- TreeViewBasicItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TreeViewBasicItemComponent, selector: "treeview-basic-item", inputs: { item: "item", name: "name", internalRoute: "internalRoute", isEditIcon: "isEditIcon", treeId: "treeId" }, outputs: { editableKpiBasicData: "editableKpiBasicData" }, ngImport: i0, template: "<!-- Item wrapper -->\n<div class=\"treeview-item-wrapper\" [class.treeview-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\" (click)=\"getKPIDataOnclick(item, $event)\" (dblclick)='getNavigateToKpi(item)' *ngIf=\"item.isVisible\">\n\n <!-- Item with an internal link -->\n <!-- <ng-container *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\">\n <a class=\"treeview-item\" [ngClass]=\"{'treeview-item-active-forced': item.active}\" [routerLink]=\"[item.link]\"\n [fragment]=\"item.fragment ?? null\" [preserveFragment]=\"item.preserveFragment ?? false\"\n [queryParams]=\"item.queryParams ?? null\" [queryParamsHandling]=\"item.queryParamsHandling ?? null\"\n [routerLinkActive]=\"'treeview-item-active'\" [routerLinkActiveOptions]=\"isActiveMatchOptions\"\n [matTooltip]=\"item.tooltip || ''\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n </ng-container> -->\n\n\n <!-- Item with a no link and no function -->\n <ng-container *ngIf=\"!item.link && !item.function && !item.disabled\">\n <div class=\"treeview-item\" id=\"kpiId-{{item.tid}}\" [matTooltip]=\"item.tooltip || ''\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n </ng-container>\n\n</div>\n\n<!-- Item template -->\n<ng-template #itemTemplate>\n\n <!-- Icon -->\n <ng-container *ngIf=\"item.icon\">\n <mat-icon class=\"treeview-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\"></mat-icon>\n </ng-container>\n\n <!-- Title & Subtitle -->\n <div class=\"treeview-item-title-wrapper\">\n <div class=\"treeview-item-title capitalize\">\n <span [ngClass]=\"item.classes?.name\">\n <i class=\"fa fa-pencil text-sky-800 mx-2 hover:text-sky-400 cursor-pointer \"\n (click)=\"getEditTreeData(item)\" *ngIf=\"isEditIcon\"></i> {{item.name}}\n </span>\n </div>\n <ng-container *ngIf=\"item.subtitle\">\n <div class=\"treeview-item-subtitle\">\n <span [ngClass]=\"item.classes?.subtitle\">\n {{item.subtitle}}\n </span>\n </div>\n </ng-container>\n </div>\n\n <!-- Badge -->\n <ng-container *ngIf=\"item.badge\">\n <div class=\"treeview-item-badge\">\n <div class=\"treeview-item-badge-content\" [ngClass]=\"item.badge.classes\">\n {{item.badge.title}}\n </div>\n </div>\n </ng-container>\n\n</ng-template>", dependencies: [{ kind: "directive", type: i4$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5$2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16679
+ TreeViewBasicItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TreeViewBasicItemComponent, selector: "treeview-basic-item", inputs: { item: "item", name: "name", internalRoute: "internalRoute", isEditIcon: "isEditIcon", treeId: "treeId" }, outputs: { editableKpiBasicData: "editableKpiBasicData" }, ngImport: i0, template: "<!-- Item wrapper -->\n<div class=\"treeview-item-wrapper\" [class.treeview-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\" (click)=\"getKPIDataOnclick(item, $event)\" (dblclick)='getNavigateToKpi(item)' *ngIf=\"item.visibility\">\n\n <!-- Item with an internal link -->\n <!-- <ng-container *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\">\n <a class=\"treeview-item\" [ngClass]=\"{'treeview-item-active-forced': item.active}\" [routerLink]=\"[item.link]\"\n [fragment]=\"item.fragment ?? null\" [preserveFragment]=\"item.preserveFragment ?? false\"\n [queryParams]=\"item.queryParams ?? null\" [queryParamsHandling]=\"item.queryParamsHandling ?? null\"\n [routerLinkActive]=\"'treeview-item-active'\" [routerLinkActiveOptions]=\"isActiveMatchOptions\"\n [matTooltip]=\"item.tooltip || ''\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n </ng-container> -->\n\n\n <!-- Item with a no link and no function -->\n <ng-container *ngIf=\"!item.link && !item.function && !item.disabled\">\n <div class=\"treeview-item\" id=\"kpiId-{{item.id}}\" [matTooltip]=\"item.tooltip || ''\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n </ng-container>\n\n</div>\n\n<!-- Item template -->\n<ng-template #itemTemplate>\n\n <!-- Icon -->\n <ng-container *ngIf=\"item.icon\">\n <mat-icon class=\"treeview-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\"></mat-icon>\n </ng-container>\n\n <!-- Title & Subtitle -->\n <div class=\"treeview-item-title-wrapper\">\n <div class=\"treeview-item-title capitalize\">\n <span [ngClass]=\"item.classes?.name\">\n <i class=\"fa fa-pencil text-sky-800 mx-2 hover:text-sky-400 cursor-pointer \"\n (click)=\"getEditTreeData(item)\" *ngIf=\"isEditIcon\"></i> {{item.title}}\n </span>\n </div>\n <ng-container *ngIf=\"item.subtitle\">\n <div class=\"treeview-item-subtitle\">\n <span [ngClass]=\"item.classes?.subtitle\">\n {{item.subtitle}}\n </span>\n </div>\n </ng-container>\n </div>\n\n <!-- Badge -->\n <ng-container *ngIf=\"item.badge\">\n <div class=\"treeview-item-badge\">\n <div class=\"treeview-item-badge-content\" [ngClass]=\"item.badge.classes\">\n {{item.badge.title}}\n </div>\n </div>\n </ng-container>\n\n</ng-template>", dependencies: [{ kind: "directive", type: i4$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4$2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5$2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16652
16680
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeViewBasicItemComponent, decorators: [{
16653
16681
  type: Component,
16654
- args: [{ selector: 'treeview-basic-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Item wrapper -->\n<div class=\"treeview-item-wrapper\" [class.treeview-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\" (click)=\"getKPIDataOnclick(item, $event)\" (dblclick)='getNavigateToKpi(item)' *ngIf=\"item.isVisible\">\n\n <!-- Item with an internal link -->\n <!-- <ng-container *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\">\n <a class=\"treeview-item\" [ngClass]=\"{'treeview-item-active-forced': item.active}\" [routerLink]=\"[item.link]\"\n [fragment]=\"item.fragment ?? null\" [preserveFragment]=\"item.preserveFragment ?? false\"\n [queryParams]=\"item.queryParams ?? null\" [queryParamsHandling]=\"item.queryParamsHandling ?? null\"\n [routerLinkActive]=\"'treeview-item-active'\" [routerLinkActiveOptions]=\"isActiveMatchOptions\"\n [matTooltip]=\"item.tooltip || ''\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n </ng-container> -->\n\n\n <!-- Item with a no link and no function -->\n <ng-container *ngIf=\"!item.link && !item.function && !item.disabled\">\n <div class=\"treeview-item\" id=\"kpiId-{{item.tid}}\" [matTooltip]=\"item.tooltip || ''\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n </ng-container>\n\n</div>\n\n<!-- Item template -->\n<ng-template #itemTemplate>\n\n <!-- Icon -->\n <ng-container *ngIf=\"item.icon\">\n <mat-icon class=\"treeview-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\"></mat-icon>\n </ng-container>\n\n <!-- Title & Subtitle -->\n <div class=\"treeview-item-title-wrapper\">\n <div class=\"treeview-item-title capitalize\">\n <span [ngClass]=\"item.classes?.name\">\n <i class=\"fa fa-pencil text-sky-800 mx-2 hover:text-sky-400 cursor-pointer \"\n (click)=\"getEditTreeData(item)\" *ngIf=\"isEditIcon\"></i> {{item.name}}\n </span>\n </div>\n <ng-container *ngIf=\"item.subtitle\">\n <div class=\"treeview-item-subtitle\">\n <span [ngClass]=\"item.classes?.subtitle\">\n {{item.subtitle}}\n </span>\n </div>\n </ng-container>\n </div>\n\n <!-- Badge -->\n <ng-container *ngIf=\"item.badge\">\n <div class=\"treeview-item-badge\">\n <div class=\"treeview-item-badge-content\" [ngClass]=\"item.badge.classes\">\n {{item.badge.title}}\n </div>\n </div>\n </ng-container>\n\n</ng-template>" }]
16682
+ args: [{ selector: 'treeview-basic-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Item wrapper -->\n<div class=\"treeview-item-wrapper\" [class.treeview-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\" (click)=\"getKPIDataOnclick(item, $event)\" (dblclick)='getNavigateToKpi(item)' *ngIf=\"item.visibility\">\n\n <!-- Item with an internal link -->\n <!-- <ng-container *ngIf=\"item.link && !item.externalLink && !item.function && !item.disabled\">\n <a class=\"treeview-item\" [ngClass]=\"{'treeview-item-active-forced': item.active}\" [routerLink]=\"[item.link]\"\n [fragment]=\"item.fragment ?? null\" [preserveFragment]=\"item.preserveFragment ?? false\"\n [queryParams]=\"item.queryParams ?? null\" [queryParamsHandling]=\"item.queryParamsHandling ?? null\"\n [routerLinkActive]=\"'treeview-item-active'\" [routerLinkActiveOptions]=\"isActiveMatchOptions\"\n [matTooltip]=\"item.tooltip || ''\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </a>\n </ng-container> -->\n\n\n <!-- Item with a no link and no function -->\n <ng-container *ngIf=\"!item.link && !item.function && !item.disabled\">\n <div class=\"treeview-item\" id=\"kpiId-{{item.id}}\" [matTooltip]=\"item.tooltip || ''\">\n <ng-container *ngTemplateOutlet=\"itemTemplate\"></ng-container>\n </div>\n </ng-container>\n\n</div>\n\n<!-- Item template -->\n<ng-template #itemTemplate>\n\n <!-- Icon -->\n <ng-container *ngIf=\"item.icon\">\n <mat-icon class=\"treeview-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\"></mat-icon>\n </ng-container>\n\n <!-- Title & Subtitle -->\n <div class=\"treeview-item-title-wrapper\">\n <div class=\"treeview-item-title capitalize\">\n <span [ngClass]=\"item.classes?.name\">\n <i class=\"fa fa-pencil text-sky-800 mx-2 hover:text-sky-400 cursor-pointer \"\n (click)=\"getEditTreeData(item)\" *ngIf=\"isEditIcon\"></i> {{item.title}}\n </span>\n </div>\n <ng-container *ngIf=\"item.subtitle\">\n <div class=\"treeview-item-subtitle\">\n <span [ngClass]=\"item.classes?.subtitle\">\n {{item.subtitle}}\n </span>\n </div>\n </ng-container>\n </div>\n\n <!-- Badge -->\n <ng-container *ngIf=\"item.badge\">\n <div class=\"treeview-item-badge\">\n <div class=\"treeview-item-badge-content\" [ngClass]=\"item.badge.classes\">\n {{item.badge.title}}\n </div>\n </div>\n </ng-container>\n\n</ng-template>" }]
16655
16683
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: CreateKpIService }, { type: i2.Router }]; }, propDecorators: { item: [{
16656
16684
  type: Input
16657
16685
  }], name: [{
@@ -17060,29 +17088,6 @@ const gammaAnimations = [
17060
17088
  zoomIn, zoomOut
17061
17089
  ];
17062
17090
 
17063
- class TreeViewDividerItemComponent {
17064
- constructor(_changeDetectorRef) {
17065
- this._changeDetectorRef = _changeDetectorRef;
17066
- this._unsubscribeAll = new Subject();
17067
- }
17068
- ngOnInit() {
17069
- }
17070
- ngOnDestroy() {
17071
- this._unsubscribeAll.next(null);
17072
- this._unsubscribeAll.complete();
17073
- }
17074
- }
17075
- TreeViewDividerItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeViewDividerItemComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
17076
- TreeViewDividerItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TreeViewDividerItemComponent, selector: "treeview-divider-item", inputs: { item: "item", name: "name" }, ngImport: i0, template: "<!-- Divider -->\n<div class=\"treeview-item-wrapper divider\" [ngClass]=\"item.classes?.wrapper\"></div>", dependencies: [{ kind: "directive", type: i4$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17077
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeViewDividerItemComponent, decorators: [{
17078
- type: Component,
17079
- args: [{ selector: 'treeview-divider-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Divider -->\n<div class=\"treeview-item-wrapper divider\" [ngClass]=\"item.classes?.wrapper\"></div>" }]
17080
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { item: [{
17081
- type: Input
17082
- }], name: [{
17083
- type: Input
17084
- }] } });
17085
-
17086
17091
  class TreeViewCollapsableItemComponent {
17087
17092
  constructor(_changeDetectorRef, _router, _treeviewService) {
17088
17093
  this._changeDetectorRef = _changeDetectorRef;
@@ -17101,17 +17106,7 @@ class TreeViewCollapsableItemComponent {
17101
17106
  };
17102
17107
  }
17103
17108
  ngOnInit() {
17104
- const activeItem = this.findActiveChild(this.item, this.treeId);
17105
- if (this.treeId == undefined || this.treeId == null) {
17106
- if (this.autoCollapse) {
17107
- this.collapse();
17108
- }
17109
- }
17110
- else {
17111
- if (activeItem) {
17112
- this.expand();
17113
- }
17114
- }
17109
+ console.log(this.item, 'items');
17115
17110
  }
17116
17111
  ngOnDestroy() {
17117
17112
  this._unsubscribeAll.next(null);
@@ -17208,10 +17203,10 @@ class TreeViewCollapsableItemComponent {
17208
17203
  }
17209
17204
  }
17210
17205
  TreeViewCollapsableItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeViewCollapsableItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i2.Router }, { token: TreeviewSharedService }], target: i0.ɵɵFactoryTarget.Component });
17211
- TreeViewCollapsableItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TreeViewCollapsableItemComponent, selector: "treeview-collapsable-item", inputs: { autoCollapse: "autoCollapse", item: "item", name: "name", treeId: "treeId", internalRoute: "internalRoute", isEditIcon: "isEditIcon" }, outputs: { editableKpiData: "editableKpiData" }, host: { properties: { "class": "this.classList" } }, ngImport: i0, template: "<div class=\"treeview-item-wrapper\" [class.treeview-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\" *ngIf=\"item.isVisible\">\n\n <div class=\"treeview-item\" id=\"kpiId-{{item.tid}}\" [ngClass]=\"{'treeview-item-disabled': item.disabled}\"\n [matTooltip]=\"item.tooltip || ''\" (click)=\"toggleCollapsable()\">\n\n <!-- Icon -->\n <ng-container *ngIf=\"item.icon\">\n <mat-icon class=\"treeview-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\"></mat-icon>\n </ng-container>\n\n <!-- Title & Subtitle -->\n <div class=\"treeview-item-title-wrapper\">\n <div class=\"treeview-item-title\">\n <span [ngClass]=\"item.classes?.name\">\n <i class=\"fa fa-pencil text-sky-800 mx-2 hover:text-sky-400 cursor-pointer\"\n (click)=\"getEditTreeData(item)\" *ngIf=\"isEditIcon\"></i> {{item.name}}\n </span>\n </div>\n <ng-container *ngIf=\"item.subtitle\">\n <div class=\"treeview-item-subtitle\">\n <span [ngClass]=\"item.classes?.subtitle\">\n {{item.subtitle}}\n </span>\n </div>\n </ng-container>\n </div>\n\n <!-- Badge -->\n <ng-container *ngIf=\"item.badge\">\n <div class=\"treeview-item-badge\">\n <div class=\"treeview-item-badge-content\" [ngClass]=\"item.badge.classes\">\n {{item.badge.name}}\n </div>\n </div>\n </ng-container>\n\n <!-- Arrow -->\n <mat-icon class=\"treeview-item-arrow icon-size-4\" [svgIcon]=\"'heroicons_solid:chevron-right'\"></mat-icon>\n\n </div>\n\n</div>\n\n<div class=\"treeview-item-children\" *ngIf=\"!isCollapsed\" @expandCollapse>\n\n <ng-container *ngFor=\"let item of item.nodes; trackBy: trackByFn\">\n\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n\n <!-- Basic -->\n <ng-container *ngIf=\"item.tag_type === 'child'\">\n <treeview-basic-item [item]=\"item\" [name]=\"name\" [isEditIcon]=\"isEditIcon\"\n (editableKpiBasicData)=\"getKpiEditKpiBasicData($event)\"\n [internalRoute]=\"internalRoute\"></treeview-basic-item>\n </ng-container>\n\n <!-- Collapsable -->\n <ng-container *ngIf=\"item.tag_type === 'parent'\">\n <treeview-collapsable-item [item]=\"item\" [name]=\"name\" [isEditIcon]=\"isEditIcon\"\n (editableKpiData)=\"getKpiEditKpiData($event)\" [internalRoute]=\"internalRoute\"\n [autoCollapse]=\"autoCollapse\" [treeId]=\"treeId\">\n </treeview-collapsable-item>\n </ng-container>\n\n <!-- Divider -->\n <ng-container *ngIf=\"item.tag_type === 'divider'\">\n <treeview-divider-item [item]=\"item\" [name]=\"name\"></treeview-divider-item>\n </ng-container>\n\n </ng-container>\n\n </ng-container>\n\n</div>", dependencies: [{ kind: "directive", type: i4$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5$2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: TreeViewBasicItemComponent, selector: "treeview-basic-item", inputs: ["item", "name", "internalRoute", "isEditIcon", "treeId"], outputs: ["editableKpiBasicData"] }, { kind: "component", type: TreeViewCollapsableItemComponent, selector: "treeview-collapsable-item", inputs: ["autoCollapse", "item", "name", "treeId", "internalRoute", "isEditIcon"], outputs: ["editableKpiData"] }, { kind: "component", type: TreeViewDividerItemComponent, selector: "treeview-divider-item", inputs: ["item", "name"] }], animations: gammaAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush });
17206
+ TreeViewCollapsableItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TreeViewCollapsableItemComponent, selector: "treeview-collapsable-item", inputs: { autoCollapse: "autoCollapse", item: "item", name: "name", treeId: "treeId", internalRoute: "internalRoute", isEditIcon: "isEditIcon" }, outputs: { editableKpiData: "editableKpiData" }, host: { properties: { "class": "this.classList" } }, ngImport: i0, template: "<div class=\"treeview-item-wrapper\" [class.treeview-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\" *ngIf=\"item.visibility\">\n\n <div class=\"treeview-item\" id=\"kpiId-{{item.id}}\" [ngClass]=\"{'treeview-item-disabled': item.disabled}\"\n [matTooltip]=\"item.tooltip || ''\" (click)=\"toggleCollapsable()\">\n\n <!-- Icon -->\n <ng-container *ngIf=\"item.icon\">\n <mat-icon class=\"treeview-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\"></mat-icon>\n </ng-container>\n\n <!-- Title & Subtitle -->\n <div class=\"treeview-item-title-wrapper\">\n <div class=\"treeview-item-title\">\n <span [ngClass]=\"item.classes?.name\">\n <i class=\"fa fa-pencil text-sky-800 mx-2 hover:text-sky-400 cursor-pointer\"\n (click)=\"getEditTreeData(item)\" *ngIf=\"isEditIcon\"></i> {{item.title}}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n \n\n <!-- Arrow -->\n <mat-icon class=\"treeview-item-arrow icon-size-4\" [svgIcon]=\"'heroicons_solid:chevron-right'\"></mat-icon>\n\n </div>\n\n</div>\n\n<div class=\"treeview-item-children\" *ngIf=\"!isCollapsed\" @expandCollapse>\n\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n\n <!-- Basic -->\n <ng-container *ngIf=\"item.tagType == 'child'\">\n <treeview-basic-item [item]=\"item\" [name]=\"name\" [isEditIcon]=\"isEditIcon\"\n (editableKpiBasicData)=\"getKpiEditKpiBasicData($event)\"\n [internalRoute]=\"internalRoute\"></treeview-basic-item>\n </ng-container>\n\n <!-- Collapsable -->\n <ng-container *ngIf=\"item.tagType == 'parent'\">\n <treeview-collapsable-item [item]=\"item\" [name]=\"name\" [isEditIcon]=\"isEditIcon\"\n (editableKpiData)=\"getKpiEditKpiData($event)\" [internalRoute]=\"internalRoute\"\n [autoCollapse]=\"autoCollapse\" [treeId]=\"treeId\">\n </treeview-collapsable-item>\n </ng-container>\n\n </ng-container>\n\n </ng-container>\n\n</div>", dependencies: [{ kind: "directive", type: i4$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5$2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: TreeViewBasicItemComponent, selector: "treeview-basic-item", inputs: ["item", "name", "internalRoute", "isEditIcon", "treeId"], outputs: ["editableKpiBasicData"] }, { kind: "component", type: TreeViewCollapsableItemComponent, selector: "treeview-collapsable-item", inputs: ["autoCollapse", "item", "name", "treeId", "internalRoute", "isEditIcon"], outputs: ["editableKpiData"] }], animations: gammaAnimations, changeDetection: i0.ChangeDetectionStrategy.OnPush });
17212
17207
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeViewCollapsableItemComponent, decorators: [{
17213
17208
  type: Component,
17214
- args: [{ selector: 'treeview-collapsable-item', animations: gammaAnimations, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"treeview-item-wrapper\" [class.treeview-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\" *ngIf=\"item.isVisible\">\n\n <div class=\"treeview-item\" id=\"kpiId-{{item.tid}}\" [ngClass]=\"{'treeview-item-disabled': item.disabled}\"\n [matTooltip]=\"item.tooltip || ''\" (click)=\"toggleCollapsable()\">\n\n <!-- Icon -->\n <ng-container *ngIf=\"item.icon\">\n <mat-icon class=\"treeview-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\"></mat-icon>\n </ng-container>\n\n <!-- Title & Subtitle -->\n <div class=\"treeview-item-title-wrapper\">\n <div class=\"treeview-item-title\">\n <span [ngClass]=\"item.classes?.name\">\n <i class=\"fa fa-pencil text-sky-800 mx-2 hover:text-sky-400 cursor-pointer\"\n (click)=\"getEditTreeData(item)\" *ngIf=\"isEditIcon\"></i> {{item.name}}\n </span>\n </div>\n <ng-container *ngIf=\"item.subtitle\">\n <div class=\"treeview-item-subtitle\">\n <span [ngClass]=\"item.classes?.subtitle\">\n {{item.subtitle}}\n </span>\n </div>\n </ng-container>\n </div>\n\n <!-- Badge -->\n <ng-container *ngIf=\"item.badge\">\n <div class=\"treeview-item-badge\">\n <div class=\"treeview-item-badge-content\" [ngClass]=\"item.badge.classes\">\n {{item.badge.name}}\n </div>\n </div>\n </ng-container>\n\n <!-- Arrow -->\n <mat-icon class=\"treeview-item-arrow icon-size-4\" [svgIcon]=\"'heroicons_solid:chevron-right'\"></mat-icon>\n\n </div>\n\n</div>\n\n<div class=\"treeview-item-children\" *ngIf=\"!isCollapsed\" @expandCollapse>\n\n <ng-container *ngFor=\"let item of item.nodes; trackBy: trackByFn\">\n\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n\n <!-- Basic -->\n <ng-container *ngIf=\"item.tag_type === 'child'\">\n <treeview-basic-item [item]=\"item\" [name]=\"name\" [isEditIcon]=\"isEditIcon\"\n (editableKpiBasicData)=\"getKpiEditKpiBasicData($event)\"\n [internalRoute]=\"internalRoute\"></treeview-basic-item>\n </ng-container>\n\n <!-- Collapsable -->\n <ng-container *ngIf=\"item.tag_type === 'parent'\">\n <treeview-collapsable-item [item]=\"item\" [name]=\"name\" [isEditIcon]=\"isEditIcon\"\n (editableKpiData)=\"getKpiEditKpiData($event)\" [internalRoute]=\"internalRoute\"\n [autoCollapse]=\"autoCollapse\" [treeId]=\"treeId\">\n </treeview-collapsable-item>\n </ng-container>\n\n <!-- Divider -->\n <ng-container *ngIf=\"item.tag_type === 'divider'\">\n <treeview-divider-item [item]=\"item\" [name]=\"name\"></treeview-divider-item>\n </ng-container>\n\n </ng-container>\n\n </ng-container>\n\n</div>" }]
17209
+ args: [{ selector: 'treeview-collapsable-item', animations: gammaAnimations, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"treeview-item-wrapper\" [class.treeview-item-has-subtitle]=\"!!item.subtitle\"\n [ngClass]=\"item.classes?.wrapper\" *ngIf=\"item.visibility\">\n\n <div class=\"treeview-item\" id=\"kpiId-{{item.id}}\" [ngClass]=\"{'treeview-item-disabled': item.disabled}\"\n [matTooltip]=\"item.tooltip || ''\" (click)=\"toggleCollapsable()\">\n\n <!-- Icon -->\n <ng-container *ngIf=\"item.icon\">\n <mat-icon class=\"treeview-item-icon\" [ngClass]=\"item.classes?.icon\" [svgIcon]=\"item.icon\"></mat-icon>\n </ng-container>\n\n <!-- Title & Subtitle -->\n <div class=\"treeview-item-title-wrapper\">\n <div class=\"treeview-item-title\">\n <span [ngClass]=\"item.classes?.name\">\n <i class=\"fa fa-pencil text-sky-800 mx-2 hover:text-sky-400 cursor-pointer\"\n (click)=\"getEditTreeData(item)\" *ngIf=\"isEditIcon\"></i> {{item.title}}\n </span>\n </div>\n </div>\n\n <!-- Badge -->\n \n\n <!-- Arrow -->\n <mat-icon class=\"treeview-item-arrow icon-size-4\" [svgIcon]=\"'heroicons_solid:chevron-right'\"></mat-icon>\n\n </div>\n\n</div>\n\n<div class=\"treeview-item-children\" *ngIf=\"!isCollapsed\" @expandCollapse>\n\n <ng-container *ngFor=\"let item of item.children; trackBy: trackByFn\">\n\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n\n <!-- Basic -->\n <ng-container *ngIf=\"item.tagType == 'child'\">\n <treeview-basic-item [item]=\"item\" [name]=\"name\" [isEditIcon]=\"isEditIcon\"\n (editableKpiBasicData)=\"getKpiEditKpiBasicData($event)\"\n [internalRoute]=\"internalRoute\"></treeview-basic-item>\n </ng-container>\n\n <!-- Collapsable -->\n <ng-container *ngIf=\"item.tagType == 'parent'\">\n <treeview-collapsable-item [item]=\"item\" [name]=\"name\" [isEditIcon]=\"isEditIcon\"\n (editableKpiData)=\"getKpiEditKpiData($event)\" [internalRoute]=\"internalRoute\"\n [autoCollapse]=\"autoCollapse\" [treeId]=\"treeId\">\n </treeview-collapsable-item>\n </ng-container>\n\n </ng-container>\n\n </ng-container>\n\n</div>" }]
17215
17210
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i2.Router }, { type: TreeviewSharedService }]; }, propDecorators: { autoCollapse: [{
17216
17211
  type: Input
17217
17212
  }], item: [{
@@ -17256,7 +17251,7 @@ class TreeviewComponent {
17256
17251
  this.editableKpiData = new EventEmitter();
17257
17252
  }
17258
17253
  ngOnInit() {
17259
- console.log(this.navigation);
17254
+ console.log(this.navigation, 'kpi tree');
17260
17255
  this._treeviewService.onCollapsableItemCollapsed
17261
17256
  .pipe(takeUntil(this._unsubscribeAll))
17262
17257
  .subscribe((item) => {
@@ -17269,7 +17264,6 @@ class TreeviewComponent {
17269
17264
  });
17270
17265
  if (this.navigation != undefined) {
17271
17266
  this._treeviewservice.getKpiList(this.navigation);
17272
- this.getKpiName(this.navigation, 'kpi');
17273
17267
  }
17274
17268
  }
17275
17269
  ngOnDestroy() {
@@ -17323,10 +17317,10 @@ class TreeviewComponent {
17323
17317
  }
17324
17318
  }
17325
17319
  TreeviewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeviewComponent, deps: [{ token: i2.Router }, { token: i2$1.ScrollStrategyOptions }, { token: CreateKpIService }, { token: i0.ChangeDetectorRef }, { token: i4$2.ViewportScroller }, { token: TreeviewSharedService }], target: i0.ɵɵFactoryTarget.Component });
17326
- TreeviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TreeviewComponent, selector: "treeview", inputs: { autoCollapse: "autoCollapse", inner: "inner", navigation: "navigation", opened: "opened", isEditIcon: "isEditIcon", isSearchBox: "isSearchBox", transparentOverlay: "transparentOverlay", treeListForSearchBox: "treeListForSearchBox", name: "name", openTreeId: "openTreeId", routeKey: "routeKey" }, outputs: { editableKpiData: "editableKpiData" }, ngImport: i0, template: "<div class=\"treeview-wrapper\">\n <div class=\"mx-3 my-4\" *ngIf=\"isSearchBox\">\n <dx-select-box [items]=\"treeListForSearchBox\" [searchEnabled]=\"true\" valueExpr=\"kpiId\" displayExpr=\"name\"\n [placeholder]=\"'Search KPI'\" (onValueChanged)=\"selectedKpiNameFromSearchKpi($event)\">\n </dx-select-box>\n </div>\n\n <!-- Content -->\n <div class=\"treeview-content\" fuseScrollbar #navigationContent>\n\n <!-- Items -->\n <ng-container *ngFor=\"let item of navigation;\">\n\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n\n <!-- Basic -->\n <ng-container *ngIf=\"item.tag_type === 'child'\">\n <treeview-basic-item [item]=\"item\" [name]=\"name\" [isEditIcon]=\"isEditIcon\"\n (editableKpiBasicData)=\"getBasicEditKpiData($event)\" [internalRoute]=\"routeKey\"\n [treeId]=\"openTreeId\">\n </treeview-basic-item>\n </ng-container>\n\n <!-- Collapsable -->\n <ng-container *ngIf=\"item.tag_type === 'parent'\">\n <treeview-collapsable-item [item]=\"item\" [name]=\"name\" [isEditIcon]=\"isEditIcon\"\n (editableKpiData)=\"getEditKpiData($event)\" [autoCollapse]=\"autoCollapse\" [treeId]=\"openTreeId\"\n [internalRoute]=\"routeKey\">\n </treeview-collapsable-item>\n </ng-container>\n\n <!-- Divider -->\n <ng-container *ngIf=\"item.tag_type === 'divider'\">\n <treeview-divider-item [item]=\"item\" [name]=\"name\">\n </treeview-divider-item>\n </ng-container>\n\n\n </ng-container>\n\n </ng-container>\n\n </div>\n\n\n\n</div>", styles: [":root{--treeview-width: 480px}treeview{position:sticky;display:flex;flex-direction:column;flex:1 0 auto;top:0;width:var(--treeview-width);min-width:var(--treeview-width);max-width:var(--treeview-width);height:100%;min-height:67vh;max-height:67vh;z-index:200}treeview.treeview-animations-enabled{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:visibility,margin-left,margin-right,transform,width,max-width,min-width}treeview.treeview-animations-enabled .treeview-wrapper{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:width,max-width,min-width}treeview.treeview-mode-over{position:fixed;top:0;bottom:0}treeview.treeview-position-left.treeview-mode-side{margin-left:calc(var(--treeview-width) * -1)}treeview.treeview-position-left.treeview-mode-side.treeview-opened{margin-left:0}treeview.treeview-position-left.treeview-mode-over{left:0;transform:translate3d(-100%,0,0)}treeview.treeview-position-left.treeview-mode-over.treeview-opened{transform:translateZ(0)}treeview.treeview-position-left .treeview-wrapper{left:0}treeview.treeview-position-right.treeview-mode-side{margin-right:calc(var(--treeview-width) * -1)}treeview.treeview-position-right.treeview-mode-side.treeview-opened{margin-right:0}treeview.treeview-position-right.treeview-mode-over{right:0;transform:translate3d(100%,0,0)}treeview.treeview-position-right.treeview-mode-over.treeview-opened{transform:translateZ(0)}treeview.treeview-position-right .treeview-wrapper{right:0}treeview.treeview-inner{position:relative;width:auto;min-width:0;max-width:none;height:auto;min-height:0;max-height:none;box-shadow:none}treeview.treeview-inner .treeview-wrapper{position:relative;overflow:visible;height:auto}treeview.treeview-inner .treeview-wrapper .treeview-content{overflow:visible!important}treeview .treeview-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;width:36rem;overflow:hidden;z-index:10;background:inherit}treeview .treeview-wrapper .treeview-content{flex:1 1 auto;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}treeview .treeview-wrapper .treeview-content>treeview-divider-item{margin:24px 0}treeview .treeview-wrapper .treeview-content>treeview-group-item{margin-top:24px}treeview .treeview-aside-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;left:var(--treeview-width);width:var(--treeview-width);height:100%;z-index:5;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;transition-duration:.4s;transition-property:left,right;transition-timing-function:cubic-bezier(.25,.8,.25,1);background:inherit}treeview .treeview-aside-wrapper>treeview-aside-item{padding:24px 0}treeview .treeview-aside-wrapper>treeview-aside-item>.treeview-item-wrapper{display:none!important}treeview.treeview-position-right .treeview-aside-wrapper{left:auto;right:var(--treeview-width)}treeview treeview-aside-item,treeview treeview-basic-item,treeview treeview-collapsable-item,treeview treeview-divider-item,treeview treeview-group-item,treeview treeview-spacer-item{display:flex;flex-direction:column;flex:1 0 auto;-webkit-user-select:none;user-select:none}treeview treeview-aside-item .treeview-item-wrapper .treeview-item,treeview treeview-basic-item .treeview-item-wrapper .treeview-item,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item,treeview treeview-divider-item .treeview-item-wrapper .treeview-item,treeview treeview-group-item .treeview-item-wrapper .treeview-item,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item{position:relative;display:flex;align-items:center;justify-content:flex-start;padding:10px 16px;font-size:13px;font-weight:500;line-height:20px;text-decoration:none;border-radius:6px}treeview treeview-aside-item .treeview-item-wrapper .treeview-item.treeview-item-disabled,treeview treeview-basic-item .treeview-item-wrapper .treeview-item.treeview-item-disabled,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item.treeview-item-disabled,treeview treeview-divider-item .treeview-item-wrapper .treeview-item.treeview-item-disabled,treeview treeview-group-item .treeview-item-wrapper .treeview-item.treeview-item-disabled,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item.treeview-item-disabled{cursor:default;opacity:.4}treeview treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview treeview-divider-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item .treeview-item-icon{margin-right:16px}treeview treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview treeview-divider-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle{font-size:11px;line-height:1.5}treeview treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-divider-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item .treeview-item-badge{margin-left:auto}treeview treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content,treeview treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content,treeview treeview-divider-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content,treeview treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;white-space:nowrap;height:20px}treeview treeview-aside-item>.treeview-item-wrapper,treeview treeview-basic-item>.treeview-item-wrapper,treeview treeview-collapsable-item>.treeview-item-wrapper,treeview treeview-group-item>.treeview-item-wrapper{margin:0 12px}treeview treeview-aside-item,treeview treeview-basic-item,treeview treeview-collapsable-item{margin-bottom:4px}treeview treeview-aside-item .treeview-item,treeview treeview-basic-item .treeview-item,treeview treeview-collapsable-item .treeview-item{cursor:pointer}treeview treeview-collapsable-item>.treeview-item-wrapper .treeview-item .treeview-item-badge+.treeview-item-arrow{margin-left:8px}treeview treeview-collapsable-item>.treeview-item-wrapper .treeview-item .treeview-item-arrow{height:20px;line-height:20px;margin-left:auto;transition:transform .3s cubic-bezier(.25,.8,.25,1),color 375ms cubic-bezier(.25,.8,.25,1)}treeview treeview-collapsable-item.treeview-item-expanded>.treeview-item-wrapper .treeview-item .treeview-item-arrow{transform:rotate(90deg)}treeview treeview-collapsable-item>.treeview-item-children>*:first-child{margin-top:6px}treeview treeview-collapsable-item>.treeview-item-children>*:last-child{padding-bottom:6px}treeview treeview-collapsable-item>.treeview-item-children>*:last-child>.treeview-item-children>*:last-child{padding-bottom:0}treeview treeview-collapsable-item>.treeview-item-children .treeview-item{padding:10px 16px}treeview treeview-collapsable-item .treeview-item-children{overflow:hidden}treeview treeview-collapsable-item .treeview-item-children .treeview-item{padding-left:56px}treeview treeview-collapsable-item .treeview-item-children .treeview-item-children .treeview-item{padding-left:72px}treeview treeview-collapsable-item .treeview-item-children .treeview-item-children .treeview-item-children .treeview-item{padding-left:88px}treeview treeview-collapsable-item .treeview-item-children .treeview-item-children .treeview-item-children .treeview-item-children .treeview-item{padding-left:104px}treeview treeview-divider-item{margin:12px 0}treeview treeview-divider-item .treeview-item-wrapper{height:1px;box-shadow:0 1px}treeview treeview-group-item>.treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-group-item>.treeview-item-wrapper .treeview-item .treeview-item-icon{display:none!important}treeview treeview-group-item>.treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}treeview treeview-spacer-item{margin:6px 0}.treeview-overlay{position:absolute;inset:0;z-index:170;opacity:0;background-color:#0009}.treeview-overlay+.treeview-aside-overlay{background-color:transparent}.treeview-aside-overlay{position:absolute;inset:0;z-index:169;opacity:0;background-color:#0000004d}treeview-aside-item .treeview-item-wrapper .treeview-item,treeview-basic-item .treeview-item-wrapper .treeview-item,treeview-collapsable-item .treeview-item-wrapper .treeview-item,treeview-group-item .treeview-item-wrapper .treeview-item{color:currentColor}treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-icon{@apply text-current opacity-60;}treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title,treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title,treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title,treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title{@apply text-current opacity-80;}treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle{@apply text-current opacity-50;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active,treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced{@apply bg-gray-800 bg-opacity-5 dark:bg-white dark:bg-opacity-12;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-icon,treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-icon,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-icon,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-icon,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-icon,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-icon{@apply opacity-100;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-title,treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-title,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-title,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-title,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-title,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-title{@apply opacity-100;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-subtitle,treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-subtitle,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-subtitle,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-subtitle,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-subtitle,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-subtitle{@apply opacity-100;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover{@apply bg-gray-800 bg-opacity-5 dark:bg-white dark:bg-opacity-12;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-icon,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-icon,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-icon{@apply opacity-100;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-title,treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-arrow,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-title,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-arrow,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-title,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-arrow{@apply opacity-100;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-subtitle,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-subtitle,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-subtitle{@apply opacity-100;}treeview-collapsable-item.treeview-item-expanded>.treeview-item-wrapper .treeview-item .treeview-item-icon{@apply opacity-100;}treeview-collapsable-item.treeview-item-expanded>.treeview-item-wrapper .treeview-item .treeview-item-title,treeview-collapsable-item.treeview-item-expanded>.treeview-item-wrapper .treeview-item .treeview-item-arrow{@apply opacity-100;}treeview-collapsable-item.treeview-item-expanded>.treeview-item-wrapper .treeview-item .treeview-item-subtitle{@apply opacity-100;}treeview-group-item>.treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title{@apply opacity-100 text-primary-600 dark:text-primary-400;}:root{--treeview-compact-width: 112px}treeview.treeview-appearance-compact{width:var(--treeview-compact-width);min-width:var(--treeview-compact-width);max-width:var(--treeview-compact-width)}treeview.treeview-appearance-compact.treeview-position-left.treeview-mode-side{margin-left:calc(var(--treeview-compact-width) * -1)}treeview.treeview-appearance-compact.treeview-position-left.treeview-opened{margin-left:0}treeview.treeview-appearance-compact.treeview-position-right.treeview-mode-side{margin-right:calc(var(--treeview-compact-width) * -1)}treeview.treeview-appearance-compact.treeview-position-right.treeview-opened{margin-right:0}treeview.treeview-appearance-compact.treeview-position-right .treeview-aside-wrapper{left:auto;right:var(--treeview-compact-width)}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper{margin:4px 8px 0}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item{flex-direction:column;justify-content:center;padding:12px;border-radius:6px}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-icon{margin-right:0}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper{margin-top:8px}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title{font-size:12px;font-weight:500;text-align:center;line-height:16px}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle{display:none!important}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-badge{position:absolute;top:12px;left:64px}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item>treeview-collapsable-item,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item>treeview-collapsable-item{display:none}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item>treeview-group-item>.treeview-item-wrapper,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item>treeview-group-item>.treeview-item-wrapper{display:none}treeview.treeview-appearance-compact .treeview-aside-wrapper{left:var(--treeview-compact-width)}:root{--treeview-width: 480px;--treeview-dense-width: 80px}treeview.treeview-appearance-dense:not(.treeview-mode-over){width:var(--treeview-dense-width);min-width:var(--treeview-dense-width);max-width:var(--treeview-dense-width)}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-left.treeview-mode-side{margin-left:calc(var(--treeview-dense-width) * -1)}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-left.treeview-opened{margin-left:0}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-right.treeview-mode-side{margin-right:calc(var(--treeview-dense-width) * -1)}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-right.treeview-opened{margin-right:0}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-right .treeview-aside-wrapper{left:auto;right:var(--treeview-dense-width)}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-right.treeview-hover .treeview-aside-wrapper{left:auto;right:var(--treeview-width)}treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-aside-item .treeview-item-wrapper .treeview-item,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-basic-item .treeview-item-wrapper .treeview-item,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-collapsable-item .treeview-item-wrapper .treeview-item,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-group-item .treeview-item-wrapper .treeview-item{width:calc(var(--treeview-dense-width) - 24px);min-width:calc(var(--treeview-dense-width) - 24px);max-width:calc(var(--treeview-dense-width) - 24px)}treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper{transition:opacity .4s cubic-bezier(.25,.8,.25,1)}treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-group-item:first-of-type{margin-top:0}treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item{padding:10px 16px}treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper{white-space:nowrap;opacity:0}treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content treeview-collapsable-item .treeview-item-children{display:none}treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content treeview-group-item>.treeview-item-wrapper .treeview-item:before{content:\"\";position:absolute;top:20px;width:23px;border-top-width:2px}treeview.treeview-appearance-dense .treeview-aside-wrapper{left:var(--treeview-dense-width)}treeview.treeview-appearance-dense.treeview-hover .treeview-wrapper{width:var(--treeview-width)}treeview.treeview-appearance-dense.treeview-hover .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item{width:calc(var(--treeview-width) - 24px);min-width:calc(var(--treeview-width) - 24px);max-width:calc(var(--treeview-width) - 24px)}treeview.treeview-appearance-dense.treeview-hover .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense.treeview-hover .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense.treeview-hover .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper{white-space:nowrap;animation:removeWhiteSpaceNoWrap 1ms linear .35s;animation-fill-mode:forwards}treeview.treeview-appearance-dense.treeview-hover .treeview-aside-wrapper{left:var(--treeview-width)}@keyframes removeWhiteSpaceNoWrap{0%{white-space:nowrap}99%{white-space:nowrap}to{white-space:normal}}:root{--treeview-thin-width: 80px}treeview.treeview-appearance-thin{width:var(--treeview-thin-width);min-width:var(--treeview-thin-width);max-width:var(--treeview-thin-width)}treeview.treeview-appearance-thin.treeview-position-left.treeview-mode-side{margin-left:calc(var(--treeview-thin-width) * -1)}treeview.treeview-appearance-thin.treeview-position-left.treeview-opened{margin-left:0}treeview.treeview-appearance-thin.treeview-position-right.treeview-mode-side{margin-right:calc(var(--treeview-thin-width) * -1)}treeview.treeview-appearance-thin.treeview-position-right.treeview-opened{margin-right:0}treeview.treeview-appearance-thin.treeview-position-right .treeview-aside-wrapper{left:auto;right:var(--treeview-thin-width)}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item{flex-direction:column;justify-content:center;height:64px;min-height:64px;max-height:64px;padding:0 16px}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper{display:flex;align-items:center;justify-content:center}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item{justify-content:center;padding:12px;border-radius:4px}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-icon{margin:0}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-badge-content,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-badge-content,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper{display:none}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-collapsable-item{display:none}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-group-item>.treeview-item-wrapper{display:none}treeview.treeview-appearance-thin .treeview-aside-wrapper{left:var(--treeview-thin-width)}\n"], dependencies: [{ kind: "directive", type: i4$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "component", type: TreeViewBasicItemComponent, selector: "treeview-basic-item", inputs: ["item", "name", "internalRoute", "isEditIcon", "treeId"], outputs: ["editableKpiBasicData"] }, { kind: "component", type: TreeViewCollapsableItemComponent, selector: "treeview-collapsable-item", inputs: ["autoCollapse", "item", "name", "treeId", "internalRoute", "isEditIcon"], outputs: ["editableKpiData"] }, { kind: "component", type: TreeViewDividerItemComponent, selector: "treeview-divider-item", inputs: ["item", "name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
17320
+ TreeviewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TreeviewComponent, selector: "treeview", inputs: { autoCollapse: "autoCollapse", inner: "inner", navigation: "navigation", opened: "opened", isEditIcon: "isEditIcon", isSearchBox: "isSearchBox", transparentOverlay: "transparentOverlay", treeListForSearchBox: "treeListForSearchBox", name: "name", openTreeId: "openTreeId", routeKey: "routeKey" }, outputs: { editableKpiData: "editableKpiData" }, ngImport: i0, template: "<div class=\"treeview-wrapper\">\n <div class=\"mx-3 my-4\" *ngIf=\"isSearchBox\">\n <dx-select-box [items]=\"treeListForSearchBox\" [searchEnabled]=\"true\" valueExpr=\"kpiId\" displayExpr=\"name\"\n [placeholder]=\"'Search KPI'\" (onValueChanged)=\"selectedKpiNameFromSearchKpi($event)\">\n </dx-select-box>\n </div>\n\n <!-- Content -->\n <div class=\"treeview-content\" fuseScrollbar #navigationContent>\n\n <!-- Items -->\n <ng-container *ngFor=\"let item of navigation;\">\n\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n\n <!-- Basic -->\n <ng-container *ngIf=\"item.tagType == 'child'\">\n <treeview-basic-item [item]=\"item\" [name]=\"name\" [isEditIcon]=\"isEditIcon\"\n (editableKpiBasicData)=\"getBasicEditKpiData($event)\" [internalRoute]=\"routeKey\"\n [treeId]=\"openTreeId\">\n </treeview-basic-item>\n </ng-container>\n\n <!-- Collapsable -->\n <ng-container *ngIf=\"item.tagType == 'parent'\">\n <treeview-collapsable-item [item]=\"item\" [name]=\"name\" [isEditIcon]=\"isEditIcon\"\n (editableKpiData)=\"getEditKpiData($event)\" [autoCollapse]=\"autoCollapse\" [treeId]=\"openTreeId\"\n [internalRoute]=\"routeKey\">\n </treeview-collapsable-item>\n </ng-container>\n\n\n </ng-container>\n\n </ng-container>\n\n </div>\n\n\n\n</div>", styles: [":root{--treeview-width: 480px}treeview{position:sticky;display:flex;flex-direction:column;flex:1 0 auto;top:0;width:var(--treeview-width);min-width:var(--treeview-width);max-width:var(--treeview-width);height:100%;min-height:67vh;max-height:67vh;z-index:200}treeview.treeview-animations-enabled{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:visibility,margin-left,margin-right,transform,width,max-width,min-width}treeview.treeview-animations-enabled .treeview-wrapper{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:width,max-width,min-width}treeview.treeview-mode-over{position:fixed;top:0;bottom:0}treeview.treeview-position-left.treeview-mode-side{margin-left:calc(var(--treeview-width) * -1)}treeview.treeview-position-left.treeview-mode-side.treeview-opened{margin-left:0}treeview.treeview-position-left.treeview-mode-over{left:0;transform:translate3d(-100%,0,0)}treeview.treeview-position-left.treeview-mode-over.treeview-opened{transform:translateZ(0)}treeview.treeview-position-left .treeview-wrapper{left:0}treeview.treeview-position-right.treeview-mode-side{margin-right:calc(var(--treeview-width) * -1)}treeview.treeview-position-right.treeview-mode-side.treeview-opened{margin-right:0}treeview.treeview-position-right.treeview-mode-over{right:0;transform:translate3d(100%,0,0)}treeview.treeview-position-right.treeview-mode-over.treeview-opened{transform:translateZ(0)}treeview.treeview-position-right .treeview-wrapper{right:0}treeview.treeview-inner{position:relative;width:auto;min-width:0;max-width:none;height:auto;min-height:0;max-height:none;box-shadow:none}treeview.treeview-inner .treeview-wrapper{position:relative;overflow:visible;height:auto}treeview.treeview-inner .treeview-wrapper .treeview-content{overflow:visible!important}treeview .treeview-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;width:36rem;overflow:hidden;z-index:10;background:inherit}treeview .treeview-wrapper .treeview-content{flex:1 1 auto;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}treeview .treeview-wrapper .treeview-content>treeview-divider-item{margin:24px 0}treeview .treeview-wrapper .treeview-content>treeview-group-item{margin-top:24px}treeview .treeview-aside-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;left:var(--treeview-width);width:var(--treeview-width);height:100%;z-index:5;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;transition-duration:.4s;transition-property:left,right;transition-timing-function:cubic-bezier(.25,.8,.25,1);background:inherit}treeview .treeview-aside-wrapper>treeview-aside-item{padding:24px 0}treeview .treeview-aside-wrapper>treeview-aside-item>.treeview-item-wrapper{display:none!important}treeview.treeview-position-right .treeview-aside-wrapper{left:auto;right:var(--treeview-width)}treeview treeview-aside-item,treeview treeview-basic-item,treeview treeview-collapsable-item,treeview treeview-divider-item,treeview treeview-group-item,treeview treeview-spacer-item{display:flex;flex-direction:column;flex:1 0 auto;-webkit-user-select:none;user-select:none}treeview treeview-aside-item .treeview-item-wrapper .treeview-item,treeview treeview-basic-item .treeview-item-wrapper .treeview-item,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item,treeview treeview-divider-item .treeview-item-wrapper .treeview-item,treeview treeview-group-item .treeview-item-wrapper .treeview-item,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item{position:relative;display:flex;align-items:center;justify-content:flex-start;padding:10px 16px;font-size:13px;font-weight:500;line-height:20px;text-decoration:none;border-radius:6px}treeview treeview-aside-item .treeview-item-wrapper .treeview-item.treeview-item-disabled,treeview treeview-basic-item .treeview-item-wrapper .treeview-item.treeview-item-disabled,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item.treeview-item-disabled,treeview treeview-divider-item .treeview-item-wrapper .treeview-item.treeview-item-disabled,treeview treeview-group-item .treeview-item-wrapper .treeview-item.treeview-item-disabled,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item.treeview-item-disabled{cursor:default;opacity:.4}treeview treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview treeview-divider-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item .treeview-item-icon{margin-right:16px}treeview treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview treeview-divider-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle{font-size:11px;line-height:1.5}treeview treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-divider-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item .treeview-item-badge{margin-left:auto}treeview treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content,treeview treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content,treeview treeview-divider-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content,treeview treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;white-space:nowrap;height:20px}treeview treeview-aside-item>.treeview-item-wrapper,treeview treeview-basic-item>.treeview-item-wrapper,treeview treeview-collapsable-item>.treeview-item-wrapper,treeview treeview-group-item>.treeview-item-wrapper{margin:0 12px}treeview treeview-aside-item,treeview treeview-basic-item,treeview treeview-collapsable-item{margin-bottom:4px}treeview treeview-aside-item .treeview-item,treeview treeview-basic-item .treeview-item,treeview treeview-collapsable-item .treeview-item{cursor:pointer}treeview treeview-collapsable-item>.treeview-item-wrapper .treeview-item .treeview-item-badge+.treeview-item-arrow{margin-left:8px}treeview treeview-collapsable-item>.treeview-item-wrapper .treeview-item .treeview-item-arrow{height:20px;line-height:20px;margin-left:auto;transition:transform .3s cubic-bezier(.25,.8,.25,1),color 375ms cubic-bezier(.25,.8,.25,1)}treeview treeview-collapsable-item.treeview-item-expanded>.treeview-item-wrapper .treeview-item .treeview-item-arrow{transform:rotate(90deg)}treeview treeview-collapsable-item>.treeview-item-children>*:first-child{margin-top:6px}treeview treeview-collapsable-item>.treeview-item-children>*:last-child{padding-bottom:6px}treeview treeview-collapsable-item>.treeview-item-children>*:last-child>.treeview-item-children>*:last-child{padding-bottom:0}treeview treeview-collapsable-item>.treeview-item-children .treeview-item{padding:10px 16px}treeview treeview-collapsable-item .treeview-item-children{overflow:hidden}treeview treeview-collapsable-item .treeview-item-children .treeview-item{padding-left:56px}treeview treeview-collapsable-item .treeview-item-children .treeview-item-children .treeview-item{padding-left:72px}treeview treeview-collapsable-item .treeview-item-children .treeview-item-children .treeview-item-children .treeview-item{padding-left:88px}treeview treeview-collapsable-item .treeview-item-children .treeview-item-children .treeview-item-children .treeview-item-children .treeview-item{padding-left:104px}treeview treeview-divider-item{margin:12px 0}treeview treeview-divider-item .treeview-item-wrapper{height:1px;box-shadow:0 1px}treeview treeview-group-item>.treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-group-item>.treeview-item-wrapper .treeview-item .treeview-item-icon{display:none!important}treeview treeview-group-item>.treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}treeview treeview-spacer-item{margin:6px 0}.treeview-overlay{position:absolute;inset:0;z-index:170;opacity:0;background-color:#0009}.treeview-overlay+.treeview-aside-overlay{background-color:transparent}.treeview-aside-overlay{position:absolute;inset:0;z-index:169;opacity:0;background-color:#0000004d}treeview-aside-item .treeview-item-wrapper .treeview-item,treeview-basic-item .treeview-item-wrapper .treeview-item,treeview-collapsable-item .treeview-item-wrapper .treeview-item,treeview-group-item .treeview-item-wrapper .treeview-item{color:currentColor}treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-icon{@apply text-current opacity-60;}treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title,treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title,treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title,treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title{@apply text-current opacity-80;}treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle{@apply text-current opacity-50;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active,treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced{@apply bg-gray-800 bg-opacity-5 dark:bg-white dark:bg-opacity-12;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-icon,treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-icon,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-icon,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-icon,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-icon,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-icon{@apply opacity-100;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-title,treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-title,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-title,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-title,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-title,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-title{@apply opacity-100;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-subtitle,treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-subtitle,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-subtitle,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-subtitle,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-subtitle,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-subtitle{@apply opacity-100;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover{@apply bg-gray-800 bg-opacity-5 dark:bg-white dark:bg-opacity-12;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-icon,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-icon,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-icon{@apply opacity-100;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-title,treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-arrow,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-title,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-arrow,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-title,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-arrow{@apply opacity-100;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-subtitle,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-subtitle,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-subtitle{@apply opacity-100;}treeview-collapsable-item.treeview-item-expanded>.treeview-item-wrapper .treeview-item .treeview-item-icon{@apply opacity-100;}treeview-collapsable-item.treeview-item-expanded>.treeview-item-wrapper .treeview-item .treeview-item-title,treeview-collapsable-item.treeview-item-expanded>.treeview-item-wrapper .treeview-item .treeview-item-arrow{@apply opacity-100;}treeview-collapsable-item.treeview-item-expanded>.treeview-item-wrapper .treeview-item .treeview-item-subtitle{@apply opacity-100;}treeview-group-item>.treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title{@apply opacity-100 text-primary-600 dark:text-primary-400;}:root{--treeview-compact-width: 112px}treeview.treeview-appearance-compact{width:var(--treeview-compact-width);min-width:var(--treeview-compact-width);max-width:var(--treeview-compact-width)}treeview.treeview-appearance-compact.treeview-position-left.treeview-mode-side{margin-left:calc(var(--treeview-compact-width) * -1)}treeview.treeview-appearance-compact.treeview-position-left.treeview-opened{margin-left:0}treeview.treeview-appearance-compact.treeview-position-right.treeview-mode-side{margin-right:calc(var(--treeview-compact-width) * -1)}treeview.treeview-appearance-compact.treeview-position-right.treeview-opened{margin-right:0}treeview.treeview-appearance-compact.treeview-position-right .treeview-aside-wrapper{left:auto;right:var(--treeview-compact-width)}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper{margin:4px 8px 0}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item{flex-direction:column;justify-content:center;padding:12px;border-radius:6px}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-icon{margin-right:0}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper{margin-top:8px}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title{font-size:12px;font-weight:500;text-align:center;line-height:16px}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle{display:none!important}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-badge{position:absolute;top:12px;left:64px}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item>treeview-collapsable-item,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item>treeview-collapsable-item{display:none}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item>treeview-group-item>.treeview-item-wrapper,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item>treeview-group-item>.treeview-item-wrapper{display:none}treeview.treeview-appearance-compact .treeview-aside-wrapper{left:var(--treeview-compact-width)}:root{--treeview-width: 480px;--treeview-dense-width: 80px}treeview.treeview-appearance-dense:not(.treeview-mode-over){width:var(--treeview-dense-width);min-width:var(--treeview-dense-width);max-width:var(--treeview-dense-width)}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-left.treeview-mode-side{margin-left:calc(var(--treeview-dense-width) * -1)}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-left.treeview-opened{margin-left:0}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-right.treeview-mode-side{margin-right:calc(var(--treeview-dense-width) * -1)}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-right.treeview-opened{margin-right:0}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-right .treeview-aside-wrapper{left:auto;right:var(--treeview-dense-width)}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-right.treeview-hover .treeview-aside-wrapper{left:auto;right:var(--treeview-width)}treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-aside-item .treeview-item-wrapper .treeview-item,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-basic-item .treeview-item-wrapper .treeview-item,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-collapsable-item .treeview-item-wrapper .treeview-item,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-group-item .treeview-item-wrapper .treeview-item{width:calc(var(--treeview-dense-width) - 24px);min-width:calc(var(--treeview-dense-width) - 24px);max-width:calc(var(--treeview-dense-width) - 24px)}treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper{transition:opacity .4s cubic-bezier(.25,.8,.25,1)}treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-group-item:first-of-type{margin-top:0}treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item{padding:10px 16px}treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper{white-space:nowrap;opacity:0}treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content treeview-collapsable-item .treeview-item-children{display:none}treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content treeview-group-item>.treeview-item-wrapper .treeview-item:before{content:\"\";position:absolute;top:20px;width:23px;border-top-width:2px}treeview.treeview-appearance-dense .treeview-aside-wrapper{left:var(--treeview-dense-width)}treeview.treeview-appearance-dense.treeview-hover .treeview-wrapper{width:var(--treeview-width)}treeview.treeview-appearance-dense.treeview-hover .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item{width:calc(var(--treeview-width) - 24px);min-width:calc(var(--treeview-width) - 24px);max-width:calc(var(--treeview-width) - 24px)}treeview.treeview-appearance-dense.treeview-hover .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense.treeview-hover .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense.treeview-hover .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper{white-space:nowrap;animation:removeWhiteSpaceNoWrap 1ms linear .35s;animation-fill-mode:forwards}treeview.treeview-appearance-dense.treeview-hover .treeview-aside-wrapper{left:var(--treeview-width)}@keyframes removeWhiteSpaceNoWrap{0%{white-space:nowrap}99%{white-space:nowrap}to{white-space:normal}}:root{--treeview-thin-width: 80px}treeview.treeview-appearance-thin{width:var(--treeview-thin-width);min-width:var(--treeview-thin-width);max-width:var(--treeview-thin-width)}treeview.treeview-appearance-thin.treeview-position-left.treeview-mode-side{margin-left:calc(var(--treeview-thin-width) * -1)}treeview.treeview-appearance-thin.treeview-position-left.treeview-opened{margin-left:0}treeview.treeview-appearance-thin.treeview-position-right.treeview-mode-side{margin-right:calc(var(--treeview-thin-width) * -1)}treeview.treeview-appearance-thin.treeview-position-right.treeview-opened{margin-right:0}treeview.treeview-appearance-thin.treeview-position-right .treeview-aside-wrapper{left:auto;right:var(--treeview-thin-width)}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item{flex-direction:column;justify-content:center;height:64px;min-height:64px;max-height:64px;padding:0 16px}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper{display:flex;align-items:center;justify-content:center}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item{justify-content:center;padding:12px;border-radius:4px}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-icon{margin:0}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-badge-content,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-badge-content,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper{display:none}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-collapsable-item{display:none}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-group-item>.treeview-item-wrapper{display:none}treeview.treeview-appearance-thin .treeview-aside-wrapper{left:var(--treeview-thin-width)}\n"], dependencies: [{ kind: "directive", type: i4$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "component", type: TreeViewBasicItemComponent, selector: "treeview-basic-item", inputs: ["item", "name", "internalRoute", "isEditIcon", "treeId"], outputs: ["editableKpiBasicData"] }, { kind: "component", type: TreeViewCollapsableItemComponent, selector: "treeview-collapsable-item", inputs: ["autoCollapse", "item", "name", "treeId", "internalRoute", "isEditIcon"], outputs: ["editableKpiData"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
17327
17321
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeviewComponent, decorators: [{
17328
17322
  type: Component,
17329
- args: [{ selector: 'treeview', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"treeview-wrapper\">\n <div class=\"mx-3 my-4\" *ngIf=\"isSearchBox\">\n <dx-select-box [items]=\"treeListForSearchBox\" [searchEnabled]=\"true\" valueExpr=\"kpiId\" displayExpr=\"name\"\n [placeholder]=\"'Search KPI'\" (onValueChanged)=\"selectedKpiNameFromSearchKpi($event)\">\n </dx-select-box>\n </div>\n\n <!-- Content -->\n <div class=\"treeview-content\" fuseScrollbar #navigationContent>\n\n <!-- Items -->\n <ng-container *ngFor=\"let item of navigation;\">\n\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n\n <!-- Basic -->\n <ng-container *ngIf=\"item.tag_type === 'child'\">\n <treeview-basic-item [item]=\"item\" [name]=\"name\" [isEditIcon]=\"isEditIcon\"\n (editableKpiBasicData)=\"getBasicEditKpiData($event)\" [internalRoute]=\"routeKey\"\n [treeId]=\"openTreeId\">\n </treeview-basic-item>\n </ng-container>\n\n <!-- Collapsable -->\n <ng-container *ngIf=\"item.tag_type === 'parent'\">\n <treeview-collapsable-item [item]=\"item\" [name]=\"name\" [isEditIcon]=\"isEditIcon\"\n (editableKpiData)=\"getEditKpiData($event)\" [autoCollapse]=\"autoCollapse\" [treeId]=\"openTreeId\"\n [internalRoute]=\"routeKey\">\n </treeview-collapsable-item>\n </ng-container>\n\n <!-- Divider -->\n <ng-container *ngIf=\"item.tag_type === 'divider'\">\n <treeview-divider-item [item]=\"item\" [name]=\"name\">\n </treeview-divider-item>\n </ng-container>\n\n\n </ng-container>\n\n </ng-container>\n\n </div>\n\n\n\n</div>", styles: [":root{--treeview-width: 480px}treeview{position:sticky;display:flex;flex-direction:column;flex:1 0 auto;top:0;width:var(--treeview-width);min-width:var(--treeview-width);max-width:var(--treeview-width);height:100%;min-height:67vh;max-height:67vh;z-index:200}treeview.treeview-animations-enabled{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:visibility,margin-left,margin-right,transform,width,max-width,min-width}treeview.treeview-animations-enabled .treeview-wrapper{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:width,max-width,min-width}treeview.treeview-mode-over{position:fixed;top:0;bottom:0}treeview.treeview-position-left.treeview-mode-side{margin-left:calc(var(--treeview-width) * -1)}treeview.treeview-position-left.treeview-mode-side.treeview-opened{margin-left:0}treeview.treeview-position-left.treeview-mode-over{left:0;transform:translate3d(-100%,0,0)}treeview.treeview-position-left.treeview-mode-over.treeview-opened{transform:translateZ(0)}treeview.treeview-position-left .treeview-wrapper{left:0}treeview.treeview-position-right.treeview-mode-side{margin-right:calc(var(--treeview-width) * -1)}treeview.treeview-position-right.treeview-mode-side.treeview-opened{margin-right:0}treeview.treeview-position-right.treeview-mode-over{right:0;transform:translate3d(100%,0,0)}treeview.treeview-position-right.treeview-mode-over.treeview-opened{transform:translateZ(0)}treeview.treeview-position-right .treeview-wrapper{right:0}treeview.treeview-inner{position:relative;width:auto;min-width:0;max-width:none;height:auto;min-height:0;max-height:none;box-shadow:none}treeview.treeview-inner .treeview-wrapper{position:relative;overflow:visible;height:auto}treeview.treeview-inner .treeview-wrapper .treeview-content{overflow:visible!important}treeview .treeview-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;width:36rem;overflow:hidden;z-index:10;background:inherit}treeview .treeview-wrapper .treeview-content{flex:1 1 auto;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}treeview .treeview-wrapper .treeview-content>treeview-divider-item{margin:24px 0}treeview .treeview-wrapper .treeview-content>treeview-group-item{margin-top:24px}treeview .treeview-aside-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;left:var(--treeview-width);width:var(--treeview-width);height:100%;z-index:5;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;transition-duration:.4s;transition-property:left,right;transition-timing-function:cubic-bezier(.25,.8,.25,1);background:inherit}treeview .treeview-aside-wrapper>treeview-aside-item{padding:24px 0}treeview .treeview-aside-wrapper>treeview-aside-item>.treeview-item-wrapper{display:none!important}treeview.treeview-position-right .treeview-aside-wrapper{left:auto;right:var(--treeview-width)}treeview treeview-aside-item,treeview treeview-basic-item,treeview treeview-collapsable-item,treeview treeview-divider-item,treeview treeview-group-item,treeview treeview-spacer-item{display:flex;flex-direction:column;flex:1 0 auto;-webkit-user-select:none;user-select:none}treeview treeview-aside-item .treeview-item-wrapper .treeview-item,treeview treeview-basic-item .treeview-item-wrapper .treeview-item,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item,treeview treeview-divider-item .treeview-item-wrapper .treeview-item,treeview treeview-group-item .treeview-item-wrapper .treeview-item,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item{position:relative;display:flex;align-items:center;justify-content:flex-start;padding:10px 16px;font-size:13px;font-weight:500;line-height:20px;text-decoration:none;border-radius:6px}treeview treeview-aside-item .treeview-item-wrapper .treeview-item.treeview-item-disabled,treeview treeview-basic-item .treeview-item-wrapper .treeview-item.treeview-item-disabled,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item.treeview-item-disabled,treeview treeview-divider-item .treeview-item-wrapper .treeview-item.treeview-item-disabled,treeview treeview-group-item .treeview-item-wrapper .treeview-item.treeview-item-disabled,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item.treeview-item-disabled{cursor:default;opacity:.4}treeview treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview treeview-divider-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item .treeview-item-icon{margin-right:16px}treeview treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview treeview-divider-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle{font-size:11px;line-height:1.5}treeview treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-divider-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item .treeview-item-badge{margin-left:auto}treeview treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content,treeview treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content,treeview treeview-divider-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content,treeview treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;white-space:nowrap;height:20px}treeview treeview-aside-item>.treeview-item-wrapper,treeview treeview-basic-item>.treeview-item-wrapper,treeview treeview-collapsable-item>.treeview-item-wrapper,treeview treeview-group-item>.treeview-item-wrapper{margin:0 12px}treeview treeview-aside-item,treeview treeview-basic-item,treeview treeview-collapsable-item{margin-bottom:4px}treeview treeview-aside-item .treeview-item,treeview treeview-basic-item .treeview-item,treeview treeview-collapsable-item .treeview-item{cursor:pointer}treeview treeview-collapsable-item>.treeview-item-wrapper .treeview-item .treeview-item-badge+.treeview-item-arrow{margin-left:8px}treeview treeview-collapsable-item>.treeview-item-wrapper .treeview-item .treeview-item-arrow{height:20px;line-height:20px;margin-left:auto;transition:transform .3s cubic-bezier(.25,.8,.25,1),color 375ms cubic-bezier(.25,.8,.25,1)}treeview treeview-collapsable-item.treeview-item-expanded>.treeview-item-wrapper .treeview-item .treeview-item-arrow{transform:rotate(90deg)}treeview treeview-collapsable-item>.treeview-item-children>*:first-child{margin-top:6px}treeview treeview-collapsable-item>.treeview-item-children>*:last-child{padding-bottom:6px}treeview treeview-collapsable-item>.treeview-item-children>*:last-child>.treeview-item-children>*:last-child{padding-bottom:0}treeview treeview-collapsable-item>.treeview-item-children .treeview-item{padding:10px 16px}treeview treeview-collapsable-item .treeview-item-children{overflow:hidden}treeview treeview-collapsable-item .treeview-item-children .treeview-item{padding-left:56px}treeview treeview-collapsable-item .treeview-item-children .treeview-item-children .treeview-item{padding-left:72px}treeview treeview-collapsable-item .treeview-item-children .treeview-item-children .treeview-item-children .treeview-item{padding-left:88px}treeview treeview-collapsable-item .treeview-item-children .treeview-item-children .treeview-item-children .treeview-item-children .treeview-item{padding-left:104px}treeview treeview-divider-item{margin:12px 0}treeview treeview-divider-item .treeview-item-wrapper{height:1px;box-shadow:0 1px}treeview treeview-group-item>.treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-group-item>.treeview-item-wrapper .treeview-item .treeview-item-icon{display:none!important}treeview treeview-group-item>.treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}treeview treeview-spacer-item{margin:6px 0}.treeview-overlay{position:absolute;inset:0;z-index:170;opacity:0;background-color:#0009}.treeview-overlay+.treeview-aside-overlay{background-color:transparent}.treeview-aside-overlay{position:absolute;inset:0;z-index:169;opacity:0;background-color:#0000004d}treeview-aside-item .treeview-item-wrapper .treeview-item,treeview-basic-item .treeview-item-wrapper .treeview-item,treeview-collapsable-item .treeview-item-wrapper .treeview-item,treeview-group-item .treeview-item-wrapper .treeview-item{color:currentColor}treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-icon{@apply text-current opacity-60;}treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title,treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title,treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title,treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title{@apply text-current opacity-80;}treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle{@apply text-current opacity-50;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active,treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced{@apply bg-gray-800 bg-opacity-5 dark:bg-white dark:bg-opacity-12;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-icon,treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-icon,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-icon,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-icon,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-icon,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-icon{@apply opacity-100;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-title,treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-title,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-title,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-title,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-title,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-title{@apply opacity-100;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-subtitle,treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-subtitle,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-subtitle,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-subtitle,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-subtitle,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-subtitle{@apply opacity-100;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover{@apply bg-gray-800 bg-opacity-5 dark:bg-white dark:bg-opacity-12;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-icon,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-icon,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-icon{@apply opacity-100;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-title,treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-arrow,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-title,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-arrow,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-title,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-arrow{@apply opacity-100;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-subtitle,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-subtitle,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-subtitle{@apply opacity-100;}treeview-collapsable-item.treeview-item-expanded>.treeview-item-wrapper .treeview-item .treeview-item-icon{@apply opacity-100;}treeview-collapsable-item.treeview-item-expanded>.treeview-item-wrapper .treeview-item .treeview-item-title,treeview-collapsable-item.treeview-item-expanded>.treeview-item-wrapper .treeview-item .treeview-item-arrow{@apply opacity-100;}treeview-collapsable-item.treeview-item-expanded>.treeview-item-wrapper .treeview-item .treeview-item-subtitle{@apply opacity-100;}treeview-group-item>.treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title{@apply opacity-100 text-primary-600 dark:text-primary-400;}:root{--treeview-compact-width: 112px}treeview.treeview-appearance-compact{width:var(--treeview-compact-width);min-width:var(--treeview-compact-width);max-width:var(--treeview-compact-width)}treeview.treeview-appearance-compact.treeview-position-left.treeview-mode-side{margin-left:calc(var(--treeview-compact-width) * -1)}treeview.treeview-appearance-compact.treeview-position-left.treeview-opened{margin-left:0}treeview.treeview-appearance-compact.treeview-position-right.treeview-mode-side{margin-right:calc(var(--treeview-compact-width) * -1)}treeview.treeview-appearance-compact.treeview-position-right.treeview-opened{margin-right:0}treeview.treeview-appearance-compact.treeview-position-right .treeview-aside-wrapper{left:auto;right:var(--treeview-compact-width)}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper{margin:4px 8px 0}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item{flex-direction:column;justify-content:center;padding:12px;border-radius:6px}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-icon{margin-right:0}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper{margin-top:8px}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title{font-size:12px;font-weight:500;text-align:center;line-height:16px}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle{display:none!important}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-badge{position:absolute;top:12px;left:64px}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item>treeview-collapsable-item,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item>treeview-collapsable-item{display:none}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item>treeview-group-item>.treeview-item-wrapper,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item>treeview-group-item>.treeview-item-wrapper{display:none}treeview.treeview-appearance-compact .treeview-aside-wrapper{left:var(--treeview-compact-width)}:root{--treeview-width: 480px;--treeview-dense-width: 80px}treeview.treeview-appearance-dense:not(.treeview-mode-over){width:var(--treeview-dense-width);min-width:var(--treeview-dense-width);max-width:var(--treeview-dense-width)}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-left.treeview-mode-side{margin-left:calc(var(--treeview-dense-width) * -1)}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-left.treeview-opened{margin-left:0}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-right.treeview-mode-side{margin-right:calc(var(--treeview-dense-width) * -1)}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-right.treeview-opened{margin-right:0}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-right .treeview-aside-wrapper{left:auto;right:var(--treeview-dense-width)}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-right.treeview-hover .treeview-aside-wrapper{left:auto;right:var(--treeview-width)}treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-aside-item .treeview-item-wrapper .treeview-item,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-basic-item .treeview-item-wrapper .treeview-item,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-collapsable-item .treeview-item-wrapper .treeview-item,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-group-item .treeview-item-wrapper .treeview-item{width:calc(var(--treeview-dense-width) - 24px);min-width:calc(var(--treeview-dense-width) - 24px);max-width:calc(var(--treeview-dense-width) - 24px)}treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper{transition:opacity .4s cubic-bezier(.25,.8,.25,1)}treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-group-item:first-of-type{margin-top:0}treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item{padding:10px 16px}treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper{white-space:nowrap;opacity:0}treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content treeview-collapsable-item .treeview-item-children{display:none}treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content treeview-group-item>.treeview-item-wrapper .treeview-item:before{content:\"\";position:absolute;top:20px;width:23px;border-top-width:2px}treeview.treeview-appearance-dense .treeview-aside-wrapper{left:var(--treeview-dense-width)}treeview.treeview-appearance-dense.treeview-hover .treeview-wrapper{width:var(--treeview-width)}treeview.treeview-appearance-dense.treeview-hover .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item{width:calc(var(--treeview-width) - 24px);min-width:calc(var(--treeview-width) - 24px);max-width:calc(var(--treeview-width) - 24px)}treeview.treeview-appearance-dense.treeview-hover .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense.treeview-hover .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense.treeview-hover .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper{white-space:nowrap;animation:removeWhiteSpaceNoWrap 1ms linear .35s;animation-fill-mode:forwards}treeview.treeview-appearance-dense.treeview-hover .treeview-aside-wrapper{left:var(--treeview-width)}@keyframes removeWhiteSpaceNoWrap{0%{white-space:nowrap}99%{white-space:nowrap}to{white-space:normal}}:root{--treeview-thin-width: 80px}treeview.treeview-appearance-thin{width:var(--treeview-thin-width);min-width:var(--treeview-thin-width);max-width:var(--treeview-thin-width)}treeview.treeview-appearance-thin.treeview-position-left.treeview-mode-side{margin-left:calc(var(--treeview-thin-width) * -1)}treeview.treeview-appearance-thin.treeview-position-left.treeview-opened{margin-left:0}treeview.treeview-appearance-thin.treeview-position-right.treeview-mode-side{margin-right:calc(var(--treeview-thin-width) * -1)}treeview.treeview-appearance-thin.treeview-position-right.treeview-opened{margin-right:0}treeview.treeview-appearance-thin.treeview-position-right .treeview-aside-wrapper{left:auto;right:var(--treeview-thin-width)}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item{flex-direction:column;justify-content:center;height:64px;min-height:64px;max-height:64px;padding:0 16px}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper{display:flex;align-items:center;justify-content:center}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item{justify-content:center;padding:12px;border-radius:4px}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-icon{margin:0}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-badge-content,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-badge-content,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper{display:none}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-collapsable-item{display:none}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-group-item>.treeview-item-wrapper{display:none}treeview.treeview-appearance-thin .treeview-aside-wrapper{left:var(--treeview-thin-width)}\n"] }]
17323
+ args: [{ selector: 'treeview', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"treeview-wrapper\">\n <div class=\"mx-3 my-4\" *ngIf=\"isSearchBox\">\n <dx-select-box [items]=\"treeListForSearchBox\" [searchEnabled]=\"true\" valueExpr=\"kpiId\" displayExpr=\"name\"\n [placeholder]=\"'Search KPI'\" (onValueChanged)=\"selectedKpiNameFromSearchKpi($event)\">\n </dx-select-box>\n </div>\n\n <!-- Content -->\n <div class=\"treeview-content\" fuseScrollbar #navigationContent>\n\n <!-- Items -->\n <ng-container *ngFor=\"let item of navigation;\">\n\n <!-- Skip the hidden items -->\n <ng-container *ngIf=\"(item.hidden && !item.hidden(item)) || !item.hidden\">\n\n <!-- Basic -->\n <ng-container *ngIf=\"item.tagType == 'child'\">\n <treeview-basic-item [item]=\"item\" [name]=\"name\" [isEditIcon]=\"isEditIcon\"\n (editableKpiBasicData)=\"getBasicEditKpiData($event)\" [internalRoute]=\"routeKey\"\n [treeId]=\"openTreeId\">\n </treeview-basic-item>\n </ng-container>\n\n <!-- Collapsable -->\n <ng-container *ngIf=\"item.tagType == 'parent'\">\n <treeview-collapsable-item [item]=\"item\" [name]=\"name\" [isEditIcon]=\"isEditIcon\"\n (editableKpiData)=\"getEditKpiData($event)\" [autoCollapse]=\"autoCollapse\" [treeId]=\"openTreeId\"\n [internalRoute]=\"routeKey\">\n </treeview-collapsable-item>\n </ng-container>\n\n\n </ng-container>\n\n </ng-container>\n\n </div>\n\n\n\n</div>", styles: [":root{--treeview-width: 480px}treeview{position:sticky;display:flex;flex-direction:column;flex:1 0 auto;top:0;width:var(--treeview-width);min-width:var(--treeview-width);max-width:var(--treeview-width);height:100%;min-height:67vh;max-height:67vh;z-index:200}treeview.treeview-animations-enabled{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:visibility,margin-left,margin-right,transform,width,max-width,min-width}treeview.treeview-animations-enabled .treeview-wrapper{transition-duration:.4s;transition-timing-function:cubic-bezier(.25,.8,.25,1);transition-property:width,max-width,min-width}treeview.treeview-mode-over{position:fixed;top:0;bottom:0}treeview.treeview-position-left.treeview-mode-side{margin-left:calc(var(--treeview-width) * -1)}treeview.treeview-position-left.treeview-mode-side.treeview-opened{margin-left:0}treeview.treeview-position-left.treeview-mode-over{left:0;transform:translate3d(-100%,0,0)}treeview.treeview-position-left.treeview-mode-over.treeview-opened{transform:translateZ(0)}treeview.treeview-position-left .treeview-wrapper{left:0}treeview.treeview-position-right.treeview-mode-side{margin-right:calc(var(--treeview-width) * -1)}treeview.treeview-position-right.treeview-mode-side.treeview-opened{margin-right:0}treeview.treeview-position-right.treeview-mode-over{right:0;transform:translate3d(100%,0,0)}treeview.treeview-position-right.treeview-mode-over.treeview-opened{transform:translateZ(0)}treeview.treeview-position-right .treeview-wrapper{right:0}treeview.treeview-inner{position:relative;width:auto;min-width:0;max-width:none;height:auto;min-height:0;max-height:none;box-shadow:none}treeview.treeview-inner .treeview-wrapper{position:relative;overflow:visible;height:auto}treeview.treeview-inner .treeview-wrapper .treeview-content{overflow:visible!important}treeview .treeview-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;width:36rem;overflow:hidden;z-index:10;background:inherit}treeview .treeview-wrapper .treeview-content{flex:1 1 auto;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}treeview .treeview-wrapper .treeview-content>treeview-divider-item{margin:24px 0}treeview .treeview-wrapper .treeview-content>treeview-group-item{margin-top:24px}treeview .treeview-aside-wrapper{position:absolute;display:flex;flex:1 1 auto;flex-direction:column;top:0;bottom:0;left:var(--treeview-width);width:var(--treeview-width);height:100%;z-index:5;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;transition-duration:.4s;transition-property:left,right;transition-timing-function:cubic-bezier(.25,.8,.25,1);background:inherit}treeview .treeview-aside-wrapper>treeview-aside-item{padding:24px 0}treeview .treeview-aside-wrapper>treeview-aside-item>.treeview-item-wrapper{display:none!important}treeview.treeview-position-right .treeview-aside-wrapper{left:auto;right:var(--treeview-width)}treeview treeview-aside-item,treeview treeview-basic-item,treeview treeview-collapsable-item,treeview treeview-divider-item,treeview treeview-group-item,treeview treeview-spacer-item{display:flex;flex-direction:column;flex:1 0 auto;-webkit-user-select:none;user-select:none}treeview treeview-aside-item .treeview-item-wrapper .treeview-item,treeview treeview-basic-item .treeview-item-wrapper .treeview-item,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item,treeview treeview-divider-item .treeview-item-wrapper .treeview-item,treeview treeview-group-item .treeview-item-wrapper .treeview-item,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item{position:relative;display:flex;align-items:center;justify-content:flex-start;padding:10px 16px;font-size:13px;font-weight:500;line-height:20px;text-decoration:none;border-radius:6px}treeview treeview-aside-item .treeview-item-wrapper .treeview-item.treeview-item-disabled,treeview treeview-basic-item .treeview-item-wrapper .treeview-item.treeview-item-disabled,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item.treeview-item-disabled,treeview treeview-divider-item .treeview-item-wrapper .treeview-item.treeview-item-disabled,treeview treeview-group-item .treeview-item-wrapper .treeview-item.treeview-item-disabled,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item.treeview-item-disabled{cursor:default;opacity:.4}treeview treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview treeview-divider-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item .treeview-item-icon{margin-right:16px}treeview treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview treeview-divider-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle{font-size:11px;line-height:1.5}treeview treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-divider-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item .treeview-item-badge{margin-left:auto}treeview treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content,treeview treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content,treeview treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content,treeview treeview-divider-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content,treeview treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content,treeview treeview-spacer-item .treeview-item-wrapper .treeview-item .treeview-item-badge .treeview-item-badge-content{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;white-space:nowrap;height:20px}treeview treeview-aside-item>.treeview-item-wrapper,treeview treeview-basic-item>.treeview-item-wrapper,treeview treeview-collapsable-item>.treeview-item-wrapper,treeview treeview-group-item>.treeview-item-wrapper{margin:0 12px}treeview treeview-aside-item,treeview treeview-basic-item,treeview treeview-collapsable-item{margin-bottom:4px}treeview treeview-aside-item .treeview-item,treeview treeview-basic-item .treeview-item,treeview treeview-collapsable-item .treeview-item{cursor:pointer}treeview treeview-collapsable-item>.treeview-item-wrapper .treeview-item .treeview-item-badge+.treeview-item-arrow{margin-left:8px}treeview treeview-collapsable-item>.treeview-item-wrapper .treeview-item .treeview-item-arrow{height:20px;line-height:20px;margin-left:auto;transition:transform .3s cubic-bezier(.25,.8,.25,1),color 375ms cubic-bezier(.25,.8,.25,1)}treeview treeview-collapsable-item.treeview-item-expanded>.treeview-item-wrapper .treeview-item .treeview-item-arrow{transform:rotate(90deg)}treeview treeview-collapsable-item>.treeview-item-children>*:first-child{margin-top:6px}treeview treeview-collapsable-item>.treeview-item-children>*:last-child{padding-bottom:6px}treeview treeview-collapsable-item>.treeview-item-children>*:last-child>.treeview-item-children>*:last-child{padding-bottom:0}treeview treeview-collapsable-item>.treeview-item-children .treeview-item{padding:10px 16px}treeview treeview-collapsable-item .treeview-item-children{overflow:hidden}treeview treeview-collapsable-item .treeview-item-children .treeview-item{padding-left:56px}treeview treeview-collapsable-item .treeview-item-children .treeview-item-children .treeview-item{padding-left:72px}treeview treeview-collapsable-item .treeview-item-children .treeview-item-children .treeview-item-children .treeview-item{padding-left:88px}treeview treeview-collapsable-item .treeview-item-children .treeview-item-children .treeview-item-children .treeview-item-children .treeview-item{padding-left:104px}treeview treeview-divider-item{margin:12px 0}treeview treeview-divider-item .treeview-item-wrapper{height:1px;box-shadow:0 1px}treeview treeview-group-item>.treeview-item-wrapper .treeview-item .treeview-item-badge,treeview treeview-group-item>.treeview-item-wrapper .treeview-item .treeview-item-icon{display:none!important}treeview treeview-group-item>.treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}treeview treeview-spacer-item{margin:6px 0}.treeview-overlay{position:absolute;inset:0;z-index:170;opacity:0;background-color:#0009}.treeview-overlay+.treeview-aside-overlay{background-color:transparent}.treeview-aside-overlay{position:absolute;inset:0;z-index:169;opacity:0;background-color:#0000004d}treeview-aside-item .treeview-item-wrapper .treeview-item,treeview-basic-item .treeview-item-wrapper .treeview-item,treeview-collapsable-item .treeview-item-wrapper .treeview-item,treeview-group-item .treeview-item-wrapper .treeview-item{color:currentColor}treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-icon{@apply text-current opacity-60;}treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title,treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title,treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title,treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title{@apply text-current opacity-80;}treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle{@apply text-current opacity-50;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active,treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced{@apply bg-gray-800 bg-opacity-5 dark:bg-white dark:bg-opacity-12;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-icon,treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-icon,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-icon,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-icon,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-icon,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-icon{@apply opacity-100;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-title,treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-title,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-title,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-title,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-title,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-title{@apply opacity-100;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-subtitle,treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-subtitle,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-subtitle,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-subtitle,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active .treeview-item-subtitle,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-disabled).treeview-item-active-forced .treeview-item-subtitle{@apply opacity-100;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover{@apply bg-gray-800 bg-opacity-5 dark:bg-white dark:bg-opacity-12;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-icon,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-icon,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-icon{@apply opacity-100;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-title,treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-arrow,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-title,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-arrow,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-title,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-arrow{@apply opacity-100;}treeview-aside-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-subtitle,treeview-basic-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-subtitle,treeview-collapsable-item>.treeview-item-wrapper .treeview-item:not(.treeview-item-active-forced):not(.treeview-item-active):not(.treeview-item-disabled):hover .treeview-item-subtitle{@apply opacity-100;}treeview-collapsable-item.treeview-item-expanded>.treeview-item-wrapper .treeview-item .treeview-item-icon{@apply opacity-100;}treeview-collapsable-item.treeview-item-expanded>.treeview-item-wrapper .treeview-item .treeview-item-title,treeview-collapsable-item.treeview-item-expanded>.treeview-item-wrapper .treeview-item .treeview-item-arrow{@apply opacity-100;}treeview-collapsable-item.treeview-item-expanded>.treeview-item-wrapper .treeview-item .treeview-item-subtitle{@apply opacity-100;}treeview-group-item>.treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title{@apply opacity-100 text-primary-600 dark:text-primary-400;}:root{--treeview-compact-width: 112px}treeview.treeview-appearance-compact{width:var(--treeview-compact-width);min-width:var(--treeview-compact-width);max-width:var(--treeview-compact-width)}treeview.treeview-appearance-compact.treeview-position-left.treeview-mode-side{margin-left:calc(var(--treeview-compact-width) * -1)}treeview.treeview-appearance-compact.treeview-position-left.treeview-opened{margin-left:0}treeview.treeview-appearance-compact.treeview-position-right.treeview-mode-side{margin-right:calc(var(--treeview-compact-width) * -1)}treeview.treeview-appearance-compact.treeview-position-right.treeview-opened{margin-right:0}treeview.treeview-appearance-compact.treeview-position-right .treeview-aside-wrapper{left:auto;right:var(--treeview-compact-width)}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper{margin:4px 8px 0}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item{flex-direction:column;justify-content:center;padding:12px;border-radius:6px}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-icon{margin-right:0}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper{margin-top:8px}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-title{font-size:12px;font-weight:500;text-align:center;line-height:16px}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper .treeview-item-subtitle{display:none!important}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-badge{position:absolute;top:12px;left:64px}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item>treeview-collapsable-item,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item>treeview-collapsable-item{display:none}treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-aside-item>treeview-group-item>.treeview-item-wrapper,treeview.treeview-appearance-compact .treeview-wrapper .treeview-content>treeview-basic-item>treeview-group-item>.treeview-item-wrapper{display:none}treeview.treeview-appearance-compact .treeview-aside-wrapper{left:var(--treeview-compact-width)}:root{--treeview-width: 480px;--treeview-dense-width: 80px}treeview.treeview-appearance-dense:not(.treeview-mode-over){width:var(--treeview-dense-width);min-width:var(--treeview-dense-width);max-width:var(--treeview-dense-width)}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-left.treeview-mode-side{margin-left:calc(var(--treeview-dense-width) * -1)}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-left.treeview-opened{margin-left:0}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-right.treeview-mode-side{margin-right:calc(var(--treeview-dense-width) * -1)}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-right.treeview-opened{margin-right:0}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-right .treeview-aside-wrapper{left:auto;right:var(--treeview-dense-width)}treeview.treeview-appearance-dense:not(.treeview-mode-over).treeview-position-right.treeview-hover .treeview-aside-wrapper{left:auto;right:var(--treeview-width)}treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-aside-item .treeview-item-wrapper .treeview-item,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-basic-item .treeview-item-wrapper .treeview-item,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-collapsable-item .treeview-item-wrapper .treeview-item,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-group-item .treeview-item-wrapper .treeview-item{width:calc(var(--treeview-dense-width) - 24px);min-width:calc(var(--treeview-dense-width) - 24px);max-width:calc(var(--treeview-dense-width) - 24px)}treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-collapsable-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-group-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper{transition:opacity .4s cubic-bezier(.25,.8,.25,1)}treeview.treeview-appearance-dense .treeview-wrapper .treeview-content treeview-group-item:first-of-type{margin-top:0}treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item{padding:10px 16px}treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper{white-space:nowrap;opacity:0}treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content treeview-collapsable-item .treeview-item-children{display:none}treeview.treeview-appearance-dense:not(.treeview-hover):not(.treeview-mode-over) .treeview-wrapper .treeview-content treeview-group-item>.treeview-item-wrapper .treeview-item:before{content:\"\";position:absolute;top:20px;width:23px;border-top-width:2px}treeview.treeview-appearance-dense .treeview-aside-wrapper{left:var(--treeview-dense-width)}treeview.treeview-appearance-dense.treeview-hover .treeview-wrapper{width:var(--treeview-width)}treeview.treeview-appearance-dense.treeview-hover .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item{width:calc(var(--treeview-width) - 24px);min-width:calc(var(--treeview-width) - 24px);max-width:calc(var(--treeview-width) - 24px)}treeview.treeview-appearance-dense.treeview-hover .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-dense.treeview-hover .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-badge,treeview.treeview-appearance-dense.treeview-hover .treeview-wrapper .treeview-content .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper{white-space:nowrap;animation:removeWhiteSpaceNoWrap 1ms linear .35s;animation-fill-mode:forwards}treeview.treeview-appearance-dense.treeview-hover .treeview-aside-wrapper{left:var(--treeview-width)}@keyframes removeWhiteSpaceNoWrap{0%{white-space:nowrap}99%{white-space:nowrap}to{white-space:normal}}:root{--treeview-thin-width: 80px}treeview.treeview-appearance-thin{width:var(--treeview-thin-width);min-width:var(--treeview-thin-width);max-width:var(--treeview-thin-width)}treeview.treeview-appearance-thin.treeview-position-left.treeview-mode-side{margin-left:calc(var(--treeview-thin-width) * -1)}treeview.treeview-appearance-thin.treeview-position-left.treeview-opened{margin-left:0}treeview.treeview-appearance-thin.treeview-position-right.treeview-mode-side{margin-right:calc(var(--treeview-thin-width) * -1)}treeview.treeview-appearance-thin.treeview-position-right.treeview-opened{margin-right:0}treeview.treeview-appearance-thin.treeview-position-right .treeview-aside-wrapper{left:auto;right:var(--treeview-thin-width)}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item{flex-direction:column;justify-content:center;height:64px;min-height:64px;max-height:64px;padding:0 16px}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper{display:flex;align-items:center;justify-content:center}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item{justify-content:center;padding:12px;border-radius:4px}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-icon,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-icon{margin:0}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-badge-content,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-aside-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-arrow,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-badge-content,treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-basic-item .treeview-item-wrapper .treeview-item .treeview-item-title-wrapper{display:none}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-collapsable-item{display:none}treeview.treeview-appearance-thin .treeview-wrapper .treeview-content>treeview-group-item>.treeview-item-wrapper{display:none}treeview.treeview-appearance-thin .treeview-aside-wrapper{left:var(--treeview-thin-width)}\n"] }]
17330
17324
  }], ctorParameters: function () { return [{ type: i2.Router }, { type: i2$1.ScrollStrategyOptions }, { type: CreateKpIService }, { type: i0.ChangeDetectorRef }, { type: i4$2.ViewportScroller }, { type: TreeviewSharedService }]; }, propDecorators: { autoCollapse: [{
17331
17325
  type: Input
17332
17326
  }], inner: [{
@@ -17376,6 +17370,9 @@ class CreateKpiTreeComponent {
17376
17370
  this.kpi_external = false;
17377
17371
  this.isComponentUpdata = false;
17378
17372
  this.userOptionContainer = [];
17373
+ this.selected_aliases = [];
17374
+ this.isKpiTreePrepared = false;
17375
+ this.kpiConfigDataSource = [];
17379
17376
  }
17380
17377
  ngOnInit() {
17381
17378
  this.getAllKpiData();
@@ -17391,10 +17388,12 @@ class CreateKpiTreeComponent {
17391
17388
  });
17392
17389
  }
17393
17390
  getAllKpiData() {
17394
- this.loadingModal = false;
17395
17391
  this.keiParentDataSource = [];
17396
- this.service.getlistKpiBrowser().subscribe((data) => {
17397
- this.kpiData = data;
17392
+ this.service.listKpiEntryConfigs().subscribe((data) => {
17393
+ const userName = "admin";
17394
+ this.kpiConfigDataSource = data;
17395
+ this.kpiData = this.buildMenuTree(userName, data);
17396
+ this.loadingModal = false;
17398
17397
  this.prepareParentDataSource(data);
17399
17398
  }, err => {
17400
17399
  this.loadingModal = false;
@@ -17403,104 +17402,97 @@ class CreateKpiTreeComponent {
17403
17402
  }
17404
17403
  prepareParentDataSource(data) {
17405
17404
  data.forEach((result) => {
17406
- if (result.tag_type == 'parent') {
17407
- let node = {
17408
- "name": result.name,
17409
- "tid": result.tid
17410
- };
17411
- this.keiParentDataSource.push(node);
17412
- this.prepareParentDataSource(result.nodes);
17405
+ if (result.tagType == 'parent') {
17406
+ this.keiParentDataSource.push(result);
17413
17407
  }
17414
17408
  });
17415
17409
  }
17416
- makeNewKpi() {
17417
- if (this.selected_kpi_tid !== undefined && this.selected_kpi_tid.length > 0) {
17418
- this.getHeistId(this.kpiData, this.selected_kpi_tid);
17419
- this.createNewKpiWithTid();
17420
- }
17421
- else {
17422
- this.heistValue = (this.kpiData.length != 0) ? this.getHighestTid(this.kpiData) : 0;
17423
- let value = parseInt(this.heistValue) + 1;
17424
- let obj = {
17425
- "name": this.select_kpi_name,
17426
- "tid": value.toString(),
17427
- "isBookmarked": false,
17428
- "isAccessible": this.kpi_external,
17429
- "lastAccessTime": "",
17430
- "tag_type": this.select_tag_type,
17431
- "id": this.selected_id,
17432
- "pageId": this.selected_page_id,
17433
- "desc": this.selected_desc,
17434
- "isVisible": this.kpi_visibility,
17435
- "nodes": [],
17436
- "config": {}
17437
- };
17438
- this.kpiData.push(obj);
17439
- if (this.select_tag_type == 'parent') {
17440
- let obj = {
17441
- "name": this.select_kpi_name,
17442
- "tid": value.toString(),
17443
- };
17444
- this.keiParentDataSource.push(obj);
17445
- }
17446
- if (this.select_tag_type == 'child') {
17447
- let obj = {
17448
- "name": this.select_kpi_name,
17449
- "id": this.selected_id,
17450
- "pageId": this.selected_page_id,
17451
- "searchFilter": false,
17452
- "isSrvTypeOperator": false,
17453
- "operationLevels": [],
17454
- "fixOperationLevles": [],
17455
- "api_config": []
17456
- };
17457
- this.service.configureKpiBrowserConfig(obj).subscribe(data => {
17458
- console.log("kpi browser config created");
17459
- });
17460
- }
17461
- this.submitNewKpi();
17462
- }
17410
+ makeNewKpiWithUserEntity() {
17411
+ const pageData = (this.selected_page_id) ? this.templateDataSource.find((item) => item.pageId === this.selected_page_id) : null;
17412
+ let kpiObj = {
17413
+ "kpiId": this.selected_id,
17414
+ "kpiName": this.select_kpi_name,
17415
+ "aliases": this.selected_aliases,
17416
+ "pageId": this.selected_page_id,
17417
+ "description": this.selected_desc,
17418
+ "kpiInfo": "",
17419
+ "tagType": this.select_tag_type,
17420
+ "active": true,
17421
+ "visibility": this.kpi_visibility,
17422
+ "externalKpi": this.kpi_external,
17423
+ "target": "",
17424
+ "icon": "",
17425
+ "url": pageData ? pageData.pageUrl : "",
17426
+ "kpiType": this.select_tag_type == "parent" ? "collapsable" : "basic",
17427
+ "parentTid": this.selected_kpi_tid,
17428
+ "childTid": this.selected_kpi_child_tid,
17429
+ "permissions": this.userOptionContainer,
17430
+ };
17431
+ this.service.createKpiEntryConfig(kpiObj).subscribe(data => {
17432
+ this.toastr.success('KPI Created Successfully');
17433
+ this.getAllKpiData();
17434
+ this.getReseteKpi();
17435
+ }, err => {
17436
+ this.toastr.error('Unexpected Server Exception. Please contact System Admin.', 'KPI Config');
17437
+ });
17438
+ console.log("KPI with User Entity Obj:", kpiObj);
17463
17439
  }
17464
- createNewKpiWithTid() {
17465
- let auto_tid = this.autoIncrement(this.selected_kpi_tid, this.heistValue);
17466
- let obj = {
17467
- "name": this.select_kpi_name,
17468
- "tid": auto_tid,
17469
- "isBookmarked": false,
17470
- "isAccessible": this.kpi_external,
17471
- "lastAccessTime": "",
17472
- "tag_type": this.select_tag_type,
17473
- "id": this.selected_id,
17440
+ getEditableKpi(kpi) {
17441
+ const data = this.kpiConfigDataSource.find((item) => item.kpiId === kpi.id);
17442
+ const tidKey = data.tagType === 'child' && data.childTid.length > 3 ? 'childTid' : 'parentTid';
17443
+ const parentName = this.keiParentDataSource.find((item) => item[tidKey] == data["parentTid"]);
17444
+ this.parante_kpi_name = parentName ? parentName['kpiId'] : null;
17445
+ this.selected_id = data["kpiId"];
17446
+ this.select_kpi_name = data["kpiName"];
17447
+ this.selected_aliases = data["aliases"];
17448
+ this.selected_page_id = data["pageId"];
17449
+ this.selected_desc = data["description"];
17450
+ this.select_tag_type = data["tagType"];
17451
+ this.kpi_visibility = data["visibility"];
17452
+ this.kpi_external = data["externalKpi"];
17453
+ this.selected_kpi_tid = data["parentTid"];
17454
+ this.selected_kpi_child_tid = data["childTid"];
17455
+ this.userOptionContainer = (data["permissions"] && data["permissions"].length > 0) ? data["permissions"] : [];
17456
+ this.isEditKpiAdded = true;
17457
+ }
17458
+ getUpdateKpi() {
17459
+ const pageData = (this.selected_page_id) ? this.templateDataSource.find((item) => item.pageId === this.selected_page_id) : null;
17460
+ let kpiObj = {
17461
+ "kpiId": this.selected_id,
17462
+ "kpiName": this.select_kpi_name,
17463
+ "aliases": this.selected_aliases,
17474
17464
  "pageId": this.selected_page_id,
17475
- "desc": this.selected_desc,
17476
- "isVisible": this.kpi_visibility,
17477
- "nodes": [],
17478
- "config": {}
17465
+ "description": this.selected_desc,
17466
+ "kpiInfo": "",
17467
+ "tagType": this.select_tag_type,
17468
+ "active": true,
17469
+ "visibility": this.kpi_visibility,
17470
+ "externalKpi": this.kpi_external,
17471
+ "target": "",
17472
+ "icon": "",
17473
+ "url": pageData ? pageData.pageUrl : "",
17474
+ "kpiType": this.select_tag_type == "parent" ? "collapsable" : "basic",
17475
+ "parentTid": this.selected_kpi_tid,
17476
+ "childTid": this.selected_kpi_child_tid,
17477
+ "permissions": this.userOptionContainer,
17479
17478
  };
17480
- if (this.select_tag_type == 'parent') {
17481
- let obj = {
17482
- "name": this.select_kpi_name,
17483
- "tid": auto_tid
17484
- };
17485
- this.keiParentDataSource.push(obj);
17486
- }
17487
- if (this.select_tag_type == 'child') {
17488
- let obj = {
17489
- "name": this.select_kpi_name,
17490
- "id": this.selected_id,
17491
- "pageId": this.selected_page_id,
17492
- "searchFilter": false,
17493
- "isSrvTypeOperator": false,
17494
- "operationLevels": [],
17495
- "fixOperationLevles": [],
17496
- "api_config": []
17497
- };
17498
- this.service.configureKpiBrowserConfig(obj).subscribe(data => {
17499
- console.log("kpi browser config created");
17500
- });
17479
+ this.service.updateKpiEntryConfig(kpiObj).subscribe(data => {
17480
+ this.toastr.success('KPI Updated Successfully');
17481
+ this.getAllKpiData();
17482
+ this.getReseteKpi();
17483
+ this.isEditKpiAdded = false;
17484
+ }, err => {
17485
+ this.toastr.error('Unexpected Server Exception. Please contact System Admin.', 'KPI Config');
17486
+ });
17487
+ console.log("KPI with User Entity Obj:", kpiObj);
17488
+ }
17489
+ onCustomDimentionCreating(args) {
17490
+ const newValue = args.text;
17491
+ args.customItem = newValue;
17492
+ const isItemInDataSource = this.selected_aliases.some((item) => item === newValue);
17493
+ if (!isItemInDataSource) {
17494
+ this.selected_aliases.unshift(newValue);
17501
17495
  }
17502
- this.setKpibyTid(this.kpiData, this.selected_kpi_tid, obj);
17503
- this.submitNewKpi();
17504
17496
  }
17505
17497
  getReseteKpi() {
17506
17498
  this.select_kpi_name = '';
@@ -17518,74 +17510,23 @@ class CreateKpiTreeComponent {
17518
17510
  this.editable_desc = '';
17519
17511
  this.editable_info = '';
17520
17512
  this.parante_kpi_name = '';
17513
+ this.selected_kpi_child_tid = '';
17514
+ this.selected_aliases = [];
17521
17515
  this.kpi_external = false;
17522
17516
  this.kpi_visibility = false;
17523
17517
  this.isComponentUpdata = false;
17524
- }
17525
- getDeletKpi(tid) {
17526
- console.log(this.selected_p_kpi);
17518
+ this.isEditKpiAdded = false;
17527
17519
  }
17528
17520
  addTagtypeValue(e) {
17529
17521
  this.select_tag_type = e.value;
17530
17522
  }
17531
17523
  getKpiItemValue(e) {
17532
- const kpi_data = this.keiParentDataSource.find((item) => item.tid === e.value);
17533
- this.selected_kpi_tid = kpi_data.tid;
17534
- }
17535
- autoIncrement(string1, string2) {
17536
- if (string2 === null) {
17537
- const numberPart = string1 + '.1';
17538
- return numberPart;
17539
- }
17540
- else {
17541
- const parts = string2.split('.');
17542
- let lastPart = parseInt(parts[parts.length - 1], 10);
17543
- let new_number = lastPart++;
17544
- parts[parts.length - 1] = lastPart.toString();
17545
- return parts.join(".");
17524
+ if (e.event) {
17525
+ const kpi_data = this.keiParentDataSource.find((item) => item.kpiId === e.value);
17526
+ const tidKey = this.select_tag_type === 'child' && this.isEditKpiAdded ? 'childTid' : 'parentTid';
17527
+ this.selected_kpi_tid = kpi_data[tidKey];
17546
17528
  }
17547
17529
  }
17548
- setKpibyTid(data, tid, newKpiObj) {
17549
- data.forEach(result => {
17550
- if (result.nodes !== undefined) {
17551
- if (result.tid == tid) {
17552
- result.nodes.push(newKpiObj);
17553
- }
17554
- this.setKpibyTid(result.nodes, tid, newKpiObj);
17555
- }
17556
- });
17557
- }
17558
- getHeistId(data, tid) {
17559
- data.forEach((result) => {
17560
- if (result.tid === tid) {
17561
- if (result.nodes.length > 0) {
17562
- this.heistValue = this.getHighestTid(result.nodes);
17563
- }
17564
- else {
17565
- this.heistValue = null;
17566
- }
17567
- }
17568
- else if (result.nodes !== undefined && result.nodes.length > 0) {
17569
- this.getHeistId(result.nodes, tid);
17570
- }
17571
- });
17572
- }
17573
- getHighestTid(data) {
17574
- const highestTid = data.reduce((maxTid, currentItem) => {
17575
- const currentTidParts = currentItem.tid.split('.').map(part => parseInt(part, 10));
17576
- const maxTidParts = maxTid.split('.').map(part => parseInt(part, 10));
17577
- for (let i = 0; i < currentTidParts.length; i++) {
17578
- if (currentTidParts[i] > maxTidParts[i]) {
17579
- return currentItem.tid;
17580
- }
17581
- else if (currentTidParts[i] < maxTidParts[i]) {
17582
- return maxTid;
17583
- }
17584
- }
17585
- return maxTid;
17586
- }, data[0].tid);
17587
- return highestTid;
17588
- }
17589
17530
  addNewKpi() {
17590
17531
  this.isNewKpiAdded = true;
17591
17532
  this.isEditKpiAdded = false;
@@ -17593,22 +17534,6 @@ class CreateKpiTreeComponent {
17593
17534
  cancelUpdate() {
17594
17535
  this.isEditKpiAdded = false;
17595
17536
  }
17596
- getEditableKpi(data) {
17597
- this.isComponentUpdata = false;
17598
- this.isEditKpiAdded = true;
17599
- this.isNewKpiAdded = false;
17600
- this.isFromEditable = true;
17601
- this.editable_desc = data.desc;
17602
- this.editable_info = (data.kpiInfo) ? data.kpiInfo : "";
17603
- this.editable_kpi_name = data.name;
17604
- this.editable_tag_type = data.tag_type;
17605
- this.editable_kpi_tid = data.tid;
17606
- this.editable_id = data.id;
17607
- this.editable_page_id = data.pageId;
17608
- this.kpi_visibility = data.isVisible;
17609
- this.kpi_external = data.isAccessible;
17610
- this.parante_kpi_name = this.getKpiParrentName(data.tid);
17611
- }
17612
17537
  getKpiParrentName(input) {
17613
17538
  const lastIndex = input.lastIndexOf('.');
17614
17539
  if (lastIndex === -1) {
@@ -17616,55 +17541,15 @@ class CreateKpiTreeComponent {
17616
17541
  }
17617
17542
  return input.substring(0, lastIndex);
17618
17543
  }
17619
- getUpdateKpi() {
17620
- if (!this.isComponentUpdata) {
17621
- this.getUpdateKpiName(this.kpiData, this.editable_kpi_tid);
17622
- }
17623
- setTimeout(() => {
17624
- this.submitNewKpi();
17625
- this.toastr.success('KPI Updated Successfully');
17626
- this.reseteUpdateKpiForm();
17627
- this.isEditKpiAdded = false;
17628
- }, 500);
17629
- }
17630
- getDeleteKpi() {
17631
- this.getDeleteKpiName(this.kpiData, this.editable_kpi_tid);
17632
- setTimeout(() => {
17633
- this.submitNewKpi();
17544
+ getDeletKpi() {
17545
+ this.service.deleteKpiEntryConfig(this.selected_id).subscribe(data => {
17634
17546
  this.toastr.success('KPI Deleted Successfully');
17635
- this.reseteUpdateKpiForm();
17636
- this.isEditKpiAdded = false;
17637
- }, 500);
17638
- }
17639
- getUpdateKpiName(data, tid) {
17640
- data.forEach((result) => {
17641
- if (result.tid === tid) {
17642
- result.desc = this.editable_desc;
17643
- result.kpiInfo = this.editable_info;
17644
- result.name = this.editable_kpi_name;
17645
- result.id = this.editable_id;
17646
- result.pageId = this.editable_page_id;
17647
- result.tag_type = this.editable_tag_type;
17648
- result.isVisible = this.kpi_visibility;
17649
- result.isAccessible = this.kpi_external;
17650
- result.tid = this.editable_kpi_tid;
17651
- }
17652
- else if (result.nodes !== undefined && result.nodes.length > 0) {
17653
- this.getUpdateKpiName(result.nodes, tid);
17654
- }
17547
+ this.getAllKpiData();
17548
+ this.getReseteKpi();
17549
+ }, err => {
17550
+ this.toastr.error('Unexpected Server Exception. Please contact System Admin.', 'KPI Config');
17655
17551
  });
17656
17552
  }
17657
- getDeleteKpiName(data, tid) {
17658
- for (let i = data.length - 1; i >= 0; i--) {
17659
- const result = data[i];
17660
- if (result.tid === tid) {
17661
- data.splice(i, 1);
17662
- }
17663
- else if (result.nodes !== undefined && result.nodes.length > 0) {
17664
- this.getDeleteKpiName(result.nodes, tid);
17665
- }
17666
- }
17667
- }
17668
17553
  reseteUpdateKpiForm() {
17669
17554
  this.editable_desc = undefined;
17670
17555
  this.editable_info = undefined;
@@ -17685,73 +17570,57 @@ class CreateKpiTreeComponent {
17685
17570
  this.getReseteKpi();
17686
17571
  });
17687
17572
  }
17688
- getNewParrentKpiItemValue(e) {
17689
- this.isComponentUpdata = true;
17690
- const kpi_data = this.keiParentDataSource.find((item) => item.tid === e.value);
17691
- this.getHeistId(this.kpiData, kpi_data.tid);
17692
- let auto_tid = this.autoIncrement(kpi_data.tid, this.heistValue);
17693
- let obj = {
17694
- "name": this.editable_kpi_name,
17695
- "tid": auto_tid,
17696
- "isBookmarked": false,
17697
- "isAccessible": this.kpi_external,
17698
- "lastAccessTime": "",
17699
- "tag_type": this.editable_tag_type,
17700
- "id": this.editable_id,
17701
- "pageId": this.editable_page_id,
17702
- "desc": this.editable_desc,
17703
- "kpiInfo": this.editable_info,
17704
- "isVisible": this.kpi_visibility,
17705
- "nodes": [],
17706
- "config": {}
17707
- };
17708
- this.getDeleteKpiName(this.kpiData, this.editable_kpi_tid);
17709
- this.setKpibyTid(this.kpiData, kpi_data.tid, obj);
17710
- this.editable_kpi_tid = kpi_data.tid;
17711
- }
17712
- makeNewKpiWithUserEntity() {
17713
- this.userOptionContainer.forEach(element => {
17714
- let att_value = element.attributeValues.split(",");
17715
- element.attributeValues = att_value;
17573
+ buildMenuTree(userName, kpiData) {
17574
+ let filteredMenus = kpiData;
17575
+ const menuMap = new Map();
17576
+ const menuTree = [];
17577
+ filteredMenus.forEach(menu => {
17578
+ menuMap.set(menu.childTid || menu.parentTid, Object.assign(Object.assign({ id: menu.kpiId, title: menu.kpiName, icon: menu.icon, type: menu.kpiType, tagType: menu.tagType, visibility: menu.visibility }, (menu.link && { link: menu.link.replace(/^\/+/, '') })), { children: [] }));
17716
17579
  });
17717
- if (this.selected_kpi_tid !== undefined && this.selected_kpi_tid.length > 0) {
17718
- this.getHeistId(this.kpiData, this.selected_kpi_tid);
17719
- }
17720
- else {
17721
- this.heistValue = (this.kpiData.length != 0) ? this.getHighestTid(this.kpiData) : 0;
17722
- let value = parseInt(this.heistValue) + 1;
17723
- }
17724
- let kpiObj = {
17725
- "kpiId": this.selected_id,
17726
- "pageId": this.selected_page_id,
17727
- "title": this.select_kpi_name,
17728
- "description": this.selected_desc,
17729
- "kpiInfo": this.selected_info,
17730
- "tagType": this.select_tag_type,
17731
- "active": true,
17732
- "visibility": this.kpi_visibility,
17733
- "externalKpi": this.kpi_external,
17734
- "target": "",
17735
- "icon": "",
17736
- "url": "",
17737
- "kpiType": "",
17738
- "parentTid": this.selected_kpi_tid,
17739
- "childTid": "",
17740
- "measures": this.userOptionContainer,
17741
- };
17742
- console.log("KPI with User Entity Obj:", kpiObj);
17743
- }
17744
- routeToKpiConfig() {
17745
- this.router.navigate(['apps/controlPanel/kpiController/kpiConfig']);
17580
+ filteredMenus.forEach(kpi => {
17581
+ if (kpi.parentTid && kpi.childTid) {
17582
+ const parent = menuMap.get(kpi.parentTid);
17583
+ if (parent) {
17584
+ parent.children.push(menuMap.get(kpi.childTid));
17585
+ }
17586
+ }
17587
+ else {
17588
+ menuTree.push(menuMap.get(kpi.parentTid));
17589
+ }
17590
+ });
17591
+ return menuTree;
17746
17592
  }
17747
17593
  }
17748
17594
  CreateKpiTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CreateKpiTreeComponent, deps: [{ token: CommonService }, { token: i8.FormBuilder }, { token: CreateKpIService }, { token: i4$1.ToastrService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component });
17749
- CreateKpiTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CreateKpiTreeComponent, selector: "app-create-kpi", ngImport: i0, template: "<app-loading *ngIf=\"loadingModal\"></app-loading>\n<div class=\"p-4 flex flex-row w-full\">\n <div class=\"mx-2 bg-white dark:bg-transparent border-r\">\n\n <treeview class=\"dark bg-gray-900 dark:bg-transparent\" [name]=\"'mainNavigation'\" [routeKey]=\"'raKpi'\"\n [navigation]=\"kpiData\" [isSearchBox]=\"false\" [isEditIcon]=\"true\" (editableKpiData)=\"getEditableKpi($event)\">\n </treeview>\n </div>\n <div class=\"mx-2 w-full\">\n <div class=\"flex flex-row item-center justify-center my-8\">\n <button class=\"{{commonService.btn_warning_md}}\" (click)=\"addNewKpi()\">Add New KPI</button>\n <button class=\"{{commonService.btn_primary_md}}\" (click)=\"routeToKpiConfig()\"\n routerLinkActive=\"router-link-active\">Configure KPI</button>\n </div>\n <ng-container *ngIf=\"isNewKpiAdded\">\n <div class=\"px-2 w-full\">\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">Name</p>\n <dx-text-box [(ngModel)]=\"select_kpi_name\"></dx-text-box>\n </div>\n </div>\n\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\"> Tag Type</p>\n <dx-select-box [dataSource]=\"tagType\" [(ngModel)]=\"select_tag_type\"\n (onValueChanged)=\"addTagtypeValue($event)\"></dx-select-box>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">ID</p>\n <dx-text-box [(ngModel)]=\"selected_id\"></dx-text-box>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">Page ID</p>\n <!-- <dx-text-box [(ngModel)]=\"selected_page_id\"></dx-text-box> -->\n <dx-select-box [items]=\"templateDataSource\" valueExpr=\"pageId\" displayExpr=\"pageName\" [searchEnabled]=\"true\"\n [(ngModel)]=\"selected_page_id\"></dx-select-box>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">Description</p>\n <dx-html-editor height=\"'auto'\" [(ngModel)]=\"selected_desc\">\n <dxo-toolbar [multiline]=\"false\">\n\n <dxi-item name=\"size\"\n [acceptedValues]=\"['8pt', '10pt', '12pt', '14pt', '18pt', '24pt', '36pt']\"\n [options]=\"{ inputAttr: { 'aria-label': 'Font size' } }\"></dxi-item>\n <dxi-item name=\"font\" [acceptedValues]=\"[\n 'Arial',\n 'Courier New',\n 'Georgia',\n 'Impact',\n 'Lucida Console',\n 'Tahoma',\n 'Times New Roman',\n 'Verdana'\n ]\" [options]=\"{ inputAttr: { 'aria-label': 'Font family' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"bold\"></dxi-item>\n <dxi-item name=\"italic\"></dxi-item>\n <dxi-item name=\"underline\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"alignLeft\"></dxi-item>\n <dxi-item name=\"alignCenter\"></dxi-item>\n <dxi-item name=\"alignRight\"></dxi-item>\n <dxi-item name=\"alignJustify\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"orderedList\"></dxi-item>\n <dxi-item name=\"bulletList\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"header\" [acceptedValues]=\"[false, 1, 2, 3, 4, 5]\"\n [options]=\"{ inputAttr: { 'aria-label': 'Header' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"color\"></dxi-item>\n <dxi-item name=\"background\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"link\"></dxi-item>\n <dxi-item name=\"image\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"clear\"></dxi-item>\n <dxi-item name=\"codeBlock\"></dxi-item>\n </dxo-toolbar>\n <dxo-media-resizing [enabled]=\"true\"> </dxo-media-resizing>\n <dxo-image-upload [tabs]=\"['file', 'url']\" fileUploadMode=\"base64\">\n </dxo-image-upload>\n </dx-html-editor>\n </div>\n </div>\n\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\"> Parent Component </p>\n <dx-select-box [dataSource]=\"keiParentDataSource\" displayExpr=\"name\" valueExpr=\"tid\"\n (onValueChanged)=\"getKpiItemValue($event)\" [value]=\"parante_kpi_name\"></dx-select-box>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">TID</p>\n <dx-text-box [(ngModel)]=\"selected_kpi_tid\" [readOnly]=\"true\"></dx-text-box>\n </div>\n </div>\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"px-2 pt-1 w-full\">\n <dx-check-box [(ngModel)]=\"kpi_visibility\" text=\"Visibility\"></dx-check-box>\n </div>\n <div class=\"px-2 pt-1 w-full\">\n <dx-check-box [(ngModel)]=\"kpi_external\" text=\"External KPI\"></dx-check-box>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">KPI Info</p>\n <dx-html-editor height=\"'auto'\" [(ngModel)]=\"selected_info\">\n <dxo-toolbar [multiline]=\"false\">\n\n <dxi-item name=\"size\"\n [acceptedValues]=\"['8pt', '10pt', '12pt', '14pt', '18pt', '24pt', '36pt']\"\n [options]=\"{ inputAttr: { 'aria-label': 'Font size' } }\"></dxi-item>\n <dxi-item name=\"font\" [acceptedValues]=\"[\n 'Arial',\n 'Courier New',\n 'Georgia',\n 'Impact',\n 'Lucida Console',\n 'Tahoma',\n 'Times New Roman',\n 'Verdana'\n ]\"\n [options]=\"{ inputAttr: { 'aria-label': 'Font family' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"bold\"></dxi-item>\n <dxi-item name=\"italic\"></dxi-item>\n <dxi-item name=\"underline\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"alignLeft\"></dxi-item>\n <dxi-item name=\"alignCenter\"></dxi-item>\n <dxi-item name=\"alignRight\"></dxi-item>\n <dxi-item name=\"alignJustify\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"orderedList\"></dxi-item>\n <dxi-item name=\"bulletList\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"header\" [acceptedValues]=\"[false, 1, 2, 3, 4, 5]\"\n [options]=\"{ inputAttr: { 'aria-label': 'Header' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"color\"></dxi-item>\n <dxi-item name=\"background\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"link\"></dxi-item>\n <dxi-item name=\"image\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"clear\"></dxi-item>\n <dxi-item name=\"codeBlock\"></dxi-item>\n </dxo-toolbar>\n <dxo-media-resizing [enabled]=\"true\"> </dxo-media-resizing>\n <dxo-image-upload [tabs]=\"['file', 'url']\" fileUploadMode=\"base64\">\n </dxo-image-upload>\n </dx-html-editor>\n </div>\n </div>\n\n <app-user-access [(userOptionContainer)]=\"userOptionContainer\">\n </app-user-access>\n\n <div class=\"flex flex-auto mt-5 justify-end\">\n <button class=\"{{commonService.btn_primary_md}}\" (click)=\"makeNewKpi()\">Create\n </button>\n <button class=\"{{commonService.btn_primary_md}}\" (click)=\"makeNewKpiWithUserEntity()\">Create With User Privilege\n </button>\n <button class=\"{{commonService.btn_warning_md}}\" (click)=\"getReseteKpi()\">Reset</button>\n\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isEditKpiAdded\">\n <div class=\"px-2 w-full\">\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mb-2\">Name</p>\n <dx-text-box [(ngModel)]=\"editable_kpi_name\"></dx-text-box>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\"> Tag Type</p>\n <dx-select-box [dataSource]=\"tagType\" [(ngModel)]=\"editable_tag_type\"\n (onValueChanged)=\"addTagtypeValue($event)\" [readOnly]=\"isFromEditable\"></dx-select-box>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">ID</p>\n <dx-text-box [(ngModel)]=\"editable_id\"></dx-text-box>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">Page ID</p>\n <!-- <dx-text-box [(ngModel)]=\"editable_page_id\"></dx-text-box> -->\n <dx-select-box [items]=\"templateDataSource\" valueExpr=\"pageId\" displayExpr=\"pageName\" [searchEnabled]=\"true\"\n [(ngModel)]=\"editable_page_id\"></dx-select-box>\n\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">Description</p>\n <dx-html-editor height=\"'auto'\" [(ngModel)]=\"editable_desc\">\n <dxo-toolbar [multiline]=\"true\">\n <dxi-item name=\"undo\"></dxi-item>\n <dxi-item name=\"redo\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"size\"\n [acceptedValues]=\"['8pt', '10pt', '12pt', '14pt', '18pt', '24pt', '36pt']\"\n [options]=\"{ inputAttr: { 'aria-label': 'Font size' } }\"></dxi-item>\n <dxi-item name=\"font\" [acceptedValues]=\"[\n 'Arial',\n 'Courier New',\n 'Georgia',\n 'Impact',\n 'Lucida Console',\n 'Tahoma',\n 'Times New Roman',\n 'Verdana'\n ]\"\n [options]=\"{ inputAttr: { 'aria-label': 'Font family' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"bold\"></dxi-item>\n <dxi-item name=\"italic\"></dxi-item>\n <dxi-item name=\"underline\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"alignLeft\"></dxi-item>\n <dxi-item name=\"alignCenter\"></dxi-item>\n <dxi-item name=\"alignRight\"></dxi-item>\n <dxi-item name=\"alignJustify\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"orderedList\"></dxi-item>\n <dxi-item name=\"bulletList\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"header\" [acceptedValues]=\"[false, 1, 2, 3, 4, 5]\"\n [options]=\"{ inputAttr: { 'aria-label': 'Header' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"color\"></dxi-item>\n <dxi-item name=\"background\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"link\"></dxi-item>\n <dxi-item name=\"image\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"clear\"></dxi-item>\n <dxi-item name=\"blockquote\"></dxi-item>\n\n </dxo-toolbar>\n <dxo-media-resizing [enabled]=\"true\"> </dxo-media-resizing>\n <dxo-image-upload [tabs]=\"['file', 'url']\" fileUploadMode=\"base64\">\n </dxo-image-upload>\n </dx-html-editor>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\"> Parent Component </p>\n <dx-select-box [searchEnabled]=\"true\" [readOnly]=\"editable_tag_type == 'parent'\"\n [dataSource]=\"keiParentDataSource\" displayExpr=\"name\" valueExpr=\"tid\"\n (onValueChanged)=\"getNewParrentKpiItemValue($event)\"\n [value]=\"parante_kpi_name\"></dx-select-box>\n </div>\n </div>\n\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">TID</p>\n <dx-text-box [(ngModel)]=\"editable_kpi_tid\" [readOnly]=\"false\"></dx-text-box>\n </div>\n </div>\n <div class=\"flex flex-row justify-between mt-3\">\n\n <div class=\"px-2 pt-1 w-full\">\n <dx-check-box [(ngModel)]=\"kpi_visibility\" text=\"Visibility\"></dx-check-box>\n </div>\n\n <div class=\"px-2 pt-1 w-full\">\n <dx-check-box [(ngModel)]=\"kpi_external\" text=\"External KPI\"></dx-check-box>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">KPI Info</p>\n <dx-html-editor height=\"'auto'\" [(ngModel)]=\"editable_info\">\n <dxo-toolbar [multiline]=\"false\">\n\n <dxi-item name=\"size\"\n [acceptedValues]=\"['8pt', '10pt', '12pt', '14pt', '18pt', '24pt', '36pt']\"\n [options]=\"{ inputAttr: { 'aria-label': 'Font size' } }\"></dxi-item>\n <dxi-item name=\"font\" [acceptedValues]=\"[\n 'Arial',\n 'Courier New',\n 'Georgia',\n 'Impact',\n 'Lucida Console',\n 'Tahoma',\n 'Times New Roman',\n 'Verdana'\n ]\"\n [options]=\"{ inputAttr: { 'aria-label': 'Font family' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"bold\"></dxi-item>\n <dxi-item name=\"italic\"></dxi-item>\n <dxi-item name=\"underline\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"alignLeft\"></dxi-item>\n <dxi-item name=\"alignCenter\"></dxi-item>\n <dxi-item name=\"alignRight\"></dxi-item>\n <dxi-item name=\"alignJustify\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"orderedList\"></dxi-item>\n <dxi-item name=\"bulletList\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"header\" [acceptedValues]=\"[false, 1, 2, 3, 4, 5]\"\n [options]=\"{ inputAttr: { 'aria-label': 'Header' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"color\"></dxi-item>\n <dxi-item name=\"background\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"link\"></dxi-item>\n <dxi-item name=\"image\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"clear\"></dxi-item>\n <dxi-item name=\"codeBlock\"></dxi-item>\n </dxo-toolbar>\n <dxo-media-resizing [enabled]=\"true\"> </dxo-media-resizing>\n <dxo-image-upload [tabs]=\"['file', 'url']\" fileUploadMode=\"base64\">\n </dxo-image-upload>\n </dx-html-editor>\n </div>\n </div>\n <div class=\"flex flex-auto mt-3 justify-end\">\n <button class=\"{{commonService.btn_primary_md}}\" (click)=\"getUpdateKpi()\">Update\n </button>\n <button class=\"{{commonService.btn_danger_md}}\" (click)=\"getDeleteKpi()\">Delete\n </button>\n <!-- <button class=\"{{commonService.btn_danger_md}}\" (click)=\"cancelUpdate()\">Cancle</button> -->\n\n </div>\n </div>\n </ng-container>\n </div>\n\n\n\n\n</div>", styles: [":host ::ng-deep treeview .treeview-wrapper{width:100%!important}\n"], dependencies: [{ kind: "directive", type: i4$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LoadingComponent$1, selector: "app-loading" }, { kind: "component", type: i6.DxiItemComponent, selector: "dxi-item", inputs: ["disabled", "html", "icon", "template", "text", "title", "visible", "onClick", "stylingMode", "type", "baseSize", "box", "ratio", "shrink", "elementAttr", "hint", "beginGroup", "closeMenuOnClick", "items", "selectable", "selected", "colSpan", "cssClass", "dataField", "editorOptions", "editorType", "helpText", "isRequired", "itemType", "label", "name", "validationRules", "visibleIndex", "alignItemLabels", "caption", "colCount", "colCountByScreen", "tabPanelOptions", "tabs", "badge", "tabTemplate", "buttonOptions", "horizontalAlignment", "verticalAlignment", "locateInMenu", "location", "menuItemTemplate", "options", "showText", "widget", "height", "width", "imageAlt", "imageSrc", "acceptedValues", "formatName", "formatValues", "key", "showChevron", "menuTemplate", "heightRatio", "widthRatio", "expanded", "hasItems", "id", "parentId"] }, { kind: "component", type: i5$1.DxCheckBoxComponent, selector: "dx-check-box", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "iconSize", "isValid", "name", "readOnly", "rtlEnabled", "tabIndex", "text", "validationError", "validationErrors", "validationMessageMode", "validationStatus", "value", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconSizeChange", "isValidChange", "nameChange", "readOnlyChange", "rtlEnabledChange", "tabIndexChange", "textChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationStatusChange", "valueChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i6.DxoToolbarComponent, selector: "dxo-toolbar", inputs: ["disabled", "items", "visible", "fileSelectionItems", "container", "multiline"] }, { kind: "component", type: i10$2.DxHtmlEditorComponent, selector: "dx-html-editor", inputs: ["accessKey", "activeStateEnabled", "allowSoftLineBreak", "customizeModules", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "imageUpload", "isValid", "mediaResizing", "mentions", "name", "placeholder", "readOnly", "rtlEnabled", "stylingMode", "tabIndex", "tableContextMenu", "tableResizing", "toolbar", "validationError", "validationErrors", "validationMessageMode", "validationStatus", "value", "valueType", "variables", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onFocusIn", "onFocusOut", "onInitialized", "onOptionChanged", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "allowSoftLineBreakChange", "customizeModulesChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "imageUploadChange", "isValidChange", "mediaResizingChange", "mentionsChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "tableContextMenuChange", "tableResizingChange", "toolbarChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationStatusChange", "valueChange", "valueTypeChange", "variablesChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i6.DxoImageUploadComponent, selector: "dxo-image-upload", inputs: ["fileUploaderOptions", "fileUploadMode", "tabs", "uploadDirectory", "uploadUrl"] }, { kind: "component", type: i6.DxoMediaResizingComponent, selector: "dxo-media-resizing", inputs: ["allowedTargets", "enabled"] }, { 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: "component", type: i7.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "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: UserAccessComponent, selector: "app-user-access", inputs: ["userOptionContainer"], outputs: ["userOptionContainerChange"] }, { kind: "component", type: TreeviewComponent, selector: "treeview", inputs: ["autoCollapse", "inner", "navigation", "opened", "isEditIcon", "isSearchBox", "transparentOverlay", "treeListForSearchBox", "name", "openTreeId", "routeKey"], outputs: ["editableKpiData"] }] });
17595
+ CreateKpiTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CreateKpiTreeComponent, selector: "app-create-kpi", ngImport: i0, template: "<app-loading *ngIf=\"loadingModal\"></app-loading>\n<div class=\"p-4 flex flex-row w-full\" *ngIf=\"!loadingModal\">\n <div class=\"mx-2 bg-white dark:bg-transparent border-r\">\n <!-- <ng-container *ngIf=\"isKpiTreePrepared\"> -->\n <treeview class=\"dark bg-gray-900 dark:bg-transparent\" [name]=\"'mainNavigation'\" [routeKey]=\"'raKpi'\"\n [navigation]=\"kpiData\" [isSearchBox]=\"false\" [isEditIcon]=\"true\"\n (editableKpiData)=\"getEditableKpi($event)\">\n </treeview>\n <!-- </ng-container> -->\n\n </div>\n <div class=\"mx-2 w-full\">\n <!-- <div class=\"flex flex-row item-center justify-center my-8\">\n <button class=\"{{commonService.btn_warning_md}}\" (click)=\"addNewKpi()\">Add New KPI</button>\n <button class=\"{{commonService.btn_primary_md}}\" (click)=\"routeToKpiConfig()\"\n routerLinkActive=\"router-link-active\">Configure KPI</button>\n </div> -->\n <!-- <ng-container *ngIf=\"isNewKpiAdded\"> -->\n <!-- <div class=\"px-2 w-full\"> -->\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">Name</p>\n <dx-text-box [(ngModel)]=\"select_kpi_name\"></dx-text-box>\n </div>\n </div>\n <div class=\"flex flex-row w-full\">\n <div class=\"m-1 w-1/3\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\"> Tag Type</p>\n <dx-select-box [dataSource]=\"tagType\" [(ngModel)]=\"select_tag_type\"\n (onValueChanged)=\"addTagtypeValue($event)\"></dx-select-box>\n </div>\n </div>\n <!-- (onCustomItemCreating)=\"onCustomDimentionCreating($event)\" -->\n <div class=\"m-1 w-full\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">Aliases</p>\n <dx-tag-box [acceptCustomValue]=\"true\" [(ngModel)]=\"selected_aliases\"></dx-tag-box>\n </div>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">Page ID</p>\n <!-- <dx-text-box [(ngModel)]=\"selected_page_id\"></dx-text-box> -->\n <dx-select-box [items]=\"templateDataSource\" valueExpr=\"pageId\" displayExpr=\"pageName\"\n [searchEnabled]=\"true\" [(ngModel)]=\"selected_page_id\"></dx-select-box>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">Description</p>\n <dx-html-editor height=\"'auto'\" [(ngModel)]=\"selected_desc\">\n <dxo-toolbar [multiline]=\"false\">\n\n <dxi-item name=\"size\" [acceptedValues]=\"['8pt', '10pt', '12pt', '14pt', '18pt', '24pt', '36pt']\"\n [options]=\"{ inputAttr: { 'aria-label': 'Font size' } }\"></dxi-item>\n <dxi-item name=\"font\" [acceptedValues]=\"[\n 'Arial',\n 'Courier New',\n 'Georgia',\n 'Impact',\n 'Lucida Console',\n 'Tahoma',\n 'Times New Roman',\n 'Verdana'\n ]\" [options]=\"{ inputAttr: { 'aria-label': 'Font family' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"bold\"></dxi-item>\n <dxi-item name=\"italic\"></dxi-item>\n <dxi-item name=\"underline\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"alignLeft\"></dxi-item>\n <dxi-item name=\"alignCenter\"></dxi-item>\n <dxi-item name=\"alignRight\"></dxi-item>\n <dxi-item name=\"alignJustify\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"orderedList\"></dxi-item>\n <dxi-item name=\"bulletList\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"header\" [acceptedValues]=\"[false, 1, 2, 3, 4, 5]\"\n [options]=\"{ inputAttr: { 'aria-label': 'Header' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"color\"></dxi-item>\n <dxi-item name=\"background\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"link\"></dxi-item>\n <dxi-item name=\"image\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"clear\"></dxi-item>\n <dxi-item name=\"codeBlock\"></dxi-item>\n </dxo-toolbar>\n <dxo-media-resizing [enabled]=\"true\"> </dxo-media-resizing>\n <dxo-image-upload [tabs]=\"['file', 'url']\" fileUploadMode=\"base64\">\n </dxo-image-upload>\n </dx-html-editor>\n </div>\n </div>\n\n\n <div class=\"flex flex-row w-full\">\n <div class=\"m-1 w-full\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\"> Parent Component </p>\n <dx-select-box [items]=\"keiParentDataSource\" displayExpr=\"kpiName\" valueExpr=\"kpiId\"\n (onValueChanged)=\"getKpiItemValue($event)\" [(ngModel)]=\"parante_kpi_name\"></dx-select-box>\n </div>\n </div>\n <div class=\"m-1 w-full\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">Parent TID</p>\n <dx-text-box [(ngModel)]=\"selected_kpi_tid\" [readOnly]=\"false\"></dx-text-box>\n </div>\n </div>\n <div class=\"m-1 w-full\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">Child TID</p>\n <dx-text-box [(ngModel)]=\"selected_kpi_child_tid\" [readOnly]=\"false\"></dx-text-box>\n </div>\n </div>\n </div>\n\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"px-2 pt-1 w-full\">\n <dx-check-box [(ngModel)]=\"kpi_visibility\" text=\"Visibility\"></dx-check-box>\n </div>\n <div class=\"px-2 pt-1 w-full\">\n <dx-check-box [(ngModel)]=\"kpi_external\" text=\"External KPI\"></dx-check-box>\n </div>\n </div>\n <!-- <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">KPI Info</p>\n <dx-html-editor height=\"'auto'\" [(ngModel)]=\"selected_info\">\n <dxo-toolbar [multiline]=\"false\">\n\n <dxi-item name=\"size\"\n [acceptedValues]=\"['8pt', '10pt', '12pt', '14pt', '18pt', '24pt', '36pt']\"\n [options]=\"{ inputAttr: { 'aria-label': 'Font size' } }\"></dxi-item>\n <dxi-item name=\"font\" [acceptedValues]=\"[\n 'Arial',\n 'Courier New',\n 'Georgia',\n 'Impact',\n 'Lucida Console',\n 'Tahoma',\n 'Times New Roman',\n 'Verdana'\n ]\"\n [options]=\"{ inputAttr: { 'aria-label': 'Font family' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"bold\"></dxi-item>\n <dxi-item name=\"italic\"></dxi-item>\n <dxi-item name=\"underline\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"alignLeft\"></dxi-item>\n <dxi-item name=\"alignCenter\"></dxi-item>\n <dxi-item name=\"alignRight\"></dxi-item>\n <dxi-item name=\"alignJustify\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"orderedList\"></dxi-item>\n <dxi-item name=\"bulletList\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"header\" [acceptedValues]=\"[false, 1, 2, 3, 4, 5]\"\n [options]=\"{ inputAttr: { 'aria-label': 'Header' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"color\"></dxi-item>\n <dxi-item name=\"background\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"link\"></dxi-item>\n <dxi-item name=\"image\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"clear\"></dxi-item>\n <dxi-item name=\"codeBlock\"></dxi-item>\n </dxo-toolbar>\n <dxo-media-resizing [enabled]=\"true\"> </dxo-media-resizing>\n <dxo-image-upload [tabs]=\"['file', 'url']\" fileUploadMode=\"base64\">\n </dxo-image-upload>\n </dx-html-editor>\n </div>\n </div> -->\n\n <app-user-access [(userOptionContainer)]=\"userOptionContainer\">\n </app-user-access>\n\n <div class=\"flex flex-auto mt-5 justify-end\">\n <button class=\"{{commonService.btn_success_md}}\" (click)=\"getUpdateKpi()\" *ngIf=\"isEditKpiAdded\">Update KPI\n </button>\n <button class=\"{{commonService.btn_danger_md}}\" (click)=\"getDeletKpi()\" *ngIf=\"isEditKpiAdded\">Delete KPI\n </button>\n <button class=\"{{commonService.btn_success_md}}\" (click)=\"makeNewKpiWithUserEntity()\" *ngIf=\"!isEditKpiAdded\">Create KPI\n </button>\n <button class=\"{{commonService.btn_warning_md}}\" (click)=\"getReseteKpi()\">Reset</button>\n\n </div>\n <!-- </div> -->\n <!-- </ng-container> -->\n </div>\n\n\n\n\n</div>", styles: [":host ::ng-deep treeview .treeview-wrapper{width:100%!important}\n"], dependencies: [{ kind: "directive", type: i4$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: LoadingComponent$1, selector: "app-loading" }, { kind: "component", type: i6.DxiItemComponent, selector: "dxi-item", inputs: ["disabled", "html", "icon", "template", "text", "title", "visible", "onClick", "stylingMode", "type", "baseSize", "box", "ratio", "shrink", "elementAttr", "hint", "beginGroup", "closeMenuOnClick", "items", "selectable", "selected", "colSpan", "cssClass", "dataField", "editorOptions", "editorType", "helpText", "isRequired", "itemType", "label", "name", "validationRules", "visibleIndex", "alignItemLabels", "caption", "colCount", "colCountByScreen", "tabPanelOptions", "tabs", "badge", "tabTemplate", "buttonOptions", "horizontalAlignment", "verticalAlignment", "locateInMenu", "location", "menuItemTemplate", "options", "showText", "widget", "height", "width", "imageAlt", "imageSrc", "acceptedValues", "formatName", "formatValues", "key", "showChevron", "menuTemplate", "heightRatio", "widthRatio", "expanded", "hasItems", "id", "parentId"] }, { kind: "component", type: i5$1.DxCheckBoxComponent, selector: "dx-check-box", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "iconSize", "isValid", "name", "readOnly", "rtlEnabled", "tabIndex", "text", "validationError", "validationErrors", "validationMessageMode", "validationStatus", "value", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconSizeChange", "isValidChange", "nameChange", "readOnlyChange", "rtlEnabledChange", "tabIndexChange", "textChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationStatusChange", "valueChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i6.DxoToolbarComponent, selector: "dxo-toolbar", inputs: ["disabled", "items", "visible", "fileSelectionItems", "container", "multiline"] }, { kind: "component", type: i10$2.DxHtmlEditorComponent, selector: "dx-html-editor", inputs: ["accessKey", "activeStateEnabled", "allowSoftLineBreak", "customizeModules", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "imageUpload", "isValid", "mediaResizing", "mentions", "name", "placeholder", "readOnly", "rtlEnabled", "stylingMode", "tabIndex", "tableContextMenu", "tableResizing", "toolbar", "validationError", "validationErrors", "validationMessageMode", "validationStatus", "value", "valueType", "variables", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onFocusIn", "onFocusOut", "onInitialized", "onOptionChanged", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "allowSoftLineBreakChange", "customizeModulesChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "imageUploadChange", "isValidChange", "mediaResizingChange", "mentionsChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "tableContextMenuChange", "tableResizingChange", "toolbarChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationStatusChange", "valueChange", "valueTypeChange", "variablesChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i6.DxoImageUploadComponent, selector: "dxo-image-upload", inputs: ["fileUploaderOptions", "fileUploadMode", "tabs", "uploadDirectory", "uploadUrl"] }, { kind: "component", type: i6.DxoMediaResizingComponent, selector: "dxo-media-resizing", inputs: ["allowedTargets", "enabled"] }, { 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: "component", type: i8$1.DxTagBoxComponent, selector: "dx-tag-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "applyValueMode", "buttons", "dataSource", "deferRendering", "disabled", "displayExpr", "dropDownButtonTemplate", "dropDownOptions", "elementAttr", "fieldTemplate", "focusStateEnabled", "grouped", "groupTemplate", "height", "hideSelectedItems", "hint", "hoverStateEnabled", "inputAttr", "isValid", "items", "itemTemplate", "label", "labelMode", "maxDisplayedTags", "maxFilterQueryLength", "maxLength", "minSearchLength", "multiline", "name", "noDataText", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "searchEnabled", "searchExpr", "searchMode", "searchTimeout", "selectAllMode", "selectAllText", "selectedItems", "showClearButton", "showDataBeforeSearch", "showDropDownButton", "showMultiTagOnly", "showSelectionControls", "stylingMode", "tabIndex", "tagTemplate", "text", "useItemTextAsTitle", "validationError", "validationErrors", "validationMessageMode", "validationStatus", "value", "valueExpr", "visible", "width", "wrapItemText"], outputs: ["onChange", "onClosed", "onContentReady", "onCustomItemCreating", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onItemClick", "onKeyDown", "onKeyUp", "onMultiTagPreparing", "onOpened", "onOptionChanged", "onSelectAllValueChanged", "onSelectionChanged", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "applyValueModeChange", "buttonsChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "displayExprChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "groupedChange", "groupTemplateChange", "heightChange", "hideSelectedItemsChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "itemsChange", "itemTemplateChange", "labelChange", "labelModeChange", "maxDisplayedTagsChange", "maxFilterQueryLengthChange", "maxLengthChange", "minSearchLengthChange", "multilineChange", "nameChange", "noDataTextChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "searchEnabledChange", "searchExprChange", "searchModeChange", "searchTimeoutChange", "selectAllModeChange", "selectAllTextChange", "selectedItemsChange", "showClearButtonChange", "showDataBeforeSearchChange", "showDropDownButtonChange", "showMultiTagOnlyChange", "showSelectionControlsChange", "stylingModeChange", "tabIndexChange", "tagTemplateChange", "textChange", "useItemTextAsTitleChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationStatusChange", "valueChange", "valueExprChange", "visibleChange", "widthChange", "wrapItemTextChange", "onBlur"] }, { kind: "component", type: i7.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "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: UserAccessComponent, selector: "app-user-access", inputs: ["userOptionContainer"], outputs: ["userOptionContainerChange"] }, { kind: "component", type: TreeviewComponent, selector: "treeview", inputs: ["autoCollapse", "inner", "navigation", "opened", "isEditIcon", "isSearchBox", "transparentOverlay", "treeListForSearchBox", "name", "openTreeId", "routeKey"], outputs: ["editableKpiData"] }] });
17750
17596
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CreateKpiTreeComponent, decorators: [{
17751
17597
  type: Component,
17752
- args: [{ selector: 'app-create-kpi', template: "<app-loading *ngIf=\"loadingModal\"></app-loading>\n<div class=\"p-4 flex flex-row w-full\">\n <div class=\"mx-2 bg-white dark:bg-transparent border-r\">\n\n <treeview class=\"dark bg-gray-900 dark:bg-transparent\" [name]=\"'mainNavigation'\" [routeKey]=\"'raKpi'\"\n [navigation]=\"kpiData\" [isSearchBox]=\"false\" [isEditIcon]=\"true\" (editableKpiData)=\"getEditableKpi($event)\">\n </treeview>\n </div>\n <div class=\"mx-2 w-full\">\n <div class=\"flex flex-row item-center justify-center my-8\">\n <button class=\"{{commonService.btn_warning_md}}\" (click)=\"addNewKpi()\">Add New KPI</button>\n <button class=\"{{commonService.btn_primary_md}}\" (click)=\"routeToKpiConfig()\"\n routerLinkActive=\"router-link-active\">Configure KPI</button>\n </div>\n <ng-container *ngIf=\"isNewKpiAdded\">\n <div class=\"px-2 w-full\">\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">Name</p>\n <dx-text-box [(ngModel)]=\"select_kpi_name\"></dx-text-box>\n </div>\n </div>\n\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\"> Tag Type</p>\n <dx-select-box [dataSource]=\"tagType\" [(ngModel)]=\"select_tag_type\"\n (onValueChanged)=\"addTagtypeValue($event)\"></dx-select-box>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">ID</p>\n <dx-text-box [(ngModel)]=\"selected_id\"></dx-text-box>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">Page ID</p>\n <!-- <dx-text-box [(ngModel)]=\"selected_page_id\"></dx-text-box> -->\n <dx-select-box [items]=\"templateDataSource\" valueExpr=\"pageId\" displayExpr=\"pageName\" [searchEnabled]=\"true\"\n [(ngModel)]=\"selected_page_id\"></dx-select-box>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">Description</p>\n <dx-html-editor height=\"'auto'\" [(ngModel)]=\"selected_desc\">\n <dxo-toolbar [multiline]=\"false\">\n\n <dxi-item name=\"size\"\n [acceptedValues]=\"['8pt', '10pt', '12pt', '14pt', '18pt', '24pt', '36pt']\"\n [options]=\"{ inputAttr: { 'aria-label': 'Font size' } }\"></dxi-item>\n <dxi-item name=\"font\" [acceptedValues]=\"[\n 'Arial',\n 'Courier New',\n 'Georgia',\n 'Impact',\n 'Lucida Console',\n 'Tahoma',\n 'Times New Roman',\n 'Verdana'\n ]\" [options]=\"{ inputAttr: { 'aria-label': 'Font family' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"bold\"></dxi-item>\n <dxi-item name=\"italic\"></dxi-item>\n <dxi-item name=\"underline\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"alignLeft\"></dxi-item>\n <dxi-item name=\"alignCenter\"></dxi-item>\n <dxi-item name=\"alignRight\"></dxi-item>\n <dxi-item name=\"alignJustify\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"orderedList\"></dxi-item>\n <dxi-item name=\"bulletList\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"header\" [acceptedValues]=\"[false, 1, 2, 3, 4, 5]\"\n [options]=\"{ inputAttr: { 'aria-label': 'Header' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"color\"></dxi-item>\n <dxi-item name=\"background\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"link\"></dxi-item>\n <dxi-item name=\"image\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"clear\"></dxi-item>\n <dxi-item name=\"codeBlock\"></dxi-item>\n </dxo-toolbar>\n <dxo-media-resizing [enabled]=\"true\"> </dxo-media-resizing>\n <dxo-image-upload [tabs]=\"['file', 'url']\" fileUploadMode=\"base64\">\n </dxo-image-upload>\n </dx-html-editor>\n </div>\n </div>\n\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\"> Parent Component </p>\n <dx-select-box [dataSource]=\"keiParentDataSource\" displayExpr=\"name\" valueExpr=\"tid\"\n (onValueChanged)=\"getKpiItemValue($event)\" [value]=\"parante_kpi_name\"></dx-select-box>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">TID</p>\n <dx-text-box [(ngModel)]=\"selected_kpi_tid\" [readOnly]=\"true\"></dx-text-box>\n </div>\n </div>\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"px-2 pt-1 w-full\">\n <dx-check-box [(ngModel)]=\"kpi_visibility\" text=\"Visibility\"></dx-check-box>\n </div>\n <div class=\"px-2 pt-1 w-full\">\n <dx-check-box [(ngModel)]=\"kpi_external\" text=\"External KPI\"></dx-check-box>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">KPI Info</p>\n <dx-html-editor height=\"'auto'\" [(ngModel)]=\"selected_info\">\n <dxo-toolbar [multiline]=\"false\">\n\n <dxi-item name=\"size\"\n [acceptedValues]=\"['8pt', '10pt', '12pt', '14pt', '18pt', '24pt', '36pt']\"\n [options]=\"{ inputAttr: { 'aria-label': 'Font size' } }\"></dxi-item>\n <dxi-item name=\"font\" [acceptedValues]=\"[\n 'Arial',\n 'Courier New',\n 'Georgia',\n 'Impact',\n 'Lucida Console',\n 'Tahoma',\n 'Times New Roman',\n 'Verdana'\n ]\"\n [options]=\"{ inputAttr: { 'aria-label': 'Font family' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"bold\"></dxi-item>\n <dxi-item name=\"italic\"></dxi-item>\n <dxi-item name=\"underline\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"alignLeft\"></dxi-item>\n <dxi-item name=\"alignCenter\"></dxi-item>\n <dxi-item name=\"alignRight\"></dxi-item>\n <dxi-item name=\"alignJustify\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"orderedList\"></dxi-item>\n <dxi-item name=\"bulletList\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"header\" [acceptedValues]=\"[false, 1, 2, 3, 4, 5]\"\n [options]=\"{ inputAttr: { 'aria-label': 'Header' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"color\"></dxi-item>\n <dxi-item name=\"background\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"link\"></dxi-item>\n <dxi-item name=\"image\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"clear\"></dxi-item>\n <dxi-item name=\"codeBlock\"></dxi-item>\n </dxo-toolbar>\n <dxo-media-resizing [enabled]=\"true\"> </dxo-media-resizing>\n <dxo-image-upload [tabs]=\"['file', 'url']\" fileUploadMode=\"base64\">\n </dxo-image-upload>\n </dx-html-editor>\n </div>\n </div>\n\n <app-user-access [(userOptionContainer)]=\"userOptionContainer\">\n </app-user-access>\n\n <div class=\"flex flex-auto mt-5 justify-end\">\n <button class=\"{{commonService.btn_primary_md}}\" (click)=\"makeNewKpi()\">Create\n </button>\n <button class=\"{{commonService.btn_primary_md}}\" (click)=\"makeNewKpiWithUserEntity()\">Create With User Privilege\n </button>\n <button class=\"{{commonService.btn_warning_md}}\" (click)=\"getReseteKpi()\">Reset</button>\n\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"isEditKpiAdded\">\n <div class=\"px-2 w-full\">\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mb-2\">Name</p>\n <dx-text-box [(ngModel)]=\"editable_kpi_name\"></dx-text-box>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\"> Tag Type</p>\n <dx-select-box [dataSource]=\"tagType\" [(ngModel)]=\"editable_tag_type\"\n (onValueChanged)=\"addTagtypeValue($event)\" [readOnly]=\"isFromEditable\"></dx-select-box>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">ID</p>\n <dx-text-box [(ngModel)]=\"editable_id\"></dx-text-box>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">Page ID</p>\n <!-- <dx-text-box [(ngModel)]=\"editable_page_id\"></dx-text-box> -->\n <dx-select-box [items]=\"templateDataSource\" valueExpr=\"pageId\" displayExpr=\"pageName\" [searchEnabled]=\"true\"\n [(ngModel)]=\"editable_page_id\"></dx-select-box>\n\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">Description</p>\n <dx-html-editor height=\"'auto'\" [(ngModel)]=\"editable_desc\">\n <dxo-toolbar [multiline]=\"true\">\n <dxi-item name=\"undo\"></dxi-item>\n <dxi-item name=\"redo\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"size\"\n [acceptedValues]=\"['8pt', '10pt', '12pt', '14pt', '18pt', '24pt', '36pt']\"\n [options]=\"{ inputAttr: { 'aria-label': 'Font size' } }\"></dxi-item>\n <dxi-item name=\"font\" [acceptedValues]=\"[\n 'Arial',\n 'Courier New',\n 'Georgia',\n 'Impact',\n 'Lucida Console',\n 'Tahoma',\n 'Times New Roman',\n 'Verdana'\n ]\"\n [options]=\"{ inputAttr: { 'aria-label': 'Font family' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"bold\"></dxi-item>\n <dxi-item name=\"italic\"></dxi-item>\n <dxi-item name=\"underline\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"alignLeft\"></dxi-item>\n <dxi-item name=\"alignCenter\"></dxi-item>\n <dxi-item name=\"alignRight\"></dxi-item>\n <dxi-item name=\"alignJustify\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"orderedList\"></dxi-item>\n <dxi-item name=\"bulletList\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"header\" [acceptedValues]=\"[false, 1, 2, 3, 4, 5]\"\n [options]=\"{ inputAttr: { 'aria-label': 'Header' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"color\"></dxi-item>\n <dxi-item name=\"background\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"link\"></dxi-item>\n <dxi-item name=\"image\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"clear\"></dxi-item>\n <dxi-item name=\"blockquote\"></dxi-item>\n\n </dxo-toolbar>\n <dxo-media-resizing [enabled]=\"true\"> </dxo-media-resizing>\n <dxo-image-upload [tabs]=\"['file', 'url']\" fileUploadMode=\"base64\">\n </dxo-image-upload>\n </dx-html-editor>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\"> Parent Component </p>\n <dx-select-box [searchEnabled]=\"true\" [readOnly]=\"editable_tag_type == 'parent'\"\n [dataSource]=\"keiParentDataSource\" displayExpr=\"name\" valueExpr=\"tid\"\n (onValueChanged)=\"getNewParrentKpiItemValue($event)\"\n [value]=\"parante_kpi_name\"></dx-select-box>\n </div>\n </div>\n\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">TID</p>\n <dx-text-box [(ngModel)]=\"editable_kpi_tid\" [readOnly]=\"false\"></dx-text-box>\n </div>\n </div>\n <div class=\"flex flex-row justify-between mt-3\">\n\n <div class=\"px-2 pt-1 w-full\">\n <dx-check-box [(ngModel)]=\"kpi_visibility\" text=\"Visibility\"></dx-check-box>\n </div>\n\n <div class=\"px-2 pt-1 w-full\">\n <dx-check-box [(ngModel)]=\"kpi_external\" text=\"External KPI\"></dx-check-box>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">KPI Info</p>\n <dx-html-editor height=\"'auto'\" [(ngModel)]=\"editable_info\">\n <dxo-toolbar [multiline]=\"false\">\n\n <dxi-item name=\"size\"\n [acceptedValues]=\"['8pt', '10pt', '12pt', '14pt', '18pt', '24pt', '36pt']\"\n [options]=\"{ inputAttr: { 'aria-label': 'Font size' } }\"></dxi-item>\n <dxi-item name=\"font\" [acceptedValues]=\"[\n 'Arial',\n 'Courier New',\n 'Georgia',\n 'Impact',\n 'Lucida Console',\n 'Tahoma',\n 'Times New Roman',\n 'Verdana'\n ]\"\n [options]=\"{ inputAttr: { 'aria-label': 'Font family' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"bold\"></dxi-item>\n <dxi-item name=\"italic\"></dxi-item>\n <dxi-item name=\"underline\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"alignLeft\"></dxi-item>\n <dxi-item name=\"alignCenter\"></dxi-item>\n <dxi-item name=\"alignRight\"></dxi-item>\n <dxi-item name=\"alignJustify\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"orderedList\"></dxi-item>\n <dxi-item name=\"bulletList\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"header\" [acceptedValues]=\"[false, 1, 2, 3, 4, 5]\"\n [options]=\"{ inputAttr: { 'aria-label': 'Header' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"color\"></dxi-item>\n <dxi-item name=\"background\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"link\"></dxi-item>\n <dxi-item name=\"image\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"clear\"></dxi-item>\n <dxi-item name=\"codeBlock\"></dxi-item>\n </dxo-toolbar>\n <dxo-media-resizing [enabled]=\"true\"> </dxo-media-resizing>\n <dxo-image-upload [tabs]=\"['file', 'url']\" fileUploadMode=\"base64\">\n </dxo-image-upload>\n </dx-html-editor>\n </div>\n </div>\n <div class=\"flex flex-auto mt-3 justify-end\">\n <button class=\"{{commonService.btn_primary_md}}\" (click)=\"getUpdateKpi()\">Update\n </button>\n <button class=\"{{commonService.btn_danger_md}}\" (click)=\"getDeleteKpi()\">Delete\n </button>\n <!-- <button class=\"{{commonService.btn_danger_md}}\" (click)=\"cancelUpdate()\">Cancle</button> -->\n\n </div>\n </div>\n </ng-container>\n </div>\n\n\n\n\n</div>", styles: [":host ::ng-deep treeview .treeview-wrapper{width:100%!important}\n"] }]
17598
+ args: [{ selector: 'app-create-kpi', template: "<app-loading *ngIf=\"loadingModal\"></app-loading>\n<div class=\"p-4 flex flex-row w-full\" *ngIf=\"!loadingModal\">\n <div class=\"mx-2 bg-white dark:bg-transparent border-r\">\n <!-- <ng-container *ngIf=\"isKpiTreePrepared\"> -->\n <treeview class=\"dark bg-gray-900 dark:bg-transparent\" [name]=\"'mainNavigation'\" [routeKey]=\"'raKpi'\"\n [navigation]=\"kpiData\" [isSearchBox]=\"false\" [isEditIcon]=\"true\"\n (editableKpiData)=\"getEditableKpi($event)\">\n </treeview>\n <!-- </ng-container> -->\n\n </div>\n <div class=\"mx-2 w-full\">\n <!-- <div class=\"flex flex-row item-center justify-center my-8\">\n <button class=\"{{commonService.btn_warning_md}}\" (click)=\"addNewKpi()\">Add New KPI</button>\n <button class=\"{{commonService.btn_primary_md}}\" (click)=\"routeToKpiConfig()\"\n routerLinkActive=\"router-link-active\">Configure KPI</button>\n </div> -->\n <!-- <ng-container *ngIf=\"isNewKpiAdded\"> -->\n <!-- <div class=\"px-2 w-full\"> -->\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">Name</p>\n <dx-text-box [(ngModel)]=\"select_kpi_name\"></dx-text-box>\n </div>\n </div>\n <div class=\"flex flex-row w-full\">\n <div class=\"m-1 w-1/3\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\"> Tag Type</p>\n <dx-select-box [dataSource]=\"tagType\" [(ngModel)]=\"select_tag_type\"\n (onValueChanged)=\"addTagtypeValue($event)\"></dx-select-box>\n </div>\n </div>\n <!-- (onCustomItemCreating)=\"onCustomDimentionCreating($event)\" -->\n <div class=\"m-1 w-full\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">Aliases</p>\n <dx-tag-box [acceptCustomValue]=\"true\" [(ngModel)]=\"selected_aliases\"></dx-tag-box>\n </div>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">Page ID</p>\n <!-- <dx-text-box [(ngModel)]=\"selected_page_id\"></dx-text-box> -->\n <dx-select-box [items]=\"templateDataSource\" valueExpr=\"pageId\" displayExpr=\"pageName\"\n [searchEnabled]=\"true\" [(ngModel)]=\"selected_page_id\"></dx-select-box>\n </div>\n </div>\n <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">Description</p>\n <dx-html-editor height=\"'auto'\" [(ngModel)]=\"selected_desc\">\n <dxo-toolbar [multiline]=\"false\">\n\n <dxi-item name=\"size\" [acceptedValues]=\"['8pt', '10pt', '12pt', '14pt', '18pt', '24pt', '36pt']\"\n [options]=\"{ inputAttr: { 'aria-label': 'Font size' } }\"></dxi-item>\n <dxi-item name=\"font\" [acceptedValues]=\"[\n 'Arial',\n 'Courier New',\n 'Georgia',\n 'Impact',\n 'Lucida Console',\n 'Tahoma',\n 'Times New Roman',\n 'Verdana'\n ]\" [options]=\"{ inputAttr: { 'aria-label': 'Font family' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"bold\"></dxi-item>\n <dxi-item name=\"italic\"></dxi-item>\n <dxi-item name=\"underline\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"alignLeft\"></dxi-item>\n <dxi-item name=\"alignCenter\"></dxi-item>\n <dxi-item name=\"alignRight\"></dxi-item>\n <dxi-item name=\"alignJustify\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"orderedList\"></dxi-item>\n <dxi-item name=\"bulletList\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"header\" [acceptedValues]=\"[false, 1, 2, 3, 4, 5]\"\n [options]=\"{ inputAttr: { 'aria-label': 'Header' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"color\"></dxi-item>\n <dxi-item name=\"background\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"link\"></dxi-item>\n <dxi-item name=\"image\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"clear\"></dxi-item>\n <dxi-item name=\"codeBlock\"></dxi-item>\n </dxo-toolbar>\n <dxo-media-resizing [enabled]=\"true\"> </dxo-media-resizing>\n <dxo-image-upload [tabs]=\"['file', 'url']\" fileUploadMode=\"base64\">\n </dxo-image-upload>\n </dx-html-editor>\n </div>\n </div>\n\n\n <div class=\"flex flex-row w-full\">\n <div class=\"m-1 w-full\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\"> Parent Component </p>\n <dx-select-box [items]=\"keiParentDataSource\" displayExpr=\"kpiName\" valueExpr=\"kpiId\"\n (onValueChanged)=\"getKpiItemValue($event)\" [(ngModel)]=\"parante_kpi_name\"></dx-select-box>\n </div>\n </div>\n <div class=\"m-1 w-full\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">Parent TID</p>\n <dx-text-box [(ngModel)]=\"selected_kpi_tid\" [readOnly]=\"false\"></dx-text-box>\n </div>\n </div>\n <div class=\"m-1 w-full\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">Child TID</p>\n <dx-text-box [(ngModel)]=\"selected_kpi_child_tid\" [readOnly]=\"false\"></dx-text-box>\n </div>\n </div>\n </div>\n\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"px-2 pt-1 w-full\">\n <dx-check-box [(ngModel)]=\"kpi_visibility\" text=\"Visibility\"></dx-check-box>\n </div>\n <div class=\"px-2 pt-1 w-full\">\n <dx-check-box [(ngModel)]=\"kpi_external\" text=\"External KPI\"></dx-check-box>\n </div>\n </div>\n <!-- <div class=\"m-1\">\n <div class=\"px-2 pt-1 w-full\">\n <p class=\"text-lg mt-2\">KPI Info</p>\n <dx-html-editor height=\"'auto'\" [(ngModel)]=\"selected_info\">\n <dxo-toolbar [multiline]=\"false\">\n\n <dxi-item name=\"size\"\n [acceptedValues]=\"['8pt', '10pt', '12pt', '14pt', '18pt', '24pt', '36pt']\"\n [options]=\"{ inputAttr: { 'aria-label': 'Font size' } }\"></dxi-item>\n <dxi-item name=\"font\" [acceptedValues]=\"[\n 'Arial',\n 'Courier New',\n 'Georgia',\n 'Impact',\n 'Lucida Console',\n 'Tahoma',\n 'Times New Roman',\n 'Verdana'\n ]\"\n [options]=\"{ inputAttr: { 'aria-label': 'Font family' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"bold\"></dxi-item>\n <dxi-item name=\"italic\"></dxi-item>\n <dxi-item name=\"underline\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"alignLeft\"></dxi-item>\n <dxi-item name=\"alignCenter\"></dxi-item>\n <dxi-item name=\"alignRight\"></dxi-item>\n <dxi-item name=\"alignJustify\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"orderedList\"></dxi-item>\n <dxi-item name=\"bulletList\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"header\" [acceptedValues]=\"[false, 1, 2, 3, 4, 5]\"\n [options]=\"{ inputAttr: { 'aria-label': 'Header' } }\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"color\"></dxi-item>\n <dxi-item name=\"background\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"link\"></dxi-item>\n <dxi-item name=\"image\"></dxi-item>\n <dxi-item name=\"separator\"></dxi-item>\n <dxi-item name=\"clear\"></dxi-item>\n <dxi-item name=\"codeBlock\"></dxi-item>\n </dxo-toolbar>\n <dxo-media-resizing [enabled]=\"true\"> </dxo-media-resizing>\n <dxo-image-upload [tabs]=\"['file', 'url']\" fileUploadMode=\"base64\">\n </dxo-image-upload>\n </dx-html-editor>\n </div>\n </div> -->\n\n <app-user-access [(userOptionContainer)]=\"userOptionContainer\">\n </app-user-access>\n\n <div class=\"flex flex-auto mt-5 justify-end\">\n <button class=\"{{commonService.btn_success_md}}\" (click)=\"getUpdateKpi()\" *ngIf=\"isEditKpiAdded\">Update KPI\n </button>\n <button class=\"{{commonService.btn_danger_md}}\" (click)=\"getDeletKpi()\" *ngIf=\"isEditKpiAdded\">Delete KPI\n </button>\n <button class=\"{{commonService.btn_success_md}}\" (click)=\"makeNewKpiWithUserEntity()\" *ngIf=\"!isEditKpiAdded\">Create KPI\n </button>\n <button class=\"{{commonService.btn_warning_md}}\" (click)=\"getReseteKpi()\">Reset</button>\n\n </div>\n <!-- </div> -->\n <!-- </ng-container> -->\n </div>\n\n\n\n\n</div>", styles: [":host ::ng-deep treeview .treeview-wrapper{width:100%!important}\n"] }]
17753
17599
  }], ctorParameters: function () { return [{ type: CommonService }, { type: i8.FormBuilder }, { type: CreateKpIService }, { type: i4$1.ToastrService }, { type: i2.Router }]; } });
17754
17600
 
17601
+ class TreeViewDividerItemComponent {
17602
+ constructor(_changeDetectorRef) {
17603
+ this._changeDetectorRef = _changeDetectorRef;
17604
+ this._unsubscribeAll = new Subject();
17605
+ }
17606
+ ngOnInit() {
17607
+ }
17608
+ ngOnDestroy() {
17609
+ this._unsubscribeAll.next(null);
17610
+ this._unsubscribeAll.complete();
17611
+ }
17612
+ }
17613
+ TreeViewDividerItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeViewDividerItemComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
17614
+ TreeViewDividerItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TreeViewDividerItemComponent, selector: "treeview-divider-item", inputs: { item: "item", name: "name" }, ngImport: i0, template: "<!-- Divider -->\n<div class=\"treeview-item-wrapper divider\" [ngClass]=\"item.classes?.wrapper\"></div>", dependencies: [{ kind: "directive", type: i4$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
17615
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeViewDividerItemComponent, decorators: [{
17616
+ type: Component,
17617
+ args: [{ selector: 'treeview-divider-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Divider -->\n<div class=\"treeview-item-wrapper divider\" [ngClass]=\"item.classes?.wrapper\"></div>" }]
17618
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { item: [{
17619
+ type: Input
17620
+ }], name: [{
17621
+ type: Input
17622
+ }] } });
17623
+
17755
17624
  class TreeViewSpacerItemComponent {
17756
17625
  constructor(_changeDetectorRef) {
17757
17626
  this._changeDetectorRef = _changeDetectorRef;
@@ -18058,7 +17927,7 @@ class KpiWithSingleLayoutService {
18058
17927
  return throwError(error);
18059
17928
  }
18060
17929
  getlistKpiBrowser() {
18061
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/listKpiBrowser';
17930
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/listKpiBrowser';
18062
17931
  return this.http
18063
17932
  .get(apiUrl, { withCredentials: true })
18064
17933
  .pipe(map((response) => {
@@ -18067,13 +17936,13 @@ class KpiWithSingleLayoutService {
18067
17936
  }
18068
17937
  getAppPageDetailConfig(pageId) {
18069
17938
  return this.http
18070
- .get(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppPageDetailConfig?pageConfigId=' + pageId, this.options)
17939
+ .get(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageDetailConfig?pageConfigId=' + pageId, this.options)
18071
17940
  .pipe(map((response) => {
18072
17941
  return response;
18073
17942
  }), catchError(this.handleError));
18074
17943
  }
18075
17944
  getAppPageConfigs() {
18076
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppPageConfigs';
17945
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageConfigs';
18077
17946
  return this.http
18078
17947
  .get(apiUrl, { withCredentials: true })
18079
17948
  .pipe(map((response) => {
@@ -18081,7 +17950,7 @@ class KpiWithSingleLayoutService {
18081
17950
  }), catchError(this.handleError));
18082
17951
  }
18083
17952
  getAppDatasetConfigs() {
18084
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppDatasetConfigs';
17953
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppDatasetConfigs';
18085
17954
  return this.http
18086
17955
  .get(apiUrl, { withCredentials: true })
18087
17956
  .pipe(map((response) => {
@@ -18089,7 +17958,7 @@ class KpiWithSingleLayoutService {
18089
17958
  }), catchError(this.handleError));
18090
17959
  }
18091
17960
  getAppDatasetConfig(datasetId) {
18092
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppDatasetConfig?datasetId=' + datasetId;
17961
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppDatasetConfig?datasetId=' + datasetId;
18093
17962
  return this.http
18094
17963
  .get(apiUrl, { withCredentials: true })
18095
17964
  .pipe(map((response) => {
@@ -18098,13 +17967,13 @@ class KpiWithSingleLayoutService {
18098
17967
  }
18099
17968
  getAppFilterConfig(filterId) {
18100
17969
  return this.http
18101
- .get(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppFilterConfig?filterId=' + filterId, this.options)
17970
+ .get(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppFilterConfig?filterId=' + filterId, this.options)
18102
17971
  .pipe(map((response) => {
18103
17972
  return response;
18104
17973
  }), catchError(this.handleError));
18105
17974
  }
18106
17975
  getAppViewConfigs() {
18107
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppViewConfigs';
17976
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppViewConfigs';
18108
17977
  return this.http
18109
17978
  .get(apiUrl, { withCredentials: true })
18110
17979
  .pipe(map((response) => {
@@ -18648,11 +18517,11 @@ class PermissionHelper {
18648
18517
  const { entityName, entityValues } = item;
18649
18518
  if (entityName === 'user' &&
18650
18519
  Array.isArray(entityValues) &&
18651
- (entityValues.includes('${USER}') || entityValues.includes(username))) {
18520
+ (entityValues.includes('{USER}') || entityValues.includes(username))) {
18652
18521
  return true;
18653
18522
  }
18654
18523
  if (entityName === 'role' && Array.isArray(entityValues)) {
18655
- if (entityValues.includes('${ROLE}')) {
18524
+ if (entityValues.includes('{ROLE}')) {
18656
18525
  return true;
18657
18526
  }
18658
18527
  return this.securityPrincipal.roleDetails
@@ -18660,7 +18529,7 @@ class PermissionHelper {
18660
18529
  : true;
18661
18530
  }
18662
18531
  if (entityName === 'group' && Array.isArray(entityValues)) {
18663
- if (entityValues.includes('${GROUP}')) {
18532
+ if (entityValues.includes('{GROUP}')) {
18664
18533
  return true;
18665
18534
  }
18666
18535
  return this.securityPrincipal.groupDetails
@@ -20458,7 +20327,7 @@ class KpiWithMultiLayoutService {
20458
20327
  return throwError(error);
20459
20328
  }
20460
20329
  getlistKpiBrowser() {
20461
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/listKpiBrowser';
20330
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/listKpiBrowser';
20462
20331
  return this.http
20463
20332
  .get(apiUrl, { withCredentials: true })
20464
20333
  .pipe(map((response) => {
@@ -20467,13 +20336,13 @@ class KpiWithMultiLayoutService {
20467
20336
  }
20468
20337
  getAppPageDetailConfig(pageId) {
20469
20338
  return this.http
20470
- .get(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppPageDetailConfig?pageConfigId=' + pageId, this.options)
20339
+ .get(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageDetailConfig?pageConfigId=' + pageId, this.options)
20471
20340
  .pipe(map((response) => {
20472
20341
  return response;
20473
20342
  }), catchError(this.handleError));
20474
20343
  }
20475
20344
  getAppPageConfigs() {
20476
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppPageConfigs';
20345
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageConfigs';
20477
20346
  return this.http
20478
20347
  .get(apiUrl, { withCredentials: true })
20479
20348
  .pipe(map((response) => {
@@ -20481,7 +20350,7 @@ class KpiWithMultiLayoutService {
20481
20350
  }), catchError(this.handleError));
20482
20351
  }
20483
20352
  getAppDatasetConfigs() {
20484
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppDatasetConfigs';
20353
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppDatasetConfigs';
20485
20354
  return this.http
20486
20355
  .get(apiUrl, { withCredentials: true })
20487
20356
  .pipe(map((response) => {
@@ -20489,7 +20358,7 @@ class KpiWithMultiLayoutService {
20489
20358
  }), catchError(this.handleError));
20490
20359
  }
20491
20360
  getAppDatasetConfig(datasetId) {
20492
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppDatasetConfig?datasetId=' + datasetId;
20361
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppDatasetConfig?datasetId=' + datasetId;
20493
20362
  return this.http
20494
20363
  .get(apiUrl, { withCredentials: true })
20495
20364
  .pipe(map((response) => {
@@ -20498,13 +20367,13 @@ class KpiWithMultiLayoutService {
20498
20367
  }
20499
20368
  getAppFilterConfig(filterId) {
20500
20369
  return this.http
20501
- .get(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppFilterConfig?filterId=' + filterId, this.options)
20370
+ .get(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppFilterConfig?filterId=' + filterId, this.options)
20502
20371
  .pipe(map((response) => {
20503
20372
  return response;
20504
20373
  }), catchError(this.handleError));
20505
20374
  }
20506
20375
  getAppViewConfigs() {
20507
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppViewConfigs';
20376
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppViewConfigs';
20508
20377
  return this.http
20509
20378
  .get(apiUrl, { withCredentials: true })
20510
20379
  .pipe(map((response) => {
@@ -21788,7 +21657,7 @@ class LandingComponentService {
21788
21657
  return throwError(error);
21789
21658
  }
21790
21659
  getlistKpiBrowser() {
21791
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/listKpiBrowser';
21660
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/listKpiBrowser';
21792
21661
  return this.http
21793
21662
  .get(apiUrl, { withCredentials: true })
21794
21663
  .pipe(map((response) => {
@@ -21797,13 +21666,13 @@ class LandingComponentService {
21797
21666
  }
21798
21667
  getAppPageDetailConfig(pageId) {
21799
21668
  return this.http
21800
- .get(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppPageDetailConfig?pageConfigId=' + pageId, this.options)
21669
+ .get(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageDetailConfig?pageConfigId=' + pageId, this.options)
21801
21670
  .pipe(map((response) => {
21802
21671
  return response;
21803
21672
  }), catchError(this.handleError));
21804
21673
  }
21805
21674
  getAppPageConfigs() {
21806
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppPageConfigs';
21675
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageConfigs';
21807
21676
  return this.http
21808
21677
  .get(apiUrl, { withCredentials: true })
21809
21678
  .pipe(map((response) => {
@@ -21811,7 +21680,7 @@ class LandingComponentService {
21811
21680
  }), catchError(this.handleError));
21812
21681
  }
21813
21682
  getAppDatasetConfigs() {
21814
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppDatasetConfigs';
21683
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppDatasetConfigs';
21815
21684
  return this.http
21816
21685
  .get(apiUrl, { withCredentials: true })
21817
21686
  .pipe(map((response) => {
@@ -21819,7 +21688,7 @@ class LandingComponentService {
21819
21688
  }), catchError(this.handleError));
21820
21689
  }
21821
21690
  getAppDatasetConfig(datasetId) {
21822
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppDatasetConfig?datasetId=' + datasetId;
21691
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppDatasetConfig?datasetId=' + datasetId;
21823
21692
  return this.http
21824
21693
  .get(apiUrl, { withCredentials: true })
21825
21694
  .pipe(map((response) => {
@@ -21828,13 +21697,13 @@ class LandingComponentService {
21828
21697
  }
21829
21698
  getAppFilterConfig(filterId) {
21830
21699
  return this.http
21831
- .get(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppFilterConfig?filterId=' + filterId, this.options)
21700
+ .get(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppFilterConfig?filterId=' + filterId, this.options)
21832
21701
  .pipe(map((response) => {
21833
21702
  return response;
21834
21703
  }), catchError(this.handleError));
21835
21704
  }
21836
21705
  getAppViewConfigs() {
21837
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppViewConfigs';
21706
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppViewConfigs';
21838
21707
  return this.http
21839
21708
  .get(apiUrl, { withCredentials: true })
21840
21709
  .pipe(map((response) => {
@@ -22051,7 +21920,6 @@ class LandingComponentComponent {
22051
21920
  });
22052
21921
  });
22053
21922
  Promise.all(apiCalls).then(() => {
22054
- debugger;
22055
21923
  this.globalDefaultFilter = filter;
22056
21924
  this.uniqueDataSetObject = this.datasetService.getUniqueDataSetObject();
22057
21925
  this.createDivElements(this.uniqueDataSetObject, true);
@@ -23355,7 +23223,7 @@ class LandingMultiLayoutComponentService {
23355
23223
  return throwError(error);
23356
23224
  }
23357
23225
  getlistKpiBrowser() {
23358
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/listKpiBrowser';
23226
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/listKpiBrowser';
23359
23227
  return this.http
23360
23228
  .get(apiUrl, { withCredentials: true })
23361
23229
  .pipe(map((response) => {
@@ -23364,13 +23232,13 @@ class LandingMultiLayoutComponentService {
23364
23232
  }
23365
23233
  getAppPageDetailConfig(pageId) {
23366
23234
  return this.http
23367
- .get(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppPageDetailConfig?pageConfigId=' + pageId, this.options)
23235
+ .get(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageDetailConfig?pageConfigId=' + pageId, this.options)
23368
23236
  .pipe(map((response) => {
23369
23237
  return response;
23370
23238
  }), catchError(this.handleError));
23371
23239
  }
23372
23240
  getAppPageConfigs() {
23373
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppPageConfigs';
23241
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageConfigs';
23374
23242
  return this.http
23375
23243
  .get(apiUrl, { withCredentials: true })
23376
23244
  .pipe(map((response) => {
@@ -23378,7 +23246,7 @@ class LandingMultiLayoutComponentService {
23378
23246
  }), catchError(this.handleError));
23379
23247
  }
23380
23248
  getAppDatasetConfigs() {
23381
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppDatasetConfigs';
23249
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppDatasetConfigs';
23382
23250
  return this.http
23383
23251
  .get(apiUrl, { withCredentials: true })
23384
23252
  .pipe(map((response) => {
@@ -23386,7 +23254,7 @@ class LandingMultiLayoutComponentService {
23386
23254
  }), catchError(this.handleError));
23387
23255
  }
23388
23256
  getAppDatasetConfig(datasetId) {
23389
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppDatasetConfig?datasetId=' + datasetId;
23257
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppDatasetConfig?datasetId=' + datasetId;
23390
23258
  return this.http
23391
23259
  .get(apiUrl, { withCredentials: true })
23392
23260
  .pipe(map((response) => {
@@ -23395,13 +23263,13 @@ class LandingMultiLayoutComponentService {
23395
23263
  }
23396
23264
  getAppFilterConfig(filterId) {
23397
23265
  return this.http
23398
- .get(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppFilterConfig?filterId=' + filterId, this.options)
23266
+ .get(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppFilterConfig?filterId=' + filterId, this.options)
23399
23267
  .pipe(map((response) => {
23400
23268
  return response;
23401
23269
  }), catchError(this.handleError));
23402
23270
  }
23403
23271
  getAppViewConfigs() {
23404
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppViewConfigs';
23272
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppViewConfigs';
23405
23273
  return this.http
23406
23274
  .get(apiUrl, { withCredentials: true })
23407
23275
  .pipe(map((response) => {
@@ -24912,7 +24780,7 @@ class BookmarkedService {
24912
24780
  return throwError(error);
24913
24781
  }
24914
24782
  getlistKpiBrowser() {
24915
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/listKpiBrowser';
24783
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/listKpiBrowser';
24916
24784
  return this.http
24917
24785
  .get(apiUrl, { withCredentials: true })
24918
24786
  .pipe(map((response) => {
@@ -24921,13 +24789,13 @@ class BookmarkedService {
24921
24789
  }
24922
24790
  getAppPageDetailConfig(pageId) {
24923
24791
  return this.http
24924
- .get(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppPageDetailConfig?pageConfigId=' + pageId, this.options)
24792
+ .get(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageDetailConfig?pageConfigId=' + pageId, this.options)
24925
24793
  .pipe(map((response) => {
24926
24794
  return response;
24927
24795
  }), catchError(this.handleError));
24928
24796
  }
24929
24797
  getAppPageConfigs() {
24930
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppPageConfigs';
24798
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageConfigs';
24931
24799
  return this.http
24932
24800
  .get(apiUrl, { withCredentials: true })
24933
24801
  .pipe(map((response) => {
@@ -24935,7 +24803,7 @@ class BookmarkedService {
24935
24803
  }), catchError(this.handleError));
24936
24804
  }
24937
24805
  getAppDatasetConfigs() {
24938
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppDatasetConfigs';
24806
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppDatasetConfigs';
24939
24807
  return this.http
24940
24808
  .get(apiUrl, { withCredentials: true })
24941
24809
  .pipe(map((response) => {
@@ -24943,7 +24811,7 @@ class BookmarkedService {
24943
24811
  }), catchError(this.handleError));
24944
24812
  }
24945
24813
  getAppDatasetConfig(datasetId) {
24946
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppDatasetConfig?datasetId=' + datasetId;
24814
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppDatasetConfig?datasetId=' + datasetId;
24947
24815
  return this.http
24948
24816
  .get(apiUrl, { withCredentials: true })
24949
24817
  .pipe(map((response) => {
@@ -24952,13 +24820,13 @@ class BookmarkedService {
24952
24820
  }
24953
24821
  getAppFilterConfig(filterId) {
24954
24822
  return this.http
24955
- .get(this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppFilterConfig?filterId=' + filterId, this.options)
24823
+ .get(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppFilterConfig?filterId=' + filterId, this.options)
24956
24824
  .pipe(map((response) => {
24957
24825
  return response;
24958
24826
  }), catchError(this.handleError));
24959
24827
  }
24960
24828
  getAppViewConfigs() {
24961
- const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/kpi-config/getAppViewConfigs';
24829
+ const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppViewConfigs';
24962
24830
  return this.http
24963
24831
  .get(apiUrl, { withCredentials: true })
24964
24832
  .pipe(map((response) => {