@ng-nest/ui 14.0.6 → 14.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/avatar/avatar-group.component.d.ts +8 -0
  2. package/avatar/avatar.component.d.ts +15 -4
  3. package/avatar/avatar.module.d.ts +5 -4
  4. package/avatar/avatar.property.d.ts +31 -3
  5. package/avatar/examples/en_US/default/badge/README.md +6 -0
  6. package/avatar/examples/en_US/default/group/README.md +6 -0
  7. package/avatar/examples/en_US/default/label/README.md +6 -0
  8. package/avatar/examples/en_US/default/response/README.md +6 -0
  9. package/avatar/examples/zh_CN/default/badge/README.md +6 -0
  10. package/avatar/examples/zh_CN/default/group/README.md +6 -0
  11. package/avatar/examples/zh_CN/default/label/README.md +6 -0
  12. package/avatar/examples/zh_CN/default/response/README.md +6 -0
  13. package/avatar/public-api.d.ts +1 -0
  14. package/badge/badge.component.d.ts +4 -1
  15. package/badge/badge.property.d.ts +6 -1
  16. package/badge/examples/en_US/default/animation/README.md +4 -0
  17. package/badge/examples/en_US/default/standalone/README.md +6 -0
  18. package/badge/examples/zh_CN/default/animation/README.md +4 -0
  19. package/badge/examples/zh_CN/default/standalone/README.md +6 -0
  20. package/calendar/calendar.component.d.ts +1 -0
  21. package/calendar/calendar.property.d.ts +18 -3
  22. package/calendar/examples/en_US/default/card/README.md +6 -0
  23. package/calendar/examples/en_US/default/header/README.md +6 -0
  24. package/calendar/examples/zh_CN/default/card/README.md +6 -0
  25. package/calendar/examples/zh_CN/default/header/README.md +6 -0
  26. package/collapse/collapse.property.d.ts +6 -1
  27. package/collapse/examples/en_US/default/disabled/README.md +6 -0
  28. package/collapse/examples/zh_CN/default/disabled/README.md +6 -0
  29. package/core/animation/badge.d.ts +1 -0
  30. package/core/config/config.d.ts +30 -0
  31. package/core/interfaces/identify.type.d.ts +2 -0
  32. package/core/interfaces/layout.type.d.ts +15 -0
  33. package/esm2020/avatar/avatar-group.component.mjs +19 -0
  34. package/esm2020/avatar/avatar.component.mjs +91 -11
  35. package/esm2020/avatar/avatar.module.mjs +6 -5
  36. package/esm2020/avatar/avatar.property.mjs +31 -3
  37. package/esm2020/avatar/public-api.mjs +2 -1
  38. package/esm2020/badge/badge.component.mjs +24 -8
  39. package/esm2020/badge/badge.property.mjs +7 -2
  40. package/esm2020/calendar/calendar.component.mjs +8 -4
  41. package/esm2020/calendar/calendar.property.mjs +11 -2
  42. package/esm2020/collapse/collapse-panel.component.mjs +3 -3
  43. package/esm2020/collapse/collapse.property.mjs +7 -2
  44. package/esm2020/core/animation/badge.mjs +17 -1
  45. package/esm2020/core/config/config.mjs +1 -1
  46. package/esm2020/core/interfaces/identify.type.mjs +1 -1
  47. package/esm2020/core/interfaces/layout.type.mjs +1 -1
  48. package/esm2020/date-picker/date-picker.component.mjs +5 -1
  49. package/esm2020/form/form.component.mjs +3 -3
  50. package/esm2020/i18n/i18n.property.mjs +1 -1
  51. package/esm2020/i18n/languages/en_US.mjs +8 -1
  52. package/esm2020/i18n/languages/zh_CN.mjs +8 -1
  53. package/esm2020/i18n/languages/zh_TW.mjs +8 -1
  54. package/esm2020/image/image-group.component.mjs +18 -0
  55. package/esm2020/image/image-preview.component.mjs +136 -0
  56. package/esm2020/image/image.component.mjs +89 -0
  57. package/esm2020/image/image.module.mjs +27 -0
  58. package/esm2020/image/image.property.mjs +82 -0
  59. package/esm2020/image/ng-nest-ui-image.mjs +5 -0
  60. package/esm2020/image/public-api.mjs +6 -0
  61. package/esm2020/index.mjs +4 -1
  62. package/esm2020/keyword/keyword.directive.mjs +66 -0
  63. package/esm2020/keyword/keyword.module.mjs +19 -0
  64. package/esm2020/keyword/keyword.property.mjs +41 -0
  65. package/esm2020/keyword/ng-nest-ui-keyword.mjs +5 -0
  66. package/esm2020/keyword/public-api.mjs +4 -0
  67. package/esm2020/list/list-option.component.mjs +4 -4
  68. package/esm2020/list/list.component.mjs +71 -10
  69. package/esm2020/list/list.module.mjs +12 -4
  70. package/esm2020/list/list.property.mjs +54 -3
  71. package/esm2020/select/select-portal.component.mjs +6 -3
  72. package/esm2020/select/select.component.mjs +31 -23
  73. package/esm2020/select/select.property.mjs +8 -2
  74. package/esm2020/table/table-head.component.mjs +2 -2
  75. package/esm2020/table/table.component.mjs +4 -4
  76. package/esm2020/textarea/textarea.component.mjs +2 -2
  77. package/esm2020/timeline/timeline.component.mjs +6 -4
  78. package/esm2020/tree/tree-node.component.mjs +52 -27
  79. package/esm2020/tree/tree.component.mjs +173 -58
  80. package/esm2020/tree/tree.module.mjs +5 -4
  81. package/esm2020/tree/tree.property.mjs +38 -2
  82. package/esm2020/tree-select/ng-nest-ui-tree-select.mjs +5 -0
  83. package/esm2020/tree-select/public-api.mjs +5 -0
  84. package/esm2020/tree-select/tree-select-portal.component.mjs +110 -0
  85. package/esm2020/tree-select/tree-select.component.mjs +632 -0
  86. package/esm2020/tree-select/tree-select.module.mjs +65 -0
  87. package/esm2020/tree-select/tree-select.property.mjs +153 -0
  88. package/esm2020/upload/upload.component.mjs +9 -6
  89. package/esm2020/upload/upload.module.mjs +12 -4
  90. package/esm2020/upload/upload.property.mjs +10 -3
  91. package/fesm2015/ng-nest-ui-avatar.mjs +143 -17
  92. package/fesm2015/ng-nest-ui-avatar.mjs.map +1 -1
  93. package/fesm2015/ng-nest-ui-badge.mjs +29 -8
  94. package/fesm2015/ng-nest-ui-badge.mjs.map +1 -1
  95. package/fesm2015/ng-nest-ui-calendar.mjs +17 -4
  96. package/fesm2015/ng-nest-ui-calendar.mjs.map +1 -1
  97. package/fesm2015/ng-nest-ui-collapse.mjs +8 -3
  98. package/fesm2015/ng-nest-ui-collapse.mjs.map +1 -1
  99. package/fesm2015/ng-nest-ui-core.mjs +17 -1
  100. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  101. package/fesm2015/ng-nest-ui-date-picker.mjs +4 -0
  102. package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
  103. package/fesm2015/ng-nest-ui-form.mjs +2 -2
  104. package/fesm2015/ng-nest-ui-form.mjs.map +1 -1
  105. package/fesm2015/ng-nest-ui-i18n.mjs +21 -0
  106. package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
  107. package/fesm2015/ng-nest-ui-image.mjs +340 -0
  108. package/fesm2015/ng-nest-ui-image.mjs.map +1 -0
  109. package/fesm2015/ng-nest-ui-keyword.mjs +125 -0
  110. package/fesm2015/ng-nest-ui-keyword.mjs.map +1 -0
  111. package/fesm2015/ng-nest-ui-list.mjs +138 -17
  112. package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
  113. package/fesm2015/ng-nest-ui-select.mjs +42 -25
  114. package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
  115. package/fesm2015/ng-nest-ui-table.mjs +4 -4
  116. package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
  117. package/fesm2015/ng-nest-ui-textarea.mjs +2 -2
  118. package/fesm2015/ng-nest-ui-textarea.mjs.map +1 -1
  119. package/fesm2015/ng-nest-ui-timeline.mjs +5 -3
  120. package/fesm2015/ng-nest-ui-timeline.mjs.map +1 -1
  121. package/fesm2015/ng-nest-ui-tree-select.mjs +951 -0
  122. package/fesm2015/ng-nest-ui-tree-select.mjs.map +1 -0
  123. package/fesm2015/ng-nest-ui-tree.mjs +271 -94
  124. package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
  125. package/fesm2015/ng-nest-ui-upload.mjs +28 -10
  126. package/fesm2015/ng-nest-ui-upload.mjs.map +1 -1
  127. package/fesm2015/ng-nest-ui.mjs +3 -0
  128. package/fesm2015/ng-nest-ui.mjs.map +1 -1
  129. package/fesm2020/ng-nest-ui-avatar.mjs +140 -17
  130. package/fesm2020/ng-nest-ui-avatar.mjs.map +1 -1
  131. package/fesm2020/ng-nest-ui-badge.mjs +29 -8
  132. package/fesm2020/ng-nest-ui-badge.mjs.map +1 -1
  133. package/fesm2020/ng-nest-ui-calendar.mjs +17 -4
  134. package/fesm2020/ng-nest-ui-calendar.mjs.map +1 -1
  135. package/fesm2020/ng-nest-ui-collapse.mjs +8 -3
  136. package/fesm2020/ng-nest-ui-collapse.mjs.map +1 -1
  137. package/fesm2020/ng-nest-ui-core.mjs +17 -1
  138. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  139. package/fesm2020/ng-nest-ui-date-picker.mjs +4 -0
  140. package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
  141. package/fesm2020/ng-nest-ui-form.mjs +2 -2
  142. package/fesm2020/ng-nest-ui-form.mjs.map +1 -1
  143. package/fesm2020/ng-nest-ui-i18n.mjs +21 -0
  144. package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
  145. package/fesm2020/ng-nest-ui-image.mjs +336 -0
  146. package/fesm2020/ng-nest-ui-image.mjs.map +1 -0
  147. package/fesm2020/ng-nest-ui-keyword.mjs +125 -0
  148. package/fesm2020/ng-nest-ui-keyword.mjs.map +1 -0
  149. package/fesm2020/ng-nest-ui-list.mjs +137 -17
  150. package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
  151. package/fesm2020/ng-nest-ui-select.mjs +42 -25
  152. package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
  153. package/fesm2020/ng-nest-ui-table.mjs +4 -4
  154. package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
  155. package/fesm2020/ng-nest-ui-textarea.mjs +2 -2
  156. package/fesm2020/ng-nest-ui-textarea.mjs.map +1 -1
  157. package/fesm2020/ng-nest-ui-timeline.mjs +5 -3
  158. package/fesm2020/ng-nest-ui-timeline.mjs.map +1 -1
  159. package/fesm2020/ng-nest-ui-tree-select.mjs +946 -0
  160. package/fesm2020/ng-nest-ui-tree-select.mjs.map +1 -0
  161. package/fesm2020/ng-nest-ui-tree.mjs +267 -91
  162. package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
  163. package/fesm2020/ng-nest-ui-upload.mjs +28 -10
  164. package/fesm2020/ng-nest-ui-upload.mjs.map +1 -1
  165. package/fesm2020/ng-nest-ui.mjs +3 -0
  166. package/fesm2020/ng-nest-ui.mjs.map +1 -1
  167. package/i18n/i18n.property.d.ts +9 -0
  168. package/i18n/languages/en_US.d.ts +7 -0
  169. package/i18n/languages/zh_CN.d.ts +7 -0
  170. package/i18n/languages/zh_TW.d.ts +7 -0
  171. package/image/examples/en_US/default/README.md +4 -0
  172. package/image/examples/en_US/default/default/README.md +6 -0
  173. package/image/examples/en_US/default/fallback/README.md +6 -0
  174. package/image/examples/en_US/default/group/README.md +6 -0
  175. package/image/examples/en_US/default/placeholder/README.md +6 -0
  176. package/image/examples/zh_CN/default/README.md +4 -0
  177. package/image/examples/zh_CN/default/default/README.md +6 -0
  178. package/image/examples/zh_CN/default/fallback/README.md +6 -0
  179. package/image/examples/zh_CN/default/group/README.md +6 -0
  180. package/image/examples/zh_CN/default/placeholder/README.md +6 -0
  181. package/image/image-group.component.d.ts +8 -0
  182. package/image/image-preview.component.d.ts +39 -0
  183. package/image/image.component.d.ts +29 -0
  184. package/image/image.module.d.ts +17 -0
  185. package/image/image.property.d.ts +112 -0
  186. package/image/index.d.ts +5 -0
  187. package/image/public-api.d.ts +5 -0
  188. package/index.d.ts +3 -0
  189. package/keyword/index.d.ts +5 -0
  190. package/keyword/keyword.directive.d.ts +19 -0
  191. package/keyword/keyword.module.d.ts +9 -0
  192. package/keyword/keyword.property.d.ts +40 -0
  193. package/keyword/public-api.d.ts +3 -0
  194. package/list/examples/en_US/default/scroll/README.md +8 -0
  195. package/list/examples/zh_CN/default/scroll/README.md +8 -0
  196. package/list/list-option.component.d.ts +0 -1
  197. package/list/list.component.d.ts +13 -1
  198. package/list/list.module.d.ts +3 -1
  199. package/list/list.property.d.ts +62 -3
  200. package/package.json +25 -1
  201. package/select/examples/en_US/default/default/README.md +1 -2
  202. package/select/examples/zh_CN/default/default/README.md +1 -2
  203. package/select/select-portal.component.d.ts +5 -1
  204. package/select/select.component.d.ts +2 -2
  205. package/select/select.property.d.ts +6 -1
  206. package/style/core/index.css +29 -0
  207. package/style/core/index.css.map +1 -1
  208. package/style/directives/index.scss +1 -0
  209. package/style/directives/keyword/index.scss +6 -0
  210. package/style/directives/keyword/mixin.scss +24 -0
  211. package/style/directives/keyword/param.scss +3 -0
  212. package/tree/tree-node.component.d.ts +4 -4
  213. package/tree/tree.component.d.ts +13 -1
  214. package/tree/tree.module.d.ts +2 -1
  215. package/tree/tree.property.d.ts +44 -14
  216. package/tree-select/examples/en_US/default/README.md +4 -0
  217. package/tree-select/examples/en_US/default/async/README.md +6 -0
  218. package/tree-select/examples/en_US/default/bordered/README.md +6 -0
  219. package/tree-select/examples/en_US/default/custom/README.md +6 -0
  220. package/tree-select/examples/en_US/default/default/README.md +6 -0
  221. package/tree-select/examples/en_US/default/disabled/README.md +6 -0
  222. package/tree-select/examples/en_US/default/label/README.md +6 -0
  223. package/tree-select/examples/en_US/default/multiple/README.md +6 -0
  224. package/tree-select/examples/en_US/default/path/README.md +6 -0
  225. package/tree-select/examples/en_US/default/required/README.md +6 -0
  226. package/tree-select/examples/en_US/default/scroll/README.md +6 -0
  227. package/tree-select/examples/en_US/default/search/README.md +7 -0
  228. package/tree-select/examples/en_US/default/size/README.md +6 -0
  229. package/tree-select/examples/zh_CN/default/README.md +4 -0
  230. package/tree-select/examples/zh_CN/default/async/README.md +6 -0
  231. package/tree-select/examples/zh_CN/default/bordered/README.md +6 -0
  232. package/tree-select/examples/zh_CN/default/custom/README.md +6 -0
  233. package/tree-select/examples/zh_CN/default/default/README.md +6 -0
  234. package/tree-select/examples/zh_CN/default/disabled/README.md +6 -0
  235. package/tree-select/examples/zh_CN/default/label/README.md +6 -0
  236. package/tree-select/examples/zh_CN/default/multiple/README.md +6 -0
  237. package/tree-select/examples/zh_CN/default/path/README.md +6 -0
  238. package/tree-select/examples/zh_CN/default/required/README.md +6 -0
  239. package/tree-select/examples/zh_CN/default/scroll/README.md +6 -0
  240. package/tree-select/examples/zh_CN/default/search/README.md +7 -0
  241. package/tree-select/examples/zh_CN/default/size/README.md +6 -0
  242. package/tree-select/index.d.ts +5 -0
  243. package/tree-select/public-api.d.ts +4 -0
  244. package/tree-select/tree-select-portal.component.d.ts +62 -0
  245. package/tree-select/tree-select.component.d.ts +101 -0
  246. package/tree-select/tree-select.module.d.ts +20 -0
  247. package/tree-select/tree-select.property.d.ts +202 -0
  248. package/upload/upload.component.d.ts +1 -1
  249. package/upload/upload.module.d.ts +3 -1
  250. package/upload/upload.property.d.ts +13 -3
