ngx-axis-appforge 0.0.3 → 0.0.4

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 (580) hide show
  1. package/.editorconfig +17 -0
  2. package/angular.json +40 -0
  3. package/axis-components/badge/badge.css +3 -0
  4. package/axis-components/badge/badge.html +20 -0
  5. package/axis-components/badge/badge.options.ts +23 -0
  6. package/axis-components/badge/badge.ts +17 -0
  7. package/axis-components/badge/design/config.ts +52 -0
  8. package/axis-components/badge/design/ng-package.json +5 -0
  9. package/axis-components/badge/design/setting/setting.css +0 -0
  10. package/axis-components/badge/design/setting/setting.html +181 -0
  11. package/axis-components/badge/design/setting/setting.ts +126 -0
  12. package/axis-components/badge/ng-package.json +5 -0
  13. package/axis-components/button/button.css +3 -0
  14. package/axis-components/button/button.html +13 -0
  15. package/axis-components/button/button.options.ts +17 -0
  16. package/axis-components/button/button.ts +56 -0
  17. package/axis-components/button/design/config.ts +30 -0
  18. package/axis-components/button/design/ng-package.json +5 -0
  19. package/axis-components/button/design/setting/setting.css +0 -0
  20. package/axis-components/button/design/setting/setting.html +151 -0
  21. package/axis-components/button/design/setting/setting.ts +76 -0
  22. package/axis-components/button/ng-package.json +5 -0
  23. package/axis-components/cmp-map.ts +52 -0
  24. package/axis-components/cmplib.ts +9 -0
  25. package/axis-components/desc/desc.css +8 -0
  26. package/axis-components/desc/desc.html +19 -0
  27. package/axis-components/desc/desc.options.ts +24 -0
  28. package/axis-components/desc/desc.ts +29 -0
  29. package/axis-components/desc/design/config.ts +113 -0
  30. package/axis-components/desc/design/desc-item-setting/desc-item-setting.css +0 -0
  31. package/axis-components/desc/design/desc-item-setting/desc-item-setting.html +47 -0
  32. package/axis-components/desc/design/desc-item-setting/desc-item-setting.ts +40 -0
  33. package/axis-components/desc/design/desc-items-menu/desc-items-menu.css +0 -0
  34. package/axis-components/desc/design/desc-items-menu/desc-items-menu.html +9 -0
  35. package/axis-components/desc/design/desc-items-menu/desc-items-menu.ts +23 -0
  36. package/axis-components/desc/design/desc-setting/desc-setting.css +0 -0
  37. package/axis-components/desc/design/desc-setting/desc-setting.html +76 -0
  38. package/axis-components/desc/design/desc-setting/desc-setting.ts +51 -0
  39. package/axis-components/desc/design/ng-package.json +5 -0
  40. package/axis-components/desc/ng-package.json +5 -0
  41. package/axis-components/design/cmplib/cmplib.css +5 -0
  42. package/axis-components/design/cmplib/cmplib.html +52 -0
  43. package/axis-components/design/cmplib/cmplib.ts +96 -0
  44. package/axis-components/design/design/config.ts +29 -0
  45. package/axis-components/design/design/ng-package.json +5 -0
  46. package/axis-components/design/design/setting/setting.css +0 -0
  47. package/axis-components/design/design/setting/setting.html +33 -0
  48. package/axis-components/design/design/setting/setting.ts +33 -0
  49. package/axis-components/design/design.css +15 -0
  50. package/axis-components/design/design.html +51 -0
  51. package/axis-components/design/design.options.ts +9 -0
  52. package/axis-components/design/design.ts +509 -0
  53. package/axis-components/design/ng-package.json +5 -0
  54. package/axis-components/design/preview/drag.service.ts +148 -0
  55. package/axis-components/design/preview/drop-handler.ts +56 -0
  56. package/axis-components/design/preview/preview.css +3 -0
  57. package/axis-components/design/preview/preview.html +1 -0
  58. package/axis-components/design/preview/preview.ts +250 -0
  59. package/axis-components/design/preview/select.service.ts +140 -0
  60. package/axis-components/design/shortcut-key.ts +160 -0
  61. package/axis-components/design/toolbar/toolbar.css +24 -0
  62. package/axis-components/design/toolbar/toolbar.html +96 -0
  63. package/axis-components/design/toolbar/toolbar.ts +65 -0
  64. package/axis-components/design/tree/drag-drop.ts +125 -0
  65. package/axis-components/design/tree/tree.css +30 -0
  66. package/axis-components/design/tree/tree.html +49 -0
  67. package/axis-components/design/tree/tree.ts +292 -0
  68. package/axis-components/dynamic-container/design/config.ts +30 -0
  69. package/axis-components/dynamic-container/design/ng-package.json +5 -0
  70. package/axis-components/dynamic-container/design/setting/setting.css +0 -0
  71. package/axis-components/dynamic-container/design/setting/setting.html +20 -0
  72. package/axis-components/dynamic-container/design/setting/setting.ts +30 -0
  73. package/axis-components/dynamic-container/dynamic-container.css +3 -0
  74. package/axis-components/dynamic-container/dynamic-container.html +2 -0
  75. package/axis-components/dynamic-container/dynamic-container.options.ts +6 -0
  76. package/axis-components/dynamic-container/dynamic-container.ts +17 -0
  77. package/axis-components/dynamic-container/ng-package.json +5 -0
  78. package/axis-components/editor/editor.css +47 -0
  79. package/axis-components/editor/editor.html +10 -0
  80. package/axis-components/editor/editor.options.ts +10 -0
  81. package/axis-components/editor/editor.ts +86 -0
  82. package/axis-components/editor/ng-package.json +5 -0
  83. package/axis-components/examples/examples/badge.ts +17 -0
  84. package/axis-components/examples/examples/button.ts +38 -0
  85. package/axis-components/examples/examples/desc.ts +31 -0
  86. package/axis-components/examples/examples/design.ts +15 -0
  87. package/axis-components/examples/examples/dynamic-container.ts +21 -0
  88. package/axis-components/examples/examples/flex.ts +18 -0
  89. package/axis-components/examples/examples/form-item.ts +39 -0
  90. package/axis-components/examples/examples/form.ts +315 -0
  91. package/axis-components/examples/examples/icon.ts +16 -0
  92. package/axis-components/examples/examples/image.ts +15 -0
  93. package/axis-components/examples/examples/input-component.ts +15 -0
  94. package/axis-components/examples/examples/input-icon.ts +15 -0
  95. package/axis-components/examples/examples/input-json.ts +15 -0
  96. package/axis-components/examples/examples/input-number.ts +15 -0
  97. package/axis-components/examples/examples/input.ts +15 -0
  98. package/axis-components/examples/examples/modal.ts +15 -0
  99. package/axis-components/examples/examples/scope.ts +17 -0
  100. package/axis-components/examples/examples/single-selector.ts +25 -0
  101. package/axis-components/examples/examples/splitter.ts +36 -0
  102. package/axis-components/examples/examples/table.ts +126 -0
  103. package/axis-components/examples/examples/text.ts +15 -0
  104. package/axis-components/examples/examples/textarea.ts +15 -0
  105. package/axis-components/examples/examples/tree-selector.ts +35 -0
  106. package/axis-components/examples/examples/upload.ts +15 -0
  107. package/axis-components/examples/examples.ts +73 -0
  108. package/axis-components/flex/design/config.ts +49 -0
  109. package/axis-components/flex/design/ng-package.json +5 -0
  110. package/axis-components/flex/design/setting/setting.css +0 -0
  111. package/axis-components/flex/design/setting/setting.html +72 -0
  112. package/axis-components/flex/design/setting/setting.ts +43 -0
  113. package/axis-components/flex/flex.css +5 -0
  114. package/axis-components/flex/flex.html +6 -0
  115. package/axis-components/flex/flex.options.ts +12 -0
  116. package/axis-components/flex/flex.ts +15 -0
  117. package/axis-components/flex/ng-package.json +5 -0
  118. package/axis-components/form/design/config.ts +71 -0
  119. package/axis-components/form/design/ng-package.json +5 -0
  120. package/axis-components/form/design/setting/setting.css +0 -0
  121. package/axis-components/form/design/setting/setting.html +21 -0
  122. package/axis-components/form/design/setting/setting.ts +31 -0
  123. package/axis-components/form/form.css +3 -0
  124. package/axis-components/form/form.html +3 -0
  125. package/axis-components/form/form.options.ts +9 -0
  126. package/axis-components/form/form.ts +121 -0
  127. package/axis-components/form/ng-package.json +5 -0
  128. package/axis-components/form-item/design/config.ts +43 -0
  129. package/axis-components/form-item/design/ng-package.json +5 -0
  130. package/axis-components/form-item/design/setting/input-validator/input-validator.css +8 -0
  131. package/axis-components/form-item/design/setting/input-validator/input-validator.html +140 -0
  132. package/axis-components/form-item/design/setting/input-validator/input-validator.ts +158 -0
  133. package/axis-components/form-item/design/setting/setting.css +0 -0
  134. package/axis-components/form-item/design/setting/setting.html +39 -0
  135. package/axis-components/form-item/design/setting/setting.ts +40 -0
  136. package/axis-components/form-item/form-item.css +4 -0
  137. package/axis-components/form-item/form-item.html +16 -0
  138. package/axis-components/form-item/form-item.options.ts +12 -0
  139. package/axis-components/form-item/form-item.ts +128 -0
  140. package/axis-components/form-item/ng-package.json +5 -0
  141. package/axis-components/icon/design/config.ts +29 -0
  142. package/axis-components/icon/design/ng-package.json +5 -0
  143. package/axis-components/icon/design/setting/setting.css +0 -0
  144. package/axis-components/icon/design/setting/setting.html +67 -0
  145. package/axis-components/icon/design/setting/setting.ts +48 -0
  146. package/axis-components/icon/icon.css +0 -0
  147. package/axis-components/icon/icon.html +7 -0
  148. package/axis-components/icon/icon.options.ts +10 -0
  149. package/axis-components/icon/icon.ts +17 -0
  150. package/axis-components/icon/ng-package.json +5 -0
  151. package/axis-components/image/design/config.ts +30 -0
  152. package/axis-components/image/design/ng-package.json +5 -0
  153. package/axis-components/image/design/setting/setting.css +0 -0
  154. package/axis-components/image/design/setting/setting.html +42 -0
  155. package/axis-components/image/design/setting/setting.ts +37 -0
  156. package/axis-components/image/image.css +58 -0
  157. package/axis-components/image/image.html +14 -0
  158. package/axis-components/image/image.options.ts +8 -0
  159. package/axis-components/image/image.ts +29 -0
  160. package/axis-components/image/ng-package.json +5 -0
  161. package/axis-components/input/design/config.ts +80 -0
  162. package/axis-components/input/design/ng-package.json +5 -0
  163. package/axis-components/input/design/setting/setting.css +0 -0
  164. package/axis-components/input/design/setting/setting.html +79 -0
  165. package/axis-components/input/design/setting/setting.ts +51 -0
  166. package/axis-components/input/input.css +4 -0
  167. package/axis-components/input/input.html +32 -0
  168. package/axis-components/input/input.options.ts +14 -0
  169. package/axis-components/input/input.ts +53 -0
  170. package/axis-components/input/ng-package.json +5 -0
  171. package/axis-components/input-component/design/config.ts +30 -0
  172. package/axis-components/input-component/design/ng-package.json +5 -0
  173. package/axis-components/input-component/design/setting/setting.css +0 -0
  174. package/axis-components/input-component/design/setting/setting.html +33 -0
  175. package/axis-components/input-component/design/setting/setting.ts +33 -0
  176. package/axis-components/input-component/input-component.css +4 -0
  177. package/axis-components/input-component/input-component.html +25 -0
  178. package/axis-components/input-component/input-component.options.ts +7 -0
  179. package/axis-components/input-component/input-component.ts +50 -0
  180. package/axis-components/input-component/ng-package.json +5 -0
  181. package/axis-components/input-icon/design/config.ts +30 -0
  182. package/axis-components/input-icon/design/ng-package.json +5 -0
  183. package/axis-components/input-icon/design/setting/setting.css +0 -0
  184. package/axis-components/input-icon/design/setting/setting.html +29 -0
  185. package/axis-components/input-icon/design/setting/setting.ts +33 -0
  186. package/axis-components/input-icon/input-icon.css +4 -0
  187. package/axis-components/input-icon/input-icon.html +70 -0
  188. package/axis-components/input-icon/input-icon.options.ts +7 -0
  189. package/axis-components/input-icon/input-icon.ts +51 -0
  190. package/axis-components/input-icon/ng-package.json +5 -0
  191. package/axis-components/input-json/design/config.ts +29 -0
  192. package/axis-components/input-json/design/ng-package.json +5 -0
  193. package/axis-components/input-json/design/setting/setting.css +0 -0
  194. package/axis-components/input-json/design/setting/setting.html +7 -0
  195. package/axis-components/input-json/design/setting/setting.ts +26 -0
  196. package/axis-components/input-json/input-json.css +4 -0
  197. package/axis-components/input-json/input-json.html +19 -0
  198. package/axis-components/input-json/input-json.ts +67 -0
  199. package/axis-components/input-json/ng-package.json +5 -0
  200. package/axis-components/input-number/design/config.ts +30 -0
  201. package/axis-components/input-number/design/ng-package.json +5 -0
  202. package/axis-components/input-number/design/setting/setting.css +0 -0
  203. package/axis-components/input-number/design/setting/setting.html +118 -0
  204. package/axis-components/input-number/design/setting/setting.ts +66 -0
  205. package/axis-components/input-number/input-number.css +22 -0
  206. package/axis-components/input-number/input-number.html +11 -0
  207. package/axis-components/input-number/input-number.options.ts +17 -0
  208. package/axis-components/input-number/input-number.ts +30 -0
  209. package/axis-components/input-number/ng-package.json +5 -0
  210. package/axis-components/modal/design/config.ts +50 -0
  211. package/axis-components/modal/design/ng-package.json +5 -0
  212. package/axis-components/modal/design/set-modal-visible-handler/set-modal-visible-handler.css +0 -0
  213. package/axis-components/modal/design/set-modal-visible-handler/set-modal-visible-handler.html +15 -0
  214. package/axis-components/modal/design/set-modal-visible-handler/set-modal-visible-handler.ts +34 -0
  215. package/axis-components/modal/design/setting/setting.css +0 -0
  216. package/axis-components/modal/design/setting/setting.html +139 -0
  217. package/axis-components/modal/design/setting/setting.ts +92 -0
  218. package/axis-components/modal/modal.css +0 -0
  219. package/axis-components/modal/modal.html +7 -0
  220. package/axis-components/modal/modal.options.ts +20 -0
  221. package/axis-components/modal/modal.ts +57 -0
  222. package/axis-components/modal/ng-package.json +5 -0
  223. package/axis-components/ng-package.json +5 -0
  224. package/axis-components/scope/design/config.ts +59 -0
  225. package/axis-components/scope/design/ng-package.json +5 -0
  226. package/axis-components/scope/design/setting/datasource-editor/datasource-editor.css +28 -0
  227. package/axis-components/scope/design/setting/datasource-editor/datasource-editor.html +188 -0
  228. package/axis-components/scope/design/setting/datasource-editor/datasource-editor.ts +245 -0
  229. package/axis-components/scope/design/setting/setting.css +0 -0
  230. package/axis-components/scope/design/setting/setting.html +19 -0
  231. package/axis-components/scope/design/setting/setting.ts +30 -0
  232. package/axis-components/scope/ng-package.json +5 -0
  233. package/axis-components/scope/scope.css +6 -0
  234. package/axis-components/scope/scope.html +4 -0
  235. package/axis-components/scope/scope.options.ts +8 -0
  236. package/axis-components/scope/scope.ts +48 -0
  237. package/axis-components/single-selector/design/config.ts +30 -0
  238. package/axis-components/single-selector/design/ng-package.json +5 -0
  239. package/axis-components/single-selector/design/setting/setting.css +0 -0
  240. package/axis-components/single-selector/design/setting/setting.html +164 -0
  241. package/axis-components/single-selector/design/setting/setting.ts +80 -0
  242. package/axis-components/single-selector/ng-package.json +5 -0
  243. package/axis-components/single-selector/single-selector.css +8 -0
  244. package/axis-components/single-selector/single-selector.html +51 -0
  245. package/axis-components/single-selector/single-selector.options.ts +22 -0
  246. package/axis-components/single-selector/single-selector.ts +80 -0
  247. package/axis-components/splitter/design/config.ts +84 -0
  248. package/axis-components/splitter/design/ng-package.json +5 -0
  249. package/axis-components/splitter/design/splitter-menu/splitter-menu.css +0 -0
  250. package/axis-components/splitter/design/splitter-menu/splitter-menu.html +10 -0
  251. package/axis-components/splitter/design/splitter-menu/splitter-menu.ts +22 -0
  252. package/axis-components/splitter/design/splitter-panel-setting/splitter-panel-setting.css +0 -0
  253. package/axis-components/splitter/design/splitter-panel-setting/splitter-panel-setting.html +66 -0
  254. package/axis-components/splitter/design/splitter-panel-setting/splitter-panel-setting.ts +47 -0
  255. package/axis-components/splitter/design/splitter-setting/splitter-setting.css +0 -0
  256. package/axis-components/splitter/design/splitter-setting/splitter-setting.html +28 -0
  257. package/axis-components/splitter/design/splitter-setting/splitter-setting.ts +30 -0
  258. package/axis-components/splitter/ng-package.json +5 -0
  259. package/axis-components/splitter/splitter.css +7 -0
  260. package/axis-components/splitter/splitter.html +12 -0
  261. package/axis-components/splitter/splitter.options.ts +18 -0
  262. package/axis-components/splitter/splitter.ts +40 -0
  263. package/axis-components/table/design/config.ts +147 -0
  264. package/axis-components/table/design/ng-package.json +5 -0
  265. package/axis-components/table/design/table-field-setting/table-field-setting.css +0 -0
  266. package/axis-components/table/design/table-field-setting/table-field-setting.html +259 -0
  267. package/axis-components/table/design/table-field-setting/table-field-setting.ts +105 -0
  268. package/axis-components/table/design/table-fields-menu/table-fields-menu.css +0 -0
  269. package/axis-components/table/design/table-fields-menu/table-fields-menu.html +9 -0
  270. package/axis-components/table/design/table-fields-menu/table-fields-menu.ts +24 -0
  271. package/axis-components/table/design/table-setting/table-setting.css +0 -0
  272. package/axis-components/table/design/table-setting/table-setting.html +417 -0
  273. package/axis-components/table/design/table-setting/table-setting.ts +173 -0
  274. package/axis-components/table/expand.ts +12 -0
  275. package/axis-components/table/ng-package.json +5 -0
  276. package/axis-components/table/select.ts +66 -0
  277. package/axis-components/table/table-setter/table-setter.css +55 -0
  278. package/axis-components/table/table-setter/table-setter.html +38 -0
  279. package/axis-components/table/table-setter/table-setter.ts +121 -0
  280. package/axis-components/table/table.css +5 -0
  281. package/axis-components/table/table.html +191 -0
  282. package/axis-components/table/table.options.ts +72 -0
  283. package/axis-components/table/table.ts +204 -0
  284. package/axis-components/text/design/config.ts +30 -0
  285. package/axis-components/text/design/ng-package.json +5 -0
  286. package/axis-components/text/design/setting/setting.css +0 -0
  287. package/axis-components/text/design/setting/setting.html +84 -0
  288. package/axis-components/text/design/setting/setting.ts +54 -0
  289. package/axis-components/text/ng-package.json +5 -0
  290. package/axis-components/text/text.css +3 -0
  291. package/axis-components/text/text.html +17 -0
  292. package/axis-components/text/text.options.ts +10 -0
  293. package/axis-components/text/text.ts +54 -0
  294. package/axis-components/textarea/design/config.ts +30 -0
  295. package/axis-components/textarea/design/ng-package.json +5 -0
  296. package/axis-components/textarea/design/setting/setting.css +0 -0
  297. package/axis-components/textarea/design/setting/setting.html +76 -0
  298. package/axis-components/textarea/design/setting/setting.ts +55 -0
  299. package/axis-components/textarea/ng-package.json +5 -0
  300. package/axis-components/textarea/textarea.css +4 -0
  301. package/axis-components/textarea/textarea.html +11 -0
  302. package/axis-components/textarea/textarea.options.ts +13 -0
  303. package/axis-components/textarea/textarea.ts +49 -0
  304. package/axis-components/tree-selector/design/config.ts +55 -0
  305. package/axis-components/tree-selector/design/ng-package.json +5 -0
  306. package/axis-components/tree-selector/design/tree-selector-menu/tree-selector-menu.css +0 -0
  307. package/axis-components/tree-selector/design/tree-selector-menu/tree-selector-menu.html +9 -0
  308. package/axis-components/tree-selector/design/tree-selector-menu/tree-selector-menu.ts +26 -0
  309. package/axis-components/tree-selector/design/tree-selector-menu-setting/tree-selector-menu-setting.css +0 -0
  310. package/axis-components/tree-selector/design/tree-selector-menu-setting/tree-selector-menu-setting.html +80 -0
  311. package/axis-components/tree-selector/design/tree-selector-menu-setting/tree-selector-menu-setting.ts +58 -0
  312. package/axis-components/tree-selector/design/tree-selector-setting/tree-selector-setting.css +0 -0
  313. package/axis-components/tree-selector/design/tree-selector-setting/tree-selector-setting.html +235 -0
  314. package/axis-components/tree-selector/design/tree-selector-setting/tree-selector-setting.ts +87 -0
  315. package/axis-components/tree-selector/ng-package.json +5 -0
  316. package/axis-components/tree-selector/tree-selector.css +43 -0
  317. package/axis-components/tree-selector/tree-selector.html +65 -0
  318. package/axis-components/tree-selector/tree-selector.options.ts +50 -0
  319. package/axis-components/tree-selector/tree-selector.ts +252 -0
  320. package/axis-components/upload/design/config.ts +37 -0
  321. package/axis-components/upload/design/ng-package.json +5 -0
  322. package/axis-components/upload/design/setting/setting.css +0 -0
  323. package/axis-components/upload/design/setting/setting.html +288 -0
  324. package/axis-components/upload/design/setting/setting.ts +96 -0
  325. package/axis-components/upload/ng-package.json +5 -0
  326. package/axis-components/upload/upload.css +3 -0
  327. package/axis-components/upload/upload.html +36 -0
  328. package/axis-components/upload/upload.options.ts +29 -0
  329. package/axis-components/upload/upload.ts +130 -0
  330. package/core/base/base-menu.ts +22 -0
  331. package/core/base/base.ts +143 -0
  332. package/core/base/design-builder.ts +8 -0
  333. package/core/base/funfield-base.ts +106 -0
  334. package/core/base/funfield-value-base.ts +53 -0
  335. package/core/base/value-access.ts +70 -0
  336. package/core/directives/dynamic.ts +216 -0
  337. package/core/directives/scope.ts +432 -0
  338. package/core/models/api.options.ts +5 -0
  339. package/core/models/base.options.ts +11 -0
  340. package/core/models/cmplib.ts +7 -0
  341. package/core/models/data-source.options.ts +11 -0
  342. package/core/models/data.options.ts +6 -0
  343. package/core/models/design-build.ts +26 -0
  344. package/core/models/design-config.ts +14 -0
  345. package/core/models/design-tree-node.ts +16 -0
  346. package/core/models/event-desc.ts +28 -0
  347. package/core/models/event-handler.ts +6 -0
  348. package/core/models/event.options.ts +14 -0
  349. package/core/models/examples.ts +21 -0
  350. package/core/models/form-registe.options.ts +12 -0
  351. package/core/models/fun-field.options.ts +6 -0
  352. package/core/models/initobs.ts +8 -0
  353. package/core/models/options-node.ts +149 -0
  354. package/core/models/static-data-source.options.ts +4 -0
  355. package/core/models/trigge-events.options.ts +3 -0
  356. package/core/models/value-access.options.ts +10 -0
  357. package/core/ng-package.json +5 -0
  358. package/core/pipes/how-long.pipe.ts +69 -0
  359. package/core/public-api.ts +39 -0
  360. package/core/share/api-handler/api-handler.css +0 -0
  361. package/core/share/api-handler/api-handler.html +38 -0
  362. package/core/share/api-handler/api-handler.ts +51 -0
  363. package/core/share/array-filter-handler/array-filter-handler.css +0 -0
  364. package/core/share/array-filter-handler/array-filter-handler.html +26 -0
  365. package/core/share/array-filter-handler/array-filter-handler.ts +65 -0
  366. package/core/share/array-filter-handler/input-filter-options/filter-options.css +19 -0
  367. package/core/share/array-filter-handler/input-filter-options/filter-options.html +57 -0
  368. package/core/share/array-filter-handler/input-filter-options/filter-options.ts +100 -0
  369. package/core/share/base-design-setting/base-design-setting.css +0 -0
  370. package/core/share/base-design-setting/base-design-setting.html +50 -0
  371. package/core/share/base-design-setting/base-design-setting.ts +55 -0
  372. package/core/share/base-event-handler-descs.ts +100 -0
  373. package/core/share/common-menu/common-menu.css +0 -0
  374. package/core/share/common-menu/common-menu.html +21 -0
  375. package/core/share/common-menu/common-menu.ts +73 -0
  376. package/core/share/data-handler/data-handler.css +0 -0
  377. package/core/share/data-handler/data-handler.html +13 -0
  378. package/core/share/data-handler/data-handler.ts +39 -0
  379. package/core/share/events-handler.service.ts +185 -0
  380. package/core/share/fun-field/fun-field.css +55 -0
  381. package/core/share/fun-field/fun-field.html +175 -0
  382. package/core/share/fun-field/fun-field.ts +363 -0
  383. package/core/share/input-trigger/input-trigger.css +16 -0
  384. package/core/share/input-trigger/input-trigger.html +114 -0
  385. package/core/share/input-trigger/input-trigger.ts +394 -0
  386. package/core/share/msg-tip-handler/msg-tip-handler.css +0 -0
  387. package/core/share/msg-tip-handler/msg-tip-handler.html +40 -0
  388. package/core/share/msg-tip-handler/msg-tip-handler.ts +46 -0
  389. package/core/share/refresh-data-source-handler/refresh-data-source-handler.css +0 -0
  390. package/core/share/refresh-data-source-handler/refresh-data-source-handler.html +29 -0
  391. package/core/share/refresh-data-source-handler/refresh-data-source-handler.ts +55 -0
  392. package/core/share/route-handler/route-handler.css +0 -0
  393. package/core/share/route-handler/route-handler.html +49 -0
  394. package/core/share/route-handler/route-handler.ts +51 -0
  395. package/core/share/set-data-source-handler/set-data-source-handler.css +0 -0
  396. package/core/share/set-data-source-handler/set-data-source-handler.html +23 -0
  397. package/core/share/set-data-source-handler/set-data-source-handler.ts +44 -0
  398. package/core/share/simple-menu/simple-menu.css +0 -0
  399. package/core/share/simple-menu/simple-menu.html +5 -0
  400. package/core/share/simple-menu/simple-menu.ts +17 -0
  401. package/core/share/tokens.ts +29 -0
  402. package/core/share/value-design-setting/value-design-setting.css +0 -0
  403. package/core/share/value-design-setting/value-design-setting.html +48 -0
  404. package/core/share/value-design-setting/value-design-setting.ts +54 -0
  405. package/core/utils/code-name.utils.ts +19 -0
  406. package/core/utils/components-loader.ts +29 -0
  407. package/core/utils/declaration.utils.ts +38 -0
  408. package/core/utils/dynamic.util.ts +57 -0
  409. package/core/utils/form-validators.ts +160 -0
  410. package/core/utils/form.util.ts +25 -0
  411. package/core/utils/http.utils.ts +8 -0
  412. package/core/utils/object.utils.ts +182 -0
  413. package/core/utils/scripts-loader.ts +25 -0
  414. package/ng-package.json +12 -0
  415. package/package.json +16 -217
  416. package/providers/ng-package.json +5 -0
  417. package/{fesm2022/ngx-axis-appforge-providers.mjs → providers/providers.ts} +8 -16
  418. package/providers/public-api.ts +1 -0
  419. package/public-api.ts +1 -0
  420. package/tsconfig.json +35 -0
  421. package/tsconfig.lib.json +19 -0
  422. package/tsconfig.lib.prod.json +11 -0
  423. package/axis-components/badge/design/index.d.ts +0 -5
  424. package/axis-components/badge/index.d.ts +0 -27
  425. package/axis-components/button/design/index.d.ts +0 -5
  426. package/axis-components/button/index.d.ts +0 -32
  427. package/axis-components/desc/design/index.d.ts +0 -5
  428. package/axis-components/desc/index.d.ts +0 -30
  429. package/axis-components/design/design/index.d.ts +0 -5
  430. package/axis-components/design/index.d.ts +0 -246
  431. package/axis-components/dynamic-container/design/index.d.ts +0 -5
  432. package/axis-components/dynamic-container/index.d.ts +0 -14
  433. package/axis-components/editor/index.d.ts +0 -33
  434. package/axis-components/flex/design/index.d.ts +0 -5
  435. package/axis-components/flex/index.d.ts +0 -20
  436. package/axis-components/form/design/index.d.ts +0 -5
  437. package/axis-components/form/index.d.ts +0 -30
  438. package/axis-components/form-item/design/index.d.ts +0 -5
  439. package/axis-components/form-item/index.d.ts +0 -34
  440. package/axis-components/icon/design/index.d.ts +0 -5
  441. package/axis-components/icon/index.d.ts +0 -16
  442. package/axis-components/image/design/index.d.ts +0 -5
  443. package/axis-components/image/index.d.ts +0 -16
  444. package/axis-components/index.d.ts +0 -5
  445. package/axis-components/input/design/index.d.ts +0 -5
  446. package/axis-components/input/index.d.ts +0 -27
  447. package/axis-components/input-component/design/index.d.ts +0 -5
  448. package/axis-components/input-component/index.d.ts +0 -33
  449. package/axis-components/input-icon/design/index.d.ts +0 -5
  450. package/axis-components/input-icon/index.d.ts +0 -24
  451. package/axis-components/input-json/design/index.d.ts +0 -5
  452. package/axis-components/input-json/index.d.ts +0 -24
  453. package/axis-components/input-number/design/index.d.ts +0 -5
  454. package/axis-components/input-number/index.d.ts +0 -25
  455. package/axis-components/modal/design/index.d.ts +0 -5
  456. package/axis-components/modal/index.d.ts +0 -33
  457. package/axis-components/scope/design/index.d.ts +0 -5
  458. package/axis-components/scope/index.d.ts +0 -24
  459. package/axis-components/single-selector/design/index.d.ts +0 -5
  460. package/axis-components/single-selector/index.d.ts +0 -37
  461. package/axis-components/splitter/design/index.d.ts +0 -5
  462. package/axis-components/splitter/index.d.ts +0 -28
  463. package/axis-components/table/design/index.d.ts +0 -5
  464. package/axis-components/table/index.d.ts +0 -183
  465. package/axis-components/text/design/index.d.ts +0 -5
  466. package/axis-components/text/index.d.ts +0 -24
  467. package/axis-components/textarea/design/index.d.ts +0 -5
  468. package/axis-components/textarea/index.d.ts +0 -25
  469. package/axis-components/tree-selector/design/index.d.ts +0 -5
  470. package/axis-components/tree-selector/index.d.ts +0 -76
  471. package/axis-components/upload/design/index.d.ts +0 -5
  472. package/axis-components/upload/index.d.ts +0 -51
  473. package/core/index.d.ts +0 -773
  474. package/fesm2022/ngx-axis-appforge-axis-components-badge-design.mjs +0 -191
  475. package/fesm2022/ngx-axis-appforge-axis-components-badge-design.mjs.map +0 -1
  476. package/fesm2022/ngx-axis-appforge-axis-components-badge.mjs +0 -39
  477. package/fesm2022/ngx-axis-appforge-axis-components-badge.mjs.map +0 -1
  478. package/fesm2022/ngx-axis-appforge-axis-components-button-design.mjs +0 -116
  479. package/fesm2022/ngx-axis-appforge-axis-components-button-design.mjs.map +0 -1
  480. package/fesm2022/ngx-axis-appforge-axis-components-button.mjs +0 -78
  481. package/fesm2022/ngx-axis-appforge-axis-components-button.mjs.map +0 -1
  482. package/fesm2022/ngx-axis-appforge-axis-components-desc-design.mjs +0 -224
  483. package/fesm2022/ngx-axis-appforge-axis-components-desc-design.mjs.map +0 -1
  484. package/fesm2022/ngx-axis-appforge-axis-components-desc.mjs +0 -51
  485. package/fesm2022/ngx-axis-appforge-axis-components-desc.mjs.map +0 -1
  486. package/fesm2022/ngx-axis-appforge-axis-components-design-design.mjs +0 -69
  487. package/fesm2022/ngx-axis-appforge-axis-components-design-design.mjs.map +0 -1
  488. package/fesm2022/ngx-axis-appforge-axis-components-design.mjs +0 -1746
  489. package/fesm2022/ngx-axis-appforge-axis-components-design.mjs.map +0 -1
  490. package/fesm2022/ngx-axis-appforge-axis-components-dynamic-container-design.mjs +0 -65
  491. package/fesm2022/ngx-axis-appforge-axis-components-dynamic-container-design.mjs.map +0 -1
  492. package/fesm2022/ngx-axis-appforge-axis-components-dynamic-container.mjs +0 -26
  493. package/fesm2022/ngx-axis-appforge-axis-components-dynamic-container.mjs.map +0 -1
  494. package/fesm2022/ngx-axis-appforge-axis-components-editor.mjs +0 -99
  495. package/fesm2022/ngx-axis-appforge-axis-components-editor.mjs.map +0 -1
  496. package/fesm2022/ngx-axis-appforge-axis-components-flex-design.mjs +0 -98
  497. package/fesm2022/ngx-axis-appforge-axis-components-flex-design.mjs.map +0 -1
  498. package/fesm2022/ngx-axis-appforge-axis-components-flex.mjs +0 -31
  499. package/fesm2022/ngx-axis-appforge-axis-components-flex.mjs.map +0 -1
  500. package/fesm2022/ngx-axis-appforge-axis-components-form-design.mjs +0 -108
  501. package/fesm2022/ngx-axis-appforge-axis-components-form-design.mjs.map +0 -1
  502. package/fesm2022/ngx-axis-appforge-axis-components-form-item-design.mjs +0 -242
  503. package/fesm2022/ngx-axis-appforge-axis-components-form-item-design.mjs.map +0 -1
  504. package/fesm2022/ngx-axis-appforge-axis-components-form-item.mjs +0 -144
  505. package/fesm2022/ngx-axis-appforge-axis-components-form-item.mjs.map +0 -1
  506. package/fesm2022/ngx-axis-appforge-axis-components-form.mjs +0 -132
  507. package/fesm2022/ngx-axis-appforge-axis-components-form.mjs.map +0 -1
  508. package/fesm2022/ngx-axis-appforge-axis-components-icon-design.mjs +0 -88
  509. package/fesm2022/ngx-axis-appforge-axis-components-icon-design.mjs.map +0 -1
  510. package/fesm2022/ngx-axis-appforge-axis-components-icon.mjs +0 -28
  511. package/fesm2022/ngx-axis-appforge-axis-components-icon.mjs.map +0 -1
  512. package/fesm2022/ngx-axis-appforge-axis-components-image-design.mjs +0 -75
  513. package/fesm2022/ngx-axis-appforge-axis-components-image-design.mjs.map +0 -1
  514. package/fesm2022/ngx-axis-appforge-axis-components-image.mjs +0 -43
  515. package/fesm2022/ngx-axis-appforge-axis-components-image.mjs.map +0 -1
  516. package/fesm2022/ngx-axis-appforge-axis-components-input-component-design.mjs +0 -70
  517. package/fesm2022/ngx-axis-appforge-axis-components-input-component-design.mjs.map +0 -1
  518. package/fesm2022/ngx-axis-appforge-axis-components-input-component.mjs +0 -61
  519. package/fesm2022/ngx-axis-appforge-axis-components-input-component.mjs.map +0 -1
  520. package/fesm2022/ngx-axis-appforge-axis-components-input-design.mjs +0 -142
  521. package/fesm2022/ngx-axis-appforge-axis-components-input-design.mjs.map +0 -1
  522. package/fesm2022/ngx-axis-appforge-axis-components-input-icon-design.mjs +0 -71
  523. package/fesm2022/ngx-axis-appforge-axis-components-input-icon-design.mjs.map +0 -1
  524. package/fesm2022/ngx-axis-appforge-axis-components-input-icon.mjs +0 -64
  525. package/fesm2022/ngx-axis-appforge-axis-components-input-icon.mjs.map +0 -1
  526. package/fesm2022/ngx-axis-appforge-axis-components-input-json-design.mjs +0 -60
  527. package/fesm2022/ngx-axis-appforge-axis-components-input-json-design.mjs.map +0 -1
  528. package/fesm2022/ngx-axis-appforge-axis-components-input-json.mjs +0 -70
  529. package/fesm2022/ngx-axis-appforge-axis-components-input-json.mjs.map +0 -1
  530. package/fesm2022/ngx-axis-appforge-axis-components-input-number-design.mjs +0 -107
  531. package/fesm2022/ngx-axis-appforge-axis-components-input-number-design.mjs.map +0 -1
  532. package/fesm2022/ngx-axis-appforge-axis-components-input-number.mjs +0 -48
  533. package/fesm2022/ngx-axis-appforge-axis-components-input-number.mjs.map +0 -1
  534. package/fesm2022/ngx-axis-appforge-axis-components-input.mjs +0 -68
  535. package/fesm2022/ngx-axis-appforge-axis-components-input.mjs.map +0 -1
  536. package/fesm2022/ngx-axis-appforge-axis-components-modal-design.mjs +0 -181
  537. package/fesm2022/ngx-axis-appforge-axis-components-modal-design.mjs.map +0 -1
  538. package/fesm2022/ngx-axis-appforge-axis-components-modal.mjs +0 -74
  539. package/fesm2022/ngx-axis-appforge-axis-components-modal.mjs.map +0 -1
  540. package/fesm2022/ngx-axis-appforge-axis-components-scope-design.mjs +0 -330
  541. package/fesm2022/ngx-axis-appforge-axis-components-scope-design.mjs.map +0 -1
  542. package/fesm2022/ngx-axis-appforge-axis-components-scope.mjs +0 -55
  543. package/fesm2022/ngx-axis-appforge-axis-components-scope.mjs.map +0 -1
  544. package/fesm2022/ngx-axis-appforge-axis-components-single-selector-design.mjs +0 -120
  545. package/fesm2022/ngx-axis-appforge-axis-components-single-selector-design.mjs.map +0 -1
  546. package/fesm2022/ngx-axis-appforge-axis-components-single-selector.mjs +0 -102
  547. package/fesm2022/ngx-axis-appforge-axis-components-single-selector.mjs.map +0 -1
  548. package/fesm2022/ngx-axis-appforge-axis-components-splitter-design.mjs +0 -178
  549. package/fesm2022/ngx-axis-appforge-axis-components-splitter-design.mjs.map +0 -1
  550. package/fesm2022/ngx-axis-appforge-axis-components-splitter.mjs +0 -49
  551. package/fesm2022/ngx-axis-appforge-axis-components-splitter.mjs.map +0 -1
  552. package/fesm2022/ngx-axis-appforge-axis-components-table-design.mjs +0 -442
  553. package/fesm2022/ngx-axis-appforge-axis-components-table-design.mjs.map +0 -1
  554. package/fesm2022/ngx-axis-appforge-axis-components-table.mjs +0 -452
  555. package/fesm2022/ngx-axis-appforge-axis-components-table.mjs.map +0 -1
  556. package/fesm2022/ngx-axis-appforge-axis-components-text-design.mjs +0 -95
  557. package/fesm2022/ngx-axis-appforge-axis-components-text-design.mjs.map +0 -1
  558. package/fesm2022/ngx-axis-appforge-axis-components-text.mjs +0 -64
  559. package/fesm2022/ngx-axis-appforge-axis-components-text.mjs.map +0 -1
  560. package/fesm2022/ngx-axis-appforge-axis-components-textarea-design.mjs +0 -94
  561. package/fesm2022/ngx-axis-appforge-axis-components-textarea-design.mjs.map +0 -1
  562. package/fesm2022/ngx-axis-appforge-axis-components-textarea.mjs +0 -64
  563. package/fesm2022/ngx-axis-appforge-axis-components-textarea.mjs.map +0 -1
  564. package/fesm2022/ngx-axis-appforge-axis-components-tree-selector-design.mjs +0 -222
  565. package/fesm2022/ngx-axis-appforge-axis-components-tree-selector-design.mjs.map +0 -1
  566. package/fesm2022/ngx-axis-appforge-axis-components-tree-selector.mjs +0 -295
  567. package/fesm2022/ngx-axis-appforge-axis-components-tree-selector.mjs.map +0 -1
  568. package/fesm2022/ngx-axis-appforge-axis-components-upload-design.mjs +0 -146
  569. package/fesm2022/ngx-axis-appforge-axis-components-upload-design.mjs.map +0 -1
  570. package/fesm2022/ngx-axis-appforge-axis-components-upload.mjs +0 -156
  571. package/fesm2022/ngx-axis-appforge-axis-components-upload.mjs.map +0 -1
  572. package/fesm2022/ngx-axis-appforge-axis-components.mjs +0 -988
  573. package/fesm2022/ngx-axis-appforge-axis-components.mjs.map +0 -1
  574. package/fesm2022/ngx-axis-appforge-core.mjs +0 -3169
  575. package/fesm2022/ngx-axis-appforge-core.mjs.map +0 -1
  576. package/fesm2022/ngx-axis-appforge-providers.mjs.map +0 -1
  577. package/fesm2022/ngx-axis-appforge.mjs +0 -6
  578. package/fesm2022/ngx-axis-appforge.mjs.map +0 -1
  579. package/index.d.ts +0 -2
  580. package/providers/index.d.ts +0 -13
