@ali-hm/angular-tree-component 12.0.1
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/LICENSE +21 -0
- package/README.md +39 -0
- package/css/angular-tree-component.css +84 -0
- package/esm2020/ali-hm-angular-tree-component.mjs +5 -0
- package/esm2020/lib/angular-tree-component.module.mjs +100 -0
- package/esm2020/lib/components/loading.component.mjs +32 -0
- package/esm2020/lib/components/tree-node-checkbox.component.mjs +34 -0
- package/esm2020/lib/components/tree-node-collection.component.mjs +284 -0
- package/esm2020/lib/components/tree-node-content.component.mjs +32 -0
- package/esm2020/lib/components/tree-node-drop-slot.component.mjs +39 -0
- package/esm2020/lib/components/tree-node-expander.component.mjs +43 -0
- package/esm2020/lib/components/tree-node-wrapper.component.mjs +81 -0
- package/esm2020/lib/components/tree-viewport.component.mjs +66 -0
- package/esm2020/lib/components/tree.component.mjs +186 -0
- package/esm2020/lib/constants/events.mjs +20 -0
- package/esm2020/lib/constants/keys.mjs +10 -0
- package/esm2020/lib/defs/api.mjs +2 -0
- package/esm2020/lib/directives/tree-animate-open.directive.mjs +101 -0
- package/esm2020/lib/directives/tree-drag.directive.mjs +65 -0
- package/esm2020/lib/directives/tree-drop.directive.mjs +127 -0
- package/esm2020/lib/mobx-angular/mobx-proxy.mjs +17 -0
- package/esm2020/lib/mobx-angular/tree-mobx-autorun.directive.mjs +40 -0
- package/esm2020/lib/models/tree-dragged-element.model.mjs +25 -0
- package/esm2020/lib/models/tree-node.model.mjs +390 -0
- package/esm2020/lib/models/tree-options.model.mjs +150 -0
- package/esm2020/lib/models/tree-virtual-scroll.model.mjs +197 -0
- package/esm2020/lib/models/tree.model.mjs +546 -0
- package/esm2020/public-api.mjs +5 -0
- package/fesm2015/ali-hm-angular-tree-component.mjs +2511 -0
- package/fesm2015/ali-hm-angular-tree-component.mjs.map +1 -0
- package/fesm2020/ali-hm-angular-tree-component.mjs +2497 -0
- package/fesm2020/ali-hm-angular-tree-component.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/angular-tree-component.module.d.ts +43 -0
- package/lib/components/loading.component.d.ts +9 -0
- package/lib/components/tree-node-checkbox.component.d.ts +7 -0
- package/lib/components/tree-node-collection.component.d.ts +34 -0
- package/lib/components/tree-node-content.component.d.ts +10 -0
- package/lib/components/tree-node-drop-slot.component.d.ts +10 -0
- package/lib/components/tree-node-expander.component.d.ts +7 -0
- package/lib/components/tree-node-wrapper.component.d.ts +9 -0
- package/lib/components/tree-viewport.component.d.ts +17 -0
- package/lib/components/tree.component.d.ts +47 -0
- package/lib/constants/events.d.ts +19 -0
- package/lib/constants/keys.d.ts +9 -0
- package/lib/defs/api.d.ts +611 -0
- package/lib/directives/tree-animate-open.directive.d.ts +20 -0
- package/lib/directives/tree-drag.directive.d.ts +21 -0
- package/lib/directives/tree-drop.directive.d.ts +33 -0
- package/lib/mobx-angular/mobx-proxy.d.ts +7 -0
- package/lib/mobx-angular/tree-mobx-autorun.directive.d.ts +17 -0
- package/lib/models/tree-dragged-element.model.d.ts +9 -0
- package/lib/models/tree-node.model.d.ts +83 -0
- package/lib/models/tree-options.model.d.ts +77 -0
- package/lib/models/tree-virtual-scroll.model.d.ts +27 -0
- package/lib/models/tree.model.d.ts +91 -0
- package/package.json +66 -0
- package/public-api.d.ts +1 -0
- package/src/lib/angular-tree-component.css +84 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Component, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class TreeNodeContent {
|
|
5
|
+
}
|
|
6
|
+
/** @nocollapse */ TreeNodeContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeNodeContent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7
|
+
/** @nocollapse */ TreeNodeContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TreeNodeContent, selector: "tree-node-content", inputs: { node: "node", index: "index", template: "template" }, ngImport: i0, template: `
|
|
8
|
+
<span *ngIf="!template">{{ node.displayField }}</span>
|
|
9
|
+
<ng-container
|
|
10
|
+
[ngTemplateOutlet]="template"
|
|
11
|
+
[ngTemplateOutletContext]="{ $implicit: node, node: node, index: index }">
|
|
12
|
+
</ng-container>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeNodeContent, decorators: [{
|
|
14
|
+
type: Component,
|
|
15
|
+
args: [{
|
|
16
|
+
selector: 'tree-node-content',
|
|
17
|
+
encapsulation: ViewEncapsulation.None,
|
|
18
|
+
template: `
|
|
19
|
+
<span *ngIf="!template">{{ node.displayField }}</span>
|
|
20
|
+
<ng-container
|
|
21
|
+
[ngTemplateOutlet]="template"
|
|
22
|
+
[ngTemplateOutletContext]="{ $implicit: node, node: node, index: index }">
|
|
23
|
+
</ng-container>`,
|
|
24
|
+
}]
|
|
25
|
+
}], propDecorators: { node: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}], index: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}], template: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}] } });
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLWNvbnRlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL2NvbXBvbmVudHMvdHJlZS1ub2RlLWNvbnRlbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFlLE1BQU0sZUFBZSxDQUFDOzs7QUFhakYsTUFBTSxPQUFPLGVBQWU7OytIQUFmLGVBQWU7bUhBQWYsZUFBZSx5SEFQaEI7Ozs7O2tCQUtNOzJGQUVMLGVBQWU7a0JBVjNCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLFFBQVEsRUFBRTs7Ozs7a0JBS007aUJBQ2pCOzhCQUVVLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmVlTm9kZSB9IGZyb20gJy4uL21vZGVscy90cmVlLW5vZGUubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0cmVlLW5vZGUtY29udGVudCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gIDxzcGFuICpuZ0lmPVwiIXRlbXBsYXRlXCI+e3sgbm9kZS5kaXNwbGF5RmllbGQgfX08L3NwYW4+XHJcbiAgPG5nLWNvbnRhaW5lclxyXG4gICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVcIlxyXG4gICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBub2RlLCBub2RlOiBub2RlLCBpbmRleDogaW5kZXggfVwiPlxyXG4gIDwvbmctY29udGFpbmVyPmAsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmVlTm9kZUNvbnRlbnQge1xyXG4gIEBJbnB1dCgpIG5vZGU6IFRyZWVOb2RlO1xyXG4gIEBJbnB1dCgpIGluZGV4OiBudW1iZXI7XHJcbiAgQElucHV0KCkgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Component, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../directives/tree-drop.directive";
|
|
4
|
+
export class TreeNodeDropSlot {
|
|
5
|
+
onDrop($event) {
|
|
6
|
+
this.node.mouseAction('drop', $event.event, {
|
|
7
|
+
from: $event.element,
|
|
8
|
+
to: { parent: this.node, index: this.dropIndex }
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
allowDrop(element, $event) {
|
|
12
|
+
return this.node.options.allowDrop(element, { parent: this.node, index: this.dropIndex }, $event);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/** @nocollapse */ TreeNodeDropSlot.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeNodeDropSlot, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
+
/** @nocollapse */ TreeNodeDropSlot.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TreeNodeDropSlot, selector: "TreeNodeDropSlot, tree-node-drop-slot", inputs: { node: "node", dropIndex: "dropIndex" }, ngImport: i0, template: `
|
|
17
|
+
<div
|
|
18
|
+
class="node-drop-slot"
|
|
19
|
+
(treeDrop)="onDrop($event)"
|
|
20
|
+
[treeAllowDrop]="allowDrop.bind(this)"
|
|
21
|
+
[allowDragoverStyling]="true">
|
|
22
|
+
</div>
|
|
23
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.TreeDropDirective, selector: "[treeDrop]", inputs: ["allowDragoverStyling", "treeAllowDrop"], outputs: ["treeDrop", "treeDropDragOver", "treeDropDragLeave", "treeDropDragEnter"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeNodeDropSlot, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{ selector: 'TreeNodeDropSlot, tree-node-drop-slot', encapsulation: ViewEncapsulation.None, template: `
|
|
27
|
+
<div
|
|
28
|
+
class="node-drop-slot"
|
|
29
|
+
(treeDrop)="onDrop($event)"
|
|
30
|
+
[treeAllowDrop]="allowDrop.bind(this)"
|
|
31
|
+
[allowDragoverStyling]="true">
|
|
32
|
+
</div>
|
|
33
|
+
` }]
|
|
34
|
+
}], propDecorators: { node: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], dropIndex: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}] } });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLWRyb3Atc2xvdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRyZWUtY29tcG9uZW50L3NyYy9saWIvY29tcG9uZW50cy90cmVlLW5vZGUtZHJvcC1zbG90LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBZ0JwRSxNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLE1BQU0sQ0FBQyxNQUFNO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUU7WUFDMUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxPQUFPO1lBQ3BCLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFO1NBQ2pELENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBTyxFQUFFLE1BQU07UUFDdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNwRyxDQUFDOztnSUFiVSxnQkFBZ0I7b0hBQWhCLGdCQUFnQiwrSEFUakI7Ozs7Ozs7R0FPVDsyRkFFVSxnQkFBZ0I7a0JBYjVCLFNBQVM7K0JBQ0UsdUNBQXVDLGlCQUNsQyxpQkFBaUIsQ0FBQyxJQUFJLFlBRTNCOzs7Ozs7O0dBT1Q7OEJBR1EsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmVlTm9kZSB9IGZyb20gJy4uL21vZGVscy90cmVlLW5vZGUubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdUcmVlTm9kZURyb3BTbG90LCB0cmVlLW5vZGUtZHJvcC1zbG90JyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHN0eWxlczogW10sXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJub2RlLWRyb3Atc2xvdFwiXHJcbiAgICAgICh0cmVlRHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXHJcbiAgICAgIFt0cmVlQWxsb3dEcm9wXT1cImFsbG93RHJvcC5iaW5kKHRoaXMpXCJcclxuICAgICAgW2FsbG93RHJhZ292ZXJTdHlsaW5nXT1cInRydWVcIj5cclxuICAgIDwvZGl2PlxyXG4gIGBcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyZWVOb2RlRHJvcFNsb3Qge1xyXG4gIEBJbnB1dCgpIG5vZGU6IFRyZWVOb2RlO1xyXG4gIEBJbnB1dCgpIGRyb3BJbmRleDogbnVtYmVyO1xyXG5cclxuICBvbkRyb3AoJGV2ZW50KSB7XHJcbiAgICB0aGlzLm5vZGUubW91c2VBY3Rpb24oJ2Ryb3AnLCAkZXZlbnQuZXZlbnQsIHtcclxuICAgICAgZnJvbTogJGV2ZW50LmVsZW1lbnQsXHJcbiAgICAgIHRvOiB7IHBhcmVudDogdGhpcy5ub2RlLCBpbmRleDogdGhpcy5kcm9wSW5kZXggfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhbGxvd0Ryb3AoZWxlbWVudCwgJGV2ZW50KSB7XHJcbiAgICByZXR1cm4gdGhpcy5ub2RlLm9wdGlvbnMuYWxsb3dEcm9wKGVsZW1lbnQsIHsgcGFyZW50OiB0aGlzLm5vZGUsIGluZGV4OiB0aGlzLmRyb3BJbmRleCB9LCAkZXZlbnQpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Component, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "../mobx-angular/tree-mobx-autorun.directive";
|
|
5
|
+
export class TreeNodeExpanderComponent {
|
|
6
|
+
}
|
|
7
|
+
/** @nocollapse */ TreeNodeExpanderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeNodeExpanderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8
|
+
/** @nocollapse */ TreeNodeExpanderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TreeNodeExpanderComponent, selector: "tree-node-expander", inputs: { node: "node" }, ngImport: i0, template: `
|
|
9
|
+
<ng-container *treeMobxAutorun="{ dontDetach: true }">
|
|
10
|
+
<span
|
|
11
|
+
*ngIf="node.hasChildren"
|
|
12
|
+
[class.toggle-children-wrapper-expanded]="node.isExpanded"
|
|
13
|
+
[class.toggle-children-wrapper-collapsed]="node.isCollapsed"
|
|
14
|
+
class="toggle-children-wrapper"
|
|
15
|
+
(click)="node.mouseAction('expanderClick', $event)"
|
|
16
|
+
>
|
|
17
|
+
<span class="toggle-children"></span>
|
|
18
|
+
</span>
|
|
19
|
+
<span *ngIf="!node.hasChildren" class="toggle-children-placeholder">
|
|
20
|
+
</span>
|
|
21
|
+
</ng-container>
|
|
22
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.TreeMobxAutorunDirective, selector: "[treeMobxAutorun]", inputs: ["treeMobxAutorun"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeNodeExpanderComponent, decorators: [{
|
|
24
|
+
type: Component,
|
|
25
|
+
args: [{ selector: 'tree-node-expander', encapsulation: ViewEncapsulation.None, template: `
|
|
26
|
+
<ng-container *treeMobxAutorun="{ dontDetach: true }">
|
|
27
|
+
<span
|
|
28
|
+
*ngIf="node.hasChildren"
|
|
29
|
+
[class.toggle-children-wrapper-expanded]="node.isExpanded"
|
|
30
|
+
[class.toggle-children-wrapper-collapsed]="node.isCollapsed"
|
|
31
|
+
class="toggle-children-wrapper"
|
|
32
|
+
(click)="node.mouseAction('expanderClick', $event)"
|
|
33
|
+
>
|
|
34
|
+
<span class="toggle-children"></span>
|
|
35
|
+
</span>
|
|
36
|
+
<span *ngIf="!node.hasChildren" class="toggle-children-placeholder">
|
|
37
|
+
</span>
|
|
38
|
+
</ng-container>
|
|
39
|
+
` }]
|
|
40
|
+
}], propDecorators: { node: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}] } });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLWV4cGFuZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9jb21wb25lbnRzL3RyZWUtbm9kZS1leHBhbmRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUF1QnBFLE1BQU0sT0FBTyx5QkFBeUI7O3lJQUF6Qix5QkFBeUI7NkhBQXpCLHlCQUF5QixvRkFoQjFCOzs7Ozs7Ozs7Ozs7OztHQWNUOzJGQUVVLHlCQUF5QjtrQkFwQnJDLFNBQVM7K0JBQ0Usb0JBQW9CLGlCQUNmLGlCQUFpQixDQUFDLElBQUksWUFFM0I7Ozs7Ozs7Ozs7Ozs7O0dBY1Q7OEJBR1EsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJlZU5vZGUgfSBmcm9tICcuLi9tb2RlbHMvdHJlZS1ub2RlLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHJlZS1ub2RlLWV4cGFuZGVyJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHN0eWxlczogW10sXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxuZy1jb250YWluZXIgKnRyZWVNb2J4QXV0b3J1bj1cInsgZG9udERldGFjaDogdHJ1ZSB9XCI+XHJcbiAgICAgIDxzcGFuXHJcbiAgICAgICAgKm5nSWY9XCJub2RlLmhhc0NoaWxkcmVuXCJcclxuICAgICAgICBbY2xhc3MudG9nZ2xlLWNoaWxkcmVuLXdyYXBwZXItZXhwYW5kZWRdPVwibm9kZS5pc0V4cGFuZGVkXCJcclxuICAgICAgICBbY2xhc3MudG9nZ2xlLWNoaWxkcmVuLXdyYXBwZXItY29sbGFwc2VkXT1cIm5vZGUuaXNDb2xsYXBzZWRcIlxyXG4gICAgICAgIGNsYXNzPVwidG9nZ2xlLWNoaWxkcmVuLXdyYXBwZXJcIlxyXG4gICAgICAgIChjbGljayk9XCJub2RlLm1vdXNlQWN0aW9uKCdleHBhbmRlckNsaWNrJywgJGV2ZW50KVwiXHJcbiAgICAgID5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRvZ2dsZS1jaGlsZHJlblwiPjwvc3Bhbj5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cIiFub2RlLmhhc0NoaWxkcmVuXCIgY2xhc3M9XCJ0b2dnbGUtY2hpbGRyZW4tcGxhY2Vob2xkZXJcIj5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJlZU5vZGVFeHBhbmRlckNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgbm9kZTogVHJlZU5vZGU7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Component, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "./tree-node-content.component";
|
|
5
|
+
import * as i3 from "../directives/tree-drop.directive";
|
|
6
|
+
import * as i4 from "../directives/tree-drag.directive";
|
|
7
|
+
import * as i5 from "./tree-node-expander.component";
|
|
8
|
+
import * as i6 from "./tree-node-checkbox.component";
|
|
9
|
+
export class TreeNodeWrapperComponent {
|
|
10
|
+
}
|
|
11
|
+
/** @nocollapse */ TreeNodeWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeNodeWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12
|
+
/** @nocollapse */ TreeNodeWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TreeNodeWrapperComponent, selector: "tree-node-wrapper", inputs: { node: "node", index: "index", templates: "templates" }, ngImport: i0, template: `
|
|
13
|
+
<div *ngIf="!templates.treeNodeWrapperTemplate" class="node-wrapper" [style.padding-left]="node.getNodePadding()">
|
|
14
|
+
<tree-node-checkbox *ngIf="node.options.useCheckbox" [node]="node"></tree-node-checkbox>
|
|
15
|
+
<tree-node-expander [node]="node"></tree-node-expander>
|
|
16
|
+
<div class="node-content-wrapper"
|
|
17
|
+
[class.node-content-wrapper-active]="node.isActive"
|
|
18
|
+
[class.node-content-wrapper-focused]="node.isFocused"
|
|
19
|
+
(click)="node.mouseAction('click', $event)"
|
|
20
|
+
(dblclick)="node.mouseAction('dblClick', $event)"
|
|
21
|
+
(mouseover)="node.mouseAction('mouseOver', $event)"
|
|
22
|
+
(mouseout)="node.mouseAction('mouseOut', $event)"
|
|
23
|
+
(contextmenu)="node.mouseAction('contextMenu', $event)"
|
|
24
|
+
(treeDrop)="node.onDrop($event)"
|
|
25
|
+
(treeDropDragOver)="node.mouseAction('dragOver', $event)"
|
|
26
|
+
(treeDropDragLeave)="node.mouseAction('dragLeave', $event)"
|
|
27
|
+
(treeDropDragEnter)="node.mouseAction('dragEnter', $event)"
|
|
28
|
+
[treeAllowDrop]="node.allowDrop"
|
|
29
|
+
[allowDragoverStyling]="node.allowDragoverStyling()"
|
|
30
|
+
[treeDrag]="node"
|
|
31
|
+
[treeDragEnabled]="node.allowDrag()">
|
|
32
|
+
|
|
33
|
+
<tree-node-content [node]="node" [index]="index" [template]="templates.treeNodeTemplate">
|
|
34
|
+
</tree-node-content>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
<ng-container
|
|
38
|
+
[ngTemplateOutlet]="templates.treeNodeWrapperTemplate"
|
|
39
|
+
[ngTemplateOutletContext]="{ $implicit: node, node: node, index: index, templates: templates }">
|
|
40
|
+
</ng-container>
|
|
41
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.TreeNodeContent, selector: "tree-node-content", inputs: ["node", "index", "template"] }, { kind: "directive", type: i3.TreeDropDirective, selector: "[treeDrop]", inputs: ["allowDragoverStyling", "treeAllowDrop"], outputs: ["treeDrop", "treeDropDragOver", "treeDropDragLeave", "treeDropDragEnter"] }, { kind: "directive", type: i4.TreeDragDirective, selector: "[treeDrag]", inputs: ["treeDrag", "treeDragEnabled"] }, { kind: "component", type: i5.TreeNodeExpanderComponent, selector: "tree-node-expander", inputs: ["node"] }, { kind: "component", type: i6.TreeNodeCheckboxComponent, selector: "tree-node-checkbox", inputs: ["node"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeNodeWrapperComponent, decorators: [{
|
|
43
|
+
type: Component,
|
|
44
|
+
args: [{ selector: 'tree-node-wrapper', encapsulation: ViewEncapsulation.None, template: `
|
|
45
|
+
<div *ngIf="!templates.treeNodeWrapperTemplate" class="node-wrapper" [style.padding-left]="node.getNodePadding()">
|
|
46
|
+
<tree-node-checkbox *ngIf="node.options.useCheckbox" [node]="node"></tree-node-checkbox>
|
|
47
|
+
<tree-node-expander [node]="node"></tree-node-expander>
|
|
48
|
+
<div class="node-content-wrapper"
|
|
49
|
+
[class.node-content-wrapper-active]="node.isActive"
|
|
50
|
+
[class.node-content-wrapper-focused]="node.isFocused"
|
|
51
|
+
(click)="node.mouseAction('click', $event)"
|
|
52
|
+
(dblclick)="node.mouseAction('dblClick', $event)"
|
|
53
|
+
(mouseover)="node.mouseAction('mouseOver', $event)"
|
|
54
|
+
(mouseout)="node.mouseAction('mouseOut', $event)"
|
|
55
|
+
(contextmenu)="node.mouseAction('contextMenu', $event)"
|
|
56
|
+
(treeDrop)="node.onDrop($event)"
|
|
57
|
+
(treeDropDragOver)="node.mouseAction('dragOver', $event)"
|
|
58
|
+
(treeDropDragLeave)="node.mouseAction('dragLeave', $event)"
|
|
59
|
+
(treeDropDragEnter)="node.mouseAction('dragEnter', $event)"
|
|
60
|
+
[treeAllowDrop]="node.allowDrop"
|
|
61
|
+
[allowDragoverStyling]="node.allowDragoverStyling()"
|
|
62
|
+
[treeDrag]="node"
|
|
63
|
+
[treeDragEnabled]="node.allowDrag()">
|
|
64
|
+
|
|
65
|
+
<tree-node-content [node]="node" [index]="index" [template]="templates.treeNodeTemplate">
|
|
66
|
+
</tree-node-content>
|
|
67
|
+
</div>
|
|
68
|
+
</div>
|
|
69
|
+
<ng-container
|
|
70
|
+
[ngTemplateOutlet]="templates.treeNodeWrapperTemplate"
|
|
71
|
+
[ngTemplateOutletContext]="{ $implicit: node, node: node, index: index, templates: templates }">
|
|
72
|
+
</ng-container>
|
|
73
|
+
` }]
|
|
74
|
+
}], propDecorators: { node: [{
|
|
75
|
+
type: Input
|
|
76
|
+
}], index: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}], templates: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}] } });
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1ub2RlLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL2NvbXBvbmVudHMvdHJlZS1ub2RlLXdyYXBwZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUcsS0FBSyxFQUFHLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQXVDdEUsTUFBTSxPQUFPLHdCQUF3Qjs7d0lBQXhCLHdCQUF3Qjs0SEFBeEIsd0JBQXdCLDJIQWhDekI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJUOzJGQUdVLHdCQUF3QjtrQkFwQ3BDLFNBQVM7K0JBQ0UsbUJBQW1CLGlCQUNkLGlCQUFpQixDQUFDLElBQUksWUFFM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJUOzhCQUtRLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCAsIElucHV0ICwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJlZU5vZGUgfSBmcm9tICcuLi9tb2RlbHMvdHJlZS1ub2RlLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHJlZS1ub2RlLXdyYXBwZXInICxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lICxcclxuICBzdHlsZXM6IFtdICxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiIXRlbXBsYXRlcy50cmVlTm9kZVdyYXBwZXJUZW1wbGF0ZVwiIGNsYXNzPVwibm9kZS13cmFwcGVyXCIgW3N0eWxlLnBhZGRpbmctbGVmdF09XCJub2RlLmdldE5vZGVQYWRkaW5nKClcIj5cclxuICAgICAgICAgIDx0cmVlLW5vZGUtY2hlY2tib3ggKm5nSWY9XCJub2RlLm9wdGlvbnMudXNlQ2hlY2tib3hcIiBbbm9kZV09XCJub2RlXCI+PC90cmVlLW5vZGUtY2hlY2tib3g+XHJcbiAgICAgICAgICA8dHJlZS1ub2RlLWV4cGFuZGVyIFtub2RlXT1cIm5vZGVcIj48L3RyZWUtbm9kZS1leHBhbmRlcj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RlLWNvbnRlbnQtd3JhcHBlclwiXHJcbiAgICAgICAgICAgICAgIFtjbGFzcy5ub2RlLWNvbnRlbnQtd3JhcHBlci1hY3RpdmVdPVwibm9kZS5pc0FjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgIFtjbGFzcy5ub2RlLWNvbnRlbnQtd3JhcHBlci1mb2N1c2VkXT1cIm5vZGUuaXNGb2N1c2VkXCJcclxuICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5vZGUubW91c2VBY3Rpb24oJ2NsaWNrJywgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgIChkYmxjbGljayk9XCJub2RlLm1vdXNlQWN0aW9uKCdkYmxDbGljaycsICRldmVudClcIlxyXG4gICAgICAgICAgICAgICAobW91c2VvdmVyKT1cIm5vZGUubW91c2VBY3Rpb24oJ21vdXNlT3ZlcicsICRldmVudClcIlxyXG4gICAgICAgICAgICAgICAobW91c2VvdXQpPVwibm9kZS5tb3VzZUFjdGlvbignbW91c2VPdXQnLCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgKGNvbnRleHRtZW51KT1cIm5vZGUubW91c2VBY3Rpb24oJ2NvbnRleHRNZW51JywgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICh0cmVlRHJvcCk9XCJub2RlLm9uRHJvcCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgKHRyZWVEcm9wRHJhZ092ZXIpPVwibm9kZS5tb3VzZUFjdGlvbignZHJhZ092ZXInLCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgKHRyZWVEcm9wRHJhZ0xlYXZlKT1cIm5vZGUubW91c2VBY3Rpb24oJ2RyYWdMZWF2ZScsICRldmVudClcIlxyXG4gICAgICAgICAgICAgICAodHJlZURyb3BEcmFnRW50ZXIpPVwibm9kZS5tb3VzZUFjdGlvbignZHJhZ0VudGVyJywgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgIFt0cmVlQWxsb3dEcm9wXT1cIm5vZGUuYWxsb3dEcm9wXCJcclxuICAgICAgICAgICAgICAgW2FsbG93RHJhZ292ZXJTdHlsaW5nXT1cIm5vZGUuYWxsb3dEcmFnb3ZlclN0eWxpbmcoKVwiXHJcbiAgICAgICAgICAgICAgIFt0cmVlRHJhZ109XCJub2RlXCJcclxuICAgICAgICAgICAgICAgW3RyZWVEcmFnRW5hYmxlZF09XCJub2RlLmFsbG93RHJhZygpXCI+XHJcblxyXG4gICAgICAgICAgICAgIDx0cmVlLW5vZGUtY29udGVudCBbbm9kZV09XCJub2RlXCIgW2luZGV4XT1cImluZGV4XCIgW3RlbXBsYXRlXT1cInRlbXBsYXRlcy50cmVlTm9kZVRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgICAgPC90cmVlLW5vZGUtY29udGVudD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlcy50cmVlTm9kZVdyYXBwZXJUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBub2RlLCBub2RlOiBub2RlLCBpbmRleDogaW5kZXgsIHRlbXBsYXRlczogdGVtcGxhdGVzIH1cIj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgYFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFRyZWVOb2RlV3JhcHBlckNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIG5vZGU6IFRyZWVOb2RlO1xyXG4gIEBJbnB1dCgpIGluZGV4OiBudW1iZXI7XHJcbiAgQElucHV0KCkgdGVtcGxhdGVzOiBhbnk7XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Component, } from '@angular/core';
|
|
2
|
+
import { TreeVirtualScroll } from '../models/tree-virtual-scroll.model';
|
|
3
|
+
import { TREE_EVENTS } from '../constants/events';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../models/tree-virtual-scroll.model";
|
|
6
|
+
import * as i2 from "../mobx-angular/tree-mobx-autorun.directive";
|
|
7
|
+
export class TreeViewportComponent {
|
|
8
|
+
constructor(elementRef, virtualScroll) {
|
|
9
|
+
this.elementRef = elementRef;
|
|
10
|
+
this.virtualScroll = virtualScroll;
|
|
11
|
+
this.setViewport = this.throttle(() => {
|
|
12
|
+
this.virtualScroll.setViewport(this.elementRef.nativeElement);
|
|
13
|
+
}, 17);
|
|
14
|
+
this.scrollEventHandler = this.setViewport.bind(this);
|
|
15
|
+
}
|
|
16
|
+
ngOnInit() {
|
|
17
|
+
this.virtualScroll.init();
|
|
18
|
+
}
|
|
19
|
+
ngAfterViewInit() {
|
|
20
|
+
setTimeout(() => {
|
|
21
|
+
this.setViewport();
|
|
22
|
+
this.virtualScroll.fireEvent({ eventName: TREE_EVENTS.initialized });
|
|
23
|
+
});
|
|
24
|
+
let el = this.elementRef.nativeElement;
|
|
25
|
+
el.addEventListener('scroll', this.scrollEventHandler);
|
|
26
|
+
}
|
|
27
|
+
ngOnDestroy() {
|
|
28
|
+
this.virtualScroll.clear();
|
|
29
|
+
let el = this.elementRef.nativeElement;
|
|
30
|
+
el.removeEventListener('scroll', this.scrollEventHandler);
|
|
31
|
+
}
|
|
32
|
+
getTotalHeight() {
|
|
33
|
+
return ((this.virtualScroll.isEnabled() &&
|
|
34
|
+
this.virtualScroll.totalHeight + 'px') ||
|
|
35
|
+
'auto');
|
|
36
|
+
}
|
|
37
|
+
throttle(func, timeFrame) {
|
|
38
|
+
let lastTime = 0;
|
|
39
|
+
return function () {
|
|
40
|
+
let now = Date.now();
|
|
41
|
+
if (now - lastTime >= timeFrame) {
|
|
42
|
+
func();
|
|
43
|
+
lastTime = now;
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/** @nocollapse */ TreeViewportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeViewportComponent, deps: [{ token: i0.ElementRef }, { token: i1.TreeVirtualScroll }], target: i0.ɵɵFactoryTarget.Component });
|
|
49
|
+
/** @nocollapse */ TreeViewportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TreeViewportComponent, selector: "tree-viewport", providers: [TreeVirtualScroll], ngImport: i0, template: `
|
|
50
|
+
<ng-container *treeMobxAutorun="{ dontDetach: true }">
|
|
51
|
+
<div [style.height]="getTotalHeight()">
|
|
52
|
+
<ng-content></ng-content>
|
|
53
|
+
</div>
|
|
54
|
+
</ng-container>
|
|
55
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i2.TreeMobxAutorunDirective, selector: "[treeMobxAutorun]", inputs: ["treeMobxAutorun"] }] });
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeViewportComponent, decorators: [{
|
|
57
|
+
type: Component,
|
|
58
|
+
args: [{ selector: 'tree-viewport', providers: [TreeVirtualScroll], template: `
|
|
59
|
+
<ng-container *treeMobxAutorun="{ dontDetach: true }">
|
|
60
|
+
<div [style.height]="getTotalHeight()">
|
|
61
|
+
<ng-content></ng-content>
|
|
62
|
+
</div>
|
|
63
|
+
</ng-container>
|
|
64
|
+
` }]
|
|
65
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.TreeVirtualScroll }]; } });
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3cG9ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRyZWUtY29tcG9uZW50L3NyYy9saWIvY29tcG9uZW50cy90cmVlLXZpZXdwb3J0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxHQUtWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQWNsRCxNQUFNLE9BQU8scUJBQXFCO0lBT2hDLFlBQ1UsVUFBc0IsRUFDdkIsYUFBZ0M7UUFEL0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN2QixrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFSekMsZ0JBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQVFMLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELGVBQWU7UUFDYixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxFQUFFLEdBQWdCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQ3BELEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzNCLElBQUksRUFBRSxHQUFnQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUNwRCxFQUFFLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxDQUNMLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUU7WUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQ3hDLE1BQU0sQ0FDUCxDQUFDO0lBQ0osQ0FBQztJQUVPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsU0FBUztRQUM5QixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDakIsT0FBTztZQUNMLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNyQixJQUFJLEdBQUcsR0FBRyxRQUFRLElBQUksU0FBUyxFQUFFO2dCQUMvQixJQUFJLEVBQUUsQ0FBQztnQkFDUCxRQUFRLEdBQUcsR0FBRyxDQUFDO2FBQ2hCO1FBQ0gsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs7cUlBbERVLHFCQUFxQjt5SEFBckIscUJBQXFCLHdDQVRyQixDQUFDLGlCQUFpQixDQUFDLDBCQUNwQjs7Ozs7O0dBTVQ7MkZBRVUscUJBQXFCO2tCQVpqQyxTQUFTOytCQUNFLGVBQWUsYUFFZCxDQUFDLGlCQUFpQixDQUFDLFlBQ3BCOzs7Ozs7R0FNVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBPbkluaXQsXHJcbiAgT25EZXN0cm95LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmVlVmlydHVhbFNjcm9sbCB9IGZyb20gJy4uL21vZGVscy90cmVlLXZpcnR1YWwtc2Nyb2xsLm1vZGVsJztcclxuaW1wb3J0IHsgVFJFRV9FVkVOVFMgfSBmcm9tICcuLi9jb25zdGFudHMvZXZlbnRzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndHJlZS12aWV3cG9ydCcsXHJcbiAgc3R5bGVzOiBbXSxcclxuICBwcm92aWRlcnM6IFtUcmVlVmlydHVhbFNjcm9sbF0sXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxuZy1jb250YWluZXIgKnRyZWVNb2J4QXV0b3J1bj1cInsgZG9udERldGFjaDogdHJ1ZSB9XCI+XHJcbiAgICAgIDxkaXYgW3N0eWxlLmhlaWdodF09XCJnZXRUb3RhbEhlaWdodCgpXCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIGBcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyZWVWaWV3cG9ydENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBzZXRWaWV3cG9ydCA9IHRoaXMudGhyb3R0bGUoKCkgPT4ge1xyXG4gICAgdGhpcy52aXJ0dWFsU2Nyb2xsLnNldFZpZXdwb3J0KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICB9LCAxNyk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgc2Nyb2xsRXZlbnRIYW5kbGVyOiAoJGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgdmlydHVhbFNjcm9sbDogVHJlZVZpcnR1YWxTY3JvbGxcclxuICApIHtcclxuICAgIHRoaXMuc2Nyb2xsRXZlbnRIYW5kbGVyID0gdGhpcy5zZXRWaWV3cG9ydC5iaW5kKHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnZpcnR1YWxTY3JvbGwuaW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2V0Vmlld3BvcnQoKTtcclxuICAgICAgdGhpcy52aXJ0dWFsU2Nyb2xsLmZpcmVFdmVudCh7IGV2ZW50TmFtZTogVFJFRV9FVkVOVFMuaW5pdGlhbGl6ZWQgfSk7XHJcbiAgICB9KTtcclxuICAgIGxldCBlbDogSFRNTEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuc2Nyb2xsRXZlbnRIYW5kbGVyKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy52aXJ0dWFsU2Nyb2xsLmNsZWFyKCk7XHJcbiAgICBsZXQgZWw6IEhUTUxFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBlbC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLnNjcm9sbEV2ZW50SGFuZGxlcik7XHJcbiAgfVxyXG5cclxuICBnZXRUb3RhbEhlaWdodCgpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgICh0aGlzLnZpcnR1YWxTY3JvbGwuaXNFbmFibGVkKCkgJiZcclxuICAgICAgICB0aGlzLnZpcnR1YWxTY3JvbGwudG90YWxIZWlnaHQgKyAncHgnKSB8fFxyXG4gICAgICAnYXV0bydcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHRocm90dGxlKGZ1bmMsIHRpbWVGcmFtZSkge1xyXG4gICAgbGV0IGxhc3RUaW1lID0gMDtcclxuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgIGxldCBub3cgPSBEYXRlLm5vdygpO1xyXG4gICAgICBpZiAobm93IC0gbGFzdFRpbWUgPj0gdGltZUZyYW1lKSB7XHJcbiAgICAgICAgZnVuYygpO1xyXG4gICAgICAgIGxhc3RUaW1lID0gbm93O1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { Component, ContentChild, EventEmitter, HostListener, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { TreeModel } from '../models/tree.model';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../models/tree.model";
|
|
5
|
+
import * as i2 from "../models/tree-dragged-element.model";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
import * as i4 from "./tree-node-drop-slot.component";
|
|
8
|
+
import * as i5 from "./tree-node-collection.component";
|
|
9
|
+
import * as i6 from "./tree-viewport.component";
|
|
10
|
+
export class TreeComponent {
|
|
11
|
+
constructor(treeModel, treeDraggedElement) {
|
|
12
|
+
this.treeModel = treeModel;
|
|
13
|
+
this.treeDraggedElement = treeDraggedElement;
|
|
14
|
+
treeModel.eventNames.forEach((name) => this[name] = new EventEmitter());
|
|
15
|
+
treeModel.subscribeToState((state) => this.stateChange.emit(state));
|
|
16
|
+
}
|
|
17
|
+
// Will be handled in ngOnChanges
|
|
18
|
+
set nodes(nodes) {
|
|
19
|
+
}
|
|
20
|
+
;
|
|
21
|
+
set options(options) {
|
|
22
|
+
}
|
|
23
|
+
;
|
|
24
|
+
set focused(value) {
|
|
25
|
+
this.treeModel.setFocus(value);
|
|
26
|
+
}
|
|
27
|
+
set state(state) {
|
|
28
|
+
this.treeModel.setState(state);
|
|
29
|
+
}
|
|
30
|
+
onKeydown($event) {
|
|
31
|
+
if (!this.treeModel.isFocused)
|
|
32
|
+
return;
|
|
33
|
+
if (['input', 'textarea'].includes(document.activeElement.tagName.toLowerCase()))
|
|
34
|
+
return;
|
|
35
|
+
const focusedNode = this.treeModel.getFocusedNode();
|
|
36
|
+
this.treeModel.performKeyAction(focusedNode, $event);
|
|
37
|
+
}
|
|
38
|
+
onMousedown($event) {
|
|
39
|
+
function isOutsideClick(startElement, nodeName) {
|
|
40
|
+
return !startElement ? true : startElement.localName === nodeName ? false : isOutsideClick(startElement.parentElement, nodeName);
|
|
41
|
+
}
|
|
42
|
+
if (isOutsideClick($event.target, 'tree-root')) {
|
|
43
|
+
this.treeModel.setFocus(false);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
ngOnChanges(changes) {
|
|
47
|
+
if (changes.options || changes.nodes) {
|
|
48
|
+
this.treeModel.setData({
|
|
49
|
+
options: changes.options && changes.options.currentValue,
|
|
50
|
+
nodes: changes.nodes && changes.nodes.currentValue,
|
|
51
|
+
events: this.pick(this, this.treeModel.eventNames)
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
sizeChanged() {
|
|
56
|
+
this.viewportComponent.setViewport();
|
|
57
|
+
}
|
|
58
|
+
pick(object, keys) {
|
|
59
|
+
return keys.reduce((obj, key) => {
|
|
60
|
+
if (object && object.hasOwnProperty(key)) {
|
|
61
|
+
obj[key] = object[key];
|
|
62
|
+
}
|
|
63
|
+
return obj;
|
|
64
|
+
}, {});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/** @nocollapse */ TreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeComponent, deps: [{ token: i1.TreeModel }, { token: i2.TreeDraggedElement }], target: i0.ɵɵFactoryTarget.Component });
|
|
68
|
+
/** @nocollapse */ TreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TreeComponent, selector: "Tree, tree-root", inputs: { nodes: "nodes", options: "options", focused: "focused", state: "state" }, outputs: { toggleExpanded: "toggleExpanded", activate: "activate", deactivate: "deactivate", nodeActivate: "nodeActivate", nodeDeactivate: "nodeDeactivate", select: "select", deselect: "deselect", focus: "focus", blur: "blur", updateData: "updateData", initialized: "initialized", moveNode: "moveNode", copyNode: "copyNode", loadNodeChildren: "loadNodeChildren", changeFilter: "changeFilter", event: "event", stateChange: "stateChange" }, host: { listeners: { "body: keydown": "onKeydown($event)", "body: mousedown": "onMousedown($event)" } }, providers: [TreeModel], queries: [{ propertyName: "loadingTemplate", first: true, predicate: ["loadingTemplate"], descendants: true }, { propertyName: "treeNodeTemplate", first: true, predicate: ["treeNodeTemplate"], descendants: true }, { propertyName: "treeNodeWrapperTemplate", first: true, predicate: ["treeNodeWrapperTemplate"], descendants: true }, { propertyName: "treeNodeFullTemplate", first: true, predicate: ["treeNodeFullTemplate"], descendants: true }], viewQueries: [{ propertyName: "viewportComponent", first: true, predicate: ["viewport"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
69
|
+
<tree-viewport #viewport>
|
|
70
|
+
<div
|
|
71
|
+
class="angular-tree-component"
|
|
72
|
+
[class.node-dragging]="treeDraggedElement.isDragging()"
|
|
73
|
+
[class.angular-tree-component-rtl]="treeModel.options.rtl">
|
|
74
|
+
<tree-node-collection
|
|
75
|
+
*ngIf="treeModel.roots"
|
|
76
|
+
[nodes]="treeModel.roots"
|
|
77
|
+
[treeModel]="treeModel"
|
|
78
|
+
[templates]="{
|
|
79
|
+
loadingTemplate: loadingTemplate,
|
|
80
|
+
treeNodeTemplate: treeNodeTemplate,
|
|
81
|
+
treeNodeWrapperTemplate: treeNodeWrapperTemplate,
|
|
82
|
+
treeNodeFullTemplate: treeNodeFullTemplate
|
|
83
|
+
}">
|
|
84
|
+
</tree-node-collection>
|
|
85
|
+
<tree-node-drop-slot
|
|
86
|
+
class="empty-tree-drop-slot"
|
|
87
|
+
*ngIf="treeModel.isEmptyTree()"
|
|
88
|
+
[dropIndex]="0"
|
|
89
|
+
[node]="treeModel.virtualRoot">
|
|
90
|
+
</tree-node-drop-slot>
|
|
91
|
+
</div>
|
|
92
|
+
</tree-viewport>
|
|
93
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TreeNodeDropSlot, selector: "TreeNodeDropSlot, tree-node-drop-slot", inputs: ["node", "dropIndex"] }, { kind: "component", type: i5.TreeNodeCollectionComponent, selector: "tree-node-collection", inputs: ["nodes", "treeModel", "templates"] }, { kind: "component", type: i6.TreeViewportComponent, selector: "tree-viewport" }] });
|
|
94
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TreeComponent, decorators: [{
|
|
95
|
+
type: Component,
|
|
96
|
+
args: [{ selector: 'Tree, tree-root', providers: [TreeModel], template: `
|
|
97
|
+
<tree-viewport #viewport>
|
|
98
|
+
<div
|
|
99
|
+
class="angular-tree-component"
|
|
100
|
+
[class.node-dragging]="treeDraggedElement.isDragging()"
|
|
101
|
+
[class.angular-tree-component-rtl]="treeModel.options.rtl">
|
|
102
|
+
<tree-node-collection
|
|
103
|
+
*ngIf="treeModel.roots"
|
|
104
|
+
[nodes]="treeModel.roots"
|
|
105
|
+
[treeModel]="treeModel"
|
|
106
|
+
[templates]="{
|
|
107
|
+
loadingTemplate: loadingTemplate,
|
|
108
|
+
treeNodeTemplate: treeNodeTemplate,
|
|
109
|
+
treeNodeWrapperTemplate: treeNodeWrapperTemplate,
|
|
110
|
+
treeNodeFullTemplate: treeNodeFullTemplate
|
|
111
|
+
}">
|
|
112
|
+
</tree-node-collection>
|
|
113
|
+
<tree-node-drop-slot
|
|
114
|
+
class="empty-tree-drop-slot"
|
|
115
|
+
*ngIf="treeModel.isEmptyTree()"
|
|
116
|
+
[dropIndex]="0"
|
|
117
|
+
[node]="treeModel.virtualRoot">
|
|
118
|
+
</tree-node-drop-slot>
|
|
119
|
+
</div>
|
|
120
|
+
</tree-viewport>
|
|
121
|
+
` }]
|
|
122
|
+
}], ctorParameters: function () { return [{ type: i1.TreeModel }, { type: i2.TreeDraggedElement }]; }, propDecorators: { loadingTemplate: [{
|
|
123
|
+
type: ContentChild,
|
|
124
|
+
args: ['loadingTemplate', { static: false }]
|
|
125
|
+
}], treeNodeTemplate: [{
|
|
126
|
+
type: ContentChild,
|
|
127
|
+
args: ['treeNodeTemplate', { static: false }]
|
|
128
|
+
}], treeNodeWrapperTemplate: [{
|
|
129
|
+
type: ContentChild,
|
|
130
|
+
args: ['treeNodeWrapperTemplate', { static: false }]
|
|
131
|
+
}], treeNodeFullTemplate: [{
|
|
132
|
+
type: ContentChild,
|
|
133
|
+
args: ['treeNodeFullTemplate', { static: false }]
|
|
134
|
+
}], viewportComponent: [{
|
|
135
|
+
type: ViewChild,
|
|
136
|
+
args: ['viewport', { static: false }]
|
|
137
|
+
}], nodes: [{
|
|
138
|
+
type: Input
|
|
139
|
+
}], options: [{
|
|
140
|
+
type: Input
|
|
141
|
+
}], focused: [{
|
|
142
|
+
type: Input
|
|
143
|
+
}], state: [{
|
|
144
|
+
type: Input
|
|
145
|
+
}], toggleExpanded: [{
|
|
146
|
+
type: Output
|
|
147
|
+
}], activate: [{
|
|
148
|
+
type: Output
|
|
149
|
+
}], deactivate: [{
|
|
150
|
+
type: Output
|
|
151
|
+
}], nodeActivate: [{
|
|
152
|
+
type: Output
|
|
153
|
+
}], nodeDeactivate: [{
|
|
154
|
+
type: Output
|
|
155
|
+
}], select: [{
|
|
156
|
+
type: Output
|
|
157
|
+
}], deselect: [{
|
|
158
|
+
type: Output
|
|
159
|
+
}], focus: [{
|
|
160
|
+
type: Output
|
|
161
|
+
}], blur: [{
|
|
162
|
+
type: Output
|
|
163
|
+
}], updateData: [{
|
|
164
|
+
type: Output
|
|
165
|
+
}], initialized: [{
|
|
166
|
+
type: Output
|
|
167
|
+
}], moveNode: [{
|
|
168
|
+
type: Output
|
|
169
|
+
}], copyNode: [{
|
|
170
|
+
type: Output
|
|
171
|
+
}], loadNodeChildren: [{
|
|
172
|
+
type: Output
|
|
173
|
+
}], changeFilter: [{
|
|
174
|
+
type: Output
|
|
175
|
+
}], event: [{
|
|
176
|
+
type: Output
|
|
177
|
+
}], stateChange: [{
|
|
178
|
+
type: Output
|
|
179
|
+
}], onKeydown: [{
|
|
180
|
+
type: HostListener,
|
|
181
|
+
args: ['body: keydown', ['$event']]
|
|
182
|
+
}], onMousedown: [{
|
|
183
|
+
type: HostListener,
|
|
184
|
+
args: ['body: mousedown', ['$event']]
|
|
185
|
+
}] } });
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRyZWUtY29tcG9uZW50L3NyYy9saWIvY29tcG9uZW50cy90cmVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RJLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7QUFxQ2pELE1BQU0sT0FBTyxhQUFhO0lBMkN4QixZQUNTLFNBQW9CLEVBQ3BCLGtCQUFzQztRQUR0QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFFN0MsU0FBUyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDeEUsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUF2Q0QsaUNBQWlDO0lBQ2pDLElBQWEsS0FBSyxDQUFDLEtBQVk7SUFDL0IsQ0FBQztJQUFBLENBQUM7SUFFRixJQUFhLE9BQU8sQ0FBQyxPQUFxQjtJQUMxQyxDQUFDO0lBQUEsQ0FBQztJQUVGLElBQWEsT0FBTyxDQUFDLEtBQWM7UUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQWEsS0FBSyxDQUFDLEtBQUs7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQTZCRCxTQUFTLENBQUMsTUFBTTtRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBQ3RDLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQUUsT0FBTztRQUV6RixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXBELElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFHRCxXQUFXLENBQUMsTUFBTTtRQUNoQixTQUFTLGNBQWMsQ0FBQyxZQUFxQixFQUFFLFFBQWdCO1lBQzdELE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbkksQ0FBQztRQUVELElBQUksY0FBYyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQU87UUFDakIsSUFBSSxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7Z0JBQ3JCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWTtnQkFDeEQsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZO2dCQUNsRCxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUM7YUFDbkQsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUM5QixJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN4QyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3hCO1lBQ0QsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDOzs2SEE3RlUsYUFBYTtpSEFBYixhQUFhLDhwQkE3QmIsQ0FBQyxTQUFTLENBQUMseWxCQUVaOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJUOzJGQUVVLGFBQWE7a0JBL0J6QixTQUFTOytCQUNFLGlCQUFpQixhQUNoQixDQUFDLFNBQVMsQ0FBQyxZQUVaOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJUO2lJQU1tRCxlQUFlO3NCQUFsRSxZQUFZO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDRyxnQkFBZ0I7c0JBQXBFLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNTLHVCQUF1QjtzQkFBbEYsWUFBWTt1QkFBQyx5QkFBeUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0Qsb0JBQW9CO3NCQUE1RSxZQUFZO3VCQUFDLHNCQUFzQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDYixpQkFBaUI7c0JBQTFELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFHM0IsS0FBSztzQkFBakIsS0FBSztnQkFHTyxPQUFPO3NCQUFuQixLQUFLO2dCQUdPLE9BQU87c0JBQW5CLEtBQUs7Z0JBSU8sS0FBSztzQkFBakIsS0FBSztnQkFJSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQVdQLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBV3pDLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyZWVNb2RlbCB9IGZyb20gJy4uL21vZGVscy90cmVlLm1vZGVsJztcclxuaW1wb3J0IHsgVHJlZURyYWdnZWRFbGVtZW50IH0gZnJvbSAnLi4vbW9kZWxzL3RyZWUtZHJhZ2dlZC1lbGVtZW50Lm1vZGVsJztcclxuaW1wb3J0IHsgVHJlZU9wdGlvbnMgfSBmcm9tICcuLi9tb2RlbHMvdHJlZS1vcHRpb25zLm1vZGVsJztcclxuaW1wb3J0IHsgSVRyZWVPcHRpb25zIH0gZnJvbSAnLi4vZGVmcy9hcGknO1xyXG5pbXBvcnQgeyBUcmVlVmlld3BvcnRDb21wb25lbnQgfSBmcm9tICcuL3RyZWUtdmlld3BvcnQuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnVHJlZSwgdHJlZS1yb290JyxcclxuICBwcm92aWRlcnM6IFtUcmVlTW9kZWxdLFxyXG4gIHN0eWxlczogW10sXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgICAgPHRyZWUtdmlld3BvcnQgI3ZpZXdwb3J0PlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImFuZ3VsYXItdHJlZS1jb21wb25lbnRcIlxyXG4gICAgICAgICAgICAgICAgICBbY2xhc3Mubm9kZS1kcmFnZ2luZ109XCJ0cmVlRHJhZ2dlZEVsZW1lbnQuaXNEcmFnZ2luZygpXCJcclxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmFuZ3VsYXItdHJlZS1jb21wb25lbnQtcnRsXT1cInRyZWVNb2RlbC5vcHRpb25zLnJ0bFwiPlxyXG4gICAgICAgICAgICAgIDx0cmVlLW5vZGUtY29sbGVjdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0cmVlTW9kZWwucm9vdHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW25vZGVzXT1cInRyZWVNb2RlbC5yb290c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdHJlZU1vZGVsXT1cInRyZWVNb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVzXT1cIntcclxuICAgICAgICAgICAgbG9hZGluZ1RlbXBsYXRlOiBsb2FkaW5nVGVtcGxhdGUsXHJcbiAgICAgICAgICAgIHRyZWVOb2RlVGVtcGxhdGU6IHRyZWVOb2RlVGVtcGxhdGUsXHJcbiAgICAgICAgICAgIHRyZWVOb2RlV3JhcHBlclRlbXBsYXRlOiB0cmVlTm9kZVdyYXBwZXJUZW1wbGF0ZSxcclxuICAgICAgICAgICAgdHJlZU5vZGVGdWxsVGVtcGxhdGU6IHRyZWVOb2RlRnVsbFRlbXBsYXRlXHJcbiAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgPC90cmVlLW5vZGUtY29sbGVjdGlvbj5cclxuICAgICAgICAgICAgICA8dHJlZS1ub2RlLWRyb3Atc2xvdFxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlbXB0eS10cmVlLWRyb3Atc2xvdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRyZWVNb2RlbC5pc0VtcHR5VHJlZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtkcm9wSW5kZXhdPVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbm9kZV09XCJ0cmVlTW9kZWwudmlydHVhbFJvb3RcIj5cclxuICAgICAgICAgICAgICA8L3RyZWUtbm9kZS1kcm9wLXNsb3Q+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgPC90cmVlLXZpZXdwb3J0PlxyXG4gIGBcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyZWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIF9ub2RlczogYW55W107XHJcbiAgX29wdGlvbnM6IFRyZWVPcHRpb25zO1xyXG5cclxuICBAQ29udGVudENoaWxkKCdsb2FkaW5nVGVtcGxhdGUnLCB7IHN0YXRpYzogZmFsc2UgfSkgbG9hZGluZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ3RyZWVOb2RlVGVtcGxhdGUnLCB7IHN0YXRpYzogZmFsc2UgfSkgdHJlZU5vZGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAQ29udGVudENoaWxkKCd0cmVlTm9kZVdyYXBwZXJUZW1wbGF0ZScsIHsgc3RhdGljOiBmYWxzZSB9KSB0cmVlTm9kZVdyYXBwZXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAQ29udGVudENoaWxkKCd0cmVlTm9kZUZ1bGxUZW1wbGF0ZScsIHsgc3RhdGljOiBmYWxzZSB9KSB0cmVlTm9kZUZ1bGxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCd2aWV3cG9ydCcsIHsgc3RhdGljOiBmYWxzZSB9KSB2aWV3cG9ydENvbXBvbmVudDogVHJlZVZpZXdwb3J0Q29tcG9uZW50O1xyXG5cclxuICAvLyBXaWxsIGJlIGhhbmRsZWQgaW4gbmdPbkNoYW5nZXNcclxuICBASW5wdXQoKSBzZXQgbm9kZXMobm9kZXM6IGFueVtdKSB7XHJcbiAgfTtcclxuXHJcbiAgQElucHV0KCkgc2V0IG9wdGlvbnMob3B0aW9uczogSVRyZWVPcHRpb25zKSB7XHJcbiAgfTtcclxuXHJcbiAgQElucHV0KCkgc2V0IGZvY3VzZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMudHJlZU1vZGVsLnNldEZvY3VzKHZhbHVlKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCBzdGF0ZShzdGF0ZSkge1xyXG4gICAgdGhpcy50cmVlTW9kZWwuc2V0U3RhdGUoc3RhdGUpO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpIHRvZ2dsZUV4cGFuZGVkO1xyXG4gIEBPdXRwdXQoKSBhY3RpdmF0ZTtcclxuICBAT3V0cHV0KCkgZGVhY3RpdmF0ZTtcclxuICBAT3V0cHV0KCkgbm9kZUFjdGl2YXRlO1xyXG4gIEBPdXRwdXQoKSBub2RlRGVhY3RpdmF0ZTtcclxuICBAT3V0cHV0KCkgc2VsZWN0O1xyXG4gIEBPdXRwdXQoKSBkZXNlbGVjdDtcclxuICBAT3V0cHV0KCkgZm9jdXM7XHJcbiAgQE91dHB1dCgpIGJsdXI7XHJcbiAgQE91dHB1dCgpIHVwZGF0ZURhdGE7XHJcbiAgQE91dHB1dCgpIGluaXRpYWxpemVkO1xyXG4gIEBPdXRwdXQoKSBtb3ZlTm9kZTtcclxuICBAT3V0cHV0KCkgY29weU5vZGU7XHJcbiAgQE91dHB1dCgpIGxvYWROb2RlQ2hpbGRyZW47XHJcbiAgQE91dHB1dCgpIGNoYW5nZUZpbHRlcjtcclxuICBAT3V0cHV0KCkgZXZlbnQ7XHJcbiAgQE91dHB1dCgpIHN0YXRlQ2hhbmdlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyB0cmVlTW9kZWw6IFRyZWVNb2RlbCxcclxuICAgIHB1YmxpYyB0cmVlRHJhZ2dlZEVsZW1lbnQ6IFRyZWVEcmFnZ2VkRWxlbWVudCkge1xyXG5cclxuICAgIHRyZWVNb2RlbC5ldmVudE5hbWVzLmZvckVhY2goKG5hbWUpID0+IHRoaXNbbmFtZV0gPSBuZXcgRXZlbnRFbWl0dGVyKCkpO1xyXG4gICAgdHJlZU1vZGVsLnN1YnNjcmliZVRvU3RhdGUoKHN0YXRlKSA9PiB0aGlzLnN0YXRlQ2hhbmdlLmVtaXQoc3RhdGUpKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2JvZHk6IGtleWRvd24nLCBbJyRldmVudCddKVxyXG4gIG9uS2V5ZG93bigkZXZlbnQpIHtcclxuICAgIGlmICghdGhpcy50cmVlTW9kZWwuaXNGb2N1c2VkKSByZXR1cm47XHJcbiAgICBpZiAoWydpbnB1dCcsICd0ZXh0YXJlYSddLmluY2x1ZGVzKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpKSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGZvY3VzZWROb2RlID0gdGhpcy50cmVlTW9kZWwuZ2V0Rm9jdXNlZE5vZGUoKTtcclxuXHJcbiAgICB0aGlzLnRyZWVNb2RlbC5wZXJmb3JtS2V5QWN0aW9uKGZvY3VzZWROb2RlLCAkZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignYm9keTogbW91c2Vkb3duJywgWyckZXZlbnQnXSlcclxuICBvbk1vdXNlZG93bigkZXZlbnQpIHtcclxuICAgIGZ1bmN0aW9uIGlzT3V0c2lkZUNsaWNrKHN0YXJ0RWxlbWVudDogRWxlbWVudCwgbm9kZU5hbWU6IHN0cmluZykge1xyXG4gICAgICByZXR1cm4gIXN0YXJ0RWxlbWVudCA/IHRydWUgOiBzdGFydEVsZW1lbnQubG9jYWxOYW1lID09PSBub2RlTmFtZSA/IGZhbHNlIDogaXNPdXRzaWRlQ2xpY2soc3RhcnRFbGVtZW50LnBhcmVudEVsZW1lbnQsIG5vZGVOYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaXNPdXRzaWRlQ2xpY2soJGV2ZW50LnRhcmdldCwgJ3RyZWUtcm9vdCcpKSB7XHJcbiAgICAgIHRoaXMudHJlZU1vZGVsLnNldEZvY3VzKGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzLm9wdGlvbnMgfHwgY2hhbmdlcy5ub2Rlcykge1xyXG4gICAgICB0aGlzLnRyZWVNb2RlbC5zZXREYXRhKHtcclxuICAgICAgICBvcHRpb25zOiBjaGFuZ2VzLm9wdGlvbnMgJiYgY2hhbmdlcy5vcHRpb25zLmN1cnJlbnRWYWx1ZSxcclxuICAgICAgICBub2RlczogY2hhbmdlcy5ub2RlcyAmJiBjaGFuZ2VzLm5vZGVzLmN1cnJlbnRWYWx1ZSxcclxuICAgICAgICBldmVudHM6IHRoaXMucGljayh0aGlzLCB0aGlzLnRyZWVNb2RlbC5ldmVudE5hbWVzKVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNpemVDaGFuZ2VkKCkge1xyXG4gICAgdGhpcy52aWV3cG9ydENvbXBvbmVudC5zZXRWaWV3cG9ydCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwaWNrKG9iamVjdCwga2V5cykge1xyXG4gICAgcmV0dXJuIGtleXMucmVkdWNlKChvYmosIGtleSkgPT4ge1xyXG4gICAgICBpZiAob2JqZWN0ICYmIG9iamVjdC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgb2JqW2tleV0gPSBvYmplY3Rba2V5XTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gb2JqO1xyXG4gICAgfSwge30pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export const TREE_EVENTS = {
|
|
2
|
+
toggleExpanded: 'toggleExpanded',
|
|
3
|
+
activate: 'activate',
|
|
4
|
+
deactivate: 'deactivate',
|
|
5
|
+
nodeActivate: 'nodeActivate',
|
|
6
|
+
nodeDeactivate: 'nodeDeactivate',
|
|
7
|
+
select: 'select',
|
|
8
|
+
deselect: 'deselect',
|
|
9
|
+
focus: 'focus',
|
|
10
|
+
blur: 'blur',
|
|
11
|
+
initialized: 'initialized',
|
|
12
|
+
updateData: 'updateData',
|
|
13
|
+
moveNode: 'moveNode',
|
|
14
|
+
copyNode: 'copyNode',
|
|
15
|
+
event: 'event',
|
|
16
|
+
loadNodeChildren: 'loadNodeChildren',
|
|
17
|
+
changeFilter: 'changeFilter',
|
|
18
|
+
stateChange: 'stateChange'
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL2NvbnN0YW50cy9ldmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHO0lBQ3pCLGNBQWMsRUFBRSxnQkFBZ0I7SUFDaEMsUUFBUSxFQUFFLFVBQVU7SUFDcEIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsWUFBWSxFQUFFLGNBQWM7SUFDNUIsY0FBYyxFQUFFLGdCQUFnQjtJQUNoQyxNQUFNLEVBQUUsUUFBUTtJQUNoQixRQUFRLEVBQUUsVUFBVTtJQUNwQixLQUFLLEVBQUUsT0FBTztJQUNkLElBQUksRUFBRSxNQUFNO0lBQ1osV0FBVyxFQUFFLGFBQWE7SUFDMUIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsS0FBSyxFQUFFLE9BQU87SUFDZCxnQkFBZ0IsRUFBRSxrQkFBa0I7SUFDcEMsWUFBWSxFQUFFLGNBQWM7SUFDNUIsV0FBVyxFQUFFLGFBQWE7Q0FDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBUUkVFX0VWRU5UUyA9IHtcclxuICB0b2dnbGVFeHBhbmRlZDogJ3RvZ2dsZUV4cGFuZGVkJyxcclxuICBhY3RpdmF0ZTogJ2FjdGl2YXRlJyxcclxuICBkZWFjdGl2YXRlOiAnZGVhY3RpdmF0ZScsXHJcbiAgbm9kZUFjdGl2YXRlOiAnbm9kZUFjdGl2YXRlJyxcclxuICBub2RlRGVhY3RpdmF0ZTogJ25vZGVEZWFjdGl2YXRlJyxcclxuICBzZWxlY3Q6ICdzZWxlY3QnLFxyXG4gIGRlc2VsZWN0OiAnZGVzZWxlY3QnLFxyXG4gIGZvY3VzOiAnZm9jdXMnLFxyXG4gIGJsdXI6ICdibHVyJyxcclxuICBpbml0aWFsaXplZDogJ2luaXRpYWxpemVkJyxcclxuICB1cGRhdGVEYXRhOiAndXBkYXRlRGF0YScsXHJcbiAgbW92ZU5vZGU6ICdtb3ZlTm9kZScsXHJcbiAgY29weU5vZGU6ICdjb3B5Tm9kZScsXHJcbiAgZXZlbnQ6ICdldmVudCcsXHJcbiAgbG9hZE5vZGVDaGlsZHJlbjogJ2xvYWROb2RlQ2hpbGRyZW4nLFxyXG4gIGNoYW5nZUZpbHRlcjogJ2NoYW5nZUZpbHRlcicsXHJcbiAgc3RhdGVDaGFuZ2U6ICdzdGF0ZUNoYW5nZSdcclxufTtcclxuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export const KEYS = {
|
|
2
|
+
LEFT: 37,
|
|
3
|
+
UP: 38,
|
|
4
|
+
RIGHT: 39,
|
|
5
|
+
DOWN: 40,
|
|
6
|
+
ENTER: 13,
|
|
7
|
+
SPACE: 32,
|
|
8
|
+
CONTEXT_MENU: 32
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdHJlZS1jb21wb25lbnQvc3JjL2xpYi9jb25zdGFudHMva2V5cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUc7SUFDbEIsSUFBSSxFQUFFLEVBQUU7SUFDUixFQUFFLEVBQUUsRUFBRTtJQUNOLEtBQUssRUFBRSxFQUFFO0lBQ1QsSUFBSSxFQUFFLEVBQUU7SUFDUixLQUFLLEVBQUUsRUFBRTtJQUNULEtBQUssRUFBRSxFQUFFO0lBQ1QsWUFBWSxFQUFFLEVBQUU7Q0FDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBLRVlTID0ge1xyXG4gIExFRlQ6IDM3LFxyXG4gIFVQOiAzOCxcclxuICBSSUdIVDogMzksXHJcbiAgRE9XTjogNDAsXHJcbiAgRU5URVI6IDEzLFxyXG4gIFNQQUNFOiAzMixcclxuICBDT05URVhUX01FTlU6IDMyXHJcbn07XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci10cmVlLWNvbXBvbmVudC9zcmMvbGliL2RlZnMvYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogV2VsY29tZSB0byBuZzJ0cmVlXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBJRFR5cGUgPSBzdHJpbmcgfCBudW1iZXI7XHJcbmV4cG9ydCB0eXBlIElEVHlwZURpY3Rpb25hcnkgPSB7IFtpZDogc3RyaW5nXTogYm9vbGVhbiwgW2lkOiBudW1iZXJdOiBib29sZWFuIH07XHJcblxyXG4vKipcclxuICogU2VlIElUcmVlTm9kZSBmb3IgZG9jdW1lbnRhdGlvblxyXG4gKi9cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBUcmVlTm9kZSA9IGFueTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUFsbG93RHJvcEZuIHtcclxuICAoZWxlbWVudDogYW55LCB0bzoge3BhcmVudDogVHJlZU5vZGUsIGluZGV4OiBudW1iZXJ9LCAkZXZlbnQ/OiBhbnkpOiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElOb2RlSGVpZ2h0Rm4ge1xyXG4gIChub2RlOiBUcmVlTm9kZSk6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQWxsb3dEcmFnRm4ge1xyXG4gIChub2RlOiBUcmVlTm9kZSk6IGJvb2xlYW47XHJcbn1cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElUcmVlU3RhdGUge1xyXG4gIGV4cGFuZGVkTm9kZUlkcz86IElEVHlwZURpY3Rpb25hcnk7XHJcbiAgc2VsZWN0ZWROb2RlSWRzPzogSURUeXBlRGljdGlvbmFyeTtcclxuICBhY3RpdmVOb2RlSWRzPzogSURUeXBlRGljdGlvbmFyeTtcclxuICBoaWRkZW5Ob2RlSWRzPzogSURUeXBlRGljdGlvbmFyeTtcclxuICBzZWxlY3RlZExlYWZOb2RlSWRzPzogSURUeXBlRGljdGlvbmFyeTtcclxuICBmb2N1c2VkTm9kZUlkPzogSURUeXBlO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElUcmVlT3B0aW9ucyB7XHJcbiAgIC8qKlxyXG4gICAgKiBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGF0dHJpYnV0ZSBvZiB0aGUgbm9kZSB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRoZXJlIGFyZSBjaGlsZCBub2Rlcy5cclxuXHJcbiAgICAqICoqRGVmYXVsdCB2YWx1ZTogYGhhc0NoaWxkcmVuYC4qKlxyXG5cclxuICAgIEZvciBleGFtcGxlLCBpZiB5b3VyIG5vZGVzIGhhdmUgYW4gYGlzRGlyZWN0b3J5YCBhdHRyaWJ1dGUgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0aGVyZSBhcmUgY2hpbGRyZW4sIHVzZTpcclxuICAgIGBgYFxyXG4gICAgICBvcHRpb25zID0geyBoYXNDaGlsZHJlbkZpZWxkOiAnaXNEaXJlY3RvcnknIH1cclxuICAgIGBgYFxyXG4gICAgKi9cclxuICAgaGFzQ2hpbGRyZW5GaWVsZD86IHN0cmluZztcclxuICAgLyoqXHJcbiAgICAqIEEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgYXR0cmlidXRlIG9mIHRoZSBub2RlIHRoYXQgY29udGFpbnMgdGhlIGFycmF5IG9mIGNoaWxkcmVuLlxyXG5cclxuICAgICogKipEZWZhdWx0IHZhbHVlOiBgY2hpbGRyZW5gLioqXHJcblxyXG4gICAgRm9yIGV4YW1wbGUsIGlmIHlvdXIgbm9kZXMgaGF2ZSBhIGBub2Rlc2AgYXR0cmlidXRlLCB0aGF0IGNvbnRhaW5zIHRoZSBjaGlsZHJlbiwgdXNlOlxyXG4gICAgYGBgXHJcbiAgICAgIG9wdGlvbnMgPSB7IGNoaWxkcmVuRmllbGQ6ICdub2RlcycgfVxyXG4gICAgYGBgXHJcbiAgICAqL1xyXG4gICBjaGlsZHJlbkZpZWxkPzogc3RyaW5nO1xyXG4gICAvKipcclxuICAgICogQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBhdHRyaWJ1dGUgb2YgdGhlIG5vZGUgdG8gZGlzcGxheS5cclxuXHJcbiAgICAqICoqRGVmYXVsdCB2YWx1ZTogYG5hbWVgKipcclxuXHJcbiAgICAgIEZvciBleGFtcGxlLCBpZiB5b3VyIG5vZGVzIGhhdmUgYSBgdGl0bGVgIGF0dHJpYnV0ZSB0aGF0IHNob3VsZCBiZSBkaXNwbGF5ZWQsIHVzZTpcclxuICAgICAgYGBgXHJcbiAgICAgICAgb3B0aW9ucyA9IHsgZGlzcGxheUZpZWxkOiAndGl0bGUnIH1cclxuICAgICAgYGBgXHJcbiAgICAqL1xyXG4gICBkaXNwbGF5RmllbGQ/OiBzdHJpbmc7XHJcbiAgIC8qKlxyXG4gICAgKiBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGF0dHJpYnV0ZSBvZiB0aGUgbm9kZSB0aGF0IGNvbnRhaW5zIHRoZSB1bmlxdWUgSUQuXHJcbiAgICAgIFRoaXMgd2lsbCBiZSB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgYHBhdGhgLCB3aGljaCBpcyBhbiBhcnJheSBvZiBJRHMgdGhhdCBwb2ludCB0byB0aGUgbm9kZS5cclxuXHJcbiAgICAgICogKipEZWZhdWx0IHZhbHVlOiBgaWRgLioqXHJcblxyXG4gICAgICBGb3IgZXhhbXBsZSwgaWYgeW91ciBub2RlcyBoYXZlIGEgYHV1aWRgIGF0dHJpYnV0ZSwgdGhhdCBjb250YWlucyB0aGUgdW5pcXVlIGtleSwgdXNlOlxyXG4gICAgICBgYGBcclxuICAgICAgICBvcHRpb25zID0geyBpZEZpZWxkOiAndXVpZCcgfVxyXG4gICAgICBgYGBcclxuICAgICovXHJcbiAgIGlkRmllbGQ/OiBzdHJpbmc7XHJcbiAgIC8qKlxyXG4gICAgKiBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGF0dHJpYnV0ZSBvZiB0aGUgbm9kZSB0aGF0IGNvbnRhaW5zIHdoZXRoZXIgdGhlIG5vZGUgc3RhcnRzIGFzIGV4cGFuZGVkLlxyXG5cclxuICAgICAgKiAqKkRlZmF1bHQgdmFsdWU6IGBpc0V4cGFuZGVkYC4qKlxyXG5cclxuICAgICAgRm9yIGV4YW1wbGUsIGlmIHlvdXIgbm9kZXMgaGF2ZSBhbiBgZXhwYW5kZWRgIGF0dHJpYnV0ZSwgdGhhdCBjb250YWlucyBhIGJvb2xlYW4gdmFsdWUsIHVzZTpcclxuICAgICAgYGBgXHJcbiAgICAgICAgb3B0aW9ucyA9IHsgaXNFeHBhbmRlZEZpZWxkOiAnZXhwYW5kZWQnIH1cclxuICAgICAgYGBgXHJcbiAgICAqL1xyXG4gICBpc0V4cGFuZGVkRmllbGQ/OiBzdHJpbmc7XHJcbiAgIC8qKlxyXG4gICAgKiBGdW5jdGlvbiBmb3IgbG9hZGluZyBhIG5vZGUncyBjaGlsZHJlbi5cclxuICAgICAgVGhlIGZ1bmN0aW9uIHJlY2VpdmVzIGEgVHJlZU5vZGUsIGFuZCByZXR1cm5zIGEgdmFsdWUgb3IgYSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIG5vZGUncyBjaGlsZHJlbi5cclxuXHJcbiAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgd2hlbmV2ZXIgYSBub2RlIGlzIGV4cGFuZGVkLCB0aGUgYGhhc0NoaWxkcmVuYCAoYG9wdGlvbnMuaGFzQ2hpbGRyZW5GaWVsZGApXHJcbiAgICAgIGZpZWxkIGlzIHRydWUsIGFuZCB0aGUgYGNoaWxkcmVuYCBmaWVsZCBpcyBlbXB0eS5cclxuICAgICAgVGhlIHJlc3VsdCB3aWxsIGJlIGxvYWRlZCBpbnRvIHRoZSBub2RlJ3MgY2hpbGRyZW4gYXR0cmlidXRlLlxyXG5cclxuICAgICAgRXhhbXBsZTpcclxuICAgICAgYGBgXHJcbiAgICAgICogb3B0aW9ucyA9IHtcclxuICAgICAgKiAgIGdldENoaWxkcmVuOiAobm9kZTpUcmVlTm9kZSkgPT4ge1xyXG4gICAgICAqICAgICByZXR1cm4gcmVxdWVzdCgnL2FwaS9jaGlsZHJlbi8nICsgbm9kZS5pZCk7XHJcbiAgICAgICogICB9XHJcbiAgICAgICogfVxyXG4gICAgICBgYGBcclxuICAgICovXHJcbiAgIGdldENoaWxkcmVuPzogKG5vZGU6IFRyZWVOb2RlKSA9PiBhbnk7XHJcbiAgIC8qKlxyXG4gICAgKiBSZXdpcmUgd2hpY2ggdHJpZ2dlciBjYXVzZXMgd2hpY2ggYWN0aW9uIHVzaW5nIHRoaXMgYXR0cmlidXRlLCBvciBjcmVhdGUgY3VzdG9tIGFjdGlvbnMgLyBldmVudCBiaW5kaW5ncy5cclxuICAgICogU2VlIHRoZSBbQWN0aW9uIE1hcHBpbmcgU2VjdGlvbl0oaHR0cHM6Ly9hbmd1bGFyMi10cmVlLnJlYWRtZS5pby9kb2NzL2FjdGlvbi1tYXBwaW5nKSBmb3IgbW9yZSBkZXRhaWxzLlxyXG4gICAgKi9cclxuICAgYWN0aW9uTWFwcGluZz86IGFueTtcclxuICAgLyoqXHJcbiAgICAqIFNwZWNpZnkgaWYgZHJhZ2dpbmcgdHJlZSBub2RlcyBpcyBhbGxvd2VkLlxyXG4gICAgKiBUaGlzIGNvdWxkIGJlIGEgYm9vbGVhbiwgb3IgYSBmdW5jdGlvbiB0aGF0IHJlY2VpdmVzIGEgVHJlZU5vZGUgYW5kIHJldHVybnMgYSBib29sZWFuXHJcblxyXG4gICAgKiAqKkRlZmF1bHQgdmFsdWU6IGZhbHNlKipcclxuXHJcbiAgICBFeGFtcGxlOlxyXG4gICAgYGBgXHJcbiAgICAqIG9wdGlvbnMgPSB7XHJcbiAgICAqICBhbGxvd0RyYWc6IHRydWVcclxuICAgICogfVxyXG4gICAgYGBgXHJcbiAgICAqL1xyXG4gICBhbGxvd0RyYWc/OiBib29sZWFuIHwgSUFsbG93RHJhZ0ZuO1xyXG4gICAvKipcclxuICAgICogU3BlY2lmeSB3aGV0aGVyIGRyb3BwaW5nIGluc2lkZSB0aGUgdHJlZSBpcyBhbGxvd2VkLiBPcHRpb25hbCB0eXBlczpcclxuICAgICogIC0gYm9vbGVhblxyXG4gICAgKiAgLSAoZWxlbWVudDphbnksIHRvOntwYXJlbnQ6VHJlZU5vZGUsIGluZGV4Om51bWJlcn0pOmJvb2xlYW5cclxuICAgICAgICAgQSBmdW5jdGlvbiB0aGF0IHJlY2VpdmVzIHRoZSBkcmFnZ2VkIGVsZW1lbnQsIGFuZCB0aGUgZHJvcCBsb2NhdGlvbiAocGFyZW50IG5vZGUgYW5kIGluZGV4IGluc2lkZSB0aGUgcGFyZW50KSxcclxuICAgICAgICAgYW5kIHJldHVybnMgdHJ1ZSBvciBmYWxzZS5cclxuXHJcbiAgICAqICoqRGVmYXVsdCBWYWx1ZTogdHJ1ZSoqXHJcblxyXG4gICAgZXhhbXBsZTpcclxuICAgIGBgYFxyXG4gICAgKiBvcHRpb25zID0ge1xyXG4gICAgKiAgYWxsb3dEcm9wOiAoZWxlbWVudCwge3BhcmVudCwgaW5kZXh9KSA9PiBwYXJlbnQuaXNMZWFmXHJcbiAgICAqIH1cclxuICAgIGBgYFxyXG4gICAqL1xyXG4gICBhbGxvd0Ryb3A/OiBib29sZWFuIHwgSUFsbG93RHJvcEZuO1xyXG4gICAgLyoqXHJcbiAgICBCb29sZWFuIGZsYWcgdG8gYWxsb3cgYWRkaW5nIGFuZCByZW1vdmluZyBpcy1kcmFnZ2luZy1vdmVyIGFuZCBpcy1kcmFnZ2luZy1vdmVyLWRpc2FibGVkIGNsYXNzZXMuXHJcblxyXG4gICAgSWYgc2V0IHRvIGZhbHNlIGl0IHdpbGwgbm90IGFkZCB0aGUgYWJvdmUgbWVudGlvbmVkIGNsYXNzZXMgYW5kIHlvdSBzaG91bGQgaGFuZGxlIHRoZSBzdHlsaW5nIHlvdXJzZWxmIHdpdGggY3NzIGFuZCBpblxyXG4gICAgdGhlIGFjdGlvbk1hcHBpbmcgLT4gbW91c2UgLT4gZHJhZ0VudGVyLCBkcmFnTGVhdmVcclxuXHJcbiAgICAqICoqRGVmYXVsdCBWYWx1ZTogdHJ1ZSoqXHJcblxyXG4gICAgZXhhbXBsZTpcclxuICAgIGBgYFxyXG4gICAgKiBvcHRpb25zID0ge1xyXG4gICAgKiAgIGFsbG93RHJvcDogdHJ1ZSxcclxuICAgICogICBhbGxvd0RyYWdvdmVyU3R5bGluZzogZmFsc2VcclxuICAgICogfVxyXG4gICAgYGBgXHJcbiAgICAqL1xyXG4gICBhbGxvd0RyYWdvdmVyU3R5bGluZz86IGJvb2xlYW47XHJcbiAgIC8qKlxyXG4gICAqIFNwZWNpZnkgcGFkZGluZyBwZXIgbm9kZSAoaW50ZWdlcikuXHJcbiAgICBFYWNoIG5vZGUgd2lsbCBoYXZlIHBhZGRpbmctbGVmdCB2YWx1ZSBvZiBsZXZlbCAqIGxldmVsUGFkZGluZywgaW5zdGVhZCBvZiB1c2luZyB0aGUgZGVmYXVsdCBwYWRkaW5nIGZvciBjaGlsZHJlbi5cclxuXHJcbiAgICBUaGlzIG9wdGlvbiBpcyBnb29kIGZvciBleGFtcGxlIGZvciBhbGxvd2luZyB3aG9sZSByb3cgc2VsZWN0aW9uLCBldGMuXHJcblxyXG4gICAgWW91IGNhbiBhbHRlcm5hdGl2ZWx5IHVzZSB0aGUgdHJlZS1ub2RlLWxldmVsLVggY2xhc3NlcyB0byBnaXZlIHBhZGRpbmcgb24gYSBwZXItbGV2ZWwgYmFzaXMuXHJcblxyXG4gICAgKiAqKkRlZmF1bHQgdmFsdWU6IDAqKlxyXG4gICAqL1xyXG4gICBsZXZlbFBhZGRpbmc/OiBudW1iZXI7XHJcbiAgIC8qKlxyXG4gICAgKiBTcGVjaWZ5IGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgY2xhc3MgcGVyIG5vZGUuIFVzZWZ1bCBmb3Igc3R5bGluZyB0aGUgbm9kZXMgaW5kaXZpZHVhbGx5LlxyXG5cclxuICAgICAgRXhhbXBsZTpcclxuICAgICAgYGBgXHJcbiAgICAgICogb3B0aW9ucyA9IHtcclxuICAgICAgKiAgIG5vZGVDbGFzczogKG5vZGU6VHJlZU5vZGUpID0+IHtcclxuICAgICAgKiAgICAgcmV0dXJuICdpY29uLScgKyBub2RlLmRhdGEuaWNvbjtcclxuICAgICAgKiAgIH1cclxuICAgICAgKiB9XHJcbiAgICAgIGBgYFxyXG4gICAgKi9cclxuICAgbm9kZUNsYXNzPzogKG5vZGU6IFRyZWVOb2RlKSA9PiBzdHJpbmc7XHJcbiAgIC8qKlxyXG4gICAgQm9vbGVhbiBmbGFnIHRvIHVzZSB0aGUgdmlydHVhbCBzY3JvbGwgb3B0aW9uLlxyXG5cclxuICAgIFRvIHVzZSB0aGlzIG9wdGlvbiwgeW91IG11c3Qgc3VwcGx5IHRoZSBoZWlnaHQgb2YgdGhlIGNvbnRhaW5lciwgYW5kIHRoZSBoZWlnaHQgb2YgZWFjaCBub2RlIGluIHRoZSB0cmVlLlxyXG5cclxuICAgIFlvdSBjYW4gYWxzbyBzcGVjaWZ5IGhlaWdodCBmb3IgdGhlIGRyb3BTbG90IHdoaWNoIGlzIGxvY2F0ZWQgYmV0d2VlbiBub2Rlcy5cclxuXHJcbiAgICAqICoqRGVmYXVsdCBWYWx1ZTogZmFsc2UqKlxyXG5cclxuICAgIGV4YW1wbGU6XHJcbiAgICBgYGBcclxuICAgICogb3B0aW9ucyA9IHtcclxuICAgICogICB1c2VWaXJ0dWFsU2Nyb2xsOiB0cnVlLFxyXG4gICAgKiAgIG5vZGVIZWlnaHQ6IChub2RlOiBUcmVlTm9kZSkgPT4gbm9kZS5teUhlaWdodCxcclxuICAgICogICBkcm9wU2xvdEhlaWdodDogM1xyXG4gICAgKiB9XHJcbiAgICBgYGBcclxuICAgICovXHJcbiAgIHVzZVZpcnR1YWxTY3JvbGw/OiBib29sZWFuO1xyXG4gICAvKipcclxuICAgICogRm9yIHVzZSB3aXRoIGB1c2VWaXJ0dWFsU2Nyb2xsYCBvcHRpb24uXHJcbiAgICAqIFNwZWNpZnkgYSBoZWlnaHQgZm9yIG5vZGVzIGluIHBpeGVscy4gQ291bGQgYmUgZWl0aGVyOlxyXG4gICAgKiAtIG51bWJlclxyXG4gICAgKiAtIChub2RlOiBUcmVlTm9kZSkgPT4gbnVtYmVyXHJcblxyXG4gICAgKiAqKkRlZmF1bHQgVmFsdWU6IDIyKipcclxuICAgICovXHJcbiAgIG5vZGVIZWlnaHQ/OiBudW1iZXIgfCBJTm9kZUhlaWdodEZuO1xyXG4gICAvKipcclxuICAgICogRm9yIHVzZSB3aXRoIGB1c2VWaXJ0dWFsU2Nyb2xsYCBvcHRpb24uXHJcbiAgICAqIFNwZWNpZnkgYSBoZWlnaHQgZm9yIGRyb3Agc2xvdHMgKGxvY2F0ZWQgYmV0d2VlbiBub2RlcykgaW4gcGl4ZWxzXHJcblxyXG4gICAgKiAqKkRlZmF1bHQgVmFsdWU6IDIqKlxyXG4gICAgKi9cclxuICAgZHJvcFNsb3RIZWlnaHQ/OiBudW1iZXI7XHJcbiAgIC8qKlxyXG4gICAgKiBCb29sZWFuIHdoZXRoZXIgb3Igbm90IHRvIGFuaW1hdGUgZXhwYW5kIC8gY29sbGFwc2Ugb2Ygbm9kZXMuXHJcblxyXG4gICAgKiAqKkRlZmF1bHQgVmFsdWU6IGZhbHNlKipcclxuICAgICovXHJcbiAgIGFuaW1hdGVFeHBhbmQ/OiBib29sZWFuO1xyXG4gICAvKipcclxuICAgICogU3BlZWQgb2YgZXhwYW5kIGFuaW1hdGlvbiAoZGVzY3JpYmVkIGluIHBpeGVscyBwZXIgMTcgbXMpLlxyXG5cclxuICAgICogKipEZWZhdWx0IFZhbHVlOiAzMCoqXHJcbiAgICAqL1xyXG4gICBhbmltYXRlU3BlZWQ/OiBudW1iZXI7XHJcbiAgIC8qKlxyXG4gICAgKiBJbmNyZWFzZSBvZiBleHBhbmQgYW5pbWF0aW9uIHNwZWVkIChkZXNjcmliZWQgaW4gbXVsdGlwbHkgcGVyIDE3IG1zKS5cclxuXHJcbiAgICAqICoqRGVmYXVsdCBWYWx1ZTogMS4yKipcclxuICAgICovXHJcbiAgIGFuaW1hdGVBY2NlbGVyYXRpb24/OiBudW1iZXI7XHJcbiAgIC8qKlxyXG4gICAgKiBXaGV0aGVyIHRvIHNjcm9sbCB0byB0aGUgbm9kZSB0byBtYWtlIGl0IHZpc2libGUgd2hlbiBpdCBpcyBhY3RpdmF0ZWQuXHJcblxyXG4gICAgKiAqKkRlZmF1bHQgVmFsdWU6IHRydWUqKlxyXG4gICAgKi9cclxuICAgc2Nyb2xsT25BY3RpdmF0ZT86IGJvb2xlYW47XHJcbiAgIC8qKlxyXG4gICAgKiBGdW5jdGlvbiB0byBjbG9uZSBhIG5vZGUuXHJcbiAgICAqIFJlY2VpdmVzIGEgVHJlZU5vZGUgb2JqZWN0LCBhbmQgcmV0dXJucyBhIG5vZGUgb2JqZWN0IChvbmx5IHRoZSBkYXRhKS5cclxuICAgICogVGhpcyBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCB3aGVuIGNvcHlpbmcgYSBub2RlIGluc2lkZSB0aGUgdHJlZSxcclxuICAgICogYnkgZWl0aGVyIGNhbGxpbmcgY29weU5vZGUsIG9yIGJ5IGRyYWdnaW5nIGFuZCBob2xkaW5nIHRoZSBjdHJsIGtleVxyXG4gICAgKlxyXG4gICAgKiBGb3IgZXhhbXBsZTpcclxuICAgICAgYGBgXHJcbiAgICAgICAgb3B0aW9uczogSVRyZWVPcHRpb25zID0ge1xyXG4gICAgICAgICAgZ2V0Tm9kZUNsb25lOiAobm9kZSkgPT4gKHtcclxuICAgICAgICAgICAgLi4ubm9kZS5kYXRhLFxyXG4gICAgICAgICAgICBpZDogdXVpZC52NCgpLFxyXG4gICAgICAgICAgICBuYW1lOiBgY29weSBvZiAke25vZGUuZGF0YS5uYW1lfWBcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfTtcclxuICAgICAgYGBgXHJcbiAgICAqXHJcbiAgICAqICoqRGVmYXVsdCBWYWx1ZTogY2xvbmUgdGhlIG5vZGUgdXNpbmcgT2JqZWN0LmFzc2lnbiwgYW5kIHJlbW92ZSAnaWQnIHByb3BlcnR5KipcclxuICAgICovXHJcbiAgICBnZXROb2RlQ2xvbmU/OiAobm9kZTogVHJlZU5vZGUpID0+IGFueTtcclxuICAgIC8qKlxyXG4gICAgICogTWFrZXMgdGhlIHRyZWUgcmlnaHQtdG8tbGVmdC5cclxuICAgICAqIFRoaXMgaW5jbHVkZSBkaXJlY3Rpb24sIGV4cGFuZGVyIHN0eWxlLCBhbmQgY2hhbmdlIGtleSBiaW5kaW5nIChyaWdodCBrZXkgY29sbGFwc2UgYW5kIGxlZnQga2V5IGV4cGFuZHMgaW5zdGVhZCBvZiB2aWNlLXZlcnNhKVxyXG4gICAgICovXHJcbiAgICBydGw/OiBib29sZWFuO1xyXG4gICAgLyoqXHJcbiAgICAgKiBTcGVjaWZpZXMgaWQgb2Ygcm9vdCBub2RlICh2aXJ0dWFsUm9vdClcclxuICAgICAqL1xyXG4gICAgcm9vdElkPzogYW55O1xyXG4gICAgLyoqXHJcbiAgICAgKiBXaGV0aGVyIHRvIGRpc3BsYXkgYSBjaGVja2JveCBuZXh0IHRvIHRoZSBub2RlIG9yIG5vdFxyXG4gICAgICovXHJcbiAgICB1c2VDaGVja2JveD86IGJvb2xlYW47XHJcbiAgICAvKipcclxuICAgICAqIFdoZXRoZXIgdG8gdXNlIG1hc3RlciBjaGVja2JveGVzIG1lY2hhbmlzbSBpZiB0aGUgdXNlQ2hlY2tib3ggaXMgc2V0IHRvIHRydWVcclxuICAgICAqL1xyXG4gICAgdXNlVHJpU3RhdGU/OiBib29sZWFuO1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgSFRNTCBlbGVtZW50IHRoYXQgaXMgdGhlIHNjcm9sbCBjb250YWluZXIgZm9yIHRoZSB0cmVlLlxyXG4gICAgICogVGhlIGRlZmF1bHQgYmVoYXZpb3VyIGlzIHRvIHdyYXAgdGhlIHRyZWUgd2l0aCBhIGNvbnRhaW5lciB0aGF0IGhhcyBvdmVyZmxvdzogaGlkZGVuLFxyXG4gICAgICogYW5kIHRoZW4gdGhlIHNjcm9sbGluZyBjb250YWluZXIgaXMgdGhlIHZpZXdwb3J0IGluc2lkZSB0aGUgdHJlZSBjb21wb25lbnRcclxuICAgICAqL1xyXG4gICAgc2Nyb2xsQ29udGFpbmVyPzogSFRNTEVsZW1lbnQ7XHJcbiB9XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElUcmVlTm9kZSB7XHJcbiAgLy8gcHJvcGVydGllc1xyXG4gIC8qKlxyXG4gICAqIFBhcmVudCBub2RlXHJcbiAgICovXHJcbiAgcGFyZW50OiBJVHJlZU5vZGU7XHJcbiAgLyoqXHJcbiAgICogVGhlIHZhbHVlIG9mIHRoZSBub2RlJ3MgZmllbGQgdGhhdCBpcyB1c2VkIGZvciBkaXNwbGF5aW5nIGl0cyBjb250ZW50LlxyXG4gICAqIEJ5IGRlZmF1bHQgJ25hbWUnLCB1bmxlc3Mgc3RhdGVkIG90aGVyd2lzZSBpbiB0aGUgb3B0aW9uc1xyXG4gICAqL1xyXG4gIGRpc3BsYXlGaWVsZDogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIFRoZSBjaGlsZHJlbiBvZiB0aGUgbm9kZS5cclxuICAgKiBCeSBkZWZhdWx0IGlzIGRldGVybWluZWQgYnkgJ25vZGUuZGF0YS5jaGlsZHJlbicsIHVubGVzcyBzdGF0ZWQgb3RoZXJ3aXNlIGluIHRoZSBvcHRpb25zXHJcbiAgICovXHJcbiAgY2hpbGRyZW46IElUcmVlTm9kZVtdO1xyXG4gIC8qKlxyXG4gICAqIFBvaW50ZXIgdG8gdGhlIG9yaWdpbmFsIGRhdGEuXHJcbiAgICovXHJcbiAgZGF0YTogYW55O1xyXG4gIC8qKlxyXG4gICAqIFBvaW50ZXIgdG8gdGhlIEVsZW1lbnRSZWYgb2YgdGhlIFRyZWVOb2RlQ29tcG9uZW50IHRoYXQncyBkaXNwbGF5aW5nIHRoaXMgbm9kZVxyXG4gICAqL1xyXG4gIGVsZW1lbnRSZWY6IGFueTtcclxuICAvKipcclxuICAgKiBMZXZlbCBpbiB0aGUgdHJlZSAoc3RhcnRzIGZyb20gMSkuXHJcbiAgICovXHJcbiAgbGV2ZWw6IG51bWJlcjtcclxuICAvKipcclxuICAgKiBQYXRoIGluIHRoZSB0cmVlOiBBcnJheSBvZiBJRHMuXHJcbiAgICovXHJcbiAgcGF0aDogc3RyaW5nW107XHJcbiAgLyoqXHJcbiAgICogaW5kZXggb2YgdGhlIG5vZGUgaW5zaWRlIGl0cyBwYXJlbnQncyBjaGlsZHJlblxyXG4gICAqL1xyXG4gIGluZGV4OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQSB1bmlxdWUga2V5IG9mIHRoaXMgbm9kZSBhbW9uZyBpdHMgc2libGluZ3MuXHJcbiAgICogQnkgZGVmYXVsdCBpdCdzIHRoZSAnaWQnIG9mIHRoZSBvcmlnaW5hbCBub2RlLCB1bmxlc3Mgc3RhdGVkIG90aGVyd2lzZSBpbiBvcHRpb25zLmlkRmllbGRcclxuICAgKi9cclxuICBpZDogSURUeXBlO1xyXG5cclxuICAvLyBoZWxwZXJzXHJcbiAgaXNFeHBhbmRlZDogYm9vbGVhbjtcclxuICBpc0FjdGl2ZTogYm9vbGVhbjtcclxuICBpc0ZvY3VzZWQ6IGJvb2xlYW47XHJcbiAgaXNDb2xsYXBzZWQ6IGJvb2xlYW47XHJcbiAgaXNMZWFmOiBib29sZWFuO1xyXG4gIGhhc0NoaWxkcmVuOiBib29sZWFuO1xyXG4gIGlzUm9vdDogYm9vbGVhbjtcclxuXHJcbiAgLy8gdHJhdmVyc2luZ1xyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSBza2lwSGlkZGVuIHdoZXRoZXIgdG8gc2tpcCBoaWRkZW4gbm9kZXNcclxuICAgKiBAcmV0dXJucyBuZXh0IHNpYmxpbmcgKG9yIG51bGwpXHJcbiAgICovXHJcbiAgZmluZE5leHRTaWJsaW5nKHNraXBIaWRkZW4pOiBJVHJlZU5vZGU7XHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIHNraXBIaWRkZW4gd2hldGhlciB0byBza2lwIGhpZGRlbiBub2Rlc1xyXG4gICAqIEByZXR1cm5zIHByZXZpb3VzIHNpYmxpbmcgKG9yIG51bGwpXHJcbiAgICovXHJcbiAgZmluZFByZXZpb3VzU2libGluZyhza2lwSGlkZGVuKTogSVRyZWVOb2RlO1xyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSBza2lwSGlkZGVuIHdoZXRoZXIgdG8gc2tpcCBoaWRkZW4gbm9kZXNcclxuICAgKiBAcmV0dXJucyBmaXJzdCBjaGlsZCAob3IgbnVsbClcclxuICAgKi9cclxuICBnZXRGaXJzdENoaWxkKHNraXBIaWRkZW4pOiBJVHJlZU5vZGU7XHJcbiAgLyoqXHJcbiAgICogQHBhcmFtIHNraXBIaWRkZW4gd2hldGhlciB0byBza2lwIGhpZGRlbiBub2Rlc1xyXG4gICAqIEByZXR1cm5zIGxhc3QgY2hpbGQgKG9yIG51bGwpXHJcbiAgICovXHJcbiAgZ2V0TGFzdENoaWxkKHNraXBIaWRkZW4pOiBJVHJlZU5vZGU7XHJcbiAgLyoqXHJcbiAgICogRmluZHMgdGhlIHZpc3VhbGx5IG5leHQgbm9kZSBpbiB0aGUgdHJlZS5cclxuICAgKiBAcGFyYW0gZ29JbnNpZGUgd2hldGhlciB0byBsb29rIGZvciBjaGlsZHJlbiBvciBqdXN0IHNpYmxpbmdzXHJcbiAgICogQHJldHVybnMgbmV4dCBub2RlLlxyXG4gICAqL1xyXG4gIGZpbmROZXh0Tm9kZShnb0luc2lkZTogYm9vbGVhbik6IElUcmVlTm9kZTtcclxuICAvKipcclxuICAgKiBGaW5kcyB0aGUgdmlzdWFsbHkgcHJldmlvdXMgbm9kZSBpbiB0aGUgdHJlZS5cclxuICAgKiBAcGFyYW0gc2tpcEhpZGRlbiB3aGV0aGVyIHRvIHNraXAgaGlkZGVuIG5vZGVzXHJcbiAgICogQHJldHVybnMgcHJldmlvdXMgbm9kZS5cclxuICAgKi9cclxuICBmaW5kUHJldmlvdXNOb2RlKHNraXBIaWRkZW4pOiBJVHJlZU5vZGU7XHJcblxyXG4gIC8qKlxyXG4gICAqIEByZXR1cm5zICAgICAgdHJ1ZSBpZiB0aGlzIG5vZGUgaXMgYSBkZXNjZW5kYW50IG9mIHRoZSBwYXJhbWV0ZXIgbm9kZVxyXG4gICAqL1xyXG4gIGlzRGVzY2VuZGFudE9mKG5vZGU6IElUcmVlTm9kZSk6IGJvb2xlYW47XHJcblxyXG4gIC8qKlxyXG4gICAqIEByZXR1cm5zICAgICAgaW4gY2FzZSBsZXZlbFBhZGRpbmcgb3B0aW9uIGlzIHN1cHBsaWVkLCByZXR1cm5zIHRoZSBjdXJyZW50IG5vZGUncyBwYWRkaW5nXHJcbiAgICovXHJcbiAgZ2V0Tm9kZVBhZGRpbmcoKTogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBAcmV0dXJucyAgICAgIGluIGNhc2Ugbm9kZUNsYXNzIG9wdGlvbiBpcyBzdXBwbGllZCwgcmV0dXJucyB0aGUgY3VycmVudCBub2RlJ3MgY2xhc3NcclxuICAgKi9cclxuICBnZXRDbGFzcygpOiBzdHJpbmc7XHJcblxyXG4gIC8vIGFjdGlvbnNcclxuICAvKipcclxuICAgKiBFeHBhbmRzIC8gQ29sbGFwc2VzIHRoZSBub2RlXHJcbiAgICovXHJcbiAgdG9nZ2xlRXhwYW5kZWQoKTtcclxuICAvKipcclxuICAgKiBFeHBhbmRzIHRoZSBub2RlXHJcbiAgICovXHJcbiAgZXhwYW5kKCk7XHJcbiAgLyoqXHJcbiAgICogQ29sbGFwc2VzIHRoZSBub2RlXHJcbiAgICovXHJcbiAgY29sbGFwc2UoKTtcclxuICAvKipcclxuICAgKiBFeHBhbmRzIGFsbCBhbmNlc3RvcnMgb2YgdGhlIG5vZGVcclxuICAgKi9cclxuICBlbnN1cmVWaXNpYmxlKCk7XHJcbiAgLyoqXHJcbiAgICogQWN0aXZhdGVzIC8gRGVhY3RpdmF0ZXMgdGhlIG5vZGUgKHNlbGVjdHMgLyBkZXNlbGVjdHMpXHJcbiAgICovXHJcbiAgdG9nZ2xlQWN0aXZhdGVkKG11bHRpKTtcclxuICAvKipcclxuICAgKiBGb2N1cyBvbiB0aGUgbm9kZVxyXG4gICAqL1xyXG4gIGZvY3VzKCk7XHJcbiAgLyoqXHJcbiAgICogQmx1ciAodW5mb2N1cykgdGhlIG5vZGVcclxuICAgKi9cclxuICBibHVyKCk7XHJcbiAgLyoqXHJcbiAgICogSGlkZXMgdGhlIG5vZGVcclxuICAgKi9cclxuICBoaWRlKCk7XHJcbiAgLyoqXHJcbiAgICogTWFrZXMgdGhlIG5vZGUgdmlzaWJsZVxyXG4gICAqL1xyXG4gIHNob3coKTtcclxuICAvKipcclxuICAgKiBAcGFyYW0gdmFsdWUgIGlmIHRydWUgbWFrZXMgdGhlIG5vZGUgaGlkZGVuLCBvdGhlcndpc2UgdmlzaWJsZVxyXG4gICAqL1xyXG4gIHNldElzSGlkZGVuKHZhbHVlOiBib29sZWFuKTtcclxuICAvKipcclxuICAgKiBTY3JvbGwgdGhlIHNjcmVlbiB0byBtYWtlIHRoZSBub2RlIHZpc2libGVcclxuICAgKi9cclxuICBzY3JvbGxJbnRvVmlldygpO1xyXG4gIC8qKlxyXG4gICAqIEZpcmUgYW4gZXZlbnQgdG8gdGhlIHJlbmRlcmVyIG9mIHRoZSB0cmVlIChpZiBpdCB3YXMgcmVnaXN0ZXJlZClcclxuICAgKi9cclxuICBmaXJlRXZlbnQoZXZlbnQ6IGFueSk7XHJcbiAgLyoqXHJcbiAgICogSW52b2tlcyBhIG1ldGhvZCBmb3IgZXZlcnkgbm9kZSB1bmRlciB0aGlzIG9uZSAtIGRlcHRoIGZpcnN0XHJcbiAgICogQHBhcmFtIGZuICBhIGZ1bmN0aW9uIHRoYXQgcmVjZWl2ZXMgdGhlIG5vZGVcclxuICAgKi9cclxuICBkb0ZvckFsbChmbjogKG5vZGU6IElUcmVlTm9kZSkgPT4gYW55KTtcclxuICAvKipcclxuICAgKiBleHBhbmQgYWxsIG5vZGVzIHVuZGVyIHRoaXMgb25lXHJcbiAgICovXHJcbiAgZXhwYW5kQWxsKCk7XHJcbiAgLyoqXHJcbiAgICogY29sbGFwc2UgYWxsIG5vZGVzIHVuZGVyIHRoaXMgb25lXHJcbiAgICovXHJcbiAgY29sbGFwc2VBbGwoKTtcclxuICAvKipcclxuICAgKiBzZXRzIHRoZSBub2RlIHRvIGFjdGl2ZSAvIGluYWN0aXZlIGFjY29yZGluZyB0byB0aGUgdmFsdWUuXHJcbiAgICogSWYgbXVsdGkgaXMgdHJ1ZSAoZGVmYXVsdCBmYWxzZSkgLSBkb2VzIGEgbXVsdGlzZWxlY3QuXHJcbiAgICovXHJcbiAgc2V0SXNBY3RpdmUodmFsdWU6IGJvb2xlYW4sIG11bHRpPzogYm9vbGVhbik7XHJcbiAgLyoqXHJcbiAgICogc2V0cyB0aGUgbm9kZSB0byBiZSBhY3RpdmUgYW5kIG1ha2VzIHN1cmUgaXQncyB2aXNpYmxlIGJ5IGV4cGFuZGluZyBhbGwgbm9kZXMgYWJvdmUgaXQgYW5kIHNjcm9sbGluZyBpdCBpbnRvIHZpZXcuXHJcbiAgICogVmVyeSBzaW1pbGFyIHRvIGNhbGxpbmcgYGFjdGl2YXRlYCwgYGVuc3VyZVZpc2libGVgIGFuZCBgc2Nyb2xsSW50b1ZpZXdgIG1ldGhvZHMuXHJcbiAgICogSWYgbXVsdGkgaXMgdHJ1ZSAoZGVmYXVsdCBmYWxzZSkgLSBkb2VzIGEgbXVsdGlzZWxlY3QuXHJcbiAgICovXHJcbiAgc2V0QWN0aXZlQW5kVmlzaWJsZShtdWx0aTogYm9vbGVhbik7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVRyZWVNb2RlbCB7XHJcbiAgLy8gcHJvcGVydGllc1xyXG4gIC8qKlxyXG4gICAqIEFsbCByb290IG5vZGVzXHJcbiAgICovXHJcbiAgcm9vdHM6IElUcmVlTm9kZVtdO1xyXG4gIC8qKlxyXG4gICAqIEN1cnJlbnQgZm9jdXNlZCBub2RlXHJcbiAgICovXHJcbiAgZm9jdXNlZE5vZGU6IElUcmVlTm9kZTtcclxuICAvKipcclxuICAgKiBPcHRpb25zIHRoYXQgd2VyZSBwYXNzZWQgdG8gdGhlIHRyZWUgY29tcG9uZW50XHJcbiAgICovXHJcbiAgb3B0aW9uczogSVRyZWVPcHRpb25zO1xyXG5cclxuICAvKipcclxuICAgKiBJcyB0aGUgdHJlZSBjdXJyZW50bHkgZm9jdXNlZFxyXG4gICAqL1xyXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAcmV0dXJucyBDdXJyZW50IGFjdGl2ZSBub2Rlc1xyXG4gICAqL1xyXG4gIGFjdGl2ZU5vZGVzOiBJVHJlZU5vZGVbXTtcclxuICAvKipcclxuICAgKiBAcmV0dXJucyBDdXJyZW50IGV4cGFuZGVkIG5vZGVzXHJcbiAgICovXHJcbiAgZXhwYW5kZWROb2RlczogSVRyZWVOb2RlW107XHJcblxyXG4gIC8vIGhlbHBlcnNcclxuICAvKipcclxuICAgKiBAcmV0dXJucyBDdXJyZW50IGFjdGl2ZSBub2RlLiBJZiBtdWx0aXBsZSBub2RlcyBhcmUgYWN0aXZlIC0gcmV0dXJucyB0aGUgZmlyc3Qgb25lLlxyXG4gICAqL1xyXG4gIGdldEFjdGl2ZU5vZGUoKTogSVRyZWVOb2RlO1xyXG4gIC8qKlxyXG4gICAqIEByZXR1cm5zIEN1cnJlbnQgZm9jdXNlZCBub2RlIChlaXRoZXIgaG92ZXJlZCBvciB0cmF2ZXJzZWQgd2l0aCBrZXlzKVxyXG4gICAqL1xyXG4gIGdldEZvY3VzZWROb2RlKCk6IElUcmVlTm9kZTtcclxuICAvKipcclxuICAgKiBTZXQgZm9jdXMgb24gYSBub2RlXHJcbiAgICogQHBhcmFtIHZhbHVlICB0cnVlIG9yIGZhbHNlIC0gd2hldGhlciB0byBzZXQgZm9jdXMgb3IgYmx1ci5cclxuICAgKi9cclxuICBzZXRGb2N1c2VkTm9kZShub2RlOiBJVHJlZU5vZGUpO1xyXG4gIC8qKlxyXG4gICAqIEBwYXJhbSBza2lwSGlkZGVuICB0cnVlIG9yIGZhbHNlIC0gd2hldGhlciB0byBza2lwIGhpZGRlbiBub2Rlc1xyXG4gICAqIEByZXR1cm5zICAgICAgZmlyc3Qgcm9vdCBvZiB0aGUgdHJlZVxyXG4gICAqL1xyXG4gIGdldEZpcnN0Um9vdChza2lwSGlkZGVuPzogYm9vbGVhbik6IElUcmVlTm9kZTtcclxuICAvKipcclxuICAgKiBAcGFyYW0gc2tpcEhpZGRlbiAgdHJ1ZSBvciBmYWxzZSAtIHdoZXRoZXIgdG8gc2tpcCBoaWRkZW4gbm9kZXNcclxuICAgKiBAcmV0dXJucyAgICAgIGxhc3Qgcm9vdCBvZiB0aGUgdHJlZVxyXG4gICAqL1xyXG4gIGdldExhc3RSb290KHNraXBIaWRkZW4/OiBib29sZWFuKTogSVRyZWVOb2RlO1xyXG4gIC8qKlxyXG4gICAqIEByZXR1cm5zICAgICAgdHJ1ZSBpZiB0aGUgdHJlZSBpcyBlbXB0eVxyXG4gICAqL1xyXG4gIGlzRW1wdHlUcmVlKCk6IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHJldHVybnMgQWxsIHJvb3Qgbm9kZXMgdGhhdCBwYXNzIHRoZSBjdXJyZW50IGZpbHRlclxyXG4gICAqL1xyXG4gIGdldFZpc2libGVSb290cygpOiBJVHJlZU5vZGVbXTtcclxuICAvKipcclxuICAgKiBAcGFyYW0gICAgIHBhdGggIGFycmF5IG9mIG5vZGUgSURzIHRvIGJlIHRyYXZlcnNlZCByZXNwZWN0aXZlbHlcclxuICAgKiBAcGFyYW0gICAgIHN0YXJ0Tm9kZSAgb3B0aW9uYWwuIFdoaWNoIG5vZGUgdG8gc3RhcnQgdHJhdmVyc2luZyBmcm9tXHJcbiAgICogQHJldHVybnMgICBUaGUgbm9kZSwgaWYgZm91bmQgLSBudWxsIG90aGVyd2lzZVxyXG4gICAqL1xyXG4gIGdldE5vZGVCeVBhdGgocGF0aDogYW55W10sIHN0YXJ0Tm9kZT86IElUcmVlTm9kZSk6IElUcmVlTm9kZTtcclxuICAvKipcclxuICAgKiBAcGFyYW0gICAgIGlkICBub2RlIElEIHRvIGZpbmRcclxuICAgKiBAcmV0dXJucyAgIFRoZSBub2RlLCBpZiBmb3VuZCAtIG51bGwgb3RoZXJ3aXNlXHJcbiAgICovXHJcbiAgZ2V0Tm9kZUJ5SWQoaWQ6IElEVHlwZSk6IElUcmVlTm9kZTtcclxuICAvKipcclxuICAgKiBAcGFyYW0gICAgIHByZWRpY2F0ZSAtIGVpdGhlciBhbiBvYmplY3Qgb3IgYSBmdW5jdGlvbiwgdXNlZCBhcyBhIHRlc3QgY29uZGl0aW9uIG9uIGFsbCBub2Rlcy5cclxuICAgKiAgICAgICAgICAgIENvdWxkIGJlIGV2ZXJ5IHByZWRpY2F0ZSB0aGF0J3Mgc3VwcG9ydGVkIGJ5IGphdmFTY3JpcHRzIEFycmF5LnByb3RvdHlwZS5maW5kKCkgbWV0aG9kXHJcbiAgICogQHBhcmFtICAgICBzdGFydE5vZGUgIG9wdGlvbmFsLiBXaGljaCBub2RlIHRvIHN0YXJ0IHRyYXZlcnNpbmcgZnJvbVxyXG4gICAqIEByZXR1cm5zICAgRmlyc3Qgbm9kZSB0aGF0IG1hdGNoZXMgdGhlIHByZWRpY2F0ZSwgaWYgZm91bmQgLSBudWxsIG90aGVyd2lzZVxyXG4gICAqL1xyXG4gIGdldE5vZGVCeShwcmVkaWNhdGU6IGFueSwgc3RhcnROb2RlPzogSVRyZWVOb2RlKTogSVRyZWVOb2RlO1xyXG4gIC8qKlxyXG4gICAqIGdldCB0cmVlIHN0YXRlXHJcbiAgICovXHJcbiAgZ2V0U3RhdGUoKTogSVRyZWVTdGF0ZTtcclxuXHJcbiAgLy8gYWN0aW9uc1xyXG4gIC8qKlxyXG4gICAqIEZvY3VzZXMgb3IgYmx1cnMgdGhlIHRyZWVcclxuICAgKiBAcGFyYW0gdmFsdWUgIHRydWUgb3IgZmFsc2UgLSB3aGV0aGVyIHRvIHNldCBmb2N1cyBvciBibHVyLlxyXG4gICAqL1xyXG4gIHNldEZvY3VzKHZhbHVlOiBib29sZWFuKTtcclxuICAvKipcclxuICAgKiBGb2N1c2VzIG9uIHRoZSBuZXh0IG5vZGUgaW4gdGhlIHRyZWUgKHNhbWUgYXMgZG93biBhcnJvdylcclxuICAgKi9cclxuICBmb2N1c05leHROb2RlKCk7XHJcbiAgLyoqXHJcbiAgICogRm9jdXNlcyBvbiB0aGUgcHJldmlvdXMgbm9kZSBpbiB0aGUgdHJlZSAoc2FtZSBhcyB1cCBhcnJvdylcclxuICAgKi9cclxuICBmb2N1c1ByZXZpb3VzTm9kZSgpO1xyXG4gIC8qKlxyXG4gICAqIEZvY3VzZXMgb24gdGhlIGlubmVyIGNoaWxkIG9mIHRoZSBjdXJyZW50IGZvY3VzZWQgbm9kZSAoc2FtZSBhcyByaWdodCBhcnJvdyBvbiBhbiBleHBhbmRlZCBub2RlKVxyXG4gICAqL1xyXG4gIGZvY3VzRHJpbGxEb3duKCk7XHJcbiAgLyoqXHJcbiAgICogRm9jdXNlcyBvbiB0aGUgcGFyZW50IG9mIHRoZSBjdXJyZW50IGZvY3VzZWQgbm9kZSAoc2FtZSBhcyBsZWZ0IGFycm93IG9uIGEgY29sbGFwc2VkIG5vZGUpXHJcbiAgICovXHJcbiAgZm9jdXNEcmlsbFVwKCk7XHJcbiAgLyoqXHJcbiAgICogTWFya3MgaXNIaWRkZW4gZmllbGQgaW4gYWxsIG5vZGVzIHJlY3Vyc2l2ZWx5IGFjY29yZGluZyB0byB0aGUgZmlsdGVyIHBhcmFtLlxyXG4gICAqIElmIGEgbm9kZSBpcyBtYXJrZWQgdmlzaWJsZSwgYWxsIG9mIGl0cyBhbmNlc3RvcnMgd2lsbCBiZSBtYXJrZWQgdmlzaWJsZSBhcyB3ZWxsLlxyXG4gICAqIEBwYXJhbSBmaWx0ZXIgIGVpdGhlciBhIHN0cmluZyBvciBhIGZ1bmN0aW9uLlxyXG4gICAqICAgSW4gY2FzZSBpdCdzIGEgc3RyaW5nLCBpdCB3aWxsIGJlIHNlYXJjaGVkIGNhc2UgaW5zZW5zaXRpdmVseSBpbiB0aGUgbm9kZSdzIGRpc3BsYXkgYXR0cmlidXRlXHJcbiAgICogICBJbiBjYXNlIGl0J3MgYSBmdW5jdGlvbiwgaXQgd2lsbCBiZSBwYXNzZWQgdGhlIG5vZGUsIGFuZCBzaG91bGQgcmV0dXJuIHRydWUgaWYgdGhlIG5vZGUgc2hvdWxkIGJlIHZpc2libGUsIGZhbHNlIG90aGVyd2lzZVxyXG4gICAqIEBwYXJhbSBhdXRvU2hvdyAgaWYgdHJ1ZSwgbWFrZSBzdXJlIGFsbCBub2RlcyB0aGF0IHBhc3NlZCB0aGUgZmlsdGVyIGFyZSB2aXNpYmxlXHJcbiAgICovXHJcbiAgZmlsdGVyTm9kZXMoZmlsdGVyLCBhdXRvU2hvdz86IGJvb2xlYW4pO1xyXG4gIC8qKlxyXG4gICAqIE1hcmtzIGFsbCBub2RlcyBpc0hpZGRlbiA9IGZhbHNlXHJcbiAgICovXHJcbiAgY2xlYXJGaWx0ZXIoKTtcclxuICAvKipcclxuICAgKiBtb3ZlcyBhIG5vZGUgZnJvbSBvbmUgbG9jYXRpb24gaW4gdGhlIHRyZWUgdG8gYW5vdGhlclxyXG4gICAqIEBwYXJhbSBub2RlIGRlc2NyaWJlcyB3aGljaCBub2RlIG5lZWRzIHRvIGJlIG1vdmVkXHJcbiAgICogQHBhcmFtIHRvIGRlc2NyaWJlcyB3aGVyZSB0byBtb3ZlIHRoZSBub2RlIHRvLlxyXG4gICAqIEBwYXJhbSBmcm9tIGRlc2NyaWJlcyB3aGVyZSB0byBtb3ZlIHRoZSBub2RlIGZyb20uXHJcbiAgICogQ29udGFpbnMgYSAncGFyZW50JyBub2RlLCBhbiAnaW5kZXgnLCBhbmQgYSAnZHJvcE9uTm9kZScgLSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIGRyb3BwaW5nIGJldHdlZW4gbm9kZXMgb3Igb24gdGhlIG5vZGVcclxuICAgKi9cclxuICBtb3ZlTm9kZShub2RlOiBJVHJlZU5vZGUsIHRvOiB7cGFyZW50OiBJVHJlZU5vZGUsIGluZGV4OiBudW1iZXIsIGRyb3BPbk5vZGU6IGJvb2xlYW59LCBmcm9tOiB7cGFyZW50OiBJVHJlZU5vZGUsIGluZGV4OiBudW1iZXJ9KTtcclxuICAvKipcclxuICAgKiBJbnZva2VzIGEgbWV0aG9kIGZvciBldmVyeSBub2RlIG9mIHRoZSB0cmVlIC0gZGVwdGggZmlyc3RcclxuICAgKiBAcGFyYW0gZm4gIGEgZnVuY3Rpb24gdGhhdCByZWNlaXZlcyB0aGUgbm9kZVxyXG4gICAqL1xyXG4gIGRvRm9yQWxsKGZuOiAobm9kZTogSVRyZWVOb2RlKSA9PiBhbnkpO1xyXG4gIC8qKlxyXG4gICAqIGV4cGFuZCBhbGwgbm9kZXNcclxuICAgKi9cclxuICBleHBhbmRBbGwoKTtcclxuICAvKipcclxuICAgKiBjb2xsYXBzZSBhbGwgbm9kZXNcclxuICAgKi9cclxuICBjb2xsYXBzZUFsbCgpO1xyXG4gIC8qKlxyXG4gICAqIHNldCB0cmVlIHN0YXRlXHJcbiAgICovXHJcbiAgc2V0U3RhdGUoc3RhdGU6IElUcmVlU3RhdGUpO1xyXG5cclxuICBzdWJzY3JpYmVUb1N0YXRlKGZuOiAoc3RhdGU6IElUcmVlU3RhdGUpID0+IGFueSk7XHJcbn1cclxuLyoqXHJcbiAqIFRoaXMgaXMgdGhlIGludGVyZmFjZSBvZiB0aGUgVHJlZU5vZGVEcmFnIHNlcnZpY2VcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVRyZWVOb2RlRHJhZyB7XHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgY3VycmVudCBkcmFnZ2VkIG5vZGUuIFVzZWZ1bCBmb3Igb3ZlcnJpZGluZyB0aGUgZHJvcCBhY3Rpb24uXHJcbiAgICogQHBhcmFtIG5vZGUgIFRoZSBwYXJlbnQgbm9kZSBvZiB0aGUgY3VycmVudCBkcmFnZ2VkIG5vZGVcclxuICAgKiBAcGFyYW0gaW5kZXggIFRoZSBpbmRleCBpbnNpZGUgcGFyZW50J3MgY2hpbGRyZW4sIG9mIHRoZSBjdXJyZW50IGRyYWdnZWQgbm9kZVxyXG4gICAqL1xyXG4gIGdldERyYWdOb2RlKCk6IHsgbm9kZTogVHJlZU5vZGUsIGluZGV4OiBudW1iZXIgfTtcclxufVxyXG4iXX0=
|