@ng-nest/ui 21.0.13 → 22.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. package/README.md +1 -1
  2. package/fesm2022/ng-nest-ui-affix.mjs +12 -12
  3. package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
  4. package/fesm2022/ng-nest-ui-alert.mjs +46 -34
  5. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  6. package/fesm2022/ng-nest-ui-anchor.mjs +43 -31
  7. package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
  8. package/fesm2022/ng-nest-ui-api.mjs +7 -7
  9. package/fesm2022/ng-nest-ui-attachments.mjs +74 -48
  10. package/fesm2022/ng-nest-ui-attachments.mjs.map +1 -1
  11. package/fesm2022/ng-nest-ui-auto-complete.mjs +114 -70
  12. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  13. package/fesm2022/ng-nest-ui-avatar.mjs +47 -32
  14. package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
  15. package/fesm2022/ng-nest-ui-back-top.mjs +23 -18
  16. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  17. package/fesm2022/ng-nest-ui-badge.mjs +30 -23
  18. package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
  19. package/fesm2022/ng-nest-ui-base-form.mjs +75 -44
  20. package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
  21. package/fesm2022/ng-nest-ui-bubble.mjs +76 -48
  22. package/fesm2022/ng-nest-ui-bubble.mjs.map +1 -1
  23. package/fesm2022/ng-nest-ui-button.mjs +53 -42
  24. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  25. package/fesm2022/ng-nest-ui-calendar.mjs +30 -20
  26. package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
  27. package/fesm2022/ng-nest-ui-card.mjs +21 -16
  28. package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
  29. package/fesm2022/ng-nest-ui-carousel.mjs +68 -46
  30. package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
  31. package/fesm2022/ng-nest-ui-cascade.mjs +121 -73
  32. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  33. package/fesm2022/ng-nest-ui-checkbox.mjs +54 -38
  34. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  35. package/fesm2022/ng-nest-ui-collapse.mjs +38 -30
  36. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  37. package/fesm2022/ng-nest-ui-color-picker.mjs +119 -72
  38. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  39. package/fesm2022/ng-nest-ui-color.mjs +22 -16
  40. package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
  41. package/fesm2022/ng-nest-ui-comment.mjs +23 -21
  42. package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
  43. package/fesm2022/ng-nest-ui-container.mjs +40 -37
  44. package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
  45. package/fesm2022/ng-nest-ui-contextmenu.mjs +71 -45
  46. package/fesm2022/ng-nest-ui-contextmenu.mjs.map +1 -1
  47. package/fesm2022/ng-nest-ui-core.mjs +24 -21
  48. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  49. package/fesm2022/ng-nest-ui-coversations.mjs +25 -18
  50. package/fesm2022/ng-nest-ui-coversations.mjs.map +1 -1
  51. package/fesm2022/ng-nest-ui-crumb.mjs +15 -13
  52. package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
  53. package/fesm2022/ng-nest-ui-date-picker.mjs +425 -256
  54. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  55. package/fesm2022/ng-nest-ui-description.mjs +42 -31
  56. package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
  57. package/fesm2022/ng-nest-ui-dialog.mjs +106 -82
  58. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  59. package/fesm2022/ng-nest-ui-divider.mjs +24 -17
  60. package/fesm2022/ng-nest-ui-divider.mjs.map +1 -1
  61. package/fesm2022/ng-nest-ui-doc.mjs +7 -7
  62. package/fesm2022/ng-nest-ui-drag.mjs +10 -10
  63. package/fesm2022/ng-nest-ui-drawer.mjs +52 -43
  64. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  65. package/fesm2022/ng-nest-ui-dropdown.mjs +94 -58
  66. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  67. package/fesm2022/ng-nest-ui-empty.mjs +14 -12
  68. package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
  69. package/fesm2022/ng-nest-ui-examples.mjs +7 -7
  70. package/fesm2022/ng-nest-ui-find.mjs +111 -71
  71. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  72. package/fesm2022/ng-nest-ui-form.mjs +45 -33
  73. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  74. package/fesm2022/ng-nest-ui-highlight.mjs +26 -20
  75. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  76. package/fesm2022/ng-nest-ui-i18n.mjs +16 -15
  77. package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
  78. package/fesm2022/ng-nest-ui-icon.mjs +28 -21
  79. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  80. package/fesm2022/ng-nest-ui-image.mjs +57 -51
  81. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  82. package/fesm2022/ng-nest-ui-inner.mjs +11 -11
  83. package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
  84. package/fesm2022/ng-nest-ui-input-number.mjs +63 -42
  85. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  86. package/fesm2022/ng-nest-ui-input.mjs +130 -85
  87. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  88. package/fesm2022/ng-nest-ui-keyword.mjs +19 -15
  89. package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
  90. package/fesm2022/ng-nest-ui-layout.mjs +37 -31
  91. package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
  92. package/fesm2022/ng-nest-ui-link.mjs +23 -18
  93. package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
  94. package/fesm2022/ng-nest-ui-list.mjs +137 -89
  95. package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
  96. package/fesm2022/ng-nest-ui-loading.mjs +36 -25
  97. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  98. package/fesm2022/ng-nest-ui-menu.mjs +68 -45
  99. package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
  100. package/fesm2022/ng-nest-ui-message-box.mjs +10 -10
  101. package/fesm2022/ng-nest-ui-message.mjs +10 -10
  102. package/fesm2022/ng-nest-ui-notification.mjs +10 -10
  103. package/fesm2022/ng-nest-ui-outlet.mjs +11 -9
  104. package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
  105. package/fesm2022/ng-nest-ui-page-header.mjs +20 -15
  106. package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
  107. package/fesm2022/ng-nest-ui-pagination.mjs +69 -48
  108. package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
  109. package/fesm2022/ng-nest-ui-pattern.mjs +7 -7
  110. package/fesm2022/ng-nest-ui-popconfirm.mjs +40 -27
  111. package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
  112. package/fesm2022/ng-nest-ui-popover.mjs +57 -38
  113. package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
  114. package/fesm2022/ng-nest-ui-portal.mjs +7 -7
  115. package/fesm2022/ng-nest-ui-progress.mjs +60 -41
  116. package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
  117. package/fesm2022/ng-nest-ui-prompts.mjs +18 -15
  118. package/fesm2022/ng-nest-ui-prompts.mjs.map +1 -1
  119. package/fesm2022/ng-nest-ui-radio.mjs +50 -35
  120. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  121. package/fesm2022/ng-nest-ui-rate.mjs +43 -29
  122. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  123. package/fesm2022/ng-nest-ui-resizable.mjs +18 -16
  124. package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
  125. package/fesm2022/ng-nest-ui-result.mjs +22 -16
  126. package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
  127. package/fesm2022/ng-nest-ui-ripple.mjs +14 -13
  128. package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
  129. package/fesm2022/ng-nest-ui-scrollable.mjs +41 -24
  130. package/fesm2022/ng-nest-ui-scrollable.mjs.map +1 -1
  131. package/fesm2022/ng-nest-ui-select.mjs +197 -118
  132. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  133. package/fesm2022/ng-nest-ui-sender.mjs +43 -31
  134. package/fesm2022/ng-nest-ui-sender.mjs.map +1 -1
  135. package/fesm2022/ng-nest-ui-skeleton.mjs +17 -15
  136. package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
  137. package/fesm2022/ng-nest-ui-slider-select.mjs +85 -53
  138. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  139. package/fesm2022/ng-nest-ui-slider.mjs +58 -37
  140. package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
  141. package/fesm2022/ng-nest-ui-splitter.mjs +32 -24
  142. package/fesm2022/ng-nest-ui-splitter.mjs.map +1 -1
  143. package/fesm2022/ng-nest-ui-statistic.mjs +44 -30
  144. package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
  145. package/fesm2022/ng-nest-ui-steps.mjs +30 -22
  146. package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
  147. package/fesm2022/ng-nest-ui-suggestion.mjs +23 -20
  148. package/fesm2022/ng-nest-ui-suggestion.mjs.map +1 -1
  149. package/fesm2022/ng-nest-ui-switch.mjs +35 -25
  150. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  151. package/fesm2022/ng-nest-ui-table-view.mjs +78 -69
  152. package/fesm2022/ng-nest-ui-table-view.mjs.map +1 -1
  153. package/fesm2022/ng-nest-ui-table.mjs +320 -205
  154. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  155. package/fesm2022/ng-nest-ui-tabs.mjs +74 -56
  156. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  157. package/fesm2022/ng-nest-ui-tag.mjs +30 -23
  158. package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
  159. package/fesm2022/ng-nest-ui-text-retract.mjs +19 -15
  160. package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
  161. package/fesm2022/ng-nest-ui-textarea.mjs +69 -44
  162. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  163. package/fesm2022/ng-nest-ui-theme.mjs +34 -23
  164. package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
  165. package/fesm2022/ng-nest-ui-thought-chain.mjs +26 -19
  166. package/fesm2022/ng-nest-ui-thought-chain.mjs.map +1 -1
  167. package/fesm2022/ng-nest-ui-time-ago.mjs +7 -7
  168. package/fesm2022/ng-nest-ui-time-picker.mjs +164 -96
  169. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  170. package/fesm2022/ng-nest-ui-time-range.mjs +7 -7
  171. package/fesm2022/ng-nest-ui-timeline.mjs +26 -19
  172. package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
  173. package/fesm2022/ng-nest-ui-tooltip.mjs +53 -35
  174. package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
  175. package/fesm2022/ng-nest-ui-transfer.mjs +66 -40
  176. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  177. package/fesm2022/ng-nest-ui-tree-file.mjs +39 -28
  178. package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
  179. package/fesm2022/ng-nest-ui-tree-select.mjs +186 -111
  180. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  181. package/fesm2022/ng-nest-ui-tree.mjs +166 -105
  182. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  183. package/fesm2022/ng-nest-ui-typography.mjs +16 -13
  184. package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
  185. package/fesm2022/ng-nest-ui-upload.mjs +81 -53
  186. package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
  187. package/fesm2022/ng-nest-ui-watermark.mjs +45 -35
  188. package/fesm2022/ng-nest-ui-watermark.mjs.map +1 -1
  189. package/fesm2022/ng-nest-ui-welcome.mjs +22 -16
  190. package/fesm2022/ng-nest-ui-welcome.mjs.map +1 -1
  191. package/package.json +7 -6
  192. package/types/ng-nest-ui-base-form.d.ts +3 -3
  193. package/types/ng-nest-ui-carousel.d.ts +1 -1
  194. package/types/ng-nest-ui-container.d.ts +1 -1
  195. package/types/ng-nest-ui-core.d.ts +1 -1
  196. package/types/ng-nest-ui-dialog.d.ts +1 -1
  197. package/types/ng-nest-ui-drawer.d.ts +1 -1
  198. package/types/ng-nest-ui-form.d.ts +12 -12
  199. package/types/ng-nest-ui-layout.d.ts +1 -1
  200. package/types/ng-nest-ui-list.d.ts +1 -1
  201. package/types/ng-nest-ui-portal.d.ts +3 -3
  202. package/types/ng-nest-ui-table-view.d.ts +1 -1
  203. package/types/ng-nest-ui-table.d.ts +1 -1
  204. package/types/ng-nest-ui-tabs.d.ts +1 -1
  205. package/types/ng-nest-ui-tree.d.ts +1 -1
