@smartbit4all/ng-client 6.0.19 → 6.0.21
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/esm2022/lib/smart-generic-pages/subject-selector/subject-selector.component.mjs +2 -1
- package/esm2022/lib/smart-grid/smart-grid-toolbar-util.mjs +27 -20
- package/esm2022/lib/smart-grid/smart-grid.component.mjs +7 -7
- package/esm2022/lib/smart-icon/smart-icon/ui-badge/ui-badge.component.mjs +10 -17
- package/esm2022/lib/smart-icon/smart-icon/ui-badge/ui-badge.directive.mjs +3 -3
- package/esm2022/lib/smart-table/tables/table.mjs +8 -16
- package/esm2022/lib/smart-tree/smarttree-generic.service.mjs +3 -3
- package/esm2022/lib/smart-tree/smarttree.component.mjs +4 -3
- package/esm2022/lib/smart-tree/smarttree.module.mjs +7 -3
- package/esm2022/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.mjs +1 -3
- package/esm2022/lib/view-context/smart-ui-action/ui-action.service.mjs +7 -2
- package/esm2022/lib/view-context/smart-view-context.service.mjs +2 -8
- package/fesm2022/smartbit4all-ng-client.mjs +67 -74
- package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
- package/lib/smart-grid/smart-grid-toolbar-util.d.ts +2 -0
- package/lib/smart-icon/smart-icon/ui-badge/ui-badge.component.d.ts +5 -7
- package/lib/smart-tree/smarttree.module.d.ts +2 -1
- package/package.json +1 -1
- package/smartbit4all-ng-client-6.0.21.tgz +0 -0
- package/smartbit4all-ng-client-6.0.19.tgz +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, Injectable, Optional, Inject, PLATFORM_ID, NgModule, SkipSelf, RendererStyleFlags2, Directive, Input, HostBinding, HostListener, Component, EventEmitter, Output, signal,
|
|
2
|
+
import { InjectionToken, Injectable, Optional, Inject, PLATFORM_ID, NgModule, SkipSelf, RendererStyleFlags2, Directive, Input, HostBinding, HostListener, input, computed, Component, EventEmitter, Output, signal, ViewChildren, ViewChild, ElementRef, forwardRef, Pipe, ViewContainerRef, ViewEncapsulation, ChangeDetectionStrategy, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, output, effect, inject, ApplicationRef, viewChild, ChangeDetectorRef } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common/http';
|
|
4
4
|
import { HttpHeaders, HttpContext, HttpErrorResponse, HttpParams, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
5
5
|
import { Subject, lastValueFrom, take, tap, takeUntil, interval, startWith, map, distinctUntilChanged, catchError, throwError, from } from 'rxjs';
|
|
@@ -3225,16 +3225,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
3225
3225
|
}] } });
|
|
3226
3226
|
|
|
3227
3227
|
class UiBadgeComponent {
|
|
3228
|
-
|
|
3229
|
-
|
|
3230
|
-
|
|
3231
|
-
|
|
3232
|
-
else if (this.inputValue) {
|
|
3233
|
-
this.effectiveValue = this.inputValue;
|
|
3234
|
-
}
|
|
3228
|
+
constructor() {
|
|
3229
|
+
this.descriptor = input();
|
|
3230
|
+
this.inputValue = input();
|
|
3231
|
+
this.effectiveValue = computed(() => this.descriptor()?.value || this.inputValue());
|
|
3235
3232
|
}
|
|
3236
3233
|
getBadgeClass() {
|
|
3237
|
-
switch (this.descriptor?.color?.toLowerCase()) {
|
|
3234
|
+
switch (this.descriptor()?.color?.toLowerCase()) {
|
|
3238
3235
|
case 'primary':
|
|
3239
3236
|
return 'badge-primary';
|
|
3240
3237
|
case 'secondary':
|
|
@@ -3250,16 +3247,12 @@ class UiBadgeComponent {
|
|
|
3250
3247
|
}
|
|
3251
3248
|
}
|
|
3252
3249
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: UiBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3253
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: UiBadgeComponent, selector: "ui-badge", inputs: { descriptor: "descriptor", inputValue: "inputValue" }, ngImport: i0, template: "<ng-content></ng-content>\r\n\r\n@if (effectiveValue) {\r\n<div class=\"ui-action-badge\" [ngClass]=\"getBadgeClass()\">\r\n
|
|
3250
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: UiBadgeComponent, selector: "ui-badge", inputs: { descriptor: { classPropertyName: "descriptor", publicName: "descriptor", isSignal: true, isRequired: false, transformFunction: null }, inputValue: { classPropertyName: "inputValue", publicName: "inputValue", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ng-content></ng-content>\r\n\r\n@if (effectiveValue()) {\r\n <div class=\"ui-action-badge\" [ngClass]=\"getBadgeClass()\">\r\n {{ effectiveValue() }}\r\n </div>\r\n}\r\n", styles: [".ui-action-badge{position:absolute;top:.1rem;right:0;transform:translate(50%,-50%);transform-origin:100% 0;margin:0;padding:0 .5rem;border-radius:1rem;color:#fff;font-size:.75rem;font-weight:700;line-height:1rem;display:inline-block;text-align:center;white-space:nowrap;z-index:100}:host{display:flex;width:fit-content;height:fit-content;position:relative}.badge-primary{background-color:var(--primary-color)}.badge-secondary{background-color:var(--secondary-color)}.badge-accent{background-color:var(--accent-color)}.badge-error{background-color:var(--error-color)}.badge-warn{background-color:var(--warn-color)}.badge-default{background-color:#ef4444}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
3254
3251
|
}
|
|
3255
3252
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: UiBadgeComponent, decorators: [{
|
|
3256
3253
|
type: Component,
|
|
3257
|
-
args: [{ selector: 'ui-badge', template: "<ng-content></ng-content>\r\n\r\n@if (effectiveValue) {\r\n<div class=\"ui-action-badge\" [ngClass]=\"getBadgeClass()\">\r\n
|
|
3258
|
-
}]
|
|
3259
|
-
type: Input
|
|
3260
|
-
}], inputValue: [{
|
|
3261
|
-
type: Input
|
|
3262
|
-
}] } });
|
|
3254
|
+
args: [{ selector: 'ui-badge', template: "<ng-content></ng-content>\r\n\r\n@if (effectiveValue()) {\r\n <div class=\"ui-action-badge\" [ngClass]=\"getBadgeClass()\">\r\n {{ effectiveValue() }}\r\n </div>\r\n}\r\n", styles: [".ui-action-badge{position:absolute;top:.1rem;right:0;transform:translate(50%,-50%);transform-origin:100% 0;margin:0;padding:0 .5rem;border-radius:1rem;color:#fff;font-size:.75rem;font-weight:700;line-height:1rem;display:inline-block;text-align:center;white-space:nowrap;z-index:100}:host{display:flex;width:fit-content;height:fit-content;position:relative}.badge-primary{background-color:var(--primary-color)}.badge-secondary{background-color:var(--secondary-color)}.badge-accent{background-color:var(--accent-color)}.badge-error{background-color:var(--error-color)}.badge-warn{background-color:var(--warn-color)}.badge-default{background-color:#ef4444}\n"] }]
|
|
3255
|
+
}] });
|
|
3263
3256
|
|
|
3264
3257
|
class UiBadgeDirective {
|
|
3265
3258
|
constructor(vcr, el, renderer) {
|
|
@@ -3273,8 +3266,8 @@ class UiBadgeDirective {
|
|
|
3273
3266
|
const host = this.el.nativeElement;
|
|
3274
3267
|
const parent = host.parentNode;
|
|
3275
3268
|
const badgeComponent = this.vcr.createComponent(UiBadgeComponent);
|
|
3276
|
-
badgeComponent.
|
|
3277
|
-
badgeComponent.
|
|
3269
|
+
badgeComponent.setInput('descriptor', this.descriptor);
|
|
3270
|
+
badgeComponent.setInput('inputValue', this.inputValue);
|
|
3278
3271
|
this.renderer.insertBefore(parent, badgeComponent.location.nativeElement, host);
|
|
3279
3272
|
this.renderer.removeChild(parent, host);
|
|
3280
3273
|
this.renderer.appendChild(badgeComponent.location.nativeElement, host);
|
|
@@ -3425,7 +3418,6 @@ class UiActionButtonComponent {
|
|
|
3425
3418
|
this._destroy$.complete();
|
|
3426
3419
|
}
|
|
3427
3420
|
async onActionClicked(event, model) {
|
|
3428
|
-
event.stopPropagation();
|
|
3429
3421
|
this.actionClick.emit({
|
|
3430
3422
|
event,
|
|
3431
3423
|
code: model.uiAction.code,
|
|
@@ -3433,7 +3425,6 @@ class UiActionButtonComponent {
|
|
|
3433
3425
|
});
|
|
3434
3426
|
}
|
|
3435
3427
|
onActionDoubleClicked(event) {
|
|
3436
|
-
event.stopPropagation();
|
|
3437
3428
|
this.actionDoubleClick.emit({
|
|
3438
3429
|
event,
|
|
3439
3430
|
code: this.code,
|
|
@@ -4213,13 +4204,7 @@ class SmartViewContextService {
|
|
|
4213
4204
|
parameters: new Map(),
|
|
4214
4205
|
};
|
|
4215
4206
|
viewContextUpdate.deviceInfo.componentLibrary = this.componentLibrary;
|
|
4216
|
-
|
|
4217
|
-
var selectedTheme = await this.themeService.getSelectedTheme();
|
|
4218
|
-
viewContextUpdate.deviceInfo.themeName = selectedTheme.name;
|
|
4219
|
-
}
|
|
4220
|
-
catch (e) {
|
|
4221
|
-
// No themes are avalible
|
|
4222
|
-
}
|
|
4207
|
+
viewContextUpdate.deviceInfo.themeName = this.themeService.currentTheme();
|
|
4223
4208
|
this.viewContext = await this.view.updateViewContext(viewContextUpdate).toPromise();
|
|
4224
4209
|
return this.viewContext;
|
|
4225
4210
|
}
|
|
@@ -6428,7 +6413,12 @@ class UiActionService {
|
|
|
6428
6413
|
};
|
|
6429
6414
|
}
|
|
6430
6415
|
else if (uiAction.submit || uiAction.model) {
|
|
6431
|
-
|
|
6416
|
+
if (options?.widgetId && options?.nodeId) {
|
|
6417
|
+
uiActionRequest.params['clientPageModel'] = uiActionModel.serviceToUse.getModel();
|
|
6418
|
+
}
|
|
6419
|
+
else {
|
|
6420
|
+
uiActionRequest.params['model'] = uiActionModel.serviceToUse.getModel();
|
|
6421
|
+
}
|
|
6432
6422
|
}
|
|
6433
6423
|
if (uiAction.composite) {
|
|
6434
6424
|
const containerUuid = uiActionModel.serviceToUse.uuid;
|
|
@@ -11293,35 +11283,23 @@ class SmartGridToolbarActionsUtil {
|
|
|
11293
11283
|
static showToolbar(row, columnName) {
|
|
11294
11284
|
return !!row.actions && row.actions.length > 0 && !!row.columnActions?.[columnName];
|
|
11295
11285
|
}
|
|
11286
|
+
// ##### IN ROW ACTIONS
|
|
11296
11287
|
static calculateCellToActionMap(rows, serviceToUse, gridId) {
|
|
11297
|
-
|
|
11288
|
+
const cellToActionMap = {};
|
|
11298
11289
|
rows.forEach((row) => {
|
|
11299
11290
|
if (row?.columnActions && row?.actions) {
|
|
11300
11291
|
Object.keys(row.columnActions).forEach((columnName) => {
|
|
11301
|
-
|
|
11292
|
+
const key = row.id + columnName;
|
|
11302
11293
|
const actionCodes = row.columnActions[columnName];
|
|
11303
|
-
|
|
11304
|
-
|
|
11305
|
-
|
|
11306
|
-
let _uiAction = { ...uiAction };
|
|
11307
|
-
_uiAction.params = {
|
|
11308
|
-
...uiAction.params,
|
|
11309
|
-
model: row,
|
|
11310
|
-
};
|
|
11311
|
-
// Add gridId and widgetId to uiActionMod
|
|
11312
|
-
return {
|
|
11313
|
-
serviceToUse: serviceToUse,
|
|
11314
|
-
uiAction: _uiAction,
|
|
11315
|
-
nodeId: row.id,
|
|
11316
|
-
widgetId: gridId,
|
|
11317
|
-
};
|
|
11318
|
-
});
|
|
11319
|
-
cellToActionMap[key] = actionModels;
|
|
11294
|
+
cellToActionMap[key] = row.actions
|
|
11295
|
+
.filter((action) => action.code && actionCodes.includes(action.code))
|
|
11296
|
+
.map((uiAction) => this.toActionModel(uiAction, row, serviceToUse, gridId));
|
|
11320
11297
|
});
|
|
11321
11298
|
}
|
|
11322
11299
|
});
|
|
11323
11300
|
return cellToActionMap;
|
|
11324
11301
|
}
|
|
11302
|
+
// ##### MENU ACTIONS
|
|
11325
11303
|
static calculateMenuActions(row, orderedColumns) {
|
|
11326
11304
|
var _columnsToFilter = [
|
|
11327
11305
|
...orderedColumns.map((col) => col.startsWith('data.') ? col.substring('data.'.length) : col),
|
|
@@ -11333,10 +11311,29 @@ class SmartGridToolbarActionsUtil {
|
|
|
11333
11311
|
.flat();
|
|
11334
11312
|
return row.actions?.filter((action) => !columnCodes.includes(action.code)) ?? [];
|
|
11335
11313
|
}
|
|
11314
|
+
static calculateMenuActionModels(row, orderedColumns, serviceToUse, gridId) {
|
|
11315
|
+
return this.calculateMenuActions(row, orderedColumns).map((uiAction) => this.toActionModel(uiAction, row, serviceToUse, gridId));
|
|
11316
|
+
}
|
|
11336
11317
|
static getActionModelsFromMap(cellToActionMap, row, header) {
|
|
11337
11318
|
let key = row.id + header;
|
|
11338
11319
|
return cellToActionMap[key];
|
|
11339
11320
|
}
|
|
11321
|
+
// ##### HELPERS
|
|
11322
|
+
static toActionModel(uiAction, row, serviceToUse, gridId) {
|
|
11323
|
+
const _uiAction = {
|
|
11324
|
+
...uiAction,
|
|
11325
|
+
params: {
|
|
11326
|
+
...uiAction.params,
|
|
11327
|
+
model: row,
|
|
11328
|
+
},
|
|
11329
|
+
};
|
|
11330
|
+
return {
|
|
11331
|
+
serviceToUse,
|
|
11332
|
+
uiAction: _uiAction,
|
|
11333
|
+
nodeId: row.id,
|
|
11334
|
+
widgetId: gridId,
|
|
11335
|
+
};
|
|
11336
|
+
}
|
|
11340
11337
|
}
|
|
11341
11338
|
|
|
11342
11339
|
class Table {
|
|
@@ -11828,35 +11825,27 @@ class Table {
|
|
|
11828
11825
|
return SmartGridToolbarActionsUtil.showToolbar(row, this.originalProperty(columnName));
|
|
11829
11826
|
}
|
|
11830
11827
|
getRowMenuActionModel(element) {
|
|
11831
|
-
|
|
11832
|
-
|
|
11833
|
-
|
|
11834
|
-
}
|
|
11835
|
-
var service = this.smartTable.getServiceToUse();
|
|
11836
|
-
var gridId = this.smartTable.getGridId();
|
|
11837
|
-
if (!service || !gridId) {
|
|
11828
|
+
const service = this.smartTable.getServiceToUse();
|
|
11829
|
+
const gridId = this.smartTable.getGridId();
|
|
11830
|
+
if (!service || !gridId)
|
|
11838
11831
|
return undefined;
|
|
11839
|
-
|
|
11840
|
-
|
|
11841
|
-
var menuUiAction = {
|
|
11832
|
+
const leftoverActions = SmartGridToolbarActionsUtil.calculateMenuActionModels(element, this.smartTable.tableHeaders, service, gridId);
|
|
11833
|
+
const menuUiAction = {
|
|
11842
11834
|
code: 'rowMenu',
|
|
11843
11835
|
descriptor: {
|
|
11844
11836
|
icon: 'more_vert',
|
|
11845
|
-
iconColor: 'primary',
|
|
11846
11837
|
title: '',
|
|
11847
11838
|
type: UiActionButtonType.ICON,
|
|
11848
11839
|
color: 'primary',
|
|
11849
11840
|
},
|
|
11850
|
-
subActions: leftoverActions,
|
|
11841
|
+
subActions: leftoverActions.map((m) => m.uiAction),
|
|
11851
11842
|
};
|
|
11852
|
-
|
|
11843
|
+
return {
|
|
11853
11844
|
serviceToUse: service,
|
|
11854
11845
|
uiAction: menuUiAction,
|
|
11855
11846
|
nodeId: element.id,
|
|
11856
11847
|
widgetId: gridId,
|
|
11857
11848
|
};
|
|
11858
|
-
this.rowMenuActionModelCache.set(cacheKey, model);
|
|
11859
|
-
return model;
|
|
11860
11849
|
}
|
|
11861
11850
|
getRowMenuActionModelArray(element) {
|
|
11862
11851
|
var cacheKey = element.id;
|
|
@@ -17371,13 +17360,13 @@ class SmartGridComponent {
|
|
|
17371
17360
|
return row.id;
|
|
17372
17361
|
}
|
|
17373
17362
|
getRowMenuActionModelArray(row) {
|
|
17374
|
-
|
|
17363
|
+
const cacheKey = row.id;
|
|
17375
17364
|
if (this.rowMenuActionModelArrayCache.has(cacheKey)) {
|
|
17376
17365
|
return this.rowMenuActionModelArrayCache.get(cacheKey);
|
|
17377
17366
|
}
|
|
17378
17367
|
if (!this.rowMenuActionModelCache.has(cacheKey)) {
|
|
17379
|
-
|
|
17380
|
-
|
|
17368
|
+
const leftoverActionModels = SmartGridToolbarActionsUtil.calculateMenuActionModels(row, this.smartGrid.gridModel.view?.orderedColumnNames, this.smartGrid.serviceToUse, this.smartGrid.gridIdentifier);
|
|
17369
|
+
const menuUiAction = {
|
|
17381
17370
|
code: 'rowMenu',
|
|
17382
17371
|
descriptor: {
|
|
17383
17372
|
icon: 'ellipsis-v',
|
|
@@ -17385,9 +17374,9 @@ class SmartGridComponent {
|
|
|
17385
17374
|
type: UiActionButtonType.ICON,
|
|
17386
17375
|
color: 'primary',
|
|
17387
17376
|
},
|
|
17388
|
-
subActions:
|
|
17377
|
+
subActions: leftoverActionModels.map((m) => m.uiAction),
|
|
17389
17378
|
};
|
|
17390
|
-
|
|
17379
|
+
const model = {
|
|
17391
17380
|
serviceToUse: this.smartGrid.serviceToUse,
|
|
17392
17381
|
uiAction: menuUiAction,
|
|
17393
17382
|
nodeId: row.id,
|
|
@@ -17395,7 +17384,7 @@ class SmartGridComponent {
|
|
|
17395
17384
|
};
|
|
17396
17385
|
this.rowMenuActionModelCache.set(cacheKey, model);
|
|
17397
17386
|
}
|
|
17398
|
-
|
|
17387
|
+
const arr = [this.rowMenuActionModelCache.get(cacheKey)];
|
|
17399
17388
|
this.rowMenuActionModelArrayCache.set(cacheKey, arr);
|
|
17400
17389
|
return arr;
|
|
17401
17390
|
}
|
|
@@ -18978,9 +18967,9 @@ class SmarttreeGenericService extends SmarttreeService {
|
|
|
18978
18967
|
this.constructUiActionModels(uiActions);
|
|
18979
18968
|
}
|
|
18980
18969
|
if (!rootNodes) {
|
|
18981
|
-
|
|
18970
|
+
console.error('RootNodes are undefined!');
|
|
18982
18971
|
}
|
|
18983
|
-
return rootNodes;
|
|
18972
|
+
return rootNodes ?? [];
|
|
18984
18973
|
}
|
|
18985
18974
|
async downloadChildren(parentNode) {
|
|
18986
18975
|
let uuid = this.viewContext.getUuidOfPage(this.pageName);
|
|
@@ -19362,11 +19351,11 @@ class SmartTreeComponent {
|
|
|
19362
19351
|
return `${cssClass}-${plusProperty}`;
|
|
19363
19352
|
}
|
|
19364
19353
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartTreeComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19365
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmartTreeComponent, selector: "smart-tree", inputs: { treeStyle: "treeStyle", treeService: "treeService" }, host: { properties: { "attr.data-testid": "this.testId" } }, viewQueries: [{ propertyName: "tree", first: true, predicate: ["tree"], descendants: true }, { propertyName: "trigger", predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<div class=\"smartTreeContainer\">\r\n <smart-ui-action-toolbar\r\n *ngIf=\"uiActionModels.length\"\r\n [uiActionModels]=\"uiActionModels\"\r\n ></smart-ui-action-toolbar>\r\n <mat-tree\r\n #tree\r\n *ngIf=\"treeData\"\r\n [dataSource]=\"dataSource\"\r\n [treeControl]=\"treeControl\"\r\n class=\"sm-tree\"\r\n >\r\n <mat-nested-tree-node\r\n *matTreeNodeDef=\"let node; when: hasChild\"\r\n matTreeNodeToggle=\"{{ getIfExpanded(node) }}\"\r\n [ngClass]=\"getClassesForTreeNode(node)\"\r\n [ngStyle]=\"getNodeStyle(node)\"\r\n >\r\n <div\r\n [ngStyle]=\"getNodePadding(node)\"\r\n [ngClass]=\"getInnerClassesForTreeNode(node)\"\r\n class=\"mat-tree-node sm-tree-node\"\r\n (click)=\"onNodeClick($event, node)\"\r\n >\r\n <button mat-icon-button matTreeNodeToggle [attr.aria-label]=\"'Toggle ' + node.name\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\" (click)=\"onOpenNode($event, node)\">\r\n <div *ngIf=\"hasChild(node.level, node)\">\r\n {{ treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right' }}\r\n </div>\r\n </mat-icon>\r\n </button>\r\n <smart-icon [icon]=\"node.icon\"> </smart-icon>\r\n <div class=\"sm-tree-row\" [ngClass]=\"node.classes\">\r\n <div class=\"sm-tree-row-caption\">\r\n {{ node.caption }}\r\n </div>\r\n <div class=\"sm-shortDescription-spacer\"></div>\r\n <div class=\"sm-tree-row-shortDescription\">\r\n {{ node.shortDescription }}\r\n </div>\r\n <div class=\"sm-shortDescription-button-spacer\"></div>\r\n <div *ngIf=\"node.button\" class=\"sm-tree-node-button\" [ngSwitch]=\"node.button.type\">\r\n <button\r\n (click)=\"customButtonClicked($event, node.button)\"\r\n *ngSwitchCase=\"smartTreeNodeButtonType.ICON\"\r\n mat-icon-button\r\n >\r\n <smart-icon title=\"{{ node.button.icon }}\" [icon]=\"node.button.icon\"></smart-icon>\r\n </button>\r\n <div *ngSwitchCase=\"smartTreeNodeButtonType.MENU\">\r\n <button\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n (click)=\"customButtonClicked($event, node.button, true)\"\r\n >\r\n <smart-icon *ngIf=\"node.button.icon\" [icon]=\"node.button.icon\"></smart-icon\r\n >{{ node.button.label }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button\r\n *ngFor=\"let button of node.button.menuItemButtons\"\r\n (click)=\"customButtonClicked($event, button, true)\"\r\n mat-menu-item\r\n [attr.data-testid]=\"button.code ?? null\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon\r\n >{{ button.label }}\r\n </button>\r\n </mat-menu>\r\n </div>\r\n <button\r\n (click)=\"customButtonClicked($event, node.button)\"\r\n *ngSwitchCase=\"smartTreeNodeButtonType.NORMAL\"\r\n mat-raised-button\r\n >\r\n <smart-icon *ngIf=\"node.button.icon\" [icon]=\"node.button.icon\"></smart-icon>\r\n {{ node.button.icon }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n [class.sm-tree-invisible]=\"!treeControl.isExpanded(node)\"\r\n [ngClass]=\"getClassesForTreeNodeChildren(node)\"\r\n role=\"group\"\r\n >\r\n <ng-container matTreeNodeOutlet></ng-container>\r\n </div>\r\n </mat-nested-tree-node>\r\n </mat-tree>\r\n <div *ngIf=\"!treeData\">\r\n <div *ngIf=\"!treeData\" class=\"tree-skeleton\" aria-hidden=\"true\">\r\n <div class=\"skeleton-row\" style=\"--depth: 0; --w: 58%\">\r\n <span class=\"skeleton-caret\"></span>\r\n <span class=\"skeleton-label\"></span>\r\n </div>\r\n <div class=\"skeleton-row\" style=\"--depth: 1; --w: 72%\">\r\n <span class=\"skeleton-caret\"></span>\r\n <span class=\"skeleton-label\"></span>\r\n </div>\r\n <div class=\"skeleton-row\" style=\"--depth: 2; --w: 45%\">\r\n <span class=\"skeleton-label leaf\"></span>\r\n </div>\r\n <div class=\"skeleton-row\" style=\"--depth: 2; --w: 60%\">\r\n <span class=\"skeleton-label leaf\"></span>\r\n </div>\r\n <div class=\"skeleton-row\" style=\"--depth: 1; --w: 50%\">\r\n <span class=\"skeleton-caret\"></span>\r\n <span class=\"skeleton-label\"></span>\r\n </div>\r\n <div class=\"skeleton-row\" style=\"--depth: 2; --w: 65%\">\r\n <span class=\"skeleton-label leaf\"></span>\r\n </div>\r\n <div class=\"skeleton-row\" style=\"--depth: 0; --w: 40%\">\r\n <span class=\"skeleton-caret\"></span>\r\n <span class=\"skeleton-label\"></span>\r\n </div>\r\n <div class=\"skeleton-row\" style=\"--depth: 1; --w: 55%\">\r\n <span class=\"skeleton-label leaf\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".smartTreeContainer{display:flex;flex-direction:column;gap:.5rem}.sm-tree-invisible{display:none}.sm-tree ul,.sm-tree li{margin-top:0;margin-bottom:0;list-style-type:none}.sm-tree div[role=group]>.mat-tree-node{padding-left:40px}.sm-tee-node{padding-left:40px}.sm-tree-node-name{padding-left:15px;padding-top:15px;display:flex;flex-direction:column}.sm-tree-node-name-row{padding-left:15px;padding-top:15px;display:flex;flex-direction:row;justify-content:space-between}.sm-tree-node-name-col{padding-left:15px;padding-top:15px;display:flex;flex-direction:column}.sm-tee-node-id{font-weight:lighter}.mat-tree-node:hover{cursor:pointer}::ng-deep .mat-icon-rtl-mirror{display:flex;flex-direction:row}.sm-tree-row{display:flex;flex-direction:row;flex:1;align-items:center}.sm-shortDescription-spacer{flex:1}.tree-skeleton{--skeleton-bg-color: #c7cbd1;display:flex;flex-direction:column;gap:.5rem;padding:1rem}.skeleton-row{display:flex;align-items:center;gap:.5rem;padding-left:calc(var(--depth, 0) * 1.25rem)}.skeleton-caret{width:.9rem;height:.9rem;border-radius:2px;background:var(--skeleton-bg-color);flex-shrink:0;animation:skeleton-pulse 2s ease-in-out infinite}.skeleton-label{height:1.2rem;width:var(--w);border-radius:4px;background:var(--skeleton-bg-color);animation:skeleton-pulse 2s ease-in-out infinite}.skeleton-label.leaf{margin-left:1.1rem}@keyframes skeleton-pulse{0%,to{opacity:.35}50%{opacity:1}}@media (prefers-reduced-motion: reduce){.skeleton-caret,.skeleton-label{animation:none}}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i11$1.MatNestedTreeNode, selector: "mat-nested-tree-node", inputs: ["matNestedTreeNode", "disabled", "tabIndex"], exportAs: ["matNestedTreeNode"] }, { kind: "directive", type: i11$1.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i11$1.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "component", type: i11$1.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i11$1.MatTreeNodeOutlet, selector: "[matTreeNodeOutlet]" }, { kind: "component", type: i5$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "component", type: UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: ["uiActionModels", "uiActionDescriptorService", "id", "scrollOnWrap", "toolbarPropertes"] }] }); }
|
|
19354
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmartTreeComponent, selector: "smart-tree", inputs: { treeStyle: "treeStyle", treeService: "treeService" }, host: { properties: { "attr.data-testid": "this.testId" } }, viewQueries: [{ propertyName: "tree", first: true, predicate: ["tree"], descendants: true }, { propertyName: "trigger", predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<div class=\"smartTreeContainer\">\r\n <smart-ui-action-toolbar\r\n *ngIf=\"uiActionModels.length\"\r\n [uiActionModels]=\"uiActionModels\"\r\n ></smart-ui-action-toolbar>\r\n <mat-tree\r\n #tree\r\n *ngIf=\"treeData\"\r\n [dataSource]=\"dataSource\"\r\n [treeControl]=\"treeControl\"\r\n class=\"sm-tree\"\r\n >\r\n <mat-nested-tree-node\r\n *matTreeNodeDef=\"let node; when: hasChild\"\r\n matTreeNodeToggle=\"{{ getIfExpanded(node) }}\"\r\n [ngClass]=\"getClassesForTreeNode(node)\"\r\n [ngStyle]=\"getNodeStyle(node)\"\r\n >\r\n <div\r\n [ngStyle]=\"getNodePadding(node)\"\r\n [ngClass]=\"getInnerClassesForTreeNode(node)\"\r\n class=\"mat-tree-node sm-tree-node\"\r\n (click)=\"onNodeClick($event, node)\"\r\n >\r\n <button mat-icon-button matTreeNodeToggle [attr.aria-label]=\"'Toggle ' + node.name\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\" (click)=\"onOpenNode($event, node)\">\r\n <div *ngIf=\"hasChild(node.level, node)\">\r\n {{ treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right' }}\r\n </div>\r\n </mat-icon>\r\n </button>\r\n <smart-icon [icon]=\"node.icon\"> </smart-icon>\r\n <div class=\"sm-tree-row\" [ngClass]=\"node.classes\">\r\n <div class=\"sm-tree-row-caption\">\r\n {{ node.caption }}\r\n </div>\r\n <div class=\"sm-shortDescription-spacer\"></div>\r\n <div class=\"sm-tree-row-shortDescription\">\r\n {{ node.shortDescription }}\r\n </div>\r\n <div class=\"sm-shortDescription-button-spacer\"></div>\r\n <div *ngIf=\"node.button\" class=\"sm-tree-node-button\" [ngSwitch]=\"node.button.type\">\r\n <button\r\n (click)=\"customButtonClicked($event, node.button)\"\r\n *ngSwitchCase=\"smartTreeNodeButtonType.ICON\"\r\n mat-icon-button\r\n >\r\n <smart-icon title=\"{{ node.button.icon }}\" [icon]=\"node.button.icon\"></smart-icon>\r\n </button>\r\n <div *ngSwitchCase=\"smartTreeNodeButtonType.MENU\">\r\n <button\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n (click)=\"customButtonClicked($event, node.button, true)\"\r\n >\r\n <smart-icon *ngIf=\"node.button.icon\" [icon]=\"node.button.icon\"></smart-icon\r\n >{{ node.button.label }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button\r\n *ngFor=\"let button of node.button.menuItemButtons\"\r\n (click)=\"customButtonClicked($event, button, true)\"\r\n mat-menu-item\r\n [attr.data-testid]=\"button.code ?? null\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon\r\n >{{ button.label }}\r\n </button>\r\n </mat-menu>\r\n </div>\r\n <button\r\n (click)=\"customButtonClicked($event, node.button)\"\r\n *ngSwitchCase=\"smartTreeNodeButtonType.NORMAL\"\r\n mat-raised-button\r\n >\r\n <smart-icon *ngIf=\"node.button.icon\" [icon]=\"node.button.icon\"></smart-icon>\r\n {{ node.button.icon }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n [class.sm-tree-invisible]=\"!treeControl.isExpanded(node)\"\r\n [ngClass]=\"getClassesForTreeNodeChildren(node)\"\r\n role=\"group\"\r\n >\r\n <ng-container matTreeNodeOutlet></ng-container>\r\n </div>\r\n </mat-nested-tree-node>\r\n </mat-tree>\r\n <div *ngIf=\"!treeData\" class=\"tree-loading\">\r\n <mat-spinner diameter=\"24\" color=\"primary\"></mat-spinner>\r\n </div>\r\n</div>\r\n", styles: [".smartTreeContainer{display:flex;flex-direction:column;gap:.5rem}.sm-tree-invisible{display:none}.sm-tree ul,.sm-tree li{margin-top:0;margin-bottom:0;list-style-type:none}.sm-tree div[role=group]>.mat-tree-node{padding-left:40px}.sm-tee-node{padding-left:40px}.sm-tree-node-name{padding-left:15px;padding-top:15px;display:flex;flex-direction:column}.sm-tree-node-name-row{padding-left:15px;padding-top:15px;display:flex;flex-direction:row;justify-content:space-between}.sm-tree-node-name-col{padding-left:15px;padding-top:15px;display:flex;flex-direction:column}.sm-tee-node-id{font-weight:lighter}.mat-tree-node:hover{cursor:pointer}::ng-deep .mat-icon-rtl-mirror{display:flex;flex-direction:row}.sm-tree-row{display:flex;flex-direction:row;flex:1;align-items:center}.sm-shortDescription-spacer{flex:1}.tree-loading{display:flex;justify-content:center;align-items:center;min-height:200px;width:100%}\n"], dependencies: [{ kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i11$1.MatNestedTreeNode, selector: "mat-nested-tree-node", inputs: ["matNestedTreeNode", "disabled", "tabIndex"], exportAs: ["matNestedTreeNode"] }, { kind: "directive", type: i11$1.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i11$1.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "component", type: i11$1.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i11$1.MatTreeNodeOutlet, selector: "[matTreeNodeOutlet]" }, { kind: "component", type: i5$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i5$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "component", type: UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: ["uiActionModels", "uiActionDescriptorService", "id", "scrollOnWrap", "toolbarPropertes"] }, { kind: "component", type: i1$7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }] }); }
|
|
19366
19355
|
}
|
|
19367
19356
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartTreeComponent, decorators: [{
|
|
19368
19357
|
type: Component,
|
|
19369
|
-
args: [{ selector: 'smart-tree', template: "<div class=\"smartTreeContainer\">\r\n <smart-ui-action-toolbar\r\n *ngIf=\"uiActionModels.length\"\r\n [uiActionModels]=\"uiActionModels\"\r\n ></smart-ui-action-toolbar>\r\n <mat-tree\r\n #tree\r\n *ngIf=\"treeData\"\r\n [dataSource]=\"dataSource\"\r\n [treeControl]=\"treeControl\"\r\n class=\"sm-tree\"\r\n >\r\n <mat-nested-tree-node\r\n *matTreeNodeDef=\"let node; when: hasChild\"\r\n matTreeNodeToggle=\"{{ getIfExpanded(node) }}\"\r\n [ngClass]=\"getClassesForTreeNode(node)\"\r\n [ngStyle]=\"getNodeStyle(node)\"\r\n >\r\n <div\r\n [ngStyle]=\"getNodePadding(node)\"\r\n [ngClass]=\"getInnerClassesForTreeNode(node)\"\r\n class=\"mat-tree-node sm-tree-node\"\r\n (click)=\"onNodeClick($event, node)\"\r\n >\r\n <button mat-icon-button matTreeNodeToggle [attr.aria-label]=\"'Toggle ' + node.name\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\" (click)=\"onOpenNode($event, node)\">\r\n <div *ngIf=\"hasChild(node.level, node)\">\r\n {{ treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right' }}\r\n </div>\r\n </mat-icon>\r\n </button>\r\n <smart-icon [icon]=\"node.icon\"> </smart-icon>\r\n <div class=\"sm-tree-row\" [ngClass]=\"node.classes\">\r\n <div class=\"sm-tree-row-caption\">\r\n {{ node.caption }}\r\n </div>\r\n <div class=\"sm-shortDescription-spacer\"></div>\r\n <div class=\"sm-tree-row-shortDescription\">\r\n {{ node.shortDescription }}\r\n </div>\r\n <div class=\"sm-shortDescription-button-spacer\"></div>\r\n <div *ngIf=\"node.button\" class=\"sm-tree-node-button\" [ngSwitch]=\"node.button.type\">\r\n <button\r\n (click)=\"customButtonClicked($event, node.button)\"\r\n *ngSwitchCase=\"smartTreeNodeButtonType.ICON\"\r\n mat-icon-button\r\n >\r\n <smart-icon title=\"{{ node.button.icon }}\" [icon]=\"node.button.icon\"></smart-icon>\r\n </button>\r\n <div *ngSwitchCase=\"smartTreeNodeButtonType.MENU\">\r\n <button\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n (click)=\"customButtonClicked($event, node.button, true)\"\r\n >\r\n <smart-icon *ngIf=\"node.button.icon\" [icon]=\"node.button.icon\"></smart-icon\r\n >{{ node.button.label }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button\r\n *ngFor=\"let button of node.button.menuItemButtons\"\r\n (click)=\"customButtonClicked($event, button, true)\"\r\n mat-menu-item\r\n [attr.data-testid]=\"button.code ?? null\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon\r\n >{{ button.label }}\r\n </button>\r\n </mat-menu>\r\n </div>\r\n <button\r\n (click)=\"customButtonClicked($event, node.button)\"\r\n *ngSwitchCase=\"smartTreeNodeButtonType.NORMAL\"\r\n mat-raised-button\r\n >\r\n <smart-icon *ngIf=\"node.button.icon\" [icon]=\"node.button.icon\"></smart-icon>\r\n {{ node.button.icon }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n [class.sm-tree-invisible]=\"!treeControl.isExpanded(node)\"\r\n [ngClass]=\"getClassesForTreeNodeChildren(node)\"\r\n role=\"group\"\r\n >\r\n <ng-container matTreeNodeOutlet></ng-container>\r\n </div>\r\n </mat-nested-tree-node>\r\n </mat-tree>\r\n <div *ngIf=\"!treeData\"
|
|
19358
|
+
args: [{ selector: 'smart-tree', template: "<div class=\"smartTreeContainer\">\r\n <smart-ui-action-toolbar\r\n *ngIf=\"uiActionModels.length\"\r\n [uiActionModels]=\"uiActionModels\"\r\n ></smart-ui-action-toolbar>\r\n <mat-tree\r\n #tree\r\n *ngIf=\"treeData\"\r\n [dataSource]=\"dataSource\"\r\n [treeControl]=\"treeControl\"\r\n class=\"sm-tree\"\r\n >\r\n <mat-nested-tree-node\r\n *matTreeNodeDef=\"let node; when: hasChild\"\r\n matTreeNodeToggle=\"{{ getIfExpanded(node) }}\"\r\n [ngClass]=\"getClassesForTreeNode(node)\"\r\n [ngStyle]=\"getNodeStyle(node)\"\r\n >\r\n <div\r\n [ngStyle]=\"getNodePadding(node)\"\r\n [ngClass]=\"getInnerClassesForTreeNode(node)\"\r\n class=\"mat-tree-node sm-tree-node\"\r\n (click)=\"onNodeClick($event, node)\"\r\n >\r\n <button mat-icon-button matTreeNodeToggle [attr.aria-label]=\"'Toggle ' + node.name\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\" (click)=\"onOpenNode($event, node)\">\r\n <div *ngIf=\"hasChild(node.level, node)\">\r\n {{ treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right' }}\r\n </div>\r\n </mat-icon>\r\n </button>\r\n <smart-icon [icon]=\"node.icon\"> </smart-icon>\r\n <div class=\"sm-tree-row\" [ngClass]=\"node.classes\">\r\n <div class=\"sm-tree-row-caption\">\r\n {{ node.caption }}\r\n </div>\r\n <div class=\"sm-shortDescription-spacer\"></div>\r\n <div class=\"sm-tree-row-shortDescription\">\r\n {{ node.shortDescription }}\r\n </div>\r\n <div class=\"sm-shortDescription-button-spacer\"></div>\r\n <div *ngIf=\"node.button\" class=\"sm-tree-node-button\" [ngSwitch]=\"node.button.type\">\r\n <button\r\n (click)=\"customButtonClicked($event, node.button)\"\r\n *ngSwitchCase=\"smartTreeNodeButtonType.ICON\"\r\n mat-icon-button\r\n >\r\n <smart-icon title=\"{{ node.button.icon }}\" [icon]=\"node.button.icon\"></smart-icon>\r\n </button>\r\n <div *ngSwitchCase=\"smartTreeNodeButtonType.MENU\">\r\n <button\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n (click)=\"customButtonClicked($event, node.button, true)\"\r\n >\r\n <smart-icon *ngIf=\"node.button.icon\" [icon]=\"node.button.icon\"></smart-icon\r\n >{{ node.button.label }}\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button\r\n *ngFor=\"let button of node.button.menuItemButtons\"\r\n (click)=\"customButtonClicked($event, button, true)\"\r\n mat-menu-item\r\n [attr.data-testid]=\"button.code ?? null\"\r\n >\r\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon\r\n >{{ button.label }}\r\n </button>\r\n </mat-menu>\r\n </div>\r\n <button\r\n (click)=\"customButtonClicked($event, node.button)\"\r\n *ngSwitchCase=\"smartTreeNodeButtonType.NORMAL\"\r\n mat-raised-button\r\n >\r\n <smart-icon *ngIf=\"node.button.icon\" [icon]=\"node.button.icon\"></smart-icon>\r\n {{ node.button.icon }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n [class.sm-tree-invisible]=\"!treeControl.isExpanded(node)\"\r\n [ngClass]=\"getClassesForTreeNodeChildren(node)\"\r\n role=\"group\"\r\n >\r\n <ng-container matTreeNodeOutlet></ng-container>\r\n </div>\r\n </mat-nested-tree-node>\r\n </mat-tree>\r\n <div *ngIf=\"!treeData\" class=\"tree-loading\">\r\n <mat-spinner diameter=\"24\" color=\"primary\"></mat-spinner>\r\n </div>\r\n</div>\r\n", styles: [".smartTreeContainer{display:flex;flex-direction:column;gap:.5rem}.sm-tree-invisible{display:none}.sm-tree ul,.sm-tree li{margin-top:0;margin-bottom:0;list-style-type:none}.sm-tree div[role=group]>.mat-tree-node{padding-left:40px}.sm-tee-node{padding-left:40px}.sm-tree-node-name{padding-left:15px;padding-top:15px;display:flex;flex-direction:column}.sm-tree-node-name-row{padding-left:15px;padding-top:15px;display:flex;flex-direction:row;justify-content:space-between}.sm-tree-node-name-col{padding-left:15px;padding-top:15px;display:flex;flex-direction:column}.sm-tee-node-id{font-weight:lighter}.mat-tree-node:hover{cursor:pointer}::ng-deep .mat-icon-rtl-mirror{display:flex;flex-direction:row}.sm-tree-row{display:flex;flex-direction:row;flex:1;align-items:center}.sm-shortDescription-spacer{flex:1}.tree-loading{display:flex;justify-content:center;align-items:center;min-height:200px;width:100%}\n"] }]
|
|
19370
19359
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { trigger: [{
|
|
19371
19360
|
type: ViewChildren,
|
|
19372
19361
|
args: [MatMenuTrigger]
|
|
@@ -19391,7 +19380,8 @@ class SmarttreeModule {
|
|
|
19391
19380
|
MatTreeModule,
|
|
19392
19381
|
MatMenuModule,
|
|
19393
19382
|
SmartIconModule,
|
|
19394
|
-
SmartViewContextModule
|
|
19383
|
+
SmartViewContextModule,
|
|
19384
|
+
MatProgressSpinnerModule], exports: [SmartTreeComponent] }); }
|
|
19395
19385
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmarttreeModule, providers: [
|
|
19396
19386
|
SmarttreeService,
|
|
19397
19387
|
SmarttreeGenericService,
|
|
@@ -19403,7 +19393,8 @@ class SmarttreeModule {
|
|
|
19403
19393
|
MatTreeModule,
|
|
19404
19394
|
MatMenuModule,
|
|
19405
19395
|
SmartIconModule,
|
|
19406
|
-
SmartViewContextModule
|
|
19396
|
+
SmartViewContextModule,
|
|
19397
|
+
MatProgressSpinnerModule] }); }
|
|
19407
19398
|
}
|
|
19408
19399
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmarttreeModule, decorators: [{
|
|
19409
19400
|
type: NgModule,
|
|
@@ -19418,6 +19409,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
19418
19409
|
MatMenuModule,
|
|
19419
19410
|
SmartIconModule,
|
|
19420
19411
|
SmartViewContextModule,
|
|
19412
|
+
MatProgressSpinnerModule,
|
|
19421
19413
|
],
|
|
19422
19414
|
exports: [SmartTreeComponent],
|
|
19423
19415
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
@@ -25239,6 +25231,7 @@ class SubjectSelectorComponent extends SmartComponent {
|
|
|
25239
25231
|
onUuidResolved(uuid) {
|
|
25240
25232
|
if (this.filterService.config) {
|
|
25241
25233
|
this.filterService.config.uuid = uuid;
|
|
25234
|
+
this.filterService.load();
|
|
25242
25235
|
}
|
|
25243
25236
|
}
|
|
25244
25237
|
setup() {
|