gamma-app-controller 1.3.5 → 2.0.0
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.
- package/esm2020/lib/application-controller/application-content.service.mjs +36 -36
- package/esm2020/lib/application-controller/application-menu-controller/application-create-menu/application-create-menu.component.mjs +2 -2
- package/esm2020/lib/application-controller/application-view-components/create-comp-view/create-comp-view.component.mjs +1 -2
- package/esm2020/lib/application-controller/page-controller/page-config/page-config.component.mjs +3 -3
- package/esm2020/lib/application-controller/support-components/dash-chart/dash-chart.component.mjs +5 -3
- package/esm2020/lib/application-controller/support-components/dash-table/dash-table.component.mjs +1 -2
- package/esm2020/lib/shared/advanced-component/gamma-advance-chart/gamma-advance-chart.component.mjs +21 -1
- package/esm2020/lib/shared/advanced-component/gamma-advance-operator-table/gamma-advance-operator-table.component.mjs +6 -2
- package/esm2020/lib/shared/permission-helper.mjs +4 -4
- package/esm2020/lib/shared/user-access/user-access.component.mjs +3 -3
- package/esm2020/lib/template-module/KpiCreationModule/create-kpi-tree.component.mjs +137 -277
- package/esm2020/lib/template-module/KpiCreationModule/createKpi.service.mjs +37 -6
- package/esm2020/lib/template-module/KpiCreationModule/treeview/components/basic/basic.component.mjs +3 -3
- package/esm2020/lib/template-module/KpiCreationModule/treeview/components/collapsable/collapsable.component.mjs +4 -15
- package/esm2020/lib/template-module/KpiCreationModule/treeview/treeview.component.mjs +4 -6
- package/esm2020/lib/template-module/bookmarked-template/bookmarked-layout.service.mjs +8 -8
- package/esm2020/lib/template-module/cdrConfigModule/cdr-browser.service.mjs +2 -2
- package/esm2020/lib/template-module/defaulLandingComponent/landing-component.component.mjs +1 -2
- package/esm2020/lib/template-module/defaulLandingComponent/landing-component.service.mjs +8 -8
- package/esm2020/lib/template-module/defaulLandingMultiLayoutComponent/defaulLandingMultiLayout.service.mjs +8 -8
- package/esm2020/lib/template-module/kpiWithMultiLayout/kpi-multi-layout.service.mjs +8 -8
- package/esm2020/lib/template-module/kpiWithSingleLayout/kpi-single-layout.service.mjs +8 -8
- package/fesm2015/gamma-app-controller.mjs +298 -405
- package/fesm2015/gamma-app-controller.mjs.map +1 -1
- package/fesm2020/gamma-app-controller.mjs +307 -405
- package/fesm2020/gamma-app-controller.mjs.map +1 -1
- package/lib/application-controller/application-content.service.d.ts +1 -1
- package/lib/application-controller/support-components/dash-chart/dash-chart.component.d.ts +1 -0
- package/lib/template-module/KpiCreationModule/create-kpi-tree.component.d.ts +10 -15
- package/lib/template-module/KpiCreationModule/createKpi.service.d.ts +4 -0
- 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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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 + '/
|
|
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
|
-
|
|
672
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
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 + '/
|
|
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 + '/
|
|
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: ['
|
|
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: ['
|
|
4325
|
+
entityValues: ['{USER}']
|
|
4326
4326
|
});
|
|
4327
4327
|
this.emitChanges();
|
|
4328
4328
|
}
|
|
@@ -4375,6 +4375,7 @@ class DashChartComponent {
|
|
|
4375
4375
|
"title": "",
|
|
4376
4376
|
"argumentField": "",
|
|
4377
4377
|
"chartGroupBy": "",
|
|
4378
|
+
"chartSortBy": "",
|
|
4378
4379
|
"verticalAlignment": "bottom",
|
|
4379
4380
|
"horizontalAlignment": "center",
|
|
4380
4381
|
"size": "250",
|
|
@@ -4450,6 +4451,7 @@ class DashChartComponent {
|
|
|
4450
4451
|
this.mainChartCourceObject['kpiConfig'] = value.selectedWidgetConfig;
|
|
4451
4452
|
value.selectedWidgetConfig['keyToPass'] = (value.selectedWidgetConfig['keyToPass']) ? value.selectedWidgetConfig['keyToPass'] : [];
|
|
4452
4453
|
value.selectedWidgetConfig['dataConfig']['chartGroupBy'] = (value.selectedWidgetConfig['dataConfig']['chartGroupBy']) ? value.selectedWidgetConfig['dataConfig']['chartGroupBy'] : "";
|
|
4454
|
+
value.selectedWidgetConfig['dataConfig']['chartSortBy'] = (value.selectedWidgetConfig['dataConfig']['chartSortBy']) ? value.selectedWidgetConfig['dataConfig']['chartSortBy'] : "";
|
|
4453
4455
|
if (value.selectedWidgetConfig['dataConfig']['chartGroupBy']) {
|
|
4454
4456
|
const { dataSourceForChart, listOfGroupByData } = this.getStackBarChart(this.previewData, this.chartConfig.argumentField, this.chartConfig.chart_config[0].valueField, value.selectedWidgetConfig['dataConfig']['chartGroupBy']);
|
|
4455
4457
|
this.dataSourseForChart = dataSourceForChart;
|
|
@@ -4796,10 +4798,10 @@ class DashChartComponent {
|
|
|
4796
4798
|
}
|
|
4797
4799
|
}
|
|
4798
4800
|
DashChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DashChartComponent, deps: [{ token: CommonService }, { token: ApplicationContentService }, { token: i4$1.ToastrService }], target: i0.ɵɵFactoryTarget.Component });
|
|
4799
|
-
DashChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DashChartComponent, selector: "app-dash-chart", inputs: { chartconfigData: ["datasetmodal", "chartconfigData"] }, outputs: { getChartConfigOutPut: "getChartConfigOutPut" }, ngImport: i0, template: "<div class=\"mx-2\">\n <div class=\"w-full m-2 border\">\n <ng-container *ngIf=\"!isJsonPreview\">\n <pre><code>{{jsaonDatasource | json}}</code></pre>\n </ng-container>\n <ng-container *ngIf=\"isJsonPreview\">\n <ng-container *ngIf=\"chartType === 'doughnut' || chartType === 'pie'\">\n <div\n class=\"m-3 p-4 bg-white border border-gray-200 rounded-lg shadow-md dark:bg-gray-800 dark:border-gray-700\">\n <!-- <h6 class=\"mb-1 text-md font-bold tracking-tight text-gray-900 dark:text-white border-b pb-3\">\n {{widGetConfig.widgetTitle}}\n </h6> -->\n <dx-pie-chart id=\"pie\" [type]=\"chartType\"\n [title]=\"{ text: chartConfig.caption, font: { size: 14 } }\" palette=\"Soft Pastel\"\n [dataSource]=\"dataSourseForChart\" centerTemplate=\"centerTemplate\"\n (onPointClick)=\"pointClickHandler($event)\" [palette]=\"chartConfig.palette\">\n\n <ng-container *ngFor=\"let item of chartConfig.chart_config\">\n <ng-container *ngIf=\"item.color\">\n <dxi-series argumentField={{chartConfig.argumentField}} valueField=\"{{item.valueField}}\"\n name=\"{{item.name}}\" color=\"{{item.color}}\">\n <dxo-label [visible]=\"chartConfig.labelDisplay\" format=\"#,##0.##\">\n <dxo-connector [visible]=\"true\"></dxo-connector>\n </dxo-label>\n </dxi-series>\n </ng-container>\n <ng-container *ngIf=\"!item.color\">\n <dxi-series argumentField={{chartConfig.argumentField}} valueField=\"{{item.valueField}}\"\n name=\"{{item.name}}\">\n <dxo-label [visible]=\"chartConfig.labelDisplay\" format=\"#,##0.##\">\n <dxo-connector [visible]=\"true\"></dxo-connector>\n </dxo-label>\n </dxi-series>\n </ng-container>\n </ng-container>\n <dxo-legend [visible]=\"chartConfig.legendDisplay\"\n horizontalAlignment=\"{{chartConfig.horizontalAlignment}}\"\n verticalAlignment=\"{{chartConfig.verticalAlignment}}\"></dxo-legend>\n <!-- <dxo-export [enabled]=\"true\"></dxo-export> -->\n <dxo-tooltip [enabled]=\"true\" [customizeTooltip]=\"customizeTooltip\" format=\"#,##0.##\">\n </dxo-tooltip>\n <ng-container *ngIf=\"chartType === 'doughnut'\">\n <svg *dxTemplate=\"let pieChart of 'centerTemplate'\">\n <circle cx=\"100\" cy=\"100\" [attr.r]=\"pieChart.getInnerRadius() - 6\" fill=\"gray\"\n opacity=\"0.0001\">\n </circle>\n\n <text text-anchor=\"middle\" style=\"font-size: 28px\" x=\"100\" y=\"100\" fill=\"#eee\" *ngIf=\"chartConfig.displayCenterLabel\">\n <tspan x=\"100\">{{ calculateTotal(pieChart) }}</tspan>\n <!-- display: inline -->\n <!-- <tspan x=\"100\" dy=\"20px\" style=\"font-weight: 600\"></tspan> -->\n </text>\n </svg>\n </ng-container>\n\n </dx-pie-chart>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"chartType !== 'doughnut' && chartType !== 'funnel' && chartType !== 'bubble' && chartType !== 'pie'\">\n <div\n class=\"m-3 p-4 bg-white border border-gray-200 rounded-lg shadow-md dark:bg-gray-800 dark:border-gray-700\">\n <!-- <h6 class=\"mb-1 text-md font-bold tracking-tight text-gray-900 dark:text-white border-b pb-3\">\n {{widGetConfig.widgetTitle}}\n </h6> -->\n <dx-chart id=\"chart\" [dataSource]=\"dataSourseForChart\" [palette]=\"chartConfig.palette\"\n [title]=\"{ text: chartConfig.caption, font: { size: 14 } }\"\n [valueAxis]=\"chartConfig.valueAxisConfig\">\n <ng-container *ngFor=\"let item of chartConfig.chart_config\">\n <ng-container *ngIf=\"item.axis\">\n <dxi-value-axis [name]=\"item.axis\" [position]=\"item.position\">\n <dxo-title [text]=\"item.name\"></dxo-title>\n </dxi-value-axis>\n </ng-container>\n </ng-container>\n <dxo-argument-axis>\n <dxo-label overlappingBehavior=\"rotate\" [rotationAngle]=\"270\"></dxo-label>\n </dxo-argument-axis>\n <dxo-tooltip [enabled]=\"true\" [shared]=\"true\"></dxo-tooltip>\n <dxo-common-series-settings\n [argumentField]=\"chartConfig.argumentField\"></dxo-common-series-settings>\n <!-- for others single access chart start -->\n <ng-container *ngIf=\"chartType !== 'stackedBar' && chartType !== 'line'\">\n <ng-container *ngFor=\"let item of chartConfig.chart_config\">\n <ng-container *ngIf=\"item.color\">\n <dxi-series type=\"{{item.type}}\" valueField=\"{{item.valueField}}\"\n axis=\"{{item.axis}}\" name=\"{{item.name}}\" color=\"{{item.color}}\">\n </dxi-series>\n </ng-container>\n <ng-container *ngIf=\"!item.color\">\n <dxi-series type=\"{{item.type}}\" valueField=\"{{item.valueField}}\"\n axis=\"{{item.axis}}\" name=\"{{item.name}}\">\n </dxi-series>\n </ng-container>\n </ng-container>\n </ng-container>\n <!-- for others single access chart end -->\n\n <!-- for stackber start -->\n <ng-container *ngIf=\"chartType === 'stackedBar' || chartType === 'line'\">\n <ng-container *ngFor=\"let item of chartWithThreeDimentionDataSeries\">\n <dxi-series valueField=\"{{item}}\" name=\"{{item}}\" type=\"{{chartType}}\"></dxi-series>\n </ng-container>\n </ng-container>\n <!-- for stackber end -->\n <dxo-size [height]=\"chartConfig.size\"></dxo-size>\n <dxo-legend [visible]=\"chartConfig.legendDisplay\"\n [verticalAlignment]=\"chartConfig.verticalAlignment\"\n [horizontalAlignment]=\"chartConfig.horizontalAlignment\"></dxo-legend>\n </dx-chart>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"chartType === 'funnel'\">\n\n </ng-container>\n <ng-container *ngIf=\"chartType === 'bubble'\">\n <div class=\"mx-5\">\n <ng-container *ngFor=\"let item of heatChartDataSource.dataSet\">\n <div class=\"flex flex-row\">\n <div class=\"h-10 text-sm items-center min-w-24 max-w-[30%] justify-center flex\">\n {{item.datasource}}\n </div>\n <div class=\"inline-block \">\n <div class=\"flex flex-nowrap justify-center \">\n <ng-container *ngFor=\"let box of item.dataset\">\n <div class=\"flex-shrink-0 min-w-10 max-w-[20%] h-10 text-sm cursor-pointer flex items-center justify-center text-gray-800\"\n [matTooltip]=\"'Record Date: ' + box.recordDate + '\\nRecharge Count: ' + box.toolTip\"\n matTooltipClass=\"custom-tooltip\">\n <div class=\"rounded-full\" [ngStyle]=\"{\n 'background-color': box.isHovered ? 'rgb(135, 184, 106)' : box.color,\n 'width.px': box.size,\n 'hover': box.hover,\n 'height.px': box.size\n }\" (mouseenter)=\"box.isHovered = true\" (mouseleave)=\"box.isHovered = false\">\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n <div class=\"inline-block\">\n <div class=\"flex flex-nowrap justify-center\">\n <div class=\"flex-shrink-0 w-24 max-w-[20%] h-full flex items-center justify-center\"></div>\n <div *ngFor=\"let item of heatChartDataSource.argumentValue\"\n class=\"flex-shrink-0 w-10 max-w-[20%] min-h-14 flex text-sm items-center justify-center my-1\"\n [ngStyle]=\"{'height': 'auto'}\">\n <span class=\"text-rotate\">\n {{item}}\n </span>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n\n </ng-container>\n\n </div>\n <div class=\"w-full m-2 border\">\n <div class=\"flex flex-row mb-1\">\n <div class=\"w-1/3 mx-1\">\n <dx-select-box [dataSource]=\"chartAxisSource\" [(ngModel)]=\"chartAccess\" placeholder=\"Chart Type\"\n displayExpr=\"name\" valueExpr=\"value\" (onValueChanged)=\"getChartAccessType($event)\">\n </dx-select-box>\n </div>\n <div class=\"w-1/3 mx-1\">\n <ng-container *ngIf=\"chartAccess === 'single'\">\n <dx-select-box [items]=\"chartTypeSource\" (onValueChanged)=\"getChartType($event)\"\n [(ngModel)]=\"chartType\"></dx-select-box>\n </ng-container>\n <ng-container *ngIf=\"chartAccess === 'multy'\">\n <dx-select-box [items]=\"componentNamesForMultyAccess\" displayExpr=\"item\" valueExpr=\"compName\"\n [(ngModel)]=\"componentName\"></dx-select-box>\n </ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"chartAccess === 'single'\">\n\n <div class=\"mb-4 border-b border-gray-200 dark:border-gray-700\">\n <ul class=\"flex flex-wrap -mb-px text-sm font-medium text-center\" role=\"tablist\">\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'basic',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'basic'\n }\" (click)=\"setActiveTab('basic')\" type=\"button\" role=\"tab\">\n Basic\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'columns',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'columns'\n }\" (click)=\"setActiveTab('columns')\" type=\"button\" role=\"tab\">\n Columns\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'properties',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'properties'\n }\" (click)=\"setActiveTab('properties')\" type=\"button\" role=\"tab\">\n Properties\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'permission',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'permission'\n }\" (click)=\"setActiveTab('permission')\" type=\"button\" role=\"tab\">\n Manage Permissions\n </button>\n </li>\n </ul>\n </div>\n\n <div id=\"default-styled-tab-content\">\n <div *ngIf=\"activeTab === 'basic'\">\n <div class=\"flex flex-col flex-auto min-w-0\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Filter Title\n Config\n </div>\n <div class=\"pt-2 border-x border-b \">\n <div class=\"my-2 flex justify-between\">\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-1\"> Title</div>\n <dx-text-box\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.commonConfig.title\"></dx-text-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-1\"> Data Field</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.commonConfig.dataField\"></dx-select-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-2\"> Display Format </div>\n <dx-select-box [items]=\"['daily','hourly','monthly']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.formate\"></dx-select-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-2\"> Key To Pass </div>\n <dx-tag-box [items]=\"configColume\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.keyToPass\"></dx-tag-box>\n </div>\n\n </div>\n </div>\n </div>\n <div class=\"flex flex-wrap justify-between my-2\">\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1 \">Legend Horizontal Alignment</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['right','left','center']\"\n [(ngModel)]=\"chartConfig.horizontalAlignment\"></dx-select-box>\n\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Legend Vertical Alignment</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['top','bottom']\"\n [(ngModel)]=\"chartConfig.verticalAlignment\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1 mt-8\"></div>\n <dx-check-box [(ngModel)]=\"chartConfig.legendDisplay\" text=\"Legend Display\"></dx-check-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Argument Field</div>\n <dx-select-box [items]=\"configColume\"\n [(ngModel)]=\"chartConfig.argumentField\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Size</div>\n <dx-text-box [(ngModel)]=\"chartConfig.size\"></dx-text-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Caption</div>\n <dx-text-box [(ngModel)]=\"chartConfig.caption\"></dx-text-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Display Formate </div>\n <dx-select-box [items]=\"['daily','hourly','monthly']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.formate\"\n [readOnly]=\"false\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Date Format </div>\n <dx-select-box [items]=\"['MM-DD','YYYY-MM-DD']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.displayDateFormat\"></dx-select-box>\n </div>\n\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2 mt-6\"> </div>\n <dx-check-box [(ngModel)]=\"mainChartCourceObject.kpiConfig.descendingOrder\"\n text=\"Descending Order\"></dx-check-box>\n </div>\n <div class=\"w-2/3 px-2 mt-2\">\n <div class=\" flex flex-row\">\n <div class=\"mr-2\">\n <div class=\"text-md mb-1\"> Color Palette</div>\n <dx-select-box [items]=\"doughnut_color_palette\"\n [(ngModel)]=\"chartConfig.palette\"></dx-select-box>\n </div>\n <div class=\"mt-7\">\n <dx-check-box [value]=\"chartConfig.labelDisplay\"\n [(ngModel)]=\"chartConfig.labelDisplay\" text=\"Label Display\"></dx-check-box>\n </div>\n\n </div>\n\n\n </div>\n\n\n\n\n </div>\n\n <div class=\"m-3 p-4 bg-white border border-gray-300 rounded-lg shadow-md dark:bg-gray-800 dark:border-gray-700\"\n *ngIf=\"isAdvanceContainer\">\n <h6\n class=\"mb-2 text-lg tracking-tight text-gray-900 dark:text-white border-b pb-3 flex items-center capitalize\">\n Advance Columns for {{chartType}} Chart\n <div class=\"ml-auto\">\n\n </div>\n </h6>\n <div class=\"flex flex-row\" *ngIf=\"chartType === 'stackedBar' || chartType === 'line' \">\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Chart Group By </div>\n <dx-select-box [items]=\"configColume\" (onValueChanged)=\"getChartStackbarChart($event)\"\n [(ngModel)]=\"chartConfig.chartGroupBy\"></dx-select-box>\n </div>\n </div>\n <div class=\"flex flex-row\" *ngIf=\"chartType === 'bubble'\">\n <div class=\" flex flex-row\">\n <div class=\"mr-2 w-full\">\n <div class=\"text-md mb-1\"> Source Field</div>\n <dx-select-box [items]=\"configColume\"\n [(ngModel)]=\"chartConfig.sourceField\"></dx-select-box>\n </div>\n <div class=\"mr-2 w-full\">\n <div class=\"text-md mb-1\"> Min Bubble Size</div>\n <dx-text-box [(ngModel)]=\"chartConfig.minBubbleSize\"></dx-text-box>\n </div>\n <div class=\"mr-2 w-full\">\n <div class=\"text-md mb-1\"> Max bubble size</div>\n <dx-text-box [(ngModel)]=\"chartConfig.maxBubbleSize\"></dx-text-box>\n </div>\n </div>\n </div>\n <div class=\"flex flex-row\" *ngIf=\"chartType === 'doughnut' || chartType === 'pie'\">\n <div class=\" flex flex-row\">\n <!-- <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Chart Group By </div>\n <dx-select-box [items]=\"configColume\"\n (onValueChanged)=\"getChartStackbarChart($event)\"\n [(ngModel)]=\"chartConfig.chartGroupBy\"></dx-select-box>\n\n\n </div> -->\n <div class=\"mt-7 mx-2\">\n <dx-check-box [(ngModel)]=\"chartConfig.displayCenterLabel\"\n text=\"Display Center Label\"></dx-check-box>\n </div>\n </div>\n </div>\n\n </div>\n </div>\n <div *ngIf=\"activeTab === 'columns'\">\n <div class=\"h-60 overflow-x-auto\">\n <div class=\" border-x border-b \">\n <div class=\"py-1 flex flex-row border-b\"\n *ngFor=\"let item of chartConfig.chart_config; let i = index\">\n\n <div class=\"px-1 mb-1 w-1/3\">\n <div class=\"text-md mb-1\"> Value Field</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"item.valueField\"></dx-select-box>\n </div>\n\n <div class=\"px-1 mb-1 w-1/4\" *ngIf=\"chartType !== 'doughnut' && chartType !== 'pie'\">\n <div class=\"text-md mb-1\"> Axis</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"item.axis\"></dx-select-box>\n </div>\n <div class=\" px-2 mb-1 w-1/3\">\n <div class=\"text-md mb-1\"> Position</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['right','left']\"\n [(ngModel)]=\"item.position\"></dx-select-box>\n </div>\n <div class=\"px-1 mb-1 w-1/4\">\n <div class=\"text-md mb-1\"> Name</div>\n <dx-text-box [(ngModel)]=\"item.name\"></dx-text-box>\n </div>\n <div class=\"text-center mt-6 w-1/6\">\n <button *ngIf=\"i !== 0\" class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItem(i, 'up')\">\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\n </button>\n <button *ngIf=\"i !== chartConfig.chart_config.length - 1\"\n class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItem(i, 'down')\">\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\n </button>\n\n <button class=\"{{commonService.btn_danger_sm}} cursor-pointer\"\n (click)=\"deleteColumns(i)\"><i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n <div class=\"flex flex-row justify-end my-2\"\n *ngIf=\"chartType === 'doughnut' || chartType === 'pie'\">\n <button class=\"{{commonService.btn_primary_sm}} cursor-pointer\"\n (click)=\"addColumns()\">Add\n Series</button>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"activeTab === 'properties'\">\n <div class=\"h-full overflow-x-auto\">\n <app-loader *ngIf=\"isLoader\"></app-loader>\n <ng-container *ngIf=\"!isLoader\">\n <div class=\"flex flex-row justify-between border-b py-3\">\n <div class=\"mx-2\">\n <dx-check-box [value]=\"viewProperties.enableClickEvent\"\n [(ngModel)]=\"viewProperties.enableClickEvent\"\n text=\"Enable Click Event\"></dx-check-box>\n </div>\n <div class=\"mx-2\">\n <dx-check-box [value]=\"viewProperties.enableRightClickEvent\"\n [(ngModel)]=\"viewProperties.enableRightClickEvent\"\n text=\"Enable Right Click\"></dx-check-box>\n </div>\n </div>\n <div class=\"w-full p-2\" *ngIf=\"viewProperties.enableClickEvent\">\n\n <div class=\"flex flex-col flex-auto min-w-0 my-2\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Event\n Type\n Option\n </div>\n <div class=\"w-full p-3 border-x border-b \">\n <div class=\"flex flex-row\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Event Type</div>\n </div>\n <div class=\"w-full\">\n <dx-select-box\n [items]=\"['drilldown','sameViewDrilldown','optionalDrillDown','popup','navigateToPage']\"\n (onValueChanged)=\"getSelectedEventType($event)\"\n [(ngModel)]=\"viewProperties.clickEventOptions.eventType\"></dx-select-box>\n </div>\n </div>\n <ng-container *ngIf=\"viewProperties.clickEventOptions.eventType === 'popup'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views For Popup</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'navigateToPage'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full mx-2\">\n <div class=\"text-md mb-2\"> Associated Pages</div>\n <dx-select-box [items]=\"allConfiguredPage\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedPage\"\n valueExpr=\"pageId\" displayExpr=\"pageName\"\n [searchEnabled]=\"true\"></dx-select-box>\n </div>\n <div class=\"w-full mx-2\">\n <div class=\"text-md mb-2\"> Associated Params</div>\n <dx-text-box\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedParams\"></dx-text-box>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"viewProperties.clickEventOptions.eventType === 'drilldown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'sameViewDrilldown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'optionalDrillDown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <ng-container\n *ngFor=\"let item of optionalDrilDownDataSource;let i = index;\">\n\n <div class=\"flex flex-row justify-between\">\n <div class=\"mx-2 w-1/2\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"item.viewId\" valueExpr=\"viewId\"\n displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [maxDisplayedTags]=\"2\"\n [searchEnabled]=\"true\"></dx-tag-box>\n\n </div>\n <div class=\"mx-2 w-1/2\">\n <div class=\"text-md mb-2\"> Associated Params</div>\n <dx-text-box\n [(ngModel)]=\"item.filterCondition\"></dx-text-box>\n </div>\n <div class=\"mx-2\">\n <button\n class=\"{{commonService.btn_danger_sm}} cursor-pointer mt-8\"\n (click)=\"deleteAssociatedParams(i)\"><i\n class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n <div class=\"flex flex-row justify-end mt-4\">\n <button class=\"{{commonService.btn_primary_sm}} cursor-pointer\"\n (click)=\"addAssociatedParams()\">Add\n Params</button>\n </div>\n </div>\n </div>\n </ng-container>\n <button class=\"{{commonService.btn_light_md}} cursor-pointer mt-4\"\n (click)=\"resetViewProprstise()\">Reset All Event</button>\n </div>\n </div>\n\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"activeTab === 'permission'\">\n <div class=\"h-full overflow-x-auto\">\n <app-user-access [(userOptionContainer)]=\"userOptionContainer\">\n </app-user-access>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"chartAccess === 'multy'\">\n <div class=\"mb-4 border-b border-gray-200 dark:border-gray-700\">\n <ul class=\"flex flex-wrap -mb-px text-sm font-medium text-center\" role=\"tablist\">\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'basic',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'basic'\n }\" (click)=\"setActiveTab('basic')\" type=\"button\" role=\"tab\">\n Basic\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'columns',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'columns'\n }\" (click)=\"setActiveTab('columns')\" type=\"button\" role=\"tab\">\n Columns\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'properties',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'properties'\n }\" (click)=\"setActiveTab('properties')\" type=\"button\" role=\"tab\">\n Properties\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'permission',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'permission'\n }\" (click)=\"setActiveTab('permission')\" type=\"button\" role=\"tab\">\n Manage Permissions\n </button>\n </li>\n </ul>\n </div>\n\n <div id=\"default-styled-tab-content\">\n <div *ngIf=\"activeTab === 'basic'\">\n <div class=\"flex flex-col flex-auto min-w-0\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Filter Title\n Config\n </div>\n <div class=\"pt-2 border-x border-b \">\n <div class=\"my-2 flex justify-between\">\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-1\"> Title</div>\n <dx-text-box\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.commonConfig.title\"></dx-text-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-1\"> Data Field</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.commonConfig.dataField\"></dx-select-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-2\"> Display Format </div>\n <dx-select-box [items]=\"['daily','hourly','monthly']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.formate\"></dx-select-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-2\"> Key To Pass </div>\n <dx-tag-box [items]=\"configColume\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.keyToPass\"></dx-tag-box>\n </div>\n\n </div>\n </div>\n </div>\n <div class=\"flex flex-wrap justify-between my-2\">\n <div class=\"w-1/3 px-2\">\n <div class=\"text-md mb-1\">Legend Horizontal Alignment</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['right','left','center']\" [value]=\"'center'\"\n [(ngModel)]=\"chartConfig.horizontalAlignment\"></dx-select-box>\n\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> legent Vertical Alignment</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['top','bottom']\" [value]=\"'bottom'\"\n [(ngModel)]=\"chartConfig.verticalAlignment\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1 mt-8\"></div>\n <dx-check-box [(ngModel)]=\"chartConfig.legendDisplay\" text=\"Legend Display\"></dx-check-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Argument Field</div>\n <dx-select-box [items]=\"configColume\"\n [(ngModel)]=\"chartConfig.argumentField\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Size</div>\n <dx-text-box [(ngModel)]=\"chartConfig.size\"></dx-text-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Caption</div>\n <dx-text-box [(ngModel)]=\"chartConfig.caption\"></dx-text-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Display Format </div>\n <dx-select-box [items]=\"['daily','hourly','monthly']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.formate\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Date Format </div>\n <dx-select-box [items]=\"['MM-DD','YYYY-MM-DD']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.displayDateFormat\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2 mt-6\"> </div>\n <dx-check-box [(ngModel)]=\"mainChartCourceObject.kpiConfig.descendingOrder\"\n text=\"Descending Order\"></dx-check-box>\n </div>\n </div>\n\n\n </div>\n <div *ngIf=\"activeTab === 'columns'\">\n <dx-scroll-view class=\"h-full\" [width]=\"'100%'\" [height]=\"'100%'\">\n <div class=\" border-x border-b \">\n <div class=\"py-1 flex flex-wrap border-b\"\n *ngFor=\"let item of chartConfig.chart_config; let i = index;\">\n\n <div class=\"px-2 mb-1 w-1/3\">\n <div class=\"text-md mb-2\"> Type</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"chartTypeSource\" [value]=\"'spline'\"\n [(ngModel)]=\"item.type\"></dx-select-box>\n </div>\n <div class=\"px-2 mb-1 w-1/3\">\n <div class=\"text-md mb-1\"> Value Field</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"item.valueField\"></dx-select-box>\n </div>\n\n <div class=\"px-2 mb-1 w-1/3\">\n <div class=\"text-md mb-1\"> Axis</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"item.axis\"></dx-select-box>\n </div>\n <div class=\" px-2 mb-1 w-1/4\">\n <div class=\"text-md mb-1\"> Position</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['right','left']\"\n [(ngModel)]=\"item.position\"></dx-select-box>\n </div>\n <div class=\"px-2 mb-1 w-1/4\">\n <div class=\"text-md mb-1\"> Name</div>\n <dx-text-box [(ngModel)]=\"item.name\"></dx-text-box>\n </div>\n <div class=\"px-2 mb-1 w-1/4\">\n <div class=\"text-md mb-2\"> Color</div>\n <dx-color-box [(ngModel)]=\"item.color\"></dx-color-box>\n </div>\n <div class=\"text-center my-1 w-1/4\">\n <button *ngIf=\"i !== 0\" class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItem(i, 'up')\">\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\n </button>\n <button *ngIf=\"i !== chartConfig.chart_config.length - 1\"\n class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItem(i, 'down')\">\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\n </button>\n\n <button class=\"{{commonService.btn_danger_sm}} cursor-pointer\"\n (click)=\"deleteColumns(i)\"><i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n <div class=\"flex flex-row justify-end my-2\">\n <button class=\"{{commonService.btn_primary_sm}} cursor-pointer\"\n (click)=\"addColumns()\">Add\n Columns</button>\n </div>\n </div>\n </dx-scroll-view>\n </div>\n <div *ngIf=\"activeTab === 'properties'\">\n <div class=\"h-full overflow-x-auto\">\n <app-loader *ngIf=\"isLoader\"></app-loader>\n <ng-container *ngIf=\"!isLoader\">\n <div class=\"flex flex-row justify-between border-b py-3\">\n <div class=\"mx-2\">\n <dx-check-box [value]=\"viewProperties.enableClickEvent\"\n [(ngModel)]=\"viewProperties.enableClickEvent\"\n text=\"Enable Click Event\"></dx-check-box>\n </div>\n <div class=\"mx-2\">\n <dx-check-box [value]=\"viewProperties.enableRightClickEvent\"\n [(ngModel)]=\"viewProperties.enableRightClickEvent\"\n text=\"Enable Right Click\"></dx-check-box>\n </div>\n </div>\n <div class=\"w-full p-2\" *ngIf=\"viewProperties.enableClickEvent\">\n\n <div class=\"flex flex-col flex-auto min-w-0 my-2\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Event\n Type\n Option\n </div>\n <div class=\"w-full p-3 border-x border-b \">\n <div class=\"flex flex-row\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Event Type</div>\n </div>\n <div class=\"w-full\">\n <dx-select-box\n [items]=\"['drilldown','sameViewDrilldown','optionalDrillDown','popup','navigateToPage']\"\n (onValueChanged)=\"getSelectedEventType($event)\"\n [(ngModel)]=\"viewProperties.clickEventOptions.eventType\"></dx-select-box>\n </div>\n </div>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'navigateToPage'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full mx-2\">\n <div class=\"text-md mb-2\"> Associated Pages</div>\n <dx-select-box [items]=\"allConfiguredPage\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedPage\"\n valueExpr=\"pageId\" displayExpr=\"pageName\"\n [searchEnabled]=\"true\"></dx-select-box>\n </div>\n <div class=\"w-full mx-2\">\n <div class=\"text-md mb-2\"> Associated Params</div>\n <dx-text-box\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedParams\"></dx-text-box>\n\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"viewProperties.clickEventOptions.eventType === 'drilldown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"viewProperties.clickEventOptions.eventType === 'popup'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views For Popup</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'sameViewDrilldown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'optionalDrillDown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <ng-container\n *ngFor=\"let item of optionalDrilDownDataSource;let i = index;\">\n\n <div class=\"flex flex-row justify-between\">\n <div class=\"mx-2 w-1/2\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"item.viewId\" valueExpr=\"viewId\"\n displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [maxDisplayedTags]=\"2\"\n [searchEnabled]=\"true\"></dx-tag-box>\n\n </div>\n <div class=\"mx-2 w-1/2\">\n <div class=\"text-md mb-2\"> Associated Params</div>\n <dx-text-box\n [(ngModel)]=\"item.filterCondition\"></dx-text-box>\n </div>\n <div class=\"mx-2\">\n <button\n class=\"{{commonService.btn_danger_sm}} cursor-pointer mt-8\"\n (click)=\"deleteAssociatedParams(i)\"><i\n class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n <div class=\"flex flex-row justify-end mt-4\">\n <button class=\"{{commonService.btn_primary_sm}} cursor-pointer\"\n (click)=\"addAssociatedParams()\">Add\n Params</button>\n </div>\n </div>\n </div>\n </ng-container>\n <button class=\"{{commonService.btn_light_md}} cursor-pointer mt-4\"\n (click)=\"resetViewProprstise()\">Reset All Event</button>\n </div>\n </div>\n\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"activeTab === 'permission'\">\n <div class=\"h-full overflow-x-auto\">\n <app-user-access [(userOptionContainer)]=\"userOptionContainer\">\n </app-user-access>\n </div>\n </div>\n </div>\n </ng-container>\n\n\n\n </div>\n\n <div class=\"flex flex-row border-t pl-3\">\n <div class=\"flex justify-start mx-1\">\n <button class=\"{{commonService.btn_warning_md}} cursor-pointer mt-2\" (click)=\"isJsonPreview = true\">\n Preview</button>\n <button class=\"{{commonService.btn_primary_md}} cursor-pointer mt-2\" (click)=\"isJsonPreview = false\">Data\n Preview</button>\n </div>\n <div class=\"flex justify-end mx-1 flex-grow\">\n <button class=\"{{commonService.btn_success_md}} cursor-pointer mt-2\"\n (click)=\"getSaveChartConfig()\">Submit</button>\n </div>\n </div>\n</div>", styles: [""], 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: "directive", type: i4$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i6.DxoLabelComponent, selector: "dxo-label", inputs: ["connectorColor", "connectorWidth", "customizeText", "font", "format", "indent", "visible", "horizontalAlignment", "position", "text", "verticalAlignment", "alignment", "customizeHint", "displayMode", "indentFromAxis", "overlappingBehavior", "rotationAngle", "staggeringSpacing", "template", "textOverflow", "wordWrap", "argumentFormat", "backgroundColor", "border", "connector", "displayFormat", "horizontalOffset", "showForZeroValues", "verticalOffset", "hideFirstOrLast", "indentFromTick", "useRangeColors", "location", "showColon", "radialOffset", "topIndent", "shadow", "useNodeColors", "dataField", "enabled"] }, { kind: "component", type: i6.DxoLegendComponent, selector: "dxo-legend", inputs: ["backgroundColor", "border", "columnCount", "columnItemSpacing", "customizeHint", "customizeItems", "customizeText", "font", "horizontalAlignment", "itemsAlignment", "itemTextFormat", "itemTextPosition", "margin", "markerSize", "markerTemplate", "orientation", "paddingLeftRight", "paddingTopBottom", "rowCount", "rowItemSpacing", "title", "verticalAlignment", "visible", "hoverMode", "position"] }, { kind: "component", type: i6.DxoTitleComponent, selector: "dxo-title", inputs: ["font", "horizontalAlignment", "margin", "placeholderSize", "subtitle", "text", "verticalAlignment", "textOverflow", "wordWrap", "alignment"] }, { kind: "component", type: i6.DxoSizeComponent, selector: "dxo-size", inputs: ["height", "width"] }, { kind: "component", type: i6.DxoTooltipComponent, selector: "dxo-tooltip", inputs: ["arrowLength", "border", "color", "container", "contentTemplate", "cornerRadius", "customizeTooltip", "enabled", "font", "format", "interactive", "opacity", "paddingLeftRight", "paddingTopBottom", "shadow", "zIndex", "argumentFormat", "location", "shared", "isShown", "text", "position", "showMode", "customizeLinkTooltip", "customizeNodeTooltip", "linkTooltipTemplate", "nodeTooltipTemplate"] }, { kind: "component", type: i7$1.DxChartComponent, selector: "dx-chart", inputs: ["adaptiveLayout", "adjustOnZoom", "animation", "annotations", "argumentAxis", "autoHidePointMarkers", "barGroupPadding", "barGroupWidth", "commonAnnotationSettings", "commonAxisSettings", "commonPaneSettings", "commonSeriesSettings", "containerBackgroundColor", "crosshair", "customizeAnnotation", "customizeLabel", "customizePoint", "dataPrepareSettings", "dataSource", "defaultPane", "disabled", "elementAttr", "export", "legend", "loadingIndicator", "margin", "maxBubbleSize", "minBubbleSize", "negativesAsZeroes", "palette", "paletteExtensionMode", "panes", "pathModified", "pointSelectionMode", "redrawOnResize", "resizePanesOnZoom", "resolveLabelOverlapping", "rotated", "rtlEnabled", "scrollBar", "series", "seriesSelectionMode", "seriesTemplate", "size", "stickyHovering", "synchronizeMultiAxes", "theme", "title", "tooltip", "valueAxis", "zoomAndPan"], outputs: ["onArgumentAxisClick", "onDisposing", "onDone", "onDrawn", "onExported", "onExporting", "onFileSaving", "onIncidentOccurred", "onInitialized", "onLegendClick", "onOptionChanged", "onPointClick", "onPointHoverChanged", "onPointSelectionChanged", "onSeriesClick", "onSeriesHoverChanged", "onSeriesSelectionChanged", "onTooltipHidden", "onTooltipShown", "onZoomEnd", "onZoomStart", "adaptiveLayoutChange", "adjustOnZoomChange", "animationChange", "annotationsChange", "argumentAxisChange", "autoHidePointMarkersChange", "barGroupPaddingChange", "barGroupWidthChange", "commonAnnotationSettingsChange", "commonAxisSettingsChange", "commonPaneSettingsChange", "commonSeriesSettingsChange", "containerBackgroundColorChange", "crosshairChange", "customizeAnnotationChange", "customizeLabelChange", "customizePointChange", "dataPrepareSettingsChange", "dataSourceChange", "defaultPaneChange", "disabledChange", "elementAttrChange", "exportChange", "legendChange", "loadingIndicatorChange", "marginChange", "maxBubbleSizeChange", "minBubbleSizeChange", "negativesAsZeroesChange", "paletteChange", "paletteExtensionModeChange", "panesChange", "pathModifiedChange", "pointSelectionModeChange", "redrawOnResizeChange", "resizePanesOnZoomChange", "resolveLabelOverlappingChange", "rotatedChange", "rtlEnabledChange", "scrollBarChange", "seriesChange", "seriesSelectionModeChange", "seriesTemplateChange", "sizeChange", "stickyHoveringChange", "synchronizeMultiAxesChange", "themeChange", "titleChange", "tooltipChange", "valueAxisChange", "zoomAndPanChange"] }, { kind: "component", type: i6.DxoArgumentAxisComponent, selector: "dxo-argument-axis", inputs: ["aggregateByCategory", "aggregatedPointsPosition", "aggregationGroupWidth", "aggregationInterval", "allowDecimals", "argumentType", "axisDivisionFactor", "breaks", "breakStyle", "categories", "color", "constantLines", "constantLineStyle", "customPosition", "customPositionAxis", "discreteAxisDivisionMode", "endOnTick", "grid", "holidays", "hoverMode", "inverted", "label", "linearThreshold", "logarithmBase", "maxValueMargin", "minorGrid", "minorTick", "minorTickCount", "minorTickInterval", "minValueMargin", "minVisualRangeLength", "offset", "opacity", "placeholderSize", "position", "singleWorkdays", "strips", "stripStyle", "tick", "tickInterval", "title", "type", "valueMarginsEnabled", "visible", "visualRange", "visualRangeUpdateMode", "wholeRange", "width", "workdaysOnly", "workWeek", "firstPointOnStartAngle", "originValue", "period", "startAngle"], outputs: ["visualRangeChange"] }, { kind: "component", type: i6.DxoCommonSeriesSettingsComponent, selector: "dxo-common-series-settings", inputs: ["aggregation", "area", "argumentField", "axis", "bar", "barOverlapGroup", "barPadding", "barWidth", "border", "bubble", "candlestick", "closeValueField", "color", "cornerRadius", "dashStyle", "fullstackedarea", "fullstackedbar", "fullstackedline", "fullstackedspline", "fullstackedsplinearea", "highValueField", "hoverMode", "hoverStyle", "ignoreEmptyPoints", "innerColor", "label", "line", "lowValueField", "maxLabelCount", "minBarSize", "opacity", "openValueField", "pane", "point", "rangearea", "rangebar", "rangeValue1Field", "rangeValue2Field", "reduction", "scatter", "selectionMode", "selectionStyle", "showInLegend", "sizeField", "spline", "splinearea", "stack", "stackedarea", "stackedbar", "stackedline", "stackedspline", "stackedsplinearea", "steparea", "stepline", "stock", "tagField", "type", "valueErrorBar", "valueField", "visible", "width", "argumentType", "minSegmentSize", "smallValuesGrouping", "closed"] }, { kind: "component", type: i6.DxoConnectorComponent, selector: "dxo-connector", inputs: ["color", "visible", "width", "opacity"] }, { kind: "component", type: i6.DxiSeriesComponent, selector: "dxi-series", inputs: ["aggregation", "argumentField", "axis", "barOverlapGroup", "barPadding", "barWidth", "border", "closeValueField", "color", "cornerRadius", "dashStyle", "highValueField", "hoverMode", "hoverStyle", "ignoreEmptyPoints", "innerColor", "label", "lowValueField", "maxLabelCount", "minBarSize", "name", "opacity", "openValueField", "pane", "point", "rangeValue1Field", "rangeValue2Field", "reduction", "selectionMode", "selectionStyle", "showInLegend", "sizeField", "stack", "tag", "tagField", "type", "valueErrorBar", "valueField", "visible", "width", "argumentType", "minSegmentSize", "smallValuesGrouping", "closed"] }, { kind: "component", type: i6.DxiValueAxisComponent, selector: "dxi-value-axis", inputs: ["aggregatedPointsPosition", "allowDecimals", "autoBreaksEnabled", "axisDivisionFactor", "breaks", "breakStyle", "categories", "color", "constantLines", "constantLineStyle", "customPosition", "discreteAxisDivisionMode", "endOnTick", "grid", "inverted", "label", "linearThreshold", "logarithmBase", "maxAutoBreakCount", "maxValueMargin", "minorGrid", "minorTick", "minorTickCount", "minorTickInterval", "minValueMargin", "minVisualRangeLength", "multipleAxesSpacing", "name", "offset", "opacity", "pane", "placeholderSize", "position", "showZero", "strips", "stripStyle", "synchronizedValue", "tick", "tickInterval", "title", "type", "valueMarginsEnabled", "valueType", "visible", "visualRange", "visualRangeUpdateMode", "wholeRange", "width"], outputs: ["visualRangeChange"] }, { 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$2.DxColorBoxComponent, selector: "dx-color-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "applyButtonText", "applyValueMode", "buttons", "cancelButtonText", "deferRendering", "disabled", "dropDownButtonTemplate", "dropDownOptions", "editAlphaChannel", "elementAttr", "fieldTemplate", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "keyStep", "label", "labelMode", "name", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showDropDownButton", "stylingMode", "tabIndex", "text", "validationError", "validationErrors", "validationMessageMode", "validationStatus", "value", "visible", "width"], outputs: ["onChange", "onClosed", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "applyButtonTextChange", "applyValueModeChange", "buttonsChange", "cancelButtonTextChange", "deferRenderingChange", "disabledChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "editAlphaChannelChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "keyStepChange", "labelChange", "labelModeChange", "nameChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showDropDownButtonChange", "stylingModeChange", "tabIndexChange", "textChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationStatusChange", "valueChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i10.DxPieChartComponent, selector: "dx-pie-chart", inputs: ["adaptiveLayout", "animation", "annotations", "centerTemplate", "commonAnnotationSettings", "commonSeriesSettings", "customizeAnnotation", "customizeLabel", "customizePoint", "dataSource", "diameter", "disabled", "elementAttr", "export", "innerRadius", "legend", "loadingIndicator", "margin", "minDiameter", "palette", "paletteExtensionMode", "pathModified", "pointSelectionMode", "redrawOnResize", "resolveLabelOverlapping", "rtlEnabled", "segmentsDirection", "series", "seriesTemplate", "size", "sizeGroup", "startAngle", "theme", "title", "tooltip", "type"], outputs: ["onDisposing", "onDone", "onDrawn", "onExported", "onExporting", "onFileSaving", "onIncidentOccurred", "onInitialized", "onLegendClick", "onOptionChanged", "onPointClick", "onPointHoverChanged", "onPointSelectionChanged", "onTooltipHidden", "onTooltipShown", "adaptiveLayoutChange", "animationChange", "annotationsChange", "centerTemplateChange", "commonAnnotationSettingsChange", "commonSeriesSettingsChange", "customizeAnnotationChange", "customizeLabelChange", "customizePointChange", "dataSourceChange", "diameterChange", "disabledChange", "elementAttrChange", "exportChange", "innerRadiusChange", "legendChange", "loadingIndicatorChange", "marginChange", "minDiameterChange", "paletteChange", "paletteExtensionModeChange", "pathModifiedChange", "pointSelectionModeChange", "redrawOnResizeChange", "resolveLabelOverlappingChange", "rtlEnabledChange", "segmentsDirectionChange", "seriesChange", "seriesTemplateChange", "sizeChange", "sizeGroupChange", "startAngleChange", "themeChange", "titleChange", "tooltipChange", "typeChange"] }, { 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.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: "directive", type: i5$2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: UserAccessComponent, selector: "app-user-access", inputs: ["userOptionContainer"], outputs: ["userOptionContainerChange"] }, { kind: "component", type: LoaderComponent, selector: "app-loader" }, { kind: "pipe", type: i4$2.JsonPipe, name: "json" }] });
|
|
4801
|
+
DashChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DashChartComponent, selector: "app-dash-chart", inputs: { chartconfigData: ["datasetmodal", "chartconfigData"] }, outputs: { getChartConfigOutPut: "getChartConfigOutPut" }, ngImport: i0, template: "<div class=\"mx-2\">\n <div class=\"w-full m-2 border\">\n <ng-container *ngIf=\"!isJsonPreview\">\n <pre><code>{{jsaonDatasource | json}}</code></pre>\n </ng-container>\n <ng-container *ngIf=\"isJsonPreview\">\n <ng-container *ngIf=\"chartType === 'doughnut' || chartType === 'pie'\">\n <div\n class=\"m-3 p-4 bg-white border border-gray-200 rounded-lg shadow-md dark:bg-gray-800 dark:border-gray-700\">\n <!-- <h6 class=\"mb-1 text-md font-bold tracking-tight text-gray-900 dark:text-white border-b pb-3\">\n {{widGetConfig.widgetTitle}}\n </h6> -->\n <dx-pie-chart id=\"pie\" [type]=\"chartType\"\n [title]=\"{ text: chartConfig.caption, font: { size: 14 } }\" palette=\"Soft Pastel\"\n [dataSource]=\"dataSourseForChart\" centerTemplate=\"centerTemplate\"\n (onPointClick)=\"pointClickHandler($event)\" [palette]=\"chartConfig.palette\">\n\n <ng-container *ngFor=\"let item of chartConfig.chart_config\">\n <ng-container *ngIf=\"item.color\">\n <dxi-series argumentField={{chartConfig.argumentField}} valueField=\"{{item.valueField}}\"\n name=\"{{item.name}}\" color=\"{{item.color}}\">\n <dxo-label [visible]=\"chartConfig.labelDisplay\" format=\"#,##0.##\">\n <dxo-connector [visible]=\"true\"></dxo-connector>\n </dxo-label>\n </dxi-series>\n </ng-container>\n <ng-container *ngIf=\"!item.color\">\n <dxi-series argumentField={{chartConfig.argumentField}} valueField=\"{{item.valueField}}\"\n name=\"{{item.name}}\">\n <dxo-label [visible]=\"chartConfig.labelDisplay\" format=\"#,##0.##\">\n <dxo-connector [visible]=\"true\"></dxo-connector>\n </dxo-label>\n </dxi-series>\n </ng-container>\n </ng-container>\n <dxo-legend [visible]=\"chartConfig.legendDisplay\"\n horizontalAlignment=\"{{chartConfig.horizontalAlignment}}\"\n verticalAlignment=\"{{chartConfig.verticalAlignment}}\"></dxo-legend>\n <!-- <dxo-export [enabled]=\"true\"></dxo-export> -->\n <dxo-tooltip [enabled]=\"true\" [customizeTooltip]=\"customizeTooltip\" format=\"#,##0.##\">\n </dxo-tooltip>\n <ng-container *ngIf=\"chartType === 'doughnut'\">\n <svg *dxTemplate=\"let pieChart of 'centerTemplate'\">\n <circle cx=\"100\" cy=\"100\" [attr.r]=\"pieChart.getInnerRadius() - 6\" fill=\"gray\"\n opacity=\"0.0001\">\n </circle>\n\n <text text-anchor=\"middle\" style=\"font-size: 28px\" x=\"100\" y=\"100\" fill=\"#eee\"\n *ngIf=\"chartConfig.displayCenterLabel\">\n <tspan x=\"100\">{{ calculateTotal(pieChart) }}</tspan>\n <!-- display: inline -->\n <!-- <tspan x=\"100\" dy=\"20px\" style=\"font-weight: 600\"></tspan> -->\n </text>\n </svg>\n </ng-container>\n\n </dx-pie-chart>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"chartType !== 'doughnut' && chartType !== 'funnel' && chartType !== 'bubble' && chartType !== 'pie'\">\n <div\n class=\"m-3 p-4 bg-white border border-gray-200 rounded-lg shadow-md dark:bg-gray-800 dark:border-gray-700\">\n <!-- <h6 class=\"mb-1 text-md font-bold tracking-tight text-gray-900 dark:text-white border-b pb-3\">\n {{widGetConfig.widgetTitle}}\n </h6> -->\n <dx-chart id=\"chart\" [dataSource]=\"dataSourseForChart\" [palette]=\"chartConfig.palette\"\n [title]=\"{ text: chartConfig.caption, font: { size: 14 } }\"\n [valueAxis]=\"chartConfig.valueAxisConfig\">\n <ng-container *ngFor=\"let item of chartConfig.chart_config\">\n <ng-container *ngIf=\"item.axis\">\n <dxi-value-axis [name]=\"item.axis\" [position]=\"item.position\">\n <dxo-title [text]=\"item.name\"></dxo-title>\n </dxi-value-axis>\n </ng-container>\n </ng-container>\n <dxo-argument-axis>\n <dxo-label overlappingBehavior=\"rotate\" [rotationAngle]=\"270\"></dxo-label>\n </dxo-argument-axis>\n <dxo-tooltip [enabled]=\"true\" [shared]=\"true\"></dxo-tooltip>\n <dxo-common-series-settings\n [argumentField]=\"chartConfig.argumentField\"></dxo-common-series-settings>\n <!-- for others single access chart start -->\n <ng-container *ngIf=\"chartType !== 'stackedBar' && chartType !== 'line'\">\n <ng-container *ngFor=\"let item of chartConfig.chart_config\">\n <ng-container *ngIf=\"item.color\">\n <dxi-series type=\"{{item.type}}\" valueField=\"{{item.valueField}}\"\n axis=\"{{item.axis}}\" name=\"{{item.name}}\" color=\"{{item.color}}\">\n </dxi-series>\n </ng-container>\n <ng-container *ngIf=\"!item.color\">\n <dxi-series type=\"{{item.type}}\" valueField=\"{{item.valueField}}\"\n axis=\"{{item.axis}}\" name=\"{{item.name}}\">\n </dxi-series>\n </ng-container>\n </ng-container>\n </ng-container>\n <!-- for others single access chart end -->\n\n <!-- for stackber start -->\n <ng-container *ngIf=\"chartType === 'stackedBar' || chartType === 'line'\">\n <ng-container *ngFor=\"let item of chartWithThreeDimentionDataSeries\">\n <dxi-series valueField=\"{{item}}\" name=\"{{item}}\" type=\"{{chartType}}\"></dxi-series>\n </ng-container>\n </ng-container>\n <!-- for stackber end -->\n <dxo-size [height]=\"chartConfig.size\"></dxo-size>\n <dxo-legend [visible]=\"chartConfig.legendDisplay\"\n [verticalAlignment]=\"chartConfig.verticalAlignment\"\n [horizontalAlignment]=\"chartConfig.horizontalAlignment\"></dxo-legend>\n </dx-chart>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"chartType === 'funnel'\">\n\n </ng-container>\n <ng-container *ngIf=\"chartType === 'bubble'\">\n <div class=\"mx-5\">\n <ng-container *ngFor=\"let item of heatChartDataSource.dataSet\">\n <div class=\"flex flex-row\">\n <div class=\"h-10 text-sm items-center min-w-24 max-w-[30%] justify-center flex\">\n {{item.datasource}}\n </div>\n <div class=\"inline-block \">\n <div class=\"flex flex-nowrap justify-center \">\n <ng-container *ngFor=\"let box of item.dataset\">\n <div class=\"flex-shrink-0 min-w-10 max-w-[20%] h-10 text-sm cursor-pointer flex items-center justify-center text-gray-800\"\n [matTooltip]=\"'Record Date: ' + box.recordDate + '\\nRecharge Count: ' + box.toolTip\"\n matTooltipClass=\"custom-tooltip\">\n <div class=\"rounded-full\" [ngStyle]=\"{\n 'background-color': box.isHovered ? 'rgb(135, 184, 106)' : box.color,\n 'width.px': box.size,\n 'hover': box.hover,\n 'height.px': box.size\n }\" (mouseenter)=\"box.isHovered = true\" (mouseleave)=\"box.isHovered = false\">\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n <div class=\"inline-block\">\n <div class=\"flex flex-nowrap justify-center\">\n <div class=\"flex-shrink-0 w-24 max-w-[20%] h-full flex items-center justify-center\"></div>\n <div *ngFor=\"let item of heatChartDataSource.argumentValue\"\n class=\"flex-shrink-0 w-10 max-w-[20%] min-h-14 flex text-sm items-center justify-center my-1\"\n [ngStyle]=\"{'height': 'auto'}\">\n <span class=\"text-rotate\">\n {{item}}\n </span>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n\n </ng-container>\n\n </div>\n <div class=\"w-full m-2 border\">\n <div class=\"flex flex-row mb-1\">\n <div class=\"w-1/3 mx-1\">\n <dx-select-box [dataSource]=\"chartAxisSource\" [(ngModel)]=\"chartAccess\" placeholder=\"Chart Type\"\n displayExpr=\"name\" valueExpr=\"value\" (onValueChanged)=\"getChartAccessType($event)\">\n </dx-select-box>\n </div>\n <div class=\"w-1/3 mx-1\">\n <ng-container *ngIf=\"chartAccess === 'single'\">\n <dx-select-box [items]=\"chartTypeSource\" (onValueChanged)=\"getChartType($event)\"\n [(ngModel)]=\"chartType\"></dx-select-box>\n </ng-container>\n <ng-container *ngIf=\"chartAccess === 'multy'\">\n <dx-select-box [items]=\"componentNamesForMultyAccess\" displayExpr=\"item\" valueExpr=\"compName\"\n [(ngModel)]=\"componentName\"></dx-select-box>\n </ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"chartAccess === 'single'\">\n\n <div class=\"mb-4 border-b border-gray-200 dark:border-gray-700\">\n <ul class=\"flex flex-wrap -mb-px text-sm font-medium text-center\" role=\"tablist\">\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'basic',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'basic'\n }\" (click)=\"setActiveTab('basic')\" type=\"button\" role=\"tab\">\n Basic\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'columns',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'columns'\n }\" (click)=\"setActiveTab('columns')\" type=\"button\" role=\"tab\">\n Columns\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'properties',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'properties'\n }\" (click)=\"setActiveTab('properties')\" type=\"button\" role=\"tab\">\n Properties\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'permission',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'permission'\n }\" (click)=\"setActiveTab('permission')\" type=\"button\" role=\"tab\">\n Manage Permissions\n </button>\n </li>\n </ul>\n </div>\n\n <div id=\"default-styled-tab-content\">\n <div *ngIf=\"activeTab === 'basic'\">\n <div class=\"flex flex-col flex-auto min-w-0\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Filter Title\n Config\n </div>\n <div class=\"pt-2 border-x border-b \">\n <div class=\"my-2 flex justify-between\">\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-1\"> Title</div>\n <dx-text-box\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.commonConfig.title\"></dx-text-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-1\"> Data Field</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.commonConfig.dataField\"></dx-select-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-2\"> Display Format </div>\n <dx-select-box [items]=\"['daily','hourly','monthly']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.formate\"></dx-select-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-2\"> Key To Pass </div>\n <dx-tag-box [items]=\"configColume\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.keyToPass\"></dx-tag-box>\n </div>\n\n </div>\n </div>\n </div>\n <div class=\"flex flex-wrap justify-between my-2\">\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1 \">Legend Horizontal Alignment</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['right','left','center']\"\n [(ngModel)]=\"chartConfig.horizontalAlignment\"></dx-select-box>\n\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Legend Vertical Alignment</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['top','bottom']\"\n [(ngModel)]=\"chartConfig.verticalAlignment\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1 mt-8\"></div>\n <dx-check-box [(ngModel)]=\"chartConfig.legendDisplay\" text=\"Legend Display\"></dx-check-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Argument Field</div>\n <dx-select-box [items]=\"configColume\"\n [(ngModel)]=\"chartConfig.argumentField\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Size</div>\n <dx-text-box [(ngModel)]=\"chartConfig.size\"></dx-text-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Caption</div>\n <dx-text-box [(ngModel)]=\"chartConfig.caption\"></dx-text-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Display Formate </div>\n <dx-select-box [items]=\"['daily','hourly','monthly']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.formate\"\n [readOnly]=\"false\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Date Format </div>\n <dx-select-box [items]=\"['MM-DD','YYYY-MM-DD']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.displayDateFormat\"></dx-select-box>\n </div>\n\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\">Sort By</div>\n <dx-tag-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"chartConfig.chartSortBy\"></dx-tag-box>\n </div>\n\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2 mt-6\"> </div>\n <dx-check-box [(ngModel)]=\"mainChartCourceObject.kpiConfig.descendingOrder\"\n text=\"Descending Order\"></dx-check-box>\n </div>\n <div class=\"w-2/3 px-2 mt-2\">\n <div class=\" flex flex-row\">\n <div class=\"mr-2\">\n <div class=\"text-md mb-1\"> Color Palette</div>\n <dx-select-box [items]=\"doughnut_color_palette\"\n [(ngModel)]=\"chartConfig.palette\"></dx-select-box>\n </div>\n <div class=\"mt-7\">\n <dx-check-box [value]=\"chartConfig.labelDisplay\"\n [(ngModel)]=\"chartConfig.labelDisplay\" text=\"Label Display\"></dx-check-box>\n </div>\n\n </div>\n\n\n </div>\n\n\n\n\n </div>\n\n <div class=\"m-3 p-4 bg-white border border-gray-300 rounded-lg shadow-md dark:bg-gray-800 dark:border-gray-700\"\n *ngIf=\"isAdvanceContainer\">\n <h6\n class=\"mb-2 text-lg tracking-tight text-gray-900 dark:text-white border-b pb-3 flex items-center capitalize\">\n Advance Columns for {{chartType}} Chart\n <div class=\"ml-auto\">\n\n </div>\n </h6>\n <div class=\"flex flex-row\" *ngIf=\"chartType === 'stackedBar' || chartType === 'line' \">\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Chart Group By </div>\n <dx-select-box [items]=\"configColume\" (onValueChanged)=\"getChartStackbarChart($event)\"\n [(ngModel)]=\"chartConfig.chartGroupBy\"></dx-select-box>\n </div>\n </div>\n <div class=\"flex flex-row\" *ngIf=\"chartType === 'bubble'\">\n <div class=\" flex flex-row\">\n <div class=\"mr-2 w-full\">\n <div class=\"text-md mb-1\"> Source Field</div>\n <dx-select-box [items]=\"configColume\"\n [(ngModel)]=\"chartConfig.sourceField\"></dx-select-box>\n </div>\n <div class=\"mr-2 w-full\">\n <div class=\"text-md mb-1\"> Min Bubble Size</div>\n <dx-text-box [(ngModel)]=\"chartConfig.minBubbleSize\"></dx-text-box>\n </div>\n <div class=\"mr-2 w-full\">\n <div class=\"text-md mb-1\"> Max bubble size</div>\n <dx-text-box [(ngModel)]=\"chartConfig.maxBubbleSize\"></dx-text-box>\n </div>\n </div>\n </div>\n <div class=\"flex flex-row\" *ngIf=\"chartType === 'doughnut' || chartType === 'pie'\">\n <div class=\" flex flex-row\">\n <!-- <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Chart Group By </div>\n <dx-select-box [items]=\"configColume\"\n (onValueChanged)=\"getChartStackbarChart($event)\"\n [(ngModel)]=\"chartConfig.chartGroupBy\"></dx-select-box>\n\n\n </div> -->\n <div class=\"mt-7 mx-2\">\n <dx-check-box [(ngModel)]=\"chartConfig.displayCenterLabel\"\n text=\"Display Center Label\"></dx-check-box>\n </div>\n </div>\n </div>\n\n </div>\n </div>\n <div *ngIf=\"activeTab === 'columns'\">\n <div class=\"h-60 overflow-x-auto\">\n <div class=\" border-x border-b \">\n <div class=\"py-1 flex flex-row border-b\"\n *ngFor=\"let item of chartConfig.chart_config; let i = index\">\n\n <div class=\"px-1 mb-1 w-1/3\">\n <div class=\"text-md mb-1\"> Value Field</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"item.valueField\"></dx-select-box>\n </div>\n\n <div class=\"px-1 mb-1 w-1/4\" *ngIf=\"chartType !== 'doughnut' && chartType !== 'pie'\">\n <div class=\"text-md mb-1\"> Axis</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"item.axis\"></dx-select-box>\n </div>\n <div class=\" px-2 mb-1 w-1/3\">\n <div class=\"text-md mb-1\"> Position</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['right','left']\"\n [(ngModel)]=\"item.position\"></dx-select-box>\n </div>\n <div class=\"px-1 mb-1 w-1/4\">\n <div class=\"text-md mb-1\"> Name</div>\n <dx-text-box [(ngModel)]=\"item.name\"></dx-text-box>\n </div>\n <div class=\"text-center mt-6 w-1/6\">\n <button *ngIf=\"i !== 0\" class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItem(i, 'up')\">\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\n </button>\n <button *ngIf=\"i !== chartConfig.chart_config.length - 1\"\n class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItem(i, 'down')\">\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\n </button>\n\n <button class=\"{{commonService.btn_danger_sm}} cursor-pointer\"\n (click)=\"deleteColumns(i)\"><i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n <div class=\"flex flex-row justify-end my-2\"\n *ngIf=\"chartType === 'doughnut' || chartType === 'pie'\">\n <button class=\"{{commonService.btn_primary_sm}} cursor-pointer\"\n (click)=\"addColumns()\">Add\n Series</button>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"activeTab === 'properties'\">\n <div class=\"h-full overflow-x-auto\">\n <app-loader *ngIf=\"isLoader\"></app-loader>\n <ng-container *ngIf=\"!isLoader\">\n <div class=\"flex flex-row justify-between border-b py-3\">\n <div class=\"mx-2\">\n <dx-check-box [value]=\"viewProperties.enableClickEvent\"\n [(ngModel)]=\"viewProperties.enableClickEvent\"\n text=\"Enable Click Event\"></dx-check-box>\n </div>\n <div class=\"mx-2\">\n <dx-check-box [value]=\"viewProperties.enableRightClickEvent\"\n [(ngModel)]=\"viewProperties.enableRightClickEvent\"\n text=\"Enable Right Click\"></dx-check-box>\n </div>\n </div>\n <div class=\"w-full p-2\" *ngIf=\"viewProperties.enableClickEvent\">\n\n <div class=\"flex flex-col flex-auto min-w-0 my-2\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Event\n Type\n Option\n </div>\n <div class=\"w-full p-3 border-x border-b \">\n <div class=\"flex flex-row\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Event Type</div>\n </div>\n <div class=\"w-full\">\n <dx-select-box\n [items]=\"['drilldown','sameViewDrilldown','optionalDrillDown','popup','navigateToPage']\"\n (onValueChanged)=\"getSelectedEventType($event)\"\n [(ngModel)]=\"viewProperties.clickEventOptions.eventType\"></dx-select-box>\n </div>\n </div>\n <ng-container *ngIf=\"viewProperties.clickEventOptions.eventType === 'popup'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views For Popup</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'navigateToPage'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full mx-2\">\n <div class=\"text-md mb-2\"> Associated Pages</div>\n <dx-select-box [items]=\"allConfiguredPage\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedPage\"\n valueExpr=\"pageId\" displayExpr=\"pageName\"\n [searchEnabled]=\"true\"></dx-select-box>\n </div>\n <div class=\"w-full mx-2\">\n <div class=\"text-md mb-2\"> Associated Params</div>\n <dx-text-box\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedParams\"></dx-text-box>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'drilldown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'sameViewDrilldown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'optionalDrillDown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <ng-container\n *ngFor=\"let item of optionalDrilDownDataSource;let i = index;\">\n\n <div class=\"flex flex-row justify-between\">\n <div class=\"mx-2 w-1/2\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"item.viewId\" valueExpr=\"viewId\"\n displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [maxDisplayedTags]=\"2\"\n [searchEnabled]=\"true\"></dx-tag-box>\n\n </div>\n <div class=\"mx-2 w-1/2\">\n <div class=\"text-md mb-2\"> Associated Params</div>\n <dx-text-box\n [(ngModel)]=\"item.filterCondition\"></dx-text-box>\n </div>\n <div class=\"mx-2\">\n <button\n class=\"{{commonService.btn_danger_sm}} cursor-pointer mt-8\"\n (click)=\"deleteAssociatedParams(i)\"><i\n class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n <div class=\"flex flex-row justify-end mt-4\">\n <button class=\"{{commonService.btn_primary_sm}} cursor-pointer\"\n (click)=\"addAssociatedParams()\">Add\n Params</button>\n </div>\n </div>\n </div>\n </ng-container>\n <button class=\"{{commonService.btn_light_md}} cursor-pointer mt-4\"\n (click)=\"resetViewProprstise()\">Reset All Event</button>\n </div>\n </div>\n\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"activeTab === 'permission'\">\n <div class=\"h-full overflow-x-auto\">\n <app-user-access [(userOptionContainer)]=\"userOptionContainer\">\n </app-user-access>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"chartAccess === 'multy'\">\n <div class=\"mb-4 border-b border-gray-200 dark:border-gray-700\">\n <ul class=\"flex flex-wrap -mb-px text-sm font-medium text-center\" role=\"tablist\">\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'basic',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'basic'\n }\" (click)=\"setActiveTab('basic')\" type=\"button\" role=\"tab\">\n Basic\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'columns',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'columns'\n }\" (click)=\"setActiveTab('columns')\" type=\"button\" role=\"tab\">\n Columns\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'properties',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'properties'\n }\" (click)=\"setActiveTab('properties')\" type=\"button\" role=\"tab\">\n Properties\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'permission',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'permission'\n }\" (click)=\"setActiveTab('permission')\" type=\"button\" role=\"tab\">\n Manage Permissions\n </button>\n </li>\n </ul>\n </div>\n\n <div id=\"default-styled-tab-content\">\n <div *ngIf=\"activeTab === 'basic'\">\n <div class=\"flex flex-col flex-auto min-w-0\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Filter Title\n Config\n </div>\n <div class=\"pt-2 border-x border-b \">\n <div class=\"my-2 flex justify-between\">\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-1\"> Title</div>\n <dx-text-box\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.commonConfig.title\"></dx-text-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-1\"> Data Field</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.commonConfig.dataField\"></dx-select-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-2\"> Display Format </div>\n <dx-select-box [items]=\"['daily','hourly','monthly']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.formate\"></dx-select-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-2\"> Key To Pass </div>\n <dx-tag-box [items]=\"configColume\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.keyToPass\"></dx-tag-box>\n </div>\n\n </div>\n </div>\n </div>\n <div class=\"flex flex-wrap justify-between my-2\">\n <div class=\"w-1/3 px-2\">\n <div class=\"text-md mb-1\">Legend Horizontal Alignment</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['right','left','center']\" [value]=\"'center'\"\n [(ngModel)]=\"chartConfig.horizontalAlignment\"></dx-select-box>\n\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> legent Vertical Alignment</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['top','bottom']\" [value]=\"'bottom'\"\n [(ngModel)]=\"chartConfig.verticalAlignment\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1 mt-8\"></div>\n <dx-check-box [(ngModel)]=\"chartConfig.legendDisplay\" text=\"Legend Display\"></dx-check-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Argument Field</div>\n <dx-select-box [items]=\"configColume\"\n [(ngModel)]=\"chartConfig.argumentField\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Size</div>\n <dx-text-box [(ngModel)]=\"chartConfig.size\"></dx-text-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Caption</div>\n <dx-text-box [(ngModel)]=\"chartConfig.caption\"></dx-text-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Display Format </div>\n <dx-select-box [items]=\"['daily','hourly','monthly']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.formate\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Date Format </div>\n <dx-select-box [items]=\"['MM-DD','YYYY-MM-DD']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.displayDateFormat\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\">Sort By</div>\n <dx-tag-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"chartConfig.chartSortBy\"></dx-tag-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2 mt-6\"> </div>\n <dx-check-box [(ngModel)]=\"mainChartCourceObject.kpiConfig.descendingOrder\"\n text=\"Descending Order\"></dx-check-box>\n </div>\n </div>\n\n\n </div>\n <div *ngIf=\"activeTab === 'columns'\">\n <dx-scroll-view class=\"h-full\" [width]=\"'100%'\" [height]=\"'100%'\">\n <div class=\" border-x border-b \">\n <div class=\"py-1 flex flex-wrap border-b\"\n *ngFor=\"let item of chartConfig.chart_config; let i = index;\">\n\n <div class=\"px-2 mb-1 w-1/3\">\n <div class=\"text-md mb-2\"> Type</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"chartTypeSource\" [value]=\"'spline'\"\n [(ngModel)]=\"item.type\"></dx-select-box>\n </div>\n <div class=\"px-2 mb-1 w-1/3\">\n <div class=\"text-md mb-1\"> Value Field</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"item.valueField\"></dx-select-box>\n </div>\n\n <div class=\"px-2 mb-1 w-1/3\">\n <div class=\"text-md mb-1\"> Axis</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"item.axis\"></dx-select-box>\n </div>\n <div class=\" px-2 mb-1 w-1/4\">\n <div class=\"text-md mb-1\"> Position</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['right','left']\"\n [(ngModel)]=\"item.position\"></dx-select-box>\n </div>\n <div class=\"px-2 mb-1 w-1/4\">\n <div class=\"text-md mb-1\"> Name</div>\n <dx-text-box [(ngModel)]=\"item.name\"></dx-text-box>\n </div>\n <div class=\"px-2 mb-1 w-1/4\">\n <div class=\"text-md mb-2\"> Color</div>\n <dx-color-box [(ngModel)]=\"item.color\"></dx-color-box>\n </div>\n <div class=\"text-center my-1 w-1/4\">\n <button *ngIf=\"i !== 0\" class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItem(i, 'up')\">\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\n </button>\n <button *ngIf=\"i !== chartConfig.chart_config.length - 1\"\n class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItem(i, 'down')\">\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\n </button>\n\n <button class=\"{{commonService.btn_danger_sm}} cursor-pointer\"\n (click)=\"deleteColumns(i)\"><i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n <div class=\"flex flex-row justify-end my-2\">\n <button class=\"{{commonService.btn_primary_sm}} cursor-pointer\"\n (click)=\"addColumns()\">Add\n Columns</button>\n </div>\n </div>\n </dx-scroll-view>\n </div>\n <div *ngIf=\"activeTab === 'properties'\">\n <div class=\"h-full overflow-x-auto\">\n <app-loader *ngIf=\"isLoader\"></app-loader>\n <ng-container *ngIf=\"!isLoader\">\n <div class=\"flex flex-row justify-between border-b py-3\">\n <div class=\"mx-2\">\n <dx-check-box [value]=\"viewProperties.enableClickEvent\"\n [(ngModel)]=\"viewProperties.enableClickEvent\"\n text=\"Enable Click Event\"></dx-check-box>\n </div>\n <div class=\"mx-2\">\n <dx-check-box [value]=\"viewProperties.enableRightClickEvent\"\n [(ngModel)]=\"viewProperties.enableRightClickEvent\"\n text=\"Enable Right Click\"></dx-check-box>\n </div>\n </div>\n <div class=\"w-full p-2\" *ngIf=\"viewProperties.enableClickEvent\">\n\n <div class=\"flex flex-col flex-auto min-w-0 my-2\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Event\n Type\n Option\n </div>\n <div class=\"w-full p-3 border-x border-b \">\n <div class=\"flex flex-row\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Event Type</div>\n </div>\n <div class=\"w-full\">\n <dx-select-box\n [items]=\"['drilldown','sameViewDrilldown','optionalDrillDown','popup','navigateToPage']\"\n (onValueChanged)=\"getSelectedEventType($event)\"\n [(ngModel)]=\"viewProperties.clickEventOptions.eventType\"></dx-select-box>\n </div>\n </div>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'navigateToPage'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full mx-2\">\n <div class=\"text-md mb-2\"> Associated Pages</div>\n <dx-select-box [items]=\"allConfiguredPage\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedPage\"\n valueExpr=\"pageId\" displayExpr=\"pageName\"\n [searchEnabled]=\"true\"></dx-select-box>\n </div>\n <div class=\"w-full mx-2\">\n <div class=\"text-md mb-2\"> Associated Params</div>\n <dx-text-box\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedParams\"></dx-text-box>\n\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'drilldown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"viewProperties.clickEventOptions.eventType === 'popup'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views For Popup</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'sameViewDrilldown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'optionalDrillDown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <ng-container\n *ngFor=\"let item of optionalDrilDownDataSource;let i = index;\">\n\n <div class=\"flex flex-row justify-between\">\n <div class=\"mx-2 w-1/2\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"item.viewId\" valueExpr=\"viewId\"\n displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [maxDisplayedTags]=\"2\"\n [searchEnabled]=\"true\"></dx-tag-box>\n\n </div>\n <div class=\"mx-2 w-1/2\">\n <div class=\"text-md mb-2\"> Associated Params</div>\n <dx-text-box\n [(ngModel)]=\"item.filterCondition\"></dx-text-box>\n </div>\n <div class=\"mx-2\">\n <button\n class=\"{{commonService.btn_danger_sm}} cursor-pointer mt-8\"\n (click)=\"deleteAssociatedParams(i)\"><i\n class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n <div class=\"flex flex-row justify-end mt-4\">\n <button class=\"{{commonService.btn_primary_sm}} cursor-pointer\"\n (click)=\"addAssociatedParams()\">Add\n Params</button>\n </div>\n </div>\n </div>\n </ng-container>\n <button class=\"{{commonService.btn_light_md}} cursor-pointer mt-4\"\n (click)=\"resetViewProprstise()\">Reset All Event</button>\n </div>\n </div>\n\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"activeTab === 'permission'\">\n <div class=\"h-full overflow-x-auto\">\n <app-user-access [(userOptionContainer)]=\"userOptionContainer\">\n </app-user-access>\n </div>\n </div>\n </div>\n </ng-container>\n\n\n\n </div>\n\n <div class=\"flex flex-row border-t pl-3\">\n <div class=\"flex justify-start mx-1\">\n <button class=\"{{commonService.btn_warning_md}} cursor-pointer mt-2\" (click)=\"isJsonPreview = true\">\n Preview</button>\n <button class=\"{{commonService.btn_primary_md}} cursor-pointer mt-2\" (click)=\"isJsonPreview = false\">Data\n Preview</button>\n </div>\n <div class=\"flex justify-end mx-1 flex-grow\">\n <button class=\"{{commonService.btn_success_md}} cursor-pointer mt-2\"\n (click)=\"getSaveChartConfig()\">Submit</button>\n </div>\n </div>\n</div>", styles: [""], 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: "directive", type: i4$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i6.DxoLabelComponent, selector: "dxo-label", inputs: ["connectorColor", "connectorWidth", "customizeText", "font", "format", "indent", "visible", "horizontalAlignment", "position", "text", "verticalAlignment", "alignment", "customizeHint", "displayMode", "indentFromAxis", "overlappingBehavior", "rotationAngle", "staggeringSpacing", "template", "textOverflow", "wordWrap", "argumentFormat", "backgroundColor", "border", "connector", "displayFormat", "horizontalOffset", "showForZeroValues", "verticalOffset", "hideFirstOrLast", "indentFromTick", "useRangeColors", "location", "showColon", "radialOffset", "topIndent", "shadow", "useNodeColors", "dataField", "enabled"] }, { kind: "component", type: i6.DxoLegendComponent, selector: "dxo-legend", inputs: ["backgroundColor", "border", "columnCount", "columnItemSpacing", "customizeHint", "customizeItems", "customizeText", "font", "horizontalAlignment", "itemsAlignment", "itemTextFormat", "itemTextPosition", "margin", "markerSize", "markerTemplate", "orientation", "paddingLeftRight", "paddingTopBottom", "rowCount", "rowItemSpacing", "title", "verticalAlignment", "visible", "hoverMode", "position"] }, { kind: "component", type: i6.DxoTitleComponent, selector: "dxo-title", inputs: ["font", "horizontalAlignment", "margin", "placeholderSize", "subtitle", "text", "verticalAlignment", "textOverflow", "wordWrap", "alignment"] }, { kind: "component", type: i6.DxoSizeComponent, selector: "dxo-size", inputs: ["height", "width"] }, { kind: "component", type: i6.DxoTooltipComponent, selector: "dxo-tooltip", inputs: ["arrowLength", "border", "color", "container", "contentTemplate", "cornerRadius", "customizeTooltip", "enabled", "font", "format", "interactive", "opacity", "paddingLeftRight", "paddingTopBottom", "shadow", "zIndex", "argumentFormat", "location", "shared", "isShown", "text", "position", "showMode", "customizeLinkTooltip", "customizeNodeTooltip", "linkTooltipTemplate", "nodeTooltipTemplate"] }, { kind: "component", type: i7$1.DxChartComponent, selector: "dx-chart", inputs: ["adaptiveLayout", "adjustOnZoom", "animation", "annotations", "argumentAxis", "autoHidePointMarkers", "barGroupPadding", "barGroupWidth", "commonAnnotationSettings", "commonAxisSettings", "commonPaneSettings", "commonSeriesSettings", "containerBackgroundColor", "crosshair", "customizeAnnotation", "customizeLabel", "customizePoint", "dataPrepareSettings", "dataSource", "defaultPane", "disabled", "elementAttr", "export", "legend", "loadingIndicator", "margin", "maxBubbleSize", "minBubbleSize", "negativesAsZeroes", "palette", "paletteExtensionMode", "panes", "pathModified", "pointSelectionMode", "redrawOnResize", "resizePanesOnZoom", "resolveLabelOverlapping", "rotated", "rtlEnabled", "scrollBar", "series", "seriesSelectionMode", "seriesTemplate", "size", "stickyHovering", "synchronizeMultiAxes", "theme", "title", "tooltip", "valueAxis", "zoomAndPan"], outputs: ["onArgumentAxisClick", "onDisposing", "onDone", "onDrawn", "onExported", "onExporting", "onFileSaving", "onIncidentOccurred", "onInitialized", "onLegendClick", "onOptionChanged", "onPointClick", "onPointHoverChanged", "onPointSelectionChanged", "onSeriesClick", "onSeriesHoverChanged", "onSeriesSelectionChanged", "onTooltipHidden", "onTooltipShown", "onZoomEnd", "onZoomStart", "adaptiveLayoutChange", "adjustOnZoomChange", "animationChange", "annotationsChange", "argumentAxisChange", "autoHidePointMarkersChange", "barGroupPaddingChange", "barGroupWidthChange", "commonAnnotationSettingsChange", "commonAxisSettingsChange", "commonPaneSettingsChange", "commonSeriesSettingsChange", "containerBackgroundColorChange", "crosshairChange", "customizeAnnotationChange", "customizeLabelChange", "customizePointChange", "dataPrepareSettingsChange", "dataSourceChange", "defaultPaneChange", "disabledChange", "elementAttrChange", "exportChange", "legendChange", "loadingIndicatorChange", "marginChange", "maxBubbleSizeChange", "minBubbleSizeChange", "negativesAsZeroesChange", "paletteChange", "paletteExtensionModeChange", "panesChange", "pathModifiedChange", "pointSelectionModeChange", "redrawOnResizeChange", "resizePanesOnZoomChange", "resolveLabelOverlappingChange", "rotatedChange", "rtlEnabledChange", "scrollBarChange", "seriesChange", "seriesSelectionModeChange", "seriesTemplateChange", "sizeChange", "stickyHoveringChange", "synchronizeMultiAxesChange", "themeChange", "titleChange", "tooltipChange", "valueAxisChange", "zoomAndPanChange"] }, { kind: "component", type: i6.DxoArgumentAxisComponent, selector: "dxo-argument-axis", inputs: ["aggregateByCategory", "aggregatedPointsPosition", "aggregationGroupWidth", "aggregationInterval", "allowDecimals", "argumentType", "axisDivisionFactor", "breaks", "breakStyle", "categories", "color", "constantLines", "constantLineStyle", "customPosition", "customPositionAxis", "discreteAxisDivisionMode", "endOnTick", "grid", "holidays", "hoverMode", "inverted", "label", "linearThreshold", "logarithmBase", "maxValueMargin", "minorGrid", "minorTick", "minorTickCount", "minorTickInterval", "minValueMargin", "minVisualRangeLength", "offset", "opacity", "placeholderSize", "position", "singleWorkdays", "strips", "stripStyle", "tick", "tickInterval", "title", "type", "valueMarginsEnabled", "visible", "visualRange", "visualRangeUpdateMode", "wholeRange", "width", "workdaysOnly", "workWeek", "firstPointOnStartAngle", "originValue", "period", "startAngle"], outputs: ["visualRangeChange"] }, { kind: "component", type: i6.DxoCommonSeriesSettingsComponent, selector: "dxo-common-series-settings", inputs: ["aggregation", "area", "argumentField", "axis", "bar", "barOverlapGroup", "barPadding", "barWidth", "border", "bubble", "candlestick", "closeValueField", "color", "cornerRadius", "dashStyle", "fullstackedarea", "fullstackedbar", "fullstackedline", "fullstackedspline", "fullstackedsplinearea", "highValueField", "hoverMode", "hoverStyle", "ignoreEmptyPoints", "innerColor", "label", "line", "lowValueField", "maxLabelCount", "minBarSize", "opacity", "openValueField", "pane", "point", "rangearea", "rangebar", "rangeValue1Field", "rangeValue2Field", "reduction", "scatter", "selectionMode", "selectionStyle", "showInLegend", "sizeField", "spline", "splinearea", "stack", "stackedarea", "stackedbar", "stackedline", "stackedspline", "stackedsplinearea", "steparea", "stepline", "stock", "tagField", "type", "valueErrorBar", "valueField", "visible", "width", "argumentType", "minSegmentSize", "smallValuesGrouping", "closed"] }, { kind: "component", type: i6.DxoConnectorComponent, selector: "dxo-connector", inputs: ["color", "visible", "width", "opacity"] }, { kind: "component", type: i6.DxiSeriesComponent, selector: "dxi-series", inputs: ["aggregation", "argumentField", "axis", "barOverlapGroup", "barPadding", "barWidth", "border", "closeValueField", "color", "cornerRadius", "dashStyle", "highValueField", "hoverMode", "hoverStyle", "ignoreEmptyPoints", "innerColor", "label", "lowValueField", "maxLabelCount", "minBarSize", "name", "opacity", "openValueField", "pane", "point", "rangeValue1Field", "rangeValue2Field", "reduction", "selectionMode", "selectionStyle", "showInLegend", "sizeField", "stack", "tag", "tagField", "type", "valueErrorBar", "valueField", "visible", "width", "argumentType", "minSegmentSize", "smallValuesGrouping", "closed"] }, { kind: "component", type: i6.DxiValueAxisComponent, selector: "dxi-value-axis", inputs: ["aggregatedPointsPosition", "allowDecimals", "autoBreaksEnabled", "axisDivisionFactor", "breaks", "breakStyle", "categories", "color", "constantLines", "constantLineStyle", "customPosition", "discreteAxisDivisionMode", "endOnTick", "grid", "inverted", "label", "linearThreshold", "logarithmBase", "maxAutoBreakCount", "maxValueMargin", "minorGrid", "minorTick", "minorTickCount", "minorTickInterval", "minValueMargin", "minVisualRangeLength", "multipleAxesSpacing", "name", "offset", "opacity", "pane", "placeholderSize", "position", "showZero", "strips", "stripStyle", "synchronizedValue", "tick", "tickInterval", "title", "type", "valueMarginsEnabled", "valueType", "visible", "visualRange", "visualRangeUpdateMode", "wholeRange", "width"], outputs: ["visualRangeChange"] }, { 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$2.DxColorBoxComponent, selector: "dx-color-box", inputs: ["acceptCustomValue", "accessKey", "activeStateEnabled", "applyButtonText", "applyValueMode", "buttons", "cancelButtonText", "deferRendering", "disabled", "dropDownButtonTemplate", "dropDownOptions", "editAlphaChannel", "elementAttr", "fieldTemplate", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "keyStep", "label", "labelMode", "name", "opened", "openOnFieldClick", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showDropDownButton", "stylingMode", "tabIndex", "text", "validationError", "validationErrors", "validationMessageMode", "validationStatus", "value", "visible", "width"], outputs: ["onChange", "onClosed", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOpened", "onOptionChanged", "onPaste", "onValueChanged", "acceptCustomValueChange", "accessKeyChange", "activeStateEnabledChange", "applyButtonTextChange", "applyValueModeChange", "buttonsChange", "cancelButtonTextChange", "deferRenderingChange", "disabledChange", "dropDownButtonTemplateChange", "dropDownOptionsChange", "editAlphaChannelChange", "elementAttrChange", "fieldTemplateChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "keyStepChange", "labelChange", "labelModeChange", "nameChange", "openedChange", "openOnFieldClickChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showDropDownButtonChange", "stylingModeChange", "tabIndexChange", "textChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationStatusChange", "valueChange", "visibleChange", "widthChange", "onBlur"] }, { kind: "component", type: i10.DxPieChartComponent, selector: "dx-pie-chart", inputs: ["adaptiveLayout", "animation", "annotations", "centerTemplate", "commonAnnotationSettings", "commonSeriesSettings", "customizeAnnotation", "customizeLabel", "customizePoint", "dataSource", "diameter", "disabled", "elementAttr", "export", "innerRadius", "legend", "loadingIndicator", "margin", "minDiameter", "palette", "paletteExtensionMode", "pathModified", "pointSelectionMode", "redrawOnResize", "resolveLabelOverlapping", "rtlEnabled", "segmentsDirection", "series", "seriesTemplate", "size", "sizeGroup", "startAngle", "theme", "title", "tooltip", "type"], outputs: ["onDisposing", "onDone", "onDrawn", "onExported", "onExporting", "onFileSaving", "onIncidentOccurred", "onInitialized", "onLegendClick", "onOptionChanged", "onPointClick", "onPointHoverChanged", "onPointSelectionChanged", "onTooltipHidden", "onTooltipShown", "adaptiveLayoutChange", "animationChange", "annotationsChange", "centerTemplateChange", "commonAnnotationSettingsChange", "commonSeriesSettingsChange", "customizeAnnotationChange", "customizeLabelChange", "customizePointChange", "dataSourceChange", "diameterChange", "disabledChange", "elementAttrChange", "exportChange", "innerRadiusChange", "legendChange", "loadingIndicatorChange", "marginChange", "minDiameterChange", "paletteChange", "paletteExtensionModeChange", "pathModifiedChange", "pointSelectionModeChange", "redrawOnResizeChange", "resolveLabelOverlappingChange", "rtlEnabledChange", "segmentsDirectionChange", "seriesChange", "seriesTemplateChange", "sizeChange", "sizeGroupChange", "startAngleChange", "themeChange", "titleChange", "tooltipChange", "typeChange"] }, { 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.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: "directive", type: i5$2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: UserAccessComponent, selector: "app-user-access", inputs: ["userOptionContainer"], outputs: ["userOptionContainerChange"] }, { kind: "component", type: LoaderComponent, selector: "app-loader" }, { kind: "pipe", type: i4$2.JsonPipe, name: "json" }] });
|
|
4800
4802
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DashChartComponent, decorators: [{
|
|
4801
4803
|
type: Component,
|
|
4802
|
-
args: [{ selector: 'app-dash-chart', template: "<div class=\"mx-2\">\n <div class=\"w-full m-2 border\">\n <ng-container *ngIf=\"!isJsonPreview\">\n <pre><code>{{jsaonDatasource | json}}</code></pre>\n </ng-container>\n <ng-container *ngIf=\"isJsonPreview\">\n <ng-container *ngIf=\"chartType === 'doughnut' || chartType === 'pie'\">\n <div\n class=\"m-3 p-4 bg-white border border-gray-200 rounded-lg shadow-md dark:bg-gray-800 dark:border-gray-700\">\n <!-- <h6 class=\"mb-1 text-md font-bold tracking-tight text-gray-900 dark:text-white border-b pb-3\">\n {{widGetConfig.widgetTitle}}\n </h6> -->\n <dx-pie-chart id=\"pie\" [type]=\"chartType\"\n [title]=\"{ text: chartConfig.caption, font: { size: 14 } }\" palette=\"Soft Pastel\"\n [dataSource]=\"dataSourseForChart\" centerTemplate=\"centerTemplate\"\n (onPointClick)=\"pointClickHandler($event)\" [palette]=\"chartConfig.palette\">\n\n <ng-container *ngFor=\"let item of chartConfig.chart_config\">\n <ng-container *ngIf=\"item.color\">\n <dxi-series argumentField={{chartConfig.argumentField}} valueField=\"{{item.valueField}}\"\n name=\"{{item.name}}\" color=\"{{item.color}}\">\n <dxo-label [visible]=\"chartConfig.labelDisplay\" format=\"#,##0.##\">\n <dxo-connector [visible]=\"true\"></dxo-connector>\n </dxo-label>\n </dxi-series>\n </ng-container>\n <ng-container *ngIf=\"!item.color\">\n <dxi-series argumentField={{chartConfig.argumentField}} valueField=\"{{item.valueField}}\"\n name=\"{{item.name}}\">\n <dxo-label [visible]=\"chartConfig.labelDisplay\" format=\"#,##0.##\">\n <dxo-connector [visible]=\"true\"></dxo-connector>\n </dxo-label>\n </dxi-series>\n </ng-container>\n </ng-container>\n <dxo-legend [visible]=\"chartConfig.legendDisplay\"\n horizontalAlignment=\"{{chartConfig.horizontalAlignment}}\"\n verticalAlignment=\"{{chartConfig.verticalAlignment}}\"></dxo-legend>\n <!-- <dxo-export [enabled]=\"true\"></dxo-export> -->\n <dxo-tooltip [enabled]=\"true\" [customizeTooltip]=\"customizeTooltip\" format=\"#,##0.##\">\n </dxo-tooltip>\n <ng-container *ngIf=\"chartType === 'doughnut'\">\n <svg *dxTemplate=\"let pieChart of 'centerTemplate'\">\n <circle cx=\"100\" cy=\"100\" [attr.r]=\"pieChart.getInnerRadius() - 6\" fill=\"gray\"\n opacity=\"0.0001\">\n </circle>\n\n <text text-anchor=\"middle\" style=\"font-size: 28px\" x=\"100\" y=\"100\" fill=\"#eee\" *ngIf=\"chartConfig.displayCenterLabel\">\n <tspan x=\"100\">{{ calculateTotal(pieChart) }}</tspan>\n <!-- display: inline -->\n <!-- <tspan x=\"100\" dy=\"20px\" style=\"font-weight: 600\"></tspan> -->\n </text>\n </svg>\n </ng-container>\n\n </dx-pie-chart>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"chartType !== 'doughnut' && chartType !== 'funnel' && chartType !== 'bubble' && chartType !== 'pie'\">\n <div\n class=\"m-3 p-4 bg-white border border-gray-200 rounded-lg shadow-md dark:bg-gray-800 dark:border-gray-700\">\n <!-- <h6 class=\"mb-1 text-md font-bold tracking-tight text-gray-900 dark:text-white border-b pb-3\">\n {{widGetConfig.widgetTitle}}\n </h6> -->\n <dx-chart id=\"chart\" [dataSource]=\"dataSourseForChart\" [palette]=\"chartConfig.palette\"\n [title]=\"{ text: chartConfig.caption, font: { size: 14 } }\"\n [valueAxis]=\"chartConfig.valueAxisConfig\">\n <ng-container *ngFor=\"let item of chartConfig.chart_config\">\n <ng-container *ngIf=\"item.axis\">\n <dxi-value-axis [name]=\"item.axis\" [position]=\"item.position\">\n <dxo-title [text]=\"item.name\"></dxo-title>\n </dxi-value-axis>\n </ng-container>\n </ng-container>\n <dxo-argument-axis>\n <dxo-label overlappingBehavior=\"rotate\" [rotationAngle]=\"270\"></dxo-label>\n </dxo-argument-axis>\n <dxo-tooltip [enabled]=\"true\" [shared]=\"true\"></dxo-tooltip>\n <dxo-common-series-settings\n [argumentField]=\"chartConfig.argumentField\"></dxo-common-series-settings>\n <!-- for others single access chart start -->\n <ng-container *ngIf=\"chartType !== 'stackedBar' && chartType !== 'line'\">\n <ng-container *ngFor=\"let item of chartConfig.chart_config\">\n <ng-container *ngIf=\"item.color\">\n <dxi-series type=\"{{item.type}}\" valueField=\"{{item.valueField}}\"\n axis=\"{{item.axis}}\" name=\"{{item.name}}\" color=\"{{item.color}}\">\n </dxi-series>\n </ng-container>\n <ng-container *ngIf=\"!item.color\">\n <dxi-series type=\"{{item.type}}\" valueField=\"{{item.valueField}}\"\n axis=\"{{item.axis}}\" name=\"{{item.name}}\">\n </dxi-series>\n </ng-container>\n </ng-container>\n </ng-container>\n <!-- for others single access chart end -->\n\n <!-- for stackber start -->\n <ng-container *ngIf=\"chartType === 'stackedBar' || chartType === 'line'\">\n <ng-container *ngFor=\"let item of chartWithThreeDimentionDataSeries\">\n <dxi-series valueField=\"{{item}}\" name=\"{{item}}\" type=\"{{chartType}}\"></dxi-series>\n </ng-container>\n </ng-container>\n <!-- for stackber end -->\n <dxo-size [height]=\"chartConfig.size\"></dxo-size>\n <dxo-legend [visible]=\"chartConfig.legendDisplay\"\n [verticalAlignment]=\"chartConfig.verticalAlignment\"\n [horizontalAlignment]=\"chartConfig.horizontalAlignment\"></dxo-legend>\n </dx-chart>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"chartType === 'funnel'\">\n\n </ng-container>\n <ng-container *ngIf=\"chartType === 'bubble'\">\n <div class=\"mx-5\">\n <ng-container *ngFor=\"let item of heatChartDataSource.dataSet\">\n <div class=\"flex flex-row\">\n <div class=\"h-10 text-sm items-center min-w-24 max-w-[30%] justify-center flex\">\n {{item.datasource}}\n </div>\n <div class=\"inline-block \">\n <div class=\"flex flex-nowrap justify-center \">\n <ng-container *ngFor=\"let box of item.dataset\">\n <div class=\"flex-shrink-0 min-w-10 max-w-[20%] h-10 text-sm cursor-pointer flex items-center justify-center text-gray-800\"\n [matTooltip]=\"'Record Date: ' + box.recordDate + '\\nRecharge Count: ' + box.toolTip\"\n matTooltipClass=\"custom-tooltip\">\n <div class=\"rounded-full\" [ngStyle]=\"{\n 'background-color': box.isHovered ? 'rgb(135, 184, 106)' : box.color,\n 'width.px': box.size,\n 'hover': box.hover,\n 'height.px': box.size\n }\" (mouseenter)=\"box.isHovered = true\" (mouseleave)=\"box.isHovered = false\">\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n <div class=\"inline-block\">\n <div class=\"flex flex-nowrap justify-center\">\n <div class=\"flex-shrink-0 w-24 max-w-[20%] h-full flex items-center justify-center\"></div>\n <div *ngFor=\"let item of heatChartDataSource.argumentValue\"\n class=\"flex-shrink-0 w-10 max-w-[20%] min-h-14 flex text-sm items-center justify-center my-1\"\n [ngStyle]=\"{'height': 'auto'}\">\n <span class=\"text-rotate\">\n {{item}}\n </span>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n\n </ng-container>\n\n </div>\n <div class=\"w-full m-2 border\">\n <div class=\"flex flex-row mb-1\">\n <div class=\"w-1/3 mx-1\">\n <dx-select-box [dataSource]=\"chartAxisSource\" [(ngModel)]=\"chartAccess\" placeholder=\"Chart Type\"\n displayExpr=\"name\" valueExpr=\"value\" (onValueChanged)=\"getChartAccessType($event)\">\n </dx-select-box>\n </div>\n <div class=\"w-1/3 mx-1\">\n <ng-container *ngIf=\"chartAccess === 'single'\">\n <dx-select-box [items]=\"chartTypeSource\" (onValueChanged)=\"getChartType($event)\"\n [(ngModel)]=\"chartType\"></dx-select-box>\n </ng-container>\n <ng-container *ngIf=\"chartAccess === 'multy'\">\n <dx-select-box [items]=\"componentNamesForMultyAccess\" displayExpr=\"item\" valueExpr=\"compName\"\n [(ngModel)]=\"componentName\"></dx-select-box>\n </ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"chartAccess === 'single'\">\n\n <div class=\"mb-4 border-b border-gray-200 dark:border-gray-700\">\n <ul class=\"flex flex-wrap -mb-px text-sm font-medium text-center\" role=\"tablist\">\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'basic',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'basic'\n }\" (click)=\"setActiveTab('basic')\" type=\"button\" role=\"tab\">\n Basic\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'columns',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'columns'\n }\" (click)=\"setActiveTab('columns')\" type=\"button\" role=\"tab\">\n Columns\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'properties',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'properties'\n }\" (click)=\"setActiveTab('properties')\" type=\"button\" role=\"tab\">\n Properties\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'permission',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'permission'\n }\" (click)=\"setActiveTab('permission')\" type=\"button\" role=\"tab\">\n Manage Permissions\n </button>\n </li>\n </ul>\n </div>\n\n <div id=\"default-styled-tab-content\">\n <div *ngIf=\"activeTab === 'basic'\">\n <div class=\"flex flex-col flex-auto min-w-0\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Filter Title\n Config\n </div>\n <div class=\"pt-2 border-x border-b \">\n <div class=\"my-2 flex justify-between\">\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-1\"> Title</div>\n <dx-text-box\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.commonConfig.title\"></dx-text-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-1\"> Data Field</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.commonConfig.dataField\"></dx-select-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-2\"> Display Format </div>\n <dx-select-box [items]=\"['daily','hourly','monthly']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.formate\"></dx-select-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-2\"> Key To Pass </div>\n <dx-tag-box [items]=\"configColume\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.keyToPass\"></dx-tag-box>\n </div>\n\n </div>\n </div>\n </div>\n <div class=\"flex flex-wrap justify-between my-2\">\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1 \">Legend Horizontal Alignment</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['right','left','center']\"\n [(ngModel)]=\"chartConfig.horizontalAlignment\"></dx-select-box>\n\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Legend Vertical Alignment</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['top','bottom']\"\n [(ngModel)]=\"chartConfig.verticalAlignment\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1 mt-8\"></div>\n <dx-check-box [(ngModel)]=\"chartConfig.legendDisplay\" text=\"Legend Display\"></dx-check-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Argument Field</div>\n <dx-select-box [items]=\"configColume\"\n [(ngModel)]=\"chartConfig.argumentField\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Size</div>\n <dx-text-box [(ngModel)]=\"chartConfig.size\"></dx-text-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Caption</div>\n <dx-text-box [(ngModel)]=\"chartConfig.caption\"></dx-text-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Display Formate </div>\n <dx-select-box [items]=\"['daily','hourly','monthly']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.formate\"\n [readOnly]=\"false\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Date Format </div>\n <dx-select-box [items]=\"['MM-DD','YYYY-MM-DD']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.displayDateFormat\"></dx-select-box>\n </div>\n\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2 mt-6\"> </div>\n <dx-check-box [(ngModel)]=\"mainChartCourceObject.kpiConfig.descendingOrder\"\n text=\"Descending Order\"></dx-check-box>\n </div>\n <div class=\"w-2/3 px-2 mt-2\">\n <div class=\" flex flex-row\">\n <div class=\"mr-2\">\n <div class=\"text-md mb-1\"> Color Palette</div>\n <dx-select-box [items]=\"doughnut_color_palette\"\n [(ngModel)]=\"chartConfig.palette\"></dx-select-box>\n </div>\n <div class=\"mt-7\">\n <dx-check-box [value]=\"chartConfig.labelDisplay\"\n [(ngModel)]=\"chartConfig.labelDisplay\" text=\"Label Display\"></dx-check-box>\n </div>\n\n </div>\n\n\n </div>\n\n\n\n\n </div>\n\n <div class=\"m-3 p-4 bg-white border border-gray-300 rounded-lg shadow-md dark:bg-gray-800 dark:border-gray-700\"\n *ngIf=\"isAdvanceContainer\">\n <h6\n class=\"mb-2 text-lg tracking-tight text-gray-900 dark:text-white border-b pb-3 flex items-center capitalize\">\n Advance Columns for {{chartType}} Chart\n <div class=\"ml-auto\">\n\n </div>\n </h6>\n <div class=\"flex flex-row\" *ngIf=\"chartType === 'stackedBar' || chartType === 'line' \">\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Chart Group By </div>\n <dx-select-box [items]=\"configColume\" (onValueChanged)=\"getChartStackbarChart($event)\"\n [(ngModel)]=\"chartConfig.chartGroupBy\"></dx-select-box>\n </div>\n </div>\n <div class=\"flex flex-row\" *ngIf=\"chartType === 'bubble'\">\n <div class=\" flex flex-row\">\n <div class=\"mr-2 w-full\">\n <div class=\"text-md mb-1\"> Source Field</div>\n <dx-select-box [items]=\"configColume\"\n [(ngModel)]=\"chartConfig.sourceField\"></dx-select-box>\n </div>\n <div class=\"mr-2 w-full\">\n <div class=\"text-md mb-1\"> Min Bubble Size</div>\n <dx-text-box [(ngModel)]=\"chartConfig.minBubbleSize\"></dx-text-box>\n </div>\n <div class=\"mr-2 w-full\">\n <div class=\"text-md mb-1\"> Max bubble size</div>\n <dx-text-box [(ngModel)]=\"chartConfig.maxBubbleSize\"></dx-text-box>\n </div>\n </div>\n </div>\n <div class=\"flex flex-row\" *ngIf=\"chartType === 'doughnut' || chartType === 'pie'\">\n <div class=\" flex flex-row\">\n <!-- <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Chart Group By </div>\n <dx-select-box [items]=\"configColume\"\n (onValueChanged)=\"getChartStackbarChart($event)\"\n [(ngModel)]=\"chartConfig.chartGroupBy\"></dx-select-box>\n\n\n </div> -->\n <div class=\"mt-7 mx-2\">\n <dx-check-box [(ngModel)]=\"chartConfig.displayCenterLabel\"\n text=\"Display Center Label\"></dx-check-box>\n </div>\n </div>\n </div>\n\n </div>\n </div>\n <div *ngIf=\"activeTab === 'columns'\">\n <div class=\"h-60 overflow-x-auto\">\n <div class=\" border-x border-b \">\n <div class=\"py-1 flex flex-row border-b\"\n *ngFor=\"let item of chartConfig.chart_config; let i = index\">\n\n <div class=\"px-1 mb-1 w-1/3\">\n <div class=\"text-md mb-1\"> Value Field</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"item.valueField\"></dx-select-box>\n </div>\n\n <div class=\"px-1 mb-1 w-1/4\" *ngIf=\"chartType !== 'doughnut' && chartType !== 'pie'\">\n <div class=\"text-md mb-1\"> Axis</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"item.axis\"></dx-select-box>\n </div>\n <div class=\" px-2 mb-1 w-1/3\">\n <div class=\"text-md mb-1\"> Position</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['right','left']\"\n [(ngModel)]=\"item.position\"></dx-select-box>\n </div>\n <div class=\"px-1 mb-1 w-1/4\">\n <div class=\"text-md mb-1\"> Name</div>\n <dx-text-box [(ngModel)]=\"item.name\"></dx-text-box>\n </div>\n <div class=\"text-center mt-6 w-1/6\">\n <button *ngIf=\"i !== 0\" class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItem(i, 'up')\">\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\n </button>\n <button *ngIf=\"i !== chartConfig.chart_config.length - 1\"\n class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItem(i, 'down')\">\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\n </button>\n\n <button class=\"{{commonService.btn_danger_sm}} cursor-pointer\"\n (click)=\"deleteColumns(i)\"><i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n <div class=\"flex flex-row justify-end my-2\"\n *ngIf=\"chartType === 'doughnut' || chartType === 'pie'\">\n <button class=\"{{commonService.btn_primary_sm}} cursor-pointer\"\n (click)=\"addColumns()\">Add\n Series</button>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"activeTab === 'properties'\">\n <div class=\"h-full overflow-x-auto\">\n <app-loader *ngIf=\"isLoader\"></app-loader>\n <ng-container *ngIf=\"!isLoader\">\n <div class=\"flex flex-row justify-between border-b py-3\">\n <div class=\"mx-2\">\n <dx-check-box [value]=\"viewProperties.enableClickEvent\"\n [(ngModel)]=\"viewProperties.enableClickEvent\"\n text=\"Enable Click Event\"></dx-check-box>\n </div>\n <div class=\"mx-2\">\n <dx-check-box [value]=\"viewProperties.enableRightClickEvent\"\n [(ngModel)]=\"viewProperties.enableRightClickEvent\"\n text=\"Enable Right Click\"></dx-check-box>\n </div>\n </div>\n <div class=\"w-full p-2\" *ngIf=\"viewProperties.enableClickEvent\">\n\n <div class=\"flex flex-col flex-auto min-w-0 my-2\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Event\n Type\n Option\n </div>\n <div class=\"w-full p-3 border-x border-b \">\n <div class=\"flex flex-row\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Event Type</div>\n </div>\n <div class=\"w-full\">\n <dx-select-box\n [items]=\"['drilldown','sameViewDrilldown','optionalDrillDown','popup','navigateToPage']\"\n (onValueChanged)=\"getSelectedEventType($event)\"\n [(ngModel)]=\"viewProperties.clickEventOptions.eventType\"></dx-select-box>\n </div>\n </div>\n <ng-container *ngIf=\"viewProperties.clickEventOptions.eventType === 'popup'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views For Popup</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'navigateToPage'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full mx-2\">\n <div class=\"text-md mb-2\"> Associated Pages</div>\n <dx-select-box [items]=\"allConfiguredPage\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedPage\"\n valueExpr=\"pageId\" displayExpr=\"pageName\"\n [searchEnabled]=\"true\"></dx-select-box>\n </div>\n <div class=\"w-full mx-2\">\n <div class=\"text-md mb-2\"> Associated Params</div>\n <dx-text-box\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedParams\"></dx-text-box>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"viewProperties.clickEventOptions.eventType === 'drilldown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'sameViewDrilldown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'optionalDrillDown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <ng-container\n *ngFor=\"let item of optionalDrilDownDataSource;let i = index;\">\n\n <div class=\"flex flex-row justify-between\">\n <div class=\"mx-2 w-1/2\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"item.viewId\" valueExpr=\"viewId\"\n displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [maxDisplayedTags]=\"2\"\n [searchEnabled]=\"true\"></dx-tag-box>\n\n </div>\n <div class=\"mx-2 w-1/2\">\n <div class=\"text-md mb-2\"> Associated Params</div>\n <dx-text-box\n [(ngModel)]=\"item.filterCondition\"></dx-text-box>\n </div>\n <div class=\"mx-2\">\n <button\n class=\"{{commonService.btn_danger_sm}} cursor-pointer mt-8\"\n (click)=\"deleteAssociatedParams(i)\"><i\n class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n <div class=\"flex flex-row justify-end mt-4\">\n <button class=\"{{commonService.btn_primary_sm}} cursor-pointer\"\n (click)=\"addAssociatedParams()\">Add\n Params</button>\n </div>\n </div>\n </div>\n </ng-container>\n <button class=\"{{commonService.btn_light_md}} cursor-pointer mt-4\"\n (click)=\"resetViewProprstise()\">Reset All Event</button>\n </div>\n </div>\n\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"activeTab === 'permission'\">\n <div class=\"h-full overflow-x-auto\">\n <app-user-access [(userOptionContainer)]=\"userOptionContainer\">\n </app-user-access>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"chartAccess === 'multy'\">\n <div class=\"mb-4 border-b border-gray-200 dark:border-gray-700\">\n <ul class=\"flex flex-wrap -mb-px text-sm font-medium text-center\" role=\"tablist\">\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'basic',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'basic'\n }\" (click)=\"setActiveTab('basic')\" type=\"button\" role=\"tab\">\n Basic\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'columns',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'columns'\n }\" (click)=\"setActiveTab('columns')\" type=\"button\" role=\"tab\">\n Columns\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'properties',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'properties'\n }\" (click)=\"setActiveTab('properties')\" type=\"button\" role=\"tab\">\n Properties\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'permission',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'permission'\n }\" (click)=\"setActiveTab('permission')\" type=\"button\" role=\"tab\">\n Manage Permissions\n </button>\n </li>\n </ul>\n </div>\n\n <div id=\"default-styled-tab-content\">\n <div *ngIf=\"activeTab === 'basic'\">\n <div class=\"flex flex-col flex-auto min-w-0\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Filter Title\n Config\n </div>\n <div class=\"pt-2 border-x border-b \">\n <div class=\"my-2 flex justify-between\">\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-1\"> Title</div>\n <dx-text-box\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.commonConfig.title\"></dx-text-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-1\"> Data Field</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.commonConfig.dataField\"></dx-select-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-2\"> Display Format </div>\n <dx-select-box [items]=\"['daily','hourly','monthly']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.formate\"></dx-select-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-2\"> Key To Pass </div>\n <dx-tag-box [items]=\"configColume\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.keyToPass\"></dx-tag-box>\n </div>\n\n </div>\n </div>\n </div>\n <div class=\"flex flex-wrap justify-between my-2\">\n <div class=\"w-1/3 px-2\">\n <div class=\"text-md mb-1\">Legend Horizontal Alignment</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['right','left','center']\" [value]=\"'center'\"\n [(ngModel)]=\"chartConfig.horizontalAlignment\"></dx-select-box>\n\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> legent Vertical Alignment</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['top','bottom']\" [value]=\"'bottom'\"\n [(ngModel)]=\"chartConfig.verticalAlignment\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1 mt-8\"></div>\n <dx-check-box [(ngModel)]=\"chartConfig.legendDisplay\" text=\"Legend Display\"></dx-check-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Argument Field</div>\n <dx-select-box [items]=\"configColume\"\n [(ngModel)]=\"chartConfig.argumentField\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Size</div>\n <dx-text-box [(ngModel)]=\"chartConfig.size\"></dx-text-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Caption</div>\n <dx-text-box [(ngModel)]=\"chartConfig.caption\"></dx-text-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Display Format </div>\n <dx-select-box [items]=\"['daily','hourly','monthly']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.formate\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Date Format </div>\n <dx-select-box [items]=\"['MM-DD','YYYY-MM-DD']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.displayDateFormat\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2 mt-6\"> </div>\n <dx-check-box [(ngModel)]=\"mainChartCourceObject.kpiConfig.descendingOrder\"\n text=\"Descending Order\"></dx-check-box>\n </div>\n </div>\n\n\n </div>\n <div *ngIf=\"activeTab === 'columns'\">\n <dx-scroll-view class=\"h-full\" [width]=\"'100%'\" [height]=\"'100%'\">\n <div class=\" border-x border-b \">\n <div class=\"py-1 flex flex-wrap border-b\"\n *ngFor=\"let item of chartConfig.chart_config; let i = index;\">\n\n <div class=\"px-2 mb-1 w-1/3\">\n <div class=\"text-md mb-2\"> Type</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"chartTypeSource\" [value]=\"'spline'\"\n [(ngModel)]=\"item.type\"></dx-select-box>\n </div>\n <div class=\"px-2 mb-1 w-1/3\">\n <div class=\"text-md mb-1\"> Value Field</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"item.valueField\"></dx-select-box>\n </div>\n\n <div class=\"px-2 mb-1 w-1/3\">\n <div class=\"text-md mb-1\"> Axis</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"item.axis\"></dx-select-box>\n </div>\n <div class=\" px-2 mb-1 w-1/4\">\n <div class=\"text-md mb-1\"> Position</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['right','left']\"\n [(ngModel)]=\"item.position\"></dx-select-box>\n </div>\n <div class=\"px-2 mb-1 w-1/4\">\n <div class=\"text-md mb-1\"> Name</div>\n <dx-text-box [(ngModel)]=\"item.name\"></dx-text-box>\n </div>\n <div class=\"px-2 mb-1 w-1/4\">\n <div class=\"text-md mb-2\"> Color</div>\n <dx-color-box [(ngModel)]=\"item.color\"></dx-color-box>\n </div>\n <div class=\"text-center my-1 w-1/4\">\n <button *ngIf=\"i !== 0\" class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItem(i, 'up')\">\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\n </button>\n <button *ngIf=\"i !== chartConfig.chart_config.length - 1\"\n class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItem(i, 'down')\">\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\n </button>\n\n <button class=\"{{commonService.btn_danger_sm}} cursor-pointer\"\n (click)=\"deleteColumns(i)\"><i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n <div class=\"flex flex-row justify-end my-2\">\n <button class=\"{{commonService.btn_primary_sm}} cursor-pointer\"\n (click)=\"addColumns()\">Add\n Columns</button>\n </div>\n </div>\n </dx-scroll-view>\n </div>\n <div *ngIf=\"activeTab === 'properties'\">\n <div class=\"h-full overflow-x-auto\">\n <app-loader *ngIf=\"isLoader\"></app-loader>\n <ng-container *ngIf=\"!isLoader\">\n <div class=\"flex flex-row justify-between border-b py-3\">\n <div class=\"mx-2\">\n <dx-check-box [value]=\"viewProperties.enableClickEvent\"\n [(ngModel)]=\"viewProperties.enableClickEvent\"\n text=\"Enable Click Event\"></dx-check-box>\n </div>\n <div class=\"mx-2\">\n <dx-check-box [value]=\"viewProperties.enableRightClickEvent\"\n [(ngModel)]=\"viewProperties.enableRightClickEvent\"\n text=\"Enable Right Click\"></dx-check-box>\n </div>\n </div>\n <div class=\"w-full p-2\" *ngIf=\"viewProperties.enableClickEvent\">\n\n <div class=\"flex flex-col flex-auto min-w-0 my-2\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Event\n Type\n Option\n </div>\n <div class=\"w-full p-3 border-x border-b \">\n <div class=\"flex flex-row\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Event Type</div>\n </div>\n <div class=\"w-full\">\n <dx-select-box\n [items]=\"['drilldown','sameViewDrilldown','optionalDrillDown','popup','navigateToPage']\"\n (onValueChanged)=\"getSelectedEventType($event)\"\n [(ngModel)]=\"viewProperties.clickEventOptions.eventType\"></dx-select-box>\n </div>\n </div>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'navigateToPage'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full mx-2\">\n <div class=\"text-md mb-2\"> Associated Pages</div>\n <dx-select-box [items]=\"allConfiguredPage\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedPage\"\n valueExpr=\"pageId\" displayExpr=\"pageName\"\n [searchEnabled]=\"true\"></dx-select-box>\n </div>\n <div class=\"w-full mx-2\">\n <div class=\"text-md mb-2\"> Associated Params</div>\n <dx-text-box\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedParams\"></dx-text-box>\n\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"viewProperties.clickEventOptions.eventType === 'drilldown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"viewProperties.clickEventOptions.eventType === 'popup'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views For Popup</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'sameViewDrilldown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'optionalDrillDown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <ng-container\n *ngFor=\"let item of optionalDrilDownDataSource;let i = index;\">\n\n <div class=\"flex flex-row justify-between\">\n <div class=\"mx-2 w-1/2\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"item.viewId\" valueExpr=\"viewId\"\n displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [maxDisplayedTags]=\"2\"\n [searchEnabled]=\"true\"></dx-tag-box>\n\n </div>\n <div class=\"mx-2 w-1/2\">\n <div class=\"text-md mb-2\"> Associated Params</div>\n <dx-text-box\n [(ngModel)]=\"item.filterCondition\"></dx-text-box>\n </div>\n <div class=\"mx-2\">\n <button\n class=\"{{commonService.btn_danger_sm}} cursor-pointer mt-8\"\n (click)=\"deleteAssociatedParams(i)\"><i\n class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n <div class=\"flex flex-row justify-end mt-4\">\n <button class=\"{{commonService.btn_primary_sm}} cursor-pointer\"\n (click)=\"addAssociatedParams()\">Add\n Params</button>\n </div>\n </div>\n </div>\n </ng-container>\n <button class=\"{{commonService.btn_light_md}} cursor-pointer mt-4\"\n (click)=\"resetViewProprstise()\">Reset All Event</button>\n </div>\n </div>\n\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"activeTab === 'permission'\">\n <div class=\"h-full overflow-x-auto\">\n <app-user-access [(userOptionContainer)]=\"userOptionContainer\">\n </app-user-access>\n </div>\n </div>\n </div>\n </ng-container>\n\n\n\n </div>\n\n <div class=\"flex flex-row border-t pl-3\">\n <div class=\"flex justify-start mx-1\">\n <button class=\"{{commonService.btn_warning_md}} cursor-pointer mt-2\" (click)=\"isJsonPreview = true\">\n Preview</button>\n <button class=\"{{commonService.btn_primary_md}} cursor-pointer mt-2\" (click)=\"isJsonPreview = false\">Data\n Preview</button>\n </div>\n <div class=\"flex justify-end mx-1 flex-grow\">\n <button class=\"{{commonService.btn_success_md}} cursor-pointer mt-2\"\n (click)=\"getSaveChartConfig()\">Submit</button>\n </div>\n </div>\n</div>" }]
|
|
4804
|
+
args: [{ selector: 'app-dash-chart', template: "<div class=\"mx-2\">\n <div class=\"w-full m-2 border\">\n <ng-container *ngIf=\"!isJsonPreview\">\n <pre><code>{{jsaonDatasource | json}}</code></pre>\n </ng-container>\n <ng-container *ngIf=\"isJsonPreview\">\n <ng-container *ngIf=\"chartType === 'doughnut' || chartType === 'pie'\">\n <div\n class=\"m-3 p-4 bg-white border border-gray-200 rounded-lg shadow-md dark:bg-gray-800 dark:border-gray-700\">\n <!-- <h6 class=\"mb-1 text-md font-bold tracking-tight text-gray-900 dark:text-white border-b pb-3\">\n {{widGetConfig.widgetTitle}}\n </h6> -->\n <dx-pie-chart id=\"pie\" [type]=\"chartType\"\n [title]=\"{ text: chartConfig.caption, font: { size: 14 } }\" palette=\"Soft Pastel\"\n [dataSource]=\"dataSourseForChart\" centerTemplate=\"centerTemplate\"\n (onPointClick)=\"pointClickHandler($event)\" [palette]=\"chartConfig.palette\">\n\n <ng-container *ngFor=\"let item of chartConfig.chart_config\">\n <ng-container *ngIf=\"item.color\">\n <dxi-series argumentField={{chartConfig.argumentField}} valueField=\"{{item.valueField}}\"\n name=\"{{item.name}}\" color=\"{{item.color}}\">\n <dxo-label [visible]=\"chartConfig.labelDisplay\" format=\"#,##0.##\">\n <dxo-connector [visible]=\"true\"></dxo-connector>\n </dxo-label>\n </dxi-series>\n </ng-container>\n <ng-container *ngIf=\"!item.color\">\n <dxi-series argumentField={{chartConfig.argumentField}} valueField=\"{{item.valueField}}\"\n name=\"{{item.name}}\">\n <dxo-label [visible]=\"chartConfig.labelDisplay\" format=\"#,##0.##\">\n <dxo-connector [visible]=\"true\"></dxo-connector>\n </dxo-label>\n </dxi-series>\n </ng-container>\n </ng-container>\n <dxo-legend [visible]=\"chartConfig.legendDisplay\"\n horizontalAlignment=\"{{chartConfig.horizontalAlignment}}\"\n verticalAlignment=\"{{chartConfig.verticalAlignment}}\"></dxo-legend>\n <!-- <dxo-export [enabled]=\"true\"></dxo-export> -->\n <dxo-tooltip [enabled]=\"true\" [customizeTooltip]=\"customizeTooltip\" format=\"#,##0.##\">\n </dxo-tooltip>\n <ng-container *ngIf=\"chartType === 'doughnut'\">\n <svg *dxTemplate=\"let pieChart of 'centerTemplate'\">\n <circle cx=\"100\" cy=\"100\" [attr.r]=\"pieChart.getInnerRadius() - 6\" fill=\"gray\"\n opacity=\"0.0001\">\n </circle>\n\n <text text-anchor=\"middle\" style=\"font-size: 28px\" x=\"100\" y=\"100\" fill=\"#eee\"\n *ngIf=\"chartConfig.displayCenterLabel\">\n <tspan x=\"100\">{{ calculateTotal(pieChart) }}</tspan>\n <!-- display: inline -->\n <!-- <tspan x=\"100\" dy=\"20px\" style=\"font-weight: 600\"></tspan> -->\n </text>\n </svg>\n </ng-container>\n\n </dx-pie-chart>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"chartType !== 'doughnut' && chartType !== 'funnel' && chartType !== 'bubble' && chartType !== 'pie'\">\n <div\n class=\"m-3 p-4 bg-white border border-gray-200 rounded-lg shadow-md dark:bg-gray-800 dark:border-gray-700\">\n <!-- <h6 class=\"mb-1 text-md font-bold tracking-tight text-gray-900 dark:text-white border-b pb-3\">\n {{widGetConfig.widgetTitle}}\n </h6> -->\n <dx-chart id=\"chart\" [dataSource]=\"dataSourseForChart\" [palette]=\"chartConfig.palette\"\n [title]=\"{ text: chartConfig.caption, font: { size: 14 } }\"\n [valueAxis]=\"chartConfig.valueAxisConfig\">\n <ng-container *ngFor=\"let item of chartConfig.chart_config\">\n <ng-container *ngIf=\"item.axis\">\n <dxi-value-axis [name]=\"item.axis\" [position]=\"item.position\">\n <dxo-title [text]=\"item.name\"></dxo-title>\n </dxi-value-axis>\n </ng-container>\n </ng-container>\n <dxo-argument-axis>\n <dxo-label overlappingBehavior=\"rotate\" [rotationAngle]=\"270\"></dxo-label>\n </dxo-argument-axis>\n <dxo-tooltip [enabled]=\"true\" [shared]=\"true\"></dxo-tooltip>\n <dxo-common-series-settings\n [argumentField]=\"chartConfig.argumentField\"></dxo-common-series-settings>\n <!-- for others single access chart start -->\n <ng-container *ngIf=\"chartType !== 'stackedBar' && chartType !== 'line'\">\n <ng-container *ngFor=\"let item of chartConfig.chart_config\">\n <ng-container *ngIf=\"item.color\">\n <dxi-series type=\"{{item.type}}\" valueField=\"{{item.valueField}}\"\n axis=\"{{item.axis}}\" name=\"{{item.name}}\" color=\"{{item.color}}\">\n </dxi-series>\n </ng-container>\n <ng-container *ngIf=\"!item.color\">\n <dxi-series type=\"{{item.type}}\" valueField=\"{{item.valueField}}\"\n axis=\"{{item.axis}}\" name=\"{{item.name}}\">\n </dxi-series>\n </ng-container>\n </ng-container>\n </ng-container>\n <!-- for others single access chart end -->\n\n <!-- for stackber start -->\n <ng-container *ngIf=\"chartType === 'stackedBar' || chartType === 'line'\">\n <ng-container *ngFor=\"let item of chartWithThreeDimentionDataSeries\">\n <dxi-series valueField=\"{{item}}\" name=\"{{item}}\" type=\"{{chartType}}\"></dxi-series>\n </ng-container>\n </ng-container>\n <!-- for stackber end -->\n <dxo-size [height]=\"chartConfig.size\"></dxo-size>\n <dxo-legend [visible]=\"chartConfig.legendDisplay\"\n [verticalAlignment]=\"chartConfig.verticalAlignment\"\n [horizontalAlignment]=\"chartConfig.horizontalAlignment\"></dxo-legend>\n </dx-chart>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"chartType === 'funnel'\">\n\n </ng-container>\n <ng-container *ngIf=\"chartType === 'bubble'\">\n <div class=\"mx-5\">\n <ng-container *ngFor=\"let item of heatChartDataSource.dataSet\">\n <div class=\"flex flex-row\">\n <div class=\"h-10 text-sm items-center min-w-24 max-w-[30%] justify-center flex\">\n {{item.datasource}}\n </div>\n <div class=\"inline-block \">\n <div class=\"flex flex-nowrap justify-center \">\n <ng-container *ngFor=\"let box of item.dataset\">\n <div class=\"flex-shrink-0 min-w-10 max-w-[20%] h-10 text-sm cursor-pointer flex items-center justify-center text-gray-800\"\n [matTooltip]=\"'Record Date: ' + box.recordDate + '\\nRecharge Count: ' + box.toolTip\"\n matTooltipClass=\"custom-tooltip\">\n <div class=\"rounded-full\" [ngStyle]=\"{\n 'background-color': box.isHovered ? 'rgb(135, 184, 106)' : box.color,\n 'width.px': box.size,\n 'hover': box.hover,\n 'height.px': box.size\n }\" (mouseenter)=\"box.isHovered = true\" (mouseleave)=\"box.isHovered = false\">\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n <div class=\"inline-block\">\n <div class=\"flex flex-nowrap justify-center\">\n <div class=\"flex-shrink-0 w-24 max-w-[20%] h-full flex items-center justify-center\"></div>\n <div *ngFor=\"let item of heatChartDataSource.argumentValue\"\n class=\"flex-shrink-0 w-10 max-w-[20%] min-h-14 flex text-sm items-center justify-center my-1\"\n [ngStyle]=\"{'height': 'auto'}\">\n <span class=\"text-rotate\">\n {{item}}\n </span>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n\n </ng-container>\n\n </div>\n <div class=\"w-full m-2 border\">\n <div class=\"flex flex-row mb-1\">\n <div class=\"w-1/3 mx-1\">\n <dx-select-box [dataSource]=\"chartAxisSource\" [(ngModel)]=\"chartAccess\" placeholder=\"Chart Type\"\n displayExpr=\"name\" valueExpr=\"value\" (onValueChanged)=\"getChartAccessType($event)\">\n </dx-select-box>\n </div>\n <div class=\"w-1/3 mx-1\">\n <ng-container *ngIf=\"chartAccess === 'single'\">\n <dx-select-box [items]=\"chartTypeSource\" (onValueChanged)=\"getChartType($event)\"\n [(ngModel)]=\"chartType\"></dx-select-box>\n </ng-container>\n <ng-container *ngIf=\"chartAccess === 'multy'\">\n <dx-select-box [items]=\"componentNamesForMultyAccess\" displayExpr=\"item\" valueExpr=\"compName\"\n [(ngModel)]=\"componentName\"></dx-select-box>\n </ng-container>\n </div>\n </div>\n <ng-container *ngIf=\"chartAccess === 'single'\">\n\n <div class=\"mb-4 border-b border-gray-200 dark:border-gray-700\">\n <ul class=\"flex flex-wrap -mb-px text-sm font-medium text-center\" role=\"tablist\">\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'basic',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'basic'\n }\" (click)=\"setActiveTab('basic')\" type=\"button\" role=\"tab\">\n Basic\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'columns',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'columns'\n }\" (click)=\"setActiveTab('columns')\" type=\"button\" role=\"tab\">\n Columns\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'properties',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'properties'\n }\" (click)=\"setActiveTab('properties')\" type=\"button\" role=\"tab\">\n Properties\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'permission',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'permission'\n }\" (click)=\"setActiveTab('permission')\" type=\"button\" role=\"tab\">\n Manage Permissions\n </button>\n </li>\n </ul>\n </div>\n\n <div id=\"default-styled-tab-content\">\n <div *ngIf=\"activeTab === 'basic'\">\n <div class=\"flex flex-col flex-auto min-w-0\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Filter Title\n Config\n </div>\n <div class=\"pt-2 border-x border-b \">\n <div class=\"my-2 flex justify-between\">\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-1\"> Title</div>\n <dx-text-box\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.commonConfig.title\"></dx-text-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-1\"> Data Field</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.commonConfig.dataField\"></dx-select-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-2\"> Display Format </div>\n <dx-select-box [items]=\"['daily','hourly','monthly']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.formate\"></dx-select-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-2\"> Key To Pass </div>\n <dx-tag-box [items]=\"configColume\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.keyToPass\"></dx-tag-box>\n </div>\n\n </div>\n </div>\n </div>\n <div class=\"flex flex-wrap justify-between my-2\">\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1 \">Legend Horizontal Alignment</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['right','left','center']\"\n [(ngModel)]=\"chartConfig.horizontalAlignment\"></dx-select-box>\n\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Legend Vertical Alignment</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['top','bottom']\"\n [(ngModel)]=\"chartConfig.verticalAlignment\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1 mt-8\"></div>\n <dx-check-box [(ngModel)]=\"chartConfig.legendDisplay\" text=\"Legend Display\"></dx-check-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Argument Field</div>\n <dx-select-box [items]=\"configColume\"\n [(ngModel)]=\"chartConfig.argumentField\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Size</div>\n <dx-text-box [(ngModel)]=\"chartConfig.size\"></dx-text-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Caption</div>\n <dx-text-box [(ngModel)]=\"chartConfig.caption\"></dx-text-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Display Formate </div>\n <dx-select-box [items]=\"['daily','hourly','monthly']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.formate\"\n [readOnly]=\"false\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Date Format </div>\n <dx-select-box [items]=\"['MM-DD','YYYY-MM-DD']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.displayDateFormat\"></dx-select-box>\n </div>\n\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\">Sort By</div>\n <dx-tag-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"chartConfig.chartSortBy\"></dx-tag-box>\n </div>\n\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2 mt-6\"> </div>\n <dx-check-box [(ngModel)]=\"mainChartCourceObject.kpiConfig.descendingOrder\"\n text=\"Descending Order\"></dx-check-box>\n </div>\n <div class=\"w-2/3 px-2 mt-2\">\n <div class=\" flex flex-row\">\n <div class=\"mr-2\">\n <div class=\"text-md mb-1\"> Color Palette</div>\n <dx-select-box [items]=\"doughnut_color_palette\"\n [(ngModel)]=\"chartConfig.palette\"></dx-select-box>\n </div>\n <div class=\"mt-7\">\n <dx-check-box [value]=\"chartConfig.labelDisplay\"\n [(ngModel)]=\"chartConfig.labelDisplay\" text=\"Label Display\"></dx-check-box>\n </div>\n\n </div>\n\n\n </div>\n\n\n\n\n </div>\n\n <div class=\"m-3 p-4 bg-white border border-gray-300 rounded-lg shadow-md dark:bg-gray-800 dark:border-gray-700\"\n *ngIf=\"isAdvanceContainer\">\n <h6\n class=\"mb-2 text-lg tracking-tight text-gray-900 dark:text-white border-b pb-3 flex items-center capitalize\">\n Advance Columns for {{chartType}} Chart\n <div class=\"ml-auto\">\n\n </div>\n </h6>\n <div class=\"flex flex-row\" *ngIf=\"chartType === 'stackedBar' || chartType === 'line' \">\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Chart Group By </div>\n <dx-select-box [items]=\"configColume\" (onValueChanged)=\"getChartStackbarChart($event)\"\n [(ngModel)]=\"chartConfig.chartGroupBy\"></dx-select-box>\n </div>\n </div>\n <div class=\"flex flex-row\" *ngIf=\"chartType === 'bubble'\">\n <div class=\" flex flex-row\">\n <div class=\"mr-2 w-full\">\n <div class=\"text-md mb-1\"> Source Field</div>\n <dx-select-box [items]=\"configColume\"\n [(ngModel)]=\"chartConfig.sourceField\"></dx-select-box>\n </div>\n <div class=\"mr-2 w-full\">\n <div class=\"text-md mb-1\"> Min Bubble Size</div>\n <dx-text-box [(ngModel)]=\"chartConfig.minBubbleSize\"></dx-text-box>\n </div>\n <div class=\"mr-2 w-full\">\n <div class=\"text-md mb-1\"> Max bubble size</div>\n <dx-text-box [(ngModel)]=\"chartConfig.maxBubbleSize\"></dx-text-box>\n </div>\n </div>\n </div>\n <div class=\"flex flex-row\" *ngIf=\"chartType === 'doughnut' || chartType === 'pie'\">\n <div class=\" flex flex-row\">\n <!-- <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Chart Group By </div>\n <dx-select-box [items]=\"configColume\"\n (onValueChanged)=\"getChartStackbarChart($event)\"\n [(ngModel)]=\"chartConfig.chartGroupBy\"></dx-select-box>\n\n\n </div> -->\n <div class=\"mt-7 mx-2\">\n <dx-check-box [(ngModel)]=\"chartConfig.displayCenterLabel\"\n text=\"Display Center Label\"></dx-check-box>\n </div>\n </div>\n </div>\n\n </div>\n </div>\n <div *ngIf=\"activeTab === 'columns'\">\n <div class=\"h-60 overflow-x-auto\">\n <div class=\" border-x border-b \">\n <div class=\"py-1 flex flex-row border-b\"\n *ngFor=\"let item of chartConfig.chart_config; let i = index\">\n\n <div class=\"px-1 mb-1 w-1/3\">\n <div class=\"text-md mb-1\"> Value Field</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"item.valueField\"></dx-select-box>\n </div>\n\n <div class=\"px-1 mb-1 w-1/4\" *ngIf=\"chartType !== 'doughnut' && chartType !== 'pie'\">\n <div class=\"text-md mb-1\"> Axis</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"item.axis\"></dx-select-box>\n </div>\n <div class=\" px-2 mb-1 w-1/3\">\n <div class=\"text-md mb-1\"> Position</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['right','left']\"\n [(ngModel)]=\"item.position\"></dx-select-box>\n </div>\n <div class=\"px-1 mb-1 w-1/4\">\n <div class=\"text-md mb-1\"> Name</div>\n <dx-text-box [(ngModel)]=\"item.name\"></dx-text-box>\n </div>\n <div class=\"text-center mt-6 w-1/6\">\n <button *ngIf=\"i !== 0\" class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItem(i, 'up')\">\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\n </button>\n <button *ngIf=\"i !== chartConfig.chart_config.length - 1\"\n class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItem(i, 'down')\">\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\n </button>\n\n <button class=\"{{commonService.btn_danger_sm}} cursor-pointer\"\n (click)=\"deleteColumns(i)\"><i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n <div class=\"flex flex-row justify-end my-2\"\n *ngIf=\"chartType === 'doughnut' || chartType === 'pie'\">\n <button class=\"{{commonService.btn_primary_sm}} cursor-pointer\"\n (click)=\"addColumns()\">Add\n Series</button>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"activeTab === 'properties'\">\n <div class=\"h-full overflow-x-auto\">\n <app-loader *ngIf=\"isLoader\"></app-loader>\n <ng-container *ngIf=\"!isLoader\">\n <div class=\"flex flex-row justify-between border-b py-3\">\n <div class=\"mx-2\">\n <dx-check-box [value]=\"viewProperties.enableClickEvent\"\n [(ngModel)]=\"viewProperties.enableClickEvent\"\n text=\"Enable Click Event\"></dx-check-box>\n </div>\n <div class=\"mx-2\">\n <dx-check-box [value]=\"viewProperties.enableRightClickEvent\"\n [(ngModel)]=\"viewProperties.enableRightClickEvent\"\n text=\"Enable Right Click\"></dx-check-box>\n </div>\n </div>\n <div class=\"w-full p-2\" *ngIf=\"viewProperties.enableClickEvent\">\n\n <div class=\"flex flex-col flex-auto min-w-0 my-2\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Event\n Type\n Option\n </div>\n <div class=\"w-full p-3 border-x border-b \">\n <div class=\"flex flex-row\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Event Type</div>\n </div>\n <div class=\"w-full\">\n <dx-select-box\n [items]=\"['drilldown','sameViewDrilldown','optionalDrillDown','popup','navigateToPage']\"\n (onValueChanged)=\"getSelectedEventType($event)\"\n [(ngModel)]=\"viewProperties.clickEventOptions.eventType\"></dx-select-box>\n </div>\n </div>\n <ng-container *ngIf=\"viewProperties.clickEventOptions.eventType === 'popup'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views For Popup</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'navigateToPage'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full mx-2\">\n <div class=\"text-md mb-2\"> Associated Pages</div>\n <dx-select-box [items]=\"allConfiguredPage\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedPage\"\n valueExpr=\"pageId\" displayExpr=\"pageName\"\n [searchEnabled]=\"true\"></dx-select-box>\n </div>\n <div class=\"w-full mx-2\">\n <div class=\"text-md mb-2\"> Associated Params</div>\n <dx-text-box\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedParams\"></dx-text-box>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'drilldown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'sameViewDrilldown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'optionalDrillDown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <ng-container\n *ngFor=\"let item of optionalDrilDownDataSource;let i = index;\">\n\n <div class=\"flex flex-row justify-between\">\n <div class=\"mx-2 w-1/2\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"item.viewId\" valueExpr=\"viewId\"\n displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [maxDisplayedTags]=\"2\"\n [searchEnabled]=\"true\"></dx-tag-box>\n\n </div>\n <div class=\"mx-2 w-1/2\">\n <div class=\"text-md mb-2\"> Associated Params</div>\n <dx-text-box\n [(ngModel)]=\"item.filterCondition\"></dx-text-box>\n </div>\n <div class=\"mx-2\">\n <button\n class=\"{{commonService.btn_danger_sm}} cursor-pointer mt-8\"\n (click)=\"deleteAssociatedParams(i)\"><i\n class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n <div class=\"flex flex-row justify-end mt-4\">\n <button class=\"{{commonService.btn_primary_sm}} cursor-pointer\"\n (click)=\"addAssociatedParams()\">Add\n Params</button>\n </div>\n </div>\n </div>\n </ng-container>\n <button class=\"{{commonService.btn_light_md}} cursor-pointer mt-4\"\n (click)=\"resetViewProprstise()\">Reset All Event</button>\n </div>\n </div>\n\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"activeTab === 'permission'\">\n <div class=\"h-full overflow-x-auto\">\n <app-user-access [(userOptionContainer)]=\"userOptionContainer\">\n </app-user-access>\n </div>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"chartAccess === 'multy'\">\n <div class=\"mb-4 border-b border-gray-200 dark:border-gray-700\">\n <ul class=\"flex flex-wrap -mb-px text-sm font-medium text-center\" role=\"tablist\">\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'basic',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'basic'\n }\" (click)=\"setActiveTab('basic')\" type=\"button\" role=\"tab\">\n Basic\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'columns',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'columns'\n }\" (click)=\"setActiveTab('columns')\" type=\"button\" role=\"tab\">\n Columns\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'properties',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'properties'\n }\" (click)=\"setActiveTab('properties')\" type=\"button\" role=\"tab\">\n Properties\n </button>\n </li>\n <li class=\"me-2\" role=\"presentation\">\n <button class=\"inline-block p-4 border-b-2 rounded-t-lg\" [ngClass]=\"{\n 'text-purple-600 border-purple-600 dark:text-purple-500 dark:border-purple-500': activeTab === 'permission',\n 'text-gray-500 dark:text-gray-400 border-transparent': activeTab !== 'permission'\n }\" (click)=\"setActiveTab('permission')\" type=\"button\" role=\"tab\">\n Manage Permissions\n </button>\n </li>\n </ul>\n </div>\n\n <div id=\"default-styled-tab-content\">\n <div *ngIf=\"activeTab === 'basic'\">\n <div class=\"flex flex-col flex-auto min-w-0\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Filter Title\n Config\n </div>\n <div class=\"pt-2 border-x border-b \">\n <div class=\"my-2 flex justify-between\">\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-1\"> Title</div>\n <dx-text-box\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.commonConfig.title\"></dx-text-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-1\"> Data Field</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.commonConfig.dataField\"></dx-select-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-2\"> Display Format </div>\n <dx-select-box [items]=\"['daily','hourly','monthly']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.formate\"></dx-select-box>\n </div>\n <div class=\"px-1 mb-1 w-full\">\n <div class=\"text-md mb-2\"> Key To Pass </div>\n <dx-tag-box [items]=\"configColume\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.keyToPass\"></dx-tag-box>\n </div>\n\n </div>\n </div>\n </div>\n <div class=\"flex flex-wrap justify-between my-2\">\n <div class=\"w-1/3 px-2\">\n <div class=\"text-md mb-1\">Legend Horizontal Alignment</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['right','left','center']\" [value]=\"'center'\"\n [(ngModel)]=\"chartConfig.horizontalAlignment\"></dx-select-box>\n\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> legent Vertical Alignment</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['top','bottom']\" [value]=\"'bottom'\"\n [(ngModel)]=\"chartConfig.verticalAlignment\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1 mt-8\"></div>\n <dx-check-box [(ngModel)]=\"chartConfig.legendDisplay\" text=\"Legend Display\"></dx-check-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Argument Field</div>\n <dx-select-box [items]=\"configColume\"\n [(ngModel)]=\"chartConfig.argumentField\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Size</div>\n <dx-text-box [(ngModel)]=\"chartConfig.size\"></dx-text-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-1\"> Caption</div>\n <dx-text-box [(ngModel)]=\"chartConfig.caption\"></dx-text-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Display Format </div>\n <dx-select-box [items]=\"['daily','hourly','monthly']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.formate\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\"> Date Format </div>\n <dx-select-box [items]=\"['MM-DD','YYYY-MM-DD']\"\n [(ngModel)]=\"mainChartCourceObject.kpiConfig.displayDateFormat\"></dx-select-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2\">Sort By</div>\n <dx-tag-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"chartConfig.chartSortBy\"></dx-tag-box>\n </div>\n <div class=\"w-1/3 px-2 mt-2\">\n <div class=\"text-md mb-2 mt-6\"> </div>\n <dx-check-box [(ngModel)]=\"mainChartCourceObject.kpiConfig.descendingOrder\"\n text=\"Descending Order\"></dx-check-box>\n </div>\n </div>\n\n\n </div>\n <div *ngIf=\"activeTab === 'columns'\">\n <dx-scroll-view class=\"h-full\" [width]=\"'100%'\" [height]=\"'100%'\">\n <div class=\" border-x border-b \">\n <div class=\"py-1 flex flex-wrap border-b\"\n *ngFor=\"let item of chartConfig.chart_config; let i = index;\">\n\n <div class=\"px-2 mb-1 w-1/3\">\n <div class=\"text-md mb-2\"> Type</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"chartTypeSource\" [value]=\"'spline'\"\n [(ngModel)]=\"item.type\"></dx-select-box>\n </div>\n <div class=\"px-2 mb-1 w-1/3\">\n <div class=\"text-md mb-1\"> Value Field</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"item.valueField\"></dx-select-box>\n </div>\n\n <div class=\"px-2 mb-1 w-1/3\">\n <div class=\"text-md mb-1\"> Axis</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"configColume\"\n [(ngModel)]=\"item.axis\"></dx-select-box>\n </div>\n <div class=\" px-2 mb-1 w-1/4\">\n <div class=\"text-md mb-1\"> Position</div>\n <dx-select-box [searchEnabled]=\"true\" [items]=\"['right','left']\"\n [(ngModel)]=\"item.position\"></dx-select-box>\n </div>\n <div class=\"px-2 mb-1 w-1/4\">\n <div class=\"text-md mb-1\"> Name</div>\n <dx-text-box [(ngModel)]=\"item.name\"></dx-text-box>\n </div>\n <div class=\"px-2 mb-1 w-1/4\">\n <div class=\"text-md mb-2\"> Color</div>\n <dx-color-box [(ngModel)]=\"item.color\"></dx-color-box>\n </div>\n <div class=\"text-center my-1 w-1/4\">\n <button *ngIf=\"i !== 0\" class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItem(i, 'up')\">\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\n </button>\n <button *ngIf=\"i !== chartConfig.chart_config.length - 1\"\n class=\"{{commonService.btn_light_sm}} cursor-pointer mx-1\"\n (click)=\"moveItem(i, 'down')\">\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\n </button>\n\n <button class=\"{{commonService.btn_danger_sm}} cursor-pointer\"\n (click)=\"deleteColumns(i)\"><i class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n <div class=\"flex flex-row justify-end my-2\">\n <button class=\"{{commonService.btn_primary_sm}} cursor-pointer\"\n (click)=\"addColumns()\">Add\n Columns</button>\n </div>\n </div>\n </dx-scroll-view>\n </div>\n <div *ngIf=\"activeTab === 'properties'\">\n <div class=\"h-full overflow-x-auto\">\n <app-loader *ngIf=\"isLoader\"></app-loader>\n <ng-container *ngIf=\"!isLoader\">\n <div class=\"flex flex-row justify-between border-b py-3\">\n <div class=\"mx-2\">\n <dx-check-box [value]=\"viewProperties.enableClickEvent\"\n [(ngModel)]=\"viewProperties.enableClickEvent\"\n text=\"Enable Click Event\"></dx-check-box>\n </div>\n <div class=\"mx-2\">\n <dx-check-box [value]=\"viewProperties.enableRightClickEvent\"\n [(ngModel)]=\"viewProperties.enableRightClickEvent\"\n text=\"Enable Right Click\"></dx-check-box>\n </div>\n </div>\n <div class=\"w-full p-2\" *ngIf=\"viewProperties.enableClickEvent\">\n\n <div class=\"flex flex-col flex-auto min-w-0 my-2\">\n <div class=\"text-sm py-1 font-extrabold border-b bg-gray-700 text-white px-2\"> Event\n Type\n Option\n </div>\n <div class=\"w-full p-3 border-x border-b \">\n <div class=\"flex flex-row\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Event Type</div>\n </div>\n <div class=\"w-full\">\n <dx-select-box\n [items]=\"['drilldown','sameViewDrilldown','optionalDrillDown','popup','navigateToPage']\"\n (onValueChanged)=\"getSelectedEventType($event)\"\n [(ngModel)]=\"viewProperties.clickEventOptions.eventType\"></dx-select-box>\n </div>\n </div>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'navigateToPage'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full mx-2\">\n <div class=\"text-md mb-2\"> Associated Pages</div>\n <dx-select-box [items]=\"allConfiguredPage\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedPage\"\n valueExpr=\"pageId\" displayExpr=\"pageName\"\n [searchEnabled]=\"true\"></dx-select-box>\n </div>\n <div class=\"w-full mx-2\">\n <div class=\"text-md mb-2\"> Associated Params</div>\n <dx-text-box\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedParams\"></dx-text-box>\n\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'drilldown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"viewProperties.clickEventOptions.eventType === 'popup'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views For Popup</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'sameViewDrilldown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"viewProperties.clickEventOptions.associatedViews\"\n valueExpr=\"viewId\" displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [searchEnabled]=\"true\"></dx-tag-box>\n </div>\n </div>\n </ng-container>\n <ng-container\n *ngIf=\"viewProperties.clickEventOptions.eventType === 'optionalDrillDown'\">\n <div class=\"flex flex-row justify-between mt-3\">\n <div class=\"w-full\">\n <ng-container\n *ngFor=\"let item of optionalDrilDownDataSource;let i = index;\">\n\n <div class=\"flex flex-row justify-between\">\n <div class=\"mx-2 w-1/2\">\n <div class=\"text-md mb-2\"> Associated Views</div>\n <dx-tag-box [items]=\"allConfiguredViews\"\n [(ngModel)]=\"item.viewId\" valueExpr=\"viewId\"\n displayExpr=\"viewName\"\n [showSelectionControls]=\"true\"\n [maxDisplayedTags]=\"2\"\n [searchEnabled]=\"true\"></dx-tag-box>\n\n </div>\n <div class=\"mx-2 w-1/2\">\n <div class=\"text-md mb-2\"> Associated Params</div>\n <dx-text-box\n [(ngModel)]=\"item.filterCondition\"></dx-text-box>\n </div>\n <div class=\"mx-2\">\n <button\n class=\"{{commonService.btn_danger_sm}} cursor-pointer mt-8\"\n (click)=\"deleteAssociatedParams(i)\"><i\n class=\"fa fa-trash-o\" aria-hidden=\"true\"></i>\n </button>\n </div>\n </div>\n </ng-container>\n <div class=\"flex flex-row justify-end mt-4\">\n <button class=\"{{commonService.btn_primary_sm}} cursor-pointer\"\n (click)=\"addAssociatedParams()\">Add\n Params</button>\n </div>\n </div>\n </div>\n </ng-container>\n <button class=\"{{commonService.btn_light_md}} cursor-pointer mt-4\"\n (click)=\"resetViewProprstise()\">Reset All Event</button>\n </div>\n </div>\n\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"activeTab === 'permission'\">\n <div class=\"h-full overflow-x-auto\">\n <app-user-access [(userOptionContainer)]=\"userOptionContainer\">\n </app-user-access>\n </div>\n </div>\n </div>\n </ng-container>\n\n\n\n </div>\n\n <div class=\"flex flex-row border-t pl-3\">\n <div class=\"flex justify-start mx-1\">\n <button class=\"{{commonService.btn_warning_md}} cursor-pointer mt-2\" (click)=\"isJsonPreview = true\">\n Preview</button>\n <button class=\"{{commonService.btn_primary_md}} cursor-pointer mt-2\" (click)=\"isJsonPreview = false\">Data\n Preview</button>\n </div>\n <div class=\"flex justify-end mx-1 flex-grow\">\n <button class=\"{{commonService.btn_success_md}} cursor-pointer mt-2\"\n (click)=\"getSaveChartConfig()\">Submit</button>\n </div>\n </div>\n</div>" }]
|
|
4803
4805
|
}], ctorParameters: function () { return [{ type: CommonService }, { type: ApplicationContentService }, { type: i4$1.ToastrService }]; }, propDecorators: { getChartConfigOutPut: [{
|
|
4804
4806
|
type: Output
|
|
4805
4807
|
}], chartconfigData: [{
|
|
@@ -4875,7 +4877,6 @@ class DashTableComponent {
|
|
|
4875
4877
|
this.configColume = Object.keys(value.data[0]);
|
|
4876
4878
|
this.dataSourseForTable = value.data.slice(0, 10);
|
|
4877
4879
|
this.selectedViewConfigs = value;
|
|
4878
|
-
debugger;
|
|
4879
4880
|
this.userOptionContainer = ((_a = value.selectedWidgetConfig) === null || _a === void 0 ? void 0 : _a.permissions) ? value.selectedWidgetConfig.permissions : [];
|
|
4880
4881
|
this.selectedTableViewType = value.selectedViewType;
|
|
4881
4882
|
if (value.selectedWidgetConfig) {
|
|
@@ -7060,7 +7061,6 @@ class CreateCompViewComponent {
|
|
|
7060
7061
|
this.createViewConfig(data);
|
|
7061
7062
|
}
|
|
7062
7063
|
createViewConfig(data) {
|
|
7063
|
-
debugger;
|
|
7064
7064
|
this.creatCompViewObject['datasetId'] = data['datasetId'];
|
|
7065
7065
|
this.creatCompViewObject['viewType'] = this.selectedViewType;
|
|
7066
7066
|
this.isLoader = true;
|
|
@@ -8976,12 +8976,16 @@ class GammaAdvanceOperatorTableComponent {
|
|
|
8976
8976
|
}
|
|
8977
8977
|
}
|
|
8978
8978
|
shouldShowColumn(field) {
|
|
8979
|
-
let
|
|
8979
|
+
let defaultFields = ['recordDate', 'record_date', 'eventDate', 'event_date'];
|
|
8980
|
+
let excludedFields = [];
|
|
8980
8981
|
if (this.tableShortBy && this.tableShortBy.length !== 0) {
|
|
8981
8982
|
this.tableShortBy.forEach(element => {
|
|
8982
8983
|
excludedFields.push(element);
|
|
8983
8984
|
});
|
|
8984
8985
|
}
|
|
8986
|
+
else {
|
|
8987
|
+
excludedFields = defaultFields;
|
|
8988
|
+
}
|
|
8985
8989
|
return !excludedFields.includes(field);
|
|
8986
8990
|
}
|
|
8987
8991
|
}
|
|
@@ -9253,6 +9257,26 @@ class GammaAdvanceChartComponent {
|
|
|
9253
9257
|
.sort((a, b) => moment$1(b[value.kpiConfig.dataConfig['argumentField']]).diff(moment$1(a[value.kpiConfig.dataConfig['argumentField']])));
|
|
9254
9258
|
}
|
|
9255
9259
|
}
|
|
9260
|
+
const chartSortBy = value.kpiConfig.dataConfig['chartSortBy'];
|
|
9261
|
+
const isDesc = this.chartOrderBy === true;
|
|
9262
|
+
if (Array.isArray(chartSortBy) && chartSortBy.length !== 0) {
|
|
9263
|
+
value.kpiConfig.dataSource.sort((a, b) => {
|
|
9264
|
+
for (const key of chartSortBy) {
|
|
9265
|
+
if (a[key] == null && b[key] == null)
|
|
9266
|
+
continue;
|
|
9267
|
+
if (a[key] == null)
|
|
9268
|
+
return 1;
|
|
9269
|
+
if (b[key] == null)
|
|
9270
|
+
return -1;
|
|
9271
|
+
if (a[key] === b[key])
|
|
9272
|
+
continue;
|
|
9273
|
+
return isDesc
|
|
9274
|
+
? b[key] - a[key]
|
|
9275
|
+
: a[key] - b[key];
|
|
9276
|
+
}
|
|
9277
|
+
return 0;
|
|
9278
|
+
});
|
|
9279
|
+
}
|
|
9256
9280
|
this.getMonthlyChart(value.kpiConfig.dataSource, value.kpiConfig.dataConfig);
|
|
9257
9281
|
this.isChartvisible == true;
|
|
9258
9282
|
}
|
|
@@ -12911,10 +12935,10 @@ class PageConfigComponent {
|
|
|
12911
12935
|
}
|
|
12912
12936
|
}
|
|
12913
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 });
|
|
12914
|
-
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"] }] });
|
|
12915
12939
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PageConfigComponent, decorators: [{
|
|
12916
12940
|
type: Component,
|
|
12917
|
-
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"] }]
|
|
12918
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: [{
|
|
12919
12943
|
type: ViewChild,
|
|
12920
12944
|
args: ['dynamicComponentContainer', { read: ViewContainerRef }]
|
|
@@ -13265,7 +13289,7 @@ class ApplicationCreateMenuComponent {
|
|
|
13265
13289
|
let menuId = this.activatedRoute.snapshot.queryParams['menuId'];
|
|
13266
13290
|
let contentType = this.activatedRoute.snapshot.queryParams['contentType'];
|
|
13267
13291
|
if (contentType == "edit") {
|
|
13268
|
-
this.service.
|
|
13292
|
+
this.service.getAppMenuConfigById(menuId).subscribe({
|
|
13269
13293
|
next: (data) => {
|
|
13270
13294
|
this.menuObject = data;
|
|
13271
13295
|
this.selectedQueryParamStr = (data['queryParams'] && data['queryParams']['pageId']) ? data['queryParams']['pageId'] : "";
|
|
@@ -16059,7 +16083,7 @@ class CdrConfigService {
|
|
|
16059
16083
|
}), catchError(this.handleError));
|
|
16060
16084
|
}
|
|
16061
16085
|
getKPIReferenceEndPoints() {
|
|
16062
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
16086
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getKPIReferenceEndPoints';
|
|
16063
16087
|
return this.http
|
|
16064
16088
|
.get(apiUrl, { withCredentials: true })
|
|
16065
16089
|
.pipe(map((response) => {
|
|
@@ -16465,7 +16489,7 @@ class CreateKpIService {
|
|
|
16465
16489
|
});
|
|
16466
16490
|
}
|
|
16467
16491
|
getKpiBrowserConfigById(id) {
|
|
16468
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
16492
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getKpiBrowserConfigById?id=' + id;
|
|
16469
16493
|
return this.http
|
|
16470
16494
|
.get(apiUrl, { withCredentials: true })
|
|
16471
16495
|
.pipe(map((response) => {
|
|
@@ -16473,7 +16497,7 @@ class CreateKpIService {
|
|
|
16473
16497
|
}), catchError(this.handleError));
|
|
16474
16498
|
}
|
|
16475
16499
|
getAppPageConfigs() {
|
|
16476
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
16500
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageConfigs';
|
|
16477
16501
|
return this.http
|
|
16478
16502
|
.get(apiUrl, { withCredentials: true })
|
|
16479
16503
|
.pipe(map((response) => {
|
|
@@ -16481,7 +16505,7 @@ class CreateKpIService {
|
|
|
16481
16505
|
}), catchError(this.handleError));
|
|
16482
16506
|
}
|
|
16483
16507
|
getlistKpiBrowser() {
|
|
16484
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
16508
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/listKpiBrowser';
|
|
16485
16509
|
return this.http
|
|
16486
16510
|
.get(apiUrl, { withCredentials: true })
|
|
16487
16511
|
.pipe(map((response) => {
|
|
@@ -16490,14 +16514,45 @@ class CreateKpIService {
|
|
|
16490
16514
|
}
|
|
16491
16515
|
configureKpiBrowserConfig(body) {
|
|
16492
16516
|
return this.http
|
|
16493
|
-
.post(this.environment.appUrl + this.environment.apiVersion + '/
|
|
16517
|
+
.post(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/configureKpiBrowserConfig', JSON.stringify(body), this.options)
|
|
16494
16518
|
.pipe(map((response) => {
|
|
16495
16519
|
return response;
|
|
16496
16520
|
}), catchError(this.handleError));
|
|
16497
16521
|
}
|
|
16498
16522
|
getCreateKpi(body) {
|
|
16499
16523
|
return this.http
|
|
16500
|
-
.post(this.environment.appUrl + this.environment.apiVersion + '/
|
|
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)
|
|
16501
16556
|
.pipe(map((response) => {
|
|
16502
16557
|
return response;
|
|
16503
16558
|
}), catchError(this.handleError));
|
|
@@ -16621,10 +16676,10 @@ class TreeViewBasicItemComponent {
|
|
|
16621
16676
|
}
|
|
16622
16677
|
}
|
|
16623
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 });
|
|
16624
|
-
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.
|
|
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 });
|
|
16625
16680
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeViewBasicItemComponent, decorators: [{
|
|
16626
16681
|
type: Component,
|
|
16627
|
-
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.
|
|
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>" }]
|
|
16628
16683
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: CreateKpIService }, { type: i2.Router }]; }, propDecorators: { item: [{
|
|
16629
16684
|
type: Input
|
|
16630
16685
|
}], name: [{
|
|
@@ -17033,29 +17088,6 @@ const gammaAnimations = [
|
|
|
17033
17088
|
zoomIn, zoomOut
|
|
17034
17089
|
];
|
|
17035
17090
|
|
|
17036
|
-
class TreeViewDividerItemComponent {
|
|
17037
|
-
constructor(_changeDetectorRef) {
|
|
17038
|
-
this._changeDetectorRef = _changeDetectorRef;
|
|
17039
|
-
this._unsubscribeAll = new Subject();
|
|
17040
|
-
}
|
|
17041
|
-
ngOnInit() {
|
|
17042
|
-
}
|
|
17043
|
-
ngOnDestroy() {
|
|
17044
|
-
this._unsubscribeAll.next(null);
|
|
17045
|
-
this._unsubscribeAll.complete();
|
|
17046
|
-
}
|
|
17047
|
-
}
|
|
17048
|
-
TreeViewDividerItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeViewDividerItemComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
17049
|
-
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 });
|
|
17050
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeViewDividerItemComponent, decorators: [{
|
|
17051
|
-
type: Component,
|
|
17052
|
-
args: [{ selector: 'treeview-divider-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Divider -->\n<div class=\"treeview-item-wrapper divider\" [ngClass]=\"item.classes?.wrapper\"></div>" }]
|
|
17053
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { item: [{
|
|
17054
|
-
type: Input
|
|
17055
|
-
}], name: [{
|
|
17056
|
-
type: Input
|
|
17057
|
-
}] } });
|
|
17058
|
-
|
|
17059
17091
|
class TreeViewCollapsableItemComponent {
|
|
17060
17092
|
constructor(_changeDetectorRef, _router, _treeviewService) {
|
|
17061
17093
|
this._changeDetectorRef = _changeDetectorRef;
|
|
@@ -17074,17 +17106,7 @@ class TreeViewCollapsableItemComponent {
|
|
|
17074
17106
|
};
|
|
17075
17107
|
}
|
|
17076
17108
|
ngOnInit() {
|
|
17077
|
-
|
|
17078
|
-
if (this.treeId == undefined || this.treeId == null) {
|
|
17079
|
-
if (this.autoCollapse) {
|
|
17080
|
-
this.collapse();
|
|
17081
|
-
}
|
|
17082
|
-
}
|
|
17083
|
-
else {
|
|
17084
|
-
if (activeItem) {
|
|
17085
|
-
this.expand();
|
|
17086
|
-
}
|
|
17087
|
-
}
|
|
17109
|
+
console.log(this.item, 'items');
|
|
17088
17110
|
}
|
|
17089
17111
|
ngOnDestroy() {
|
|
17090
17112
|
this._unsubscribeAll.next(null);
|
|
@@ -17181,10 +17203,10 @@ class TreeViewCollapsableItemComponent {
|
|
|
17181
17203
|
}
|
|
17182
17204
|
}
|
|
17183
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 });
|
|
17184
|
-
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.
|
|
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 });
|
|
17185
17207
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeViewCollapsableItemComponent, decorators: [{
|
|
17186
17208
|
type: Component,
|
|
17187
|
-
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.
|
|
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>" }]
|
|
17188
17210
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i2.Router }, { type: TreeviewSharedService }]; }, propDecorators: { autoCollapse: [{
|
|
17189
17211
|
type: Input
|
|
17190
17212
|
}], item: [{
|
|
@@ -17229,7 +17251,7 @@ class TreeviewComponent {
|
|
|
17229
17251
|
this.editableKpiData = new EventEmitter();
|
|
17230
17252
|
}
|
|
17231
17253
|
ngOnInit() {
|
|
17232
|
-
console.log(this.navigation);
|
|
17254
|
+
console.log(this.navigation, 'kpi tree');
|
|
17233
17255
|
this._treeviewService.onCollapsableItemCollapsed
|
|
17234
17256
|
.pipe(takeUntil(this._unsubscribeAll))
|
|
17235
17257
|
.subscribe((item) => {
|
|
@@ -17242,7 +17264,6 @@ class TreeviewComponent {
|
|
|
17242
17264
|
});
|
|
17243
17265
|
if (this.navigation != undefined) {
|
|
17244
17266
|
this._treeviewservice.getKpiList(this.navigation);
|
|
17245
|
-
this.getKpiName(this.navigation, 'kpi');
|
|
17246
17267
|
}
|
|
17247
17268
|
}
|
|
17248
17269
|
ngOnDestroy() {
|
|
@@ -17296,10 +17317,10 @@ class TreeviewComponent {
|
|
|
17296
17317
|
}
|
|
17297
17318
|
}
|
|
17298
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 });
|
|
17299
|
-
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 });
|
|
17300
17321
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeviewComponent, decorators: [{
|
|
17301
17322
|
type: Component,
|
|
17302
|
-
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"] }]
|
|
17303
17324
|
}], ctorParameters: function () { return [{ type: i2.Router }, { type: i2$1.ScrollStrategyOptions }, { type: CreateKpIService }, { type: i0.ChangeDetectorRef }, { type: i4$2.ViewportScroller }, { type: TreeviewSharedService }]; }, propDecorators: { autoCollapse: [{
|
|
17304
17325
|
type: Input
|
|
17305
17326
|
}], inner: [{
|
|
@@ -17349,6 +17370,9 @@ class CreateKpiTreeComponent {
|
|
|
17349
17370
|
this.kpi_external = false;
|
|
17350
17371
|
this.isComponentUpdata = false;
|
|
17351
17372
|
this.userOptionContainer = [];
|
|
17373
|
+
this.selected_aliases = [];
|
|
17374
|
+
this.isKpiTreePrepared = false;
|
|
17375
|
+
this.kpiConfigDataSource = [];
|
|
17352
17376
|
}
|
|
17353
17377
|
ngOnInit() {
|
|
17354
17378
|
this.getAllKpiData();
|
|
@@ -17364,10 +17388,12 @@ class CreateKpiTreeComponent {
|
|
|
17364
17388
|
});
|
|
17365
17389
|
}
|
|
17366
17390
|
getAllKpiData() {
|
|
17367
|
-
this.loadingModal = false;
|
|
17368
17391
|
this.keiParentDataSource = [];
|
|
17369
|
-
this.service.
|
|
17370
|
-
|
|
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;
|
|
17371
17397
|
this.prepareParentDataSource(data);
|
|
17372
17398
|
}, err => {
|
|
17373
17399
|
this.loadingModal = false;
|
|
@@ -17376,104 +17402,95 @@ class CreateKpiTreeComponent {
|
|
|
17376
17402
|
}
|
|
17377
17403
|
prepareParentDataSource(data) {
|
|
17378
17404
|
data.forEach((result) => {
|
|
17379
|
-
if (result.
|
|
17380
|
-
|
|
17381
|
-
"name": result.name,
|
|
17382
|
-
"tid": result.tid
|
|
17383
|
-
};
|
|
17384
|
-
this.keiParentDataSource.push(node);
|
|
17385
|
-
this.prepareParentDataSource(result.nodes);
|
|
17405
|
+
if (result.tagType == 'parent') {
|
|
17406
|
+
this.keiParentDataSource.push(result);
|
|
17386
17407
|
}
|
|
17387
17408
|
});
|
|
17388
17409
|
}
|
|
17389
|
-
|
|
17390
|
-
|
|
17391
|
-
this.
|
|
17392
|
-
this.
|
|
17393
|
-
|
|
17394
|
-
|
|
17395
|
-
|
|
17396
|
-
|
|
17397
|
-
|
|
17398
|
-
|
|
17399
|
-
|
|
17400
|
-
|
|
17401
|
-
|
|
17402
|
-
|
|
17403
|
-
|
|
17404
|
-
|
|
17405
|
-
|
|
17406
|
-
|
|
17407
|
-
|
|
17408
|
-
|
|
17409
|
-
|
|
17410
|
-
|
|
17411
|
-
this.
|
|
17412
|
-
|
|
17413
|
-
|
|
17414
|
-
|
|
17415
|
-
|
|
17416
|
-
|
|
17417
|
-
this.keiParentDataSource.push(obj);
|
|
17418
|
-
}
|
|
17419
|
-
if (this.select_tag_type == 'child') {
|
|
17420
|
-
let obj = {
|
|
17421
|
-
"name": this.select_kpi_name,
|
|
17422
|
-
"id": this.selected_id,
|
|
17423
|
-
"pageId": this.selected_page_id,
|
|
17424
|
-
"searchFilter": false,
|
|
17425
|
-
"isSrvTypeOperator": false,
|
|
17426
|
-
"operationLevels": [],
|
|
17427
|
-
"fixOperationLevles": [],
|
|
17428
|
-
"api_config": []
|
|
17429
|
-
};
|
|
17430
|
-
this.service.configureKpiBrowserConfig(obj).subscribe(data => {
|
|
17431
|
-
console.log("kpi browser config created");
|
|
17432
|
-
});
|
|
17433
|
-
}
|
|
17434
|
-
this.submitNewKpi();
|
|
17435
|
-
}
|
|
17410
|
+
makeNewKpiWithUserEntity() {
|
|
17411
|
+
let kpiObj = {
|
|
17412
|
+
"kpiId": this.selected_id,
|
|
17413
|
+
"kpiName": this.select_kpi_name,
|
|
17414
|
+
"aliases": this.selected_aliases,
|
|
17415
|
+
"pageId": this.selected_page_id,
|
|
17416
|
+
"description": this.selected_desc,
|
|
17417
|
+
"kpiInfo": "",
|
|
17418
|
+
"tagType": this.select_tag_type,
|
|
17419
|
+
"active": true,
|
|
17420
|
+
"visibility": this.kpi_visibility,
|
|
17421
|
+
"externalKpi": this.kpi_external,
|
|
17422
|
+
"target": "",
|
|
17423
|
+
"icon": "",
|
|
17424
|
+
"url": "",
|
|
17425
|
+
"kpiType": this.select_tag_type == "parent" ? "collapsable" : "basic",
|
|
17426
|
+
"parentTid": this.selected_kpi_tid,
|
|
17427
|
+
"childTid": this.selected_kpi_child_tid,
|
|
17428
|
+
"permissions": this.userOptionContainer,
|
|
17429
|
+
};
|
|
17430
|
+
this.service.createKpiEntryConfig(kpiObj).subscribe(data => {
|
|
17431
|
+
this.toastr.success('KPI Created Successfully');
|
|
17432
|
+
this.getAllKpiData();
|
|
17433
|
+
this.getReseteKpi();
|
|
17434
|
+
}, err => {
|
|
17435
|
+
this.toastr.error('Unexpected Server Exception. Please contact System Admin.', 'KPI Config');
|
|
17436
|
+
});
|
|
17437
|
+
console.log("KPI with User Entity Obj:", kpiObj);
|
|
17436
17438
|
}
|
|
17437
|
-
|
|
17438
|
-
|
|
17439
|
-
|
|
17440
|
-
|
|
17441
|
-
|
|
17442
|
-
|
|
17443
|
-
|
|
17444
|
-
|
|
17445
|
-
|
|
17446
|
-
|
|
17439
|
+
getEditableKpi(kpi) {
|
|
17440
|
+
const data = this.kpiConfigDataSource.find((item) => item.kpiId === kpi.id);
|
|
17441
|
+
const tidKey = data.tagType === 'child' && data.childTid.length > 3 ? 'childTid' : 'parentTid';
|
|
17442
|
+
const parentName = this.keiParentDataSource.find((item) => item[tidKey] == data["parentTid"]);
|
|
17443
|
+
this.parante_kpi_name = parentName ? parentName['kpiId'] : null;
|
|
17444
|
+
this.selected_id = data["kpiId"];
|
|
17445
|
+
this.select_kpi_name = data["kpiName"];
|
|
17446
|
+
this.selected_aliases = data["aliases"];
|
|
17447
|
+
this.selected_page_id = data["pageId"];
|
|
17448
|
+
this.selected_desc = data["description"];
|
|
17449
|
+
this.select_tag_type = data["tagType"];
|
|
17450
|
+
this.kpi_visibility = data["visibility"];
|
|
17451
|
+
this.kpi_external = data["externalKpi"];
|
|
17452
|
+
this.selected_kpi_tid = data["parentTid"];
|
|
17453
|
+
this.selected_kpi_child_tid = data["childTid"];
|
|
17454
|
+
this.userOptionContainer = (data["permissions"] && data["permissions"].length > 0) ? data["permissions"] : [];
|
|
17455
|
+
this.isEditKpiAdded = true;
|
|
17456
|
+
}
|
|
17457
|
+
getUpdateKpi() {
|
|
17458
|
+
let kpiObj = {
|
|
17459
|
+
"kpiId": this.selected_id,
|
|
17460
|
+
"kpiName": this.select_kpi_name,
|
|
17461
|
+
"aliases": this.selected_aliases,
|
|
17447
17462
|
"pageId": this.selected_page_id,
|
|
17448
|
-
"
|
|
17449
|
-
"
|
|
17450
|
-
"
|
|
17451
|
-
"
|
|
17463
|
+
"description": this.selected_desc,
|
|
17464
|
+
"kpiInfo": "",
|
|
17465
|
+
"tagType": this.select_tag_type,
|
|
17466
|
+
"active": true,
|
|
17467
|
+
"visibility": this.kpi_visibility,
|
|
17468
|
+
"externalKpi": this.kpi_external,
|
|
17469
|
+
"target": "",
|
|
17470
|
+
"icon": "",
|
|
17471
|
+
"url": "",
|
|
17472
|
+
"kpiType": this.select_tag_type == "parent" ? "collapsable" : "basic",
|
|
17473
|
+
"parentTid": this.selected_kpi_tid,
|
|
17474
|
+
"childTid": this.selected_kpi_child_tid,
|
|
17475
|
+
"permissions": this.userOptionContainer,
|
|
17452
17476
|
};
|
|
17453
|
-
|
|
17454
|
-
|
|
17455
|
-
|
|
17456
|
-
|
|
17457
|
-
|
|
17458
|
-
|
|
17459
|
-
|
|
17460
|
-
|
|
17461
|
-
|
|
17462
|
-
|
|
17463
|
-
|
|
17464
|
-
|
|
17465
|
-
|
|
17466
|
-
|
|
17467
|
-
|
|
17468
|
-
|
|
17469
|
-
"api_config": []
|
|
17470
|
-
};
|
|
17471
|
-
this.service.configureKpiBrowserConfig(obj).subscribe(data => {
|
|
17472
|
-
console.log("kpi browser config created");
|
|
17473
|
-
});
|
|
17477
|
+
this.service.updateKpiEntryConfig(kpiObj).subscribe(data => {
|
|
17478
|
+
this.toastr.success('KPI Updated Successfully');
|
|
17479
|
+
this.getAllKpiData();
|
|
17480
|
+
this.getReseteKpi();
|
|
17481
|
+
this.isEditKpiAdded = false;
|
|
17482
|
+
}, err => {
|
|
17483
|
+
this.toastr.error('Unexpected Server Exception. Please contact System Admin.', 'KPI Config');
|
|
17484
|
+
});
|
|
17485
|
+
console.log("KPI with User Entity Obj:", kpiObj);
|
|
17486
|
+
}
|
|
17487
|
+
onCustomDimentionCreating(args) {
|
|
17488
|
+
const newValue = args.text;
|
|
17489
|
+
args.customItem = newValue;
|
|
17490
|
+
const isItemInDataSource = this.selected_aliases.some((item) => item === newValue);
|
|
17491
|
+
if (!isItemInDataSource) {
|
|
17492
|
+
this.selected_aliases.unshift(newValue);
|
|
17474
17493
|
}
|
|
17475
|
-
this.setKpibyTid(this.kpiData, this.selected_kpi_tid, obj);
|
|
17476
|
-
this.submitNewKpi();
|
|
17477
17494
|
}
|
|
17478
17495
|
getReseteKpi() {
|
|
17479
17496
|
this.select_kpi_name = '';
|
|
@@ -17491,74 +17508,23 @@ class CreateKpiTreeComponent {
|
|
|
17491
17508
|
this.editable_desc = '';
|
|
17492
17509
|
this.editable_info = '';
|
|
17493
17510
|
this.parante_kpi_name = '';
|
|
17511
|
+
this.selected_kpi_child_tid = '';
|
|
17512
|
+
this.selected_aliases = [];
|
|
17494
17513
|
this.kpi_external = false;
|
|
17495
17514
|
this.kpi_visibility = false;
|
|
17496
17515
|
this.isComponentUpdata = false;
|
|
17497
|
-
|
|
17498
|
-
getDeletKpi(tid) {
|
|
17499
|
-
console.log(this.selected_p_kpi);
|
|
17516
|
+
this.isEditKpiAdded = false;
|
|
17500
17517
|
}
|
|
17501
17518
|
addTagtypeValue(e) {
|
|
17502
17519
|
this.select_tag_type = e.value;
|
|
17503
17520
|
}
|
|
17504
17521
|
getKpiItemValue(e) {
|
|
17505
|
-
|
|
17506
|
-
|
|
17507
|
-
|
|
17508
|
-
|
|
17509
|
-
if (string2 === null) {
|
|
17510
|
-
const numberPart = string1 + '.1';
|
|
17511
|
-
return numberPart;
|
|
17512
|
-
}
|
|
17513
|
-
else {
|
|
17514
|
-
const parts = string2.split('.');
|
|
17515
|
-
let lastPart = parseInt(parts[parts.length - 1], 10);
|
|
17516
|
-
let new_number = lastPart++;
|
|
17517
|
-
parts[parts.length - 1] = lastPart.toString();
|
|
17518
|
-
return parts.join(".");
|
|
17522
|
+
if (e.event) {
|
|
17523
|
+
const kpi_data = this.keiParentDataSource.find((item) => item.kpiId === e.value);
|
|
17524
|
+
const tidKey = this.select_tag_type === 'child' && this.isEditKpiAdded ? 'childTid' : 'parentTid';
|
|
17525
|
+
this.selected_kpi_tid = kpi_data[tidKey];
|
|
17519
17526
|
}
|
|
17520
17527
|
}
|
|
17521
|
-
setKpibyTid(data, tid, newKpiObj) {
|
|
17522
|
-
data.forEach(result => {
|
|
17523
|
-
if (result.nodes !== undefined) {
|
|
17524
|
-
if (result.tid == tid) {
|
|
17525
|
-
result.nodes.push(newKpiObj);
|
|
17526
|
-
}
|
|
17527
|
-
this.setKpibyTid(result.nodes, tid, newKpiObj);
|
|
17528
|
-
}
|
|
17529
|
-
});
|
|
17530
|
-
}
|
|
17531
|
-
getHeistId(data, tid) {
|
|
17532
|
-
data.forEach((result) => {
|
|
17533
|
-
if (result.tid === tid) {
|
|
17534
|
-
if (result.nodes.length > 0) {
|
|
17535
|
-
this.heistValue = this.getHighestTid(result.nodes);
|
|
17536
|
-
}
|
|
17537
|
-
else {
|
|
17538
|
-
this.heistValue = null;
|
|
17539
|
-
}
|
|
17540
|
-
}
|
|
17541
|
-
else if (result.nodes !== undefined && result.nodes.length > 0) {
|
|
17542
|
-
this.getHeistId(result.nodes, tid);
|
|
17543
|
-
}
|
|
17544
|
-
});
|
|
17545
|
-
}
|
|
17546
|
-
getHighestTid(data) {
|
|
17547
|
-
const highestTid = data.reduce((maxTid, currentItem) => {
|
|
17548
|
-
const currentTidParts = currentItem.tid.split('.').map(part => parseInt(part, 10));
|
|
17549
|
-
const maxTidParts = maxTid.split('.').map(part => parseInt(part, 10));
|
|
17550
|
-
for (let i = 0; i < currentTidParts.length; i++) {
|
|
17551
|
-
if (currentTidParts[i] > maxTidParts[i]) {
|
|
17552
|
-
return currentItem.tid;
|
|
17553
|
-
}
|
|
17554
|
-
else if (currentTidParts[i] < maxTidParts[i]) {
|
|
17555
|
-
return maxTid;
|
|
17556
|
-
}
|
|
17557
|
-
}
|
|
17558
|
-
return maxTid;
|
|
17559
|
-
}, data[0].tid);
|
|
17560
|
-
return highestTid;
|
|
17561
|
-
}
|
|
17562
17528
|
addNewKpi() {
|
|
17563
17529
|
this.isNewKpiAdded = true;
|
|
17564
17530
|
this.isEditKpiAdded = false;
|
|
@@ -17566,22 +17532,6 @@ class CreateKpiTreeComponent {
|
|
|
17566
17532
|
cancelUpdate() {
|
|
17567
17533
|
this.isEditKpiAdded = false;
|
|
17568
17534
|
}
|
|
17569
|
-
getEditableKpi(data) {
|
|
17570
|
-
this.isComponentUpdata = false;
|
|
17571
|
-
this.isEditKpiAdded = true;
|
|
17572
|
-
this.isNewKpiAdded = false;
|
|
17573
|
-
this.isFromEditable = true;
|
|
17574
|
-
this.editable_desc = data.desc;
|
|
17575
|
-
this.editable_info = (data.kpiInfo) ? data.kpiInfo : "";
|
|
17576
|
-
this.editable_kpi_name = data.name;
|
|
17577
|
-
this.editable_tag_type = data.tag_type;
|
|
17578
|
-
this.editable_kpi_tid = data.tid;
|
|
17579
|
-
this.editable_id = data.id;
|
|
17580
|
-
this.editable_page_id = data.pageId;
|
|
17581
|
-
this.kpi_visibility = data.isVisible;
|
|
17582
|
-
this.kpi_external = data.isAccessible;
|
|
17583
|
-
this.parante_kpi_name = this.getKpiParrentName(data.tid);
|
|
17584
|
-
}
|
|
17585
17535
|
getKpiParrentName(input) {
|
|
17586
17536
|
const lastIndex = input.lastIndexOf('.');
|
|
17587
17537
|
if (lastIndex === -1) {
|
|
@@ -17589,55 +17539,15 @@ class CreateKpiTreeComponent {
|
|
|
17589
17539
|
}
|
|
17590
17540
|
return input.substring(0, lastIndex);
|
|
17591
17541
|
}
|
|
17592
|
-
|
|
17593
|
-
|
|
17594
|
-
this.getUpdateKpiName(this.kpiData, this.editable_kpi_tid);
|
|
17595
|
-
}
|
|
17596
|
-
setTimeout(() => {
|
|
17597
|
-
this.submitNewKpi();
|
|
17598
|
-
this.toastr.success('KPI Updated Successfully');
|
|
17599
|
-
this.reseteUpdateKpiForm();
|
|
17600
|
-
this.isEditKpiAdded = false;
|
|
17601
|
-
}, 500);
|
|
17602
|
-
}
|
|
17603
|
-
getDeleteKpi() {
|
|
17604
|
-
this.getDeleteKpiName(this.kpiData, this.editable_kpi_tid);
|
|
17605
|
-
setTimeout(() => {
|
|
17606
|
-
this.submitNewKpi();
|
|
17542
|
+
getDeletKpi() {
|
|
17543
|
+
this.service.deleteKpiEntryConfig(this.selected_id).subscribe(data => {
|
|
17607
17544
|
this.toastr.success('KPI Deleted Successfully');
|
|
17608
|
-
this.
|
|
17609
|
-
this.
|
|
17610
|
-
},
|
|
17611
|
-
|
|
17612
|
-
getUpdateKpiName(data, tid) {
|
|
17613
|
-
data.forEach((result) => {
|
|
17614
|
-
if (result.tid === tid) {
|
|
17615
|
-
result.desc = this.editable_desc;
|
|
17616
|
-
result.kpiInfo = this.editable_info;
|
|
17617
|
-
result.name = this.editable_kpi_name;
|
|
17618
|
-
result.id = this.editable_id;
|
|
17619
|
-
result.pageId = this.editable_page_id;
|
|
17620
|
-
result.tag_type = this.editable_tag_type;
|
|
17621
|
-
result.isVisible = this.kpi_visibility;
|
|
17622
|
-
result.isAccessible = this.kpi_external;
|
|
17623
|
-
result.tid = this.editable_kpi_tid;
|
|
17624
|
-
}
|
|
17625
|
-
else if (result.nodes !== undefined && result.nodes.length > 0) {
|
|
17626
|
-
this.getUpdateKpiName(result.nodes, tid);
|
|
17627
|
-
}
|
|
17545
|
+
this.getAllKpiData();
|
|
17546
|
+
this.getReseteKpi();
|
|
17547
|
+
}, err => {
|
|
17548
|
+
this.toastr.error('Unexpected Server Exception. Please contact System Admin.', 'KPI Config');
|
|
17628
17549
|
});
|
|
17629
17550
|
}
|
|
17630
|
-
getDeleteKpiName(data, tid) {
|
|
17631
|
-
for (let i = data.length - 1; i >= 0; i--) {
|
|
17632
|
-
const result = data[i];
|
|
17633
|
-
if (result.tid === tid) {
|
|
17634
|
-
data.splice(i, 1);
|
|
17635
|
-
}
|
|
17636
|
-
else if (result.nodes !== undefined && result.nodes.length > 0) {
|
|
17637
|
-
this.getDeleteKpiName(result.nodes, tid);
|
|
17638
|
-
}
|
|
17639
|
-
}
|
|
17640
|
-
}
|
|
17641
17551
|
reseteUpdateKpiForm() {
|
|
17642
17552
|
this.editable_desc = undefined;
|
|
17643
17553
|
this.editable_info = undefined;
|
|
@@ -17658,73 +17568,57 @@ class CreateKpiTreeComponent {
|
|
|
17658
17568
|
this.getReseteKpi();
|
|
17659
17569
|
});
|
|
17660
17570
|
}
|
|
17661
|
-
|
|
17662
|
-
|
|
17663
|
-
const
|
|
17664
|
-
|
|
17665
|
-
|
|
17666
|
-
|
|
17667
|
-
"name": this.editable_kpi_name,
|
|
17668
|
-
"tid": auto_tid,
|
|
17669
|
-
"isBookmarked": false,
|
|
17670
|
-
"isAccessible": this.kpi_external,
|
|
17671
|
-
"lastAccessTime": "",
|
|
17672
|
-
"tag_type": this.editable_tag_type,
|
|
17673
|
-
"id": this.editable_id,
|
|
17674
|
-
"pageId": this.editable_page_id,
|
|
17675
|
-
"desc": this.editable_desc,
|
|
17676
|
-
"kpiInfo": this.editable_info,
|
|
17677
|
-
"isVisible": this.kpi_visibility,
|
|
17678
|
-
"nodes": [],
|
|
17679
|
-
"config": {}
|
|
17680
|
-
};
|
|
17681
|
-
this.getDeleteKpiName(this.kpiData, this.editable_kpi_tid);
|
|
17682
|
-
this.setKpibyTid(this.kpiData, kpi_data.tid, obj);
|
|
17683
|
-
this.editable_kpi_tid = kpi_data.tid;
|
|
17684
|
-
}
|
|
17685
|
-
makeNewKpiWithUserEntity() {
|
|
17686
|
-
this.userOptionContainer.forEach(element => {
|
|
17687
|
-
let att_value = element.attributeValues.split(",");
|
|
17688
|
-
element.attributeValues = att_value;
|
|
17571
|
+
buildMenuTree(userName, kpiData) {
|
|
17572
|
+
let filteredMenus = kpiData;
|
|
17573
|
+
const menuMap = new Map();
|
|
17574
|
+
const menuTree = [];
|
|
17575
|
+
filteredMenus.forEach(menu => {
|
|
17576
|
+
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: [] }));
|
|
17689
17577
|
});
|
|
17690
|
-
|
|
17691
|
-
|
|
17692
|
-
|
|
17693
|
-
|
|
17694
|
-
|
|
17695
|
-
|
|
17696
|
-
|
|
17697
|
-
|
|
17698
|
-
|
|
17699
|
-
|
|
17700
|
-
|
|
17701
|
-
|
|
17702
|
-
"kpiInfo": this.selected_info,
|
|
17703
|
-
"tagType": this.select_tag_type,
|
|
17704
|
-
"active": true,
|
|
17705
|
-
"visibility": this.kpi_visibility,
|
|
17706
|
-
"externalKpi": this.kpi_external,
|
|
17707
|
-
"target": "",
|
|
17708
|
-
"icon": "",
|
|
17709
|
-
"url": "",
|
|
17710
|
-
"kpiType": "",
|
|
17711
|
-
"parentTid": this.selected_kpi_tid,
|
|
17712
|
-
"childTid": "",
|
|
17713
|
-
"measures": this.userOptionContainer,
|
|
17714
|
-
};
|
|
17715
|
-
console.log("KPI with User Entity Obj:", kpiObj);
|
|
17716
|
-
}
|
|
17717
|
-
routeToKpiConfig() {
|
|
17718
|
-
this.router.navigate(['apps/controlPanel/kpiController/kpiConfig']);
|
|
17578
|
+
filteredMenus.forEach(kpi => {
|
|
17579
|
+
if (kpi.parentTid && kpi.childTid) {
|
|
17580
|
+
const parent = menuMap.get(kpi.parentTid);
|
|
17581
|
+
if (parent) {
|
|
17582
|
+
parent.children.push(menuMap.get(kpi.childTid));
|
|
17583
|
+
}
|
|
17584
|
+
}
|
|
17585
|
+
else {
|
|
17586
|
+
menuTree.push(menuMap.get(kpi.parentTid));
|
|
17587
|
+
}
|
|
17588
|
+
});
|
|
17589
|
+
return menuTree;
|
|
17719
17590
|
}
|
|
17720
17591
|
}
|
|
17721
17592
|
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 });
|
|
17722
|
-
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"] }] });
|
|
17593
|
+
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"] }] });
|
|
17723
17594
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CreateKpiTreeComponent, decorators: [{
|
|
17724
17595
|
type: Component,
|
|
17725
|
-
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"] }]
|
|
17596
|
+
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"] }]
|
|
17726
17597
|
}], ctorParameters: function () { return [{ type: CommonService }, { type: i8.FormBuilder }, { type: CreateKpIService }, { type: i4$1.ToastrService }, { type: i2.Router }]; } });
|
|
17727
17598
|
|
|
17599
|
+
class TreeViewDividerItemComponent {
|
|
17600
|
+
constructor(_changeDetectorRef) {
|
|
17601
|
+
this._changeDetectorRef = _changeDetectorRef;
|
|
17602
|
+
this._unsubscribeAll = new Subject();
|
|
17603
|
+
}
|
|
17604
|
+
ngOnInit() {
|
|
17605
|
+
}
|
|
17606
|
+
ngOnDestroy() {
|
|
17607
|
+
this._unsubscribeAll.next(null);
|
|
17608
|
+
this._unsubscribeAll.complete();
|
|
17609
|
+
}
|
|
17610
|
+
}
|
|
17611
|
+
TreeViewDividerItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeViewDividerItemComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
17612
|
+
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 });
|
|
17613
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeViewDividerItemComponent, decorators: [{
|
|
17614
|
+
type: Component,
|
|
17615
|
+
args: [{ selector: 'treeview-divider-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Divider -->\n<div class=\"treeview-item-wrapper divider\" [ngClass]=\"item.classes?.wrapper\"></div>" }]
|
|
17616
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { item: [{
|
|
17617
|
+
type: Input
|
|
17618
|
+
}], name: [{
|
|
17619
|
+
type: Input
|
|
17620
|
+
}] } });
|
|
17621
|
+
|
|
17728
17622
|
class TreeViewSpacerItemComponent {
|
|
17729
17623
|
constructor(_changeDetectorRef) {
|
|
17730
17624
|
this._changeDetectorRef = _changeDetectorRef;
|
|
@@ -18031,7 +17925,7 @@ class KpiWithSingleLayoutService {
|
|
|
18031
17925
|
return throwError(error);
|
|
18032
17926
|
}
|
|
18033
17927
|
getlistKpiBrowser() {
|
|
18034
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
17928
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/listKpiBrowser';
|
|
18035
17929
|
return this.http
|
|
18036
17930
|
.get(apiUrl, { withCredentials: true })
|
|
18037
17931
|
.pipe(map((response) => {
|
|
@@ -18040,13 +17934,13 @@ class KpiWithSingleLayoutService {
|
|
|
18040
17934
|
}
|
|
18041
17935
|
getAppPageDetailConfig(pageId) {
|
|
18042
17936
|
return this.http
|
|
18043
|
-
.get(this.environment.appUrl + this.environment.apiVersion + '/
|
|
17937
|
+
.get(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageDetailConfig?pageConfigId=' + pageId, this.options)
|
|
18044
17938
|
.pipe(map((response) => {
|
|
18045
17939
|
return response;
|
|
18046
17940
|
}), catchError(this.handleError));
|
|
18047
17941
|
}
|
|
18048
17942
|
getAppPageConfigs() {
|
|
18049
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
17943
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageConfigs';
|
|
18050
17944
|
return this.http
|
|
18051
17945
|
.get(apiUrl, { withCredentials: true })
|
|
18052
17946
|
.pipe(map((response) => {
|
|
@@ -18054,7 +17948,7 @@ class KpiWithSingleLayoutService {
|
|
|
18054
17948
|
}), catchError(this.handleError));
|
|
18055
17949
|
}
|
|
18056
17950
|
getAppDatasetConfigs() {
|
|
18057
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
17951
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppDatasetConfigs';
|
|
18058
17952
|
return this.http
|
|
18059
17953
|
.get(apiUrl, { withCredentials: true })
|
|
18060
17954
|
.pipe(map((response) => {
|
|
@@ -18062,7 +17956,7 @@ class KpiWithSingleLayoutService {
|
|
|
18062
17956
|
}), catchError(this.handleError));
|
|
18063
17957
|
}
|
|
18064
17958
|
getAppDatasetConfig(datasetId) {
|
|
18065
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
17959
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppDatasetConfig?datasetId=' + datasetId;
|
|
18066
17960
|
return this.http
|
|
18067
17961
|
.get(apiUrl, { withCredentials: true })
|
|
18068
17962
|
.pipe(map((response) => {
|
|
@@ -18071,13 +17965,13 @@ class KpiWithSingleLayoutService {
|
|
|
18071
17965
|
}
|
|
18072
17966
|
getAppFilterConfig(filterId) {
|
|
18073
17967
|
return this.http
|
|
18074
|
-
.get(this.environment.appUrl + this.environment.apiVersion + '/
|
|
17968
|
+
.get(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppFilterConfig?filterId=' + filterId, this.options)
|
|
18075
17969
|
.pipe(map((response) => {
|
|
18076
17970
|
return response;
|
|
18077
17971
|
}), catchError(this.handleError));
|
|
18078
17972
|
}
|
|
18079
17973
|
getAppViewConfigs() {
|
|
18080
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
17974
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppViewConfigs';
|
|
18081
17975
|
return this.http
|
|
18082
17976
|
.get(apiUrl, { withCredentials: true })
|
|
18083
17977
|
.pipe(map((response) => {
|
|
@@ -18621,11 +18515,11 @@ class PermissionHelper {
|
|
|
18621
18515
|
const { entityName, entityValues } = item;
|
|
18622
18516
|
if (entityName === 'user' &&
|
|
18623
18517
|
Array.isArray(entityValues) &&
|
|
18624
|
-
(entityValues.includes('
|
|
18518
|
+
(entityValues.includes('{USER}') || entityValues.includes(username))) {
|
|
18625
18519
|
return true;
|
|
18626
18520
|
}
|
|
18627
18521
|
if (entityName === 'role' && Array.isArray(entityValues)) {
|
|
18628
|
-
if (entityValues.includes('
|
|
18522
|
+
if (entityValues.includes('{ROLE}')) {
|
|
18629
18523
|
return true;
|
|
18630
18524
|
}
|
|
18631
18525
|
return this.securityPrincipal.roleDetails
|
|
@@ -18633,7 +18527,7 @@ class PermissionHelper {
|
|
|
18633
18527
|
: true;
|
|
18634
18528
|
}
|
|
18635
18529
|
if (entityName === 'group' && Array.isArray(entityValues)) {
|
|
18636
|
-
if (entityValues.includes('
|
|
18530
|
+
if (entityValues.includes('{GROUP}')) {
|
|
18637
18531
|
return true;
|
|
18638
18532
|
}
|
|
18639
18533
|
return this.securityPrincipal.groupDetails
|
|
@@ -20431,7 +20325,7 @@ class KpiWithMultiLayoutService {
|
|
|
20431
20325
|
return throwError(error);
|
|
20432
20326
|
}
|
|
20433
20327
|
getlistKpiBrowser() {
|
|
20434
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
20328
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/listKpiBrowser';
|
|
20435
20329
|
return this.http
|
|
20436
20330
|
.get(apiUrl, { withCredentials: true })
|
|
20437
20331
|
.pipe(map((response) => {
|
|
@@ -20440,13 +20334,13 @@ class KpiWithMultiLayoutService {
|
|
|
20440
20334
|
}
|
|
20441
20335
|
getAppPageDetailConfig(pageId) {
|
|
20442
20336
|
return this.http
|
|
20443
|
-
.get(this.environment.appUrl + this.environment.apiVersion + '/
|
|
20337
|
+
.get(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageDetailConfig?pageConfigId=' + pageId, this.options)
|
|
20444
20338
|
.pipe(map((response) => {
|
|
20445
20339
|
return response;
|
|
20446
20340
|
}), catchError(this.handleError));
|
|
20447
20341
|
}
|
|
20448
20342
|
getAppPageConfigs() {
|
|
20449
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
20343
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageConfigs';
|
|
20450
20344
|
return this.http
|
|
20451
20345
|
.get(apiUrl, { withCredentials: true })
|
|
20452
20346
|
.pipe(map((response) => {
|
|
@@ -20454,7 +20348,7 @@ class KpiWithMultiLayoutService {
|
|
|
20454
20348
|
}), catchError(this.handleError));
|
|
20455
20349
|
}
|
|
20456
20350
|
getAppDatasetConfigs() {
|
|
20457
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
20351
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppDatasetConfigs';
|
|
20458
20352
|
return this.http
|
|
20459
20353
|
.get(apiUrl, { withCredentials: true })
|
|
20460
20354
|
.pipe(map((response) => {
|
|
@@ -20462,7 +20356,7 @@ class KpiWithMultiLayoutService {
|
|
|
20462
20356
|
}), catchError(this.handleError));
|
|
20463
20357
|
}
|
|
20464
20358
|
getAppDatasetConfig(datasetId) {
|
|
20465
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
20359
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppDatasetConfig?datasetId=' + datasetId;
|
|
20466
20360
|
return this.http
|
|
20467
20361
|
.get(apiUrl, { withCredentials: true })
|
|
20468
20362
|
.pipe(map((response) => {
|
|
@@ -20471,13 +20365,13 @@ class KpiWithMultiLayoutService {
|
|
|
20471
20365
|
}
|
|
20472
20366
|
getAppFilterConfig(filterId) {
|
|
20473
20367
|
return this.http
|
|
20474
|
-
.get(this.environment.appUrl + this.environment.apiVersion + '/
|
|
20368
|
+
.get(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppFilterConfig?filterId=' + filterId, this.options)
|
|
20475
20369
|
.pipe(map((response) => {
|
|
20476
20370
|
return response;
|
|
20477
20371
|
}), catchError(this.handleError));
|
|
20478
20372
|
}
|
|
20479
20373
|
getAppViewConfigs() {
|
|
20480
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
20374
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppViewConfigs';
|
|
20481
20375
|
return this.http
|
|
20482
20376
|
.get(apiUrl, { withCredentials: true })
|
|
20483
20377
|
.pipe(map((response) => {
|
|
@@ -21761,7 +21655,7 @@ class LandingComponentService {
|
|
|
21761
21655
|
return throwError(error);
|
|
21762
21656
|
}
|
|
21763
21657
|
getlistKpiBrowser() {
|
|
21764
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
21658
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/listKpiBrowser';
|
|
21765
21659
|
return this.http
|
|
21766
21660
|
.get(apiUrl, { withCredentials: true })
|
|
21767
21661
|
.pipe(map((response) => {
|
|
@@ -21770,13 +21664,13 @@ class LandingComponentService {
|
|
|
21770
21664
|
}
|
|
21771
21665
|
getAppPageDetailConfig(pageId) {
|
|
21772
21666
|
return this.http
|
|
21773
|
-
.get(this.environment.appUrl + this.environment.apiVersion + '/
|
|
21667
|
+
.get(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageDetailConfig?pageConfigId=' + pageId, this.options)
|
|
21774
21668
|
.pipe(map((response) => {
|
|
21775
21669
|
return response;
|
|
21776
21670
|
}), catchError(this.handleError));
|
|
21777
21671
|
}
|
|
21778
21672
|
getAppPageConfigs() {
|
|
21779
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
21673
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageConfigs';
|
|
21780
21674
|
return this.http
|
|
21781
21675
|
.get(apiUrl, { withCredentials: true })
|
|
21782
21676
|
.pipe(map((response) => {
|
|
@@ -21784,7 +21678,7 @@ class LandingComponentService {
|
|
|
21784
21678
|
}), catchError(this.handleError));
|
|
21785
21679
|
}
|
|
21786
21680
|
getAppDatasetConfigs() {
|
|
21787
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
21681
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppDatasetConfigs';
|
|
21788
21682
|
return this.http
|
|
21789
21683
|
.get(apiUrl, { withCredentials: true })
|
|
21790
21684
|
.pipe(map((response) => {
|
|
@@ -21792,7 +21686,7 @@ class LandingComponentService {
|
|
|
21792
21686
|
}), catchError(this.handleError));
|
|
21793
21687
|
}
|
|
21794
21688
|
getAppDatasetConfig(datasetId) {
|
|
21795
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
21689
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppDatasetConfig?datasetId=' + datasetId;
|
|
21796
21690
|
return this.http
|
|
21797
21691
|
.get(apiUrl, { withCredentials: true })
|
|
21798
21692
|
.pipe(map((response) => {
|
|
@@ -21801,13 +21695,13 @@ class LandingComponentService {
|
|
|
21801
21695
|
}
|
|
21802
21696
|
getAppFilterConfig(filterId) {
|
|
21803
21697
|
return this.http
|
|
21804
|
-
.get(this.environment.appUrl + this.environment.apiVersion + '/
|
|
21698
|
+
.get(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppFilterConfig?filterId=' + filterId, this.options)
|
|
21805
21699
|
.pipe(map((response) => {
|
|
21806
21700
|
return response;
|
|
21807
21701
|
}), catchError(this.handleError));
|
|
21808
21702
|
}
|
|
21809
21703
|
getAppViewConfigs() {
|
|
21810
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
21704
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppViewConfigs';
|
|
21811
21705
|
return this.http
|
|
21812
21706
|
.get(apiUrl, { withCredentials: true })
|
|
21813
21707
|
.pipe(map((response) => {
|
|
@@ -22024,7 +21918,6 @@ class LandingComponentComponent {
|
|
|
22024
21918
|
});
|
|
22025
21919
|
});
|
|
22026
21920
|
Promise.all(apiCalls).then(() => {
|
|
22027
|
-
debugger;
|
|
22028
21921
|
this.globalDefaultFilter = filter;
|
|
22029
21922
|
this.uniqueDataSetObject = this.datasetService.getUniqueDataSetObject();
|
|
22030
21923
|
this.createDivElements(this.uniqueDataSetObject, true);
|
|
@@ -23328,7 +23221,7 @@ class LandingMultiLayoutComponentService {
|
|
|
23328
23221
|
return throwError(error);
|
|
23329
23222
|
}
|
|
23330
23223
|
getlistKpiBrowser() {
|
|
23331
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
23224
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/listKpiBrowser';
|
|
23332
23225
|
return this.http
|
|
23333
23226
|
.get(apiUrl, { withCredentials: true })
|
|
23334
23227
|
.pipe(map((response) => {
|
|
@@ -23337,13 +23230,13 @@ class LandingMultiLayoutComponentService {
|
|
|
23337
23230
|
}
|
|
23338
23231
|
getAppPageDetailConfig(pageId) {
|
|
23339
23232
|
return this.http
|
|
23340
|
-
.get(this.environment.appUrl + this.environment.apiVersion + '/
|
|
23233
|
+
.get(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageDetailConfig?pageConfigId=' + pageId, this.options)
|
|
23341
23234
|
.pipe(map((response) => {
|
|
23342
23235
|
return response;
|
|
23343
23236
|
}), catchError(this.handleError));
|
|
23344
23237
|
}
|
|
23345
23238
|
getAppPageConfigs() {
|
|
23346
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
23239
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageConfigs';
|
|
23347
23240
|
return this.http
|
|
23348
23241
|
.get(apiUrl, { withCredentials: true })
|
|
23349
23242
|
.pipe(map((response) => {
|
|
@@ -23351,7 +23244,7 @@ class LandingMultiLayoutComponentService {
|
|
|
23351
23244
|
}), catchError(this.handleError));
|
|
23352
23245
|
}
|
|
23353
23246
|
getAppDatasetConfigs() {
|
|
23354
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
23247
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppDatasetConfigs';
|
|
23355
23248
|
return this.http
|
|
23356
23249
|
.get(apiUrl, { withCredentials: true })
|
|
23357
23250
|
.pipe(map((response) => {
|
|
@@ -23359,7 +23252,7 @@ class LandingMultiLayoutComponentService {
|
|
|
23359
23252
|
}), catchError(this.handleError));
|
|
23360
23253
|
}
|
|
23361
23254
|
getAppDatasetConfig(datasetId) {
|
|
23362
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
23255
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppDatasetConfig?datasetId=' + datasetId;
|
|
23363
23256
|
return this.http
|
|
23364
23257
|
.get(apiUrl, { withCredentials: true })
|
|
23365
23258
|
.pipe(map((response) => {
|
|
@@ -23368,13 +23261,13 @@ class LandingMultiLayoutComponentService {
|
|
|
23368
23261
|
}
|
|
23369
23262
|
getAppFilterConfig(filterId) {
|
|
23370
23263
|
return this.http
|
|
23371
|
-
.get(this.environment.appUrl + this.environment.apiVersion + '/
|
|
23264
|
+
.get(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppFilterConfig?filterId=' + filterId, this.options)
|
|
23372
23265
|
.pipe(map((response) => {
|
|
23373
23266
|
return response;
|
|
23374
23267
|
}), catchError(this.handleError));
|
|
23375
23268
|
}
|
|
23376
23269
|
getAppViewConfigs() {
|
|
23377
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
23270
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppViewConfigs';
|
|
23378
23271
|
return this.http
|
|
23379
23272
|
.get(apiUrl, { withCredentials: true })
|
|
23380
23273
|
.pipe(map((response) => {
|
|
@@ -24885,7 +24778,7 @@ class BookmarkedService {
|
|
|
24885
24778
|
return throwError(error);
|
|
24886
24779
|
}
|
|
24887
24780
|
getlistKpiBrowser() {
|
|
24888
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
24781
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/listKpiBrowser';
|
|
24889
24782
|
return this.http
|
|
24890
24783
|
.get(apiUrl, { withCredentials: true })
|
|
24891
24784
|
.pipe(map((response) => {
|
|
@@ -24894,13 +24787,13 @@ class BookmarkedService {
|
|
|
24894
24787
|
}
|
|
24895
24788
|
getAppPageDetailConfig(pageId) {
|
|
24896
24789
|
return this.http
|
|
24897
|
-
.get(this.environment.appUrl + this.environment.apiVersion + '/
|
|
24790
|
+
.get(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageDetailConfig?pageConfigId=' + pageId, this.options)
|
|
24898
24791
|
.pipe(map((response) => {
|
|
24899
24792
|
return response;
|
|
24900
24793
|
}), catchError(this.handleError));
|
|
24901
24794
|
}
|
|
24902
24795
|
getAppPageConfigs() {
|
|
24903
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
24796
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppPageConfigs';
|
|
24904
24797
|
return this.http
|
|
24905
24798
|
.get(apiUrl, { withCredentials: true })
|
|
24906
24799
|
.pipe(map((response) => {
|
|
@@ -24908,7 +24801,7 @@ class BookmarkedService {
|
|
|
24908
24801
|
}), catchError(this.handleError));
|
|
24909
24802
|
}
|
|
24910
24803
|
getAppDatasetConfigs() {
|
|
24911
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
24804
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppDatasetConfigs';
|
|
24912
24805
|
return this.http
|
|
24913
24806
|
.get(apiUrl, { withCredentials: true })
|
|
24914
24807
|
.pipe(map((response) => {
|
|
@@ -24916,7 +24809,7 @@ class BookmarkedService {
|
|
|
24916
24809
|
}), catchError(this.handleError));
|
|
24917
24810
|
}
|
|
24918
24811
|
getAppDatasetConfig(datasetId) {
|
|
24919
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
24812
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppDatasetConfig?datasetId=' + datasetId;
|
|
24920
24813
|
return this.http
|
|
24921
24814
|
.get(apiUrl, { withCredentials: true })
|
|
24922
24815
|
.pipe(map((response) => {
|
|
@@ -24925,13 +24818,13 @@ class BookmarkedService {
|
|
|
24925
24818
|
}
|
|
24926
24819
|
getAppFilterConfig(filterId) {
|
|
24927
24820
|
return this.http
|
|
24928
|
-
.get(this.environment.appUrl + this.environment.apiVersion + '/
|
|
24821
|
+
.get(this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppFilterConfig?filterId=' + filterId, this.options)
|
|
24929
24822
|
.pipe(map((response) => {
|
|
24930
24823
|
return response;
|
|
24931
24824
|
}), catchError(this.handleError));
|
|
24932
24825
|
}
|
|
24933
24826
|
getAppViewConfigs() {
|
|
24934
|
-
const apiUrl = this.environment.appUrl + this.environment.apiVersion + '/
|
|
24827
|
+
const apiUrl = this.environment.appUrl + this.environment.apiVersion + this.environment.packageBasePath + '/getAppViewConfigs';
|
|
24935
24828
|
return this.http
|
|
24936
24829
|
.get(apiUrl, { withCredentials: true })
|
|
24937
24830
|
.pipe(map((response) => {
|