@@ -1,23 +1,25 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Component, Input, Output, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, ViewChild, NgModule } from '@angular/core';
2
+ import { EventEmitter, Component, Input, Output, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, ViewChild, ViewChildren, NgModule } from '@angular/core';
3
3
  import { __decorate } from 'tslib';
4
4
  import * as i1 from '@ng-nest/ui/core';
5
- import { XProperty, XDataConvert, XInputBoolean, XInputNumber, XWithConfig, XIsEmpty, XIsChange, XIsObservable, XSetData, XIsFunction, XIsUndefined } from '@ng-nest/ui/core';
6
- import { Subject, map } from 'rxjs';
5
+ import { XProperty, XDataConvert, XInputBoolean, XInputNumber, XWithConfig, XIsEmpty, XIsChange, XResize, XIsObservable, XSetData, XIsFunction, XIsUndefined } from '@ng-nest/ui/core';
6
+ import { Subject, debounceTime, takeUntil, map } from 'rxjs';
7
7
  import * as i2 from '@angular/common';
8
8
  import { CommonModule } from '@angular/common';
9
- import * as i4 from '@ng-nest/ui/icon';
10
- import { XIconModule } from '@ng-nest/ui/icon';
11
- import * as i4$1 from '@angular/cdk/scrolling';
12
- import { ScrollingModule } from '@angular/cdk/scrolling';
13
9
  import * as i3 from '@angular/forms';