@@ -27,87 +27,93 @@ class XDropdownProperty extends XPropertyFunction(X_DROPDOWN_CONFIG_NAME) {
27
27
  * @zh_CN 节点数据
28
28
  * @en_US Node data
29
29
  */
30
- this.data = input([], { ...(ngDevMode ? { debugName: "data" } : {}), transform: XToDataArray });
30
+ this.data = input([], { ...(ngDevMode ? { debugName: "data" } : /* istanbul ignore next */ {}), transform: XToDataArray });
31
31
  /**
32
32
  * @zh_CN 触发方式
33
33
  * @en_US Trigger method
34
34
  */
35
- this.trigger = input(this.config?.trigger ?? 'hover', ...(ngDevMode ? [{ debugName: "trigger" }] : []));
35
+ this.trigger = input(this.config?.trigger ?? 'hover', /* @ts-ignore */
36
+ ...(ngDevMode ? [{ debugName: "trigger" }] : /* istanbul ignore next */ []));
36
37
  /**
37
38
  * @zh_CN 展示位置
38
39
  * @en_US Placement
39
40
  */
40
- this.placement = input(this.config?.placement ?? 'bottom-start', ...(ngDevMode ? [{ debugName: "placement" }] : []));
41
+ this.placement = input(this.config?.placement ?? 'bottom-start', /* @ts-ignore */
42
+ ...(ngDevMode ? [{ debugName: "placement" }] : /* istanbul ignore next */ []));
41
43
  /**
42
44
  * @zh_CN 禁用
43
45
  * @en_US Disabled
44
46
  */
45
- this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: XToBoolean });
47
+ this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: XToBoolean });
46
48
  /**
47
49
  * @zh_CN 节点中已经包含子节点数据
48
50
  * @en_US The node already contains child node data
49
51
  */
50
- this.children = input(false, { ...(ngDevMode ? { debugName: "children" } : {}), transform: XToBoolean });
52
+ this.children = input(false, { ...(ngDevMode ? { debugName: "children" } : /* istanbul ignore next */ {}), transform: XToBoolean });
51
53
  /**
52
54
  * @zh_CN 下拉框设置样式名
53
55
  * @en_US The style class name of the drop-down box
54
56
  */
55
- this.portalClass = input('', ...(ngDevMode ? [{ debugName: "portalClass" }] : []));
57
+ this.portalClass = input('', /* @ts-ignore */
58
+ ...(ngDevMode ? [{ debugName: "portalClass" }] : /* istanbul ignore next */ []));
56
59
  /**
57
60
  * @zh_CN 弹框的最小宽度
58
61
  * @en_US Portal min-width
59
62
  */
60
- this.portalMinWidth = input('', { ...(ngDevMode ? { debugName: "portalMinWidth" } : {}), transform: XToCssPixelValue });
63
+ this.portalMinWidth = input('', { ...(ngDevMode ? { debugName: "portalMinWidth" } : /* istanbul ignore next */ {}), transform: XToCssPixelValue });
61
64
  /**
62
65
  * @zh_CN 弹框的最大宽度
63
66
  * @en_US Portal max-width
64
67
  */
65
- this.portalMaxWidth = input('', { ...(ngDevMode ? { debugName: "portalMaxWidth" } : {}), transform: XToCssPixelValue });
68
+ this.portalMaxWidth = input('', { ...(ngDevMode ? { debugName: "portalMaxWidth" } : /* istanbul ignore next */ {}), transform: XToCssPixelValue });
66
69
  /**
67
70
  * @zh_CN 弹框的最小高度
68
71
  * @en_US Portal min-height
69
72
  */
70
- this.portalMinHeight = input('', { ...(ngDevMode ? { debugName: "portalMinHeight" } : {}), transform: XToCssPixelValue });
73
+ this.portalMinHeight = input('', { ...(ngDevMode ? { debugName: "portalMinHeight" } : /* istanbul ignore next */ {}), transform: XToCssPixelValue });
71
74
  /**
72
75
  * @zh_CN 弹框的最大高度
73
76
  * @en_US Portal max-height
74
77
  */
75
- this.portalMaxHeight = input('', { ...(ngDevMode ? { debugName: "portalMaxHeight" } : {}), transform: XToCssPixelValue });
78
+ this.portalMaxHeight = input('', { ...(ngDevMode ? { debugName: "portalMaxHeight" } : /* istanbul ignore next */ {}), transform: XToCssPixelValue });
76
79
  /**
77
80
  * @zh_CN 弹框的宽度
78
81
  * @en_US The width of the drop-down box
79
82
  */
80
- this.portalWidth = input('', { ...(ngDevMode ? { debugName: "portalWidth" } : {}), transform: XToCssPixelValue });
83
+ this.portalWidth = input('', { ...(ngDevMode ? { debugName: "portalWidth" } : /* istanbul ignore next */ {}), transform: XToCssPixelValue });
81
84
  /**
82
85
  * @zh_CN hover 延迟触发时间,只有 trigger 为 'hover' 生效
83
86
  * @en_US Hover delay trigger time, only trigger is the 'hover'
84
87
  */
85
- this.hoverDelay = input(200, { ...(ngDevMode ? { debugName: "hoverDelay" } : {}), transform: XToNumber });
88
+ this.hoverDelay = input(200, { ...(ngDevMode ? { debugName: "hoverDelay" } : /* istanbul ignore next */ {}), transform: XToNumber });
86
89
  /**
87
90
  * @zh_CN visible 参数控制显示/隐藏
88
91
  * @en_US visible parameter controls display/hide
89
92
  */
90
- this.visible = model(null, ...(ngDevMode ? [{ debugName: "visible" }] : []));
93
+ this.visible = model(null, /* @ts-ignore */
94
+ ...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
91
95
  /**
92
96
  * @zh_CN 当前激活的菜单
93
97
  * @en_US The currently activated menu
94
98
  */
95
- this.activatedId = model(...(ngDevMode ? [undefined, { debugName: "activatedId" }] : []));
99
+ this.activatedId = model(/* @ts-ignore */
100
+ ...(ngDevMode ? [undefined, { debugName: "activatedId" }] : /* istanbul ignore next */ []));
96
101
  /**
97
102
  * @zh_CN 尺寸
98
103
  * @en_US Size
99
104
  */
100
- this.size = input(this.config?.size ?? 'medium', ...(ngDevMode ? [{ debugName: "size" }] : []));
105
+ this.size = input(this.config?.size ?? 'medium', /* @ts-ignore */
106
+ ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
101
107
  /**
102
108
  * @zh_CN 节点点击事件
103
109
  * @en_US Node click event
104
110
  */
105
111
  this.nodeClick = output();
106
112
  }
107
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XDropdownProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
108
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.1", type: XDropdownProperty, isStandalone: true, selector: "x-dropdown-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, trigger: { classPropertyName: "trigger", publicName: "trigger", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, children: { classPropertyName: "children", publicName: "children", isSignal: true, isRequired: false, transformFunction: null }, portalClass: { classPropertyName: "portalClass", publicName: "portalClass", isSignal: true, isRequired: false, transformFunction: null }, portalMinWidth: { classPropertyName: "portalMinWidth", publicName: "portalMinWidth", isSignal: true, isRequired: false, transformFunction: null }, portalMaxWidth: { classPropertyName: "portalMaxWidth", publicName: "portalMaxWidth", isSignal: true, isRequired: false, transformFunction: null }, portalMinHeight: { classPropertyName: "portalMinHeight", publicName: "portalMinHeight", isSignal: true, isRequired: false, transformFunction: null }, portalMaxHeight: { classPropertyName: "portalMaxHeight", publicName: "portalMaxHeight", isSignal: true, isRequired: false, transformFunction: null }, portalWidth: { classPropertyName: "portalWidth", publicName: "portalWidth", isSignal: true, isRequired: false, transformFunction: null }, hoverDelay: { classPropertyName: "hoverDelay", publicName: "hoverDelay", isSignal: true, isRequired: false, transformFunction: null }, visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, activatedId: { classPropertyName: "activatedId", publicName: "activatedId", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visible: "visibleChange", activatedId: "activatedIdChange", nodeClick: "nodeClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
113
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XDropdownProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
114
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.1", type: XDropdownProperty, isStandalone: true, selector: "x-dropdown-property", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, trigger: { classPropertyName: "trigger", publicName: "trigger", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, children: { classPropertyName: "children", publicName: "children", isSignal: true, isRequired: false, transformFunction: null }, portalClass: { classPropertyName: "portalClass", publicName: "portalClass", isSignal: true, isRequired: false, transformFunction: null }, portalMinWidth: { classPropertyName: "portalMinWidth", publicName: "portalMinWidth", isSignal: true, isRequired: false, transformFunction: null }, portalMaxWidth: { classPropertyName: "portalMaxWidth", publicName: "portalMaxWidth", isSignal: true, isRequired: false, transformFunction: null }, portalMinHeight: { classPropertyName: "portalMinHeight", publicName: "portalMinHeight", isSignal: true, isRequired: false, transformFunction: null }, portalMaxHeight: { classPropertyName: "portalMaxHeight", publicName: "portalMaxHeight", isSignal: true, isRequired: false, transformFunction: null }, portalWidth: { classPropertyName: "portalWidth", publicName: "portalWidth", isSignal: true, isRequired: false, transformFunction: null }, hoverDelay: { classPropertyName: "hoverDelay", publicName: "hoverDelay", isSignal: true, isRequired: false, transformFunction: null }, visible: { classPropertyName: "visible", publicName: "visible", isSignal: true, isRequired: false, transformFunction: null }, activatedId: { classPropertyName: "activatedId", publicName: "activatedId", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { visible: "visibleChange", activatedId: "activatedIdChange", nodeClick: "nodeClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
109
115
  }
110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XDropdownProperty, decorators: [{
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XDropdownProperty, decorators: [{
111
117
  type: Component,
112
118
  args: [{ selector: `${XDropdownPrefix}-property`, template: '' }]
113
119
  }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], trigger: [{ type: i0.Input, args: [{ isSignal: true, alias: "trigger", required: false }] }], placement: [{ type: i0.Input, args: [{ isSignal: true, alias: "placement", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], children: [{ type: i0.Input, args: [{ isSignal: true, alias: "children", required: false }] }], portalClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "portalClass", required: false }] }], portalMinWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "portalMinWidth", required: false }] }], portalMaxWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "portalMaxWidth", required: false }] }], portalMinHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "portalMinHeight", required: false }] }], portalMaxHeight: [{ type: i0.Input, args: [{ isSignal: true, alias: "portalMaxHeight", required: false }] }], portalWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "portalWidth", required: false }] }], hoverDelay: [{ type: i0.Input, args: [{ isSignal: true, alias: "hoverDelay", required: false }] }], visible: [{ type: i0.Input, args: [{ isSignal: true, alias: "visible", required: false }] }, { type: i0.Output, args: ["visibleChange"] }], activatedId: [{ type: i0.Input, args: [{ isSignal: true, alias: "activatedId", required: false }] }, { type: i0.Output, args: ["activatedIdChange"] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], nodeClick: [{ type: i0.Output, args: ["nodeClick"] }] } });