@@ -1,1746 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { input, output, computed, signal, inject, effect, ChangeDetectionStrategy, Component, ViewChild, model, ElementRef, ChangeDetectorRef, Injector, ViewContainerRef, HostListener } from '@angular/core';
3
- import * as i1$3 from 'ng-zorro-antd/splitter';
4
- import { NzSplitterModule } from 'ng-zorro-antd/splitter';
5
- import * as i2$3 from 'ng-zorro-antd/tabs';
6
- import { NzTabsModule } from 'ng-zorro-antd/tabs';
7
- import { FlatTreeControl } from '@angular/cdk/tree';
8
- import * as i1 from '@angular/forms';
9
- import { FormsModule } from '@angular/forms';
10
- import { NzHighlightPipe } from 'ng-zorro-antd/core/highlight';
11
- import * as i3 from 'ng-zorro-antd/icon';
12
- import { NzIconModule } from 'ng-zorro-antd/icon';
13
- import * as i2 from 'ng-zorro-antd/input';
14
- import { NzInputModule } from 'ng-zorro-antd/input';
15
- import * as i4 from 'ng-zorro-antd/tree-view';
16
- import { NzTreeFlattener, NzTreeFlatDataSource, NzTreeViewModule } from 'ng-zorro-antd/tree-view';
17
- import { BehaviorSubject, combineLatest, auditTime, tap, map, filter, take, debounceTime, Subject, switchMap, merge, Observable, NEVER, from, of } from 'rxjs';
18
- import * as i3$1 from 'ng-zorro-antd/flex';
19
- import { NzFlexModule } from 'ng-zorro-antd/flex';
20
- import { SelectionModel } from '@angular/cdk/collections';
21
- import { FilteredTreeResult, AXIS_COMPONENTS_LOADER_TOKEN, ScopeDirective, DynamicDirective, DesignBuilder, AXIS_INJECT_DATA_TOKEN, AXIS_DESIGN_CMPLIBS_TOKEN, isEquals, ValueAccessOptions, copy, HowLongPipe, ValueAccess, AXIS_INJECT_FUNC_TOKEN, AXIS_DESIGN_SCOPE_INFOS_GETTER_TOKEN, AXIS_DESIGN_COMPONENT_INFO_FOR_SETTING_TOKEN, AXIS_DESIGN_ALL_PERMISSIONS_TOKEN, AXIS_DESIGN_OPTIONS_NODE_FOR_MENU, AXIS_DESIGN_CHOOSE_COMPONENT_FUNC_TOKEN, OptionsNode } from 'ngx-axis-appforge/core';
22
- import * as i6 from 'ng-zorro-antd/button';
23
- import { NzButtonModule } from 'ng-zorro-antd/button';
24
- import * as i9 from 'ng-zorro-antd/tooltip';
25
- import { NzTooltipModule, NzToolTipModule } from 'ng-zorro-antd/tooltip';
26
- import * as i10 from 'ng-zorro-antd/empty';
27
- import { NzEmptyModule } from 'ng-zorro-antd/empty';
28
- import * as i7 from 'ng-zorro-antd/core/transition-patch';
29
- import * as i8 from 'ng-zorro-antd/core/wave';
30
- import { CommonModule } from '@angular/common';
31
- import * as i1$1 from 'ng-zorro-antd/collapse';
32
- import { NzCollapseModule } from 'ng-zorro-antd/collapse';
33
- import * as i2$1 from 'ng-zorro-antd/card';
34
- import { NzCardModule } from 'ng-zorro-antd/card';
35
- import * as i3$2 from 'ng-zorro-antd/grid';
36
- import { NzGridModule } from 'ng-zorro-antd/grid';
37
- import * as i7$1 from 'ng-zorro-antd/dropdown';
38
- import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
39
- import { toSignal, toObservable } from '@angular/core/rxjs-interop';
40
- import * as i12 from 'ng-zorro-antd/select';
41
- import { NzSelectModule } from 'ng-zorro-antd/select';
42
- import * as i6$1 from 'ng-zorro-antd/menu';
43
- import * as i6$2 from 'ng-zorro-antd/drawer';
44
- import { NzDrawerModule } from 'ng-zorro-antd/drawer';
45
- import * as i1$2 from 'ng-zorro-antd/modal';
46
- import { NzModalModule } from 'ng-zorro-antd/modal';
47
- import * as i2$2 from 'ng-zorro-antd/table';
48
- import { NzTableModule } from 'ng-zorro-antd/table';
49
- import * as i8$1 from 'ng-zorro-antd/popover';
50
- import { NzPopoverModule } from 'ng-zorro-antd/popover';
51
- import { ClipboardService } from 'ngx-clipboard';
52
-
53
- class DragDrop {
54
- optionsNodes;
55
- optionIdflatNodes;
56
- treeControl;
57
- onChange;
58
- constructor(optionsNodes, optionIdflatNodes, treeControl, onChange) {
59
- this.optionsNodes = optionsNodes;
60
- this.optionIdflatNodes = optionIdflatNodes;
61
- this.treeControl = treeControl;
62
- this.onChange = onChange;
63
- }
64
- dragNode;
65
- dropNode;
66
- targetIndex;
67
- element;
68
- pos;
69
- canDrag(nodeId) {
70
- const node = this.optionsNodes.get(nodeId);
71
- return !!node && !node?.isRoot && node?.canDrag;
72
- }
73
- onDragStart(e, nodeId) {
74
- this.dragNode = this.optionsNodes.get(nodeId);
75
- if (this.dragNode?.children?.length) {
76
- this.treeControl.collapse(this.optionIdflatNodes.get(nodeId));
77
- }
78
- setTimeout(() => {
79
- e.target.style.display = 'none';
80
- });
81
- }
82
- onDragOver(e, nodeId) {
83
- const node = this.optionsNodes.get(nodeId);
84
- const parent = node.parentId ? this.optionsNodes.get(node.parentId) : undefined;
85
- let canDropIn = this.canDrop(node);
86
- let canDropSide = !!parent && this.canDrop(parent);
87
- if (!canDropIn && !canDropSide) {
88
- e.preventDefault();
89
- return;
90
- }
91
- const pos = this.getPos(e, canDropIn, canDropSide);
92
- const element = e.currentTarget;
93
- this.updateElementStyle(element, pos);
94
- if (pos == 0) {
95
- this.targetIndex = node?.defaultDropIndex;
96
- this.dropNode = node;
97
- this.treeControl.expand(this.optionIdflatNodes.get(node.id));
98
- }
99
- else if (pos == -1) {
100
- this.targetIndex = node.indexOfParentObj;
101
- this.dropNode = parent;
102
- }
103
- else {
104
- this.targetIndex = node.indexOfParentObj + 1;
105
- this.dropNode = parent;
106
- }
107
- }
108
- updateElementStyle(element, pos) {
109
- if (element != this.element || pos != this.pos) {
110
- this.element?.classList.remove("drop_in", "drop_up", "drop_down");
111
- if (element) {
112
- switch (pos) {
113
- case -1:
114
- element.classList.add("drop_up");
115
- break;
116
- case 0:
117
- element.classList.add("drop_in");
118
- break;
119
- default:
120
- element.classList.add("drop_down");
121
- break;
122
- }
123
- }
124
- this.element = element;
125
- this.pos = pos;
126
- }
127
- }
128
- onDragEnd(e, nodeId) {
129
- e.target.style.display = 'flex';
130
- if (this.dropNode) {
131
- if (this.dropNode.dropObj == this.dragNode.parentObj && this.dragNode.indexOfParentObj == this.targetIndex) {
132
- this.updateElementStyle();
133
- return undefined;
134
- }
135
- if (this.dropNode.dropObj instanceof Array && this.dropNode.dropObj == this.dragNode.parentObj && this.dragNode.indexOfParentObj < this.targetIndex) {
136
- this.targetIndex--;
137
- }
138
- const dragObj = this.dragNode.options;
139
- if (!this.dragNode.isRoot) {
140
- if (this.dragNode?.parentObj instanceof Array) {
141
- this.dragNode.parentObj.splice(this.dragNode.indexOfParentObj, 1);
142
- }
143
- else {
144
- this.dragNode.parentObj[this.dragNode.indexOfParentObj] = null;
145
- }
146
- }
147
- if (this.dropNode.dropObj instanceof Array) {
148
- this.dropNode.dropObj.splice(this.targetIndex, 0, dragObj);
149
- }
150
- else {
151
- this.dropNode.dropObj[this.targetIndex] = dragObj;
152
- }
153
- this.onChange();
154
- }
155
- this.dragNode = undefined;
156
- this.updateElementStyle();
157
- }
158
- canDrop(node) {
159
- if (node && node.canDrop && node.dropType == this.dragNode.dragType) {
160
- return !node.dropObj[node.defaultDropIndex];
161
- }
162
- return false;
163
- }
164
- getPos(e, canDropIn, canDropSide) {
165
- const element = e.target;
166
- const rect = element.getBoundingClientRect();
167
- const clientY = e.clientY - rect.top;
168
- const height = rect.height;
169
- if (canDropIn && canDropSide) {
170
- return 1 - Math.floor(clientY / height * 3);
171
- }
172
- else if (canDropSide) {
173
- return clientY < height / 2 ? -1 : 1;
174
- }
175
- else {
176
- return 0;
177
- }
178
- }
179
- }
180
-
181
- class Tree {
182
- cdRef;
183
- node = input.required(...(ngDevMode ? [{ debugName: "node" }] : []));
184
- optionsNodes = input.required(...(ngDevMode ? [{ debugName: "optionsNodes" }] : []));
185
- onChange = output();
186
- onSelect = output();
187
- onContextMenu = output();
188
- dragdrop = computed(() => new DragDrop(this.optionsNodes(), this.optionIdflatNodes, this.treeControl, () => this.onChange.emit(undefined)), ...(ngDevMode ? [{ debugName: "dragdrop" }] : []));
189
- optionIdflatNodes = new Map();
190
- flatNodeMap = new Map();
191
- nestedNodeMap = new Map();
192
- searchValue = signal('', ...(ngDevMode ? [{ debugName: "searchValue" }] : []));
193
- originData$ = new BehaviorSubject([]);
194
- searchValue$ = new BehaviorSubject('');
195
- selectListSelection = new SelectionModel(true);
196
- design = inject(Design);
197
- subs = [];
198
- transformer = (node, level) => {
199
- const existingNode = this.nestedNodeMap.get(node.id);
200
- const currentNode = {
201
- expandable: !!node.children && node.children.length > 0,
202
- id: node.id,
203
- title: node.name ?? "",
204
- icon: node.icon,
205
- level
206
- };
207
- let flatNode;
208
- if (existingNode?.id == currentNode.id && existingNode.expandable == currentNode.expandable && existingNode.level == currentNode.level) {
209
- flatNode = Object.assign(existingNode, currentNode);
210
- }
211
- else {
212
- flatNode = currentNode;
213
- }
214
- this.optionIdflatNodes.set(flatNode.id, flatNode);
215
- this.flatNodeMap.set(flatNode.id, node);
216
- this.nestedNodeMap.set(node.id, flatNode);
217
- return flatNode;
218
- };
219
- treeControl = new FlatTreeControl(node => node.level, node => node.expandable, {
220
- trackBy: flatNode => flatNode.id
221
- });
222
- treeFlattener = new NzTreeFlattener(this.transformer, node => node.level, node => node.expandable, node => node.children);
223
- dataSource = new NzTreeFlatDataSource(this.treeControl, this.treeFlattener);
224
- filteredData$ = combineLatest([
225
- this.originData$,
226
- this.searchValue$.pipe(auditTime(300), tap(value => this.searchValue.set(value)))
227
- ]).pipe(map(([data, value]) => (value ? filterTreeData(data, value) : new FilteredTreeResult(data, this.treeControl.expansionModel.selected.filter(id => this.optionsNodes().has(id))))));
228
- constructor(cdRef) {
229
- this.cdRef = cdRef;
230
- effect(() => {
231
- if (this.node()) {
232
- this.originData$.next([this.node()]);
233
- }
234
- const oldlength = this.selectListSelection.selected.length;
235
- this.selectListSelection.deselect(...this.selectListSelection.selected.filter(nodeid => !this.optionsNodes().has(nodeid)));
236
- this.treeControl.expansionModel.deselect(...this.treeControl.expansionModel.selected.filter(id => !this.optionsNodes().has(id)));
237
- if (oldlength != this.selectListSelection.selected.length) {
238
- this.sendSelectEvent();
239
- }
240
- });
241
- this.subs.push(this.filteredData$.subscribe(result => {
242
- this.dataSource.setData(result.treeData);
243
- this.treeControl.expansionModel.setSelection(...result.needsToExpanded);
244
- }));
245
- this.subs.push(this.filteredData$.pipe(filter(r => r.treeData.length > 0), take(1)).subscribe(result => {
246
- this.selectOne(result.treeData[0].id, { sendEvent: true });
247
- }));
248
- }
249
- hasChild = (_, node) => node.expandable;
250
- get hasExpanded() {
251
- return this.treeControl.expansionModel.selected.length > 0;
252
- }
253
- onNodeClick(e, node) {
254
- if (e.metaKey) {
255
- this.toggleSelect(node.id, { sendEvent: true });
256
- }
257
- else {
258
- this.selectOne(node.id, { sendEvent: true });
259
- }
260
- }
261
- select(nodeId, opt) {
262
- this.selectListSelection.select(nodeId);
263
- if (opt?.sendEvent) {
264
- this.sendSelectEvent();
265
- }
266
- }
267
- selectOne(nodeId, opt) {
268
- this.unSelectAll();
269
- this.selectListSelection.select(nodeId);
270
- if (opt?.sendEvent) {
271
- this.sendSelectEvent();
272
- }
273
- }
274
- toggleSelect(nodeId, opt) {
275
- this.selectListSelection.toggle(nodeId);
276
- if (opt?.sendEvent) {
277
- this.sendSelectEvent();
278
- }
279
- }
280
- unSelect(nodeId, opt) {
281
- this.selectListSelection.deselect(nodeId);
282
- if (opt?.sendEvent) {
283
- this.sendSelectEvent();
284
- }
285
- }
286
- unSelectAll(opt) {
287
- this.selectListSelection.clear();
288
- if (opt?.sendEvent) {
289
- this.sendSelectEvent();
290
- }
291
- }
292
- sendSelectEvent() {
293
- this.onSelect.emit(this.selectListSelection.selected);
294
- }
295
- selectByNodeIds(nodeIds) {
296
- this.unSelectAll();
297
- for (const nodeId of nodeIds) {
298
- this.select(nodeId);
299
- const node = this.optionIdflatNodes.get(nodeId);
300
- if (node) {
301
- this.treeControl.expand(node);
302
- }
303
- }
304
- this.cdRef.markForCheck();
305
- }
306
- expandByNodeIds(nodeIds) {
307
- for (const nodeId of nodeIds) {
308
- const node = this.optionIdflatNodes.get(nodeId);
309
- if (node) {
310
- this.treeControl.expand(node);
311
- }
312
- }
313
- }
314
- toggleExpanded() {
315
- if (this.hasExpanded) {
316
- this.treeControl.collapseAll();
317
- }
318
- else {
319
- this.treeControl.expandAll();
320
- }
321
- }
322
- reset() {
323
- this.optionIdflatNodes.clear();
324
- this.flatNodeMap.clear();
325
- }
326
- contextMenu(e, nodeId) {
327
- this.onContextMenu.emit({ event: e, nodeId });
328
- }
329
- removeSelected() {
330
- let changed = false;
331
- let next = undefined;
332
- for (const nodeId of this.selectListSelection.selected) {
333
- const node = this.optionsNodes().get(nodeId);
334
- if (node) {
335
- changed = true;
336
- if (node.isRoot) {
337
- next = null;
338
- }
339
- else {
340
- if (Array.isArray(node.parentObj)) {
341
- node.parentObj.splice(node.parentObj.indexOf(node.options), 1);
342
- }
343
- else {
344
- node.parentObj[node.indexOfParentObj] = null;
345
- }
346
- }
347
- }
348
- }
349
- if (changed) {
350
- this.onChange.emit(next);
351
- }
352
- }
353
- addNodeForSelected(nodes, deleteSuccess = false) {
354
- if (nodes.length && this.selectListSelection.selected) {
355
- for (const nodeId of this.selectListSelection.selected) {
356
- const parentNode = this.optionsNodes().get(nodeId);
357
- if (parentNode && parentNode.canDrop && parentNode.dropType == "component") {
358
- if (Array.isArray(parentNode.dropObj)) {
359
- parentNode.dropObj.splice(parentNode.dropObj.length, 0, ...nodes.map(n => n.options));
360
- nodes.forEach(n => this.deleteNode(n));
361
- }
362
- else if (!parentNode.dropObj[parentNode.defaultDropIndex]) {
363
- const n = nodes[nodes.length - 1];
364
- parentNode.dropObj[parentNode.defaultDropIndex] = n.options;
365
- if (deleteSuccess) {
366
- this.deleteNode(n);
367
- }
368
- }
369
- }
370
- }
371
- this.onChange.emit(undefined);
372
- }
373
- }
374
- deleteNode(node) {
375
- if (node.parentObj) {
376
- if (Array.isArray(node.parentObj)) {
377
- node.parentObj.splice(node.indexOfParentObj, 1);
378
- }
379
- else {
380
- delete node.parentObj[node.indexOfParentObj];
381
- }
382
- }
383
- }
384
- addRootComponent() {
385
- this.design.chooseComponent().subscribe(res => {
386
- const { options, config } = res;
387
- if (options && config) {
388
- this.onChange.emit(options);
389
- }
390
- });
391
- }
392
- ngOnDestroy() {
393
- for (let sub of this.subs) {
394
- sub.unsubscribe();
395
- }
396
- }
397
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: Tree, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
398
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.2", type: Tree, isStandalone: true, selector: "axis-design-tree", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null }, optionsNodes: { classPropertyName: "optionsNodes", publicName: "optionsNodes", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onChange: "onChange", onSelect: "onSelect", onContextMenu: "onContextMenu" }, ngImport: i0, template: "<div nz-flex [nzVertical]=\"true\" style=\"height: 100%;\">\n <div nz-flex style=\"padding-right: 8px;\" nzGap=\"4px\" nzAlign=\"center\">\n <input style=\"flex:1;\" type=\"text\" nz-input placeholder=\"\u641C\u7D22\" nzBorderless ngModel\n (ngModelChange)=\"searchValue$.next($event)\" />\n <button nz-button nzSize=\"small\" nzType=\"text\" nzShape=\"circle\" (click)=\"toggleExpanded()\">\n <nz-icon [nzType]=\"hasExpanded?'shrink':'arrows-alt'\" nzTheme=\"outline\" />\n </button>\n </div>\n @if (node() === null) {\n <nz-empty [nzNotFoundContent]=\"contentTpl\" [nzNotFoundFooter]=\"footerTpl\">\n <ng-template #contentTpl>\n \u6CA1\u6709\u7EC4\u4EF6\n </ng-template>\n <ng-template #footerTpl>\n <button nz-button nzType=\"dashed\" (click)=\"addRootComponent()\">\n <nz-icon nzType=\"plus\"></nz-icon>\n \u6DFB\u52A0\u7EC4\u4EF6\n </button>\n </ng-template>\n </nz-empty>\n }@else {\n <nz-tree-view nzDirectoryTree [nzTreeControl]=\"treeControl\" [nzDataSource]=\"dataSource\">\n <nz-tree-node *nzTreeNodeDef=\"let node\" nzTreeNodePadding [nzTreeNodePaddingIndent]=\"8\"\n (contextmenu)=\"contextMenu($event, node.id)\" [draggable]=\"dragdrop().canDrag(node.id)\"\n (dragstart)=\"dragdrop().onDragStart($event, node.id)\" (dragover)=\"dragdrop().onDragOver($event, node.id)\"\n (dragend)=\"dragdrop().onDragEnd($event,node.id)\">\n <nz-tree-node-toggle nzTreeNodeNoopToggle></nz-tree-node-toggle>\n <nz-tree-node-option [nzDisabled]=\"node.disabled\" [nzSelected]=\"selectListSelection.isSelected(node.id)\"\n (nzClick)=\"onNodeClick($event,node)\" [nz-tooltip]=\"node.id\" [nzTooltipMouseEnterDelay]=\"0.6\">\n <i nz-icon [nzType]=\"node.icon\" style=\"margin: 4px;\"></i>\n <span [innerHTML]=\"node.title | nzHighlight: searchValue() : 'i' : 'highlight'\"></span>\n </nz-tree-node-option>\n </nz-tree-node>\n <nz-tree-node *nzTreeNodeDef=\"let node; when: hasChild\" nzTreeNodePadding [nzTreeNodePaddingIndent]=\"8\"\n (contextmenu)=\"contextMenu($event, node.id)\" [draggable]=\"dragdrop().canDrag(node.id)\"\n (dragstart)=\"dragdrop().onDragStart($event, node.id)\" (dragover)=\"dragdrop().onDragOver($event, node.id)\"\n (dragend)=\"dragdrop().onDragEnd($event,node.id)\">\n <nz-tree-node-toggle>\n <nz-icon nzType=\"caret-down\" nzTreeNodeToggleRotateIcon />\n </nz-tree-node-toggle>\n <nz-tree-node-option [nzDisabled]=\"node.disabled\" [nzSelected]=\"selectListSelection.isSelected(node.id)\"\n (nzClick)=\"onNodeClick($event,node)\" [nz-tooltip]=\"node.id\" [nzTooltipMouseEnterDelay]=\"0.6\">\n <i nz-icon [nzType]=\"node.icon\" style=\"margin: 4px;\"></i>\n <span [innerHTML]=\"node.title | nzHighlight: searchValue() : 'i' : 'highlight'\"></span>\n </nz-tree-node-option>\n </nz-tree-node>\n </nz-tree-view>\n }\n</div>", styles: ["::ng-deep .highlight{color:#f50}nz-tree-view{overflow:auto;flex:1}.drop_in{outline:1px solid blue}.drop_up:after{content:\"\";position:absolute;top:-1px;width:100%;height:2px;background-color:#00f}.drop_down:after{content:\"\";position:absolute;bottom:-1px;width:100%;height:2px;background-color:#00f}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { 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: "ngmodule", type: NzInputModule }, { kind: "directive", type: i2.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzVariant", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzTreeViewModule }, { kind: "component", type: i4.NzTreeViewComponent, selector: "nz-tree-view", exportAs: ["nzTreeView"] }, { kind: "directive", type: i4.NzTreeNodeDefDirective, selector: "[nzTreeNodeDef]", inputs: ["nzTreeNodeDefWhen"] }, { kind: "component", type: i4.NzTreeNodeComponent, selector: "nz-tree-node:not([builtin])", exportAs: ["nzTreeNode"] }, { kind: "directive", type: i4.NzTreeNodeToggleDirective, selector: "nz-tree-node-toggle:not([nzTreeNodeNoopToggle]), [nzTreeNodeToggle]", inputs: ["nzTreeNodeToggleRecursive"] }, { kind: "directive", type: i4.NzTreeNodePaddingDirective, selector: "[nzTreeNodePadding]", inputs: ["nzTreeNodePadding", "nzTreeNodePaddingIndent"] }, { kind: "directive", type: i4.NzTreeNodeToggleRotateIconDirective, selector: "[nzTreeNodeToggleRotateIcon]" }, { kind: "component", type: i4.NzTreeNodeOptionComponent, selector: "nz-tree-node-option", inputs: ["nzSelected", "nzDisabled"], outputs: ["nzClick"] }, { kind: "directive", type: i4.NzTreeNodeNoopToggleDirective, selector: "nz-tree-node-toggle[nzTreeNodeNoopToggle], [nzTreeNodeNoopToggle]" }, { kind: "ngmodule", type: NzFlexModule }, { kind: "directive", type: i3$1.NzFlexDirective, selector: "[nz-flex],nz-flex", inputs: ["nzVertical", "nzJustify", "nzAlign", "nzGap", "nzWrap", "nzFlex"], exportAs: ["nzFlex"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i6.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i7.ɵNzTransitionPatchDirective, selector: "[nz-button], [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "directive", type: i8.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { kind: "ngmodule", type: NzTooltipModule }, { kind: "directive", type: i9.NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "cdkConnectedOverlayPush", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }, { kind: "ngmodule", type: NzEmptyModule }, { kind: "component", type: i10.NzEmptyComponent, selector: "nz-empty", inputs: ["nzNotFoundImage", "nzNotFoundContent", "nzNotFoundFooter"], exportAs: ["nzEmpty"] }, { kind: "pipe", type: NzHighlightPipe, name: "nzHighlight" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
399
- }
400
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: Tree, decorators: [{
401
- type: Component,
402
- args: [{ selector: 'axis-design-tree', imports: [FormsModule, NzInputModule, NzIconModule, NzTreeViewModule, NzFlexModule, NzHighlightPipe, NzButtonModule, NzTooltipModule, NzEmptyModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div nz-flex [nzVertical]=\"true\" style=\"height: 100%;\">\n <div nz-flex style=\"padding-right: 8px;\" nzGap=\"4px\" nzAlign=\"center\">\n <input style=\"flex:1;\" type=\"text\" nz-input placeholder=\"\u641C\u7D22\" nzBorderless ngModel\n (ngModelChange)=\"searchValue$.next($event)\" />\n <button nz-button nzSize=\"small\" nzType=\"text\" nzShape=\"circle\" (click)=\"toggleExpanded()\">\n <nz-icon [nzType]=\"hasExpanded?'shrink':'arrows-alt'\" nzTheme=\"outline\" />\n </button>\n </div>\n @if (node() === null) {\n <nz-empty [nzNotFoundContent]=\"contentTpl\" [nzNotFoundFooter]=\"footerTpl\">\n <ng-template #contentTpl>\n \u6CA1\u6709\u7EC4\u4EF6\n </ng-template>\n <ng-template #footerTpl>\n <button nz-button nzType=\"dashed\" (click)=\"addRootComponent()\">\n <nz-icon nzType=\"plus\"></nz-icon>\n \u6DFB\u52A0\u7EC4\u4EF6\n </button>\n </ng-template>\n </nz-empty>\n }@else {\n <nz-tree-view nzDirectoryTree [nzTreeControl]=\"treeControl\" [nzDataSource]=\"dataSource\">\n <nz-tree-node *nzTreeNodeDef=\"let node\" nzTreeNodePadding [nzTreeNodePaddingIndent]=\"8\"\n (contextmenu)=\"contextMenu($event, node.id)\" [draggable]=\"dragdrop().canDrag(node.id)\"\n (dragstart)=\"dragdrop().onDragStart($event, node.id)\" (dragover)=\"dragdrop().onDragOver($event, node.id)\"\n (dragend)=\"dragdrop().onDragEnd($event,node.id)\">\n <nz-tree-node-toggle nzTreeNodeNoopToggle></nz-tree-node-toggle>\n <nz-tree-node-option [nzDisabled]=\"node.disabled\" [nzSelected]=\"selectListSelection.isSelected(node.id)\"\n (nzClick)=\"onNodeClick($event,node)\" [nz-tooltip]=\"node.id\" [nzTooltipMouseEnterDelay]=\"0.6\">\n <i nz-icon [nzType]=\"node.icon\" style=\"margin: 4px;\"></i>\n <span [innerHTML]=\"node.title | nzHighlight: searchValue() : 'i' : 'highlight'\"></span>\n </nz-tree-node-option>\n </nz-tree-node>\n <nz-tree-node *nzTreeNodeDef=\"let node; when: hasChild\" nzTreeNodePadding [nzTreeNodePaddingIndent]=\"8\"\n (contextmenu)=\"contextMenu($event, node.id)\" [draggable]=\"dragdrop().canDrag(node.id)\"\n (dragstart)=\"dragdrop().onDragStart($event, node.id)\" (dragover)=\"dragdrop().onDragOver($event, node.id)\"\n (dragend)=\"dragdrop().onDragEnd($event,node.id)\">\n <nz-tree-node-toggle>\n <nz-icon nzType=\"caret-down\" nzTreeNodeToggleRotateIcon />\n </nz-tree-node-toggle>\n <nz-tree-node-option [nzDisabled]=\"node.disabled\" [nzSelected]=\"selectListSelection.isSelected(node.id)\"\n (nzClick)=\"onNodeClick($event,node)\" [nz-tooltip]=\"node.id\" [nzTooltipMouseEnterDelay]=\"0.6\">\n <i nz-icon [nzType]=\"node.icon\" style=\"margin: 4px;\"></i>\n <span [innerHTML]=\"node.title | nzHighlight: searchValue() : 'i' : 'highlight'\"></span>\n </nz-tree-node-option>\n </nz-tree-node>\n </nz-tree-view>\n }\n</div>", styles: ["::ng-deep .highlight{color:#f50}nz-tree-view{overflow:auto;flex:1}.drop_in{outline:1px solid blue}.drop_up:after{content:\"\";position:absolute;top:-1px;width:100%;height:2px;background-color:#00f}.drop_down:after{content:\"\";position:absolute;bottom:-1px;width:100%;height:2px;background-color:#00f}\n"] }]
403
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
404
- function filterTreeData(data, value) {
405
- const needsToExpanded = new Set();
406
- const _filter = (node, result) => {
407
- if (node.name?.search(value) !== -1 || node.id?.search(value) !== -1) {
408
- result.push(node);
409
- return result;
410
- }
411
- if (Array.isArray(node.children)) {
412
- const nodes = node.children.reduce((a, b) => _filter(b, a), []);
413
- if (nodes.length) {
414
- const parentNode = node.copyWith({ children: nodes });
415
- needsToExpanded.add(parentNode.id);
416
- result.push(parentNode);
417
- }
418
- }
419
- return result;
420
- };
421
- const treeData = data.reduce((a, b) => _filter(b, a), []);
422
- return new FilteredTreeResult(treeData, [...needsToExpanded]);
423
- }
424
-
425
- class DropHandler {
426
- dragNode;
427
- dropNode;
428
- elementOptionIds;
429
- isHorizontal;
430
- placeholder;
431
- beforeElement;
432
- constructor(dragNode, dropNode, elementOptionIds, isHorizontal) {
433
- this.dragNode = dragNode;
434
- this.dropNode = dropNode;
435
- this.elementOptionIds = elementOptionIds;
436
- this.isHorizontal = isHorizontal;
437
- this.placeholder = dragNode.element.cloneNode(true);
438
- this.placeholder.style.display = "inline";
439
- this.placeholder.style.opacity = "0.5";
440
- }
441
- onDragEnd() {
442
- this.placeholder.remove();
443
- }
444
- onDragOver(e) {
445
- const element = this.getBeforeElement(e);
446
- if (element === this.beforeElement) {
447
- return;
448
- }
449
- this.beforeElement = element;
450
- if (element) {
451
- this.dropNode.dropElement.insertBefore(this.placeholder, element);
452
- }
453
- else {
454
- this.dropNode.dropElement.appendChild(this.placeholder);
455
- }
456
- }
457
- close() {
458
- this.placeholder.remove();
459
- this.beforeElement = undefined;
460
- }
461
- getBeforeElement(e) {
462
- for (const child of this.dropNode.dropElement.children) {
463
- if (this.elementOptionIds.has(child)) {
464
- const rect = child.getBoundingClientRect();
465
- if (this.isHorizontal) {
466
- const middle = rect.left + (rect.width / 2);
467
- if (e.clientX <= middle) {
468
- return child;
469
- }
470
- }
471
- else {
472
- const middle = rect.top + (rect.height / 2);
473
- if (e.clientY <= middle) {
474
- return child;
475
- }
476
- }
477
- }
478
- }
479
- return null;
480
- }
481
- }
482
-
483
- class DragService {
484
- preview;
485
- constructor(preview) {
486
- this.preview = preview;
487
- }
488
- canDropNodes = [];
489
- oriDragDisplay;
490
- currentDropNodes = new Map();
491
- dragEn;
492
- dropHandler;
493
- initElement(node, en) {
494
- if (!node.isRoot && node.canDrag) {
495
- this.bindDragEvent(en);
496
- }
497
- if (node.canDrop) {
498
- this.canDropNodes.push(en);
499
- }
500
- }
501
- getOptionsNode(node) {
502
- return this.preview.optionsNodes().get(node.id);
503
- }
504
- bindDragEvent(node) {
505
- node.element.setAttribute("draggable", "true");
506
- node.element.ondragstart = (e) => {
507
- e.stopPropagation();
508
- this.dragStart(node);
509
- this.oriDragDisplay = node.element.style.display;
510
- setTimeout(() => {
511
- node.element.style.display = "none";
512
- });
513
- };
514
- node.element.ondragend = (e) => {
515
- e.preventDefault();
516
- e.stopPropagation();
517
- this.dragEnd();
518
- };
519
- }
520
- bindDropEvent(en) {
521
- this.currentDropNodes.set(en, null);
522
- setTimeout(() => {
523
- const { clientWidth, clientHeight } = en.dropElement;
524
- if (!clientWidth || !clientHeight) {
525
- const { display, minWidth, minHeight } = en.dropElement.style;
526
- this.currentDropNodes.set(en, { display, minWidth, minHeight });
527
- if (!clientWidth) {
528
- en.dropElement.style.minWidth = "100px";
529
- }
530
- if (!clientHeight) {
531
- en.dropElement.style.minHeight = "50px";
532
- }
533
- en.dropElement.style.display = "block";
534
- }
535
- });
536
- en.dropElement.ondragenter = (e) => {
537
- e?.preventDefault();
538
- e.stopPropagation();
539
- if (this.dropHandler?.dropNode == en) {
540
- return;
541
- }
542
- this.dropHandler?.close();
543
- const node = this.getOptionsNode(en);
544
- this.dropHandler = new DropHandler(this.dragEn, en, this.preview.elementOptionIds, node.childDirection == "horizontal");
545
- };
546
- en.dropElement.ondragover = (e) => {
547
- e.preventDefault();
548
- e.stopPropagation();
549
- this.dropHandler?.onDragOver?.(e);
550
- };
551
- }
552
- dragStart(dragEn) {
553
- this.dragEn = dragEn;
554
- this.canDropNodes = this.canDropNodes.filter(en => this.preview.optionsNodes().has(en.id));
555
- this.canDropNodes
556
- .filter(dropEn => {
557
- const dropNode = this.getOptionsNode(dropEn);
558
- const dragNode = this.getOptionsNode(dragEn);
559
- return dropNode.dropType == dragNode.dragType && !dropNode.dropObj[dropNode.defaultDropIndex] && dropEn.dropElement;
560
- })
561
- .forEach(node => this.bindDropEvent(node));
562
- this.preview.onDragStart();
563
- }
564
- dragEnd() {
565
- let dragId;
566
- if (this.dropHandler) {
567
- const dropEn = this.dropHandler.dropNode;
568
- const dropNode = this.getOptionsNode(dropEn);
569
- const dragNode = this.getOptionsNode(this.dragEn);
570
- let targetIndex = this.dropHandler.beforeElement ? this.preview.getNodeByElement(this.dropHandler.beforeElement)?.indexOfParentObj : dropNode?.defaultDropIndex;
571
- if (dropNode.dropObj == dragNode.parentObj && dragNode.indexOfParentObj == targetIndex) {
572
- this.preview.onDragEnd(false);
573
- }
574
- else {
575
- dragId = dragNode?.id;
576
- if (dropNode.dropObj instanceof Array && dropNode.dropObj == dragNode.parentObj && dragNode.indexOfParentObj < targetIndex) {
577
- targetIndex--;
578
- }
579
- const dragObj = dragNode.options;
580
- if (!dragNode.isRoot) {
581
- if (dragNode?.parentObj instanceof Array) {
582
- dragNode.parentObj.splice(dragNode.indexOfParentObj, 1);
583
- }
584
- else {
585
- dragNode.parentObj[dragNode.indexOfParentObj] = null;
586
- }
587
- }
588
- if (dropNode?.dropObj instanceof Array) {
589
- dropNode.dropObj.splice(targetIndex, 0, dragObj);
590
- }
591
- else {
592
- dropNode.dropObj[targetIndex] = dragObj;
593
- }
594
- this.preview.onDragEnd(true);
595
- }
596
- this.dropHandler.onDragEnd();
597
- this.dropHandler = undefined;
598
- }
599
- else {
600
- this.preview.onDragEnd(false);
601
- }
602
- this.dragEn.element.style.display = this.oriDragDisplay;
603
- this.dragEn = undefined;
604
- this.oriDragDisplay = undefined;
605
- this.currentDropNodes.forEach((style, en) => {
606
- if (style) {
607
- en.dropElement.style.minWidth = style.minWidth;
608
- en.dropElement.style.minHeight = style.minHeight;
609
- en.dropElement.style.display = style.display;
610
- }
611
- en.dropElement.ondragenter = null;
612
- en.dropElement.ondragover = null;
613
- });
614
- this.currentDropNodes.clear();
615
- return dragId;
616
- }
617
- reset() {
618
- this.dropHandler?.close();
619
- this.dragEn = undefined;
620
- this.dropHandler = undefined;
621
- }
622
- }
623
-
624
- class SelectService {
625
- preview;
626
- hoverElements = [];
627
- enable = true;
628
- selectElements = new Set();
629
- constructor(preview) {
630
- this.preview = preview;
631
- }
632
- initElement(element) {
633
- element.style.outlineOffset = "1px";
634
- element.onclick = (e) => {
635
- e.stopPropagation();
636
- if (e.altKey) {
637
- this.toggleSelect(element, { sendEvent: true });
638
- }
639
- else {
640
- this.selectOne(element, { sendEvent: true });
641
- }
642
- };
643
- element.onmouseenter = () => {
644
- if (this.enable) {
645
- this.addHoverElement(element);
646
- }
647
- };
648
- element.onmouseleave = () => {
649
- if (this.enable) {
650
- this.popHoverElement(element);
651
- }
652
- };
653
- }
654
- enableHover() {
655
- this.enable = true;
656
- }
657
- disableHover() {
658
- this.enable = false;
659
- }
660
- addHoverElement(element) {
661
- this.hoverElements.unshift(element);
662
- this.refreshHoverElements();
663
- }
664
- popHoverElement(element) {
665
- const i = this.hoverElements.lastIndexOf(element);
666
- if (i != -1) {
667
- for (const e of this.hoverElements.splice(0, i + 1)) {
668
- if (!this.selectElements.has(element)) {
669
- element.style.outline = "none";
670
- }
671
- }
672
- }
673
- this.refreshHoverElements();
674
- }
675
- select(element, opt) {
676
- this.selectElements.add(element);
677
- element.style.outline = "2px dashed green";
678
- if (opt?.sendEvent) {
679
- this.sendSelectEvent();
680
- }
681
- }
682
- selectOne(element, opt) {
683
- this.unSelectAll();
684
- this.selectElements.add(element);
685
- element.style.outline = "2px dashed green";
686
- if (opt?.sendEvent) {
687
- this.sendSelectEvent();
688
- }
689
- }
690
- toggleSelect(element, opt) {
691
- if (this.selectElements.has(element)) {
692
- this.unSelect(element);
693
- }
694
- else {
695
- this.select(element);
696
- }
697
- if (opt?.sendEvent) {
698
- this.sendSelectEvent();
699
- }
700
- }
701
- unSelect(element, opt) {
702
- if (this.selectElements.has(element)) {
703
- this.selectElements.delete(element);
704
- element.style.outline = "none";
705
- if (opt?.sendEvent) {
706
- this.sendSelectEvent();
707
- }
708
- }
709
- }
710
- unSelectAll(opt) {
711
- for (let element of this.selectElements) {
712
- this.unSelect(element);
713
- }
714
- if (opt?.sendEvent) {
715
- this.sendSelectEvent();
716
- }
717
- }
718
- sendSelectEvent() {
719
- this.preview.onSelectChange?.(Array.from(this.selectElements));
720
- }
721
- refreshHoverElements() {
722
- this.hoverElements = this.hoverElements.filter(e => this.preview.elementOptionIds.has(e));
723
- if (this.hoverElements.length && !this.selectElements.has(this.hoverElements[0])) {
724
- this.hoverElements[0].style.outline = "1.5px dashed rgb(255,0,0)";
725
- }
726
- if (this.hoverElements.length > 1 && !this.selectElements.has(this.hoverElements[1])) {
727
- this.hoverElements[1].style.outline = "1.5px dashed rgba(255,0,0,0.4)";
728
- }
729
- if (this.hoverElements.length > 2) {
730
- this.hoverElements.slice(2).filter(r => !this.selectElements.has(r)).forEach((e) => {
731
- e.style.outline = "none";
732
- });
733
- }
734
- }
735
- reset(opt) {
736
- for (const element of this.hoverElements) {
737
- element.style.outline = "none";
738
- }
739
- for (const element of this.selectElements) {
740
- element.style.outline = "none";
741
- }
742
- this.hoverElements = [];
743
- this.selectElements.clear();
744
- if (opt?.sendEvent) {
745
- this.sendSelectEvent();
746
- }
747
- }
748
- getSelectElements() {
749
- return [...this.selectElements.values()];
750
- }
751
- }
752
-
753
- class Preview {
754
- constructor() {
755
- effect(async () => {
756
- if (this.loadAndOptions()) {
757
- await this.loadAndOptions()[0];
758
- this.refresh();
759
- }
760
- });
761
- }
762
- loadAndOptions = input.required(...(ngDevMode ? [{ debugName: "loadAndOptions" }] : []));
763
- optionsNodes = input.required(...(ngDevMode ? [{ debugName: "optionsNodes" }] : []));
764
- injectData = input.required(...(ngDevMode ? [{ debugName: "injectData" }] : []));
765
- loader = inject(AXIS_COMPONENTS_LOADER_TOKEN);
766
- onChange = output();
767
- onSelect = output();
768
- onContextMenu = output();
769
- elementOptionIds = new Map();
770
- elementComponentRefs = new Map();
771
- optionIdElements = new Map();
772
- scopeSubjects = new Map();
773
- dragService = new DragService(this);
774
- selectService = new SelectService(this);
775
- selected = new Map();
776
- dynamicDirective;
777
- initScope(scope) {
778
- this.getAndUpdateScopeSubject(scope.axisScope(), scope);
779
- }
780
- async initElement(ref, options) {
781
- await this.loadAndOptions()[0];
782
- if (!options?.id || !this.optionsNodes().has(options.id)) {
783
- return;
784
- }
785
- try {
786
- const element = ref.location.nativeElement;
787
- ref.onDestroy(() => {
788
- this.elementComponentRefs.delete(element);
789
- this.elementOptionIds.delete(element);
790
- if (this.optionIdElements.has(options.id)) {
791
- this.optionIdElements.set(options.id, this.optionIdElements.get(options.id).filter(e => e !== element));
792
- }
793
- });
794
- this.elementComponentRefs.set(element, ref);
795
- const { component } = options;
796
- const config = await this.loader.loadComponent(`${component}/design`);
797
- if (config) {
798
- const binds = config.bindElementsOptionsNode?.(element, options);
799
- if (binds) {
800
- for (const en of Object.entries(binds)) {
801
- const nodeId = en[0];
802
- const element = en[1].element;
803
- const node = this.optionsNodes().get(nodeId);
804
- if (node && element && !this.elementOptionIds.has(element)) {
805
- if (!this.optionIdElements.has(nodeId)) {
806
- this.optionIdElements.set(nodeId, []);
807
- }
808
- this.optionIdElements.get(nodeId)?.push(element);
809
- this.elementOptionIds.set(element, nodeId);
810
- this.selectService.initElement(element);
811
- if (node.canDrag || node.canDrop) {
812
- this.dragService.initElement(node, node.toElementNode(en[1]));
813
- }
814
- if (node.contextMenu) {
815
- element.oncontextmenu = (e) => {
816
- this.onContextMenu.emit({ event: e, nodeId: en[0] });
817
- };
818
- }
819
- if (this.selected.has(nodeId) && this.selected.get(nodeId) == this.optionIdElements.get(nodeId).length - 1) {
820
- this.selectService.select(element);
821
- }
822
- }
823
- }
824
- }
825
- }
826
- }
827
- catch (_) {
828
- }
829
- }
830
- getNodeByElement(element) {
831
- const id = this.elementOptionIds.get(element);
832
- if (id) {
833
- return this.optionsNodes().get(id);
834
- }
835
- return undefined;
836
- }
837
- onSelectChange(elements) {
838
- this.selected.clear();
839
- for (const element of elements) {
840
- const id = this.elementOptionIds.get(element);
841
- if (id) {
842
- const elementList = this.optionIdElements.get(id);
843
- this.selected.set(id, elementList?.indexOf(element) ?? 0);
844
- }
845
- }
846
- this.onSelect.emit(Array.from(this.selected.keys()));
847
- }
848
- onDragStart() {
849
- this.selectService.disableHover();
850
- }
851
- onDragEnd(changed) {
852
- if (changed) {
853
- this.onChange.emit();
854
- }
855
- this.selectService.enableHover();
856
- }
857
- forceRender() {
858
- this.elementOptionIds.clear();
859
- this.optionIdElements.clear();
860
- this.dragService.reset();
861
- this.selectService.reset();
862
- this.dynamicDirective?.forceRender();
863
- }
864
- refresh() {
865
- Array.from(this.optionIdElements.keys()).forEach(id => {
866
- if (!this.optionsNodes().has(id)) {
867
- this.optionIdElements.get(id)?.forEach(element => {
868
- this.elementOptionIds.delete(element);
869
- });
870
- this.optionIdElements.delete(id);
871
- }
872
- });
873
- setTimeout(() => {
874
- this.selectService.getSelectElements().filter(e => !document.contains(e)).forEach(e => {
875
- const nodeId = this.elementOptionIds.get(e);
876
- this.elementComponentRefs.delete(e);
877
- if (nodeId) {
878
- const elements = this.optionIdElements.get(nodeId);
879
- elements?.splice(elements.indexOf(e), 1);
880
- const res = this.getParentComponentRef(nodeId);
881
- if (res) {
882
- this.initElement(res.ref, res.options);
883
- }
884
- }
885
- });
886
- }, 50);
887
- }
888
- getParentComponentRef(nodeId) {
889
- const node = this.optionsNodes().get(nodeId);
890
- if (node?.parentId) {
891
- const parent = this.optionsNodes().get(node.parentId);
892
- if (parent) {
893
- const parentElement = this.optionIdElements.get(parent.id);
894
- if (parentElement?.length) {
895
- const ref = this.elementComponentRefs.get(parentElement[0]);
896
- if (ref) {
897
- return { ref, options: parent.options };
898
- }
899
- }
900
- return this.getParentComponentRef(parent.id);
901
- }
902
- }
903
- return undefined;
904
- }
905
- selectByNodeIds(nodeIds) {
906
- if (nodeIds?.some(id => !this.selected.has(id))) {
907
- this.selectService.unSelectAll();
908
- this.selected.clear();
909
- for (const nodeId of nodeIds) {
910
- this.selected.set(nodeId, 0);
911
- const elements = this.optionIdElements.get(nodeId);
912
- if (elements?.[0]) {
913
- this.selectService.select(elements[0]);
914
- }
915
- }
916
- }
917
- }
918
- getAndUpdateScopeSubject(scopeId, initScope) {
919
- if (!this.scopeSubjects.has(scopeId)) {
920
- this.scopeSubjects.set(scopeId, new BehaviorSubject(initScope));
921
- }
922
- const subject = this.scopeSubjects.get(scopeId);
923
- if (initScope && initScope != subject.value) {
924
- subject.next(initScope);
925
- }
926
- return subject;
927
- }
928
- updateScopeWithSelectedElement(scopeId) {
929
- const elements = this.selectService.getSelectElements();
930
- if (elements.length > 0) {
931
- const ref = this.elementComponentRefs.get(elements[0]);
932
- const scope = ref?.injector.get(ScopeDirective, null)?.findScope(scopeId);
933
- if (scope) {
934
- this.getAndUpdateScopeSubject(scope.axisScope(), scope);
935
- }
936
- }
937
- }
938
- dragForOuter(node) {
939
- this.dragService.dragStart(node);
940
- }
941
- dragEndForOuter() {
942
- return this.dragService.dragEnd();
943
- }
944
- ngOnDestroy() {
945
- for (const s of this.scopeSubjects.values()) {
946
- s.unsubscribe();
947
- }
948
- }
949
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: Preview, deps: [], target: i0.ɵɵFactoryTarget.Component });
950
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.2", type: Preview, isStandalone: true, selector: "axis-design-preview", inputs: { loadAndOptions: { classPropertyName: "loadAndOptions", publicName: "loadAndOptions", isSignal: true, isRequired: true, transformFunction: null }, optionsNodes: { classPropertyName: "optionsNodes", publicName: "optionsNodes", isSignal: true, isRequired: true, transformFunction: null }, injectData: { classPropertyName: "injectData", publicName: "injectData", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { onChange: "onChange", onSelect: "onSelect", onContextMenu: "onContextMenu" }, providers: [
951
- {
952
- provide: DesignBuilder,
953
- useFactory: (preview) => {
954
- return new DesignBuilder((ref, options) => preview.initElement(ref, options), (scope) => preview.initScope(scope));
955
- },
956
- deps: [Preview]
957
- }, {
958
- provide: AXIS_INJECT_DATA_TOKEN,
959
- useFactory: (preview) => {
960
- return preview.injectData();
961
- },
962
- deps: [Preview]
963
- }
964
- ], viewQueries: [{ propertyName: "dynamicDirective", first: true, predicate: ["child"], descendants: true, read: DynamicDirective }], ngImport: i0, template: "<ng-container #child [axisDynamic]=\"loadAndOptions()?.[1]\" [standalone]=\"true\" [isDesign]=\"true\"></ng-container>", styles: [":host{padding:4px}\n"], dependencies: [{ kind: "directive", type: DynamicDirective, selector: "[axisDynamic]", inputs: ["axisDynamic", "standalone", "isDesign"], exportAs: ["axisDynamic"] }, { kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
965
- }
966
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: Preview, decorators: [{
967
- type: Component,
968
- args: [{ selector: 'axis-design-preview', imports: [DynamicDirective, CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
969
- {
970
- provide: DesignBuilder,
971
- useFactory: (preview) => {
972
- return new DesignBuilder((ref, options) => preview.initElement(ref, options), (scope) => preview.initScope(scope));
973
- },
974
- deps: [Preview]
975
- }, {
976
- provide: AXIS_INJECT_DATA_TOKEN,
977
- useFactory: (preview) => {
978
- return preview.injectData();
979
- },
980
- deps: [Preview]
981
- }
982
- ], template: "<ng-container #child [axisDynamic]=\"loadAndOptions()?.[1]\" [standalone]=\"true\" [isDesign]=\"true\"></ng-container>", styles: [":host{padding:4px}\n"] }]
983
- }], ctorParameters: () => [], propDecorators: { dynamicDirective: [{
984
- type: ViewChild,
985
- args: ["child", { read: DynamicDirective }]
986
- }] } });
987
-
988
- class Cmplib {
989
- constructor() {
990
- effect(() => {
991
- this.tags();
992
- this.cmplib();
993
- this.searchValue$.next(this.searchValue$.value);
994
- });
995
- }
996
- cmplibs = inject(AXIS_DESIGN_CMPLIBS_TOKEN, { optional: true });
997
- cmplib = model(...(ngDevMode ? [undefined, { debugName: "cmplib" }] : []));
998
- dragOptions = signal(undefined, ...(ngDevMode ? [{ debugName: "dragOptions" }] : []));
999
- selectMode = input.required(...(ngDevMode ? [{ debugName: "selectMode" }] : []));
1000
- tags = input(...(ngDevMode ? [undefined, { debugName: "tags" }] : []));
1001
- dragExample;
1002
- clickExample = output();
1003
- dragStart = output();
1004
- dragEnd = output();
1005
- dragElement;
1006
- searchValue$ = new BehaviorSubject('');
1007
- displayCmpLib = toSignal(this.searchValue$.pipe(auditTime(300), map(v => {
1008
- if (v || this.tags()?.length) {
1009
- v = v.toLowerCase();
1010
- return this.cmplib()?.map(group => ({
1011
- groupName: group.groupName,
1012
- children: group.children.filter(c => (!v || c.component.includes(v)) && (!this.tags()?.length || c.tags?.some(t => this.tags().includes(t))))
1013
- })).filter(group => group.children.length);
1014
- }
1015
- else {
1016
- return this.cmplib();
1017
- }
1018
- })));
1019
- ngOnInit() {
1020
- if (this.cmplibs?.length) {
1021
- this.cmplib.set(this.cmplibs[0].lib);
1022
- }
1023
- }
1024
- onClick(example) {
1025
- if (this.selectMode() == "click") {
1026
- this.clickExample.emit(example);
1027
- }
1028
- }
1029
- preloadDragElement(example) {
1030
- if (this.selectMode() == "drag") {
1031
- this.dragOptions.set(example.builder());
1032
- this.dragExample = example;
1033
- }
1034
- }
1035
- onDragStart(e) {
1036
- if (this.selectMode() == "drag") {
1037
- e.stopPropagation();
1038
- if (e.dataTransfer) {
1039
- e.dataTransfer.effectAllowed = 'move';
1040
- }
1041
- e.dataTransfer?.setDragImage(this.dragElement?.nativeElement, 0, 0);
1042
- setTimeout(() => {
1043
- this.dragStart.emit({ example: this.dragExample, element: this.dragElement?.nativeElement });
1044
- });
1045
- }
1046
- }
1047
- onDragEnd(e) {
1048
- if (this.selectMode() == "drag") {
1049
- e.stopPropagation();
1050
- e.preventDefault();
1051
- this.dragEnd.emit();
1052
- }
1053
- }
1054
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: Cmplib, deps: [], target: i0.ɵɵFactoryTarget.Component });
1055
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.2", type: Cmplib, isStandalone: true, selector: "axis-cmplib", inputs: { cmplib: { classPropertyName: "cmplib", publicName: "cmplib", isSignal: true, isRequired: false, transformFunction: null }, selectMode: { classPropertyName: "selectMode", publicName: "selectMode", isSignal: true, isRequired: true, transformFunction: null }, tags: { classPropertyName: "tags", publicName: "tags", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { cmplib: "cmplibChange", clickExample: "clickExample", dragStart: "dragStart", dragEnd: "dragEnd" }, viewQueries: [{ propertyName: "dragElement", first: true, predicate: ["dragElement"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<div nz-flex nzAlign=\"center\">\n <input style=\"flex:1\" type=\"text\" nz-input placeholder=\"\u641C\u7D22\" nzBorderless ngModel\n (ngModelChange)=\"searchValue$.next($event)\" />\n <nz-select [(ngModel)]=\"cmplib\" nzSize=\"small\" nzBorderless style=\"width: auto;\">\n @for (lib of cmplibs; track $index) {\n <nz-option [nzValue]=\"lib.lib\" [nzLabel]=\"lib.libName\"></nz-option>\n }\n </nz-select>\n</div>\n<nz-collapse nzAccordion>\n @for (group of displayCmpLib(); track group.groupName) {\n <nz-collapse-panel [nzHeader]=\"`${group.groupName}(${group.children.length})`\">\n <div nz-row [nzGutter]=\"[8,8]\">\n @for (item of group.children; track item.component) {\n <div nz-col [nzSpan]=\"item.span\">\n <nz-card nzSize=\"small\" nzHoverable [nzCover]=\"coverTemplate\" [nzTitle]=\"item.component\"\n [nzExtra]=\"item.moreExamples? more:''\" [nzBodyStyle]=\"{padding:0}\" (click)=\"onClick(item.example)\"\n [draggable]=\"selectMode()=='drag'\" (mouseenter)=\"preloadDragElement(item.example)\"\n (dragstart)=\"onDragStart($event)\" (dragend)=\"onDragEnd($event)\">\n </nz-card>\n <ng-template #coverTemplate>\n <img style=\"margin: 4px;object-fit: contain;\" [style.height.px]=\"item.height\"\n [src]=\"item.coverImg\" />\n </ng-template>\n <ng-template #more>\n <a nz-button nzType=\"link\" nzSize=\"small\" nz-dropdown [nzDropdownMenu]=\"examples\">\n <nz-icon nzType=\"ellipsis\"></nz-icon>\n </a>\n <nz-dropdown-menu #examples=\"nzDropdownMenu\">\n <ul nz-menu nzSelectable>\n @for (item of item.moreExamples; track item.name) {\n <li nz-menu-item (click)=\"onClick(item)\" [draggable]=\"selectMode()=='drag'\"\n (mouseenter)=\"preloadDragElement(item)\" (dragstart)=\"onDragStart($event)\"\n (dragend)=\"onDragEnd($event)\">{{item.name}}</li>\n }\n </ul>\n </nz-dropdown-menu>\n </ng-template>\n </div>\n }\n </div>\n </nz-collapse-panel>\n }\n</nz-collapse>\n<div class=\"dragElementContainer\">\n <div #dragElement>\n @if (dragOptions()) {\n <ng-container [axisDynamic]=\"dragOptions()\" [standalone]=\"true\"></ng-container>\n {{dragOptions().type}}\n }\n </div>\n</div>", styles: [".dragElementContainer{position:absolute;z-index:-9999;top:100px}\n"], dependencies: [{ kind: "ngmodule", type: NzCollapseModule }, { kind: "component", type: i1$1.NzCollapsePanelComponent, selector: "nz-collapse-panel", inputs: ["nzActive", "nzDisabled", "nzShowArrow", "nzExtra", "nzHeader", "nzExpandedIcon"], outputs: ["nzActiveChange"], exportAs: ["nzCollapsePanel"] }, { kind: "component", type: i1$1.NzCollapseComponent, selector: "nz-collapse", inputs: ["nzAccordion", "nzBordered", "nzGhost", "nzExpandIconPosition"], exportAs: ["nzCollapse"] }, { kind: "ngmodule", type: NzCardModule }, { kind: "component", type: i2$1.NzCardComponent, selector: "nz-card", inputs: ["nzBordered", "nzLoading", "nzHoverable", "nzBodyStyle", "nzCover", "nzActions", "nzType", "nzSize", "nzTitle", "nzExtra"], exportAs: ["nzCard"] }, { kind: "ngmodule", type: NzGridModule }, { kind: "directive", type: i3$2.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { kind: "directive", type: i3$2.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "directive", type: DynamicDirective, selector: "[axisDynamic]", inputs: ["axisDynamic", "standalone", "isDesign"], exportAs: ["axisDynamic"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i6.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i7.ɵNzTransitionPatchDirective, selector: "[nz-button], [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i6$1.NzMenuDirective, selector: "[nz-menu]", inputs: ["nzInlineIndent", "nzTheme", "nzMode", "nzInlineCollapsed", "nzSelectable"], outputs: ["nzClick"], exportAs: ["nzMenu"] }, { kind: "component", type: i6$1.NzMenuItemComponent, selector: "[nz-menu-item]", inputs: ["nzPaddingLeft", "nzDisabled", "nzSelected", "nzDanger", "nzMatchRouterExact", "nzMatchRouter"], exportAs: ["nzMenuItem"] }, { kind: "directive", type: i7$1.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "directive", type: i7$1.NzDropDownADirective, selector: "a[nz-dropdown]" }, { kind: "component", type: i7$1.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }, { kind: "directive", type: i7$1.NzDropdownButtonDirective, selector: "[nz-button][nz-dropdown]" }, { kind: "ngmodule", type: NzInputModule }, { kind: "directive", type: i2.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzVariant", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { 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: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzFlexModule }, { kind: "directive", type: i3$1.NzFlexDirective, selector: "[nz-flex],nz-flex", inputs: ["nzVertical", "nzJustify", "nzAlign", "nzGap", "nzWrap", "nzFlex"], exportAs: ["nzFlex"] }, { kind: "ngmodule", type: NzSelectModule }, { kind: "component", type: i12.NzOptionComponent, selector: "nz-option", inputs: ["nzTitle", "nzLabel", "nzValue", "nzKey", "nzDisabled", "nzHide", "nzCustomContent"], exportAs: ["nzOption"] }, { kind: "component", type: i12.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzStatus", "nzVariant", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzPlacement", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzSelectOnTab", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus", "nzOnClear"], exportAs: ["nzSelect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1056
- }
1057
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: Cmplib, decorators: [{
1058
- type: Component,
1059
- args: [{ selector: 'axis-cmplib', imports: [NzCollapseModule, NzCardModule, NzGridModule, DynamicDirective, NzButtonModule, NzDropDownModule, NzInputModule, FormsModule, NzIconModule, NzFlexModule, NzSelectModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div nz-flex nzAlign=\"center\">\n <input style=\"flex:1\" type=\"text\" nz-input placeholder=\"\u641C\u7D22\" nzBorderless ngModel\n (ngModelChange)=\"searchValue$.next($event)\" />\n <nz-select [(ngModel)]=\"cmplib\" nzSize=\"small\" nzBorderless style=\"width: auto;\">\n @for (lib of cmplibs; track $index) {\n <nz-option [nzValue]=\"lib.lib\" [nzLabel]=\"lib.libName\"></nz-option>\n }\n </nz-select>\n</div>\n<nz-collapse nzAccordion>\n @for (group of displayCmpLib(); track group.groupName) {\n <nz-collapse-panel [nzHeader]=\"`${group.groupName}(${group.children.length})`\">\n <div nz-row [nzGutter]=\"[8,8]\">\n @for (item of group.children; track item.component) {\n <div nz-col [nzSpan]=\"item.span\">\n <nz-card nzSize=\"small\" nzHoverable [nzCover]=\"coverTemplate\" [nzTitle]=\"item.component\"\n [nzExtra]=\"item.moreExamples? more:''\" [nzBodyStyle]=\"{padding:0}\" (click)=\"onClick(item.example)\"\n [draggable]=\"selectMode()=='drag'\" (mouseenter)=\"preloadDragElement(item.example)\"\n (dragstart)=\"onDragStart($event)\" (dragend)=\"onDragEnd($event)\">\n </nz-card>\n <ng-template #coverTemplate>\n <img style=\"margin: 4px;object-fit: contain;\" [style.height.px]=\"item.height\"\n [src]=\"item.coverImg\" />\n </ng-template>\n <ng-template #more>\n <a nz-button nzType=\"link\" nzSize=\"small\" nz-dropdown [nzDropdownMenu]=\"examples\">\n <nz-icon nzType=\"ellipsis\"></nz-icon>\n </a>\n <nz-dropdown-menu #examples=\"nzDropdownMenu\">\n <ul nz-menu nzSelectable>\n @for (item of item.moreExamples; track item.name) {\n <li nz-menu-item (click)=\"onClick(item)\" [draggable]=\"selectMode()=='drag'\"\n (mouseenter)=\"preloadDragElement(item)\" (dragstart)=\"onDragStart($event)\"\n (dragend)=\"onDragEnd($event)\">{{item.name}}</li>\n }\n </ul>\n </nz-dropdown-menu>\n </ng-template>\n </div>\n }\n </div>\n </nz-collapse-panel>\n }\n</nz-collapse>\n<div class=\"dragElementContainer\">\n <div #dragElement>\n @if (dragOptions()) {\n <ng-container [axisDynamic]=\"dragOptions()\" [standalone]=\"true\"></ng-container>\n {{dragOptions().type}}\n }\n </div>\n</div>", styles: [".dragElementContainer{position:absolute;z-index:-9999;top:100px}\n"] }]
1060
- }], ctorParameters: () => [], propDecorators: { dragElement: [{
1061
- type: ViewChild,
1062
- args: ["dragElement", { read: ElementRef, static: true }]
1063
- }] } });
1064
-
1065
- class ShortcutKey {
1066
- design;
1067
- constructor(design) {
1068
- this.design = design;
1069
- }
1070
- cutNodeIds;
1071
- onKeyPress(e) {
1072
- const isInput = e.target.matches('input:not([disabled]), textarea:not([disabled])');
1073
- if (isInput) {
1074
- return;
1075
- }
1076
- let event;
1077
- if (e.key == "Backspace") {
1078
- event = "delete";
1079
- }
1080
- else if (e.key == "z" && (e.metaKey || e.ctrlKey) && !e.shiftKey) {
1081
- event = "undo";
1082
- }
1083
- else if (e.key.toLowerCase() == "z" && (e.metaKey || e.ctrlKey) && e.shiftKey) {
1084
- event = "redo";
1085
- }
1086
- else if (e.key == "c" && e.metaKey && e.ctrlKey) {
1087
- event = "onlyPreview";
1088
- }
1089
- else if (e.key == "r" && e.metaKey && e.ctrlKey) {
1090
- event = "forceRender";
1091
- }
1092
- else if (e.key == "h" && e.metaKey && e.ctrlKey) {
1093
- event = "shortcutKeysInfo";
1094
- }
1095
- else if (e.key == "c" && (e.metaKey || e.ctrlKey) && !getSelection()?.toString()) {
1096
- event = "copy";
1097
- }
1098
- else if (e.key == "x" && (e.metaKey || e.ctrlKey)) {
1099
- event = "cut";
1100
- }
1101
- else if (e.key == "v" && (e.metaKey || e.ctrlKey)) {
1102
- event = "paste";
1103
- }
1104
- // console.log(event, e.key, "meta", e.metaKey, "ctrl", e.ctrlKey, "shift", e.shiftKey)
1105
- if (event) {
1106
- e.preventDefault();
1107
- e.stopPropagation();
1108
- this.doEvent(event);
1109
- }
1110
- }
1111
- doEvent(event) {
1112
- switch (event) {
1113
- case "delete":
1114
- this.design.tree.removeSelected();
1115
- break;
1116
- case "undo":
1117
- this.design.tools.undo();
1118
- break;
1119
- case "redo":
1120
- this.design.tools.redo();
1121
- break;
1122
- case "onlyPreview":
1123
- this.onlyPreview();
1124
- break;
1125
- case "forceRender":
1126
- this.forceRender();
1127
- break;
1128
- case "shortcutKeysInfo":
1129
- this.shortcutKeysInfo();
1130
- break;
1131
- case "copy":
1132
- this.copy();
1133
- break;
1134
- case "cut":
1135
- this.cut();
1136
- break;
1137
- case "paste":
1138
- this.paste();
1139
- break;
1140
- }
1141
- }
1142
- onlyPreview() {
1143
- this.design.tools.onlyPreview.set(!this.design.tools.onlyPreview());
1144
- }
1145
- forceRender() {
1146
- this.design.preview.forceRender();
1147
- }
1148
- shortcutKeysInfo() {
1149
- this.design.tools.shortcutKeysModal.set(true);
1150
- }
1151
- copy() {
1152
- const { selected } = this.design.tree.selectListSelection;
1153
- const options = selected.map(nodeId => this.design.optionsNodes.get(nodeId)).map(node => node?.options);
1154
- this.design.clipboard.copy(JSON.stringify(options, null, 2));
1155
- }
1156
- cut() {
1157
- const { selected } = this.design.tree.selectListSelection;
1158
- this.cutNodeIds = selected;
1159
- const options = selected.map(nodeId => this.design.optionsNodes.get(nodeId)).map(node => node?.options);
1160
- this.design.clipboard.copy(JSON.stringify(options, null, 2));
1161
- }
1162
- async paste() {
1163
- try {
1164
- const text = await navigator.clipboard.readText();
1165
- if (text) {
1166
- const j = JSON.parse(text);
1167
- let objs;
1168
- if (Array.isArray(j)) {
1169
- objs = j.filter(r => this.isComponentObj(r));
1170
- }
1171
- else if (this.isComponentObj(j)) {
1172
- objs = [j];
1173
- }
1174
- if (objs?.length && this.design.tree.selectListSelection.selected.length > 0) {
1175
- if (this.cutNodeIds?.length && isEquals(objs.map(r => r.id), this.cutNodeIds)) {
1176
- this.design.onNodesMove(this.cutNodeIds);
1177
- this.cutNodeIds = undefined;
1178
- }
1179
- else {
1180
- const examples = objs.map(r => this.parseToExample(r));
1181
- this.design.onExamplePaste(examples);
1182
- }
1183
- }
1184
- }
1185
- }
1186
- catch (e) {
1187
- console.error(e);
1188
- }
1189
- }
1190
- isComponentObj(obj) {
1191
- return obj && obj.hasOwnProperty("id") && obj.hasOwnProperty("component");
1192
- }
1193
- parseToExample(obj) {
1194
- return {
1195
- builder: componentIdBuilder => {
1196
- if (componentIdBuilder) {
1197
- return this.recursionParse(obj, componentIdBuilder);
1198
- }
1199
- return obj;
1200
- }
1201
- };
1202
- }
1203
- recursionParse(obj, idBuilder, components = new Map()) {
1204
- if (this.isComponentObj(obj)) {
1205
- const offset = (components.get(obj.component) ?? 0) + 1;
1206
- components.set(obj.component, offset);
1207
- obj.id = idBuilder(obj.component, offset);
1208
- }
1209
- if (obj) {
1210
- if (Array.isArray(obj)) {
1211
- for (let i = 0; i < obj.length; i++) {
1212
- obj[i] = this.recursionParse(obj[i], idBuilder, components);
1213
- }
1214
- }
1215
- else if (typeof obj == "object") {
1216
- for (const en of Object.entries(obj)) {
1217
- obj[en[0]] = this.recursionParse(en[1], idBuilder, components);
1218
- }
1219
- }
1220
- }
1221
- return obj;
1222
- }
1223
- }
1224
-
1225
- class DesignOptions extends ValueAccessOptions {
1226
- injectData = signal({}, ...(ngDevMode ? [{ debugName: "injectData" }] : []));
1227
- allPermissions = signal({}, ...(ngDevMode ? [{ debugName: "allPermissions" }] : []));
1228
- }
1229
-
1230
- class Toolbar {
1231
- design = inject(Design);
1232
- cdr = inject(ChangeDetectorRef);
1233
- onlyPreview = signal(false, ...(ngDevMode ? [{ debugName: "onlyPreview" }] : []));
1234
- shortcutKeysModal = model(false, ...(ngDevMode ? [{ debugName: "shortcutKeysModal" }] : []));
1235
- history = [];
1236
- historyIndex = 0;
1237
- putHistory(options) {
1238
- if (this.historyIndex > 0) {
1239
- this.history.splice(0, this.historyIndex);
1240
- this.historyIndex = 0;
1241
- }
1242
- this.history.unshift({ options: copy(options, true), time: new Date() });
1243
- if (this.history.length > 50) {
1244
- this.history.pop();
1245
- }
1246
- this.cdr.markForCheck();
1247
- }
1248
- undo() {
1249
- if (this.historyIndex < this.history.length - 1) {
1250
- this.historyIndex++;
1251
- this.design.onChangeOptionsConfig(copy(this.history[this.historyIndex].options, true), false);
1252
- this.cdr.markForCheck();
1253
- }
1254
- }
1255
- redo() {
1256
- if (this.historyIndex > 0) {
1257
- this.historyIndex--;
1258
- this.design.onChangeOptionsConfig(copy(this.history[this.historyIndex].options, true), false);
1259
- this.cdr.markForCheck();
1260
- }
1261
- }
1262
- switchHistory(index) {
1263
- if (index != this.historyIndex && index > -1 && index < this.history.length) {
1264
- this.historyIndex = index;
1265
- this.design.onChangeOptionsConfig(copy(this.history[this.historyIndex].options, true), false);
1266
- this.cdr.markForCheck();
1267
- }
1268
- }
1269
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: Toolbar, deps: [], target: i0.ɵɵFactoryTarget.Component });
1270
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.2", type: Toolbar, isStandalone: true, selector: "axis-toolbar", inputs: { shortcutKeysModal: { classPropertyName: "shortcutKeysModal", publicName: "shortcutKeysModal", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { shortcutKeysModal: "shortcutKeysModalChange" }, ngImport: i0, template: "<div class=\"tools\" nz-flex nzGap=\"4px\">\n <button nz-button nzSize=\"small\" nzType=\"text\" nzShape=\"circle\" nz-tooltip=\"\u5FEB\u6377\u952E\u8BF4\u660E\"\n (click)=\"shortcutKeysModal.set(true)\">\n <nz-icon nzType=\"exclamation-circle\" nzTheme=\"outline\" />\n </button>\n <button nz-button nzSize=\"small\" nzType=\"text\" nzShape=\"circle\" nz-tooltip=\"\u7F16\u8F91\u5386\u53F2\" nz-popover\n [nzPopoverTitle]=\"historyTitle\" nzPopoverTrigger=\"click\" [nzPopoverContent]=\"historyTemp\"\n nzPopoverPlacement=\"bottom\" nzPopoverOverlayClassName=\"history-popover\">\n <nz-icon nzType=\"history\" nzTheme=\"outline\" />\n </button>\n <button nz-button nzSize=\"small\" nzType=\"text\" nzShape=\"circle\" [nz-tooltip]=\"onlyPreview()?'\u6062\u590D':'\u653E\u5927'\"\n (click)=\"onlyPreview.set(!onlyPreview())\">\n <nz-icon [nzType]=\"onlyPreview()?'fullscreen-exit':'fullscreen'\" />\n </button>\n <button nz-button nzSize=\"small\" nzType=\"text\" nzShape=\"circle\" nz-tooltip=\"\u91CD\u65B0\u8F7D\u5165\"\n (click)=\"design.preview.forceRender()\">\n <nz-icon nzType=\"reload\" />\n </button>\n</div>\n\n<ng-template #historyTitle>\n <div nz-flex>\n <div style=\"flex:1\">\u7F16\u8F91\u5386\u53F2</div>\n <button nz-button nzSize=\"small\" nzType=\"link\" nzShape=\"circle\" nz-tooltip=\"\u64A4\u9500\" (click)=\"undo()\"\n [disabled]=\"historyIndex==history.length-1\">\n <nz-icon nzType=\"undo\" nzTheme=\"outline\" />\n </button>\n <button nz-button nzSize=\"small\" nzType=\"link\" nzShape=\"circle\" nz-tooltip=\"\u91CD\u505A\" (click)=\"redo()\"\n [disabled]=\"historyIndex==0\">\n <nz-icon nzType=\"redo\" nzTheme=\"outline\" />\n </button>\n </div>\n</ng-template>\n\n<ng-template #historyTemp>\n <div nz-flex nzVertical>\n @for (item of history; track item.time;let i=$index) {\n <div nz-flex [class.active]=\"i == historyIndex\" class=\"history-item\" (click)=\"switchHistory(i)\">\n <div style=\"width: 20px;\">\n @if (i == historyIndex) {\n <nz-icon nzType=\"aim\" nzTheme=\"outline\" />\n }\n </div>\n <div>#{{history.length-i}} {{item.time | axisHowLong}}</div>\n </div>\n }\n </div>\n</ng-template>\n\n<nz-modal [(nzVisible)]=\"shortcutKeysModal\" nzTitle=\"\u5FEB\u6377\u952E\u8BF4\u660E\" nzDraggable [nzOkText]=\"null\" nzCancelText=\"\u5173\u95ED\"\n (nzOnCancel)=\"shortcutKeysModal.set(false)\">\n <ng-container *nzModalContent>\n <nz-table nzTemplateMode nzSize=\"small\">\n <thead>\n <tr>\n <th>\u529F\u80FD</th>\n <th>\u5FEB\u6377\u952E</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>\u67E5\u770B\u5FEB\u6377\u952E\u8BF4\u660E</td>\n <td>Ctrl Meta H</td>\n </tr>\n <tr>\n <td>\u590D\u5236</td>\n <td>Ctrl C</td>\n </tr>\n <tr>\n <td>\u526A\u5207</td>\n <td>Ctrl X</td>\n </tr>\n <tr>\n <td>\u7C98\u8D34</td>\n <td>Ctrl V</td>\n </tr>\n <tr>\n <td>\u64A4\u9500</td>\n <td>Ctrl Z</td>\n </tr>\n <tr>\n <td>\u91CD\u505A</td>\n <td>Ctrl Shift Z</td>\n </tr>\n <tr>\n <td>\u9884\u89C8\u653E\u5927/\u6062\u590D</td>\n <td>Ctrl Meta C</td>\n </tr>\n <tr>\n <td>\u91CD\u65B0\u8F7D\u5165</td>\n <td>Ctrl Meta R</td>\n </tr>\n </tbody>\n </nz-table>\n </ng-container>\n</nz-modal>", styles: [".tools{position:absolute;right:20px;top:10px}::ng-deep .history-popover .ant-popover-inner-content{width:100%;padding:12px 0}.history-item{padding:0 12px;cursor:pointer}.history-item:hover{background-color:var(--ant-primary-1)}.active{color:var(--ant-primary-color);pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: NzModalModule }, { kind: "component", type: i1$2.NzModalComponent, selector: "nz-modal", inputs: ["nzMask", "nzMaskClosable", "nzCloseOnNavigation", "nzVisible", "nzClosable", "nzOkLoading", "nzOkDisabled", "nzCancelDisabled", "nzCancelLoading", "nzKeyboard", "nzNoAnimation", "nzCentered", "nzDraggable", "nzContent", "nzFooter", "nzZIndex", "nzWidth", "nzWrapClassName", "nzClassName", "nzStyle", "nzTitle", "nzCloseIcon", "nzMaskStyle", "nzBodyStyle", "nzOkText", "nzCancelText", "nzOkType", "nzOkDanger", "nzIconType", "nzModalType", "nzAutofocus", "nzOnOk", "nzOnCancel"], outputs: ["nzOnOk", "nzOnCancel", "nzAfterOpen", "nzAfterClose", "nzVisibleChange"], exportAs: ["nzModal"] }, { kind: "directive", type: i1$2.NzModalContentDirective, selector: "[nzModalContent]", exportAs: ["nzModalContent"] }, { kind: "ngmodule", type: NzTableModule }, { kind: "component", type: i2$2.NzTableComponent, selector: "nz-table", inputs: ["nzTableLayout", "nzShowTotal", "nzItemRender", "nzTitle", "nzFooter", "nzNoResult", "nzPageSizeOptions", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualForTrackBy", "nzLoadingDelay", "nzPageIndex", "nzPageSize", "nzTotal", "nzWidthConfig", "nzData", "nzCustomColumn", "nzPaginationPosition", "nzScroll", "noDataVirtualHeight", "nzPaginationType", "nzFrontPagination", "nzTemplateMode", "nzShowPagination", "nzLoading", "nzOuterBordered", "nzLoadingIndicator", "nzBordered", "nzSize", "nzShowSizeChanger", "nzHideOnSinglePage", "nzShowQuickJumper", "nzSimple"], outputs: ["nzPageSizeChange", "nzPageIndexChange", "nzQueryParams", "nzCurrentPageDataChange", "nzCustomColumnChange"], exportAs: ["nzTable"] }, { kind: "directive", type: i2$2.NzTableCellDirective, selector: "th:not(.nz-disable-th), td:not(.nz-disable-td)" }, { kind: "directive", type: i2$2.NzThMeasureDirective, selector: "th", inputs: ["nzWidth", "colspan", "colSpan", "rowspan", "rowSpan"] }, { kind: "component", type: i2$2.NzTheadComponent, selector: "thead:not(.ant-table-thead)", outputs: ["nzSortOrderChange"] }, { kind: "component", type: i2$2.NzTbodyComponent, selector: "tbody" }, { kind: "directive", type: i2$2.NzTrDirective, selector: "tr:not([nz-table-measure-row]):not([nzExpand]):not([nz-table-fixed-row])" }, { kind: "ngmodule", type: NzFlexModule }, { kind: "directive", type: i3$1.NzFlexDirective, selector: "[nz-flex],nz-flex", inputs: ["nzVertical", "nzJustify", "nzAlign", "nzGap", "nzWrap", "nzFlex"], exportAs: ["nzFlex"] }, { kind: "ngmodule", type: NzIconModule }, { kind: "directive", type: i3.NzIconDirective, selector: "nz-icon,[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "ngmodule", type: NzToolTipModule }, { kind: "directive", type: i9.NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "cdkConnectedOverlayPush", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }, { kind: "ngmodule", type: NzButtonModule }, { kind: "component", type: i6.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }, { kind: "directive", type: i7.ɵNzTransitionPatchDirective, selector: "[nz-button], [nz-icon], nz-icon, [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "ngmodule", type: NzPopoverModule }, { kind: "directive", type: i8$1.NzPopoverDirective, selector: "[nz-popover]", inputs: ["nzPopoverArrowPointAtCenter", "nzPopoverTitle", "nzPopoverTitleContext", "nzPopoverContent", "nzPopoverContentContext", "nz-popover", "nzPopoverTrigger", "nzPopoverPlacement", "nzPopoverOrigin", "nzPopoverVisible", "nzPopoverMouseEnterDelay", "nzPopoverMouseLeaveDelay", "nzPopoverOverlayClassName", "nzPopoverOverlayStyle", "nzPopoverOverlayClickable", "nzPopoverBackdrop"], outputs: ["nzPopoverVisibleChange"], exportAs: ["nzPopover"] }, { kind: "pipe", type: HowLongPipe, name: "axisHowLong" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1271
- }
1272
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: Toolbar, decorators: [{
1273
- type: Component,
1274
- args: [{ selector: 'axis-toolbar', imports: [NzModalModule, NzTableModule, NzFlexModule, NzIconModule, NzToolTipModule, NzButtonModule, NzPopoverModule, HowLongPipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"tools\" nz-flex nzGap=\"4px\">\n <button nz-button nzSize=\"small\" nzType=\"text\" nzShape=\"circle\" nz-tooltip=\"\u5FEB\u6377\u952E\u8BF4\u660E\"\n (click)=\"shortcutKeysModal.set(true)\">\n <nz-icon nzType=\"exclamation-circle\" nzTheme=\"outline\" />\n </button>\n <button nz-button nzSize=\"small\" nzType=\"text\" nzShape=\"circle\" nz-tooltip=\"\u7F16\u8F91\u5386\u53F2\" nz-popover\n [nzPopoverTitle]=\"historyTitle\" nzPopoverTrigger=\"click\" [nzPopoverContent]=\"historyTemp\"\n nzPopoverPlacement=\"bottom\" nzPopoverOverlayClassName=\"history-popover\">\n <nz-icon nzType=\"history\" nzTheme=\"outline\" />\n </button>\n <button nz-button nzSize=\"small\" nzType=\"text\" nzShape=\"circle\" [nz-tooltip]=\"onlyPreview()?'\u6062\u590D':'\u653E\u5927'\"\n (click)=\"onlyPreview.set(!onlyPreview())\">\n <nz-icon [nzType]=\"onlyPreview()?'fullscreen-exit':'fullscreen'\" />\n </button>\n <button nz-button nzSize=\"small\" nzType=\"text\" nzShape=\"circle\" nz-tooltip=\"\u91CD\u65B0\u8F7D\u5165\"\n (click)=\"design.preview.forceRender()\">\n <nz-icon nzType=\"reload\" />\n </button>\n</div>\n\n<ng-template #historyTitle>\n <div nz-flex>\n <div style=\"flex:1\">\u7F16\u8F91\u5386\u53F2</div>\n <button nz-button nzSize=\"small\" nzType=\"link\" nzShape=\"circle\" nz-tooltip=\"\u64A4\u9500\" (click)=\"undo()\"\n [disabled]=\"historyIndex==history.length-1\">\n <nz-icon nzType=\"undo\" nzTheme=\"outline\" />\n </button>\n <button nz-button nzSize=\"small\" nzType=\"link\" nzShape=\"circle\" nz-tooltip=\"\u91CD\u505A\" (click)=\"redo()\"\n [disabled]=\"historyIndex==0\">\n <nz-icon nzType=\"redo\" nzTheme=\"outline\" />\n </button>\n </div>\n</ng-template>\n\n<ng-template #historyTemp>\n <div nz-flex nzVertical>\n @for (item of history; track item.time;let i=$index) {\n <div nz-flex [class.active]=\"i == historyIndex\" class=\"history-item\" (click)=\"switchHistory(i)\">\n <div style=\"width: 20px;\">\n @if (i == historyIndex) {\n <nz-icon nzType=\"aim\" nzTheme=\"outline\" />\n }\n </div>\n <div>#{{history.length-i}} {{item.time | axisHowLong}}</div>\n </div>\n }\n </div>\n</ng-template>\n\n<nz-modal [(nzVisible)]=\"shortcutKeysModal\" nzTitle=\"\u5FEB\u6377\u952E\u8BF4\u660E\" nzDraggable [nzOkText]=\"null\" nzCancelText=\"\u5173\u95ED\"\n (nzOnCancel)=\"shortcutKeysModal.set(false)\">\n <ng-container *nzModalContent>\n <nz-table nzTemplateMode nzSize=\"small\">\n <thead>\n <tr>\n <th>\u529F\u80FD</th>\n <th>\u5FEB\u6377\u952E</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>\u67E5\u770B\u5FEB\u6377\u952E\u8BF4\u660E</td>\n <td>Ctrl Meta H</td>\n </tr>\n <tr>\n <td>\u590D\u5236</td>\n <td>Ctrl C</td>\n </tr>\n <tr>\n <td>\u526A\u5207</td>\n <td>Ctrl X</td>\n </tr>\n <tr>\n <td>\u7C98\u8D34</td>\n <td>Ctrl V</td>\n </tr>\n <tr>\n <td>\u64A4\u9500</td>\n <td>Ctrl Z</td>\n </tr>\n <tr>\n <td>\u91CD\u505A</td>\n <td>Ctrl Shift Z</td>\n </tr>\n <tr>\n <td>\u9884\u89C8\u653E\u5927/\u6062\u590D</td>\n <td>Ctrl Meta C</td>\n </tr>\n <tr>\n <td>\u91CD\u65B0\u8F7D\u5165</td>\n <td>Ctrl Meta R</td>\n </tr>\n </tbody>\n </nz-table>\n </ng-container>\n</nz-modal>", styles: [".tools{position:absolute;right:20px;top:10px}::ng-deep .history-popover .ant-popover-inner-content{width:100%;padding:12px 0}.history-item{padding:0 12px;cursor:pointer}.history-item:hover{background-color:var(--ant-primary-1)}.active{color:var(--ant-primary-color);pointer-events:none}\n"] }]
1275
- }] });
1276
-
1277
- class Design extends ValueAccess {
1278
- constructor() {
1279
- super();
1280
- this.addSubscribe(this.changeSubject
1281
- .pipe(debounceTime(300))
1282
- .subscribe((value) => this.onChangeOptionsConfig(value)));
1283
- }
1284
- options = new DesignOptions();
1285
- clipboard = inject(ClipboardService);
1286
- loader = inject(AXIS_COMPONENTS_LOADER_TOKEN);
1287
- injectDataObs = toObservable(this.options.injectData);
1288
- funcs = inject(AXIS_INJECT_FUNC_TOKEN);
1289
- treeNode = signal(undefined, ...(ngDevMode ? [{ debugName: "treeNode" }] : []));
1290
- loadAndOptions = signal(undefined, ...(ngDevMode ? [{ debugName: "loadAndOptions" }] : []));
1291
- menu;
1292
- chooseComponentVisible = model(false, ...(ngDevMode ? [{ debugName: "chooseComponentVisible" }] : []));
1293
- chooseComponentSubject = new Subject();
1294
- chooseComponentTags = signal([], ...(ngDevMode ? [{ debugName: "chooseComponentTags" }] : []));
1295
- cacheSized = [300, 300];
1296
- setting;
1297
- settingRef;
1298
- settingOptionsNodeId;
1299
- settingOptionsStr = model("", ...(ngDevMode ? [{ debugName: "settingOptionsStr" }] : []));
1300
- preview;
1301
- tree;
1302
- codeEditor;
1303
- tools;
1304
- shortcutKey = new ShortcutKey(this);
1305
- onKeyPress(e) {
1306
- this.shortcutKey.onKeyPress(e);
1307
- }
1308
- optionsNodes = new Map();
1309
- optionsNodeScopes = new Map();
1310
- scopeInfos = new Map();
1311
- componentsInfo = new Map;
1312
- componentsCounter = new Map();
1313
- scopInfoSubjects = new Map();
1314
- changeSubject = new Subject();
1315
- setInitValue(value) {
1316
- super.setInitValue(value);
1317
- this.tools.putHistory(value);
1318
- this.render(value);
1319
- }
1320
- writeValue(value) {
1321
- super.writeValue(value);
1322
- this.tools.putHistory(value);
1323
- this.render(value);
1324
- }
1325
- async inspect(nextInfo) {
1326
- if (!nextInfo.currentObject?.component) {
1327
- return;
1328
- }
1329
- const config = await this.loader.loadComponent(`${nextInfo.currentObject.component}/design`);
1330
- if (!this.componentsInfo.has(nextInfo.currentObject.component)) {
1331
- this.componentsInfo.set(nextInfo.currentObject.component, { component: nextInfo.currentObject.component, componentName: config.componentName, eventHandlerDescs: config.eventHandlerDescs });
1332
- }
1333
- if (!this.componentsCounter.has(nextInfo.currentObject.component)) {
1334
- this.componentsCounter.set(nextInfo.currentObject.component, 0);
1335
- }
1336
- this.componentsCounter.set(nextInfo.currentObject.component, this.componentsCounter.get(nextInfo.currentObject.component) + 1);
1337
- const res = config.buildOptionsNodes?.(nextInfo);
1338
- if (res) {
1339
- let nodes = [res.treeNode];
1340
- while (nodes.length) {
1341
- let next = [];
1342
- for (const node of nodes) {
1343
- this.optionsNodes.set(node.id, node);
1344
- if (node.children) {
1345
- next = next.concat(node.children);
1346
- }
1347
- nodes = next;
1348
- }
1349
- }
1350
- if (res.treeNode.scopeId) {
1351
- if (!this.optionsNodeScopes.has(res.treeNode.scopeId)) {
1352
- this.optionsNodeScopes.set(res.treeNode.scopeId, []);
1353
- }
1354
- this.optionsNodeScopes.get(res.treeNode.scopeId).push(res.treeNode);
1355
- }
1356
- if (res.newScopes) {
1357
- for (const scope of res.newScopes) {
1358
- this.scopeInfos.set(scope.scopeId, scope);
1359
- }
1360
- }
1361
- if (res.next?.length) {
1362
- for (const r of res.next) {
1363
- if (Array.isArray(r.parentObject)) {
1364
- for (let i = 0; i < r.parentObject.length; i++) {
1365
- r.indexOfParent = i;
1366
- r.currentObject = r.parentObject[i];
1367
- const parent = this.optionsNodes.get(r.parentId);
1368
- const child = await this.inspect(r);
1369
- if (child) {
1370
- parent?.children?.push(child);
1371
- }
1372
- }
1373
- }
1374
- else if (r.indexOfParent != undefined) {
1375
- r.currentObject = r.parentObject[r.indexOfParent];
1376
- const child = await this.inspect(r);
1377
- if (child) {
1378
- this.optionsNodes.get(r.parentId)?.children?.push(child);
1379
- }
1380
- }
1381
- }
1382
- }
1383
- }
1384
- return res?.treeNode;
1385
- }
1386
- onChangeOptionsConfig(value, putHistory = true) {
1387
- this.reset();
1388
- if (value === undefined) {
1389
- value = this.value();
1390
- }
1391
- this.value.set(copy(value, true));
1392
- this.render(this.value());
1393
- this.loadAndOptions()?.[0].then(() => {
1394
- if (!putHistory && this.settingOptionsNodeId) {
1395
- const node = this.optionsNodes.get(this.settingOptionsNodeId);
1396
- if (node) {
1397
- this.settingRef?.instance.writeValue(node.options);
1398
- }
1399
- this.syncToCode();
1400
- }
1401
- });
1402
- this.onChange?.(this.value());
1403
- if (putHistory) {
1404
- this.tools.putHistory(this.value());
1405
- }
1406
- }
1407
- render(value) {
1408
- this.loadAndOptions.set([this.inspect({ currentObject: value }).then(v => {
1409
- this.treeNode.set(v ?? null);
1410
- return v;
1411
- }), value]);
1412
- }
1413
- onSettingChange(settingValue) {
1414
- if (this.settingOptionsNodeId) {
1415
- const optionsNode = this.optionsNodes.get(this.settingOptionsNodeId);
1416
- if (optionsNode) {
1417
- if (optionsNode.isRoot) {
1418
- Object.assign(this.value(), settingValue);
1419
- }
1420
- else {
1421
- optionsNode.updateOptions(settingValue);
1422
- }
1423
- this.settingOptionsNodeId = optionsNode.id;
1424
- this.preview.selectByNodeIds([this.settingOptionsNodeId]);
1425
- this.tree.selectByNodeIds([this.settingOptionsNodeId]);
1426
- this.changeSubject.next(undefined);
1427
- }
1428
- }
1429
- }
1430
- onTreeSelect(nodeIds) {
1431
- this.preview.selectByNodeIds(nodeIds);
1432
- if (nodeIds.length == 1) {
1433
- this.updateScopeWithNodeId(nodeIds[0]);
1434
- this.loadSetting(nodeIds[0]);
1435
- }
1436
- else {
1437
- this.settingOptionsNodeId = undefined;
1438
- this.resetSetting();
1439
- }
1440
- }
1441
- onPreviewSelect(nodeIds) {
1442
- this.menu.clear();
1443
- this.tree.selectByNodeIds(nodeIds);
1444
- if (nodeIds.length == 1) {
1445
- this.updateScopeWithNodeId(nodeIds[0]);
1446
- this.loadSetting(nodeIds[0]);
1447
- }
1448
- else {
1449
- this.settingOptionsNodeId = undefined;
1450
- this.resetSetting();
1451
- }
1452
- let expandIds = [];
1453
- for (const nodeid of nodeIds) {
1454
- expandIds = expandIds.concat(this.getAllParentNodes(nodeid).map(n => n.id));
1455
- }
1456
- this.tree.expandByNodeIds(expandIds);
1457
- }
1458
- updateScopeWithNodeId(nodeId) {
1459
- let scopeId = this.optionsNodes.get(nodeId)?.scopeId;
1460
- while (scopeId && this.scopeInfos.has(scopeId)) {
1461
- this.preview.updateScopeWithSelectedElement(scopeId);
1462
- scopeId = this.scopeInfos.get(scopeId)?.parentScopeId;
1463
- }
1464
- }
1465
- loadSetting(nodeId) {
1466
- if (nodeId && this.optionsNodes.has(nodeId)) {
1467
- if (this.settingOptionsNodeId == nodeId) {
1468
- return;
1469
- }
1470
- else if (this.settingOptionsNodeId) {
1471
- const oldNode = this.optionsNodes.get(this.settingOptionsNodeId);
1472
- const newNode = this.optionsNodes.get(nodeId);
1473
- if (oldNode.parentId == newNode.parentId && oldNode.settingType == newNode.settingType) {
1474
- this.settingOptionsNodeId = nodeId;
1475
- this.settingOptionsStr.set(JSON.stringify(newNode.options, null, " "));
1476
- this.settingRef?.instance.writeValue(newNode.options);
1477
- return;
1478
- }
1479
- }
1480
- this.resetSetting();
1481
- this.settingOptionsNodeId = nodeId;
1482
- const optionsNode = this.optionsNodes.get(nodeId);
1483
- this.settingOptionsStr.set(JSON.stringify(optionsNode.options, null, " "));
1484
- if (optionsNode.settingType) {
1485
- const injector = Injector.create({
1486
- providers: [
1487
- { provide: AXIS_DESIGN_SCOPE_INFOS_GETTER_TOKEN, useValue: this.buildScopeInfosGetter(optionsNode) },
1488
- { provide: AXIS_DESIGN_COMPONENT_INFO_FOR_SETTING_TOKEN, useValue: this.buildComponentInfoForSetting(optionsNode) },
1489
- { provide: AXIS_DESIGN_ALL_PERMISSIONS_TOKEN, useValue: this.options.allPermissions() },
1490
- { provide: AXIS_INJECT_FUNC_TOKEN, useValue: this.funcs }
1491
- ]
1492
- });
1493
- this.settingRef = this.setting.createComponent(optionsNode.settingType, { injector: injector });
1494
- this.settingRef.instance.onChange = this.onSettingChange.bind(this);
1495
- this.settingRef.instance.writeValue(optionsNode.options);
1496
- }
1497
- }
1498
- else {
1499
- this.resetSetting();
1500
- }
1501
- }
1502
- buildScopeInfosGetter(optionsNode) {
1503
- const _scopeId = optionsNode.scopeId;
1504
- return (scopeId) => {
1505
- scopeId ??= _scopeId;
1506
- if (scopeId) {
1507
- if (!this.scopInfoSubjects.has(scopeId)) {
1508
- this.scopInfoSubjects.set(scopeId, this.buildScopeInfoSubject(scopeId));
1509
- }
1510
- return this.scopInfoSubjects.get(scopeId);
1511
- }
1512
- return new BehaviorSubject([]);
1513
- };
1514
- }
1515
- buildScopeInfoSubject(scopeId) {
1516
- const scopeObs = [];
1517
- const scopeInfosOrder = [];
1518
- while (scopeId && this.scopeInfos.has(scopeId)) {
1519
- const scopeInfo = this.scopeInfos.get(scopeId);
1520
- scopeInfosOrder.push(scopeId);
1521
- const scopeSubject = this.preview.getAndUpdateScopeSubject(scopeId);
1522
- scopeObs.push(scopeSubject.pipe(filter(s => !!s), switchMap(s => {
1523
- return merge(new Observable(sub => sub.next(s.getSnapshoptAllWithScopeId(s.axisScope()))), s.getAllWithScopeId(s.axisScope()) ?? NEVER);
1524
- }), filter(realDs => !!realDs && this.scopeInfos.has(scopeInfo.scopeId)), map(realDs => {
1525
- const _scopeInfo = this.scopeInfos.get(scopeInfo.scopeId);
1526
- return {
1527
- scopeInfo: { ..._scopeInfo, ds: { ..._scopeInfo.ds, ...realDs } },
1528
- index: scopeInfosOrder.indexOf(scopeInfo.scopeId),
1529
- };
1530
- })));
1531
- scopeId = scopeInfo.parentScopeId;
1532
- }
1533
- const subject = new BehaviorSubject([]);
1534
- const res = [];
1535
- this.addSubscribe(merge(...scopeObs).pipe(map(row => {
1536
- res[row.index] = row.scopeInfo;
1537
- return [...res];
1538
- })).subscribe(subject));
1539
- return subject;
1540
- }
1541
- buildComponentInfoForSetting(optionsNode) {
1542
- const componentInfo = new Map();
1543
- let scopeId = optionsNode.scopeId;
1544
- while (scopeId) {
1545
- let nodes = this.optionsNodeScopes.get(scopeId);
1546
- if (nodes) {
1547
- for (const node of nodes) {
1548
- const component = node.options.component;
1549
- if (!componentInfo.has(component)) {
1550
- const info = this.componentsInfo.get(component);
1551
- componentInfo.set(component, { component: info.component, componentName: info.componentName, nodes: [], eventHandlerDescs: info.eventHandlerDescs ?? {} });
1552
- }
1553
- componentInfo.get(component).nodes.push(node);
1554
- }
1555
- }
1556
- scopeId = this.scopeInfos.get(scopeId)?.parentScopeId;
1557
- }
1558
- return Array.from(componentInfo.values());
1559
- }
1560
- onContextMenu(e, nodeId) {
1561
- const node = this.optionsNodes.get(nodeId);
1562
- if (node?.contextMenu) {
1563
- const parent = node.isRoot ? undefined : this.optionsNodes.get(node.parentId);
1564
- const injector = Injector.create({
1565
- providers: [
1566
- { provide: AXIS_DESIGN_OPTIONS_NODE_FOR_MENU, useValue: { current: node, parent } },
1567
- { provide: AXIS_DESIGN_CHOOSE_COMPONENT_FUNC_TOKEN, useValue: this.chooseComponent.bind(this) },
1568
- ]
1569
- });
1570
- this.menu.clear();
1571
- const ref = this.menu.createComponent(node.contextMenu, { injector: injector });
1572
- ref.instance.contextMenu(e);
1573
- ref.instance.onChange = (value) => {
1574
- this.onChangeOptionsConfig(value);
1575
- };
1576
- }
1577
- }
1578
- chooseComponent(...tags) {
1579
- this.chooseComponentTags.set(tags);
1580
- this.chooseComponentVisible.set(true);
1581
- const existsIds = new Set();
1582
- return this.chooseComponentSubject.asObservable()
1583
- .pipe(take(1), map((example) => example?.builder((component, offset) => this.genNewComponentId(component, offset, existsIds))), switchMap(options => options ? from(this.loader.loadComponent(`${options.component}/design`)).pipe(map(config => ({ options, config }))) : of({})));
1584
- }
1585
- genNewComponentId(component, offset = 1, existsIds) {
1586
- let id;
1587
- if (this.componentsCounter.has(component)) {
1588
- id = `${component}#${this.componentsCounter.get(component) + offset}`;
1589
- }
1590
- else {
1591
- id = `${component}#${offset}`;
1592
- }
1593
- if (existsIds?.has(id) || this.optionsNodes.has(id)) {
1594
- return this.genNewComponentId(component, offset + 1, existsIds);
1595
- }
1596
- existsIds?.add(id);
1597
- return id;
1598
- }
1599
- onCmplibDragStart(example, element) {
1600
- const options = example.builder((component, offset) => this.genNewComponentId(component, offset));
1601
- const optionsNode = new OptionsNode({
1602
- canDrag: true,
1603
- dragType: "component",
1604
- rootOptions: options
1605
- });
1606
- this.optionsNodes.set(optionsNode.id, optionsNode);
1607
- this.preview.dragForOuter(optionsNode.toElementNode({ element }));
1608
- }
1609
- async onCmplibDragEnd() {
1610
- const nodeId = this.preview.dragEndForOuter();
1611
- if (nodeId) {
1612
- await this.loadAndOptions()[0];
1613
- this.tree.selectByNodeIds([nodeId]);
1614
- this.preview.selectByNodeIds([nodeId]);
1615
- this.loadSetting(nodeId);
1616
- }
1617
- }
1618
- onExamplePaste(examples) {
1619
- const nodes = [];
1620
- for (const example of examples) {
1621
- const options = example.builder((component, offset) => this.genNewComponentId(component, offset));
1622
- const optionsNode = new OptionsNode({
1623
- canDrag: true,
1624
- dragType: "component",
1625
- rootOptions: options
1626
- });
1627
- nodes.push(optionsNode);
1628
- this.optionsNodes.set(optionsNode.id, optionsNode);
1629
- }
1630
- this.tree.addNodeForSelected(nodes);
1631
- }
1632
- onNodesMove(nodeIds) {
1633
- if (this.tree.selectListSelection.selected.length == 1) {
1634
- this.tree.addNodeForSelected(nodeIds.map(id => this.optionsNodes.get(id)), true);
1635
- }
1636
- }
1637
- onEditorChange(optionsStr) {
1638
- try {
1639
- const options = JSON.parse(optionsStr);
1640
- this.onSettingChange(options);
1641
- }
1642
- catch (_) { }
1643
- }
1644
- syncToSetting() {
1645
- if (this.settingOptionsNodeId) {
1646
- const optionsNode = this.optionsNodes.get(this.settingOptionsNodeId);
1647
- if (optionsNode) {
1648
- const instance = this.setting.get(0)?.context;
1649
- instance?.writeValue(optionsNode.options);
1650
- }
1651
- }
1652
- }
1653
- syncToCode() {
1654
- if (this.settingOptionsNodeId) {
1655
- const optionsNode = this.optionsNodes.get(this.settingOptionsNodeId);
1656
- if (optionsNode) {
1657
- this.settingOptionsStr.set(JSON.stringify(optionsNode.options, null, " "));
1658
- }
1659
- }
1660
- setTimeout(() => {
1661
- this.layoutEditor();
1662
- });
1663
- }
1664
- layoutEditor(e) {
1665
- if (e) {
1666
- if (e[0] > 0) {
1667
- this.cacheSized[0] = e[0];
1668
- }
1669
- if (e[2] > 0) {
1670
- this.cacheSized[1] = e[2];
1671
- }
1672
- }
1673
- this.codeEditor?.onEvents?.({
1674
- target: "component",
1675
- name: "layout",
1676
- })?.subscribe();
1677
- }
1678
- resetSetting() {
1679
- this.settingOptionsNodeId = undefined;
1680
- this.setting.clear();
1681
- this.settingOptionsStr.set("");
1682
- }
1683
- reset() {
1684
- this.optionsNodes.clear();
1685
- this.componentsInfo.clear();
1686
- this.optionsNodeScopes.clear();
1687
- this.scopeInfos.clear();
1688
- this.componentsCounter.clear();
1689
- }
1690
- getAllParentNodes(node, parentNodes = []) {
1691
- if (typeof node == "string") {
1692
- node = this.optionsNodes.get(node);
1693
- }
1694
- if (node?.parentId) {
1695
- const parent = this.optionsNodes.get(node.parentId);
1696
- if (parent) {
1697
- parentNodes.push(parent);
1698
- this.getAllParentNodes(parent, parentNodes);
1699
- }
1700
- }
1701
- return parentNodes;
1702
- }
1703
- ngOnDestroy() {
1704
- super.ngOnDestroy();
1705
- for (const s of this.scopInfoSubjects.values()) {
1706
- s.unsubscribe();
1707
- }
1708
- }
1709
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: Design, deps: [], target: i0.ɵɵFactoryTarget.Component });
1710
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.2", type: Design, isStandalone: true, selector: "axis-design", inputs: { chooseComponentVisible: { classPropertyName: "chooseComponentVisible", publicName: "chooseComponentVisible", isSignal: true, isRequired: false, transformFunction: null }, settingOptionsStr: { classPropertyName: "settingOptionsStr", publicName: "settingOptionsStr", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { chooseComponentVisible: "chooseComponentVisibleChange", settingOptionsStr: "settingOptionsStrChange" }, host: { attributes: { "tabindex": "-1", "autofocus": "true" }, listeners: { "keydown": "onKeyPress($event)" } }, viewQueries: [{ propertyName: "menu", first: true, predicate: ["menu"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "setting", first: true, predicate: ["setting"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "preview", first: true, predicate: ["preview"], descendants: true, static: true }, { propertyName: "tree", first: true, predicate: ["tree"], descendants: true, static: true }, { propertyName: "codeEditor", first: true, predicate: ["codeEditor"], descendants: true }, { propertyName: "tools", first: true, predicate: ["tools"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<nz-splitter (nzResize)=\"layoutEditor($event)\">\n <nz-splitter-panel [nzCollapsible]=\"!tools.onlyPreview()\" [nzDefaultSize]=\"cacheSized[0]\" nzMin=\"15%\" nzMax=\"40%\"\n [nzSize]=\"tools.onlyPreview()?0:undefined\">\n <nz-tabs nzCentered>\n <nz-tab nzTitle=\"\u7EC4\u4EF6\u6811\">\n <axis-design-tree #tree [node]=\"treeNode()\" [optionsNodes]=\"optionsNodes\"\n (onSelect)=\"onTreeSelect($event)\" (onChange)=\"onChangeOptionsConfig($event)\"\n (onContextMenu)=\"onContextMenu($event.event,$event.nodeId)\"></axis-design-tree>\n </nz-tab>\n <nz-tab nzTitle=\"\u7EC4\u4EF6\u5E93\">\n <axis-cmplib selectMode=\"drag\" (dragStart)=\"onCmplibDragStart($event.example,$event.element)\"\n (dragEnd)=\"onCmplibDragEnd()\"></axis-cmplib>\n </nz-tab>\n </nz-tabs>\n </nz-splitter-panel>\n <nz-splitter-panel>\n <div nz-flex nzVertical style=\"height: 100%;width: 100%;position: relative;\">\n <h2 style=\"text-align: center;margin-top: 4px;\">\u9884\u89C8</h2>\n <axis-toolbar #tools></axis-toolbar>\n <axis-design-preview #preview style=\"flex:1;overflow: auto;\" [loadAndOptions]=\"loadAndOptions()\"\n [optionsNodes]=\"optionsNodes\" [injectData]=\"injectDataObs\" (onChange)=\"onChangeOptionsConfig()\"\n (onSelect)=\"onPreviewSelect($event)\"\n (onContextMenu)=\"onContextMenu($event.event,$event.nodeId)\"></axis-design-preview>\n </div>\n </nz-splitter-panel>\n <nz-splitter-panel [nzCollapsible]=\"!tools.onlyPreview()\" [nzDefaultSize]=\"cacheSized[1]\" nzMin=\"15%\" nzMax=\"40%\"\n [nzSize]=\"tools.onlyPreview()?0:undefined\" style=\"position: relative;\">\n <nz-tabs nzCentered style=\"height: 100%;\">\n <nz-tab nzTitle=\"\u5C5E\u6027\u8BBE\u7F6E\" (nzClick)=\"syncToSetting()\">\n <ng-container #setting></ng-container>\n @if (!settingOptionsStr()){\n <nz-empty style=\"height: 300px;\" nzNotFoundContent=\"\u8BF7\u5148\u9009\u62E9\u4E00\u4E2A\u7EC4\u4EF6\"></nz-empty>\n }\n </nz-tab>\n <nz-tab nzTitle=\"\u4EE3\u7801\" nzForceRender (nzSelect)=\"syncToCode();\">\n <ng-container #codeEditor=\"axisDynamic\"\n [axisDynamic]=\"{component:'axis-components/editor',inuse:true,mode:'json',readonly:!settingOptionsStr(),otherOptions:{tabSize:2}}\"\n [standalone]=\"true\" [(ngModel)]=\"settingOptionsStr\"\n (ngModelChange)=\"onEditorChange($event)\"></ng-container>\n </nz-tab>\n </nz-tabs>\n </nz-splitter-panel>\n</nz-splitter>\n<ng-container #menu></ng-container>\n<nz-drawer [(nzVisible)]=\"chooseComponentVisible\" nzTitle=\"\u9009\u62E9\u7EC4\u4EF6\" [nzBodyStyle]=\"{padding:0}\"\n (nzOnClose)=\"chooseComponentVisible.set(false);chooseComponentSubject.next(undefined)\">\n <ng-container *nzDrawerContent>\n <axis-cmplib selectMode=\"click\" [tags]=\"chooseComponentTags()\"\n (clickExample)=\"chooseComponentVisible.set(false);chooseComponentSubject.next($event)\"></axis-cmplib>\n </ng-container>\n</nz-drawer>", styles: ["nz-tabs,::ng-deep .ant-tabs-content,::ng-deep .ant-tabs-tabpane{height:100%}::ng-deep .ant-tabs-content{overflow:auto}:host{display:block;width:100%;height:100%}\n"], dependencies: [{ kind: "ngmodule", type: NzSplitterModule }, { kind: "component", type: i1$3.NzSplitterComponent, selector: "nz-splitter", inputs: ["nzLayout", "nzLazy"], outputs: ["nzResizeStart", "nzResize", "nzResizeEnd"], exportAs: ["nzSplitter"] }, { kind: "component", type: i1$3.NzSplitterPanelComponent, selector: "nz-splitter-panel", inputs: ["nzDefaultSize", "nzMin", "nzMax", "nzSize", "nzCollapsible", "nzResizable"], exportAs: ["nzSplitterPanel"] }, { kind: "ngmodule", type: NzTabsModule }, { kind: "component", type: i2$3.NzTabsComponent, selector: "nz-tabs,nz-tabset", inputs: ["nzSelectedIndex", "nzTabPosition", "nzTabBarExtraContent", "nzCanDeactivate", "nzAddIcon", "nzTabBarStyle", "nzType", "nzSize", "nzAnimated", "nzTabBarGutter", "nzHideAdd", "nzCentered", "nzHideAll", "nzLinkRouter", "nzLinkExact", "nzDestroyInactiveTabPane"], outputs: ["nzSelectChange", "nzSelectedIndexChange", "nzTabListScroll", "nzClose", "nzAdd"], exportAs: ["nzTabs"] }, { kind: "component", type: i2$3.NzTabComponent, selector: "nz-tab", inputs: ["nzTitle", "nzClosable", "nzCloseIcon", "nzDisabled", "nzForceRender"], outputs: ["nzSelect", "nzDeselect", "nzClick", "nzContextmenu"], exportAs: ["nzTab"] }, { kind: "component", type: Preview, selector: "axis-design-preview", inputs: ["loadAndOptions", "optionsNodes", "injectData"], outputs: ["onChange", "onSelect", "onContextMenu"] }, { kind: "component", type: Tree, selector: "axis-design-tree", inputs: ["node", "optionsNodes"], outputs: ["onChange", "onSelect", "onContextMenu"] }, { kind: "ngmodule", type: NzFlexModule }, { kind: "directive", type: i3$1.NzFlexDirective, selector: "[nz-flex],nz-flex", inputs: ["nzVertical", "nzJustify", "nzAlign", "nzGap", "nzWrap", "nzFlex"], exportAs: ["nzFlex"] }, { kind: "component", type: Cmplib, selector: "axis-cmplib", inputs: ["cmplib", "selectMode", "tags"], outputs: ["cmplibChange", "clickExample", "dragStart", "dragEnd"] }, { 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: "ngmodule", type: NzEmptyModule }, { kind: "component", type: i10.NzEmptyComponent, selector: "nz-empty", inputs: ["nzNotFoundImage", "nzNotFoundContent", "nzNotFoundFooter"], exportAs: ["nzEmpty"] }, { kind: "directive", type: DynamicDirective, selector: "[axisDynamic]", inputs: ["axisDynamic", "standalone", "isDesign"], exportAs: ["axisDynamic"] }, { kind: "ngmodule", type: NzDrawerModule }, { kind: "component", type: i6$2.NzDrawerComponent, selector: "nz-drawer", inputs: ["nzContent", "nzCloseIcon", "nzClosable", "nzMaskClosable", "nzMask", "nzCloseOnNavigation", "nzNoAnimation", "nzKeyboard", "nzTitle", "nzExtra", "nzFooter", "nzPlacement", "nzSize", "nzMaskStyle", "nzBodyStyle", "nzWrapClassName", "nzWidth", "nzHeight", "nzZIndex", "nzOffsetX", "nzOffsetY", "nzVisible"], outputs: ["nzOnViewInit", "nzOnClose", "nzVisibleChange"], exportAs: ["nzDrawer"] }, { kind: "directive", type: i6$2.NzDrawerContentDirective, selector: "[nzDrawerContent]", exportAs: ["nzDrawerContent"] }, { kind: "component", type: Toolbar, selector: "axis-toolbar", inputs: ["shortcutKeysModal"], outputs: ["shortcutKeysModalChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1711
- }
1712
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.2", ngImport: i0, type: Design, decorators: [{
1713
- type: Component,
1714
- args: [{ selector: 'axis-design', imports: [NzSplitterModule, NzTabsModule, Preview, Tree, NzFlexModule, Cmplib, FormsModule, NzEmptyModule, DynamicDirective, NzDrawerModule, Toolbar], changeDetection: ChangeDetectionStrategy.OnPush, host: {
1715
- tabindex: "-1",
1716
- autofocus: "true",
1717
- }, template: "<nz-splitter (nzResize)=\"layoutEditor($event)\">\n <nz-splitter-panel [nzCollapsible]=\"!tools.onlyPreview()\" [nzDefaultSize]=\"cacheSized[0]\" nzMin=\"15%\" nzMax=\"40%\"\n [nzSize]=\"tools.onlyPreview()?0:undefined\">\n <nz-tabs nzCentered>\n <nz-tab nzTitle=\"\u7EC4\u4EF6\u6811\">\n <axis-design-tree #tree [node]=\"treeNode()\" [optionsNodes]=\"optionsNodes\"\n (onSelect)=\"onTreeSelect($event)\" (onChange)=\"onChangeOptionsConfig($event)\"\n (onContextMenu)=\"onContextMenu($event.event,$event.nodeId)\"></axis-design-tree>\n </nz-tab>\n <nz-tab nzTitle=\"\u7EC4\u4EF6\u5E93\">\n <axis-cmplib selectMode=\"drag\" (dragStart)=\"onCmplibDragStart($event.example,$event.element)\"\n (dragEnd)=\"onCmplibDragEnd()\"></axis-cmplib>\n </nz-tab>\n </nz-tabs>\n </nz-splitter-panel>\n <nz-splitter-panel>\n <div nz-flex nzVertical style=\"height: 100%;width: 100%;position: relative;\">\n <h2 style=\"text-align: center;margin-top: 4px;\">\u9884\u89C8</h2>\n <axis-toolbar #tools></axis-toolbar>\n <axis-design-preview #preview style=\"flex:1;overflow: auto;\" [loadAndOptions]=\"loadAndOptions()\"\n [optionsNodes]=\"optionsNodes\" [injectData]=\"injectDataObs\" (onChange)=\"onChangeOptionsConfig()\"\n (onSelect)=\"onPreviewSelect($event)\"\n (onContextMenu)=\"onContextMenu($event.event,$event.nodeId)\"></axis-design-preview>\n </div>\n </nz-splitter-panel>\n <nz-splitter-panel [nzCollapsible]=\"!tools.onlyPreview()\" [nzDefaultSize]=\"cacheSized[1]\" nzMin=\"15%\" nzMax=\"40%\"\n [nzSize]=\"tools.onlyPreview()?0:undefined\" style=\"position: relative;\">\n <nz-tabs nzCentered style=\"height: 100%;\">\n <nz-tab nzTitle=\"\u5C5E\u6027\u8BBE\u7F6E\" (nzClick)=\"syncToSetting()\">\n <ng-container #setting></ng-container>\n @if (!settingOptionsStr()){\n <nz-empty style=\"height: 300px;\" nzNotFoundContent=\"\u8BF7\u5148\u9009\u62E9\u4E00\u4E2A\u7EC4\u4EF6\"></nz-empty>\n }\n </nz-tab>\n <nz-tab nzTitle=\"\u4EE3\u7801\" nzForceRender (nzSelect)=\"syncToCode();\">\n <ng-container #codeEditor=\"axisDynamic\"\n [axisDynamic]=\"{component:'axis-components/editor',inuse:true,mode:'json',readonly:!settingOptionsStr(),otherOptions:{tabSize:2}}\"\n [standalone]=\"true\" [(ngModel)]=\"settingOptionsStr\"\n (ngModelChange)=\"onEditorChange($event)\"></ng-container>\n </nz-tab>\n </nz-tabs>\n </nz-splitter-panel>\n</nz-splitter>\n<ng-container #menu></ng-container>\n<nz-drawer [(nzVisible)]=\"chooseComponentVisible\" nzTitle=\"\u9009\u62E9\u7EC4\u4EF6\" [nzBodyStyle]=\"{padding:0}\"\n (nzOnClose)=\"chooseComponentVisible.set(false);chooseComponentSubject.next(undefined)\">\n <ng-container *nzDrawerContent>\n <axis-cmplib selectMode=\"click\" [tags]=\"chooseComponentTags()\"\n (clickExample)=\"chooseComponentVisible.set(false);chooseComponentSubject.next($event)\"></axis-cmplib>\n </ng-container>\n</nz-drawer>", styles: ["nz-tabs,::ng-deep .ant-tabs-content,::ng-deep .ant-tabs-tabpane{height:100%}::ng-deep .ant-tabs-content{overflow:auto}:host{display:block;width:100%;height:100%}\n"] }]
1718
- }], ctorParameters: () => [], propDecorators: { menu: [{
1719
- type: ViewChild,
1720
- args: ["menu", { static: true, read: ViewContainerRef }]
1721
- }], setting: [{
1722
- type: ViewChild,
1723
- args: ["setting", { static: true, read: ViewContainerRef }]
1724
- }], preview: [{
1725
- type: ViewChild,
1726
- args: ["preview", { static: true }]
1727
- }], tree: [{
1728
- type: ViewChild,
1729
- args: ["tree", { static: true }]
1730
- }], codeEditor: [{
1731
- type: ViewChild,
1732
- args: ["codeEditor"]
1733
- }], tools: [{
1734
- type: ViewChild,
1735
- args: ["tools", { static: true }]
1736
- }], onKeyPress: [{
1737
- type: HostListener,
1738
- args: ["keydown", ['$event']]
1739
- }] } });
1740
-
1741
- /**
1742
- * Generated bundle index. Do not edit.
1743
- */
1744
-
1745
- export { Design };
1746
- //# sourceMappingURL=ngx-axis-appforge-axis-components-design.mjs.map