@yuuvis/client-framework 3.0.0-beta.20.1 → 3.0.0-beta.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/yuuvis-client-framework-actions.mjs +25 -25
- package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-app-bar.mjs +6 -6
- package/fesm2022/yuuvis-client-framework-app-bar.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-autocomplete.mjs +22 -22
- package/fesm2022/yuuvis-client-framework-autocomplete.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-breadcrumb.mjs +4 -4
- package/fesm2022/yuuvis-client-framework-breadcrumb.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-clipboard.mjs +7 -6
- package/fesm2022/yuuvis-client-framework-clipboard.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-common.mjs +135 -135
- package/fesm2022/yuuvis-client-framework-common.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-datepicker.mjs +51 -51
- package/fesm2022/yuuvis-client-framework-datepicker.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-forms.mjs +154 -167
- package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-icons.mjs +14 -14
- package/fesm2022/yuuvis-client-framework-icons.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-list.mjs +34 -46
- package/fesm2022/yuuvis-client-framework-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-master-details.mjs +14 -14
- package/fesm2022/yuuvis-client-framework-master-details.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs +7 -7
- package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs +28 -28
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-details.mjs +92 -95
- package/fesm2022/yuuvis-client-framework-object-details.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs +46 -44
- package/fesm2022/yuuvis-client-framework-object-flavor.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-form.mjs +47 -47
- package/fesm2022/yuuvis-client-framework-object-form.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-preview.mjs +37 -58
- package/fesm2022/yuuvis-client-framework-object-preview.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-relationship.mjs +80 -80
- package/fesm2022/yuuvis-client-framework-object-relationship.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-summary.mjs +37 -38
- package/fesm2022/yuuvis-client-framework-object-summary.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-versions.mjs +20 -20
- package/fesm2022/yuuvis-client-framework-object-versions.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-overflow-hidden.mjs +9 -9
- package/fesm2022/yuuvis-client-framework-overflow-hidden.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-overflow-menu.mjs +15 -15
- package/fesm2022/yuuvis-client-framework-overflow-menu.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-pagination.mjs +5 -5
- package/fesm2022/yuuvis-client-framework-pagination.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-popout.mjs +21 -21
- package/fesm2022/yuuvis-client-framework-popout.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-query-list.mjs +26 -28
- package/fesm2022/yuuvis-client-framework-query-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-renderer.mjs +51 -51
- package/fesm2022/yuuvis-client-framework-renderer.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-sequence-list.mjs +7 -7
- package/fesm2022/yuuvis-client-framework-sequence-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-simple-search.mjs +4 -4
- package/fesm2022/yuuvis-client-framework-simple-search.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-sort.mjs +34 -55
- package/fesm2022/yuuvis-client-framework-sort.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-split-view.mjs +33 -36
- package/fesm2022/yuuvis-client-framework-split-view.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-tile-list.mjs +88 -90
- package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-token-search.mjs +21 -21
- package/fesm2022/yuuvis-client-framework-token-search.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-tree.mjs +16 -16
- package/fesm2022/yuuvis-client-framework-tree.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-upload-progress.mjs +15 -15
- package/fesm2022/yuuvis-client-framework-upload-progress.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-widget-grid.mjs +59 -63
- package/fesm2022/yuuvis-client-framework-widget-grid.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework.mjs +22 -22
- package/fesm2022/yuuvis-client-framework.mjs.map +1 -1
- package/package.json +49 -48
- package/{clipboard/index.d.ts → types/yuuvis-client-framework-clipboard.d.ts} +1 -1
- package/{object-flavor/index.d.ts → types/yuuvis-client-framework-object-flavor.d.ts} +1 -0
- package/{renderer/index.d.ts → types/yuuvis-client-framework-renderer.d.ts} +2 -2
- package/{widget-grid/index.d.ts → types/yuuvis-client-framework-widget-grid.d.ts} +3 -3
- /package/{actions/index.d.ts → types/yuuvis-client-framework-actions.d.ts} +0 -0
- /package/{app-bar/index.d.ts → types/yuuvis-client-framework-app-bar.d.ts} +0 -0
- /package/{autocomplete/index.d.ts → types/yuuvis-client-framework-autocomplete.d.ts} +0 -0
- /package/{breadcrumb/index.d.ts → types/yuuvis-client-framework-breadcrumb.d.ts} +0 -0
- /package/{common/index.d.ts → types/yuuvis-client-framework-common.d.ts} +0 -0
- /package/{datepicker/index.d.ts → types/yuuvis-client-framework-datepicker.d.ts} +0 -0
- /package/{forms/index.d.ts → types/yuuvis-client-framework-forms.d.ts} +0 -0
- /package/{icons/index.d.ts → types/yuuvis-client-framework-icons.d.ts} +0 -0
- /package/{list/index.d.ts → types/yuuvis-client-framework-list.d.ts} +0 -0
- /package/{master-details/index.d.ts → types/yuuvis-client-framework-master-details.d.ts} +0 -0
- /package/{metadata-form-defaults/index.d.ts → types/yuuvis-client-framework-metadata-form-defaults.d.ts} +0 -0
- /package/{metadata-form/index.d.ts → types/yuuvis-client-framework-metadata-form.d.ts} +0 -0
- /package/{object-details/index.d.ts → types/yuuvis-client-framework-object-details.d.ts} +0 -0
- /package/{object-form/index.d.ts → types/yuuvis-client-framework-object-form.d.ts} +0 -0
- /package/{object-preview/index.d.ts → types/yuuvis-client-framework-object-preview.d.ts} +0 -0
- /package/{object-relationship/index.d.ts → types/yuuvis-client-framework-object-relationship.d.ts} +0 -0
- /package/{object-summary/index.d.ts → types/yuuvis-client-framework-object-summary.d.ts} +0 -0
- /package/{object-versions/index.d.ts → types/yuuvis-client-framework-object-versions.d.ts} +0 -0
- /package/{overflow-hidden/index.d.ts → types/yuuvis-client-framework-overflow-hidden.d.ts} +0 -0
- /package/{overflow-menu/index.d.ts → types/yuuvis-client-framework-overflow-menu.d.ts} +0 -0
- /package/{pagination/index.d.ts → types/yuuvis-client-framework-pagination.d.ts} +0 -0
- /package/{popout/index.d.ts → types/yuuvis-client-framework-popout.d.ts} +0 -0
- /package/{query-list/index.d.ts → types/yuuvis-client-framework-query-list.d.ts} +0 -0
- /package/{sequence-list/index.d.ts → types/yuuvis-client-framework-sequence-list.d.ts} +0 -0
- /package/{simple-search/index.d.ts → types/yuuvis-client-framework-simple-search.d.ts} +0 -0
- /package/{sort/index.d.ts → types/yuuvis-client-framework-sort.d.ts} +0 -0
- /package/{split-view/index.d.ts → types/yuuvis-client-framework-split-view.d.ts} +0 -0
- /package/{tile-list/index.d.ts → types/yuuvis-client-framework-tile-list.d.ts} +0 -0
- /package/{token-search/index.d.ts → types/yuuvis-client-framework-token-search.d.ts} +0 -0
- /package/{tree/index.d.ts → types/yuuvis-client-framework-tree.d.ts} +0 -0
- /package/{upload-progress/index.d.ts → types/yuuvis-client-framework-upload-progress.d.ts} +0 -0
- /package/{index.d.ts → types/yuuvis-client-framework.d.ts} +0 -0
|
@@ -32,7 +32,7 @@ import { TranslatePipe as TranslatePipe$1 } from '@ngx-translate/core';
|
|
|
32
32
|
|
|
33
33
|
class TileActionsMenuComponent {
|
|
34
34
|
constructor() {
|
|
35
|
-
this.actions = input.required(...(ngDevMode ? [{ debugName: "actions" }] : []));
|
|
35
|
+
this.actions = input.required(...(ngDevMode ? [{ debugName: "actions" }] : /* istanbul ignore next */ []));
|
|
36
36
|
this.itemSelect = output();
|
|
37
37
|
this.matMenu = viewChild.required('menuRef');
|
|
38
38
|
}
|
|
@@ -41,8 +41,8 @@ class TileActionsMenuComponent {
|
|
|
41
41
|
event.preventDefault();
|
|
42
42
|
this.itemSelect.emit(action);
|
|
43
43
|
}
|
|
44
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
45
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
44
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TileActionsMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
45
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: TileActionsMenuComponent, isStandalone: true, selector: "yuv-tile-actions-menu", inputs: { actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { itemSelect: "itemSelect" }, providers: [{ provide: MAT_TOOLTIP_DEFAULT_OPTIONS, useValue: { position: 'right' } }], viewQueries: [{ propertyName: "matMenu", first: true, predicate: ["menuRef"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
46
46
|
<mat-menu #menuRef>
|
|
47
47
|
@for (action of actions(); track action.id) {
|
|
48
48
|
<button
|
|
@@ -60,7 +60,7 @@ class TileActionsMenuComponent {
|
|
|
60
60
|
</mat-menu>
|
|
61
61
|
`, isInline: true, styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: 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: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
62
62
|
}
|
|
63
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TileActionsMenuComponent, decorators: [{
|
|
64
64
|
type: Component,
|
|
65
65
|
args: [{ selector: 'yuv-tile-actions-menu', imports: [MatMenu, MatIcon, MatMenuItem, MatTooltip], template: `
|
|
66
66
|
<mat-menu #menuRef>
|
|
@@ -104,10 +104,10 @@ class TileExtensionService {
|
|
|
104
104
|
getTileExtension(typeId) {
|
|
105
105
|
return this._extensions[typeId];
|
|
106
106
|
}
|
|
107
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
108
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
107
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TileExtensionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
108
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TileExtensionService, providedIn: 'root' }); }
|
|
109
109
|
}
|
|
110
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
110
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TileExtensionService, decorators: [{
|
|
111
111
|
type: Injectable,
|
|
112
112
|
args: [{
|
|
113
113
|
providedIn: 'root'
|
|
@@ -118,7 +118,7 @@ class TileExtensionDirective {
|
|
|
118
118
|
constructor() {
|
|
119
119
|
this.#tileExtensioService = inject(TileExtensionService);
|
|
120
120
|
this.#containerRef = inject(ViewContainerRef);
|
|
121
|
-
this.yuvTileExtension = input.required(...(ngDevMode ? [{ debugName: "yuvTileExtension" }] : []));
|
|
121
|
+
this.yuvTileExtension = input.required(...(ngDevMode ? [{ debugName: "yuvTileExtension" }] : /* istanbul ignore next */ []));
|
|
122
122
|
this.#yuvTileExtensionEffect = effect(() => {
|
|
123
123
|
const tile = this.yuvTileExtension();
|
|
124
124
|
if (tile.typeId) {
|
|
@@ -126,7 +126,7 @@ class TileExtensionDirective {
|
|
|
126
126
|
if (ext)
|
|
127
127
|
this._render(ext, tile.data);
|
|
128
128
|
}
|
|
129
|
-
}, ...(ngDevMode ? [{ debugName: "#yuvTileExtensionEffect" }] : []));
|
|
129
|
+
}, ...(ngDevMode ? [{ debugName: "#yuvTileExtensionEffect" }] : /* istanbul ignore next */ []));
|
|
130
130
|
}
|
|
131
131
|
#tileExtensioService;
|
|
132
132
|
#containerRef;
|
|
@@ -137,10 +137,10 @@ class TileExtensionDirective {
|
|
|
137
137
|
this.component = this.#containerRef.createComponent(ext.cmp);
|
|
138
138
|
this.component.setInput('data', data);
|
|
139
139
|
}
|
|
140
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
141
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
140
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TileExtensionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
141
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: TileExtensionDirective, isStandalone: true, selector: "[yuvTileExtension]", inputs: { yuvTileExtension: { classPropertyName: "yuvTileExtension", publicName: "yuvTileExtension", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
|
|
142
142
|
}
|
|
143
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
143
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TileExtensionDirective, decorators: [{
|
|
144
144
|
type: Directive,
|
|
145
145
|
args: [{
|
|
146
146
|
selector: '[yuvTileExtension]',
|
|
@@ -237,7 +237,7 @@ class TileListComponent {
|
|
|
237
237
|
* </yuv-tile-list>
|
|
238
238
|
* ```
|
|
239
239
|
*/
|
|
240
|
-
this.menuComponent = contentChild(TileActionsMenuComponent, ...(ngDevMode ? [{ debugName: "menuComponent" }] : []));
|
|
240
|
+
this.menuComponent = contentChild(TileActionsMenuComponent, ...(ngDevMode ? [{ debugName: "menuComponent" }] : /* istanbul ignore next */ []));
|
|
241
241
|
/**
|
|
242
242
|
* Optional projected element shown when the query returns an empty result set.
|
|
243
243
|
*
|
|
@@ -248,7 +248,7 @@ class TileListComponent {
|
|
|
248
248
|
* </yuv-tile-list>
|
|
249
249
|
* ```
|
|
250
250
|
*/
|
|
251
|
-
this.emptyContent = contentChild('empty', ...(ngDevMode ? [{ debugName: "emptyContent" }] : []));
|
|
251
|
+
this.emptyContent = contentChild('empty', ...(ngDevMode ? [{ debugName: "emptyContent" }] : /* istanbul ignore next */ []));
|
|
252
252
|
/**
|
|
253
253
|
* Reference to the inner `QueryListComponent` instance.
|
|
254
254
|
*
|
|
@@ -263,7 +263,7 @@ class TileListComponent {
|
|
|
263
263
|
* Used by `#closeMenuEffect` to close every open context/action menu when the user
|
|
264
264
|
* selects a menu item, ensuring only one menu is open at a time.
|
|
265
265
|
*/
|
|
266
|
-
this.menuTriggers = viewChildren(MatMenuTrigger, ...(ngDevMode ? [{ debugName: "menuTriggers" }] : []));
|
|
266
|
+
this.menuTriggers = viewChildren(MatMenuTrigger, ...(ngDevMode ? [{ debugName: "menuTriggers" }] : /* istanbul ignore next */ []));
|
|
267
267
|
/**
|
|
268
268
|
* Namespace key for storing and retrieving this instance's tile configuration.
|
|
269
269
|
*
|
|
@@ -275,7 +275,7 @@ class TileListComponent {
|
|
|
275
275
|
* Use a unique, stable string — e.g. `"my-app.inbox-list"`. If omitted, the global
|
|
276
276
|
* default configuration is used.
|
|
277
277
|
*/
|
|
278
|
-
this.bucket = input(...(ngDevMode ? [undefined, { debugName: "bucket" }] : []));
|
|
278
|
+
this.bucket = input(...(ngDevMode ? [undefined, { debugName: "bucket" }] : /* istanbul ignore next */ []));
|
|
279
279
|
/**
|
|
280
280
|
* Number of result items to request per page from the search service.
|
|
281
281
|
*
|
|
@@ -285,7 +285,7 @@ class TileListComponent {
|
|
|
285
285
|
*
|
|
286
286
|
* @default SearchService.DEFAULT_QUERY_SIZE
|
|
287
287
|
*/
|
|
288
|
-
this.pageSize = input(SearchService.DEFAULT_QUERY_SIZE, ...(ngDevMode ? [{ debugName: "pageSize" }] : []));
|
|
288
|
+
this.pageSize = input(SearchService.DEFAULT_QUERY_SIZE, ...(ngDevMode ? [{ debugName: "pageSize" }] : /* istanbul ignore next */ []));
|
|
289
289
|
/**
|
|
290
290
|
* Enables multi-selection mode.
|
|
291
291
|
*
|
|
@@ -296,7 +296,7 @@ class TileListComponent {
|
|
|
296
296
|
*
|
|
297
297
|
* @default false
|
|
298
298
|
*/
|
|
299
|
-
this.multiselect = input(false, ...(ngDevMode ? [{ debugName: "multiselect" }] : []));
|
|
299
|
+
this.multiselect = input(false, ...(ngDevMode ? [{ debugName: "multiselect" }] : /* istanbul ignore next */ []));
|
|
300
300
|
/**
|
|
301
301
|
* Renders tiles in a compact, reduced-height style.
|
|
302
302
|
*
|
|
@@ -305,7 +305,7 @@ class TileListComponent {
|
|
|
305
305
|
*
|
|
306
306
|
* @default false
|
|
307
307
|
*/
|
|
308
|
-
this.dense = input(false, ...(ngDevMode ? [{ debugName: "dense" }] : []));
|
|
308
|
+
this.dense = input(false, ...(ngDevMode ? [{ debugName: "dense" }] : /* istanbul ignore next */ []));
|
|
309
309
|
/**
|
|
310
310
|
* Extended configuration options for the tile list.
|
|
311
311
|
*
|
|
@@ -315,7 +315,7 @@ class TileListComponent {
|
|
|
315
315
|
* - `configTypes` — virtual config type overrides that let you map specific
|
|
316
316
|
* object-type / SOT combinations to a different `ObjectConfigRecord` entry.
|
|
317
317
|
*/
|
|
318
|
-
this.options = input(undefined, ...(ngDevMode ? [{ debugName: "options" }] : []));
|
|
318
|
+
this.options = input(undefined, ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
|
|
319
319
|
/**
|
|
320
320
|
* Object flavor to overlay on matching tiles.
|
|
321
321
|
*
|
|
@@ -327,7 +327,7 @@ class TileListComponent {
|
|
|
327
327
|
* Changes are applied reactively via `#flavorEffect` and re-evaluated against the
|
|
328
328
|
* last raw result set via `applyFlavor()`.
|
|
329
329
|
*/
|
|
330
|
-
this.flavor = input(...(ngDevMode ? [undefined, { debugName: "flavor" }] : []));
|
|
330
|
+
this.flavor = input(...(ngDevMode ? [undefined, { debugName: "flavor" }] : /* istanbul ignore next */ []));
|
|
331
331
|
/**
|
|
332
332
|
* The search query to execute.
|
|
333
333
|
*
|
|
@@ -336,7 +336,7 @@ class TileListComponent {
|
|
|
336
336
|
* `system:objectTypeId` field — tiles without a resolved object type will throw at
|
|
337
337
|
* mapping time.
|
|
338
338
|
*/
|
|
339
|
-
this.query = input(...(ngDevMode ? [undefined, { debugName: "query" }] : []));
|
|
339
|
+
this.query = input(...(ngDevMode ? [undefined, { debugName: "query" }] : /* istanbul ignore next */ []));
|
|
340
340
|
/**
|
|
341
341
|
* Object IDs to select as soon as the list finishes loading.
|
|
342
342
|
*
|
|
@@ -348,7 +348,7 @@ class TileListComponent {
|
|
|
348
348
|
*
|
|
349
349
|
* @default []
|
|
350
350
|
*/
|
|
351
|
-
this.preselect = input([], ...(ngDevMode ? [{ debugName: "preselect" }] : []));
|
|
351
|
+
this.preselect = input([], ...(ngDevMode ? [{ debugName: "preselect" }] : /* istanbul ignore next */ []));
|
|
352
352
|
/**
|
|
353
353
|
* Per-item CSS style overrides rendered as inline styles on matching tiles.
|
|
354
354
|
*
|
|
@@ -359,7 +359,7 @@ class TileListComponent {
|
|
|
359
359
|
*
|
|
360
360
|
* @default []
|
|
361
361
|
*/
|
|
362
|
-
this.highlights = input([], ...(ngDevMode ? [{ debugName: "highlights" }] : []));
|
|
362
|
+
this.highlights = input([], ...(ngDevMode ? [{ debugName: "highlights" }] : /* istanbul ignore next */ []));
|
|
363
363
|
/**
|
|
364
364
|
* Guard function that temporarily blocks all selection changes.
|
|
365
365
|
*
|
|
@@ -369,7 +369,7 @@ class TileListComponent {
|
|
|
369
369
|
*
|
|
370
370
|
* @default () => false (never prevents)
|
|
371
371
|
*/
|
|
372
|
-
this.preventChangeUntil = input(() => false, ...(ngDevMode ? [{ debugName: "preventChangeUntil" }] : []));
|
|
372
|
+
this.preventChangeUntil = input(() => false, ...(ngDevMode ? [{ debugName: "preventChangeUntil" }] : /* istanbul ignore next */ []));
|
|
373
373
|
/**
|
|
374
374
|
* Automatically selects an item when the list is first rendered.
|
|
375
375
|
*
|
|
@@ -379,9 +379,7 @@ class TileListComponent {
|
|
|
379
379
|
*
|
|
380
380
|
* @default false
|
|
381
381
|
*/
|
|
382
|
-
this.autoSelect = input(false, ...(ngDevMode ?
|
|
383
|
-
transform: (value) => coerceBooleanProperty(value)
|
|
384
|
-
}]));
|
|
382
|
+
this.autoSelect = input(false, { ...(ngDevMode ? { debugName: "autoSelect" } : /* istanbul ignore next */ {}), transform: (value) => coerceBooleanProperty(value) });
|
|
385
383
|
/**
|
|
386
384
|
* Suppresses the component's built-in context menu handling.
|
|
387
385
|
*
|
|
@@ -391,7 +389,7 @@ class TileListComponent {
|
|
|
391
389
|
*
|
|
392
390
|
* @default false
|
|
393
391
|
*/
|
|
394
|
-
this.disableCustomContextMenu = input(false, ...(ngDevMode ? [{ debugName: "disableCustomContextMenu" }] : []));
|
|
392
|
+
this.disableCustomContextMenu = input(false, ...(ngDevMode ? [{ debugName: "disableCustomContextMenu" }] : /* istanbul ignore next */ []));
|
|
395
393
|
/**
|
|
396
394
|
* Emits the `TileData` of the most recently selected tile.
|
|
397
395
|
*
|
|
@@ -467,7 +465,7 @@ class TileListComponent {
|
|
|
467
465
|
this.menu = computed(() => {
|
|
468
466
|
const comp = this.menuComponent();
|
|
469
467
|
return comp?.matMenu() ?? null;
|
|
470
|
-
}, ...(ngDevMode ? [{ debugName: "menu" }] : []));
|
|
468
|
+
}, ...(ngDevMode ? [{ debugName: "menu" }] : /* istanbul ignore next */ []));
|
|
471
469
|
/**
|
|
472
470
|
* The full `TileData` objects for all currently selected tiles.
|
|
473
471
|
*
|
|
@@ -475,16 +473,16 @@ class TileListComponent {
|
|
|
475
473
|
* the parent needs rich tile data (fields, DMS object reference, actions) rather than
|
|
476
474
|
* just IDs.
|
|
477
475
|
*/
|
|
478
|
-
this.selectedTile = signal([], ...(ngDevMode ? [{ debugName: "selectedTile" }] : []));
|
|
476
|
+
this.selectedTile = signal([], ...(ngDevMode ? [{ debugName: "selectedTile" }] : /* istanbul ignore next */ []));
|
|
479
477
|
/**
|
|
480
478
|
* Object IDs of the currently selected tiles.
|
|
481
479
|
*
|
|
482
480
|
* A flat `string[]` signal — convenient for ID comparisons, permission checks, or
|
|
483
481
|
* passing to services that work with IDs. For the full tile data, use `selectedTile`.
|
|
484
482
|
*/
|
|
485
|
-
this.selection = signal([], ...(ngDevMode ? [{ debugName: "selection" }] : []));
|
|
486
|
-
this.#busy = computed(() => this.list().busy(), ...(ngDevMode ? [{ debugName: "#busy" }] : []));
|
|
487
|
-
this.#preselect = linkedSignal(this.preselect, ...(ngDevMode ? [{ debugName: "#preselect" }] : []));
|
|
483
|
+
this.selection = signal([], ...(ngDevMode ? [{ debugName: "selection" }] : /* istanbul ignore next */ []));
|
|
484
|
+
this.#busy = computed(() => this.list().busy(), ...(ngDevMode ? [{ debugName: "#busy" }] : /* istanbul ignore next */ []));
|
|
485
|
+
this.#preselect = linkedSignal(this.preselect, ...(ngDevMode ? [{ debugName: "#preselect" }] : /* istanbul ignore next */ []));
|
|
488
486
|
/**
|
|
489
487
|
* Computed map of per-object-ID inline CSS styles derived from the `highlights` input.
|
|
490
488
|
*
|
|
@@ -503,7 +501,7 @@ class TileListComponent {
|
|
|
503
501
|
});
|
|
504
502
|
});
|
|
505
503
|
return x;
|
|
506
|
-
}, ...(ngDevMode ? [{ debugName: "highlightStyles" }] : []));
|
|
504
|
+
}, ...(ngDevMode ? [{ debugName: "highlightStyles" }] : /* istanbul ignore next */ []));
|
|
507
505
|
/**
|
|
508
506
|
* The `TileData` view models currently rendered in the list.
|
|
509
507
|
*
|
|
@@ -511,7 +509,7 @@ class TileListComponent {
|
|
|
511
509
|
* prepended by `dropItems()`. The template iterates over this signal directly.
|
|
512
510
|
* Read this from the parent to access displayed tile data without an extra query.
|
|
513
511
|
*/
|
|
514
|
-
this.items = signal([], ...(ngDevMode ? [{ debugName: "items" }] : []));
|
|
512
|
+
this.items = signal([], ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
|
|
515
513
|
/**
|
|
516
514
|
* Indicates whether at least one search has been executed successfully.
|
|
517
515
|
*
|
|
@@ -519,7 +517,7 @@ class TileListComponent {
|
|
|
519
517
|
* to distinguish between "initial loading" (show a spinner) and "empty result"
|
|
520
518
|
* (show the empty-state slot) without relying on `items().length` alone.
|
|
521
519
|
*/
|
|
522
|
-
this.searchExecuted = signal(false, ...(ngDevMode ? [{ debugName: "searchExecuted" }] : []));
|
|
520
|
+
this.searchExecuted = signal(false, ...(ngDevMode ? [{ debugName: "searchExecuted" }] : /* istanbul ignore next */ []));
|
|
523
521
|
this._selection = [];
|
|
524
522
|
//#endregion
|
|
525
523
|
//#region Public methods
|
|
@@ -1199,10 +1197,10 @@ class TileListComponent {
|
|
|
1199
1197
|
#flavorEffect;
|
|
1200
1198
|
#preselectEffect;
|
|
1201
1199
|
#closeMenuEffect;
|
|
1202
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1203
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1200
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TileListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1201
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: TileListComponent, isStandalone: true, selector: "yuv-tile-list", inputs: { bucket: { classPropertyName: "bucket", publicName: "bucket", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, multiselect: { classPropertyName: "multiselect", publicName: "multiselect", isSignal: true, isRequired: false, transformFunction: null }, dense: { classPropertyName: "dense", publicName: "dense", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, flavor: { classPropertyName: "flavor", publicName: "flavor", isSignal: true, isRequired: false, transformFunction: null }, query: { classPropertyName: "query", publicName: "query", isSignal: true, isRequired: false, transformFunction: null }, preselect: { classPropertyName: "preselect", publicName: "preselect", isSignal: true, isRequired: false, transformFunction: null }, highlights: { classPropertyName: "highlights", publicName: "highlights", isSignal: true, isRequired: false, transformFunction: null }, preventChangeUntil: { classPropertyName: "preventChangeUntil", publicName: "preventChangeUntil", isSignal: true, isRequired: false, transformFunction: null }, autoSelect: { classPropertyName: "autoSelect", publicName: "autoSelect", isSignal: true, isRequired: false, transformFunction: null }, disableCustomContextMenu: { classPropertyName: "disableCustomContextMenu", publicName: "disableCustomContextMenu", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemSelect: "itemSelect", tileCopy: "tileCopy", tileCut: "tileCut", busy: "busy", queryResult: "queryResult", selectionChange: "selectionChange", itemDblClick: "itemDblClick", ctxMenu: "ctxMenu" }, host: { listeners: { "keydown.control.c": "onCopy($event)", "keydown.control.x": "onCut($event)" }, properties: { "class.dense": "dense()" } }, providers: [], queries: [{ propertyName: "menuComponent", first: true, predicate: TileActionsMenuComponent, descendants: true, isSignal: true }, { propertyName: "emptyContent", first: true, predicate: ["empty"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: "list", first: true, predicate: ["list"], descendants: true, isSignal: true }, { propertyName: "menuTriggers", predicate: MatMenuTrigger, descendants: true, isSignal: true }], ngImport: i0, template: "<yuv-query-list\n #list\n [query]=\"query()\"\n [transformer]=\"transformer\"\n idProperty=\"id\"\n [preventChangeUntil]=\"preventChangeUntil()\"\n [autoSelect]=\"autoSelect()\"\n [pageSize]=\"pageSize()\"\n [multiselect]=\"multiselect()\"\n (itemDoubleClick)=\"onItemDoubleClick($event)\"\n (itemSelect)=\"onListItemsSelect($event)\"\n (queryResult)=\"onQueryResult($event)\"\n (dragSelectChange)=\"onDragSelectChange($event)\"\n>\n <ng-template #yuvQueryListItem let-item let-index=\"index\">\n <yuv-list-tile [class.dense]=\"dense()\" [style]=\"highlightStyles()[item.id]\" (contextmenu)=\"contextMenuHandler($event, index)\">\n <ng-template #iconSlot><ng-container *yuvRenderer=\"item.icon\" /></ng-template>\n <ng-template #titleSlot><ng-container *yuvRenderer=\"item.title\" /></ng-template>\n <ng-template #descriptionSlot><ng-container *yuvRenderer=\"item.description\" /></ng-template>\n <ng-template #metaSlot><ng-container *yuvRenderer=\"item.meta\" /></ng-template>\n <ng-template #asideSlot><ng-container *yuvRenderer=\"item.aside\" /></ng-template>\n <ng-template #actionsSlot>\n @for (a of item.actions; track a.id) {\n <button\n ymt-icon-button\n [matTooltip]=\"a.label\"\n icon-button-size=\"small\"\n (click)=\"executeAction(item, a, $event)\"\n >\n <mat-icon inert=\"true\">{{ a.icon }}</mat-icon>\n </button>\n }\n\n @if (menu()) {\n <button\n ymt-icon-button\n icon-button-size=\"small\"\n (click)=\"menuItemClicked(item, $event)\"\n [matTooltip]=\"'yuv.tile-list.item.actions-menu.button.tooltip' | translate\"\n [matMenuTriggerFor]=\"menu()\"\n >\n <mat-icon inert=\"true\">more_vert</mat-icon>\n </button>\n }\n <ng-content select=\"yuv-tile-actions-menu, [yuv-tile-actions-menu]\" />\n </ng-template>\n <ng-template #extensionSlot>\n <ng-container *yuvTileExtension=\"{ typeId: item.objectTypeId, data: item.instanceData }\" />\n </ng-template>\n <ng-template #badgesSlot>{{ item.badges }}</ng-template>\n </yuv-list-tile>\n </ng-template>\n\n <ng-template #yuvQueryListEmpty>\n <div class=\"empty-list\">\n @let searchExe = searchExecuted();\n @if (searchExe && emptyContent()) {\n <ng-content />\n }\n </div>\n </ng-template>\n <div class=\"offset\" (click)=\"clearSelection()\"></div>\n</yuv-query-list>\n", styles: [":host{--paging-background: var(--ymt-surface);display:flex;flex-direction:column}:host yuv-query-list{flex:1;overflow-y:auto;display:flex;flex-flow:column;height:100%}:host yuv-query-list .offset{flex:1 1 auto}:host .empty-list{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: YuvListModule }, { kind: "component", type: i1.ListTileComponent, selector: "yuv-list-tile" }, { kind: "ngmodule", type: YuvQueryListModule }, { kind: "component", type: i2.QueryListComponent, selector: "yuv-query-list", inputs: ["query", "idProperty", "transformer", "preventChangeUntil", "autoSelect", "pageSize", "enableDragSelect", "multiselect", "selfHandleSelection", "includePermissions"], outputs: ["itemSelect", "dragSelectChange", "itemDoubleClick", "queryResult"] }, { kind: "directive", type: RendererDirective, selector: "[yuvRenderer]", inputs: ["yuvRenderer"] }, { kind: "directive", type: TileExtensionDirective, selector: "[yuvTileExtension]", inputs: ["yuvTileExtension"] }, { kind: "directive", type: YmtIconButtonDirective, selector: "button[ymtIconButton],button[ymt-icon-button],a[ymtIconButton],a[ymt-icon-button]", inputs: ["disabled", "disableRipple", "aria-disabled", "disabledInteractive", "icon-button-size"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1204
1202
|
}
|
|
1205
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1203
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TileListComponent, decorators: [{
|
|
1206
1204
|
type: Component,
|
|
1207
1205
|
args: [{ selector: 'yuv-tile-list', standalone: true, providers: [], imports: [
|
|
1208
1206
|
TranslatePipe,
|
|
@@ -1224,25 +1222,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.19", ngImpo
|
|
|
1224
1222
|
class ActionSelectComponent {
|
|
1225
1223
|
constructor() {
|
|
1226
1224
|
this.actionService = inject(ActionsService);
|
|
1227
|
-
this.objectType = input.required(...(ngDevMode ? [{ debugName: "objectType" }] : []));
|
|
1225
|
+
this.objectType = input.required(...(ngDevMode ? [{ debugName: "objectType" }] : /* istanbul ignore next */ []));
|
|
1228
1226
|
this.actions = computed(() => {
|
|
1229
1227
|
const ot = this.objectType();
|
|
1230
1228
|
return ot.objectType ? this.actionService.getActionsForType(ot.objectType) : [];
|
|
1231
|
-
}, ...(ngDevMode ? [{ debugName: "actions" }] : []));
|
|
1232
|
-
this.selectedActionIds = input([], ...(ngDevMode ? [{ debugName: "selectedActionIds" }] : []));
|
|
1229
|
+
}, ...(ngDevMode ? [{ debugName: "actions" }] : /* istanbul ignore next */ []));
|
|
1230
|
+
this.selectedActionIds = input([], ...(ngDevMode ? [{ debugName: "selectedActionIds" }] : /* istanbul ignore next */ []));
|
|
1233
1231
|
this.actionSelect = output();
|
|
1234
1232
|
}
|
|
1235
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1236
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1233
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ActionSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1234
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: ActionSelectComponent, isStandalone: true, selector: "yuv-tile-action-select", inputs: { objectType: { classPropertyName: "objectType", publicName: "objectType", isSignal: true, isRequired: true, transformFunction: null }, selectedActionIds: { classPropertyName: "selectedActionIds", publicName: "selectedActionIds", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionSelect: "actionSelect" }, ngImport: i0, template: "<div class=\"actions\">\n @for (a of actions(); track a.id) {\n <button [ngClass]=\"{ selected: selectedActionIds().includes(a.id) }\" (click)=\"actionSelect.emit(a)\">\n <mat-icon>{{ a.icon }}</mat-icon\n >{{ a.label }}\n </button>\n }\n</div>\n", styles: [":host .actions{display:flex;gap:var(--ymt-spacing-xs)}:host .actions button{border:1px solid var(--ymt-outline-variant);border-radius:0;margin-block-end:1px;background-color:var(--mat-sys-secondary-container);color:var(--mat-sys-on-secondary-container);border:0;display:inline-flex;gap:var(--ymt-spacing-xs);padding:var(--ymt-spacing-2xs) var(--ymt-spacing-xs);align-items:center;border-radius:var(--ymt-corner-s)}:host .actions button.selected{background-color:var(--ymt-primary-container);color:var(--ymt-on-primary-container)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
1237
1235
|
}
|
|
1238
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1236
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ActionSelectComponent, decorators: [{
|
|
1239
1237
|
type: Component,
|
|
1240
1238
|
args: [{ selector: 'yuv-tile-action-select', standalone: true, imports: [NgClass, MatIconModule], template: "<div class=\"actions\">\n @for (a of actions(); track a.id) {\n <button [ngClass]=\"{ selected: selectedActionIds().includes(a.id) }\" (click)=\"actionSelect.emit(a)\">\n <mat-icon>{{ a.icon }}</mat-icon\n >{{ a.label }}\n </button>\n }\n</div>\n", styles: [":host .actions{display:flex;gap:var(--ymt-spacing-xs)}:host .actions button{border:1px solid var(--ymt-outline-variant);border-radius:0;margin-block-end:1px;background-color:var(--mat-sys-secondary-container);color:var(--mat-sys-on-secondary-container);border:0;display:inline-flex;gap:var(--ymt-spacing-xs);padding:var(--ymt-spacing-2xs) var(--ymt-spacing-xs);align-items:center;border-radius:var(--ymt-corner-s)}:host .actions button.selected{background-color:var(--ymt-primary-container);color:var(--ymt-on-primary-container)}\n"] }]
|
|
1241
1239
|
}], propDecorators: { objectType: [{ type: i0.Input, args: [{ isSignal: true, alias: "objectType", required: true }] }], selectedActionIds: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedActionIds", required: false }] }], actionSelect: [{ type: i0.Output, args: ["actionSelect"] }] } });
|
|
1242
1240
|
|
|
1243
1241
|
class IconSelectComponent {
|
|
1244
1242
|
constructor() {
|
|
1245
|
-
this.objectType = input(...(ngDevMode ? [undefined, { debugName: "objectType" }] : []));
|
|
1243
|
+
this.objectType = input(...(ngDevMode ? [undefined, { debugName: "objectType" }] : /* istanbul ignore next */ []));
|
|
1246
1244
|
this.iconSelect = output();
|
|
1247
1245
|
}
|
|
1248
1246
|
async createIcon(inputEl) {
|
|
@@ -1260,10 +1258,10 @@ class IconSelectComponent {
|
|
|
1260
1258
|
#emit(data) {
|
|
1261
1259
|
this.iconSelect.emit(data);
|
|
1262
1260
|
}
|
|
1263
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1264
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
1261
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IconSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1262
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.9", type: IconSelectComponent, isStandalone: true, selector: "yuv-icon-select", inputs: { objectType: { classPropertyName: "objectType", publicName: "objectType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { iconSelect: "iconSelect" }, ngImport: i0, template: "<input style=\"display: none\" #fileInput type=\"file\" accept=\".svg\" (change)=\"createIcon(fileInput)\" />\n\n<button class=\"primary\" (click)=\"fileInput.click()\">{{ 'yuv.tile-config.icon-select.pick' | translate }}</button>\n<button class=\"secondary\" (click)=\"reset()\">{{ 'yuv.tile-config.icon-select.reset' | translate }}</button>\n", styles: [":host{display:flex;gap:var(--ymt-spacing-m)}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
1265
1263
|
}
|
|
1266
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1264
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: IconSelectComponent, decorators: [{
|
|
1267
1265
|
type: Component,
|
|
1268
1266
|
args: [{ selector: 'yuv-icon-select', standalone: true, imports: [TranslatePipe], template: "<input style=\"display: none\" #fileInput type=\"file\" accept=\".svg\" (change)=\"createIcon(fileInput)\" />\n\n<button class=\"primary\" (click)=\"fileInput.click()\">{{ 'yuv.tile-config.icon-select.pick' | translate }}</button>\n<button class=\"secondary\" (click)=\"reset()\">{{ 'yuv.tile-config.icon-select.reset' | translate }}</button>\n", styles: [":host{display:flex;gap:var(--ymt-spacing-m)}\n"] }]
|
|
1269
1267
|
}], propDecorators: { objectType: [{ type: i0.Input, args: [{ isSignal: true, alias: "objectType", required: false }] }], iconSelect: [{ type: i0.Output, args: ["iconSelect"] }] } });
|
|
@@ -1290,17 +1288,17 @@ class PropertySelectComponent {
|
|
|
1290
1288
|
ContentStreamField.RANGE
|
|
1291
1289
|
];
|
|
1292
1290
|
this.objectTypeFields = [];
|
|
1293
|
-
this.query = signal(null, ...(ngDevMode ? [{ debugName: "query" }] : []));
|
|
1294
|
-
this.objectType = input(...(ngDevMode ? [undefined, { debugName: "objectType" }] : []));
|
|
1291
|
+
this.query = signal(null, ...(ngDevMode ? [{ debugName: "query" }] : /* istanbul ignore next */ []));
|
|
1292
|
+
this.objectType = input(...(ngDevMode ? [undefined, { debugName: "objectType" }] : /* istanbul ignore next */ []));
|
|
1295
1293
|
this.filteredObjectTypeFields = computed(() => {
|
|
1296
1294
|
return this.query() !== null
|
|
1297
1295
|
? this.objectTypeFields.filter((otf) => otf.label.toLowerCase().indexOf(this.query()?.toLocaleLowerCase() || '') !== -1)
|
|
1298
1296
|
: this.getObjectTypeFields(this.objectType());
|
|
1299
|
-
}, ...(ngDevMode ? [{ debugName: "filteredObjectTypeFields" }] : []));
|
|
1297
|
+
}, ...(ngDevMode ? [{ debugName: "filteredObjectTypeFields" }] : /* istanbul ignore next */ []));
|
|
1300
1298
|
this.objectTypesEffect = effect(() => {
|
|
1301
1299
|
untracked(() => this.getObjectTypeFields(this.objectType()));
|
|
1302
|
-
}, ...(ngDevMode ? [{ debugName: "objectTypesEffect" }] : []));
|
|
1303
|
-
this.selectedProperty = input(...(ngDevMode ? [undefined, { debugName: "selectedProperty" }] : []));
|
|
1300
|
+
}, ...(ngDevMode ? [{ debugName: "objectTypesEffect" }] : /* istanbul ignore next */ []));
|
|
1301
|
+
this.selectedProperty = input(...(ngDevMode ? [undefined, { debugName: "selectedProperty" }] : /* istanbul ignore next */ []));
|
|
1304
1302
|
this.propertySelect = output();
|
|
1305
1303
|
}
|
|
1306
1304
|
// fields that should not be available to be placed in the slots
|
|
@@ -1359,12 +1357,12 @@ class PropertySelectComponent {
|
|
|
1359
1357
|
_getLabel(otf) {
|
|
1360
1358
|
return this.system.getLocalizedLabel(otf.id) || otf.id;
|
|
1361
1359
|
}
|
|
1362
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1363
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1360
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: PropertySelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1361
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: PropertySelectComponent, isStandalone: true, selector: "yuv-tile-property-select", inputs: { objectType: { classPropertyName: "objectType", publicName: "objectType", isSignal: true, isRequired: false, transformFunction: null }, selectedProperty: { classPropertyName: "selectedProperty", publicName: "selectedProperty", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { propertySelect: "propertySelect" }, ngImport: i0, template: "<!-- TODO: enable once filtering of properties makes sense -->\n<!-- <form class=\"filter\">\n <div class=\"filter-input\">\n <input type=\"text\" [placeholder]=\"'yuv.tile-config.property-select.filter.placeholder' | translate\" name=\"query\" [(ngModel)]=\"query\" />\n @if (query()) {\n <button class=\"icn\" (click)=\"query.set(null)\">\n <yuv-icon [svg]=\"clearIcon\"></yuv-icon>\n </button>\n }\n </div>\n</form> -->\n\n<ul class=\"properties\">\n @for (p of filteredObjectTypeFields(); track $index) {\n <li\n tabindex=\"0\"\n [ngClass]=\"{ baseProperty: p.baseProperty, selected: p.id === selectedProperty()?.propertyName }\"\n (click)=\"selectProperty(p)\"\n (keydown.enter)=\"selectPropertyOnKeydown($event, p)\"\n (keydown.space)=\"selectPropertyOnKeydown($event, p)\"\n >\n <div class=\"label\">{{ p.label }}</div>\n <button\n mat-icon-button\n (click)=\"removeProperty($event)\"\n (keydown.enter)=\"removePropertyOnKeydown($event)\"\n (keydown.space)=\"removePropertyOnKeydown($event)\"\n >\n <mat-icon aria-hidden=\"true\" [attr.inert]=\"true\">close</mat-icon>\n </button>\n </li>\n }\n</ul>\n", styles: [":host{display:flex;flex-flow:column;max-height:100%}:host .filter{flex:0 0 auto}:host .filter .filter-input{background-color:var(--ymt-surface-panel);border:1px solid var(--ymt-outline-variant);display:flex;padding:.25em;align-items:center}:host .filter .filter-input input{background-color:transparent;border:0;outline:0;flex:1;color:var(--ymt-text-color)}:host .properties{flex:1;column-count:3;column-width:30ch;column-rule:1px dotted var(--ymt-outline);column-gap:2em;margin-block-start:var(--ymt-spacing-m)}:host .properties li{border:1px solid var(--ymt-outline-variant);border-radius:0;margin-block-end:1px;display:flex;align-items:center;justify-content:space-between;cursor:default}:host .properties li:hover{background-color:var(--ymt-hover-background)}:host .properties li.baseProperty{font-style:italic}:host .properties li.selected{background-color:var(--ymt-primary-container);color:var(--ymt-on-primary-container)}:host .properties li:not(.selected) button{display:none}:host .properties li .label{padding:var(--ymt-spacing-xs) var(--ymt-spacing-m)}:host .properties li button{color:currentColor}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
1364
1362
|
}
|
|
1365
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1363
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: PropertySelectComponent, decorators: [{
|
|
1366
1364
|
type: Component,
|
|
1367
|
-
args: [{ selector: 'yuv-tile-property-select', standalone: true, imports: [NgClass, FormsModule,
|
|
1365
|
+
args: [{ selector: 'yuv-tile-property-select', standalone: true, imports: [NgClass, FormsModule, MatButtonModule, MatIconModule], template: "<!-- TODO: enable once filtering of properties makes sense -->\n<!-- <form class=\"filter\">\n <div class=\"filter-input\">\n <input type=\"text\" [placeholder]=\"'yuv.tile-config.property-select.filter.placeholder' | translate\" name=\"query\" [(ngModel)]=\"query\" />\n @if (query()) {\n <button class=\"icn\" (click)=\"query.set(null)\">\n <yuv-icon [svg]=\"clearIcon\"></yuv-icon>\n </button>\n }\n </div>\n</form> -->\n\n<ul class=\"properties\">\n @for (p of filteredObjectTypeFields(); track $index) {\n <li\n tabindex=\"0\"\n [ngClass]=\"{ baseProperty: p.baseProperty, selected: p.id === selectedProperty()?.propertyName }\"\n (click)=\"selectProperty(p)\"\n (keydown.enter)=\"selectPropertyOnKeydown($event, p)\"\n (keydown.space)=\"selectPropertyOnKeydown($event, p)\"\n >\n <div class=\"label\">{{ p.label }}</div>\n <button\n mat-icon-button\n (click)=\"removeProperty($event)\"\n (keydown.enter)=\"removePropertyOnKeydown($event)\"\n (keydown.space)=\"removePropertyOnKeydown($event)\"\n >\n <mat-icon aria-hidden=\"true\" [attr.inert]=\"true\">close</mat-icon>\n </button>\n </li>\n }\n</ul>\n", styles: [":host{display:flex;flex-flow:column;max-height:100%}:host .filter{flex:0 0 auto}:host .filter .filter-input{background-color:var(--ymt-surface-panel);border:1px solid var(--ymt-outline-variant);display:flex;padding:.25em;align-items:center}:host .filter .filter-input input{background-color:transparent;border:0;outline:0;flex:1;color:var(--ymt-text-color)}:host .properties{flex:1;column-count:3;column-width:30ch;column-rule:1px dotted var(--ymt-outline);column-gap:2em;margin-block-start:var(--ymt-spacing-m)}:host .properties li{border:1px solid var(--ymt-outline-variant);border-radius:0;margin-block-end:1px;display:flex;align-items:center;justify-content:space-between;cursor:default}:host .properties li:hover{background-color:var(--ymt-hover-background)}:host .properties li.baseProperty{font-style:italic}:host .properties li.selected{background-color:var(--ymt-primary-container);color:var(--ymt-on-primary-container)}:host .properties li:not(.selected) button{display:none}:host .properties li .label{padding:var(--ymt-spacing-xs) var(--ymt-spacing-m)}:host .properties li button{color:currentColor}\n"] }]
|
|
1368
1366
|
}], propDecorators: { objectType: [{ type: i0.Input, args: [{ isSignal: true, alias: "objectType", required: false }] }], selectedProperty: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedProperty", required: false }] }], propertySelect: [{ type: i0.Output, args: ["propertySelect"] }] } });
|
|
1369
1367
|
|
|
1370
1368
|
/**
|
|
@@ -1375,9 +1373,9 @@ class TileConfigTileComponent {
|
|
|
1375
1373
|
this.actionService = inject(ActionsService);
|
|
1376
1374
|
this.elRef = inject(ElementRef);
|
|
1377
1375
|
this.#system = inject(SystemService);
|
|
1378
|
-
this.disableIconSlot = input(...(ngDevMode ? [undefined, { debugName: "disableIconSlot" }] : []));
|
|
1379
|
-
this.disableBadgesSlot = input(...(ngDevMode ? [undefined, { debugName: "disableBadgesSlot" }] : []));
|
|
1380
|
-
this.objectConfig = input.required(...(ngDevMode ? [{ debugName: "objectConfig" }] : []));
|
|
1376
|
+
this.disableIconSlot = input(...(ngDevMode ? [undefined, { debugName: "disableIconSlot" }] : /* istanbul ignore next */ []));
|
|
1377
|
+
this.disableBadgesSlot = input(...(ngDevMode ? [undefined, { debugName: "disableBadgesSlot" }] : /* istanbul ignore next */ []));
|
|
1378
|
+
this.objectConfig = input.required(...(ngDevMode ? [{ debugName: "objectConfig" }] : /* istanbul ignore next */ []));
|
|
1381
1379
|
this._objectConfig = computed(() => {
|
|
1382
1380
|
const oc = this.objectConfig();
|
|
1383
1381
|
if (oc) {
|
|
@@ -1389,7 +1387,7 @@ class TileConfigTileComponent {
|
|
|
1389
1387
|
});
|
|
1390
1388
|
}
|
|
1391
1389
|
return oc;
|
|
1392
|
-
}, ...(ngDevMode ? [{ debugName: "_objectConfig" }] : []));
|
|
1390
|
+
}, ...(ngDevMode ? [{ debugName: "_objectConfig" }] : /* istanbul ignore next */ []));
|
|
1393
1391
|
this.actions = computed(() => {
|
|
1394
1392
|
const actionsList = [];
|
|
1395
1393
|
const ocActions = this.objectConfig();
|
|
@@ -1401,7 +1399,7 @@ class TileConfigTileComponent {
|
|
|
1401
1399
|
});
|
|
1402
1400
|
}
|
|
1403
1401
|
return actionsList;
|
|
1404
|
-
}, ...(ngDevMode ? [{ debugName: "actions" }] : []));
|
|
1402
|
+
}, ...(ngDevMode ? [{ debugName: "actions" }] : /* istanbul ignore next */ []));
|
|
1405
1403
|
this.slotSelect = output();
|
|
1406
1404
|
}
|
|
1407
1405
|
#system;
|
|
@@ -1417,10 +1415,10 @@ class TileConfigTileComponent {
|
|
|
1417
1415
|
e.classList.remove('active');
|
|
1418
1416
|
});
|
|
1419
1417
|
}
|
|
1420
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1421
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1418
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TileConfigTileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1419
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: TileConfigTileComponent, isStandalone: true, selector: "yuv-tile-config-tile", inputs: { disableIconSlot: { classPropertyName: "disableIconSlot", publicName: "disableIconSlot", isSignal: true, isRequired: false, transformFunction: null }, disableBadgesSlot: { classPropertyName: "disableBadgesSlot", publicName: "disableBadgesSlot", isSignal: true, isRequired: false, transformFunction: null }, objectConfig: { classPropertyName: "objectConfig", publicName: "objectConfig", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { slotSelect: "slotSelect" }, ngImport: i0, template: "@let oc = _objectConfig();\n\n<div\n data-slot=\"icon\"\n [attr.disabled]=\"disableIconSlot()\"\n tabindex=\"0\"\n (click)=\"selectSlot('icon')\"\n (keydown.enter)=\"selectSlot('icon')\"\n (keydown.space)=\"selectSlot('icon'); $event.preventDefault()\"\n>\n @if (oc && oc.icon) {\n <mat-icon aria-hidden=\"true\" [attr.inert]=\"true\">{{ oc.icon.svg }}</mat-icon>\n } @else if (oc && oc.objectTypeId) {\n <yuv-object-type-icon [objectTypeId]=\"oc.objectTypeId\"></yuv-object-type-icon>\n }\n</div>\n<div\n data-slot=\"title\"\n tabindex=\"0\"\n (click)=\"selectSlot('title')\"\n (keydown.enter)=\"selectSlot('title')\"\n (keydown.space)=\"selectSlot('title'); $event.preventDefault()\"\n>\n {{ oc?.title?.label }}\n</div>\n<div\n data-slot=\"actions\"\n tabindex=\"0\"\n (click)=\"selectSlot('actions')\"\n (keydown.enter)=\"selectSlot('actions')\"\n (keydown.space)=\"selectSlot('actions'); $event.preventDefault()\"\n>\n @for (a of actions(); track a.id) {\n <button mat-icon-button [matTooltip]=\"a.label\" [attr.inert]=\"true\" aria-hidden=\"true\">\n <mat-icon inert=\"true\" aria-hidden=\"true\">{{ a.icon }}</mat-icon>\n </button>\n }\n</div>\n<div\n data-slot=\"description\"\n tabindex=\"0\"\n (click)=\"selectSlot('description')\"\n (keydown.enter)=\"selectSlot('description')\"\n (keydown.space)=\"selectSlot('description'); $event.preventDefault()\"\n>\n {{ oc?.description?.label }}\n</div>\n<div\n data-slot=\"aside\"\n tabindex=\"0\"\n (click)=\"selectSlot('aside')\"\n (keydown.enter)=\"selectSlot('aside')\"\n (keydown.space)=\"selectSlot('aside'); $event.preventDefault()\"\n>\n {{ oc?.aside?.label }}\n</div>\n<div\n data-slot=\"meta\"\n tabindex=\"0\"\n (click)=\"selectSlot('meta')\"\n (keydown.enter)=\"selectSlot('meta')\"\n (keydown.space)=\"selectSlot('meta'); $event.preventDefault()\"\n>\n {{ oc?.meta?.label }}\n</div>\n@if (!disableBadgesSlot()) {\n <div\n data-slot=\"badges\"\n tabindex=\"0\"\n (click)=\"selectSlot('badges')\"\n (keydown.enter)=\"selectSlot('badges')\"\n (keydown.space)=\"selectSlot('badges'); $event.preventDefault()\"\n >\n {{ oc?.badges }}\n </div>\n}\n", styles: [":host{--tile-item-gap: .5em;--tile-background: transparent;--tile-icon-fill: currentColor;display:grid;grid-template-rows:auto auto auto auto;grid-template-columns:3rem 1fr auto;grid-template-areas:\"icon title title actions\" \"icon description aside aside\" \"icon meta meta badges\";gap:var(--tile-item-gap);padding:var(--ymt-spacing-m);background-color:var(--tile-background)}:host:hover [data-slot=actions]{opacity:1}:host [data-slot=icon]{grid-area:icon;display:flex;align-items:center;justify-content:center}:host [data-slot=title]{grid-area:title;font-weight:700}:host [data-slot=description]{grid-area:description}:host [data-slot=meta]{grid-area:meta}:host [data-slot=aside]{flex:0 0 auto;grid-area:aside}:host [data-slot=actions]{flex:0 0 auto;display:flex;justify-self:end;grid-area:actions}:host [data-slot=actions] button{padding:0;gap:2px}:host [data-slot=badges]{grid-area:badges;justify-self:end;flex:0 0 auto}:host :where([data-slot=badges],[data-slot=actions],[data-slot=aside],[data-slot=icon],[data-slot=title],[data-slot=description],[data-slot=meta]){display:flex;align-items:center;background-color:var(--ymt-surface-panel);border:1px solid var(--ymt-outline);padding:.25em .5em;box-sizing:border-box;min-height:2.2em;border-radius:var(--ymt-corner-xs)}:host :where([data-slot=badges],[data-slot=actions],[data-slot=aside],[data-slot=icon],[data-slot=title],[data-slot=description],[data-slot=meta]):not([disabled]){cursor:pointer}:host :where([data-slot=badges],[data-slot=actions],[data-slot=aside],[data-slot=icon],[data-slot=title],[data-slot=description],[data-slot=meta]):not([disabled]):hover{background-color:var(--ymt-focus-background);color:var(--ymt-on-focus-background)}:host :where([data-slot=badges],[data-slot=actions],[data-slot=aside],[data-slot=icon],[data-slot=title],[data-slot=description],[data-slot=meta]):not([disabled]).active{background-color:var(--ymt-primary-container);color:var(--ymt-on-primary-container)}:host :where([data-slot=badges],[data-slot=actions],[data-slot=aside],[data-slot=icon],[data-slot=title],[data-slot=description],[data-slot=meta])[disabled]{border:none;background-color:transparent}:host :where([data-slot=badges],[data-slot=actions]){min-width:3em}:host :where([data-slot=badges],[data-slot=actions]) button{width:24px;height:24px;pointer-events:none;color:currentColor}:host [data-slot=aside]{min-width:4em}:host [data-slot=icon]{height:3em;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$1.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ObjectTypeIconComponent, selector: "yuv-object-type-icon", inputs: ["objectTypeId"] }] }); }
|
|
1422
1420
|
}
|
|
1423
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1421
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TileConfigTileComponent, decorators: [{
|
|
1424
1422
|
type: Component,
|
|
1425
1423
|
args: [{ selector: 'yuv-tile-config-tile', standalone: true, imports: [MatButtonModule, MatTooltipModule, MatIconModule, ObjectTypeIconComponent], template: "@let oc = _objectConfig();\n\n<div\n data-slot=\"icon\"\n [attr.disabled]=\"disableIconSlot()\"\n tabindex=\"0\"\n (click)=\"selectSlot('icon')\"\n (keydown.enter)=\"selectSlot('icon')\"\n (keydown.space)=\"selectSlot('icon'); $event.preventDefault()\"\n>\n @if (oc && oc.icon) {\n <mat-icon aria-hidden=\"true\" [attr.inert]=\"true\">{{ oc.icon.svg }}</mat-icon>\n } @else if (oc && oc.objectTypeId) {\n <yuv-object-type-icon [objectTypeId]=\"oc.objectTypeId\"></yuv-object-type-icon>\n }\n</div>\n<div\n data-slot=\"title\"\n tabindex=\"0\"\n (click)=\"selectSlot('title')\"\n (keydown.enter)=\"selectSlot('title')\"\n (keydown.space)=\"selectSlot('title'); $event.preventDefault()\"\n>\n {{ oc?.title?.label }}\n</div>\n<div\n data-slot=\"actions\"\n tabindex=\"0\"\n (click)=\"selectSlot('actions')\"\n (keydown.enter)=\"selectSlot('actions')\"\n (keydown.space)=\"selectSlot('actions'); $event.preventDefault()\"\n>\n @for (a of actions(); track a.id) {\n <button mat-icon-button [matTooltip]=\"a.label\" [attr.inert]=\"true\" aria-hidden=\"true\">\n <mat-icon inert=\"true\" aria-hidden=\"true\">{{ a.icon }}</mat-icon>\n </button>\n }\n</div>\n<div\n data-slot=\"description\"\n tabindex=\"0\"\n (click)=\"selectSlot('description')\"\n (keydown.enter)=\"selectSlot('description')\"\n (keydown.space)=\"selectSlot('description'); $event.preventDefault()\"\n>\n {{ oc?.description?.label }}\n</div>\n<div\n data-slot=\"aside\"\n tabindex=\"0\"\n (click)=\"selectSlot('aside')\"\n (keydown.enter)=\"selectSlot('aside')\"\n (keydown.space)=\"selectSlot('aside'); $event.preventDefault()\"\n>\n {{ oc?.aside?.label }}\n</div>\n<div\n data-slot=\"meta\"\n tabindex=\"0\"\n (click)=\"selectSlot('meta')\"\n (keydown.enter)=\"selectSlot('meta')\"\n (keydown.space)=\"selectSlot('meta'); $event.preventDefault()\"\n>\n {{ oc?.meta?.label }}\n</div>\n@if (!disableBadgesSlot()) {\n <div\n data-slot=\"badges\"\n tabindex=\"0\"\n (click)=\"selectSlot('badges')\"\n (keydown.enter)=\"selectSlot('badges')\"\n (keydown.space)=\"selectSlot('badges'); $event.preventDefault()\"\n >\n {{ oc?.badges }}\n </div>\n}\n", styles: [":host{--tile-item-gap: .5em;--tile-background: transparent;--tile-icon-fill: currentColor;display:grid;grid-template-rows:auto auto auto auto;grid-template-columns:3rem 1fr auto;grid-template-areas:\"icon title title actions\" \"icon description aside aside\" \"icon meta meta badges\";gap:var(--tile-item-gap);padding:var(--ymt-spacing-m);background-color:var(--tile-background)}:host:hover [data-slot=actions]{opacity:1}:host [data-slot=icon]{grid-area:icon;display:flex;align-items:center;justify-content:center}:host [data-slot=title]{grid-area:title;font-weight:700}:host [data-slot=description]{grid-area:description}:host [data-slot=meta]{grid-area:meta}:host [data-slot=aside]{flex:0 0 auto;grid-area:aside}:host [data-slot=actions]{flex:0 0 auto;display:flex;justify-self:end;grid-area:actions}:host [data-slot=actions] button{padding:0;gap:2px}:host [data-slot=badges]{grid-area:badges;justify-self:end;flex:0 0 auto}:host :where([data-slot=badges],[data-slot=actions],[data-slot=aside],[data-slot=icon],[data-slot=title],[data-slot=description],[data-slot=meta]){display:flex;align-items:center;background-color:var(--ymt-surface-panel);border:1px solid var(--ymt-outline);padding:.25em .5em;box-sizing:border-box;min-height:2.2em;border-radius:var(--ymt-corner-xs)}:host :where([data-slot=badges],[data-slot=actions],[data-slot=aside],[data-slot=icon],[data-slot=title],[data-slot=description],[data-slot=meta]):not([disabled]){cursor:pointer}:host :where([data-slot=badges],[data-slot=actions],[data-slot=aside],[data-slot=icon],[data-slot=title],[data-slot=description],[data-slot=meta]):not([disabled]):hover{background-color:var(--ymt-focus-background);color:var(--ymt-on-focus-background)}:host :where([data-slot=badges],[data-slot=actions],[data-slot=aside],[data-slot=icon],[data-slot=title],[data-slot=description],[data-slot=meta]):not([disabled]).active{background-color:var(--ymt-primary-container);color:var(--ymt-on-primary-container)}:host :where([data-slot=badges],[data-slot=actions],[data-slot=aside],[data-slot=icon],[data-slot=title],[data-slot=description],[data-slot=meta])[disabled]{border:none;background-color:transparent}:host :where([data-slot=badges],[data-slot=actions]){min-width:3em}:host :where([data-slot=badges],[data-slot=actions]) button{width:24px;height:24px;pointer-events:none;color:currentColor}:host [data-slot=aside]{min-width:4em}:host [data-slot=icon]{height:3em;width:100%}\n"] }]
|
|
1426
1424
|
}], propDecorators: { disableIconSlot: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableIconSlot", required: false }] }], disableBadgesSlot: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableBadgesSlot", required: false }] }], objectConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "objectConfig", required: true }] }], slotSelect: [{ type: i0.Output, args: ["slotSelect"] }] } });
|
|
@@ -1435,10 +1433,10 @@ class TileConfigComponent {
|
|
|
1435
1433
|
* is basically an ID where your custom tile config will be stored and
|
|
1436
1434
|
* retrieved. Buckets should be unique so be sure to use a unique namespace.
|
|
1437
1435
|
*/
|
|
1438
|
-
this.bucket = input(undefined, ...(ngDevMode ? [{ debugName: "bucket" }] : []));
|
|
1439
|
-
this.bucketLabel = input(undefined, ...(ngDevMode ? [{ debugName: "bucketLabel" }] : []));
|
|
1440
|
-
this.configTypes = input(undefined, ...(ngDevMode ? [{ debugName: "configTypes" }] : []));
|
|
1441
|
-
this.configFlavors = input([], ...(ngDevMode ? [{ debugName: "configFlavors" }] : []));
|
|
1436
|
+
this.bucket = input(undefined, ...(ngDevMode ? [{ debugName: "bucket" }] : /* istanbul ignore next */ []));
|
|
1437
|
+
this.bucketLabel = input(undefined, ...(ngDevMode ? [{ debugName: "bucketLabel" }] : /* istanbul ignore next */ []));
|
|
1438
|
+
this.configTypes = input(undefined, ...(ngDevMode ? [{ debugName: "configTypes" }] : /* istanbul ignore next */ []));
|
|
1439
|
+
this.configFlavors = input([], ...(ngDevMode ? [{ debugName: "configFlavors" }] : /* istanbul ignore next */ []));
|
|
1442
1440
|
this.types = computed(() => {
|
|
1443
1441
|
const ct = this.configTypes() || [];
|
|
1444
1442
|
const cf = [];
|
|
@@ -1448,13 +1446,13 @@ class TileConfigComponent {
|
|
|
1448
1446
|
...ct.map((t) => ({ id: t.id, icon: t.icon, data: t })),
|
|
1449
1447
|
...cf.map((f) => ({ id: f.id, icon: f.icon, flavor: true, data: f }))
|
|
1450
1448
|
];
|
|
1451
|
-
}, ...(ngDevMode ? [{ debugName: "types" }] : []));
|
|
1449
|
+
}, ...(ngDevMode ? [{ debugName: "types" }] : /* istanbul ignore next */ []));
|
|
1452
1450
|
this.#typesEffect = effect(() => {
|
|
1453
1451
|
const t = this.types();
|
|
1454
1452
|
if (t.length && !this.selectedType) {
|
|
1455
1453
|
this.typeSelected(t[0]);
|
|
1456
1454
|
}
|
|
1457
|
-
}, ...(ngDevMode ? [{ debugName: "#typesEffect" }] : []));
|
|
1455
|
+
}, ...(ngDevMode ? [{ debugName: "#typesEffect" }] : /* istanbul ignore next */ []));
|
|
1458
1456
|
this.save = output();
|
|
1459
1457
|
this.canceled = output();
|
|
1460
1458
|
this.selectedTypeProperties = [];
|
|
@@ -1599,10 +1597,10 @@ class TileConfigComponent {
|
|
|
1599
1597
|
}
|
|
1600
1598
|
return true;
|
|
1601
1599
|
}
|
|
1602
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1603
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1600
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TileConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1601
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: TileConfigComponent, isStandalone: true, selector: "yuv-tile-config", inputs: { bucket: { classPropertyName: "bucket", publicName: "bucket", isSignal: true, isRequired: false, transformFunction: null }, bucketLabel: { classPropertyName: "bucketLabel", publicName: "bucketLabel", isSignal: true, isRequired: false, transformFunction: null }, configTypes: { classPropertyName: "configTypes", publicName: "configTypes", isSignal: true, isRequired: false, transformFunction: null }, configFlavors: { classPropertyName: "configFlavors", publicName: "configFlavors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { save: "save", canceled: "canceled" }, ngImport: i0, template: "<yuv-dialog [headertitel]=\"'yuv.tile-config.title' | translate: { bucket: bucketLabel() }\">\n <main class=\"tile-config\">\n <section class=\"picker\">\n <mat-form-field>\n <mat-select [panelWidth]=\"null\" [(ngModel)]=\"selectedType\" (ngModelChange)=\"typeSelected($event)\">\n @for (t of types() || []; track t.id; let i = $index) {\n <mat-option [value]=\"t.data\">{{ t.id | translate }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n @if (selectedType) {\n <button ymtButton=\"secondary\" (click)=\"resetConfig()\">{{ 'yuv.tile-config.button.reset' | translate }}</button>\n }\n </section>\n\n <section class=\"details\">\n @if (selectedType) {\n <div class=\"dummy-preview\">\n <yuv-tile-config-tile\n [disableIconSlot]=\"true\"\n [disableBadgesSlot]=\"true\"\n [objectConfig]=\"objectConfig!\"\n (slotSelect)=\"slotSelect($event)\"\n ></yuv-tile-config-tile>\n </div>\n\n <main>\n @if (selectedSlot === 'icon') {\n <h3>{{ 'yuv.tile-config.slot.icon.headline' | translate }}</h3>\n <yuv-icon-select [objectType]=\"selectedType\" (iconSelect)=\"iconSelected($event)\"></yuv-icon-select>\n } @else if (selectedSlot === 'badges') {\n <div class=\"placeholder empty\">\n <p>Future feature: Select badges (like: is favorite, ratings, ...)</p>\n </div>\n } @else if (!selectedSlot) {\n } @else if (selectedSlot === 'actions') {\n <h3>{{ 'yuv.tile-config.slot.action.headline' | translate }}</h3>\n <yuv-tile-action-select\n [objectType]=\"selectedType\"\n [selectedActionIds]=\"getSelectedActions()\"\n (actionSelect)=\"actionSelected($event)\"\n ></yuv-tile-action-select>\n } @else {\n <h3>{{ 'yuv.tile-config.slot.property.headline' | translate }}</h3>\n <yuv-tile-property-select\n [objectType]=\"selectedType\"\n [selectedProperty]=\"getConfigProperty(selectedSlot)\"\n (propertySelect)=\"propertySelected(selectedSlot, $event)\"\n ></yuv-tile-property-select>\n }\n </main>\n } @else {\n <div class=\"placeholder empty\"></div>\n }\n </section>\n </main>\n\n <footer>\n <button ymtButton=\"secondary\" (click)=\"cancelConfig()\">{{ 'yuv.tile-config.button.close' | translate }}</button>\n <button ymtButton=\"primary\" [disabled]=\"!configChanged\" (click)=\"saveConfig()\">{{ 'yuv.tile-config.button.save' | translate }}</button>\n </footer>\n</yuv-dialog>\n", styles: [":host{display:flex;height:100%;flex-flow:column}:host main.tile-config{height:100%;display:contents}:host .picker{display:flex;justify-content:space-between;gap:var(--ymt-spacing-m);align-items:center;border-bottom:1px solid var(--ymt-outline-variant);padding:var(--ymt-spacing-m)}:host .details{flex:1;display:flex;flex-flow:column;box-sizing:border-box;overflow:hidden}:host .details header{flex:0 0 auto;display:flex;align-items:center;border-bottom:1px solid var(--ymt-outline-variant);padding:var(--ymt-spacing-m);gap:var(--ymt-spacing-m)}:host .details header h2{flex:1;overflow:hidden;text-overflow:ellipsis;margin:0}:host .details .dummy-preview{flex:0 0 auto;padding:var(--ymt-spacing-m);background-color:var(--ymt-surface-panel);border-bottom:1px solid var(--ymt-outline-variant)}:host .details .dummy-preview yuv-tile-config-tile{max-width:500px;margin:auto;border-radius:var(--ymt-corner-m);border:1px solid var(--ymt-outline);background-color:var(--ymt-surface-container)}:host .details main{flex:1;overflow-y:auto;padding:var(--ymt-spacing-m)}:host .details main h3{margin:0;padding-block-end:var(--ymt-spacing-m);font:var(--ymt-font-subhead)}:host .details .placeholder.empty{height:100%;display:grid;place-content:center;color:var(--ymt-text-color-subtle)}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: TileConfigTileComponent, selector: "yuv-tile-config-tile", inputs: ["disableIconSlot", "disableBadgesSlot", "objectConfig"], outputs: ["slotSelect"] }, { kind: "component", type: IconSelectComponent, selector: "yuv-icon-select", inputs: ["objectType"], outputs: ["iconSelect"] }, { kind: "component", type: PropertySelectComponent, selector: "yuv-tile-property-select", inputs: ["objectType", "selectedProperty"], outputs: ["propertySelect"] }, { kind: "component", type: ActionSelectComponent, selector: "yuv-tile-action-select", inputs: ["objectType", "selectedActionIds"], outputs: ["actionSelect"] }, { kind: "ngmodule", type: YuvListModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i2$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i2$1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i2$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: DialogComponent, selector: "yuv-dialog", inputs: ["headertitle", "headertitel"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "directive", type: YmtButtonDirective, selector: "button[ymtButton], a[ymtButton]", inputs: ["ymtButton", "disabled", "aria-disabled", "disableRipple", "disabledInteractive", "button-size"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
|
1604
1602
|
}
|
|
1605
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1603
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TileConfigComponent, decorators: [{
|
|
1606
1604
|
type: Component,
|
|
1607
1605
|
args: [{ selector: 'yuv-tile-config', standalone: true, imports: [
|
|
1608
1606
|
FormsModule,
|
|
@@ -1626,12 +1624,12 @@ class TileConfigTriggerComponent {
|
|
|
1626
1624
|
constructor() {
|
|
1627
1625
|
this.#dialog = inject(MatDialog);
|
|
1628
1626
|
this.tplTileConfig = viewChild.required('tplTileConfig');
|
|
1629
|
-
this.icon = input('settings', ...(ngDevMode ? [{ debugName: "icon" }] : []));
|
|
1630
|
-
this.bucket = input(...(ngDevMode ? [undefined, { debugName: "bucket" }] : []));
|
|
1631
|
-
this.bucketLabel = input(...(ngDevMode ? [undefined, { debugName: "bucketLabel" }] : []));
|
|
1632
|
-
this.options = input(undefined, ...(ngDevMode ? [{ debugName: "options" }] : []));
|
|
1627
|
+
this.icon = input('settings', ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
|
|
1628
|
+
this.bucket = input(...(ngDevMode ? [undefined, { debugName: "bucket" }] : /* istanbul ignore next */ []));
|
|
1629
|
+
this.bucketLabel = input(...(ngDevMode ? [undefined, { debugName: "bucketLabel" }] : /* istanbul ignore next */ []));
|
|
1630
|
+
this.options = input(undefined, ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
|
|
1633
1631
|
// If true, renders a smaller icon button
|
|
1634
|
-
this.small = input(false, ...(ngDevMode ? [{ debugName: "small" }] : []));
|
|
1632
|
+
this.small = input(false, ...(ngDevMode ? [{ debugName: "small" }] : /* istanbul ignore next */ []));
|
|
1635
1633
|
}
|
|
1636
1634
|
#dialog;
|
|
1637
1635
|
#dialogRef;
|
|
@@ -1651,27 +1649,27 @@ class TileConfigTriggerComponent {
|
|
|
1651
1649
|
if (this.#dialogRef)
|
|
1652
1650
|
this.#dialogRef.close();
|
|
1653
1651
|
}
|
|
1654
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1655
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "
|
|
1652
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TileConfigTriggerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1653
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.9", type: TileConfigTriggerComponent, isStandalone: true, selector: "yuv-tile-config-trigger", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, bucket: { classPropertyName: "bucket", publicName: "bucket", isSignal: true, isRequired: false, transformFunction: null }, bucketLabel: { classPropertyName: "bucketLabel", publicName: "bucketLabel", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, small: { classPropertyName: "small", publicName: "small", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "tplTileConfig", first: true, predicate: ["tplTileConfig"], descendants: true, isSignal: true }], ngImport: i0, template: "<button ymt-icon-button [icon-button-size]=\"small() ? 'small' : 'medium'\" class=\"settings icon\" (click)=\"openTileConfigOverlay()\" [matTooltip]=\"'yuv.tile-config.trigger.tooltip' | translate\">\n <mat-icon>settings</mat-icon>\n</button>\n\n<ng-template #tplTileConfig>\n <yuv-tile-config\n (save)=\"onObjectConfigSave()\"\n (canceled)=\"onObjectConfigCancel()\"\n [bucket]=\"bucket() || undefined\"\n [bucketLabel]=\"bucketLabel()\"\n [configTypes]=\"options()?.configTypes\"\n [configFlavors]=\"options()?.configFlavors || []\"\n ></yuv-tile-config>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: TileConfigComponent, selector: "yuv-tile-config", inputs: ["bucket", "bucketLabel", "configTypes", "configFlavors"], outputs: ["save", "canceled"] }, { kind: "directive", type: YmtIconButtonDirective, selector: "button[ymtIconButton],button[ymt-icon-button],a[ymtIconButton],a[ymt-icon-button]", inputs: ["disabled", "disableRipple", "aria-disabled", "disabledInteractive", "icon-button-size"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: TranslatePipe$1, name: "translate" }] }); }
|
|
1656
1654
|
}
|
|
1657
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1655
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TileConfigTriggerComponent, decorators: [{
|
|
1658
1656
|
type: Component,
|
|
1659
1657
|
args: [{ selector: 'yuv-tile-config-trigger', standalone: true, imports: [TileConfigComponent, TranslatePipe$1, YmtIconButtonDirective, MatButtonModule, MatTooltipModule, MatIcon], template: "<button ymt-icon-button [icon-button-size]=\"small() ? 'small' : 'medium'\" class=\"settings icon\" (click)=\"openTileConfigOverlay()\" [matTooltip]=\"'yuv.tile-config.trigger.tooltip' | translate\">\n <mat-icon>settings</mat-icon>\n</button>\n\n<ng-template #tplTileConfig>\n <yuv-tile-config\n (save)=\"onObjectConfigSave()\"\n (canceled)=\"onObjectConfigCancel()\"\n [bucket]=\"bucket() || undefined\"\n [bucketLabel]=\"bucketLabel()\"\n [configTypes]=\"options()?.configTypes\"\n [configFlavors]=\"options()?.configFlavors || []\"\n ></yuv-tile-config>\n</ng-template>\n" }]
|
|
1660
1658
|
}], propDecorators: { tplTileConfig: [{ type: i0.ViewChild, args: ['tplTileConfig', { isSignal: true }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], bucket: [{ type: i0.Input, args: [{ isSignal: true, alias: "bucket", required: false }] }], bucketLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "bucketLabel", required: false }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], small: [{ type: i0.Input, args: [{ isSignal: true, alias: "small", required: false }] }] } });
|
|
1661
1659
|
|
|
1662
1660
|
class EmailTileExtensionComponent {
|
|
1663
1661
|
constructor() {
|
|
1664
|
-
this.data = input.required(...(ngDevMode ? [{ debugName: "data" }] : []));
|
|
1665
|
-
this.attachments = computed(() => this.data()['appSystemmail:attachments'] || [], ...(ngDevMode ? [{ debugName: "attachments" }] : []));
|
|
1666
|
-
this.hasAttachements = computed(() => !!this.data()['appSystemmail:attachmentCount'], ...(ngDevMode ? [{ debugName: "hasAttachements" }] : []));
|
|
1662
|
+
this.data = input.required(...(ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ []));
|
|
1663
|
+
this.attachments = computed(() => this.data()['appSystemmail:attachments'] || [], ...(ngDevMode ? [{ debugName: "attachments" }] : /* istanbul ignore next */ []));
|
|
1664
|
+
this.hasAttachements = computed(() => !!this.data()['appSystemmail:attachmentCount'], ...(ngDevMode ? [{ debugName: "hasAttachements" }] : /* istanbul ignore next */ []));
|
|
1667
1665
|
}
|
|
1668
1666
|
onClick(a, evt) {
|
|
1669
1667
|
evt.preventDefault();
|
|
1670
1668
|
evt.stopPropagation();
|
|
1671
1669
|
alert(`You clicked '${a}' my friend.`);
|
|
1672
1670
|
}
|
|
1673
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1674
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
1671
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: EmailTileExtensionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1672
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: EmailTileExtensionComponent, isStandalone: true, selector: "yuv-email-tile-extension", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class.attachments": "hasAttachements()" } }, ngImport: i0, template: `
|
|
1675
1673
|
@if (hasAttachements()) {
|
|
1676
1674
|
<span>{{ attachments().length }}</span>
|
|
1677
1675
|
<svg class="icon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="#5f6368" viewBox="0 -960 960 960">
|
|
@@ -1682,7 +1680,7 @@ class EmailTileExtensionComponent {
|
|
|
1682
1680
|
}
|
|
1683
1681
|
`, isInline: true, styles: [":host{display:flex;justify-content:end;margin-top:.5rem}:host .icon{height:1rem}\n"] }); }
|
|
1684
1682
|
}
|
|
1685
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1683
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: EmailTileExtensionComponent, decorators: [{
|
|
1686
1684
|
type: Component,
|
|
1687
1685
|
args: [{ selector: 'yuv-email-tile-extension', standalone: true, imports: [], template: `
|
|
1688
1686
|
@if (hasAttachements()) {
|