@@ -138,28 +144,45 @@ class XDropdownPortalComponent {
138
144
  constructor() {
139
145
  this.animateEnter = 'x-connect-enter';
140
146
  this.animateLeave = 'x-connect-leave';
141
- this.data = input([], ...(ngDevMode ? [{ debugName: "data" }] : []));
142
- this.trigger = input('hover', ...(ngDevMode ? [{ debugName: "trigger" }] : []));
143
- this.placement = input(...(ngDevMode ? [undefined, { debugName: "placement" }] : []));
144
- this.size = input('medium', ...(ngDevMode ? [{ debugName: "size" }] : []));
145
- this.minWidth = input(...(ngDevMode ? [undefined, { debugName: "minWidth" }] : []));
146
- this.maxWidth = input(...(ngDevMode ? [undefined, { debugName: "maxWidth" }] : []));
147
- this.minHeight = input(...(ngDevMode ? [undefined, { debugName: "minHeight" }] : []));
148
- this.maxHeight = input(...(ngDevMode ? [undefined, { debugName: "maxHeight" }] : []));
149
- this.level = input(0, ...(ngDevMode ? [{ debugName: "level" }] : []));
150
- this.parentPortalComponent = input(...(ngDevMode ? [undefined, { debugName: "parentPortalComponent" }] : []));
151
- this.isKeyboardControlled = model(true, ...(ngDevMode ? [{ debugName: "isKeyboardControlled" }] : []));
147
+ this.data = input([], /* @ts-ignore */
148
+ ...(ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ []));
149
+ this.trigger = input('hover', /* @ts-ignore */
150
+ ...(ngDevMode ? [{ debugName: "trigger" }] : /* istanbul ignore next */ []));
151
+ this.placement = input(/* @ts-ignore */
152
+ ...(ngDevMode ? [undefined, { debugName: "placement" }] : /* istanbul ignore next */ []));
153
+ this.size = input('medium', /* @ts-ignore */
154
+ ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
155
+ this.minWidth = input(/* @ts-ignore */
156
+ ...(ngDevMode ? [undefined, { debugName: "minWidth" }] : /* istanbul ignore next */ []));
157
+ this.maxWidth = input(/* @ts-ignore */
158
+ ...(ngDevMode ? [undefined, { debugName: "maxWidth" }] : /* istanbul ignore next */ []));
159
+ this.minHeight = input(/* @ts-ignore */
160
+ ...(ngDevMode ? [undefined, { debugName: "minHeight" }] : /* istanbul ignore next */ []));
161
+ this.maxHeight = input(/* @ts-ignore */
162
+ ...(ngDevMode ? [undefined, { debugName: "maxHeight" }] : /* istanbul ignore next */ []));
163
+ this.level = input(0, /* @ts-ignore */
164
+ ...(ngDevMode ? [{ debugName: "level" }] : /* istanbul ignore next */ []));
165
+ this.parentPortalComponent = input(/* @ts-ignore */
166
+ ...(ngDevMode ? [undefined, { debugName: "parentPortalComponent" }] : /* istanbul ignore next */ []));
167
+ this.isKeyboardControlled = model(true, /* @ts-ignore */
168
+ ...(ngDevMode ? [{ debugName: "isKeyboardControlled" }] : /* istanbul ignore next */ []));
152
169
  this.closed = output();
153
170
  this.animating = output();
154
171
  this.nodeClick = output();
155
172
  this.portalHover = output();
156
- this.node = signal(null, ...(ngDevMode ? [{ debugName: "node" }] : []));
173
+ this.node = signal(null, /* @ts-ignore */
174
+ ...(ngDevMode ? [{ debugName: "node" }] : /* istanbul ignore next */ []));
157
175
  this.list = viewChild.required('list');
158
- this.portalPlacement = signal(null, ...(ngDevMode ? [{ debugName: "portalPlacement" }] : []));
159
- this.childAnimating = signal(false, ...(ngDevMode ? [{ debugName: "childAnimating" }] : []));
160
- this.activatedId = model(...(ngDevMode ? [undefined, { debugName: "activatedId" }] : []));
161
- this.destroy = signal(false, ...(ngDevMode ? [{ debugName: "destroy" }] : []));
162
- this.active = signal(0, ...(ngDevMode ? [{ debugName: "active" }] : []));
176
+ this.portalPlacement = signal(null, /* @ts-ignore */
177
+ ...(ngDevMode ? [{ debugName: "portalPlacement" }] : /* istanbul ignore next */ []));
178
+ this.childAnimating = signal(false, /* @ts-ignore */
179
+ ...(ngDevMode ? [{ debugName: "childAnimating" }] : /* istanbul ignore next */ []));
180
+ this.activatedId = model(/* @ts-ignore */
181
+ ...(ngDevMode ? [undefined, { debugName: "activatedId" }] : /* istanbul ignore next */ []));
182
+ this.destroy = signal(false, /* @ts-ignore */
183
+ ...(ngDevMode ? [{ debugName: "destroy" }] : /* istanbul ignore next */ []));
184
+ this.active = signal(0, /* @ts-ignore */
185
+ ...(ngDevMode ? [{ debugName: "active" }] : /* istanbul ignore next */ []));
163
186
  this.unSubject = new Subject();
164
187
  this.destroyRef = inject(DestroyRef);
165
188
  this.activatedIdComputed = computed(() => {
@@ -172,12 +195,15 @@ class XDropdownPortalComponent {
172
195
  }
173
196
  }
174
197
  return null;
175
- }, ...(ngDevMode ? [{ debugName: "activatedIdComputed" }] : []));
198
+ }, /* @ts-ignore */
199
+ ...(ngDevMode ? [{ debugName: "activatedIdComputed" }] : /* istanbul ignore next */ []));
176
200
  this.portalService = inject(XPortalService);
177
201
  this.overlay = inject(Overlay);
178
202
  this.viewContainerRef = inject(ViewContainerRef);
179
- this.portalComponent = signal(null, ...(ngDevMode ? [{ debugName: "portalComponent" }] : []));
180
- this.portalOverlayRef = signal(null, ...(ngDevMode ? [{ debugName: "portalOverlayRef" }] : []));
203
+ this.portalComponent = signal(null, /* @ts-ignore */
204
+ ...(ngDevMode ? [{ debugName: "portalComponent" }] : /* istanbul ignore next */ []));
205
+ this.portalOverlayRef = signal(null, /* @ts-ignore */
206
+ ...(ngDevMode ? [{ debugName: "portalOverlayRef" }] : /* istanbul ignore next */ []));
181
207
  effect(() => this.portalComponent()?.setInput('data', this.node()?.children));
182
208
  effect(() => this.portalComponent()?.setInput('trigger', this.trigger()));
183
209
  effect(() => this.portalComponent()?.setInput('level', this.level() + 1));
@@ -353,10 +379,10 @@ class XDropdownPortalComponent {
353
379
  }
354
380
  return null;
355
381
  }
