@nanahoshi/mona-ui 0.18.5 → 0.19.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/README.md +71 -13
- package/fesm2022/nanahoshi-mona-ui-auto-complete.mjs +11 -3
- package/fesm2022/nanahoshi-mona-ui-breadcrumb.mjs +17 -9
- package/fesm2022/nanahoshi-mona-ui-button-group.mjs +16 -7
- package/fesm2022/nanahoshi-mona-ui-calendar.mjs +122 -48
- package/fesm2022/nanahoshi-mona-ui-card.mjs +22 -14
- package/fesm2022/nanahoshi-mona-ui-chart.mjs +78 -18
- package/fesm2022/nanahoshi-mona-ui-check-box.mjs +1 -1
- package/fesm2022/nanahoshi-mona-ui-chip.mjs +199 -77
- package/fesm2022/nanahoshi-mona-ui-circular-progress-bar.mjs +1 -2
- package/fesm2022/nanahoshi-mona-ui-color-gradient.mjs +23 -5
- package/fesm2022/nanahoshi-mona-ui-color-palette.mjs +49 -28
- package/fesm2022/nanahoshi-mona-ui-color-picker.mjs +42 -26
- package/fesm2022/nanahoshi-mona-ui-combo-box.mjs +11 -3
- package/fesm2022/nanahoshi-mona-ui-date-picker.mjs +28 -16
- package/fesm2022/nanahoshi-mona-ui-datetime-picker.mjs +74 -51
- package/fesm2022/nanahoshi-mona-ui-dialog.mjs +57 -25
- package/fesm2022/nanahoshi-mona-ui-dropdown-list.mjs +13 -5
- package/fesm2022/nanahoshi-mona-ui-dropdowns.mjs +17 -6
- package/fesm2022/nanahoshi-mona-ui-editor.mjs +178 -59
- package/fesm2022/nanahoshi-mona-ui-filter.mjs +137 -54
- package/fesm2022/{nanahoshi-mona-ui-grid-grid-footer-cell.component-WEDbZ5vy.mjs → nanahoshi-mona-ui-grid-grid-footer-cell.component-Bg7rckst.mjs} +2 -2
- package/fesm2022/{nanahoshi-mona-ui-grid-grid-footer-table-cell.directive-ibH5osCg.mjs → nanahoshi-mona-ui-grid-grid-footer-table-cell.directive-BSSpaCLL.mjs} +2 -2
- package/fesm2022/nanahoshi-mona-ui-grid-grid-list.component-D9AwQFDV.mjs +145 -0
- package/fesm2022/{nanahoshi-mona-ui-grid-grid-toggle.component-hc-LeIb0.mjs → nanahoshi-mona-ui-grid-grid-toggle.component-Byb9iTes.mjs} +21 -17
- package/fesm2022/{nanahoshi-mona-ui-grid-grid-virtual-list.component-DYajpOb9.mjs → nanahoshi-mona-ui-grid-grid-virtual-list.component-CBmdtrXm.mjs} +5 -5
- package/fesm2022/{nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-Pm8Fbp6M.mjs → nanahoshi-mona-ui-grid-nanahoshi-mona-ui-grid-DPmJmCap.mjs} +90 -42
- package/fesm2022/nanahoshi-mona-ui-grid.mjs +1 -1
- package/fesm2022/nanahoshi-mona-ui-i18n.mjs +1168 -0
- package/fesm2022/nanahoshi-mona-ui-internal-list.mjs +12 -4
- package/fesm2022/nanahoshi-mona-ui-internal-tree.mjs +48 -21
- package/fesm2022/nanahoshi-mona-ui-list-box.mjs +33 -18
- package/fesm2022/nanahoshi-mona-ui-list-view.mjs +10 -10
- package/fesm2022/nanahoshi-mona-ui-list.mjs +2 -0
- package/fesm2022/nanahoshi-mona-ui-menubar.mjs +29 -16
- package/fesm2022/nanahoshi-mona-ui-multi-select.mjs +12 -3
- package/fesm2022/nanahoshi-mona-ui-notification.mjs +23 -18
- package/fesm2022/nanahoshi-mona-ui-numeric-text-box.mjs +211 -106
- package/fesm2022/nanahoshi-mona-ui-otp-input.mjs +14 -6
- package/fesm2022/nanahoshi-mona-ui-pager.mjs +46 -19
- package/fesm2022/nanahoshi-mona-ui-popup-menu.mjs +57 -46
- package/fesm2022/nanahoshi-mona-ui-popup.mjs +35 -15
- package/fesm2022/nanahoshi-mona-ui-progress-bar.mjs +38 -17
- package/fesm2022/nanahoshi-mona-ui-rating.mjs +25 -7
- package/fesm2022/nanahoshi-mona-ui-scroll-view.mjs +431 -101
- package/fesm2022/nanahoshi-mona-ui-segmented.mjs +1 -1
- package/fesm2022/nanahoshi-mona-ui-sheet.mjs +26 -8
- package/fesm2022/nanahoshi-mona-ui-sidebar.mjs +222 -28
- package/fesm2022/nanahoshi-mona-ui-slider.mjs +91 -36
- package/fesm2022/nanahoshi-mona-ui-spinner.mjs +34 -15
- package/fesm2022/nanahoshi-mona-ui-split-button.mjs +39 -23
- package/fesm2022/nanahoshi-mona-ui-splitter.mjs +50 -25
- package/fesm2022/nanahoshi-mona-ui-stepper.mjs +32 -14
- package/fesm2022/nanahoshi-mona-ui-switch.mjs +9 -9
- package/fesm2022/nanahoshi-mona-ui-tabs.mjs +74 -56
- package/fesm2022/nanahoshi-mona-ui-text-box.mjs +16 -8
- package/fesm2022/nanahoshi-mona-ui-time-picker.mjs +33 -19
- package/fesm2022/nanahoshi-mona-ui-time-selector.mjs +66 -27
- package/fesm2022/nanahoshi-mona-ui-tree-view.mjs +23 -15
- package/fesm2022/nanahoshi-mona-ui-window.mjs +71 -40
- package/i18n/package.json +4 -0
- package/package.json +5 -1
- package/types/nanahoshi-mona-ui-auto-complete.d.ts +6 -1
- package/types/nanahoshi-mona-ui-breadcrumb.d.ts +9 -3
- package/types/nanahoshi-mona-ui-button-group.d.ts +9 -3
- package/types/nanahoshi-mona-ui-calendar.d.ts +13 -3
- package/types/nanahoshi-mona-ui-card.d.ts +8 -2
- package/types/nanahoshi-mona-ui-chart.d.ts +10 -1
- package/types/nanahoshi-mona-ui-chip.d.ts +14 -5
- package/types/nanahoshi-mona-ui-color-gradient.d.ts +6 -1
- package/types/nanahoshi-mona-ui-color-palette.d.ts +21 -10
- package/types/nanahoshi-mona-ui-color-picker.d.ts +30 -20
- package/types/nanahoshi-mona-ui-combo-box.d.ts +6 -1
- package/types/nanahoshi-mona-ui-date-picker.d.ts +7 -2
- package/types/nanahoshi-mona-ui-datetime-picker.d.ts +33 -8
- package/types/nanahoshi-mona-ui-dialog.d.ts +16 -7
- package/types/nanahoshi-mona-ui-dropdown-list.d.ts +6 -1
- package/types/nanahoshi-mona-ui-dropdowns.d.ts +4 -1
- package/types/nanahoshi-mona-ui-editor.d.ts +6 -1
- package/types/nanahoshi-mona-ui-filter.d.ts +16 -10
- package/types/nanahoshi-mona-ui-grid.d.ts +38 -1
- package/types/nanahoshi-mona-ui-i18n.d.ts +633 -0
- package/types/nanahoshi-mona-ui-internal-list.d.ts +7 -2
- package/types/nanahoshi-mona-ui-internal-tree.d.ts +7 -3
- package/types/nanahoshi-mona-ui-list-box.d.ts +9 -4
- package/types/nanahoshi-mona-ui-list-view.d.ts +6 -6
- package/types/nanahoshi-mona-ui-list.d.ts +1 -1
- package/types/nanahoshi-mona-ui-menubar.d.ts +59 -58
- package/types/nanahoshi-mona-ui-multi-select.d.ts +6 -1
- package/types/nanahoshi-mona-ui-notification.d.ts +11 -5
- package/types/nanahoshi-mona-ui-numeric-text-box.d.ts +24 -15
- package/types/nanahoshi-mona-ui-otp-input.d.ts +9 -3
- package/types/nanahoshi-mona-ui-pager.d.ts +19 -6
- package/types/nanahoshi-mona-ui-popup.d.ts +2 -1
- package/types/nanahoshi-mona-ui-progress-bar.d.ts +9 -7
- package/types/nanahoshi-mona-ui-rating.d.ts +19 -12
- package/types/nanahoshi-mona-ui-scroll-view.d.ts +34 -28
- package/types/nanahoshi-mona-ui-sheet.d.ts +8 -2
- package/types/nanahoshi-mona-ui-sidebar.d.ts +3 -0
- package/types/nanahoshi-mona-ui-slider.d.ts +44 -26
- package/types/nanahoshi-mona-ui-spinner.d.ts +13 -4
- package/types/nanahoshi-mona-ui-split-button.d.ts +62 -56
- package/types/nanahoshi-mona-ui-splitter.d.ts +9 -6
- package/types/nanahoshi-mona-ui-stepper.d.ts +9 -3
- package/types/nanahoshi-mona-ui-switch.d.ts +1 -1
- package/types/nanahoshi-mona-ui-tabs.d.ts +96 -35
- package/types/nanahoshi-mona-ui-text-box.d.ts +11 -5
- package/types/nanahoshi-mona-ui-time-picker.d.ts +7 -2
- package/types/nanahoshi-mona-ui-time-selector.d.ts +16 -5
- package/types/nanahoshi-mona-ui-tree-view.d.ts +15 -10
- package/types/nanahoshi-mona-ui-window.d.ts +26 -20
- package/fesm2022/nanahoshi-mona-ui-grid-grid-list.component-ZM3CneJ0.mjs +0 -145
|
@@ -3,6 +3,7 @@ import { NgTemplateOutlet } from '@angular/common';
|
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { Directive, signal, computed, Injectable, inject, input, ElementRef, output, ChangeDetectionStrategy, Component, DestroyRef, viewChild, contentChild, TemplateRef, effect, untracked, afterNextRender } from '@angular/core';
|
|
5
5
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
6
|
+
import { MonaI18nService } from '@nanahoshi/mona-ui/i18n';
|
|
6
7
|
import { isTypeaheadKey, setupTypeahead } from '@nanahoshi/mona-ui/internal';
|
|
7
8
|
import { FilterInputComponent } from '@nanahoshi/mona-ui/internal/filter-input';
|
|
8
9
|
import { PlaceholderComponent } from '@nanahoshi/mona-ui/placeholder';
|
|
@@ -15,6 +16,10 @@ import * as i1 from '@angular/forms';
|
|
|
15
16
|
import { FormsModule } from '@angular/forms';
|
|
16
17
|
import { CheckboxDirective } from '@nanahoshi/mona-ui/check-box';
|
|
17
18
|
|
|
19
|
+
const LIST_DEFAULT_MESSAGES = {
|
|
20
|
+
noData: "No data"
|
|
21
|
+
};
|
|
22
|
+
|
|
18
23
|
class ListFooterTemplateDirective {
|
|
19
24
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ListFooterTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
20
25
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.6", type: ListFooterTemplateDirective, isStandalone: true, selector: "ng-template[monaListFooterTemplate]", ngImport: i0 }); }
|
|
@@ -934,10 +939,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
934
939
|
class ListComponent {
|
|
935
940
|
#destroyRef;
|
|
936
941
|
#hostElementRef;
|
|
942
|
+
#i18n;
|
|
937
943
|
#typeaheadKey$;
|
|
938
944
|
constructor() {
|
|
939
945
|
this.#destroyRef = inject(DestroyRef);
|
|
940
946
|
this.#hostElementRef = inject(ElementRef);
|
|
947
|
+
this.#i18n = inject(MonaI18nService);
|
|
941
948
|
this.#typeaheadKey$ = new Subject();
|
|
942
949
|
this.filterInput = viewChild(FilterInputComponent, /* @ts-ignore */
|
|
943
950
|
...(ngDevMode ? [{ debugName: "filterInput" }] : /* istanbul ignore next */ []));
|
|
@@ -958,13 +965,13 @@ class ListComponent {
|
|
|
958
965
|
this.headerTemplate = contentChild(ListHeaderTemplateDirective, { ...(ngDevMode ? { debugName: "headerTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
|
|
959
966
|
this.hostTabIndex = computed(() => (this.listService.focusableItem() ? -1 : 0), /* @ts-ignore */
|
|
960
967
|
...(ngDevMode ? [{ debugName: "hostTabIndex" }] : /* istanbul ignore next */ []));
|
|
961
|
-
this.itemTemplate = contentChild(ListItemTemplateDirective, { ...(ngDevMode ? { debugName: "itemTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
|
|
962
968
|
this.innerListClasses = computed(() => {
|
|
963
969
|
const classes = listInnerListThemeVariants();
|
|
964
970
|
const listClass = this.listClass();
|
|
965
971
|
return twMerge(classes, listClass);
|
|
966
972
|
}, /* @ts-ignore */
|
|
967
973
|
...(ngDevMode ? [{ debugName: "innerListClasses" }] : /* istanbul ignore next */ []));
|
|
974
|
+
this.itemTemplate = contentChild(ListItemTemplateDirective, { ...(ngDevMode ? { debugName: "itemTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
|
|
968
975
|
this.listHeight = computed(() => {
|
|
969
976
|
const height = this.height();
|
|
970
977
|
if (height == null) {
|
|
@@ -1010,6 +1017,7 @@ class ListComponent {
|
|
|
1010
1017
|
return width;
|
|
1011
1018
|
}, /* @ts-ignore */
|
|
1012
1019
|
...(ngDevMode ? [{ debugName: "listWidth" }] : /* istanbul ignore next */ []));
|
|
1020
|
+
this.messages = this.#i18n.componentMessages("list", LIST_DEFAULT_MESSAGES);
|
|
1013
1021
|
this.noDataTemplate = contentChild(ListNoDataTemplateDirective, { ...(ngDevMode ? { debugName: "noDataTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
|
|
1014
1022
|
this.viewportHeight = computed(() => {
|
|
1015
1023
|
const listHeight = this.listHeight();
|
|
@@ -1303,7 +1311,7 @@ class ListComponent {
|
|
|
1303
1311
|
this.itemSelect.emit({ item, source: { via: "mouse" } });
|
|
1304
1312
|
}
|
|
1305
1313
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1306
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: ListComponent, isStandalone: true, selector: "mona-list", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, focusOnMount: { classPropertyName: "focusOnMount", publicName: "focusOnMount", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, listClass: { classPropertyName: "listClass", publicName: "listClass", isSignal: true, isRequired: false, transformFunction: null }, listId: { classPropertyName: "listId", publicName: "listId", isSignal: true, isRequired: false, transformFunction: null }, listItemClass: { classPropertyName: "listItemClass", publicName: "listItemClass", isSignal: true, isRequired: false, transformFunction: null }, listItemStyle: { classPropertyName: "listItemStyle", publicName: "listItemStyle", isSignal: true, isRequired: false, transformFunction: null }, listStyle: { classPropertyName: "listStyle", publicName: "listStyle", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", 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 }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemSelect: "itemSelect" }, host: { properties: { "attr.tabindex": "hostTabIndex()", "class": "classes()", "style.height": "listHeight()", "style.max-height": "listMaxHeight()", "style.max-width": "listMaxWidth()", "style.width": "listWidth()" } }, queries: [{ propertyName: "footerTemplate", first: true, predicate: ListFooterTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "groupHeaderTemplate", first: true, predicate: ListGroupHeaderTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "headerTemplate", first: true, predicate: ListHeaderTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "itemTemplate", first: true, predicate: ListItemTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "noDataTemplate", first: true, predicate: ListNoDataTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "filterInput", first: true, predicate: FilterInputComponent, descendants: true, isSignal: true }, { propertyName: "virtualScrollViewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true, isSignal: true }], ngImport: i0, template: "@if (headerTemplate()) {\n <ng-container [ngTemplateOutlet]=\"headerTemplate()\"></ng-container>\n}\n@if (listService.filterableOptions().enabled && listService.filterInputVisible()) {\n <div class=\"p-2\">\n <mona-filter-input\n [filter]=\"listService.filterText()\"\n [debounce]=\"listService.filterableOptions().debounce\"\n [placeholder]=\"listService.filterPlaceholder()\"\n [size]=\"size()\"\n (filterChange)=\"onFilterChange($event)\"></mona-filter-input>\n </div>\n}\n@if (listService.virtualScrollOptions().enabled) {\n @if (listService.viewItems().length !== 0) {\n <cdk-virtual-scroll-viewport\n [itemSize]=\"listService.virtualScrollOptions().height\"\n [style.height]=\"viewportHeight()\">\n <ul\n [class]=\"innerListClasses()\"\n [style]=\"listStyle()\"\n [tabIndex]=\"-1\"\n [id]=\"listId()\"\n role=\"listbox\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-multiselectable]=\"listService.selectableOptions().mode === 'multiple' || null\">\n <ng-container *cdkVirtualFor=\"let item of listService.viewItems()\">\n <ng-container\n [ngTemplateOutlet]=\"listItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n </ng-container>\n </ul>\n </cdk-virtual-scroll-viewport>\n } @else if (noDataTemplate()) {\n <ng-container [ngTemplateOutlet]=\"noDataTemplate()\"></ng-container>\n } @else {\n <mona-placeholder text=\"
|
|
1314
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: ListComponent, isStandalone: true, selector: "mona-list", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, focusOnMount: { classPropertyName: "focusOnMount", publicName: "focusOnMount", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, listClass: { classPropertyName: "listClass", publicName: "listClass", isSignal: true, isRequired: false, transformFunction: null }, listId: { classPropertyName: "listId", publicName: "listId", isSignal: true, isRequired: false, transformFunction: null }, listItemClass: { classPropertyName: "listItemClass", publicName: "listItemClass", isSignal: true, isRequired: false, transformFunction: null }, listItemStyle: { classPropertyName: "listItemStyle", publicName: "listItemStyle", isSignal: true, isRequired: false, transformFunction: null }, listStyle: { classPropertyName: "listStyle", publicName: "listStyle", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", 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 }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemSelect: "itemSelect" }, host: { properties: { "attr.tabindex": "hostTabIndex()", "class": "classes()", "style.height": "listHeight()", "style.max-height": "listMaxHeight()", "style.max-width": "listMaxWidth()", "style.width": "listWidth()" } }, queries: [{ propertyName: "footerTemplate", first: true, predicate: ListFooterTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "groupHeaderTemplate", first: true, predicate: ListGroupHeaderTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "headerTemplate", first: true, predicate: ListHeaderTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "itemTemplate", first: true, predicate: ListItemTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "noDataTemplate", first: true, predicate: ListNoDataTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "filterInput", first: true, predicate: FilterInputComponent, descendants: true, isSignal: true }, { propertyName: "virtualScrollViewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true, isSignal: true }], ngImport: i0, template: "@if (headerTemplate()) {\n <ng-container [ngTemplateOutlet]=\"headerTemplate()\"></ng-container>\n}\n@if (listService.filterableOptions().enabled && listService.filterInputVisible()) {\n <div class=\"p-2\">\n <mona-filter-input\n [filter]=\"listService.filterText()\"\n [debounce]=\"listService.filterableOptions().debounce\"\n [placeholder]=\"listService.filterPlaceholder()\"\n [size]=\"size()\"\n (filterChange)=\"onFilterChange($event)\"></mona-filter-input>\n </div>\n}\n@if (listService.virtualScrollOptions().enabled) {\n @if (listService.viewItems().length !== 0) {\n <cdk-virtual-scroll-viewport\n [itemSize]=\"listService.virtualScrollOptions().height\"\n [style.height]=\"viewportHeight()\">\n <ul\n [class]=\"innerListClasses()\"\n [style]=\"listStyle()\"\n [tabIndex]=\"-1\"\n [id]=\"listId()\"\n role=\"listbox\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-multiselectable]=\"listService.selectableOptions().mode === 'multiple' || null\">\n <ng-container *cdkVirtualFor=\"let item of listService.viewItems()\">\n <ng-container\n [ngTemplateOutlet]=\"listItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n </ng-container>\n </ul>\n </cdk-virtual-scroll-viewport>\n } @else if (noDataTemplate()) {\n <ng-container [ngTemplateOutlet]=\"noDataTemplate()\"></ng-container>\n } @else {\n <mona-placeholder [text]=\"messages().noData\" class=\"w-full h-full flex items-center justify-center\"></mona-placeholder>\n }\n} @else {\n @if (listService.viewItems().length !== 0) {\n <ul\n [class]=\"innerListClasses()\"\n [style]=\"listStyle()\"\n [tabIndex]=\"-1\"\n [id]=\"listId()\"\n role=\"listbox\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-multiselectable]=\"listService.selectableOptions().mode === 'multiple' || null\">\n @for (item of listService.viewItems(); track item.uid) {\n <ng-container\n [ngTemplateOutlet]=\"listItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n }\n </ul>\n } @else if (noDataTemplate()) {\n <ng-container [ngTemplateOutlet]=\"noDataTemplate()\"></ng-container>\n } @else {\n <mona-placeholder [text]=\"messages().noData\" class=\"w-full h-full flex items-center justify-center\"></mona-placeholder>\n }\n}\n@if (footerTemplate()) {\n <ng-container [ngTemplateOutlet]=\"footerTemplate()\"></ng-container>\n}\n\n<ng-template #listItemTemplate let-item>\n @if (item.header) {\n <li [class]=\"groupHeaderClasses()\" [style]=\"listItemStyle()\">\n <mona-list-item [item]=\"item\" [template]=\"groupHeaderTemplate()\"></mona-list-item>\n </li>\n } @else {\n <li\n [class]=\"listItemClass()\"\n [class.px-0.5]=\"true\"\n [style]=\"listItemStyle()\"\n [id]=\"item.uid\"\n [attr.data-uid]=\"item.uid\"\n (click)=\"onListItemClick(item)\"\n monaListItem\n [item]=\"item\">\n <mona-list-item\n [item]=\"item\"\n [template]=\"itemTemplate()\"\n (checked)=\"onListItemCheck(item)\"></mona-list-item>\n </li>\n }\n</ng-template>\n", dependencies: [{ kind: "component", type: FilterInputComponent, selector: "mona-filter-input", inputs: ["debounce", "filter", "placeholder", "size"], outputs: ["filterChange", "inputBlur", "inputFocus"] }, { kind: "component", type: ListItemComponent, selector: "mona-list-item", inputs: ["item", "template"], outputs: ["checked"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ListItemDirective, selector: "li[monaListItem]", inputs: ["item"] }, { kind: "component", type: PlaceholderComponent, selector: "mona-placeholder", inputs: ["text", "class"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }] }); }
|
|
1307
1315
|
}
|
|
1308
1316
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ListComponent, decorators: [{
|
|
1309
1317
|
type: Component,
|
|
@@ -1323,7 +1331,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
1323
1331
|
"[style.max-height]": "listMaxHeight()",
|
|
1324
1332
|
"[style.max-width]": "listMaxWidth()",
|
|
1325
1333
|
"[style.width]": "listWidth()"
|
|
1326
|
-
}, template: "@if (headerTemplate()) {\n <ng-container [ngTemplateOutlet]=\"headerTemplate()\"></ng-container>\n}\n@if (listService.filterableOptions().enabled && listService.filterInputVisible()) {\n <div class=\"p-2\">\n <mona-filter-input\n [filter]=\"listService.filterText()\"\n [debounce]=\"listService.filterableOptions().debounce\"\n [placeholder]=\"listService.filterPlaceholder()\"\n [size]=\"size()\"\n (filterChange)=\"onFilterChange($event)\"></mona-filter-input>\n </div>\n}\n@if (listService.virtualScrollOptions().enabled) {\n @if (listService.viewItems().length !== 0) {\n <cdk-virtual-scroll-viewport\n [itemSize]=\"listService.virtualScrollOptions().height\"\n [style.height]=\"viewportHeight()\">\n <ul\n [class]=\"innerListClasses()\"\n [style]=\"listStyle()\"\n [tabIndex]=\"-1\"\n [id]=\"listId()\"\n role=\"listbox\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-multiselectable]=\"listService.selectableOptions().mode === 'multiple' || null\">\n <ng-container *cdkVirtualFor=\"let item of listService.viewItems()\">\n <ng-container\n [ngTemplateOutlet]=\"listItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n </ng-container>\n </ul>\n </cdk-virtual-scroll-viewport>\n } @else if (noDataTemplate()) {\n <ng-container [ngTemplateOutlet]=\"noDataTemplate()\"></ng-container>\n } @else {\n <mona-placeholder text=\"
|
|
1334
|
+
}, template: "@if (headerTemplate()) {\n <ng-container [ngTemplateOutlet]=\"headerTemplate()\"></ng-container>\n}\n@if (listService.filterableOptions().enabled && listService.filterInputVisible()) {\n <div class=\"p-2\">\n <mona-filter-input\n [filter]=\"listService.filterText()\"\n [debounce]=\"listService.filterableOptions().debounce\"\n [placeholder]=\"listService.filterPlaceholder()\"\n [size]=\"size()\"\n (filterChange)=\"onFilterChange($event)\"></mona-filter-input>\n </div>\n}\n@if (listService.virtualScrollOptions().enabled) {\n @if (listService.viewItems().length !== 0) {\n <cdk-virtual-scroll-viewport\n [itemSize]=\"listService.virtualScrollOptions().height\"\n [style.height]=\"viewportHeight()\">\n <ul\n [class]=\"innerListClasses()\"\n [style]=\"listStyle()\"\n [tabIndex]=\"-1\"\n [id]=\"listId()\"\n role=\"listbox\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-multiselectable]=\"listService.selectableOptions().mode === 'multiple' || null\">\n <ng-container *cdkVirtualFor=\"let item of listService.viewItems()\">\n <ng-container\n [ngTemplateOutlet]=\"listItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n </ng-container>\n </ul>\n </cdk-virtual-scroll-viewport>\n } @else if (noDataTemplate()) {\n <ng-container [ngTemplateOutlet]=\"noDataTemplate()\"></ng-container>\n } @else {\n <mona-placeholder [text]=\"messages().noData\" class=\"w-full h-full flex items-center justify-center\"></mona-placeholder>\n }\n} @else {\n @if (listService.viewItems().length !== 0) {\n <ul\n [class]=\"innerListClasses()\"\n [style]=\"listStyle()\"\n [tabIndex]=\"-1\"\n [id]=\"listId()\"\n role=\"listbox\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-multiselectable]=\"listService.selectableOptions().mode === 'multiple' || null\">\n @for (item of listService.viewItems(); track item.uid) {\n <ng-container\n [ngTemplateOutlet]=\"listItemTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\n }\n </ul>\n } @else if (noDataTemplate()) {\n <ng-container [ngTemplateOutlet]=\"noDataTemplate()\"></ng-container>\n } @else {\n <mona-placeholder [text]=\"messages().noData\" class=\"w-full h-full flex items-center justify-center\"></mona-placeholder>\n }\n}\n@if (footerTemplate()) {\n <ng-container [ngTemplateOutlet]=\"footerTemplate()\"></ng-container>\n}\n\n<ng-template #listItemTemplate let-item>\n @if (item.header) {\n <li [class]=\"groupHeaderClasses()\" [style]=\"listItemStyle()\">\n <mona-list-item [item]=\"item\" [template]=\"groupHeaderTemplate()\"></mona-list-item>\n </li>\n } @else {\n <li\n [class]=\"listItemClass()\"\n [class.px-0.5]=\"true\"\n [style]=\"listItemStyle()\"\n [id]=\"item.uid\"\n [attr.data-uid]=\"item.uid\"\n (click)=\"onListItemClick(item)\"\n monaListItem\n [item]=\"item\">\n <mona-list-item\n [item]=\"item\"\n [template]=\"itemTemplate()\"\n (checked)=\"onListItemCheck(item)\"></mona-list-item>\n </li>\n }\n</ng-template>\n" }]
|
|
1327
1335
|
}], ctorParameters: () => [], propDecorators: { filterInput: [{ type: i0.ViewChild, args: [i0.forwardRef(() => FilterInputComponent), { isSignal: true }] }], footerTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ListFooterTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], groupHeaderTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ListGroupHeaderTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], headerTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ListHeaderTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], itemTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ListItemTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], noDataTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ListNoDataTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], virtualScrollViewport: [{ type: i0.ViewChild, args: [i0.forwardRef(() => CdkVirtualScrollViewport), { isSignal: true }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], focusOnMount: [{ type: i0.Input, args: [{ isSignal: true, alias: "focusOnMount", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], itemSelect: [{ type: i0.Output, args: ["itemSelect"] }], listClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "listClass", required: false }] }], listId: [{ type: i0.Input, args: [{ isSignal: true, alias: "listId", 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 }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], textField: [{ type: i0.Input, args: [{ isSignal: true, alias: "textField", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }] } });
|
|
1328
1336
|
|
|
1329
1337
|
/*
|
|
@@ -1334,5 +1342,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
1334
1342
|
* Generated bundle index. Do not edit.
|
|
1335
1343
|
*/
|
|
1336
1344
|
|
|
1337
|
-
export { ListComponent, ListFooterTemplateDirective, ListGroupHeaderTemplateDirective, ListHeaderTemplateDirective, ListItem, ListItemTemplateDirective, ListNoDataTemplateDirective, ListService };
|
|
1345
|
+
export { LIST_DEFAULT_MESSAGES, ListComponent, ListFooterTemplateDirective, ListGroupHeaderTemplateDirective, ListHeaderTemplateDirective, ListItem, ListItemTemplateDirective, ListNoDataTemplateDirective, ListService };
|
|
1338
1346
|
//# sourceMappingURL=nanahoshi-mona-ui-internal-list.mjs.map
|
|
@@ -2,6 +2,7 @@ import { FocusMonitor } from '@angular/cdk/a11y';
|
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { Directive, signal, computed, untracked, effect, Injectable, Pipe, inject, DestroyRef, input, ChangeDetectionStrategy, Component, DOCUMENT, NgZone, ElementRef, afterRenderEffect, contentChild, TemplateRef, afterNextRender } from '@angular/core';
|
|
4
4
|
import { toObservable, toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
|
+
import { MonaI18nService, injectComponentDirection } from '@nanahoshi/mona-ui/i18n';
|
|
5
6
|
import { Subject, BehaviorSubject, ReplaySubject, switchMap, debounceTime, distinctUntilChanged, Observable, take, filter, tap, map, asapScheduler, fromEvent, takeWhile } from 'rxjs';
|
|
6
7
|
import { PreventableEvent } from '@nanahoshi/mona-ui/common';
|
|
7
8
|
import { ImmutableSet, List, from, sequenceEqual, contains, EnumerableSet, forEach } from '@mirei/ts-collections';
|
|
@@ -1198,7 +1199,7 @@ const treeDropHintBaseThemeVariants = cva(`
|
|
|
1198
1199
|
`);
|
|
1199
1200
|
const treeDropHintIconThemeVariants = cva(`
|
|
1200
1201
|
absolute flex items-center justify-center
|
|
1201
|
-
-top-3.25 -
|
|
1202
|
+
-top-3.25 -start-3.5 text-xl rtl:rotate-180
|
|
1202
1203
|
`);
|
|
1203
1204
|
const treeNodeBaseThemeVariants = cva(`
|
|
1204
1205
|
cursor-default px-2 py-1 text-foreground
|
|
@@ -1245,6 +1246,13 @@ const treeNodeExpanderThemeVariants = cva(`
|
|
|
1245
1246
|
cursor-pointer text-sm text-foreground
|
|
1246
1247
|
`);
|
|
1247
1248
|
|
|
1249
|
+
const TREE_DEFAULT_MESSAGES = {
|
|
1250
|
+
collapse: "Collapse",
|
|
1251
|
+
expand: "Expand",
|
|
1252
|
+
filter: "Filter",
|
|
1253
|
+
filterTree: "Filter tree"
|
|
1254
|
+
};
|
|
1255
|
+
|
|
1248
1256
|
class NodeEvent extends PreventableEvent {
|
|
1249
1257
|
#node;
|
|
1250
1258
|
constructor(type, node, event) {
|
|
@@ -1568,6 +1576,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
1568
1576
|
class SubTreeComponent {
|
|
1569
1577
|
constructor() {
|
|
1570
1578
|
this.#document = inject(DOCUMENT);
|
|
1579
|
+
this.#i18n = inject(MonaI18nService);
|
|
1571
1580
|
this.#zone = inject(NgZone);
|
|
1572
1581
|
this.listClass = computed(() => {
|
|
1573
1582
|
return subTreeListThemeVariants();
|
|
@@ -1577,6 +1586,7 @@ class SubTreeComponent {
|
|
|
1577
1586
|
return subTreeListItemThemeVariants();
|
|
1578
1587
|
}, /* @ts-ignore */
|
|
1579
1588
|
...(ngDevMode ? [{ debugName: "listItemClass" }] : /* istanbul ignore next */ []));
|
|
1589
|
+
this.messages = this.#i18n.componentMessages("treeView", TREE_DEFAULT_MESSAGES);
|
|
1580
1590
|
this.nodeContainerClass = computed(() => {
|
|
1581
1591
|
return treeNodeContainerThemeVariants();
|
|
1582
1592
|
}, /* @ts-ignore */
|
|
@@ -1607,12 +1617,8 @@ class SubTreeComponent {
|
|
|
1607
1617
|
...(ngDevMode ? [{ debugName: "parent" }] : /* istanbul ignore next */ []));
|
|
1608
1618
|
}
|
|
1609
1619
|
#document;
|
|
1620
|
+
#i18n;
|
|
1610
1621
|
#zone;
|
|
1611
|
-
nodeAnimationDisabled() {
|
|
1612
|
-
return (!this.treeService.animationEnabled() ||
|
|
1613
|
-
this.treeService.animationTemporarilyDisabled() ||
|
|
1614
|
-
this.treeService.filterText().length !== 0);
|
|
1615
|
-
}
|
|
1616
1622
|
onExpandStateChange(node) {
|
|
1617
1623
|
const expanded = this.treeService.isExpanded(node);
|
|
1618
1624
|
if (!expanded) {
|
|
@@ -1688,6 +1694,11 @@ class SubTreeComponent {
|
|
|
1688
1694
|
this.#zone.runOutsideAngular(() => asapScheduler.schedule(() => this.treeService.animationTemporarilyDisabled.set(false)));
|
|
1689
1695
|
});
|
|
1690
1696
|
}
|
|
1697
|
+
nodeAnimationDisabled() {
|
|
1698
|
+
return (!this.treeService.animationEnabled() ||
|
|
1699
|
+
this.treeService.animationTemporarilyDisabled() ||
|
|
1700
|
+
this.treeService.filterText().length !== 0);
|
|
1701
|
+
}
|
|
1691
1702
|
focusNode(node) {
|
|
1692
1703
|
this.treeService.navigatedNode.set(node);
|
|
1693
1704
|
const element = this.#document
|
|
@@ -1699,7 +1710,7 @@ class SubTreeComponent {
|
|
|
1699
1710
|
element.focus();
|
|
1700
1711
|
}
|
|
1701
1712
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SubTreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1702
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: SubTreeComponent, isStandalone: true, selector: "mona-sub-tree", inputs: { depth: { classPropertyName: "depth", publicName: "depth", isSignal: true, isRequired: true, transformFunction: null }, nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: true, transformFunction: null }, parent: { classPropertyName: "parent", publicName: "parent", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<ul\n [class]=\"listClass()\"\n [attr.role]=\"parent() ? 'group' : null\"\n cdkDropList\n [cdkDropListSortingDisabled]=\"true\"\n (cdkDropListDropped)=\"onNodeDrop($event)\">\n @for (node of visibleNodes(); track node.uid) {\n <li\n [attr.id]=\"node.uid | treeNodeElementId\"\n [attr.data-uid]=\"node.uid\"\n [class]=\"listItemClass()\"\n [tabindex]=\"-1\"\n role=\"treeitem\"\n [attr.aria-level]=\"depth() + 1\"\n [attr.aria-setsize]=\"visibleNodes().length\"\n [attr.aria-posinset]=\"$index + 1\"\n [attr.aria-expanded]=\"nodeComponent.expandable() ? nodeComponent.expanded() : null\"\n [attr.aria-selected]=\"treeService.selectableOptions().enabled ? nodeComponent.selected() : null\"\n [attr.aria-disabled]=\"nodeComponent.disabled() ? true : null\"\n [attr.aria-checked]=\"\n nodeComponent.checkable() ? (nodeComponent.indeterminate() ? 'mixed' : nodeComponent.checked()) : null\n \"\n (focus)=\"treeService.navigatedNode.set(node)\"\n cdkDrag\n [cdkDragData]=\"node\"\n [cdkDragDisabled]=\"!treeService.draggableOptions().enabled\"\n (cdkDragStarted)=\"onNodeDragStart($event)\"\n (cdkDragEnded)=\"onNodeDragEnd($event)\"\n (cdkDragMoved)=\"onNodeDragMove($event, node)\">\n <div [class]=\"nodeContainerClass()\">\n @if (treeService.expandableOptions().enabled && nodeComponent.expandable()) {\n <button\n type=\"button\"\n tabindex=\"-1\"\n [class]=\"nodeExpanderClass()\"\n [class.mona-disabled]=\"nodeComponent.disabled()\"\n [attr.aria-label]=\"\n (nodeComponent.expanded() ?
|
|
1713
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.6", type: SubTreeComponent, isStandalone: true, selector: "mona-sub-tree", inputs: { depth: { classPropertyName: "depth", publicName: "depth", isSignal: true, isRequired: true, transformFunction: null }, nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: true, transformFunction: null }, parent: { classPropertyName: "parent", publicName: "parent", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<ul\n [class]=\"listClass()\"\n [attr.role]=\"parent() ? 'group' : null\"\n cdkDropList\n [cdkDropListSortingDisabled]=\"true\"\n (cdkDropListDropped)=\"onNodeDrop($event)\">\n @for (node of visibleNodes(); track node.uid) {\n <li\n [attr.id]=\"node.uid | treeNodeElementId\"\n [attr.data-uid]=\"node.uid\"\n [class]=\"listItemClass()\"\n [tabindex]=\"-1\"\n role=\"treeitem\"\n [attr.aria-level]=\"depth() + 1\"\n [attr.aria-setsize]=\"visibleNodes().length\"\n [attr.aria-posinset]=\"$index + 1\"\n [attr.aria-expanded]=\"nodeComponent.expandable() ? nodeComponent.expanded() : null\"\n [attr.aria-selected]=\"treeService.selectableOptions().enabled ? nodeComponent.selected() : null\"\n [attr.aria-disabled]=\"nodeComponent.disabled() ? true : null\"\n [attr.aria-checked]=\"\n nodeComponent.checkable() ? (nodeComponent.indeterminate() ? 'mixed' : nodeComponent.checked()) : null\n \"\n (focus)=\"treeService.navigatedNode.set(node)\"\n cdkDrag\n [cdkDragData]=\"node\"\n [cdkDragDisabled]=\"!treeService.draggableOptions().enabled\"\n (cdkDragStarted)=\"onNodeDragStart($event)\"\n (cdkDragEnded)=\"onNodeDragEnd($event)\"\n (cdkDragMoved)=\"onNodeDragMove($event, node)\">\n <div [class]=\"nodeContainerClass()\">\n @if (treeService.expandableOptions().enabled && nodeComponent.expandable()) {\n <button\n type=\"button\"\n tabindex=\"-1\"\n [class]=\"nodeExpanderClass()\"\n [class.mona-disabled]=\"nodeComponent.disabled()\"\n [attr.aria-label]=\"\n (nodeComponent.expanded() ? messages().collapse : messages().expand) + ' ' + nodeComponent.nodeText()\n \"\n (click)=\"onExpandStateChange(node)\">\n @if (node.loading()) {\n <i class=\"ri-loader-2-line\"></i>\n } @else if (nodeComponent.expanded()) {\n <i class=\"ri-arrow-down-s-fill\"></i>\n } @else {\n <i class=\"ri-arrow-right-s-fill rtl:rotate-180\"></i>\n }\n </button>\n }\n @if (nodeComponent.checkable()) {\n <mona-check-box\n aria-hidden=\"true\"\n [tabIndex]=\"-1\"\n [disabled]=\"nodeComponent.disabled()\"\n [indeterminate]=\"nodeComponent.indeterminate()\"\n [ngModel]=\"nodeComponent.checked()\"\n (click)=\"nodeComponent.checkboxClick$.next($event)\"\n (ngModelChange)=\"nodeComponent.checkboxCheck$.next($event)\"></mona-check-box>\n }\n <mona-tree-node [node]=\"node\" [depth]=\"depth()\" #nodeComponent></mona-tree-node>\n </div>\n @if (node.children().length > 0 && nodeComponent.expanded()) {\n <div\n class=\"grid overflow-hidden\"\n [animate.enter]=\"nodeExpandEnterClass()\"\n [animate.leave]=\"nodeExpandLeaveClass()\">\n <div class=\"min-h-0 overflow-hidden\">\n <mona-sub-tree [nodes]=\"node.children()\" [depth]=\"depth() + 1\" [parent]=\"node\"></mona-sub-tree>\n </div>\n </div>\n }\n @if (!nodeComponent.disabled()) {\n <div *cdkDragPreview [class]=\"nodeDraggingClass()\">\n <span>\n @switch (treeService.dropPositionSignal()?.position) {\n @case (\"before\") {\n @if (treeService.dropAllowed()) {\n <i class=\"ri-arrow-up-line\"></i>\n } @else {\n <i class=\"ri-prohibited-2-line\"></i>\n }\n }\n @case (\"after\") {\n @if (treeService.dropAllowed()) {\n <i class=\"ri-arrow-down-line\"></i>\n } @else {\n <i class=\"ri-prohibited-2-line\"></i>\n }\n }\n @case (\"inside\") {\n <i class=\"ri-add-line\"></i>\n }\n @default {\n <i class=\"ri-prohibited-2-line\"></i>\n }\n }\n </span>\n <span>{{ nodeComponent.nodeText() }}</span>\n </div>\n } @else {\n <div *cdkDragPreview [class]=\"nodeDraggingClass()\"></div>\n }\n </li>\n }\n</ul>\n", styles: [".mona-tree-node-expand-enter{animation:mona-tree-node-expand-in .15s ease-out}.mona-tree-node-expand-leave{animation:mona-tree-node-expand-out .15s ease-out}@keyframes mona-tree-node-expand-in{0%{grid-template-rows:0fr;opacity:0}to{grid-template-rows:1fr;opacity:1}}@keyframes mona-tree-node-expand-out{0%{grid-template-rows:1fr;opacity:1}to{grid-template-rows:0fr;opacity:0}}@media(prefers-reduced-motion:reduce){.mona-tree-node-expand-enter,.mona-tree-node-expand-leave{animation-duration:1ms}}\n"], dependencies: [{ kind: "component", type: SubTreeComponent, selector: "mona-sub-tree", inputs: ["depth", "nodes", "parent"] }, { kind: "component", type: TreeNodeComponent, selector: "mona-tree-node", inputs: ["depth", "node"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { kind: "component", type: CheckBoxComponent, selector: "mona-check-box", inputs: ["checked", "disabled", "indeterminate", "invalid", "label", "labelPosition", "labelSize", "required", "rounded", "tabIndex", "touched", "class"], outputs: ["checkedChange", "inputBlur", "inputChange", "inputFocus", "touch"] }, { kind: "pipe", type: TreeNodeElementIdPipe, name: "treeNodeElementId" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1703
1714
|
}
|
|
1704
1715
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: SubTreeComponent, decorators: [{
|
|
1705
1716
|
type: Component,
|
|
@@ -1711,17 +1722,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
1711
1722
|
CdkDragPreview,
|
|
1712
1723
|
CheckBoxComponent,
|
|
1713
1724
|
TreeNodeElementIdPipe
|
|
1714
|
-
], template: "<ul\n [class]=\"listClass()\"\n [attr.role]=\"parent() ? 'group' : null\"\n cdkDropList\n [cdkDropListSortingDisabled]=\"true\"\n (cdkDropListDropped)=\"onNodeDrop($event)\">\n @for (node of visibleNodes(); track node.uid) {\n <li\n [attr.id]=\"node.uid | treeNodeElementId\"\n [attr.data-uid]=\"node.uid\"\n [class]=\"listItemClass()\"\n [tabindex]=\"-1\"\n role=\"treeitem\"\n [attr.aria-level]=\"depth() + 1\"\n [attr.aria-setsize]=\"visibleNodes().length\"\n [attr.aria-posinset]=\"$index + 1\"\n [attr.aria-expanded]=\"nodeComponent.expandable() ? nodeComponent.expanded() : null\"\n [attr.aria-selected]=\"treeService.selectableOptions().enabled ? nodeComponent.selected() : null\"\n [attr.aria-disabled]=\"nodeComponent.disabled() ? true : null\"\n [attr.aria-checked]=\"\n nodeComponent.checkable() ? (nodeComponent.indeterminate() ? 'mixed' : nodeComponent.checked()) : null\n \"\n (focus)=\"treeService.navigatedNode.set(node)\"\n cdkDrag\n [cdkDragData]=\"node\"\n [cdkDragDisabled]=\"!treeService.draggableOptions().enabled\"\n (cdkDragStarted)=\"onNodeDragStart($event)\"\n (cdkDragEnded)=\"onNodeDragEnd($event)\"\n (cdkDragMoved)=\"onNodeDragMove($event, node)\">\n <div [class]=\"nodeContainerClass()\">\n @if (treeService.expandableOptions().enabled && nodeComponent.expandable()) {\n <button\n type=\"button\"\n tabindex=\"-1\"\n [class]=\"nodeExpanderClass()\"\n [class.mona-disabled]=\"nodeComponent.disabled()\"\n [attr.aria-label]=\"\n (nodeComponent.expanded() ?
|
|
1725
|
+
], template: "<ul\n [class]=\"listClass()\"\n [attr.role]=\"parent() ? 'group' : null\"\n cdkDropList\n [cdkDropListSortingDisabled]=\"true\"\n (cdkDropListDropped)=\"onNodeDrop($event)\">\n @for (node of visibleNodes(); track node.uid) {\n <li\n [attr.id]=\"node.uid | treeNodeElementId\"\n [attr.data-uid]=\"node.uid\"\n [class]=\"listItemClass()\"\n [tabindex]=\"-1\"\n role=\"treeitem\"\n [attr.aria-level]=\"depth() + 1\"\n [attr.aria-setsize]=\"visibleNodes().length\"\n [attr.aria-posinset]=\"$index + 1\"\n [attr.aria-expanded]=\"nodeComponent.expandable() ? nodeComponent.expanded() : null\"\n [attr.aria-selected]=\"treeService.selectableOptions().enabled ? nodeComponent.selected() : null\"\n [attr.aria-disabled]=\"nodeComponent.disabled() ? true : null\"\n [attr.aria-checked]=\"\n nodeComponent.checkable() ? (nodeComponent.indeterminate() ? 'mixed' : nodeComponent.checked()) : null\n \"\n (focus)=\"treeService.navigatedNode.set(node)\"\n cdkDrag\n [cdkDragData]=\"node\"\n [cdkDragDisabled]=\"!treeService.draggableOptions().enabled\"\n (cdkDragStarted)=\"onNodeDragStart($event)\"\n (cdkDragEnded)=\"onNodeDragEnd($event)\"\n (cdkDragMoved)=\"onNodeDragMove($event, node)\">\n <div [class]=\"nodeContainerClass()\">\n @if (treeService.expandableOptions().enabled && nodeComponent.expandable()) {\n <button\n type=\"button\"\n tabindex=\"-1\"\n [class]=\"nodeExpanderClass()\"\n [class.mona-disabled]=\"nodeComponent.disabled()\"\n [attr.aria-label]=\"\n (nodeComponent.expanded() ? messages().collapse : messages().expand) + ' ' + nodeComponent.nodeText()\n \"\n (click)=\"onExpandStateChange(node)\">\n @if (node.loading()) {\n <i class=\"ri-loader-2-line\"></i>\n } @else if (nodeComponent.expanded()) {\n <i class=\"ri-arrow-down-s-fill\"></i>\n } @else {\n <i class=\"ri-arrow-right-s-fill rtl:rotate-180\"></i>\n }\n </button>\n }\n @if (nodeComponent.checkable()) {\n <mona-check-box\n aria-hidden=\"true\"\n [tabIndex]=\"-1\"\n [disabled]=\"nodeComponent.disabled()\"\n [indeterminate]=\"nodeComponent.indeterminate()\"\n [ngModel]=\"nodeComponent.checked()\"\n (click)=\"nodeComponent.checkboxClick$.next($event)\"\n (ngModelChange)=\"nodeComponent.checkboxCheck$.next($event)\"></mona-check-box>\n }\n <mona-tree-node [node]=\"node\" [depth]=\"depth()\" #nodeComponent></mona-tree-node>\n </div>\n @if (node.children().length > 0 && nodeComponent.expanded()) {\n <div\n class=\"grid overflow-hidden\"\n [animate.enter]=\"nodeExpandEnterClass()\"\n [animate.leave]=\"nodeExpandLeaveClass()\">\n <div class=\"min-h-0 overflow-hidden\">\n <mona-sub-tree [nodes]=\"node.children()\" [depth]=\"depth() + 1\" [parent]=\"node\"></mona-sub-tree>\n </div>\n </div>\n }\n @if (!nodeComponent.disabled()) {\n <div *cdkDragPreview [class]=\"nodeDraggingClass()\">\n <span>\n @switch (treeService.dropPositionSignal()?.position) {\n @case (\"before\") {\n @if (treeService.dropAllowed()) {\n <i class=\"ri-arrow-up-line\"></i>\n } @else {\n <i class=\"ri-prohibited-2-line\"></i>\n }\n }\n @case (\"after\") {\n @if (treeService.dropAllowed()) {\n <i class=\"ri-arrow-down-line\"></i>\n } @else {\n <i class=\"ri-prohibited-2-line\"></i>\n }\n }\n @case (\"inside\") {\n <i class=\"ri-add-line\"></i>\n }\n @default {\n <i class=\"ri-prohibited-2-line\"></i>\n }\n }\n </span>\n <span>{{ nodeComponent.nodeText() }}</span>\n </div>\n } @else {\n <div *cdkDragPreview [class]=\"nodeDraggingClass()\"></div>\n }\n </li>\n }\n</ul>\n", styles: [".mona-tree-node-expand-enter{animation:mona-tree-node-expand-in .15s ease-out}.mona-tree-node-expand-leave{animation:mona-tree-node-expand-out .15s ease-out}@keyframes mona-tree-node-expand-in{0%{grid-template-rows:0fr;opacity:0}to{grid-template-rows:1fr;opacity:1}}@keyframes mona-tree-node-expand-out{0%{grid-template-rows:1fr;opacity:1}to{grid-template-rows:0fr;opacity:0}}@media(prefers-reduced-motion:reduce){.mona-tree-node-expand-enter,.mona-tree-node-expand-leave{animation-duration:1ms}}\n"] }]
|
|
1715
1726
|
}], propDecorators: { depth: [{ type: i0.Input, args: [{ isSignal: true, alias: "depth", required: true }] }], nodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodes", required: true }] }], parent: [{ type: i0.Input, args: [{ isSignal: true, alias: "parent", required: true }] }] } });
|
|
1716
1727
|
|
|
1717
1728
|
class TreeDropHintComponent {
|
|
1729
|
+
#direction;
|
|
1718
1730
|
#dropPositionChange;
|
|
1719
1731
|
#hostElementRef;
|
|
1732
|
+
#i18n;
|
|
1720
1733
|
constructor() {
|
|
1734
|
+
this.#direction = injectComponentDirection();
|
|
1721
1735
|
this.#dropPositionChange = toSignal(inject(TreeService).dropPositionChange$, {
|
|
1722
1736
|
initialValue: null
|
|
1723
1737
|
});
|
|
1724
1738
|
this.#hostElementRef = inject(ElementRef);
|
|
1739
|
+
this.#i18n = inject(MonaI18nService);
|
|
1740
|
+
this.isRtl = computed(() => this.#direction() === "rtl", /* @ts-ignore */
|
|
1741
|
+
...(ngDevMode ? [{ debugName: "isRtl" }] : /* istanbul ignore next */ []));
|
|
1725
1742
|
this.baseClass = computed(() => {
|
|
1726
1743
|
return treeDropHintBaseThemeVariants();
|
|
1727
1744
|
}, /* @ts-ignore */
|
|
@@ -1741,19 +1758,20 @@ class TreeDropHintComponent {
|
|
|
1741
1758
|
}
|
|
1742
1759
|
const rect = nodeElement.getBoundingClientRect();
|
|
1743
1760
|
const position = dropPositionData.position;
|
|
1744
|
-
const
|
|
1761
|
+
const isRtl = this.isRtl();
|
|
1762
|
+
const left = isRtl ? `${rect.right - 40}px` : `${rect.left}px`;
|
|
1745
1763
|
if (position === "before") {
|
|
1746
1764
|
return {
|
|
1747
1765
|
display: "flex",
|
|
1748
|
-
|
|
1749
|
-
|
|
1766
|
+
left,
|
|
1767
|
+
top: `${rect.top}px`
|
|
1750
1768
|
};
|
|
1751
1769
|
}
|
|
1752
1770
|
else if (position === "after") {
|
|
1753
1771
|
return {
|
|
1754
1772
|
display: "flex",
|
|
1755
|
-
|
|
1756
|
-
|
|
1773
|
+
left,
|
|
1774
|
+
top: `${rect.bottom}px`
|
|
1757
1775
|
};
|
|
1758
1776
|
}
|
|
1759
1777
|
else {
|
|
@@ -1775,27 +1793,33 @@ class TreeDropHintComponent {
|
|
|
1775
1793
|
});
|
|
1776
1794
|
}
|
|
1777
1795
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: TreeDropHintComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1778
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.6", type: TreeDropHintComponent, isStandalone: true, selector: "mona-tree-drop-hint", host: { properties: { "class": "baseClass()" } }, ngImport: i0, template: "<i [class]=\"iconClass()\"></i>\n"
|
|
1796
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.6", type: TreeDropHintComponent, isStandalone: true, selector: "mona-tree-drop-hint", host: { properties: { "class": "baseClass()" } }, ngImport: i0, template: "<i [class]=\"iconClass()\"></i>\n" }); }
|
|
1779
1797
|
}
|
|
1780
1798
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: TreeDropHintComponent, decorators: [{
|
|
1781
1799
|
type: Component,
|
|
1782
|
-
args: [{ selector: "mona-tree-drop-hint",
|
|
1800
|
+
args: [{ selector: "mona-tree-drop-hint", host: {
|
|
1783
1801
|
"[class]": "baseClass()"
|
|
1784
1802
|
}, template: "<i [class]=\"iconClass()\"></i>\n" }]
|
|
1785
1803
|
}], ctorParameters: () => [] });
|
|
1786
1804
|
|
|
1787
1805
|
class TreeComponent {
|
|
1788
1806
|
#destroyRef;
|
|
1807
|
+
#direction;
|
|
1789
1808
|
#focusMonitor;
|
|
1790
1809
|
#hostElementRef;
|
|
1810
|
+
#i18n;
|
|
1791
1811
|
#zone;
|
|
1792
1812
|
#lastNavigatedNode;
|
|
1793
1813
|
constructor() {
|
|
1794
1814
|
this.#destroyRef = inject(DestroyRef);
|
|
1815
|
+
this.#direction = injectComponentDirection();
|
|
1795
1816
|
this.#focusMonitor = inject(FocusMonitor);
|
|
1796
1817
|
this.#hostElementRef = inject(ElementRef);
|
|
1818
|
+
this.#i18n = inject(MonaI18nService);
|
|
1797
1819
|
this.#zone = inject(NgZone);
|
|
1798
1820
|
this.#lastNavigatedNode = null;
|
|
1821
|
+
this.isRtl = computed(() => this.#direction() === "rtl", /* @ts-ignore */
|
|
1822
|
+
...(ngDevMode ? [{ debugName: "isRtl" }] : /* istanbul ignore next */ []));
|
|
1799
1823
|
this.activeDescendantId = computed(() => {
|
|
1800
1824
|
const node = this.treeService.navigatedNode();
|
|
1801
1825
|
return node === null ? null : this.treeService.getNodeElementId(node.uid);
|
|
@@ -1807,10 +1831,10 @@ class TreeComponent {
|
|
|
1807
1831
|
...(ngDevMode ? [{ debugName: "baseClass" }] : /* istanbul ignore next */ []));
|
|
1808
1832
|
this.ariaLabel = input("", /* @ts-ignore */
|
|
1809
1833
|
...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
|
|
1810
|
-
this.treeService = inject(TreeService);
|
|
1811
|
-
this.nodeTemplate = contentChild(TreeNodeTemplateDirective, { ...(ngDevMode ? { debugName: "nodeTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
|
|
1812
1834
|
this.data = input(/* @ts-ignore */
|
|
1813
1835
|
...(ngDevMode ? [undefined, { debugName: "data" }] : /* istanbul ignore next */ []));
|
|
1836
|
+
this.nodeTemplate = contentChild(TreeNodeTemplateDirective, { ...(ngDevMode ? { debugName: "nodeTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
|
|
1837
|
+
this.treeService = inject(TreeService);
|
|
1814
1838
|
effect(() => {
|
|
1815
1839
|
const node = this.treeService.navigatedNode();
|
|
1816
1840
|
untracked(() => {
|
|
@@ -1929,6 +1953,9 @@ class TreeComponent {
|
|
|
1929
1953
|
.pipe(takeUntilDestroyed(this.#destroyRef))
|
|
1930
1954
|
.subscribe(event => {
|
|
1931
1955
|
const navigatedNode = this.treeService.navigatedNode();
|
|
1956
|
+
const isRtl = this.isRtl();
|
|
1957
|
+
const collapseKey = isRtl ? "ArrowRight" : "ArrowLeft";
|
|
1958
|
+
const expandKey = isRtl ? "ArrowLeft" : "ArrowRight";
|
|
1932
1959
|
if (event.key === "ArrowUp") {
|
|
1933
1960
|
event.preventDefault();
|
|
1934
1961
|
this.treeService.navigate("previous");
|
|
@@ -1937,7 +1964,7 @@ class TreeComponent {
|
|
|
1937
1964
|
event.preventDefault();
|
|
1938
1965
|
this.treeService.navigate("next");
|
|
1939
1966
|
}
|
|
1940
|
-
else if (event.key ===
|
|
1967
|
+
else if (event.key === collapseKey) {
|
|
1941
1968
|
event.preventDefault();
|
|
1942
1969
|
if (!navigatedNode || !navigatedNode.nodeItem.hasChildren) {
|
|
1943
1970
|
return;
|
|
@@ -1949,7 +1976,7 @@ class TreeComponent {
|
|
|
1949
1976
|
}
|
|
1950
1977
|
this.treeService.navigatedNode.set(navigatedNode);
|
|
1951
1978
|
}
|
|
1952
|
-
else if (event.key ===
|
|
1979
|
+
else if (event.key === expandKey) {
|
|
1953
1980
|
event.preventDefault();
|
|
1954
1981
|
if (!navigatedNode || !navigatedNode.nodeItem.hasChildren) {
|
|
1955
1982
|
return;
|
|
@@ -2040,7 +2067,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
2040
2067
|
"[attr.aria-multiselectable]": "treeService.selectableOptions().mode === 'multiple' || null",
|
|
2041
2068
|
"[attr.aria-activedescendant]": "activeDescendantId()"
|
|
2042
2069
|
}, template: "<mona-sub-tree [nodes]=\"treeService.viewNodeSet()\" [parent]=\"null\" [depth]=\"0\"></mona-sub-tree>\n@if (treeService.dragging() && treeService.dropAllowed()) {\n <mona-tree-drop-hint></mona-tree-drop-hint>\n}\n" }]
|
|
2043
|
-
}], ctorParameters: () => [], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }],
|
|
2070
|
+
}], ctorParameters: () => [], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], nodeTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => TreeNodeTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }] } });
|
|
2044
2071
|
|
|
2045
2072
|
/**
|
|
2046
2073
|
* Moves a node within a generic flat tree structure that uses parentId references.
|
|
@@ -2168,5 +2195,5 @@ function moveTreeNode(treeData, event, idKey, childrenKey) {
|
|
|
2168
2195
|
* Generated bundle index. Do not edit.
|
|
2169
2196
|
*/
|
|
2170
2197
|
|
|
2171
|
-
export { InternalNodeDragEvent, NodeCheckEvent, NodeClickEvent, NodeDragEndEvent, NodeDragEvent, NodeDragStartEvent, NodeDropEvent, NodeDropEventSansTree, NodeEvent, NodeSelectEvent, TreeComponent, TreeNode, TreeNodeTemplateDirective, TreeService, moveFlatTreeNode, moveTreeNode };
|
|
2198
|
+
export { InternalNodeDragEvent, NodeCheckEvent, NodeClickEvent, NodeDragEndEvent, NodeDragEvent, NodeDragStartEvent, NodeDropEvent, NodeDropEventSansTree, NodeEvent, NodeSelectEvent, TREE_DEFAULT_MESSAGES, TreeComponent, TreeNode, TreeNodeTemplateDirective, TreeService, moveFlatTreeNode, moveTreeNode };
|
|
2172
2199
|
//# sourceMappingURL=nanahoshi-mona-ui-internal-tree.mjs.map
|