@acorex/components 21.0.0-next.40 → 21.0.0-next.42
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/accordion/index.d.ts +1 -0
- package/button-group/index.d.ts +4 -6
- package/chips/index.d.ts +8 -3
- package/dialog/index.d.ts +1 -1
- package/fesm2022/acorex-components-accordion.mjs +21 -16
- package/fesm2022/acorex-components-accordion.mjs.map +1 -1
- package/fesm2022/acorex-components-action-sheet.mjs +12 -12
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-alert.mjs +13 -13
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-aspect-ratio.mjs +3 -3
- package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -1
- package/fesm2022/acorex-components-audio-wave.mjs +10 -11
- package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
- package/fesm2022/acorex-components-autocomplete.mjs +7 -7
- package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
- package/fesm2022/acorex-components-avatar.mjs +12 -12
- package/fesm2022/acorex-components-avatar.mjs.map +1 -1
- package/fesm2022/acorex-components-badge.mjs +9 -9
- package/fesm2022/acorex-components-badge.mjs.map +1 -1
- package/fesm2022/acorex-components-bottom-navigation.mjs +11 -11
- package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-breadcrumbs.mjs +11 -11
- package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/acorex-components-button-group.mjs +19 -23
- package/fesm2022/acorex-components-button-group.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +18 -18
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +17 -17
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-check-box.mjs +10 -10
- package/fesm2022/acorex-components-check-box.mjs.map +1 -1
- package/fesm2022/acorex-components-chips.mjs +14 -12
- package/fesm2022/acorex-components-chips.mjs.map +1 -1
- package/fesm2022/acorex-components-circular-progress.mjs +10 -12
- package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-code-editor.mjs +10 -10
- package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-collapse.mjs +13 -13
- package/fesm2022/acorex-components-collapse.mjs.map +1 -1
- package/fesm2022/acorex-components-color-box.mjs +9 -9
- package/fesm2022/acorex-components-color-box.mjs.map +1 -1
- package/fesm2022/acorex-components-color-palette.mjs +30 -30
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
- package/fesm2022/acorex-components-command.mjs +9 -9
- package/fesm2022/acorex-components-command.mjs.map +1 -1
- package/fesm2022/acorex-components-comment.mjs +32 -32
- package/fesm2022/acorex-components-comment.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation.mjs +51 -51
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation2.mjs +184 -184
- package/fesm2022/acorex-components-conversation2.mjs.map +1 -1
- package/fesm2022/acorex-components-cron-job.mjs +46 -46
- package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
- package/fesm2022/acorex-components-data-list.mjs +3 -3
- package/fesm2022/acorex-components-data-list.mjs.map +1 -1
- package/fesm2022/acorex-components-data-pager.mjs +33 -33
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +43 -43
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +9 -9
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +9 -9
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +9 -9
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +36 -43
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +14 -15
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer-legacy.mjs +13 -13
- package/fesm2022/acorex-components-drawer-legacy.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs +16 -15
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown-button.mjs +9 -9
- package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +16 -18
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-editor.mjs +11 -11
- package/fesm2022/acorex-components-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-file-explorer.mjs +25 -25
- package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
- package/fesm2022/acorex-components-flow-chart.mjs +16 -16
- package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +24 -32
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-grid-layout-builder.mjs +13 -12
- package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-image-editor.mjs +44 -44
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-image.mjs +9 -9
- package/fesm2022/acorex-components-image.mjs.map +1 -1
- package/fesm2022/acorex-components-json-viewer.mjs +8 -8
- package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-kanban.mjs +6 -8
- package/fesm2022/acorex-components-kanban.mjs.map +1 -1
- package/fesm2022/acorex-components-kbd.mjs +11 -29
- package/fesm2022/acorex-components-kbd.mjs.map +1 -1
- package/fesm2022/acorex-components-label.mjs +9 -9
- package/fesm2022/acorex-components-label.mjs.map +1 -1
- package/fesm2022/acorex-components-list.mjs +9 -9
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +12 -12
- package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-loading.mjs +23 -23
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-map.mjs +14 -14
- package/fesm2022/acorex-components-map.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +41 -41
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +21 -21
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/{acorex-components-modal-acorex-components-modal-CjHPRiZD.mjs → acorex-components-modal-acorex-components-modal-iYSPzoLn.mjs} +22 -22
- package/fesm2022/acorex-components-modal-acorex-components-modal-iYSPzoLn.mjs.map +1 -0
- package/fesm2022/acorex-components-modal-modal-content.component-sZWKhYM-.mjs +212 -0
- package/fesm2022/acorex-components-modal-modal-content.component-sZWKhYM-.mjs.map +1 -0
- package/fesm2022/acorex-components-modal.mjs +1 -1
- package/fesm2022/acorex-components-navbar.mjs +9 -9
- package/fesm2022/acorex-components-navbar.mjs.map +1 -1
- package/fesm2022/acorex-components-notification.mjs +23 -16
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box-legacy.mjs +9 -9
- package/fesm2022/acorex-components-number-box-legacy.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs +15 -14
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/fesm2022/acorex-components-otp.mjs +9 -9
- package/fesm2022/acorex-components-otp.mjs.map +1 -1
- package/fesm2022/acorex-components-page.mjs +10 -10
- package/fesm2022/acorex-components-page.mjs.map +1 -1
- package/fesm2022/acorex-components-paint.mjs +39 -34
- package/fesm2022/acorex-components-paint.mjs.map +1 -1
- package/fesm2022/acorex-components-password-box.mjs +12 -12
- package/fesm2022/acorex-components-password-box.mjs.map +1 -1
- package/fesm2022/acorex-components-pdf-reader.mjs +8 -8
- package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
- package/fesm2022/acorex-components-phone-box.mjs +9 -9
- package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
- package/fesm2022/acorex-components-picker.mjs +15 -15
- package/fesm2022/acorex-components-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +11 -11
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +13 -13
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-progress-bar.mjs +9 -11
- package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
- package/fesm2022/acorex-components-qrcode.mjs +7 -7
- package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
- package/fesm2022/acorex-components-query-builder.mjs +8 -8
- package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-radio.mjs +7 -7
- package/fesm2022/acorex-components-radio.mjs.map +1 -1
- package/fesm2022/acorex-components-rail-navigation.mjs +36 -38
- package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +10 -10
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-rate-picker.mjs +35 -20
- package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-rest-api-generator.mjs +22 -22
- package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
- package/fesm2022/acorex-components-result.mjs +8 -8
- package/fesm2022/acorex-components-result.mjs.map +1 -1
- package/fesm2022/acorex-components-routing-progress.mjs +8 -8
- package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-rrule.mjs +9 -9
- package/fesm2022/acorex-components-rrule.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler-picker.mjs +56 -56
- package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +43 -43
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-scss.mjs +4 -4
- package/fesm2022/acorex-components-scss.mjs.map +1 -1
- package/fesm2022/acorex-components-search-box.mjs +10 -16
- package/fesm2022/acorex-components-search-box.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +9 -11
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list-2.mjs +11 -11
- package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +9 -9
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +14 -14
- package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-skeleton.mjs +8 -8
- package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
- package/fesm2022/acorex-components-slider.mjs +10 -10
- package/fesm2022/acorex-components-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-sliding-item.mjs +14 -14
- package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
- package/fesm2022/acorex-components-step-wizard.mjs +14 -14
- package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
- package/fesm2022/acorex-components-switch.mjs +14 -14
- package/fesm2022/acorex-components-switch.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +15 -15
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/fesm2022/acorex-components-tag-box.mjs +9 -9
- package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
- package/fesm2022/acorex-components-tag.mjs +9 -9
- package/fesm2022/acorex-components-tag.mjs.map +1 -1
- package/fesm2022/acorex-components-text-area.mjs +9 -9
- package/fesm2022/acorex-components-text-area.mjs.map +1 -1
- package/fesm2022/acorex-components-text-box.mjs +12 -12
- package/fesm2022/acorex-components-text-box.mjs.map +1 -1
- package/fesm2022/acorex-components-time-duration.mjs +7 -7
- package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
- package/fesm2022/acorex-components-time-line.mjs +12 -12
- package/fesm2022/acorex-components-time-line.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +14 -14
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/fesm2022/acorex-components-toolbar.mjs +8 -8
- package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +11 -11
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/fesm2022/acorex-components-tree-view-legacy.mjs +10 -10
- package/fesm2022/acorex-components-tree-view-legacy.mjs.map +1 -1
- package/fesm2022/acorex-components-tree-view.mjs +872 -464
- package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
- package/fesm2022/acorex-components-uploader.mjs +16 -16
- package/fesm2022/acorex-components-uploader.mjs.map +1 -1
- package/fesm2022/acorex-components-video-player.mjs +7 -7
- package/fesm2022/acorex-components-video-player.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +44 -44
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/fesm2022/acorex-components.mjs.map +1 -1
- package/grid-layout-builder/index.d.ts +2 -1
- package/kbd/index.d.ts +7 -13
- package/loading/index.d.ts +1 -1
- package/notification/index.d.ts +2 -0
- package/number-box/index.d.ts +1 -1
- package/package.json +21 -21
- package/paint/index.d.ts +6 -1
- package/rate-picker/index.d.ts +15 -5
- package/tree-view/index.d.ts +292 -68
- package/wysiwyg/index.d.ts +1 -0
- package/fesm2022/acorex-components-modal-acorex-components-modal-CjHPRiZD.mjs.map +0 -1
- package/fesm2022/acorex-components-modal-modal-content.component-j-bS0WGj.mjs +0 -214
- package/fesm2022/acorex-components-modal-modal-content.component-j-bS0WGj.mjs.map +0 -1
package/tree-view/index.d.ts
CHANGED
|
@@ -64,19 +64,33 @@ interface AXTreeViewBeforeDropEvent extends AXEvent {
|
|
|
64
64
|
currentIndex: number;
|
|
65
65
|
canceled: boolean;
|
|
66
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Tree view node interface.
|
|
69
|
+
*
|
|
70
|
+
* By default, nodes should have the following structure:
|
|
71
|
+
* ```typescript
|
|
72
|
+
* {
|
|
73
|
+
* id: string; // Unique identifier for the node
|
|
74
|
+
* title: string; // Display text for the node
|
|
75
|
+
* tooltip?: string; // Optional tooltip text
|
|
76
|
+
* icon?: string; // Optional icon class name
|
|
77
|
+
* expanded?: boolean; // Whether the node is expanded
|
|
78
|
+
* selected?: boolean; // Whether the node is selected
|
|
79
|
+
* indeterminate?: boolean; // Whether the checkbox is in indeterminate state
|
|
80
|
+
* disabled?: boolean; // Whether the node is disabled
|
|
81
|
+
* hidden?: boolean; // Whether the node is hidden
|
|
82
|
+
* children?: AXTreeViewNode[]; // Child nodes
|
|
83
|
+
* childrenCount?: number; // Count of children (for lazy loading)
|
|
84
|
+
* data?: unknown; // Optional custom data
|
|
85
|
+
* }
|
|
86
|
+
* ```
|
|
87
|
+
*
|
|
88
|
+
* However, you can use custom field names by providing field name inputs
|
|
89
|
+
* (idField, titleField, etc.) to the component. The component will then
|
|
90
|
+
* use those field names to access node properties.
|
|
91
|
+
*/
|
|
67
92
|
interface AXTreeViewNode {
|
|
68
|
-
|
|
69
|
-
label: string;
|
|
70
|
-
icon?: string;
|
|
71
|
-
expanded?: boolean;
|
|
72
|
-
selected?: boolean;
|
|
73
|
-
indeterminate?: boolean;
|
|
74
|
-
disabled?: boolean;
|
|
75
|
-
visible?: boolean;
|
|
76
|
-
children?: AXTreeViewNode[];
|
|
77
|
-
childrenCount?: number;
|
|
78
|
-
loading?: boolean;
|
|
79
|
-
data?: unknown;
|
|
93
|
+
[key: string]: unknown;
|
|
80
94
|
}
|
|
81
95
|
interface AXTreeViewNodeToggleEvent extends AXHtmlEvent {
|
|
82
96
|
node: AXTreeViewNode;
|
|
@@ -84,6 +98,9 @@ interface AXTreeViewNodeToggleEvent extends AXHtmlEvent {
|
|
|
84
98
|
interface AXTreeViewNodeSelectEvent extends AXHtmlEvent {
|
|
85
99
|
node: AXTreeViewNode;
|
|
86
100
|
}
|
|
101
|
+
interface AXTreeViewSelectionChangeEvent extends AXEvent {
|
|
102
|
+
selectedNodes: AXTreeViewNode[];
|
|
103
|
+
}
|
|
87
104
|
interface AXTreeViewDropEvent extends AXEvent {
|
|
88
105
|
node: AXTreeViewNode;
|
|
89
106
|
previousParent?: AXTreeViewNode;
|
|
@@ -100,9 +117,39 @@ interface AXTreeViewItemTemplateContext {
|
|
|
100
117
|
loading: boolean;
|
|
101
118
|
}
|
|
102
119
|
type AXTreeViewViewLook = 'default' | 'card' | 'with-line';
|
|
103
|
-
type
|
|
104
|
-
type
|
|
105
|
-
type AXTreeViewSelectMode = 'single' | 'multiple';
|
|
120
|
+
type AXTreeViewDragArea = 'handler' | 'item';
|
|
121
|
+
type AXTreeViewDragBehavior = 'none' | 'order-only' | 'move' | 'both';
|
|
122
|
+
type AXTreeViewSelectMode = 'none' | 'single' | 'multiple';
|
|
123
|
+
/**
|
|
124
|
+
* Selection behavior mode for tree nodes.
|
|
125
|
+
*
|
|
126
|
+
* Controls how node selection behaves in the tree:
|
|
127
|
+
* - **'all'**: No restrictions or special behavior. Any node can be selected independently.
|
|
128
|
+
* - **'intermediate'**: When children are selected, parent nodes show indeterminate state.
|
|
129
|
+
* If all children are selected, parent becomes selected; if some are selected, parent shows indeterminate.
|
|
130
|
+
* - **'leaf'**: Only leaf nodes (nodes with no children) can be selected. Parent nodes cannot be selected.
|
|
131
|
+
* - **'nested'**: Selecting a parent node automatically selects all its children (cascading selection).
|
|
132
|
+
* - **'intermediate-nested'**: Combines both behaviors - selecting parent selects children AND children selection affects parent state.
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```typescript
|
|
136
|
+
* // Allow any node to be selected
|
|
137
|
+
* <ax-tree-view [selectionBehavior]="'all'" />
|
|
138
|
+
*
|
|
139
|
+
* // Only leaf nodes can be selected
|
|
140
|
+
* <ax-tree-view [selectionBehavior]="'leaf'" />
|
|
141
|
+
*
|
|
142
|
+
* // Parent shows indeterminate when children are selected
|
|
143
|
+
* <ax-tree-view [selectionBehavior]="'intermediate'" />
|
|
144
|
+
*
|
|
145
|
+
* // Selecting parent selects all children
|
|
146
|
+
* <ax-tree-view [selectionBehavior]="'nested'" />
|
|
147
|
+
*
|
|
148
|
+
* // Both: selecting parent selects children AND children affect parent state
|
|
149
|
+
* <ax-tree-view [selectionBehavior]="'intermediate-nested'" />
|
|
150
|
+
* ```
|
|
151
|
+
*/
|
|
152
|
+
type AXTreeViewSelectionBehavior = 'all' | 'intermediate' | 'leaf' | 'nested' | 'intermediate-nested';
|
|
106
153
|
/**
|
|
107
154
|
* Function type for lazy loading tree nodes
|
|
108
155
|
*/
|
|
@@ -134,42 +181,62 @@ declare class AXTreeViewComponent {
|
|
|
134
181
|
private readonly destroyRef;
|
|
135
182
|
/** Tree data source - can be static array or lazy loading function */
|
|
136
183
|
readonly datasource: _angular_core.ModelSignal<AXTreeViewDataSource>;
|
|
137
|
-
/** Selection mode: 'single' (click to select) or 'multiple' (checkbox selection) */
|
|
184
|
+
/** Selection mode: 'single' (click to select) or 'multiple' (checkbox selection). Default: `'single'` */
|
|
138
185
|
readonly selectMode: _angular_core.InputSignal<AXTreeViewSelectMode>;
|
|
139
|
-
/** Whether to show checkboxes for selection (only applies to multiple mode) */
|
|
186
|
+
/** Whether to show checkboxes for selection (only applies to multiple mode). Default: `false`. When false and selectMode is not 'none', clicking on a node toggles its selection. */
|
|
140
187
|
readonly showCheckbox: _angular_core.InputSignal<boolean>;
|
|
141
|
-
/**
|
|
142
|
-
readonly
|
|
143
|
-
/**
|
|
144
|
-
readonly
|
|
145
|
-
/**
|
|
146
|
-
readonly
|
|
147
|
-
/**
|
|
148
|
-
readonly dragMode: _angular_core.InputSignal<AXTreeViewDragMode>;
|
|
149
|
-
/** Drag operation type: 'order-only' (reorder only), 'move' (move between parents), 'both' (allow both) */
|
|
150
|
-
readonly dragOperationType: _angular_core.InputSignal<AXTreeViewDragOperationType>;
|
|
151
|
-
/** Whether to show icons */
|
|
188
|
+
/** Selection behavior: 'all' (select anything, no special behavior), 'intermediate' (parent indeterminate state when children selected), 'leaf' (only leaf nodes selectable), 'nested' (selecting parent selects all children). Default: `'intermediate'` */
|
|
189
|
+
readonly selectionBehavior: _angular_core.InputSignal<AXTreeViewSelectionBehavior>;
|
|
190
|
+
/** Drag area: 'handler' (drag handle), 'item' (entire item). Default: `'handler'` */
|
|
191
|
+
readonly dragArea: _angular_core.InputSignal<AXTreeViewDragArea>;
|
|
192
|
+
/** Drag behavior: 'none' (disabled), 'order-only' (reorder only), 'move' (move between parents), 'both' (allow both). Default: `'none'` */
|
|
193
|
+
readonly dragBehavior: _angular_core.InputSignal<AXTreeViewDragBehavior>;
|
|
194
|
+
/** Whether to show icons. Default: `true` */
|
|
152
195
|
readonly showIcons: _angular_core.InputSignal<boolean>;
|
|
153
|
-
/** Whether to show children count badge */
|
|
196
|
+
/** Whether to show children count badge. Default: `true` */
|
|
154
197
|
readonly showChildrenBadge: _angular_core.InputSignal<boolean>;
|
|
155
|
-
/** Custom icon for expanded nodes */
|
|
198
|
+
/** Custom icon for expanded nodes. Default: `'fa-solid fa-chevron-down'` */
|
|
156
199
|
readonly expandedIcon: _angular_core.InputSignal<string>;
|
|
157
|
-
/** Custom icon for collapsed nodes */
|
|
200
|
+
/** Custom icon for collapsed nodes. Default: `'fa-solid fa-chevron-right'` */
|
|
158
201
|
readonly collapsedIcon: _angular_core.InputSignal<string>;
|
|
159
|
-
/** Indent size in pixels for each level */
|
|
202
|
+
/** Indent size in pixels for each level. Default: `16` */
|
|
160
203
|
readonly indentSize: _angular_core.InputSignal<number>;
|
|
161
|
-
/**
|
|
162
|
-
readonly nodeHeight: _angular_core.InputSignal<"compact" | "normal" | "comfortable">;
|
|
163
|
-
/** Visual style variant */
|
|
204
|
+
/** Visual style variant. Default: `'default'` */
|
|
164
205
|
readonly look: _angular_core.InputSignal<AXTreeViewViewLook>;
|
|
165
|
-
/** Custom template for tree items */
|
|
166
|
-
readonly
|
|
206
|
+
/** Custom template for tree items. Default: `undefined` */
|
|
207
|
+
readonly nodeTemplate: _angular_core.InputSignal<TemplateRef<AXTreeViewItemTemplateContext>>;
|
|
208
|
+
/** Field name for node ID. Default: `'id'` */
|
|
209
|
+
readonly idField: _angular_core.InputSignal<string>;
|
|
210
|
+
/** Field name for node title. Default: `'title'` */
|
|
211
|
+
readonly titleField: _angular_core.InputSignal<string>;
|
|
212
|
+
/** Field name for node tooltip. Default: `'tooltip'` */
|
|
213
|
+
readonly tooltipField: _angular_core.InputSignal<string>;
|
|
214
|
+
/** Field name for node icon. Default: `'icon'` */
|
|
215
|
+
readonly iconField: _angular_core.InputSignal<string>;
|
|
216
|
+
/** Field name for expanded state. Default: `'expanded'` */
|
|
217
|
+
readonly expandedField: _angular_core.InputSignal<string>;
|
|
218
|
+
/** Field name for selected state. Default: `'selected'` */
|
|
219
|
+
readonly selectedField: _angular_core.InputSignal<string>;
|
|
220
|
+
/** Field name for indeterminate state. Default: `'indeterminate'` */
|
|
221
|
+
readonly indeterminateField: _angular_core.InputSignal<string>;
|
|
222
|
+
/** Field name for disabled state. Default: `'disabled'` */
|
|
223
|
+
readonly disabledField: _angular_core.InputSignal<string>;
|
|
224
|
+
/** Field name for hidden state. Default: `'hidden'` */
|
|
225
|
+
readonly hiddenField: _angular_core.InputSignal<string>;
|
|
226
|
+
/** Field name for children array. Default: `'children'` */
|
|
227
|
+
readonly childrenField: _angular_core.InputSignal<string>;
|
|
228
|
+
/** Field name for children count. Default: `'childrenCount'` */
|
|
229
|
+
readonly childrenCountField: _angular_core.InputSignal<string>;
|
|
230
|
+
/** Field name for custom data. Default: `'data'` */
|
|
231
|
+
readonly dataField: _angular_core.InputSignal<string>;
|
|
167
232
|
/** Emitted before a drop operation - set canceled to true to prevent drop */
|
|
168
233
|
readonly onBeforeDrop: _angular_core.OutputEmitterRef<AXTreeViewBeforeDropEvent>;
|
|
169
234
|
/** Emitted when a node is toggled (expanded/collapsed) */
|
|
170
235
|
readonly onNodeToggle: _angular_core.OutputEmitterRef<AXTreeViewNodeToggleEvent>;
|
|
171
236
|
/** Emitted when a node is selected/deselected */
|
|
172
237
|
readonly onNodeSelect: _angular_core.OutputEmitterRef<AXTreeViewNodeSelectEvent>;
|
|
238
|
+
/** Emitted when selection changes - returns all currently selected nodes */
|
|
239
|
+
readonly onSelectionChange: _angular_core.OutputEmitterRef<AXTreeViewSelectionChangeEvent>;
|
|
173
240
|
/** Emitted when nodes are reordered within the same parent */
|
|
174
241
|
readonly onOrderChange: _angular_core.OutputEmitterRef<AXTreeViewDropEvent>;
|
|
175
242
|
/** Emitted when a node is moved to a different parent */
|
|
@@ -191,6 +258,84 @@ declare class AXTreeViewComponent {
|
|
|
191
258
|
private isUpdatingFromDatasource;
|
|
192
259
|
/** Computed to check if datasource is a function */
|
|
193
260
|
private readonly isLazyDataSource;
|
|
261
|
+
/** Computed: Returns true when selection is restricted to leaf nodes only */
|
|
262
|
+
protected readonly isLeafOnlyMode: _angular_core.Signal<boolean>;
|
|
263
|
+
/** Computed: Returns true when selecting a parent automatically selects all its children */
|
|
264
|
+
protected readonly cascadesToChildren: _angular_core.Signal<boolean>;
|
|
265
|
+
/** Computed: Returns true when parent nodes show indeterminate state based on children selection */
|
|
266
|
+
protected readonly hasIntermediateState: _angular_core.Signal<boolean>;
|
|
267
|
+
/**
|
|
268
|
+
* Get a property value from a node using the configured field name
|
|
269
|
+
*/
|
|
270
|
+
protected getNodeProp<T = unknown>(node: AXTreeViewNode, fieldName: string, defaultValue?: T): T;
|
|
271
|
+
/**
|
|
272
|
+
* Set a property value on a node using the configured field name
|
|
273
|
+
*/
|
|
274
|
+
protected setNodeProp(node: AXTreeViewNode, fieldName: string, value: unknown): void;
|
|
275
|
+
/**
|
|
276
|
+
* Get node ID
|
|
277
|
+
*/
|
|
278
|
+
protected getNodeId(node: AXTreeViewNode): string;
|
|
279
|
+
/**
|
|
280
|
+
* Get node title
|
|
281
|
+
*/
|
|
282
|
+
protected getNodeTitle(node: AXTreeViewNode): string;
|
|
283
|
+
/**
|
|
284
|
+
* Get node tooltip
|
|
285
|
+
*/
|
|
286
|
+
protected getNodeTooltip(node: AXTreeViewNode): string | undefined;
|
|
287
|
+
/**
|
|
288
|
+
* Get node icon
|
|
289
|
+
*/
|
|
290
|
+
protected getNodeIcon(node: AXTreeViewNode): string | undefined;
|
|
291
|
+
/**
|
|
292
|
+
* Get node expanded state
|
|
293
|
+
*/
|
|
294
|
+
protected getNodeExpanded(node: AXTreeViewNode): boolean;
|
|
295
|
+
/**
|
|
296
|
+
* Set node expanded state
|
|
297
|
+
*/
|
|
298
|
+
protected setNodeExpanded(node: AXTreeViewNode, value: boolean): void;
|
|
299
|
+
/**
|
|
300
|
+
* Get node selected state
|
|
301
|
+
*/
|
|
302
|
+
protected getNodeSelected(node: AXTreeViewNode): boolean;
|
|
303
|
+
/**
|
|
304
|
+
* Set node selected state
|
|
305
|
+
*/
|
|
306
|
+
protected setNodeSelected(node: AXTreeViewNode, value: boolean): void;
|
|
307
|
+
/**
|
|
308
|
+
* Get node indeterminate state
|
|
309
|
+
*/
|
|
310
|
+
protected getNodeIndeterminate(node: AXTreeViewNode): boolean;
|
|
311
|
+
/**
|
|
312
|
+
* Set node indeterminate state
|
|
313
|
+
*/
|
|
314
|
+
protected setNodeIndeterminate(node: AXTreeViewNode, value: boolean): void;
|
|
315
|
+
/**
|
|
316
|
+
* Get node disabled state
|
|
317
|
+
*/
|
|
318
|
+
protected getNodeDisabled(node: AXTreeViewNode): boolean;
|
|
319
|
+
/**
|
|
320
|
+
* Get node hidden state
|
|
321
|
+
*/
|
|
322
|
+
protected getNodeHidden(node: AXTreeViewNode): boolean;
|
|
323
|
+
/**
|
|
324
|
+
* Get node children array
|
|
325
|
+
*/
|
|
326
|
+
protected getNodeChildren(node: AXTreeViewNode): AXTreeViewNode[] | undefined;
|
|
327
|
+
/**
|
|
328
|
+
* Set node children array
|
|
329
|
+
*/
|
|
330
|
+
protected setNodeChildren(node: AXTreeViewNode, value: AXTreeViewNode[] | undefined): void;
|
|
331
|
+
/**
|
|
332
|
+
* Get node children count
|
|
333
|
+
*/
|
|
334
|
+
protected getNodeChildrenCount(node: AXTreeViewNode): number | undefined;
|
|
335
|
+
/**
|
|
336
|
+
* Set node children count
|
|
337
|
+
*/
|
|
338
|
+
protected setNodeChildrenCount(node: AXTreeViewNode, value: number | undefined): void;
|
|
194
339
|
/**
|
|
195
340
|
* Expand all nodes in the tree (with lazy loading support)
|
|
196
341
|
*/
|
|
@@ -235,6 +380,10 @@ declare class AXTreeViewComponent {
|
|
|
235
380
|
* Check if a node is currently loading
|
|
236
381
|
*/
|
|
237
382
|
isNodeLoading(nodeId: string): boolean;
|
|
383
|
+
/**
|
|
384
|
+
* Get loading state for a node (internal state)
|
|
385
|
+
*/
|
|
386
|
+
getNodeLoading(node: AXTreeViewNode): boolean;
|
|
238
387
|
/**
|
|
239
388
|
* Edit/update a node's properties
|
|
240
389
|
* @param nodeId - The ID of the node to edit
|
|
@@ -383,6 +532,19 @@ declare class AXTreeViewComponent {
|
|
|
383
532
|
* Check if checkboxes should be shown (only for multiple mode)
|
|
384
533
|
*/
|
|
385
534
|
shouldShowCheckbox(): boolean;
|
|
535
|
+
/**
|
|
536
|
+
* Check if a node is a leaf (has no children)
|
|
537
|
+
* A node is a leaf if it has no loaded children AND no childrenCount (or childrenCount is 0)
|
|
538
|
+
*/
|
|
539
|
+
isLeafNode(node: AXTreeViewNode): boolean;
|
|
540
|
+
/**
|
|
541
|
+
* Check if a node can be selected (considering selectMode and isLeafOnlyMode)
|
|
542
|
+
*/
|
|
543
|
+
canSelectNode(node: AXTreeViewNode): boolean;
|
|
544
|
+
/**
|
|
545
|
+
* Check if checkbox should be shown for a specific node
|
|
546
|
+
*/
|
|
547
|
+
shouldShowCheckboxForNode(node: AXTreeViewNode): boolean;
|
|
386
548
|
/**
|
|
387
549
|
* Generate unique list ID for each node
|
|
388
550
|
*/
|
|
@@ -404,7 +566,11 @@ declare class AXTreeViewComponent {
|
|
|
404
566
|
*/
|
|
405
567
|
getNodeAriaSelected(node: AXTreeViewNode): string | null;
|
|
406
568
|
/**
|
|
407
|
-
*
|
|
569
|
+
* Emit selection change event with all selected nodes
|
|
570
|
+
*/
|
|
571
|
+
private emitSelectionChange;
|
|
572
|
+
/**
|
|
573
|
+
* Handle node click - for single selection mode or multiple mode when showCheckbox is false
|
|
408
574
|
*/
|
|
409
575
|
onNodeClick(node: AXTreeViewNode, event: Event): void;
|
|
410
576
|
/**
|
|
@@ -462,7 +628,7 @@ declare class AXTreeViewComponent {
|
|
|
462
628
|
*/
|
|
463
629
|
private handleSingleSelection;
|
|
464
630
|
/**
|
|
465
|
-
* Handle multiple selection mode
|
|
631
|
+
* Handle multiple selection mode when showCheckbox is false (click to toggle)
|
|
466
632
|
*/
|
|
467
633
|
private handleMultipleSelection;
|
|
468
634
|
/**
|
|
@@ -474,11 +640,11 @@ declare class AXTreeViewComponent {
|
|
|
474
640
|
*/
|
|
475
641
|
private findParentByListId;
|
|
476
642
|
/**
|
|
477
|
-
* Check if move operation is allowed based on
|
|
643
|
+
* Check if move operation is allowed based on dragBehavior
|
|
478
644
|
*/
|
|
479
645
|
private canMoveToParent;
|
|
480
646
|
/**
|
|
481
|
-
* Check if reorder operation is allowed based on
|
|
647
|
+
* Check if reorder operation is allowed based on dragBehavior
|
|
482
648
|
*/
|
|
483
649
|
private canReorder;
|
|
484
650
|
/**
|
|
@@ -510,10 +676,14 @@ declare class AXTreeViewComponent {
|
|
|
510
676
|
private handleNavigationKey;
|
|
511
677
|
/**
|
|
512
678
|
* Handle Space key selection
|
|
679
|
+
* In single mode: replaces selection (deselects all, selects this node)
|
|
680
|
+
* In multiple mode: toggles selection
|
|
513
681
|
*/
|
|
514
682
|
private handleSpaceKeySelection;
|
|
515
683
|
/**
|
|
516
684
|
* Handle Enter key selection
|
|
685
|
+
* In single mode: replaces selection (deselects all, selects this node)
|
|
686
|
+
* In multiple mode: replaces selection (deselects all, selects this node and respects selectionBehavior)
|
|
517
687
|
*/
|
|
518
688
|
private handleEnterKeySelection;
|
|
519
689
|
/**
|
|
@@ -529,7 +699,7 @@ declare class AXTreeViewComponent {
|
|
|
529
699
|
*/
|
|
530
700
|
private handleError;
|
|
531
701
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXTreeViewComponent, never>;
|
|
532
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXTreeViewComponent, "ax-tree-view", never, { "datasource": { "alias": "datasource"; "required": true; "isSignal": true; }; "selectMode": { "alias": "selectMode"; "required": false; "isSignal": true; }; "showCheckbox": { "alias": "showCheckbox"; "required": false; "isSignal": true; }; "
|
|
702
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXTreeViewComponent, "ax-tree-view", never, { "datasource": { "alias": "datasource"; "required": true; "isSignal": true; }; "selectMode": { "alias": "selectMode"; "required": false; "isSignal": true; }; "showCheckbox": { "alias": "showCheckbox"; "required": false; "isSignal": true; }; "selectionBehavior": { "alias": "selectionBehavior"; "required": false; "isSignal": true; }; "dragArea": { "alias": "dragArea"; "required": false; "isSignal": true; }; "dragBehavior": { "alias": "dragBehavior"; "required": false; "isSignal": true; }; "showIcons": { "alias": "showIcons"; "required": false; "isSignal": true; }; "showChildrenBadge": { "alias": "showChildrenBadge"; "required": false; "isSignal": true; }; "expandedIcon": { "alias": "expandedIcon"; "required": false; "isSignal": true; }; "collapsedIcon": { "alias": "collapsedIcon"; "required": false; "isSignal": true; }; "indentSize": { "alias": "indentSize"; "required": false; "isSignal": true; }; "look": { "alias": "look"; "required": false; "isSignal": true; }; "nodeTemplate": { "alias": "nodeTemplate"; "required": false; "isSignal": true; }; "idField": { "alias": "idField"; "required": false; "isSignal": true; }; "titleField": { "alias": "titleField"; "required": false; "isSignal": true; }; "tooltipField": { "alias": "tooltipField"; "required": false; "isSignal": true; }; "iconField": { "alias": "iconField"; "required": false; "isSignal": true; }; "expandedField": { "alias": "expandedField"; "required": false; "isSignal": true; }; "selectedField": { "alias": "selectedField"; "required": false; "isSignal": true; }; "indeterminateField": { "alias": "indeterminateField"; "required": false; "isSignal": true; }; "disabledField": { "alias": "disabledField"; "required": false; "isSignal": true; }; "hiddenField": { "alias": "hiddenField"; "required": false; "isSignal": true; }; "childrenField": { "alias": "childrenField"; "required": false; "isSignal": true; }; "childrenCountField": { "alias": "childrenCountField"; "required": false; "isSignal": true; }; "dataField": { "alias": "dataField"; "required": false; "isSignal": true; }; }, { "datasource": "datasourceChange"; "onBeforeDrop": "onBeforeDrop"; "onNodeToggle": "onNodeToggle"; "onNodeSelect": "onNodeSelect"; "onSelectionChange": "onSelectionChange"; "onOrderChange": "onOrderChange"; "onMoveChange": "onMoveChange"; "onItemsChange": "onItemsChange"; }, never, never, true, never>;
|
|
533
703
|
}
|
|
534
704
|
|
|
535
705
|
declare class AXTreeViewModule {
|
|
@@ -549,16 +719,16 @@ declare class AXTreeViewService {
|
|
|
549
719
|
/**
|
|
550
720
|
* Find a node by ID in the tree
|
|
551
721
|
*/
|
|
552
|
-
findNodeById(nodes: AXTreeViewNode[], id: string): AXTreeViewNode | null;
|
|
722
|
+
findNodeById(nodes: AXTreeViewNode[], id: string, idField?: string): AXTreeViewNode | null;
|
|
553
723
|
/**
|
|
554
724
|
* Find parent node of a given node
|
|
555
725
|
*/
|
|
556
|
-
findParentNode(nodes: AXTreeViewNode[], targetNode: AXTreeViewNode): AXTreeViewNode | undefined;
|
|
726
|
+
findParentNode(nodes: AXTreeViewNode[], targetNode: AXTreeViewNode, idField?: string, childrenField?: string): AXTreeViewNode | undefined;
|
|
557
727
|
/**
|
|
558
728
|
* Check if targetNode is a descendant of ancestorNode (or the same node)
|
|
559
729
|
* Prevents circular references by checking if target exists in ancestor's children tree
|
|
560
730
|
*/
|
|
561
|
-
isValidDropTarget(movedNode: AXTreeViewNode, targetNode: AXTreeViewNode): boolean;
|
|
731
|
+
isValidDropTarget(movedNode: AXTreeViewNode, targetNode: AXTreeViewNode, idField?: string, childrenField?: string): boolean;
|
|
562
732
|
/**
|
|
563
733
|
* Check if targetNode is a descendant of ancestorNode
|
|
564
734
|
*/
|
|
@@ -566,67 +736,67 @@ declare class AXTreeViewService {
|
|
|
566
736
|
/**
|
|
567
737
|
* Build a flat list of all visible focusable nodes
|
|
568
738
|
*/
|
|
569
|
-
buildFlatNodeList(nodes: AXTreeViewNode[]): AXTreeViewFlatNode[];
|
|
739
|
+
buildFlatNodeList(nodes: AXTreeViewNode[], hiddenField?: string, disabledField?: string, expandedField?: string, childrenField?: string): AXTreeViewFlatNode[];
|
|
570
740
|
/**
|
|
571
741
|
* Check if node has children
|
|
572
742
|
*/
|
|
573
|
-
hasChildren(node: AXTreeViewNode): boolean;
|
|
743
|
+
hasChildren(node: AXTreeViewNode, childrenField?: string): boolean;
|
|
574
744
|
/**
|
|
575
745
|
* Check if node can be lazy loaded
|
|
576
746
|
*/
|
|
577
|
-
canLazyLoad(node: AXTreeViewNode, isLazyDataSource: boolean): boolean;
|
|
747
|
+
canLazyLoad(node: AXTreeViewNode, isLazyDataSource: boolean, childrenCountField?: string, childrenField?: string): boolean;
|
|
578
748
|
/**
|
|
579
749
|
* Recursively select/deselect all children
|
|
580
750
|
*/
|
|
581
|
-
selectAllChildren(children: AXTreeViewNode[], selected: boolean): void;
|
|
751
|
+
selectAllChildren(children: AXTreeViewNode[], selected: boolean, selectedField?: string, indeterminateField?: string, childrenField?: string): void;
|
|
582
752
|
/**
|
|
583
753
|
* Get selection state of children
|
|
584
754
|
*/
|
|
585
|
-
getChildrenSelectionState(children: AXTreeViewNode[]): AXTreeViewChildrenSelectionState;
|
|
755
|
+
getChildrenSelectionState(children: AXTreeViewNode[], selectedField?: string, indeterminateField?: string): AXTreeViewChildrenSelectionState;
|
|
586
756
|
/**
|
|
587
757
|
* Update parent node states based on children selection (with intermediate state support)
|
|
588
758
|
*/
|
|
589
|
-
updateParentStates(nodes: AXTreeViewNode[], changedNode: AXTreeViewNode, intermediateState: boolean): void;
|
|
759
|
+
updateParentStates(nodes: AXTreeViewNode[], changedNode: AXTreeViewNode, intermediateState: boolean, idField?: string, childrenField?: string, selectedField?: string, indeterminateField?: string): void;
|
|
590
760
|
/**
|
|
591
761
|
* Recursively deselect all nodes
|
|
592
762
|
*/
|
|
593
|
-
deselectAllNodes(nodes: AXTreeViewNode[]): void;
|
|
763
|
+
deselectAllNodes(nodes: AXTreeViewNode[], selectedField?: string, indeterminateField?: string, childrenField?: string): void;
|
|
594
764
|
/**
|
|
595
765
|
* Recursively set selection state for all nodes
|
|
596
766
|
*/
|
|
597
|
-
setAllSelection(nodes: AXTreeViewNode[], selected: boolean): void;
|
|
767
|
+
setAllSelection(nodes: AXTreeViewNode[], selected: boolean, selectedField?: string, indeterminateField?: string, childrenField?: string): void;
|
|
598
768
|
/**
|
|
599
769
|
* Recursively count selected nodes
|
|
600
770
|
*/
|
|
601
|
-
countSelected(nodes: AXTreeViewNode[]): number;
|
|
771
|
+
countSelected(nodes: AXTreeViewNode[], selectedField?: string, childrenField?: string): number;
|
|
602
772
|
/**
|
|
603
773
|
* Recursively collect selected nodes
|
|
604
774
|
*/
|
|
605
|
-
collectSelected(nodes: AXTreeViewNode[], result: AXTreeViewNode[]): void;
|
|
775
|
+
collectSelected(nodes: AXTreeViewNode[], result: AXTreeViewNode[], selectedField?: string, childrenField?: string): void;
|
|
606
776
|
/**
|
|
607
777
|
* Recursively remove selected nodes
|
|
608
778
|
*/
|
|
609
|
-
removeSelected(nodes: AXTreeViewNode[]): void;
|
|
779
|
+
removeSelected(nodes: AXTreeViewNode[], selectedField?: string, indeterminateField?: string, childrenField?: string): void;
|
|
610
780
|
/**
|
|
611
781
|
* Recursively update all parent states in the tree (used after deletion)
|
|
612
782
|
*/
|
|
613
|
-
updateAllParentStates(nodes: AXTreeViewNode[], intermediateState: boolean): void;
|
|
783
|
+
updateAllParentStates(nodes: AXTreeViewNode[], intermediateState: boolean, childrenField?: string, selectedField?: string, indeterminateField?: string): void;
|
|
614
784
|
/**
|
|
615
785
|
* Recursively set expanded state (with lazy loading)
|
|
616
786
|
*/
|
|
617
|
-
setExpandedState(nodes: AXTreeViewNode[], expanded: boolean, isLazyDataSource: boolean, loadNodeChildren: (node: AXTreeViewNode) => Promise<void
|
|
787
|
+
setExpandedState(nodes: AXTreeViewNode[], expanded: boolean, isLazyDataSource: boolean, loadNodeChildren: (node: AXTreeViewNode) => Promise<void>, expandedField?: string, childrenField?: string, childrenCountField?: string): Promise<void>;
|
|
618
788
|
/**
|
|
619
789
|
* Get array reference by drop list ID
|
|
620
790
|
*/
|
|
621
|
-
getArrayByListId(nodes: AXTreeViewNode[], listId: string): AXTreeViewNode[] | null;
|
|
791
|
+
getArrayByListId(nodes: AXTreeViewNode[], listId: string, idField?: string, childrenField?: string): AXTreeViewNode[] | null;
|
|
622
792
|
/**
|
|
623
793
|
* Find parent node by list ID
|
|
624
794
|
*/
|
|
625
|
-
findParentByListId(nodes: AXTreeViewNode[], listId: string): AXTreeViewNode | undefined;
|
|
795
|
+
findParentByListId(nodes: AXTreeViewNode[], listId: string, idField?: string): AXTreeViewNode | undefined;
|
|
626
796
|
/**
|
|
627
797
|
* Generate unique list ID for each node
|
|
628
798
|
*/
|
|
629
|
-
getListId(node?:
|
|
799
|
+
getListId(node: AXTreeViewNode | undefined, idField?: string): string;
|
|
630
800
|
/**
|
|
631
801
|
* Get root list ID constant
|
|
632
802
|
*/
|
|
@@ -642,27 +812,81 @@ declare class AXTreeViewService {
|
|
|
642
812
|
/**
|
|
643
813
|
* Get all nodes in a flat array
|
|
644
814
|
*/
|
|
645
|
-
getAllNodes(nodes: AXTreeViewNode[]): AXTreeViewNode[];
|
|
815
|
+
getAllNodes(nodes: AXTreeViewNode[], childrenField?: string): AXTreeViewNode[];
|
|
646
816
|
/**
|
|
647
817
|
* Get the path to a node (array of parent nodes from root to node)
|
|
648
818
|
*/
|
|
649
|
-
getNodePath(nodes: AXTreeViewNode[], nodeId: string): AXTreeViewNode[];
|
|
819
|
+
getNodePath(nodes: AXTreeViewNode[], nodeId: string, idField?: string, childrenField?: string): AXTreeViewNode[];
|
|
650
820
|
/**
|
|
651
821
|
* Get the level/depth of a node (0 = root level)
|
|
652
822
|
*/
|
|
653
|
-
getNodeLevel(nodes: AXTreeViewNode[], nodeId: string): number;
|
|
823
|
+
getNodeLevel(nodes: AXTreeViewNode[], nodeId: string, idField?: string, childrenField?: string): number;
|
|
654
824
|
/**
|
|
655
825
|
* Get sibling nodes of a given node
|
|
656
826
|
*/
|
|
657
|
-
getSiblings(nodes: AXTreeViewNode[], nodeId: string): AXTreeViewNode[];
|
|
827
|
+
getSiblings(nodes: AXTreeViewNode[], nodeId: string, idField?: string, childrenField?: string): AXTreeViewNode[];
|
|
658
828
|
/**
|
|
659
829
|
* Clone a node (creates a deep copy)
|
|
660
830
|
*/
|
|
661
|
-
cloneNode(node: AXTreeViewNode): AXTreeViewNode;
|
|
831
|
+
cloneNode(node: AXTreeViewNode, idField?: string, titleField?: string, tooltipField?: string, iconField?: string, expandedField?: string, selectedField?: string, indeterminateField?: string, disabledField?: string, hiddenField?: string, childrenCountField?: string, dataField?: string, childrenField?: string): AXTreeViewNode;
|
|
832
|
+
/**
|
|
833
|
+
* Move a node to a new parent in the tree
|
|
834
|
+
* @param nodes - Root nodes array
|
|
835
|
+
* @param nodeId - The ID of the node to move
|
|
836
|
+
* @param newParentId - The ID of the new parent (undefined for root level)
|
|
837
|
+
* @param index - Optional index to insert at (default: append to end)
|
|
838
|
+
* @param idField - Field name for node ID
|
|
839
|
+
* @param childrenField - Field name for children array
|
|
840
|
+
* @param childrenCountField - Field name for children count
|
|
841
|
+
* @param expandedField - Field name for expanded state
|
|
842
|
+
* @returns Object with success status, moved node, previous parent, new parent, and indices
|
|
843
|
+
*/
|
|
844
|
+
moveNode(nodes: AXTreeViewNode[], nodeId: string, newParentId: string | undefined, index: number | undefined, idField?: string, childrenField?: string, childrenCountField?: string, expandedField?: string): {
|
|
845
|
+
success: boolean;
|
|
846
|
+
movedNode?: AXTreeViewNode;
|
|
847
|
+
previousParent?: AXTreeViewNode;
|
|
848
|
+
newParent?: AXTreeViewNode;
|
|
849
|
+
previousIndex: number;
|
|
850
|
+
currentIndex: number;
|
|
851
|
+
};
|
|
852
|
+
/**
|
|
853
|
+
* Edit/update a node's properties
|
|
854
|
+
* @param nodes - Root nodes array
|
|
855
|
+
* @param nodeId - The ID of the node to edit
|
|
856
|
+
* @param updates - Partial node object with properties to update
|
|
857
|
+
* @param idField - Field name for node ID
|
|
858
|
+
* @param childrenField - Field name for children array
|
|
859
|
+
* @param childrenCountField - Field name for children count
|
|
860
|
+
* @returns The updated node if found, null otherwise
|
|
861
|
+
*/
|
|
862
|
+
editNode(nodes: AXTreeViewNode[], nodeId: string, updates: Partial<AXTreeViewNode>, idField?: string, childrenField?: string, childrenCountField?: string): AXTreeViewNode | null;
|
|
863
|
+
/**
|
|
864
|
+
* Add a child node to a parent node
|
|
865
|
+
* @param nodes - Root nodes array
|
|
866
|
+
* @param parentId - The ID of the parent node
|
|
867
|
+
* @param childNode - The child node to add
|
|
868
|
+
* @param index - Optional index to insert at (default: append to end)
|
|
869
|
+
* @param idField - Field name for node ID
|
|
870
|
+
* @param childrenField - Field name for children array
|
|
871
|
+
* @param childrenCountField - Field name for children count
|
|
872
|
+
* @param expandedField - Field name for expanded state
|
|
873
|
+
* @returns The parent node if found and child was added, null otherwise
|
|
874
|
+
*/
|
|
875
|
+
addChild(nodes: AXTreeViewNode[], parentId: string, childNode: AXTreeViewNode, index: number | undefined, idField?: string, childrenField?: string, childrenCountField?: string, expandedField?: string): AXTreeViewNode | null;
|
|
876
|
+
/**
|
|
877
|
+
* Remove a node from the tree
|
|
878
|
+
* @param nodes - Root nodes array
|
|
879
|
+
* @param nodeId - The ID of the node to remove
|
|
880
|
+
* @param idField - Field name for node ID
|
|
881
|
+
* @param childrenField - Field name for children array
|
|
882
|
+
* @param childrenCountField - Field name for children count
|
|
883
|
+
* @returns The removed node if found, null otherwise
|
|
884
|
+
*/
|
|
885
|
+
removeNode(nodes: AXTreeViewNode[], nodeId: string, idField?: string, childrenField?: string, childrenCountField?: string): AXTreeViewNode | null;
|
|
662
886
|
/**
|
|
663
887
|
* Validate node structure (check for required fields and circular references)
|
|
664
888
|
*/
|
|
665
|
-
validateNode(node: AXTreeViewNode, visitedIds?: Set<string
|
|
889
|
+
validateNode(node: AXTreeViewNode, visitedIds?: Set<string>, idField?: string, titleField?: string, childrenField?: string, childrenCountField?: string): {
|
|
666
890
|
valid: boolean;
|
|
667
891
|
errors: string[];
|
|
668
892
|
};
|
|
@@ -671,4 +895,4 @@ declare class AXTreeViewService {
|
|
|
671
895
|
}
|
|
672
896
|
|
|
673
897
|
export { AXTreeViewComponent, AXTreeViewModule, AXTreeViewService };
|
|
674
|
-
export type { AXTreeViewBeforeDropEvent, AXTreeViewCallback, AXTreeViewChildrenSelectionState, AXTreeViewDataSource,
|
|
898
|
+
export type { AXTreeViewBeforeDropEvent, AXTreeViewCallback, AXTreeViewChildrenSelectionState, AXTreeViewDataSource, AXTreeViewDragArea, AXTreeViewDragBehavior, AXTreeViewDropEvent, AXTreeViewFlatNode, AXTreeViewItemTemplateContext, AXTreeViewNode, AXTreeViewNodeSelectEvent, AXTreeViewNodeToggleEvent, AXTreeViewSelectMode, AXTreeViewSelectionBehavior, AXTreeViewSelectionChangeEvent, AXTreeViewViewLook };
|
package/wysiwyg/index.d.ts
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-modal-acorex-components-modal-CjHPRiZD.mjs","sources":["../../../../packages/components/modal/src/lib/modal-footer/modal-footer.component.ts","../../../../packages/components/modal/src/lib/modal-footer/modal-footer.component.html","../../../../packages/components/modal/src/lib/modal-state.service.ts","../../../../packages/components/modal/src/lib/modal.component.ts","../../../../packages/components/modal/src/lib/modal.module.ts","../../../../packages/components/modal/src/lib/modal.service.ts","../../../../packages/components/modal/src/lib/modal.types.ts","../../../../packages/components/modal/src/acorex-components-modal.ts"],"sourcesContent":["import { AXComponent } from '@acorex/cdk/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ax-modal-footer',\n templateUrl: './modal-footer.component.html',\n styleUrl: './modal-footer.component.compiled.css',\n imports: [],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXComponent, useExisting: AXModalFooterComponent }],\n})\nexport class AXModalFooterComponent {}\n","<ng-content select=\"ax-modal-footer\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n</ng-content>\n","import { AXOverlayRef, AXOverlayService } from '@acorex/cdk/overlay';\nimport { AXComponentContent, AXComponentInputs } from '@acorex/core/components';\nimport { ComponentRef, inject, Injectable, signal } from '@angular/core';\nimport { cloneDeep, set } from 'lodash-es';\nimport { Subject } from 'rxjs';\nimport { AXModalContentComponent } from './modal-content/modal-content.component';\nimport { AXModalOptions, AXModalRef } from './modal.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXModalStateService {\n private modalList = new Map<number, { overlay: AXOverlayRef<AXModalContentComponent>; modal: AXModalRef }>();\n private overlayService = inject(AXOverlayService);\n modalOption = signal<AXModalOptions>(null);\n\n /**\n * Opens a modal with the specified content and options.\n * @param content - Component, template, or HTML element to display\n * @param options - Configuration options for the modal\n * @returns Promise<AXModalRef> - Reference to the opened modal\n */\n async open<TResult = any>(\n content: AXComponentContent | HTMLElement,\n options?: AXModalOptions,\n ): Promise<AXModalRef<TResult>> {\n this.modalOption.set(options);\n const randomId = Math.floor(Math.random() * 100000000000);\n const modalContentComp = (await import('./modal-content/modal-content.component')).AXModalContentComponent;\n const onClose = new Subject<TResult>();\n\n const returnRef: AXModalRef = {\n close: (data) => {\n this.close(randomId, data);\n },\n setInputs: (values: AXComponentInputs) => {\n this.setInputs(randomId, values);\n },\n minimize: () => {\n this.minimize(randomId);\n },\n maximize: () => {\n this.maximize(randomId);\n },\n restore: () => {\n this.restore(randomId);\n },\n onClose,\n };\n\n const finalInputs = { ...(cloneDeep(options?.inputs) ?? {}), ...{ __modal__: returnRef } };\n const finalOptions = set(cloneDeep(options) ?? {}, 'inputs', finalInputs);\n\n const ref = await this.overlayService.create(modalContentComp, {\n position: options?.position,\n backdrop: options?.backdrop,\n inputs: {\n __content__: content,\n inputs: {\n ...finalOptions?.inputs,\n },\n id: randomId,\n },\n });\n\n this.modalList.set(randomId, { overlay: ref, modal: returnRef });\n\n return returnRef;\n }\n\n /**\n * Closes a modal by its ID.\n * @param id - The modal ID to close\n * @param data - Optional data to pass to the close event\n */\n async close<TResult = any>(id: number, data?: TResult) {\n const ref = this.modalList.get(id);\n if (!ref) return;\n ref.modal.onClose.next(data);\n ref.overlay.instance.destroy();\n this.modalList.delete(id);\n }\n\n /**\n * Sets input values for a modal by its ID.\n * @param id - The modal ID\n * @param values - Object containing input values to set\n */\n async setInputs(id: number, values: AXComponentInputs) {\n const ref = this.modalList.get(id).overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n const comRef = ref as ComponentRef<any>;\n Object.entries(values).forEach((v) => {\n comRef.setInput(v[0], v[1]);\n });\n } else {\n ref.context.inputs.set(values);\n }\n }\n\n /**\n * Minimizes a modal by its ID.\n * @param id - The modal ID to minimize\n */\n async minimize(id: number) {\n const ref = this.modalList.get(id).overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n ref.instance.minimize();\n } else {\n ref.context.minimize();\n }\n }\n\n /**\n * Maximizes a modal by its ID.\n * @param id - The modal ID to maximize\n */\n async maximize(id: number) {\n const ref = this.modalList.get(id).overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n ref.instance.maximize();\n } else {\n ref.context.maximize();\n }\n }\n\n /**\n * Restores a modal by its ID.\n * @param id - The modal ID to restore\n */\n async restore(id: number) {\n const ref = this.modalList.get(id).overlay.instance;\n if (!ref) return;\n if (ref instanceof ComponentRef) {\n ref.instance.restore();\n } else {\n ref.context.restore();\n }\n }\n\n /**\n * Gets the index of a modal in the minimized stack.\n * @param targetKey - The modal ID to find\n * @returns number - The index position in the stack\n */\n getMapIndexOf(targetKey: any) {\n let index = 0;\n for (const key of this.modalList.keys()) {\n if (key === targetKey) {\n return index;\n }\n index++;\n }\n return -1;\n }\n}\n","import { AXComponent, NXComponent } from '@acorex/cdk/common';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport {\n ChangeDetectionStrategy,\n Component,\n inject,\n signal,\n TemplateRef,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXModalStateService } from './modal-state.service';\nimport { AXModalOptions, AXModalRef } from './modal.types';\n\n@Component({\n selector: 'ax-modal',\n template: `\n <ng-template #contentTemplate>\n <ng-content></ng-content>\n </ng-template>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: AXComponent, useExisting: AXModalComponent }],\n})\nexport class AXModalComponent extends NXComponent {\n private service = inject(AXModalStateService);\n protected template = viewChild(TemplateRef);\n private ref = signal<AXModalRef<any>>(null);\n\n /**\n * Opens the modal with the specified options.\n * @param options - Configuration options for the modal\n * @returns Promise<AXModalRef> - Reference to the opened modal\n */\n async open(options?: AXModalOptions) {\n const ref = await this.service.open(this.template(), options);\n this.ref.set(ref);\n return ref;\n }\n\n /**\n * Closes the currently open modal.\n */\n async close() {\n if (this.ref()) return;\n this.ref().close();\n }\n\n /**\n * Sets input values for the modal content component.\n * @param values - Object containing input values to set\n */\n async setInputs(values: AXComponentInputs) {\n if (!this.ref()) return;\n const transform = { inputs: values };\n this.ref().setInputs(transform);\n }\n\n /**\n * Minimizes the modal to the bottom bar.\n */\n async minimize() {\n if (!this.ref()) return;\n this.ref().minimize();\n }\n\n /**\n * Maximizes the modal to fullscreen.\n */\n async maximize() {\n if (!this.ref()) return;\n this.ref().maximize();\n }\n\n /**\n * Restores the modal from minimized or maximized state.\n */\n async restore() {\n if (!this.ref()) return;\n this.ref().restore();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXModalFooterComponent } from './modal-footer/modal-footer.component';\nimport { AXModalComponent } from './modal.component';\n\n@NgModule({\n imports: [AXModalComponent, AXModalFooterComponent],\n exports: [AXModalComponent, AXModalFooterComponent],\n})\nexport class AXModalModule {}\n","import { AXComponentContent, AXComponentInputs } from '@acorex/core/components';\nimport { inject, Injectable, signal } from '@angular/core';\nimport { AXModalStateService } from './modal-state.service';\nimport { AXModalOptions, AXModalRef } from './modal.types';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXModalService {\n private stateService = inject(AXModalStateService);\n private ref = signal<AXModalRef<any>>(null);\n\n /**\n * Opens a modal with the specified content and options.\n * @param content - Component, template, or HTML element to display\n * @param options - Configuration options for the modal\n * @returns Promise<AXModalRef> - Reference to the opened modal\n */\n async open(content: AXComponentContent | HTMLElement, options?: AXModalOptions): Promise<AXModalRef> {\n const ref = await this.stateService.open(content, options);\n this.ref.set(ref);\n return ref;\n }\n\n /**\n * Closes the currently open modal.\n */\n async close() {\n if (!this.ref()) return;\n this.ref().close();\n }\n\n /**\n * Sets input values for the modal content component.\n * @param values - Object containing input values to set\n */\n async setInputs(values: AXComponentInputs) {\n if (!this.ref()) return;\n const transform = { inputs: values };\n this.ref().setInputs(transform);\n }\n\n /**\n * Minimizes the modal to the bottom bar.\n */\n async minimize() {\n if (!this.ref()) return;\n this.ref().minimize();\n }\n\n /**\n * Maximizes the modal to fullscreen.\n */\n async maximize() {\n if (!this.ref()) return;\n this.ref().maximize();\n }\n\n /**\n * Restores the modal from minimized or maximized state.\n */\n async restore() {\n if (!this.ref()) return;\n this.ref().restore();\n }\n}\n","import { AXOverlayOptions } from '@acorex/cdk/overlay';\nimport { AXComponentInputs } from '@acorex/core/components';\nimport { Directive, input } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nexport interface AXModalOptions extends AXOverlayOptions {\n title?: string;\n buttons?: {\n minimize?: {\n enable: boolean;\n position: 'bottom-right' | 'bottom-left';\n };\n maximize?: boolean;\n close?: boolean;\n };\n draggable?: boolean;\n size?: 'sm' | 'md' | 'lg' | 'full' | 'fit';\n header?: boolean;\n footer?: boolean;\n panelClass?: string;\n closeOnEscape?: boolean;\n}\n\nexport interface AXModalRef<TResult = any> {\n minimize: () => void;\n maximize: () => void;\n restore: () => void;\n close: (data?: TResult) => void;\n setInputs: (values: AXComponentInputs) => void;\n onClose: Subject<TResult>;\n}\n\n@Directive()\nexport abstract class AXModalComponentBase {\n __modal__ = input<AXModalRef>();\n\n public close(data: any = null) {\n this.__modal__().close(data);\n }\n\n public minimize() {\n this.__modal__().minimize();\n }\n\n public restore() {\n this.__modal__().restore();\n }\n\n public maximize() {\n this.__modal__().maximize();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAYa,sBAAsB,CAAA;+GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,SAAA,EAFtB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,0BCV5E,8JAIA,EAAA,MAAA,EAAA,CAAA,2MAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FDQa,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBATlC,SAAS;+BACE,iBAAiB,EAAA,OAAA,EAGlB,EAAE,EAAA,aAAA,EACI,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,aACpC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAA,sBAAwB,EAAE,CAAC,EAAA,QAAA,EAAA,8JAAA,EAAA,MAAA,EAAA,CAAA,2MAAA,CAAA,EAAA;;;MEC/D,mBAAmB,CAAA;AAHhC,IAAA,WAAA,GAAA;AAIU,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,GAAG,EAAiF;AACpG,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACjD,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAiB,IAAI,uDAAC;AAgJ3C,IAAA;AA9IC;;;;;AAKG;AACH,IAAA,MAAM,IAAI,CACR,OAAyC,EACzC,OAAwB,EAAA;AAExB,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;AAC7B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC;QACzD,MAAM,gBAAgB,GAAG,CAAC,MAAM,OAAO,gEAAyC,CAAC,EAAE,uBAAuB;AAC1G,QAAA,MAAM,OAAO,GAAG,IAAI,OAAO,EAAW;AAEtC,QAAA,MAAM,SAAS,GAAe;AAC5B,YAAA,KAAK,EAAE,CAAC,IAAI,KAAI;AACd,gBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;YAC5B,CAAC;AACD,YAAA,SAAS,EAAE,CAAC,MAAyB,KAAI;AACvC,gBAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;YAClC,CAAC;YACD,QAAQ,EAAE,MAAK;AACb,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACzB,CAAC;YACD,QAAQ,EAAE,MAAK;AACb,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACzB,CAAC;YACD,OAAO,EAAE,MAAK;AACZ,gBAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YACxB,CAAC;YACD,OAAO;SACR;QAED,MAAM,WAAW,GAAG,EAAE,IAAI,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE;AAC1F,QAAA,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC;QAEzE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE;YAC7D,QAAQ,EAAE,OAAO,EAAE,QAAQ;YAC3B,QAAQ,EAAE,OAAO,EAAE,QAAQ;AAC3B,YAAA,MAAM,EAAE;AACN,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,MAAM,EAAE;oBACN,GAAG,YAAY,EAAE,MAAM;AACxB,iBAAA;AACD,gBAAA,EAAE,EAAE,QAAQ;AACb,aAAA;AACF,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AAEhE,QAAA,OAAO,SAAS;IAClB;AAEA;;;;AAIG;AACH,IAAA,MAAM,KAAK,CAAgB,EAAU,EAAE,IAAc,EAAA;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;AAClC,QAAA,IAAI,CAAC,GAAG;YAAE;QACV,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5B,QAAA,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE;AAC9B,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3B;AAEA;;;;AAIG;AACH,IAAA,MAAM,SAAS,CAAC,EAAU,EAAE,MAAyB,EAAA;AACnD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ;AACnD,QAAA,IAAI,CAAC,GAAG;YAAE;AACV,QAAA,IAAI,GAAG,YAAY,YAAY,EAAE;YAC/B,MAAM,MAAM,GAAG,GAAwB;YACvC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AACnC,gBAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,YAAA,CAAC,CAAC;QACJ;aAAO;YACL,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;QAChC;IACF;AAEA;;;AAGG;IACH,MAAM,QAAQ,CAAC,EAAU,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ;AACnD,QAAA,IAAI,CAAC,GAAG;YAAE;AACV,QAAA,IAAI,GAAG,YAAY,YAAY,EAAE;AAC/B,YAAA,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE;QACzB;aAAO;AACL,YAAA,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE;QACxB;IACF;AAEA;;;AAGG;IACH,MAAM,QAAQ,CAAC,EAAU,EAAA;AACvB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ;AACnD,QAAA,IAAI,CAAC,GAAG;YAAE;AACV,QAAA,IAAI,GAAG,YAAY,YAAY,EAAE;AAC/B,YAAA,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE;QACzB;aAAO;AACL,YAAA,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE;QACxB;IACF;AAEA;;;AAGG;IACH,MAAM,OAAO,CAAC,EAAU,EAAA;AACtB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ;AACnD,QAAA,IAAI,CAAC,GAAG;YAAE;AACV,QAAA,IAAI,GAAG,YAAY,YAAY,EAAE;AAC/B,YAAA,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE;QACxB;aAAO;AACL,YAAA,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE;QACvB;IACF;AAEA;;;;AAIG;AACH,IAAA,aAAa,CAAC,SAAc,EAAA;QAC1B,IAAI,KAAK,GAAG,CAAC;QACb,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE;AACvC,YAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AACrB,gBAAA,OAAO,KAAK;YACd;AACA,YAAA,KAAK,EAAE;QACT;QACA,OAAO,CAAC,CAAC;IACX;+GAlJW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACeK,MAAO,gBAAiB,SAAQ,WAAW,CAAA;AAXjD,IAAA,WAAA,GAAA;;AAYU,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACnC,QAAA,IAAA,CAAA,QAAQ,GAAG,SAAS,CAAC,WAAW,oDAAC;AACnC,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAkB,IAAI,+CAAC;AAsD5C,IAAA;AApDC;;;;AAIG;IACH,MAAM,IAAI,CAAC,OAAwB,EAAA;AACjC,QAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC;AAC7D,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AACjB,QAAA,OAAO,GAAG;IACZ;AAEA;;AAEG;AACH,IAAA,MAAM,KAAK,GAAA;QACT,IAAI,IAAI,CAAC,GAAG,EAAE;YAAE;AAChB,QAAA,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE;IACpB;AAEA;;;AAGG;IACH,MAAM,SAAS,CAAC,MAAyB,EAAA;AACvC,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YAAE;AACjB,QAAA,MAAM,SAAS,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE;QACpC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC;IACjC;AAEA;;AAEG;AACH,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YAAE;AACjB,QAAA,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACvB;AAEA;;AAEG;AACH,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YAAE;AACjB,QAAA,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACvB;AAEA;;AAEG;AACH,IAAA,MAAM,OAAO,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YAAE;AACjB,QAAA,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;IACtB;+GAxDW,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAFhB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAIrC,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAXhC;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAKU,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAX5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,UAAU;AACpB,oBAAA,QAAQ,EAAE;;;;AAIT,EAAA,CAAA;oBACD,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAA,gBAAkB,EAAE,CAAC;AACrE,iBAAA;0FAGgC,WAAW,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;MCnB/B,aAAa,CAAA;+GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAHd,gBAAgB,EAAE,sBAAsB,CAAA,EAAA,OAAA,EAAA,CACxC,gBAAgB,EAAE,sBAAsB,CAAA,EAAA,CAAA,CAAA;gHAEvC,aAAa,EAAA,CAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;AACnD,oBAAA,OAAO,EAAE,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;AACpD,iBAAA;;;MCCY,cAAc,CAAA;AAH3B,IAAA,WAAA,GAAA;AAIU,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,mBAAmB,CAAC;AAC1C,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAkB,IAAI,+CAAC;AAuD5C,IAAA;AArDC;;;;;AAKG;AACH,IAAA,MAAM,IAAI,CAAC,OAAyC,EAAE,OAAwB,EAAA;AAC5E,QAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;AAC1D,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;AACjB,QAAA,OAAO,GAAG;IACZ;AAEA;;AAEG;AACH,IAAA,MAAM,KAAK,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YAAE;AACjB,QAAA,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE;IACpB;AAEA;;;AAGG;IACH,MAAM,SAAS,CAAC,MAAyB,EAAA;AACvC,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YAAE;AACjB,QAAA,MAAM,SAAS,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE;QACpC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC;IACjC;AAEA;;AAEG;AACH,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YAAE;AACjB,QAAA,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACvB;AAEA;;AAEG;AACH,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YAAE;AACjB,QAAA,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACvB;AAEA;;AAEG;AACH,IAAA,MAAM,OAAO,GAAA;AACX,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YAAE;AACjB,QAAA,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;IACtB;+GAxDW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA;;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MC0BqB,oBAAoB,CAAA;AAD1C,IAAA,WAAA,GAAA;QAEE,IAAA,CAAA,SAAS,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAc;AAiBhC,IAAA;IAfQ,KAAK,CAAC,OAAY,IAAI,EAAA;QAC3B,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;IAC9B;IAEO,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;IAC7B;IAEO,OAAO,GAAA;AACZ,QAAA,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE;IAC5B;IAEO,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE;IAC7B;+GAjBoB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADzC;;;AChCD;;AAEG;;;;"}
|