@daffodil/design 0.68.1 → 0.69.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/public_api.mjs +1 -2
- package/esm2022/sidebar/public_api.mjs +2 -1
- package/esm2022/sidebar/sidebar-viewport/sidebar-viewport.component.mjs +12 -4
- package/esm2022/sidebar/sidebar-viewport-backdrop/animation/backdrop-animation-state.mjs +2 -0
- package/esm2022/sidebar/sidebar-viewport-backdrop/animation/backdrop-animation.mjs +20 -0
- package/esm2022/sidebar/sidebar-viewport-backdrop/sidebar-viewport-backdrop.component.mjs +91 -0
- package/esm2022/sidebar/sidebar.module.mjs +10 -9
- package/esm2022/tree/examples/basic-tree/basic-tree.component.mjs +1 -1
- package/esm2022/tree/interfaces/tree-render-mode.mjs +2 -0
- package/esm2022/tree/public_api.mjs +2 -1
- package/esm2022/tree/tree/tree.component.mjs +43 -36
- package/esm2022/tree/utils/flatten-tree.mjs +26 -14
- package/esm2022/tree/utils/transform.mjs +25 -0
- package/fesm2022/daffodil-design-sidebar.mjs +131 -14
- package/fesm2022/daffodil-design-sidebar.mjs.map +1 -1
- package/fesm2022/daffodil-design-tree-examples.mjs +1 -1
- package/fesm2022/daffodil-design-tree-examples.mjs.map +1 -1
- package/fesm2022/daffodil-design-tree.mjs +92 -48
- package/fesm2022/daffodil-design-tree.mjs.map +1 -1
- package/fesm2022/daffodil-design.mjs +1 -125
- package/fesm2022/daffodil-design.mjs.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +0 -1
- package/sidebar/public_api.d.ts +1 -0
- package/sidebar/sidebar-viewport/sidebar-viewport.component.d.ts +3 -2
- package/sidebar/sidebar-viewport-backdrop/animation/backdrop-animation-state.d.ts +2 -0
- package/{molecules/backdrop → sidebar/sidebar-viewport-backdrop}/animation/backdrop-animation.d.ts +1 -1
- package/{molecules/backdrop/backdrop/backdrop.component.d.ts → sidebar/sidebar-viewport-backdrop/sidebar-viewport-backdrop.component.d.ts} +5 -5
- package/sidebar/sidebar.module.d.ts +4 -4
- package/tree/README.md +1 -3
- package/tree/interfaces/tree-render-mode.d.ts +6 -0
- package/tree/public_api.d.ts +2 -0
- package/tree/tree/tree.component.d.ts +33 -11
- package/tree/utils/flatten-tree.d.ts +2 -1
- package/tree/utils/transform.d.ts +13 -0
- package/esm2022/molecules/backdrop/animation/backdrop-animation-state.mjs +0 -2
- package/esm2022/molecules/backdrop/animation/backdrop-animation.mjs +0 -20
- package/esm2022/molecules/backdrop/backdrop/backdrop.component.mjs +0 -87
- package/esm2022/molecules/backdrop/backdrop.module.mjs +0 -24
- package/esm2022/molecules/backdrop/public_api.mjs +0 -3
- package/molecules/backdrop/animation/backdrop-animation-state.d.ts +0 -2
- package/molecules/backdrop/backdrop.module.d.ts +0 -8
- package/molecules/backdrop/public_api.d.ts +0 -2
@@ -1,10 +1,21 @@
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ContentChild, HostBinding, Input, TemplateRef, ViewEncapsulation, } from '@angular/core';
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, HostBinding, Input, Renderer2, TemplateRef, ViewEncapsulation, } from '@angular/core';
|
2
|
+
import { daffArticleEncapsulatedMixin } from '@daffodil/design';
|
2
3
|
import { DaffTreeNotifierService } from './tree-notifier.service';
|
3
4
|
import { flattenTree, } from '../utils/flatten-tree';
|
4
5
|
import { hydrateTree } from '../utils/hydrate-tree';
|
5
6
|
import * as i0 from "@angular/core";
|
6
7
|
import * as i1 from "./tree-notifier.service";
|
7
8
|
import * as i2 from "@angular/common";
|
9
|
+
/**
|
10
|
+
* An _elementRef and an instance of renderer2 are needed for the list mixins
|
11
|
+
*/
|
12
|
+
class DaffTreeBase {
|
13
|
+
constructor(_elementRef, _renderer) {
|
14
|
+
this._elementRef = _elementRef;
|
15
|
+
this._renderer = _renderer;
|
16
|
+
}
|
17
|
+
}
|
18
|
+
const _daffTreeBase = daffArticleEncapsulatedMixin((DaffTreeBase));
|
8
19
|
/**
|
9
20
|
* The `DaffTreeComponent` allows you to render tree structures as interactable ui.
|
10
21
|
*
|
@@ -25,27 +36,12 @@ import * as i2 from "@angular/common";
|
|
25
36
|
* where `tree` is a {@link DaffTreeData}.
|
26
37
|
*
|
27
38
|
*/
|
28
|
-
export class DaffTreeComponent {
|
29
|
-
|
30
|
-
|
31
|
-
*/
|
32
|
-
get dataTree() {
|
33
|
-
return this._dataTree;
|
34
|
-
}
|
35
|
-
set dataTree(dataTree) {
|
36
|
-
if (!dataTree) {
|
37
|
-
this._dataTree = undefined;
|
38
|
-
this.tree = undefined;
|
39
|
-
this.flatTree = [];
|
40
|
-
return;
|
41
|
-
}
|
42
|
-
this._dataTree = dataTree;
|
43
|
-
this.tree = hydrateTree(this.dataTree);
|
44
|
-
this.flatTree = flattenTree(this.tree);
|
45
|
-
}
|
46
|
-
;
|
47
|
-
constructor(notifier) {
|
39
|
+
export class DaffTreeComponent extends _daffTreeBase {
|
40
|
+
constructor(notifier, elementRef, renderer) {
|
41
|
+
super(elementRef, renderer);
|
48
42
|
this.notifier = notifier;
|
43
|
+
this.elementRef = elementRef;
|
44
|
+
this.renderer = renderer;
|
49
45
|
/**
|
50
46
|
* The css class of the daff-tree.
|
51
47
|
*
|
@@ -55,16 +51,26 @@ export class DaffTreeComponent {
|
|
55
51
|
/**
|
56
52
|
* The internal tree element.
|
57
53
|
*/
|
58
|
-
this.
|
54
|
+
this._tree = undefined;
|
59
55
|
/**
|
60
56
|
* The flattened tree data. You can iterate through this if you want to inspect
|
61
57
|
* the resulting array structure we computed to render the tree.
|
62
58
|
*/
|
63
59
|
this.flatTree = [];
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
60
|
+
}
|
61
|
+
ngOnChanges(changes) {
|
62
|
+
if (!changes.tree.currentValue) {
|
63
|
+
this._tree = undefined;
|
64
|
+
this.flatTree = [];
|
65
|
+
return;
|
66
|
+
}
|
67
|
+
if (changes.renderMode && !changes.tree) {
|
68
|
+
this.flatTree = flattenTree(this._tree, changes.renderMode.currentValue === 'not-in-dom');
|
69
|
+
}
|
70
|
+
else if (changes.renderMode || changes.tree) {
|
71
|
+
this._tree = hydrateTree(changes.tree?.currentValue ?? this.tree);
|
72
|
+
this.flatTree = flattenTree(this._tree, (changes.renderMode?.currentValue ?? this.renderMode) === 'not-in-dom');
|
73
|
+
}
|
68
74
|
}
|
69
75
|
/**
|
70
76
|
* The track-by function used to reduce tree-item re-renders
|
@@ -77,25 +83,26 @@ export class DaffTreeComponent {
|
|
77
83
|
*/
|
78
84
|
ngOnInit() {
|
79
85
|
this.notifier.notice$.subscribe(() => {
|
80
|
-
this.flatTree = flattenTree(this.
|
86
|
+
this.flatTree = flattenTree(this._tree, this.renderMode === 'not-in-dom');
|
81
87
|
});
|
82
88
|
}
|
83
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DaffTreeComponent, deps: [{ token: i1.DaffTreeNotifierService }], target: i0.ɵɵFactoryTarget.Component }); }
|
84
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: DaffTreeComponent, selector: "ul[daff-tree]", inputs: {
|
89
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DaffTreeComponent, deps: [{ token: i1.DaffTreeNotifierService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
90
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: DaffTreeComponent, selector: "ul[daff-tree]", inputs: { renderMode: "renderMode", tree: "tree" }, host: { properties: { "class.daff-tree": "this.class" } }, providers: [
|
85
91
|
DaffTreeNotifierService,
|
86
|
-
], queries: [{ propertyName: "withChildrenTemplate", first: true, predicate: ["daffTreeItemWithChildrenTpl"], descendants: true, static: true }, { propertyName: "treeItemTemplate", first: true, predicate: ["daffTreeItemTpl"], descendants: true, static: true }], ngImport: i0, template: "<ng-container *ngFor=\"let node of flatTree; trackBy: trackByTreeElement\">\n\t<li [attr.aria-level]=\"node.level\">\n\t\t<ng-container
|
92
|
+
], queries: [{ propertyName: "withChildrenTemplate", first: true, predicate: ["daffTreeItemWithChildrenTpl"], descendants: true, static: true }, { propertyName: "treeItemTemplate", first: true, predicate: ["daffTreeItemTpl"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngFor=\"let node of flatTree; trackBy: trackByTreeElement\">\n\t<ng-container>\n\t\t<li [attr.aria-level]=\"node.level\" [class.hidden]=\"!node.visible\">\n\t\t\t<ng-container\n\t\t\t\t*ngTemplateOutlet=\"node.hasChildren ? withChildrenTemplate : treeItemTemplate; context: { $implicit: node }\">\n\t\t\t</ng-container>\n\t\t</li>\n\t</ng-container>\n</ng-container>", styles: [".daff-tree{margin:0;padding:0;list-style:none;--tree-padding: 16px}.daff-tree li.hidden{display:none}.daff-tree-item{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;position:relative;background:none;border:0;padding:8px 16px 8px 0;line-height:1.5rem;font-weight:400;text-align:left;text-decoration:none;width:100%;padding-left:calc(var(--tree-padding) * (var(--depth)))}.daff-tree-item:before{content:\"\";position:absolute;top:0;bottom:0;left:0;width:4px}.daff-tree-item:focus,.daff-tree-item:focus-visible{z-index:1}.daff-tree-item.selected{font-weight:600}.daff-tree-item__parent{position:relative}.daff-tree-item__parent:after{content:\"\";position:absolute;top:48%;right:16px;display:inline-block;border-right:2px solid currentColor;border-bottom:2px solid currentColor;width:8px;height:8px;transform:translateY(-50%) rotate(45deg);transition:transform .15s}.daff-tree-item__parent.open:after{top:56%;transform:translateY(-50%) rotate(225deg)}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
87
93
|
}
|
88
94
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DaffTreeComponent, decorators: [{
|
89
95
|
type: Component,
|
90
96
|
args: [{ selector: 'ul[daff-tree]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
91
97
|
DaffTreeNotifierService,
|
92
|
-
], template: "<ng-container *ngFor=\"let node of flatTree; trackBy: trackByTreeElement\">\n\t<li [attr.aria-level]=\"node.level\">\n\t\t<ng-container
|
93
|
-
}], ctorParameters: () => [{ type: i1.DaffTreeNotifierService }], propDecorators: { class: [{
|
98
|
+
], template: "<ng-container *ngFor=\"let node of flatTree; trackBy: trackByTreeElement\">\n\t<ng-container>\n\t\t<li [attr.aria-level]=\"node.level\" [class.hidden]=\"!node.visible\">\n\t\t\t<ng-container\n\t\t\t\t*ngTemplateOutlet=\"node.hasChildren ? withChildrenTemplate : treeItemTemplate; context: { $implicit: node }\">\n\t\t\t</ng-container>\n\t\t</li>\n\t</ng-container>\n</ng-container>", styles: [".daff-tree{margin:0;padding:0;list-style:none;--tree-padding: 16px}.daff-tree li.hidden{display:none}.daff-tree-item{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;position:relative;background:none;border:0;padding:8px 16px 8px 0;line-height:1.5rem;font-weight:400;text-align:left;text-decoration:none;width:100%;padding-left:calc(var(--tree-padding) * (var(--depth)))}.daff-tree-item:before{content:\"\";position:absolute;top:0;bottom:0;left:0;width:4px}.daff-tree-item:focus,.daff-tree-item:focus-visible{z-index:1}.daff-tree-item.selected{font-weight:600}.daff-tree-item__parent{position:relative}.daff-tree-item__parent:after{content:\"\";position:absolute;top:48%;right:16px;display:inline-block;border-right:2px solid currentColor;border-bottom:2px solid currentColor;width:8px;height:8px;transform:translateY(-50%) rotate(45deg);transition:transform .15s}.daff-tree-item__parent.open:after{top:56%;transform:translateY(-50%) rotate(225deg)}\n"] }]
|
99
|
+
}], ctorParameters: () => [{ type: i1.DaffTreeNotifierService }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { class: [{
|
94
100
|
type: HostBinding,
|
95
101
|
args: ['class.daff-tree']
|
96
|
-
}],
|
97
|
-
type: Input
|
98
|
-
|
102
|
+
}], renderMode: [{
|
103
|
+
type: Input
|
104
|
+
}], tree: [{
|
105
|
+
type: Input
|
99
106
|
}], withChildrenTemplate: [{
|
100
107
|
type: ContentChild,
|
101
108
|
args: ['daffTreeItemWithChildrenTpl', { static: true }]
|
@@ -103,4 +110,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
|
|
103
110
|
type: ContentChild,
|
104
111
|
args: ['daffTreeItemTpl', { static: true }]
|
105
112
|
}] } });
|
106
|
-
//# sourceMappingURL=data:application/json;base64,
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2Rlc2lnbi90cmVlL3NyYy90cmVlL3RyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ24vdHJlZS9zcmMvdHJlZS90cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFHTCxTQUFTLEVBRVQsV0FBVyxFQUNYLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUlsRSxPQUFPLEVBRUwsV0FBVyxHQUNaLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBRXBEOztHQUVHO0FBQ0gsTUFBTSxZQUFZO0lBQ2hCLFlBQW1CLFdBQXVCLEVBQVMsU0FBb0I7UUFBcEQsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFBUyxjQUFTLEdBQVQsU0FBUyxDQUFXO0lBQUcsQ0FBQztDQUM1RTtBQUVELE1BQU0sYUFBYSxHQUFHLDRCQUE0QixDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztBQUVuRTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQVlILE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxhQUFhO0lBbURsRCxZQUNVLFFBQWlDLEVBQ2pDLFVBQXNCLEVBQ3RCLFFBQW1CO1FBRTNCLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFKcEIsYUFBUSxHQUFSLFFBQVEsQ0FBeUI7UUFDakMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBcEQ3Qjs7OztXQUlHO1FBQzZCLFVBQUssR0FBRyxJQUFJLENBQUM7UUFhN0M7O1dBRUc7UUFDSyxVQUFLLEdBQXdCLFNBQVMsQ0FBQztRQUUvQzs7O1dBR0c7UUFDSSxhQUFRLEdBQXVCLEVBQUUsQ0FBQztJQTRCekMsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7WUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7WUFDbkIsT0FBTztTQUNSO1FBRUQsSUFBRyxPQUFPLENBQUMsVUFBVSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTtZQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxLQUFLLFlBQVksQ0FBQyxDQUFDO1NBQzNGO2FBQU0sSUFBRyxPQUFPLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDNUMsSUFBSSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xFLElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFlBQVksSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssWUFBWSxDQUFDLENBQUM7U0FDakg7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxrQkFBa0IsQ0FBQyxLQUFhLEVBQUUsRUFBTztRQUN2QyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUM7SUFDbEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxLQUFLLFlBQVksQ0FBQyxDQUFDO1FBQzVFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztpSUF4RlUsaUJBQWlCO3FIQUFqQixpQkFBaUIsdUpBSmpCO1lBQ1QsdUJBQXVCO1NBQ3hCLHlVQ2pFSCwrWEFRZTs7MkZEMkRGLGlCQUFpQjtrQkFYN0IsU0FBUzsrQkFFRSxlQUFlLGlCQUdWLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1QsdUJBQXVCO3FCQUN4Qjs2SUFTK0IsS0FBSztzQkFBcEMsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBV3JCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBZ0JHLElBQUk7c0JBQVosS0FBSztnQkFRSixvQkFBb0I7c0JBRHJCLFlBQVk7dUJBQUMsNkJBQTZCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQVFWLGdCQUFnQjtzQkFBbEUsWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgZGFmZkFydGljbGVFbmNhcHN1bGF0ZWRNaXhpbiB9IGZyb20gJ0BkYWZmb2RpbC9kZXNpZ24nO1xuXG5pbXBvcnQgeyBEYWZmVHJlZU5vdGlmaWVyU2VydmljZSB9IGZyb20gJy4vdHJlZS1ub3RpZmllci5zZXJ2aWNlJztcbmltcG9ydCB7IERhZmZUcmVlRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMvdHJlZS1kYXRhJztcbmltcG9ydCB7IERhZmZUcmVlUmVuZGVyTW9kZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvdHJlZS1yZW5kZXItbW9kZSc7XG5pbXBvcnQgeyBEYWZmVHJlZVVpIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy90cmVlLXVpJztcbmltcG9ydCB7XG4gIERhZmZUcmVlRmxhdE5vZGUsXG4gIGZsYXR0ZW5UcmVlLFxufSBmcm9tICcuLi91dGlscy9mbGF0dGVuLXRyZWUnO1xuaW1wb3J0IHsgaHlkcmF0ZVRyZWUgfSBmcm9tICcuLi91dGlscy9oeWRyYXRlLXRyZWUnO1xuXG4vKipcbiAqIEFuIF9lbGVtZW50UmVmIGFuZCBhbiBpbnN0YW5jZSBvZiByZW5kZXJlcjIgYXJlIG5lZWRlZCBmb3IgdGhlIGxpc3QgbWl4aW5zXG4gKi9cbmNsYXNzIERhZmZUcmVlQmFzZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBfZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHVibGljIF9yZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxufVxuXG5jb25zdCBfZGFmZlRyZWVCYXNlID0gZGFmZkFydGljbGVFbmNhcHN1bGF0ZWRNaXhpbigoRGFmZlRyZWVCYXNlKSk7XG5cbi8qKlxuICogVGhlIGBEYWZmVHJlZUNvbXBvbmVudGAgYWxsb3dzIHlvdSB0byByZW5kZXIgdHJlZSBzdHJ1Y3R1cmVzIGFzIGludGVyYWN0YWJsZSB1aS5cbiAqXG4gKiBUaGV5IGNhbiBiZSB1c2VkIGxpa2U6XG4gKlxuICogYGBgaHRtbFxuICogPHVsIGRhZmYtdHJlZSBbdHJlZV09XCJ0cmVlXCI+XG4gKiAgIDxuZy10ZW1wbGF0ZSAjZGFmZlRyZWVJdGVtV2l0aENoaWxkcmVuVHBsIGxldC1ub2RlPlxuICogICAgICAgPGJ1dHRvbiBkYWZmVHJlZUl0ZW0gW25vZGVdPVwibm9kZVwiPnt7IG5vZGUudGl0bGUgfX0gPC9idXR0b24+XG4gKiAgIDwvbmctdGVtcGxhdGU+XG4gKlxuICogICA8bmctdGVtcGxhdGUgI2RhZmZUcmVlSXRlbVRwbCBsZXQtbm9kZT5cbiAqICAgICAgIDxhIGRhZmZUcmVlSXRlbSBbbm9kZV09XCJub2RlXCIgW3JvdXRlckxpbmtdPVwibm9kZS51cmxcIj57eyBub2RlLnRpdGxlIH19PC9hPlxuICogICA8L25nLXRlbXBsYXRlPlxuICogPC91bD5cbiAqIGBgYFxuICpcbiAqIHdoZXJlIGB0cmVlYCBpcyBhIHtAbGluayBEYWZmVHJlZURhdGF9LlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAndWxbZGFmZi10cmVlXScsXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdHJlZS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgRGFmZlRyZWVOb3RpZmllclNlcnZpY2UsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERhZmZUcmVlQ29tcG9uZW50IGV4dGVuZHMgX2RhZmZUcmVlQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcblxuICAvKipcbiAgICogVGhlIGNzcyBjbGFzcyBvZiB0aGUgZGFmZi10cmVlLlxuICAgKlxuICAgKiBAZG9jcy1wcml2YXRlXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRhZmYtdHJlZScpIGNsYXNzID0gdHJ1ZTtcblxuICAvKipcbiAgICogVGhlIHJlbmRlcmluZyBtb2RlIGZvciBub2RlcyBpbiB0aGUgdHJlZS5cbiAgICpcbiAgICogRGVmYXVsdCB2YWx1ZSBpcyAnaW4tZG9tJywgd2hpY2ggbWVhbnMgbm9kZXMgYXJlIHByZXNlbnQgaW4gdGhlIERPTS5cbiAgICpcbiAgICogR2VuZXJhbGx5LCBgbm90LWluLWRvbWAgaXMgZmFzdGVyIGFzIHRoZXJlIGFyZSBsZXNzIERPTSBlbGVtZW50cyB0byByZW5kZXIsXG4gICAqIGJ1dCB0aGVyZSBtYXkgYmUgdXNlLWNhc2VzIChsaWtlIFNFTykgd2hlcmUgaGF2aW5nIHRoZSB0cmVlIGluIHRoZSBET01cbiAgICogaXMgcmVsZXZhbnQuXG4gICAqL1xuICBASW5wdXQoKSByZW5kZXJNb2RlOiBEYWZmVHJlZVJlbmRlck1vZGU7XG5cbiAgLyoqXG4gICAqIFRoZSBpbnRlcm5hbCB0cmVlIGVsZW1lbnQuXG4gICAqL1xuICBwcml2YXRlIF90cmVlOiBEYWZmVHJlZVVpPHVua25vd24+ID0gdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgZmxhdHRlbmVkIHRyZWUgZGF0YS4gWW91IGNhbiBpdGVyYXRlIHRocm91Z2ggdGhpcyBpZiB5b3Ugd2FudCB0byBpbnNwZWN0XG4gICAqIHRoZSByZXN1bHRpbmcgYXJyYXkgc3RydWN0dXJlIHdlIGNvbXB1dGVkIHRvIHJlbmRlciB0aGUgdHJlZS5cbiAgICovXG4gIHB1YmxpYyBmbGF0VHJlZTogRGFmZlRyZWVGbGF0Tm9kZVtdID0gW107XG5cbiAgLyoqXG4gICAqIFRoZSB0cmVlIGRhdGEgeW91IHdvdWxkIGxpa2UgdG8gcmVuZGVyLlxuICAgKi9cbiAgQElucHV0KCkgdHJlZTogRGFmZlRyZWVEYXRhPHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBUaGUgdGVtcGxhdGUgdXNlZCB0byByZW5kZXIgdHJlZS1ub2RlcyB0aGF0IHRoZW1zZWx2ZXMgaGF2ZSBjaGlsZHJlbi5cbiAgICpcbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgQENvbnRlbnRDaGlsZCgnZGFmZlRyZWVJdGVtV2l0aENoaWxkcmVuVHBsJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICB3aXRoQ2hpbGRyZW5UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAvKipcbiAgICogVGhlIHRlbXBsYXRlIHVzZWQgdG8gcmVuZGVyIHRyZWUtbm9kZXMgdGhhdCBoYXZlIG5vIGNoaWxkcmVuLlxuICAgKlxuICAgKiBAZG9jcy1wcml2YXRlXG4gICAqL1xuICBAQ29udGVudENoaWxkKCdkYWZmVHJlZUl0ZW1UcGwnLCB7IHN0YXRpYzogdHJ1ZSB9KSB0cmVlSXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbm90aWZpZXI6IERhZmZUcmVlTm90aWZpZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICkge1xuICAgIHN1cGVyKGVsZW1lbnRSZWYsIHJlbmRlcmVyKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZighY2hhbmdlcy50cmVlLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5fdHJlZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuZmxhdFRyZWUgPSBbXTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZihjaGFuZ2VzLnJlbmRlck1vZGUgJiYgIWNoYW5nZXMudHJlZSkge1xuICAgICAgdGhpcy5mbGF0VHJlZSA9IGZsYXR0ZW5UcmVlKHRoaXMuX3RyZWUsIGNoYW5nZXMucmVuZGVyTW9kZS5jdXJyZW50VmFsdWUgPT09ICdub3QtaW4tZG9tJyk7XG4gICAgfSBlbHNlIGlmKGNoYW5nZXMucmVuZGVyTW9kZSB8fCBjaGFuZ2VzLnRyZWUpIHtcbiAgICAgIHRoaXMuX3RyZWUgPSBoeWRyYXRlVHJlZShjaGFuZ2VzLnRyZWU/LmN1cnJlbnRWYWx1ZSA/PyB0aGlzLnRyZWUpO1xuICAgICAgdGhpcy5mbGF0VHJlZSA9IGZsYXR0ZW5UcmVlKHRoaXMuX3RyZWUsIChjaGFuZ2VzLnJlbmRlck1vZGU/LmN1cnJlbnRWYWx1ZSA/PyB0aGlzLnJlbmRlck1vZGUpID09PSAnbm90LWluLWRvbScpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdHJhY2stYnkgZnVuY3Rpb24gdXNlZCB0byByZWR1Y2UgdHJlZS1pdGVtIHJlLXJlbmRlcnNcbiAgICovXG4gIHRyYWNrQnlUcmVlRWxlbWVudChpbmRleDogbnVtYmVyLCBlbDogYW55KTogYW55IHtcbiAgICByZXR1cm4gZWwudGl0bGU7XG4gIH1cblxuICAvKipcbiAgICogQGRvY3MtcHJpdmF0ZVxuICAgKi9cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5ub3RpZmllci5ub3RpY2UkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmZsYXRUcmVlID0gZmxhdHRlblRyZWUodGhpcy5fdHJlZSwgdGhpcy5yZW5kZXJNb2RlID09PSAnbm90LWluLWRvbScpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBub2RlIG9mIGZsYXRUcmVlOyB0cmFja0J5OiB0cmFja0J5VHJlZUVsZW1lbnRcIj5cblx0PG5nLWNvbnRhaW5lcj5cblx0XHQ8bGkgW2F0dHIuYXJpYS1sZXZlbF09XCJub2RlLmxldmVsXCIgW2NsYXNzLmhpZGRlbl09XCIhbm9kZS52aXNpYmxlXCI+XG5cdFx0XHQ8bmctY29udGFpbmVyXG5cdFx0XHRcdCpuZ1RlbXBsYXRlT3V0bGV0PVwibm9kZS5oYXNDaGlsZHJlbiA/IHdpdGhDaGlsZHJlblRlbXBsYXRlIDogdHJlZUl0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IG5vZGUgfVwiPlxuXHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0PC9saT5cblx0PC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj4iXX0=
|
@@ -2,14 +2,15 @@
|
|
2
2
|
* Flatten a DaffTreeUi<unknown> into an array, removing elements from the array
|
3
3
|
* below nodes in the tree that are not open.
|
4
4
|
*/
|
5
|
-
export const flattenTree = (daffUiTree) => {
|
5
|
+
export const flattenTree = (daffUiTree, removeNodes = false) => {
|
6
6
|
const tree = [];
|
7
|
+
if (!daffUiTree) {
|
8
|
+
return [];
|
9
|
+
}
|
7
10
|
let items = [
|
8
11
|
{
|
9
12
|
...daffUiTree,
|
10
|
-
title: 'Root',
|
11
13
|
level: 0,
|
12
|
-
url: '/',
|
13
14
|
data: undefined,
|
14
15
|
open: true,
|
15
16
|
_treeRef: daffUiTree,
|
@@ -20,22 +21,33 @@ export const flattenTree = (daffUiTree) => {
|
|
20
21
|
if (!el) {
|
21
22
|
break;
|
22
23
|
}
|
23
|
-
|
24
|
-
items
|
25
|
-
|
26
|
-
...
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
24
|
+
items = [
|
25
|
+
...items,
|
26
|
+
...el.items.map((i) => ({
|
27
|
+
...i,
|
28
|
+
level: el.level + 1,
|
29
|
+
_treeRef: i,
|
30
|
+
})).reverse(),
|
31
|
+
];
|
32
|
+
if (!removeNodes && el._treeRef.parent) {
|
33
|
+
tree.push({
|
34
|
+
id: el.id,
|
35
|
+
title: el.title,
|
36
|
+
level: el.level,
|
37
|
+
url: el.url,
|
38
|
+
visible: el._treeRef.parent?.open,
|
39
|
+
hasChildren: el.items.length > 0,
|
40
|
+
data: undefined,
|
41
|
+
_treeRef: el._treeRef,
|
42
|
+
});
|
32
43
|
}
|
33
|
-
if (el._treeRef.parent?.open) {
|
44
|
+
else if (removeNodes && el._treeRef.parent?.open) {
|
34
45
|
tree.push({
|
35
46
|
id: el.id,
|
36
47
|
title: el.title,
|
37
48
|
level: el.level,
|
38
49
|
url: el.url,
|
50
|
+
visible: el._treeRef.parent?.open,
|
39
51
|
hasChildren: el.items.length > 0,
|
40
52
|
data: undefined,
|
41
53
|
_treeRef: el._treeRef,
|
@@ -44,4 +56,4 @@ export const flattenTree = (daffUiTree) => {
|
|
44
56
|
}
|
45
57
|
return tree;
|
46
58
|
};
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhdHRlbi10cmVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ24vdHJlZS9zcmMvdXRpbHMvZmxhdHRlbi10cmVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxVQUErQixFQUFFLGNBQXVCLEtBQUssRUFBc0IsRUFBRTtJQUMvRyxNQUFNLElBQUksR0FBdUIsRUFBRSxDQUFDO0lBQ3BDLElBQUcsQ0FBQyxVQUFVLEVBQUU7UUFDZCxPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsSUFBSSxLQUFLLEdBQUc7UUFDVjtZQUNFLEdBQUcsVUFBVTtZQUNiLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxFQUFFLFNBQVM7WUFDZixJQUFJLEVBQUUsSUFBSTtZQUNWLFFBQVEsRUFBRSxVQUFVO1NBQ3JCO0tBQ0YsQ0FBQztJQUdGLE9BQU0sS0FBSyxFQUFFO1FBQ1gsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUcsQ0FBQyxFQUFFLEVBQUU7WUFDTixNQUFNO1NBQ1A7UUFFRCxLQUFLLEdBQUc7WUFDTixHQUFHLEtBQUs7WUFDUixHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QixHQUFHLENBQUM7Z0JBQ0osS0FBSyxFQUNMLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQztnQkFDWixRQUFRLEVBQUUsQ0FBQzthQUNaLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRTtTQUNkLENBQUM7UUFFRixJQUFHLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ1IsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUNULEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSztnQkFDZixLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUs7Z0JBQ2YsR0FBRyxFQUFHLEVBQUUsQ0FBQyxHQUFHO2dCQUNaLE9BQU8sRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJO2dCQUNqQyxXQUFXLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQztnQkFDaEMsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRO2FBQ3RCLENBQUMsQ0FBQztTQUNKO2FBQU0sSUFBRyxXQUFXLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBQ2pELElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQ1IsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUNULEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSztnQkFDZixLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUs7Z0JBQ2YsR0FBRyxFQUFHLEVBQUUsQ0FBQyxHQUFHO2dCQUNaLE9BQU8sRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJO2dCQUNqQyxXQUFXLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQztnQkFDaEMsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRO2FBQ3RCLENBQUMsQ0FBQztTQUNKO0tBQ0Y7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhZmZUcmVlVWkgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3RyZWUtdWknO1xuXG4vKipcbiAqIEEgZmxhdHRlbmVkIG5vZGUgb2YgYSB0cmVlLiBUaGlzIGlzIHVzZWQgd2hlbiB0cmFuc2xhdGluZyB0aGUgdHJlZSBkYXRhXG4gKiBzdHJ1Y3R1cmUgaW50byBhbiBhcnJheS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYWZmVHJlZUZsYXROb2RlIHtcbiAgaWQ6IG51bWJlciB8IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgdXJsOiBzdHJpbmc7XG4gIGxldmVsOiBudW1iZXI7XG4gIGhhc0NoaWxkcmVuOiBib29sZWFuO1xuICBkYXRhOiB1bmtub3duO1xuICB2aXNpYmxlOiBib29sZWFuO1xuICBfdHJlZVJlZjogRGFmZlRyZWVVaTx1bmtub3duPjtcbn1cblxuLyoqXG4gKiBGbGF0dGVuIGEgRGFmZlRyZWVVaTx1bmtub3duPiBpbnRvIGFuIGFycmF5LCByZW1vdmluZyBlbGVtZW50cyBmcm9tIHRoZSBhcnJheVxuICogYmVsb3cgbm9kZXMgaW4gdGhlIHRyZWUgdGhhdCBhcmUgbm90IG9wZW4uXG4gKi9cbmV4cG9ydCBjb25zdCBmbGF0dGVuVHJlZSA9IChkYWZmVWlUcmVlOiBEYWZmVHJlZVVpPHVua25vd24+LCByZW1vdmVOb2RlczogYm9vbGVhbiA9IGZhbHNlKTogRGFmZlRyZWVGbGF0Tm9kZVtdID0+ICB7XG4gIGNvbnN0IHRyZWU6IERhZmZUcmVlRmxhdE5vZGVbXSA9IFtdO1xuICBpZighZGFmZlVpVHJlZSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGxldCBpdGVtcyA9IFtcbiAgICB7XG4gICAgICAuLi5kYWZmVWlUcmVlLFxuICAgICAgbGV2ZWw6IDAsXG4gICAgICBkYXRhOiB1bmRlZmluZWQsXG4gICAgICBvcGVuOiB0cnVlLFxuICAgICAgX3RyZWVSZWY6IGRhZmZVaVRyZWUsXG4gICAgfSxcbiAgXTtcblxuXG4gIHdoaWxlKGl0ZW1zKSB7XG4gICAgY29uc3QgZWwgPSBpdGVtcy5wb3AoKTtcbiAgICBpZighZWwpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGl0ZW1zID0gW1xuICAgICAgLi4uaXRlbXMsXG4gICAgICAuLi5lbC5pdGVtcy5tYXAoKGkpID0+ICh7XG4gICAgICAgIC4uLmksXG4gICAgICAgIGxldmVsOlxuICAgICAgICBlbC5sZXZlbCArIDEsXG4gICAgICAgIF90cmVlUmVmOiBpLFxuICAgICAgfSkpLnJldmVyc2UoKSxcbiAgICBdO1xuXG4gICAgaWYoIXJlbW92ZU5vZGVzICYmIGVsLl90cmVlUmVmLnBhcmVudCkge1xuICAgICAgdHJlZS5wdXNoKHtcbiAgICAgICAgaWQ6IGVsLmlkLFxuICAgICAgICB0aXRsZTogZWwudGl0bGUsXG4gICAgICAgIGxldmVsOiBlbC5sZXZlbCxcbiAgICAgICAgdXJsIDogZWwudXJsLFxuICAgICAgICB2aXNpYmxlOiBlbC5fdHJlZVJlZi5wYXJlbnQ/Lm9wZW4sXG4gICAgICAgIGhhc0NoaWxkcmVuOiBlbC5pdGVtcy5sZW5ndGggPiAwLFxuICAgICAgICBkYXRhOiB1bmRlZmluZWQsXG4gICAgICAgIF90cmVlUmVmOiBlbC5fdHJlZVJlZixcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZihyZW1vdmVOb2RlcyAmJiBlbC5fdHJlZVJlZi5wYXJlbnQ/Lm9wZW4pIHtcbiAgICAgIHRyZWUucHVzaCh7XG4gICAgICAgIGlkOiBlbC5pZCxcbiAgICAgICAgdGl0bGU6IGVsLnRpdGxlLFxuICAgICAgICBsZXZlbDogZWwubGV2ZWwsXG4gICAgICAgIHVybCA6IGVsLnVybCxcbiAgICAgICAgdmlzaWJsZTogZWwuX3RyZWVSZWYucGFyZW50Py5vcGVuLFxuICAgICAgICBoYXNDaGlsZHJlbjogZWwuaXRlbXMubGVuZ3RoID4gMCxcbiAgICAgICAgZGF0YTogdW5kZWZpbmVkLFxuICAgICAgICBfdHJlZVJlZjogZWwuX3RyZWVSZWYsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJlZTtcbn07XG4iXX0=
|
@@ -0,0 +1,25 @@
|
|
1
|
+
/**
|
2
|
+
* Transform a tree-like structure into a {@link DaffTreeData}.
|
3
|
+
*
|
4
|
+
* @param tree - The data structure representing tree-like data.
|
5
|
+
* @param transformFn - A user-supplied function that will transform the user
|
6
|
+
* type into a {@link DaffTreeData}
|
7
|
+
* @param key - The property of the your tree that indicates which
|
8
|
+
* key contains the "children" of your tree structure.
|
9
|
+
*
|
10
|
+
*/
|
11
|
+
export const daffTransformTree = (tree, transformFn, key) => {
|
12
|
+
const transformedTree = transformFn(tree);
|
13
|
+
const queue = [{ node: tree, parent: transformedTree }];
|
14
|
+
while (queue.length > 0) {
|
15
|
+
const { node, parent } = queue.shift();
|
16
|
+
const childItems = node[key];
|
17
|
+
for (const child of childItems) {
|
18
|
+
const transformedChild = transformFn(child);
|
19
|
+
parent.items.push(transformedChild);
|
20
|
+
queue.push({ node: child, parent: transformedChild });
|
21
|
+
}
|
22
|
+
}
|
23
|
+
return transformedTree;
|
24
|
+
};
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ24vdHJlZS9zcmMvdXRpbHMvdHJhbnNmb3JtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBSy9CLElBQU8sRUFDUCxXQUF5QyxFQUN6QyxHQUE4QixFQUNiLEVBQUU7SUFFbkIsTUFBTSxlQUFlLEdBQW9CLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUUzRCxNQUFNLEtBQUssR0FBMkMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFFaEcsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN2QixNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUV2QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsS0FBSyxNQUFNLEtBQUssSUFBUyxVQUFVLEVBQUU7WUFDbkMsTUFBTSxnQkFBZ0IsR0FBb0IsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdELE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDcEMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztTQUN2RDtLQUNGO0lBRUQsT0FBTyxlQUFlLENBQUM7QUFDekIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVjdXJzaXZlVHJlZUtleU9mVHlwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVjdXJzaXZlLWtleSc7XG5pbXBvcnQgeyBEYWZmVHJlZURhdGEgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3RyZWUtZGF0YSc7XG5cbi8qKlxuICogVHJhbnNmb3JtIGEgdHJlZS1saWtlIHN0cnVjdHVyZSBpbnRvIGEge0BsaW5rIERhZmZUcmVlRGF0YX0uXG4gKlxuICogQHBhcmFtIHRyZWUgLSBUaGUgZGF0YSBzdHJ1Y3R1cmUgcmVwcmVzZW50aW5nIHRyZWUtbGlrZSBkYXRhLlxuICogQHBhcmFtIHRyYW5zZm9ybUZuIC0gQSB1c2VyLXN1cHBsaWVkIGZ1bmN0aW9uIHRoYXQgd2lsbCB0cmFuc2Zvcm0gdGhlIHVzZXJcbiAqICB0eXBlIGludG8gYSB7QGxpbmsgRGFmZlRyZWVEYXRhfVxuICogQHBhcmFtIGtleSAtIFRoZSBwcm9wZXJ0eSBvZiB0aGUgeW91ciB0cmVlIHRoYXQgaW5kaWNhdGVzIHdoaWNoXG4gKiAga2V5IGNvbnRhaW5zIHRoZSBcImNoaWxkcmVuXCIgb2YgeW91ciB0cmVlIHN0cnVjdHVyZS5cbiAqXG4gKi9cbmV4cG9ydCBjb25zdCBkYWZmVHJhbnNmb3JtVHJlZSA9IDxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXNcbiAgVCBleHRlbmRzIFJlY29yZDxhbnksYW55PixcbiAgVlxuPihcbiAgdHJlZTogVCxcbiAgdHJhbnNmb3JtRm46ICh0eXBlOiBUKSA9PiBEYWZmVHJlZURhdGE8Vj4sXG4gIGtleTogUmVjdXJzaXZlVHJlZUtleU9mVHlwZTxUPixcbik6IERhZmZUcmVlRGF0YTxWPiA9PiB7XG5cbiAgY29uc3QgdHJhbnNmb3JtZWRUcmVlOiBEYWZmVHJlZURhdGE8Vj4gPSB0cmFuc2Zvcm1Gbih0cmVlKTtcblxuICBjb25zdCBxdWV1ZTogeyBub2RlOiBUOyBwYXJlbnQ6IERhZmZUcmVlRGF0YTxWPiB9W10gPSBbeyBub2RlOiB0cmVlLCBwYXJlbnQ6IHRyYW5zZm9ybWVkVHJlZSB9XTtcblxuICB3aGlsZSAocXVldWUubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IHsgbm9kZSwgcGFyZW50IH0gPSBxdWV1ZS5zaGlmdCgpO1xuXG4gICAgY29uc3QgY2hpbGRJdGVtcyA9IG5vZGVba2V5XTtcbiAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIDxUW10+Y2hpbGRJdGVtcykge1xuICAgICAgY29uc3QgdHJhbnNmb3JtZWRDaGlsZDogRGFmZlRyZWVEYXRhPFY+ID0gdHJhbnNmb3JtRm4oY2hpbGQpO1xuICAgICAgcGFyZW50Lml0ZW1zLnB1c2godHJhbnNmb3JtZWRDaGlsZCk7XG4gICAgICBxdWV1ZS5wdXNoKHsgbm9kZTogY2hpbGQsIHBhcmVudDogdHJhbnNmb3JtZWRDaGlsZCB9KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJhbnNmb3JtZWRUcmVlO1xufTtcbiJdfQ==
|
@@ -3,10 +3,10 @@ import { A11yModule } from '@angular/cdk/a11y';
|
|
3
3
|
import { DOCUMENT, CommonModule } from '@angular/common';
|
4
4
|
import * as i0 from '@angular/core';
|
5
5
|
import { EventEmitter, Component, ChangeDetectionStrategy, Inject, HostBinding, Output, Input, HostListener, Directive, ViewEncapsulation, InjectionToken, inject, ElementRef, SkipSelf, Optional, ContentChildren, NgModule } from '@angular/core';
|
6
|
-
import * as i2 from '@daffodil/design';
|
7
|
-
import { daffFocusableElementsSelector, DaffBackdropModule } from '@daffodil/design';
|
8
6
|
import { fromEvent } from 'rxjs';
|
9
7
|
import { filter } from 'rxjs/operators';
|
8
|
+
import * as i2 from '@daffodil/design';
|
9
|
+
import { daffFocusableElementsSelector } from '@daffodil/design';
|
10
10
|
import { trigger, state, style, transition, animate } from '@angular/animations';
|
11
11
|
|
12
12
|
/**
|
@@ -72,7 +72,7 @@ var DaffSidebarAnimationStates;
|
|
72
72
|
DaffSidebarAnimationStates["NONE"] = "none";
|
73
73
|
})(DaffSidebarAnimationStates || (DaffSidebarAnimationStates = {}));
|
74
74
|
|
75
|
-
const getAnimationState = (open, mode) => {
|
75
|
+
const getAnimationState$1 = (open, mode) => {
|
76
76
|
if (mode === 'side') {
|
77
77
|
return 'none';
|
78
78
|
}
|
@@ -122,7 +122,7 @@ class DaffSidebarComponent {
|
|
122
122
|
*/
|
123
123
|
get transformSidebar() {
|
124
124
|
return {
|
125
|
-
value: getAnimationState(this.open, this.mode),
|
125
|
+
value: getAnimationState$1(this.open, this.mode),
|
126
126
|
params: { width: getSidebarAnimationWidth(this.side, this.width) },
|
127
127
|
};
|
128
128
|
}
|
@@ -422,6 +422,114 @@ const sidebarViewportContentShift = (sidebars) => sidebars.reduce((acc, sidebar)
|
|
422
422
|
;
|
423
423
|
const getSidebarViewportAnimationState = (open) => open ? DaffSidebarAnimationStates.OPEN : DaffSidebarAnimationStates.CLOSED;
|
424
424
|
|
425
|
+
const animationDuration = '350ms';
|
426
|
+
const backdropTransitionOut = 'cubic-bezier(0.4, 0.0, 1, 1)';
|
427
|
+
const backdropTransitionIn = 'cubic-bezier(0.0, 0.0, 0.2, 1)';
|
428
|
+
const daffSidebarViewportBackdropAnimations = {
|
429
|
+
fadeBackdrop: trigger('fadeBackdrop', [
|
430
|
+
state('interactable', style({ opacity: 1 })),
|
431
|
+
state('non-interactable', style({ opacity: 0 })),
|
432
|
+
transition('interactable => non-interactable', animate(animationDuration + ' ' + backdropTransitionOut)),
|
433
|
+
transition('non-interactable => interactable', animate(animationDuration + ' ' + backdropTransitionIn)),
|
434
|
+
transition(':enter', [
|
435
|
+
style({ opacity: 0 }),
|
436
|
+
animate(animationDuration + ' ' + backdropTransitionIn, style({ opacity: 1 })),
|
437
|
+
]),
|
438
|
+
transition(':leave', [
|
439
|
+
animate(animationDuration + ' ' + backdropTransitionOut, style({ opacity: 0 })),
|
440
|
+
]),
|
441
|
+
]),
|
442
|
+
};
|
443
|
+
|
444
|
+
const getAnimationState = (interactable) => interactable ? 'interactable' : 'non-interactable';
|
445
|
+
|
446
|
+
class DaffSidebarViewportBackdropComponent {
|
447
|
+
constructor() {
|
448
|
+
this.interactableClass = true;
|
449
|
+
/**
|
450
|
+
* Determines whether or not the backdrop is transparent.
|
451
|
+
*/
|
452
|
+
this.transparent = false;
|
453
|
+
/**
|
454
|
+
* Determines whether or not the backdrop is interactable.
|
455
|
+
*/
|
456
|
+
this.interactable = true;
|
457
|
+
/**
|
458
|
+
* Boolean property that determines whether or not the
|
459
|
+
* backdrop should fill up its containing window.
|
460
|
+
*/
|
461
|
+
this.fullscreen = false;
|
462
|
+
/**
|
463
|
+
* Output event triggered when the backdrop is clicked.
|
464
|
+
*/
|
465
|
+
this.backdropClicked = new EventEmitter();
|
466
|
+
}
|
467
|
+
ngOnInit() {
|
468
|
+
this.interactableClass = this.interactable;
|
469
|
+
}
|
470
|
+
/**
|
471
|
+
* Animation hook for that controls the backdrops
|
472
|
+
* entrance and fade animations.
|
473
|
+
*/
|
474
|
+
get fadeBackdropTrigger() {
|
475
|
+
return getAnimationState(this.interactable);
|
476
|
+
}
|
477
|
+
animationDone(e) {
|
478
|
+
this.interactableClass = !(e.toState === ':leave' || e.toState === 'non-interactable');
|
479
|
+
}
|
480
|
+
animationStart(e) {
|
481
|
+
if (e.toState === ':enter' || e.toState === 'interactable') {
|
482
|
+
this.interactableClass = true;
|
483
|
+
}
|
484
|
+
}
|
485
|
+
/**
|
486
|
+
* @deprecated
|
487
|
+
* Backdrop event that triggers when the backdrop element is clicked.
|
488
|
+
*/
|
489
|
+
onBackdropClicked() {
|
490
|
+
this.backdropClicked.emit();
|
491
|
+
}
|
492
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DaffSidebarViewportBackdropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
493
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: DaffSidebarViewportBackdropComponent, selector: "daff-sidebar-viewport-backdrop", inputs: { transparent: "transparent", interactable: "interactable", fullscreen: "fullscreen" }, outputs: { backdropClicked: "backdropClicked" }, host: { listeners: { "@fadeBackdrop.done": "animationDone($event)", "@fadeBackdrop.start": "animationStart($event)", "click": "onBackdropClicked()" }, properties: { "class.interactable": "this.interactableClass", "class.transparent": "this.transparent", "class.fullscreen": "this.fullscreen", "@fadeBackdrop": "this.fadeBackdropTrigger" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{display:block;background:#0000004d;-webkit-tap-highlight-color:rgba(0,0,0,0);position:absolute;pointer-events:auto;height:100%;width:100%;visibility:hidden;z-index:6}:host.interactable{visibility:visible;pointer-events:all;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host.transparent{background:none}:host:focus,:host:active,:host:visited{outline:0}:host.fullscreen{position:absolute}\n"], animations: [
|
494
|
+
daffSidebarViewportBackdropAnimations.fadeBackdrop,
|
495
|
+
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
496
|
+
}
|
497
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DaffSidebarViewportBackdropComponent, decorators: [{
|
498
|
+
type: Component,
|
499
|
+
args: [{ selector: 'daff-sidebar-viewport-backdrop', template: '<ng-content></ng-content>', animations: [
|
500
|
+
daffSidebarViewportBackdropAnimations.fadeBackdrop,
|
501
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;background:#0000004d;-webkit-tap-highlight-color:rgba(0,0,0,0);position:absolute;pointer-events:auto;height:100%;width:100%;visibility:hidden;z-index:6}:host.interactable{visibility:visible;pointer-events:all;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host.transparent{background:none}:host:focus,:host:active,:host:visited{outline:0}:host.fullscreen{position:absolute}\n"] }]
|
502
|
+
}], propDecorators: { interactableClass: [{
|
503
|
+
type: HostBinding,
|
504
|
+
args: ['class.interactable']
|
505
|
+
}], transparent: [{
|
506
|
+
type: Input
|
507
|
+
}, {
|
508
|
+
type: HostBinding,
|
509
|
+
args: ['class.transparent']
|
510
|
+
}], interactable: [{
|
511
|
+
type: Input
|
512
|
+
}], fullscreen: [{
|
513
|
+
type: Input
|
514
|
+
}, {
|
515
|
+
type: HostBinding,
|
516
|
+
args: ['class.fullscreen']
|
517
|
+
}], backdropClicked: [{
|
518
|
+
type: Output
|
519
|
+
}], fadeBackdropTrigger: [{
|
520
|
+
type: HostBinding,
|
521
|
+
args: ['@fadeBackdrop']
|
522
|
+
}], animationDone: [{
|
523
|
+
type: HostListener,
|
524
|
+
args: ['@fadeBackdrop.done', ['$event']]
|
525
|
+
}], animationStart: [{
|
526
|
+
type: HostListener,
|
527
|
+
args: ['@fadeBackdrop.start', ['$event']]
|
528
|
+
}], onBackdropClicked: [{
|
529
|
+
type: HostListener,
|
530
|
+
args: ['click']
|
531
|
+
}] } });
|
532
|
+
|
425
533
|
/**
|
426
534
|
* The DaffSidebarViewport is the "holder" of sidebars throughout an entire application.
|
427
535
|
* It's generally only used once, like
|
@@ -553,6 +661,14 @@ class DaffSidebarViewportComponent {
|
|
553
661
|
this.cdRef.markForCheck();
|
554
662
|
}
|
555
663
|
}
|
664
|
+
ngOnDestroy() {
|
665
|
+
if (!this.parentViewport && !hasParentViewport(this._elementRef.nativeElement)) {
|
666
|
+
this.bodyScroll.enable();
|
667
|
+
}
|
668
|
+
else {
|
669
|
+
this.scroll.enable();
|
670
|
+
}
|
671
|
+
}
|
556
672
|
/**
|
557
673
|
* @docs-private
|
558
674
|
*
|
@@ -575,7 +691,7 @@ class DaffSidebarViewportComponent {
|
|
575
691
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DaffSidebarViewportComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: DAFF_SIDEBAR_SCROLL_TOKEN, skipSelf: true }, { token: DaffSidebarViewportComponent, optional: true, skipSelf: true }, { token: DAFF_SIDEBAR_SCROLL_TOKEN }], target: i0.ɵɵFactoryTarget.Component }); }
|
576
692
|
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: DaffSidebarViewportComponent, selector: "daff-sidebar-viewport", inputs: { navPlacement: "navPlacement" }, outputs: { backdropClicked: "backdropClicked" }, host: { properties: { "class.daff-sidebar-viewport": "this.hostClass", "class": "this.classes" } }, providers: [
|
577
693
|
{ provide: DAFF_SIDEBAR_SCROLL_TOKEN, useFactory: daffSidebarViewportScrollFactory },
|
578
|
-
], queries: [{ propertyName: "sidebars", predicate: DaffSidebarComponent }], ngImport: i0, template: "<ng-content select=\"daff-sidebar:not([side=right])\"></ng-content>\n\n<daff-backdrop\n [@transformContent]=\"_animationState\"\n
|
694
|
+
], queries: [{ propertyName: "sidebars", predicate: DaffSidebarComponent }], ngImport: i0, template: "<ng-content select=\"daff-sidebar:not([side=right])\"></ng-content>\n\n<daff-sidebar-viewport-backdrop\n [@transformContent]=\"_animationState\"\n [interactable]=\"_backdropInteractable\"\n (backdropClicked)=\"_backdropClicked()\">\n</daff-sidebar-viewport-backdrop>\n\n<div class=\"daff-sidebar-viewport__nav\"\n [@transformContent]=\"_animationState\"\n [style.padding-left.px]=\"_navPadLeft\"\n [style.padding-right.px]=\"_navPadRight\">\n <ng-content select=\"[daff-sidebar-viewport-nav]\"></ng-content>\n</div>\n\n<div class=\"daff-sidebar-viewport__content\"\n [@transformContent]=\"_animationState\"\n (@transformContent.start)=\"onContentAnimationStart($event)\"\n (@transformContent.done)=\"onContentAnimationDone($event)\">\n <div class=\"daff-sidebar-viewport__inner\"\n [style.padding-left.px]=\"_contentPadLeft\"\n [style.padding-right.px]=\"_contentPadRight\">\n <ng-content></ng-content>\n </div>\n</div>\n\n<ng-content select=\"daff-sidebar[side=right]\"></ng-content>\n", styles: [":host{display:flex;min-height:100dvh;position:relative;width:100%;z-index:1}.daff-sidebar-viewport__content{flex:0 1 auto;width:100%;z-index:3;height:100%}.daff-sidebar-viewport__nav{position:fixed;top:0;width:100%;z-index:4}.daff-sidebar-viewport__nav:empty{display:none}.daff-sidebar-viewport__nav:not(:empty)+.daff-sidebar-viewport__content{margin-top:var(--daff-sidebar-side-fixed-top-shift)}:host-context(daff-sidebar-viewport daff-sidebar-viewport){transform:translate(0);min-height:auto}:host-context(daff-sidebar-viewport daff-sidebar-viewport) .daff-sidebar-viewport__inner{padding-left:0!important;padding-right:0!important}\n"], dependencies: [{ kind: "component", type: DaffSidebarViewportBackdropComponent, selector: "daff-sidebar-viewport-backdrop", inputs: ["transparent", "interactable", "fullscreen"], outputs: ["backdropClicked"] }], animations: [
|
579
695
|
daffSidebarAnimations.transformContent,
|
580
696
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
581
697
|
}
|
@@ -585,7 +701,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
|
|
585
701
|
daffSidebarAnimations.transformContent,
|
586
702
|
], providers: [
|
587
703
|
{ provide: DAFF_SIDEBAR_SCROLL_TOKEN, useFactory: daffSidebarViewportScrollFactory },
|
588
|
-
], template: "<ng-content select=\"daff-sidebar:not([side=right])\"></ng-content>\n\n<daff-backdrop\n [@transformContent]=\"_animationState\"\n
|
704
|
+
], template: "<ng-content select=\"daff-sidebar:not([side=right])\"></ng-content>\n\n<daff-sidebar-viewport-backdrop\n [@transformContent]=\"_animationState\"\n [interactable]=\"_backdropInteractable\"\n (backdropClicked)=\"_backdropClicked()\">\n</daff-sidebar-viewport-backdrop>\n\n<div class=\"daff-sidebar-viewport__nav\"\n [@transformContent]=\"_animationState\"\n [style.padding-left.px]=\"_navPadLeft\"\n [style.padding-right.px]=\"_navPadRight\">\n <ng-content select=\"[daff-sidebar-viewport-nav]\"></ng-content>\n</div>\n\n<div class=\"daff-sidebar-viewport__content\"\n [@transformContent]=\"_animationState\"\n (@transformContent.start)=\"onContentAnimationStart($event)\"\n (@transformContent.done)=\"onContentAnimationDone($event)\">\n <div class=\"daff-sidebar-viewport__inner\"\n [style.padding-left.px]=\"_contentPadLeft\"\n [style.padding-right.px]=\"_contentPadRight\">\n <ng-content></ng-content>\n </div>\n</div>\n\n<ng-content select=\"daff-sidebar[side=right]\"></ng-content>\n", styles: [":host{display:flex;min-height:100dvh;position:relative;width:100%;z-index:1}.daff-sidebar-viewport__content{flex:0 1 auto;width:100%;z-index:3;height:100%}.daff-sidebar-viewport__nav{position:fixed;top:0;width:100%;z-index:4}.daff-sidebar-viewport__nav:empty{display:none}.daff-sidebar-viewport__nav:not(:empty)+.daff-sidebar-viewport__content{margin-top:var(--daff-sidebar-side-fixed-top-shift)}:host-context(daff-sidebar-viewport daff-sidebar-viewport){transform:translate(0);min-height:auto}:host-context(daff-sidebar-viewport daff-sidebar-viewport) .daff-sidebar-viewport__inner{padding-left:0!important;padding-right:0!important}\n"] }]
|
589
705
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: undefined, decorators: [{
|
590
706
|
type: Inject,
|
591
707
|
args: [DAFF_SIDEBAR_SCROLL_TOKEN]
|
@@ -623,17 +739,17 @@ class DaffSidebarModule {
|
|
623
739
|
DaffSidebarHeaderComponent,
|
624
740
|
DaffSidebarFooterComponent,
|
625
741
|
DaffSidebarHeaderTitleDirective,
|
626
|
-
DaffSidebarHeaderActionDirective
|
627
|
-
|
628
|
-
|
742
|
+
DaffSidebarHeaderActionDirective,
|
743
|
+
DaffSidebarViewportBackdropComponent], imports: [CommonModule,
|
744
|
+
A11yModule], exports: [DaffSidebarComponent,
|
629
745
|
DaffSidebarViewportComponent,
|
630
746
|
DaffSidebarHeaderComponent,
|
631
747
|
DaffSidebarFooterComponent,
|
632
748
|
DaffSidebarHeaderTitleDirective,
|
633
|
-
DaffSidebarHeaderActionDirective
|
749
|
+
DaffSidebarHeaderActionDirective,
|
750
|
+
DaffSidebarViewportBackdropComponent] }); }
|
634
751
|
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DaffSidebarModule, imports: [CommonModule,
|
635
|
-
A11yModule
|
636
|
-
DaffBackdropModule] }); }
|
752
|
+
A11yModule] }); }
|
637
753
|
}
|
638
754
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DaffSidebarModule, decorators: [{
|
639
755
|
type: NgModule,
|
@@ -641,7 +757,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
|
|
641
757
|
imports: [
|
642
758
|
CommonModule,
|
643
759
|
A11yModule,
|
644
|
-
DaffBackdropModule,
|
645
760
|
],
|
646
761
|
declarations: [
|
647
762
|
DaffSidebarComponent,
|
@@ -650,6 +765,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
|
|
650
765
|
DaffSidebarFooterComponent,
|
651
766
|
DaffSidebarHeaderTitleDirective,
|
652
767
|
DaffSidebarHeaderActionDirective,
|
768
|
+
DaffSidebarViewportBackdropComponent,
|
653
769
|
],
|
654
770
|
exports: [
|
655
771
|
DaffSidebarComponent,
|
@@ -658,6 +774,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
|
|
658
774
|
DaffSidebarFooterComponent,
|
659
775
|
DaffSidebarHeaderTitleDirective,
|
660
776
|
DaffSidebarHeaderActionDirective,
|
777
|
+
DaffSidebarViewportBackdropComponent,
|
661
778
|
],
|
662
779
|
}]
|
663
780
|
}] });
|
@@ -666,5 +783,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
|
|
666
783
|
* Generated bundle index. Do not edit.
|
667
784
|
*/
|
668
785
|
|
669
|
-
export { DaffSidebarComponent, DaffSidebarFooterComponent, DaffSidebarHeaderActionDirective, DaffSidebarHeaderComponent, DaffSidebarHeaderTitleDirective, DaffSidebarModule, DaffSidebarViewportComponent };
|
786
|
+
export { DaffSidebarComponent, DaffSidebarFooterComponent, DaffSidebarHeaderActionDirective, DaffSidebarHeaderComponent, DaffSidebarHeaderTitleDirective, DaffSidebarModule, DaffSidebarViewportBackdropComponent, DaffSidebarViewportComponent };
|
670
787
|
//# sourceMappingURL=daffodil-design-sidebar.mjs.map
|