14
10
  import { FormsModule } from '@angular/forms';
11
+ import * as i4 from '@ng-nest/ui/icon';
12
+ import { XIconModule } from '@ng-nest/ui/icon';
15
13
  import * as i5 from '@ng-nest/ui/checkbox';
16
14
  import { XCheckboxModule } from '@ng-nest/ui/checkbox';
17
15
  import * as i6 from '@ng-nest/ui/outlet';
18
16
  import { XOutletModule } from '@ng-nest/ui/outlet';
19
17
  import * as i7 from '@ng-nest/ui/link';
20
18
  import { XLinkModule } from '@ng-nest/ui/link';
19
+ import * as i8 from '@ng-nest/ui/keyword';
20
+ import { XKeywordModule } from '@ng-nest/ui/keyword';
21
+ import * as i4$1 from '@angular/cdk/scrolling';
22
+ import { ScrollingModule } from '@angular/cdk/scrolling';
21
23
 
22
24
  /**
23
25
  * Tree
@@ -97,10 +99,20 @@ class XTreeProperty extends XProperty {
97
99
  * @en_US Parameter control request change event
98
100
  */
99
101
  this.manualChange = new EventEmitter();
102
+ /**
103
+ * @zh_CN 节点点击事件
104
+ * @en_US Node click event
105
+ */
106
+ this.nodeClick = new EventEmitter();
107
+ /**
108
+ * @zh_CN 节点点击事件
109
+ * @en_US Node click event
110
+ */
111
+ this.activatedIdChange = new EventEmitter();
100
112
  }
101
113
  }
102
114
  /** @nocollapse */ XTreeProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTreeProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
103
- /** @nocollapse */ XTreeProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTreeProperty, selector: "ng-component", inputs: { data: "data", checkbox: "checkbox", lazy: "lazy", activatedId: "activatedId", expanded: "expanded", checked: "checked", expandedAll: "expandedAll", expandedLevel: "expandedLevel", nodeOpen: "nodeOpen", spacing: "spacing", labelTpl: "labelTpl", nodeHeight: "nodeHeight", allowManyActivated: "allowManyActivated", manual: "manual", levelCheck: "levelCheck", nodeNowrap: "nodeNowrap", nodeAlignItems: "nodeAlignItems", actions: "actions", virtualScroll: "virtualScroll", virtualScrollHeight: "virtualScrollHeight", itemSize: "itemSize", minBufferPx: "minBufferPx", maxBufferPx: "maxBufferPx" }, outputs: { activatedChange: "activatedChange", checkboxChange: "checkboxChange", manualChange: "manualChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
115
+ /** @nocollapse */ XTreeProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTreeProperty, selector: "ng-component", inputs: { data: "data", checkbox: "checkbox", lazy: "lazy", activatedId: "activatedId", expanded: "expanded", checked: "checked", expandedAll: "expandedAll", expandedLevel: "expandedLevel", nodeOpen: "nodeOpen", spacing: "spacing", labelTpl: "labelTpl", nodeHeight: "nodeHeight", allowManyActivated: "allowManyActivated", manual: "manual", levelCheck: "levelCheck", nodeNowrap: "nodeNowrap", nodeAlignItems: "nodeAlignItems", actions: "actions", scrollElement: "scrollElement", virtualScroll: "virtualScroll", virtualScrollHeight: "virtualScrollHeight", heightAdaption: "heightAdaption", itemSize: "itemSize", minBufferPx: "minBufferPx", maxBufferPx: "maxBufferPx", multiple: "multiple", objectArray: "objectArray", keywordText: "keywordText", caseSensitive: "caseSensitive" }, outputs: { activatedChange: "activatedChange", checkboxChange: "checkboxChange", manualChange: "manualChange", nodeClick: "nodeClick", activatedIdChange: "activatedIdChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
104
116
  __decorate([
105
117
  XDataConvert()
106
118
  ], XTreeProperty.prototype, "data", void 0);
@@ -154,6 +166,16 @@ __decorate([
154
166
  XWithConfig(X_CONFIG_NAME, 26),
155
167
  XInputNumber()
156
168
  ], XTreeProperty.prototype, "itemSize", void 0);
169
+ __decorate([
170
+ XInputBoolean()
171
+ ], XTreeProperty.prototype, "multiple", void 0);
172
+ __decorate([
173
+ XInputBoolean()
174
+ ], XTreeProperty.prototype, "objectArray", void 0);
175
+ __decorate([
176
+ XInputBoolean(),
177
+ XWithConfig(X_CONFIG_NAME, true)
178
+ ], XTreeProperty.prototype, "caseSensitive", void 0);
157
179
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTreeProperty, decorators: [{
158
180
  type: Component,
159
181
  args: [{ template: '' }]
@@ -197,18 +219,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
197
219
  type: Input
198
220
  }], actions: [{
199
221
  type: Input
222
+ }], scrollElement: [{
223
+ type: Input
200
224
  }], virtualScroll: [{
201
225
  type: Input
202
226
  }], virtualScrollHeight: [{
203
227
  type: Input
228
+ }], heightAdaption: [{
229
+ type: Input
204
230
  }], itemSize: [{
205
231
  type: Input
206
232
  }], minBufferPx: [{
207
233
  type: Input
208
234
  }], maxBufferPx: [{
209
235
  type: Input
236
+ }], multiple: [{
237
+ type: Input
238
+ }], objectArray: [{
239
+ type: Input
240
+ }], keywordText: [{
241
+ type: Input
242
+ }], caseSensitive: [{
243
+ type: Input
210
244
  }], manualChange: [{
211
245
  type: Output
246
+ }], nodeClick: [{
247
+ type: Output
248
+ }], activatedIdChange: [{
249
+ type: Output
212
250
  }] } });
