@nanahoshi/mona-ui 0.20.0 → 0.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/nanahoshi-mona-ui-auto-complete.mjs +46 -36
- package/fesm2022/nanahoshi-mona-ui-combo-box.mjs +109 -99
- package/fesm2022/nanahoshi-mona-ui-date-picker.mjs +3 -3
- package/fesm2022/nanahoshi-mona-ui-datetime-picker.mjs +3 -3
- package/fesm2022/nanahoshi-mona-ui-dropdown-list.mjs +37 -27
- package/fesm2022/nanahoshi-mona-ui-dropdowns.mjs +5 -4
- package/fesm2022/nanahoshi-mona-ui-editor.mjs +3 -3
- package/fesm2022/nanahoshi-mona-ui-filter.mjs +1 -1
- package/fesm2022/{nanahoshi-mona-ui-grid-grid-footer-cell.component-BuybF7tX.mjs → nanahoshi-mona-ui-grid-grid-footer-cell.component-ZdcR20RJ.mjs} +7 -4
- package/fesm2022/{nanahoshi-mona-ui-grid-grid-footer-table-cell.directive-Dj-SaNzk.mjs → nanahoshi-mona-ui-grid-grid-footer-table-cell.directive-Bu093U9J.mjs} +12 -6
- package/fesm2022/nanahoshi-mona-ui-grid-grid-list.component-Dtze5qye.mjs +162 -0
- package/fesm2022/{nanahoshi-mona-ui-grid-grid-toggle.component-B_Gm--X6.mjs → nanahoshi-mona-ui-grid-grid-toggle.component-DFMbXpKb.mjs} +43 -32
- package/fesm2022/nanahoshi-mona-ui-grid-grid-virtual-list.component-xc8ybFkY.mjs +239 -0
- package/fesm2022/{nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-CyzJFQIy.mjs → nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-BGfDw6_5.mjs} +543 -294
- package/fesm2022/nanahoshi-mona-ui-grid.mjs +1 -1
- package/fesm2022/nanahoshi-mona-ui-list-view.mjs +2 -2
- package/fesm2022/nanahoshi-mona-ui-locales.mjs +26 -13
- package/fesm2022/nanahoshi-mona-ui-multi-select.mjs +46 -38
- package/fesm2022/nanahoshi-mona-ui-pager.mjs +10 -5
- package/fesm2022/nanahoshi-mona-ui-sheet.mjs +1 -1
- package/fesm2022/nanahoshi-mona-ui-time-picker.mjs +3 -3
- package/package.json +1 -1
- package/types/nanahoshi-mona-ui-auto-complete.d.ts +19 -18
- package/types/nanahoshi-mona-ui-combo-box.d.ts +23 -22
- package/types/nanahoshi-mona-ui-dropdown-list.d.ts +18 -17
- package/types/nanahoshi-mona-ui-dropdowns.d.ts +6 -4
- package/types/nanahoshi-mona-ui-grid.d.ts +80 -40
- package/types/nanahoshi-mona-ui-i18n.d.ts +1 -0
- package/types/nanahoshi-mona-ui-locales.d.ts +13 -0
- package/types/nanahoshi-mona-ui-multi-select.d.ts +20 -19
- package/types/nanahoshi-mona-ui-pager.d.ts +1 -0
- package/fesm2022/nanahoshi-mona-ui-grid-grid-list.component-CYAm4l84.mjs +0 -145
- package/fesm2022/nanahoshi-mona-ui-grid-grid-virtual-list.component-X0X487Rm.mjs +0 -233
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { C as CellEditEvent,
|
|
1
|
+
export { C as CellEditEvent, B as GRID_DEFAULT_MESSAGES, D as GridAddCommandDirective, E as GridAddEvent, F as GridCancelCommandDirective, H as GridCancelEvent, I as GridCellTemplateDirective, J as GridColumnComponent, K as GridColumnTitleTemplateDirective, L as GridCommandColumnComponent, M as GridComponent, N as GridContextMenuDirective, O as GridDetailTemplateDirective, P as GridEditCommandDirective, Q as GridEditEvent, R as GridEditTemplateDirective, S as GridEditableDirective, T as GridExportDirective, U as GridFilterableDirective, V as GridFooterTemplateDirective, W as GridGroupFooterTemplateDirective, X as GridGroupableDirective, Y as GridHeaderTemplateDirective, Z as GridNoDataTemplateDirective, _ as GridRemoveCommandDirective, $ as GridRemoveEvent, a0 as GridReorderableDirective, a1 as GridResizableDirective, a2 as GridRowReorderableDirective, a3 as GridSaveCommandDirective, a4 as GridSaveEvent, a5 as GridSelectableDirective, a6 as GridServerBindingDirective, a7 as GridSortableDirective, a8 as GridStatePersistenceDirective, a9 as GridToolbarTemplateDirective, aa as GridVirtualScrollDirective, ab as RowEditEvent, ac as RowReorderEvent } from './nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-BGfDw6_5.mjs';
|
|
2
2
|
//# sourceMappingURL=nanahoshi-mona-ui-grid.mjs.map
|
|
@@ -274,7 +274,7 @@ class ListViewComponent {
|
|
|
274
274
|
},
|
|
275
275
|
deps: [[new Optional(), new SkipSelf(), ListService]]
|
|
276
276
|
}
|
|
277
|
-
], queries: [{ propertyName: "footerTemplate", first: true, predicate: ListViewFooterTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "groupHeaderTemplate", first: true, predicate: ListViewGroupHeaderTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "headerTemplate", first: true, predicate: ListViewHeaderTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "itemTemplate", first: true, predicate: ListViewItemTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "noDataTemplate", first: true, predicate: ListViewNoDataTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0, template: "<mona-list\n [ariaLabel]=\"ariaLabel()\"\n [data]=\"viewItems()\"\n [height]=\"listHeight()\"\n [width]=\"listWidth()\"\n [maxHeight]=\"listMaxHeight()\"\n [maxWidth]=\"listMaxWidth()\"\n [listItemClass]=\"listItemClass()\"\n [listItemStyle]=\"listItemStyle()\"\n [listClass]=\"listClass()\"\n [listStyle]=\"listStyle()\">\n @if (footerTemplate()) {\n <ng-template monaListFooterTemplate>\n <ng-container [ngTemplateOutlet]=\"footerTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n @if (groupHeaderTemplate()) {\n <ng-template monaListGroupHeaderTemplate let-groupHeader>\n <ng-container\n [ngTemplateOutlet]=\"groupHeaderTemplate() ?? null\"\n [ngTemplateOutletContext]=\"{ $implicit: groupHeader }\"></ng-container>\n </ng-template>\n }\n @if (headerTemplate()) {\n <ng-template monaListHeaderTemplate>\n <ng-container [ngTemplateOutlet]=\"headerTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n @if (itemTemplate()) {\n <ng-template monaListItemTemplate let-dataItem>\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate() ?? null\"\n [ngTemplateOutletContext]=\"{ $implicit: dataItem }\"></ng-container>\n </ng-template>\n }\n @if (noDataTemplate()) {\n <ng-template monaListNoDataTemplate>\n <ng-container [ngTemplateOutlet]=\"noDataTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n</mona-list>\n\n@let pageableOptions = listService.pageableOptions();\n@if (pageableOptions.enabled && !listService.virtualScrollOptions().enabled && viewItems().length > 0) {\n @let pageState = listService.pageState();\n <
|
|
277
|
+
], queries: [{ propertyName: "footerTemplate", first: true, predicate: ListViewFooterTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "groupHeaderTemplate", first: true, predicate: ListViewGroupHeaderTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "headerTemplate", first: true, predicate: ListViewHeaderTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "itemTemplate", first: true, predicate: ListViewItemTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "noDataTemplate", first: true, predicate: ListViewNoDataTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0, template: "<mona-list\n [ariaLabel]=\"ariaLabel()\"\n [data]=\"viewItems()\"\n [height]=\"listHeight()\"\n [focusOnMount]=\"false\"\n [width]=\"listWidth()\"\n [maxHeight]=\"listMaxHeight()\"\n [maxWidth]=\"listMaxWidth()\"\n [listItemClass]=\"listItemClass()\"\n [listItemStyle]=\"listItemStyle()\"\n [listClass]=\"listClass()\"\n [listStyle]=\"listStyle()\">\n @if (footerTemplate()) {\n <ng-template monaListFooterTemplate>\n <ng-container [ngTemplateOutlet]=\"footerTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n @if (groupHeaderTemplate()) {\n <ng-template monaListGroupHeaderTemplate let-groupHeader>\n <ng-container\n [ngTemplateOutlet]=\"groupHeaderTemplate() ?? null\"\n [ngTemplateOutletContext]=\"{ $implicit: groupHeader }\"></ng-container>\n </ng-template>\n }\n @if (headerTemplate()) {\n <ng-template monaListHeaderTemplate>\n <ng-container [ngTemplateOutlet]=\"headerTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n @if (itemTemplate()) {\n <ng-template monaListItemTemplate let-dataItem>\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate() ?? null\"\n [ngTemplateOutletContext]=\"{ $implicit: dataItem }\"></ng-container>\n </ng-template>\n }\n @if (noDataTemplate()) {\n <ng-template monaListNoDataTemplate>\n <ng-container [ngTemplateOutlet]=\"noDataTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n</mona-list>\n\n@let pageableOptions = listService.pageableOptions();\n@if (pageableOptions.enabled && !listService.virtualScrollOptions().enabled && viewItems().length > 0) {\n @let pageState = listService.pageState();\n <mona-pager\n [firstLast]=\"pageableOptions.firstLast\"\n [pageSizeValues]=\"pageableOptions.pageSizeValues\"\n [visiblePages]=\"pageableOptions.visiblePages\"\n [total]=\"itemCount()\"\n [skip]=\"pageState.skip\"\n [responsive]=\"false\"\n [rounded]=\"rounded()\"\n [pageSize]=\"pageState.take\"\n [previousNext]=\"pageableOptions.previousNext\"\n [showInfo]=\"pageableOptions.showInfo\"\n [size]=\"size()\"\n (pageChange)=\"onPageChange($event)\"\n (pageSizeChange)=\"onPageSizeChange($event)\"\n class=\"border-b-0 border-x-0 rounded-t-none\"></mona-pager>\n}\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PagerComponent, selector: "mona-pager", inputs: ["firstLast", "navigable", "pageInput", "pageSize", "pageSizeValues", "previousNext", "responsive", "rounded", "showInfo", "size", "skip", "total", "type", "class", "visiblePages"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "component", type: ListComponent, selector: "mona-list", inputs: ["ariaLabel", "data", "focusOnMount", "height", "listClass", "listId", "listItemClass", "listItemStyle", "listStyle", "maxHeight", "maxWidth", "size", "textField", "width"], outputs: ["itemSelect"] }, { kind: "directive", type: ListHeaderTemplateDirective, selector: "ng-template[monaListHeaderTemplate]" }, { kind: "directive", type: ListFooterTemplateDirective, selector: "ng-template[monaListFooterTemplate]" }, { kind: "directive", type: ListGroupHeaderTemplateDirective, selector: "ng-template[monaListGroupHeaderTemplate]" }, { kind: "directive", type: ListItemTemplateDirective, selector: "ng-template[monaListItemTemplate]" }, { kind: "directive", type: ListNoDataTemplateDirective, selector: "ng-template[monaListNoDataTemplate]" }] }); }
|
|
278
278
|
}
|
|
279
279
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ListViewComponent, decorators: [{
|
|
280
280
|
type: Component,
|
|
@@ -298,7 +298,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
298
298
|
], host: {
|
|
299
299
|
"[class]": "baseClasses()",
|
|
300
300
|
"[attr.tabindex]": "-1"
|
|
301
|
-
}, template: "<mona-list\n [ariaLabel]=\"ariaLabel()\"\n [data]=\"viewItems()\"\n [height]=\"listHeight()\"\n [width]=\"listWidth()\"\n [maxHeight]=\"listMaxHeight()\"\n [maxWidth]=\"listMaxWidth()\"\n [listItemClass]=\"listItemClass()\"\n [listItemStyle]=\"listItemStyle()\"\n [listClass]=\"listClass()\"\n [listStyle]=\"listStyle()\">\n @if (footerTemplate()) {\n <ng-template monaListFooterTemplate>\n <ng-container [ngTemplateOutlet]=\"footerTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n @if (groupHeaderTemplate()) {\n <ng-template monaListGroupHeaderTemplate let-groupHeader>\n <ng-container\n [ngTemplateOutlet]=\"groupHeaderTemplate() ?? null\"\n [ngTemplateOutletContext]=\"{ $implicit: groupHeader }\"></ng-container>\n </ng-template>\n }\n @if (headerTemplate()) {\n <ng-template monaListHeaderTemplate>\n <ng-container [ngTemplateOutlet]=\"headerTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n @if (itemTemplate()) {\n <ng-template monaListItemTemplate let-dataItem>\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate() ?? null\"\n [ngTemplateOutletContext]=\"{ $implicit: dataItem }\"></ng-container>\n </ng-template>\n }\n @if (noDataTemplate()) {\n <ng-template monaListNoDataTemplate>\n <ng-container [ngTemplateOutlet]=\"noDataTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n</mona-list>\n\n@let pageableOptions = listService.pageableOptions();\n@if (pageableOptions.enabled && !listService.virtualScrollOptions().enabled && viewItems().length > 0) {\n @let pageState = listService.pageState();\n <
|
|
301
|
+
}, template: "<mona-list\n [ariaLabel]=\"ariaLabel()\"\n [data]=\"viewItems()\"\n [height]=\"listHeight()\"\n [focusOnMount]=\"false\"\n [width]=\"listWidth()\"\n [maxHeight]=\"listMaxHeight()\"\n [maxWidth]=\"listMaxWidth()\"\n [listItemClass]=\"listItemClass()\"\n [listItemStyle]=\"listItemStyle()\"\n [listClass]=\"listClass()\"\n [listStyle]=\"listStyle()\">\n @if (footerTemplate()) {\n <ng-template monaListFooterTemplate>\n <ng-container [ngTemplateOutlet]=\"footerTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n @if (groupHeaderTemplate()) {\n <ng-template monaListGroupHeaderTemplate let-groupHeader>\n <ng-container\n [ngTemplateOutlet]=\"groupHeaderTemplate() ?? null\"\n [ngTemplateOutletContext]=\"{ $implicit: groupHeader }\"></ng-container>\n </ng-template>\n }\n @if (headerTemplate()) {\n <ng-template monaListHeaderTemplate>\n <ng-container [ngTemplateOutlet]=\"headerTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n @if (itemTemplate()) {\n <ng-template monaListItemTemplate let-dataItem>\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate() ?? null\"\n [ngTemplateOutletContext]=\"{ $implicit: dataItem }\"></ng-container>\n </ng-template>\n }\n @if (noDataTemplate()) {\n <ng-template monaListNoDataTemplate>\n <ng-container [ngTemplateOutlet]=\"noDataTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n</mona-list>\n\n@let pageableOptions = listService.pageableOptions();\n@if (pageableOptions.enabled && !listService.virtualScrollOptions().enabled && viewItems().length > 0) {\n @let pageState = listService.pageState();\n <mona-pager\n [firstLast]=\"pageableOptions.firstLast\"\n [pageSizeValues]=\"pageableOptions.pageSizeValues\"\n [visiblePages]=\"pageableOptions.visiblePages\"\n [total]=\"itemCount()\"\n [skip]=\"pageState.skip\"\n [responsive]=\"false\"\n [rounded]=\"rounded()\"\n [pageSize]=\"pageState.take\"\n [previousNext]=\"pageableOptions.previousNext\"\n [showInfo]=\"pageableOptions.showInfo\"\n [size]=\"size()\"\n (pageChange)=\"onPageChange($event)\"\n (pageSizeChange)=\"onPageSizeChange($event)\"\n class=\"border-b-0 border-x-0 rounded-t-none\"></mona-pager>\n}\n" }]
|
|
302
302
|
}], ctorParameters: () => [], propDecorators: { footerTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ListViewFooterTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], groupHeaderTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ListViewGroupHeaderTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], headerTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ListViewHeaderTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], itemTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ListViewItemTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], noDataTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ListViewNoDataTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], listClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "listClass", required: false }] }], listItemClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "listItemClass", required: false }] }], listItemStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "listItemStyle", required: false }] }], listStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "listStyle", required: false }] }], maxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxHeight", required: false }] }], maxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxWidth", required: false }] }], rounded: [{ type: i0.Input, args: [{ isSignal: true, alias: "rounded", required: false }] }], scrollBottom: [{ type: i0.Output, args: ["scrollBottom"] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], textField: [{ type: i0.Input, args: [{ isSignal: true, alias: "textField", required: false }] }], userClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }] } });
|
|
303
303
|
|
|
304
304
|
class ListViewGroupableDirective {
|
|
@@ -246,6 +246,7 @@ const AR_SA_MESSAGES = {
|
|
|
246
246
|
rowReorderDisabledEditing: "أكمل التحرير قبل إعادة ترتيب الصفوف.",
|
|
247
247
|
rowReorderDisabledFiltered: "امسح التصفية قبل إعادة ترتيب الصفوف.",
|
|
248
248
|
rowReorderDisabledGrouped: "ألغِ التجميع قبل إعادة ترتيب الصفوف.",
|
|
249
|
+
rowReorderDisabledServerBinding: "لا يمكن إعادة ترتيب الصفوف مع ربط الخادم.",
|
|
249
250
|
rowReorderDisabledSingleRow: "يلزم صفّان على الأقل لإعادة ترتيب الصفوف.",
|
|
250
251
|
rowReorderDisabledSorted: "ألغِ الفرز قبل إعادة ترتيب الصفوف.",
|
|
251
252
|
rowReorderDisabledVirtualScroll: "لا يمكن إعادة ترتيب الصفوف أثناء استخدام التمرير الافتراضي.",
|
|
@@ -624,6 +625,7 @@ const ES_ES_MESSAGES = {
|
|
|
624
625
|
rowReorderDisabledEditing: "Termina la edición para reordenar las filas.",
|
|
625
626
|
rowReorderDisabledFiltered: "Limpia los filtros para reordenar las filas.",
|
|
626
627
|
rowReorderDisabledGrouped: "Quita la agrupación para reordenar las filas.",
|
|
628
|
+
rowReorderDisabledServerBinding: "No se pueden reordenar filas con vinculación al servidor.",
|
|
627
629
|
rowReorderDisabledSingleRow: "Se necesitan al menos dos filas para reordenarlas.",
|
|
628
630
|
rowReorderDisabledSorted: "Quita la ordenación para reordenar las filas.",
|
|
629
631
|
rowReorderDisabledVirtualScroll: "La reordenación de filas no está disponible mientras el desplazamiento virtual está activado.",
|
|
@@ -669,8 +671,8 @@ const ES_ES_MESSAGES = {
|
|
|
669
671
|
},
|
|
670
672
|
pager: {
|
|
671
673
|
firstPageLabel: "Primera página",
|
|
672
|
-
jumpBackwardLabel: (pages) => pages === 1 ? "Retroceder 1 página" : `Retroceder ${pages} páginas
|
|
673
|
-
jumpForwardLabel: (pages) => pages === 1 ? "Avanzar 1 página" : `Avanzar ${pages} páginas
|
|
674
|
+
jumpBackwardLabel: (pages) => (pages === 1 ? "Retroceder 1 página" : `Retroceder ${pages} páginas`),
|
|
675
|
+
jumpForwardLabel: (pages) => (pages === 1 ? "Avanzar 1 página" : `Avanzar ${pages} páginas`),
|
|
674
676
|
lastPageLabel: "Última página",
|
|
675
677
|
nextPageLabel: "Página siguiente",
|
|
676
678
|
ofText: "de",
|
|
@@ -891,7 +893,7 @@ const DE_DE_MESSAGES = {
|
|
|
891
893
|
dropdowns: {
|
|
892
894
|
itemPosition: (text, position, total) => `${text}, ${position} von ${total}`,
|
|
893
895
|
noResultsFound: "Keine Ergebnisse gefunden",
|
|
894
|
-
resultsAvailable: (count) => count === 1 ? "1 Ergebnis verfügbar" : `${count} Ergebnisse verfügbar`
|
|
896
|
+
resultsAvailable: (count) => (count === 1 ? "1 Ergebnis verfügbar" : `${count} Ergebnisse verfügbar`)
|
|
895
897
|
},
|
|
896
898
|
editor: {
|
|
897
899
|
addColumnAfter: "Spalte danach einfügen",
|
|
@@ -978,7 +980,7 @@ const DE_DE_MESSAGES = {
|
|
|
978
980
|
cancel: "Abbrechen",
|
|
979
981
|
cancelRowEdit: "Zeilenbearbeitung abbrechen",
|
|
980
982
|
columns: "Spalten",
|
|
981
|
-
columnsSelected: (count) => count === 1 ? "1 Spalte ausgewählt" : `${count} Spalten ausgewählt
|
|
983
|
+
columnsSelected: (count) => (count === 1 ? "1 Spalte ausgewählt" : `${count} Spalten ausgewählt`),
|
|
982
984
|
delete: "Löschen",
|
|
983
985
|
deleteRowConfirmation: "Diese Zeile wirklich löschen?",
|
|
984
986
|
deleteRowTitle: "Zeile löschen?",
|
|
@@ -1002,6 +1004,7 @@ const DE_DE_MESSAGES = {
|
|
|
1002
1004
|
rowReorderDisabledEditing: "Bearbeitung abschließen, um Zeilen neu anzuordnen.",
|
|
1003
1005
|
rowReorderDisabledFiltered: "Filter aufheben, um Zeilen neu anzuordnen.",
|
|
1004
1006
|
rowReorderDisabledGrouped: "Gruppierung aufheben, um Zeilen neu anzuordnen.",
|
|
1007
|
+
rowReorderDisabledServerBinding: "Bei Serverbindung können Zeilen nicht neu angeordnet werden.",
|
|
1005
1008
|
rowReorderDisabledSingleRow: "Zum Neuanordnen sind mindestens zwei Zeilen erforderlich.",
|
|
1006
1009
|
rowReorderDisabledSorted: "Sortierung aufheben, um Zeilen neu anzuordnen.",
|
|
1007
1010
|
rowReorderDisabledVirtualScroll: "Bei aktiviertem virtuellem Scrollen können Zeilen nicht neu angeordnet werden.",
|
|
@@ -1269,7 +1272,7 @@ const FR_FR_MESSAGES = {
|
|
|
1269
1272
|
dropdowns: {
|
|
1270
1273
|
itemPosition: (text, position, total) => `${text}, ${position} sur ${total}`,
|
|
1271
1274
|
noResultsFound: "Aucun résultat trouvé",
|
|
1272
|
-
resultsAvailable: (count) => count === 1 ? "1 résultat disponible" : `${count} résultats disponibles`
|
|
1275
|
+
resultsAvailable: (count) => (count === 1 ? "1 résultat disponible" : `${count} résultats disponibles`)
|
|
1273
1276
|
},
|
|
1274
1277
|
editor: {
|
|
1275
1278
|
addColumnAfter: "Insérer une colonne après",
|
|
@@ -1380,6 +1383,7 @@ const FR_FR_MESSAGES = {
|
|
|
1380
1383
|
rowReorderDisabledEditing: "Terminez la modification avant de réordonner les lignes.",
|
|
1381
1384
|
rowReorderDisabledFiltered: "Supprimez les filtres avant de réordonner les lignes.",
|
|
1382
1385
|
rowReorderDisabledGrouped: "Supprimez le regroupement avant de réordonner les lignes.",
|
|
1386
|
+
rowReorderDisabledServerBinding: "La réorganisation des lignes est indisponible avec la liaison serveur.",
|
|
1383
1387
|
rowReorderDisabledSingleRow: "Au moins deux lignes sont nécessaires pour les réordonner.",
|
|
1384
1388
|
rowReorderDisabledSorted: "Supprimez le tri avant de réordonner les lignes.",
|
|
1385
1389
|
rowReorderDisabledVirtualScroll: "La réorganisation des lignes n’est pas disponible lorsque le défilement virtuel est activé.",
|
|
@@ -1425,8 +1429,8 @@ const FR_FR_MESSAGES = {
|
|
|
1425
1429
|
},
|
|
1426
1430
|
pager: {
|
|
1427
1431
|
firstPageLabel: "Première page",
|
|
1428
|
-
jumpBackwardLabel: (pages) => pages === 1 ? "Reculer de 1 page" : `Reculer de ${pages} pages
|
|
1429
|
-
jumpForwardLabel: (pages) => pages === 1 ? "Avancer de 1 page" : `Avancer de ${pages} pages
|
|
1432
|
+
jumpBackwardLabel: (pages) => (pages === 1 ? "Reculer de 1 page" : `Reculer de ${pages} pages`),
|
|
1433
|
+
jumpForwardLabel: (pages) => (pages === 1 ? "Avancer de 1 page" : `Avancer de ${pages} pages`),
|
|
1430
1434
|
lastPageLabel: "Dernière page",
|
|
1431
1435
|
nextPageLabel: "Page suivante",
|
|
1432
1436
|
ofText: "sur",
|
|
@@ -1734,7 +1738,7 @@ const IT_IT_MESSAGES = {
|
|
|
1734
1738
|
cancel: "Annulla",
|
|
1735
1739
|
cancelRowEdit: "Annulla modifica della riga",
|
|
1736
1740
|
columns: "Colonne",
|
|
1737
|
-
columnsSelected: (count) => count === 1 ? "1 colonna selezionata" : `${count} colonne selezionate
|
|
1741
|
+
columnsSelected: (count) => (count === 1 ? "1 colonna selezionata" : `${count} colonne selezionate`),
|
|
1738
1742
|
delete: "Elimina",
|
|
1739
1743
|
deleteRowConfirmation: "Sei sicuro di voler eliminare questo elemento?",
|
|
1740
1744
|
deleteRowTitle: "Eliminare la riga?",
|
|
@@ -1758,6 +1762,7 @@ const IT_IT_MESSAGES = {
|
|
|
1758
1762
|
rowReorderDisabledEditing: "Completa la modifica prima di riordinare le righe.",
|
|
1759
1763
|
rowReorderDisabledFiltered: "Rimuovi i filtri prima di riordinare le righe.",
|
|
1760
1764
|
rowReorderDisabledGrouped: "Rimuovi il raggruppamento prima di riordinare le righe.",
|
|
1765
|
+
rowReorderDisabledServerBinding: "Il riordino delle righe non è disponibile con il binding al server.",
|
|
1761
1766
|
rowReorderDisabledSingleRow: "Sono necessarie almeno due righe per riordinarle.",
|
|
1762
1767
|
rowReorderDisabledSorted: "Rimuovi l'ordinamento prima di riordinare le righe.",
|
|
1763
1768
|
rowReorderDisabledVirtualScroll: "Il riordinamento delle righe non è disponibile con lo scorrimento virtuale attivo.",
|
|
@@ -1804,7 +1809,7 @@ const IT_IT_MESSAGES = {
|
|
|
1804
1809
|
pager: {
|
|
1805
1810
|
firstPageLabel: "Prima pagina",
|
|
1806
1811
|
jumpBackwardLabel: (pages) => pages === 1 ? "Torna indietro di 1 pagina" : `Torna indietro di ${pages} pagine`,
|
|
1807
|
-
jumpForwardLabel: (pages) => pages === 1 ? "Avanza di 1 pagina" : `Avanza di ${pages} pagine
|
|
1812
|
+
jumpForwardLabel: (pages) => (pages === 1 ? "Avanza di 1 pagina" : `Avanza di ${pages} pagine`),
|
|
1808
1813
|
lastPageLabel: "Ultima pagina",
|
|
1809
1814
|
nextPageLabel: "Pagina successiva",
|
|
1810
1815
|
ofText: "di",
|
|
@@ -2136,6 +2141,7 @@ const JA_JP_MESSAGES = {
|
|
|
2136
2141
|
rowReorderDisabledEditing: "行を並べ替える前に編集を完了してください。",
|
|
2137
2142
|
rowReorderDisabledFiltered: "行を並べ替える前にフィルターを解除してください。",
|
|
2138
2143
|
rowReorderDisabledGrouped: "行を並べ替える前にグループ化を解除してください。",
|
|
2144
|
+
rowReorderDisabledServerBinding: "サーバーバインディングでは行を並べ替えられません。",
|
|
2139
2145
|
rowReorderDisabledSingleRow: "行を並べ替えるには2行以上必要です。",
|
|
2140
2146
|
rowReorderDisabledSorted: "行を並べ替える前にソートを解除してください。",
|
|
2141
2147
|
rowReorderDisabledVirtualScroll: "仮想スクロールが有効な場合、行の並べ替えは使用できません。",
|
|
@@ -2514,6 +2520,7 @@ const KO_KR_MESSAGES = {
|
|
|
2514
2520
|
rowReorderDisabledEditing: "편집을 완료한 후 행 순서를 변경하세요.",
|
|
2515
2521
|
rowReorderDisabledFiltered: "필터를 지운 후 행 순서를 변경하세요.",
|
|
2516
2522
|
rowReorderDisabledGrouped: "그룹화를 해제한 후 행 순서를 변경하세요.",
|
|
2523
|
+
rowReorderDisabledServerBinding: "서버 바인딩에서는 행 순서를 변경할 수 없습니다.",
|
|
2517
2524
|
rowReorderDisabledSingleRow: "행 순서를 변경하려면 행이 두 개 이상 필요합니다.",
|
|
2518
2525
|
rowReorderDisabledSorted: "정렬을 해제한 후 행 순서를 변경하세요.",
|
|
2519
2526
|
rowReorderDisabledVirtualScroll: "가상 스크롤을 사용하는 동안에는 행 순서를 변경할 수 없습니다.",
|
|
@@ -2868,7 +2875,7 @@ const PT_BR_MESSAGES = {
|
|
|
2868
2875
|
cancel: "Cancelar",
|
|
2869
2876
|
cancelRowEdit: "Cancelar edição da linha",
|
|
2870
2877
|
columns: "Colunas",
|
|
2871
|
-
columnsSelected: (count) => count === 1 ? "1 coluna selecionada" : `${count} colunas selecionadas
|
|
2878
|
+
columnsSelected: (count) => (count === 1 ? "1 coluna selecionada" : `${count} colunas selecionadas`),
|
|
2872
2879
|
delete: "Excluir",
|
|
2873
2880
|
deleteRowConfirmation: "Tem certeza de que deseja excluir este item?",
|
|
2874
2881
|
deleteRowTitle: "Excluir linha?",
|
|
@@ -2892,6 +2899,7 @@ const PT_BR_MESSAGES = {
|
|
|
2892
2899
|
rowReorderDisabledEditing: "Conclua a edição antes de reordenar as linhas.",
|
|
2893
2900
|
rowReorderDisabledFiltered: "Remova os filtros antes de reordenar as linhas.",
|
|
2894
2901
|
rowReorderDisabledGrouped: "Remova o agrupamento antes de reordenar as linhas.",
|
|
2902
|
+
rowReorderDisabledServerBinding: "A reordenação de linhas não está disponível com vinculação ao servidor.",
|
|
2895
2903
|
rowReorderDisabledSingleRow: "São necessárias pelo menos duas linhas para reordenar.",
|
|
2896
2904
|
rowReorderDisabledSorted: "Remova a ordenação antes de reordenar as linhas.",
|
|
2897
2905
|
rowReorderDisabledVirtualScroll: "A reordenação de linhas não está disponível com a rolagem virtual ativada.",
|
|
@@ -2937,8 +2945,8 @@ const PT_BR_MESSAGES = {
|
|
|
2937
2945
|
},
|
|
2938
2946
|
pager: {
|
|
2939
2947
|
firstPageLabel: "Primeira página",
|
|
2940
|
-
jumpBackwardLabel: (pages) => pages === 1 ? "Retroceder 1 página" : `Retroceder ${pages} páginas
|
|
2941
|
-
jumpForwardLabel: (pages) => pages === 1 ? "Avançar 1 página" : `Avançar ${pages} páginas
|
|
2948
|
+
jumpBackwardLabel: (pages) => (pages === 1 ? "Retroceder 1 página" : `Retroceder ${pages} páginas`),
|
|
2949
|
+
jumpForwardLabel: (pages) => (pages === 1 ? "Avançar 1 página" : `Avançar ${pages} páginas`),
|
|
2942
2950
|
lastPageLabel: "Última página",
|
|
2943
2951
|
nextPageLabel: "Próxima página",
|
|
2944
2952
|
ofText: "de",
|
|
@@ -3270,6 +3278,7 @@ const ZH_CN_MESSAGES = {
|
|
|
3270
3278
|
rowReorderDisabledEditing: "请完成编辑后再重新排列行。",
|
|
3271
3279
|
rowReorderDisabledFiltered: "请清除筛选后再重新排列行。",
|
|
3272
3280
|
rowReorderDisabledGrouped: "请清除分组后再重新排列行。",
|
|
3281
|
+
rowReorderDisabledServerBinding: "服务器绑定时无法重新排列行。",
|
|
3273
3282
|
rowReorderDisabledSingleRow: "至少需要两行才能重新排列。",
|
|
3274
3283
|
rowReorderDisabledSorted: "请清除排序后再重新排列行。",
|
|
3275
3284
|
rowReorderDisabledVirtualScroll: "启用虚拟滚动时无法重新排列行。",
|
|
@@ -3648,6 +3657,7 @@ const ZH_TW_MESSAGES = {
|
|
|
3648
3657
|
rowReorderDisabledEditing: "請完成編輯後再重新排列資料列。",
|
|
3649
3658
|
rowReorderDisabledFiltered: "請清除篩選後再重新排列資料列。",
|
|
3650
3659
|
rowReorderDisabledGrouped: "請清除群組後再重新排列資料列。",
|
|
3660
|
+
rowReorderDisabledServerBinding: "伺服器繫結時無法重新排列資料列。",
|
|
3651
3661
|
rowReorderDisabledSingleRow: "至少需要兩個資料列才能重新排序。",
|
|
3652
3662
|
rowReorderDisabledSorted: "請清除排序後再重新排列資料列。",
|
|
3653
3663
|
rowReorderDisabledVirtualScroll: "啟用虛擬捲動時無法重新排列資料列。",
|
|
@@ -4026,6 +4036,7 @@ const TR_TR_MESSAGES = {
|
|
|
4026
4036
|
rowReorderDisabledEditing: "Satırları yeniden sıralamadan önce düzenlemeyi tamamlayın.",
|
|
4027
4037
|
rowReorderDisabledFiltered: "Satırları yeniden sıralamadan önce filtreleri kaldırın.",
|
|
4028
4038
|
rowReorderDisabledGrouped: "Satırları yeniden sıralamadan önce gruplamayı kaldırın.",
|
|
4039
|
+
rowReorderDisabledServerBinding: "Sunucu bağlaması etkinken satırlar yeniden sıralanamaz.",
|
|
4029
4040
|
rowReorderDisabledSingleRow: "Yeniden sıralamak için en az iki satır gerekir.",
|
|
4030
4041
|
rowReorderDisabledSorted: "Satırları yeniden sıralamadan önce sıralamayı kaldırın.",
|
|
4031
4042
|
rowReorderDisabledVirtualScroll: "Sanal kaydırma etkinken satırlar yeniden sıralanamaz.",
|
|
@@ -4404,6 +4415,7 @@ const ID_ID_MESSAGES = {
|
|
|
4404
4415
|
rowReorderDisabledEditing: "Selesaikan pengeditan sebelum menyusun ulang baris.",
|
|
4405
4416
|
rowReorderDisabledFiltered: "Hapus filter sebelum menyusun ulang baris.",
|
|
4406
4417
|
rowReorderDisabledGrouped: "Hapus pengelompokan sebelum menyusun ulang baris.",
|
|
4418
|
+
rowReorderDisabledServerBinding: "Baris tidak dapat disusun ulang saat pengikatan server aktif.",
|
|
4407
4419
|
rowReorderDisabledSingleRow: "Diperlukan setidaknya dua baris untuk menyusun ulang.",
|
|
4408
4420
|
rowReorderDisabledSorted: "Hapus pengurutan sebelum menyusun ulang baris.",
|
|
4409
4421
|
rowReorderDisabledVirtualScroll: "Baris tidak dapat disusun ulang saat pengguliran virtual aktif.",
|
|
@@ -4811,6 +4823,7 @@ const RU_RU_MESSAGES = {
|
|
|
4811
4823
|
rowReorderDisabledEditing: "Завершите редактирование перед изменением порядка строк.",
|
|
4812
4824
|
rowReorderDisabledFiltered: "Очистите фильтры перед изменением порядка строк.",
|
|
4813
4825
|
rowReorderDisabledGrouped: "Отмените группировку перед изменением порядка строк.",
|
|
4826
|
+
rowReorderDisabledServerBinding: "Изменение порядка строк недоступно при привязке к серверу.",
|
|
4814
4827
|
rowReorderDisabledSingleRow: "Для изменения порядка нужны как минимум две строки.",
|
|
4815
4828
|
rowReorderDisabledSorted: "Сбросьте сортировку перед изменением порядка строк.",
|
|
4816
4829
|
rowReorderDisabledVirtualScroll: "Нельзя изменять порядок строк при включённой виртуальной прокрутке.",
|
|
@@ -4896,7 +4909,7 @@ const RU_RU_MESSAGES = {
|
|
|
4896
4909
|
},
|
|
4897
4910
|
splitButton: {
|
|
4898
4911
|
menuButtonAriaLabel: "Показать параметры меню",
|
|
4899
|
-
splitButton: (text) => text ? `${text}, разделённая кнопка` : "Разделённая кнопка"
|
|
4912
|
+
splitButton: (text) => (text ? `${text}, разделённая кнопка` : "Разделённая кнопка")
|
|
4900
4913
|
},
|
|
4901
4914
|
splitter: {
|
|
4902
4915
|
collapseDown: "Свернуть нижнюю панель",
|
|
@@ -5,7 +5,7 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
|
5
5
|
import { none } from '@mirei/ts-collections';
|
|
6
6
|
import { ChipComponent } from '@nanahoshi/mona-ui/chip';
|
|
7
7
|
import * as i1 from '@nanahoshi/mona-ui/dropdowns';
|
|
8
|
-
import { DropdownService, DropdownFooterTemplateDirective, DropdownGroupHeaderTemplateDirective, DropdownHeaderTemplateDirective, DropdownItemTemplateDirective, dropdownPopupThemeVariants, DropdownNoDataTemplateDirective, DropdownPrefixTemplateDirective, DropdownLiveRegionDirective, DropdownDataInputToken,
|
|
8
|
+
import { DropdownService, DropdownFooterTemplateDirective, DropdownGroupHeaderTemplateDirective, DropdownHeaderTemplateDirective, DropdownItemTemplateDirective, dropdownPopupThemeVariants, DropdownNoDataTemplateDirective, DropdownPrefixTemplateDirective, DropdownLiveRegionDirective, DropdownDataInputToken, DROPDOWN_POPUP_INPUT_TOKEN, DropdownDataHandlerDirective, DropdownListPopupHandlerDirective } from '@nanahoshi/mona-ui/dropdowns';
|
|
9
9
|
import { MonaI18nService } from '@nanahoshi/mona-ui/i18n';
|
|
10
10
|
import { themeControlSurfaceClasses, createElementControlId, restoreOverlayScroll, rxFromResize } from '@nanahoshi/mona-ui/internal';
|
|
11
11
|
import { IndicatorIconComponent } from '@nanahoshi/mona-ui/internal/indicator-icon';
|
|
@@ -154,13 +154,13 @@ class MultiSelectComponent {
|
|
|
154
154
|
this.footerTemplate = contentChild(DropdownFooterTemplateDirective, { ...(ngDevMode ? { debugName: "footerTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
|
|
155
155
|
this.groupHeaderTemplate = contentChild(DropdownGroupHeaderTemplateDirective, { ...(ngDevMode ? { debugName: "groupHeaderTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
|
|
156
156
|
this.headerTemplate = contentChild(DropdownHeaderTemplateDirective, { ...(ngDevMode ? { debugName: "headerTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
|
|
157
|
-
this.invalidState = computed(() => this.touched() && (this.invalid() || (this.required() && none(this.value()))), /* @ts-ignore */
|
|
158
|
-
...(ngDevMode ? [{ debugName: "invalidState" }] : /* istanbul ignore next */ []));
|
|
159
157
|
this.indicatorClass = computed(() => {
|
|
160
158
|
const size = this.size();
|
|
161
159
|
return multiSelectIndicatorContainerThemeVariants({ size });
|
|
162
160
|
}, /* @ts-ignore */
|
|
163
161
|
...(ngDevMode ? [{ debugName: "indicatorClass" }] : /* istanbul ignore next */ []));
|
|
162
|
+
this.invalidState = computed(() => this.touched() && (this.invalid() || (this.required() && none(this.value()))), /* @ts-ignore */
|
|
163
|
+
...(ngDevMode ? [{ debugName: "invalidState" }] : /* istanbul ignore next */ []));
|
|
164
164
|
this.itemContainerClass = computed(() => {
|
|
165
165
|
const rounded = this.rounded();
|
|
166
166
|
return multiSelectItemContainerThemeVariants({ rounded });
|
|
@@ -181,9 +181,6 @@ class MultiSelectComponent {
|
|
|
181
181
|
this.popupTemplate = viewChild.required("popupTemplate", /* @ts-ignore */
|
|
182
182
|
...(ngDevMode ? [{ debugName: "popupTemplate" }] : /* istanbul ignore next */ []));
|
|
183
183
|
this.prefixTemplate = contentChild(DropdownPrefixTemplateDirective, { ...(ngDevMode ? { debugName: "prefixTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
|
|
184
|
-
this.summaryTagTemplate = this.#multiSelectService.summaryTagTemplate.asReadonly();
|
|
185
|
-
this.tagCount = this.#multiSelectService.tagCount.asReadonly();
|
|
186
|
-
this.tagTemplate = contentChild(MultiSelectTagTemplateDirective, { ...(ngDevMode ? { debugName: "tagTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
|
|
187
184
|
this.selectedDataItems = computed(() => {
|
|
188
185
|
return this.selectedListItems()
|
|
189
186
|
.select(i => i.data)
|
|
@@ -194,6 +191,9 @@ class MultiSelectComponent {
|
|
|
194
191
|
return this.#listService.selectedListItems();
|
|
195
192
|
}, /* @ts-ignore */
|
|
196
193
|
...(ngDevMode ? [{ debugName: "selectedListItems" }] : /* istanbul ignore next */ []));
|
|
194
|
+
this.summaryTagTemplate = this.#multiSelectService.summaryTagTemplate.asReadonly();
|
|
195
|
+
this.tagCount = this.#multiSelectService.tagCount.asReadonly();
|
|
196
|
+
this.tagTemplate = contentChild(MultiSelectTagTemplateDirective, { ...(ngDevMode ? { debugName: "tagTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
|
|
197
197
|
this.valueTextMap = computed(() => {
|
|
198
198
|
const tagCount = this.visibleTagCount();
|
|
199
199
|
return this.selectedListItems()
|
|
@@ -252,11 +252,6 @@ class MultiSelectComponent {
|
|
|
252
252
|
*/
|
|
253
253
|
this.disabled = model(false, /* @ts-ignore */
|
|
254
254
|
...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
|
|
255
|
-
/**
|
|
256
|
-
* @description A predicate function or the name of the field that determines whether an item is disabled.
|
|
257
|
-
*/
|
|
258
|
-
this.itemDisabled = input(/* @ts-ignore */
|
|
259
|
-
...(ngDevMode ? [undefined, { debugName: "itemDisabled" }] : /* istanbul ignore next */ []));
|
|
260
255
|
/**
|
|
261
256
|
* @description Marks the multi select as invalid. When bound to a signal form field via `[formField]`,
|
|
262
257
|
* this is written by the `FormField` directive.
|
|
@@ -264,6 +259,11 @@ class MultiSelectComponent {
|
|
|
264
259
|
*/
|
|
265
260
|
this.invalid = input(false, /* @ts-ignore */
|
|
266
261
|
...(ngDevMode ? [{ debugName: "invalid" }] : /* istanbul ignore next */ []));
|
|
262
|
+
/**
|
|
263
|
+
* @description A predicate function or the name of the field that determines whether an item is disabled.
|
|
264
|
+
*/
|
|
265
|
+
this.itemDisabled = input(/* @ts-ignore */
|
|
266
|
+
...(ngDevMode ? [undefined, { debugName: "itemDisabled" }] : /* istanbul ignore next */ []));
|
|
267
267
|
/**
|
|
268
268
|
* @description Sets the loading state of the multi select component.
|
|
269
269
|
* @default false
|
|
@@ -351,6 +351,15 @@ class MultiSelectComponent {
|
|
|
351
351
|
* @default ""
|
|
352
352
|
*/
|
|
353
353
|
this.userClass = input("", { ...(ngDevMode ? { debugName: "userClass" } : /* istanbul ignore next */ {}), alias: "class" });
|
|
354
|
+
/**
|
|
355
|
+
* @description Two-way bindable current selected values. Implements `FormValueControl<Iterable<TValue>>`,
|
|
356
|
+
* enabling signal forms `[formField]` binding.
|
|
357
|
+
* Object mode contains selected data items; primitive mode (see {@link valuePrimitive}) contains values
|
|
358
|
+
* resolved through {@link valueField}. An empty selection is represented by an empty iterable/array.
|
|
359
|
+
* @default []
|
|
360
|
+
*/
|
|
361
|
+
this.value = model([], /* @ts-ignore */
|
|
362
|
+
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
354
363
|
/**
|
|
355
364
|
* @description Sets the value field of the multi select component.
|
|
356
365
|
* It is used for stable item identity, matching externally supplied values, and primitive
|
|
@@ -373,15 +382,6 @@ class MultiSelectComponent {
|
|
|
373
382
|
*/
|
|
374
383
|
this.valuePrimitive = input(false, /* @ts-ignore */
|
|
375
384
|
...(ngDevMode ? [{ debugName: "valuePrimitive" }] : /* istanbul ignore next */ []));
|
|
376
|
-
/**
|
|
377
|
-
* @description Two-way bindable current selected values. Implements `FormValueControl<Iterable<TValue>>`,
|
|
378
|
-
* enabling signal forms `[formField]` binding.
|
|
379
|
-
* Object mode contains selected data items; primitive mode (see {@link valuePrimitive}) contains values
|
|
380
|
-
* resolved through {@link valueField}. An empty selection is represented by an empty iterable/array.
|
|
381
|
-
* @default []
|
|
382
|
-
*/
|
|
383
|
-
this.value = model([], /* @ts-ignore */
|
|
384
|
-
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
385
385
|
afterNextRender({
|
|
386
386
|
read: () => {
|
|
387
387
|
this.initialize();
|
|
@@ -396,7 +396,7 @@ class MultiSelectComponent {
|
|
|
396
396
|
effect(() => {
|
|
397
397
|
const valueField = this.valueField();
|
|
398
398
|
const value = this.value();
|
|
399
|
-
|
|
399
|
+
this.valuePrimitive();
|
|
400
400
|
untracked(() => {
|
|
401
401
|
this.#listService.setValueField(valueField ?? "");
|
|
402
402
|
this.synchronizeSelection(value);
|
|
@@ -410,7 +410,11 @@ class MultiSelectComponent {
|
|
|
410
410
|
focus() {
|
|
411
411
|
this.#hostElementRef.nativeElement.focus();
|
|
412
412
|
}
|
|
413
|
-
onBlur() {
|
|
413
|
+
onBlur(event) {
|
|
414
|
+
const popupElement = this.#dropdownService.popupRef()?.overlayRef.overlayElement;
|
|
415
|
+
if (popupElement && event?.relatedTarget instanceof Node && popupElement.contains(event.relatedTarget)) {
|
|
416
|
+
return;
|
|
417
|
+
}
|
|
414
418
|
this.touch.emit();
|
|
415
419
|
}
|
|
416
420
|
onItemSelect() {
|
|
@@ -419,14 +423,11 @@ class MultiSelectComponent {
|
|
|
419
423
|
this.#popupRef()?.close();
|
|
420
424
|
}
|
|
421
425
|
}
|
|
422
|
-
|
|
423
|
-
event.
|
|
424
|
-
if (
|
|
425
|
-
|
|
426
|
+
onPopupPointerDown(event) {
|
|
427
|
+
const target = event.target;
|
|
428
|
+
if (target?.tagName !== "INPUT") {
|
|
429
|
+
event.preventDefault();
|
|
426
430
|
}
|
|
427
|
-
this.#listService.deselectItems([listItem]);
|
|
428
|
-
this.updateValue(this.getSelectedControlValues());
|
|
429
|
-
this.focus();
|
|
430
431
|
}
|
|
431
432
|
onSelectedItemGroupRemove(event) {
|
|
432
433
|
event.stopImmediatePropagation();
|
|
@@ -441,6 +442,15 @@ class MultiSelectComponent {
|
|
|
441
442
|
this.updateValue(this.getSelectedControlValues());
|
|
442
443
|
this.focus();
|
|
443
444
|
}
|
|
445
|
+
onSelectedItemRemove(event, listItem) {
|
|
446
|
+
event.stopImmediatePropagation();
|
|
447
|
+
if (this.readonly() || this.disabled()) {
|
|
448
|
+
return;
|
|
449
|
+
}
|
|
450
|
+
this.#listService.deselectItems([listItem]);
|
|
451
|
+
this.updateValue(this.getSelectedControlValues());
|
|
452
|
+
this.focus();
|
|
453
|
+
}
|
|
444
454
|
onValueClear(event) {
|
|
445
455
|
if (this.readonly() || (event instanceof KeyboardEvent && event.key !== "Enter" && event.key !== " ")) {
|
|
446
456
|
return;
|
|
@@ -454,9 +464,7 @@ class MultiSelectComponent {
|
|
|
454
464
|
getSelectedControlValues() {
|
|
455
465
|
return this.selectedListItems()
|
|
456
466
|
.select(item => {
|
|
457
|
-
const value = this.valuePrimitive()
|
|
458
|
-
? this.#listService.getDataItemValue(item.data)
|
|
459
|
-
: item.data;
|
|
467
|
+
const value = this.valuePrimitive() ? this.#listService.getDataItemValue(item.data) : item.data;
|
|
460
468
|
return value;
|
|
461
469
|
})
|
|
462
470
|
.toArray();
|
|
@@ -535,7 +543,7 @@ class MultiSelectComponent {
|
|
|
535
543
|
}
|
|
536
544
|
}
|
|
537
545
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: MultiSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
538
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: MultiSelectComponent, isStandalone: true, selector: "mona-multi-select", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, autoClose: { classPropertyName: "autoClose", publicName: "autoClose", isSignal: true, isRequired: false, transformFunction: null }, checkboxes: { classPropertyName: "checkboxes", publicName: "checkboxes", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null },
|
|
546
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: MultiSelectComponent, isStandalone: true, selector: "mona-multi-select", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "aria-label", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledBy: { classPropertyName: "ariaLabelledBy", publicName: "aria-labelledby", isSignal: true, isRequired: false, transformFunction: null }, autoClose: { classPropertyName: "autoClose", publicName: "autoClose", isSignal: true, isRequired: false, transformFunction: null }, checkboxes: { classPropertyName: "checkboxes", publicName: "checkboxes", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, itemDisabled: { classPropertyName: "itemDisabled", publicName: "itemDisabled", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, popupClass: { classPropertyName: "popupClass", publicName: "popupClass", isSignal: true, isRequired: false, transformFunction: null }, popupHeight: { classPropertyName: "popupHeight", publicName: "popupHeight", isSignal: true, isRequired: false, transformFunction: null }, popupWidth: { classPropertyName: "popupWidth", publicName: "popupWidth", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null }, showClearButton: { classPropertyName: "showClearButton", publicName: "showClearButton", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, textField: { classPropertyName: "textField", publicName: "textField", isSignal: true, isRequired: false, transformFunction: null }, touched: { classPropertyName: "touched", publicName: "touched", isSignal: true, isRequired: false, transformFunction: null }, userClass: { classPropertyName: "userClass", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueField: { classPropertyName: "valueField", publicName: "valueField", isSignal: true, isRequired: false, transformFunction: null }, valuePrimitive: { classPropertyName: "valuePrimitive", publicName: "valuePrimitive", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { close: "close", closed: "closed", disabled: "disabledChange", open: "open", opened: "opened", touch: "touch", value: "valueChange" }, host: { listeners: { "blur": "onBlur()" }, properties: { "attr.aria-activedescendant": "activeDescendant()", "attr.aria-busy": "loading() ? 'true' : undefined", "attr.aria-controls": "listId", "attr.aria-disabled": "disabled() ? true : undefined", "attr.aria-expanded": "expanded()", "attr.aria-haspopup": "'listbox'", "attr.aria-invalid": "invalidState() ? true : undefined", "attr.aria-label": "ariaLabel()", "attr.aria-labelledby": "ariaLabelledBy()", "attr.aria-readonly": "readonly() ? true : undefined", "attr.aria-required": "required() ? true : undefined", "attr.data-disabled": "disabled() || null", "attr.data-invalid": "invalidState() || null", "attr.data-readonly": "readonly() || null", "attr.role": "'combobox'", "attr.tabindex": "disabled() ? null : 0", "class": "baseClass()" } }, providers: [
|
|
539
547
|
ListService,
|
|
540
548
|
DropdownService,
|
|
541
549
|
MultiSelectService,
|
|
@@ -545,11 +553,11 @@ class MultiSelectComponent {
|
|
|
545
553
|
multi: false
|
|
546
554
|
},
|
|
547
555
|
{
|
|
548
|
-
provide:
|
|
556
|
+
provide: DROPDOWN_POPUP_INPUT_TOKEN,
|
|
549
557
|
useExisting: forwardRef(() => MultiSelectComponent),
|
|
550
558
|
multi: false
|
|
551
559
|
}
|
|
552
|
-
], queries: [{ propertyName: "footerTemplate", first: true, predicate: DropdownFooterTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "groupHeaderTemplate", first: true, predicate: DropdownGroupHeaderTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "headerTemplate", first: true, predicate: DropdownHeaderTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "itemTemplate", first: true, predicate: DropdownItemTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "noDataTemplate", first: true, predicate: DropdownNoDataTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "prefixTemplate", first: true, predicate: DropdownPrefixTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "tagTemplate", first: true, predicate: MultiSelectTagTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.DropdownDataHandlerDirective }, { directive: i1.DropdownListPopupHandlerDirective }], ngImport: i0, template: "@if (prefixTemplate()) {\n <span [class]=\"affixClass()\">\n <ng-container [ngTemplateOutlet]=\"prefixTemplate()\"></ng-container>\n </span>\n}\n\n<div [class]=\"itemContainerClass()\">\n @for (pair of valueTextMap(); track pair.key) {\n <mona-chip\n look=\"default\"\n [tabindex]=\"-1\"\n [removable]=\"true\"\n [removeTabIndex]=\"-1\"\n [disabled]=\"disabled()\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n (remove)=\"onSelectedItemRemove($event, pair.key!)\">\n @if (tagTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"tagTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: pair.key!.data }\"></ng-container>\n } @else {\n {{ pair.value }}\n }\n </mona-chip>\n }\n\n @if (tagCount() >= 0 && selectedListItems().length > tagCount()) {\n <mona-chip\n look=\"outline\"\n [tabindex]=\"-1\"\n [removable]=\"true\"\n [removeTabIndex]=\"-1\"\n [disabled]=\"disabled()\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n (remove)=\"onSelectedItemGroupRemove($event)\">\n @let remainingCount = selectedDataItems().length - tagCount();\n @if (summaryTagTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"summaryTagTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: selectedDataItems(), tagCount: tagCount() }\"></ng-container>\n } @else {\n {{ messages().itemsCount(remainingCount) }}\n }\n </mona-chip>\n }\n</div>\n\n@if (showClearButton() && selectedListItems().length !== 0 && !loading()) {\n <mona-indicator-icon\n preset=\"clear\"\n [class]=\"indicatorClass()\"\n [interactive]=\"true\"\n [label]=\"messages().clear\"\n (activate)=\"onValueClear($event)\"></mona-indicator-icon>\n}\n\n@if (loading()) {\n <mona-indicator-icon preset=\"loading\" [class]=\"indicatorClass()\" [size]=\"12\"></mona-indicator-icon>\n}\n\n<mona-indicator-icon preset=\"dropdown\" [class]=\"indicatorClass()\" [size]=\"18\"></mona-indicator-icon>\n\n<span monaDropdownLiveRegion></span>\n\n<ng-template #popupTemplate>\n <div [class]=\"listPopupClass()\">\n <mona-list [listId]=\"listId\" [focusOnMount]=\"false\" [size]=\"size()\" (itemSelect)=\"onItemSelect()\">\n @if (footerTemplate()) {\n <ng-template monaListFooterTemplate>\n <ng-container [ngTemplateOutlet]=\"footerTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n @if (groupHeaderTemplate()) {\n <ng-template monaListGroupHeaderTemplate let-group>\n <ng-container\n [ngTemplateOutlet]=\"groupHeaderTemplate() ?? null\"\n [ngTemplateOutletContext]=\"{ $implicit: group }\"></ng-container>\n </ng-template>\n }\n @if (headerTemplate()) {\n <ng-template monaListHeaderTemplate>\n <ng-container [ngTemplateOutlet]=\"headerTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n @if (itemTemplate()) {\n <ng-template monaListItemTemplate let-dataItem>\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate() ?? null\"\n [ngTemplateOutletContext]=\"{ $implicit: dataItem }\"></ng-container>\n </ng-template>\n }\n @if (noDataTemplate()) {\n <ng-template monaListNoDataTemplate>\n <ng-container [ngTemplateOutlet]=\"noDataTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n </mona-list>\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: ChipComponent, selector: "mona-chip", inputs: ["aria-label", "disabled", "label", "look", "removable", "removeLabel", "removeTabIndex", "rounded", "selected", "size", "tabindex", "toggleable", "class", "value"], outputs: ["contentClick", "remove", "selectedChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ListComponent, selector: "mona-list", inputs: ["ariaLabel", "data", "focusOnMount", "height", "listClass", "listId", "listItemClass", "listItemStyle", "listStyle", "maxHeight", "maxWidth", "size", "textField", "width"], outputs: ["itemSelect"] }, { kind: "directive", type: ListGroupHeaderTemplateDirective, selector: "ng-template[monaListGroupHeaderTemplate]" }, { kind: "directive", type: ListItemTemplateDirective, selector: "ng-template[monaListItemTemplate]" }, { kind: "directive", type: ListFooterTemplateDirective, selector: "ng-template[monaListFooterTemplate]" }, { kind: "directive", type: ListHeaderTemplateDirective, selector: "ng-template[monaListHeaderTemplate]" }, { kind: "directive", type: ListNoDataTemplateDirective, selector: "ng-template[monaListNoDataTemplate]" }, { kind: "directive", type: DropdownLiveRegionDirective, selector: "span[monaDropdownLiveRegion]" }, { kind: "component", type: IndicatorIconComponent, selector: "mona-indicator-icon", inputs: ["icon", "interactive", "label", "preset", "size", "class"], outputs: ["activate"] }] }); }
|
|
560
|
+
], queries: [{ propertyName: "footerTemplate", first: true, predicate: DropdownFooterTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "groupHeaderTemplate", first: true, predicate: DropdownGroupHeaderTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "headerTemplate", first: true, predicate: DropdownHeaderTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "itemTemplate", first: true, predicate: DropdownItemTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "noDataTemplate", first: true, predicate: DropdownNoDataTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "prefixTemplate", first: true, predicate: DropdownPrefixTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "tagTemplate", first: true, predicate: MultiSelectTagTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "popupTemplate", first: true, predicate: ["popupTemplate"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.DropdownDataHandlerDirective }, { directive: i1.DropdownListPopupHandlerDirective }], ngImport: i0, template: "@if (prefixTemplate()) {\n <span [class]=\"affixClass()\">\n <ng-container [ngTemplateOutlet]=\"prefixTemplate()\"></ng-container>\n </span>\n}\n\n<div [class]=\"itemContainerClass()\">\n @for (pair of valueTextMap(); track pair.key) {\n <mona-chip\n look=\"default\"\n [tabindex]=\"-1\"\n [removable]=\"true\"\n [removeTabIndex]=\"-1\"\n [disabled]=\"disabled()\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n (remove)=\"onSelectedItemRemove($event, pair.key!)\">\n @if (tagTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"tagTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: pair.key!.data }\"></ng-container>\n } @else {\n {{ pair.value }}\n }\n </mona-chip>\n }\n\n @if (tagCount() >= 0 && selectedListItems().length > tagCount()) {\n <mona-chip\n look=\"outline\"\n [tabindex]=\"-1\"\n [removable]=\"true\"\n [removeTabIndex]=\"-1\"\n [disabled]=\"disabled()\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n (remove)=\"onSelectedItemGroupRemove($event)\">\n @let remainingCount = selectedDataItems().length - tagCount();\n @if (summaryTagTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"summaryTagTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: selectedDataItems(), tagCount: tagCount() }\"></ng-container>\n } @else {\n {{ messages().itemsCount(remainingCount) }}\n }\n </mona-chip>\n }\n</div>\n\n@if (showClearButton() && selectedListItems().length !== 0 && !loading()) {\n <mona-indicator-icon\n preset=\"clear\"\n [class]=\"indicatorClass()\"\n [interactive]=\"true\"\n [label]=\"messages().clear\"\n (activate)=\"onValueClear($event)\"></mona-indicator-icon>\n}\n\n@if (loading()) {\n <mona-indicator-icon preset=\"loading\" [class]=\"indicatorClass()\" [size]=\"12\"></mona-indicator-icon>\n}\n\n<mona-indicator-icon preset=\"dropdown\" [class]=\"indicatorClass()\" [size]=\"18\"></mona-indicator-icon>\n\n<span monaDropdownLiveRegion></span>\n\n<ng-template #popupTemplate>\n <div [class]=\"listPopupClass()\" (pointerdown)=\"onPopupPointerDown($event)\">\n <mona-list [listId]=\"listId\" [focusOnMount]=\"false\" [size]=\"size()\" (itemSelect)=\"onItemSelect()\">\n @if (footerTemplate()) {\n <ng-template monaListFooterTemplate>\n <ng-container [ngTemplateOutlet]=\"footerTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n @if (groupHeaderTemplate()) {\n <ng-template monaListGroupHeaderTemplate let-group>\n <ng-container\n [ngTemplateOutlet]=\"groupHeaderTemplate() ?? null\"\n [ngTemplateOutletContext]=\"{ $implicit: group }\"></ng-container>\n </ng-template>\n }\n @if (headerTemplate()) {\n <ng-template monaListHeaderTemplate>\n <ng-container [ngTemplateOutlet]=\"headerTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n @if (itemTemplate()) {\n <ng-template monaListItemTemplate let-dataItem>\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate() ?? null\"\n [ngTemplateOutletContext]=\"{ $implicit: dataItem }\"></ng-container>\n </ng-template>\n }\n @if (noDataTemplate()) {\n <ng-template monaListNoDataTemplate>\n <ng-container [ngTemplateOutlet]=\"noDataTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n </mona-list>\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: ChipComponent, selector: "mona-chip", inputs: ["aria-label", "disabled", "label", "look", "removable", "removeLabel", "removeTabIndex", "rounded", "selected", "size", "tabindex", "toggleable", "class", "value"], outputs: ["contentClick", "remove", "selectedChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ListComponent, selector: "mona-list", inputs: ["ariaLabel", "data", "focusOnMount", "height", "listClass", "listId", "listItemClass", "listItemStyle", "listStyle", "maxHeight", "maxWidth", "size", "textField", "width"], outputs: ["itemSelect"] }, { kind: "directive", type: ListGroupHeaderTemplateDirective, selector: "ng-template[monaListGroupHeaderTemplate]" }, { kind: "directive", type: ListItemTemplateDirective, selector: "ng-template[monaListItemTemplate]" }, { kind: "directive", type: ListFooterTemplateDirective, selector: "ng-template[monaListFooterTemplate]" }, { kind: "directive", type: ListHeaderTemplateDirective, selector: "ng-template[monaListHeaderTemplate]" }, { kind: "directive", type: ListNoDataTemplateDirective, selector: "ng-template[monaListNoDataTemplate]" }, { kind: "directive", type: DropdownLiveRegionDirective, selector: "span[monaDropdownLiveRegion]" }, { kind: "component", type: IndicatorIconComponent, selector: "mona-indicator-icon", inputs: ["icon", "interactive", "label", "preset", "size", "class"], outputs: ["activate"] }] }); }
|
|
553
561
|
}
|
|
554
562
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: MultiSelectComponent, decorators: [{
|
|
555
563
|
type: Component,
|
|
@@ -563,7 +571,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
563
571
|
multi: false
|
|
564
572
|
},
|
|
565
573
|
{
|
|
566
|
-
provide:
|
|
574
|
+
provide: DROPDOWN_POPUP_INPUT_TOKEN,
|
|
567
575
|
useExisting: forwardRef(() => MultiSelectComponent),
|
|
568
576
|
multi: false
|
|
569
577
|
}
|
|
@@ -597,10 +605,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
597
605
|
"[attr.tabindex]": "disabled() ? null : 0",
|
|
598
606
|
"[class]": "baseClass()",
|
|
599
607
|
"(blur)": "onBlur()"
|
|
600
|
-
}, template: "@if (prefixTemplate()) {\n <span [class]=\"affixClass()\">\n <ng-container [ngTemplateOutlet]=\"prefixTemplate()\"></ng-container>\n </span>\n}\n\n<div [class]=\"itemContainerClass()\">\n @for (pair of valueTextMap(); track pair.key) {\n <mona-chip\n look=\"default\"\n [tabindex]=\"-1\"\n [removable]=\"true\"\n [removeTabIndex]=\"-1\"\n [disabled]=\"disabled()\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n (remove)=\"onSelectedItemRemove($event, pair.key!)\">\n @if (tagTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"tagTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: pair.key!.data }\"></ng-container>\n } @else {\n {{ pair.value }}\n }\n </mona-chip>\n }\n\n @if (tagCount() >= 0 && selectedListItems().length > tagCount()) {\n <mona-chip\n look=\"outline\"\n [tabindex]=\"-1\"\n [removable]=\"true\"\n [removeTabIndex]=\"-1\"\n [disabled]=\"disabled()\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n (remove)=\"onSelectedItemGroupRemove($event)\">\n @let remainingCount = selectedDataItems().length - tagCount();\n @if (summaryTagTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"summaryTagTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: selectedDataItems(), tagCount: tagCount() }\"></ng-container>\n } @else {\n {{ messages().itemsCount(remainingCount) }}\n }\n </mona-chip>\n }\n</div>\n\n@if (showClearButton() && selectedListItems().length !== 0 && !loading()) {\n <mona-indicator-icon\n preset=\"clear\"\n [class]=\"indicatorClass()\"\n [interactive]=\"true\"\n [label]=\"messages().clear\"\n (activate)=\"onValueClear($event)\"></mona-indicator-icon>\n}\n\n@if (loading()) {\n <mona-indicator-icon preset=\"loading\" [class]=\"indicatorClass()\" [size]=\"12\"></mona-indicator-icon>\n}\n\n<mona-indicator-icon preset=\"dropdown\" [class]=\"indicatorClass()\" [size]=\"18\"></mona-indicator-icon>\n\n<span monaDropdownLiveRegion></span>\n\n<ng-template #popupTemplate>\n <div [class]=\"listPopupClass()\">\n <mona-list [listId]=\"listId\" [focusOnMount]=\"false\" [size]=\"size()\" (itemSelect)=\"onItemSelect()\">\n @if (footerTemplate()) {\n <ng-template monaListFooterTemplate>\n <ng-container [ngTemplateOutlet]=\"footerTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n @if (groupHeaderTemplate()) {\n <ng-template monaListGroupHeaderTemplate let-group>\n <ng-container\n [ngTemplateOutlet]=\"groupHeaderTemplate() ?? null\"\n [ngTemplateOutletContext]=\"{ $implicit: group }\"></ng-container>\n </ng-template>\n }\n @if (headerTemplate()) {\n <ng-template monaListHeaderTemplate>\n <ng-container [ngTemplateOutlet]=\"headerTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n @if (itemTemplate()) {\n <ng-template monaListItemTemplate let-dataItem>\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate() ?? null\"\n [ngTemplateOutletContext]=\"{ $implicit: dataItem }\"></ng-container>\n </ng-template>\n }\n @if (noDataTemplate()) {\n <ng-template monaListNoDataTemplate>\n <ng-container [ngTemplateOutlet]=\"noDataTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n </mona-list>\n </div>\n</ng-template>\n" }]
|
|
608
|
+
}, template: "@if (prefixTemplate()) {\n <span [class]=\"affixClass()\">\n <ng-container [ngTemplateOutlet]=\"prefixTemplate()\"></ng-container>\n </span>\n}\n\n<div [class]=\"itemContainerClass()\">\n @for (pair of valueTextMap(); track pair.key) {\n <mona-chip\n look=\"default\"\n [tabindex]=\"-1\"\n [removable]=\"true\"\n [removeTabIndex]=\"-1\"\n [disabled]=\"disabled()\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n (remove)=\"onSelectedItemRemove($event, pair.key!)\">\n @if (tagTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"tagTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: pair.key!.data }\"></ng-container>\n } @else {\n {{ pair.value }}\n }\n </mona-chip>\n }\n\n @if (tagCount() >= 0 && selectedListItems().length > tagCount()) {\n <mona-chip\n look=\"outline\"\n [tabindex]=\"-1\"\n [removable]=\"true\"\n [removeTabIndex]=\"-1\"\n [disabled]=\"disabled()\"\n [rounded]=\"rounded()\"\n [size]=\"size()\"\n (remove)=\"onSelectedItemGroupRemove($event)\">\n @let remainingCount = selectedDataItems().length - tagCount();\n @if (summaryTagTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"summaryTagTemplate()\"\n [ngTemplateOutletContext]=\"{ $implicit: selectedDataItems(), tagCount: tagCount() }\"></ng-container>\n } @else {\n {{ messages().itemsCount(remainingCount) }}\n }\n </mona-chip>\n }\n</div>\n\n@if (showClearButton() && selectedListItems().length !== 0 && !loading()) {\n <mona-indicator-icon\n preset=\"clear\"\n [class]=\"indicatorClass()\"\n [interactive]=\"true\"\n [label]=\"messages().clear\"\n (activate)=\"onValueClear($event)\"></mona-indicator-icon>\n}\n\n@if (loading()) {\n <mona-indicator-icon preset=\"loading\" [class]=\"indicatorClass()\" [size]=\"12\"></mona-indicator-icon>\n}\n\n<mona-indicator-icon preset=\"dropdown\" [class]=\"indicatorClass()\" [size]=\"18\"></mona-indicator-icon>\n\n<span monaDropdownLiveRegion></span>\n\n<ng-template #popupTemplate>\n <div [class]=\"listPopupClass()\" (pointerdown)=\"onPopupPointerDown($event)\">\n <mona-list [listId]=\"listId\" [focusOnMount]=\"false\" [size]=\"size()\" (itemSelect)=\"onItemSelect()\">\n @if (footerTemplate()) {\n <ng-template monaListFooterTemplate>\n <ng-container [ngTemplateOutlet]=\"footerTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n @if (groupHeaderTemplate()) {\n <ng-template monaListGroupHeaderTemplate let-group>\n <ng-container\n [ngTemplateOutlet]=\"groupHeaderTemplate() ?? null\"\n [ngTemplateOutletContext]=\"{ $implicit: group }\"></ng-container>\n </ng-template>\n }\n @if (headerTemplate()) {\n <ng-template monaListHeaderTemplate>\n <ng-container [ngTemplateOutlet]=\"headerTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n @if (itemTemplate()) {\n <ng-template monaListItemTemplate let-dataItem>\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate() ?? null\"\n [ngTemplateOutletContext]=\"{ $implicit: dataItem }\"></ng-container>\n </ng-template>\n }\n @if (noDataTemplate()) {\n <ng-template monaListNoDataTemplate>\n <ng-container [ngTemplateOutlet]=\"noDataTemplate() ?? null\"></ng-container>\n </ng-template>\n }\n </mona-list>\n </div>\n</ng-template>\n" }]
|
|
601
609
|
}], ctorParameters: () => [], propDecorators: { footerTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DropdownFooterTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], groupHeaderTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DropdownGroupHeaderTemplateDirective), { ...{
|
|
602
610
|
read: TemplateRef
|
|
603
|
-
}, isSignal: true }] }], headerTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DropdownHeaderTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], itemTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DropdownItemTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], noDataTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DropdownNoDataTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], popupTemplate: [{ type: i0.ViewChild, args: ["popupTemplate", { isSignal: true }] }], prefixTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DropdownPrefixTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], tagTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => MultiSelectTagTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaLabelledBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], autoClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoClose", required: false }] }], checkboxes: [{ type: i0.Input, args: [{ isSignal: true, alias: "checkboxes", required: false }] }], close: [{ type: i0.Output, args: ["close"] }], closed: [{ type: i0.Output, args: ["closed"] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }],
|
|
611
|
+
}, isSignal: true }] }], headerTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DropdownHeaderTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], itemTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DropdownItemTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], noDataTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DropdownNoDataTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], popupTemplate: [{ type: i0.ViewChild, args: ["popupTemplate", { isSignal: true }] }], prefixTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => DropdownPrefixTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], tagTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => MultiSelectTagTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-label", required: false }] }], ariaLabelledBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "aria-labelledby", required: false }] }], autoClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoClose", required: false }] }], checkboxes: [{ type: i0.Input, args: [{ isSignal: true, alias: "checkboxes", required: false }] }], close: [{ type: i0.Output, args: ["close"] }], closed: [{ type: i0.Output, args: ["closed"] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }, { type: i0.Output, args: ["disabledChange"] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], itemDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemDisabled", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], open: [{ type: i0.Output, args: ["open"] }], opened: [{ type: i0.Output, args: ["opened"] }], popupClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupClass", required: false }] }], popupHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupHeight", required: false }] }], popupWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "popupWidth", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], rounded: [{ type: i0.Input, args: [{ isSignal: true, alias: "rounded", required: false }] }], showClearButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showClearButton", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], textField: [{ type: i0.Input, args: [{ isSignal: true, alias: "textField", required: false }] }], touch: [{ type: i0.Output, args: ["touch"] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }], userClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "class", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], valueField: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueField", required: false }] }], valuePrimitive: [{ type: i0.Input, args: [{ isSignal: true, alias: "valuePrimitive", required: false }] }] } });
|
|
604
612
|
|
|
605
613
|
class MultiSelectSummaryTagTemplateDirective {
|
|
606
614
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: MultiSelectSummaryTagTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|