@abp/ng.components 10.1.0-rc.1 → 10.1.0-rc.2

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.
@@ -13,10 +13,10 @@ class TreeNodeTemplateDirective {
13
13
  constructor() {
14
14
  this.template = inject(TemplateRef);
15
15
  }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TreeNodeTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
17
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: TreeNodeTemplateDirective, isStandalone: true, selector: "[abpTreeNodeTemplate],[abp-tree-node-template]", ngImport: i0 }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TreeNodeTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
17
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: TreeNodeTemplateDirective, isStandalone: true, selector: "[abpTreeNodeTemplate],[abp-tree-node-template]", ngImport: i0 }); }
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TreeNodeTemplateDirective, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TreeNodeTemplateDirective, decorators: [{
20
20
  type: Directive,
21
21
  args: [{
22
22
  selector: '[abpTreeNodeTemplate],[abp-tree-node-template]',
@@ -27,10 +27,10 @@ class ExpandedIconTemplateDirective {
27
27
  constructor() {
28
28
  this.template = inject(TemplateRef);
29
29
  }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ExpandedIconTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
31
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: ExpandedIconTemplateDirective, isStandalone: true, selector: "[abpTreeExpandedIconTemplate],[abp-tree-expanded-icon-template]", ngImport: i0 }); }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ExpandedIconTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
31
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.9", type: ExpandedIconTemplateDirective, isStandalone: true, selector: "[abpTreeExpandedIconTemplate],[abp-tree-expanded-icon-template]", ngImport: i0 }); }
32
32
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ExpandedIconTemplateDirective, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: ExpandedIconTemplateDirective, decorators: [{
34
34
  type: Directive,
35
35
  args: [{
36
36
  selector: '[abpTreeExpandedIconTemplate],[abp-tree-expanded-icon-template]',
@@ -133,10 +133,10 @@ class TreeComponent {
133
133
  this.selectedNode = { ...newSelectedNode };
134
134
  this.cdr.markForCheck();
135
135
  }
136
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
137
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.6", type: TreeComponent, isStandalone: true, selector: "abp-tree", inputs: { noAnimation: "noAnimation", draggable: "draggable", checkable: "checkable", checkStrictly: "checkStrictly", checkedKeys: "checkedKeys", nodes: "nodes", expandedKeys: "expandedKeys", selectedNode: "selectedNode", changeCheckboxWithNode: "changeCheckboxWithNode", isNodeSelected: "isNodeSelected", beforeDrop: "beforeDrop" }, outputs: { checkedKeysChange: "checkedKeysChange", expandedKeysChange: "expandedKeysChange", selectedNodeChange: "selectedNodeChange", dropOver: "dropOver", nzExpandChange: "nzExpandChange" }, providers: [SubscriptionService], queries: [{ propertyName: "menu", first: true, predicate: ["menu"], descendants: true }, { propertyName: "customNodeTemplate", first: true, predicate: TreeNodeTemplateDirective, descendants: true }, { propertyName: "expandedIconTemplate", first: true, predicate: ExpandedIconTemplateDirective, descendants: true }], ngImport: i0, template: "<nz-tree\r\n [nzBeforeDrop]=\"beforeDrop\"\r\n [nzDraggable]=\"draggable\"\r\n [nzCheckStrictly]=\"checkStrictly\"\r\n [nzCheckable]=\"checkable\"\r\n [nzCheckedKeys]=\"checkedKeys\"\r\n [nzData]=\"nodes\"\r\n [nzTreeTemplate]=\"treeTemplate\"\r\n [nzExpandedKeys]=\"expandedKeys\"\r\n [nzExpandedIcon]=\"expandedIconTemplate?.template || defaultIconTemplate\"\r\n (nzExpandChange)=\"onExpandedKeysChange($event)\"\r\n (nzCheckboxChange)=\"onCheckboxChange($event)\"\r\n (nzOnDrop)=\"onDrop($event)\"\r\n [nzNoAnimation]=\"noAnimation\"\r\n (nzContextMenu)=\"onContextMenuChange($event)\"\r\n/>\r\n<ng-template #treeTemplate let-node>\r\n <div\r\n [class.selected]=\"isNodeSelected(node)\"\r\n [title]=\"node.title\"\r\n (click)=\"onSelectedNodeChange(node)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"nodeTemplate; context: { $implicit: node }\" />\r\n\r\n <ng-template #nodeTemplate let-node>\r\n <div class=\"d-inline-flex align-items-center abp-ellipsis-inline\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n customNodeTemplate ? customNodeTemplate?.template : defaultNodeTemplate;\r\n context: { $implicit: node }\r\n \"\r\n />\r\n </div>\r\n\r\n @if (menu) {\r\n <div\r\n #dropdown=\"ngbDropdown\"\r\n class=\"d-inline-block ms-1\"\r\n ngbDropdown\r\n placement=\"bottom\"\r\n container=\"body\"\r\n (abpInit)=\"initDropdown(node.key, dropdown)\"\r\n >\r\n <i\r\n class=\"fas fa-caret-down text-muted\"\r\n ngbDropdownToggle\r\n [class.dropdown-toggle]=\"false\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n <div ngbDropdownMenu>\r\n <ng-template *ngTemplateOutlet=\"menu; context: { $implicit: node }\" />\r\n </div>\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <ng-template #defaultNodeTemplate let-node>\r\n <span>{{ node.title }}</span>\r\n </ng-template>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #defaultIconTemplate let-node let-origin=\"origin\">\r\n <i aria-hidden=\"true\">\r\n <ng-container *ngTemplateOutlet=\"node.isExpanded ? minusIcon : plusIcon\"\r\n /></i>\r\n</ng-template>\r\n\r\n<ng-template #minusIcon>\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n >\r\n <path\r\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm-6.5 10h13v1h-13v-1z\"\r\n />\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #plusIcon>\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n >\r\n <path\r\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm.5 10h6v1h-6v6h-1v-6h-6v-1h6v-6h1v6z\"\r\n />\r\n </svg>\r\n</ng-template>\r\n", styles: ["abp-tree .ant-tree{color:inherit}abp-tree .ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:transparent}abp-tree .ant-tree .ant-tree-switcher{line-height:17px;align-items:center;justify-content:center;display:inline-flex}abp-tree .ant-tree .ant-tree-node-content-wrapper{width:100%;padding:0}abp-tree .ant-tree .ant-tree-node-content-wrapper>div{display:flex;padding-right:.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}abp-tree .ant-tree .node-wrapper{width:100%;position:relative;display:inline-block;margin:0;line-height:30px;text-decoration:none;vertical-align:top;border-radius:2px;cursor:pointer;padding:0 5px 0 8px;border:1px solid transparent}abp-tree .ant-tree .ellipsis{position:absolute;right:8px;top:1px;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NzTreeComponent, selector: "nz-tree", inputs: ["nzShowIcon", "nzHideUnMatched", "nzBlockNode", "nzExpandAll", "nzSelectMode", "nzCheckStrictly", "nzShowExpand", "nzShowLine", "nzCheckable", "nzAsyncData", "nzDraggable", "nzMultiple", "nzExpandedIcon", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualHeight", "nzTreeTemplate", "nzBeforeDrop", "nzData", "nzExpandedKeys", "nzSelectedKeys", "nzCheckedKeys", "nzSearchValue", "nzSearchFunc"], outputs: ["nzExpandedKeysChange", "nzSelectedKeysChange", "nzCheckedKeysChange", "nzSearchValueChange", "nzClick", "nzDblClick", "nzContextMenu", "nzCheckboxChange", "nzExpandChange", "nzOnDragStart", "nzOnDragEnter", "nzOnDragOver", "nzOnDragLeave", "nzOnDrop", "nzOnDragEnd"], exportAs: ["nzTree"] }, { kind: "directive", type: NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }, { kind: "directive", type: NzNoAnimationDirective, selector: "[nzNoAnimation]", inputs: ["nzNoAnimation"], exportAs: ["nzNoAnimation"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
136
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
137
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.9", type: TreeComponent, isStandalone: true, selector: "abp-tree", inputs: { noAnimation: "noAnimation", draggable: "draggable", checkable: "checkable", checkStrictly: "checkStrictly", checkedKeys: "checkedKeys", nodes: "nodes", expandedKeys: "expandedKeys", selectedNode: "selectedNode", changeCheckboxWithNode: "changeCheckboxWithNode", isNodeSelected: "isNodeSelected", beforeDrop: "beforeDrop" }, outputs: { checkedKeysChange: "checkedKeysChange", expandedKeysChange: "expandedKeysChange", selectedNodeChange: "selectedNodeChange", dropOver: "dropOver", nzExpandChange: "nzExpandChange" }, providers: [SubscriptionService], queries: [{ propertyName: "menu", first: true, predicate: ["menu"], descendants: true }, { propertyName: "customNodeTemplate", first: true, predicate: TreeNodeTemplateDirective, descendants: true }, { propertyName: "expandedIconTemplate", first: true, predicate: ExpandedIconTemplateDirective, descendants: true }], ngImport: i0, template: "<nz-tree\r\n [nzBeforeDrop]=\"beforeDrop\"\r\n [nzDraggable]=\"draggable\"\r\n [nzCheckStrictly]=\"checkStrictly\"\r\n [nzCheckable]=\"checkable\"\r\n [nzCheckedKeys]=\"checkedKeys\"\r\n [nzData]=\"nodes\"\r\n [nzTreeTemplate]=\"treeTemplate\"\r\n [nzExpandedKeys]=\"expandedKeys\"\r\n [nzExpandedIcon]=\"expandedIconTemplate?.template || defaultIconTemplate\"\r\n (nzExpandChange)=\"onExpandedKeysChange($event)\"\r\n (nzCheckboxChange)=\"onCheckboxChange($event)\"\r\n (nzOnDrop)=\"onDrop($event)\"\r\n [nzNoAnimation]=\"noAnimation\"\r\n (nzContextMenu)=\"onContextMenuChange($event)\"\r\n/>\r\n<ng-template #treeTemplate let-node>\r\n <div\r\n [class.selected]=\"isNodeSelected(node)\"\r\n [title]=\"node.title\"\r\n (click)=\"onSelectedNodeChange(node)\"\r\n >\r\n <ng-container *ngTemplateOutlet=\"nodeTemplate; context: { $implicit: node }\" />\r\n\r\n <ng-template #nodeTemplate let-node>\r\n <div class=\"d-inline-flex align-items-center abp-ellipsis-inline\">\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n customNodeTemplate ? customNodeTemplate?.template : defaultNodeTemplate;\r\n context: { $implicit: node }\r\n \"\r\n />\r\n </div>\r\n\r\n @if (menu) {\r\n <div\r\n #dropdown=\"ngbDropdown\"\r\n class=\"d-inline-block ms-1\"\r\n ngbDropdown\r\n placement=\"bottom\"\r\n container=\"body\"\r\n (abpInit)=\"initDropdown(node.key, dropdown)\"\r\n >\r\n <i\r\n class=\"fas fa-caret-down text-muted\"\r\n ngbDropdownToggle\r\n [class.dropdown-toggle]=\"false\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n <div ngbDropdownMenu>\r\n <ng-template *ngTemplateOutlet=\"menu; context: { $implicit: node }\" />\r\n </div>\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <ng-template #defaultNodeTemplate let-node>\r\n <span>{{ node.title }}</span>\r\n </ng-template>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #defaultIconTemplate let-node let-origin=\"origin\">\r\n <i aria-hidden=\"true\">\r\n <ng-container *ngTemplateOutlet=\"node.isExpanded ? minusIcon : plusIcon\"\r\n /></i>\r\n</ng-template>\r\n\r\n<ng-template #minusIcon>\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n >\r\n <path\r\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm-6.5 10h13v1h-13v-1z\"\r\n />\r\n </svg>\r\n</ng-template>\r\n\r\n<ng-template #plusIcon>\r\n <svg\r\n width=\"15\"\r\n height=\"15\"\r\n viewBox=\"0 0 24 24\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\n >\r\n <path\r\n d=\"M11.5 0c6.347 0 11.5 5.153 11.5 11.5s-5.153 11.5-11.5 11.5-11.5-5.153-11.5-11.5 5.153-11.5 11.5-11.5zm0 1c5.795 0 10.5 4.705 10.5 10.5s-4.705 10.5-10.5 10.5-10.5-4.705-10.5-10.5 4.705-10.5 10.5-10.5zm.5 10h6v1h-6v6h-1v-6h-6v-1h6v-6h1v6z\"\r\n />\r\n </svg>\r\n</ng-template>\r\n", styles: ["abp-tree .ant-tree{color:inherit}abp-tree .ant-tree .ant-tree-node-content-wrapper.ant-tree-node-selected{background-color:transparent}abp-tree .ant-tree .ant-tree-switcher{line-height:17px;align-items:center;justify-content:center;display:inline-flex}abp-tree .ant-tree .ant-tree-node-content-wrapper{width:100%;padding:0}abp-tree .ant-tree .ant-tree-node-content-wrapper>div{display:flex;padding-right:.5rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}abp-tree .ant-tree .node-wrapper{width:100%;position:relative;display:inline-block;margin:0;line-height:30px;text-decoration:none;vertical-align:top;border-radius:2px;cursor:pointer;padding:0 5px 0 8px;border:1px solid transparent}abp-tree .ant-tree .ellipsis{position:absolute;right:8px;top:1px;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: NzTreeComponent, selector: "nz-tree", inputs: ["nzShowIcon", "nzHideUnMatched", "nzBlockNode", "nzExpandAll", "nzSelectMode", "nzCheckStrictly", "nzShowExpand", "nzShowLine", "nzCheckable", "nzAsyncData", "nzDraggable", "nzMultiple", "nzExpandedIcon", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualHeight", "nzTreeTemplate", "nzBeforeDrop", "nzData", "nzExpandedKeys", "nzSelectedKeys", "nzCheckedKeys", "nzSearchValue", "nzSearchFunc"], outputs: ["nzExpandedKeysChange", "nzSelectedKeysChange", "nzCheckedKeysChange", "nzSearchValueChange", "nzClick", "nzDblClick", "nzContextMenu", "nzCheckboxChange", "nzExpandChange", "nzOnDragStart", "nzOnDragEnter", "nzOnDragOver", "nzOnDragLeave", "nzOnDrop", "nzOnDragEnd"], exportAs: ["nzTree"] }, { kind: "directive", type: NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: InitDirective, selector: "[abpInit]", outputs: ["abpInit"] }, { kind: "directive", type: NzNoAnimationDirective, selector: "[nzNoAnimation]", inputs: ["nzNoAnimation"], exportAs: ["nzNoAnimation"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
138
138
  }
139
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TreeComponent, decorators: [{
139
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TreeComponent, decorators: [{
140
140
  type: Component,
141
141
  args: [{ selector: 'abp-tree', encapsulation: ViewEncapsulation.None, providers: [SubscriptionService], changeDetection: ChangeDetectionStrategy.OnPush, imports: [
142
142
  NgTemplateOutlet,
@@ -191,11 +191,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
191
191
  }] } });
192
192
 
193
193
  class TreeModule {
194
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
195
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.6", ngImport: i0, type: TreeModule, imports: [TreeComponent, TreeNodeTemplateDirective, ExpandedIconTemplateDirective], exports: [TreeComponent, TreeNodeTemplateDirective, ExpandedIconTemplateDirective] }); }
196
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TreeModule, imports: [TreeComponent] }); }
194
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
195
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.9", ngImport: i0, type: TreeModule, imports: [TreeComponent, TreeNodeTemplateDirective, ExpandedIconTemplateDirective], exports: [TreeComponent, TreeNodeTemplateDirective, ExpandedIconTemplateDirective] }); }
196
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TreeModule, imports: [TreeComponent] }); }
197
197
  }
198
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: TreeModule, decorators: [{
198
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: TreeModule, decorators: [{
199
199
  type: NgModule,
200
200
  args: [{
201
201
  imports: [TreeComponent, TreeNodeTemplateDirective, ExpandedIconTemplateDirective],
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@abp/ng.components",
3
- "version": "10.1.0-rc.1",
3
+ "version": "10.1.0-rc.2",
4
4
  "homepage": "https://abp.io",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/abpframework/abp.git"
8
8
  },
9
9
  "peerDependencies": {
10
- "@abp/ng.core": ">=10.1.0-rc.1",
11
- "@abp/ng.theme.shared": ">=10.1.0-rc.1"
10
+ "@abp/ng.core": ">=10.1.0-rc.2",
11
+ "@abp/ng.theme.shared": ">=10.1.0-rc.2"
12
12
  },
13
13
  "dependencies": {
14
14
  "chart.js": "^3.5.1",
@@ -47,6 +47,10 @@
47
47
  "types": "./types/abp-ng.components-chart.js.d.ts",
48
48
  "default": "./fesm2022/abp-ng.components-chart.js.mjs"
49
49
  },
50
+ "./dynamic-form": {
51
+ "types": "./types/abp-ng.components-dynamic-form.d.ts",
52
+ "default": "./fesm2022/abp-ng.components-dynamic-form.mjs"
53
+ },
50
54
  "./extensible": {
51
55
  "types": "./types/abp-ng.components-extensible.d.ts",
52
56
  "default": "./fesm2022/abp-ng.components-extensible.mjs"
@@ -0,0 +1,200 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { Type, OnInit, DestroyRef, ChangeDetectorRef, InjectionToken, ViewContainerRef } from '@angular/core';
3
+ import * as _angular_forms from '@angular/forms';
4
+ import { ControlValueAccessor, FormGroup, FormControl, FormArray } from '@angular/forms';
5
+ import { Observable } from 'rxjs';
6
+
7
+ interface FormFieldConfig<T = any> {
8
+ key: string;
9
+ value?: any;
10
+ type: 'text' | 'email' | 'number' | 'select' | 'checkbox' | 'date' | 'textarea' | 'datetime-local' | 'time' | 'password' | 'tel' | 'url' | 'radio' | 'file' | 'range' | 'color' | 'group' | 'array';
11
+ label: string;
12
+ placeholder?: string;
13
+ required?: boolean;
14
+ disabled?: boolean;
15
+ options?: OptionProps<T>;
16
+ validators?: ValidatorConfig[];
17
+ conditionalLogic?: ConditionalRule[];
18
+ order?: number;
19
+ gridSize?: number;
20
+ component?: Type<ControlValueAccessor>;
21
+ min?: number | string;
22
+ max?: number | string;
23
+ step?: number | string;
24
+ minLength?: number;
25
+ maxLength?: number;
26
+ pattern?: string;
27
+ accept?: string;
28
+ multiple?: boolean;
29
+ children?: FormFieldConfig[];
30
+ minItems?: number;
31
+ maxItems?: number;
32
+ }
33
+ interface ValidatorConfig {
34
+ type: 'required' | 'email' | 'minLength' | 'maxLength' | 'pattern' | 'custom' | 'min' | 'max' | 'requiredTrue';
35
+ value?: any;
36
+ message: string;
37
+ }
38
+ interface ConditionalRule {
39
+ dependsOn: string;
40
+ condition: 'equals' | 'notEquals' | 'contains' | 'greaterThan' | 'lessThan';
41
+ value: any;
42
+ action: 'show' | 'hide' | 'enable' | 'disable';
43
+ }
44
+ declare enum ConditionalAction {
45
+ SHOW = "show",
46
+ HIDE = "hide",
47
+ ENABLE = "enable",
48
+ DISABLE = "disable"
49
+ }
50
+ interface OptionProps<T = any> {
51
+ defaultValues?: T[];
52
+ url?: string;
53
+ disabled?: (option: T) => boolean;
54
+ labelProp?: string;
55
+ valueProp?: string;
56
+ apiName?: string;
57
+ }
58
+
59
+ declare class DynamicFormComponent implements OnInit {
60
+ fields: _angular_core.InputSignal<FormFieldConfig<any>[]>;
61
+ values: _angular_core.InputSignal<Record<string, any>>;
62
+ submitButtonText: _angular_core.InputSignal<string>;
63
+ submitInProgress: _angular_core.InputSignal<boolean>;
64
+ showCancelButton: _angular_core.InputSignal<boolean>;
65
+ onSubmit: _angular_core.OutputEmitterRef<any>;
66
+ formCancel: _angular_core.OutputEmitterRef<void>;
67
+ private dynamicFormService;
68
+ readonly destroyRef: DestroyRef;
69
+ readonly changeDetectorRef: ChangeDetectorRef;
70
+ dynamicForm: FormGroup;
71
+ fieldVisibility: {
72
+ [key: string]: boolean;
73
+ };
74
+ ngOnInit(): void;
75
+ get sortedFields(): FormFieldConfig[];
76
+ submit(): void;
77
+ onCancel(): void;
78
+ onFieldChange(event: {
79
+ fieldKey: string;
80
+ value: any;
81
+ }): void;
82
+ isFieldVisible(field: FormFieldConfig): boolean;
83
+ getChildFormGroup(key: string): FormGroup;
84
+ resetForm(): void;
85
+ private initializeFieldVisibility;
86
+ private setupConditionalLogic;
87
+ private evaluateConditionalLogic;
88
+ private evaluateCondition;
89
+ private applyConditionalAction;
90
+ private setupFormAndLogic;
91
+ private markAllFieldsAsTouched;
92
+ private focusFirstInvalidField;
93
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicFormComponent, never>;
94
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicFormComponent, "abp-dynamic-form", ["abpDynamicForm"], { "fields": { "alias": "fields"; "required": false; "isSignal": true; }; "values": { "alias": "values"; "required": false; "isSignal": true; }; "submitButtonText": { "alias": "submitButtonText"; "required": false; "isSignal": true; }; "submitInProgress": { "alias": "submitInProgress"; "required": false; "isSignal": true; }; "showCancelButton": { "alias": "showCancelButton"; "required": false; "isSignal": true; }; }, { "onSubmit": "onSubmit"; "formCancel": "formCancel"; }, never, ["[actions]"], true, never>;
95
+ }
96
+
97
+ declare const ABP_DYNAMIC_FORM_FIELD: InjectionToken<DynamicFormFieldComponent>;
98
+ declare class DynamicFormFieldComponent implements OnInit, ControlValueAccessor {
99
+ field: _angular_core.InputSignal<FormFieldConfig<any>>;
100
+ visible: _angular_core.InputSignal<boolean>;
101
+ control: FormControl;
102
+ fieldFormGroup: FormGroup;
103
+ readonly changeDetectorRef: ChangeDetectorRef;
104
+ readonly destroyRef: DestroyRef;
105
+ private injector;
106
+ private formBuilder;
107
+ private dynamicFormService;
108
+ options$: Observable<{
109
+ key: string;
110
+ value: any;
111
+ }[]>;
112
+ get fieldId(): string;
113
+ get errorId(): string;
114
+ get helpTextId(): string;
115
+ constructor();
116
+ ngOnInit(): void;
117
+ writeValue(value: any[]): void;
118
+ registerOnChange(fn: any): void;
119
+ registerOnTouched(fn: any): void;
120
+ setDisabledState(isDisabled: boolean): void;
121
+ get isInvalid(): boolean;
122
+ get errors(): string[];
123
+ get value(): _angular_forms.AbstractControl<any, any, any>;
124
+ onFileChange(event: Event): void;
125
+ private onChange;
126
+ private onTouched;
127
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicFormFieldComponent, never>;
128
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicFormFieldComponent, "abp-dynamic-form-field", ["abpDynamicFormField"], { "field": { "alias": "field"; "required": true; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
129
+ }
130
+
131
+ declare class DynamicFieldHostComponent implements ControlValueAccessor {
132
+ component: _angular_core.InputSignal<Type<ControlValueAccessor>>;
133
+ inputs: _angular_core.InputSignal<Record<string, any>>;
134
+ viewContainerRef: ViewContainerRef;
135
+ private componentRef?;
136
+ private value;
137
+ private disabled;
138
+ private innerControl;
139
+ readonly destroyRef: DestroyRef;
140
+ constructor();
141
+ private createChild;
142
+ private applyInputs;
143
+ private isCVA;
144
+ writeValue(obj: any): void;
145
+ private onChange;
146
+ private onTouched;
147
+ registerOnChange(fn: any): void;
148
+ registerOnTouched(fn: any): void;
149
+ setDisabledState(isDisabled: boolean): void;
150
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicFieldHostComponent, never>;
151
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicFieldHostComponent, "abp-dynamic-form-field-host", never, { "component": { "alias": "component"; "required": false; "isSignal": true; }; "inputs": { "alias": "inputs"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
152
+ }
153
+
154
+ declare class DynamicFormService {
155
+ private formBuilder;
156
+ private restService;
157
+ apiName: string;
158
+ createFormGroup(fields: FormFieldConfig[]): FormGroup;
159
+ createFormArray(arrayConfig: FormFieldConfig): FormArray;
160
+ getInitialValues(fields: FormFieldConfig[]): any;
161
+ getOptions(url: string, apiName?: string): any;
162
+ private buildValidators;
163
+ private getInitialValue;
164
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicFormService, never>;
165
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<DynamicFormService>;
166
+ }
167
+
168
+ declare class DynamicFormGroupComponent {
169
+ groupConfig: _angular_core.InputSignal<FormFieldConfig<any>>;
170
+ formGroup: _angular_core.InputSignal<FormGroup<any>>;
171
+ visible: _angular_core.InputSignal<boolean>;
172
+ get sortedChildren(): FormFieldConfig[];
173
+ getChildFormGroup(key: string): FormGroup;
174
+ getChildControl(key: string): _angular_forms.AbstractControl<any, any, any>;
175
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicFormGroupComponent, never>;
176
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicFormGroupComponent, "abp-dynamic-form-group", never, { "groupConfig": { "alias": "groupConfig"; "required": true; "isSignal": true; }; "formGroup": { "alias": "formGroup"; "required": true; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
177
+ }
178
+
179
+ declare class DynamicFormArrayComponent {
180
+ arrayConfig: _angular_core.InputSignal<FormFieldConfig<any>>;
181
+ formGroup: _angular_core.InputSignal<FormGroup<any>>;
182
+ visible: _angular_core.InputSignal<boolean>;
183
+ private fb;
184
+ private dynamicFormService;
185
+ private cdr;
186
+ get formArray(): FormArray;
187
+ get sortedChildren(): FormFieldConfig[];
188
+ get canAddItem(): boolean;
189
+ get canRemoveItem(): boolean;
190
+ addItem(): void;
191
+ removeItem(index: number): void;
192
+ getItemFormGroup(index: number): FormGroup;
193
+ getNestedFormGroup(index: number, key: string): FormGroup;
194
+ trackByIndex(index: number): number;
195
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicFormArrayComponent, never>;
196
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicFormArrayComponent, "abp-dynamic-form-array", never, { "arrayConfig": { "alias": "arrayConfig"; "required": true; "isSignal": true; }; "formGroup": { "alias": "formGroup"; "required": true; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
197
+ }
198
+
199
+ export { ABP_DYNAMIC_FORM_FIELD, ConditionalAction, DynamicFieldHostComponent, DynamicFormArrayComponent, DynamicFormComponent, DynamicFormFieldComponent, DynamicFormGroupComponent, DynamicFormService };
200
+ export type { ConditionalRule, FormFieldConfig, OptionProps, ValidatorConfig };
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
- import { OnInit, OnDestroy, OnChanges, SimpleChanges, Injector, SimpleChange, InjectionToken } from '@angular/core';
3
- import { Subscription, Observable } from 'rxjs';
2
+ import { InjectionToken, Injector, SimpleChange, OnInit, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';
3
+ import { Observable, Subscription } from 'rxjs';
4
4
 
5
5
  declare enum PageParts {
6
6
  title = "PageTitleContainerComponent",