@huntsman-cancer-institute/angular-tree-component 13.1.1 → 13.1.3
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/dist/angular-tree-component/LICENSE +21 -0
- package/dist/angular-tree-component/README.md +66 -0
- package/dist/angular-tree-component/esm2020/lib/components/tree.component.mjs +196 -0
- package/{fesm2015 → dist/angular-tree-component/fesm2015}/huntsman-cancer-institute-angular-tree-component.mjs +13 -14
- package/dist/angular-tree-component/fesm2015/huntsman-cancer-institute-angular-tree-component.mjs.map +1 -0
- package/{fesm2020 → dist/angular-tree-component/fesm2020}/huntsman-cancer-institute-angular-tree-component.mjs +13 -14
- package/dist/angular-tree-component/fesm2020/huntsman-cancer-institute-angular-tree-component.mjs.map +1 -0
- package/{lib → dist/angular-tree-component/lib}/components/tree.component.d.ts +0 -1
- package/dist/angular-tree-component/package.json +56 -0
- package/package.json +136 -56
- package/esm2020/lib/components/tree.component.mjs +0 -197
- package/fesm2015/huntsman-cancer-institute-angular-tree-component.mjs.map +0 -1
- package/fesm2020/huntsman-cancer-institute-angular-tree-component.mjs.map +0 -1
- /package/{css → dist/angular-tree-component/css}/angular-tree-component.css +0 -0
- /package/{esm2020 → dist/angular-tree-component/esm2020}/huntsman-cancer-institute-angular-tree-component.mjs +0 -0
- /package/{esm2020 → dist/angular-tree-component/esm2020}/lib/angular-tree-component.module.mjs +0 -0
- /package/{esm2020 → dist/angular-tree-component/esm2020}/lib/components/loading.component.mjs +0 -0
- /package/{esm2020 → dist/angular-tree-component/esm2020}/lib/components/tree-node-checkbox.component.mjs +0 -0
- /package/{esm2020 → dist/angular-tree-component/esm2020}/lib/components/tree-node-collection.component.mjs +0 -0
- /package/{esm2020 → dist/angular-tree-component/esm2020}/lib/components/tree-node-content.component.mjs +0 -0
- /package/{esm2020 → dist/angular-tree-component/esm2020}/lib/components/tree-node-drop-slot.component.mjs +0 -0
- /package/{esm2020 → dist/angular-tree-component/esm2020}/lib/components/tree-node-expander.component.mjs +0 -0
- /package/{esm2020 → dist/angular-tree-component/esm2020}/lib/components/tree-node-wrapper.component.mjs +0 -0
- /package/{esm2020 → dist/angular-tree-component/esm2020}/lib/components/tree-viewport.component.mjs +0 -0
- /package/{esm2020 → dist/angular-tree-component/esm2020}/lib/constants/events.mjs +0 -0
- /package/{esm2020 → dist/angular-tree-component/esm2020}/lib/constants/keys.mjs +0 -0
- /package/{esm2020 → dist/angular-tree-component/esm2020}/lib/defs/api.mjs +0 -0
- /package/{esm2020 → dist/angular-tree-component/esm2020}/lib/directives/tree-animate-open.directive.mjs +0 -0
- /package/{esm2020 → dist/angular-tree-component/esm2020}/lib/directives/tree-drag.directive.mjs +0 -0
- /package/{esm2020 → dist/angular-tree-component/esm2020}/lib/directives/tree-drop.directive.mjs +0 -0
- /package/{esm2020 → dist/angular-tree-component/esm2020}/lib/mobx-angular/tree-mobx-autorun.directive.mjs +0 -0
- /package/{esm2020 → dist/angular-tree-component/esm2020}/lib/models/tree-dragged-element.model.mjs +0 -0
- /package/{esm2020 → dist/angular-tree-component/esm2020}/lib/models/tree-node.model.mjs +0 -0
- /package/{esm2020 → dist/angular-tree-component/esm2020}/lib/models/tree-options.model.mjs +0 -0
- /package/{esm2020 → dist/angular-tree-component/esm2020}/lib/models/tree-virtual-scroll.model.mjs +0 -0
- /package/{esm2020 → dist/angular-tree-component/esm2020}/lib/models/tree.model.mjs +0 -0
- /package/{esm2020 → dist/angular-tree-component/esm2020}/public-api.mjs +0 -0
- /package/{huntsman-cancer-institute-angular-tree-component.d.ts → dist/angular-tree-component/huntsman-cancer-institute-angular-tree-component.d.ts} +0 -0
- /package/{lib → dist/angular-tree-component/lib}/angular-tree-component.module.d.ts +0 -0
- /package/{lib → dist/angular-tree-component/lib}/components/loading.component.d.ts +0 -0
- /package/{lib → dist/angular-tree-component/lib}/components/tree-node-checkbox.component.d.ts +0 -0
- /package/{lib → dist/angular-tree-component/lib}/components/tree-node-collection.component.d.ts +0 -0
- /package/{lib → dist/angular-tree-component/lib}/components/tree-node-content.component.d.ts +0 -0
- /package/{lib → dist/angular-tree-component/lib}/components/tree-node-drop-slot.component.d.ts +0 -0
- /package/{lib → dist/angular-tree-component/lib}/components/tree-node-expander.component.d.ts +0 -0
- /package/{lib → dist/angular-tree-component/lib}/components/tree-node-wrapper.component.d.ts +0 -0
- /package/{lib → dist/angular-tree-component/lib}/components/tree-viewport.component.d.ts +0 -0
- /package/{lib → dist/angular-tree-component/lib}/constants/events.d.ts +0 -0
- /package/{lib → dist/angular-tree-component/lib}/constants/keys.d.ts +0 -0
- /package/{lib → dist/angular-tree-component/lib}/defs/api.d.ts +0 -0
- /package/{lib → dist/angular-tree-component/lib}/directives/tree-animate-open.directive.d.ts +0 -0
- /package/{lib → dist/angular-tree-component/lib}/directives/tree-drag.directive.d.ts +0 -0
- /package/{lib → dist/angular-tree-component/lib}/directives/tree-drop.directive.d.ts +0 -0
- /package/{lib → dist/angular-tree-component/lib}/mobx-angular/tree-mobx-autorun.directive.d.ts +0 -0
- /package/{lib → dist/angular-tree-component/lib}/models/tree-dragged-element.model.d.ts +0 -0
- /package/{lib → dist/angular-tree-component/lib}/models/tree-node.model.d.ts +0 -0
- /package/{lib → dist/angular-tree-component/lib}/models/tree-options.model.d.ts +0 -0
- /package/{lib → dist/angular-tree-component/lib}/models/tree-virtual-scroll.model.d.ts +0 -0
- /package/{lib → dist/angular-tree-component/lib}/models/tree.model.d.ts +0 -0
- /package/{public-api.d.ts → dist/angular-tree-component/public-api.d.ts} +0 -0
- /package/{src → dist/angular-tree-component/src}/lib/angular-tree-component.css +0 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2020 Circlon Group
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
[](https://badge.fury.io/js/%40circlon%2Fangular-tree-component)
|
|
2
|
+
[](https://dev.azure.com/pdsgmbh/AngularTree/_build/latest?definitionId=59&branchName=master)
|
|
3
|
+
<a href="https://angular-tree-component.herokuapp.com/"><img src="https://angular-tree-component.herokuapp.com/badge.svg" alt="slack" ></a>
|
|
4
|
+
|
|
5
|
+
# angular tree component
|
|
6
|
+
|
|
7
|
+
## Getting started
|
|
8
|
+
|
|
9
|
+
Install `angular-tree-component`:
|
|
10
|
+
|
|
11
|
+
```npm install @huntsman-cancer-institute/angular-tree-component```
|
|
12
|
+
|
|
13
|
+
Import `TreeModule`:
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
import { TreeModule } from '@huntsman-cancer-institute/angular-tree-component';
|
|
17
|
+
|
|
18
|
+
@NgModule({
|
|
19
|
+
declarations: [AppComponent],
|
|
20
|
+
imports: [TreeModule],
|
|
21
|
+
bootstrap: [AppComponent]
|
|
22
|
+
})
|
|
23
|
+
export class AppModule {}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Add css to `styles.scss` or include in `angular.json`:
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
@import '~@huntsman-cancer-institute/angular-tree-component/css/angular-tree-component.css';
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Docs, Demos & More
|
|
33
|
+
We are redoing the documentation. You can find the new documentation here:
|
|
34
|
+
[https://circlongroup.github.io/angular-tree-component/](https://circlongroup.github.io/angular-tree-component/)
|
|
35
|
+
|
|
36
|
+
The API Reference is still in our old documentation for now:
|
|
37
|
+
|
|
38
|
+
[https://angular2-tree.readme.io/docs/](https://angular2-tree.readme.io/docs/)
|
|
39
|
+
|
|
40
|
+
## Support
|
|
41
|
+
[Stackoverflow](https://stackoverflow.com/questions/tagged/angular-tree-component)
|
|
42
|
+
|
|
43
|
+
[Slack Community](https://angular-tree-component.herokuapp.com/)
|
|
44
|
+
|
|
45
|
+
## Angular supported version
|
|
46
|
+
|
|
47
|
+
angular-tree-component supports angular 2 and above, and AoT compilation.
|
|
48
|
+
|
|
49
|
+
## Contributing
|
|
50
|
+
|
|
51
|
+
Run `npm run build` (`npm run build:win` for windows users) to build. Run `npm start:example-app` and open [localhost:4200](http://localhost:4200) to test your code before submitting a pull request.
|
|
52
|
+
|
|
53
|
+
To run tests locally - make sure port 4200 is available and run:
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
$ npm run build # build:win for windows; wait until build finished
|
|
57
|
+
$ npm run start:example-app # Wait until webpack finishes and http://localhost:4200 is available
|
|
58
|
+
$ npm run test:dev
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Please check the issues / project before starting to work on a feature / bug to make sure it's not already in progress.
|
|
62
|
+
|
|
63
|
+
## Contributors
|
|
64
|
+
|
|
65
|
+
This project exists thanks to all the people who contribute.
|
|
66
|
+
<a href="https://github.com/CirclonGroup/angular-tree-component/graphs/contributors"><img src="https://opencollective.com/angular-tree-component/contributors.svg?width=890&button=false" /></a>
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { Component, ContentChild, EventEmitter, HostListener, HostBinding, Input, Output, TemplateRef, ViewChild } from '@angular/core';
|
|
2
|
+
import { TreeModel } from '../models/tree.model';
|
|
3
|
+
import { TreeDraggedElement } from '../models/tree-dragged-element.model';
|
|
4
|
+
import { TreeViewportComponent } from './tree-viewport.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../models/tree.model";
|
|
7
|
+
import * as i2 from "../models/tree-dragged-element.model";
|
|
8
|
+
import * as i3 from "./tree-viewport.component";
|
|
9
|
+
import * as i4 from "./tree-node-collection.component";
|
|
10
|
+
import * as i5 from "./tree-node-drop-slot.component";
|
|
11
|
+
import * as i6 from "@angular/common";
|
|
12
|
+
export class TreeComponent {
|
|
13
|
+
constructor(treeModel, treeDraggedElement) {
|
|
14
|
+
this.treeModel = treeModel;
|
|
15
|
+
this.treeDraggedElement = treeDraggedElement;
|
|
16
|
+
this.tabindex = '0';
|
|
17
|
+
treeModel.eventNames.forEach((name) => this[name] = new EventEmitter());
|
|
18
|
+
treeModel.subscribeToState((state) => this.stateChange.emit(state));
|
|
19
|
+
}
|
|
20
|
+
// Will be handled in ngOnChanges
|
|
21
|
+
set nodes(nodes) {
|
|
22
|
+
}
|
|
23
|
+
;
|
|
24
|
+
set options(options) {
|
|
25
|
+
}
|
|
26
|
+
;
|
|
27
|
+
set focused(value) {
|
|
28
|
+
this.treeModel.setFocus(value);
|
|
29
|
+
}
|
|
30
|
+
set state(state) {
|
|
31
|
+
this.treeModel.setState(state);
|
|
32
|
+
}
|
|
33
|
+
onKeydown($event) {
|
|
34
|
+
//if (!this.treeModel.isFocused) return;
|
|
35
|
+
if (['input', 'textarea', 'button'].includes(document.activeElement.tagName.toLowerCase()))
|
|
36
|
+
return;
|
|
37
|
+
const focusedNode = this.treeModel.getFocusedNode();
|
|
38
|
+
this.treeModel.performKeyAction(focusedNode, $event);
|
|
39
|
+
}
|
|
40
|
+
/*
|
|
41
|
+
@HostListener('body: mousedown', ['$event'])
|
|
42
|
+
onMousedown($event) {
|
|
43
|
+
function isOutsideClick(startElement: Element, nodeName: string) {
|
|
44
|
+
return !startElement ? true : startElement.localName === nodeName ? false : isOutsideClick(startElement.parentElement, nodeName);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if (isOutsideClick($event.target, 'tree-root')) {
|
|
48
|
+
this.treeModel.setFocus(false);
|
|
49
|
+
}
|
|
50
|
+
}*/
|
|
51
|
+
ngOnChanges(changes) {
|
|
52
|
+
if (changes.options || changes.nodes) {
|
|
53
|
+
this.treeModel.setData({
|
|
54
|
+
options: changes.options && changes.options.currentValue,
|
|
55
|
+
nodes: changes.nodes && changes.nodes.currentValue,
|
|
56
|
+
events: this.pick(this, this.treeModel.eventNames)
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
sizeChanged() {
|
|
61
|
+
this.viewportComponent.setViewport();
|
|
62
|
+
}
|
|
63
|
+
pick(object, keys) {
|
|
64
|
+
return keys.reduce((obj, key) => {
|
|
65
|
+
if (object && object.hasOwnProperty(key)) {
|
|
66
|
+
obj[key] = object[key];
|
|
67
|
+
}
|
|
68
|
+
return obj;
|
|
69
|
+
}, {});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/** @nocollapse */ TreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TreeComponent, deps: [{ token: i1.TreeModel }, { token: i2.TreeDraggedElement }], target: i0.ɵɵFactoryTarget.Component });
|
|
73
|
+
/** @nocollapse */ TreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", 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: { "keydown": "onKeydown($event)" }, properties: { "attr.tabindex": "this.tabindex" } }, 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: `
|
|
74
|
+
<tree-viewport #viewport>
|
|
75
|
+
<div
|
|
76
|
+
class="angular-tree-component"
|
|
77
|
+
[class.node-dragging]="treeDraggedElement.isDragging()"
|
|
78
|
+
[class.angular-tree-component-rtl]="treeModel.options.rtl">
|
|
79
|
+
<tree-node-collection
|
|
80
|
+
*ngIf="treeModel.roots"
|
|
81
|
+
[nodes]="treeModel.roots"
|
|
82
|
+
[treeModel]="treeModel"
|
|
83
|
+
[templates]="{
|
|
84
|
+
loadingTemplate: loadingTemplate,
|
|
85
|
+
treeNodeTemplate: treeNodeTemplate,
|
|
86
|
+
treeNodeWrapperTemplate: treeNodeWrapperTemplate,
|
|
87
|
+
treeNodeFullTemplate: treeNodeFullTemplate
|
|
88
|
+
}">
|
|
89
|
+
</tree-node-collection>
|
|
90
|
+
<tree-node-drop-slot
|
|
91
|
+
class="empty-tree-drop-slot"
|
|
92
|
+
*ngIf="treeModel.isEmptyTree()"
|
|
93
|
+
[dropIndex]="0"
|
|
94
|
+
[node]="treeModel.virtualRoot">
|
|
95
|
+
</tree-node-drop-slot>
|
|
96
|
+
</div>
|
|
97
|
+
</tree-viewport>
|
|
98
|
+
`, isInline: true, components: [{ type: i3.TreeViewportComponent, selector: "tree-viewport" }, { type: i4.TreeNodeCollectionComponent, selector: "tree-node-collection", inputs: ["nodes", "treeModel", "templates"] }, { type: i5.TreeNodeDropSlotComponent, selector: "TreeNodeDropSlot, tree-node-drop-slot", inputs: ["node", "dropIndex"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TreeComponent, decorators: [{
|
|
100
|
+
type: Component,
|
|
101
|
+
args: [{
|
|
102
|
+
selector: 'Tree, tree-root',
|
|
103
|
+
providers: [TreeModel],
|
|
104
|
+
styles: [],
|
|
105
|
+
template: `
|
|
106
|
+
<tree-viewport #viewport>
|
|
107
|
+
<div
|
|
108
|
+
class="angular-tree-component"
|
|
109
|
+
[class.node-dragging]="treeDraggedElement.isDragging()"
|
|
110
|
+
[class.angular-tree-component-rtl]="treeModel.options.rtl">
|
|
111
|
+
<tree-node-collection
|
|
112
|
+
*ngIf="treeModel.roots"
|
|
113
|
+
[nodes]="treeModel.roots"
|
|
114
|
+
[treeModel]="treeModel"
|
|
115
|
+
[templates]="{
|
|
116
|
+
loadingTemplate: loadingTemplate,
|
|
117
|
+
treeNodeTemplate: treeNodeTemplate,
|
|
118
|
+
treeNodeWrapperTemplate: treeNodeWrapperTemplate,
|
|
119
|
+
treeNodeFullTemplate: treeNodeFullTemplate
|
|
120
|
+
}">
|
|
121
|
+
</tree-node-collection>
|
|
122
|
+
<tree-node-drop-slot
|
|
123
|
+
class="empty-tree-drop-slot"
|
|
124
|
+
*ngIf="treeModel.isEmptyTree()"
|
|
125
|
+
[dropIndex]="0"
|
|
126
|
+
[node]="treeModel.virtualRoot">
|
|
127
|
+
</tree-node-drop-slot>
|
|
128
|
+
</div>
|
|
129
|
+
</tree-viewport>
|
|
130
|
+
`
|
|
131
|
+
}]
|
|
132
|
+
}], ctorParameters: function () { return [{ type: i1.TreeModel }, { type: i2.TreeDraggedElement }]; }, propDecorators: { loadingTemplate: [{
|
|
133
|
+
type: ContentChild,
|
|
134
|
+
args: ['loadingTemplate', { static: false }]
|
|
135
|
+
}], treeNodeTemplate: [{
|
|
136
|
+
type: ContentChild,
|
|
137
|
+
args: ['treeNodeTemplate', { static: false }]
|
|
138
|
+
}], treeNodeWrapperTemplate: [{
|
|
139
|
+
type: ContentChild,
|
|
140
|
+
args: ['treeNodeWrapperTemplate', { static: false }]
|
|
141
|
+
}], treeNodeFullTemplate: [{
|
|
142
|
+
type: ContentChild,
|
|
143
|
+
args: ['treeNodeFullTemplate', { static: false }]
|
|
144
|
+
}], viewportComponent: [{
|
|
145
|
+
type: ViewChild,
|
|
146
|
+
args: ['viewport', { static: false }]
|
|
147
|
+
}], nodes: [{
|
|
148
|
+
type: Input
|
|
149
|
+
}], options: [{
|
|
150
|
+
type: Input
|
|
151
|
+
}], focused: [{
|
|
152
|
+
type: Input
|
|
153
|
+
}], state: [{
|
|
154
|
+
type: Input
|
|
155
|
+
}], toggleExpanded: [{
|
|
156
|
+
type: Output
|
|
157
|
+
}], activate: [{
|
|
158
|
+
type: Output
|
|
159
|
+
}], deactivate: [{
|
|
160
|
+
type: Output
|
|
161
|
+
}], nodeActivate: [{
|
|
162
|
+
type: Output
|
|
163
|
+
}], nodeDeactivate: [{
|
|
164
|
+
type: Output
|
|
165
|
+
}], select: [{
|
|
166
|
+
type: Output
|
|
167
|
+
}], deselect: [{
|
|
168
|
+
type: Output
|
|
169
|
+
}], focus: [{
|
|
170
|
+
type: Output
|
|
171
|
+
}], blur: [{
|
|
172
|
+
type: Output
|
|
173
|
+
}], updateData: [{
|
|
174
|
+
type: Output
|
|
175
|
+
}], initialized: [{
|
|
176
|
+
type: Output
|
|
177
|
+
}], moveNode: [{
|
|
178
|
+
type: Output
|
|
179
|
+
}], copyNode: [{
|
|
180
|
+
type: Output
|
|
181
|
+
}], loadNodeChildren: [{
|
|
182
|
+
type: Output
|
|
183
|
+
}], changeFilter: [{
|
|
184
|
+
type: Output
|
|
185
|
+
}], event: [{
|
|
186
|
+
type: Output
|
|
187
|
+
}], stateChange: [{
|
|
188
|
+
type: Output
|
|
189
|
+
}], tabindex: [{
|
|
190
|
+
type: HostBinding,
|
|
191
|
+
args: ['attr.tabindex']
|
|
192
|
+
}], onKeydown: [{
|
|
193
|
+
type: HostListener,
|
|
194
|
+
args: ['keydown', ['$event']]
|
|
195
|
+
}] } });
|
|
196
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXRyZWUtY29tcG9uZW50L3NyYy9saWIvY29tcG9uZW50cy90cmVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkosT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRzFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQWlDbEUsTUFBTSxPQUFPLGFBQWE7SUEyQ3hCLFlBQ1MsU0FBb0IsRUFDcEIsa0JBQXNDO1FBRHRDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQU1qQixhQUFRLEdBQUcsR0FBRyxDQUFDO1FBSjNDLFNBQVMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBdkNELGlDQUFpQztJQUNqQyxJQUFhLEtBQUssQ0FBQyxLQUFZO0lBQy9CLENBQUM7SUFBQSxDQUFDO0lBRUYsSUFBYSxPQUFPLENBQUMsT0FBcUI7SUFDMUMsQ0FBQztJQUFB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Z0JBSU8sS0FBSztzQkFBakIsS0FBSztnQkFJSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQVV1QixRQUFRO3NCQUFyQyxXQUFXO3VCQUFDLGVBQWU7Z0JBRTVCLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJlZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3RyZWUubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmVlRHJhZ2dlZEVsZW1lbnQgfSBmcm9tICcuLi9tb2RlbHMvdHJlZS1kcmFnZ2VkLWVsZW1lbnQubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmVlT3B0aW9ucyB9IGZyb20gJy4uL21vZGVscy90cmVlLW9wdGlvbnMubW9kZWwnO1xyXG5pbXBvcnQgeyBJVHJlZU9wdGlvbnMgfSBmcm9tICcuLi9kZWZzL2FwaSc7XHJcbmltcG9ydCB7IFRyZWVWaWV3cG9ydENvbXBvbmVudCB9IGZyb20gJy4vdHJlZS12aWV3cG9ydC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdUcmVlLCB0cmVlLXJvb3QnLFxyXG4gIHByb3ZpZGVyczogW1RyZWVNb2RlbF0sXHJcbiAgc3R5bGVzOiBbXSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8dHJlZS12aWV3cG9ydCAjdmlld3BvcnQ+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYW5ndWxhci10cmVlLWNvbXBvbmVudFwiXHJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5ub2RlLWRyYWdnaW5nXT1cInRyZWVEcmFnZ2VkRWxlbWVudC5pc0RyYWdnaW5nKClcIlxyXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuYW5ndWxhci10cmVlLWNvbXBvbmVudC1ydGxdPVwidHJlZU1vZGVsLm9wdGlvbnMucnRsXCI+XHJcbiAgICAgICAgICAgICAgPHRyZWUtbm9kZS1jb2xsZWN0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRyZWVNb2RlbC5yb290c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbm9kZXNdPVwidHJlZU1vZGVsLnJvb3RzXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt0cmVlTW9kZWxdPVwidHJlZU1vZGVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt0ZW1wbGF0ZXNdPVwie1xyXG4gICAgICAgICAgICBsb2FkaW5nVGVtcGxhdGU6IGxvYWRpbmdUZW1wbGF0ZSxcclxuICAgICAgICAgICAgdHJlZU5vZGVUZW1wbGF0ZTogdHJlZU5vZGVUZW1wbGF0ZSxcclxuICAgICAgICAgICAgdHJlZU5vZGVXcmFwcGVyVGVtcGxhdGU6IHRyZWVOb2RlV3JhcHBlclRlbXBsYXRlLFxyXG4gICAgICAgICAgICB0cmVlTm9kZUZ1bGxUZW1wbGF0ZTogdHJlZU5vZGVGdWxsVGVtcGxhdGVcclxuICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICA8L3RyZWUtbm9kZS1jb2xsZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDx0cmVlLW5vZGUtZHJvcC1zbG90XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImVtcHR5LXRyZWUtZHJvcC1zbG90XCJcclxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidHJlZU1vZGVsLmlzRW1wdHlUcmVlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2Ryb3BJbmRleF09XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtub2RlXT1cInRyZWVNb2RlbC52aXJ0dWFsUm9vdFwiPlxyXG4gICAgICAgICAgICAgIDwvdHJlZS1ub2RlLWRyb3Atc2xvdD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L3RyZWUtdmlld3BvcnQ+XHJcbiAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJlZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgX25vZGVzOiBhbnlbXTtcclxuICBfb3B0aW9uczogVHJlZU9wdGlvbnM7XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoJ2xvYWRpbmdUZW1wbGF0ZScsIHsgc3RhdGljOiBmYWxzZSB9KSBsb2FkaW5nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQENvbnRlbnRDaGlsZCgndHJlZU5vZGVUZW1wbGF0ZScsIHsgc3RhdGljOiBmYWxzZSB9KSB0cmVlTm9kZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ3RyZWVOb2RlV3JhcHBlclRlbXBsYXRlJywgeyBzdGF0aWM6IGZhbHNlIH0pIHRyZWVOb2RlV3JhcHBlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBDb250ZW50Q2hpbGQoJ3RyZWVOb2RlRnVsbFRlbXBsYXRlJywgeyBzdGF0aWM6IGZhbHNlIH0pIHRyZWVOb2RlRnVsbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoJ3ZpZXdwb3J0JywgeyBzdGF0aWM6IGZhbHNlIH0pIHZpZXdwb3J0Q29tcG9uZW50OiBUcmVlVmlld3BvcnRDb21wb25lbnQ7XHJcblxyXG4gIC8vIFdpbGwgYmUgaGFuZGxlZCBpbiBuZ09uQ2hhbmdlc1xyXG4gIEBJbnB1dCgpIHNldCBub2Rlcyhub2RlczogYW55W10pIHtcclxuICB9O1xyXG5cclxuICBASW5wdXQoKSBzZXQgb3B0aW9ucyhvcHRpb25zOiBJVHJlZU9wdGlvbnMpIHtcclxuICB9O1xyXG5cclxuICBASW5wdXQoKSBzZXQgZm9jdXNlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy50cmVlTW9kZWwuc2V0Rm9jdXModmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IHN0YXRlKHN0YXRlKSB7XHJcbiAgICB0aGlzLnRyZWVNb2RlbC5zZXRTdGF0ZShzdGF0ZSk7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgdG9nZ2xlRXhwYW5kZWQ7XHJcbiAgQE91dHB1dCgpIGFjdGl2YXRlO1xyXG4gIEBPdXRwdXQoKSBkZWFjdGl2YXRlO1xyXG4gIEBPdXRwdXQoKSBub2RlQWN0aXZhdGU7XHJcbiAgQE91dHB1dCgpIG5vZGVEZWFjdGl2YXRlO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3Q7XHJcbiAgQE91dHB1dCgpIGRlc2VsZWN0O1xyXG4gIEBPdXRwdXQoKSBmb2N1cztcclxuICBAT3V0cHV0KCkgYmx1cjtcclxuICBAT3V0cHV0KCkgdXBkYXRlRGF0YTtcclxuICBAT3V0cHV0KCkgaW5pdGlhbGl6ZWQ7XHJcbiAgQE91dHB1dCgpIG1vdmVOb2RlO1xyXG4gIEBPdXRwdXQoKSBjb3B5Tm9kZTtcclxuICBAT3V0cHV0KCkgbG9hZE5vZGVDaGlsZHJlbjtcclxuICBAT3V0cHV0KCkgY2hhbmdlRmlsdGVyO1xyXG4gIEBPdXRwdXQoKSBldmVudDtcclxuICBAT3V0cHV0KCkgc3RhdGVDaGFuZ2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHRyZWVNb2RlbDogVHJlZU1vZGVsLFxyXG4gICAgcHVibGljIHRyZWVEcmFnZ2VkRWxlbWVudDogVHJlZURyYWdnZWRFbGVtZW50KSB7XHJcblxyXG4gICAgdHJlZU1vZGVsLmV2ZW50TmFtZXMuZm9yRWFjaCgobmFtZSkgPT4gdGhpc1tuYW1lXSA9IG5ldyBFdmVudEVtaXR0ZXIoKSk7XHJcbiAgICB0cmVlTW9kZWwuc3Vic2NyaWJlVG9TdGF0ZSgoc3RhdGUpID0+IHRoaXMuc3RhdGVDaGFuZ2UuZW1pdChzdGF0ZSkpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JykgdGFiaW5kZXggPSAnMCc7XHJcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pIC8vSnVzdCBsaXN0ZW4gd2l0aGluIGNvbXBvbmVudCwgbm90IHRvIHRoZSBlbnRpcmUgYm9keSFcclxuICBvbktleWRvd24oJGV2ZW50KSB7XHJcbiAgICAvL2lmICghdGhpcy50cmVlTW9kZWwuaXNGb2N1c2VkKSByZXR1cm47XHJcbiAgICBpZiAoWydpbnB1dCcsICd0ZXh0YXJlYScsJ2J1dHRvbiddLmluY2x1ZGVzKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpKSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGZvY3VzZWROb2RlID0gdGhpcy50cmVlTW9kZWwuZ2V0Rm9jdXNlZE5vZGUoKTtcclxuXHJcbiAgICB0aGlzLnRyZWVNb2RlbC5wZXJmb3JtS2V5QWN0aW9uKGZvY3VzZWROb2RlLCAkZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICBASG9zdExpc3RlbmVyKCdib2R5OiBtb3VzZWRvd24nLCBbJyRldmVudCddKVxyXG4gIG9uTW91c2Vkb3duKCRldmVudCkge1xyXG4gICAgZnVuY3Rpb24gaXNPdXRzaWRlQ2xpY2soc3RhcnRFbGVtZW50OiBFbGVtZW50LCBub2RlTmFtZTogc3RyaW5nKSB7XHJcbiAgICAgIHJldHVybiAhc3RhcnRFbGVtZW50ID8gdHJ1ZSA6IHN0YXJ0RWxlbWVudC5sb2NhbE5hbWUgPT09IG5vZGVOYW1lID8gZmFsc2UgOiBpc091dHNpZGVDbGljayhzdGFydEVsZW1lbnQucGFyZW50RWxlbWVudCwgbm9kZU5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpc091dHNpZGVDbGljaygkZXZlbnQudGFyZ2V0LCAndHJlZS1yb290JykpIHtcclxuICAgICAgdGhpcy50cmVlTW9kZWwuc2V0Rm9jdXMoZmFsc2UpO1xyXG4gICAgfVxyXG4gIH0qL1xyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzKSB7XHJcbiAgICBpZiAoY2hhbmdlcy5vcHRpb25zIHx8IGNoYW5nZXMubm9kZXMpIHtcclxuICAgICAgdGhpcy50cmVlTW9kZWwuc2V0RGF0YSh7XHJcbiAgICAgICAgb3B0aW9uczogY2hhbmdlcy5vcHRpb25zICYmIGNoYW5nZXMub3B0aW9ucy5jdXJyZW50VmFsdWUsXHJcbiAgICAgICAgbm9kZXM6IGNoYW5nZXMubm9kZXMgJiYgY2hhbmdlcy5ub2Rlcy5jdXJyZW50VmFsdWUsXHJcbiAgICAgICAgZXZlbnRzOiB0aGlzLnBpY2sodGhpcywgdGhpcy50cmVlTW9kZWwuZXZlbnROYW1lcylcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaXplQ2hhbmdlZCgpIHtcclxuICAgIHRoaXMudmlld3BvcnRDb21wb25lbnQuc2V0Vmlld3BvcnQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGljayhvYmplY3QsIGtleXMpIHtcclxuICAgIHJldHVybiBrZXlzLnJlZHVjZSgob2JqLCBrZXkpID0+IHtcclxuICAgICAgaWYgKG9iamVjdCAmJiBvYmplY3QuaGFzT3duUHJvcGVydHkoa2V5KSkge1xyXG4gICAgICAgIG9ialtrZXldID0gb2JqZWN0W2tleV07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG9iajtcclxuICAgIH0sIHt9KTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -2442,21 +2442,23 @@ class TreeComponent {
|
|
|
2442
2442
|
this.treeModel.setState(state);
|
|
2443
2443
|
}
|
|
2444
2444
|
onKeydown($event) {
|
|
2445
|
-
if (!this.treeModel.isFocused)
|
|
2446
|
-
|
|
2447
|
-
if (['input', 'textarea'].includes(document.activeElement.tagName.toLowerCase()))
|
|
2445
|
+
//if (!this.treeModel.isFocused) return;
|
|
2446
|
+
if (['input', 'textarea', 'button'].includes(document.activeElement.tagName.toLowerCase()))
|
|
2448
2447
|
return;
|
|
2449
2448
|
const focusedNode = this.treeModel.getFocusedNode();
|
|
2450
2449
|
this.treeModel.performKeyAction(focusedNode, $event);
|
|
2451
2450
|
}
|
|
2451
|
+
/*
|
|
2452
|
+
@HostListener('body: mousedown', ['$event'])
|
|
2452
2453
|
onMousedown($event) {
|
|
2453
|
-
|
|
2454
|
-
|
|
2455
|
-
|
|
2456
|
-
|
|
2457
|
-
|
|
2458
|
-
|
|
2459
|
-
|
|
2454
|
+
function isOutsideClick(startElement: Element, nodeName: string) {
|
|
2455
|
+
return !startElement ? true : startElement.localName === nodeName ? false : isOutsideClick(startElement.parentElement, nodeName);
|
|
2456
|
+
}
|
|
2457
|
+
|
|
2458
|
+
if (isOutsideClick($event.target, 'tree-root')) {
|
|
2459
|
+
this.treeModel.setFocus(false);
|
|
2460
|
+
}
|
|
2461
|
+
}*/
|
|
2460
2462
|
ngOnChanges(changes) {
|
|
2461
2463
|
if (changes.options || changes.nodes) {
|
|
2462
2464
|
this.treeModel.setData({
|
|
@@ -2479,7 +2481,7 @@ class TreeComponent {
|
|
|
2479
2481
|
}
|
|
2480
2482
|
}
|
|
2481
2483
|
/** @nocollapse */ TreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: TreeComponent, deps: [{ token: TreeModel }, { token: TreeDraggedElement }], target: i0.ɵɵFactoryTarget.Component });
|
|
2482
|
-
/** @nocollapse */ TreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", 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: { "keydown": "onKeydown($event)"
|
|
2484
|
+
/** @nocollapse */ TreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", 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: { "keydown": "onKeydown($event)" }, properties: { "attr.tabindex": "this.tabindex" } }, 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: `
|
|
2483
2485
|
<tree-viewport #viewport>
|
|
2484
2486
|
<div
|
|
2485
2487
|
class="angular-tree-component"
|
|
@@ -2601,9 +2603,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImpor
|
|
|
2601
2603
|
}], onKeydown: [{
|
|
2602
2604
|
type: HostListener,
|
|
2603
2605
|
args: ['keydown', ['$event']]
|
|
2604
|
-
}], onMousedown: [{
|
|
2605
|
-
type: HostListener,
|
|
2606
|
-
args: ['body: mousedown', ['$event']]
|
|
2607
2606
|
}] } });
|
|
2608
2607
|
|
|
2609
2608
|
class TreeModule {
|