@yuuvis/client-framework 2.0.4 → 2.0.6
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/README.md +1 -48
- package/actions/lib/actions.module.d.ts +3 -0
- package/actions/lib/actions.service.d.ts +10 -0
- package/fesm2022/yuuvis-client-framework-actions.mjs +14 -1
- package/fesm2022/yuuvis-client-framework-actions.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-forms.mjs +146 -5
- package/fesm2022/yuuvis-client-framework-forms.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-icons.mjs +4 -0
- package/fesm2022/yuuvis-client-framework-icons.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-list.mjs +42 -2
- package/fesm2022/yuuvis-client-framework-list.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs +4 -3
- package/fesm2022/yuuvis-client-framework-metadata-form-defaults.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs +31 -2
- package/fesm2022/yuuvis-client-framework-metadata-form.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-object-summary.mjs +6 -6
- package/fesm2022/yuuvis-client-framework-object-summary.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-simple-search.mjs +18 -13
- package/fesm2022/yuuvis-client-framework-simple-search.mjs.map +1 -1
- package/fesm2022/yuuvis-client-framework-tile-list.mjs +2 -2
- package/fesm2022/yuuvis-client-framework-tile-list.mjs.map +1 -1
- package/forms/lib/elements/index.d.ts +1 -0
- package/forms/lib/elements/organization-set/organization-set.component.d.ts +62 -0
- package/forms/lib/forms.module.d.ts +3 -0
- package/icons/lib/icon.component.d.ts +4 -0
- package/lib/assets/i18n/de.json +3 -0
- package/lib/assets/i18n/en.json +3 -0
- package/list/lib/list-item.directive.d.ts +18 -0
- package/list/lib/list.component.d.ts +24 -2
- package/metadata-form/lib/metadata-form-element-registry.service.d.ts +13 -1
- package/metadata-form/lib/metadata-form-field/metadata-form-field.component.d.ts +5 -0
- package/metadata-form/lib/object-metadata-element-error.directive.d.ts +5 -1
- package/metadata-form/lib/object-metadata-element-label.directive.d.ts +8 -0
- package/package.json +5 -5
- package/simple-search/lib/simple-search/simple-search.component.d.ts +3 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yuuvis-client-framework-simple-search.mjs","sources":["../../../../../libs/yuuvis/client-framework/simple-search/src/lib/simple-search/simple-search.component.ts","../../../../../libs/yuuvis/client-framework/simple-search/src/lib/simple-search/simple-search.component.html","../../../../../libs/yuuvis/client-framework/simple-search/src/yuuvis-client-framework-simple-search.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormBuilder, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { AggregateResult, BaseObjectTypeField, SearchQuery, SearchService, SystemService, Utils } from '@yuuvis/client-core';\nimport { debounceTime, tap } from 'rxjs';\nimport { MatFormField, MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nexport interface ObjectTypeAggregation {\n /**\n * id of a found object type\n */\n objectTypeId: string;\n /**\n * label of an object\n */\n label: string;\n /**\n * number of objects found\n */\n count: number;\n}\n\n@Component({\n selector: 'yuv-simple-search',\n standalone: true,\n imports: [ReactiveFormsModule, MatIconModule, MatButtonModule, MatFormField, MatInputModule],\n templateUrl: './simple-search.component.html',\n styleUrls: ['./simple-search.component.scss'],\n providers: [\n {\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: {\n subscriptSizing: 'dynamic'\n }\n }\n ]\n})\nexport class SimpleSearchComponent {\n private fb = inject(FormBuilder);\n private searchService = inject(SearchService);\n private systemService = inject(SystemService);\n\n private _query: SearchQuery = {};\n /**\n * The search query\n */\n @Input() set query(q: SearchQuery | null) {\n this._query = structuredClone(q) || {};\n if (this._query.term) {\n this.form.patchValue({ term: this._query.term });\n // this.aggregate();\n } else this.form.reset();\n }\n get query() {\n return this._query;\n }\n\n form: FormGroup = this.fb.group({\n term: [''],\n targets: []\n });\n\n /**\n * Emitted once the user submits the search\n */\n @Output() querySubmit = new EventEmitter<SearchQuery>();\n\n /**\n * Emitted once the user hits clear input button\n */\n @Output() clearInput = new EventEmitter<void>();\n /**\n * Emitted once selected targets change\n */\n @Output() targetSelectionChanged = new EventEmitter<(string | number)[]>();\n @Output() queryChange = new EventEmitter<SearchQuery>();\n @Output() typeAggregation = new EventEmitter<ObjectTypeAggregation[]>();\n\n constructor() {\n this.form.controls['targets'].valueChanges.pipe(takeUntilDestroyed()).subscribe((v) => {\n this._query.types = v;\n this.targetSelectionChanged.emit(v);\n });\n this.form.valueChanges\n .pipe(\n debounceTime(500),\n takeUntilDestroyed(),\n tap((v: any) => {\n this._query.term = v.term;\n this.queryChange.emit(this._query);\n if (this.typeAggregation.observed) this.aggregate();\n })\n )\n .subscribe();\n }\n\n search() {\n if (this.form.valid) {\n this._query.term = this.form.value.term;\n this.querySubmit.emit(this._query);\n }\n }\n\n aggregate(all?: boolean) {\n if (all || this._query.term) {\n this.searchService.aggregate(structuredClone(this._query), [BaseObjectTypeField.OBJECT_TYPE_ID]).subscribe((res: AggregateResult) => {\n this._processAggregateResult(res);\n });\n }\n }\n\n clear($event: Event) {\n if (this.form.value.term) {\n this.form.controls['term'].setValue(null);\n this.clearInput.emit();\n }\n $event.stopPropagation();\n }\n\n private _processAggregateResult(res: AggregateResult) {\n if (res.aggregations && res.aggregations.length) {\n this.typeAggregation.emit(\n res.aggregations[0].entries\n .map((r) => ({ objectTypeId: r.key, label: this.systemService.getLocalizedLabel(r.key) || r.key, count: r.count }))\n .sort(Utils.sortValues('label'))\n );\n } else {\n this.typeAggregation.emit([]);\n }\n }\n}\n","<form [formGroup]=\"form\">\n <!-- Todo: String Translations-->\n <mat-form-field appearance=\"outline\">\n <label>\n <span class=\"ymt-hide-sr\">Search App</span>\n <input matInput type=\"text\" placeholder=\"Search App\" formControlName=\"term\" />\n </label>\n <mat-icon matPrefix>search</mat-icon>\n <button type=\"button\"\n mat-icon-button\n matSuffix\n [disabled]=\"!!!form.value.term\"\n class=\"clear-input-action ymt-icon-button--size-s\"\n (click)=\"clear($event)\">\n @if(form.value.term){ <mat-icon>close</mat-icon>}\n </button>\n </mat-form-field>\n <button class=\"ymt-hide-sr\" mat-icon-button (click)=\"search()\" [attr.aria-label]=\"'Submit Search'\" [disabled]=\"form.invalid\">\n <mat-icon>search</mat-icon>\n </button>\n</form>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"yuuvis-client-framework-simple-search.mjs","sources":["../../../../../libs/yuuvis/client-framework/simple-search/src/lib/simple-search/simple-search.component.ts","../../../../../libs/yuuvis/client-framework/simple-search/src/lib/simple-search/simple-search.component.html","../../../../../libs/yuuvis/client-framework/simple-search/src/yuuvis-client-framework-simple-search.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormBuilder, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { AggregateResult, BaseObjectTypeField, SearchQuery, SearchService, SystemService, TranslateModule, TranslateService, Utils } from '@yuuvis/client-core';\nimport { debounceTime, tap } from 'rxjs';\nimport { MatFormField, MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nexport interface ObjectTypeAggregation {\n /**\n * id of a found object type\n */\n objectTypeId: string;\n /**\n * label of an object\n */\n label: string;\n /**\n * number of objects found\n */\n count: number;\n}\n\n@Component({\n selector: 'yuv-simple-search',\n standalone: true,\n imports: [ReactiveFormsModule, TranslateModule, MatIconModule, MatButtonModule, MatFormField, MatInputModule],\n templateUrl: './simple-search.component.html',\n styleUrls: ['./simple-search.component.scss'],\n providers: [\n {\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: {\n subscriptSizing: 'dynamic'\n }\n }\n ]\n})\nexport class SimpleSearchComponent {\n #fb = inject(FormBuilder);\n readonly translate = inject(TranslateService);\n #searchService = inject(SearchService);\n #systemService = inject(SystemService);\n\n private _query: SearchQuery = {};\n /**\n * The search query\n */\n @Input() set query(q: SearchQuery | null) {\n this._query = structuredClone(q) || {};\n if (this._query.term) {\n this.form.patchValue({ term: this._query.term });\n // this.aggregate();\n } else this.form.reset();\n }\n get query() {\n return this._query;\n }\n\n form: FormGroup = this.#fb.group({\n term: [''],\n targets: []\n });\n\n /**\n * Emitted once the user submits the search\n */\n @Output() querySubmit = new EventEmitter<SearchQuery>();\n\n /**\n * Emitted once the user hits clear input button\n */\n @Output() clearInput = new EventEmitter<void>();\n /**\n * Emitted once selected targets change\n */\n @Output() targetSelectionChanged = new EventEmitter<(string | number)[]>();\n @Output() queryChange = new EventEmitter<SearchQuery>();\n @Output() typeAggregation = new EventEmitter<ObjectTypeAggregation[]>();\n\n constructor() {\n this.form.controls['targets'].valueChanges.pipe(takeUntilDestroyed()).subscribe((v) => {\n this._query.types = v;\n this.targetSelectionChanged.emit(v);\n });\n this.form.valueChanges\n .pipe(\n debounceTime(500),\n takeUntilDestroyed(),\n tap((v: any) => {\n this._query.term = v.term;\n this.queryChange.emit(this._query);\n if (this.typeAggregation.observed) this.aggregate();\n })\n )\n .subscribe();\n }\n\n search() {\n if (this.form.valid) {\n this._query.term = this.form.value.term;\n this.querySubmit.emit(this._query);\n }\n }\n\n aggregate(all?: boolean) {\n if (all || this._query.term) {\n this.#searchService.aggregate(structuredClone(this._query), [BaseObjectTypeField.OBJECT_TYPE_ID]).subscribe((res: AggregateResult) => {\n this._processAggregateResult(res);\n });\n }\n }\n\n clear($event: Event) {\n if (this.form.value.term) {\n this.form.controls['term'].setValue(null);\n this.clearInput.emit();\n }\n $event.stopPropagation();\n }\n\n private _processAggregateResult(res: AggregateResult) {\n if (res.aggregations && res.aggregations.length) {\n this.typeAggregation.emit(\n res.aggregations[0].entries\n .map((r) => ({ objectTypeId: r.key, label: this.#systemService.getLocalizedLabel(r.key) || r.key, count: r.count }))\n .sort(Utils.sortValues('label'))\n );\n } else {\n this.typeAggregation.emit([]);\n }\n }\n}\n","<form [formGroup]=\"form\">\n <!-- Todo: String Translations-->\n <mat-form-field appearance=\"outline\">\n <label>\n <span class=\"ymt-hide-sr\">{{'yuv.simple-search.label'|translate}}</span>\n <input matInput type=\"text\" [placeholder]=\"'yuv.simple-search.label'|translate\" formControlName=\"term\" />\n </label>\n <mat-icon matPrefix>search</mat-icon>\n <button type=\"button\"\n mat-icon-button\n matSuffix\n [disabled]=\"!!!form.value.term\"\n class=\"clear-input-action ymt-icon-button--size-s\"\n (click)=\"clear($event)\">\n @if(form.value.term){ <mat-icon>close</mat-icon>}\n </button>\n </mat-form-field>\n <button class=\"ymt-hide-sr\" mat-icon-button (click)=\"search()\" [attr.aria-label]=\"'yuv.simple-search.submit'|translate\" [disabled]=\"form.invalid\">\n <mat-icon>search</mat-icon>\n </button>\n</form>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -604,7 +604,7 @@ class TileListComponent {
|
|
|
604
604
|
this.searchResultSubscription.unsubscribe();
|
|
605
605
|
}
|
|
606
606
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: TileListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
607
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.12", type: TileListComponent, isStandalone: true, selector: "yuv-tile-list", inputs: { bucket: { classPropertyName: "bucket", publicName: "bucket", isSignal: true, isRequired: false, transformFunction: null }, multiselect: { classPropertyName: "multiselect", publicName: "multiselect", 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 } }, outputs: { itemSelect: "itemSelect", tileCopy: "tileCopy", tileCut: "tileCut", busy: "busy", queryResult: "queryResult", selectionChange: "selectionChange", itemDblClick: "itemDblClick", ctxMenu: "ctxMenu" }, host: { attributes: { "tabindex": "0", "role": "listbox" }, listeners: { "contextmenu": "onContextMenu($event)", "mousedown": "onMouseDown($event)", "keydown.control.c": "onCopy($event)", "keydown.control.x": "onCut($event)", "keydown": "onKeydown($event)" }, properties: { "class.pagination": "this.pagination" } }, providers: [], queries: [{ propertyName: "emptyContent", first: true, predicate: ["empty"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: "tiles", predicate: TileComponent, descendants: true, isSignal: true }, { propertyName: "listItems", predicate: ListItemDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<div\n class=\"tiles\"\n [yuvDragSelect]=\"{ disabled: !this.multiselect() || isTouchDevice }\"\n (dragSelectChange)=\"onDragSelectChange($event)\"\n (dragSelect)=\"onDragSelect($event)\"\n>\n @for (i of items; track i.id) {\n <yuv-tile\n yuvDragSelectItem\n yuvListItem\n [attr.aria-selected]=\"selection().includes(i.id)\"\n (click.single)=\"select(i, $event)\"\n (click.double)=\"itemDblClick.emit(i)\"\n [ngClass]=\"{ selected: selection().includes(i.id), last: $last }\"\n [actionContext]=\"options()?.actionContext\"\n [tile]=\"i\"\n [ngStyle]=\"highlightStyles()[i.id]\"\n (contextmenu)=\"contextMenuHandler($event, $index)\"\n ></yuv-tile>\n } @empty {\n <div class=\"empyt-list\">\n @if (searchExecuted && emptyContent()) {\n <ng-content></ng-content>\n }\n </div>\n }\n <div class=\"offset\" (click)=\"clearSelection()\"></div>\n</div>\n@if (pagination) {\n <mat-paginator\n class=\"paginator\"\n [length]=\"pagination?.total\"\n [pageSize]=\"query()?.size\"\n aria-label=\"Select page\"\n (page)=\"changePage($event)\"\n hidePageSize\n
|
|
607
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.12", type: TileListComponent, isStandalone: true, selector: "yuv-tile-list", inputs: { bucket: { classPropertyName: "bucket", publicName: "bucket", isSignal: true, isRequired: false, transformFunction: null }, multiselect: { classPropertyName: "multiselect", publicName: "multiselect", 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 } }, outputs: { itemSelect: "itemSelect", tileCopy: "tileCopy", tileCut: "tileCut", busy: "busy", queryResult: "queryResult", selectionChange: "selectionChange", itemDblClick: "itemDblClick", ctxMenu: "ctxMenu" }, host: { attributes: { "tabindex": "0", "role": "listbox" }, listeners: { "contextmenu": "onContextMenu($event)", "mousedown": "onMouseDown($event)", "keydown.control.c": "onCopy($event)", "keydown.control.x": "onCut($event)", "keydown": "onKeydown($event)" }, properties: { "class.pagination": "this.pagination" } }, providers: [], queries: [{ propertyName: "emptyContent", first: true, predicate: ["empty"], descendants: true, isSignal: true }], viewQueries: [{ propertyName: "tiles", predicate: TileComponent, descendants: true, isSignal: true }, { propertyName: "listItems", predicate: ListItemDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<div\n class=\"tiles\"\n [yuvDragSelect]=\"{ disabled: !this.multiselect() || isTouchDevice }\"\n (dragSelectChange)=\"onDragSelectChange($event)\"\n (dragSelect)=\"onDragSelect($event)\"\n>\n @for (i of items; track i.id) {\n <yuv-tile\n yuvDragSelectItem\n yuvListItem\n [attr.aria-selected]=\"selection().includes(i.id)\"\n (click.single)=\"select(i, $event)\"\n (click.double)=\"itemDblClick.emit(i)\"\n [ngClass]=\"{ selected: selection().includes(i.id), last: $last }\"\n [actionContext]=\"options()?.actionContext\"\n [tile]=\"i\"\n [ngStyle]=\"highlightStyles()[i.id]\"\n (contextmenu)=\"contextMenuHandler($event, $index)\"\n ></yuv-tile>\n } @empty {\n <div class=\"empyt-list\">\n @if (searchExecuted && emptyContent()) {\n <ng-content></ng-content>\n }\n </div>\n }\n <div class=\"offset\" (click)=\"clearSelection()\"></div>\n</div>\n@if (pagination) {\n <mat-paginator\n class=\"paginator\"\n [length]=\"pagination?.total\"\n [pageSize]=\"query()?.size\"\n aria-label=\"Select page\"\n (page)=\"changePage($event)\"\n hidePageSize\n >\n </mat-paginator>\n}\n", styles: [":host{--tile-current-background: var(--ymt-focus-background);--tile-on-current: var(--ymt-on-focus-background);--tile-selected-background: var(--ymt-selection-background);--tile-on-selected: var(--ymt-on-selection-background);--tile-selected-icon-fill: var(--ymt-primary);--tile-gap: 0px;--tile-border: none;--tile-border-width: 1px;--tile-icon-size: initial;--paging-button-size: 18px;--paging-margin: var(--ymt-spacing-xs);--paging-padding: var(--ymt-spacing-2xs);position:relative;display:grid;grid-template-rows:1fr auto var(--paging-margin);grid-template-columns:var(--paging-margin) 1fr var(--paging-margin)}:host.pagination yuv-tile.last{margin-block-end:calc(var(--paging-margin) * 2 + var(--paging-padding) * 2 + var(--paging-button-size))}:host .tiles{grid-column:1/-1;grid-row:1/-1;overflow-y:auto;padding-block:var(--ymt-spacing-s);display:flex;flex-flow:column}:host .tiles yuv-tile{flex:0 0 auto}:host .tiles .offset{flex:1 1 auto}:host yuv-pagination{z-index:2;grid-column:2/-2;grid-row:2/-2;border:1px solid var(--ymt-outline-variant)}:host .paginator{margin-top:auto;grid-column:2/-2;grid-row:2/-2;border-block-start:1px solid var(--ymt-outline-variant);font:inherit}:host yuv-tile{cursor:pointer}:host yuv-tile:not(.last){border:var(--tile-border);border-width:var(--tile-border-width);margin-block-end:var(--tile-gap)}:host .empyt-list{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: TileComponent, selector: "yuv-tile", inputs: ["tile", "actionContext"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: YuvListModule }, { kind: "directive", type: i3.ListItemDirective, selector: "[yuvListItem]", inputs: ["disabled", "active", "selected"] }, { kind: "directive", type: ClickDoubleDirective, selector: "[click.single],[click.double]", inputs: ["debounceTime"], outputs: ["click.double", "click.single"] }, { kind: "directive", type: DragSelectDirective, selector: "[yuvDragSelect]", inputs: ["yuvDragSelect"], outputs: ["dragSelectChange", "dragSelect"] }, { kind: "directive", type: DragSelectItemDirective, selector: "[yuvDragSelectItem]" }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i2$1.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }] }); }
|
|
608
608
|
}
|
|
609
609
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImport: i0, type: TileListComponent, decorators: [{
|
|
610
610
|
type: Component,
|
|
@@ -622,7 +622,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.12", ngImpo
|
|
|
622
622
|
], host: {
|
|
623
623
|
tabindex: '0',
|
|
624
624
|
role: 'listbox'
|
|
625
|
-
}, template: "<div\n class=\"tiles\"\n [yuvDragSelect]=\"{ disabled: !this.multiselect() || isTouchDevice }\"\n (dragSelectChange)=\"onDragSelectChange($event)\"\n (dragSelect)=\"onDragSelect($event)\"\n>\n @for (i of items; track i.id) {\n <yuv-tile\n yuvDragSelectItem\n yuvListItem\n [attr.aria-selected]=\"selection().includes(i.id)\"\n (click.single)=\"select(i, $event)\"\n (click.double)=\"itemDblClick.emit(i)\"\n [ngClass]=\"{ selected: selection().includes(i.id), last: $last }\"\n [actionContext]=\"options()?.actionContext\"\n [tile]=\"i\"\n [ngStyle]=\"highlightStyles()[i.id]\"\n (contextmenu)=\"contextMenuHandler($event, $index)\"\n ></yuv-tile>\n } @empty {\n <div class=\"empyt-list\">\n @if (searchExecuted && emptyContent()) {\n <ng-content></ng-content>\n }\n </div>\n }\n <div class=\"offset\" (click)=\"clearSelection()\"></div>\n</div>\n@if (pagination) {\n <mat-paginator\n class=\"paginator\"\n [length]=\"pagination?.total\"\n [pageSize]=\"query()?.size\"\n aria-label=\"Select page\"\n (page)=\"changePage($event)\"\n hidePageSize\n
|
|
625
|
+
}, template: "<div\n class=\"tiles\"\n [yuvDragSelect]=\"{ disabled: !this.multiselect() || isTouchDevice }\"\n (dragSelectChange)=\"onDragSelectChange($event)\"\n (dragSelect)=\"onDragSelect($event)\"\n>\n @for (i of items; track i.id) {\n <yuv-tile\n yuvDragSelectItem\n yuvListItem\n [attr.aria-selected]=\"selection().includes(i.id)\"\n (click.single)=\"select(i, $event)\"\n (click.double)=\"itemDblClick.emit(i)\"\n [ngClass]=\"{ selected: selection().includes(i.id), last: $last }\"\n [actionContext]=\"options()?.actionContext\"\n [tile]=\"i\"\n [ngStyle]=\"highlightStyles()[i.id]\"\n (contextmenu)=\"contextMenuHandler($event, $index)\"\n ></yuv-tile>\n } @empty {\n <div class=\"empyt-list\">\n @if (searchExecuted && emptyContent()) {\n <ng-content></ng-content>\n }\n </div>\n }\n <div class=\"offset\" (click)=\"clearSelection()\"></div>\n</div>\n@if (pagination) {\n <mat-paginator\n class=\"paginator\"\n [length]=\"pagination?.total\"\n [pageSize]=\"query()?.size\"\n aria-label=\"Select page\"\n (page)=\"changePage($event)\"\n hidePageSize\n >\n </mat-paginator>\n}\n", styles: [":host{--tile-current-background: var(--ymt-focus-background);--tile-on-current: var(--ymt-on-focus-background);--tile-selected-background: var(--ymt-selection-background);--tile-on-selected: var(--ymt-on-selection-background);--tile-selected-icon-fill: var(--ymt-primary);--tile-gap: 0px;--tile-border: none;--tile-border-width: 1px;--tile-icon-size: initial;--paging-button-size: 18px;--paging-margin: var(--ymt-spacing-xs);--paging-padding: var(--ymt-spacing-2xs);position:relative;display:grid;grid-template-rows:1fr auto var(--paging-margin);grid-template-columns:var(--paging-margin) 1fr var(--paging-margin)}:host.pagination yuv-tile.last{margin-block-end:calc(var(--paging-margin) * 2 + var(--paging-padding) * 2 + var(--paging-button-size))}:host .tiles{grid-column:1/-1;grid-row:1/-1;overflow-y:auto;padding-block:var(--ymt-spacing-s);display:flex;flex-flow:column}:host .tiles yuv-tile{flex:0 0 auto}:host .tiles .offset{flex:1 1 auto}:host yuv-pagination{z-index:2;grid-column:2/-2;grid-row:2/-2;border:1px solid var(--ymt-outline-variant)}:host .paginator{margin-top:auto;grid-column:2/-2;grid-row:2/-2;border-block-start:1px solid var(--ymt-outline-variant);font:inherit}:host yuv-tile{cursor:pointer}:host yuv-tile:not(.last){border:var(--tile-border);border-width:var(--tile-border-width);margin-block-end:var(--tile-gap)}:host .empyt-list{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}\n"] }]
|
|
626
626
|
}], ctorParameters: () => [], propDecorators: { onContextMenu: [{
|
|
627
627
|
type: HostListener,
|
|
628
628
|
args: ['contextmenu', ['$event']]
|