@skyux/angular-tree-component 8.6.0 → 9.0.0-alpha.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.
Files changed (25) hide show
  1. package/documentation.json +6 -6
  2. package/{esm2020 → esm2022}/lib/modules/angular-tree/angular-tree-adapter.service.mjs +8 -11
  3. package/{esm2020 → esm2022}/lib/modules/angular-tree/angular-tree-context-menu.component.mjs +4 -4
  4. package/esm2022/lib/modules/angular-tree/angular-tree-node.component.mjs +254 -0
  5. package/{esm2020 → esm2022}/lib/modules/angular-tree/angular-tree-toolbar.component.mjs +4 -4
  6. package/esm2022/lib/modules/angular-tree/angular-tree-wrapper.component.mjs +190 -0
  7. package/esm2022/lib/modules/angular-tree/angular-tree.module.mjs +53 -0
  8. package/esm2022/lib/modules/shared/sky-angular-tree-component-resources.module.mjs +51 -0
  9. package/fesm2022/skyux-angular-tree-component.mjs +616 -0
  10. package/fesm2022/skyux-angular-tree-component.mjs.map +1 -0
  11. package/lib/modules/angular-tree/angular-tree-node.component.d.ts +2 -2
  12. package/lib/modules/angular-tree/angular-tree-toolbar.component.d.ts +1 -1
  13. package/lib/modules/angular-tree/angular-tree-wrapper.component.d.ts +3 -3
  14. package/lib/modules/angular-tree/angular-tree.module.d.ts +1 -1
  15. package/package.json +13 -19
  16. package/esm2020/lib/modules/angular-tree/angular-tree-node.component.mjs +0 -257
  17. package/esm2020/lib/modules/angular-tree/angular-tree-wrapper.component.mjs +0 -189
  18. package/esm2020/lib/modules/angular-tree/angular-tree.module.mjs +0 -53
  19. package/esm2020/lib/modules/shared/sky-angular-tree-component-resources.module.mjs +0 -51
  20. package/fesm2015/skyux-angular-tree-component.mjs +0 -625
  21. package/fesm2015/skyux-angular-tree-component.mjs.map +0 -1
  22. package/fesm2020/skyux-angular-tree-component.mjs +0 -619
  23. package/fesm2020/skyux-angular-tree-component.mjs.map +0 -1
  24. /package/{esm2020 → esm2022}/index.mjs +0 -0
  25. /package/{esm2020 → esm2022}/skyux-angular-tree-component.mjs +0 -0
