@acorex/components 21.0.0-next.13 → 21.0.0-next.15
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/editor/index.d.ts +42 -3
- package/fesm2022/acorex-components-editor.mjs +41 -32
- package/fesm2022/acorex-components-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-tree2.mjs +5 -5
- package/fesm2022/acorex-components-tree2.mjs.map +1 -1
- package/package.json +13 -13
- package/tree2/index.d.ts +1 -2
package/editor/index.d.ts
CHANGED
|
@@ -3,12 +3,48 @@ import * as i0 from '@angular/core';
|
|
|
3
3
|
import { MXInputBaseValueComponent, MXLookComponent } from '@acorex/cdk/common';
|
|
4
4
|
import { OutputData } from '@editorjs/editorjs';
|
|
5
5
|
|
|
6
|
-
type EditorJsTool = 'header' | 'list' | 'raw' | 'image' | 'quote' | '
|
|
6
|
+
type EditorJsTool = 'header' | 'list' | 'raw' | 'image' | 'quote' | 'codeBox' | 'underline' | 'color';
|
|
7
7
|
type ImageToolConfig = {
|
|
8
|
-
endpoints
|
|
8
|
+
endpoints?: {
|
|
9
9
|
byFile: string;
|
|
10
10
|
byUrl: string;
|
|
11
11
|
};
|
|
12
|
+
/** Name of the uploaded image field in POST request (default: "image") */
|
|
13
|
+
field?: string;
|
|
14
|
+
/** Mime-types of files accepted (default: "image/*") */
|
|
15
|
+
types?: string;
|
|
16
|
+
/** Extra data to send with upload requests */
|
|
17
|
+
additionalRequestData?: Record<string, any>;
|
|
18
|
+
/** Custom headers to include in upload requests */
|
|
19
|
+
additionalRequestHeaders?: Record<string, string>;
|
|
20
|
+
/** Placeholder text for the caption input (default: "Caption") */
|
|
21
|
+
captionPlaceholder?: string;
|
|
22
|
+
/** HTML content for the “Select file” button */
|
|
23
|
+
buttonContent?: string;
|
|
24
|
+
/** Custom uploader methods */
|
|
25
|
+
uploader?: {
|
|
26
|
+
uploadByFile?: (file: File) => Promise<{
|
|
27
|
+
success: number;
|
|
28
|
+
file: {
|
|
29
|
+
url: string;
|
|
30
|
+
};
|
|
31
|
+
}>;
|
|
32
|
+
uploadByUrl?: (url: string) => Promise<{
|
|
33
|
+
success: number;
|
|
34
|
+
file: {
|
|
35
|
+
url: string;
|
|
36
|
+
};
|
|
37
|
+
}>;
|
|
38
|
+
};
|
|
39
|
+
/** Custom actions for the tool's settings menu */
|
|
40
|
+
actions?: Array<Record<string, any>>;
|
|
41
|
+
/** Feature toggles (border, background, caption, etc.) */
|
|
42
|
+
features?: {
|
|
43
|
+
border?: boolean;
|
|
44
|
+
background?: boolean;
|
|
45
|
+
caption?: boolean;
|
|
46
|
+
[key: string]: any;
|
|
47
|
+
};
|
|
12
48
|
};
|
|
13
49
|
|
|
14
50
|
declare const AXEditorComponent_base: polytype.Polytype.ClusteredConstructor<[{
|
|
@@ -18,8 +54,11 @@ declare const AXEditorComponent_base: polytype.Polytype.ClusteredConstructor<[{
|
|
|
18
54
|
}, typeof MXLookComponent]>;
|
|
19
55
|
declare class AXEditorComponent extends AXEditorComponent_base {
|
|
20
56
|
#private;
|
|
57
|
+
toolLoaders: Record<EditorJsTool, () => Promise<any>>;
|
|
21
58
|
private editorHolder;
|
|
59
|
+
private platform;
|
|
22
60
|
modules: i0.InputSignal<EditorJsTool[]>;
|
|
61
|
+
imageConfig: i0.InputSignal<ImageToolConfig>;
|
|
23
62
|
private editorClass;
|
|
24
63
|
private colorConfig;
|
|
25
64
|
private markerConfig;
|
|
@@ -28,7 +67,7 @@ declare class AXEditorComponent extends AXEditorComponent_base {
|
|
|
28
67
|
private get __hostName();
|
|
29
68
|
save(): Promise<OutputData>;
|
|
30
69
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXEditorComponent, never>;
|
|
31
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AXEditorComponent, "ax-editor", never, { "look": { "alias": "look"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "modules": { "alias": "modules"; "required": false; "isSignal": true; }; }, { "onValueChanged": "onValueChanged"; }, never, ["ax-validation-rule"], true, never>;
|
|
70
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXEditorComponent, "ax-editor", never, { "look": { "alias": "look"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "modules": { "alias": "modules"; "required": false; "isSignal": true; }; "imageConfig": { "alias": "imageConfig"; "required": false; "isSignal": true; }; }, { "onValueChanged": "onValueChanged"; }, never, ["ax-validation-rule"], true, never>;
|
|
32
71
|
}
|
|
33
72
|
|
|
34
73
|
declare class EditorModule {
|
|
@@ -1,41 +1,44 @@
|
|
|
1
1
|
import { MXInputBaseValueComponent, MXLookComponent, AXComponent, AXFocusableComponent, AXValuableComponent } from '@acorex/cdk/common';
|
|
2
|
+
import { AXPlatform } from '@acorex/core/platform';
|
|
2
3
|
import { AXHtmlUtil } from '@acorex/core/utils';
|
|
3
4
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { viewChild, input, afterNextRender, forwardRef, HostBinding, ViewEncapsulation, Component, NgModule } from '@angular/core';
|
|
5
|
+
import { viewChild, inject, input, afterNextRender, forwardRef, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, Component, NgModule } from '@angular/core';
|
|
5
6
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
6
7
|
import { classes } from 'polytype';
|
|
7
8
|
|
|
8
|
-
const toolLoaders = {
|
|
9
|
-
header: () => import('@editorjs/header'),
|
|
10
|
-
list: () => import('@editorjs/list'),
|
|
11
|
-
raw: () => import('@editorjs/raw'),
|
|
12
|
-
quote: () => import('@editorjs/quote'),
|
|
13
|
-
code: () => import('@editorjs/code'),
|
|
14
|
-
underline: () => import('@editorjs/underline'),
|
|
15
|
-
color: () => import('editorjs-text-color-plugin'),
|
|
16
|
-
image: () => import('@editorjs/simple-image'),
|
|
17
|
-
// linkTool: () => import('@editorjs/link'),
|
|
18
|
-
// table: () => import('@editorjs/table'),
|
|
19
|
-
// attaches: () => import('@editorjs/attaches'),
|
|
20
|
-
// alignmentTuneTool: () => import('editorjs-text-alignment-blocktune'),
|
|
21
|
-
// hyperlink: () => import('editorjs-hyperlink'),
|
|
22
|
-
// delimiter: () => import('@editorjs/delimiter'),
|
|
23
|
-
// inlineCode: () => import('@editorjs/inline-code'),
|
|
24
|
-
// embed: () => import('@editorjs/embed'),
|
|
25
|
-
// warning: () => import('@editorjs/warning'),
|
|
26
|
-
// checklist: () => import('@editorjs/checklist'),
|
|
27
|
-
// marker: () => import('@editorjs/marker'),
|
|
28
|
-
// dragDrop: () => import('editorjs-drag-drop'),
|
|
29
|
-
// undo: () => import('editorjs-undo'),
|
|
30
|
-
// nestedList: () => import('@editorjs/nested-list'),
|
|
31
|
-
// tooltip: () => import('editorjs-tooltip'),
|
|
32
|
-
// paragraphWithAlignment: () => import('editorjs-paragraph-with-alignment'),
|
|
33
|
-
};
|
|
34
9
|
class AXEditorComponent extends classes((MXInputBaseValueComponent), MXLookComponent) {
|
|
35
10
|
constructor() {
|
|
36
11
|
super(...arguments);
|
|
12
|
+
this.toolLoaders = {
|
|
13
|
+
header: () => import('@editorjs/header'),
|
|
14
|
+
list: () => import('@editorjs/list'),
|
|
15
|
+
raw: () => import('@editorjs/raw'),
|
|
16
|
+
quote: () => import('@editorjs/quote'),
|
|
17
|
+
codeBox: () => import('@bomdi/codebox'),
|
|
18
|
+
underline: () => import('@editorjs/underline'),
|
|
19
|
+
color: () => import('editorjs-text-color-plugin'),
|
|
20
|
+
image: () => import('@editorjs/image'),
|
|
21
|
+
// linkTool: () => import('@editorjs/link'),
|
|
22
|
+
// table: () => import('@editorjs/table'),
|
|
23
|
+
// attaches: () => import('@editorjs/attaches'),
|
|
24
|
+
// alignmentTuneTool: () => import('editorjs-text-alignment-blocktune'),
|
|
25
|
+
// hyperlink: () => import('editorjs-hyperlink'),
|
|
26
|
+
// delimiter: () => import('@editorjs/delimiter'),
|
|
27
|
+
// inlineCode: () => import('@editorjs/inline-code'),
|
|
28
|
+
// embed: () => import('@editorjs/embed'),
|
|
29
|
+
// warning: () => import('@editorjs/warning'),
|
|
30
|
+
// checklist: () => import('@editorjs/checklist'),
|
|
31
|
+
// marker: () => import('@editorjs/marker'),
|
|
32
|
+
// dragDrop: () => import('editorjs-drag-drop'),
|
|
33
|
+
// undo: () => import('editorjs-undo'),
|
|
34
|
+
// nestedList: () => import('@editorjs/nested-list'),
|
|
35
|
+
// tooltip: () => import('editorjs-tooltip'),
|
|
36
|
+
// paragraphWithAlignment: () => import('editorjs-paragraph-with-alignment'),
|
|
37
|
+
};
|
|
37
38
|
this.editorHolder = viewChild('r', ...(ngDevMode ? [{ debugName: "editorHolder" }] : []));
|
|
39
|
+
this.platform = inject(AXPlatform);
|
|
38
40
|
this.modules = input([], ...(ngDevMode ? [{ debugName: "modules" }] : []));
|
|
41
|
+
this.imageConfig = input(...(ngDevMode ? [undefined, { debugName: "imageConfig" }] : []));
|
|
39
42
|
this.colorConfig = {
|
|
40
43
|
defaultColor: '#FF1300',
|
|
41
44
|
type: 'text',
|
|
@@ -65,6 +68,12 @@ class AXEditorComponent extends classes((MXInputBaseValueComponent), MXLookCompo
|
|
|
65
68
|
tools['color'].config = this.colorConfig;
|
|
66
69
|
tools['marker'].config = this.markerConfig;
|
|
67
70
|
}
|
|
71
|
+
if (tools['image'] && this.imageConfig()) {
|
|
72
|
+
tools['image'].config = this.imageConfig();
|
|
73
|
+
}
|
|
74
|
+
if (tools['codeBox']) {
|
|
75
|
+
tools['codeBox'].config = { useDefaultTheme: this.platform.themeMode() };
|
|
76
|
+
}
|
|
68
77
|
const EditorJS = (await import('@editorjs/editorjs')).default;
|
|
69
78
|
this.editorClass = new EditorJS({
|
|
70
79
|
holder: this.editorHolder().nativeElement,
|
|
@@ -86,7 +95,7 @@ class AXEditorComponent extends classes((MXInputBaseValueComponent), MXLookCompo
|
|
|
86
95
|
async loadEditorJsTools(selectedTools) {
|
|
87
96
|
const results = await Promise.all(selectedTools.map(async (name) => {
|
|
88
97
|
try {
|
|
89
|
-
const mod = await toolLoaders[name]();
|
|
98
|
+
const mod = await this.toolLoaders[name]();
|
|
90
99
|
return [name, mod.default ?? mod];
|
|
91
100
|
}
|
|
92
101
|
catch (error) {
|
|
@@ -113,7 +122,7 @@ class AXEditorComponent extends classes((MXInputBaseValueComponent), MXLookCompo
|
|
|
113
122
|
return resolve;
|
|
114
123
|
}
|
|
115
124
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: AXEditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
116
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.6", type: AXEditorComponent, isStandalone: true, selector: "ax-editor", inputs: { look: { classPropertyName: "look", publicName: "look", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, modules: { classPropertyName: "modules", publicName: "modules", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onValueChanged: "onValueChanged" }, host: { properties: { "class": "this.__hostClass", "attr.name": "this.__hostName" } }, providers: [
|
|
125
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.3.6", type: AXEditorComponent, isStandalone: true, selector: "ax-editor", inputs: { look: { classPropertyName: "look", publicName: "look", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, modules: { classPropertyName: "modules", publicName: "modules", isSignal: true, isRequired: false, transformFunction: null }, imageConfig: { classPropertyName: "imageConfig", publicName: "imageConfig", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onValueChanged: "onValueChanged" }, host: { properties: { "class": "this.__hostClass", "attr.name": "this.__hostName" } }, providers: [
|
|
117
126
|
{ provide: AXComponent, useExisting: AXEditorComponent },
|
|
118
127
|
{ provide: AXFocusableComponent, useExisting: AXEditorComponent },
|
|
119
128
|
{ provide: AXValuableComponent, useExisting: AXEditorComponent },
|
|
@@ -128,7 +137,7 @@ class AXEditorComponent extends classes((MXInputBaseValueComponent), MXLookCompo
|
|
|
128
137
|
</div>
|
|
129
138
|
<ng-content select="ax-validation-rule"> </ng-content>
|
|
130
139
|
<div class="ax-error-container"></div>
|
|
131
|
-
`, isInline: true, styles: ["ax-editor>.ax-editor-container{display:block;height:fit-content!important}ax-editor.ax-rtl .ce-toolbar__actions{left:100%;right:auto}ax-editor.ax-disable{opacity:.5;cursor:not-allowed}ax-editor .ce-inline-toolbar{background-color:rgba(var(--ax-sys-color-surface))}ax-editor .colorPlugin svg{fill:rgba(var(--ax-sys-color-on-surface))!important}ax-editor .ce-inline-toolbar{border:1px solid rgba(var(--ax-sys-color-border-surface))}ax-editor .ce-toolbar__plus{color:unset}ax-editor .ce-popover{background:rgba(var(--ax-sys-color-darker-surface))}ax-editor .ce-popover-item{color:unset}ax-editor .ce-popover--opened{border:1px solid rgba(var(--ax-sys-color-border-surface))}ax-editor .ce-popover-item__icon{background:unset}ax-editor .cdx-search-field{background:unset}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
|
140
|
+
`, isInline: true, styles: ["ax-editor>.ax-editor-container{display:block;height:fit-content!important}ax-editor.ax-rtl .ce-toolbar__actions{left:100%;right:auto}ax-editor.ax-disable{opacity:.5;cursor:not-allowed}ax-editor .ce-inline-toolbar{background-color:rgba(var(--ax-sys-color-surface))}ax-editor .colorPlugin svg{fill:rgba(var(--ax-sys-color-on-surface))!important}ax-editor .ce-inline-toolbar{border:1px solid rgba(var(--ax-sys-color-border-surface))}ax-editor .ce-toolbar__plus{color:unset}ax-editor .ce-popover{background:rgba(var(--ax-sys-color-darker-surface))}ax-editor .ce-popover-item{color:unset}ax-editor .ce-popover--opened{border:1px solid rgba(var(--ax-sys-color-border-surface))}ax-editor .ce-popover-item__icon{background:unset}ax-editor .cdx-search-field{background:unset}ax-editor .ce-popover-item:hover:not(.ce-popover-item--no-hover){background-color:rgba(var(--ax-sys-color-lightest-surface))}ax-editor .ce-toolbar__plus:hover{background-color:rgba(var(--ax-sys-color-darkest-surface))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
132
141
|
}
|
|
133
142
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: AXEditorComponent, decorators: [{
|
|
134
143
|
type: Component,
|
|
@@ -147,8 +156,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
147
156
|
useExisting: forwardRef(() => AXEditorComponent),
|
|
148
157
|
multi: true,
|
|
149
158
|
},
|
|
150
|
-
], inputs: ['look', 'readonly', 'disabled'], outputs: ['onValueChanged'], encapsulation: ViewEncapsulation.None, styles: ["ax-editor>.ax-editor-container{display:block;height:fit-content!important}ax-editor.ax-rtl .ce-toolbar__actions{left:100%;right:auto}ax-editor.ax-disable{opacity:.5;cursor:not-allowed}ax-editor .ce-inline-toolbar{background-color:rgba(var(--ax-sys-color-surface))}ax-editor .colorPlugin svg{fill:rgba(var(--ax-sys-color-on-surface))!important}ax-editor .ce-inline-toolbar{border:1px solid rgba(var(--ax-sys-color-border-surface))}ax-editor .ce-toolbar__plus{color:unset}ax-editor .ce-popover{background:rgba(var(--ax-sys-color-darker-surface))}ax-editor .ce-popover-item{color:unset}ax-editor .ce-popover--opened{border:1px solid rgba(var(--ax-sys-color-border-surface))}ax-editor .ce-popover-item__icon{background:unset}ax-editor .cdx-search-field{background:unset}\n"] }]
|
|
151
|
-
}], propDecorators: { editorHolder: [{ type: i0.ViewChild, args: ['r', { isSignal: true }] }], modules: [{ type: i0.Input, args: [{ isSignal: true, alias: "modules", required: false }] }], __hostClass: [{
|
|
159
|
+
], inputs: ['look', 'readonly', 'disabled'], outputs: ['onValueChanged'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: ["ax-editor>.ax-editor-container{display:block;height:fit-content!important}ax-editor.ax-rtl .ce-toolbar__actions{left:100%;right:auto}ax-editor.ax-disable{opacity:.5;cursor:not-allowed}ax-editor .ce-inline-toolbar{background-color:rgba(var(--ax-sys-color-surface))}ax-editor .colorPlugin svg{fill:rgba(var(--ax-sys-color-on-surface))!important}ax-editor .ce-inline-toolbar{border:1px solid rgba(var(--ax-sys-color-border-surface))}ax-editor .ce-toolbar__plus{color:unset}ax-editor .ce-popover{background:rgba(var(--ax-sys-color-darker-surface))}ax-editor .ce-popover-item{color:unset}ax-editor .ce-popover--opened{border:1px solid rgba(var(--ax-sys-color-border-surface))}ax-editor .ce-popover-item__icon{background:unset}ax-editor .cdx-search-field{background:unset}ax-editor .ce-popover-item:hover:not(.ce-popover-item--no-hover){background-color:rgba(var(--ax-sys-color-lightest-surface))}ax-editor .ce-toolbar__plus:hover{background-color:rgba(var(--ax-sys-color-darkest-surface))}\n"] }]
|
|
160
|
+
}], propDecorators: { editorHolder: [{ type: i0.ViewChild, args: ['r', { isSignal: true }] }], modules: [{ type: i0.Input, args: [{ isSignal: true, alias: "modules", required: false }] }], imageConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "imageConfig", required: false }] }], __hostClass: [{
|
|
152
161
|
type: HostBinding,
|
|
153
162
|
args: ['class']
|
|
154
163
|
}], __hostName: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-editor.mjs","sources":["../tmp-esm2022/editor/lib/editor.component.js","../tmp-esm2022/editor/lib/editor.module.js","../tmp-esm2022/editor/acorex-components-editor.js"],"sourcesContent":["import { AXComponent, AXFocusableComponent, AXValuableComponent, MXInputBaseValueComponent, MXLookComponent, } from '@acorex/cdk/common';\nimport { AXHtmlUtil } from '@acorex/core/utils';\nimport { afterNextRender, Component, forwardRef, HostBinding, input, viewChild, ViewEncapsulation, } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport * as i0 from \"@angular/core\";\nconst toolLoaders = {\n header: () => import('@editorjs/header'),\n list: () => import('@editorjs/list'),\n raw: () => import('@editorjs/raw'),\n quote: () => import('@editorjs/quote'),\n code: () => import('@editorjs/code'),\n underline: () => import('@editorjs/underline'),\n color: () => import('editorjs-text-color-plugin'),\n image: () => import('@editorjs/simple-image'),\n // linkTool: () => import('@editorjs/link'),\n // table: () => import('@editorjs/table'),\n // attaches: () => import('@editorjs/attaches'),\n // alignmentTuneTool: () => import('editorjs-text-alignment-blocktune'),\n // hyperlink: () => import('editorjs-hyperlink'),\n // delimiter: () => import('@editorjs/delimiter'),\n // inlineCode: () => import('@editorjs/inline-code'),\n // embed: () => import('@editorjs/embed'),\n // warning: () => import('@editorjs/warning'),\n // checklist: () => import('@editorjs/checklist'),\n // marker: () => import('@editorjs/marker'),\n // dragDrop: () => import('editorjs-drag-drop'),\n // undo: () => import('editorjs-undo'),\n // nestedList: () => import('@editorjs/nested-list'),\n // tooltip: () => import('editorjs-tooltip'),\n // paragraphWithAlignment: () => import('editorjs-paragraph-with-alignment'),\n};\nexport class AXEditorComponent extends classes((MXInputBaseValueComponent), MXLookComponent) {\n constructor() {\n super(...arguments);\n this.editorHolder = viewChild('r', ...(ngDevMode ? [{ debugName: \"editorHolder\" }] : []));\n this.modules = input([], ...(ngDevMode ? [{ debugName: \"modules\" }] : []));\n this.colorConfig = {\n defaultColor: '#FF1300',\n type: 'text',\n customPicker: true,\n colorCollections: [\n '#EC7878',\n '#9C27B0',\n '#673AB7',\n '#3F51B5',\n '#0070FF',\n '#03A9F4',\n '#00BCD4',\n '#4CAF50',\n '#8BC34A',\n '#CDDC39',\n '#FFF',\n ],\n };\n this.markerConfig = {\n defaultColor: '#FFBF00',\n type: 'marker',\n };\n this.#init = afterNextRender(async () => {\n const tools = await this.loadEditorJsTools(this.modules());\n if (tools['color']) {\n tools['marker'] = { ...tools['color'] };\n tools['color'].config = this.colorConfig;\n tools['marker'].config = this.markerConfig;\n }\n const EditorJS = (await import('@editorjs/editorjs')).default;\n this.editorClass = new EditorJS({\n holder: this.editorHolder().nativeElement,\n tools,\n onChange: async (e) => {\n const content = await e.saver.save();\n if (content.blocks.length) {\n this.commitValue(content, true);\n }\n else {\n this.commitValue(null, true);\n }\n },\n data: this.value,\n readOnly: this.readonly || this.disabled,\n });\n });\n }\n async loadEditorJsTools(selectedTools) {\n const results = await Promise.all(selectedTools.map(async (name) => {\n try {\n const mod = await toolLoaders[name]();\n return [name, mod.default ?? mod];\n }\n catch (error) {\n console.error(`❌ Failed to load ${name}:`, error);\n return null;\n }\n }));\n return Object.fromEntries(results.map(([key, value]) => [key, { class: value }]));\n }\n #init;\n get __hostClass() {\n const style = [];\n if (this.disabled)\n style.push('ax-disable');\n if (AXHtmlUtil.isRtl())\n style.push('ax-rtl');\n return style;\n }\n get __hostName() {\n return this.name;\n }\n async save() {\n const resolve = await this.editorClass.save();\n return resolve;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXEditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.3.6\", type: AXEditorComponent, isStandalone: true, selector: \"ax-editor\", inputs: { look: { classPropertyName: \"look\", publicName: \"look\", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: \"readonly\", publicName: \"readonly\", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: false, isRequired: false, transformFunction: null }, modules: { classPropertyName: \"modules\", publicName: \"modules\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onValueChanged: \"onValueChanged\" }, host: { properties: { \"class\": \"this.__hostClass\", \"attr.name\": \"this.__hostName\" } }, providers: [\n { provide: AXComponent, useExisting: AXEditorComponent },\n { provide: AXFocusableComponent, useExisting: AXEditorComponent },\n { provide: AXValuableComponent, useExisting: AXEditorComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXEditorComponent),\n multi: true,\n },\n ], viewQueries: [{ propertyName: \"editorHolder\", first: true, predicate: [\"r\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `\n <div class=\"ax-editor-container ax-{{ look }}\">\n <div class=\"ax-editor-holder\" #r></div>\n </div>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n <div class=\"ax-error-container\"></div>\n `, isInline: true, styles: [\"ax-editor>.ax-editor-container{display:block;height:fit-content!important}ax-editor.ax-rtl .ce-toolbar__actions{left:100%;right:auto}ax-editor.ax-disable{opacity:.5;cursor:not-allowed}ax-editor .ce-inline-toolbar{background-color:rgba(var(--ax-sys-color-surface))}ax-editor .colorPlugin svg{fill:rgba(var(--ax-sys-color-on-surface))!important}ax-editor .ce-inline-toolbar{border:1px solid rgba(var(--ax-sys-color-border-surface))}ax-editor .ce-toolbar__plus{color:unset}ax-editor .ce-popover{background:rgba(var(--ax-sys-color-darker-surface))}ax-editor .ce-popover-item{color:unset}ax-editor .ce-popover--opened{border:1px solid rgba(var(--ax-sys-color-border-surface))}ax-editor .ce-popover-item__icon{background:unset}ax-editor .cdx-search-field{background:unset}\\n\"], encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXEditorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-editor', template: `\n <div class=\"ax-editor-container ax-{{ look }}\">\n <div class=\"ax-editor-holder\" #r></div>\n </div>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n <div class=\"ax-error-container\"></div>\n `, providers: [\n { provide: AXComponent, useExisting: AXEditorComponent },\n { provide: AXFocusableComponent, useExisting: AXEditorComponent },\n { provide: AXValuableComponent, useExisting: AXEditorComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXEditorComponent),\n multi: true,\n },\n ], inputs: ['look', 'readonly', 'disabled'], outputs: ['onValueChanged'], encapsulation: ViewEncapsulation.None, styles: [\"ax-editor>.ax-editor-container{display:block;height:fit-content!important}ax-editor.ax-rtl .ce-toolbar__actions{left:100%;right:auto}ax-editor.ax-disable{opacity:.5;cursor:not-allowed}ax-editor .ce-inline-toolbar{background-color:rgba(var(--ax-sys-color-surface))}ax-editor .colorPlugin svg{fill:rgba(var(--ax-sys-color-on-surface))!important}ax-editor .ce-inline-toolbar{border:1px solid rgba(var(--ax-sys-color-border-surface))}ax-editor .ce-toolbar__plus{color:unset}ax-editor .ce-popover{background:rgba(var(--ax-sys-color-darker-surface))}ax-editor .ce-popover-item{color:unset}ax-editor .ce-popover--opened{border:1px solid rgba(var(--ax-sys-color-border-surface))}ax-editor .ce-popover-item__icon{background:unset}ax-editor .cdx-search-field{background:unset}\\n\"] }]\n }], propDecorators: { editorHolder: [{ type: i0.ViewChild, args: ['r', { isSignal: true }] }], modules: [{ type: i0.Input, args: [{ isSignal: true, alias: \"modules\", required: false }] }], __hostClass: [{\n type: HostBinding,\n args: ['class']\n }], __hostName: [{\n type: HostBinding,\n args: ['attr.name']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZWRpdG9yL3NyYy9saWIvZWRpdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIseUJBQXlCLEVBQ3pCLGVBQWUsR0FDaEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUNMLGVBQWUsRUFDZixTQUFTLEVBRVQsVUFBVSxFQUNWLFdBQVcsRUFDWCxLQUFLLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUduRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUduQyxNQUFNLFdBQVcsR0FBNkM7SUFDNUQsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQztJQUN4QyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDO0lBQ3BDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDO0lBQ2xDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUM7SUFDdEMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztJQUNwQyxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDO0lBQzlDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsNEJBQTRCLENBQUM7SUFDakQsS0FBSyxFQUFF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ZGpCO1lBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRTtZQUN4RCxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUU7WUFDakUsRUFBRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFO1lBQ2hFO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7Z0JBQ2hELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixvS0FqQlM7Ozs7OztHQU1UOzsyRkFnQlUsaUJBQWlCO2tCQXhCN0IsU0FBUzsrQkFDRSxXQUFXLFlBQ1g7Ozs7OztHQU1ULGFBRVU7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsbUJBQW1CLEVBQUU7d0JBQ3hELEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsbUJBQW1CLEVBQUU7d0JBQ2pFLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsbUJBQW1CLEVBQUU7d0JBQ2hFOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDOzRCQUNoRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixVQUNPLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsV0FDL0IsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFDWixpQkFBaUIsQ0FBQyxJQUFJOzBFQUd3QixHQUFHO3NCQXlFL0QsV0FBVzt1QkFBQyxPQUFPOztzQkFRbkIsV0FBVzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhDb21wb25lbnQsXG4gIEFYRm9jdXNhYmxlQ29tcG9uZW50LFxuICBBWFZhbHVhYmxlQ29tcG9uZW50LFxuICBNWElucHV0QmFzZVZhbHVlQ29tcG9uZW50LFxuICBNWExvb2tDb21wb25lbnQsXG59IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWEh0bWxVdGlsIH0gZnJvbSAnQGFjb3JleC9jb3JlL3V0aWxzJztcbmltcG9ydCB7XG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgaW5wdXQsXG4gIHZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgdHlwZSBFZGl0b3JKUyBmcm9tICdAZWRpdG9yanMvZWRpdG9yanMnO1xuaW1wb3J0IHR5cGUgeyBPdXRwdXREYXRhIH0gZnJvbSAnQGVkaXRvcmpzL2VkaXRvcmpzJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICdwb2x5dHlwZSc7XG5pbXBvcnQgeyBFZGl0b3JKc1Rvb2wgfSBmcm9tICcuL2VkaXRvci50eXBlJztcblxuY29uc3QgdG9vbExvYWRlcnM6IFJlY29yZDxFZGl0b3JKc1Rvb2wsICgpID0+IFByb21pc2U8YW55Pj4gPSB7XG4gIGhlYWRlcjogKCkgPT4gaW1wb3J0KCdAZWRpdG9yanMvaGVhZGVyJyksXG4gIGxpc3Q6ICgpID0+IGltcG9ydCgnQGVkaXRvcmpzL2xpc3QnKSxcbiAgcmF3OiAoKSA9PiBpbXBvcnQoJ0BlZGl0b3Jqcy9yYXcnKSxcbiAgcXVvdGU6ICgpID0+IGltcG9ydCgnQGVkaXRvcmpzL3F1b3RlJyksXG4gIGNvZGU6ICgpID0+IGltcG9ydCgnQGVkaXRvcmpzL2NvZGUnKSxcbiAgdW5kZXJsaW5lOiAoKSA9PiBpbXBvcnQoJ0BlZGl0b3Jqcy91bmRlcmxpbmUnKSxcbiAgY29sb3I6ICgpID0+IGltcG9ydCgnZWRpdG9yanMtdGV4dC1jb2xvci1wbHVnaW4nKSxcbiAgaW1hZ2U6ICgpID0+IGltcG9ydCgnQGVkaXRvcmpzL3NpbXBsZS1pbWFnZScpLFxuICAvLyBsaW5rVG9vbDogKCkgPT4gaW1wb3J0KCdAZWRpdG9yanMvbGluaycpLFxuICAvLyB0YWJsZTogKCkgPT4gaW1wb3J0KCdAZWRpdG9yanMvdGFibGUnKSxcbiAgLy8gYXR0YWNoZXM6ICgpID0+IGltcG9ydCgnQGVkaXRvcmpzL2F0dGFjaGVzJyksXG4gIC8vIGFsaWdubWVudFR1bmVUb29sOiAoKSA9PiBpbXBvcnQoJ2VkaXRvcmpzLXRleHQtYWxpZ25tZW50LWJsb2NrdHVuZScpLFxuICAvLyBoeXBlcmxpbms6ICgpID0+IGltcG9ydCgnZWRpdG9yanMtaHlwZXJsaW5rJyksXG4gIC8vIGRlbGltaXRlcjogKCkgPT4gaW1wb3J0KCdAZWRpdG9yanMvZGVsaW1pdGVyJyksXG4gIC8vIGlubGluZUNvZGU6ICgpID0+IGltcG9ydCgnQGVkaXRvcmpzL2lubGluZS1jb2RlJyksXG4gIC8vIGVtYmVkOiAoKSA9PiBpbXBvcnQoJ0BlZGl0b3Jqcy9lbWJlZCcpLFxuICAvLyB3YXJuaW5nOiAoKSA9PiBpbXBvcnQoJ0BlZGl0b3Jqcy93YXJuaW5nJyksXG4gIC8vIGNoZWNrbGlzdDogKCkgPT4gaW1wb3J0KCdAZWRpdG9yanMvY2hlY2tsaXN0JyksXG4gIC8vIG1hcmtlcjogKCkgPT4gaW1wb3J0KCdAZWRpdG9yanMvbWFya2VyJyksXG4gIC8vIGRyYWdEcm9wOiAoKSA9PiBpbXBvcnQoJ2VkaXRvcmpzLWRyYWctZHJvcCcpLFxuICAvLyB1bmRvOiAoKSA9PiBpbXBvcnQoJ2VkaXRvcmpzLXVuZG8nKSxcbiAgLy8gbmVzdGVkTGlzdDogKCkgPT4gaW1wb3J0KCdAZWRpdG9yanMvbmVzdGVkLWxpc3QnKSxcbiAgLy8gdG9vbHRpcDogKCkgPT4gaW1wb3J0KCdlZGl0b3Jqcy10b29sdGlwJyksXG4gIC8vIHBhcmFncmFwaFdpdGhBbGlnbm1lbnQ6ICgpID0+IGltcG9ydCgnZWRpdG9yanMtcGFyYWdyYXBoLXdpdGgtYWxpZ25tZW50JyksXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1lZGl0b3InLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJheC1lZGl0b3ItY29udGFpbmVyIGF4LXt7IGxvb2sgfX1cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJheC1lZGl0b3ItaG9sZGVyXCIgI3I+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+IDwvbmctY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZXJyb3ItY29udGFpbmVyXCI+PC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsOiAnLi9lZGl0b3IuY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhFZGl0b3JDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhFZGl0b3JDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWEVkaXRvckNvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhFZGl0b3JDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgaW5wdXRzOiBbJ2xvb2snLCAncmVhZG9ubHknLCAnZGlzYWJsZWQnXSxcbiAgb3V0cHV0czogWydvblZhbHVlQ2hhbmdlZCddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBWEVkaXRvckNvbXBvbmVudCBleHRlbmRzIGNsYXNzZXMoTVhJbnB1dEJhc2VWYWx1ZUNvbXBvbmVudDxPdXRwdXREYXRhPiwgTVhMb29rQ29tcG9uZW50KSB7XG4gIHByaXZhdGUgZWRpdG9ySG9sZGVyID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PigncicpO1xuXG4gIG1vZHVsZXMgPSBpbnB1dDxFZGl0b3JKc1Rvb2xbXT4oW10pO1xuXG4gIHByaXZhdGUgZWRpdG9yQ2xhc3M6IEVkaXRvckpTO1xuXG4gIHByaXZhdGUgY29sb3JDb25maWc6IGFueSA9IHtcbiAgICBkZWZhdWx0Q29sb3I6ICcjRkYxMzAwJyxcbiAgICB0eXBlOiAndGV4dCcsXG4gICAgY3VzdG9tUGlja2VyOiB0cnVlLFxuICAgIGNvbG9yQ29sbGVjdGlvbnM6IFtcbiAgICAgICcjRUM3ODc4JyxcbiAgICAgICcjOUMyN0IwJyxcbiAgICAgICcjNjczQUI3JyxcbiAgICAgICcjM0Y1MUI1JyxcbiAgICAgICcjMDA3MEZGJyxcbiAgICAgICcjMDNBOUY0JyxcbiAgICAgICcjMDBCQ0Q0JyxcbiAgICAgICcjNENBRjUwJyxcbiAgICAgICcjOEJDMzRBJyxcbiAgICAgICcjQ0REQzM5JyxcbiAgICAgICcjRkZGJyxcbiAgICBdLFxuICB9O1xuXG4gIHByaXZhdGUgbWFya2VyQ29uZmlnOiBhbnkgPSB7XG4gICAgZGVmYXVsdENvbG9yOiAnI0ZGQkYwMCcsXG4gICAgdHlwZTogJ21hcmtlcicsXG4gIH07XG5cbiAgYXN5bmMgbG9hZEVkaXRvckpzVG9vbHMoc2VsZWN0ZWRUb29sczogRWRpdG9ySnNUb29sW10pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBzZWxlY3RlZFRvb2xzLm1hcChhc3luYyAobmFtZSkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IG1vZCA9IGF3YWl0IHRvb2xMb2FkZXJzW25hbWVdKCk7XG4gICAgICAgICAgcmV0dXJuIFtuYW1lLCBtb2QuZGVmYXVsdCA/PyBtb2RdO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYOKdjCBGYWlsZWQgdG8gbG9hZCAke25hbWV9OmAsIGVycm9yKTtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKTtcblxuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMocmVzdWx0cy5tYXAoKFtrZXksIHZhbHVlXSkgPT4gW2tleSwgeyBjbGFzczogdmFsdWUgfV0pKTtcbiAgfVxuXG4gICNpbml0ID0gYWZ0ZXJOZXh0UmVuZGVyKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB0b29scyA9IGF3YWl0IHRoaXMubG9hZEVkaXRvckpzVG9vbHModGhpcy5tb2R1bGVzKCkpO1xuXG4gICAgaWYgKHRvb2xzWydjb2xvciddKSB7XG4gICAgICB0b29sc1snbWFya2VyJ10gPSB7IC4uLnRvb2xzWydjb2xvciddIH07XG4gICAgICB0b29sc1snY29sb3InXS5jb25maWcgPSB0aGlzLmNvbG9yQ29uZmlnO1xuICAgICAgdG9vbHNbJ21hcmtlciddLmNvbmZpZyA9IHRoaXMubWFya2VyQ29uZmlnO1xuICAgIH1cblxuICAgIGNvbnN0IEVkaXRvckpTID0gKGF3YWl0IGltcG9ydCgnQGVkaXRvcmpzL2VkaXRvcmpzJykpLmRlZmF1bHQ7XG5cbiAgICB0aGlzLmVkaXRvckNsYXNzID0gbmV3IEVkaXRvckpTKHtcbiAgICAgIGhvbGRlcjogdGhpcy5lZGl0b3JIb2xkZXIoKS5uYXRpdmVFbGVtZW50LFxuICAgICAgdG9vbHMsXG4gICAgICBvbkNoYW5nZTogYXN5bmMgKGUpID0+IHtcbiAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IGUuc2F2ZXIuc2F2ZSgpO1xuICAgICAgICBpZiAoY29udGVudC5ibG9ja3MubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5jb21taXRWYWx1ZShjb250ZW50LCB0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNvbW1pdFZhbHVlKG51bGwsIHRydWUpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZGF0YTogdGhpcy52YWx1ZSxcbiAgICAgIHJlYWRPbmx5OiB0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZGlzYWJsZWQsXG4gICAgfSk7XG4gIH0pO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwcml2YXRlIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3Qgc3R5bGUgPSBbXTtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgc3R5bGUucHVzaCgnYXgtZGlzYWJsZScpO1xuICAgIGlmIChBWEh0bWxVdGlsLmlzUnRsKCkpIHN0eWxlLnB1c2goJ2F4LXJ0bCcpO1xuICAgIHJldHVybiBzdHlsZTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5uYW1lJylcbiAgcHJpdmF0ZSBnZXQgX19ob3N0TmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBhc3luYyBzYXZlKCkge1xuICAgIGNvbnN0IHJlc29sdmUgPSBhd2FpdCB0aGlzLmVkaXRvckNsYXNzLnNhdmUoKTtcbiAgICByZXR1cm4gcmVzb2x2ZTtcbiAgfVxufVxuIl19","import { NgModule } from '@angular/core';\nimport { AXEditorComponent } from './editor.component';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [AXEditorComponent];\nconst MODULES = [];\nexport class EditorModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: EditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.6\", ngImport: i0, type: EditorModule, imports: [AXEditorComponent], exports: [AXEditorComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: EditorModule, imports: [MODULES] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: EditorModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZWRpdG9yL3NyYy9saWIvZWRpdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUV2RCxNQUFNLFNBQVMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFFdEMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0FBT25CLE1BQU0sT0FBTyxZQUFZOzhHQUFaLFlBQVk7K0dBQVosWUFBWSxZQVROLGlCQUFpQixhQUFqQixpQkFBaUI7K0dBU3ZCLFlBQVksWUFKVixPQUFPOzsyRkFJVCxZQUFZO2tCQUx4QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDdkIsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2VkaXRvci5jb21wb25lbnQnO1xuXG5jb25zdCBDT01QT05FTlQgPSBbQVhFZGl0b3JDb21wb25lbnRdO1xuXG5jb25zdCBNT0RVTEVTID0gW107XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFsuLi5NT0RVTEVTLCAuLi5DT01QT05FTlRdLFxuICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UXSxcbiAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgRWRpdG9yTW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtZWRpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9lZGl0b3Ivc3JjL2Fjb3JleC1jb21wb25lbnRzLWVkaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-components-editor.mjs","sources":["../tmp-esm2022/editor/lib/editor.component.js","../tmp-esm2022/editor/lib/editor.module.js","../tmp-esm2022/editor/acorex-components-editor.js"],"sourcesContent":["import { AXComponent, AXFocusableComponent, AXValuableComponent, MXInputBaseValueComponent, MXLookComponent, } from '@acorex/cdk/common';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXHtmlUtil } from '@acorex/core/utils';\nimport { afterNextRender, ChangeDetectionStrategy, Component, forwardRef, HostBinding, inject, input, viewChild, ViewEncapsulation, } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { classes } from 'polytype';\nimport * as i0 from \"@angular/core\";\nexport class AXEditorComponent extends classes((MXInputBaseValueComponent), MXLookComponent) {\n constructor() {\n super(...arguments);\n this.toolLoaders = {\n header: () => import('@editorjs/header'),\n list: () => import('@editorjs/list'),\n raw: () => import('@editorjs/raw'),\n quote: () => import('@editorjs/quote'),\n codeBox: () => import('@bomdi/codebox'),\n underline: () => import('@editorjs/underline'),\n color: () => import('editorjs-text-color-plugin'),\n image: () => import('@editorjs/image'),\n // linkTool: () => import('@editorjs/link'),\n // table: () => import('@editorjs/table'),\n // attaches: () => import('@editorjs/attaches'),\n // alignmentTuneTool: () => import('editorjs-text-alignment-blocktune'),\n // hyperlink: () => import('editorjs-hyperlink'),\n // delimiter: () => import('@editorjs/delimiter'),\n // inlineCode: () => import('@editorjs/inline-code'),\n // embed: () => import('@editorjs/embed'),\n // warning: () => import('@editorjs/warning'),\n // checklist: () => import('@editorjs/checklist'),\n // marker: () => import('@editorjs/marker'),\n // dragDrop: () => import('editorjs-drag-drop'),\n // undo: () => import('editorjs-undo'),\n // nestedList: () => import('@editorjs/nested-list'),\n // tooltip: () => import('editorjs-tooltip'),\n // paragraphWithAlignment: () => import('editorjs-paragraph-with-alignment'),\n };\n this.editorHolder = viewChild('r', ...(ngDevMode ? [{ debugName: \"editorHolder\" }] : []));\n this.platform = inject(AXPlatform);\n this.modules = input([], ...(ngDevMode ? [{ debugName: \"modules\" }] : []));\n this.imageConfig = input(...(ngDevMode ? [undefined, { debugName: \"imageConfig\" }] : []));\n this.colorConfig = {\n defaultColor: '#FF1300',\n type: 'text',\n customPicker: true,\n colorCollections: [\n '#EC7878',\n '#9C27B0',\n '#673AB7',\n '#3F51B5',\n '#0070FF',\n '#03A9F4',\n '#00BCD4',\n '#4CAF50',\n '#8BC34A',\n '#CDDC39',\n '#FFF',\n ],\n };\n this.markerConfig = {\n defaultColor: '#FFBF00',\n type: 'marker',\n };\n this.#init = afterNextRender(async () => {\n const tools = await this.loadEditorJsTools(this.modules());\n if (tools['color']) {\n tools['marker'] = { ...tools['color'] };\n tools['color'].config = this.colorConfig;\n tools['marker'].config = this.markerConfig;\n }\n if (tools['image'] && this.imageConfig()) {\n tools['image'].config = this.imageConfig();\n }\n if (tools['codeBox']) {\n tools['codeBox'].config = { useDefaultTheme: this.platform.themeMode() };\n }\n const EditorJS = (await import('@editorjs/editorjs')).default;\n this.editorClass = new EditorJS({\n holder: this.editorHolder().nativeElement,\n tools,\n onChange: async (e) => {\n const content = await e.saver.save();\n if (content.blocks.length) {\n this.commitValue(content, true);\n }\n else {\n this.commitValue(null, true);\n }\n },\n data: this.value,\n readOnly: this.readonly || this.disabled,\n });\n });\n }\n async loadEditorJsTools(selectedTools) {\n const results = await Promise.all(selectedTools.map(async (name) => {\n try {\n const mod = await this.toolLoaders[name]();\n return [name, mod.default ?? mod];\n }\n catch (error) {\n console.error(`❌ Failed to load ${name}:`, error);\n return null;\n }\n }));\n return Object.fromEntries(results.map(([key, value]) => [key, { class: value }]));\n }\n #init;\n get __hostClass() {\n const style = [];\n if (this.disabled)\n style.push('ax-disable');\n if (AXHtmlUtil.isRtl())\n style.push('ax-rtl');\n return style;\n }\n get __hostName() {\n return this.name;\n }\n async save() {\n const resolve = await this.editorClass.save();\n return resolve;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXEditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.2.0\", version: \"20.3.6\", type: AXEditorComponent, isStandalone: true, selector: \"ax-editor\", inputs: { look: { classPropertyName: \"look\", publicName: \"look\", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: \"readonly\", publicName: \"readonly\", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: false, isRequired: false, transformFunction: null }, modules: { classPropertyName: \"modules\", publicName: \"modules\", isSignal: true, isRequired: false, transformFunction: null }, imageConfig: { classPropertyName: \"imageConfig\", publicName: \"imageConfig\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onValueChanged: \"onValueChanged\" }, host: { properties: { \"class\": \"this.__hostClass\", \"attr.name\": \"this.__hostName\" } }, providers: [\n { provide: AXComponent, useExisting: AXEditorComponent },\n { provide: AXFocusableComponent, useExisting: AXEditorComponent },\n { provide: AXValuableComponent, useExisting: AXEditorComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXEditorComponent),\n multi: true,\n },\n ], viewQueries: [{ propertyName: \"editorHolder\", first: true, predicate: [\"r\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `\n <div class=\"ax-editor-container ax-{{ look }}\">\n <div class=\"ax-editor-holder\" #r></div>\n </div>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n <div class=\"ax-error-container\"></div>\n `, isInline: true, styles: [\"ax-editor>.ax-editor-container{display:block;height:fit-content!important}ax-editor.ax-rtl .ce-toolbar__actions{left:100%;right:auto}ax-editor.ax-disable{opacity:.5;cursor:not-allowed}ax-editor .ce-inline-toolbar{background-color:rgba(var(--ax-sys-color-surface))}ax-editor .colorPlugin svg{fill:rgba(var(--ax-sys-color-on-surface))!important}ax-editor .ce-inline-toolbar{border:1px solid rgba(var(--ax-sys-color-border-surface))}ax-editor .ce-toolbar__plus{color:unset}ax-editor .ce-popover{background:rgba(var(--ax-sys-color-darker-surface))}ax-editor .ce-popover-item{color:unset}ax-editor .ce-popover--opened{border:1px solid rgba(var(--ax-sys-color-border-surface))}ax-editor .ce-popover-item__icon{background:unset}ax-editor .cdx-search-field{background:unset}ax-editor .ce-popover-item:hover:not(.ce-popover-item--no-hover){background-color:rgba(var(--ax-sys-color-lightest-surface))}ax-editor .ce-toolbar__plus:hover{background-color:rgba(var(--ax-sys-color-darkest-surface))}\\n\"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: AXEditorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-editor', template: `\n <div class=\"ax-editor-container ax-{{ look }}\">\n <div class=\"ax-editor-holder\" #r></div>\n </div>\n <ng-content select=\"ax-validation-rule\"> </ng-content>\n <div class=\"ax-error-container\"></div>\n `, providers: [\n { provide: AXComponent, useExisting: AXEditorComponent },\n { provide: AXFocusableComponent, useExisting: AXEditorComponent },\n { provide: AXValuableComponent, useExisting: AXEditorComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXEditorComponent),\n multi: true,\n },\n ], inputs: ['look', 'readonly', 'disabled'], outputs: ['onValueChanged'], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, styles: [\"ax-editor>.ax-editor-container{display:block;height:fit-content!important}ax-editor.ax-rtl .ce-toolbar__actions{left:100%;right:auto}ax-editor.ax-disable{opacity:.5;cursor:not-allowed}ax-editor .ce-inline-toolbar{background-color:rgba(var(--ax-sys-color-surface))}ax-editor .colorPlugin svg{fill:rgba(var(--ax-sys-color-on-surface))!important}ax-editor .ce-inline-toolbar{border:1px solid rgba(var(--ax-sys-color-border-surface))}ax-editor .ce-toolbar__plus{color:unset}ax-editor .ce-popover{background:rgba(var(--ax-sys-color-darker-surface))}ax-editor .ce-popover-item{color:unset}ax-editor .ce-popover--opened{border:1px solid rgba(var(--ax-sys-color-border-surface))}ax-editor .ce-popover-item__icon{background:unset}ax-editor .cdx-search-field{background:unset}ax-editor .ce-popover-item:hover:not(.ce-popover-item--no-hover){background-color:rgba(var(--ax-sys-color-lightest-surface))}ax-editor .ce-toolbar__plus:hover{background-color:rgba(var(--ax-sys-color-darkest-surface))}\\n\"] }]\n }], propDecorators: { editorHolder: [{ type: i0.ViewChild, args: ['r', { isSignal: true }] }], modules: [{ type: i0.Input, args: [{ isSignal: true, alias: \"modules\", required: false }] }], imageConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: \"imageConfig\", required: false }] }], __hostClass: [{\n type: HostBinding,\n args: ['class']\n }], __hostName: [{\n type: HostBinding,\n args: ['attr.name']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZWRpdG9yL3NyYy9saWIvZWRpdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsV0FBVyxFQUNYLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIseUJBQXlCLEVBQ3pCLGVBQWUsR0FDaEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFDTCxlQUFlLEVBQ2YsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUduRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDOztBQTRCbkMsTUFBTSxPQUFPLGlCQUFrQixTQUFRLE9BQU8sQ0FBQyxDQUFBLHlCQUFxQyxDQUFBLEVBQUUsZUFBZSxDQUFDO0lBekJ0Rzs7UUEwQkUsZ0JBQVcsR0FBNkM7WUFDdEQsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQztZQUN4QyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1lBQ3BDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDO1lBQ2xDLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUM7WUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1B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LEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsbUJBQW1CLEVBQUU7d0JBQ2hFOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDOzRCQUNoRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixVQUNPLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsV0FDL0IsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFDWixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNOzBFQThCYyxHQUFHO3NCQXFGL0QsV0FBVzt1QkFBQyxPQUFPOztzQkFRbkIsV0FBVzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhDb21wb25lbnQsXG4gIEFYRm9jdXNhYmxlQ29tcG9uZW50LFxuICBBWFZhbHVhYmxlQ29tcG9uZW50LFxuICBNWElucHV0QmFzZVZhbHVlQ29tcG9uZW50LFxuICBNWExvb2tDb21wb25lbnQsXG59IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBsYXRmb3JtIH0gZnJvbSAnQGFjb3JleC9jb3JlL3BsYXRmb3JtJztcbmltcG9ydCB7IEFYSHRtbFV0aWwgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0QmluZGluZyxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgdmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB0eXBlIEVkaXRvckpTIGZyb20gJ0BlZGl0b3Jqcy9lZGl0b3Jqcyc7XG5pbXBvcnQgdHlwZSB7IE91dHB1dERhdGEgfSBmcm9tICdAZWRpdG9yanMvZWRpdG9yanMnO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJ3BvbHl0eXBlJztcbmltcG9ydCB7IEVkaXRvckpzVG9vbCwgdHlwZSBJbWFnZVRvb2xDb25maWcgfSBmcm9tICcuL2VkaXRvci50eXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtZWRpdG9yJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiYXgtZWRpdG9yLWNvbnRhaW5lciBheC17eyBsb29rIH19XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtZWRpdG9yLWhvbGRlclwiICNyPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXZhbGlkYXRpb24tcnVsZVwiPiA8L25nLWNvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cImF4LWVycm9yLWNvbnRhaW5lclwiPjwvZGl2PlxuICBgLFxuICBzdHlsZVVybDogJy4vZWRpdG9yLmNvbXBvbmVudC5zY3NzJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBWENvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYRWRpdG9yQ29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWEZvY3VzYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYRWRpdG9yQ29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFZhbHVhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhFZGl0b3JDb21wb25lbnQgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFYRWRpdG9yQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG4gIGlucHV0czogWydsb29rJywgJ3JlYWRvbmx5JywgJ2Rpc2FibGVkJ10sXG4gIG91dHB1dHM6IFsnb25WYWx1ZUNoYW5nZWQnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFYRWRpdG9yQ29tcG9uZW50IGV4dGVuZHMgY2xhc3NlcyhNWElucHV0QmFzZVZhbHVlQ29tcG9uZW50PE91dHB1dERhdGE+LCBNWExvb2tDb21wb25lbnQpIHtcbiAgdG9vbExvYWRlcnM6IFJlY29yZDxFZGl0b3JKc1Rvb2wsICgpID0+IFByb21pc2U8YW55Pj4gPSB7XG4gICAgaGVhZGVyOiAoKSA9PiBpbXBvcnQoJ0BlZGl0b3Jqcy9oZWFkZXInKSxcbiAgICBsaXN0OiAoKSA9PiBpbXBvcnQoJ0BlZGl0b3Jqcy9saXN0JyksXG4gICAgcmF3OiAoKSA9PiBpbXBvcnQoJ0BlZGl0b3Jqcy9yYXcnKSxcbiAgICBxdW90ZTogKCkgPT4gaW1wb3J0KCdAZWRpdG9yanMvcXVvdGUnKSxcbiAgICBjb2RlQm94OiAoKSA9PiBpbXBvcnQoJ0Bib21kaS9jb2RlYm94JyksXG4gICAgdW5kZXJsaW5lOiAoKSA9PiBpbXBvcnQoJ0BlZGl0b3Jqcy91bmRlcmxpbmUnKSxcbiAgICBjb2xvcjogKCkgPT4gaW1wb3J0KCdlZGl0b3Jqcy10ZXh0LWNvbG9yLXBsdWdpbicpLFxuICAgIGltYWdlOiAoKSA9PiBpbXBvcnQoJ0BlZGl0b3Jqcy9pbWFnZScpLFxuICAgIC8vIGxpbmtUb29sOiAoKSA9PiBpbXBvcnQoJ0BlZGl0b3Jqcy9saW5rJyksXG4gICAgLy8gdGFibGU6ICgpID0+IGltcG9ydCgnQGVkaXRvcmpzL3RhYmxlJyksXG4gICAgLy8gYXR0YWNoZXM6ICgpID0+IGltcG9ydCgnQGVkaXRvcmpzL2F0dGFjaGVzJyksXG4gICAgLy8gYWxpZ25tZW50VHVuZVRvb2w6ICgpID0+IGltcG9ydCgnZWRpdG9yanMtdGV4dC1hbGlnbm1lbnQtYmxvY2t0dW5lJyksXG4gICAgLy8gaHlwZXJsaW5rOiAoKSA9PiBpbXBvcnQoJ2VkaXRvcmpzLWh5cGVybGluaycpLFxuICAgIC8vIGRlbGltaXRlcjogKCkgPT4gaW1wb3J0KCdAZWRpdG9yanMvZGVsaW1pdGVyJyksXG4gICAgLy8gaW5saW5lQ29kZTogKCkgPT4gaW1wb3J0KCdAZWRpdG9yanMvaW5saW5lLWNvZGUnKSxcbiAgICAvLyBlbWJlZDogKCkgPT4gaW1wb3J0KCdAZWRpdG9yanMvZW1iZWQnKSxcbiAgICAvLyB3YXJuaW5nOiAoKSA9PiBpbXBvcnQoJ0BlZGl0b3Jqcy93YXJuaW5nJyksXG4gICAgLy8gY2hlY2tsaXN0OiAoKSA9PiBpbXBvcnQoJ0BlZGl0b3Jqcy9jaGVja2xpc3QnKSxcbiAgICAvLyBtYXJrZXI6ICgpID0+IGltcG9ydCgnQGVkaXRvcmpzL21hcmtlcicpLFxuICAgIC8vIGRyYWdEcm9wOiAoKSA9PiBpbXBvcnQoJ2VkaXRvcmpzLWRyYWctZHJvcCcpLFxuICAgIC8vIHVuZG86ICgpID0+IGltcG9ydCgnZWRpdG9yanMtdW5kbycpLFxuICAgIC8vIG5lc3RlZExpc3Q6ICgpID0+IGltcG9ydCgnQGVkaXRvcmpzL25lc3RlZC1saXN0JyksXG4gICAgLy8gdG9vbHRpcDogKCkgPT4gaW1wb3J0KCdlZGl0b3Jqcy10b29sdGlwJyksXG4gICAgLy8gcGFyYWdyYXBoV2l0aEFsaWdubWVudDogKCkgPT4gaW1wb3J0KCdlZGl0b3Jqcy1wYXJhZ3JhcGgtd2l0aC1hbGlnbm1lbnQnKSxcbiAgfTtcblxuICBwcml2YXRlIGVkaXRvckhvbGRlciA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50Pj4oJ3InKTtcblxuICBwcml2YXRlIHBsYXRmb3JtID0gaW5qZWN0KEFYUGxhdGZvcm0pO1xuXG4gIG1vZHVsZXMgPSBpbnB1dDxFZGl0b3JKc1Rvb2xbXT4oW10pO1xuXG4gIGltYWdlQ29uZmlnID0gaW5wdXQ8SW1hZ2VUb29sQ29uZmlnPigpO1xuXG4gIHByaXZhdGUgZWRpdG9yQ2xhc3M6IEVkaXRvckpTO1xuXG4gIHByaXZhdGUgY29sb3JDb25maWc6IGFueSA9IHtcbiAgICBkZWZhdWx0Q29sb3I6ICcjRkYxMzAwJyxcbiAgICB0eXBlOiAndGV4dCcsXG4gICAgY3VzdG9tUGlja2VyOiB0cnVlLFxuICAgIGNvbG9yQ29sbGVjdGlvbnM6IFtcbiAgICAgICcjRUM3ODc4JyxcbiAgICAgICcjOUMyN0IwJyxcbiAgICAgICcjNjczQUI3JyxcbiAgICAgICcjM0Y1MUI1JyxcbiAgICAgICcjMDA3MEZGJyxcbiAgICAgICcjMDNBOUY0JyxcbiAgICAgICcjMDBCQ0Q0JyxcbiAgICAgICcjNENBRjUwJyxcbiAgICAgICcjOEJDMzRBJyxcbiAgICAgICcjQ0REQzM5JyxcbiAgICAgICcjRkZGJyxcbiAgICBdLFxuICB9O1xuXG4gIHByaXZhdGUgbWFya2VyQ29uZmlnOiBhbnkgPSB7XG4gICAgZGVmYXVsdENvbG9yOiAnI0ZGQkYwMCcsXG4gICAgdHlwZTogJ21hcmtlcicsXG4gIH07XG5cbiAgYXN5bmMgbG9hZEVkaXRvckpzVG9vbHMoc2VsZWN0ZWRUb29sczogRWRpdG9ySnNUb29sW10pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBzZWxlY3RlZFRvb2xzLm1hcChhc3luYyAobmFtZSkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IG1vZCA9IGF3YWl0IHRoaXMudG9vbExvYWRlcnNbbmFtZV0oKTtcbiAgICAgICAgICByZXR1cm4gW25hbWUsIG1vZC5kZWZhdWx0ID8/IG1vZF07XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihg4p2MIEZhaWxlZCB0byBsb2FkICR7bmFtZX06YCwgZXJyb3IpO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhyZXN1bHRzLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBba2V5LCB7IGNsYXNzOiB2YWx1ZSB9XSkpO1xuICB9XG5cbiAgI2luaXQgPSBhZnRlck5leHRSZW5kZXIoYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHRvb2xzID0gYXdhaXQgdGhpcy5sb2FkRWRpdG9ySnNUb29scyh0aGlzLm1vZHVsZXMoKSk7XG5cbiAgICBpZiAodG9vbHNbJ2NvbG9yJ10pIHtcbiAgICAgIHRvb2xzWydtYXJrZXInXSA9IHsgLi4udG9vbHNbJ2NvbG9yJ10gfTtcbiAgICAgIHRvb2xzWydjb2xvciddLmNvbmZpZyA9IHRoaXMuY29sb3JDb25maWc7XG4gICAgICB0b29sc1snbWFya2VyJ10uY29uZmlnID0gdGhpcy5tYXJrZXJDb25maWc7XG4gICAgfVxuXG4gICAgaWYgKHRvb2xzWydpbWFnZSddICYmIHRoaXMuaW1hZ2VDb25maWcoKSkge1xuICAgICAgdG9vbHNbJ2ltYWdlJ10uY29uZmlnID0gdGhpcy5pbWFnZUNvbmZpZygpO1xuICAgIH1cblxuICAgIGlmICh0b29sc1snY29kZUJveCddKSB7XG4gICAgICB0b29sc1snY29kZUJveCddLmNvbmZpZyA9IHsgdXNlRGVmYXVsdFRoZW1lOiB0aGlzLnBsYXRmb3JtLnRoZW1lTW9kZSgpIH07XG4gICAgfVxuXG4gICAgY29uc3QgRWRpdG9ySlMgPSAoYXdhaXQgaW1wb3J0KCdAZWRpdG9yanMvZWRpdG9yanMnKSkuZGVmYXVsdDtcblxuICAgIHRoaXMuZWRpdG9yQ2xhc3MgPSBuZXcgRWRpdG9ySlMoe1xuICAgICAgaG9sZGVyOiB0aGlzLmVkaXRvckhvbGRlcigpLm5hdGl2ZUVsZW1lbnQsXG4gICAgICB0b29scyxcbiAgICAgIG9uQ2hhbmdlOiBhc3luYyAoZSkgPT4ge1xuICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgZS5zYXZlci5zYXZlKCk7XG4gICAgICAgIGlmIChjb250ZW50LmJsb2Nrcy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmNvbW1pdFZhbHVlKGNvbnRlbnQsIHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY29tbWl0VmFsdWUobnVsbCwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBkYXRhOiB0aGlzLnZhbHVlLFxuICAgICAgcmVhZE9ubHk6IHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCxcbiAgICB9KTtcbiAgfSk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIHByaXZhdGUgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBzdHlsZSA9IFtdO1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSBzdHlsZS5wdXNoKCdheC1kaXNhYmxlJyk7XG4gICAgaWYgKEFYSHRtbFV0aWwuaXNSdGwoKSkgc3R5bGUucHVzaCgnYXgtcnRsJyk7XG4gICAgcmV0dXJuIHN0eWxlO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLm5hbWUnKVxuICBwcml2YXRlIGdldCBfX2hvc3ROYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGFzeW5jIHNhdmUoKSB7XG4gICAgY29uc3QgcmVzb2x2ZSA9IGF3YWl0IHRoaXMuZWRpdG9yQ2xhc3Muc2F2ZSgpO1xuICAgIHJldHVybiByZXNvbHZlO1xuICB9XG59XG4iXX0=","import { NgModule } from '@angular/core';\nimport { AXEditorComponent } from './editor.component';\nimport * as i0 from \"@angular/core\";\nconst COMPONENT = [AXEditorComponent];\nconst MODULES = [];\nexport class EditorModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: EditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.6\", ngImport: i0, type: EditorModule, imports: [AXEditorComponent], exports: [AXEditorComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: EditorModule, imports: [MODULES] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.6\", ngImport: i0, type: EditorModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [...MODULES, ...COMPONENT],\n exports: [...COMPONENT],\n providers: [],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZWRpdG9yL3NyYy9saWIvZWRpdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUV2RCxNQUFNLFNBQVMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFFdEMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0FBT25CLE1BQU0sT0FBTyxZQUFZOzhHQUFaLFlBQVk7K0dBQVosWUFBWSxZQVROLGlCQUFpQixhQUFqQixpQkFBaUI7K0dBU3ZCLFlBQVksWUFKVixPQUFPOzsyRkFJVCxZQUFZO2tCQUx4QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDO29CQUNuQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDdkIsU0FBUyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2VkaXRvci5jb21wb25lbnQnO1xuXG5jb25zdCBDT01QT05FTlQgPSBbQVhFZGl0b3JDb21wb25lbnRdO1xuXG5jb25zdCBNT0RVTEVTID0gW107XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFsuLi5NT0RVTEVTLCAuLi5DT01QT05FTlRdLFxuICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UXSxcbiAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgRWRpdG9yTW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtZWRpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9lZGl0b3Ivc3JjL2Fjb3JleC1jb21wb25lbnRzLWVkaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
@@ -644,7 +644,7 @@ class AXTree2Component {
|
|
|
644
644
|
this.onItemsChange.emit(dropEvent);
|
|
645
645
|
}
|
|
646
646
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: AXTree2Component, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
647
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: AXTree2Component, isStandalone: true, selector: "ax-tree2", inputs: { nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: true, transformFunction: null }, showCheckbox: { classPropertyName: "showCheckbox", publicName: "showCheckbox", isSignal: true, isRequired: false, transformFunction: null }, dragMode: { classPropertyName: "dragMode", publicName: "dragMode", isSignal: true, isRequired: false, transformFunction: null }, dragOperationType: { classPropertyName: "dragOperationType", publicName: "dragOperationType", isSignal: true, isRequired: false, transformFunction: null }, showIcons: { classPropertyName: "showIcons", publicName: "showIcons", isSignal: true, isRequired: false, transformFunction: null }, showChildrenBadge: { classPropertyName: "showChildrenBadge", publicName: "showChildrenBadge", isSignal: true, isRequired: false, transformFunction: null }, expandedIcon: { classPropertyName: "expandedIcon", publicName: "expandedIcon", isSignal: true, isRequired: false, transformFunction: null }, collapsedIcon: { classPropertyName: "collapsedIcon", publicName: "collapsedIcon", isSignal: true, isRequired: false, transformFunction: null }, indentSize: { classPropertyName: "indentSize", publicName: "indentSize", isSignal: true, isRequired: false, transformFunction: null }, nodeHeight: { classPropertyName: "nodeHeight", publicName: "nodeHeight", isSignal: true, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: true, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: "itemTemplate", publicName: "itemTemplate", isSignal: true, isRequired: false, transformFunction: null }, lazyLoad: { classPropertyName: "lazyLoad", publicName: "lazyLoad", isSignal: true, isRequired: false, transformFunction: null }, enableLazyLoad: { classPropertyName: "enableLazyLoad", publicName: "enableLazyLoad", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { nodes: "nodesChange", onBeforeDrop: "onBeforeDrop", onNodeToggle: "onNodeToggle", onNodeSelect: "onNodeSelect", onOrderChange: "onOrderChange", onMoveChange: "onMoveChange", onItemsChange: "onItemsChange" }, host: { properties: { "class.ax-tree2-default": "look() === 'default'", "class.ax-tree2-card": "look() === 'card'", "class.ax-tree2-with-line": "look() === 'with-line'", "style.--ax-tree-indent-size": "indentSize() + 'px'", "style.--ax-tree-line-offset": "(indentSize() / 2) + 'px'" }, classAttribute: "ax-tree2" }, ngImport: i0, template: "<!-- Root drop list -->\n<div\n [axDropList]=\"dragMode() !== 'none'\"\n [sortingDisabled]=\"false\"\n [id]=\"getListId()\"\n [attr.data-node-id]=\"null\"\n dropListGroup=\"ax-tree-nodes\"\n (dropListDropped)=\"onDrop($event)\"\n class=\"ax-tree2-drop-list\"\n [class.ax-tree2-card]=\"look() === 'card'\"\n [class.ax-tree2-with-lines]=\"look() === 'with-line'\"\n [class.ax-tree2-compact]=\"nodeHeight() === 'compact'\"\n [class.ax-tree2-comfortable]=\"nodeHeight() === 'comfortable'\"\n>\n @for (node of nodes(); track node.id) {\n @if (node.visible !== false) {\n <div\n [axDrag]=\"dragMode() !== 'none'\"\n [dragDisabled]=\"node.disabled\"\n [dragData]=\"node\"\n class=\"ax-tree2-node\"\n [class.ax-tree2-node-selected]=\"node.selected\"\n [class.ax-tree2-node-disabled]=\"node.disabled\"\n [class.ax-tree2-node-loading]=\"node.loading\"\n >\n <div\n class=\"ax-tree2-node-content\"\n [axDropList]=\"dragMode() !== 'none'\"\n [id]=\"'ax-tree-node-drop-' + node.id\"\n [attr.data-node-id]=\"node.id\"\n [attr.data-drop-type]=\"'onto-node'\"\n dropListGroup=\"ax-tree-nodes\"\n (dropListDropped)=\"onDropOntoNode($event, node)\"\n >\n @if (dragMode() === 'handler') {\n <span class=\"ax-tree2-drag-handle\" axDragHandle title=\"Drag to reorder\"> \u22EE\u22EE </span>\n }\n <ax-button\n class=\"ax-tree2-expand-toggle ax-sm\"\n (onClick)=\"toggleNode(node, $any($event))\"\n [class.ax-tree2-has-children]=\"shouldShowExpandToggle(node)\"\n [class.ax-tree2-expanded]=\"node.expanded\"\n [disabled]=\"node.disabled || node.loading\"\n [style.visibility]=\"shouldShowExpandToggle(node) ? 'visible' : 'hidden'\"\n >\n @if (node.loading) {\n <ax-icon>\n <i class=\"fa-solid fa-spinner fa-spin ax-tree2-loading-spinner\"></i>\n </ax-icon>\n } @else {\n <ax-icon>\n <i [class]=\"node.expanded ? expandedIcon() : collapsedIcon()\" class=\"ax-tree2-toggle-icon\"></i>\n </ax-icon>\n }\n </ax-button>\n @if (itemTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate()!\"\n [ngTemplateOutletContext]=\"getTemplateContext(node, 0)\"\n ></ng-container>\n } @else {\n @if (showCheckbox()) {\n <ax-check-box\n class=\"ax-tree2-checkbox\"\n [ngModel]=\"node.indeterminate ? null : node.selected || false\"\n [indeterminate]=\"node.indeterminate || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n (click)=\"$event.stopPropagation()\"\n (pointerdown)=\"$event.stopPropagation()\"\n ></ax-check-box>\n }\n @if (showIcons() && node.icon) {\n <i [class]=\"node.icon\" class=\"ax-tree2-node-icon\"></i>\n }\n <span class=\"ax-tree2-node-label\">{{ node.label }}</span>\n @if (showChildrenBadge() && (node.childrenCount || (node.children && node.children.length > 0))) {\n <ax-badge\n class=\"ax-tree2-children-badge\"\n [text]=\"(node.childrenCount ?? node.children?.length ?? 0).toString()\"\n ></ax-badge>\n }\n }\n </div>\n </div>\n @if (node.expanded && node.children && node.children.length > 0) {\n <div class=\"ax-tree2-children\">\n <ng-container\n [ngTemplateOutlet]=\"childrenList\"\n [ngTemplateOutletContext]=\"{ children: node.children, parent: node, level: 1 }\"\n ></ng-container>\n </div>\n }\n }\n }\n</div>\n\n<!-- Recursive children template -->\n<ng-template #childrenList let-children=\"children\" let-parent=\"parent\" let-level=\"level\">\n <div\n [axDropList]=\"dragMode() !== 'none'\"\n [id]=\"getListId(parent)\"\n [attr.data-node-id]=\"parent.id\"\n dropListGroup=\"ax-tree-nodes\"\n (dropListDropped)=\"onDrop($event, parent)\"\n class=\"ax-tree2-drop-list\"\n >\n @for (node of children; track node.id) {\n @if (node.visible !== false) {\n <div\n [axDrag]=\"dragMode() !== 'none'\"\n [dragDisabled]=\"node.disabled\"\n [dragData]=\"node\"\n class=\"ax-tree2-node\"\n [class.ax-tree2-node-selected]=\"node.selected\"\n [class.ax-tree2-node-disabled]=\"node.disabled\"\n [class.ax-tree2-node-loading]=\"node.loading\"\n >\n <div\n class=\"ax-tree2-node-content\"\n [style.padding-left.px]=\"(level * indentSize()) / (look() === 'with-line' ? 3 : 1)\"\n [axDropList]=\"dragMode() !== 'none'\"\n [id]=\"'ax-tree-node-drop-' + node.id\"\n [attr.data-node-id]=\"node.id\"\n [attr.data-drop-type]=\"'onto-node'\"\n dropListGroup=\"ax-tree-nodes\"\n (dropListDropped)=\"onDropOntoNode($event, node)\"\n >\n @if (dragMode() === 'handler') {\n <span class=\"ax-tree2-drag-handle\" axDragHandle title=\"Drag to reorder\"> \u22EE\u22EE </span>\n }\n <ax-button\n class=\"ax-tree2-expand-toggle ax-sm\"\n (onClick)=\"toggleNode(node, $any($event))\"\n [class.ax-tree2-has-children]=\"shouldShowExpandToggle(node)\"\n [class.ax-tree2-expanded]=\"node.expanded\"\n [disabled]=\"node.disabled || node.loading\"\n [style.visibility]=\"shouldShowExpandToggle(node) ? 'visible' : 'hidden'\"\n >\n @if (node.loading) {\n <ax-icon>\n <i class=\"fa-solid fa-spinner fa-spin ax-tree2-loading-spinner\"></i>\n </ax-icon>\n } @else {\n <ax-icon>\n <i [class]=\"node.expanded ? expandedIcon() : collapsedIcon()\" class=\"ax-tree2-toggle-icon\"></i>\n </ax-icon>\n }\n </ax-button>\n\n @if (itemTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate()!\"\n [ngTemplateOutletContext]=\"getTemplateContext(node, level)\"\n ></ng-container>\n } @else {\n @if (showCheckbox()) {\n <ax-check-box\n class=\"ax-tree2-checkbox\"\n [ngModel]=\"node.indeterminate ? null : node.selected || false\"\n [indeterminate]=\"node.indeterminate || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n (click)=\"$event.stopPropagation()\"\n (pointerdown)=\"$event.stopPropagation()\"\n ></ax-check-box>\n }\n @if (showIcons() && node.icon) {\n <i [class]=\"node.icon\" class=\"ax-tree2-node-icon\"></i>\n }\n <span class=\"ax-tree2-node-label\">{{ node.label }}</span>\n @if (showChildrenBadge() && (node.childrenCount || (node.children && node.children.length > 0))) {\n <ax-badge\n class=\"ax-tree2-children-badge\"\n [text]=\"(node.childrenCount ?? node.children?.length ?? 0).toString()\"\n ></ax-badge>\n }\n }\n </div>\n </div>\n @if (node.expanded && node.children && node.children.length > 0) {\n <div class=\"ax-tree2-children\">\n <ng-container\n [ngTemplateOutlet]=\"childrenList\"\n [ngTemplateOutletContext]=\"{ children: node.children, parent: node, level: level + 1 }\"\n ></ng-container>\n </div>\n }\n }\n }\n </div>\n</ng-template>\n", styles: [".ax-tree2{display:block;width:100%;--ax-comp-tree2-indent-size: 12px;--ax-comp-tree2-node-hover-bg: rgba(var(--ax-sys-color-on-lightest-surface), .04);--ax-comp-tree2-node-selected-bg: rgba(var(--ax-sys-color-primary-500), .12);--ax-comp-tree2-node-border-radius: 6px;--ax-comp-tree2-node-margin: .125rem;--ax-comp-tree2-line-color: rgba(var(--ax-sys-color-on-lightest-surface), .15);--ax-comp-tree2-drag-preview-opacity: .9;--ax-comp-tree2-drag-placeholder-bg: rgba(var(--ax-sys-color-on-lightest-surface), .02);--ax-comp-tree2-drop-active-bg: rgba(var(--ax-sys-color-primary-500), .08);--ax-comp-tree2-drop-active-outline: rgba(var(--ax-sys-color-primary-500), .3)}.ax-tree2-drop-list{min-height:2rem}.ax-tree2-compact .ax-tree2-node-content{padding:.25rem .5rem;gap:.375rem;font-size:.8125rem}.ax-tree2-comfortable .ax-tree2-node-content{padding:.75rem .625rem;gap:.625rem;font-size:.9375rem}.ax-tree2-node{position:relative;margin:var(--ax-comp-tree2-node-margin) 0;border-radius:var(--ax-comp-tree2-node-border-radius);border:1px solid transparent;cursor:move}.ax-tree2-node:hover:not(.ax-dragging){background:var(--ax-comp-tree2-node-hover-bg)}.ax-tree2-node.ax-tree2-node-selected{background:var(--ax-comp-tree2-node-selected-bg);border-color:currentColor}.ax-tree2-node.ax-dragging{opacity:var(--ax-comp-tree2-drag-placeholder-opacity);cursor:grabbing!important}.ax-tree2-node.ax-drag-placeholder{background:var(--ax-comp-tree2-drag-placeholder-bg)}.ax-drag-preview{opacity:var(--ax-comp-tree2-drag-preview-opacity)!important;box-shadow:0 4px 12px rgba(var(--ax-sys-color-on-lightest-surface),.2)!important;cursor:grabbing!important;border:2px dashed currentColor!important}.ax-tree2-node-content.ax-drop-list-sorting-active{background:var(--ax-comp-tree2-drop-active-bg);border-radius:var(--ax-comp-tree2-node-border-radius);outline:2px dashed var(--ax-comp-tree2-drop-active-outline);outline-offset:-2px}.ax-tree2-node-content{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.ax-tree2-drag-handle{cursor:grab;opacity:.6;padding:.25rem}.ax-tree2-drag-handle:hover{opacity:1}.ax-tree2-drag-handle:active{cursor:grabbing}.ax-tree2-expand-toggle{background:none;border:none;cursor:pointer;padding:.25rem;min-width:1.5rem;height:1.5rem}.ax-tree2-expand-toggle:not(.ax-tree2-has-children){opacity:0;pointer-events:none}.ax-tree2-toggle-icon{font-size:.75rem}.ax-tree2-node-icon{font-size:1.125rem;flex-shrink:0}.ax-tree2-node-label{flex:1;font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ax-tree2-children{padding-left:var(--ax-tree-indent-size, var(--ax-comp-tree2-indent-size))}.ax-tree2-node-disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.ax-tree2-node-loading{opacity:.7}.ax-tree2-card .ax-tree2-node{border:1px solid rgba(var(--ax-sys-color-border-lightest-surface),1);margin:.5rem 0}.ax-tree2-card .ax-tree2-node-content{padding:1rem}.ax-tree2-with-lines .ax-tree2-children{position:relative;padding-left:var(--ax-tree-indent-size, var(--ax-comp-tree2-indent-size))}.ax-tree2-with-lines .ax-tree2-children:before{content:\"\";position:absolute;left:var(--ax-tree-line-offset, calc(var(--ax-comp-tree2-indent-size) / 2));top:0;height:calc(100% - .875rem);width:1px;background:var(--ax-tree-line-color, var(--ax-comp-tree2-line-color))}.ax-tree2-with-lines .ax-tree2-node{position:relative}.ax-tree2-with-lines .ax-tree2-node:before{content:\"\";position:absolute;left:calc(-1 * var(--ax-tree-line-offset, calc(var(--ax-comp-tree2-indent-size) / 2)));top:60%;width:var(--ax-tree-line-offset, calc(var(--ax-comp-tree2-indent-size) / 2));height:1px;background:var(--ax-tree-line-color, var(--ax-comp-tree2-line-color))}.ax-tree2-with-lines>.ax-tree2-drop-list>.ax-tree2-node:before,.ax-tree2-with-lines>.ax-tree2-node:before{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "directive", type: AXDragHandleDirective, selector: "[axDragHandle]" }, { kind: "directive", type: AXDropListDirective, selector: "[axDropList]", inputs: ["axDropList", "sortingDisabled", "dropListGroup", "dropListOrientation"], outputs: ["dropListDropped"], exportAs: ["axDropList"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "isLoading", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "component", type: AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
647
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.6", type: AXTree2Component, isStandalone: true, selector: "ax-tree2", inputs: { nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: true, transformFunction: null }, showCheckbox: { classPropertyName: "showCheckbox", publicName: "showCheckbox", isSignal: true, isRequired: false, transformFunction: null }, dragMode: { classPropertyName: "dragMode", publicName: "dragMode", isSignal: true, isRequired: false, transformFunction: null }, dragOperationType: { classPropertyName: "dragOperationType", publicName: "dragOperationType", isSignal: true, isRequired: false, transformFunction: null }, showIcons: { classPropertyName: "showIcons", publicName: "showIcons", isSignal: true, isRequired: false, transformFunction: null }, showChildrenBadge: { classPropertyName: "showChildrenBadge", publicName: "showChildrenBadge", isSignal: true, isRequired: false, transformFunction: null }, expandedIcon: { classPropertyName: "expandedIcon", publicName: "expandedIcon", isSignal: true, isRequired: false, transformFunction: null }, collapsedIcon: { classPropertyName: "collapsedIcon", publicName: "collapsedIcon", isSignal: true, isRequired: false, transformFunction: null }, indentSize: { classPropertyName: "indentSize", publicName: "indentSize", isSignal: true, isRequired: false, transformFunction: null }, nodeHeight: { classPropertyName: "nodeHeight", publicName: "nodeHeight", isSignal: true, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: true, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: "itemTemplate", publicName: "itemTemplate", isSignal: true, isRequired: false, transformFunction: null }, lazyLoad: { classPropertyName: "lazyLoad", publicName: "lazyLoad", isSignal: true, isRequired: false, transformFunction: null }, enableLazyLoad: { classPropertyName: "enableLazyLoad", publicName: "enableLazyLoad", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { nodes: "nodesChange", onBeforeDrop: "onBeforeDrop", onNodeToggle: "onNodeToggle", onNodeSelect: "onNodeSelect", onOrderChange: "onOrderChange", onMoveChange: "onMoveChange", onItemsChange: "onItemsChange" }, host: { properties: { "class.ax-tree2-default": "look() === 'default'", "class.ax-tree2-card": "look() === 'card'", "class.ax-tree2-with-line": "look() === 'with-line'", "style.--ax-tree-indent-size": "indentSize() + 'px'", "style.--ax-tree-line-offset": "(indentSize() / 2) + 'px'" }, classAttribute: "ax-tree2" }, ngImport: i0, template: "<!-- Root drop list -->\n<div\n [axDropList]=\"dragMode() !== 'none'\"\n [sortingDisabled]=\"false\"\n [id]=\"getListId()\"\n [attr.data-node-id]=\"null\"\n dropListGroup=\"ax-tree-nodes\"\n (dropListDropped)=\"onDrop($event)\"\n class=\"ax-tree2-drop-list\"\n [class.ax-tree2-card]=\"look() === 'card'\"\n [class.ax-tree2-with-lines]=\"look() === 'with-line'\"\n [class.ax-tree2-compact]=\"nodeHeight() === 'compact'\"\n [class.ax-tree2-comfortable]=\"nodeHeight() === 'comfortable'\"\n>\n @for (node of nodes(); track node.id) {\n @if (node.visible !== false) {\n <div\n [axDrag]=\"dragMode() !== 'none'\"\n [dragDisabled]=\"node.disabled\"\n [dragData]=\"node\"\n class=\"ax-tree2-node\"\n [class.ax-tree2-node-selected]=\"node.selected\"\n [class.ax-tree2-node-disabled]=\"node.disabled\"\n [class.ax-tree2-node-loading]=\"node.loading\"\n >\n <div\n class=\"ax-tree2-node-content\"\n [axDropList]=\"dragMode() !== 'none'\"\n [id]=\"'ax-tree-node-drop-' + node.id\"\n [attr.data-node-id]=\"node.id\"\n [attr.data-drop-type]=\"'onto-node'\"\n dropListGroup=\"ax-tree-nodes\"\n (dropListDropped)=\"onDropOntoNode($event, node)\"\n >\n @if (dragMode() === 'handler') {\n <span class=\"ax-tree2-drag-handle\" axDragHandle title=\"Drag to reorder\"> \u22EE\u22EE </span>\n }\n <ax-button\n class=\"ax-tree2-expand-toggle ax-sm\"\n (onClick)=\"toggleNode(node, $any($event))\"\n [class.ax-tree2-has-children]=\"shouldShowExpandToggle(node)\"\n [class.ax-tree2-expanded]=\"node.expanded\"\n [disabled]=\"node.disabled || node.loading\"\n [style.visibility]=\"shouldShowExpandToggle(node) ? 'visible' : 'hidden'\"\n >\n @if (node.loading) {\n <ax-icon>\n <i class=\"fa-solid fa-spinner fa-spin ax-tree2-loading-spinner\"></i>\n </ax-icon>\n } @else {\n <ax-icon>\n <i [class]=\"node.expanded ? expandedIcon() : collapsedIcon()\" class=\"ax-tree2-toggle-icon\"></i>\n </ax-icon>\n }\n </ax-button>\n @if (itemTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate()!\"\n [ngTemplateOutletContext]=\"getTemplateContext(node, 0)\"\n ></ng-container>\n } @else {\n @if (showCheckbox()) {\n <ax-check-box\n class=\"ax-tree2-checkbox\"\n [ngModel]=\"node.indeterminate ? null : node.selected || false\"\n [indeterminate]=\"node.indeterminate || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n (click)=\"$event.stopPropagation()\"\n (pointerdown)=\"$event.stopPropagation()\"\n ></ax-check-box>\n }\n @if (showIcons() && node.icon) {\n <i [class]=\"node.icon\" class=\"ax-tree2-node-icon\"></i>\n }\n <span class=\"ax-tree2-node-label\">{{ node.label }}</span>\n @if (showChildrenBadge() && (node.childrenCount || (node.children && node.children.length > 0))) {\n <ax-badge\n class=\"ax-tree2-children-badge\"\n [text]=\"(node.childrenCount ?? node.children?.length ?? 0).toString()\"\n ></ax-badge>\n }\n }\n </div>\n </div>\n @if (node.expanded && node.children && node.children.length > 0) {\n <div class=\"ax-tree2-children\">\n <ng-container\n [ngTemplateOutlet]=\"childrenList\"\n [ngTemplateOutletContext]=\"{ children: node.children, parent: node, level: 1 }\"\n ></ng-container>\n </div>\n }\n }\n }\n</div>\n\n<!-- Recursive children template -->\n<ng-template #childrenList let-children=\"children\" let-parent=\"parent\" let-level=\"level\">\n <div\n [axDropList]=\"dragMode() !== 'none'\"\n [id]=\"getListId(parent)\"\n [attr.data-node-id]=\"parent.id\"\n dropListGroup=\"ax-tree-nodes\"\n (dropListDropped)=\"onDrop($event, parent)\"\n class=\"ax-tree2-drop-list\"\n >\n @for (node of children; track node.id) {\n @if (node.visible !== false) {\n <div\n [axDrag]=\"dragMode() !== 'none'\"\n [dragDisabled]=\"node.disabled\"\n [dragData]=\"node\"\n class=\"ax-tree2-node\"\n [class.ax-tree2-node-selected]=\"node.selected\"\n [class.ax-tree2-node-disabled]=\"node.disabled\"\n [class.ax-tree2-node-loading]=\"node.loading\"\n >\n <div\n class=\"ax-tree2-node-content\"\n [style.padding-left.px]=\"(level * indentSize()) / (look() === 'with-line' ? 3 : 1)\"\n [axDropList]=\"dragMode() !== 'none'\"\n [id]=\"'ax-tree-node-drop-' + node.id\"\n [attr.data-node-id]=\"node.id\"\n [attr.data-drop-type]=\"'onto-node'\"\n dropListGroup=\"ax-tree-nodes\"\n (dropListDropped)=\"onDropOntoNode($event, node)\"\n >\n @if (dragMode() === 'handler') {\n <span class=\"ax-tree2-drag-handle\" axDragHandle title=\"Drag to reorder\"> \u22EE\u22EE </span>\n }\n <ax-button\n class=\"ax-tree2-expand-toggle ax-sm\"\n (onClick)=\"toggleNode(node, $any($event))\"\n [class.ax-tree2-has-children]=\"shouldShowExpandToggle(node)\"\n [class.ax-tree2-expanded]=\"node.expanded\"\n [disabled]=\"node.disabled || node.loading\"\n [style.visibility]=\"shouldShowExpandToggle(node) ? 'visible' : 'hidden'\"\n >\n @if (node.loading) {\n <ax-icon>\n <i class=\"fa-solid fa-spinner fa-spin ax-tree2-loading-spinner\"></i>\n </ax-icon>\n } @else {\n <ax-icon>\n <i [class]=\"node.expanded ? expandedIcon() : collapsedIcon()\" class=\"ax-tree2-toggle-icon\"></i>\n </ax-icon>\n }\n </ax-button>\n\n @if (itemTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate()!\"\n [ngTemplateOutletContext]=\"getTemplateContext(node, level)\"\n ></ng-container>\n } @else {\n @if (showCheckbox()) {\n <ax-check-box\n class=\"ax-tree2-checkbox\"\n [ngModel]=\"node.indeterminate ? null : node.selected || false\"\n [indeterminate]=\"node.indeterminate || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n (click)=\"$event.stopPropagation()\"\n (pointerdown)=\"$event.stopPropagation()\"\n ></ax-check-box>\n }\n @if (showIcons() && node.icon) {\n <i [class]=\"node.icon\" class=\"ax-tree2-node-icon\"></i>\n }\n <span class=\"ax-tree2-node-label\">{{ node.label }}</span>\n @if (showChildrenBadge() && (node.childrenCount || (node.children && node.children.length > 0))) {\n <ax-badge\n class=\"ax-tree2-children-badge\"\n [text]=\"(node.childrenCount ?? node.children?.length ?? 0).toString()\"\n ></ax-badge>\n }\n }\n </div>\n </div>\n @if (node.expanded && node.children && node.children.length > 0) {\n <div class=\"ax-tree2-children\">\n <ng-container\n [ngTemplateOutlet]=\"childrenList\"\n [ngTemplateOutletContext]=\"{ children: node.children, parent: node, level: level + 1 }\"\n ></ng-container>\n </div>\n }\n }\n }\n </div>\n</ng-template>\n", styles: [".ax-tree2{display:block;width:100%;--ax-comp-tree2-indent-size: 12px;--ax-comp-tree2-node-hover-bg: rgba(var(--ax-sys-color-on-lightest-surface), .04);--ax-comp-tree2-node-selected-bg: rgba(var(--ax-sys-color-primary-500), .12);--ax-comp-tree2-node-border-radius: 6px;--ax-comp-tree2-node-margin: .25rem;--ax-comp-tree2-line-color: rgba(var(--ax-sys-color-on-lightest-surface), .15);--ax-comp-tree2-drag-preview-opacity: .9;--ax-comp-tree2-drag-placeholder-bg: rgba(var(--ax-sys-color-on-lightest-surface), .02);--ax-comp-tree2-drop-active-bg: rgba(var(--ax-sys-color-primary-500), .08);--ax-comp-tree2-drop-active-outline: rgba(var(--ax-sys-color-primary-500), .3)}.ax-tree2-drop-list{min-height:2rem}.ax-tree2-compact .ax-tree2-node-content{padding:.25rem .5rem;gap:.375rem;font-size:.8125rem}.ax-tree2-comfortable .ax-tree2-node-content{padding:.75rem .625rem;gap:.625rem;font-size:.9375rem}.ax-tree2-node{position:relative;margin:var(--ax-comp-tree2-node-margin) 0;border-radius:var(--ax-comp-tree2-node-border-radius);border:1px solid transparent;cursor:move}.ax-tree2-node:hover:not(.ax-dragging){background:var(--ax-comp-tree2-node-hover-bg)}.ax-tree2-node.ax-tree2-node-selected{background:var(--ax-comp-tree2-node-selected-bg);border-color:currentColor}.ax-tree2-node.ax-dragging{opacity:var(--ax-comp-tree2-drag-placeholder-opacity);cursor:grabbing!important}.ax-tree2-node.ax-drag-placeholder{background:var(--ax-comp-tree2-drag-placeholder-bg)}.ax-drag-preview{opacity:var(--ax-comp-tree2-drag-preview-opacity)!important;box-shadow:0 4px 12px rgba(var(--ax-sys-color-on-lightest-surface),.2)!important;cursor:grabbing!important;border:2px dashed currentColor!important}.ax-tree2-node-content.ax-drop-list-sorting-active{background:var(--ax-comp-tree2-drop-active-bg);border-radius:var(--ax-comp-tree2-node-border-radius);outline:2px dashed var(--ax-comp-tree2-drop-active-outline);outline-offset:-2px}.ax-tree2-node-content{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.ax-tree2-drag-handle{cursor:grab;opacity:.6;padding:.25rem}.ax-tree2-drag-handle:hover{opacity:1}.ax-tree2-drag-handle:active{cursor:grabbing}.ax-tree2-expand-toggle{background:none;border:none;cursor:pointer;padding:.25rem;min-width:1.5rem;height:1.5rem}.ax-tree2-expand-toggle:not(.ax-tree2-has-children){opacity:0;pointer-events:none}.ax-tree2-toggle-icon{font-size:.75rem}.ax-tree2-node-icon{font-size:1.125rem;flex-shrink:0}.ax-tree2-node-label{flex:1;font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ax-tree2-children{padding-left:var(--ax-tree-indent-size, var(--ax-comp-tree2-indent-size))}.ax-tree2-node-disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.ax-tree2-node-loading{opacity:.7}.ax-tree2-card .ax-tree2-node{border:1px solid rgba(var(--ax-sys-color-border-lightest-surface),1);margin:.5rem 0}.ax-tree2-card .ax-tree2-node-content{padding:1rem}.ax-tree2-with-lines .ax-tree2-children{position:relative;padding-left:var(--ax-tree-indent-size, var(--ax-comp-tree2-indent-size))}.ax-tree2-with-lines .ax-tree2-children:before{content:\"\";position:absolute;left:var(--ax-tree-line-offset, calc(var(--ax-comp-tree2-indent-size) / 2));top:0;height:calc(100% - .875rem);width:1px;background:var(--ax-tree-line-color, var(--ax-comp-tree2-line-color))}.ax-tree2-with-lines .ax-tree2-node{position:relative}.ax-tree2-with-lines .ax-tree2-node:before{content:\"\";position:absolute;left:calc(-1 * var(--ax-tree-line-offset, calc(var(--ax-comp-tree2-indent-size) / 2)));top:60%;width:var(--ax-tree-line-offset, calc(var(--ax-comp-tree2-indent-size) / 2));height:1px;background:var(--ax-tree-line-color, var(--ax-comp-tree2-line-color))}.ax-tree2-with-lines>.ax-tree2-drop-list>.ax-tree2-node:before,.ax-tree2-with-lines>.ax-tree2-node:before{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: AXDragDirective, selector: "[axDrag]", inputs: ["axDrag", "dragData", "dragDisabled", "dragTransition", "dragElementClone", "dropZoneGroup", "dragStartDelay", "dragResetOnDblClick", "dragLockAxis", "dragClonedTemplate", "dragCursor", "dragBoundary", "dragTransitionDuration"], outputs: ["dragPositionChanged"] }, { kind: "directive", type: AXDragHandleDirective, selector: "[axDragHandle]" }, { kind: "directive", type: AXDropListDirective, selector: "[axDropList]", inputs: ["axDropList", "sortingDisabled", "dropListGroup", "dropListOrientation"], outputs: ["dropListDropped"], exportAs: ["axDropList"] }, { kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: AXCheckBoxComponent, selector: "ax-check-box", inputs: ["disabled", "tabIndex", "readonly", "color", "value", "name", "id", "isLoading", "indeterminate"], outputs: ["onBlur", "onFocus", "valueChange", "onValueChanged"] }, { kind: "component", type: AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
648
648
|
}
|
|
649
649
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: AXTree2Component, decorators: [{
|
|
650
650
|
type: Component,
|
|
@@ -666,18 +666,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImpor
|
|
|
666
666
|
'[class.ax-tree2-with-line]': "look() === 'with-line'",
|
|
667
667
|
'[style.--ax-tree-indent-size]': "indentSize() + 'px'",
|
|
668
668
|
'[style.--ax-tree-line-offset]': "(indentSize() / 2) + 'px'",
|
|
669
|
-
}, template: "<!-- Root drop list -->\n<div\n [axDropList]=\"dragMode() !== 'none'\"\n [sortingDisabled]=\"false\"\n [id]=\"getListId()\"\n [attr.data-node-id]=\"null\"\n dropListGroup=\"ax-tree-nodes\"\n (dropListDropped)=\"onDrop($event)\"\n class=\"ax-tree2-drop-list\"\n [class.ax-tree2-card]=\"look() === 'card'\"\n [class.ax-tree2-with-lines]=\"look() === 'with-line'\"\n [class.ax-tree2-compact]=\"nodeHeight() === 'compact'\"\n [class.ax-tree2-comfortable]=\"nodeHeight() === 'comfortable'\"\n>\n @for (node of nodes(); track node.id) {\n @if (node.visible !== false) {\n <div\n [axDrag]=\"dragMode() !== 'none'\"\n [dragDisabled]=\"node.disabled\"\n [dragData]=\"node\"\n class=\"ax-tree2-node\"\n [class.ax-tree2-node-selected]=\"node.selected\"\n [class.ax-tree2-node-disabled]=\"node.disabled\"\n [class.ax-tree2-node-loading]=\"node.loading\"\n >\n <div\n class=\"ax-tree2-node-content\"\n [axDropList]=\"dragMode() !== 'none'\"\n [id]=\"'ax-tree-node-drop-' + node.id\"\n [attr.data-node-id]=\"node.id\"\n [attr.data-drop-type]=\"'onto-node'\"\n dropListGroup=\"ax-tree-nodes\"\n (dropListDropped)=\"onDropOntoNode($event, node)\"\n >\n @if (dragMode() === 'handler') {\n <span class=\"ax-tree2-drag-handle\" axDragHandle title=\"Drag to reorder\"> \u22EE\u22EE </span>\n }\n <ax-button\n class=\"ax-tree2-expand-toggle ax-sm\"\n (onClick)=\"toggleNode(node, $any($event))\"\n [class.ax-tree2-has-children]=\"shouldShowExpandToggle(node)\"\n [class.ax-tree2-expanded]=\"node.expanded\"\n [disabled]=\"node.disabled || node.loading\"\n [style.visibility]=\"shouldShowExpandToggle(node) ? 'visible' : 'hidden'\"\n >\n @if (node.loading) {\n <ax-icon>\n <i class=\"fa-solid fa-spinner fa-spin ax-tree2-loading-spinner\"></i>\n </ax-icon>\n } @else {\n <ax-icon>\n <i [class]=\"node.expanded ? expandedIcon() : collapsedIcon()\" class=\"ax-tree2-toggle-icon\"></i>\n </ax-icon>\n }\n </ax-button>\n @if (itemTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate()!\"\n [ngTemplateOutletContext]=\"getTemplateContext(node, 0)\"\n ></ng-container>\n } @else {\n @if (showCheckbox()) {\n <ax-check-box\n class=\"ax-tree2-checkbox\"\n [ngModel]=\"node.indeterminate ? null : node.selected || false\"\n [indeterminate]=\"node.indeterminate || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n (click)=\"$event.stopPropagation()\"\n (pointerdown)=\"$event.stopPropagation()\"\n ></ax-check-box>\n }\n @if (showIcons() && node.icon) {\n <i [class]=\"node.icon\" class=\"ax-tree2-node-icon\"></i>\n }\n <span class=\"ax-tree2-node-label\">{{ node.label }}</span>\n @if (showChildrenBadge() && (node.childrenCount || (node.children && node.children.length > 0))) {\n <ax-badge\n class=\"ax-tree2-children-badge\"\n [text]=\"(node.childrenCount ?? node.children?.length ?? 0).toString()\"\n ></ax-badge>\n }\n }\n </div>\n </div>\n @if (node.expanded && node.children && node.children.length > 0) {\n <div class=\"ax-tree2-children\">\n <ng-container\n [ngTemplateOutlet]=\"childrenList\"\n [ngTemplateOutletContext]=\"{ children: node.children, parent: node, level: 1 }\"\n ></ng-container>\n </div>\n }\n }\n }\n</div>\n\n<!-- Recursive children template -->\n<ng-template #childrenList let-children=\"children\" let-parent=\"parent\" let-level=\"level\">\n <div\n [axDropList]=\"dragMode() !== 'none'\"\n [id]=\"getListId(parent)\"\n [attr.data-node-id]=\"parent.id\"\n dropListGroup=\"ax-tree-nodes\"\n (dropListDropped)=\"onDrop($event, parent)\"\n class=\"ax-tree2-drop-list\"\n >\n @for (node of children; track node.id) {\n @if (node.visible !== false) {\n <div\n [axDrag]=\"dragMode() !== 'none'\"\n [dragDisabled]=\"node.disabled\"\n [dragData]=\"node\"\n class=\"ax-tree2-node\"\n [class.ax-tree2-node-selected]=\"node.selected\"\n [class.ax-tree2-node-disabled]=\"node.disabled\"\n [class.ax-tree2-node-loading]=\"node.loading\"\n >\n <div\n class=\"ax-tree2-node-content\"\n [style.padding-left.px]=\"(level * indentSize()) / (look() === 'with-line' ? 3 : 1)\"\n [axDropList]=\"dragMode() !== 'none'\"\n [id]=\"'ax-tree-node-drop-' + node.id\"\n [attr.data-node-id]=\"node.id\"\n [attr.data-drop-type]=\"'onto-node'\"\n dropListGroup=\"ax-tree-nodes\"\n (dropListDropped)=\"onDropOntoNode($event, node)\"\n >\n @if (dragMode() === 'handler') {\n <span class=\"ax-tree2-drag-handle\" axDragHandle title=\"Drag to reorder\"> \u22EE\u22EE </span>\n }\n <ax-button\n class=\"ax-tree2-expand-toggle ax-sm\"\n (onClick)=\"toggleNode(node, $any($event))\"\n [class.ax-tree2-has-children]=\"shouldShowExpandToggle(node)\"\n [class.ax-tree2-expanded]=\"node.expanded\"\n [disabled]=\"node.disabled || node.loading\"\n [style.visibility]=\"shouldShowExpandToggle(node) ? 'visible' : 'hidden'\"\n >\n @if (node.loading) {\n <ax-icon>\n <i class=\"fa-solid fa-spinner fa-spin ax-tree2-loading-spinner\"></i>\n </ax-icon>\n } @else {\n <ax-icon>\n <i [class]=\"node.expanded ? expandedIcon() : collapsedIcon()\" class=\"ax-tree2-toggle-icon\"></i>\n </ax-icon>\n }\n </ax-button>\n\n @if (itemTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate()!\"\n [ngTemplateOutletContext]=\"getTemplateContext(node, level)\"\n ></ng-container>\n } @else {\n @if (showCheckbox()) {\n <ax-check-box\n class=\"ax-tree2-checkbox\"\n [ngModel]=\"node.indeterminate ? null : node.selected || false\"\n [indeterminate]=\"node.indeterminate || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n (click)=\"$event.stopPropagation()\"\n (pointerdown)=\"$event.stopPropagation()\"\n ></ax-check-box>\n }\n @if (showIcons() && node.icon) {\n <i [class]=\"node.icon\" class=\"ax-tree2-node-icon\"></i>\n }\n <span class=\"ax-tree2-node-label\">{{ node.label }}</span>\n @if (showChildrenBadge() && (node.childrenCount || (node.children && node.children.length > 0))) {\n <ax-badge\n class=\"ax-tree2-children-badge\"\n [text]=\"(node.childrenCount ?? node.children?.length ?? 0).toString()\"\n ></ax-badge>\n }\n }\n </div>\n </div>\n @if (node.expanded && node.children && node.children.length > 0) {\n <div class=\"ax-tree2-children\">\n <ng-container\n [ngTemplateOutlet]=\"childrenList\"\n [ngTemplateOutletContext]=\"{ children: node.children, parent: node, level: level + 1 }\"\n ></ng-container>\n </div>\n }\n }\n }\n </div>\n</ng-template>\n", styles: [".ax-tree2{display:block;width:100%;--ax-comp-tree2-indent-size: 12px;--ax-comp-tree2-node-hover-bg: rgba(var(--ax-sys-color-on-lightest-surface), .04);--ax-comp-tree2-node-selected-bg: rgba(var(--ax-sys-color-primary-500), .12);--ax-comp-tree2-node-border-radius: 6px;--ax-comp-tree2-node-margin: .125rem;--ax-comp-tree2-line-color: rgba(var(--ax-sys-color-on-lightest-surface), .15);--ax-comp-tree2-drag-preview-opacity: .9;--ax-comp-tree2-drag-placeholder-bg: rgba(var(--ax-sys-color-on-lightest-surface), .02);--ax-comp-tree2-drop-active-bg: rgba(var(--ax-sys-color-primary-500), .08);--ax-comp-tree2-drop-active-outline: rgba(var(--ax-sys-color-primary-500), .3)}.ax-tree2-drop-list{min-height:2rem}.ax-tree2-compact .ax-tree2-node-content{padding:.25rem .5rem;gap:.375rem;font-size:.8125rem}.ax-tree2-comfortable .ax-tree2-node-content{padding:.75rem .625rem;gap:.625rem;font-size:.9375rem}.ax-tree2-node{position:relative;margin:var(--ax-comp-tree2-node-margin) 0;border-radius:var(--ax-comp-tree2-node-border-radius);border:1px solid transparent;cursor:move}.ax-tree2-node:hover:not(.ax-dragging){background:var(--ax-comp-tree2-node-hover-bg)}.ax-tree2-node.ax-tree2-node-selected{background:var(--ax-comp-tree2-node-selected-bg);border-color:currentColor}.ax-tree2-node.ax-dragging{opacity:var(--ax-comp-tree2-drag-placeholder-opacity);cursor:grabbing!important}.ax-tree2-node.ax-drag-placeholder{background:var(--ax-comp-tree2-drag-placeholder-bg)}.ax-drag-preview{opacity:var(--ax-comp-tree2-drag-preview-opacity)!important;box-shadow:0 4px 12px rgba(var(--ax-sys-color-on-lightest-surface),.2)!important;cursor:grabbing!important;border:2px dashed currentColor!important}.ax-tree2-node-content.ax-drop-list-sorting-active{background:var(--ax-comp-tree2-drop-active-bg);border-radius:var(--ax-comp-tree2-node-border-radius);outline:2px dashed var(--ax-comp-tree2-drop-active-outline);outline-offset:-2px}.ax-tree2-node-content{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.ax-tree2-drag-handle{cursor:grab;opacity:.6;padding:.25rem}.ax-tree2-drag-handle:hover{opacity:1}.ax-tree2-drag-handle:active{cursor:grabbing}.ax-tree2-expand-toggle{background:none;border:none;cursor:pointer;padding:.25rem;min-width:1.5rem;height:1.5rem}.ax-tree2-expand-toggle:not(.ax-tree2-has-children){opacity:0;pointer-events:none}.ax-tree2-toggle-icon{font-size:.75rem}.ax-tree2-node-icon{font-size:1.125rem;flex-shrink:0}.ax-tree2-node-label{flex:1;font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ax-tree2-children{padding-left:var(--ax-tree-indent-size, var(--ax-comp-tree2-indent-size))}.ax-tree2-node-disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.ax-tree2-node-loading{opacity:.7}.ax-tree2-card .ax-tree2-node{border:1px solid rgba(var(--ax-sys-color-border-lightest-surface),1);margin:.5rem 0}.ax-tree2-card .ax-tree2-node-content{padding:1rem}.ax-tree2-with-lines .ax-tree2-children{position:relative;padding-left:var(--ax-tree-indent-size, var(--ax-comp-tree2-indent-size))}.ax-tree2-with-lines .ax-tree2-children:before{content:\"\";position:absolute;left:var(--ax-tree-line-offset, calc(var(--ax-comp-tree2-indent-size) / 2));top:0;height:calc(100% - .875rem);width:1px;background:var(--ax-tree-line-color, var(--ax-comp-tree2-line-color))}.ax-tree2-with-lines .ax-tree2-node{position:relative}.ax-tree2-with-lines .ax-tree2-node:before{content:\"\";position:absolute;left:calc(-1 * var(--ax-tree-line-offset, calc(var(--ax-comp-tree2-indent-size) / 2)));top:60%;width:var(--ax-tree-line-offset, calc(var(--ax-comp-tree2-indent-size) / 2));height:1px;background:var(--ax-tree-line-color, var(--ax-comp-tree2-line-color))}.ax-tree2-with-lines>.ax-tree2-drop-list>.ax-tree2-node:before,.ax-tree2-with-lines>.ax-tree2-node:before{display:none}\n"] }]
|
|
669
|
+
}, template: "<!-- Root drop list -->\n<div\n [axDropList]=\"dragMode() !== 'none'\"\n [sortingDisabled]=\"false\"\n [id]=\"getListId()\"\n [attr.data-node-id]=\"null\"\n dropListGroup=\"ax-tree-nodes\"\n (dropListDropped)=\"onDrop($event)\"\n class=\"ax-tree2-drop-list\"\n [class.ax-tree2-card]=\"look() === 'card'\"\n [class.ax-tree2-with-lines]=\"look() === 'with-line'\"\n [class.ax-tree2-compact]=\"nodeHeight() === 'compact'\"\n [class.ax-tree2-comfortable]=\"nodeHeight() === 'comfortable'\"\n>\n @for (node of nodes(); track node.id) {\n @if (node.visible !== false) {\n <div\n [axDrag]=\"dragMode() !== 'none'\"\n [dragDisabled]=\"node.disabled\"\n [dragData]=\"node\"\n class=\"ax-tree2-node\"\n [class.ax-tree2-node-selected]=\"node.selected\"\n [class.ax-tree2-node-disabled]=\"node.disabled\"\n [class.ax-tree2-node-loading]=\"node.loading\"\n >\n <div\n class=\"ax-tree2-node-content\"\n [axDropList]=\"dragMode() !== 'none'\"\n [id]=\"'ax-tree-node-drop-' + node.id\"\n [attr.data-node-id]=\"node.id\"\n [attr.data-drop-type]=\"'onto-node'\"\n dropListGroup=\"ax-tree-nodes\"\n (dropListDropped)=\"onDropOntoNode($event, node)\"\n >\n @if (dragMode() === 'handler') {\n <span class=\"ax-tree2-drag-handle\" axDragHandle title=\"Drag to reorder\"> \u22EE\u22EE </span>\n }\n <ax-button\n class=\"ax-tree2-expand-toggle ax-sm\"\n (onClick)=\"toggleNode(node, $any($event))\"\n [class.ax-tree2-has-children]=\"shouldShowExpandToggle(node)\"\n [class.ax-tree2-expanded]=\"node.expanded\"\n [disabled]=\"node.disabled || node.loading\"\n [style.visibility]=\"shouldShowExpandToggle(node) ? 'visible' : 'hidden'\"\n >\n @if (node.loading) {\n <ax-icon>\n <i class=\"fa-solid fa-spinner fa-spin ax-tree2-loading-spinner\"></i>\n </ax-icon>\n } @else {\n <ax-icon>\n <i [class]=\"node.expanded ? expandedIcon() : collapsedIcon()\" class=\"ax-tree2-toggle-icon\"></i>\n </ax-icon>\n }\n </ax-button>\n @if (itemTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate()!\"\n [ngTemplateOutletContext]=\"getTemplateContext(node, 0)\"\n ></ng-container>\n } @else {\n @if (showCheckbox()) {\n <ax-check-box\n class=\"ax-tree2-checkbox\"\n [ngModel]=\"node.indeterminate ? null : node.selected || false\"\n [indeterminate]=\"node.indeterminate || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n (click)=\"$event.stopPropagation()\"\n (pointerdown)=\"$event.stopPropagation()\"\n ></ax-check-box>\n }\n @if (showIcons() && node.icon) {\n <i [class]=\"node.icon\" class=\"ax-tree2-node-icon\"></i>\n }\n <span class=\"ax-tree2-node-label\">{{ node.label }}</span>\n @if (showChildrenBadge() && (node.childrenCount || (node.children && node.children.length > 0))) {\n <ax-badge\n class=\"ax-tree2-children-badge\"\n [text]=\"(node.childrenCount ?? node.children?.length ?? 0).toString()\"\n ></ax-badge>\n }\n }\n </div>\n </div>\n @if (node.expanded && node.children && node.children.length > 0) {\n <div class=\"ax-tree2-children\">\n <ng-container\n [ngTemplateOutlet]=\"childrenList\"\n [ngTemplateOutletContext]=\"{ children: node.children, parent: node, level: 1 }\"\n ></ng-container>\n </div>\n }\n }\n }\n</div>\n\n<!-- Recursive children template -->\n<ng-template #childrenList let-children=\"children\" let-parent=\"parent\" let-level=\"level\">\n <div\n [axDropList]=\"dragMode() !== 'none'\"\n [id]=\"getListId(parent)\"\n [attr.data-node-id]=\"parent.id\"\n dropListGroup=\"ax-tree-nodes\"\n (dropListDropped)=\"onDrop($event, parent)\"\n class=\"ax-tree2-drop-list\"\n >\n @for (node of children; track node.id) {\n @if (node.visible !== false) {\n <div\n [axDrag]=\"dragMode() !== 'none'\"\n [dragDisabled]=\"node.disabled\"\n [dragData]=\"node\"\n class=\"ax-tree2-node\"\n [class.ax-tree2-node-selected]=\"node.selected\"\n [class.ax-tree2-node-disabled]=\"node.disabled\"\n [class.ax-tree2-node-loading]=\"node.loading\"\n >\n <div\n class=\"ax-tree2-node-content\"\n [style.padding-left.px]=\"(level * indentSize()) / (look() === 'with-line' ? 3 : 1)\"\n [axDropList]=\"dragMode() !== 'none'\"\n [id]=\"'ax-tree-node-drop-' + node.id\"\n [attr.data-node-id]=\"node.id\"\n [attr.data-drop-type]=\"'onto-node'\"\n dropListGroup=\"ax-tree-nodes\"\n (dropListDropped)=\"onDropOntoNode($event, node)\"\n >\n @if (dragMode() === 'handler') {\n <span class=\"ax-tree2-drag-handle\" axDragHandle title=\"Drag to reorder\"> \u22EE\u22EE </span>\n }\n <ax-button\n class=\"ax-tree2-expand-toggle ax-sm\"\n (onClick)=\"toggleNode(node, $any($event))\"\n [class.ax-tree2-has-children]=\"shouldShowExpandToggle(node)\"\n [class.ax-tree2-expanded]=\"node.expanded\"\n [disabled]=\"node.disabled || node.loading\"\n [style.visibility]=\"shouldShowExpandToggle(node) ? 'visible' : 'hidden'\"\n >\n @if (node.loading) {\n <ax-icon>\n <i class=\"fa-solid fa-spinner fa-spin ax-tree2-loading-spinner\"></i>\n </ax-icon>\n } @else {\n <ax-icon>\n <i [class]=\"node.expanded ? expandedIcon() : collapsedIcon()\" class=\"ax-tree2-toggle-icon\"></i>\n </ax-icon>\n }\n </ax-button>\n\n @if (itemTemplate()) {\n <ng-container\n [ngTemplateOutlet]=\"itemTemplate()!\"\n [ngTemplateOutletContext]=\"getTemplateContext(node, level)\"\n ></ng-container>\n } @else {\n @if (showCheckbox()) {\n <ax-check-box\n class=\"ax-tree2-checkbox\"\n [ngModel]=\"node.indeterminate ? null : node.selected || false\"\n [indeterminate]=\"node.indeterminate || false\"\n (onValueChanged)=\"toggleSelection(node, $event)\"\n (click)=\"$event.stopPropagation()\"\n (pointerdown)=\"$event.stopPropagation()\"\n ></ax-check-box>\n }\n @if (showIcons() && node.icon) {\n <i [class]=\"node.icon\" class=\"ax-tree2-node-icon\"></i>\n }\n <span class=\"ax-tree2-node-label\">{{ node.label }}</span>\n @if (showChildrenBadge() && (node.childrenCount || (node.children && node.children.length > 0))) {\n <ax-badge\n class=\"ax-tree2-children-badge\"\n [text]=\"(node.childrenCount ?? node.children?.length ?? 0).toString()\"\n ></ax-badge>\n }\n }\n </div>\n </div>\n @if (node.expanded && node.children && node.children.length > 0) {\n <div class=\"ax-tree2-children\">\n <ng-container\n [ngTemplateOutlet]=\"childrenList\"\n [ngTemplateOutletContext]=\"{ children: node.children, parent: node, level: level + 1 }\"\n ></ng-container>\n </div>\n }\n }\n }\n </div>\n</ng-template>\n", styles: [".ax-tree2{display:block;width:100%;--ax-comp-tree2-indent-size: 12px;--ax-comp-tree2-node-hover-bg: rgba(var(--ax-sys-color-on-lightest-surface), .04);--ax-comp-tree2-node-selected-bg: rgba(var(--ax-sys-color-primary-500), .12);--ax-comp-tree2-node-border-radius: 6px;--ax-comp-tree2-node-margin: .25rem;--ax-comp-tree2-line-color: rgba(var(--ax-sys-color-on-lightest-surface), .15);--ax-comp-tree2-drag-preview-opacity: .9;--ax-comp-tree2-drag-placeholder-bg: rgba(var(--ax-sys-color-on-lightest-surface), .02);--ax-comp-tree2-drop-active-bg: rgba(var(--ax-sys-color-primary-500), .08);--ax-comp-tree2-drop-active-outline: rgba(var(--ax-sys-color-primary-500), .3)}.ax-tree2-drop-list{min-height:2rem}.ax-tree2-compact .ax-tree2-node-content{padding:.25rem .5rem;gap:.375rem;font-size:.8125rem}.ax-tree2-comfortable .ax-tree2-node-content{padding:.75rem .625rem;gap:.625rem;font-size:.9375rem}.ax-tree2-node{position:relative;margin:var(--ax-comp-tree2-node-margin) 0;border-radius:var(--ax-comp-tree2-node-border-radius);border:1px solid transparent;cursor:move}.ax-tree2-node:hover:not(.ax-dragging){background:var(--ax-comp-tree2-node-hover-bg)}.ax-tree2-node.ax-tree2-node-selected{background:var(--ax-comp-tree2-node-selected-bg);border-color:currentColor}.ax-tree2-node.ax-dragging{opacity:var(--ax-comp-tree2-drag-placeholder-opacity);cursor:grabbing!important}.ax-tree2-node.ax-drag-placeholder{background:var(--ax-comp-tree2-drag-placeholder-bg)}.ax-drag-preview{opacity:var(--ax-comp-tree2-drag-preview-opacity)!important;box-shadow:0 4px 12px rgba(var(--ax-sys-color-on-lightest-surface),.2)!important;cursor:grabbing!important;border:2px dashed currentColor!important}.ax-tree2-node-content.ax-drop-list-sorting-active{background:var(--ax-comp-tree2-drop-active-bg);border-radius:var(--ax-comp-tree2-node-border-radius);outline:2px dashed var(--ax-comp-tree2-drop-active-outline);outline-offset:-2px}.ax-tree2-node-content{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.ax-tree2-drag-handle{cursor:grab;opacity:.6;padding:.25rem}.ax-tree2-drag-handle:hover{opacity:1}.ax-tree2-drag-handle:active{cursor:grabbing}.ax-tree2-expand-toggle{background:none;border:none;cursor:pointer;padding:.25rem;min-width:1.5rem;height:1.5rem}.ax-tree2-expand-toggle:not(.ax-tree2-has-children){opacity:0;pointer-events:none}.ax-tree2-toggle-icon{font-size:.75rem}.ax-tree2-node-icon{font-size:1.125rem;flex-shrink:0}.ax-tree2-node-label{flex:1;font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ax-tree2-children{padding-left:var(--ax-tree-indent-size, var(--ax-comp-tree2-indent-size))}.ax-tree2-node-disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.ax-tree2-node-loading{opacity:.7}.ax-tree2-card .ax-tree2-node{border:1px solid rgba(var(--ax-sys-color-border-lightest-surface),1);margin:.5rem 0}.ax-tree2-card .ax-tree2-node-content{padding:1rem}.ax-tree2-with-lines .ax-tree2-children{position:relative;padding-left:var(--ax-tree-indent-size, var(--ax-comp-tree2-indent-size))}.ax-tree2-with-lines .ax-tree2-children:before{content:\"\";position:absolute;left:var(--ax-tree-line-offset, calc(var(--ax-comp-tree2-indent-size) / 2));top:0;height:calc(100% - .875rem);width:1px;background:var(--ax-tree-line-color, var(--ax-comp-tree2-line-color))}.ax-tree2-with-lines .ax-tree2-node{position:relative}.ax-tree2-with-lines .ax-tree2-node:before{content:\"\";position:absolute;left:calc(-1 * var(--ax-tree-line-offset, calc(var(--ax-comp-tree2-indent-size) / 2)));top:60%;width:var(--ax-tree-line-offset, calc(var(--ax-comp-tree2-indent-size) / 2));height:1px;background:var(--ax-tree-line-color, var(--ax-comp-tree2-line-color))}.ax-tree2-with-lines>.ax-tree2-drop-list>.ax-tree2-node:before,.ax-tree2-with-lines>.ax-tree2-node:before{display:none}\n"] }]
|
|
670
670
|
}], propDecorators: { nodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodes", required: true }] }, { type: i0.Output, args: ["nodesChange"] }], showCheckbox: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCheckbox", required: false }] }], dragMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "dragMode", required: false }] }], dragOperationType: [{ type: i0.Input, args: [{ isSignal: true, alias: "dragOperationType", required: false }] }], showIcons: [{ type: i0.Input, args: [{ isSignal: true, alias: "showIcons", required: false }] }], showChildrenBadge: [{ type: i0.Input, args: [{ isSignal: true, alias: "showChildrenBadge", required: false }] }], expandedIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandedIcon", required: false }] }], collapsedIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsedIcon", required: false }] }], indentSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "indentSize", required: false }] }], nodeHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeHeight", required: false }] }], look: [{ type: i0.Input, args: [{ isSignal: true, alias: "look", required: false }] }], itemTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemTemplate", required: false }] }], lazyLoad: [{ type: i0.Input, args: [{ isSignal: true, alias: "lazyLoad", required: false }] }], enableLazyLoad: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableLazyLoad", required: false }] }], onBeforeDrop: [{ type: i0.Output, args: ["onBeforeDrop"] }], onNodeToggle: [{ type: i0.Output, args: ["onNodeToggle"] }], onNodeSelect: [{ type: i0.Output, args: ["onNodeSelect"] }], onOrderChange: [{ type: i0.Output, args: ["onOrderChange"] }], onMoveChange: [{ type: i0.Output, args: ["onMoveChange"] }], onItemsChange: [{ type: i0.Output, args: ["onItemsChange"] }] } });
|
|
671
671
|
|
|
672
672
|
class Tree2Module {
|
|
673
673
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Tree2Module, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
674
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.6", ngImport: i0, type: Tree2Module, imports: [
|
|
675
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Tree2Module, imports: [
|
|
674
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.6", ngImport: i0, type: Tree2Module, imports: [AXTree2Component] }); }
|
|
675
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Tree2Module, imports: [AXTree2Component] }); }
|
|
676
676
|
}
|
|
677
677
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: Tree2Module, decorators: [{
|
|
678
678
|
type: NgModule,
|
|
679
679
|
args: [{
|
|
680
|
-
imports: [
|
|
680
|
+
imports: [AXTree2Component],
|
|
681
681
|
}]
|
|
682
682
|
}] });
|
|
683
683
|
|