213
251
  /**
214
252
  * TreeNode
@@ -275,9 +313,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
275
313
  }] } });
276
314
 
277
315
  class XTreeNodeComponent extends XTreeNodeProperty {
278
- constructor(
279
- // @Optional() public tree: XTreeComponent,
280
- renderer, elementRef, cdr, configService) {
316
+ constructor(renderer, elementRef, cdr, configService) {
281
317
  super();
282
318
  this.renderer = renderer;
283
319
  this.elementRef = elementRef;
@@ -297,6 +333,20 @@ class XTreeNodeComponent extends XTreeNodeProperty {
297
333
  var _a;
298
334
  return Number(((_a = this.node) === null || _a === void 0 ? void 0 : _a.level) ? this.node.level : 0) * Number(this.tree.spacing);
299
335
  }
336
+ get getActivated() {
337
+ var _a;
338
+ if (this.tree.multiple) {
339
+ if (this.tree.objectArray) {
340
+ return this.tree.activatedId.map((x) => x.id).includes(this.node.id);
341
+ }
342
+ else {
343
+ return this.tree.activatedId.includes(this.node.id);
344
+ }
345
+ }
346
+ else {
347
+ return ((_a = this.tree.activatedNode) === null || _a === void 0 ? void 0 : _a.id) === this.node.id;
348
+ }
349
+ }
300
350
  ngOnInit() {
301
351
  var _a;
302
352
  this.node.change = (check) => {
@@ -315,12 +365,33 @@ class XTreeNodeComponent extends XTreeNodeProperty {
315
365
  var _a;
316
366
  const change = (_a = this.tree.activatedNode) === null || _a === void 0 ? void 0 : _a.change;
317
367
  this.tree.nodeOpen && node.leaf && this.tree.onToggle(event, node);
368
+ if (this.tree.multiple) {
369
+ if (this.tree.objectArray) {
370
+ const ids = this.tree.activatedId.map((x) => x.id);
371
+ if (ids.includes(node.id)) {
372
+ this.tree.activatedId.splice(ids.indexOf(node.id), 1);
373
+ }
374
+ else {
375
+ this.tree.activatedId.push(node);
376
+ }
377
+ }
378
+ else {
379
+ if (this.tree.activatedId.includes(node.id)) {
380
+ this.tree.activatedId.splice(this.tree.activatedId.indexOf(node.id), 1);
381
+ }
382
+ else {
383
+ this.tree.activatedId.push(node.id);
384
+ }
385
+ }
386
+ this.tree.activatedIdChange.emit(this.tree.activatedId);
387
+ }
318
388
  if (this.tree.activatedNode) {
319
389
  if (this.tree.activatedNode.id === node.id && !this.tree.allowManyActivated)
320
390
  return;
321
391
  }
322
392
  this.tree.activatedNode = node;
323
393
  this.tree.activatedChange.emit(node);
394
+ this.tree.nodeClick.emit(node);
324
395
  change && change();
325
396
  event.stopPropagation();
326
397
  this.cdr.detectChanges();
@@ -330,29 +401,23 @@ class XTreeNodeComponent extends XTreeNodeProperty {
330
401
  this.tree.checkboxChange.emit(this.node);
331
402
  }
332
403
  setCheckbox() {
333
- var _a;
334
404
  if (!this.tree.levelCheck)
335
405
  return;
336
406
  this.node.indeterminate = this.node.checked;
337
407
  this.node.children && this.setChildrenCheckbox(this.node.checked);
338
- if (this.virtualScroll) {
339
- const setParent = (node) => {
340
- var _a, _b, _c;
341
- let parent = this.tree.nodes.find((x) => x.id === node.pid);
342
- if (!parent || XIsEmpty(parent.children))
343
- return;
344
- let checkedList = (_a = parent.children) === null || _a === void 0 ? void 0 : _a.filter((y) => y.checked);
345
- let indeterminateList = (_b = parent.children) === null || _b === void 0 ? void 0 : _b.filter((y) => y.indeterminate);
346
- parent.checked = (checkedList === null || checkedList === void 0 ? void 0 : checkedList.length) === ((_c = parent.children) === null || _c === void 0 ? void 0 : _c.length);
347
- parent.indeterminate = checkedList.length > 0 || indeterminateList.length > 0;
348
- parent.change && parent.change();
349
- setParent(parent);
350
- };
351
- setParent(this.node);
352
- }
353
- else {
354
- (_a = this.parent) === null || _a === void 0 ? void 0 : _a.setParentCheckbox();
355
- }
408
+ const setParent = (node) => {
409
+ var _a, _b, _c;
410
+ let parent = this.tree.nodes.find((x) => x.id === node.pid);
411
+ if (!parent || XIsEmpty(parent.children))
412
+ return;
413
+ let checkedList = (_a = parent.children) === null || _a === void 0 ? void 0 : _a.filter((y) => y.checked);
414
+ let indeterminateList = (_b = parent.children) === null || _b === void 0 ? void 0 : _b.filter((y) => y.indeterminate);
415
+ parent.checked = (checkedList === null || checkedList === void 0 ? void 0 : checkedList.length) === ((_c = parent.children) === null || _c === void 0 ? void 0 : _c.length);
416
+ parent.indeterminate = checkedList.length > 0 || indeterminateList.length > 0;
417
+ parent.change && parent.change();
418
+ setParent(parent);
419
+ };
420
+ setParent(this.node);
356
421
  }
357
422
  setChildrenCheckbox(checked) {
358
423
  const setChildren = (children, isChecked) => {
@@ -371,14 +436,13 @@ class XTreeNodeComponent extends XTreeNodeProperty {
371
436
  this.cdr.detectChanges();
372
437
  }
373
438
  setParentCheckbox() {
374
- var _a, _b, _c, _d;
439
+ var _a, _b, _c;
375
440
  if (XIsEmpty(this.node.children))
376
441
  return;
377
442
  let checkedList = (_a = this.node.children) === null || _a === void 0 ? void 0 : _a.filter((x) => x.checked);
378
443
  let indeterminateList = (_b = this.node.children) === null || _b === void 0 ? void 0 : _b.filter((x) => x.indeterminate);
379
444
  this.node.checked = (checkedList === null || checkedList === void 0 ? void 0 : checkedList.length) === ((_c = this.node.children) === null || _c === void 0 ? void 0 : _c.length);
380
445
  this.node.indeterminate = checkedList.length > 0 || indeterminateList.length > 0;
381
- (_d = this.parent) === null || _d === void 0 ? void 0 : _d.setParentCheckbox();
382
446
  this.cdr.detectChanges();
383
447
  }
384
448
  setIndeterminate(node) {
@@ -408,13 +472,11 @@ class XTreeNodeComponent extends XTreeNodeProperty {
408
472
  }
409
473
  }
410
474
  /** @nocollapse */ XTreeNodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTreeNodeComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
