@smartbit4all/ng-client 6.0.53 → 6.0.55
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-client/smart-component-api-client.mjs +4 -1
- package/esm2022/lib/smart-component-layout/smart-component-layout-utility.mjs +22 -1
- package/esm2022/lib/smart-component-layout/smart-component-layout.component.mjs +25 -23
- package/esm2022/lib/smart-component-layout/smart-component-layout.module.mjs +5 -1
- package/esm2022/lib/smart-filter-editor/project.mjs +2 -1
- package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.mjs +1 -1
- package/esm2022/lib/smart-filter-editor/smart-filter-editor.module.mjs +8 -3
- package/esm2022/lib/smart-filter-editor/smart-filter-widget/smart-filter-widget.component.mjs +58 -0
- package/esm2022/lib/smart-table/tables/material-table/material-table.component.mjs +7 -9
- package/esm2022/lib/smart-table/tables/mobile-table/mobile-table.component.mjs +3 -3
- package/esm2022/lib/smart-table/tables/table.mjs +2 -29
- package/fesm2022/smartbit4all-ng-client.mjs +868 -813
- package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
- package/lib/smart-component-layout/smart-component-layout-utility.d.ts +6 -0
- package/lib/smart-component-layout/smart-component-layout.component.d.ts +6 -4
- package/lib/smart-component-layout/smart-component-layout.module.d.ts +4 -3
- package/lib/smart-filter-editor/project.d.ts +1 -0
- package/lib/smart-filter-editor/smart-filter-editor.module.d.ts +9 -8
- package/lib/smart-filter-editor/smart-filter-widget/smart-filter-widget.component.d.ts +23 -0
- package/lib/smart-table/tables/table.d.ts +1 -3
- package/package.json +1 -1
- package/smartbit4all-ng-client-6.0.55.tgz +0 -0
- package/smartbit4all-ng-client-6.0.53.tgz +0 -0
|
@@ -11986,7 +11986,7 @@ class Table {
|
|
|
11986
11986
|
widgetId: gridId,
|
|
11987
11987
|
};
|
|
11988
11988
|
}
|
|
11989
|
-
|
|
11989
|
+
getMenuActions(element) {
|
|
11990
11990
|
var cacheKey = element.id;
|
|
11991
11991
|
if (this.rowMenuActionModelArrayCache.has(cacheKey)) {
|
|
11992
11992
|
return this.rowMenuActionModelArrayCache.get(cacheKey);
|
|
@@ -11999,33 +11999,6 @@ class Table {
|
|
|
11999
11999
|
shouldShowMenuButton(row) {
|
|
12000
12000
|
return SmartGridToolbarActionsUtil.showMenu(row, this.smartTable.tableHeaders);
|
|
12001
12001
|
}
|
|
12002
|
-
// OLD STUFF
|
|
12003
|
-
getMenuButtons(row, button) {
|
|
12004
|
-
let columnActions = row.columnActions ?? {};
|
|
12005
|
-
// Filter for columnActions that are in a columnAction, but the column is not in the headers
|
|
12006
|
-
let filteredActionColumns = Object.keys(columnActions)
|
|
12007
|
-
.filter((key) => this.smartTable.tableHeaders.includes('data.' + key))
|
|
12008
|
-
.reduce((acc, key) => {
|
|
12009
|
-
acc[key] = columnActions[key];
|
|
12010
|
-
return acc;
|
|
12011
|
-
}, {});
|
|
12012
|
-
let columnCodes = Object.values(filteredActionColumns).flat();
|
|
12013
|
-
return (button.menuItemButtons || []).filter((btn) => !columnCodes.includes(btn.code));
|
|
12014
|
-
}
|
|
12015
|
-
getMenuItemButtonsPropertyName(element, button) {
|
|
12016
|
-
let buttons = this.getValue(element, button.menuItemButtonsPropertyName);
|
|
12017
|
-
let gridRow = element;
|
|
12018
|
-
let columnActions = gridRow.columnActions ?? {};
|
|
12019
|
-
// Filter for columnActions that are in a columnAction, but the column is not in the headers
|
|
12020
|
-
let filteredActionColumns = Object.keys(columnActions)
|
|
12021
|
-
.filter((key) => this.smartTable.tableHeaders.includes('data.' + key))
|
|
12022
|
-
.reduce((acc, key) => {
|
|
12023
|
-
acc[key] = columnActions[key];
|
|
12024
|
-
return acc;
|
|
12025
|
-
}, {});
|
|
12026
|
-
let columnCodes = Object.values(filteredActionColumns || {}).flat();
|
|
12027
|
-
return buttons?.filter((button) => !columnCodes.includes(button.code));
|
|
12028
|
-
}
|
|
12029
12002
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: Table, deps: [{ token: ComponentFactoryService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12030
12003
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: Table, selector: "ng-component", inputs: { smartTable: "smartTable" }, viewQueries: [{ propertyName: "myTableChild", first: true, predicate: ["myTable"], descendants: true }, { propertyName: "headerToolbar", first: true, predicate: ["headerToolbar"], descendants: true }, { propertyName: "vcRef", predicate: ["expandedArea"], descendants: true, read: ViewContainerRef }, { propertyName: "defaultActionMenuComponents", predicate: DefaultActionsPopupComponent, descendants: true }, { propertyName: "triggers", predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: '', isInline: true }); }
|
|
12031
12004
|
}
|
|
@@ -12098,7 +12071,7 @@ class MaterialTableComponent extends Table {
|
|
|
12098
12071
|
super(cfService);
|
|
12099
12072
|
}
|
|
12100
12073
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MaterialTableComponent, deps: [{ token: ComponentFactoryService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12101
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: MaterialTableComponent, selector: "lib-material-table", usesInheritance: true, ngImport: i0, template: "<table\n #myTable\n mat-table\n [dataSource]=\"smartTable.tableRows\"\n class=\"full-width\"\n multiTemplateDataRows\n>\n <!-- Column Descriptor -->\n @if (smartTable.title) {\n <caption *ngIf=\"smartTable.title\" class=\"captionTitle\">\n {{ smartTable.title }}\n </caption>\n }\n <ng-container\n *ngFor=\"let header of smartTable.tableHeaders; let i = index\"\n matColumnDef=\"{{ header }}\"\n >\n <!-- my_menu is the implicit action column present on all tables: -->\n @if ('my_menu' === header) {\n <th\n mat-header-cell\n *matHeaderCellDef\n [ngClass]=\"getColumnClasses(smartTable.customSmartTableHeaders![i])\"\n [ngStyle]=\"getColumnStyles(smartTable.customSmartTableHeaders![i])\"\n [attr.data-testid]=\"smartTable.customSmartTableHeaders![i].propertyName\"\n >\n <smart-ui-action-toolbar\n #headerToolbar\n [id]=\"\n smartTable.getGridId()\n ? smartTable.getGridId() + '_headerToolbar'\n : 'grid_not_initialized'\n \"\n >\n </smart-ui-action-toolbar>\n </th>\n } @else {\n <th\n mat-header-cell\n *matHeaderCellDef\n [ngClass]=\"getColumnClasses(smartTable.customSmartTableHeaders![i])\"\n [ngStyle]=\"getColumnStyles(smartTable.customSmartTableHeaders![i])\"\n [attr.data-testid]=\"smartTable.customSmartTableHeaders![i].propertyName\"\n >\n <div\n *ngIf=\"\n header === 'icon' || header === 'img' || header === 'options' || header === 'button'\n \"\n ></div>\n <div *ngIf=\"header === 'select'\">\n <mat-checkbox\n *ngIf=\"smartTable.customSmartTableHeaders![i].showCheckboxInHeader\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"smartTable.selection!.hasValue() && isAllSelected()\"\n [indeterminate]=\"smartTable.selection!.hasValue() && !isAllSelected()\"\n [aria-label]=\"checkboxLabel()\"\n >\n </mat-checkbox>\n <div *ngIf=\"!smartTable.customSmartTableHeaders![i].showCheckboxInHeader\">\n {{ smartTable.customTableHeaders[i] }}\n </div>\n </div>\n <div\n *ngIf=\"\n header !== 'icon' &&\n header !== 'img' &&\n header !== 'options' &&\n header !== 'button' &&\n header !== 'select' &&\n header !== 'expand' &&\n header !== 'actions'\n \"\n >\n <div *ngIf=\"smartTable.sortable; then sortable; else notSortable\"></div>\n <ng-template #sortable>\n <button\n (click)=\"sortButtonClicked($event, smartTable.customSmartTableHeaders![i])\"\n *ngIf=\"smartTable.sortable && isSortable(smartTable.customSmartTableHeaders![i])\"\n mat-button\n class=\"sortableHeaderButton\"\n >\n {{ smartTable.customTableHeaders[i] }}\n <smart-icon\n class=\"sortableHeaderButtonIcon\"\n *ngIf=\"getSortIcon(header)\"\n title=\"sort\"\n [icon]=\"getSortIcon(header)!\"\n ></smart-icon>\n <smart-icon\n class=\"sortableHeaderButtonIcon\"\n *ngIf=\"hasSortNumIcon(header)\"\n title=\"sort\"\n [icon]=\"getSortNumIcon(header)\"\n ></smart-icon>\n </button>\n </ng-template>\n <ng-template #notSortable>\n {{ smartTable.customTableHeaders[i] }}\n </ng-template>\n </div>\n </th>\n }\n <td mat-cell *matCellDef=\"let element\" [ngClass]=\"isDisabled(element) ? 'disabledRow' : ''\">\n <mat-checkbox\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].propertyName === 'select' &&\n !isDisabled(element)\n \"\n (click)=\"$event.stopPropagation()\"\n (change)=\"\n $event\n ? setSelection(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\n : element\n )\n : null\n \"\n [disabled]=\"isDisabled(element)\"\n [checked]=\"\n smartTable.selection!.isSelected(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\n : element\n )\n \"\n [aria-label]=\"\n checkboxLabel(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\n : element\n )\n \"\n >\n </mat-checkbox>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].properties\n \"\n >\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATETIME\">\n {{\n getValue(element, header)\n | smartDateTime: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATE\">\n {{\n getValue(element, header)\n | smartDate: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().TIME\">\n {{\n getValue(element, header)\n | smartTime: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().CHECKBOX\">\n <mat-checkbox [disabled]=\"true\" [checked]=\"getValue(element, header)\"></mat-checkbox>\n </div>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders[i].properties?.type === type().ICON &&\n smartTable.customSmartTableHeaders[i].properties?.icons?.length\n \"\n >\n <smart-icon\n [smartTooltip]=\"getToolTip(element, i)\"\n [icon]=\"getIcon(getValue(element, header), i)!\"\n [color]=\"getColor(getValue(element, header), i)\"\n >\n </smart-icon>\n </div>\n </div>\n <div class=\"smart-table-icon-container\">\n <div *ngFor=\"let ir of getImageResourceIcons(element, header)\">\n <smart-icon [imageResource]=\"ir\"> </smart-icon>\n </div>\n </div>\n <div\n *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].buttons\"\n class=\"smart-table-buttons-col\"\n >\n <div *ngFor=\"let button of smartTable.customSmartTableHeaders[i].buttons\">\n <div *ngIf=\"showButton(button, element)\" [ngSwitch]=\"button.type\">\n <button\n (click)=\"customButtonClicked($event, button, element)\"\n *ngSwitchCase=\"smartTableButtonType.ICON\"\n mat-icon-button\n color=\"{{ button.color }}\"\n >\n <smart-icon title=\"{{ button.label }}\" [icon]=\"button.icon!\"></smart-icon>\n </button>\n <button\n (click)=\"customButtonClicked($event, button, element)\"\n *ngSwitchCase=\"smartTableButtonType.NORMAL\"\n mat-button\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n {{ button.label ?? (button.translator ? button.translator(element).title : '') }}\n </button>\n <button\n (click)=\"customButtonClicked($event, button, element)\"\n *ngSwitchCase=\"smartTableButtonType.RAISED\"\n mat-raised-button\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n {{ button.label ?? (button.translator ? button.translator(element).title : '') }}\n </button>\n <!------ MENU ------>\n <div *ngSwitchCase=\"smartTableButtonType.MENU\" class=\"menu-button\">\n <!------ DEFAULT_ACTION_COLUMN ID TOOLBAR ------>\n <smart-ui-action-toolbar\n [uiActionModels]=\"getRowColumnAction(element, defaultActionToolbarId)\"\n ></smart-ui-action-toolbar>\n\n <!------ GENERIC HAMBURGER ------>\n <!------ TOOLBAR ------>\n <button\n *ngIf=\"showMenuButton(element, button)\"\n mat-button\n [matMenuTriggerFor]=\"menu\"\n (click)=\"customButtonClicked($event, button, element, undefined, true)\"\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n <!-- {{ button.label ?? (button.translator ? button.translator(element).title : '') }} -->\n </button>\n <mat-menu #menu=\"matMenu\">\n <div *ngIf=\"button.menuItemButtons\">\n <button\n *ngFor=\"let btn of getMenuButtons(element, button)\"\n (click)=\"customButtonClicked($event, btn, element, undefined, true)\"\n mat-menu-item\n >\n <smart-icon\n *ngIf=\"btn?.translator(btn)?.icon\"\n [icon]=\"btn!.translator!(btn)!.icon!\"\n ></smart-icon>\n {{ btn?.translator(btn)?.title }}\n </button>\n </div>\n <div *ngIf=\"button.menuItemButtonsPropertyName\">\n <div *ngFor=\"let btn of getMenuItemButtonsPropertyName(element, button)\">\n <button\n *ngIf=\"btn.code !== ACTION_SEPERATOR\"\n (click)=\"customButtonClicked($event, button, element, btn, true)\"\n mat-menu-item\n [disabled]=\"btn.disabled\"\n [smartTooltip]=\"\n btn?.descriptor?.tooltip\n ? btn?.descriptor?.tooltip\n : button.translator!(btn).tooltip\n \"\n >\n <div\n class=\"smart-table-icon-container\"\n [ngClass]=\"\n button.translator!(btn).iconPosition === 'POST' ? 'reversed' : ''\n \"\n ><smart-icon\n *ngIf=\"button.translator!(btn).icon\"\n [icon]=\"button.translator!(btn).icon!\"\n ></smart-icon>\n {{ button.translator!(btn).title }}</div\n >\n </button>\n <mat-divider *ngIf=\"btn.code === ACTION_SEPERATOR\"></mat-divider>\n </div>\n </div>\n </mat-menu>\n </div>\n\n <!------ MENU ------>\n </div>\n </div>\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].icon\">\n <smart-icon\n *ngIf=\"smartTable.customSmartTableHeaders[i].icon?.icon\"\n [ngClass]=\"smartTable.customSmartTableHeaders[i].icon?.cssClass ?? ''\"\n [color]=\"smartTable.customSmartTableHeaders[i].icon?.color\"\n [icon]=\"smartTable.customSmartTableHeaders[i].icon!.icon\"\n >\n </smart-icon>\n </div>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].translator !== undefined\n \"\n >\n {{ smartTable.customSmartTableHeaders[i].translator!(getValue(element, header)) }}\n </div>\n <button\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].propertyName === 'expand'\n \"\n mat-icon-button\n aria-label=\"expand row\"\n (click)=\"onToggle(element, $event)\"\n >\n <smart-icon *ngIf=\"expandedElement !== element\" [icon]=\"'keyboard_arrow_down'\"></smart-icon>\n <smart-icon *ngIf=\"expandedElement === element\" [icon]=\"'keyboard_arrow_up'\"></smart-icon>\n </button>\n <div\n *ngIf=\"\n !smartTable.customSmartTableHeaders ||\n (smartTable.customSmartTableHeaders &&\n !smartTable.customSmartTableHeaders[i].properties &&\n !smartTable.customSmartTableHeaders[i].icon &&\n !smartTable.customSmartTableHeaders[i].buttons &&\n !smartTable.customSmartTableHeaders[i].translator &&\n !(smartTable.customSmartTableHeaders[i].propertyName === 'select') &&\n !(smartTable.customSmartTableHeaders[i].propertyName === 'expand'))\n \"\n >\n <smart-icon *ngIf=\"header === 'icon'\" [icon]=\"getValue(element, header)!\"> </smart-icon>\n <img\n *ngIf=\"header === 'img'\"\n [src]=\"getValue(element, header)\"\n alt=\"\"\n class=\"smarttableImg\"\n />\n <!------ TOOLBAR ------>\n <ng-container *ngIf=\"showCellToolbar(element, header)\">\n <smart-ui-action-toolbar\n [uiActionModels]=\"getRowColumnAction(element, header)\"\n ></smart-ui-action-toolbar>\n </ng-container>\n <!------ TOOLBAR ------>\n <div\n *ngIf=\"\n header !== 'icon' &&\n header !== 'img' &&\n header !== 'option' &&\n header !== 'button' &&\n !isImageResource(element, header)\n \"\n [innerHtml]=\"getValue(element, header)\"\n ></div>\n </div>\n </td>\n </ng-container>\n\n <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\n <ng-container matColumnDef=\"expandedDetail\">\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"smartTable.tableHeaders.length\">\n <div\n class=\"example-element-detail\"\n [@detailExpand]=\"element == expandedElement ? 'expanded' : 'collapsed'\"\n >\n <ng-template #expandedArea></ng-template>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"smartTable.tableHeaders; sticky: true\"></tr>\n <ng-container *matRowDef=\"let element; columns: smartTable.tableHeaders\">\n <tr\n mat-row\n class=\"example-element-row\"\n [class.example-expanded-row]=\"expandedElement === element\"\n [ngClass]=\"getRowClasses(element)\"\n [ngStyle]=\"getRowStyles(element)\"\n (click)=\"handleOnRowClick(element)\"\n (dblclick)=\"handleOnRowDoubleClick($event, element)\"\n [attr.data-testid]=\"element?.id ?? null\"\n ></tr>\n <lib-default-actions-popup\n *ngIf=\"smartTable.defaultActionCodes && smartTable.defaultActionCodes.length > 0\"\n #defaultActionMenu\n [buttons]=\"getDefaultActionsForRow(element)!\"\n [row]=\"element\"\n ></lib-default-actions-popup>\n </ng-container>\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"example-detail-row\"></tr>\n</table>\n", styles: [".full-width{width:100%}.smarttableImg{width:25px}.smartTableRowHover:hover{cursor:pointer}tr.example-detail-row{height:0}tr.example-element-row:not(.example-expanded-row):hover{background:#f5f5f5}tr.example-element-row:not(.example-expanded-row):active{background:#efefef}.example-element-row td{border-bottom-width:0}.example-element-detail{overflow:hidden;display:flex;flex-direction:column}.example-element-diagram{min-width:80px;border:2px solid black;padding:8px;font-weight:lighter;margin:8px 0;height:104px}.example-element-symbol{font-weight:700;font-size:40px;line-height:normal}.example-element-description{padding:16px}.example-element-description-attribution{opacity:.5}.disabledRow{color:var(--disabled)}.disabledRow:hover{cursor:default}.smart-table-buttons-col{display:flex;flex-direction:row;justify-content:flex-end}.sortableHeaderButton{margin:0!important;padding:0!important;text-align:left!important}.selected{background-color:var(--primary-light-color)}.smart-table-icon-container{display:flex;flex-direction:row;justify-content:space-between;white-space:initial}.reversed{flex-direction:row-reverse;gap:1rem}:host ::ng-deep .mat-mdc-menu-item{line-height:normal!important}.mat-mdc-menu-item[disabled]{cursor:default!important}.menu-button{display:flex;flex-direction:row;justify-content:flex-end;text-align:-webkit-right;align-items:center}.captionTitle{font-size:1.5rem;align-content:center;padding:.5rem .75rem;text-align:start;border-top:1px solid rgba(0,0,0,.12);border-bottom:1px solid rgba(0,0,0,.12);background:#f5f5f5}\n"], dependencies: [{ kind: "directive", type: SmartTooltipDirective, selector: "[smartTooltip]", inputs: ["smartTooltip"] }, { 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: i4$3.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i6.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i6.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i6.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i6.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i6.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i6.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i6.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i6.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i6.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i6.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i5.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.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.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: i5$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: ["uiActionModels", "uiActionDescriptorService", "id", "scrollOnWrap", "toolbarPropertes"] }, { kind: "component", type: DefaultActionsPopupComponent, selector: "lib-default-actions-popup", inputs: ["buttons", "row", "colIdx"] }, { kind: "pipe", type: SmartDateTimePipe, name: "smartDateTime" }, { kind: "pipe", type: SmartDatePipe, name: "smartDate" }, { kind: "pipe", type: SmartTimePipe, name: "smartTime" }], animations: [
|
|
12074
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: MaterialTableComponent, selector: "lib-material-table", usesInheritance: true, ngImport: i0, template: "<table\n #myTable\n mat-table\n [dataSource]=\"smartTable.tableRows\"\n class=\"full-width\"\n multiTemplateDataRows\n>\n <!-- Column Descriptor -->\n @if (smartTable.title) {\n <caption *ngIf=\"smartTable.title\" class=\"captionTitle\">\n {{ smartTable.title }}\n </caption>\n }\n <ng-container\n *ngFor=\"let header of smartTable.tableHeaders; let i = index\"\n matColumnDef=\"{{ header }}\"\n >\n <!-- my_menu is the implicit action column present on all tables: -->\n @if ('my_menu' === header) {\n <th\n mat-header-cell\n *matHeaderCellDef\n [ngClass]=\"getColumnClasses(smartTable.customSmartTableHeaders![i])\"\n [ngStyle]=\"getColumnStyles(smartTable.customSmartTableHeaders![i])\"\n [attr.data-testid]=\"smartTable.customSmartTableHeaders![i].propertyName\"\n >\n <smart-ui-action-toolbar\n #headerToolbar\n [id]=\"\n smartTable.getGridId()\n ? smartTable.getGridId() + '_headerToolbar'\n : 'grid_not_initialized'\n \"\n >\n </smart-ui-action-toolbar>\n </th>\n } @else {\n <th\n mat-header-cell\n *matHeaderCellDef\n [ngClass]=\"getColumnClasses(smartTable.customSmartTableHeaders![i])\"\n [ngStyle]=\"getColumnStyles(smartTable.customSmartTableHeaders![i])\"\n [attr.data-testid]=\"smartTable.customSmartTableHeaders![i].propertyName\"\n >\n <div\n *ngIf=\"\n header === 'icon' || header === 'img' || header === 'options' || header === 'button'\n \"\n ></div>\n <div *ngIf=\"header === 'select'\">\n <mat-checkbox\n *ngIf=\"smartTable.customSmartTableHeaders![i].showCheckboxInHeader\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"smartTable.selection!.hasValue() && isAllSelected()\"\n [indeterminate]=\"smartTable.selection!.hasValue() && !isAllSelected()\"\n [aria-label]=\"checkboxLabel()\"\n >\n </mat-checkbox>\n <div *ngIf=\"!smartTable.customSmartTableHeaders![i].showCheckboxInHeader\">\n {{ smartTable.customTableHeaders[i] }}\n </div>\n </div>\n <div\n *ngIf=\"\n header !== 'icon' &&\n header !== 'img' &&\n header !== 'options' &&\n header !== 'button' &&\n header !== 'select' &&\n header !== 'expand' &&\n header !== 'actions'\n \"\n >\n <div *ngIf=\"smartTable.sortable; then sortable; else notSortable\"></div>\n <ng-template #sortable>\n <button\n (click)=\"sortButtonClicked($event, smartTable.customSmartTableHeaders![i])\"\n *ngIf=\"smartTable.sortable && isSortable(smartTable.customSmartTableHeaders![i])\"\n mat-button\n class=\"sortableHeaderButton\"\n >\n {{ smartTable.customTableHeaders[i] }}\n <smart-icon\n class=\"sortableHeaderButtonIcon\"\n *ngIf=\"getSortIcon(header)\"\n title=\"sort\"\n [icon]=\"getSortIcon(header)!\"\n ></smart-icon>\n <smart-icon\n class=\"sortableHeaderButtonIcon\"\n *ngIf=\"hasSortNumIcon(header)\"\n title=\"sort\"\n [icon]=\"getSortNumIcon(header)\"\n ></smart-icon>\n </button>\n </ng-template>\n <ng-template #notSortable>\n {{ smartTable.customTableHeaders[i] }}\n </ng-template>\n </div>\n </th>\n }\n <td mat-cell *matCellDef=\"let element\" [ngClass]=\"isDisabled(element) ? 'disabledRow' : ''\">\n <mat-checkbox\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].propertyName === 'select' &&\n !isDisabled(element)\n \"\n (click)=\"$event.stopPropagation()\"\n (change)=\"\n $event\n ? setSelection(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\n : element\n )\n : null\n \"\n [disabled]=\"isDisabled(element)\"\n [checked]=\"\n smartTable.selection!.isSelected(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\n : element\n )\n \"\n [aria-label]=\"\n checkboxLabel(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\n : element\n )\n \"\n >\n </mat-checkbox>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].properties\n \"\n >\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATETIME\">\n {{\n getValue(element, header)\n | smartDateTime: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATE\">\n {{\n getValue(element, header)\n | smartDate: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().TIME\">\n {{\n getValue(element, header)\n | smartTime: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().CHECKBOX\">\n <mat-checkbox [disabled]=\"true\" [checked]=\"getValue(element, header)\"></mat-checkbox>\n </div>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders[i].properties?.type === type().ICON &&\n smartTable.customSmartTableHeaders[i].properties?.icons?.length\n \"\n >\n <smart-icon\n [smartTooltip]=\"getToolTip(element, i)\"\n [icon]=\"getIcon(getValue(element, header), i)!\"\n [color]=\"getColor(getValue(element, header), i)\"\n >\n </smart-icon>\n </div>\n </div>\n <div class=\"smart-table-icon-container\">\n <div *ngFor=\"let ir of getImageResourceIcons(element, header)\">\n <smart-icon [imageResource]=\"ir\"> </smart-icon>\n </div>\n </div>\n <div\n *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].buttons\"\n class=\"smart-table-buttons-col\"\n >\n <div *ngFor=\"let button of smartTable.customSmartTableHeaders[i].buttons\">\n <div *ngIf=\"showButton(button, element)\" [ngSwitch]=\"button.type\">\n <button\n (click)=\"customButtonClicked($event, button, element)\"\n *ngSwitchCase=\"smartTableButtonType.ICON\"\n mat-icon-button\n color=\"{{ button.color }}\"\n >\n <smart-icon title=\"{{ button.label }}\" [icon]=\"button.icon!\"></smart-icon>\n </button>\n <button\n (click)=\"customButtonClicked($event, button, element)\"\n *ngSwitchCase=\"smartTableButtonType.NORMAL\"\n mat-button\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n {{ button.label ?? (button.translator ? button.translator(element).title : '') }}\n </button>\n <button\n (click)=\"customButtonClicked($event, button, element)\"\n *ngSwitchCase=\"smartTableButtonType.RAISED\"\n mat-raised-button\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n {{ button.label ?? (button.translator ? button.translator(element).title : '') }}\n </button>\n <!------ MENU ------>\n <div *ngSwitchCase=\"smartTableButtonType.MENU\" class=\"menu-button\">\n <!------ DEFAULT_ACTION_COLUMN ID TOOLBAR ------>\n <smart-ui-action-toolbar\n [uiActionModels]=\"getRowColumnAction(element, defaultActionToolbarId)\"\n ></smart-ui-action-toolbar>\n <!------ GENERIC HAMBURGER ------>\n <!------ TOOLBAR ------>\n @if (shouldShowMenuButton(element)) {\n <smart-ui-action-toolbar\n [uiActionModels]=\"getMenuActions(element)\"\n ></smart-ui-action-toolbar>\n }\n </div>\n <!------ MENU ------>\n </div>\n </div>\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].icon\">\n <smart-icon\n *ngIf=\"smartTable.customSmartTableHeaders[i].icon?.icon\"\n [ngClass]=\"smartTable.customSmartTableHeaders[i].icon?.cssClass ?? ''\"\n [color]=\"smartTable.customSmartTableHeaders[i].icon?.color\"\n [icon]=\"smartTable.customSmartTableHeaders[i].icon!.icon\"\n >\n </smart-icon>\n </div>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].translator !== undefined\n \"\n >\n {{ smartTable.customSmartTableHeaders[i].translator!(getValue(element, header)) }}\n </div>\n <button\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].propertyName === 'expand'\n \"\n mat-icon-button\n aria-label=\"expand row\"\n (click)=\"onToggle(element, $event)\"\n >\n <smart-icon *ngIf=\"expandedElement !== element\" [icon]=\"'keyboard_arrow_down'\"></smart-icon>\n <smart-icon *ngIf=\"expandedElement === element\" [icon]=\"'keyboard_arrow_up'\"></smart-icon>\n </button>\n <div\n *ngIf=\"\n !smartTable.customSmartTableHeaders ||\n (smartTable.customSmartTableHeaders &&\n !smartTable.customSmartTableHeaders[i].properties &&\n !smartTable.customSmartTableHeaders[i].icon &&\n !smartTable.customSmartTableHeaders[i].buttons &&\n !smartTable.customSmartTableHeaders[i].translator &&\n !(smartTable.customSmartTableHeaders[i].propertyName === 'select') &&\n !(smartTable.customSmartTableHeaders[i].propertyName === 'expand'))\n \"\n >\n <smart-icon *ngIf=\"header === 'icon'\" [icon]=\"getValue(element, header)!\"> </smart-icon>\n <img\n *ngIf=\"header === 'img'\"\n [src]=\"getValue(element, header)\"\n alt=\"\"\n class=\"smarttableImg\"\n />\n <!------ TOOLBAR ------>\n <ng-container *ngIf=\"showCellToolbar(element, header)\">\n <smart-ui-action-toolbar\n [uiActionModels]=\"getRowColumnAction(element, header)\"\n ></smart-ui-action-toolbar>\n </ng-container>\n <!------ TOOLBAR ------>\n <div\n *ngIf=\"\n header !== 'icon' &&\n header !== 'img' &&\n header !== 'option' &&\n header !== 'button' &&\n !isImageResource(element, header)\n \"\n [innerHtml]=\"getValue(element, header)\"\n ></div>\n </div>\n </td>\n </ng-container>\n\n <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\n <ng-container matColumnDef=\"expandedDetail\">\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"smartTable.tableHeaders.length\">\n <div\n class=\"example-element-detail\"\n [@detailExpand]=\"element == expandedElement ? 'expanded' : 'collapsed'\"\n >\n <ng-template #expandedArea></ng-template>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"smartTable.tableHeaders; sticky: true\"></tr>\n <ng-container *matRowDef=\"let element; columns: smartTable.tableHeaders\">\n <tr\n mat-row\n class=\"example-element-row\"\n [class.example-expanded-row]=\"expandedElement === element\"\n [ngClass]=\"getRowClasses(element)\"\n [ngStyle]=\"getRowStyles(element)\"\n (click)=\"handleOnRowClick(element)\"\n (dblclick)=\"handleOnRowDoubleClick($event, element)\"\n [attr.data-testid]=\"element?.id ?? null\"\n ></tr>\n <lib-default-actions-popup\n *ngIf=\"smartTable.defaultActionCodes && smartTable.defaultActionCodes.length > 0\"\n #defaultActionMenu\n [buttons]=\"getDefaultActionsForRow(element)!\"\n [row]=\"element\"\n ></lib-default-actions-popup>\n </ng-container>\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"example-detail-row\"></tr>\n</table>\n", styles: [".full-width{width:100%}.smarttableImg{width:25px}.smartTableRowHover:hover{cursor:pointer}tr.example-detail-row{height:0}tr.example-element-row:not(.example-expanded-row):hover{background:#f5f5f5}tr.example-element-row:not(.example-expanded-row):active{background:#efefef}.example-element-row td{border-bottom-width:0}.example-element-detail{overflow:hidden;display:flex;flex-direction:column}.example-element-diagram{min-width:80px;border:2px solid black;padding:8px;font-weight:lighter;margin:8px 0;height:104px}.example-element-symbol{font-weight:700;font-size:40px;line-height:normal}.example-element-description{padding:16px}.example-element-description-attribution{opacity:.5}.disabledRow{color:var(--disabled)}.disabledRow:hover{cursor:default}.smart-table-buttons-col{display:flex;flex-direction:row;justify-content:flex-end}.sortableHeaderButton{margin:0!important;padding:0!important;text-align:left!important}.selected{background-color:var(--primary-light-color)}.smart-table-icon-container{display:flex;flex-direction:row;justify-content:space-between;white-space:initial}.reversed{flex-direction:row-reverse;gap:1rem}:host ::ng-deep .mat-mdc-menu-item{line-height:normal!important}.mat-mdc-menu-item[disabled]{cursor:default!important}.menu-button{display:flex;flex-direction:row;justify-content:flex-end;text-align:-webkit-right;align-items:center}.captionTitle{font-size:1.5rem;align-content:center;padding:.5rem .75rem;text-align:start;border-top:1px solid rgba(0,0,0,.12);border-bottom:1px solid rgba(0,0,0,.12);background:#f5f5f5}\n"], dependencies: [{ kind: "directive", type: SmartTooltipDirective, selector: "[smartTooltip]", inputs: ["smartTooltip"] }, { 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: i4$3.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i6.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i6.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i6.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i6.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i6.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i6.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i6.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i6.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i6.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i6.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { 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: DefaultActionsPopupComponent, selector: "lib-default-actions-popup", inputs: ["buttons", "row", "colIdx"] }, { kind: "pipe", type: SmartDateTimePipe, name: "smartDateTime" }, { kind: "pipe", type: SmartDatePipe, name: "smartDate" }, { kind: "pipe", type: SmartTimePipe, name: "smartTime" }], animations: [
|
|
12102
12075
|
trigger('detailExpand', [
|
|
12103
12076
|
state('collapsed', style({ height: '0px', minHeight: '0' })),
|
|
12104
12077
|
state('expanded', style({ height: '*' })),
|
|
@@ -12114,7 +12087,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
12114
12087
|
state('expanded', style({ height: '*' })),
|
|
12115
12088
|
transition('expanded <=> collapsed', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')),
|
|
12116
12089
|
]),
|
|
12117
|
-
], template: "<table\n #myTable\n mat-table\n [dataSource]=\"smartTable.tableRows\"\n class=\"full-width\"\n multiTemplateDataRows\n>\n <!-- Column Descriptor -->\n @if (smartTable.title) {\n <caption *ngIf=\"smartTable.title\" class=\"captionTitle\">\n {{ smartTable.title }}\n </caption>\n }\n <ng-container\n *ngFor=\"let header of smartTable.tableHeaders; let i = index\"\n matColumnDef=\"{{ header }}\"\n >\n <!-- my_menu is the implicit action column present on all tables: -->\n @if ('my_menu' === header) {\n <th\n mat-header-cell\n *matHeaderCellDef\n [ngClass]=\"getColumnClasses(smartTable.customSmartTableHeaders![i])\"\n [ngStyle]=\"getColumnStyles(smartTable.customSmartTableHeaders![i])\"\n [attr.data-testid]=\"smartTable.customSmartTableHeaders![i].propertyName\"\n >\n <smart-ui-action-toolbar\n #headerToolbar\n [id]=\"\n smartTable.getGridId()\n ? smartTable.getGridId() + '_headerToolbar'\n : 'grid_not_initialized'\n \"\n >\n </smart-ui-action-toolbar>\n </th>\n } @else {\n <th\n mat-header-cell\n *matHeaderCellDef\n [ngClass]=\"getColumnClasses(smartTable.customSmartTableHeaders![i])\"\n [ngStyle]=\"getColumnStyles(smartTable.customSmartTableHeaders![i])\"\n [attr.data-testid]=\"smartTable.customSmartTableHeaders![i].propertyName\"\n >\n <div\n *ngIf=\"\n header === 'icon' || header === 'img' || header === 'options' || header === 'button'\n \"\n ></div>\n <div *ngIf=\"header === 'select'\">\n <mat-checkbox\n *ngIf=\"smartTable.customSmartTableHeaders![i].showCheckboxInHeader\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"smartTable.selection!.hasValue() && isAllSelected()\"\n [indeterminate]=\"smartTable.selection!.hasValue() && !isAllSelected()\"\n [aria-label]=\"checkboxLabel()\"\n >\n </mat-checkbox>\n <div *ngIf=\"!smartTable.customSmartTableHeaders![i].showCheckboxInHeader\">\n {{ smartTable.customTableHeaders[i] }}\n </div>\n </div>\n <div\n *ngIf=\"\n header !== 'icon' &&\n header !== 'img' &&\n header !== 'options' &&\n header !== 'button' &&\n header !== 'select' &&\n header !== 'expand' &&\n header !== 'actions'\n \"\n >\n <div *ngIf=\"smartTable.sortable; then sortable; else notSortable\"></div>\n <ng-template #sortable>\n <button\n (click)=\"sortButtonClicked($event, smartTable.customSmartTableHeaders![i])\"\n *ngIf=\"smartTable.sortable && isSortable(smartTable.customSmartTableHeaders![i])\"\n mat-button\n class=\"sortableHeaderButton\"\n >\n {{ smartTable.customTableHeaders[i] }}\n <smart-icon\n class=\"sortableHeaderButtonIcon\"\n *ngIf=\"getSortIcon(header)\"\n title=\"sort\"\n [icon]=\"getSortIcon(header)!\"\n ></smart-icon>\n <smart-icon\n class=\"sortableHeaderButtonIcon\"\n *ngIf=\"hasSortNumIcon(header)\"\n title=\"sort\"\n [icon]=\"getSortNumIcon(header)\"\n ></smart-icon>\n </button>\n </ng-template>\n <ng-template #notSortable>\n {{ smartTable.customTableHeaders[i] }}\n </ng-template>\n </div>\n </th>\n }\n <td mat-cell *matCellDef=\"let element\" [ngClass]=\"isDisabled(element) ? 'disabledRow' : ''\">\n <mat-checkbox\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].propertyName === 'select' &&\n !isDisabled(element)\n \"\n (click)=\"$event.stopPropagation()\"\n (change)=\"\n $event\n ? setSelection(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\n : element\n )\n : null\n \"\n [disabled]=\"isDisabled(element)\"\n [checked]=\"\n smartTable.selection!.isSelected(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\n : element\n )\n \"\n [aria-label]=\"\n checkboxLabel(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\n : element\n )\n \"\n >\n </mat-checkbox>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].properties\n \"\n >\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATETIME\">\n {{\n getValue(element, header)\n | smartDateTime: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATE\">\n {{\n getValue(element, header)\n | smartDate: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().TIME\">\n {{\n getValue(element, header)\n | smartTime: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().CHECKBOX\">\n <mat-checkbox [disabled]=\"true\" [checked]=\"getValue(element, header)\"></mat-checkbox>\n </div>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders[i].properties?.type === type().ICON &&\n smartTable.customSmartTableHeaders[i].properties?.icons?.length\n \"\n >\n <smart-icon\n [smartTooltip]=\"getToolTip(element, i)\"\n [icon]=\"getIcon(getValue(element, header), i)!\"\n [color]=\"getColor(getValue(element, header), i)\"\n >\n </smart-icon>\n </div>\n </div>\n <div class=\"smart-table-icon-container\">\n <div *ngFor=\"let ir of getImageResourceIcons(element, header)\">\n <smart-icon [imageResource]=\"ir\"> </smart-icon>\n </div>\n </div>\n <div\n *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].buttons\"\n class=\"smart-table-buttons-col\"\n >\n <div *ngFor=\"let button of smartTable.customSmartTableHeaders[i].buttons\">\n <div *ngIf=\"showButton(button, element)\" [ngSwitch]=\"button.type\">\n <button\n (click)=\"customButtonClicked($event, button, element)\"\n *ngSwitchCase=\"smartTableButtonType.ICON\"\n mat-icon-button\n color=\"{{ button.color }}\"\n >\n <smart-icon title=\"{{ button.label }}\" [icon]=\"button.icon!\"></smart-icon>\n </button>\n <button\n (click)=\"customButtonClicked($event, button, element)\"\n *ngSwitchCase=\"smartTableButtonType.NORMAL\"\n mat-button\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n {{ button.label ?? (button.translator ? button.translator(element).title : '') }}\n </button>\n <button\n (click)=\"customButtonClicked($event, button, element)\"\n *ngSwitchCase=\"smartTableButtonType.RAISED\"\n mat-raised-button\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n {{ button.label ?? (button.translator ? button.translator(element).title : '') }}\n </button>\n <!------ MENU ------>\n <div *ngSwitchCase=\"smartTableButtonType.MENU\" class=\"menu-button\">\n <!------ DEFAULT_ACTION_COLUMN ID TOOLBAR ------>\n <smart-ui-action-toolbar\n [uiActionModels]=\"getRowColumnAction(element, defaultActionToolbarId)\"\n ></smart-ui-action-toolbar>\n\n <!------ GENERIC HAMBURGER ------>\n <!------ TOOLBAR ------>\n <button\n *ngIf=\"showMenuButton(element, button)\"\n mat-button\n [matMenuTriggerFor]=\"menu\"\n (click)=\"customButtonClicked($event, button, element, undefined, true)\"\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n <!-- {{ button.label ?? (button.translator ? button.translator(element).title : '') }} -->\n </button>\n <mat-menu #menu=\"matMenu\">\n <div *ngIf=\"button.menuItemButtons\">\n <button\n *ngFor=\"let btn of getMenuButtons(element, button)\"\n (click)=\"customButtonClicked($event, btn, element, undefined, true)\"\n mat-menu-item\n >\n <smart-icon\n *ngIf=\"btn?.translator(btn)?.icon\"\n [icon]=\"btn!.translator!(btn)!.icon!\"\n ></smart-icon>\n {{ btn?.translator(btn)?.title }}\n </button>\n </div>\n <div *ngIf=\"button.menuItemButtonsPropertyName\">\n <div *ngFor=\"let btn of getMenuItemButtonsPropertyName(element, button)\">\n <button\n *ngIf=\"btn.code !== ACTION_SEPERATOR\"\n (click)=\"customButtonClicked($event, button, element, btn, true)\"\n mat-menu-item\n [disabled]=\"btn.disabled\"\n [smartTooltip]=\"\n btn?.descriptor?.tooltip\n ? btn?.descriptor?.tooltip\n : button.translator!(btn).tooltip\n \"\n >\n <div\n class=\"smart-table-icon-container\"\n [ngClass]=\"\n button.translator!(btn).iconPosition === 'POST' ? 'reversed' : ''\n \"\n ><smart-icon\n *ngIf=\"button.translator!(btn).icon\"\n [icon]=\"button.translator!(btn).icon!\"\n ></smart-icon>\n {{ button.translator!(btn).title }}</div\n >\n </button>\n <mat-divider *ngIf=\"btn.code === ACTION_SEPERATOR\"></mat-divider>\n </div>\n </div>\n </mat-menu>\n </div>\n\n <!------ MENU ------>\n </div>\n </div>\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].icon\">\n <smart-icon\n *ngIf=\"smartTable.customSmartTableHeaders[i].icon?.icon\"\n [ngClass]=\"smartTable.customSmartTableHeaders[i].icon?.cssClass ?? ''\"\n [color]=\"smartTable.customSmartTableHeaders[i].icon?.color\"\n [icon]=\"smartTable.customSmartTableHeaders[i].icon!.icon\"\n >\n </smart-icon>\n </div>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].translator !== undefined\n \"\n >\n {{ smartTable.customSmartTableHeaders[i].translator!(getValue(element, header)) }}\n </div>\n <button\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].propertyName === 'expand'\n \"\n mat-icon-button\n aria-label=\"expand row\"\n (click)=\"onToggle(element, $event)\"\n >\n <smart-icon *ngIf=\"expandedElement !== element\" [icon]=\"'keyboard_arrow_down'\"></smart-icon>\n <smart-icon *ngIf=\"expandedElement === element\" [icon]=\"'keyboard_arrow_up'\"></smart-icon>\n </button>\n <div\n *ngIf=\"\n !smartTable.customSmartTableHeaders ||\n (smartTable.customSmartTableHeaders &&\n !smartTable.customSmartTableHeaders[i].properties &&\n !smartTable.customSmartTableHeaders[i].icon &&\n !smartTable.customSmartTableHeaders[i].buttons &&\n !smartTable.customSmartTableHeaders[i].translator &&\n !(smartTable.customSmartTableHeaders[i].propertyName === 'select') &&\n !(smartTable.customSmartTableHeaders[i].propertyName === 'expand'))\n \"\n >\n <smart-icon *ngIf=\"header === 'icon'\" [icon]=\"getValue(element, header)!\"> </smart-icon>\n <img\n *ngIf=\"header === 'img'\"\n [src]=\"getValue(element, header)\"\n alt=\"\"\n class=\"smarttableImg\"\n />\n <!------ TOOLBAR ------>\n <ng-container *ngIf=\"showCellToolbar(element, header)\">\n <smart-ui-action-toolbar\n [uiActionModels]=\"getRowColumnAction(element, header)\"\n ></smart-ui-action-toolbar>\n </ng-container>\n <!------ TOOLBAR ------>\n <div\n *ngIf=\"\n header !== 'icon' &&\n header !== 'img' &&\n header !== 'option' &&\n header !== 'button' &&\n !isImageResource(element, header)\n \"\n [innerHtml]=\"getValue(element, header)\"\n ></div>\n </div>\n </td>\n </ng-container>\n\n <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\n <ng-container matColumnDef=\"expandedDetail\">\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"smartTable.tableHeaders.length\">\n <div\n class=\"example-element-detail\"\n [@detailExpand]=\"element == expandedElement ? 'expanded' : 'collapsed'\"\n >\n <ng-template #expandedArea></ng-template>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"smartTable.tableHeaders; sticky: true\"></tr>\n <ng-container *matRowDef=\"let element; columns: smartTable.tableHeaders\">\n <tr\n mat-row\n class=\"example-element-row\"\n [class.example-expanded-row]=\"expandedElement === element\"\n [ngClass]=\"getRowClasses(element)\"\n [ngStyle]=\"getRowStyles(element)\"\n (click)=\"handleOnRowClick(element)\"\n (dblclick)=\"handleOnRowDoubleClick($event, element)\"\n [attr.data-testid]=\"element?.id ?? null\"\n ></tr>\n <lib-default-actions-popup\n *ngIf=\"smartTable.defaultActionCodes && smartTable.defaultActionCodes.length > 0\"\n #defaultActionMenu\n [buttons]=\"getDefaultActionsForRow(element)!\"\n [row]=\"element\"\n ></lib-default-actions-popup>\n </ng-container>\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"example-detail-row\"></tr>\n</table>\n", styles: [".full-width{width:100%}.smarttableImg{width:25px}.smartTableRowHover:hover{cursor:pointer}tr.example-detail-row{height:0}tr.example-element-row:not(.example-expanded-row):hover{background:#f5f5f5}tr.example-element-row:not(.example-expanded-row):active{background:#efefef}.example-element-row td{border-bottom-width:0}.example-element-detail{overflow:hidden;display:flex;flex-direction:column}.example-element-diagram{min-width:80px;border:2px solid black;padding:8px;font-weight:lighter;margin:8px 0;height:104px}.example-element-symbol{font-weight:700;font-size:40px;line-height:normal}.example-element-description{padding:16px}.example-element-description-attribution{opacity:.5}.disabledRow{color:var(--disabled)}.disabledRow:hover{cursor:default}.smart-table-buttons-col{display:flex;flex-direction:row;justify-content:flex-end}.sortableHeaderButton{margin:0!important;padding:0!important;text-align:left!important}.selected{background-color:var(--primary-light-color)}.smart-table-icon-container{display:flex;flex-direction:row;justify-content:space-between;white-space:initial}.reversed{flex-direction:row-reverse;gap:1rem}:host ::ng-deep .mat-mdc-menu-item{line-height:normal!important}.mat-mdc-menu-item[disabled]{cursor:default!important}.menu-button{display:flex;flex-direction:row;justify-content:flex-end;text-align:-webkit-right;align-items:center}.captionTitle{font-size:1.5rem;align-content:center;padding:.5rem .75rem;text-align:start;border-top:1px solid rgba(0,0,0,.12);border-bottom:1px solid rgba(0,0,0,.12);background:#f5f5f5}\n"] }]
|
|
12090
|
+
], template: "<table\n #myTable\n mat-table\n [dataSource]=\"smartTable.tableRows\"\n class=\"full-width\"\n multiTemplateDataRows\n>\n <!-- Column Descriptor -->\n @if (smartTable.title) {\n <caption *ngIf=\"smartTable.title\" class=\"captionTitle\">\n {{ smartTable.title }}\n </caption>\n }\n <ng-container\n *ngFor=\"let header of smartTable.tableHeaders; let i = index\"\n matColumnDef=\"{{ header }}\"\n >\n <!-- my_menu is the implicit action column present on all tables: -->\n @if ('my_menu' === header) {\n <th\n mat-header-cell\n *matHeaderCellDef\n [ngClass]=\"getColumnClasses(smartTable.customSmartTableHeaders![i])\"\n [ngStyle]=\"getColumnStyles(smartTable.customSmartTableHeaders![i])\"\n [attr.data-testid]=\"smartTable.customSmartTableHeaders![i].propertyName\"\n >\n <smart-ui-action-toolbar\n #headerToolbar\n [id]=\"\n smartTable.getGridId()\n ? smartTable.getGridId() + '_headerToolbar'\n : 'grid_not_initialized'\n \"\n >\n </smart-ui-action-toolbar>\n </th>\n } @else {\n <th\n mat-header-cell\n *matHeaderCellDef\n [ngClass]=\"getColumnClasses(smartTable.customSmartTableHeaders![i])\"\n [ngStyle]=\"getColumnStyles(smartTable.customSmartTableHeaders![i])\"\n [attr.data-testid]=\"smartTable.customSmartTableHeaders![i].propertyName\"\n >\n <div\n *ngIf=\"\n header === 'icon' || header === 'img' || header === 'options' || header === 'button'\n \"\n ></div>\n <div *ngIf=\"header === 'select'\">\n <mat-checkbox\n *ngIf=\"smartTable.customSmartTableHeaders![i].showCheckboxInHeader\"\n (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"smartTable.selection!.hasValue() && isAllSelected()\"\n [indeterminate]=\"smartTable.selection!.hasValue() && !isAllSelected()\"\n [aria-label]=\"checkboxLabel()\"\n >\n </mat-checkbox>\n <div *ngIf=\"!smartTable.customSmartTableHeaders![i].showCheckboxInHeader\">\n {{ smartTable.customTableHeaders[i] }}\n </div>\n </div>\n <div\n *ngIf=\"\n header !== 'icon' &&\n header !== 'img' &&\n header !== 'options' &&\n header !== 'button' &&\n header !== 'select' &&\n header !== 'expand' &&\n header !== 'actions'\n \"\n >\n <div *ngIf=\"smartTable.sortable; then sortable; else notSortable\"></div>\n <ng-template #sortable>\n <button\n (click)=\"sortButtonClicked($event, smartTable.customSmartTableHeaders![i])\"\n *ngIf=\"smartTable.sortable && isSortable(smartTable.customSmartTableHeaders![i])\"\n mat-button\n class=\"sortableHeaderButton\"\n >\n {{ smartTable.customTableHeaders[i] }}\n <smart-icon\n class=\"sortableHeaderButtonIcon\"\n *ngIf=\"getSortIcon(header)\"\n title=\"sort\"\n [icon]=\"getSortIcon(header)!\"\n ></smart-icon>\n <smart-icon\n class=\"sortableHeaderButtonIcon\"\n *ngIf=\"hasSortNumIcon(header)\"\n title=\"sort\"\n [icon]=\"getSortNumIcon(header)\"\n ></smart-icon>\n </button>\n </ng-template>\n <ng-template #notSortable>\n {{ smartTable.customTableHeaders[i] }}\n </ng-template>\n </div>\n </th>\n }\n <td mat-cell *matCellDef=\"let element\" [ngClass]=\"isDisabled(element) ? 'disabledRow' : ''\">\n <mat-checkbox\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].propertyName === 'select' &&\n !isDisabled(element)\n \"\n (click)=\"$event.stopPropagation()\"\n (change)=\"\n $event\n ? setSelection(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\n : element\n )\n : null\n \"\n [disabled]=\"isDisabled(element)\"\n [checked]=\"\n smartTable.selection!.isSelected(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\n : element\n )\n \"\n [aria-label]=\"\n checkboxLabel(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(element, smartTable.selectionProperty)\n : element\n )\n \"\n >\n </mat-checkbox>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].properties\n \"\n >\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATETIME\">\n {{\n getValue(element, header)\n | smartDateTime: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATE\">\n {{\n getValue(element, header)\n | smartDate: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().TIME\">\n {{\n getValue(element, header)\n | smartTime: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().CHECKBOX\">\n <mat-checkbox [disabled]=\"true\" [checked]=\"getValue(element, header)\"></mat-checkbox>\n </div>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders[i].properties?.type === type().ICON &&\n smartTable.customSmartTableHeaders[i].properties?.icons?.length\n \"\n >\n <smart-icon\n [smartTooltip]=\"getToolTip(element, i)\"\n [icon]=\"getIcon(getValue(element, header), i)!\"\n [color]=\"getColor(getValue(element, header), i)\"\n >\n </smart-icon>\n </div>\n </div>\n <div class=\"smart-table-icon-container\">\n <div *ngFor=\"let ir of getImageResourceIcons(element, header)\">\n <smart-icon [imageResource]=\"ir\"> </smart-icon>\n </div>\n </div>\n <div\n *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].buttons\"\n class=\"smart-table-buttons-col\"\n >\n <div *ngFor=\"let button of smartTable.customSmartTableHeaders[i].buttons\">\n <div *ngIf=\"showButton(button, element)\" [ngSwitch]=\"button.type\">\n <button\n (click)=\"customButtonClicked($event, button, element)\"\n *ngSwitchCase=\"smartTableButtonType.ICON\"\n mat-icon-button\n color=\"{{ button.color }}\"\n >\n <smart-icon title=\"{{ button.label }}\" [icon]=\"button.icon!\"></smart-icon>\n </button>\n <button\n (click)=\"customButtonClicked($event, button, element)\"\n *ngSwitchCase=\"smartTableButtonType.NORMAL\"\n mat-button\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n {{ button.label ?? (button.translator ? button.translator(element).title : '') }}\n </button>\n <button\n (click)=\"customButtonClicked($event, button, element)\"\n *ngSwitchCase=\"smartTableButtonType.RAISED\"\n mat-raised-button\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n {{ button.label ?? (button.translator ? button.translator(element).title : '') }}\n </button>\n <!------ MENU ------>\n <div *ngSwitchCase=\"smartTableButtonType.MENU\" class=\"menu-button\">\n <!------ DEFAULT_ACTION_COLUMN ID TOOLBAR ------>\n <smart-ui-action-toolbar\n [uiActionModels]=\"getRowColumnAction(element, defaultActionToolbarId)\"\n ></smart-ui-action-toolbar>\n <!------ GENERIC HAMBURGER ------>\n <!------ TOOLBAR ------>\n @if (shouldShowMenuButton(element)) {\n <smart-ui-action-toolbar\n [uiActionModels]=\"getMenuActions(element)\"\n ></smart-ui-action-toolbar>\n }\n </div>\n <!------ MENU ------>\n </div>\n </div>\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].icon\">\n <smart-icon\n *ngIf=\"smartTable.customSmartTableHeaders[i].icon?.icon\"\n [ngClass]=\"smartTable.customSmartTableHeaders[i].icon?.cssClass ?? ''\"\n [color]=\"smartTable.customSmartTableHeaders[i].icon?.color\"\n [icon]=\"smartTable.customSmartTableHeaders[i].icon!.icon\"\n >\n </smart-icon>\n </div>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].translator !== undefined\n \"\n >\n {{ smartTable.customSmartTableHeaders[i].translator!(getValue(element, header)) }}\n </div>\n <button\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].propertyName === 'expand'\n \"\n mat-icon-button\n aria-label=\"expand row\"\n (click)=\"onToggle(element, $event)\"\n >\n <smart-icon *ngIf=\"expandedElement !== element\" [icon]=\"'keyboard_arrow_down'\"></smart-icon>\n <smart-icon *ngIf=\"expandedElement === element\" [icon]=\"'keyboard_arrow_up'\"></smart-icon>\n </button>\n <div\n *ngIf=\"\n !smartTable.customSmartTableHeaders ||\n (smartTable.customSmartTableHeaders &&\n !smartTable.customSmartTableHeaders[i].properties &&\n !smartTable.customSmartTableHeaders[i].icon &&\n !smartTable.customSmartTableHeaders[i].buttons &&\n !smartTable.customSmartTableHeaders[i].translator &&\n !(smartTable.customSmartTableHeaders[i].propertyName === 'select') &&\n !(smartTable.customSmartTableHeaders[i].propertyName === 'expand'))\n \"\n >\n <smart-icon *ngIf=\"header === 'icon'\" [icon]=\"getValue(element, header)!\"> </smart-icon>\n <img\n *ngIf=\"header === 'img'\"\n [src]=\"getValue(element, header)\"\n alt=\"\"\n class=\"smarttableImg\"\n />\n <!------ TOOLBAR ------>\n <ng-container *ngIf=\"showCellToolbar(element, header)\">\n <smart-ui-action-toolbar\n [uiActionModels]=\"getRowColumnAction(element, header)\"\n ></smart-ui-action-toolbar>\n </ng-container>\n <!------ TOOLBAR ------>\n <div\n *ngIf=\"\n header !== 'icon' &&\n header !== 'img' &&\n header !== 'option' &&\n header !== 'button' &&\n !isImageResource(element, header)\n \"\n [innerHtml]=\"getValue(element, header)\"\n ></div>\n </div>\n </td>\n </ng-container>\n\n <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\n <ng-container matColumnDef=\"expandedDetail\">\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"smartTable.tableHeaders.length\">\n <div\n class=\"example-element-detail\"\n [@detailExpand]=\"element == expandedElement ? 'expanded' : 'collapsed'\"\n >\n <ng-template #expandedArea></ng-template>\n </div>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"smartTable.tableHeaders; sticky: true\"></tr>\n <ng-container *matRowDef=\"let element; columns: smartTable.tableHeaders\">\n <tr\n mat-row\n class=\"example-element-row\"\n [class.example-expanded-row]=\"expandedElement === element\"\n [ngClass]=\"getRowClasses(element)\"\n [ngStyle]=\"getRowStyles(element)\"\n (click)=\"handleOnRowClick(element)\"\n (dblclick)=\"handleOnRowDoubleClick($event, element)\"\n [attr.data-testid]=\"element?.id ?? null\"\n ></tr>\n <lib-default-actions-popup\n *ngIf=\"smartTable.defaultActionCodes && smartTable.defaultActionCodes.length > 0\"\n #defaultActionMenu\n [buttons]=\"getDefaultActionsForRow(element)!\"\n [row]=\"element\"\n ></lib-default-actions-popup>\n </ng-container>\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"example-detail-row\"></tr>\n</table>\n", styles: [".full-width{width:100%}.smarttableImg{width:25px}.smartTableRowHover:hover{cursor:pointer}tr.example-detail-row{height:0}tr.example-element-row:not(.example-expanded-row):hover{background:#f5f5f5}tr.example-element-row:not(.example-expanded-row):active{background:#efefef}.example-element-row td{border-bottom-width:0}.example-element-detail{overflow:hidden;display:flex;flex-direction:column}.example-element-diagram{min-width:80px;border:2px solid black;padding:8px;font-weight:lighter;margin:8px 0;height:104px}.example-element-symbol{font-weight:700;font-size:40px;line-height:normal}.example-element-description{padding:16px}.example-element-description-attribution{opacity:.5}.disabledRow{color:var(--disabled)}.disabledRow:hover{cursor:default}.smart-table-buttons-col{display:flex;flex-direction:row;justify-content:flex-end}.sortableHeaderButton{margin:0!important;padding:0!important;text-align:left!important}.selected{background-color:var(--primary-light-color)}.smart-table-icon-container{display:flex;flex-direction:row;justify-content:space-between;white-space:initial}.reversed{flex-direction:row-reverse;gap:1rem}:host ::ng-deep .mat-mdc-menu-item{line-height:normal!important}.mat-mdc-menu-item[disabled]{cursor:default!important}.menu-button{display:flex;flex-direction:row;justify-content:flex-end;text-align:-webkit-right;align-items:center}.captionTitle{font-size:1.5rem;align-content:center;padding:.5rem .75rem;text-align:start;border-top:1px solid rgba(0,0,0,.12);border-bottom:1px solid rgba(0,0,0,.12);background:#f5f5f5}\n"] }]
|
|
12118
12091
|
}], ctorParameters: () => [{ type: ComponentFactoryService }] });
|
|
12119
12092
|
|
|
12120
12093
|
class MobileTableComponent extends Table {
|
|
@@ -12122,11 +12095,11 @@ class MobileTableComponent extends Table {
|
|
|
12122
12095
|
super(cfService);
|
|
12123
12096
|
}
|
|
12124
12097
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MobileTableComponent, deps: [{ token: ComponentFactoryService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12125
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: MobileTableComponent, selector: "lib-mobile-table", usesInheritance: true, ngImport: i0, template: "<div class=\"mobileTable\">\n <div\n class=\"mobileTableRow\"\n *ngFor=\"let row of smartTable.tableRows\"\n [ngClass]=\"getRowClasses(row)\"\n [ngStyle]=\"getRowStyles(row)\"\n [attr.data-testid]=\"row?.id ?? null\"\n >\n <div\n class=\"mobileTableCell\"\n *ngFor=\"let header of smartTable.customSmartTableHeaders; let i = index\"\n (click)=\"handleOnRowClick(row)\"\n (dblclick)=\"handleOnRowDoubleClick($event, row)\"\n >\n <div class=\"mobileTableCellHeader\" [attr.data-testid]=\"header.propertyName\">\n {{ header.label }}\n </div>\n\n <mat-checkbox\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].propertyName === 'select'\n \"\n (click)=\"$event.stopPropagation()\"\n (change)=\"\n $event\n ? setSelection(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(row, smartTable.selectionProperty)\n : row\n )\n : null\n \"\n [disabled]=\"isDisabled(row)\"\n [checked]=\"\n smartTable.selection!.isSelected(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(row, smartTable.selectionProperty)\n : row\n )\n \"\n [aria-label]=\"\n checkboxLabel(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(row, smartTable.selectionProperty)\n : row\n )\n \"\n >\n </mat-checkbox>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].properties\n \"\n >\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATETIME\">\n {{\n getValue(row, header.propertyName)\n | smartDateTime: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATE\">\n {{\n getValue(row, header.propertyName)\n | smartDate: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().TIME\">\n {{\n getValue(row, header.propertyName)\n | smartTime: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().CHECKBOX\">\n <mat-checkbox\n [disabled]=\"true\"\n [checked]=\"getValue(row, header.propertyName)\"\n ></mat-checkbox>\n </div>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders[i].properties?.type === type().ICON &&\n smartTable.customSmartTableHeaders[i].properties?.icons?.length\n \"\n >\n <smart-icon\n [smartTooltip]=\"getToolTip(row, i)\"\n [icon]=\"getIcon(getValue(row, header.propertyName), i)!\"\n [color]=\"getColor(getValue(row, header.propertyName), i)\"\n >\n </smart-icon>\n </div>\n </div>\n <div *ngIf=\"isImageResource(row, header.propertyName)\">\n <smart-icon\n [icon]=\"getImageResourceIcon(row, header.propertyName)\"\n [color]=\"getImageResourceColor(row, header.propertyName)\"\n >\n </smart-icon>\n </div>\n <div\n *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].buttons\"\n class=\"smart-table-buttons-col\"\n >\n <div *ngFor=\"let button of smartTable.customSmartTableHeaders[i].buttons\">\n <div *ngIf=\"showButton(button, row)\" [ngSwitch]=\"button.type\">\n <button\n (click)=\"customButtonClicked($event, button, row)\"\n *ngSwitchCase=\"smartTableButtonType.ICON\"\n mat-icon-button\n color=\"{{ button.color }}\"\n >\n <smart-icon title=\"{{ button.label }}\" [icon]=\"button.icon!\"></smart-icon>\n </button>\n <button\n (click)=\"customButtonClicked($event, button, row)\"\n *ngSwitchCase=\"smartTableButtonType.NORMAL\"\n mat-button\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n {{ button.label }}\n </button>\n <button\n (click)=\"customButtonClicked($event, button, row)\"\n *ngSwitchCase=\"smartTableButtonType.RAISED\"\n mat-raised-button\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n {{ button.label }}\n </button>\n <!------ MENU ------>\n <div *ngSwitchCase=\"smartTableButtonType.MENU\" class=\"menu-button\">\n <!------ DEFAULT_ACTION_COLUMN ID TOOLBAR ------>\n <smart-ui-action-toolbar\n [uiActionModels]=\"getRowColumnAction(element, defaultActionToolbarId)\"\n ></smart-ui-action-toolbar>\n\n <!------ GENERIC HAMBURGER ------>\n @if (shouldShowMenuButton(element)) {\n <smart-ui-action-toolbar\n [uiActionModels]=\"getRowMenuActionModelArray(element)\"\n ></smart-ui-action-toolbar>\n }\n <!------ MENU ------>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].icon\">\n <smart-icon\n *ngIf=\"smartTable.customSmartTableHeaders[i].icon?.icon\"\n [ngClass]=\"smartTable.customSmartTableHeaders[i].icon?.cssClass ?? ''\"\n [color]=\"smartTable.customSmartTableHeaders[i].icon?.color\"\n [icon]=\"smartTable.customSmartTableHeaders[i].icon!.icon\"\n >\n </smart-icon>\n </div>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].translator !== undefined\n \"\n >\n {{ smartTable.customSmartTableHeaders[i].translator!(getValue(row, header.propertyName)) }}\n </div>\n <div\n *ngIf=\"\n !smartTable.customSmartTableHeaders ||\n (smartTable.customSmartTableHeaders &&\n !smartTable.customSmartTableHeaders[i].properties &&\n !smartTable.customSmartTableHeaders[i].icon &&\n !smartTable.customSmartTableHeaders[i].buttons &&\n !smartTable.customSmartTableHeaders[i].translator &&\n !(smartTable.customSmartTableHeaders[i].propertyName === 'select') &&\n !(smartTable.customSmartTableHeaders[i].propertyName === 'expand'))\n \"\n >\n <smart-icon\n *ngIf=\"header.propertyName === 'icon'\"\n [icon]=\"getValue(row, header.propertyName)!\"\n >\n </smart-icon>\n <img\n *ngIf=\"header.propertyName === 'img'\"\n [src]=\"getValue(row, header.propertyName)\"\n alt=\"\"\n class=\"smarttableImg\"\n />\n <div\n *ngIf=\"\n header.propertyName !== 'icon' &&\n header.propertyName !== 'img' &&\n header.propertyName !== 'option' &&\n header.propertyName !== 'button'\n \"\n [innerHtml]=\"getValue(row, header.propertyName)\"\n ></div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".mobileTable{display:flex;flex-direction:column}.mobileTableRow{display:flex;flex-direction:column;border-bottom:1px solid #ccc;padding:.5rem;gap:.5rem}.mobileTableCell{display:flex;flex-direction:column;gap:.25rem}.mobileTableCellHeader{font-weight:700;color:var(--primary-color)}.selected{background-color:var(--primary-light-color)}.mat-mdc-menu-item[disabled]{cursor:default!important}\n"], dependencies: [{ kind: "directive", type: SmartTooltipDirective, selector: "[smartTooltip]", inputs: ["smartTooltip"] }, { 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: i4$3.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { 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: "pipe", type: SmartDateTimePipe, name: "smartDateTime" }, { kind: "pipe", type: SmartDatePipe, name: "smartDate" }, { kind: "pipe", type: SmartTimePipe, name: "smartTime" }] }); }
|
|
12098
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: MobileTableComponent, selector: "lib-mobile-table", usesInheritance: true, ngImport: i0, template: "<div class=\"mobileTable\">\n <div\n class=\"mobileTableRow\"\n *ngFor=\"let row of smartTable.tableRows\"\n [ngClass]=\"getRowClasses(row)\"\n [ngStyle]=\"getRowStyles(row)\"\n [attr.data-testid]=\"row?.id ?? null\"\n >\n <div\n class=\"mobileTableCell\"\n *ngFor=\"let header of smartTable.customSmartTableHeaders; let i = index\"\n (click)=\"handleOnRowClick(row)\"\n (dblclick)=\"handleOnRowDoubleClick($event, row)\"\n >\n <div class=\"mobileTableCellHeader\" [attr.data-testid]=\"header.propertyName\">\n {{ header.label }}\n </div>\n\n <mat-checkbox\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].propertyName === 'select'\n \"\n (click)=\"$event.stopPropagation()\"\n (change)=\"\n $event\n ? setSelection(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(row, smartTable.selectionProperty)\n : row\n )\n : null\n \"\n [disabled]=\"isDisabled(row)\"\n [checked]=\"\n smartTable.selection!.isSelected(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(row, smartTable.selectionProperty)\n : row\n )\n \"\n [aria-label]=\"\n checkboxLabel(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(row, smartTable.selectionProperty)\n : row\n )\n \"\n >\n </mat-checkbox>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].properties\n \"\n >\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATETIME\">\n {{\n getValue(row, header.propertyName)\n | smartDateTime: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATE\">\n {{\n getValue(row, header.propertyName)\n | smartDate: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().TIME\">\n {{\n getValue(row, header.propertyName)\n | smartTime: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().CHECKBOX\">\n <mat-checkbox\n [disabled]=\"true\"\n [checked]=\"getValue(row, header.propertyName)\"\n ></mat-checkbox>\n </div>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders[i].properties?.type === type().ICON &&\n smartTable.customSmartTableHeaders[i].properties?.icons?.length\n \"\n >\n <smart-icon\n [smartTooltip]=\"getToolTip(row, i)\"\n [icon]=\"getIcon(getValue(row, header.propertyName), i)!\"\n [color]=\"getColor(getValue(row, header.propertyName), i)\"\n >\n </smart-icon>\n </div>\n </div>\n <div *ngIf=\"isImageResource(row, header.propertyName)\">\n <smart-icon\n [icon]=\"getImageResourceIcon(row, header.propertyName)\"\n [color]=\"getImageResourceColor(row, header.propertyName)\"\n >\n </smart-icon>\n </div>\n <div\n *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].buttons\"\n class=\"smart-table-buttons-col\"\n >\n <div *ngFor=\"let button of smartTable.customSmartTableHeaders[i].buttons\">\n <div *ngIf=\"showButton(button, row)\" [ngSwitch]=\"button.type\">\n <button\n (click)=\"customButtonClicked($event, button, row)\"\n *ngSwitchCase=\"smartTableButtonType.ICON\"\n mat-icon-button\n color=\"{{ button.color }}\"\n >\n <smart-icon title=\"{{ button.label }}\" [icon]=\"button.icon!\"></smart-icon>\n </button>\n <button\n (click)=\"customButtonClicked($event, button, row)\"\n *ngSwitchCase=\"smartTableButtonType.NORMAL\"\n mat-button\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n {{ button.label }}\n </button>\n <button\n (click)=\"customButtonClicked($event, button, row)\"\n *ngSwitchCase=\"smartTableButtonType.RAISED\"\n mat-raised-button\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n {{ button.label }}\n </button>\n <!------ MENU ------>\n <div *ngSwitchCase=\"smartTableButtonType.MENU\" class=\"menu-button\">\n <!------ DEFAULT_ACTION_COLUMN ID TOOLBAR ------>\n <smart-ui-action-toolbar\n [uiActionModels]=\"getRowColumnAction(element, defaultActionToolbarId)\"\n ></smart-ui-action-toolbar>\n\n <!------ GENERIC HAMBURGER ------>\n @if (shouldShowMenuButton(element)) {\n <smart-ui-action-toolbar\n [uiActionModels]=\"getMenuActions(element)\"\n ></smart-ui-action-toolbar>\n }\n <!------ MENU ------>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].icon\">\n <smart-icon\n *ngIf=\"smartTable.customSmartTableHeaders[i].icon?.icon\"\n [ngClass]=\"smartTable.customSmartTableHeaders[i].icon?.cssClass ?? ''\"\n [color]=\"smartTable.customSmartTableHeaders[i].icon?.color\"\n [icon]=\"smartTable.customSmartTableHeaders[i].icon!.icon\"\n >\n </smart-icon>\n </div>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].translator !== undefined\n \"\n >\n {{ smartTable.customSmartTableHeaders[i].translator!(getValue(row, header.propertyName)) }}\n </div>\n <div\n *ngIf=\"\n !smartTable.customSmartTableHeaders ||\n (smartTable.customSmartTableHeaders &&\n !smartTable.customSmartTableHeaders[i].properties &&\n !smartTable.customSmartTableHeaders[i].icon &&\n !smartTable.customSmartTableHeaders[i].buttons &&\n !smartTable.customSmartTableHeaders[i].translator &&\n !(smartTable.customSmartTableHeaders[i].propertyName === 'select') &&\n !(smartTable.customSmartTableHeaders[i].propertyName === 'expand'))\n \"\n >\n <smart-icon\n *ngIf=\"header.propertyName === 'icon'\"\n [icon]=\"getValue(row, header.propertyName)!\"\n >\n </smart-icon>\n <img\n *ngIf=\"header.propertyName === 'img'\"\n [src]=\"getValue(row, header.propertyName)\"\n alt=\"\"\n class=\"smarttableImg\"\n />\n <div\n *ngIf=\"\n header.propertyName !== 'icon' &&\n header.propertyName !== 'img' &&\n header.propertyName !== 'option' &&\n header.propertyName !== 'button'\n \"\n [innerHtml]=\"getValue(row, header.propertyName)\"\n ></div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".mobileTable{display:flex;flex-direction:column}.mobileTableRow{display:flex;flex-direction:column;border-bottom:1px solid #ccc;padding:.5rem;gap:.5rem}.mobileTableCell{display:flex;flex-direction:column;gap:.25rem}.mobileTableCellHeader{font-weight:700;color:var(--primary-color)}.selected{background-color:var(--primary-light-color)}.mat-mdc-menu-item[disabled]{cursor:default!important}\n"], dependencies: [{ kind: "directive", type: SmartTooltipDirective, selector: "[smartTooltip]", inputs: ["smartTooltip"] }, { 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: i4$3.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i2$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { 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: "pipe", type: SmartDateTimePipe, name: "smartDateTime" }, { kind: "pipe", type: SmartDatePipe, name: "smartDate" }, { kind: "pipe", type: SmartTimePipe, name: "smartTime" }] }); }
|
|
12126
12099
|
}
|
|
12127
12100
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: MobileTableComponent, decorators: [{
|
|
12128
12101
|
type: Component,
|
|
12129
|
-
args: [{ selector: 'lib-mobile-table', template: "<div class=\"mobileTable\">\n <div\n class=\"mobileTableRow\"\n *ngFor=\"let row of smartTable.tableRows\"\n [ngClass]=\"getRowClasses(row)\"\n [ngStyle]=\"getRowStyles(row)\"\n [attr.data-testid]=\"row?.id ?? null\"\n >\n <div\n class=\"mobileTableCell\"\n *ngFor=\"let header of smartTable.customSmartTableHeaders; let i = index\"\n (click)=\"handleOnRowClick(row)\"\n (dblclick)=\"handleOnRowDoubleClick($event, row)\"\n >\n <div class=\"mobileTableCellHeader\" [attr.data-testid]=\"header.propertyName\">\n {{ header.label }}\n </div>\n\n <mat-checkbox\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].propertyName === 'select'\n \"\n (click)=\"$event.stopPropagation()\"\n (change)=\"\n $event\n ? setSelection(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(row, smartTable.selectionProperty)\n : row\n )\n : null\n \"\n [disabled]=\"isDisabled(row)\"\n [checked]=\"\n smartTable.selection!.isSelected(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(row, smartTable.selectionProperty)\n : row\n )\n \"\n [aria-label]=\"\n checkboxLabel(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(row, smartTable.selectionProperty)\n : row\n )\n \"\n >\n </mat-checkbox>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].properties\n \"\n >\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATETIME\">\n {{\n getValue(row, header.propertyName)\n | smartDateTime: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATE\">\n {{\n getValue(row, header.propertyName)\n | smartDate: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().TIME\">\n {{\n getValue(row, header.propertyName)\n | smartTime: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().CHECKBOX\">\n <mat-checkbox\n [disabled]=\"true\"\n [checked]=\"getValue(row, header.propertyName)\"\n ></mat-checkbox>\n </div>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders[i].properties?.type === type().ICON &&\n smartTable.customSmartTableHeaders[i].properties?.icons?.length\n \"\n >\n <smart-icon\n [smartTooltip]=\"getToolTip(row, i)\"\n [icon]=\"getIcon(getValue(row, header.propertyName), i)!\"\n [color]=\"getColor(getValue(row, header.propertyName), i)\"\n >\n </smart-icon>\n </div>\n </div>\n <div *ngIf=\"isImageResource(row, header.propertyName)\">\n <smart-icon\n [icon]=\"getImageResourceIcon(row, header.propertyName)\"\n [color]=\"getImageResourceColor(row, header.propertyName)\"\n >\n </smart-icon>\n </div>\n <div\n *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].buttons\"\n class=\"smart-table-buttons-col\"\n >\n <div *ngFor=\"let button of smartTable.customSmartTableHeaders[i].buttons\">\n <div *ngIf=\"showButton(button, row)\" [ngSwitch]=\"button.type\">\n <button\n (click)=\"customButtonClicked($event, button, row)\"\n *ngSwitchCase=\"smartTableButtonType.ICON\"\n mat-icon-button\n color=\"{{ button.color }}\"\n >\n <smart-icon title=\"{{ button.label }}\" [icon]=\"button.icon!\"></smart-icon>\n </button>\n <button\n (click)=\"customButtonClicked($event, button, row)\"\n *ngSwitchCase=\"smartTableButtonType.NORMAL\"\n mat-button\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n {{ button.label }}\n </button>\n <button\n (click)=\"customButtonClicked($event, button, row)\"\n *ngSwitchCase=\"smartTableButtonType.RAISED\"\n mat-raised-button\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n {{ button.label }}\n </button>\n <!------ MENU ------>\n <div *ngSwitchCase=\"smartTableButtonType.MENU\" class=\"menu-button\">\n <!------ DEFAULT_ACTION_COLUMN ID TOOLBAR ------>\n <smart-ui-action-toolbar\n [uiActionModels]=\"getRowColumnAction(element, defaultActionToolbarId)\"\n ></smart-ui-action-toolbar>\n\n <!------ GENERIC HAMBURGER ------>\n @if (shouldShowMenuButton(element)) {\n <smart-ui-action-toolbar\n [uiActionModels]=\"
|
|
12102
|
+
args: [{ selector: 'lib-mobile-table', template: "<div class=\"mobileTable\">\n <div\n class=\"mobileTableRow\"\n *ngFor=\"let row of smartTable.tableRows\"\n [ngClass]=\"getRowClasses(row)\"\n [ngStyle]=\"getRowStyles(row)\"\n [attr.data-testid]=\"row?.id ?? null\"\n >\n <div\n class=\"mobileTableCell\"\n *ngFor=\"let header of smartTable.customSmartTableHeaders; let i = index\"\n (click)=\"handleOnRowClick(row)\"\n (dblclick)=\"handleOnRowDoubleClick($event, row)\"\n >\n <div class=\"mobileTableCellHeader\" [attr.data-testid]=\"header.propertyName\">\n {{ header.label }}\n </div>\n\n <mat-checkbox\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].propertyName === 'select'\n \"\n (click)=\"$event.stopPropagation()\"\n (change)=\"\n $event\n ? setSelection(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(row, smartTable.selectionProperty)\n : row\n )\n : null\n \"\n [disabled]=\"isDisabled(row)\"\n [checked]=\"\n smartTable.selection!.isSelected(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(row, smartTable.selectionProperty)\n : row\n )\n \"\n [aria-label]=\"\n checkboxLabel(\n smartTable.selectionProperty\n ? smartTable.getValueDeeply(row, smartTable.selectionProperty)\n : row\n )\n \"\n >\n </mat-checkbox>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].properties\n \"\n >\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATETIME\">\n {{\n getValue(row, header.propertyName)\n | smartDateTime: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().DATE\">\n {{\n getValue(row, header.propertyName)\n | smartDate: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().TIME\">\n {{\n getValue(row, header.propertyName)\n | smartTime: smartTable.customSmartTableHeaders[i].properties?.dateFormat\n }}\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders[i].properties?.type === type().CHECKBOX\">\n <mat-checkbox\n [disabled]=\"true\"\n [checked]=\"getValue(row, header.propertyName)\"\n ></mat-checkbox>\n </div>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders[i].properties?.type === type().ICON &&\n smartTable.customSmartTableHeaders[i].properties?.icons?.length\n \"\n >\n <smart-icon\n [smartTooltip]=\"getToolTip(row, i)\"\n [icon]=\"getIcon(getValue(row, header.propertyName), i)!\"\n [color]=\"getColor(getValue(row, header.propertyName), i)\"\n >\n </smart-icon>\n </div>\n </div>\n <div *ngIf=\"isImageResource(row, header.propertyName)\">\n <smart-icon\n [icon]=\"getImageResourceIcon(row, header.propertyName)\"\n [color]=\"getImageResourceColor(row, header.propertyName)\"\n >\n </smart-icon>\n </div>\n <div\n *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].buttons\"\n class=\"smart-table-buttons-col\"\n >\n <div *ngFor=\"let button of smartTable.customSmartTableHeaders[i].buttons\">\n <div *ngIf=\"showButton(button, row)\" [ngSwitch]=\"button.type\">\n <button\n (click)=\"customButtonClicked($event, button, row)\"\n *ngSwitchCase=\"smartTableButtonType.ICON\"\n mat-icon-button\n color=\"{{ button.color }}\"\n >\n <smart-icon title=\"{{ button.label }}\" [icon]=\"button.icon!\"></smart-icon>\n </button>\n <button\n (click)=\"customButtonClicked($event, button, row)\"\n *ngSwitchCase=\"smartTableButtonType.NORMAL\"\n mat-button\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n {{ button.label }}\n </button>\n <button\n (click)=\"customButtonClicked($event, button, row)\"\n *ngSwitchCase=\"smartTableButtonType.RAISED\"\n mat-raised-button\n color=\"{{ button.color }}\"\n >\n <smart-icon *ngIf=\"button.icon\" [icon]=\"button.icon\"></smart-icon>\n {{ button.label }}\n </button>\n <!------ MENU ------>\n <div *ngSwitchCase=\"smartTableButtonType.MENU\" class=\"menu-button\">\n <!------ DEFAULT_ACTION_COLUMN ID TOOLBAR ------>\n <smart-ui-action-toolbar\n [uiActionModels]=\"getRowColumnAction(element, defaultActionToolbarId)\"\n ></smart-ui-action-toolbar>\n\n <!------ GENERIC HAMBURGER ------>\n @if (shouldShowMenuButton(element)) {\n <smart-ui-action-toolbar\n [uiActionModels]=\"getMenuActions(element)\"\n ></smart-ui-action-toolbar>\n }\n <!------ MENU ------>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"smartTable.customSmartTableHeaders && smartTable.customSmartTableHeaders[i].icon\">\n <smart-icon\n *ngIf=\"smartTable.customSmartTableHeaders[i].icon?.icon\"\n [ngClass]=\"smartTable.customSmartTableHeaders[i].icon?.cssClass ?? ''\"\n [color]=\"smartTable.customSmartTableHeaders[i].icon?.color\"\n [icon]=\"smartTable.customSmartTableHeaders[i].icon!.icon\"\n >\n </smart-icon>\n </div>\n <div\n *ngIf=\"\n smartTable.customSmartTableHeaders &&\n smartTable.customSmartTableHeaders[i].translator !== undefined\n \"\n >\n {{ smartTable.customSmartTableHeaders[i].translator!(getValue(row, header.propertyName)) }}\n </div>\n <div\n *ngIf=\"\n !smartTable.customSmartTableHeaders ||\n (smartTable.customSmartTableHeaders &&\n !smartTable.customSmartTableHeaders[i].properties &&\n !smartTable.customSmartTableHeaders[i].icon &&\n !smartTable.customSmartTableHeaders[i].buttons &&\n !smartTable.customSmartTableHeaders[i].translator &&\n !(smartTable.customSmartTableHeaders[i].propertyName === 'select') &&\n !(smartTable.customSmartTableHeaders[i].propertyName === 'expand'))\n \"\n >\n <smart-icon\n *ngIf=\"header.propertyName === 'icon'\"\n [icon]=\"getValue(row, header.propertyName)!\"\n >\n </smart-icon>\n <img\n *ngIf=\"header.propertyName === 'img'\"\n [src]=\"getValue(row, header.propertyName)\"\n alt=\"\"\n class=\"smarttableImg\"\n />\n <div\n *ngIf=\"\n header.propertyName !== 'icon' &&\n header.propertyName !== 'img' &&\n header.propertyName !== 'option' &&\n header.propertyName !== 'button'\n \"\n [innerHtml]=\"getValue(row, header.propertyName)\"\n ></div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".mobileTable{display:flex;flex-direction:column}.mobileTableRow{display:flex;flex-direction:column;border-bottom:1px solid #ccc;padding:.5rem;gap:.5rem}.mobileTableCell{display:flex;flex-direction:column;gap:.25rem}.mobileTableCellHeader{font-weight:700;color:var(--primary-color)}.selected{background-color:var(--primary-light-color)}.mat-mdc-menu-item[disabled]{cursor:default!important}\n"] }]
|
|
12130
12103
|
}], ctorParameters: () => [{ type: ComponentFactoryService }] });
|
|
12131
12104
|
|
|
12132
12105
|
class SmarttableComponent {
|
|
@@ -21274,6 +21247,27 @@ class SmartComponentLayoutUtility {
|
|
|
21274
21247
|
}
|
|
21275
21248
|
return result;
|
|
21276
21249
|
}
|
|
21250
|
+
/**
|
|
21251
|
+
* The editors of the filter widgets in the layout tree. A widget whose builder model has not
|
|
21252
|
+
* arrived yet has no editor and is left out until it does.
|
|
21253
|
+
*/
|
|
21254
|
+
static getFilters(comp) {
|
|
21255
|
+
const result = [];
|
|
21256
|
+
if (comp.components) {
|
|
21257
|
+
const children = comp.components
|
|
21258
|
+
.map((c) => SmartComponentLayoutUtility.getFilters(c))
|
|
21259
|
+
.reduce((acc, value) => acc.concat(value), []);
|
|
21260
|
+
result.push(...children);
|
|
21261
|
+
}
|
|
21262
|
+
const expandable = this.getExpandableComponent(comp);
|
|
21263
|
+
if (expandable) {
|
|
21264
|
+
result.push(...this.getFilters(expandable));
|
|
21265
|
+
}
|
|
21266
|
+
if (comp.smartFilterComponent?.contentComponent) {
|
|
21267
|
+
result.push(comp.smartFilterComponent.contentComponent);
|
|
21268
|
+
}
|
|
21269
|
+
return result;
|
|
21270
|
+
}
|
|
21277
21271
|
static getTrees(comp) {
|
|
21278
21272
|
let result = [];
|
|
21279
21273
|
if (comp.components) {
|
|
@@ -22367,501 +22361,389 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
22367
22361
|
type: Output
|
|
22368
22362
|
}] } });
|
|
22369
22363
|
|
|
22370
|
-
|
|
22371
|
-
|
|
22372
|
-
|
|
22373
|
-
|
|
22374
|
-
|
|
22375
|
-
|
|
22376
|
-
|
|
22364
|
+
/**
|
|
22365
|
+
* Custom HttpParameterCodec
|
|
22366
|
+
* Workaround for https://github.com/angular/angular/issues/18261
|
|
22367
|
+
*/
|
|
22368
|
+
class CustomHttpParameterCodec {
|
|
22369
|
+
encodeKey(k) {
|
|
22370
|
+
return encodeURIComponent(k);
|
|
22377
22371
|
}
|
|
22378
|
-
|
|
22379
|
-
return (
|
|
22380
|
-
(this.smartComponentLayout?.direction ?? 'vertical') === 'vertical');
|
|
22372
|
+
encodeValue(v) {
|
|
22373
|
+
return encodeURIComponent(v);
|
|
22381
22374
|
}
|
|
22382
|
-
|
|
22383
|
-
|
|
22384
|
-
if (vcRef) {
|
|
22385
|
-
this.tryRegisterEmbeddedSlot();
|
|
22386
|
-
}
|
|
22375
|
+
decodeKey(k) {
|
|
22376
|
+
return decodeURIComponent(k);
|
|
22387
22377
|
}
|
|
22388
|
-
|
|
22389
|
-
|
|
22390
|
-
this.viewContext = viewContext;
|
|
22391
|
-
this.element = element;
|
|
22392
|
-
this.renderer = renderer;
|
|
22393
|
-
this._destroy$ = new Subject();
|
|
22394
|
-
this.appRef = inject(ApplicationRef);
|
|
22395
|
-
this.formRef = viewChild(SmartformComponent);
|
|
22396
|
-
this.onFormChange = effect(() => {
|
|
22397
|
-
const form = this.formRef();
|
|
22398
|
-
if (this.smartForm && form && this.parentSmartComponent) {
|
|
22399
|
-
this.parentSmartComponent.handleDataChangeSubscriptions(form);
|
|
22400
|
-
this.parentSmartComponent.handleUploadCallback(form);
|
|
22401
|
-
form.markAllWidgetsForChangeDetection();
|
|
22402
|
-
}
|
|
22403
|
-
});
|
|
22404
|
-
this.pendingOrphanCleanup = false;
|
|
22405
|
-
this.embeddedSlotActive = false;
|
|
22378
|
+
decodeValue(v) {
|
|
22379
|
+
return decodeURIComponent(v);
|
|
22406
22380
|
}
|
|
22407
|
-
|
|
22408
|
-
|
|
22409
|
-
|
|
22410
|
-
|
|
22411
|
-
|
|
22412
|
-
|
|
22413
|
-
|
|
22414
|
-
|
|
22415
|
-
|
|
22416
|
-
|
|
22417
|
-
|
|
22381
|
+
}
|
|
22382
|
+
|
|
22383
|
+
const BASE_PATH = new InjectionToken('basePath');
|
|
22384
|
+
const COLLECTION_FORMATS = {
|
|
22385
|
+
'csv': ',',
|
|
22386
|
+
'tsv': ' ',
|
|
22387
|
+
'ssv': ' ',
|
|
22388
|
+
'pipes': '|'
|
|
22389
|
+
};
|
|
22390
|
+
|
|
22391
|
+
class Configuration {
|
|
22392
|
+
constructor(configurationParameters = {}) {
|
|
22393
|
+
this.apiKeys = configurationParameters.apiKeys;
|
|
22394
|
+
this.username = configurationParameters.username;
|
|
22395
|
+
this.password = configurationParameters.password;
|
|
22396
|
+
this.accessToken = configurationParameters.accessToken;
|
|
22397
|
+
this.basePath = configurationParameters.basePath;
|
|
22398
|
+
this.withCredentials = configurationParameters.withCredentials;
|
|
22399
|
+
this.encoder = configurationParameters.encoder;
|
|
22400
|
+
if (configurationParameters.encodeParam) {
|
|
22401
|
+
this.encodeParam = configurationParameters.encodeParam;
|
|
22418
22402
|
}
|
|
22419
|
-
|
|
22420
|
-
.
|
|
22421
|
-
.subscribe((list) => {
|
|
22422
|
-
this.setGridComponent(list.first);
|
|
22423
|
-
});
|
|
22424
|
-
if (this.smartMapList?.first) {
|
|
22425
|
-
this.setMapComponent(this.smartMapList?.first);
|
|
22403
|
+
else {
|
|
22404
|
+
this.encodeParam = param => this.defaultEncodeParam(param);
|
|
22426
22405
|
}
|
|
22427
|
-
|
|
22428
|
-
this.
|
|
22429
|
-
});
|
|
22430
|
-
if (this.smartDiagramList?.first) {
|
|
22431
|
-
this.setDiagramComponent(this.smartDiagramList?.first);
|
|
22406
|
+
if (configurationParameters.credentials) {
|
|
22407
|
+
this.credentials = configurationParameters.credentials;
|
|
22432
22408
|
}
|
|
22433
|
-
|
|
22434
|
-
this.
|
|
22435
|
-
});
|
|
22436
|
-
this.smartFilterList.changes
|
|
22437
|
-
.pipe(takeUntil(this._destroy$))
|
|
22438
|
-
.subscribe((list) => {
|
|
22439
|
-
if (!this.smartFilterComponent) {
|
|
22440
|
-
this.smartFilterComponent = list.first;
|
|
22441
|
-
this.bindFilter();
|
|
22442
|
-
}
|
|
22443
|
-
});
|
|
22444
|
-
if (this.toolbarList?.first) {
|
|
22445
|
-
this.setToolbarComponent(this.toolbarList?.first);
|
|
22409
|
+
else {
|
|
22410
|
+
this.credentials = {};
|
|
22446
22411
|
}
|
|
22447
|
-
this.toolbarList.changes
|
|
22448
|
-
.pipe(takeUntil(this._destroy$))
|
|
22449
|
-
.subscribe((list) => {
|
|
22450
|
-
this.setToolbarComponent(list.first);
|
|
22451
|
-
});
|
|
22452
|
-
this.setUp();
|
|
22453
22412
|
}
|
|
22454
|
-
|
|
22455
|
-
|
|
22456
|
-
|
|
22457
|
-
|
|
22413
|
+
/**
|
|
22414
|
+
* Select the correct content-type to use for a request.
|
|
22415
|
+
* Uses {@link Configuration#isJsonMime} to determine the correct content-type.
|
|
22416
|
+
* If no content type is found return the first found type if the contentTypes is not empty
|
|
22417
|
+
* @param contentTypes - the array of content types that are available for selection
|
|
22418
|
+
* @returns the selected content-type or <code>undefined</code> if no selection could be made.
|
|
22419
|
+
*/
|
|
22420
|
+
selectHeaderContentType(contentTypes) {
|
|
22421
|
+
if (contentTypes.length === 0) {
|
|
22422
|
+
return undefined;
|
|
22423
|
+
}
|
|
22424
|
+
const type = contentTypes.find((x) => this.isJsonMime(x));
|
|
22425
|
+
if (type === undefined) {
|
|
22426
|
+
return contentTypes[0];
|
|
22458
22427
|
}
|
|
22428
|
+
return type;
|
|
22459
22429
|
}
|
|
22460
|
-
|
|
22461
|
-
|
|
22462
|
-
|
|
22430
|
+
/**
|
|
22431
|
+
* Select the correct accept content-type to use for a request.
|
|
22432
|
+
* Uses {@link Configuration#isJsonMime} to determine the correct accept content-type.
|
|
22433
|
+
* If no content type is found return the first found type if the contentTypes is not empty
|
|
22434
|
+
* @param accepts - the array of content types that are available for selection.
|
|
22435
|
+
* @returns the selected content-type or <code>undefined</code> if no selection could be made.
|
|
22436
|
+
*/
|
|
22437
|
+
selectHeaderAccept(accepts) {
|
|
22438
|
+
if (accepts.length === 0) {
|
|
22439
|
+
return undefined;
|
|
22463
22440
|
}
|
|
22464
|
-
this.
|
|
22465
|
-
|
|
22441
|
+
const type = accepts.find((x) => this.isJsonMime(x));
|
|
22442
|
+
if (type === undefined) {
|
|
22443
|
+
return accepts[0];
|
|
22444
|
+
}
|
|
22445
|
+
return type;
|
|
22466
22446
|
}
|
|
22467
|
-
|
|
22468
|
-
|
|
22447
|
+
/**
|
|
22448
|
+
* Check if the given MIME is a JSON MIME.
|
|
22449
|
+
* JSON MIME examples:
|
|
22450
|
+
* application/json
|
|
22451
|
+
* application/json; charset=UTF8
|
|
22452
|
+
* APPLICATION/JSON
|
|
22453
|
+
* application/vnd.company+json
|
|
22454
|
+
* @param mime - MIME (Multipurpose Internet Mail Extensions)
|
|
22455
|
+
* @return True if the given MIME is JSON, false otherwise.
|
|
22456
|
+
*/
|
|
22457
|
+
isJsonMime(mime) {
|
|
22458
|
+
const jsonMime = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i');
|
|
22459
|
+
return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');
|
|
22469
22460
|
}
|
|
22470
|
-
|
|
22471
|
-
|
|
22472
|
-
|
|
22473
|
-
|
|
22474
|
-
|
|
22475
|
-
|
|
22476
|
-
|
|
22477
|
-
|
|
22461
|
+
lookupCredential(key) {
|
|
22462
|
+
const value = this.credentials[key];
|
|
22463
|
+
return typeof value === 'function'
|
|
22464
|
+
? value()
|
|
22465
|
+
: value;
|
|
22466
|
+
}
|
|
22467
|
+
defaultEncodeParam(param) {
|
|
22468
|
+
// This implementation exists as fallback for missing configuration
|
|
22469
|
+
// and for backwards compatibility to older typescript-angular generator versions.
|
|
22470
|
+
// It only works for the 'simple' parameter style.
|
|
22471
|
+
// Date-handling only works for the 'date-time' format.
|
|
22472
|
+
// All other styles and Date-formats are probably handled incorrectly.
|
|
22473
|
+
//
|
|
22474
|
+
// But: if that's all you need (i.e.: the most common use-case): no need for customization!
|
|
22475
|
+
const value = param.dataFormat === 'date-time' && param.value instanceof Date
|
|
22476
|
+
? param.value.toISOString()
|
|
22477
|
+
: param.value;
|
|
22478
|
+
return encodeURIComponent(String(value));
|
|
22479
|
+
}
|
|
22480
|
+
}
|
|
22481
|
+
|
|
22482
|
+
/**
|
|
22483
|
+
* Filter API 2
|
|
22484
|
+
* Filter API 2
|
|
22485
|
+
*
|
|
22486
|
+
* The version of the OpenAPI document: 1.0.0
|
|
22487
|
+
* Contact: info@it4all.hu
|
|
22488
|
+
*
|
|
22489
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
22490
|
+
* https://openapi-generator.tech
|
|
22491
|
+
* Do not edit the class manually.
|
|
22492
|
+
*/
|
|
22493
|
+
/* tslint:disable:no-unused-variable member-ordering */
|
|
22494
|
+
class FilterService {
|
|
22495
|
+
constructor(httpClient, basePath, configuration) {
|
|
22496
|
+
this.httpClient = httpClient;
|
|
22497
|
+
this.basePath = 'http://localhost';
|
|
22498
|
+
this.defaultHeaders = new HttpHeaders();
|
|
22499
|
+
this.configuration = new Configuration();
|
|
22500
|
+
if (configuration) {
|
|
22501
|
+
this.configuration = configuration;
|
|
22478
22502
|
}
|
|
22479
|
-
|
|
22480
|
-
|
|
22481
|
-
|
|
22482
|
-
|
|
22483
|
-
|
|
22484
|
-
|
|
22485
|
-
|
|
22486
|
-
|
|
22487
|
-
if (!this.parentLayoutComponent && this.uuid) {
|
|
22488
|
-
this.viewContext.detachAllEmbeddedViews(this.uuid);
|
|
22489
|
-
this.pendingOrphanCleanup = true;
|
|
22503
|
+
if (typeof this.configuration.basePath !== 'string') {
|
|
22504
|
+
if (Array.isArray(basePath) && basePath.length > 0) {
|
|
22505
|
+
basePath = basePath[0];
|
|
22506
|
+
}
|
|
22507
|
+
if (typeof basePath !== 'string') {
|
|
22508
|
+
basePath = this.basePath;
|
|
22509
|
+
}
|
|
22510
|
+
this.configuration.basePath = basePath;
|
|
22490
22511
|
}
|
|
22491
|
-
this.
|
|
22492
|
-
|
|
22493
|
-
|
|
22494
|
-
|
|
22495
|
-
|
|
22496
|
-
|
|
22497
|
-
this.smartGrid = undefined;
|
|
22498
|
-
this.smartGridComponent = undefined;
|
|
22499
|
-
this.smartFilter = undefined;
|
|
22500
|
-
this.smartFilterComponent = undefined;
|
|
22501
|
-
this.smartGrid = undefined;
|
|
22502
|
-
this.toolbarId = undefined;
|
|
22503
|
-
this.toolbar = undefined;
|
|
22504
|
-
// null out toolbar?
|
|
22505
|
-
this.mapId = undefined;
|
|
22506
|
-
this.smartDiagramId = undefined;
|
|
22507
|
-
if (this.embeddedSlotContainerId && this.uuid) {
|
|
22508
|
-
this.viewContext.unregisterEmbeddedSlot(this.uuid, this.embeddedSlotContainerId);
|
|
22512
|
+
this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();
|
|
22513
|
+
}
|
|
22514
|
+
// @ts-ignore
|
|
22515
|
+
addToHttpParams(httpParams, value, key) {
|
|
22516
|
+
if (typeof value === "object" && value instanceof Date === false) {
|
|
22517
|
+
httpParams = this.addToHttpParamsRecursive(httpParams, value);
|
|
22509
22518
|
}
|
|
22510
|
-
|
|
22511
|
-
|
|
22512
|
-
if (this.smartComponentLayout?.expandable) {
|
|
22513
|
-
this.constructExpandableSection();
|
|
22519
|
+
else {
|
|
22520
|
+
httpParams = this.addToHttpParamsRecursive(httpParams, value, key);
|
|
22514
22521
|
}
|
|
22515
|
-
|
|
22516
|
-
|
|
22522
|
+
return httpParams;
|
|
22523
|
+
}
|
|
22524
|
+
addToHttpParamsRecursive(httpParams, value, key) {
|
|
22525
|
+
if (value == null) {
|
|
22526
|
+
return httpParams;
|
|
22517
22527
|
}
|
|
22518
|
-
|
|
22519
|
-
if (
|
|
22520
|
-
this.
|
|
22521
|
-
}
|
|
22522
|
-
else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.FILTER) {
|
|
22523
|
-
console.warn('ComponentWidgetType.FILTER is not supported');
|
|
22524
|
-
// this.constructFilter();
|
|
22525
|
-
}
|
|
22526
|
-
else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.TREE) {
|
|
22527
|
-
this.constructTree();
|
|
22528
|
-
}
|
|
22529
|
-
else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.TOOLBAR) {
|
|
22530
|
-
this.constructToolbar();
|
|
22531
|
-
}
|
|
22532
|
-
else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.MAP) {
|
|
22533
|
-
this.constructMap();
|
|
22534
|
-
}
|
|
22535
|
-
else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.DIAGRAM) {
|
|
22536
|
-
this.construcDiagram();
|
|
22528
|
+
if (typeof value === "object") {
|
|
22529
|
+
if (Array.isArray(value)) {
|
|
22530
|
+
value.forEach(elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));
|
|
22537
22531
|
}
|
|
22538
|
-
else if (
|
|
22539
|
-
|
|
22532
|
+
else if (value instanceof Date) {
|
|
22533
|
+
if (key != null) {
|
|
22534
|
+
httpParams = httpParams.append(key, value.toISOString().substr(0, 10));
|
|
22535
|
+
}
|
|
22536
|
+
else {
|
|
22537
|
+
throw Error("key may not be null if value is Date");
|
|
22538
|
+
}
|
|
22540
22539
|
}
|
|
22541
|
-
|
|
22542
|
-
|
|
22543
|
-
this.parentSmartComponent.initActions();
|
|
22540
|
+
else {
|
|
22541
|
+
Object.keys(value).forEach(k => httpParams = this.addToHttpParamsRecursive(httpParams, value[k], key != null ? `${key}.${k}` : k));
|
|
22544
22542
|
}
|
|
22545
22543
|
}
|
|
22546
|
-
|
|
22547
|
-
|
|
22548
|
-
type() {
|
|
22549
|
-
return ComponentType;
|
|
22550
|
-
}
|
|
22551
|
-
constructExpandableSection() {
|
|
22552
|
-
let data = { ...this.smartComponentLayout };
|
|
22553
|
-
data.expandable = false;
|
|
22554
|
-
this.expandableSection = {
|
|
22555
|
-
title: this.smartComponentLayout?.expandableSectionLabel ?? '',
|
|
22556
|
-
inputs: new Map([
|
|
22557
|
-
['smartComponentLayout', data],
|
|
22558
|
-
['parentSmartComponent', this.parentSmartComponent],
|
|
22559
|
-
['parentLayoutComponent', this.parentLayoutComponent],
|
|
22560
|
-
]),
|
|
22561
|
-
headerToolbarId: this.smartComponentLayout?.expandableSectionHeaderToolbarId,
|
|
22562
|
-
customComponent: SmartComponentLayoutComponent,
|
|
22563
|
-
};
|
|
22564
|
-
}
|
|
22565
|
-
constructForm() {
|
|
22566
|
-
const widgets = this.layoutService.render({
|
|
22567
|
-
layoutDefinitions: this.smartComponentLayout?.form,
|
|
22568
|
-
});
|
|
22569
|
-
if (this.gridRow && !this.gridRow.valueSets && this.parentSmartComponent?.model) {
|
|
22570
|
-
this.gridRow.valueSets = this.parentSmartComponent.model.valueSets;
|
|
22544
|
+
else if (key != null) {
|
|
22545
|
+
httpParams = httpParams.append(key, value);
|
|
22571
22546
|
}
|
|
22572
|
-
|
|
22573
|
-
|
|
22574
|
-
componentModel: this.gridRow ? this.gridRow : this.parentSmartComponent?.model,
|
|
22575
|
-
widgets,
|
|
22576
|
-
};
|
|
22577
|
-
this.bindForm();
|
|
22578
|
-
}
|
|
22579
|
-
getFormLayout() {
|
|
22580
|
-
if (this.smartComponentLayout?.direction) {
|
|
22581
|
-
return this.smartComponentLayout?.direction === LayoutDirection.HORIZONTAL
|
|
22582
|
-
? SmartFormWidgetDirection.ROW
|
|
22583
|
-
: SmartFormWidgetDirection.COL;
|
|
22547
|
+
else {
|
|
22548
|
+
throw Error("key may not be null if value is not object or array");
|
|
22584
22549
|
}
|
|
22585
|
-
return
|
|
22550
|
+
return httpParams;
|
|
22586
22551
|
}
|
|
22587
|
-
|
|
22588
|
-
if (
|
|
22589
|
-
|
|
22590
|
-
this.bindForm();
|
|
22552
|
+
load(uuid, filterIdentifier, observe = 'body', reportProgress = false, options) {
|
|
22553
|
+
if (uuid === null || uuid === undefined) {
|
|
22554
|
+
throw new Error('Required parameter uuid was null or undefined when calling load.');
|
|
22591
22555
|
}
|
|
22592
|
-
|
|
22593
|
-
|
|
22594
|
-
if (this.parentSmartComponent?.useQueryLists) {
|
|
22595
|
-
return;
|
|
22556
|
+
if (filterIdentifier === null || filterIdentifier === undefined) {
|
|
22557
|
+
throw new Error('Required parameter filterIdentifier was null or undefined when calling load.');
|
|
22596
22558
|
}
|
|
22597
|
-
|
|
22598
|
-
|
|
22599
|
-
|
|
22600
|
-
|
|
22559
|
+
let localVarHeaders = this.defaultHeaders;
|
|
22560
|
+
let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
|
|
22561
|
+
if (localVarHttpHeaderAcceptSelected === undefined) {
|
|
22562
|
+
// to determine the Accept header
|
|
22563
|
+
const httpHeaderAccepts = [
|
|
22564
|
+
'application/json'
|
|
22565
|
+
];
|
|
22566
|
+
localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
|
22601
22567
|
}
|
|
22602
|
-
|
|
22603
|
-
|
|
22604
|
-
let result = '';
|
|
22605
|
-
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
22606
|
-
const charactersLength = characters.length;
|
|
22607
|
-
let counter = 0;
|
|
22608
|
-
while (counter < length) {
|
|
22609
|
-
result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
|
22610
|
-
counter += 1;
|
|
22568
|
+
if (localVarHttpHeaderAcceptSelected !== undefined) {
|
|
22569
|
+
localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
|
|
22611
22570
|
}
|
|
22612
|
-
|
|
22613
|
-
|
|
22614
|
-
|
|
22615
|
-
this.smartGrid = {
|
|
22616
|
-
gridIdentifier: this.smartComponentLayout?.widget?.identifier,
|
|
22617
|
-
gridModel: {
|
|
22618
|
-
page: {},
|
|
22619
|
-
},
|
|
22620
|
-
options: {
|
|
22621
|
-
rowUiActionType: GridUiActionType.POPUP_MENU,
|
|
22622
|
-
},
|
|
22623
|
-
layoutDef: SmartLayoutDef.TABLE,
|
|
22624
|
-
paginator: false,
|
|
22625
|
-
layoutComponent: SmartComponentLayoutComponent,
|
|
22626
|
-
layoutUtility: SmartComponentLayoutUtility,
|
|
22627
|
-
};
|
|
22628
|
-
this.bindGrid();
|
|
22629
|
-
}
|
|
22630
|
-
setGridComponent(comp) {
|
|
22631
|
-
if (!this.smartGridComponent) {
|
|
22632
|
-
this.smartGridComponent = comp;
|
|
22633
|
-
this.bindGrid();
|
|
22571
|
+
let localVarHttpContext = options && options.context;
|
|
22572
|
+
if (localVarHttpContext === undefined) {
|
|
22573
|
+
localVarHttpContext = new HttpContext();
|
|
22634
22574
|
}
|
|
22635
|
-
|
|
22636
|
-
|
|
22637
|
-
|
|
22638
|
-
|
|
22639
|
-
|
|
22575
|
+
let responseType_ = 'json';
|
|
22576
|
+
if (localVarHttpHeaderAcceptSelected) {
|
|
22577
|
+
if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
|
|
22578
|
+
responseType_ = 'text';
|
|
22579
|
+
}
|
|
22580
|
+
else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
|
|
22581
|
+
responseType_ = 'json';
|
|
22582
|
+
}
|
|
22583
|
+
else {
|
|
22584
|
+
responseType_ = 'blob';
|
|
22640
22585
|
}
|
|
22641
|
-
return;
|
|
22642
|
-
}
|
|
22643
|
-
if (this.smartGrid && this.smartGridComponent) {
|
|
22644
|
-
this.smartGrid = this.parentSmartComponent?.addGrid(this.smartGrid, {
|
|
22645
|
-
rowUiActionType: GridUiActionType.POPUP_MENU,
|
|
22646
|
-
}, false, this.smartGridComponent);
|
|
22647
22586
|
}
|
|
22587
|
+
let localVarPath = `/filter/${this.configuration.encodeParam({ name: "uuid", value: uuid, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: "uuid" })}/${this.configuration.encodeParam({ name: "filterIdentifier", value: filterIdentifier, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}/load`;
|
|
22588
|
+
return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, {
|
|
22589
|
+
context: localVarHttpContext,
|
|
22590
|
+
responseType: responseType_,
|
|
22591
|
+
withCredentials: this.configuration.withCredentials,
|
|
22592
|
+
headers: localVarHeaders,
|
|
22593
|
+
observe: observe,
|
|
22594
|
+
reportProgress: reportProgress
|
|
22595
|
+
});
|
|
22648
22596
|
}
|
|
22649
|
-
|
|
22650
|
-
|
|
22651
|
-
|
|
22652
|
-
}
|
|
22653
|
-
construcDiagram() {
|
|
22654
|
-
this.smartDiagramId = this.smartComponentLayout?.widget?.identifier;
|
|
22655
|
-
this.bindDiagram();
|
|
22656
|
-
}
|
|
22657
|
-
setMapComponent(comp) {
|
|
22658
|
-
if (!this.smartMapComponent) {
|
|
22659
|
-
this.smartMapComponent = comp;
|
|
22660
|
-
this.bindMap();
|
|
22597
|
+
performWidgetAction(uuid, filterIdentifier, body, observe = 'body', reportProgress = false, options) {
|
|
22598
|
+
if (uuid === null || uuid === undefined) {
|
|
22599
|
+
throw new Error('Required parameter uuid was null or undefined when calling performWidgetAction.');
|
|
22661
22600
|
}
|
|
22662
|
-
|
|
22663
|
-
|
|
22664
|
-
if (!this.smartDiagramComponent) {
|
|
22665
|
-
this.smartDiagramComponent = comp;
|
|
22666
|
-
this.bindDiagram();
|
|
22601
|
+
if (filterIdentifier === null || filterIdentifier === undefined) {
|
|
22602
|
+
throw new Error('Required parameter filterIdentifier was null or undefined when calling performWidgetAction.');
|
|
22667
22603
|
}
|
|
22668
|
-
|
|
22669
|
-
|
|
22670
|
-
if (this.parentSmartComponent.useQueryLists) {
|
|
22671
|
-
return;
|
|
22604
|
+
if (body === null || body === undefined) {
|
|
22605
|
+
throw new Error('Required parameter body was null or undefined when calling performWidgetAction.');
|
|
22672
22606
|
}
|
|
22673
|
-
|
|
22674
|
-
|
|
22675
|
-
|
|
22676
|
-
|
|
22677
|
-
|
|
22607
|
+
let localVarHeaders = this.defaultHeaders;
|
|
22608
|
+
let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
|
|
22609
|
+
if (localVarHttpHeaderAcceptSelected === undefined) {
|
|
22610
|
+
// to determine the Accept header
|
|
22611
|
+
const httpHeaderAccepts = [
|
|
22612
|
+
'application/json'
|
|
22613
|
+
];
|
|
22614
|
+
localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
|
22678
22615
|
}
|
|
22679
|
-
|
|
22680
|
-
|
|
22681
|
-
setToolbarComponent(comp) {
|
|
22682
|
-
this.toolbar = comp;
|
|
22683
|
-
}
|
|
22684
|
-
// NOT USED, DOESN'T WORK
|
|
22685
|
-
// constructFilter(): void {
|
|
22686
|
-
// this.smartFilter = (this.smartComponentLayout!.parentComponent as any).addFilter(
|
|
22687
|
-
// `filter_${this.makeid(5)}`,
|
|
22688
|
-
// this.smartComponentLayout?.widget?.filterExpressionFieldList,
|
|
22689
|
-
// this.smartComponentLayout?.widget?.filterType,
|
|
22690
|
-
// this.smartFilterComponent
|
|
22691
|
-
// );
|
|
22692
|
-
// }
|
|
22693
|
-
bindFilter() {
|
|
22694
|
-
// TODO
|
|
22695
|
-
}
|
|
22696
|
-
constructTree() {
|
|
22697
|
-
if (this.parentSmartComponent?.useQueryLists) {
|
|
22698
|
-
return;
|
|
22616
|
+
if (localVarHttpHeaderAcceptSelected !== undefined) {
|
|
22617
|
+
localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
|
|
22699
22618
|
}
|
|
22700
|
-
|
|
22701
|
-
|
|
22702
|
-
|
|
22703
|
-
constructToolbar() {
|
|
22704
|
-
let toolbarId = this.smartComponentLayout?.widget?.identifier;
|
|
22705
|
-
if (this.toolbarId !== toolbarId) {
|
|
22706
|
-
this.toolbarId = toolbarId;
|
|
22619
|
+
let localVarHttpContext = options && options.context;
|
|
22620
|
+
if (localVarHttpContext === undefined) {
|
|
22621
|
+
localVarHttpContext = new HttpContext();
|
|
22707
22622
|
}
|
|
22708
|
-
|
|
22709
|
-
|
|
22710
|
-
|
|
22623
|
+
// to determine the Content-Type header
|
|
22624
|
+
const consumes = [
|
|
22625
|
+
'application/json'
|
|
22626
|
+
];
|
|
22627
|
+
const httpContentTypeSelected = this.configuration.selectHeaderContentType(consumes);
|
|
22628
|
+
if (httpContentTypeSelected !== undefined) {
|
|
22629
|
+
localVarHeaders = localVarHeaders.set('Content-Type', httpContentTypeSelected);
|
|
22630
|
+
}
|
|
22631
|
+
let responseType_ = 'json';
|
|
22632
|
+
if (localVarHttpHeaderAcceptSelected) {
|
|
22633
|
+
if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
|
|
22634
|
+
responseType_ = 'text';
|
|
22635
|
+
}
|
|
22636
|
+
else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
|
|
22637
|
+
responseType_ = 'json';
|
|
22638
|
+
}
|
|
22639
|
+
else {
|
|
22640
|
+
responseType_ = 'blob';
|
|
22641
|
+
}
|
|
22711
22642
|
}
|
|
22643
|
+
let localVarPath = `/filter/${this.configuration.encodeParam({ name: "uuid", value: uuid, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: "uuid" })}/${this.configuration.encodeParam({ name: "filterIdentifier", value: filterIdentifier, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}/performWidgetAction`;
|
|
22644
|
+
return this.httpClient.request('post', `${this.configuration.basePath}${localVarPath}`, {
|
|
22645
|
+
context: localVarHttpContext,
|
|
22646
|
+
body: body,
|
|
22647
|
+
responseType: responseType_,
|
|
22648
|
+
withCredentials: this.configuration.withCredentials,
|
|
22649
|
+
headers: localVarHeaders,
|
|
22650
|
+
observe: observe,
|
|
22651
|
+
reportProgress: reportProgress
|
|
22652
|
+
});
|
|
22712
22653
|
}
|
|
22713
|
-
|
|
22714
|
-
|
|
22715
|
-
|
|
22716
|
-
|
|
22654
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FilterService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
22655
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FilterService, providedIn: 'root' }); }
|
|
22656
|
+
}
|
|
22657
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: FilterService, decorators: [{
|
|
22658
|
+
type: Injectable,
|
|
22659
|
+
args: [{
|
|
22660
|
+
providedIn: 'root'
|
|
22661
|
+
}]
|
|
22662
|
+
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
|
|
22663
|
+
type: Optional
|
|
22664
|
+
}, {
|
|
22665
|
+
type: Inject,
|
|
22666
|
+
args: [BASE_PATH]
|
|
22667
|
+
}] }, { type: Configuration, decorators: [{
|
|
22668
|
+
type: Optional
|
|
22669
|
+
}] }] });
|
|
22670
|
+
|
|
22671
|
+
class SmartFilterEditorService {
|
|
22672
|
+
constructor(service, viewCtxService) {
|
|
22673
|
+
this.service = service;
|
|
22674
|
+
this.viewCtxService = viewCtxService;
|
|
22675
|
+
this.modelChanged = new Subject();
|
|
22676
|
+
this.submit = new Subject();
|
|
22677
|
+
this.itemSelected = new Subject();
|
|
22678
|
+
this.toolbars = [];
|
|
22717
22679
|
}
|
|
22718
|
-
|
|
22719
|
-
|
|
22720
|
-
|
|
22721
|
-
|
|
22722
|
-
|
|
22723
|
-
|
|
22680
|
+
submitForm(validate) {
|
|
22681
|
+
// NOPE
|
|
22682
|
+
}
|
|
22683
|
+
getInvalidFields() {
|
|
22684
|
+
return { invalidFieldKeys: [], invalidFieldNames: [] };
|
|
22685
|
+
}
|
|
22686
|
+
getComplexToolbars() {
|
|
22687
|
+
return [...this.toolbars];
|
|
22688
|
+
}
|
|
22689
|
+
setComplexToolbars(toolbars) {
|
|
22690
|
+
this.toolbars = [...toolbars];
|
|
22691
|
+
this.parentSmartComponent?.initActions();
|
|
22692
|
+
}
|
|
22693
|
+
async load() {
|
|
22694
|
+
if (this.config.uuid) {
|
|
22695
|
+
this.model = await this.service.load(this.config.uuid, this.config.identifier).toPromise();
|
|
22696
|
+
this.modelChanged.next();
|
|
22724
22697
|
}
|
|
22725
22698
|
}
|
|
22726
|
-
|
|
22727
|
-
|
|
22728
|
-
|
|
22729
|
-
|
|
22730
|
-
|
|
22731
|
-
|
|
22699
|
+
async peformWidgetAction(request) {
|
|
22700
|
+
if (this.config.uuid) {
|
|
22701
|
+
let filterView = this.viewCtxService
|
|
22702
|
+
.getCurrentViewContext()
|
|
22703
|
+
?.views.find((view) => view.uuid == this.config.uuid);
|
|
22704
|
+
if (filterView && filterView.state != ViewState.CLOSED) {
|
|
22705
|
+
this.model = await this.service
|
|
22706
|
+
.performWidgetAction(this.config.uuid, this.config.identifier, request)
|
|
22707
|
+
.toPromise();
|
|
22708
|
+
this.modelChanged.next();
|
|
22732
22709
|
}
|
|
22733
|
-
this.tryRegisterEmbeddedSlot();
|
|
22734
22710
|
}
|
|
22735
22711
|
}
|
|
22736
|
-
|
|
22737
|
-
|
|
22738
|
-
}
|
|
22739
|
-
|
|
22740
|
-
|
|
22741
|
-
|
|
22742
|
-
|
|
22743
|
-
type: Input
|
|
22744
|
-
}], parentLayoutComponent: [{
|
|
22745
|
-
type: Input
|
|
22746
|
-
}], parentSmartComponent: [{
|
|
22747
|
-
type: Input
|
|
22748
|
-
}], gridRow: [{
|
|
22749
|
-
type: Input
|
|
22750
|
-
}], testId: [{
|
|
22751
|
-
type: HostBinding,
|
|
22752
|
-
args: ['attr.data-testid']
|
|
22753
|
-
}], isHorizontal: [{
|
|
22754
|
-
type: HostBinding,
|
|
22755
|
-
args: ['class.horizontal']
|
|
22756
|
-
}], isVertical: [{
|
|
22757
|
-
type: HostBinding,
|
|
22758
|
-
args: ['class.vertical']
|
|
22759
|
-
}], smartFormList: [{
|
|
22760
|
-
type: ViewChildren,
|
|
22761
|
-
args: ['form']
|
|
22762
|
-
}], smartGridList: [{
|
|
22763
|
-
type: ViewChildren,
|
|
22764
|
-
args: ['grid']
|
|
22765
|
-
}], smartMapList: [{
|
|
22766
|
-
type: ViewChildren,
|
|
22767
|
-
args: ['map']
|
|
22768
|
-
}], smartDiagramList: [{
|
|
22769
|
-
type: ViewChildren,
|
|
22770
|
-
args: ['diagram']
|
|
22771
|
-
}], smartFilterList: [{
|
|
22772
|
-
type: ViewChildren,
|
|
22773
|
-
args: ['filter']
|
|
22774
|
-
}], toolbarList: [{
|
|
22775
|
-
type: ViewChildren,
|
|
22776
|
-
args: ['toolbar']
|
|
22777
|
-
}], embeddedSlotVcRefSetter: [{
|
|
22778
|
-
type: ViewChild,
|
|
22779
|
-
args: ['embeddedSlot', { read: ViewContainerRef, static: false }]
|
|
22780
|
-
}], expandableComponents: [{
|
|
22781
|
-
type: ViewChildren,
|
|
22782
|
-
args: [ExpandableSectionComponent]
|
|
22783
|
-
}], components: [{
|
|
22784
|
-
type: ViewChildren,
|
|
22785
|
-
args: [SmartComponentLayoutComponent]
|
|
22786
|
-
}] } });
|
|
22787
|
-
|
|
22788
|
-
const DEFAULT_PROVIDERS = [
|
|
22789
|
-
DefaultChartOptionsProvider,
|
|
22790
|
-
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: barChart, multi: true },
|
|
22791
|
-
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: scatterChart, multi: true },
|
|
22792
|
-
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: bubbleChart, multi: true },
|
|
22793
|
-
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: horizontalBarChart, multi: true },
|
|
22794
|
-
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: stackedBarChart, multi: true },
|
|
22795
|
-
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: horizontalStackedBarChart, multi: true },
|
|
22796
|
-
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: multiAxisLineChart, multi: true },
|
|
22797
|
-
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: polarAreaChart, multi: true },
|
|
22798
|
-
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: radarChart, multi: true },
|
|
22799
|
-
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: doughnutChart, multi: true },
|
|
22800
|
-
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: pieChart, multi: true },
|
|
22801
|
-
];
|
|
22802
|
-
class SmartDiagramModule {
|
|
22803
|
-
static forRoot(providers) {
|
|
22712
|
+
getModel() {
|
|
22713
|
+
return this.model;
|
|
22714
|
+
}
|
|
22715
|
+
async performUiActionRequest(uiActionRequest, widgetId, nodeId) {
|
|
22716
|
+
await this.peformWidgetAction(uiActionRequest);
|
|
22717
|
+
}
|
|
22718
|
+
async handleSpecificDemandsAsynchronously(uiAction, uiActionRequest) {
|
|
22804
22719
|
return {
|
|
22805
|
-
|
|
22806
|
-
|
|
22720
|
+
shouldPerformAction: true,
|
|
22721
|
+
uiActionRequest: uiActionRequest,
|
|
22807
22722
|
};
|
|
22808
22723
|
}
|
|
22809
|
-
|
|
22810
|
-
|
|
22811
|
-
|
|
22812
|
-
|
|
22813
|
-
|
|
22814
|
-
|
|
22815
|
-
|
|
22816
|
-
|
|
22817
|
-
|
|
22818
|
-
|
|
22819
|
-
|
|
22820
|
-
|
|
22821
|
-
|
|
22822
|
-
|
|
22823
|
-
|
|
22824
|
-
|
|
22825
|
-
|
|
22826
|
-
|
|
22827
|
-
|
|
22828
|
-
SmarttreeModule,
|
|
22829
|
-
SmartViewContextModule,
|
|
22830
|
-
SmartMapModule,
|
|
22831
|
-
SmartDiagramModule,
|
|
22832
|
-
InputGroupModule,
|
|
22833
|
-
InputGroupAddonModule], exports: [SmartComponentLayoutComponent] }); }
|
|
22834
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartComponentLayoutModule, imports: [BrowserModule,
|
|
22835
|
-
MatCommonModule,
|
|
22836
|
-
SmartGridModule,
|
|
22837
|
-
SmartExpandableSectionModule,
|
|
22838
|
-
SmarttreeModule,
|
|
22839
|
-
SmartViewContextModule,
|
|
22840
|
-
SmartMapModule,
|
|
22841
|
-
SmartDiagramModule,
|
|
22842
|
-
InputGroupModule,
|
|
22843
|
-
InputGroupAddonModule] }); }
|
|
22724
|
+
getAdditionalParams(uiAction) {
|
|
22725
|
+
throw new Error('Method not implemented.');
|
|
22726
|
+
}
|
|
22727
|
+
async bulkUpdateFilterExpression(operationType, item) {
|
|
22728
|
+
if (!this.model?.readOnly) {
|
|
22729
|
+
if (item) {
|
|
22730
|
+
item.expressionData.boolOperator = operationType;
|
|
22731
|
+
}
|
|
22732
|
+
await this.peformWidgetAction({
|
|
22733
|
+
code: 'BULK_UPDATE_FILTER_EXPRESSION',
|
|
22734
|
+
params: {
|
|
22735
|
+
model: item,
|
|
22736
|
+
operator: operationType,
|
|
22737
|
+
},
|
|
22738
|
+
});
|
|
22739
|
+
}
|
|
22740
|
+
}
|
|
22741
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartFilterEditorService, deps: [{ token: FilterService }, { token: SmartViewContextService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
22742
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartFilterEditorService }); }
|
|
22844
22743
|
}
|
|
22845
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type:
|
|
22846
|
-
type:
|
|
22847
|
-
|
|
22848
|
-
declarations: [SmartComponentLayoutComponent],
|
|
22849
|
-
imports: [
|
|
22850
|
-
BrowserModule,
|
|
22851
|
-
MatCommonModule,
|
|
22852
|
-
SmartGridModule,
|
|
22853
|
-
SmartExpandableSectionModule,
|
|
22854
|
-
SmarttreeModule,
|
|
22855
|
-
SmartViewContextModule,
|
|
22856
|
-
SmartMapModule,
|
|
22857
|
-
SmartDiagramModule,
|
|
22858
|
-
InputGroupModule,
|
|
22859
|
-
InputGroupAddonModule,
|
|
22860
|
-
],
|
|
22861
|
-
exports: [SmartComponentLayoutComponent],
|
|
22862
|
-
providers: [],
|
|
22863
|
-
}]
|
|
22864
|
-
}] });
|
|
22744
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartFilterEditorService, decorators: [{
|
|
22745
|
+
type: Injectable
|
|
22746
|
+
}], ctorParameters: () => [{ type: FilterService }, { type: SmartViewContextService }] });
|
|
22865
22747
|
|
|
22866
22748
|
class SmartFilterParamComponent {
|
|
22867
22749
|
constructor() { }
|
|
@@ -23495,397 +23377,516 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
23495
23377
|
type: Optional
|
|
23496
23378
|
}] }], propDecorators: { service: [{
|
|
23497
23379
|
type: Input
|
|
23498
|
-
}], vcRef: [{
|
|
23499
|
-
type: ViewChild,
|
|
23500
|
-
args: ['form', { read: ViewContainerRef }]
|
|
23501
|
-
}], simpleFilterVcRef: [{
|
|
23380
|
+
}], vcRef: [{
|
|
23381
|
+
type: ViewChild,
|
|
23382
|
+
args: ['form', { read: ViewContainerRef }]
|
|
23383
|
+
}], simpleFilterVcRef: [{
|
|
23384
|
+
type: ViewChild,
|
|
23385
|
+
args: ['simpleFilterFromChild', { read: ViewContainerRef }]
|
|
23386
|
+
}] } });
|
|
23387
|
+
|
|
23388
|
+
/**
|
|
23389
|
+
* A filter builder placed in a component layout. The identifier is the builder's filterId in the
|
|
23390
|
+
* view: the widget loads the builder by it, and the client above the layout finds the widget by it
|
|
23391
|
+
* for push updates and toolbar collection. Each widget owns its own SmartFilterEditorService.
|
|
23392
|
+
*/
|
|
23393
|
+
class SmartFilterWidgetComponent {
|
|
23394
|
+
// A template reference instead of the class token: a value import of the editor would pull
|
|
23395
|
+
// the library's module cycle into this file. The editor subscribes to modelChanged in its own
|
|
23396
|
+
// ngAfterViewInit, which runs before this setter fires, so the action refresh below always
|
|
23397
|
+
// follows the editor's toolbar rebuild.
|
|
23398
|
+
set contentComponentSetter(comp) {
|
|
23399
|
+
if (comp && !this.contentComponent) {
|
|
23400
|
+
this.service.modelChanged
|
|
23401
|
+
.pipe(takeUntil(this._destroy$))
|
|
23402
|
+
.subscribe(() => this.parent?.initActions());
|
|
23403
|
+
}
|
|
23404
|
+
this.contentComponent = comp;
|
|
23405
|
+
}
|
|
23406
|
+
constructor(service) {
|
|
23407
|
+
this.service = service;
|
|
23408
|
+
this._destroy$ = new Subject();
|
|
23409
|
+
}
|
|
23410
|
+
ngOnChanges() {
|
|
23411
|
+
this.service.config = { uuid: this.uuid, identifier: this.identifier };
|
|
23412
|
+
this.service.parentSmartComponent = this.parent;
|
|
23413
|
+
if (this.uuid) {
|
|
23414
|
+
this.service.load();
|
|
23415
|
+
}
|
|
23416
|
+
}
|
|
23417
|
+
ngOnDestroy() {
|
|
23418
|
+
this._destroy$.next();
|
|
23419
|
+
this._destroy$.complete();
|
|
23420
|
+
}
|
|
23421
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartFilterWidgetComponent, deps: [{ token: SmartFilterEditorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23422
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: SmartFilterWidgetComponent, selector: "smart-filter-widget", inputs: { uuid: "uuid", identifier: "identifier", parent: "parent" }, providers: [SmartFilterEditorService], viewQueries: [{ propertyName: "contentComponentSetter", first: true, predicate: ["editor"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"filter-widget-container\" *ngIf=\"service.model\">\n <smart-filter-group-params [service]=\"service\"></smart-filter-group-params>\n <smart-filter-expression-editor #editor [service]=\"service\"></smart-filter-expression-editor>\n</div>\n", styles: [".filter-widget-container{display:flex;flex-direction:row}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SmartFilterParamsComponent, selector: "smart-filter-group-params", inputs: ["service"] }, { kind: "component", type: SmartFilterEditorContentComponent, selector: "smart-filter-expression-editor", inputs: ["service"] }] }); }
|
|
23423
|
+
}
|
|
23424
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartFilterWidgetComponent, decorators: [{
|
|
23425
|
+
type: Component,
|
|
23426
|
+
args: [{ selector: 'smart-filter-widget', providers: [SmartFilterEditorService], template: "<div class=\"filter-widget-container\" *ngIf=\"service.model\">\n <smart-filter-group-params [service]=\"service\"></smart-filter-group-params>\n <smart-filter-expression-editor #editor [service]=\"service\"></smart-filter-expression-editor>\n</div>\n", styles: [".filter-widget-container{display:flex;flex-direction:row}\n"] }]
|
|
23427
|
+
}], ctorParameters: () => [{ type: SmartFilterEditorService }], propDecorators: { uuid: [{
|
|
23428
|
+
type: Input
|
|
23429
|
+
}], identifier: [{
|
|
23430
|
+
type: Input
|
|
23431
|
+
}], parent: [{
|
|
23432
|
+
type: Input
|
|
23433
|
+
}], contentComponentSetter: [{
|
|
23502
23434
|
type: ViewChild,
|
|
23503
|
-
args: ['
|
|
23435
|
+
args: ['editor']
|
|
23504
23436
|
}] } });
|
|
23505
23437
|
|
|
23506
|
-
|
|
23507
|
-
|
|
23508
|
-
|
|
23509
|
-
*/
|
|
23510
|
-
class CustomHttpParameterCodec {
|
|
23511
|
-
encodeKey(k) {
|
|
23512
|
-
return encodeURIComponent(k);
|
|
23438
|
+
class SmartComponentLayoutComponent {
|
|
23439
|
+
get testId() {
|
|
23440
|
+
return this.smartComponentLayout?.identifier ?? null;
|
|
23513
23441
|
}
|
|
23514
|
-
|
|
23515
|
-
return
|
|
23442
|
+
get isHorizontal() {
|
|
23443
|
+
return (this.smartComponentLayout?.type === this.type().CONTAINER &&
|
|
23444
|
+
this.smartComponentLayout?.direction === 'horizontal');
|
|
23516
23445
|
}
|
|
23517
|
-
|
|
23518
|
-
return
|
|
23446
|
+
get isVertical() {
|
|
23447
|
+
return (this.smartComponentLayout?.type === this.type().CONTAINER &&
|
|
23448
|
+
(this.smartComponentLayout?.direction ?? 'vertical') === 'vertical');
|
|
23519
23449
|
}
|
|
23520
|
-
|
|
23521
|
-
|
|
23450
|
+
set embeddedSlotVcRefSetter(vcRef) {
|
|
23451
|
+
this._embeddedSlotVcRef = vcRef;
|
|
23452
|
+
if (vcRef) {
|
|
23453
|
+
this.tryRegisterEmbeddedSlot();
|
|
23454
|
+
}
|
|
23522
23455
|
}
|
|
23523
|
-
|
|
23524
|
-
|
|
23525
|
-
|
|
23526
|
-
|
|
23527
|
-
|
|
23528
|
-
|
|
23529
|
-
|
|
23530
|
-
|
|
23531
|
-
|
|
23532
|
-
|
|
23533
|
-
|
|
23534
|
-
|
|
23535
|
-
|
|
23536
|
-
|
|
23537
|
-
|
|
23538
|
-
|
|
23539
|
-
this.
|
|
23540
|
-
this.
|
|
23541
|
-
|
|
23542
|
-
|
|
23543
|
-
|
|
23456
|
+
constructor(layoutService, viewContext, element, renderer) {
|
|
23457
|
+
this.layoutService = layoutService;
|
|
23458
|
+
this.viewContext = viewContext;
|
|
23459
|
+
this.element = element;
|
|
23460
|
+
this.renderer = renderer;
|
|
23461
|
+
this._destroy$ = new Subject();
|
|
23462
|
+
this.appRef = inject(ApplicationRef);
|
|
23463
|
+
this.formRef = viewChild(SmartformComponent);
|
|
23464
|
+
this.onFormChange = effect(() => {
|
|
23465
|
+
const form = this.formRef();
|
|
23466
|
+
if (this.smartForm && form && this.parentSmartComponent) {
|
|
23467
|
+
this.parentSmartComponent.handleDataChangeSubscriptions(form);
|
|
23468
|
+
this.parentSmartComponent.handleUploadCallback(form);
|
|
23469
|
+
form.markAllWidgetsForChangeDetection();
|
|
23470
|
+
}
|
|
23471
|
+
});
|
|
23472
|
+
this.pendingOrphanCleanup = false;
|
|
23473
|
+
this.embeddedSlotActive = false;
|
|
23474
|
+
}
|
|
23475
|
+
ngAfterViewInit() {
|
|
23476
|
+
if (this.smartFormList?.first) {
|
|
23477
|
+
this.setFormComponent(this.smartFormList?.first);
|
|
23544
23478
|
}
|
|
23545
|
-
|
|
23546
|
-
|
|
23479
|
+
this.smartFormList.changes
|
|
23480
|
+
.pipe(takeUntil(this._destroy$))
|
|
23481
|
+
.subscribe((list) => {
|
|
23482
|
+
this.setFormComponent(list.first);
|
|
23483
|
+
});
|
|
23484
|
+
if (this.smartGridList?.first) {
|
|
23485
|
+
this.setGridComponent(this.smartGridList?.first);
|
|
23547
23486
|
}
|
|
23548
|
-
|
|
23549
|
-
this.
|
|
23487
|
+
this.smartGridList.changes
|
|
23488
|
+
.pipe(takeUntil(this._destroy$))
|
|
23489
|
+
.subscribe((list) => {
|
|
23490
|
+
this.setGridComponent(list.first);
|
|
23491
|
+
});
|
|
23492
|
+
if (this.smartMapList?.first) {
|
|
23493
|
+
this.setMapComponent(this.smartMapList?.first);
|
|
23550
23494
|
}
|
|
23551
|
-
|
|
23552
|
-
this.
|
|
23495
|
+
this.smartMapList.changes.pipe(takeUntil(this._destroy$)).subscribe((maps) => {
|
|
23496
|
+
this.setMapComponent(maps.first);
|
|
23497
|
+
});
|
|
23498
|
+
if (this.smartDiagramList?.first) {
|
|
23499
|
+
this.setDiagramComponent(this.smartDiagramList?.first);
|
|
23553
23500
|
}
|
|
23554
|
-
|
|
23555
|
-
|
|
23556
|
-
|
|
23557
|
-
|
|
23558
|
-
|
|
23559
|
-
* @param contentTypes - the array of content types that are available for selection
|
|
23560
|
-
* @returns the selected content-type or <code>undefined</code> if no selection could be made.
|
|
23561
|
-
*/
|
|
23562
|
-
selectHeaderContentType(contentTypes) {
|
|
23563
|
-
if (contentTypes.length === 0) {
|
|
23564
|
-
return undefined;
|
|
23501
|
+
this.smartDiagramList.changes.pipe(takeUntil(this._destroy$)).subscribe((diagrams) => {
|
|
23502
|
+
this.setDiagramComponent(diagrams.first);
|
|
23503
|
+
});
|
|
23504
|
+
if (this.smartFilterList?.first) {
|
|
23505
|
+
this.setFilterComponent(this.smartFilterList?.first);
|
|
23565
23506
|
}
|
|
23566
|
-
|
|
23567
|
-
|
|
23568
|
-
|
|
23507
|
+
this.smartFilterList.changes.pipe(takeUntil(this._destroy$)).subscribe((filters) => {
|
|
23508
|
+
this.setFilterComponent(filters.first);
|
|
23509
|
+
});
|
|
23510
|
+
if (this.toolbarList?.first) {
|
|
23511
|
+
this.setToolbarComponent(this.toolbarList?.first);
|
|
23569
23512
|
}
|
|
23570
|
-
|
|
23513
|
+
this.toolbarList.changes
|
|
23514
|
+
.pipe(takeUntil(this._destroy$))
|
|
23515
|
+
.subscribe((list) => {
|
|
23516
|
+
this.setToolbarComponent(list.first);
|
|
23517
|
+
});
|
|
23518
|
+
this.setUp();
|
|
23571
23519
|
}
|
|
23572
|
-
|
|
23573
|
-
|
|
23574
|
-
|
|
23575
|
-
|
|
23576
|
-
* @param accepts - the array of content types that are available for selection.
|
|
23577
|
-
* @returns the selected content-type or <code>undefined</code> if no selection could be made.
|
|
23578
|
-
*/
|
|
23579
|
-
selectHeaderAccept(accepts) {
|
|
23580
|
-
if (accepts.length === 0) {
|
|
23581
|
-
return undefined;
|
|
23582
|
-
}
|
|
23583
|
-
const type = accepts.find((x) => this.isJsonMime(x));
|
|
23584
|
-
if (type === undefined) {
|
|
23585
|
-
return accepts[0];
|
|
23520
|
+
ngAfterViewChecked() {
|
|
23521
|
+
if (this.pendingOrphanCleanup) {
|
|
23522
|
+
this.pendingOrphanCleanup = false;
|
|
23523
|
+
this.viewContext.cleanupOrphanedEmbeddedViews(this.uuid);
|
|
23586
23524
|
}
|
|
23587
|
-
return type;
|
|
23588
|
-
}
|
|
23589
|
-
/**
|
|
23590
|
-
* Check if the given MIME is a JSON MIME.
|
|
23591
|
-
* JSON MIME examples:
|
|
23592
|
-
* application/json
|
|
23593
|
-
* application/json; charset=UTF8
|
|
23594
|
-
* APPLICATION/JSON
|
|
23595
|
-
* application/vnd.company+json
|
|
23596
|
-
* @param mime - MIME (Multipurpose Internet Mail Extensions)
|
|
23597
|
-
* @return True if the given MIME is JSON, false otherwise.
|
|
23598
|
-
*/
|
|
23599
|
-
isJsonMime(mime) {
|
|
23600
|
-
const jsonMime = new RegExp('^(application\/json|[^;/ \t]+\/[^;/ \t]+[+]json)[ \t]*(;.*)?$', 'i');
|
|
23601
|
-
return mime !== null && (jsonMime.test(mime) || mime.toLowerCase() === 'application/json-patch+json');
|
|
23602
23525
|
}
|
|
23603
|
-
|
|
23604
|
-
|
|
23605
|
-
|
|
23606
|
-
|
|
23607
|
-
|
|
23526
|
+
ngOnDestroy() {
|
|
23527
|
+
if (this.embeddedSlotContainerId && this.uuid) {
|
|
23528
|
+
this.viewContext.unregisterEmbeddedSlot(this.uuid, this.embeddedSlotContainerId);
|
|
23529
|
+
}
|
|
23530
|
+
this._destroy$.next();
|
|
23531
|
+
this._destroy$.complete();
|
|
23608
23532
|
}
|
|
23609
|
-
|
|
23610
|
-
|
|
23611
|
-
// and for backwards compatibility to older typescript-angular generator versions.
|
|
23612
|
-
// It only works for the 'simple' parameter style.
|
|
23613
|
-
// Date-handling only works for the 'date-time' format.
|
|
23614
|
-
// All other styles and Date-formats are probably handled incorrectly.
|
|
23615
|
-
//
|
|
23616
|
-
// But: if that's all you need (i.e.: the most common use-case): no need for customization!
|
|
23617
|
-
const value = param.dataFormat === 'date-time' && param.value instanceof Date
|
|
23618
|
-
? param.value.toISOString()
|
|
23619
|
-
: param.value;
|
|
23620
|
-
return encodeURIComponent(String(value));
|
|
23533
|
+
ngOnChanges(changes) {
|
|
23534
|
+
this.setUp();
|
|
23621
23535
|
}
|
|
23622
|
-
|
|
23623
|
-
|
|
23624
|
-
|
|
23625
|
-
* Filter API 2
|
|
23626
|
-
* Filter API 2
|
|
23627
|
-
*
|
|
23628
|
-
* The version of the OpenAPI document: 1.0.0
|
|
23629
|
-
* Contact: info@it4all.hu
|
|
23630
|
-
*
|
|
23631
|
-
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
23632
|
-
* https://openapi-generator.tech
|
|
23633
|
-
* Do not edit the class manually.
|
|
23634
|
-
*/
|
|
23635
|
-
/* tslint:disable:no-unused-variable member-ordering */
|
|
23636
|
-
class FilterService {
|
|
23637
|
-
constructor(httpClient, basePath, configuration) {
|
|
23638
|
-
this.httpClient = httpClient;
|
|
23639
|
-
this.basePath = 'http://localhost';
|
|
23640
|
-
this.defaultHeaders = new HttpHeaders();
|
|
23641
|
-
this.configuration = new Configuration();
|
|
23642
|
-
if (configuration) {
|
|
23643
|
-
this.configuration = configuration;
|
|
23536
|
+
setUp() {
|
|
23537
|
+
if (!this.parentSmartComponent || !this.smartComponentLayout) {
|
|
23538
|
+
return;
|
|
23644
23539
|
}
|
|
23645
|
-
if (
|
|
23646
|
-
|
|
23647
|
-
|
|
23648
|
-
|
|
23649
|
-
if (typeof basePath !== 'string') {
|
|
23650
|
-
basePath = this.basePath;
|
|
23651
|
-
}
|
|
23652
|
-
this.configuration.basePath = basePath;
|
|
23540
|
+
if (deepEqual(this.smartComponentLayout, this.currentLayout)) {
|
|
23541
|
+
// no layout change, keep current state
|
|
23542
|
+
this.smartComponentLayout = this.currentLayout;
|
|
23543
|
+
return;
|
|
23653
23544
|
}
|
|
23654
|
-
|
|
23655
|
-
|
|
23656
|
-
|
|
23657
|
-
|
|
23658
|
-
|
|
23659
|
-
|
|
23545
|
+
// layout changed, render, but save current
|
|
23546
|
+
// this.currentLayout = JSON.parse(JSON.stringify(this.smartComponentLayout));
|
|
23547
|
+
SmartComponentLayoutUtility.clearFormHandlers(this);
|
|
23548
|
+
this.currentLayout = this.smartComponentLayout;
|
|
23549
|
+
this.uuid = this.parentSmartComponent.uuid;
|
|
23550
|
+
this.treeService = this.parentSmartComponent.smartTreeService;
|
|
23551
|
+
// Top-level layout: detach embedded views before the tree is re-rendered,
|
|
23552
|
+
// so they survive *ngFor component destruction
|
|
23553
|
+
if (!this.parentLayoutComponent && this.uuid) {
|
|
23554
|
+
this.viewContext.detachAllEmbeddedViews(this.uuid);
|
|
23555
|
+
this.pendingOrphanCleanup = true;
|
|
23556
|
+
}
|
|
23557
|
+
this.smartComponentLayout?.direction;
|
|
23558
|
+
// the nature of the layout might have changed (e.g. from GRID to FORM), we null out every
|
|
23559
|
+
// template-related element, so no stale data is left on screen:
|
|
23560
|
+
this.expandableSection = undefined;
|
|
23561
|
+
this.smartForm = undefined;
|
|
23562
|
+
this.smartFormComponent = undefined;
|
|
23563
|
+
this.smartGrid = undefined;
|
|
23564
|
+
this.smartGridComponent = undefined;
|
|
23565
|
+
this.filterId = undefined;
|
|
23566
|
+
this.smartFilterComponent = undefined;
|
|
23567
|
+
this.smartGrid = undefined;
|
|
23568
|
+
this.toolbarId = undefined;
|
|
23569
|
+
this.toolbar = undefined;
|
|
23570
|
+
// null out toolbar?
|
|
23571
|
+
this.mapId = undefined;
|
|
23572
|
+
this.smartDiagramId = undefined;
|
|
23573
|
+
if (this.embeddedSlotContainerId && this.uuid) {
|
|
23574
|
+
this.viewContext.unregisterEmbeddedSlot(this.uuid, this.embeddedSlotContainerId);
|
|
23660
23575
|
}
|
|
23661
|
-
|
|
23662
|
-
|
|
23576
|
+
this.embeddedSlotActive = false;
|
|
23577
|
+
this.embeddedSlotContainerId = undefined;
|
|
23578
|
+
if (this.smartComponentLayout?.expandable) {
|
|
23579
|
+
this.constructExpandableSection();
|
|
23663
23580
|
}
|
|
23664
|
-
|
|
23665
|
-
|
|
23666
|
-
addToHttpParamsRecursive(httpParams, value, key) {
|
|
23667
|
-
if (value == null) {
|
|
23668
|
-
return httpParams;
|
|
23581
|
+
else if (this.smartComponentLayout?.type === ComponentType.FORM) {
|
|
23582
|
+
this.constructForm();
|
|
23669
23583
|
}
|
|
23670
|
-
if (
|
|
23671
|
-
if (
|
|
23672
|
-
|
|
23584
|
+
else if (this.smartComponentLayout?.type === ComponentType.WIDGET) {
|
|
23585
|
+
if (this.smartComponentLayout.widget?.type === ComponentWidgetType.GRID) {
|
|
23586
|
+
this.constructGrid();
|
|
23673
23587
|
}
|
|
23674
|
-
else if (
|
|
23675
|
-
|
|
23676
|
-
httpParams = httpParams.append(key, value.toISOString().substr(0, 10));
|
|
23677
|
-
}
|
|
23678
|
-
else {
|
|
23679
|
-
throw Error("key may not be null if value is Date");
|
|
23680
|
-
}
|
|
23588
|
+
else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.FILTER) {
|
|
23589
|
+
this.constructFilter();
|
|
23681
23590
|
}
|
|
23682
|
-
else {
|
|
23683
|
-
|
|
23591
|
+
else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.TREE) {
|
|
23592
|
+
this.constructTree();
|
|
23684
23593
|
}
|
|
23685
|
-
|
|
23686
|
-
|
|
23687
|
-
httpParams = httpParams.append(key, value);
|
|
23688
|
-
}
|
|
23689
|
-
else {
|
|
23690
|
-
throw Error("key may not be null if value is not object or array");
|
|
23691
|
-
}
|
|
23692
|
-
return httpParams;
|
|
23693
|
-
}
|
|
23694
|
-
load(uuid, filterIdentifier, observe = 'body', reportProgress = false, options) {
|
|
23695
|
-
if (uuid === null || uuid === undefined) {
|
|
23696
|
-
throw new Error('Required parameter uuid was null or undefined when calling load.');
|
|
23697
|
-
}
|
|
23698
|
-
if (filterIdentifier === null || filterIdentifier === undefined) {
|
|
23699
|
-
throw new Error('Required parameter filterIdentifier was null or undefined when calling load.');
|
|
23700
|
-
}
|
|
23701
|
-
let localVarHeaders = this.defaultHeaders;
|
|
23702
|
-
let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
|
|
23703
|
-
if (localVarHttpHeaderAcceptSelected === undefined) {
|
|
23704
|
-
// to determine the Accept header
|
|
23705
|
-
const httpHeaderAccepts = [
|
|
23706
|
-
'application/json'
|
|
23707
|
-
];
|
|
23708
|
-
localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
|
23709
|
-
}
|
|
23710
|
-
if (localVarHttpHeaderAcceptSelected !== undefined) {
|
|
23711
|
-
localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
|
|
23712
|
-
}
|
|
23713
|
-
let localVarHttpContext = options && options.context;
|
|
23714
|
-
if (localVarHttpContext === undefined) {
|
|
23715
|
-
localVarHttpContext = new HttpContext();
|
|
23716
|
-
}
|
|
23717
|
-
let responseType_ = 'json';
|
|
23718
|
-
if (localVarHttpHeaderAcceptSelected) {
|
|
23719
|
-
if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
|
|
23720
|
-
responseType_ = 'text';
|
|
23594
|
+
else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.TOOLBAR) {
|
|
23595
|
+
this.constructToolbar();
|
|
23721
23596
|
}
|
|
23722
|
-
else if (this.
|
|
23723
|
-
|
|
23597
|
+
else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.MAP) {
|
|
23598
|
+
this.constructMap();
|
|
23724
23599
|
}
|
|
23725
|
-
else {
|
|
23726
|
-
|
|
23600
|
+
else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.DIAGRAM) {
|
|
23601
|
+
this.construcDiagram();
|
|
23602
|
+
}
|
|
23603
|
+
else if (this.smartComponentLayout.widget?.type === ComponentWidgetType.EMBEDDED_SLOT) {
|
|
23604
|
+
this.constructEmbeddedSlot();
|
|
23605
|
+
}
|
|
23606
|
+
if (!this.parentLayoutComponent) {
|
|
23607
|
+
// only top level component should call init actions
|
|
23608
|
+
this.parentSmartComponent.initActions();
|
|
23727
23609
|
}
|
|
23728
23610
|
}
|
|
23729
|
-
|
|
23730
|
-
return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, {
|
|
23731
|
-
context: localVarHttpContext,
|
|
23732
|
-
responseType: responseType_,
|
|
23733
|
-
withCredentials: this.configuration.withCredentials,
|
|
23734
|
-
headers: localVarHeaders,
|
|
23735
|
-
observe: observe,
|
|
23736
|
-
reportProgress: reportProgress
|
|
23737
|
-
});
|
|
23611
|
+
SmartStyleUtility.applyStyle(this.smartComponentLayout.style, this.element, this.renderer);
|
|
23738
23612
|
}
|
|
23739
|
-
|
|
23740
|
-
|
|
23741
|
-
|
|
23742
|
-
|
|
23743
|
-
|
|
23744
|
-
|
|
23613
|
+
type() {
|
|
23614
|
+
return ComponentType;
|
|
23615
|
+
}
|
|
23616
|
+
constructExpandableSection() {
|
|
23617
|
+
let data = { ...this.smartComponentLayout };
|
|
23618
|
+
data.expandable = false;
|
|
23619
|
+
this.expandableSection = {
|
|
23620
|
+
title: this.smartComponentLayout?.expandableSectionLabel ?? '',
|
|
23621
|
+
inputs: new Map([
|
|
23622
|
+
['smartComponentLayout', data],
|
|
23623
|
+
['parentSmartComponent', this.parentSmartComponent],
|
|
23624
|
+
['parentLayoutComponent', this.parentLayoutComponent],
|
|
23625
|
+
]),
|
|
23626
|
+
headerToolbarId: this.smartComponentLayout?.expandableSectionHeaderToolbarId,
|
|
23627
|
+
customComponent: SmartComponentLayoutComponent,
|
|
23628
|
+
};
|
|
23629
|
+
}
|
|
23630
|
+
constructForm() {
|
|
23631
|
+
const widgets = this.layoutService.render({
|
|
23632
|
+
layoutDefinitions: this.smartComponentLayout?.form,
|
|
23633
|
+
});
|
|
23634
|
+
if (this.gridRow && !this.gridRow.valueSets && this.parentSmartComponent?.model) {
|
|
23635
|
+
this.gridRow.valueSets = this.parentSmartComponent.model.valueSets;
|
|
23745
23636
|
}
|
|
23746
|
-
|
|
23747
|
-
|
|
23637
|
+
this.smartForm = {
|
|
23638
|
+
direction: this.getFormLayout(),
|
|
23639
|
+
componentModel: this.gridRow ? this.gridRow : this.parentSmartComponent?.model,
|
|
23640
|
+
widgets,
|
|
23641
|
+
};
|
|
23642
|
+
this.bindForm();
|
|
23643
|
+
}
|
|
23644
|
+
getFormLayout() {
|
|
23645
|
+
if (this.smartComponentLayout?.direction) {
|
|
23646
|
+
return this.smartComponentLayout?.direction === LayoutDirection.HORIZONTAL
|
|
23647
|
+
? SmartFormWidgetDirection.ROW
|
|
23648
|
+
: SmartFormWidgetDirection.COL;
|
|
23748
23649
|
}
|
|
23749
|
-
|
|
23750
|
-
|
|
23751
|
-
|
|
23752
|
-
|
|
23753
|
-
|
|
23754
|
-
|
|
23755
|
-
];
|
|
23756
|
-
localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
|
|
23650
|
+
return SmartFormWidgetDirection.COL;
|
|
23651
|
+
}
|
|
23652
|
+
setFormComponent(comp) {
|
|
23653
|
+
if (!this.smartFormComponent) {
|
|
23654
|
+
this.smartFormComponent = comp;
|
|
23655
|
+
this.bindForm();
|
|
23757
23656
|
}
|
|
23758
|
-
|
|
23759
|
-
|
|
23657
|
+
}
|
|
23658
|
+
bindForm() {
|
|
23659
|
+
if (this.parentSmartComponent?.useQueryLists) {
|
|
23660
|
+
return;
|
|
23760
23661
|
}
|
|
23761
|
-
|
|
23762
|
-
|
|
23763
|
-
|
|
23662
|
+
if (this.smartForm && this.smartFormComponent) {
|
|
23663
|
+
this.parentSmartComponent?.addForm(
|
|
23664
|
+
// unique identifier for the form
|
|
23665
|
+
`form_${this.makeid(5)}`, this.smartForm, this.smartFormComponent);
|
|
23764
23666
|
}
|
|
23765
|
-
|
|
23766
|
-
|
|
23767
|
-
|
|
23768
|
-
|
|
23769
|
-
const
|
|
23770
|
-
|
|
23771
|
-
|
|
23667
|
+
}
|
|
23668
|
+
makeid(length) {
|
|
23669
|
+
let result = '';
|
|
23670
|
+
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
23671
|
+
const charactersLength = characters.length;
|
|
23672
|
+
let counter = 0;
|
|
23673
|
+
while (counter < length) {
|
|
23674
|
+
result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
|
23675
|
+
counter += 1;
|
|
23772
23676
|
}
|
|
23773
|
-
|
|
23774
|
-
|
|
23775
|
-
|
|
23776
|
-
|
|
23777
|
-
|
|
23778
|
-
|
|
23779
|
-
|
|
23780
|
-
}
|
|
23781
|
-
|
|
23782
|
-
|
|
23783
|
-
}
|
|
23677
|
+
return result;
|
|
23678
|
+
}
|
|
23679
|
+
constructGrid() {
|
|
23680
|
+
this.smartGrid = {
|
|
23681
|
+
gridIdentifier: this.smartComponentLayout?.widget?.identifier,
|
|
23682
|
+
gridModel: {
|
|
23683
|
+
page: {},
|
|
23684
|
+
},
|
|
23685
|
+
options: {
|
|
23686
|
+
rowUiActionType: GridUiActionType.POPUP_MENU,
|
|
23687
|
+
},
|
|
23688
|
+
layoutDef: SmartLayoutDef.TABLE,
|
|
23689
|
+
paginator: false,
|
|
23690
|
+
layoutComponent: SmartComponentLayoutComponent,
|
|
23691
|
+
layoutUtility: SmartComponentLayoutUtility,
|
|
23692
|
+
};
|
|
23693
|
+
this.bindGrid();
|
|
23694
|
+
}
|
|
23695
|
+
setGridComponent(comp) {
|
|
23696
|
+
if (!this.smartGridComponent) {
|
|
23697
|
+
this.smartGridComponent = comp;
|
|
23698
|
+
this.bindGrid();
|
|
23784
23699
|
}
|
|
23785
|
-
let localVarPath = `/filter/${this.configuration.encodeParam({ name: "uuid", value: uuid, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: "uuid" })}/${this.configuration.encodeParam({ name: "filterIdentifier", value: filterIdentifier, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}/performWidgetAction`;
|
|
23786
|
-
return this.httpClient.request('post', `${this.configuration.basePath}${localVarPath}`, {
|
|
23787
|
-
context: localVarHttpContext,
|
|
23788
|
-
body: body,
|
|
23789
|
-
responseType: responseType_,
|
|
23790
|
-
withCredentials: this.configuration.withCredentials,
|
|
23791
|
-
headers: localVarHeaders,
|
|
23792
|
-
observe: observe,
|
|
23793
|
-
reportProgress: reportProgress
|
|
23794
|
-
});
|
|
23795
23700
|
}
|
|
23796
|
-
|
|
23797
|
-
|
|
23798
|
-
|
|
23799
|
-
|
|
23800
|
-
|
|
23801
|
-
|
|
23802
|
-
|
|
23803
|
-
|
|
23804
|
-
|
|
23805
|
-
|
|
23806
|
-
|
|
23807
|
-
|
|
23808
|
-
args: [BASE_PATH]
|
|
23809
|
-
}] }, { type: Configuration, decorators: [{
|
|
23810
|
-
type: Optional
|
|
23811
|
-
}] }] });
|
|
23812
|
-
|
|
23813
|
-
class SmartFilterEditorService {
|
|
23814
|
-
constructor(service, viewCtxService) {
|
|
23815
|
-
this.service = service;
|
|
23816
|
-
this.viewCtxService = viewCtxService;
|
|
23817
|
-
this.modelChanged = new Subject();
|
|
23818
|
-
this.submit = new Subject();
|
|
23819
|
-
this.itemSelected = new Subject();
|
|
23820
|
-
this.toolbars = [];
|
|
23701
|
+
bindGrid() {
|
|
23702
|
+
if (this.parentSmartComponent?.useQueryLists) {
|
|
23703
|
+
if (this.smartGrid && this.smartGridComponent && this.parentSmartComponent) {
|
|
23704
|
+
this.parentSmartComponent.setupGridServices(this.smartGridComponent);
|
|
23705
|
+
}
|
|
23706
|
+
return;
|
|
23707
|
+
}
|
|
23708
|
+
if (this.smartGrid && this.smartGridComponent) {
|
|
23709
|
+
this.smartGrid = this.parentSmartComponent?.addGrid(this.smartGrid, {
|
|
23710
|
+
rowUiActionType: GridUiActionType.POPUP_MENU,
|
|
23711
|
+
}, false, this.smartGridComponent);
|
|
23712
|
+
}
|
|
23821
23713
|
}
|
|
23822
|
-
|
|
23823
|
-
|
|
23714
|
+
constructMap() {
|
|
23715
|
+
this.mapId = this.smartComponentLayout?.widget?.identifier;
|
|
23716
|
+
this.bindMap();
|
|
23824
23717
|
}
|
|
23825
|
-
|
|
23826
|
-
|
|
23718
|
+
construcDiagram() {
|
|
23719
|
+
this.smartDiagramId = this.smartComponentLayout?.widget?.identifier;
|
|
23720
|
+
this.bindDiagram();
|
|
23827
23721
|
}
|
|
23828
|
-
|
|
23829
|
-
|
|
23722
|
+
setMapComponent(comp) {
|
|
23723
|
+
if (!this.smartMapComponent) {
|
|
23724
|
+
this.smartMapComponent = comp;
|
|
23725
|
+
this.bindMap();
|
|
23726
|
+
}
|
|
23830
23727
|
}
|
|
23831
|
-
|
|
23832
|
-
this.
|
|
23833
|
-
|
|
23728
|
+
setDiagramComponent(comp) {
|
|
23729
|
+
if (!this.smartDiagramComponent) {
|
|
23730
|
+
this.smartDiagramComponent = comp;
|
|
23731
|
+
this.bindDiagram();
|
|
23732
|
+
}
|
|
23834
23733
|
}
|
|
23835
|
-
|
|
23836
|
-
if (this.
|
|
23837
|
-
this.
|
|
23838
|
-
this.
|
|
23734
|
+
setFilterComponent(comp) {
|
|
23735
|
+
if (!this.smartFilterComponent) {
|
|
23736
|
+
this.smartFilterComponent = comp;
|
|
23737
|
+
this.bindFilter();
|
|
23839
23738
|
}
|
|
23840
23739
|
}
|
|
23841
|
-
|
|
23842
|
-
if (this.
|
|
23843
|
-
|
|
23844
|
-
.getCurrentViewContext()
|
|
23845
|
-
?.views.find((view) => view.uuid == this.config.uuid);
|
|
23846
|
-
if (filterView && filterView.state != ViewState.CLOSED) {
|
|
23847
|
-
this.model = await this.service
|
|
23848
|
-
.performWidgetAction(this.config.uuid, this.config.identifier, request)
|
|
23849
|
-
.toPromise();
|
|
23850
|
-
this.modelChanged.next();
|
|
23851
|
-
}
|
|
23740
|
+
bindMap() {
|
|
23741
|
+
if (this.parentSmartComponent.useQueryLists) {
|
|
23742
|
+
return;
|
|
23852
23743
|
}
|
|
23744
|
+
console.warn('Map components are only supported through QueryLists!');
|
|
23853
23745
|
}
|
|
23854
|
-
|
|
23855
|
-
|
|
23746
|
+
bindDiagram() {
|
|
23747
|
+
if (this.parentSmartComponent.useQueryLists) {
|
|
23748
|
+
return;
|
|
23749
|
+
}
|
|
23750
|
+
console.warn('Diagram components are only supported through QueryLists!');
|
|
23856
23751
|
}
|
|
23857
|
-
|
|
23858
|
-
|
|
23752
|
+
setToolbarComponent(comp) {
|
|
23753
|
+
this.toolbar = comp;
|
|
23859
23754
|
}
|
|
23860
|
-
|
|
23861
|
-
|
|
23862
|
-
|
|
23863
|
-
uiActionRequest: uiActionRequest,
|
|
23864
|
-
};
|
|
23755
|
+
constructFilter() {
|
|
23756
|
+
this.filterId = this.smartComponentLayout?.widget?.identifier;
|
|
23757
|
+
this.bindFilter();
|
|
23865
23758
|
}
|
|
23866
|
-
|
|
23867
|
-
|
|
23759
|
+
bindFilter() {
|
|
23760
|
+
if (this.parentSmartComponent.useQueryLists) {
|
|
23761
|
+
return;
|
|
23762
|
+
}
|
|
23763
|
+
console.warn('Filter widgets are only supported through QueryLists!');
|
|
23868
23764
|
}
|
|
23869
|
-
|
|
23870
|
-
if (
|
|
23871
|
-
|
|
23872
|
-
|
|
23765
|
+
constructTree() {
|
|
23766
|
+
if (this.parentSmartComponent?.useQueryLists) {
|
|
23767
|
+
return;
|
|
23768
|
+
}
|
|
23769
|
+
this.parentSmartComponent.setUpDefaultTree(this.smartComponentLayout?.widget?.identifier);
|
|
23770
|
+
this.treeService?.initialize();
|
|
23771
|
+
}
|
|
23772
|
+
constructToolbar() {
|
|
23773
|
+
let toolbarId = this.smartComponentLayout?.widget?.identifier;
|
|
23774
|
+
if (this.toolbarId !== toolbarId) {
|
|
23775
|
+
this.toolbarId = toolbarId;
|
|
23776
|
+
}
|
|
23777
|
+
let properties = this.smartComponentLayout?.widget?.properties;
|
|
23778
|
+
if (properties && properties['toolbar_properties']) {
|
|
23779
|
+
this.toolbarPropertes = properties['toolbar_properties'];
|
|
23780
|
+
}
|
|
23781
|
+
}
|
|
23782
|
+
constructEmbeddedSlot() {
|
|
23783
|
+
this.embeddedSlotContainerId = this.smartComponentLayout?.widget?.identifier;
|
|
23784
|
+
this.embeddedSlotActive = true;
|
|
23785
|
+
this.tryRegisterEmbeddedSlot();
|
|
23786
|
+
}
|
|
23787
|
+
tryRegisterEmbeddedSlot() {
|
|
23788
|
+
if (this.embeddedSlotContainerId && this.uuid && this._embeddedSlotVcRef) {
|
|
23789
|
+
// An EMBEDDED_SLOT widget slot is LAYOUT-kind: it lives inside the re-rendering
|
|
23790
|
+
// layout *ngFor, so its child must be detached before a top-level re-render and
|
|
23791
|
+
// reattaches when this slot re-registers. (#28870)
|
|
23792
|
+
this.viewContext.registerEmbeddedSlot(this.uuid, this.embeddedSlotContainerId, this._embeddedSlotVcRef, 'layout');
|
|
23793
|
+
}
|
|
23794
|
+
}
|
|
23795
|
+
updateUuid(newUuid) {
|
|
23796
|
+
const oldUuid = this.uuid;
|
|
23797
|
+
this.uuid = newUuid;
|
|
23798
|
+
if (oldUuid !== newUuid && this.embeddedSlotContainerId) {
|
|
23799
|
+
if (oldUuid) {
|
|
23800
|
+
this.viewContext.unregisterEmbeddedSlot(oldUuid, this.embeddedSlotContainerId);
|
|
23873
23801
|
}
|
|
23874
|
-
|
|
23875
|
-
code: 'BULK_UPDATE_FILTER_EXPRESSION',
|
|
23876
|
-
params: {
|
|
23877
|
-
model: item,
|
|
23878
|
-
operator: operationType,
|
|
23879
|
-
},
|
|
23880
|
-
});
|
|
23802
|
+
this.tryRegisterEmbeddedSlot();
|
|
23881
23803
|
}
|
|
23882
23804
|
}
|
|
23883
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type:
|
|
23884
|
-
static { this.ɵ
|
|
23805
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartComponentLayoutComponent, deps: [{ token: SmartformLayoutDefinitionService }, { token: SmartViewContextService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23806
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: SmartComponentLayoutComponent, selector: "smart-component-layout", inputs: { smartComponentLayout: "smartComponentLayout", parentLayoutComponent: "parentLayoutComponent", parentSmartComponent: "parentSmartComponent", gridRow: "gridRow" }, host: { properties: { "attr.data-testid": "this.testId", "class.horizontal": "this.isHorizontal", "class.vertical": "this.isVertical" } }, viewQueries: [{ propertyName: "formRef", first: true, predicate: SmartformComponent, descendants: true, isSignal: true }, { propertyName: "embeddedSlotVcRefSetter", first: true, predicate: ["embeddedSlot"], descendants: true, read: ViewContainerRef }, { propertyName: "smartFormList", predicate: ["form"], descendants: true }, { propertyName: "smartGridList", predicate: ["grid"], descendants: true }, { propertyName: "smartMapList", predicate: ["map"], descendants: true }, { propertyName: "smartDiagramList", predicate: ["diagram"], descendants: true }, { propertyName: "smartFilterList", predicate: ["filter"], descendants: true }, { propertyName: "toolbarList", predicate: ["toolbar"], descendants: true }, { propertyName: "expandableComponents", predicate: ExpandableSectionComponent, descendants: true }, { propertyName: "components", predicate: SmartComponentLayoutComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"smartComponentLayout?.expandable; then expandable; else normal\"> </div>\n\n<ng-template #expandable>\n <smart-expandable-section\n *ngIf=\"expandableSection\"\n [data]=\"expandableSection\"\n ></smart-expandable-section>\n</ng-template>\n\n<ng-template #normal>\n @if (smartComponentLayout?.type === type().CONTAINER) {\n <smart-component-layout\n *ngFor=\"let layout of smartComponentLayout?.components\"\n [parentSmartComponent]=\"parentSmartComponent\"\n [parentLayoutComponent]=\"this\"\n [smartComponentLayout]=\"layout\"\n [gridRow]=\"gridRow\"\n ></smart-component-layout>\n }\n <smartform *ngIf=\"smartForm\" #form [smartForm]=\"smartForm\"></smartform>\n <smart-grid\n *ngIf=\"smartGrid\"\n #grid\n [smartGrid]=\"smartGrid\"\n [uuid]=\"uuid!\"\n [parentLayoutComponent]=\"this\"\n [parent]=\"parentSmartComponent\"\n ></smart-grid>\n <smart-map\n *ngIf=\"!!uuid && !!mapId\"\n #map\n [uuid]=\"uuid\"\n [identifier]=\"mapId\"\n [parent]=\"parentSmartComponent\"\n ></smart-map>\n <smart-diagram\n *ngIf=\"!!uuid && !!smartDiagramId\"\n #diagram\n [uuid]=\"uuid\"\n [identifier]=\"smartDiagramId\"\n [parent]=\"parentSmartComponent\"\n ></smart-diagram>\n <smart-filter-widget\n *ngIf=\"!!uuid && !!filterId\"\n #filter\n [uuid]=\"uuid\"\n [identifier]=\"filterId\"\n [parent]=\"parentSmartComponent\"\n ></smart-filter-widget>\n <smart-tree *ngIf=\"treeService\" [treeService]=\"treeService!\"></smart-tree>\n <smart-ui-action-toolbar\n *ngIf=\"!!toolbarId\"\n #toolbar\n [id]=\"toolbarId\"\n [toolbarPropertes]=\"toolbarPropertes\"\n ></smart-ui-action-toolbar>\n <ng-container *ngIf=\"embeddedSlotActive\" #embeddedSlot></ng-container>\n</ng-template>\n", styles: [":host(.horizontal){display:flex;flex-direction:row}:host(.vertical){display:flex;flex-direction:column}:host(.horizontal) smart-component-layout{display:flex}:host(.horizontal) smartform{flex:1;display:flex}\n"], dependencies: [{ 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: "component", type: SmartGridComponent, selector: "smart-grid", inputs: ["smartGrid", "uuid", "parent", "parentLayoutComponent", "dev"] }, { kind: "component", type: ExpandableSectionComponent, selector: "smart-expandable-section", inputs: ["data", "index"] }, { kind: "component", type: SmartTreeComponent, selector: "smart-tree", inputs: ["treeStyle", "treeService"] }, { kind: "component", type: UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: ["uiActionModels", "uiActionDescriptorService", "id", "scrollOnWrap", "toolbarPropertes"] }, { kind: "component", type: SmartformComponent, selector: "smartform", inputs: ["smartForm"] }, { kind: "component", type: SmartMapComponent, selector: "smart-map", inputs: ["uuid", "identifier", "parent"] }, { kind: "component", type: SmartDiagramComponent, selector: "smart-diagram", inputs: ["uuid", "identifier", "parent", "diagramModel", "options", "plugins"], outputs: ["elementSelect", "canvasClick", "dataClick"] }, { kind: "component", type: SmartFilterWidgetComponent, selector: "smart-filter-widget", inputs: ["uuid", "identifier", "parent"] }, { kind: "component", type: SmartComponentLayoutComponent, selector: "smart-component-layout", inputs: ["smartComponentLayout", "parentLayoutComponent", "parentSmartComponent", "gridRow"] }] }); }
|
|
23885
23807
|
}
|
|
23886
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type:
|
|
23887
|
-
type:
|
|
23888
|
-
|
|
23808
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartComponentLayoutComponent, decorators: [{
|
|
23809
|
+
type: Component,
|
|
23810
|
+
args: [{ selector: 'smart-component-layout', template: "<div *ngIf=\"smartComponentLayout?.expandable; then expandable; else normal\"> </div>\n\n<ng-template #expandable>\n <smart-expandable-section\n *ngIf=\"expandableSection\"\n [data]=\"expandableSection\"\n ></smart-expandable-section>\n</ng-template>\n\n<ng-template #normal>\n @if (smartComponentLayout?.type === type().CONTAINER) {\n <smart-component-layout\n *ngFor=\"let layout of smartComponentLayout?.components\"\n [parentSmartComponent]=\"parentSmartComponent\"\n [parentLayoutComponent]=\"this\"\n [smartComponentLayout]=\"layout\"\n [gridRow]=\"gridRow\"\n ></smart-component-layout>\n }\n <smartform *ngIf=\"smartForm\" #form [smartForm]=\"smartForm\"></smartform>\n <smart-grid\n *ngIf=\"smartGrid\"\n #grid\n [smartGrid]=\"smartGrid\"\n [uuid]=\"uuid!\"\n [parentLayoutComponent]=\"this\"\n [parent]=\"parentSmartComponent\"\n ></smart-grid>\n <smart-map\n *ngIf=\"!!uuid && !!mapId\"\n #map\n [uuid]=\"uuid\"\n [identifier]=\"mapId\"\n [parent]=\"parentSmartComponent\"\n ></smart-map>\n <smart-diagram\n *ngIf=\"!!uuid && !!smartDiagramId\"\n #diagram\n [uuid]=\"uuid\"\n [identifier]=\"smartDiagramId\"\n [parent]=\"parentSmartComponent\"\n ></smart-diagram>\n <smart-filter-widget\n *ngIf=\"!!uuid && !!filterId\"\n #filter\n [uuid]=\"uuid\"\n [identifier]=\"filterId\"\n [parent]=\"parentSmartComponent\"\n ></smart-filter-widget>\n <smart-tree *ngIf=\"treeService\" [treeService]=\"treeService!\"></smart-tree>\n <smart-ui-action-toolbar\n *ngIf=\"!!toolbarId\"\n #toolbar\n [id]=\"toolbarId\"\n [toolbarPropertes]=\"toolbarPropertes\"\n ></smart-ui-action-toolbar>\n <ng-container *ngIf=\"embeddedSlotActive\" #embeddedSlot></ng-container>\n</ng-template>\n", styles: [":host(.horizontal){display:flex;flex-direction:row}:host(.vertical){display:flex;flex-direction:column}:host(.horizontal) smart-component-layout{display:flex}:host(.horizontal) smartform{flex:1;display:flex}\n"] }]
|
|
23811
|
+
}], ctorParameters: () => [{ type: SmartformLayoutDefinitionService }, { type: SmartViewContextService }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { smartComponentLayout: [{
|
|
23812
|
+
type: Input
|
|
23813
|
+
}], parentLayoutComponent: [{
|
|
23814
|
+
type: Input
|
|
23815
|
+
}], parentSmartComponent: [{
|
|
23816
|
+
type: Input
|
|
23817
|
+
}], gridRow: [{
|
|
23818
|
+
type: Input
|
|
23819
|
+
}], testId: [{
|
|
23820
|
+
type: HostBinding,
|
|
23821
|
+
args: ['attr.data-testid']
|
|
23822
|
+
}], isHorizontal: [{
|
|
23823
|
+
type: HostBinding,
|
|
23824
|
+
args: ['class.horizontal']
|
|
23825
|
+
}], isVertical: [{
|
|
23826
|
+
type: HostBinding,
|
|
23827
|
+
args: ['class.vertical']
|
|
23828
|
+
}], smartFormList: [{
|
|
23829
|
+
type: ViewChildren,
|
|
23830
|
+
args: ['form']
|
|
23831
|
+
}], smartGridList: [{
|
|
23832
|
+
type: ViewChildren,
|
|
23833
|
+
args: ['grid']
|
|
23834
|
+
}], smartMapList: [{
|
|
23835
|
+
type: ViewChildren,
|
|
23836
|
+
args: ['map']
|
|
23837
|
+
}], smartDiagramList: [{
|
|
23838
|
+
type: ViewChildren,
|
|
23839
|
+
args: ['diagram']
|
|
23840
|
+
}], smartFilterList: [{
|
|
23841
|
+
type: ViewChildren,
|
|
23842
|
+
args: ['filter']
|
|
23843
|
+
}], toolbarList: [{
|
|
23844
|
+
type: ViewChildren,
|
|
23845
|
+
args: ['toolbar']
|
|
23846
|
+
}], embeddedSlotVcRefSetter: [{
|
|
23847
|
+
type: ViewChild,
|
|
23848
|
+
args: ['embeddedSlot', { read: ViewContainerRef, static: false }]
|
|
23849
|
+
}], expandableComponents: [{
|
|
23850
|
+
type: ViewChildren,
|
|
23851
|
+
args: [ExpandableSectionComponent]
|
|
23852
|
+
}], components: [{
|
|
23853
|
+
type: ViewChildren,
|
|
23854
|
+
args: [SmartComponentLayoutComponent]
|
|
23855
|
+
}] } });
|
|
23856
|
+
|
|
23857
|
+
const DEFAULT_PROVIDERS = [
|
|
23858
|
+
DefaultChartOptionsProvider,
|
|
23859
|
+
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: barChart, multi: true },
|
|
23860
|
+
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: scatterChart, multi: true },
|
|
23861
|
+
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: bubbleChart, multi: true },
|
|
23862
|
+
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: horizontalBarChart, multi: true },
|
|
23863
|
+
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: stackedBarChart, multi: true },
|
|
23864
|
+
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: horizontalStackedBarChart, multi: true },
|
|
23865
|
+
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: multiAxisLineChart, multi: true },
|
|
23866
|
+
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: polarAreaChart, multi: true },
|
|
23867
|
+
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: radarChart, multi: true },
|
|
23868
|
+
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: doughnutChart, multi: true },
|
|
23869
|
+
{ provide: CUSTOM_DIAGRAM_OPTIONS, useValue: pieChart, multi: true },
|
|
23870
|
+
];
|
|
23871
|
+
class SmartDiagramModule {
|
|
23872
|
+
static forRoot(providers) {
|
|
23873
|
+
return {
|
|
23874
|
+
ngModule: SmartDiagramModule,
|
|
23875
|
+
providers: [...DEFAULT_PROVIDERS, ...providers],
|
|
23876
|
+
};
|
|
23877
|
+
}
|
|
23878
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartDiagramModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
23879
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: SmartDiagramModule, declarations: [SmartDiagramComponent], imports: [BrowserModule, ChartModule], exports: [SmartDiagramComponent] }); }
|
|
23880
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartDiagramModule, imports: [BrowserModule, ChartModule] }); }
|
|
23881
|
+
}
|
|
23882
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartDiagramModule, decorators: [{
|
|
23883
|
+
type: NgModule,
|
|
23884
|
+
args: [{
|
|
23885
|
+
declarations: [SmartDiagramComponent],
|
|
23886
|
+
imports: [BrowserModule, ChartModule],
|
|
23887
|
+
exports: [SmartDiagramComponent],
|
|
23888
|
+
}]
|
|
23889
|
+
}] });
|
|
23889
23890
|
|
|
23890
23891
|
class SmartFilterEditorModule {
|
|
23891
23892
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartFilterEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
@@ -23896,7 +23897,8 @@ class SmartFilterEditorModule {
|
|
|
23896
23897
|
SmartFilterExpressionItemComponent,
|
|
23897
23898
|
AdvancedSmartFilterExpressionItemComponent,
|
|
23898
23899
|
AdvancedRelationButtonComponent,
|
|
23899
|
-
ExpressionEditorDialogComponent
|
|
23900
|
+
ExpressionEditorDialogComponent,
|
|
23901
|
+
SmartFilterWidgetComponent], imports: [CommonModule,
|
|
23900
23902
|
SmartIconModule,
|
|
23901
23903
|
SmartExpandableSectionModule,
|
|
23902
23904
|
SmartViewContextModule,
|
|
@@ -23909,7 +23911,8 @@ class SmartFilterEditorModule {
|
|
|
23909
23911
|
SmartFilterExpressionItemComponent,
|
|
23910
23912
|
AdvancedSmartFilterExpressionItemComponent,
|
|
23911
23913
|
AdvancedRelationButtonComponent,
|
|
23912
|
-
ExpressionEditorDialogComponent
|
|
23914
|
+
ExpressionEditorDialogComponent,
|
|
23915
|
+
SmartFilterWidgetComponent] }); }
|
|
23913
23916
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartFilterEditorModule, imports: [CommonModule,
|
|
23914
23917
|
SmartIconModule,
|
|
23915
23918
|
SmartExpandableSectionModule,
|
|
@@ -23930,6 +23933,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
23930
23933
|
AdvancedSmartFilterExpressionItemComponent,
|
|
23931
23934
|
AdvancedRelationButtonComponent,
|
|
23932
23935
|
ExpressionEditorDialogComponent,
|
|
23936
|
+
SmartFilterWidgetComponent,
|
|
23933
23937
|
],
|
|
23934
23938
|
imports: [
|
|
23935
23939
|
CommonModule,
|
|
@@ -23949,7 +23953,55 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
23949
23953
|
AdvancedSmartFilterExpressionItemComponent,
|
|
23950
23954
|
AdvancedRelationButtonComponent,
|
|
23951
23955
|
ExpressionEditorDialogComponent,
|
|
23956
|
+
SmartFilterWidgetComponent,
|
|
23957
|
+
],
|
|
23958
|
+
providers: [],
|
|
23959
|
+
}]
|
|
23960
|
+
}] });
|
|
23961
|
+
|
|
23962
|
+
class SmartComponentLayoutModule {
|
|
23963
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartComponentLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
23964
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.11", ngImport: i0, type: SmartComponentLayoutModule, declarations: [SmartComponentLayoutComponent], imports: [BrowserModule,
|
|
23965
|
+
MatCommonModule,
|
|
23966
|
+
SmartGridModule,
|
|
23967
|
+
SmartExpandableSectionModule,
|
|
23968
|
+
SmarttreeModule,
|
|
23969
|
+
SmartViewContextModule,
|
|
23970
|
+
SmartMapModule,
|
|
23971
|
+
SmartDiagramModule,
|
|
23972
|
+
SmartFilterEditorModule,
|
|
23973
|
+
InputGroupModule,
|
|
23974
|
+
InputGroupAddonModule], exports: [SmartComponentLayoutComponent] }); }
|
|
23975
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartComponentLayoutModule, imports: [BrowserModule,
|
|
23976
|
+
MatCommonModule,
|
|
23977
|
+
SmartGridModule,
|
|
23978
|
+
SmartExpandableSectionModule,
|
|
23979
|
+
SmarttreeModule,
|
|
23980
|
+
SmartViewContextModule,
|
|
23981
|
+
SmartMapModule,
|
|
23982
|
+
SmartDiagramModule,
|
|
23983
|
+
SmartFilterEditorModule,
|
|
23984
|
+
InputGroupModule,
|
|
23985
|
+
InputGroupAddonModule] }); }
|
|
23986
|
+
}
|
|
23987
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: SmartComponentLayoutModule, decorators: [{
|
|
23988
|
+
type: NgModule,
|
|
23989
|
+
args: [{
|
|
23990
|
+
declarations: [SmartComponentLayoutComponent],
|
|
23991
|
+
imports: [
|
|
23992
|
+
BrowserModule,
|
|
23993
|
+
MatCommonModule,
|
|
23994
|
+
SmartGridModule,
|
|
23995
|
+
SmartExpandableSectionModule,
|
|
23996
|
+
SmarttreeModule,
|
|
23997
|
+
SmartViewContextModule,
|
|
23998
|
+
SmartMapModule,
|
|
23999
|
+
SmartDiagramModule,
|
|
24000
|
+
SmartFilterEditorModule,
|
|
24001
|
+
InputGroupModule,
|
|
24002
|
+
InputGroupAddonModule,
|
|
23952
24003
|
],
|
|
24004
|
+
exports: [SmartComponentLayoutComponent],
|
|
23953
24005
|
providers: [],
|
|
23954
24006
|
}]
|
|
23955
24007
|
}] });
|
|
@@ -24536,6 +24588,9 @@ class SmartComponentApiClient {
|
|
|
24536
24588
|
}
|
|
24537
24589
|
getAllSmartFilterEditorContentComponents() {
|
|
24538
24590
|
let filters = this.getSmartFilterEditorContentComponentsQL()?.toArray() ?? [];
|
|
24591
|
+
this.getSmartComponentLayoutsQL()?.forEach((comp) => {
|
|
24592
|
+
filters.push(...SmartComponentLayoutUtility.getFilters(comp));
|
|
24593
|
+
});
|
|
24539
24594
|
return filters;
|
|
24540
24595
|
}
|
|
24541
24596
|
getAllSmartUiActionToolbars() {
|
|
@@ -25997,5 +26052,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
|
|
|
25997
26052
|
* Generated bundle index. Do not edit.
|
|
25998
26053
|
*/
|
|
25999
26054
|
|
|
26000
|
-
export { APIS$5 as APIS, AbstractMap, AclEditingViewComponent, AdvancedRelationButtonComponent, AdvancedSmartFilterExpressionItemComponent, ApiModule$5 as ApiModule, ApiQueueService, BASE_PATH$7 as BASE_PATH, COLLECTION_FORMATS$7 as COLLECTION_FORMATS, COMPONENT_LIBRARY, CUSTOM_DIAGRAM_OPTIONS, ClickMenuComponent, CloseResult, ComparableDropdownDirective, ComparableMultiselectDirective, ComponentFactoryService, ComponentFactoryServiceModule, ComponentLibrary, ComponentType, ComponentWidgetType, Configuration$7 as Configuration, DIALOG_DISABLE_CLOSE, DataChangeKind, DefaultChartOptionsProvider, DefaultUiActionCode_CLOSE, DrawTime, EMPTY_PARAMS, ExpandableSectionButtonIconPosition, ExpandableSectionButtonType, ExpandableSectionComponent, ExpressionEditorDialogComponent, FilterExpressionBoolOperator$1 as FilterExpressionBoolOperator, FilterExpressionBuilderGroupBuilderGroupKindEnum, FilterExpressionDataType, FilterExpressionFieldWidgetType, FilterExpressionOperation, FilterExpressionOrderByOrderEnum, GenericPageComponent, GeoMapDataLoadingMode, GeoMapDataSourceType, GeoMapItemKind, GeoMapOperationMode, GeoMapSelectionMode, GeoMapTextType, GoogleMap, GridColumnContentType, GridDataAccessConfigKindEnum, GridSelectionMode, GridSelectionType, GridUiActionType, GridViewDescriptorKindEnum, HighlightPipe, HoverMenuComponent, IS_ASYNC_PARAM_NAME, IconPosition, ImageResourceKindEnum, InvalidSmartlinkComponent, LayoutDirection, LeafletMap, LinkTargetEnum, MAP_ENGINE, MapEngine, MenuOpenDirection, MenuTriggerType, MessageOptionType, MessageTextType, MessageType, NAMED_VALIDATOR, NamedValidatorOperationEnum, NamedValidatorService, NoPermissionPageComponent, PhotoCaptureWidgetComponent, REUSE_ROUTER_SLOT_COMPONENT, ROOT_CONTAINER_UUID, ROUTER_SLOT_ID, RecordingUploaderPropertiesOpenDirectionEnum, SMART_DEFAULT_VIEW_COMPONENTS, SearchPageComponent, SelectionDefinitionTypeEnum, SelectionDefinitionValueSetValueTypeEnum, ServerRequestType, SessionAPIS, SessionErrorBehaviour, SessionService, SharedModule, SmartActionType, SmartBackendBootstrapService, SmartComponent, SmartComponentApiClient, SmartComponentLayoutComponent, SmartComponentLayoutModule, SmartComponentLayoutUtility, SmartDatePipe, SmartDateTimePipe, SmartDefaultErrorUiService, SmartDiagramComponent, SmartDiagramModule, SmartDialog, SmartEmbeddedSlotDirective, SmartExpandableSectionModule, SmartExpandableSectionService, SmartFileEditorComponent, SmartFileUploaderComponent, SmartFilterComponent, SmartFilterEditorContentComponent, SmartFilterEditorModule, SmartFilterEditorService, SmartFilterExpressionItemComponent, SmartFilterExpressionItemsComponent, SmartFilterModule, SmartFilterParamComponent, SmartFilterParamsComponent, SmartFilterPosition, SmartFilterType, SmartFormInputMode, SmartFormTextFieldButtonIconPosition, SmartFormWidgetDirection, SmartFormWidgetType, SmartFormWidgetWidth, SmartGenericPagesModule, SmartGridButtonType, SmartGridComponent, SmartGridDataLayout, SmartGridModule, SmartGridService, SmartGridType, SmartIconComponent, SmartIconModule, SmartIconService, SmartLayoutDef, SmartLinkChannelVariableInPath, SmartLinkMigrationStatusStatusEnum, SmartLinkUuidVariableInPath, SmartMapComponent, SmartMapModule, SmartMultiFileEditorComponent, SmartNavbarComponent, SmartNavbarModule, SmartNavbarService, SmartNavigationModule, SmartNavigationService, SmartNgClientModule, SmartNgClientService, SmartService, SmartSessionModule, SmartSessionService, SmartSessionTimerComponent, SmartSubject, SmartTabGroupModule, SmartTable, SmartTableButtonType, SmartTableHeaderPropertyType, SmartTableInterfaceTypeEnum, SmartTableOptionButtonDirection, SmartTableOrder, SmartTableType, SmartTimePipe, SmartTooltipDirective, SmartTreeComponent, SmartTreeNodeButtonType, SmartUserSettinsIconPosition, SmartValidationModule, SmartValidatorName, SmartViewContextErrorDialogButtonLabel, SmartViewContextErrorDialogMessage, SmartViewContextErrorDialogTitle, SmartViewContextModule, SmartViewContextService, SmartViewRedirect, SmartVoiceRecorderComponent, SmartWidgetHintPosition, SmartWidgetHintPositionEnum, SmartWidgetSettings, SmartdialogModule, SmartdialogService, SmartfileuploaderComponent, SmartformComponent, SmartformLayoutDefinitionService, SmartformwidgetComponent, SmarttableComponent, SmarttableModule, SmarttableService, SmarttreeGenericService, SmarttreeModule, SmarttreeService, SubjectSelectorComponent, ThemeService, ToggleLabelPosition, ToolbarAlignment, ToolbarDirection, USE_ADVANCED_FILTER, UiActionButtonComponent, UiActionButtonType, UiActionConfirmDialogComponent, UiActionConfirmDialogService, UiActionDescriptorService, UiActionDialogButtonComponent, UiActionDialogType, UiActionFeedbackType, UiActionInputDialogComponent, UiActionInputDialogService, UiActionInputType, UiActionService, UiActionToolbarComponent, UiActionTooltipTooltipPositionEnum, UiBadgeComponent, UiBadgeDirective, UploadWidgetComponent, UploadWidgetType, ValidationResultPageComponent, ValueChangeMode, ViewContextRebuiltError, ViewEventHandlerViewEventTypeEnum, ViewService, ViewState, ViewType, VoiceRecordWidgetComponent, barChart, bubbleChart, createBasicOptions, doughnutChart, horizontalBarChart, horizontalStackedBarChart, multiAxisLineChart, pieChart, polarAreaChart, radarChart, resolveSlot, resolveViewHandler, scatterChart, stackedBarChart, transformDataToBarLikeDataSet, transformDataToBasicDataSets, transformDataToBubble, transformDataToScatter };
|
|
26055
|
+
export { APIS$5 as APIS, AbstractMap, AclEditingViewComponent, AdvancedRelationButtonComponent, AdvancedSmartFilterExpressionItemComponent, ApiModule$5 as ApiModule, ApiQueueService, BASE_PATH$7 as BASE_PATH, COLLECTION_FORMATS$7 as COLLECTION_FORMATS, COMPONENT_LIBRARY, CUSTOM_DIAGRAM_OPTIONS, ClickMenuComponent, CloseResult, ComparableDropdownDirective, ComparableMultiselectDirective, ComponentFactoryService, ComponentFactoryServiceModule, ComponentLibrary, ComponentType, ComponentWidgetType, Configuration$7 as Configuration, DIALOG_DISABLE_CLOSE, DataChangeKind, DefaultChartOptionsProvider, DefaultUiActionCode_CLOSE, DrawTime, EMPTY_PARAMS, ExpandableSectionButtonIconPosition, ExpandableSectionButtonType, ExpandableSectionComponent, ExpressionEditorDialogComponent, FilterExpressionBoolOperator$1 as FilterExpressionBoolOperator, FilterExpressionBuilderGroupBuilderGroupKindEnum, FilterExpressionDataType, FilterExpressionFieldWidgetType, FilterExpressionOperation, FilterExpressionOrderByOrderEnum, GenericPageComponent, GeoMapDataLoadingMode, GeoMapDataSourceType, GeoMapItemKind, GeoMapOperationMode, GeoMapSelectionMode, GeoMapTextType, GoogleMap, GridColumnContentType, GridDataAccessConfigKindEnum, GridSelectionMode, GridSelectionType, GridUiActionType, GridViewDescriptorKindEnum, HighlightPipe, HoverMenuComponent, IS_ASYNC_PARAM_NAME, IconPosition, ImageResourceKindEnum, InvalidSmartlinkComponent, LayoutDirection, LeafletMap, LinkTargetEnum, MAP_ENGINE, MapEngine, MenuOpenDirection, MenuTriggerType, MessageOptionType, MessageTextType, MessageType, NAMED_VALIDATOR, NamedValidatorOperationEnum, NamedValidatorService, NoPermissionPageComponent, PhotoCaptureWidgetComponent, REUSE_ROUTER_SLOT_COMPONENT, ROOT_CONTAINER_UUID, ROUTER_SLOT_ID, RecordingUploaderPropertiesOpenDirectionEnum, SMART_DEFAULT_VIEW_COMPONENTS, SearchPageComponent, SelectionDefinitionTypeEnum, SelectionDefinitionValueSetValueTypeEnum, ServerRequestType, SessionAPIS, SessionErrorBehaviour, SessionService, SharedModule, SmartActionType, SmartBackendBootstrapService, SmartComponent, SmartComponentApiClient, SmartComponentLayoutComponent, SmartComponentLayoutModule, SmartComponentLayoutUtility, SmartDatePipe, SmartDateTimePipe, SmartDefaultErrorUiService, SmartDiagramComponent, SmartDiagramModule, SmartDialog, SmartEmbeddedSlotDirective, SmartExpandableSectionModule, SmartExpandableSectionService, SmartFileEditorComponent, SmartFileUploaderComponent, SmartFilterComponent, SmartFilterEditorContentComponent, SmartFilterEditorModule, SmartFilterEditorService, SmartFilterExpressionItemComponent, SmartFilterExpressionItemsComponent, SmartFilterModule, SmartFilterParamComponent, SmartFilterParamsComponent, SmartFilterPosition, SmartFilterType, SmartFilterWidgetComponent, SmartFormInputMode, SmartFormTextFieldButtonIconPosition, SmartFormWidgetDirection, SmartFormWidgetType, SmartFormWidgetWidth, SmartGenericPagesModule, SmartGridButtonType, SmartGridComponent, SmartGridDataLayout, SmartGridModule, SmartGridService, SmartGridType, SmartIconComponent, SmartIconModule, SmartIconService, SmartLayoutDef, SmartLinkChannelVariableInPath, SmartLinkMigrationStatusStatusEnum, SmartLinkUuidVariableInPath, SmartMapComponent, SmartMapModule, SmartMultiFileEditorComponent, SmartNavbarComponent, SmartNavbarModule, SmartNavbarService, SmartNavigationModule, SmartNavigationService, SmartNgClientModule, SmartNgClientService, SmartService, SmartSessionModule, SmartSessionService, SmartSessionTimerComponent, SmartSubject, SmartTabGroupModule, SmartTable, SmartTableButtonType, SmartTableHeaderPropertyType, SmartTableInterfaceTypeEnum, SmartTableOptionButtonDirection, SmartTableOrder, SmartTableType, SmartTimePipe, SmartTooltipDirective, SmartTreeComponent, SmartTreeNodeButtonType, SmartUserSettinsIconPosition, SmartValidationModule, SmartValidatorName, SmartViewContextErrorDialogButtonLabel, SmartViewContextErrorDialogMessage, SmartViewContextErrorDialogTitle, SmartViewContextModule, SmartViewContextService, SmartViewRedirect, SmartVoiceRecorderComponent, SmartWidgetHintPosition, SmartWidgetHintPositionEnum, SmartWidgetSettings, SmartdialogModule, SmartdialogService, SmartfileuploaderComponent, SmartformComponent, SmartformLayoutDefinitionService, SmartformwidgetComponent, SmarttableComponent, SmarttableModule, SmarttableService, SmarttreeGenericService, SmarttreeModule, SmarttreeService, SubjectSelectorComponent, ThemeService, ToggleLabelPosition, ToolbarAlignment, ToolbarDirection, USE_ADVANCED_FILTER, UiActionButtonComponent, UiActionButtonType, UiActionConfirmDialogComponent, UiActionConfirmDialogService, UiActionDescriptorService, UiActionDialogButtonComponent, UiActionDialogType, UiActionFeedbackType, UiActionInputDialogComponent, UiActionInputDialogService, UiActionInputType, UiActionService, UiActionToolbarComponent, UiActionTooltipTooltipPositionEnum, UiBadgeComponent, UiBadgeDirective, UploadWidgetComponent, UploadWidgetType, ValidationResultPageComponent, ValueChangeMode, ViewContextRebuiltError, ViewEventHandlerViewEventTypeEnum, ViewService, ViewState, ViewType, VoiceRecordWidgetComponent, barChart, bubbleChart, createBasicOptions, doughnutChart, horizontalBarChart, horizontalStackedBarChart, multiAxisLineChart, pieChart, polarAreaChart, radarChart, resolveSlot, resolveViewHandler, scatterChart, stackedBarChart, transformDataToBarLikeDataSet, transformDataToBasicDataSets, transformDataToBubble, transformDataToScatter };
|
|
26001
26056
|
//# sourceMappingURL=smartbit4all-ng-client.mjs.map
|