@@ -0,0 +1,190 @@
1
+ import { ChangeDetectionStrategy, Component, ContentChild, Input, } from '@angular/core';
2
+ import { KEYS, TREE_ACTIONS, TreeComponent, } from '@blackbaud/angular-tree-component';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "./angular-tree-toolbar.component";
6
+ /**
7
+ * Wraps the Angular `tree-root` component as part of the `SkyAngularTreeModule` that provides
8
+ * SKY UX components and styles to complement the `angular-tree-component` library and apply SKY UX
9
+ * themes and functionality to hierarchical list views. For information about the `tree-root` component, see the
10
+ * [Angular tree component documentation](https://angular2-tree.readme.io/docs).
11
+ */
12
+ export class SkyAngularTreeWrapperComponent {
13
+ constructor() {
14
+ /**
15
+ * Whether to render the tree view in read-only mode.
16
+ * This mode disables selected and active states on the tree view nodes.
17
+ * @default false
18
+ */
19
+ this.readOnly = false;
20
+ /**
21
+ * Whether to use leaf-only selection mode. For tree views with
22
+ * [checkboxes](https://angular2-tree.readme.io/docs/tri-state-checkboxes),
23
+ * this mode limits user selections to leaf nodes and prevents users from selecting parent nodes.
24
+ * @default false
25
+ */
26
+ this.selectLeafNodesOnly = false;
27
+ /**
28
+ * Whether to use single-select mode. For tree views with
29
+ * [checkboxes](https://angular2-tree.readme.io/docs/tri-state-checkboxes),
30
+ * this mode limits user selections to one node at a time.
31
+ * @default false
32
+ */
33
+ this.selectSingle = false;
34
+ /**
35
+ * Whether to display a toolbar with buttons to expand and collapse all nodes and buttons to select and clear all checkboxes.
36
+ * The select and clear buttons only appear when you enable checkboxes.
37
+ * To enable [checkboxes](https://angular2-tree.readme.io/docs/tri-state-checkboxes).
38
+ * @default false
39
+ */
40
+ this.showToolbar = false;
41
+ this.selectableNodeIds = {};
42
+ }
43
+ ngAfterViewInit() {
44
+ if (this.selectSingle &&
45
+ this.treeComponent?.treeModel.options.useTriState) {
46
+ console.warn('Single select mode should not be enabled while the tree is in triState mode (cascading selection). ' +
47
+ 'Please set "useTriState" to "false" if you want to remain in single select mode.');
48
+ }
49
+ this.#overrideActionMapping();
50
+ }
51
+ multiselectable() {
52
+ return (!!this.treeComponent &&
53
+ this.treeComponent.treeModel.options.useCheckbox &&
54
+ !this.selectSingle);
55
+ }
56
+ onClearAllClick() {
57
+ /* istanbul ignore else */
58
+ if (!this.selectSingle && this.treeComponent) {
59
+ const currentState = this.treeComponent.treeModel.getState();
60
+ this.treeComponent.state = {
61
+ ...currentState,
62
+ selectedLeafNodeIds: {},
63
+ };
64
+ }
65
+ }
66
+ onCollapseAllClick() {
67
+ this.treeComponent?.treeModel.collapseAll();
68
+ }
69
+ onExpandAllClick() {
70
+ this.treeComponent?.treeModel.expandAll();
71
+ }
72
+ onSelectAllClick() {
73
+ /* istanbul ignore else */
74
+ if (!this.selectSingle && this.treeComponent) {
75
+ // Get a list of all node ids that are selectable.
76
+ this.selectableNodeIds = {};
77
+ const getSelectableNodeIds = (node) => {
78
+ const selectable = node.isSelectable() &&
79
+ !(node.hasChildren && this.selectLeafNodesOnly);
80
+ if (selectable && !node.data.virtual) {
81
+ this.selectableNodeIds[node.id] = true;
82
+ }
83
+ if (!node.children) {
84
+ return;
85
+ }
86
+ node.children.forEach((child) => getSelectableNodeIds(child));
87
+ };
88
+ getSelectableNodeIds(this.treeComponent.treeModel.virtualRoot);
89
+ // Update tree state with new list of selected node ids.
90
+ const currentState = this.treeComponent.treeModel.getState();
91
+ this.treeComponent.state = {
92
+ ...currentState,
93
+ selectedLeafNodeIds: this.selectableNodeIds,
94
+ };
95
+ }
96
+ }
97
+ showSelectButtons() {
98
+ return (!!this.treeComponent &&
99
+ this.treeComponent.treeModel.options.useCheckbox &&
100
+ !this.selectSingle);
101
+ }
102
+ #isSelectable(node) {
103
+ return node.isLeaf || !node.hasChildren || !this.selectLeafNodesOnly;
104
+ }
105
+ #nodeDefaultAction(tree, node, event) {
106
+ if (this.readOnly) {
107
+ return;
108
+ }
109
+ if (node.options.useCheckbox && this.#isSelectable(node)) {
110
+ this.#toggleSelected(node, event);
111
+ }
112
+ else {
113
+ TREE_ACTIONS.TOGGLE_ACTIVE(tree, node, event);
114
+ }
115
+ return;
116
+ }
117
+ #onKeyDownAction(tree, node, event) {
118
+ const targetNodeId = event.target.getAttribute('data-node-id');
119
+ // Key press did not happen on the node.
120
+ if (targetNodeId !== node.id.toString()) {
121
+ // angular-tree-component will preventDefault() on anything using a key action handler,
122
+ // thus stopping "enter" and "space" keys to throw "click" events on interactive elements.
123
+ // This logic ensures components looking for "clicks" on those keystrokes still work (dropdown component).
124
+ // https://github.com/500tech/angular-tree-component/blob/master/lib/models/tree.model.ts#L341
125
+ /* istanbul ignore else */
126
+ if (event.defaultPrevented) {
127
+ event.target.click();
128
+ }
129
+ return;
130
+ }
131
+ this.#nodeDefaultAction(tree, node, event);
132
+ }
133
+ #overrideActionMapping() {
134
+ const defaultActionMapping = this.treeComponent?.treeModel.options.actionMapping;
135
+ if (defaultActionMapping?.mouse) {
136
+ // Override default click/enter/space action to check for unsupported options (leaf node, single-select).
137
+ defaultActionMapping.mouse.click = (tree, node, event) => this.#nodeDefaultAction(tree, node, event);
138
+ }
139
+ if (defaultActionMapping?.keys) {
140
+ defaultActionMapping.keys[KEYS.SPACE] = (tree, node, event) => this.#onKeyDownAction(tree, node, event);
141
+ defaultActionMapping.keys[KEYS.ENTER] = (tree, node, event) => this.#onKeyDownAction(tree, node, event);
142
+ // Disable left/right arrow keys to support navigating through interactive elements with keyboard.
143
+ // See onArrowLeft() / onArrowRight() methods inside the angular-tree-node.component.ts.
144
+ /* istanbul ignore next */
145
+ defaultActionMapping.keys[KEYS.RIGHT] = (tree, node, $event) => undefined;
146
+ /* istanbul ignore next */
147
+ defaultActionMapping.keys[KEYS.LEFT] = (tree, node, $event) => undefined;
148
+ /* istanbul ignore next */
149
+ defaultActionMapping.keys[KEYS.DOWN] = (tree, node, $event) => undefined;
150
+ /* istanbul ignore next */
151
+ defaultActionMapping.keys[KEYS.UP] = (tree, node, $event) => undefined;
152
+ }
153
+ }
154
+ #toggleSelected(node, event) {
155
+ // If single-selection is enabled, only select the node clicked.
156
+ if (this.selectSingle && !node.isSelected) {
157
+ const oldState = this.treeComponent?.treeModel.getState();
158
+ const newState = {
159
+ expandedNodeIds: oldState?.expandedNodeIds,
160
+ selectedLeafNodeIds: Object.assign({}, node.id, { [node.id]: true }),
161
+ activeNodeIds: oldState?.activeNodeIds,
162
+ hiddenNodeIds: oldState?.hiddenNodeIds,
163
+ focusedNodeId: node.id,
164
+ };
165
+ // Reconstruct the state in one go, so we don't create multiple events for the consumer.
166
+ this.treeComponent?.treeModel.setState(newState);
167
+ }
168
+ else {
169
+ TREE_ACTIONS.TOGGLE_SELECTED(node.treeModel, node, event);
170
+ }
171
+ }
172
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAngularTreeWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
173
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: SkyAngularTreeWrapperComponent, selector: "sky-angular-tree-wrapper", inputs: { readOnly: "readOnly", selectLeafNodesOnly: "selectLeafNodesOnly", selectSingle: "selectSingle", showToolbar: "showToolbar" }, queries: [{ propertyName: "treeComponent", first: true, predicate: TreeComponent, descendants: true }], ngImport: i0, template: "<div\n class=\"sky-angular-tree-wrapper\"\n [class.sky-angular-tree-read-only]=\"readOnly\"\n>\n <sky-angular-tree-toolbar\n *ngIf=\"showToolbar\"\n [showSelectButtons]=\"showSelectButtons()\"\n (clearAllClick)=\"onClearAllClick()\"\n (collapseAllClick)=\"onCollapseAllClick()\"\n (expandAllClick)=\"onExpandAllClick()\"\n (selectAllClick)=\"onSelectAllClick()\"\n >\n </sky-angular-tree-toolbar>\n <div\n class=\"sky-angular-tree-root\"\n role=\"tree\"\n [attr.aria-multiselectable]=\"multiselectable()\"\n >\n <ng-content select=\"tree-root\"></ng-content>\n </div>\n</div>\n", styles: [".sky-angular-tree-wrapper ::ng-deep .angular-tree-component{cursor:initial;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.sky-angular-tree-wrapper ::ng-deep .node-wrapper{display:flex;align-items:center;padding:4px 5px;border-left:4px solid transparent}.sky-angular-tree-wrapper ::ng-deep .node-content-wrapper{display:flex;align-items:center;padding:0;cursor:pointer}.sky-angular-tree-wrapper ::ng-deep .tree-children{padding-left:30px;overflow:hidden}.sky-angular-tree-wrapper ::ng-deep .sky-toggle-children{color:#cdcfd2;cursor:pointer;min-height:19px;min-width:20px;margin:0 10px 0 0;padding:0;line-height:1}.sky-angular-tree-wrapper ::ng-deep .sky-toggle-children:hover{color:#979ba2;transition:color .15s}.sky-angular-tree-wrapper ::ng-deep .toggle-children-placeholder{display:inline-block;height:19px;width:20px;margin:0 10px 0 0}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-selected{background:#f1eef6}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-active{background-color:#eeeeef;color:#212327;border-left:4px solid #00b4f1}.sky-angular-tree-wrapper ::ng-deep sky-checkbox{display:inline-flex}.sky-angular-tree-wrapper ::ng-deep .sky-switch-control{margin:0 8px 0 0}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-context-menu{margin:0 10px 0 0}.sky-angular-tree-wrapper ::ng-deep .node-drop-slot{display:block;height:2px}.sky-angular-tree-wrapper ::ng-deep .node-drop-slot.is-dragging-over{height:20px;background:#eeeeef;border:1px solid #e2e3e4}.sky-angular-tree-wrapper.sky-angular-tree-read-only ::ng-deep .node-content-wrapper{cursor:initial}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.SkyTreeViewToolbarComponent, selector: "sky-angular-tree-toolbar", inputs: ["showSelectButtons"], outputs: ["clearAllClick", "collapseAllClick", "expandAllClick", "selectAllClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
174
+ }
175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAngularTreeWrapperComponent, decorators: [{
176
+ type: Component,
177
+ args: [{ selector: 'sky-angular-tree-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"sky-angular-tree-wrapper\"\n [class.sky-angular-tree-read-only]=\"readOnly\"\n>\n <sky-angular-tree-toolbar\n *ngIf=\"showToolbar\"\n [showSelectButtons]=\"showSelectButtons()\"\n (clearAllClick)=\"onClearAllClick()\"\n (collapseAllClick)=\"onCollapseAllClick()\"\n (expandAllClick)=\"onExpandAllClick()\"\n (selectAllClick)=\"onSelectAllClick()\"\n >\n </sky-angular-tree-toolbar>\n <div\n class=\"sky-angular-tree-root\"\n role=\"tree\"\n [attr.aria-multiselectable]=\"multiselectable()\"\n >\n <ng-content select=\"tree-root\"></ng-content>\n </div>\n</div>\n", styles: [".sky-angular-tree-wrapper ::ng-deep .angular-tree-component{cursor:initial;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.sky-angular-tree-wrapper ::ng-deep .node-wrapper{display:flex;align-items:center;padding:4px 5px;border-left:4px solid transparent}.sky-angular-tree-wrapper ::ng-deep .node-content-wrapper{display:flex;align-items:center;padding:0;cursor:pointer}.sky-angular-tree-wrapper ::ng-deep .tree-children{padding-left:30px;overflow:hidden}.sky-angular-tree-wrapper ::ng-deep .sky-toggle-children{color:#cdcfd2;cursor:pointer;min-height:19px;min-width:20px;margin:0 10px 0 0;padding:0;line-height:1}.sky-angular-tree-wrapper ::ng-deep .sky-toggle-children:hover{color:#979ba2;transition:color .15s}.sky-angular-tree-wrapper ::ng-deep .toggle-children-placeholder{display:inline-block;height:19px;width:20px;margin:0 10px 0 0}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-selected{background:#f1eef6}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-node-active{background-color:#eeeeef;color:#212327;border-left:4px solid #00b4f1}.sky-angular-tree-wrapper ::ng-deep sky-checkbox{display:inline-flex}.sky-angular-tree-wrapper ::ng-deep .sky-switch-control{margin:0 8px 0 0}.sky-angular-tree-wrapper ::ng-deep .sky-angular-tree-context-menu{margin:0 10px 0 0}.sky-angular-tree-wrapper ::ng-deep .node-drop-slot{display:block;height:2px}.sky-angular-tree-wrapper ::ng-deep .node-drop-slot.is-dragging-over{height:20px;background:#eeeeef;border:1px solid #e2e3e4}.sky-angular-tree-wrapper.sky-angular-tree-read-only ::ng-deep .node-content-wrapper{cursor:initial}\n"] }]
178
+ }], propDecorators: { readOnly: [{
179
+ type: Input
180
+ }], selectLeafNodesOnly: [{
181
+ type: Input
182
+ }], selectSingle: [{
183
+ type: Input
184
+ }], showToolbar: [{
185
+ type: Input
186
+ }], treeComponent: [{
187
+ type: ContentChild,
188
+ args: [TreeComponent]
189
+ }] } });
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9tb2R1bGVzL2FuZ3VsYXItdHJlZS9hbmd1bGFyLXRyZWUtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL21vZHVsZXMvYW5ndWxhci10cmVlL2FuZ3VsYXItdHJlZS13cmFwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLElBQUksRUFDSixZQUFZLEVBQ1osYUFBYSxHQUdkLE1BQU0sbUNBQW1DLENBQUM7Ozs7QUFHM0M7Ozs7O0dBS0c7QUFPSCxNQUFNLE9BQU8sOEJBQThCO0lBTjNDO1FBT0U7Ozs7V0FJRztRQUVJLGFBQVEsR0FBd0IsS0FBSyxDQUFDO1FBRTdDOzs7OztXQUtHO1FBRUksd0JBQW1CLEdBQXdCLEtBQUssQ0FBQztRQUV4RDs7Ozs7V0FLRztRQUVJLGlCQUFZLEdBQXdCLEtBQUssQ0FBQztRQUVqRDs7Ozs7V0FLRztRQUVJLGdCQUFXLEdBQXdCLEtBQUssQ0FBQztRQUV6QyxzQkFBaUIsR0FBcUIsRUFBRSxDQUFDO0tBcUtqRDtJQWhLUSxlQUFlO1FBQ3BCLElBQ0UsSUFBSSxDQUFDLFlBQVk7WUFDakIsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFDakQ7WUFDQSxPQUFPLENBQUMsSUFBSSxDQUNWLHFHQUFxRztnQkFDbkcsa0ZBQWtGLENBQ3JGLENBQUM7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QUNoRSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3pDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzFELE1BQU0sUUFBUSxHQUFHO2dCQUNmLGVBQWUsRUFBRSxRQUFRLEVBQUUsZUFBZTtnQkFDMUMsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO2dCQUNwRSxhQUFhLEVBQUUsUUFBUSxFQUFFLGFBQWE7Z0JBQ3RDLGFBQWEsRUFBRSxRQUFRLEVBQUUsYUFBYTtnQkFDdEMsYUFBYSxFQUFFLElBQUksQ0FBQyxFQUFFO2FBQ3ZCLENBQUM7WUFDRix3RkFBd0Y7WUFDeEYsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2xEO2FBQU07WUFDTCxZQUFZLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzNEO0lBQ0gsQ0FBQzs4R0F4TVUsOEJBQThCO2tHQUE5Qiw4QkFBOEIsbVBBc0MzQixhQUFhLGdEQ2xFN0IseW1CQXFCQTs7MkZET2EsOEJBQThCO2tCQU4xQyxTQUFTOytCQUNFLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTTs4QkFTeEMsUUFBUTtzQkFEZCxLQUFLO2dCQVVDLG1CQUFtQjtzQkFEekIsS0FBSztnQkFVQyxZQUFZO3NCQURsQixLQUFLO2dCQVVDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBTUMsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBLRVlTLFxuICBUUkVFX0FDVElPTlMsXG4gIFRyZWVDb21wb25lbnQsXG4gIFRyZWVNb2RlbCxcbiAgVHJlZU5vZGUsXG59IGZyb20gJ0BibGFja2JhdWQvYW5ndWxhci10cmVlLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBJRFR5cGVEaWN0aW9uYXJ5IH0gZnJvbSAnQGJsYWNrYmF1ZC9hbmd1bGFyLXRyZWUtY29tcG9uZW50L2xpYi9kZWZzL2FwaSc7XG5cbi8qKlxuICogV3JhcHMgdGhlIEFuZ3VsYXIgYHRyZWUtcm9vdGAgY29tcG9uZW50IGFzIHBhcnQgb2YgdGhlIGBTa3lBbmd1bGFyVHJlZU1vZHVsZWAgdGhhdCBwcm92aWRlc1xuICogU0tZIFVYIGNvbXBvbmVudHMgYW5kIHN0eWxlcyB0byBjb21wbGVtZW50IHRoZSBgYW5ndWxhci10cmVlLWNvbXBvbmVudGAgbGlicmFyeSBhbmQgYXBwbHkgU0tZIFVYXG4gKiB0aGVtZXMgYW5kIGZ1bmN0aW9uYWxpdHkgdG8gaGllcmFyY2hpY2FsIGxpc3Qgdmlld3MuIEZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYHRyZWUtcm9vdGAgY29tcG9uZW50LCBzZWUgdGhlXG4gKiBbQW5ndWxhciB0cmVlIGNvbXBvbmVudCBkb2N1bWVudGF0aW9uXShodHRwczovL2FuZ3VsYXIyLXRyZWUucmVhZG1lLmlvL2RvY3MpLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktYW5ndWxhci10cmVlLXdyYXBwZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vYW5ndWxhci10cmVlLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hbmd1bGFyLXRyZWUtd3JhcHBlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QW5ndWxhclRyZWVXcmFwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHJlbmRlciB0aGUgdHJlZSB2aWV3IGluIHJlYWQtb25seSBtb2RlLlxuICAgKiBUaGlzIG1vZGUgZGlzYWJsZXMgc2VsZWN0ZWQgYW5kIGFjdGl2ZSBzdGF0ZXMgb24gdGhlIHRyZWUgdmlldyBub2Rlcy5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZWFkT25seTogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHVzZSBsZWFmLW9ubHkgc2VsZWN0aW9uIG1vZGUuIEZvciB0cmVlIHZpZXdzIHdpdGhcbiAgICogW2NoZWNrYm94ZXNdKGh0dHBzOi8vYW5ndWxhcjItdHJlZS5yZWFkbWUuaW8vZG9jcy90cmktc3RhdGUtY2hlY2tib3hlcyksXG4gICAqIHRoaXMgbW9kZSBsaW1pdHMgdXNlciBzZWxlY3Rpb25zIHRvIGxlYWYgbm9kZXMgYW5kIHByZXZlbnRzIHVzZXJzIGZyb20gc2VsZWN0aW5nIHBhcmVudCBub2Rlcy5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3RMZWFmTm9kZXNPbmx5OiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdXNlIHNpbmdsZS1zZWxlY3QgbW9kZS4gRm9yIHRyZWUgdmlld3Mgd2l0aFxuICAgKiBbY2hlY2tib3hlc10oaHR0cHM6Ly9hbmd1bGFyMi10cmVlLnJlYWRtZS5pby9kb2NzL3RyaS1zdGF0ZS1jaGVja2JveGVzKSxcbiAgICogdGhpcyBtb2RlIGxpbWl0cyB1c2VyIHNlbGVjdGlvbnMgdG8gb25lIG5vZGUgYXQgYSB0aW1lLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdFNpbmdsZTogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgYSB0b29sYmFyIHdpdGggYnV0dG9ucyB0byBleHBhbmQgYW5kIGNvbGxhcHNlIGFsbCBub2RlcyBhbmQgYnV0dG9ucyB0byBzZWxlY3QgYW5kIGNsZWFyIGFsbCBjaGVja2JveGVzLlxuICAgKiBUaGUgc2VsZWN0IGFuZCBjbGVhciBidXR0b25zIG9ubHkgYXBwZWFyIHdoZW4geW91IGVuYWJsZSBjaGVja2JveGVzLlxuICAgKiBUbyBlbmFibGUgW2NoZWNrYm94ZXNdKGh0dHBzOi8vYW5ndWxhcjItdHJlZS5yZWFkbWUuaW8vZG9jcy90cmktc3RhdGUtY2hlY2tib3hlcykuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1Rvb2xiYXI6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgc2VsZWN0YWJsZU5vZGVJZHM6IElEVHlwZURpY3Rpb25hcnkgPSB7fTtcblxuICBAQ29udGVudENoaWxkKFRyZWVDb21wb25lbnQpXG4gIHB1YmxpYyB0cmVlQ29tcG9uZW50OiBUcmVlQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5zZWxlY3RTaW5nbGUgJiZcbiAgICAgIHRoaXMudHJlZUNvbXBvbmVudD8udHJlZU1vZGVsLm9wdGlvbnMudXNlVHJpU3RhdGVcbiAgICApIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ1NpbmdsZSBzZWxlY3QgbW9kZSBzaG91bGQgbm90IGJlIGVuYWJsZWQgd2hpbGUgdGhlIHRyZWUgaXMgaW4gdHJpU3RhdGUgbW9kZSAoY2FzY2FkaW5nIHNlbGVjdGlvbikuICcgK1xuICAgICAgICAgICdQbGVhc2Ugc2V0IFwidXNlVHJpU3RhdGVcIiB0byBcImZhbHNlXCIgaWYgeW91IHdhbnQgdG8gcmVtYWluIGluIHNpbmdsZSBzZWxlY3QgbW9kZS4nXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLiNvdmVycmlkZUFjdGlvbk1hcHBpbmcoKTtcbiAgfVxuXG4gIHB1YmxpYyBtdWx0aXNlbGVjdGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICEhdGhpcy50cmVlQ29tcG9uZW50ICYmXG4gICAgICB0aGlzLnRyZWVDb21wb25lbnQudHJlZU1vZGVsLm9wdGlvbnMudXNlQ2hlY2tib3ggJiZcbiAgICAgICF0aGlzLnNlbGVjdFNpbmdsZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgb25DbGVhckFsbENsaWNrKCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKCF0aGlzLnNlbGVjdFNpbmdsZSAmJiB0aGlzLnRyZWVDb21wb25lbnQpIHtcbiAgICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHRoaXMudHJlZUNvbXBvbmVudC50cmVlTW9kZWwuZ2V0U3RhdGUoKTtcbiAgICAgIHRoaXMudHJlZUNvbXBvbmVudC5zdGF0ZSA9IHtcbiAgICAgICAgLi4uY3VycmVudFN0YXRlLFxuICAgICAgICBzZWxlY3RlZExlYWZOb2RlSWRzOiB7fSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQ29sbGFwc2VBbGxDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnRyZWVDb21wb25lbnQ/LnRyZWVNb2RlbC5jb2xsYXBzZUFsbCgpO1xuICB9XG5cbiAgcHVibGljIG9uRXhwYW5kQWxsQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy50cmVlQ29tcG9uZW50Py50cmVlTW9kZWwuZXhwYW5kQWxsKCk7XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3RBbGxDbGljaygpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICghdGhpcy5zZWxlY3RTaW5nbGUgJiYgdGhpcy50cmVlQ29tcG9uZW50KSB7XG4gICAgICAvLyBHZXQgYSBsaXN0IG9mIGFsbCBub2RlIGlkcyB0aGF0IGFyZSBzZWxlY3RhYmxlLlxuICAgICAgdGhpcy5zZWxlY3RhYmxlTm9kZUlkcyA9IHt9O1xuICAgICAgY29uc3QgZ2V0U2VsZWN0YWJsZU5vZGVJZHMgPSAobm9kZTogVHJlZU5vZGUpID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0YWJsZSA9XG4gICAgICAgICAgbm9kZS5pc1NlbGVjdGFibGUoKSAmJlxuICAgICAgICAgICEobm9kZS5oYXNDaGlsZHJlbiAmJiB0aGlzLnNlbGVjdExlYWZOb2Rlc09ubHkpO1xuICAgICAgICBpZiAoc2VsZWN0YWJsZSAmJiAhbm9kZS5kYXRhLnZpcnR1YWwpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGFibGVOb2RlSWRzW25vZGUuaWRdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIW5vZGUuY2hpbGRyZW4pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbm9kZS5jaGlsZHJlbi5mb3JFYWNoKChjaGlsZCkgPT4gZ2V0U2VsZWN0YWJsZU5vZGVJZHMoY2hpbGQpKTtcbiAgICAgIH07XG4gICAgICBnZXRTZWxlY3RhYmxlTm9kZUlkcyh0aGlzLnRyZWVDb21wb25lbnQudHJlZU1vZGVsLnZpcnR1YWxSb290KTtcblxuICAgICAgLy8gVXBkYXRlIHRyZWUgc3RhdGUgd2l0aCBuZXcgbGlzdCBvZiBzZWxlY3RlZCBub2RlIGlkcy5cbiAgICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHRoaXMudHJlZUNvbXBvbmVudC50cmVlTW9kZWwuZ2V0U3RhdGUoKTtcbiAgICAgIHRoaXMudHJlZUNvbXBvbmVudC5zdGF0ZSA9IHtcbiAgICAgICAgLi4uY3VycmVudFN0YXRlLFxuICAgICAgICBzZWxlY3RlZExlYWZOb2RlSWRzOiB0aGlzLnNlbGVjdGFibGVOb2RlSWRzLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2hvd1NlbGVjdEJ1dHRvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICEhdGhpcy50cmVlQ29tcG9uZW50ICYmXG4gICAgICB0aGlzLnRyZWVDb21wb25lbnQudHJlZU1vZGVsLm9wdGlvbnMudXNlQ2hlY2tib3ggJiZcbiAgICAgICF0aGlzLnNlbGVjdFNpbmdsZVxuICAgICk7XG4gIH1cblxuICAjaXNTZWxlY3RhYmxlKG5vZGU6IFRyZWVOb2RlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG5vZGUuaXNMZWFmIHx8ICFub2RlLmhhc0NoaWxkcmVuIHx8ICF0aGlzLnNlbGVjdExlYWZOb2Rlc09ubHk7XG4gIH1cblxuICAjbm9kZURlZmF1bHRBY3Rpb24odHJlZTogVHJlZU1vZGVsLCBub2RlOiBUcmVlTm9kZSwgZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlYWRPbmx5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG5vZGUub3B0aW9ucy51c2VDaGVja2JveCAmJiB0aGlzLiNpc1NlbGVjdGFibGUobm9kZSkpIHtcbiAgICAgIHRoaXMuI3RvZ2dsZVNlbGVjdGVkKG5vZGUsIGV2ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgVFJFRV9BQ1RJT05TLlRPR0dMRV9BQ1RJVkUodHJlZSwgbm9kZSwgZXZlbnQpO1xuICAgIH1cblxuICAgIHJldHVybjtcbiAgfVxuXG4gICNvbktleURvd25BY3Rpb24odHJlZTogVHJlZU1vZGVsLCBub2RlOiBUcmVlTm9kZSwgZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldE5vZGVJZCA9IGV2ZW50LnRhcmdldC5nZXRBdHRyaWJ1dGUoJ2RhdGEtbm9kZS1pZCcpO1xuXG4gICAgLy8gS2V5IHByZXNzIGRpZCBub3QgaGFwcGVuIG9uIHRoZSBub2RlLlxuICAgIGlmICh0YXJnZXROb2RlSWQgIT09IG5vZGUuaWQudG9TdHJpbmcoKSkge1xuICAgICAgLy8gYW5ndWxhci10cmVlLWNvbXBvbmVudCB3aWxsIHByZXZlbnREZWZhdWx0KCkgb24gYW55dGhpbmcgdXNpbmcgYSBrZXkgYWN0aW9uIGhhbmRsZXIsXG4gICAgICAvLyB0aHVzIHN0b3BwaW5nIFwiZW50ZXJcIiBhbmQgXCJzcGFjZVwiIGtleXMgdG8gdGhyb3cgXCJjbGlja1wiIGV2ZW50cyBvbiBpbnRlcmFjdGl2ZSBlbGVtZW50cy5cbiAgICAgIC8vIFRoaXMgbG9naWMgZW5zdXJlcyBjb21wb25lbnRzIGxvb2tpbmcgZm9yIFwiY2xpY2tzXCIgb24gdGhvc2Uga2V5c3Ryb2tlcyBzdGlsbCB3b3JrIChkcm9wZG93biBjb21wb25lbnQpLlxuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tLzUwMHRlY2gvYW5ndWxhci10cmVlLWNvbXBvbmVudC9ibG9iL21hc3Rlci9saWIvbW9kZWxzL3RyZWUubW9kZWwudHMjTDM0MVxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgIGV2ZW50LnRhcmdldC5jbGljaygpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy4jbm9kZURlZmF1bHRBY3Rpb24odHJlZSwgbm9kZSwgZXZlbnQpO1xuICB9XG5cbiAgI292ZXJyaWRlQWN0aW9uTWFwcGluZygpOiB2b2lkIHtcbiAgICBjb25zdCBkZWZhdWx0QWN0aW9uTWFwcGluZyA9XG4gICAgICB0aGlzLnRyZWVDb21wb25lbnQ/LnRyZWVNb2RlbC5vcHRpb25zLmFjdGlvbk1hcHBpbmc7XG5cbiAgICBpZiAoZGVmYXVsdEFjdGlvbk1hcHBpbmc/Lm1vdXNlKSB7XG4gICAgICAvLyBPdmVycmlkZSBkZWZhdWx0IGNsaWNrL2VudGVyL3NwYWNlIGFjdGlvbiB0byBjaGVjayBmb3IgdW5zdXBwb3J0ZWQgb3B0aW9ucyAobGVhZiBub2RlLCBzaW5nbGUtc2VsZWN0KS5cbiAgICAgIGRlZmF1bHRBY3Rpb25NYXBwaW5nLm1vdXNlLmNsaWNrID0gKHRyZWUsIG5vZGUsIGV2ZW50KSA9PlxuICAgICAgICB0aGlzLiNub2RlRGVmYXVsdEFjdGlvbih0cmVlLCBub2RlLCBldmVudCk7XG4gICAgfVxuXG4gICAgaWYgKGRlZmF1bHRBY3Rpb25NYXBwaW5nPy5rZXlzKSB7XG4gICAgICBkZWZhdWx0QWN0aW9uTWFwcGluZy5rZXlzW0tFWVMuU1BBQ0VdID0gKHRyZWUsIG5vZGUsIGV2ZW50KSA9PlxuICAgICAgICB0aGlzLiNvbktleURvd25BY3Rpb24odHJlZSwgbm9kZSwgZXZlbnQpO1xuICAgICAgZGVmYXVsdEFjdGlvbk1hcHBpbmcua2V5c1tLRVlTLkVOVEVSXSA9ICh0cmVlLCBub2RlLCBldmVudCkgPT5cbiAgICAgICAgdGhpcy4jb25LZXlEb3duQWN0aW9uKHRyZWUsIG5vZGUsIGV2ZW50KTtcblxuICAgICAgLy8gRGlzYWJsZSBsZWZ0L3JpZ2h0IGFycm93IGtleXMgdG8gc3VwcG9ydCBuYXZpZ2F0aW5nIHRocm91Z2ggaW50ZXJhY3RpdmUgZWxlbWVudHMgd2l0aCBrZXlib2FyZC5cbiAgICAgIC8vIFNlZSBvbkFycm93TGVmdCgpIC8gb25BcnJvd1JpZ2h0KCkgbWV0aG9kcyBpbnNpZGUgdGhlIGFuZ3VsYXItdHJlZS1ub2RlLmNvbXBvbmVudC50cy5cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICBkZWZhdWx0QWN0aW9uTWFwcGluZy5rZXlzW0tFWVMuUklHSFRdID0gKHRyZWUsIG5vZGUsICRldmVudCkgPT4gdW5kZWZpbmVkO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGRlZmF1bHRBY3Rpb25NYXBwaW5nLmtleXNbS0VZUy5MRUZUXSA9ICh0cmVlLCBub2RlLCAkZXZlbnQpID0+IHVuZGVmaW5lZDtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICBkZWZhdWx0QWN0aW9uTWFwcGluZy5rZXlzW0tFWVMuRE9XTl0gPSAodHJlZSwgbm9kZSwgJGV2ZW50KSA9PiB1bmRlZmluZWQ7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgZGVmYXVsdEFjdGlvbk1hcHBpbmcua2V5c1tLRVlTLlVQXSA9ICh0cmVlLCBub2RlLCAkZXZlbnQpID0+IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAjdG9nZ2xlU2VsZWN0ZWQobm9kZTogVHJlZU5vZGUsIGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAvLyBJZiBzaW5nbGUtc2VsZWN0aW9uIGlzIGVuYWJsZWQsIG9ubHkgc2VsZWN0IHRoZSBub2RlIGNsaWNrZWQuXG4gICAgaWYgKHRoaXMuc2VsZWN0U2luZ2xlICYmICFub2RlLmlzU2VsZWN0ZWQpIHtcbiAgICAgIGNvbnN0IG9sZFN0YXRlID0gdGhpcy50cmVlQ29tcG9uZW50Py50cmVlTW9kZWwuZ2V0U3RhdGUoKTtcbiAgICAgIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgICAgICBleHBhbmRlZE5vZGVJZHM6IG9sZFN0YXRlPy5leHBhbmRlZE5vZGVJZHMsXG4gICAgICAgIHNlbGVjdGVkTGVhZk5vZGVJZHM6IE9iamVjdC5hc3NpZ24oe30sIG5vZGUuaWQsIHsgW25vZGUuaWRdOiB0cnVlIH0pLFxuICAgICAgICBhY3RpdmVOb2RlSWRzOiBvbGRTdGF0ZT8uYWN0aXZlTm9kZUlkcyxcbiAgICAgICAgaGlkZGVuTm9kZUlkczogb2xkU3RhdGU/LmhpZGRlbk5vZGVJZHMsXG4gICAgICAgIGZvY3VzZWROb2RlSWQ6IG5vZGUuaWQsXG4gICAgICB9O1xuICAgICAgLy8gUmVjb25zdHJ1Y3QgdGhlIHN0YXRlIGluIG9uZSBnbywgc28gd2UgZG9uJ3QgY3JlYXRlIG11bHRpcGxlIGV2ZW50cyBmb3IgdGhlIGNvbnN1bWVyLlxuICAgICAgdGhpcy50cmVlQ29tcG9uZW50Py50cmVlTW9kZWwuc2V0U3RhdGUobmV3U3RhdGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBUUkVFX0FDVElPTlMuVE9HR0xFX1NFTEVDVEVEKG5vZGUudHJlZU1vZGVsLCBub2RlLCBldmVudCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwic2t5LWFuZ3VsYXItdHJlZS13cmFwcGVyXCJcbiAgW2NsYXNzLnNreS1hbmd1bGFyLXRyZWUtcmVhZC1vbmx5XT1cInJlYWRPbmx5XCJcbj5cbiAgPHNreS1hbmd1bGFyLXRyZWUtdG9vbGJhclxuICAgICpuZ0lmPVwic2hvd1Rvb2xiYXJcIlxuICAgIFtzaG93U2VsZWN0QnV0dG9uc109XCJzaG93U2VsZWN0QnV0dG9ucygpXCJcbiAgICAoY2xlYXJBbGxDbGljayk9XCJvbkNsZWFyQWxsQ2xpY2soKVwiXG4gICAgKGNvbGxhcHNlQWxsQ2xpY2spPVwib25Db2xsYXBzZUFsbENsaWNrKClcIlxuICAgIChleHBhbmRBbGxDbGljayk9XCJvbkV4cGFuZEFsbENsaWNrKClcIlxuICAgIChzZWxlY3RBbGxDbGljayk9XCJvblNlbGVjdEFsbENsaWNrKClcIlxuICA+XG4gIDwvc2t5LWFuZ3VsYXItdHJlZS10b29sYmFyPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJza3ktYW5ndWxhci10cmVlLXJvb3RcIlxuICAgIHJvbGU9XCJ0cmVlXCJcbiAgICBbYXR0ci5hcmlhLW11bHRpc2VsZWN0YWJsZV09XCJtdWx0aXNlbGVjdGFibGUoKVwiXG4gID5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ0cmVlLXJvb3RcIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,53 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { TreeModule } from '@blackbaud/angular-tree-component';
4
+ import { SkyCoreAdapterService } from '@skyux/core';
5
+ import { SkyCheckboxModule } from '@skyux/forms';
6
+ import { SkyIconModule } from '@skyux/indicators';
7
+ import { SkyToolbarModule } from '@skyux/layout';
8
+ import { SkyAngularTreeComponentResourcesModule } from '../shared/sky-angular-tree-component-resources.module';
9
+ import { SkyAngularTreeContextMenuComponent } from './angular-tree-context-menu.component';
10
+ import { SkyAngularTreeNodeComponent } from './angular-tree-node.component';
11
+ import { SkyTreeViewToolbarComponent } from './angular-tree-toolbar.component';
12
+ import { SkyAngularTreeWrapperComponent } from './angular-tree-wrapper.component';
13
+ import * as i0 from "@angular/core";
14
+ export class SkyAngularTreeModule {
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAngularTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
16
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyAngularTreeModule, declarations: [SkyAngularTreeContextMenuComponent,
17
+ SkyAngularTreeNodeComponent,
18
+ SkyAngularTreeWrapperComponent,
19
+ SkyTreeViewToolbarComponent], imports: [CommonModule,
20
+ SkyAngularTreeComponentResourcesModule,
21
+ SkyCheckboxModule,
22
+ SkyIconModule,
23
+ SkyToolbarModule,
24
+ TreeModule], exports: [SkyAngularTreeNodeComponent, SkyAngularTreeWrapperComponent] }); }
25
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAngularTreeModule, providers: [SkyCoreAdapterService], imports: [CommonModule,
26
+ SkyAngularTreeComponentResourcesModule,
27
+ SkyCheckboxModule,
28
+ SkyIconModule,
29
+ SkyToolbarModule,
30
+ TreeModule] }); }
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAngularTreeModule, decorators: [{
33
+ type: NgModule,
34
+ args: [{
35
+ declarations: [
36
+ SkyAngularTreeContextMenuComponent,
37
+ SkyAngularTreeNodeComponent,
38
+ SkyAngularTreeWrapperComponent,
39
+ SkyTreeViewToolbarComponent,
40
+ ],
41
+ imports: [
42
+ CommonModule,
43
+ SkyAngularTreeComponentResourcesModule,
44
+ SkyCheckboxModule,
45
+ SkyIconModule,
46
+ SkyToolbarModule,
47
+ TreeModule,
48
+ ],
49
+ providers: [SkyCoreAdapterService],
50
+ exports: [SkyAngularTreeNodeComponent, SkyAngularTreeWrapperComponent],
51
+ }]
52
+ }] });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10cmVlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hbmd1bGFyLXRyZWUtY29tcG9uZW50L3NyYy9saWIvbW9kdWxlcy9hbmd1bGFyLXRyZWUvYW5ndWxhci10cmVlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBRS9HLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQW9CbEYsTUFBTSxPQUFPLG9CQUFvQjs4R0FBcEIsb0JBQW9COytHQUFwQixvQkFBb0IsaUJBaEI3QixrQ0FBa0M7WUFDbEMsMkJBQTJCO1lBQzNCLDhCQUE4QjtZQUM5QiwyQkFBMkIsYUFHM0IsWUFBWTtZQUNaLHNDQUFzQztZQUN0QyxpQkFBaUI7WUFDakIsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixVQUFVLGFBR0YsMkJBQTJCLEVBQUUsOEJBQThCOytHQUUxRCxvQkFBb0IsYUFIcEIsQ0FBQyxxQkFBcUIsQ0FBQyxZQVBoQyxZQUFZO1lBQ1osc0NBQXNDO1lBQ3RDLGlCQUFpQjtZQUNqQixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLFVBQVU7OzJGQUtELG9CQUFvQjtrQkFsQmhDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGtDQUFrQzt3QkFDbEMsMkJBQTJCO3dCQUMzQiw4QkFBOEI7d0JBQzlCLDJCQUEyQjtxQkFDNUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osc0NBQXNDO3dCQUN0QyxpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixVQUFVO3FCQUNYO29CQUNELFNBQVMsRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNsQyxPQUFPLEVBQUUsQ0FBQywyQkFBMkIsRUFBRSw4QkFBOEIsQ0FBQztpQkFDdkUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyZWVNb2R1bGUgfSBmcm9tICdAYmxhY2tiYXVkL2FuZ3VsYXItdHJlZS1jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAc2t5dXgvZm9ybXMnO1xuaW1wb3J0IHsgU2t5SWNvbk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pbmRpY2F0b3JzJztcbmltcG9ydCB7IFNreVRvb2xiYXJNb2R1bGUgfSBmcm9tICdAc2t5dXgvbGF5b3V0JztcblxuaW1wb3J0IHsgU2t5QW5ndWxhclRyZWVDb21wb25lbnRSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWFuZ3VsYXItdHJlZS1jb21wb25lbnQtcmVzb3VyY2VzLm1vZHVsZSc7XG5cbmltcG9ydCB7IFNreUFuZ3VsYXJUcmVlQ29udGV4dE1lbnVDb21wb25lbnQgfSBmcm9tICcuL2FuZ3VsYXItdHJlZS1jb250ZXh0LW1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFuZ3VsYXJUcmVlTm9kZUNvbXBvbmVudCB9IGZyb20gJy4vYW5ndWxhci10cmVlLW5vZGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNreVRyZWVWaWV3VG9vbGJhckNvbXBvbmVudCB9IGZyb20gJy4vYW5ndWxhci10cmVlLXRvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreUFuZ3VsYXJUcmVlV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vYW5ndWxhci10cmVlLXdyYXBwZXIuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2t5QW5ndWxhclRyZWVDb250ZXh0TWVudUNvbXBvbmVudCxcbiAgICBTa3lBbmd1bGFyVHJlZU5vZGVDb21wb25lbnQsXG4gICAgU2t5QW5ndWxhclRyZWVXcmFwcGVyQ29tcG9uZW50LFxuICAgIFNreVRyZWVWaWV3VG9vbGJhckNvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTa3lBbmd1bGFyVHJlZUNvbXBvbmVudFJlc291cmNlc01vZHVsZSxcbiAgICBTa3lDaGVja2JveE1vZHVsZSxcbiAgICBTa3lJY29uTW9kdWxlLFxuICAgIFNreVRvb2xiYXJNb2R1bGUsXG4gICAgVHJlZU1vZHVsZSxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlXSxcbiAgZXhwb3J0czogW1NreUFuZ3VsYXJUcmVlTm9kZUNvbXBvbmVudCwgU2t5QW5ndWxhclRyZWVXcmFwcGVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QW5ndWxhclRyZWVNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,51 @@
1
+ /**
2
+ * NOTICE: DO NOT MODIFY THIS FILE!
3
+ * The contents of this file were automatically generated by
4
+ * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-angular-tree-component' schematic.
5
+ * To update this file, simply rerun the command.
6
+ */
7
+ import { NgModule } from '@angular/core';
8
+ import { SKY_LIB_RESOURCES_PROVIDERS, SkyI18nModule, getLibStringForLocale, } from '@skyux/i18n';
9
+ import * as i0 from "@angular/core";
10
+ const RESOURCES = {
11
+ 'EN-US': {
12
+ skyux_angular_tree_clear_all: { message: 'Clear all' },
13
+ skyux_angular_tree_click_to_expand: { message: 'Click to expand' },
14
+ skyux_angular_tree_collapse_all: { message: 'Collapse' },
15
+ skyux_angular_tree_expand_all: { message: 'Expand' },
16
+ skyux_angular_tree_select_all: { message: 'Select all' },
17
+ },
18
+ };
19
+ export class SkyAngularTreeComponentResourcesProvider {
20
+ getString(localeInfo, name) {
21
+ return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
22
+ }
23
+ }
24
+ /**
25
+ * Import into any component library module that needs to use resource strings.
26
+ */
27
+ export class SkyAngularTreeComponentResourcesModule {
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
29
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, exports: [SkyI18nModule] }); }
30
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, providers: [
31
+ {
32
+ provide: SKY_LIB_RESOURCES_PROVIDERS,
33
+ useClass: SkyAngularTreeComponentResourcesProvider,
34
+ multi: true,
35
+ },
36
+ ], imports: [SkyI18nModule] }); }
37
+ }
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyAngularTreeComponentResourcesModule, decorators: [{
39
+ type: NgModule,
40
+ args: [{
41
+ exports: [SkyI18nModule],
42
+ providers: [
43
+ {
44
+ provide: SKY_LIB_RESOURCES_PROVIDERS,
45
+ useClass: SkyAngularTreeComponentResourcesProvider,
46
+ multi: true,
47
+ },
48
+ ],
49
+ }]
50
+ }] });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LWFuZ3VsYXItdHJlZS1jb21wb25lbnQtcmVzb3VyY2VzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hbmd1bGFyLXRyZWUtY29tcG9uZW50L3NyYy9saWIvbW9kdWxlcy9zaGFyZWQvc2t5LWFuZ3VsYXItdHJlZS1jb21wb25lbnQtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNMLDJCQUEyQixFQUUzQixhQUFhLEVBR2IscUJBQXFCLEdBQ3RCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBMEM7SUFDdkQsT0FBTyxFQUFFO1FBQ1AsNEJBQTRCLEVBQUUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFO1FBQ3RELGtDQUFrQyxFQUFFLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFO1FBQ2xFLCtCQUErQixFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtRQUN4RCw2QkFBNkIsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUU7UUFDcEQsNkJBQTZCLEVBQUUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFO0tBQ3pEO0NBQ0YsQ0FBQztBQUVGLE1BQU0sT0FBTyx3Q0FBd0M7SUFHNUMsU0FBUyxDQUNkLFVBQTRCLEVBQzVCLElBQVk7UUFFWixPQUFPLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25FLENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBV0gsTUFBTSxPQUFPLHNDQUFzQzs4R0FBdEMsc0NBQXNDOytHQUF0QyxzQ0FBc0MsWUFUdkMsYUFBYTsrR0FTWixzQ0FBc0MsYUFSdEM7WUFDVDtnQkFDRSxPQUFPLEVBQUUsMkJBQTJCO2dCQUNwQyxRQUFRLEVBQUUsd0NBQXdDO2dCQUNsRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsWUFQUyxhQUFhOzsyRkFTWixzQ0FBc0M7a0JBVmxELFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUN4QixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLDJCQUEyQjs0QkFDcEMsUUFBUSxFQUFFLHdDQUF3Qzs0QkFDbEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE5PVElDRTogRE8gTk9UIE1PRElGWSBUSElTIEZJTEUhXG4gKiBUaGUgY29udGVudHMgb2YgdGhpcyBmaWxlIHdlcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnlcbiAqIHRoZSAnbmcgZ2VuZXJhdGUgQHNreXV4L2kxOG46bGliLXJlc291cmNlcy1tb2R1bGUgbGliL21vZHVsZXMvc2hhcmVkL3NreS1hbmd1bGFyLXRyZWUtY29tcG9uZW50JyBzY2hlbWF0aWMuXG4gKiBUbyB1cGRhdGUgdGhpcyBmaWxlLCBzaW1wbHkgcmVydW4gdGhlIGNvbW1hbmQuXG4gKi9cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTS1lfTElCX1JFU09VUkNFU19QUk9WSURFUlMsXG4gIFNreUFwcExvY2FsZUluZm8sXG4gIFNreUkxOG5Nb2R1bGUsXG4gIFNreUxpYlJlc291cmNlcyxcbiAgU2t5TGliUmVzb3VyY2VzUHJvdmlkZXIsXG4gIGdldExpYlN0cmluZ0ZvckxvY2FsZSxcbn0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5jb25zdCBSRVNPVVJDRVM6IHsgW2xvY2FsZTogc3RyaW5nXTogU2t5TGliUmVzb3VyY2VzIH0gPSB7XG4gICdFTi1VUyc6IHtcbiAgICBza3l1eF9hbmd1bGFyX3RyZWVfY2xlYXJfYWxsOiB7IG1lc3NhZ2U6ICdDbGVhciBhbGwnIH0sXG4gICAgc2t5dXhfYW5ndWxhcl90cmVlX2NsaWNrX3RvX2V4cGFuZDogeyBtZXNzYWdlOiAnQ2xpY2sgdG8gZXhwYW5kJyB9LFxuICAgIHNreXV4X2FuZ3VsYXJfdHJlZV9jb2xsYXBzZV9hbGw6IHsgbWVzc2FnZTogJ0NvbGxhcHNlJyB9LFxuICAgIHNreXV4X2FuZ3VsYXJfdHJlZV9leHBhbmRfYWxsOiB7IG1lc3NhZ2U6ICdFeHBhbmQnIH0sXG4gICAgc2t5dXhfYW5ndWxhcl90cmVlX3NlbGVjdF9hbGw6IHsgbWVzc2FnZTogJ1NlbGVjdCBhbGwnIH0sXG4gIH0sXG59O1xuXG5leHBvcnQgY2xhc3MgU2t5QW5ndWxhclRyZWVDb21wb25lbnRSZXNvdXJjZXNQcm92aWRlclxuICBpbXBsZW1lbnRzIFNreUxpYlJlc291cmNlc1Byb3ZpZGVyXG57XG4gIHB1YmxpYyBnZXRTdHJpbmcoXG4gICAgbG9jYWxlSW5mbzogU2t5QXBwTG9jYWxlSW5mbyxcbiAgICBuYW1lOiBzdHJpbmdcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gZ2V0TGliU3RyaW5nRm9yTG9jYWxlKFJFU09VUkNFUywgbG9jYWxlSW5mby5sb2NhbGUsIG5hbWUpO1xuICB9XG59XG5cbi8qKlxuICogSW1wb3J0IGludG8gYW55IGNvbXBvbmVudCBsaWJyYXJ5IG1vZHVsZSB0aGF0IG5lZWRzIHRvIHVzZSByZXNvdXJjZSBzdHJpbmdzLlxuICovXG5ATmdNb2R1bGUoe1xuICBleHBvcnRzOiBbU2t5STE4bk1vZHVsZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNLWV9MSUJfUkVTT1VSQ0VTX1BST1ZJREVSUyxcbiAgICAgIHVzZUNsYXNzOiBTa3lBbmd1bGFyVHJlZUNvbXBvbmVudFJlc291cmNlc1Byb3ZpZGVyLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QW5ndWxhclRyZWVDb21wb25lbnRSZXNvdXJjZXNNb2R1bGUge31cbiJdfQ==