411
- /** @nocollapse */ XTreeNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTreeNodeComponent, selector: "x-tree-node, [x-tree-node]", inputs: { parent: "parent", tree: "tree" }, host: { properties: { "class.x-tree-node": "this.rootClass" } }, usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"x-tree-node-content\"\r\n [class.x-activated]=\"tree.activatedNode?.id === node.id\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.height.rem]=\"node.height ? node.height : nodeHeight ? nodeHeight : ''\"\r\n [style.align-items]=\"node.alignItems ? node.alignItems : nodeAlignItems\"\r\n (click)=\"onActivate($event, node)\"\r\n>\r\n <x-icon\r\n *ngIf=\"!node.loading\"\r\n [class.is-leaf]=\"!node.leaf\"\r\n [class.is-open]=\"node.open\"\r\n type=\"fto-chevron-right\"\r\n (click)=\"!tree.nodeOpen && tree.onToggle($event, node)\"\r\n ></x-icon>\r\n <x-icon *ngIf=\"node.loading\" type=\"fto-loader\" [spin]=\"node.loading\"></x-icon>\r\n <x-checkbox\r\n *ngIf=\"tree.checkbox\"\r\n [data]=\"[{ label: '', id: node.id }]\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"onCheckboxChange()\"\r\n [indeterminate]=\"node.indeterminate\"\r\n [disabled]=\"getNodeDisabled(node.disabled)\"\r\n (click)=\"$event.stopPropagation()\"\r\n ></x-checkbox>\r\n <span\r\n class=\"x-tree-node-label\"\r\n [class.nowrap]=\"node.nowrap === false || node.nowrap === true ? node.nowrap : nodeNowrap\"\r\n [title]=\"node.label\"\r\n *ngIf=\"!tree.labelTpl; else labelTpl\"\r\n >{{ node.label }}</span\r\n >\r\n <ng-template #labelTpl>\r\n <ng-container *xOutlet=\"tree.labelTpl; context: { $node: node }\"></ng-container>\r\n </ng-template>\r\n <span class=\"x-tree-node-operations\">\r\n <x-link\r\n *ngFor=\"let action of tree.actions; trackBy: trackByItem\"\r\n [icon]=\"action.icon\"\r\n [title]=\"action.label\"\r\n (click)=\"onAction($event, action, node)\"\r\n ></x-link>\r\n </span>\r\n</div>\r\n<ul *ngIf=\"!virtualScroll && (node.childrenLoaded || (node.leaf && node.open))\" [hidden]=\"!node.open\">\r\n <li\r\n x-tree-node\r\n *ngFor=\"let child of node.children; trackBy: trackByItem\"\r\n [node]=\"child\"\r\n [parent]=\"this\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"lazyData\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"tree\"\r\n ></li>\r\n</ul>\r\n", styles: [".x-tree-node{margin:0;padding:0}.x-tree-node-content{display:flex;padding:.0625rem 0;cursor:pointer}.x-tree-node-content x-icon{padding:.25rem;color:var(--x-text-400);font-size:1rem;margin-right:.125rem;transition:var(--x-animation-duration-base)}.x-tree-node-content x-icon.is-leaf{visibility:hidden}.x-tree-node-content x-icon.is-open{transform:rotate(90deg)}.x-tree-node-content x-icon:hover{color:var(--x-text-300)}.x-tree-node-content x-checkbox{margin-right:.325rem;padding:.25rem 0}.x-tree-node-content:hover,.x-tree-node-content.x-activated{background-color:var(--x-background-a100)}.x-tree-node-content:hover .x-tree-node-label,.x-tree-node-content.x-activated .x-tree-node-label{color:var(--x-primary)}.x-tree-node-content:hover .x-tree-node-operations{display:flex;align-items:center}.x-tree-node-operations{display:none}.x-tree-node-operations .x-link{padding:0 .125rem}.x-tree-node-label{flex:1;-webkit-user-select:none;user-select:none}.x-tree-node-label.nowrap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.XIconComponent, selector: "x-icon" }, { kind: "component", type: i5.XCheckboxComponent, selector: "x-checkbox" }, { kind: "directive", type: i6.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i7.XLinkComponent, selector: "x-link" }, { kind: "component", type: XTreeNodeComponent, selector: "x-tree-node, [x-tree-node]", inputs: ["parent", "tree"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
475
+ /** @nocollapse */ XTreeNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTreeNodeComponent, selector: "x-tree-node, [x-tree-node]", inputs: { tree: "tree" }, host: { properties: { "class.x-tree-node": "this.rootClass" } }, usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"x-tree-node-content\"\r\n [class.x-activated]=\"getActivated\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.height.rem]=\"node.height ? node.height : nodeHeight ? nodeHeight : ''\"\r\n [style.align-items]=\"node.alignItems ? node.alignItems : nodeAlignItems\"\r\n (click)=\"onActivate($event, node)\"\r\n>\r\n <x-icon\r\n *ngIf=\"!node.loading\"\r\n [class.is-leaf]=\"!node.leaf\"\r\n [class.is-open]=\"node.open\"\r\n type=\"fto-chevron-right\"\r\n class=\"x-tree-node-right\"\r\n (click)=\"!tree.nodeOpen && tree.onToggle($event, node)\"\r\n ></x-icon>\r\n <x-icon class=\"x-tree-node-loading\" *ngIf=\"node.loading\" type=\"fto-loader\" [spin]=\"node.loading\"></x-icon>\r\n <x-checkbox\r\n *ngIf=\"tree.checkbox\"\r\n [data]=\"[{ label: '', id: node.id }]\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"onCheckboxChange()\"\r\n [indeterminate]=\"node.indeterminate\"\r\n [disabled]=\"getNodeDisabled(node.disabled)\"\r\n (click)=\"$event.stopPropagation()\"\r\n ></x-checkbox>\r\n <span\r\n class=\"x-tree-node-label\"\r\n [class.nowrap]=\"node.nowrap === false || node.nowrap === true ? node.nowrap : nodeNowrap\"\r\n [title]=\"node.label\"\r\n x-keyword\r\n [text]=\"tree.keywordText\"\r\n [caseSensitive]=\"tree.caseSensitive\"\r\n *ngIf=\"!tree.labelTpl; else labelTpl\"\r\n >{{ node.label }}</span\r\n >\r\n <ng-template #labelTpl>\r\n <ng-container *xOutlet=\"tree.labelTpl; context: { $node: node }\"></ng-container>\r\n </ng-template>\r\n <span class=\"x-tree-node-operations\">\r\n <x-link\r\n *ngFor=\"let action of tree.actions; trackBy: trackByItem\"\r\n [icon]=\"action.icon\"\r\n [title]=\"action.label\"\r\n (click)=\"onAction($event, action, node)\"\r\n ></x-link>\r\n </span>\r\n <x-icon class=\"x-tree-node-checked\" type=\"fto-check\" *ngIf=\"tree.multiple && getActivated\"></x-icon>\r\n</div>\r\n", styles: [".x-tree-node{display:block;margin:0;padding:0}.x-tree-node-content{display:flex;padding:.0625rem 0;cursor:pointer}.x-tree-node-content x-icon{padding:.25rem;font-size:1rem;transition:var(--x-animation-duration-base)}.x-tree-node-content x-icon.is-leaf{visibility:hidden}.x-tree-node-content x-icon.is-open{transform:rotate(90deg)}.x-tree-node-content x-icon:hover{color:var(--x-text-300)}.x-tree-node-content x-checkbox{margin-right:.325rem;padding:.25rem 0}.x-tree-node-content:hover{background-color:var(--x-background-a200)}.x-tree-node-content.x-activated{background-color:var(--x-background-a400);color:var(--x-primary)}.x-tree-node-content:hover .x-tree-node-operations{display:flex;align-items:center}.x-tree-node-right,.x-tree-node-loading{color:var(--x-text-400);margin-right:.125rem}.x-tree-node-checked{color:var(--x-primary)}.x-tree-node-operations{display:none}.x-tree-node-operations .x-link{padding:0 .125rem}.x-tree-node-label{flex:1;-webkit-user-select:none;user-select:none}.x-tree-node-label.nowrap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.XIconComponent, selector: "x-icon" }, { kind: "component", type: i5.XCheckboxComponent, selector: "x-checkbox" }, { kind: "directive", type: i6.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i7.XLinkComponent, selector: "x-link" }, { kind: "directive", type: i8.XKeywordDirective, selector: "[x-keyword]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
412
476
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTreeNodeComponent, decorators: [{
413
477
  type: Component,
414
- args: [{ selector: `${XTreeNodePrefix}, [${XTreeNodePrefix}]`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"x-tree-node-content\"\r\n [class.x-activated]=\"tree.activatedNode?.id === node.id\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.height.rem]=\"node.height ? node.height : nodeHeight ? nodeHeight : ''\"\r\n [style.align-items]=\"node.alignItems ? node.alignItems : nodeAlignItems\"\r\n (click)=\"onActivate($event, node)\"\r\n>\r\n <x-icon\r\n *ngIf=\"!node.loading\"\r\n [class.is-leaf]=\"!node.leaf\"\r\n [class.is-open]=\"node.open\"\r\n type=\"fto-chevron-right\"\r\n (click)=\"!tree.nodeOpen && tree.onToggle($event, node)\"\r\n ></x-icon>\r\n <x-icon *ngIf=\"node.loading\" type=\"fto-loader\" [spin]=\"node.loading\"></x-icon>\r\n <x-checkbox\r\n *ngIf=\"tree.checkbox\"\r\n [data]=\"[{ label: '', id: node.id }]\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"onCheckboxChange()\"\r\n [indeterminate]=\"node.indeterminate\"\r\n [disabled]=\"getNodeDisabled(node.disabled)\"\r\n (click)=\"$event.stopPropagation()\"\r\n ></x-checkbox>\r\n <span\r\n class=\"x-tree-node-label\"\r\n [class.nowrap]=\"node.nowrap === false || node.nowrap === true ? node.nowrap : nodeNowrap\"\r\n [title]=\"node.label\"\r\n *ngIf=\"!tree.labelTpl; else labelTpl\"\r\n >{{ node.label }}</span\r\n >\r\n <ng-template #labelTpl>\r\n <ng-container *xOutlet=\"tree.labelTpl; context: { $node: node }\"></ng-container>\r\n </ng-template>\r\n <span class=\"x-tree-node-operations\">\r\n <x-link\r\n *ngFor=\"let action of tree.actions; trackBy: trackByItem\"\r\n [icon]=\"action.icon\"\r\n [title]=\"action.label\"\r\n (click)=\"onAction($event, action, node)\"\r\n ></x-link>\r\n </span>\r\n</div>\r\n<ul *ngIf=\"!virtualScroll && (node.childrenLoaded || (node.leaf && node.open))\" [hidden]=\"!node.open\">\r\n <li\r\n x-tree-node\r\n *ngFor=\"let child of node.children; trackBy: trackByItem\"\r\n [node]=\"child\"\r\n [parent]=\"this\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"lazyData\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"tree\"\r\n ></li>\r\n</ul>\r\n", styles: [".x-tree-node{margin:0;padding:0}.x-tree-node-content{display:flex;padding:.0625rem 0;cursor:pointer}.x-tree-node-content x-icon{padding:.25rem;color:var(--x-text-400);font-size:1rem;margin-right:.125rem;transition:var(--x-animation-duration-base)}.x-tree-node-content x-icon.is-leaf{visibility:hidden}.x-tree-node-content x-icon.is-open{transform:rotate(90deg)}.x-tree-node-content x-icon:hover{color:var(--x-text-300)}.x-tree-node-content x-checkbox{margin-right:.325rem;padding:.25rem 0}.x-tree-node-content:hover,.x-tree-node-content.x-activated{background-color:var(--x-background-a100)}.x-tree-node-content:hover .x-tree-node-label,.x-tree-node-content.x-activated .x-tree-node-label{color:var(--x-primary)}.x-tree-node-content:hover .x-tree-node-operations{display:flex;align-items:center}.x-tree-node-operations{display:none}.x-tree-node-operations .x-link{padding:0 .125rem}.x-tree-node-label{flex:1;-webkit-user-select:none;user-select:none}.x-tree-node-label.nowrap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}\n"] }]
415
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; }, propDecorators: { parent: [{
416
- type: Input
417
- }], tree: [{
478
+ args: [{ selector: `${XTreeNodePrefix}, [${XTreeNodePrefix}]`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"x-tree-node-content\"\r\n [class.x-activated]=\"getActivated\"\r\n [style.padding-left.rem]=\"paddingLeft\"\r\n [style.height.rem]=\"node.height ? node.height : nodeHeight ? nodeHeight : ''\"\r\n [style.align-items]=\"node.alignItems ? node.alignItems : nodeAlignItems\"\r\n (click)=\"onActivate($event, node)\"\r\n>\r\n <x-icon\r\n *ngIf=\"!node.loading\"\r\n [class.is-leaf]=\"!node.leaf\"\r\n [class.is-open]=\"node.open\"\r\n type=\"fto-chevron-right\"\r\n class=\"x-tree-node-right\"\r\n (click)=\"!tree.nodeOpen && tree.onToggle($event, node)\"\r\n ></x-icon>\r\n <x-icon class=\"x-tree-node-loading\" *ngIf=\"node.loading\" type=\"fto-loader\" [spin]=\"node.loading\"></x-icon>\r\n <x-checkbox\r\n *ngIf=\"tree.checkbox\"\r\n [data]=\"[{ label: '', id: node.id }]\"\r\n [(ngModel)]=\"node.checked\"\r\n (ngModelChange)=\"onCheckboxChange()\"\r\n [indeterminate]=\"node.indeterminate\"\r\n [disabled]=\"getNodeDisabled(node.disabled)\"\r\n (click)=\"$event.stopPropagation()\"\r\n ></x-checkbox>\r\n <span\r\n class=\"x-tree-node-label\"\r\n [class.nowrap]=\"node.nowrap === false || node.nowrap === true ? node.nowrap : nodeNowrap\"\r\n [title]=\"node.label\"\r\n x-keyword\r\n [text]=\"tree.keywordText\"\r\n [caseSensitive]=\"tree.caseSensitive\"\r\n *ngIf=\"!tree.labelTpl; else labelTpl\"\r\n >{{ node.label }}</span\r\n >\r\n <ng-template #labelTpl>\r\n <ng-container *xOutlet=\"tree.labelTpl; context: { $node: node }\"></ng-container>\r\n </ng-template>\r\n <span class=\"x-tree-node-operations\">\r\n <x-link\r\n *ngFor=\"let action of tree.actions; trackBy: trackByItem\"\r\n [icon]=\"action.icon\"\r\n [title]=\"action.label\"\r\n (click)=\"onAction($event, action, node)\"\r\n ></x-link>\r\n </span>\r\n <x-icon class=\"x-tree-node-checked\" type=\"fto-check\" *ngIf=\"tree.multiple && getActivated\"></x-icon>\r\n</div>\r\n", styles: [".x-tree-node{display:block;margin:0;padding:0}.x-tree-node-content{display:flex;padding:.0625rem 0;cursor:pointer}.x-tree-node-content x-icon{padding:.25rem;font-size:1rem;transition:var(--x-animation-duration-base)}.x-tree-node-content x-icon.is-leaf{visibility:hidden}.x-tree-node-content x-icon.is-open{transform:rotate(90deg)}.x-tree-node-content x-icon:hover{color:var(--x-text-300)}.x-tree-node-content x-checkbox{margin-right:.325rem;padding:.25rem 0}.x-tree-node-content:hover{background-color:var(--x-background-a200)}.x-tree-node-content.x-activated{background-color:var(--x-background-a400);color:var(--x-primary)}.x-tree-node-content:hover .x-tree-node-operations{display:flex;align-items:center}.x-tree-node-right,.x-tree-node-loading{color:var(--x-text-400);margin-right:.125rem}.x-tree-node-checked{color:var(--x-primary)}.x-tree-node-operations{display:none}.x-tree-node-operations .x-link{padding:0 .125rem}.x-tree-node-label{flex:1;-webkit-user-select:none;user-select:none}.x-tree-node-label.nowrap{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}\n"] }]
479
+ }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; }, propDecorators: { tree: [{
418
480
  type: Input
419
481
  }], rootClass: [{
420
482
  type: HostBinding,
@@ -435,6 +497,9 @@ class XTreeComponent extends XTreeProperty {
435
497
  this.treeData = [];
436
498
  this._unSubject = new Subject();
437
499
  }
500
+ set _nodeComponents(value) {
501
+ this.nodeComponents = value;
502
+ }
438
503
  ngOnChanges(changes) {
439
504
  const { expandedAll, data, activatedId, checked, manual } = changes;
440
505
  XIsChange(data) && this.setData();
@@ -443,9 +508,23 @@ class XTreeComponent extends XTreeProperty {
443
508
  XIsChange(checked) && this.setCheckedKeys(this.checked);
444
509
  XIsChange(manual) && this.setManual();
445
510
  }
511
+ ngAfterViewInit() {
512
+ if (this.virtualScroll && this.heightAdaption) {
513
+ this.setVirtualScrollHeight();
514
+ XResize(this.heightAdaption)
515
+ .pipe(debounceTime(30), takeUntil(this._unSubject))
516
+ .subscribe((x) => {
517
+ this._resizeObserver = x.resizeObserver;
518
+ this.setVirtualScrollHeight();
519
+ });
520
+ }
521
+ this.setScorllTop();
522
+ }
446
523
  ngOnDestroy() {
524
+ var _a;
447
525
  this._unSubject.next();
448
526
  this._unSubject.unsubscribe();
527
+ (_a = this._resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
449
528
  }
450
529
  setData() {
451
530
  if (typeof this.data === 'undefined')
@@ -464,6 +543,14 @@ class XTreeComponent extends XTreeProperty {
464
543
  this.setDataChange(this.data);
465
544
  }
466
545
  }
546
+ setVirtualScrollHeight() {
547
+ this.virtualScrollHeight = this.heightAdaption.clientHeight;
548
+ this.minBufferPx = this.virtualScrollHeight;
549
+ this.maxBufferPx = this.virtualScrollHeight * 1.2;
550
+ this.virtualBody['_scrollStrategy']['_minBufferPx'] = this.minBufferPx;
551
+ this.virtualBody['_scrollStrategy']['_maxBufferPx'] = this.maxBufferPx;
552
+ this.cdr.detectChanges();
553
+ }
467
554
  setManual() {
468
555
  if (this.dataIsFunc)
469
556
  this.getDataByFunc();
@@ -480,11 +567,18 @@ class XTreeComponent extends XTreeProperty {
480
567
  const getChildren = (node, level) => {
481
568
  var _a, _b;
482
569
  node.level = level;
483
- node.open = Boolean(this.expandedAll) || level <= this.expandedLevel || this.expanded.indexOf(node.id) >= 0;
570
+ node.open = Boolean(this.expandedAll) || level <= this.expandedLevel || this.expanded.indexOf(node.id) >= 0 || node.open;
484
571
  node.checked = this.checked.indexOf(node.id) >= 0;
485
572
  node.childrenLoaded = node.open;
486
- if (XIsUndefined(node.children))
573
+ if (XIsUndefined(node.children)) {
487
574
  node.children = value.filter((y) => y.pid === node.id);
575
+ if (this.levelCheck && node.children && node.checked) {
576
+ for (let nd of node.children) {
577
+ nd.checked = true;
578
+ this.checked.push(nd.id);
579
+ }
580
+ }
581
+ }
488
582
  if (XIsUndefined(node.leaf))
489
583
  node.leaf = ((_a = node.children) === null || _a === void 0 ? void 0 : _a.length) > 0;
490
584
  if (node.leaf)
@@ -493,8 +587,33 @@ class XTreeComponent extends XTreeProperty {
493
587
  };
494
588
  this.treeData = value;
495
589
  this.nodes = value.filter((x) => XIsEmpty(x.pid)).map((x) => getChildren(x, 0));
590
+ for (let item of value) {
591
+ if (item.open) {
592
+ this.setParentOpen(value, item);
593
+ }
594
+ }
595
+ this.setExpanded();
496
596
  this.cdr.detectChanges();
497
597
  }
598
+ setScorllTop() {
599
+ if (!this.scrollElement || !this.activatedNode)
600
+ return;
601
+ let inx = this.nodes.indexOf(this.activatedNode);
602
+ let com = this.nodeComponents.get(inx);
603
+ if (!com)
604
+ return;
605
+ let ele = com.elementRef.nativeElement;
606
+ let scrollEle = this.scrollElement;
607
+ let min = scrollEle.scrollTop;
608
+ let max = scrollEle.scrollTop + scrollEle.clientHeight;
609
+ if (ele.offsetTop + ele.clientHeight > max) {
610
+ let scrollTop = ele.offsetTop + ele.clientHeight - scrollEle.clientHeight;
611
+ scrollEle.scrollTop = scrollTop;
612
+ }
613
+ if (ele.offsetTop < min) {
614
+ scrollEle.scrollTop = ele.offsetTop;
615
+ }
616
+ }
498
617
  getCheckedNodes() {
499
618
  let result = [];
500
619
  const getChildren = (nodes) => {
@@ -518,7 +637,7 @@ class XTreeComponent extends XTreeProperty {
518
637
  if (XIsEmpty(nodes))
519
638
  return;
520
639
  nodes.forEach((x) => {
521
- x.checked = !clear && keys.indexOf(x.id) >= 0;
640
+ x.checked = !clear && keys.includes(x.id);
522
641
  x.change && x.change(true);
523
642
  setChildren(x.children, clear);
524
643
  });
@@ -527,6 +646,8 @@ class XTreeComponent extends XTreeProperty {
527
646
  this.cdr.detectChanges();
528
647
  }
529
648
  setExpandedAll() {
649
+ if (this.expandedAll && this.treeData.length === this.nodes.length)
650
+ return;
530
651
  const setChildren = (nodes) => {
531
652
  if (XIsEmpty(nodes))
532
653
  return;
@@ -537,7 +658,10 @@ class XTreeComponent extends XTreeProperty {
537
658
  });
538
659
  };
539
660
  setChildren(this.nodes);
540
- if (this.virtualScroll) {
661
+ if (this.expandedAll === false) {
662
+ this.nodes = this.treeData.filter((x) => XIsEmpty(x.pid));
663
+ }
664
+ else {
541
665
  if (this.virtualNodes.length === 0) {
542
666
  this.virtualNodes = [...this.nodes];
543
667
  }
@@ -547,6 +671,15 @@ class XTreeComponent extends XTreeProperty {
547
671
  }
548
672
  }
549
673
  }
674
+ setExpanded() {
675
+ for (let item of this.nodes) {
676
+ if (item.open) {
677
+ let index = this.nodes.indexOf(item);
678
+ this.nodes.splice(index + 1, 0, ...item.children);
679
+ }
680
+ }
681
+ this.nodes = [...this.nodes];
682
+ }
550
683
  setVirtualExpandedAll(item, expandedAll) {
551
684
  let index = this.nodes.indexOf(item);
552
685
  if (expandedAll) {
@@ -589,11 +722,32 @@ class XTreeComponent extends XTreeProperty {
589
722
  this.nodes = [...this.nodes];
590
723
  }
591
724
  setActivatedNode(nodes) {
725
+ if (XIsEmpty(this.activatedId) && this.multiple) {
726
+ this.activatedId = [];
727
+ }
592
728
  let before = this.activatedNode;
593
- this.activatedNode = nodes.find((x) => x.id == this.activatedId);
594
- if (this.activatedNode) {
595
- this.setParentOpen(nodes, this.activatedNode);
596
- this.activatedChange.emit(this.activatedNode);
729
+ if (this.multiple) {
730
+ if (this.activatedId.length > 0) {
731
+ let ids = this.objectArray ? this.activatedId.map((x) => x.id) : this.activatedId;
732
+ for (let i = 0; i < ids.length; i++) {
733
+ let node = nodes.find((x) => x.id === ids[i]);
734
+ if (node) {
735
+ this.setParentOpen(nodes, node);
736
+ if (i === ids.length - 1) {
737
+ this.activatedNode = node;
738
+ this.activatedChange.emit(this.activatedNode);
739
+ }
740
+ }
741
+ }
742
+ }
743
+ }
744
+ else {
745
+ let activatedId = this.activatedId;
746
+ this.activatedNode = nodes.find((x) => x.id == activatedId);
747
+ if (this.activatedNode) {
748
+ this.setParentOpen(nodes, this.activatedNode);
749
+ this.activatedChange.emit(this.activatedNode);
750
+ }
597
751
  }
598
752
  if (before) {
599
753
  before.change && before.change();
@@ -605,31 +759,39 @@ class XTreeComponent extends XTreeProperty {
605
759
  return;
606
760
  const parent = nodes.find((x) => x.id === child.pid);
607
761
  if (!XIsEmpty(parent)) {
608
- this.expanded = [...this.expanded, parent.id];
609
- parent.open = true;
610
- parent.change && parent.change();
611
- getParent(parent);
762
+ if (!this.expanded.includes(parent.id)) {
763
+ this.expanded = [...this.expanded, parent.id];
764
+ parent.open = true;
765
+ parent.change && parent.change();
766
+ getParent(parent);
767
+ }
768
+ }
769
+ };
770
+ getParent(node);
771
+ }
772
+ setParentCheck(nodes, node) {
773
+ const getParent = (child) => {
774
+ if (XIsEmpty(child.pid))
775
+ return;
776
+ const parent = nodes.find((x) => x.id === child.pid);
777
+ if (!XIsEmpty(parent)) {
778
+ if (!this.expanded.includes(parent.id)) {
779
+ this.expanded = [...this.expanded, parent.id];
780
+ parent.open = true;
781
+ parent.change && parent.change();
782
+ getParent(parent);
783
+ }
612
784
  }
613
785
  };
614
786
  getParent(node);
615
787
  }
616
788
  onToggle(event, node) {
617
789
  node.open = !node.open;
618
- if (this.virtualScroll) {
619
- if (this.lazy && !node.childrenLoaded) {
620
- this.getLazyData(node, () => this.virtualToggle(node));
621
- }
622
- else {
623
- this.virtualToggle(node);
624
- }
790
+ if (this.lazy && !node.childrenLoaded) {
791
+ this.getLazyData(node, () => this.virtualToggle(node));
625
792
  }
626
- else if (node.open && !node.childrenLoaded) {
627
- if (this.lazy) {
628
- this.getLazyData(node);
629
- }
630
- else {
631
- node.childrenLoaded = true;
632
- }
793
+ else {
794
+ this.virtualToggle(node);
633
795
  }
634
796
  event.preventDefault();
635
797
  event.stopPropagation();
@@ -661,7 +823,7 @@ class XTreeComponent extends XTreeProperty {
661
823
  if (!parent.children)
662
824
  parent.children = [];
663
825
  this.expanded = [...this.expanded, parent.id];
664
- this.activatedId = node.id;
826
+ this.setActivatedId(node);
665
827
  node.level = Number(parent.level) + 1;
666
828
  node.pid = parent.id;
667
829
  this.treeData.push(node);
@@ -669,14 +831,12 @@ class XTreeComponent extends XTreeProperty {
669
831
  parent.open = true;
670
832
  parent.leaf = true;
671
833
  parent.children = [...parent.children, node];
672
- if (this.virtualScroll) {
673
- this.virtualToggle(parent);
674
- this.cdr.detectChanges();
675
- }
834
+ this.virtualToggle(parent);
835
+ this.cdr.detectChanges();
676
836
  parent.change && parent.change();
677
837
  }
678
838
  else if (XIsEmpty(node.pid)) {
679
- this.activatedId = node.id;
839
+ this.setActivatedId(node);
680
840
  node.level = 0;
681
841
  this.treeData = [...this.treeData, node];
682
842
  this.nodes = [...this.nodes, node];
@@ -693,6 +853,20 @@ class XTreeComponent extends XTreeProperty {
693
853
  _addNode();
694
854
  }
695
855
  }
856
+ setActivatedId(node) {
857
+ if (this.multiple) {
858
+ if (this.objectArray) {
859
+ this.activatedId = [node];
860
+ }
861
+ else {
862
+ this.activatedId = [node.id];
863
+ }
864
+ }
865
+ else {
866
+ this.activatedId = node.id;
867
+ }
868
+ this.activatedIdChange.emit(this.activatedId);
869
+ }
696
870
  removeNode(node) {
697
871
  let parent = this.treeData.find((x) => x.id === node.pid);
698
872
  if (parent) {
@@ -700,32 +874,29 @@ class XTreeComponent extends XTreeProperty {
700
874
  parent.children = [];
701
875
  parent.children.splice(parent.children.indexOf(node), 1);
702
876
  parent.leaf = parent.children.length > 0;
703
- if (!parent.leaf)
704
- this.activatedId = parent.id;
705
- if (this.virtualScroll) {
706
- let index = this.nodes.indexOf(node);
707
- let aindex = index - 1;
708
- if (index === 0 && this.nodes.length > 1) {
709
- aindex = 1;
710
- }
711
- let activatedNode = this.nodes[aindex];
712
- this.activatedId = activatedNode.id;
713
- this.setActivatedNode(this.nodes);
714
- this.nodes.splice(index, 1);
715
- this.nodes = [...this.nodes];
716
- if (activatedNode) {
717
- activatedNode.change && activatedNode.change();
718
- }
719
- this.cdr.detectChanges();
877
+ if (!parent.leaf) {
878
+ this.setActivatedId(parent);
879
+ }
880
+ let index = this.nodes.indexOf(node);
881
+ let aindex = index - 1;
882
+ if (index === 0 && this.nodes.length > 1) {
883
+ aindex = 1;
884
+ }
885
+ let activatedNode = this.nodes[aindex];
886
+ this.setActivatedId(activatedNode);
887
+ this.setActivatedNode(this.nodes);
888
+ this.nodes.splice(index, 1);
889
+ this.nodes = [...this.nodes];
890
+ if (activatedNode) {
891
+ activatedNode.change && activatedNode.change();
720
892
  }
893
+ this.cdr.detectChanges();
721
894
  parent.change && parent.change();
722
895
  }
723
896
  else if (XIsEmpty(node.pid)) {
724
897
  this.treeData.splice(this.treeData.indexOf(node), 1);
725
898
  this.nodes.splice(this.nodes.indexOf(node), 1);
726
- if (this.virtualScroll) {
727
- this.nodes = [...this.nodes];
728
- }
899
+ this.nodes = [...this.nodes];
729
900
  this.cdr.detectChanges();
730
901
  }
731
902
  }
@@ -738,26 +909,32 @@ class XTreeComponent extends XTreeProperty {
738
909
  }
739
910
  }
740
911
  /** @nocollapse */ XTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTreeComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
741
- /** @nocollapse */ XTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTreeComponent, selector: "x-tree", viewQueries: [{ propertyName: "tree", first: true, predicate: ["tree"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #tree class=\"x-tree\">\r\n <ul *ngIf=\"!virtualScroll; else virtualScrollTpl\">\r\n <li\r\n x-tree-node\r\n *ngFor=\"let node of nodes; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></li>\r\n </ul>\r\n</div>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n [itemSize]=\"itemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"virtualScrollHeight\"\r\n >\r\n <x-tree-node\r\n *cdkVirtualFor=\"let node of nodes; templateCacheSize: 0; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n [virtualScroll]=\"virtualScroll\"\r\n ></x-tree-node>\r\n </cdk-virtual-scroll-viewport>\r\n</ng-template>\r\n\r\n<!-- \u63D0\u524D\u52A0\u8F7Dloading\u7684\u56FE\u6807-->\r\n<x-icon *ngIf=\"lazy\" [style.display]=\"'none'\" type=\"fto-loader\"></x-icon>\r\n", styles: [".x-tree{margin:0;padding:0}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.XIconComponent, selector: "x-icon" }, { kind: "directive", type: i4$1.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i4$1.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i4$1.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: XTreeNodeComponent, selector: "x-tree-node, [x-tree-node]", inputs: ["parent", "tree"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
912
+ /** @nocollapse */ XTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTreeComponent, selector: "x-tree", viewQueries: [{ propertyName: "tree", first: true, predicate: ["tree"], descendants: true, static: true }, { propertyName: "virtualBody", first: true, predicate: ["virtualBody"], descendants: true }, { propertyName: "_nodeComponents", predicate: XTreeNodeComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #tree class=\"x-tree\">\r\n <ng-container *ngIf=\"!virtualScroll; else virtualScrollTpl\">\r\n <x-tree-node\r\n *ngFor=\"let node of nodes; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></x-tree-node>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"itemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"virtualScrollHeight\"\r\n >\r\n <x-tree-node\r\n *cdkVirtualFor=\"let node of nodes; templateCacheSize: 0; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></x-tree-node>\r\n </cdk-virtual-scroll-viewport>\r\n</ng-template>\r\n\r\n<!-- \u63D0\u524D\u52A0\u8F7Dloading\u7684\u56FE\u6807-->\r\n<x-icon *ngIf=\"lazy\" [style.display]=\"'none'\" type=\"fto-loader\"></x-icon>\r\n", styles: [".x-tree{margin:0;padding:0}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.XIconComponent, selector: "x-icon" }, { kind: "directive", type: i4$1.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i4$1.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i4$1.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: XTreeNodeComponent, selector: "x-tree-node, [x-tree-node]", inputs: ["tree"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
742
913
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTreeComponent, decorators: [{
743
914
  type: Component,
744
- args: [{ selector: `${XTreePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #tree class=\"x-tree\">\r\n <ul *ngIf=\"!virtualScroll; else virtualScrollTpl\">\r\n <li\r\n x-tree-node\r\n *ngFor=\"let node of nodes; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></li>\r\n </ul>\r\n</div>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n [itemSize]=\"itemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"virtualScrollHeight\"\r\n >\r\n <x-tree-node\r\n *cdkVirtualFor=\"let node of nodes; templateCacheSize: 0; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n [virtualScroll]=\"virtualScroll\"\r\n ></x-tree-node>\r\n </cdk-virtual-scroll-viewport>\r\n</ng-template>\r\n\r\n<!-- \u63D0\u524D\u52A0\u8F7Dloading\u7684\u56FE\u6807-->\r\n<x-icon *ngIf=\"lazy\" [style.display]=\"'none'\" type=\"fto-loader\"></x-icon>\r\n", styles: [".x-tree{margin:0;padding:0}\n"] }]
915
+ args: [{ selector: `${XTreePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #tree class=\"x-tree\">\r\n <ng-container *ngIf=\"!virtualScroll; else virtualScrollTpl\">\r\n <x-tree-node\r\n *ngFor=\"let node of nodes; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></x-tree-node>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #virtualScrollTpl>\r\n <cdk-virtual-scroll-viewport\r\n #virtualBody\r\n [itemSize]=\"itemSize\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [style.height.px]=\"virtualScrollHeight\"\r\n >\r\n <x-tree-node\r\n *cdkVirtualFor=\"let node of nodes; templateCacheSize: 0; trackBy: trackByItem\"\r\n [node]=\"node\"\r\n [lazy]=\"lazy\"\r\n [lazyData]=\"data\"\r\n [nodeHeight]=\"nodeHeight\"\r\n [nodeNowrap]=\"nodeNowrap\"\r\n [nodeAlignItems]=\"nodeAlignItems\"\r\n [tree]=\"this\"\r\n ></x-tree-node>\r\n </cdk-virtual-scroll-viewport>\r\n</ng-template>\r\n\r\n<!-- \u63D0\u524D\u52A0\u8F7Dloading\u7684\u56FE\u6807-->\r\n<x-icon *ngIf=\"lazy\" [style.display]=\"'none'\" type=\"fto-loader\"></x-icon>\r\n", styles: [".x-tree{margin:0;padding:0}\n"] }]
745
916
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; }, propDecorators: { tree: [{
746
917
  type: ViewChild,
747
918
  args: ['tree', { static: true }]
919
+ }], virtualBody: [{
920
+ type: ViewChild,
921
+ args: ['virtualBody']
922
+ }], _nodeComponents: [{
923
+ type: ViewChildren,
924
+ args: [XTreeNodeComponent]
748
925
  }] } });
749
926
 
750
927
  class XTreeModule {
751
928
  }
752
929
  /** @nocollapse */ XTreeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
753
- /** @nocollapse */ XTreeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: XTreeModule, declarations: [XTreeComponent, XTreeNodeComponent, XTreeProperty, XTreeNodeProperty], imports: [CommonModule, FormsModule, XIconModule, XCheckboxModule, XOutletModule, XLinkModule, ScrollingModule], exports: [XTreeComponent, XTreeNodeComponent] });
754
- /** @nocollapse */ XTreeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTreeModule, imports: [CommonModule, FormsModule, XIconModule, XCheckboxModule, XOutletModule, XLinkModule, ScrollingModule] });
930
+ /** @nocollapse */ XTreeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: XTreeModule, declarations: [XTreeComponent, XTreeNodeComponent, XTreeProperty, XTreeNodeProperty], imports: [CommonModule, FormsModule, XIconModule, XCheckboxModule, XOutletModule, XLinkModule, ScrollingModule, XKeywordModule], exports: [XTreeComponent, XTreeNodeComponent] });
931
+ /** @nocollapse */ XTreeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTreeModule, imports: [CommonModule, FormsModule, XIconModule, XCheckboxModule, XOutletModule, XLinkModule, ScrollingModule, XKeywordModule] });
755
932
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTreeModule, decorators: [{
756
933
  type: NgModule,
757
934
  args: [{
758
935
  declarations: [XTreeComponent, XTreeNodeComponent, XTreeProperty, XTreeNodeProperty],
759
936
  exports: [XTreeComponent, XTreeNodeComponent],
760
- imports: [CommonModule, FormsModule, XIconModule, XCheckboxModule, XOutletModule, XLinkModule, ScrollingModule]
937
+ imports: [CommonModule, FormsModule, XIconModule, XCheckboxModule, XOutletModule, XLinkModule, ScrollingModule, XKeywordModule]
761
938
  }]
762
939
  }] });
763
940