356
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XDropdownPortalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
357
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.1", type: XDropdownPortalComponent, isStandalone: true, selector: "x-dropdown-portal", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, trigger: { classPropertyName: "trigger", publicName: "trigger", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: false, transformFunction: null }, parentPortalComponent: { classPropertyName: "parentPortalComponent", publicName: "parentPortalComponent", isSignal: true, isRequired: false, transformFunction: null }, isKeyboardControlled: { classPropertyName: "isKeyboardControlled", publicName: "isKeyboardControlled", isSignal: true, isRequired: false, transformFunction: null }, activatedId: { classPropertyName: "activatedId", publicName: "activatedId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isKeyboardControlled: "isKeyboardControlledChange", closed: "closed", animating: "animating", nodeClick: "nodeClick", portalHover: "portalHover", activatedId: "activatedIdChange" }, host: { listeners: { "animationend": "done()", "animationstart": "start()", "mouseenter": "mouseenter()", "mouseleave": "mouseleave()" }, properties: { "animate.enter": "this.animateEnter", "animate.leave": "this.animateLeave" } }, viewQueries: [{ propertyName: "list", first: true, predicate: ["list"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\r\n #dropdownPortal\r\n class=\"x-dropdown-portal\"\r\n [style.minWidth]=\"minWidth()\"\r\n [style.maxWidth]=\"maxWidth()\"\r\n [style.minHeight]=\"minHeight()\"\r\n [style.maxHeight]=\"maxHeight()\"\r\n>\r\n <x-list\r\n #list\r\n [data]=\"data()\"\r\n [ngModel]=\"activatedIdComputed()\"\r\n (nodeClick)=\"onNodeClick($event)\"\r\n (keyManagerChange)=\"onActive($event)\"\r\n (keyManagerTabOut)=\"onTabOut()\"\r\n (nodeMouseenter)=\"onEnter($event)\"\r\n (nodeMouseleave)=\"onLeave()\"\r\n [isKeyboardControlled]=\"isKeyboardControlled()\"\r\n [inPortal]=\"true\"\r\n [size]=\"size()\"\r\n ></x-list>\r\n</div>\r\n", styles: ["x-dropdown-portal{width:100%}.x-dropdown-portal{margin:.0625rem 0;color:var(--x-text);width:100%;background-color:var(--x-background-100);border-radius:var(--x-border-small-radius);box-shadow:var(--x-box-shadow);position:relative;display:flex;overflow:auto}.x-dropdown-portal .x-open-portal{background-color:var(--x-background-a200)}.x-dropdown-portal-child{margin-top:-.3125rem}.x-dropdown-portal-child>x-dropdown-portal{padding:0 .3125rem}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: XListComponent, selector: "x-list" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
382
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XDropdownPortalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
383
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.1", type: XDropdownPortalComponent, isStandalone: true, selector: "x-dropdown-portal", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, trigger: { classPropertyName: "trigger", publicName: "trigger", isSignal: true, isRequired: false, transformFunction: null }, placement: { classPropertyName: "placement", publicName: "placement", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, maxWidth: { classPropertyName: "maxWidth", publicName: "maxWidth", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null }, maxHeight: { classPropertyName: "maxHeight", publicName: "maxHeight", isSignal: true, isRequired: false, transformFunction: null }, level: { classPropertyName: "level", publicName: "level", isSignal: true, isRequired: false, transformFunction: null }, parentPortalComponent: { classPropertyName: "parentPortalComponent", publicName: "parentPortalComponent", isSignal: true, isRequired: false, transformFunction: null }, isKeyboardControlled: { classPropertyName: "isKeyboardControlled", publicName: "isKeyboardControlled", isSignal: true, isRequired: false, transformFunction: null }, activatedId: { classPropertyName: "activatedId", publicName: "activatedId", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { isKeyboardControlled: "isKeyboardControlledChange", closed: "closed", animating: "animating", nodeClick: "nodeClick", portalHover: "portalHover", activatedId: "activatedIdChange" }, host: { listeners: { "animationend": "done()", "animationstart": "start()", "mouseenter": "mouseenter()", "mouseleave": "mouseleave()" }, properties: { "animate.enter": "this.animateEnter", "animate.leave": "this.animateLeave" } }, viewQueries: [{ propertyName: "list", first: true, predicate: ["list"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\r\n #dropdownPortal\r\n class=\"x-dropdown-portal\"\r\n [style.minWidth]=\"minWidth()\"\r\n [style.maxWidth]=\"maxWidth()\"\r\n [style.minHeight]=\"minHeight()\"\r\n [style.maxHeight]=\"maxHeight()\"\r\n>\r\n <x-list\r\n #list\r\n [data]=\"data()\"\r\n [ngModel]=\"activatedIdComputed()\"\r\n (nodeClick)=\"onNodeClick($event)\"\r\n (keyManagerChange)=\"onActive($event)\"\r\n (keyManagerTabOut)=\"onTabOut()\"\r\n (nodeMouseenter)=\"onEnter($event)\"\r\n (nodeMouseleave)=\"onLeave()\"\r\n [isKeyboardControlled]=\"isKeyboardControlled()\"\r\n [inPortal]=\"true\"\r\n [size]=\"size()\"\r\n ></x-list>\r\n</div>\r\n", styles: ["x-dropdown-portal{width:100%}.x-dropdown-portal{margin:.0625rem 0;color:var(--x-text);width:100%;background-color:var(--x-background-100);border-radius:var(--x-border-small-radius);box-shadow:var(--x-box-shadow);position:relative;display:flex;overflow:auto}.x-dropdown-portal .x-open-portal{background-color:var(--x-background-a200)}.x-dropdown-portal-child{margin-top:-.3125rem}.x-dropdown-portal-child>x-dropdown-portal{padding:0 .3125rem}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: XListComponent, selector: "x-list" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
358
384
  }
359
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XDropdownPortalComponent, decorators: [{
385
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XDropdownPortalComponent, decorators: [{
360
386
  type: Component,
361
387
  args: [{ selector: `${XDropdownPortalPrefix}`, imports: [FormsModule, XListComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n #dropdownPortal\r\n class=\"x-dropdown-portal\"\r\n [style.minWidth]=\"minWidth()\"\r\n [style.maxWidth]=\"maxWidth()\"\r\n [style.minHeight]=\"minHeight()\"\r\n [style.maxHeight]=\"maxHeight()\"\r\n>\r\n <x-list\r\n #list\r\n [data]=\"data()\"\r\n [ngModel]=\"activatedIdComputed()\"\r\n (nodeClick)=\"onNodeClick($event)\"\r\n (keyManagerChange)=\"onActive($event)\"\r\n (keyManagerTabOut)=\"onTabOut()\"\r\n (nodeMouseenter)=\"onEnter($event)\"\r\n (nodeMouseleave)=\"onLeave()\"\r\n [isKeyboardControlled]=\"isKeyboardControlled()\"\r\n [inPortal]=\"true\"\r\n [size]=\"size()\"\r\n ></x-list>\r\n</div>\r\n", styles: ["x-dropdown-portal{width:100%}.x-dropdown-portal{margin:.0625rem 0;color:var(--x-text);width:100%;background-color:var(--x-background-100);border-radius:var(--x-border-small-radius);box-shadow:var(--x-box-shadow);position:relative;display:flex;overflow:auto}.x-dropdown-portal .x-open-portal{background-color:var(--x-background-a200)}.x-dropdown-portal-child{margin-top:-.3125rem}.x-dropdown-portal-child>x-dropdown-portal{padding:0 .3125rem}\n"] }]
362
388
  }], ctorParameters: () => [], propDecorators: { animateEnter: [{
@@ -393,19 +419,29 @@ class XDropdownComponent extends XDropdownProperty {
393
419
  return data.filter((y) => XIsEmpty(y.pid)).map((y) => XGetChildren(data, y, 0));
394
420
  }
395
421
  return XHasChildren(data, 0);
396
- }, ...(ngDevMode ? [{ debugName: "nodes" }] : []));
397
- this.animating = signal(false, ...(ngDevMode ? [{ debugName: "animating" }] : []));
398
- this.visibleClass = signal(false, ...(ngDevMode ? [{ debugName: "visibleClass" }] : []));
399
- this.outsideClick = signal(false, ...(ngDevMode ? [{ debugName: "outsideClick" }] : []));
400
- this.isClickNodeLeaf = signal(false, ...(ngDevMode ? [{ debugName: "isClickNodeLeaf" }] : []));
401
- this.minWidth = signal('0px', ...(ngDevMode ? [{ debugName: "minWidth" }] : []));
422
+ }, /* @ts-ignore */
423
+ ...(ngDevMode ? [{ debugName: "nodes" }] : /* istanbul ignore next */ []));
424
+ this.animating = signal(false, /* @ts-ignore */
425
+ ...(ngDevMode ? [{ debugName: "animating" }] : /* istanbul ignore next */ []));
426
+ this.visibleClass = signal(false, /* @ts-ignore */
427
+ ...(ngDevMode ? [{ debugName: "visibleClass" }] : /* istanbul ignore next */ []));
428
+ this.outsideClick = signal(false, /* @ts-ignore */
429
+ ...(ngDevMode ? [{ debugName: "outsideClick" }] : /* istanbul ignore next */ []));
430
+ this.isClickNodeLeaf = signal(false, /* @ts-ignore */
431
+ ...(ngDevMode ? [{ debugName: "isClickNodeLeaf" }] : /* istanbul ignore next */ []));
432
+ this.minWidth = signal('0px', /* @ts-ignore */
433
+ ...(ngDevMode ? [{ debugName: "minWidth" }] : /* istanbul ignore next */ []));
402
434
  this.hoverDelayUnsub = new Subject();
403
435
  this.closeSubject = new Subject();
404
436
  this.keydownSubject = new Subject();
405
- this.isNullVisible = signal(false, ...(ngDevMode ? [{ debugName: "isNullVisible" }] : []));
406
- this.realPlacement = signal(null, ...(ngDevMode ? [{ debugName: "realPlacement" }] : []));
407
- this.portalComponent = signal(null, ...(ngDevMode ? [{ debugName: "portalComponent" }] : []));
408
- this.portalOverlayRef = signal(null, ...(ngDevMode ? [{ debugName: "portalOverlayRef" }] : []));
437
+ this.isNullVisible = signal(false, /* @ts-ignore */
438
+ ...(ngDevMode ? [{ debugName: "isNullVisible" }] : /* istanbul ignore next */ []));
439
+ this.realPlacement = signal(null, /* @ts-ignore */
440
+ ...(ngDevMode ? [{ debugName: "realPlacement" }] : /* istanbul ignore next */ []));
441
+ this.portalComponent = signal(null, /* @ts-ignore */
442
+ ...(ngDevMode ? [{ debugName: "portalComponent" }] : /* istanbul ignore next */ []));
443
+ this.portalOverlayRef = signal(null, /* @ts-ignore */
444
+ ...(ngDevMode ? [{ debugName: "portalOverlayRef" }] : /* istanbul ignore next */ []));
409
445
  effect(() => this.portalComponent()?.setInput('data', this.nodes()));
410
446
  effect(() => this.portalComponent()?.setInput('trigger', this.trigger()));
411
447
  effect(() => this.portalComponent()?.setInput('minWidth', this.minWidth()));
@@ -587,20 +623,20 @@ class XDropdownComponent extends XDropdownProperty {
587
623
  transformOriginOn: 'x-dropdown-portal'
588
624
  });
589
625
  }
590
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
591
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.1", type: XDropdownComponent, isStandalone: true, selector: "x-dropdown", viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #dropdown\r\n class=\"x-dropdown\"\r\n [class.x-visible]=\"visibleClass()\"\r\n (mouseenter)=\"onEnter()\"\r\n (mouseleave)=\"onLeave()\"\r\n (click)=\"onClickShow()\"\r\n (keydown)=\"onKeydown($event)\"\r\n tabindex=\"-1\"\r\n>\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".x-dropdown{margin:0;padding:0}.x-dropdown{display:inline-block}.x-dropdown.x-visible{color:var(--x-primary)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
626
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
627
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.1", type: XDropdownComponent, isStandalone: true, selector: "x-dropdown", viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, isSignal: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #dropdown\r\n class=\"x-dropdown\"\r\n [class.x-visible]=\"visibleClass()\"\r\n (mouseenter)=\"onEnter()\"\r\n (mouseleave)=\"onLeave()\"\r\n (click)=\"onClickShow()\"\r\n (keydown)=\"onKeydown($event)\"\r\n tabindex=\"-1\"\r\n>\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".x-dropdown{margin:0;padding:0}.x-dropdown{display:inline-block}.x-dropdown.x-visible{color:var(--x-primary)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
592
628
  }
593
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XDropdownComponent, decorators: [{
629
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XDropdownComponent, decorators: [{
594
630
  type: Component,
595
631
  args: [{ selector: `${XDropdownPrefix}`, imports: [], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n #dropdown\r\n class=\"x-dropdown\"\r\n [class.x-visible]=\"visibleClass()\"\r\n (mouseenter)=\"onEnter()\"\r\n (mouseleave)=\"onLeave()\"\r\n (click)=\"onClickShow()\"\r\n (keydown)=\"onKeydown($event)\"\r\n tabindex=\"-1\"\r\n>\r\n <ng-content></ng-content>\r\n</div>\r\n", styles: [".x-dropdown{margin:0;padding:0}.x-dropdown{display:inline-block}.x-dropdown.x-visible{color:var(--x-primary)}\n"] }]
596
632
  }], ctorParameters: () => [], propDecorators: { dropdown: [{ type: i0.ViewChild, args: ['dropdown', { isSignal: true }] }] } });
597
633
 
598
634
  class XDropdownModule {
599
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
600
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.1", ngImport: i0, type: XDropdownModule, imports: [XDropdownComponent], exports: [XDropdownComponent] }); }
601
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XDropdownModule }); }
635
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
636
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.1", ngImport: i0, type: XDropdownModule, imports: [XDropdownComponent], exports: [XDropdownComponent] }); }
637
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XDropdownModule }); }
602
638
  }
603
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.1", ngImport: i0, type: XDropdownModule, decorators: [{
639
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: XDropdownModule, decorators: [{
604
640
  type: NgModule,
605
641
  args: [{
606
642
  imports: [XDropdownComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"ng-nest-ui-dropdown.mjs","sources":["../../../../lib/ng-nest/ui/dropdown/dropdown.property.ts","../../../../lib/ng-nest/ui/dropdown/dropdown-portal.component.ts","../../../../lib/ng-nest/ui/dropdown/dropdown-portal.component.html","../../../../lib/ng-nest/ui/dropdown/dropdown.component.ts","../../../../lib/ng-nest/ui/dropdown/dropdown.component.html","../../../../lib/ng-nest/ui/dropdown/dropdown.module.ts","../../../../lib/ng-nest/ui/dropdown/ng-nest-ui-dropdown.ts"],"sourcesContent":["import {\r\n XBoolean,\r\n XPlacement,\r\n XSize,\r\n XPropertyFunction,\r\n XToDataArray,\r\n XDataArray,\r\n XToBoolean,\r\n XToCssPixelValue,\r\n XNumber,\r\n XToNumber,\r\n XTrigger\r\n} from '@ng-nest/ui/core';\r\nimport { XListNode } from '@ng-nest/ui/list';\r\nimport { Component, input, model, output } from '@angular/core';\r\n\r\n/**\r\n * Dropdown\r\n * @selector x-dropdown\r\n * @decorator component\r\n */\r\nexport const XDropdownPrefix = 'x-dropdown';\r\nconst X_DROPDOWN_CONFIG_NAME = 'dropdown';\r\n\r\n/**\r\n * Dropdown Property\r\n */\r\n@Component({ selector: `${XDropdownPrefix}-property`, template: '' })\r\nexport class XDropdownProperty extends XPropertyFunction(X_DROPDOWN_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n readonly data = input<XDropdownNode[], XDataArray<XDropdownNode>>([], { transform: XToDataArray });\r\n /**\r\n * @zh_CN 触发方式\r\n * @en_US Trigger method\r\n */\r\n readonly trigger = input<XDropdownTrigger>(this.config?.trigger ?? 'hover');\r\n /**\r\n * @zh_CN 展示位置\r\n * @en_US Placement\r\n */\r\n readonly placement = input<XPlacement>(this.config?.placement ?? 'bottom-start');\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 节点中已经包含子节点数据\r\n * @en_US The node already contains child node data\r\n */\r\n readonly children = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 下拉框设置样式名\r\n * @en_US The style class name of the drop-down box\r\n */\r\n readonly portalClass = input<string | string[]>('');\r\n /**\r\n * @zh_CN 弹框的最小宽度\r\n * @en_US Portal min-width\r\n */\r\n readonly portalMinWidth = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 弹框的最大宽度\r\n * @en_US Portal max-width\r\n */\r\n readonly portalMaxWidth = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 弹框的最小高度\r\n * @en_US Portal min-height\r\n */\r\n readonly portalMinHeight = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 弹框的最大高度\r\n * @en_US Portal max-height\r\n */\r\n readonly portalMaxHeight = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 弹框的宽度\r\n * @en_US The width of the drop-down box\r\n */\r\n readonly portalWidth = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN hover 延迟触发时间,只有 trigger 为 'hover' 生效\r\n * @en_US Hover delay trigger time, only trigger is the 'hover'\r\n */\r\n readonly hoverDelay = input<number, XNumber>(200, { transform: XToNumber });\r\n /**\r\n * @zh_CN visible 参数控制显示/隐藏\r\n * @en_US visible parameter controls display/hide\r\n */\r\n readonly visible = model<boolean | null>(null);\r\n /**\r\n * @zh_CN 当前激活的菜单\r\n * @en_US The currently activated menu\r\n */\r\n readonly activatedId = model<string | number>();\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n readonly size = input<XSize>(this.config?.size ?? 'medium');\r\n /**\r\n * @zh_CN 节点点击事件\r\n * @en_US Node click event\r\n */\r\n readonly nodeClick = output<XDropdownNode>();\r\n}\r\n\r\n/**\r\n * @zh_CN Dropdown 数据对象\r\n * @en_US Dropdown data object\r\n */\r\nexport interface XDropdownNode extends XListNode {}\r\n\r\n/**\r\n * @zh_CN 显示方式\r\n * @en_US Display method\r\n */\r\nexport type XDropdownTrigger = XTrigger;\r\n\r\n/**\r\n * Dropdown Portal\r\n * @selector x-dropdown-portal\r\n * @decorator component\r\n */\r\nexport const XDropdownPortalPrefix = 'x-dropdown-portal';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n HostListener,\r\n ViewContainerRef,\r\n HostBinding,\r\n input,\r\n output,\r\n model,\r\n signal,\r\n inject,\r\n ComponentRef,\r\n effect,\r\n DestroyRef,\r\n viewChild,\r\n computed\r\n} from '@angular/core';\r\nimport { XDropdownPortalPrefix, XDropdownNode, XDropdownTrigger } from './dropdown.property';\r\nimport { XPortalConnectedPosition, XPortalOverlayRef, XPortalService } from '@ng-nest/ui/portal';\r\nimport { XPlacement, XPositionTopBottom, XSize } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport {\r\n ConnectedOverlayPositionChange,\r\n FlexibleConnectedPositionStrategy,\r\n Overlay,\r\n OverlayConfig,\r\n OverlayRef\r\n} from '@angular/cdk/overlay';\r\nimport { XListComponent } from '@ng-nest/ui/list';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\r\n\r\n@Component({\r\n selector: `${XDropdownPortalPrefix}`,\r\n imports: [FormsModule, XListComponent],\r\n templateUrl: './dropdown-portal.component.html',\r\n styleUrls: ['./dropdown-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XDropdownPortalComponent {\r\n @HostBinding('animate.enter') animateEnter = 'x-connect-enter';\r\n @HostBinding('animate.leave') animateLeave = 'x-connect-leave';\r\n\r\n @HostListener('animationend') done() {\r\n if (this.destroy()) return;\r\n this.animating.emit(false);\r\n }\r\n @HostListener('animationstart') start() {\r\n if (this.destroy()) return;\r\n this.animating.emit(true);\r\n }\r\n\r\n data = input<XDropdownNode[]>([]);\r\n trigger = input<XDropdownTrigger>('hover');\r\n placement = input<XPlacement>();\r\n size = input<XSize>('medium');\r\n minWidth = input<string>();\r\n maxWidth = input<string>();\r\n minHeight = input<string>();\r\n maxHeight = input<string>();\r\n level = input(0);\r\n parentPortalComponent = input<XDropdownPortalComponent>();\r\n isKeyboardControlled = model(true);\r\n closed = output();\r\n animating = output<boolean>();\r\n nodeClick = output<XDropdownNode>();\r\n portalHover = output<boolean>();\r\n portal!: XPortalOverlayRef<XDropdownPortalComponent>;\r\n node = signal<XDropdownNode | null>(null);\r\n timeoutHide: any;\r\n\r\n list = viewChild.required<XListComponent>('list');\r\n portalPlacement = signal<XPositionTopBottom | null>(null);\r\n childAnimating = signal(false);\r\n activatedId = model<any>();\r\n destroy = signal(false);\r\n closeSubject!: Subject<void>;\r\n keydownSubject!: Subject<KeyboardEvent>;\r\n active = signal(0);\r\n private unSubject = new Subject<void>();\r\n private destroyRef = inject(DestroyRef);\r\n\r\n activatedIdComputed = computed(() => {\r\n const path = this.findPathById(this.data(), this.activatedId());\r\n if (path) {\r\n for (let node of path) {\r\n const nd = this.data().find((x) => x.id === node.id);\r\n if (nd) return nd.id;\r\n }\r\n }\r\n return null;\r\n });\r\n\r\n @HostListener('mouseenter') mouseenter() {\r\n this.portalHover.emit(true);\r\n }\r\n\r\n @HostListener('mouseleave') mouseleave() {\r\n !this.portalAttached() && this.portalHover.emit(false);\r\n }\r\n\r\n portalService = inject(XPortalService);\r\n overlay = inject(Overlay);\r\n viewContainerRef = inject(ViewContainerRef);\r\n portalComponent = signal<ComponentRef<XDropdownPortalComponent> | null>(null);\r\n portalOverlayRef = signal<OverlayRef | null>(null);\r\n\r\n constructor() {\r\n effect(() => this.portalComponent()?.setInput('data', this.node()?.children));\r\n effect(() => this.portalComponent()?.setInput('trigger', this.trigger()));\r\n effect(() => this.portalComponent()?.setInput('level', this.level() + 1));\r\n effect(() => this.portalComponent()?.setInput('minWidth', this.minWidth()));\r\n effect(() => this.portalComponent()?.setInput('maxWidth', this.maxWidth()));\r\n effect(() => this.portalComponent()?.setInput('minHeight', this.minHeight()));\r\n effect(() => this.portalComponent()?.setInput('maxHeight', this.maxHeight()));\r\n effect(() => this.portalComponent()?.setInput('size', this.size()));\r\n effect(() => this.portalComponent()?.setInput('placement', this.portalPlacement()));\r\n effect(() => this.portalComponent()?.setInput('activatedId', this.activatedId()));\r\n effect(() => this.portalComponent()?.setInput('parentPortalComponent', this));\r\n }\r\n\r\n ngOnInit() {\r\n this.closeSubject.subscribe(() => {\r\n this.data() && this.data()!.length > 0 && this.list().setUnActive(this.active());\r\n });\r\n this.keydownSubject.pipe(takeUntil(this.unSubject)).subscribe((x) => {\r\n if (!this.isKeyboardControlled()) return;\r\n const keyCode = x.keyCode;\r\n const isRightArrow = [RIGHT_ARROW].includes(keyCode);\r\n const isLeftArrow = [LEFT_ARROW].includes(keyCode);\r\n if (isRightArrow) {\r\n const item = this.list().keyManager.activeItem!;\r\n if (item?.leaf()) {\r\n const node = item.node()!;\r\n node.event = x;\r\n node.component = item;\r\n this.isKeyboardControlled.set(false);\r\n this.onNodeClick(node);\r\n }\r\n }\r\n if (isLeftArrow && this.level() > 0) {\r\n this.parentPortalComponent()?.isKeyboardControlled.set(true);\r\n this.parentPortalComponent()?.closePortal();\r\n }\r\n this.data() && this.data()!.length > 0 && this.list().keydown(x);\r\n });\r\n this.destroyRef.onDestroy(() => {\r\n this.destroy.set(true);\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.list().keyManager.setFirstItemActive();\r\n }\r\n\r\n onNodeClick(node: XDropdownNode) {\r\n this.nodeClick.emit(node);\r\n if (!node.leaf) {\r\n this.activatedId.set(node.id);\r\n this.closeSubject.next();\r\n } else {\r\n if (node.disabled || this.childAnimating()) return;\r\n this.showPortal(node);\r\n }\r\n }\r\n\r\n portalAttached() {\r\n return this.portalOverlayRef()?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portalOverlayRef()?.dispose();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n createPortal() {\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n panelClass: 'x-dropdown-portal-child',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n minWidth: this.minWidth()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XDropdownPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this.unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XPositionTopBottom;\r\n if (place !== this.portalPlacement()) {\r\n this.portalPlacement.set(place);\r\n this.portalOverlayRef()?.updatePosition();\r\n }\r\n });\r\n }\r\n\r\n setInstance() {\r\n let { componentRef, overlayRef } = this.portal;\r\n if (!componentRef || !overlayRef) return;\r\n this.portalComponent.set(componentRef);\r\n this.portalOverlayRef.set(overlayRef);\r\n Object.assign(componentRef.instance, {\r\n closeSubject: this.closeSubject,\r\n keydownSubject: this.keydownSubject,\r\n parantPortal: this\r\n });\r\n const { closed, animating, nodeClick, portalHover, activatedId } = componentRef.instance;\r\n closed.subscribe(() => this.closePortal());\r\n animating.subscribe((ing) => this.childAnimating.set(ing));\r\n nodeClick.subscribe((node) => this.nodeClick.emit(node));\r\n activatedId.subscribe((id) => this.activatedId.set(id));\r\n portalHover.subscribe((hover) => this.hover(hover));\r\n }\r\n\r\n hover(hover: boolean) {\r\n if (this.timeoutHide && hover) {\r\n clearTimeout(this.timeoutHide);\r\n } else {\r\n this.portalHover.emit(false);\r\n this.onLeave();\r\n }\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.node()?.component?.getElementRef(),\r\n placement: ['right-start', 'right-end', 'left-start', 'left-end'],\r\n transformOriginOn: 'x-dropdown-portal'\r\n });\r\n }\r\n\r\n showPortal(node: XDropdownNode) {\r\n if (this.portalAttached() && this.node()?.id !== node.id) {\r\n this.portalOverlayRef()?.dispose();\r\n }\r\n this.node.set(node);\r\n if (!this.portalAttached()) {\r\n this.createPortal();\r\n }\r\n }\r\n\r\n onEnter(node: XDropdownNode) {\r\n if (!node.leaf || node.disabled || this.trigger() === 'click' || this.childAnimating()) return;\r\n if (this.timeoutHide) clearTimeout(this.timeoutHide);\r\n this.showPortal(node);\r\n }\r\n\r\n onLeave() {\r\n if (this.trigger() !== 'hover') return;\r\n if (this.portalAttached()) {\r\n this.timeoutHide = setTimeout(() => {\r\n this.closePortal();\r\n });\r\n }\r\n }\r\n\r\n onActive(num: number) {\r\n this.active.set(num);\r\n }\r\n\r\n onTabOut() {\r\n this.closeSubject.next();\r\n }\r\n\r\n findPathById(nodes: XDropdownNode[], id: number, currentPath: XDropdownNode[] = []): XDropdownNode[] | null {\r\n for (const node of nodes) {\r\n const newPath = [...currentPath, node];\r\n if (node.id === id) {\r\n return newPath;\r\n }\r\n if (node.children && node.children.length > 0) {\r\n const result = this.findPathById(node.children, id, newPath);\r\n if (result) {\r\n return result;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n","<div\r\n #dropdownPortal\r\n class=\"x-dropdown-portal\"\r\n [style.minWidth]=\"minWidth()\"\r\n [style.maxWidth]=\"maxWidth()\"\r\n [style.minHeight]=\"minHeight()\"\r\n [style.maxHeight]=\"maxHeight()\"\r\n>\r\n <x-list\r\n #list\r\n [data]=\"data()\"\r\n [ngModel]=\"activatedIdComputed()\"\r\n (nodeClick)=\"onNodeClick($event)\"\r\n (keyManagerChange)=\"onActive($event)\"\r\n (keyManagerTabOut)=\"onTabOut()\"\r\n (nodeMouseenter)=\"onEnter($event)\"\r\n (nodeMouseleave)=\"onLeave()\"\r\n [isKeyboardControlled]=\"isKeyboardControlled()\"\r\n [inPortal]=\"true\"\r\n [size]=\"size()\"\r\n ></x-list>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ChangeDetectionStrategy,\r\n ViewContainerRef,\r\n inject,\r\n OnDestroy,\r\n OnInit,\r\n signal,\r\n computed,\r\n viewChild,\r\n ComponentRef,\r\n effect,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XDropdownPrefix, XDropdownNode, XDropdownProperty } from './dropdown.property';\r\nimport { XIsEmpty, XHasChildren, XGetChildren, XPlacement, XIsChange, XIsNull } from '@ng-nest/ui/core';\r\nimport { of, Subject } from 'rxjs';\r\nimport { XPortalConnectedPosition, XPortalOverlayRef, XPortalService } from '@ng-nest/ui/portal';\r\nimport { XDropdownPortalComponent } from './dropdown-portal.component';\r\nimport { debounceTime, delay, takeUntil, throttleTime } from 'rxjs/operators';\r\nimport {\r\n ConnectedOverlayPositionChange,\r\n FlexibleConnectedPositionStrategy,\r\n Overlay,\r\n OverlayConfig,\r\n OverlayRef\r\n} from '@angular/cdk/overlay';\r\nimport { DOWN_ARROW, ESCAPE } from '@angular/cdk/keycodes';\r\n\r\n@Component({\r\n selector: `${XDropdownPrefix}`,\r\n imports: [],\r\n templateUrl: './dropdown.component.html',\r\n styleUrls: ['./dropdown.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XDropdownComponent extends XDropdownProperty implements OnInit, OnDestroy {\r\n private unSubject = new Subject<void>();\r\n private portalService = inject(XPortalService);\r\n private viewContainerRef = inject(ViewContainerRef);\r\n private overlay = inject(Overlay);\r\n dropdown = viewChild.required<ElementRef<HTMLElement>>('dropdown');\r\n nodes = computed(() => {\r\n const data = this.data();\r\n if (!this.children()) {\r\n return data.filter((y) => XIsEmpty(y.pid)).map((y) => XGetChildren<XDropdownNode>(data, y, 0));\r\n }\r\n return XHasChildren(data, 0);\r\n });\r\n portal!: XPortalOverlayRef<XDropdownPortalComponent>;\r\n timeoutHide: any;\r\n animating = signal(false);\r\n visibleClass = signal(false);\r\n outsideClick = signal(false);\r\n isClickNodeLeaf = signal(false);\r\n minWidth = signal<string>('0px');\r\n hoverDelayUnsub = new Subject<void>();\r\n closeSubject: Subject<void> = new Subject();\r\n keydownSubject: Subject<KeyboardEvent> = new Subject();\r\n isNullVisible = signal(false);\r\n\r\n private realPlacement = signal<XPlacement | null>(null);\r\n portalComponent = signal<ComponentRef<XDropdownPortalComponent> | null>(null);\r\n portalOverlayRef = signal<OverlayRef | null>(null);\r\n\r\n constructor() {\r\n super();\r\n effect(() => this.portalComponent()?.setInput('data', this.nodes()));\r\n effect(() => this.portalComponent()?.setInput('trigger', this.trigger()));\r\n effect(() => this.portalComponent()?.setInput('minWidth', this.minWidth()));\r\n effect(() => this.portalComponent()?.setInput('maxWidth', this.portalMaxWidth()));\r\n effect(() => this.portalComponent()?.setInput('minHeight', this.portalMinHeight()));\r\n effect(() => this.portalComponent()?.setInput('maxHeight', this.portalMaxHeight()));\r\n effect(() => this.portalComponent()?.setInput('activatedId', this.activatedId()));\r\n effect(() => this.portalComponent()?.setInput('size', this.size()));\r\n }\r\n\r\n ngOnInit() {\r\n this.setSubject();\r\n this.isNullVisible.set(XIsNull(this.visible()));\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n const { visible } = changes;\r\n XIsChange(visible) && this.setVisible();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n this.hoverDelayUnsub.next();\r\n this.hoverDelayUnsub.complete();\r\n }\r\n\r\n setVisible() {\r\n if (this.disabled() || this.animating()) return;\r\n if (this.visible()) {\r\n if (this.portalAttached()) {\r\n this.closeSubject.next();\r\n return;\r\n }\r\n this.createPortal();\r\n } else {\r\n this.closePortal();\r\n }\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this.unSubject)).subscribe(() => {\r\n this.closePortal();\r\n });\r\n this.keydownSubject.pipe(throttleTime(10), takeUntil(this.unSubject)).subscribe((x) => {\r\n const keyCode = x.keyCode;\r\n if (this.portalAttached() && [ESCAPE].includes(keyCode)) {\r\n this.closeSubject.next();\r\n }\r\n if (!this.portalAttached() && [DOWN_ARROW].includes(keyCode)) {\r\n if (this.disabled()) return;\r\n this.createPortal();\r\n }\r\n });\r\n }\r\n\r\n onEnter() {\r\n if (!this.isNullVisible()) return;\r\n of(true)\r\n .pipe(delay(this.hoverDelay()), takeUntil(this.hoverDelayUnsub))\r\n .subscribe(() => {\r\n if (this.disabled() || this.trigger() === 'click') return;\r\n if (this.timeoutHide) {\r\n clearTimeout(this.timeoutHide);\r\n this.timeoutHide = null;\r\n }\r\n if (!this.portal || (this.portal && !this.portalOverlayRef()?.hasAttached())) {\r\n this.createPortal();\r\n }\r\n });\r\n }\r\n\r\n onLeave() {\r\n if (!this.isNullVisible()) return;\r\n this.hoverDelayUnsub.next();\r\n if (this.disabled() || this.trigger() === 'click') return;\r\n if (this.portalOverlayRef()?.hasAttached()) {\r\n this.timeoutHide = setTimeout(() => {\r\n this.closePortal();\r\n });\r\n }\r\n }\r\n\r\n onClickShow() {\r\n if (this.disabled() || this.trigger() === 'hover' || this.animating()) return;\r\n if (this.trigger() === 'click' && this.portalAttached()) {\r\n this.closeSubject.next();\r\n return;\r\n }\r\n this.createPortal();\r\n }\r\n\r\n portalAttached() {\r\n return this.portalOverlayRef()?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portalOverlayRef()?.dispose();\r\n this.visibleClass.set(false);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n createPortal() {\r\n this.visibleClass.set(true);\r\n let box = this.dropdown().nativeElement.getBoundingClientRect();\r\n this.minWidth.set(this.portalMinWidth() ? this.portalMinWidth() : `${box.width}px`);\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n panelClass: this.portalClass(),\r\n width: this.portalWidth(),\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n minWidth: this.minWidth()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XDropdownPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n\r\n if (this.trigger() === 'click') {\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(debounceTime(30), takeUntil(this.unSubject))\r\n .subscribe(() => {\r\n if (!this.isClickNodeLeaf()) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n }\r\n\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this.unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XPlacement;\r\n if (place !== this.realPlacement()) {\r\n this.realPlacement.set(place);\r\n this.portalOverlayRef()?.updatePosition();\r\n }\r\n });\r\n }\r\n\r\n setInstance() {\r\n let { componentRef, overlayRef } = this.portal;\r\n if (!componentRef || !overlayRef) return;\r\n this.portalComponent.set(componentRef);\r\n this.portalOverlayRef.set(overlayRef);\r\n this.realPlacement.set(this.placement());\r\n Object.assign(componentRef.instance, {\r\n closeSubject: this.closeSubject,\r\n keydownSubject: this.keydownSubject\r\n });\r\n const { closed, animating, nodeClick, portalHover, activatedId } = componentRef.instance;\r\n closed.subscribe(() => this.closeSubject.next());\r\n animating.subscribe((ing) => this.animating.set(ing));\r\n nodeClick.subscribe((node) => {\r\n this.isClickNodeLeaf.set(node.leaf!);\r\n this.nodeClick.emit(node);\r\n });\r\n activatedId.subscribe((id) => this.activatedId.set(id));\r\n portalHover.subscribe((hover) => this.portalHover(hover));\r\n }\r\n\r\n portalHover(hover: boolean) {\r\n if (this.timeoutHide && hover) {\r\n clearTimeout(this.timeoutHide);\r\n } else {\r\n this.onLeave();\r\n }\r\n }\r\n\r\n onKeydown($event: KeyboardEvent) {\r\n this.keydownSubject.next($event);\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.dropdown(),\r\n placement: [this.placement(), 'bottom-start', 'bottom-end', 'bottom', 'top-start', 'top-end', 'top'],\r\n transformOriginOn: 'x-dropdown-portal'\r\n });\r\n }\r\n}\r\n","<div\r\n #dropdown\r\n class=\"x-dropdown\"\r\n [class.x-visible]=\"visibleClass()\"\r\n (mouseenter)=\"onEnter()\"\r\n (mouseleave)=\"onLeave()\"\r\n (click)=\"onClickShow()\"\r\n (keydown)=\"onKeydown($event)\"\r\n tabindex=\"-1\"\r\n>\r\n <ng-content></ng-content>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XDropdownComponent } from './dropdown.component';\r\n@NgModule({\r\n imports: [XDropdownComponent],\r\n exports: [XDropdownComponent]\r\n})\r\nexport class XDropdownModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ng-nest-ui-dropdown.mjs","sources":["../../../../lib/ng-nest/ui/dropdown/dropdown.property.ts","../../../../lib/ng-nest/ui/dropdown/dropdown-portal.component.ts","../../../../lib/ng-nest/ui/dropdown/dropdown-portal.component.html","../../../../lib/ng-nest/ui/dropdown/dropdown.component.ts","../../../../lib/ng-nest/ui/dropdown/dropdown.component.html","../../../../lib/ng-nest/ui/dropdown/dropdown.module.ts","../../../../lib/ng-nest/ui/dropdown/ng-nest-ui-dropdown.ts"],"sourcesContent":["import {\r\n XBoolean,\r\n XPlacement,\r\n XSize,\r\n XPropertyFunction,\r\n XToDataArray,\r\n XDataArray,\r\n XToBoolean,\r\n XToCssPixelValue,\r\n XNumber,\r\n XToNumber,\r\n XTrigger\r\n} from '@ng-nest/ui/core';\r\nimport { XListNode } from '@ng-nest/ui/list';\r\nimport { Component, input, model, output } from '@angular/core';\r\n\r\n/**\r\n * Dropdown\r\n * @selector x-dropdown\r\n * @decorator component\r\n */\r\nexport const XDropdownPrefix = 'x-dropdown';\r\nconst X_DROPDOWN_CONFIG_NAME = 'dropdown';\r\n\r\n/**\r\n * Dropdown Property\r\n */\r\n@Component({ selector: `${XDropdownPrefix}-property`, template: '' })\r\nexport class XDropdownProperty extends XPropertyFunction(X_DROPDOWN_CONFIG_NAME) {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n readonly data = input<XDropdownNode[], XDataArray<XDropdownNode>>([], { transform: XToDataArray });\r\n /**\r\n * @zh_CN 触发方式\r\n * @en_US Trigger method\r\n */\r\n readonly trigger = input<XDropdownTrigger>(this.config?.trigger ?? 'hover');\r\n /**\r\n * @zh_CN 展示位置\r\n * @en_US Placement\r\n */\r\n readonly placement = input<XPlacement>(this.config?.placement ?? 'bottom-start');\r\n /**\r\n * @zh_CN 禁用\r\n * @en_US Disabled\r\n */\r\n readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 节点中已经包含子节点数据\r\n * @en_US The node already contains child node data\r\n */\r\n readonly children = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n /**\r\n * @zh_CN 下拉框设置样式名\r\n * @en_US The style class name of the drop-down box\r\n */\r\n readonly portalClass = input<string | string[]>('');\r\n /**\r\n * @zh_CN 弹框的最小宽度\r\n * @en_US Portal min-width\r\n */\r\n readonly portalMinWidth = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 弹框的最大宽度\r\n * @en_US Portal max-width\r\n */\r\n readonly portalMaxWidth = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 弹框的最小高度\r\n * @en_US Portal min-height\r\n */\r\n readonly portalMinHeight = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 弹框的最大高度\r\n * @en_US Portal max-height\r\n */\r\n readonly portalMaxHeight = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN 弹框的宽度\r\n * @en_US The width of the drop-down box\r\n */\r\n readonly portalWidth = input<string, XNumber>('', { transform: XToCssPixelValue });\r\n /**\r\n * @zh_CN hover 延迟触发时间,只有 trigger 为 'hover' 生效\r\n * @en_US Hover delay trigger time, only trigger is the 'hover'\r\n */\r\n readonly hoverDelay = input<number, XNumber>(200, { transform: XToNumber });\r\n /**\r\n * @zh_CN visible 参数控制显示/隐藏\r\n * @en_US visible parameter controls display/hide\r\n */\r\n readonly visible = model<boolean | null>(null);\r\n /**\r\n * @zh_CN 当前激活的菜单\r\n * @en_US The currently activated menu\r\n */\r\n readonly activatedId = model<string | number>();\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n readonly size = input<XSize>(this.config?.size ?? 'medium');\r\n /**\r\n * @zh_CN 节点点击事件\r\n * @en_US Node click event\r\n */\r\n readonly nodeClick = output<XDropdownNode>();\r\n}\r\n\r\n/**\r\n * @zh_CN Dropdown 数据对象\r\n * @en_US Dropdown data object\r\n */\r\nexport interface XDropdownNode extends XListNode {}\r\n\r\n/**\r\n * @zh_CN 显示方式\r\n * @en_US Display method\r\n */\r\nexport type XDropdownTrigger = XTrigger;\r\n\r\n/**\r\n * Dropdown Portal\r\n * @selector x-dropdown-portal\r\n * @decorator component\r\n */\r\nexport const XDropdownPortalPrefix = 'x-dropdown-portal';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n HostListener,\r\n ViewContainerRef,\r\n HostBinding,\r\n input,\r\n output,\r\n model,\r\n signal,\r\n inject,\r\n ComponentRef,\r\n effect,\r\n DestroyRef,\r\n viewChild,\r\n computed\r\n} from '@angular/core';\r\nimport { XDropdownPortalPrefix, XDropdownNode, XDropdownTrigger } from './dropdown.property';\r\nimport { XPortalConnectedPosition, XPortalOverlayRef, XPortalService } from '@ng-nest/ui/portal';\r\nimport { XPlacement, XPositionTopBottom, XSize } from '@ng-nest/ui/core';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport {\r\n ConnectedOverlayPositionChange,\r\n FlexibleConnectedPositionStrategy,\r\n Overlay,\r\n OverlayConfig,\r\n OverlayRef\r\n} from '@angular/cdk/overlay';\r\nimport { XListComponent } from '@ng-nest/ui/list';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { LEFT_ARROW, RIGHT_ARROW } from '@angular/cdk/keycodes';\r\n\r\n@Component({\r\n selector: `${XDropdownPortalPrefix}`,\r\n imports: [FormsModule, XListComponent],\r\n templateUrl: './dropdown-portal.component.html',\r\n styleUrls: ['./dropdown-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XDropdownPortalComponent {\r\n @HostBinding('animate.enter') animateEnter = 'x-connect-enter';\r\n @HostBinding('animate.leave') animateLeave = 'x-connect-leave';\r\n\r\n @HostListener('animationend') done() {\r\n if (this.destroy()) return;\r\n this.animating.emit(false);\r\n }\r\n @HostListener('animationstart') start() {\r\n if (this.destroy()) return;\r\n this.animating.emit(true);\r\n }\r\n\r\n data = input<XDropdownNode[]>([]);\r\n trigger = input<XDropdownTrigger>('hover');\r\n placement = input<XPlacement>();\r\n size = input<XSize>('medium');\r\n minWidth = input<string>();\r\n maxWidth = input<string>();\r\n minHeight = input<string>();\r\n maxHeight = input<string>();\r\n level = input(0);\r\n parentPortalComponent = input<XDropdownPortalComponent>();\r\n isKeyboardControlled = model(true);\r\n closed = output();\r\n animating = output<boolean>();\r\n nodeClick = output<XDropdownNode>();\r\n portalHover = output<boolean>();\r\n portal!: XPortalOverlayRef<XDropdownPortalComponent>;\r\n node = signal<XDropdownNode | null>(null);\r\n timeoutHide: any;\r\n\r\n list = viewChild.required<XListComponent>('list');\r\n portalPlacement = signal<XPositionTopBottom | null>(null);\r\n childAnimating = signal(false);\r\n activatedId = model<any>();\r\n destroy = signal(false);\r\n closeSubject!: Subject<void>;\r\n keydownSubject!: Subject<KeyboardEvent>;\r\n active = signal(0);\r\n private unSubject = new Subject<void>();\r\n private destroyRef = inject(DestroyRef);\r\n\r\n activatedIdComputed = computed(() => {\r\n const path = this.findPathById(this.data(), this.activatedId());\r\n if (path) {\r\n for (let node of path) {\r\n const nd = this.data().find((x) => x.id === node.id);\r\n if (nd) return nd.id;\r\n }\r\n }\r\n return null;\r\n });\r\n\r\n @HostListener('mouseenter') mouseenter() {\r\n this.portalHover.emit(true);\r\n }\r\n\r\n @HostListener('mouseleave') mouseleave() {\r\n !this.portalAttached() && this.portalHover.emit(false);\r\n }\r\n\r\n portalService = inject(XPortalService);\r\n overlay = inject(Overlay);\r\n viewContainerRef = inject(ViewContainerRef);\r\n portalComponent = signal<ComponentRef<XDropdownPortalComponent> | null>(null);\r\n portalOverlayRef = signal<OverlayRef | null>(null);\r\n\r\n constructor() {\r\n effect(() => this.portalComponent()?.setInput('data', this.node()?.children));\r\n effect(() => this.portalComponent()?.setInput('trigger', this.trigger()));\r\n effect(() => this.portalComponent()?.setInput('level', this.level() + 1));\r\n effect(() => this.portalComponent()?.setInput('minWidth', this.minWidth()));\r\n effect(() => this.portalComponent()?.setInput('maxWidth', this.maxWidth()));\r\n effect(() => this.portalComponent()?.setInput('minHeight', this.minHeight()));\r\n effect(() => this.portalComponent()?.setInput('maxHeight', this.maxHeight()));\r\n effect(() => this.portalComponent()?.setInput('size', this.size()));\r\n effect(() => this.portalComponent()?.setInput('placement', this.portalPlacement()));\r\n effect(() => this.portalComponent()?.setInput('activatedId', this.activatedId()));\r\n effect(() => this.portalComponent()?.setInput('parentPortalComponent', this));\r\n }\r\n\r\n ngOnInit() {\r\n this.closeSubject.subscribe(() => {\r\n this.data() && this.data()!.length > 0 && this.list().setUnActive(this.active());\r\n });\r\n this.keydownSubject.pipe(takeUntil(this.unSubject)).subscribe((x) => {\r\n if (!this.isKeyboardControlled()) return;\r\n const keyCode = x.keyCode;\r\n const isRightArrow = [RIGHT_ARROW].includes(keyCode);\r\n const isLeftArrow = [LEFT_ARROW].includes(keyCode);\r\n if (isRightArrow) {\r\n const item = this.list().keyManager.activeItem!;\r\n if (item?.leaf()) {\r\n const node = item.node()!;\r\n node.event = x;\r\n node.component = item;\r\n this.isKeyboardControlled.set(false);\r\n this.onNodeClick(node);\r\n }\r\n }\r\n if (isLeftArrow && this.level() > 0) {\r\n this.parentPortalComponent()?.isKeyboardControlled.set(true);\r\n this.parentPortalComponent()?.closePortal();\r\n }\r\n this.data() && this.data()!.length > 0 && this.list().keydown(x);\r\n });\r\n this.destroyRef.onDestroy(() => {\r\n this.destroy.set(true);\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n });\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.list().keyManager.setFirstItemActive();\r\n }\r\n\r\n onNodeClick(node: XDropdownNode) {\r\n this.nodeClick.emit(node);\r\n if (!node.leaf) {\r\n this.activatedId.set(node.id);\r\n this.closeSubject.next();\r\n } else {\r\n if (node.disabled || this.childAnimating()) return;\r\n this.showPortal(node);\r\n }\r\n }\r\n\r\n portalAttached() {\r\n return this.portalOverlayRef()?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portalOverlayRef()?.dispose();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n createPortal() {\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n panelClass: 'x-dropdown-portal-child',\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n minWidth: this.minWidth()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XDropdownPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this.unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XPositionTopBottom;\r\n if (place !== this.portalPlacement()) {\r\n this.portalPlacement.set(place);\r\n this.portalOverlayRef()?.updatePosition();\r\n }\r\n });\r\n }\r\n\r\n setInstance() {\r\n let { componentRef, overlayRef } = this.portal;\r\n if (!componentRef || !overlayRef) return;\r\n this.portalComponent.set(componentRef);\r\n this.portalOverlayRef.set(overlayRef);\r\n Object.assign(componentRef.instance, {\r\n closeSubject: this.closeSubject,\r\n keydownSubject: this.keydownSubject,\r\n parantPortal: this\r\n });\r\n const { closed, animating, nodeClick, portalHover, activatedId } = componentRef.instance;\r\n closed.subscribe(() => this.closePortal());\r\n animating.subscribe((ing) => this.childAnimating.set(ing));\r\n nodeClick.subscribe((node) => this.nodeClick.emit(node));\r\n activatedId.subscribe((id) => this.activatedId.set(id));\r\n portalHover.subscribe((hover) => this.hover(hover));\r\n }\r\n\r\n hover(hover: boolean) {\r\n if (this.timeoutHide && hover) {\r\n clearTimeout(this.timeoutHide);\r\n } else {\r\n this.portalHover.emit(false);\r\n this.onLeave();\r\n }\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.node()?.component?.getElementRef(),\r\n placement: ['right-start', 'right-end', 'left-start', 'left-end'],\r\n transformOriginOn: 'x-dropdown-portal'\r\n });\r\n }\r\n\r\n showPortal(node: XDropdownNode) {\r\n if (this.portalAttached() && this.node()?.id !== node.id) {\r\n this.portalOverlayRef()?.dispose();\r\n }\r\n this.node.set(node);\r\n if (!this.portalAttached()) {\r\n this.createPortal();\r\n }\r\n }\r\n\r\n onEnter(node: XDropdownNode) {\r\n if (!node.leaf || node.disabled || this.trigger() === 'click' || this.childAnimating()) return;\r\n if (this.timeoutHide) clearTimeout(this.timeoutHide);\r\n this.showPortal(node);\r\n }\r\n\r\n onLeave() {\r\n if (this.trigger() !== 'hover') return;\r\n if (this.portalAttached()) {\r\n this.timeoutHide = setTimeout(() => {\r\n this.closePortal();\r\n });\r\n }\r\n }\r\n\r\n onActive(num: number) {\r\n this.active.set(num);\r\n }\r\n\r\n onTabOut() {\r\n this.closeSubject.next();\r\n }\r\n\r\n findPathById(nodes: XDropdownNode[], id: number, currentPath: XDropdownNode[] = []): XDropdownNode[] | null {\r\n for (const node of nodes) {\r\n const newPath = [...currentPath, node];\r\n if (node.id === id) {\r\n return newPath;\r\n }\r\n if (node.children && node.children.length > 0) {\r\n const result = this.findPathById(node.children, id, newPath);\r\n if (result) {\r\n return result;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n}\r\n","<div\r\n #dropdownPortal\r\n class=\"x-dropdown-portal\"\r\n [style.minWidth]=\"minWidth()\"\r\n [style.maxWidth]=\"maxWidth()\"\r\n [style.minHeight]=\"minHeight()\"\r\n [style.maxHeight]=\"maxHeight()\"\r\n>\r\n <x-list\r\n #list\r\n [data]=\"data()\"\r\n [ngModel]=\"activatedIdComputed()\"\r\n (nodeClick)=\"onNodeClick($event)\"\r\n (keyManagerChange)=\"onActive($event)\"\r\n (keyManagerTabOut)=\"onTabOut()\"\r\n (nodeMouseenter)=\"onEnter($event)\"\r\n (nodeMouseleave)=\"onLeave()\"\r\n [isKeyboardControlled]=\"isKeyboardControlled()\"\r\n [inPortal]=\"true\"\r\n [size]=\"size()\"\r\n ></x-list>\r\n</div>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ElementRef,\r\n ChangeDetectionStrategy,\r\n ViewContainerRef,\r\n inject,\r\n OnDestroy,\r\n OnInit,\r\n signal,\r\n computed,\r\n viewChild,\r\n ComponentRef,\r\n effect,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XDropdownPrefix, XDropdownNode, XDropdownProperty } from './dropdown.property';\r\nimport { XIsEmpty, XHasChildren, XGetChildren, XPlacement, XIsChange, XIsNull } from '@ng-nest/ui/core';\r\nimport { of, Subject } from 'rxjs';\r\nimport { XPortalConnectedPosition, XPortalOverlayRef, XPortalService } from '@ng-nest/ui/portal';\r\nimport { XDropdownPortalComponent } from './dropdown-portal.component';\r\nimport { debounceTime, delay, takeUntil, throttleTime } from 'rxjs/operators';\r\nimport {\r\n ConnectedOverlayPositionChange,\r\n FlexibleConnectedPositionStrategy,\r\n Overlay,\r\n OverlayConfig,\r\n OverlayRef\r\n} from '@angular/cdk/overlay';\r\nimport { DOWN_ARROW, ESCAPE } from '@angular/cdk/keycodes';\r\n\r\n@Component({\r\n selector: `${XDropdownPrefix}`,\r\n imports: [],\r\n templateUrl: './dropdown.component.html',\r\n styleUrls: ['./dropdown.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XDropdownComponent extends XDropdownProperty implements OnInit, OnDestroy {\r\n private unSubject = new Subject<void>();\r\n private portalService = inject(XPortalService);\r\n private viewContainerRef = inject(ViewContainerRef);\r\n private overlay = inject(Overlay);\r\n dropdown = viewChild.required<ElementRef<HTMLElement>>('dropdown');\r\n nodes = computed(() => {\r\n const data = this.data();\r\n if (!this.children()) {\r\n return data.filter((y) => XIsEmpty(y.pid)).map((y) => XGetChildren<XDropdownNode>(data, y, 0));\r\n }\r\n return XHasChildren(data, 0);\r\n });\r\n portal!: XPortalOverlayRef<XDropdownPortalComponent>;\r\n timeoutHide: any;\r\n animating = signal(false);\r\n visibleClass = signal(false);\r\n outsideClick = signal(false);\r\n isClickNodeLeaf = signal(false);\r\n minWidth = signal<string>('0px');\r\n hoverDelayUnsub = new Subject<void>();\r\n closeSubject: Subject<void> = new Subject();\r\n keydownSubject: Subject<KeyboardEvent> = new Subject();\r\n isNullVisible = signal(false);\r\n\r\n private realPlacement = signal<XPlacement | null>(null);\r\n portalComponent = signal<ComponentRef<XDropdownPortalComponent> | null>(null);\r\n portalOverlayRef = signal<OverlayRef | null>(null);\r\n\r\n constructor() {\r\n super();\r\n effect(() => this.portalComponent()?.setInput('data', this.nodes()));\r\n effect(() => this.portalComponent()?.setInput('trigger', this.trigger()));\r\n effect(() => this.portalComponent()?.setInput('minWidth', this.minWidth()));\r\n effect(() => this.portalComponent()?.setInput('maxWidth', this.portalMaxWidth()));\r\n effect(() => this.portalComponent()?.setInput('minHeight', this.portalMinHeight()));\r\n effect(() => this.portalComponent()?.setInput('maxHeight', this.portalMaxHeight()));\r\n effect(() => this.portalComponent()?.setInput('activatedId', this.activatedId()));\r\n effect(() => this.portalComponent()?.setInput('size', this.size()));\r\n }\r\n\r\n ngOnInit() {\r\n this.setSubject();\r\n this.isNullVisible.set(XIsNull(this.visible()));\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n const { visible } = changes;\r\n XIsChange(visible) && this.setVisible();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n this.hoverDelayUnsub.next();\r\n this.hoverDelayUnsub.complete();\r\n }\r\n\r\n setVisible() {\r\n if (this.disabled() || this.animating()) return;\r\n if (this.visible()) {\r\n if (this.portalAttached()) {\r\n this.closeSubject.next();\r\n return;\r\n }\r\n this.createPortal();\r\n } else {\r\n this.closePortal();\r\n }\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this.unSubject)).subscribe(() => {\r\n this.closePortal();\r\n });\r\n this.keydownSubject.pipe(throttleTime(10), takeUntil(this.unSubject)).subscribe((x) => {\r\n const keyCode = x.keyCode;\r\n if (this.portalAttached() && [ESCAPE].includes(keyCode)) {\r\n this.closeSubject.next();\r\n }\r\n if (!this.portalAttached() && [DOWN_ARROW].includes(keyCode)) {\r\n if (this.disabled()) return;\r\n this.createPortal();\r\n }\r\n });\r\n }\r\n\r\n onEnter() {\r\n if (!this.isNullVisible()) return;\r\n of(true)\r\n .pipe(delay(this.hoverDelay()), takeUntil(this.hoverDelayUnsub))\r\n .subscribe(() => {\r\n if (this.disabled() || this.trigger() === 'click') return;\r\n if (this.timeoutHide) {\r\n clearTimeout(this.timeoutHide);\r\n this.timeoutHide = null;\r\n }\r\n if (!this.portal || (this.portal && !this.portalOverlayRef()?.hasAttached())) {\r\n this.createPortal();\r\n }\r\n });\r\n }\r\n\r\n onLeave() {\r\n if (!this.isNullVisible()) return;\r\n this.hoverDelayUnsub.next();\r\n if (this.disabled() || this.trigger() === 'click') return;\r\n if (this.portalOverlayRef()?.hasAttached()) {\r\n this.timeoutHide = setTimeout(() => {\r\n this.closePortal();\r\n });\r\n }\r\n }\r\n\r\n onClickShow() {\r\n if (this.disabled() || this.trigger() === 'hover' || this.animating()) return;\r\n if (this.trigger() === 'click' && this.portalAttached()) {\r\n this.closeSubject.next();\r\n return;\r\n }\r\n this.createPortal();\r\n }\r\n\r\n portalAttached() {\r\n return this.portalOverlayRef()?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portalOverlayRef()?.dispose();\r\n this.visibleClass.set(false);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n createPortal() {\r\n this.visibleClass.set(true);\r\n let box = this.dropdown().nativeElement.getBoundingClientRect();\r\n this.minWidth.set(this.portalMinWidth() ? this.portalMinWidth() : `${box.width}px`);\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n panelClass: this.portalClass(),\r\n width: this.portalWidth(),\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\r\n minWidth: this.minWidth()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XDropdownPortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n\r\n if (this.trigger() === 'click') {\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(debounceTime(30), takeUntil(this.unSubject))\r\n .subscribe(() => {\r\n if (!this.isClickNodeLeaf()) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n }\r\n\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this.unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XPlacement;\r\n if (place !== this.realPlacement()) {\r\n this.realPlacement.set(place);\r\n this.portalOverlayRef()?.updatePosition();\r\n }\r\n });\r\n }\r\n\r\n setInstance() {\r\n let { componentRef, overlayRef } = this.portal;\r\n if (!componentRef || !overlayRef) return;\r\n this.portalComponent.set(componentRef);\r\n this.portalOverlayRef.set(overlayRef);\r\n this.realPlacement.set(this.placement());\r\n Object.assign(componentRef.instance, {\r\n closeSubject: this.closeSubject,\r\n keydownSubject: this.keydownSubject\r\n });\r\n const { closed, animating, nodeClick, portalHover, activatedId } = componentRef.instance;\r\n closed.subscribe(() => this.closeSubject.next());\r\n animating.subscribe((ing) => this.animating.set(ing));\r\n nodeClick.subscribe((node) => {\r\n this.isClickNodeLeaf.set(node.leaf!);\r\n this.nodeClick.emit(node);\r\n });\r\n activatedId.subscribe((id) => this.activatedId.set(id));\r\n portalHover.subscribe((hover) => this.portalHover(hover));\r\n }\r\n\r\n portalHover(hover: boolean) {\r\n if (this.timeoutHide && hover) {\r\n clearTimeout(this.timeoutHide);\r\n } else {\r\n this.onLeave();\r\n }\r\n }\r\n\r\n onKeydown($event: KeyboardEvent) {\r\n this.keydownSubject.next($event);\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.dropdown(),\r\n placement: [this.placement(), 'bottom-start', 'bottom-end', 'bottom', 'top-start', 'top-end', 'top'],\r\n transformOriginOn: 'x-dropdown-portal'\r\n });\r\n }\r\n}\r\n","<div\r\n #dropdown\r\n class=\"x-dropdown\"\r\n [class.x-visible]=\"visibleClass()\"\r\n (mouseenter)=\"onEnter()\"\r\n (mouseleave)=\"onLeave()\"\r\n (click)=\"onClickShow()\"\r\n (keydown)=\"onKeydown($event)\"\r\n tabindex=\"-1\"\r\n>\r\n <ng-content></ng-content>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XDropdownComponent } from './dropdown.component';\r\n@NgModule({\r\n imports: [XDropdownComponent],\r\n exports: [XDropdownComponent]\r\n})\r\nexport class XDropdownModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}