cmat 0.0.17 → 0.0.18

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 (495) hide show
  1. package/components/carousel/carousel.component.d.ts +136 -0
  2. package/components/carousel/carousel.interface.d.ts +38 -0
  3. package/components/carousel/index.d.ts +5 -0
  4. package/components/carousel/public-api.d.ts +2 -0
  5. package/components/custom-formly/public-api.d.ts +1 -0
  6. package/components/custom-formly/types/knob/knob.component.d.ts +36 -0
  7. package/components/custom-formly/types/table/table.component.d.ts +3 -8
  8. package/components/custom-formly/wrappers/form-field/form-field.component.d.ts +4 -4
  9. package/components/image-viewer/image-viewer.component.d.ts +76 -0
  10. package/components/image-viewer/index.d.ts +5 -0
  11. package/components/image-viewer/public-api.d.ts +1 -0
  12. package/components/knob-input/index.d.ts +5 -0
  13. package/components/knob-input/knob-input.component.d.ts +95 -0
  14. package/components/knob-input/public-api.d.ts +1 -0
  15. package/components/material-datetimepicker/datetimepicker-input.d.ts +2 -2
  16. package/components/opt-input/index.d.ts +5 -0
  17. package/components/opt-input/models/config.d.ts +14 -0
  18. package/components/opt-input/otp-input.component.d.ts +70 -0
  19. package/components/opt-input/public-api.d.ts +1 -0
  20. package/components/opt-input/utils/keyboard-util.d.ts +9 -0
  21. package/components/opt-input/utils/object-util.d.ts +3 -0
  22. package/components/org-chart/designer/chart-designer.component.d.ts +17 -0
  23. package/components/org-chart/index.d.ts +5 -0
  24. package/components/org-chart/node/chart-node.component.d.ts +17 -0
  25. package/components/org-chart/node/node.type.d.ts +22 -0
  26. package/components/org-chart/org-chart.component.d.ts +12 -0
  27. package/components/org-chart/public-api.d.ts +2 -0
  28. package/components/popover/popover.interfaces.d.ts +1 -1
  29. package/components/select-table/index.d.ts +5 -0
  30. package/components/select-table/public-api.d.ts +2 -0
  31. package/components/select-table/select-table.component.d.ts +96 -0
  32. package/components/select-table/select-table.type.d.ts +20 -0
  33. package/components/select-tree/select-tree.component.d.ts +11 -12
  34. package/components/speed-dial/index.d.ts +5 -0
  35. package/components/speed-dial/public-api.d.ts +2 -0
  36. package/components/speed-dial/speed-dial.component.d.ts +63 -0
  37. package/components/transfer-picker/interface.d.ts +0 -1
  38. package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.d.ts +8 -6
  39. package/components/treetable/index.d.ts +5 -0
  40. package/components/treetable/public-api.d.ts +2 -0
  41. package/components/treetable/treetable.component.d.ts +32 -0
  42. package/components/treetable/treetable.interface.d.ts +9 -0
  43. package/directives/animate-on-scroll/animate-on-scroll.directive.d.ts +4 -4
  44. package/directives/arrow-cursor/arrow-cursor.directive.d.ts +31 -0
  45. package/directives/arrow-cursor/index.d.ts +5 -0
  46. package/directives/arrow-cursor/public-api.d.ts +1 -0
  47. package/directives/data-exporter/constants.d.ts +26 -0
  48. package/directives/data-exporter/data-exporter.directive.d.ts +18 -0
  49. package/directives/data-exporter/index.d.ts +5 -0
  50. package/directives/data-exporter/mime.d.ts +5 -0
  51. package/directives/data-exporter/options.d.ts +21 -0
  52. package/directives/data-exporter/public-api.d.ts +2 -0
  53. package/directives/data-exporter/services/exporters/csv-exporter.service.d.ts +12 -0
  54. package/directives/data-exporter/services/exporters/exporter.d.ts +4 -0
  55. package/directives/data-exporter/services/exporters/file-exporter.d.ts +8 -0
  56. package/directives/data-exporter/services/exporters/json-exporter.service.d.ts +11 -0
  57. package/directives/data-exporter/services/exporters/txt-exporter.service.d.ts +12 -0
  58. package/directives/data-exporter/services/exporters/worksheet-exporter.d.ts +10 -0
  59. package/directives/data-exporter/services/exporters/xls-exporter.service.d.ts +14 -0
  60. package/directives/data-exporter/services/exporters/xlsx-exporter.service.d.ts +9 -0
  61. package/directives/data-exporter/services/file-util.d.ts +8 -0
  62. package/directives/data-exporter/services/service-locator.service.d.ts +11 -0
  63. package/directives/debounce/abstract-debounce.directive.d.ts +1 -1
  64. package/fesm2022/cmat-animations.mjs.map +1 -1
  65. package/fesm2022/cmat-components-adapter.mjs +9 -9
  66. package/fesm2022/cmat-components-adapter.mjs.map +1 -1
  67. package/fesm2022/cmat-components-breadcrumb.mjs +10 -10
  68. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  69. package/fesm2022/cmat-components-card.mjs +4 -4
  70. package/fesm2022/cmat-components-card.mjs.map +1 -1
  71. package/fesm2022/cmat-components-carousel.mjs +711 -0
  72. package/fesm2022/cmat-components-carousel.mjs.map +1 -0
  73. package/fesm2022/cmat-components-cascade.mjs +12 -12
  74. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  75. package/fesm2022/cmat-components-chip-input.mjs +5 -5
  76. package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
  77. package/fesm2022/cmat-components-custom-formly.mjs +168 -155
  78. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
  79. package/fesm2022/cmat-components-date-range.mjs +5 -5
  80. package/fesm2022/cmat-components-date-range.mjs.map +1 -1
  81. package/fesm2022/cmat-components-drawer.mjs +6 -6
  82. package/fesm2022/cmat-components-drawer.mjs.map +1 -1
  83. package/fesm2022/cmat-components-fullscreen.mjs +4 -4
  84. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
  85. package/fesm2022/cmat-components-highlight.mjs +7 -7
  86. package/fesm2022/cmat-components-highlight.mjs.map +1 -1
  87. package/fesm2022/cmat-components-image-viewer.mjs +227 -0
  88. package/fesm2022/cmat-components-image-viewer.mjs.map +1 -0
  89. package/fesm2022/cmat-components-json-editor.mjs +4 -4
  90. package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
  91. package/fesm2022/cmat-components-knob-input.mjs +404 -0
  92. package/fesm2022/cmat-components-knob-input.mjs.map +1 -0
  93. package/fesm2022/cmat-components-masonry.mjs +4 -4
  94. package/fesm2022/cmat-components-masonry.mjs.map +1 -1
  95. package/fesm2022/cmat-components-material-color-picker.mjs +4 -4
  96. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  97. package/fesm2022/cmat-components-material-datetimepicker.mjs +53 -53
  98. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  99. package/fesm2022/cmat-components-navigation.mjs +51 -51
  100. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  101. package/fesm2022/cmat-components-opt-input.mjs +457 -0
  102. package/fesm2022/cmat-components-opt-input.mjs.map +1 -0
  103. package/fesm2022/cmat-components-org-chart.mjs +141 -0
  104. package/fesm2022/cmat-components-org-chart.mjs.map +1 -0
  105. package/fesm2022/cmat-components-pagination.mjs +13 -13
  106. package/fesm2022/cmat-components-pagination.mjs.map +1 -1
  107. package/fesm2022/cmat-components-password-strength.mjs +12 -12
  108. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  109. package/fesm2022/cmat-components-popover.mjs +10 -10
  110. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  111. package/fesm2022/cmat-components-progress-bar.mjs +4 -4
  112. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
  113. package/fesm2022/cmat-components-rating.mjs +4 -4
  114. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  115. package/fesm2022/cmat-components-select-search.mjs +11 -11
  116. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  117. package/fesm2022/cmat-components-select-table.mjs +658 -0
  118. package/fesm2022/cmat-components-select-table.mjs.map +1 -0
  119. package/fesm2022/cmat-components-select-tree.mjs +75 -57
  120. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  121. package/fesm2022/cmat-components-speed-dial.mjs +312 -0
  122. package/fesm2022/cmat-components-speed-dial.mjs.map +1 -0
  123. package/fesm2022/cmat-components-timeline.mjs +14 -14
  124. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  125. package/fesm2022/cmat-components-toast.mjs +11 -11
  126. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  127. package/fesm2022/cmat-components-transfer-picker.mjs +60 -41
  128. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  129. package/fesm2022/cmat-components-treetable.mjs +122 -0
  130. package/fesm2022/cmat-components-treetable.mjs.map +1 -0
  131. package/fesm2022/cmat-components-upload.mjs +11 -11
  132. package/fesm2022/cmat-components-upload.mjs.map +1 -1
  133. package/fesm2022/cmat-directives-animate-on-scroll.mjs +21 -21
  134. package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
  135. package/fesm2022/cmat-directives-arrow-cursor.mjs +184 -0
  136. package/fesm2022/cmat-directives-arrow-cursor.mjs.map +1 -0
  137. package/fesm2022/cmat-directives-autofocus.mjs +3 -3
  138. package/fesm2022/cmat-directives-autofocus.mjs.map +1 -1
  139. package/fesm2022/cmat-directives-data-exporter.mjs +324 -0
  140. package/fesm2022/cmat-directives-data-exporter.mjs.map +1 -0
  141. package/fesm2022/cmat-directives-debounce.mjs +9 -9
  142. package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
  143. package/fesm2022/cmat-directives-digit-only.mjs +8 -6
  144. package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
  145. package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
  146. package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -1
  147. package/fesm2022/cmat-lib-mock-api.mjs +6 -6
  148. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
  149. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  150. package/fesm2022/cmat-pipes-bytes.mjs.map +1 -1
  151. package/fesm2022/cmat-pipes-date-format.mjs +3 -3
  152. package/fesm2022/cmat-pipes-date-format.mjs.map +1 -1
  153. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
  154. package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
  155. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  156. package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
  157. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  158. package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
  159. package/fesm2022/cmat-pipes-secure.mjs +3 -3
  160. package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
  161. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  162. package/fesm2022/cmat-pipes-uppercase.mjs.map +1 -1
  163. package/fesm2022/cmat-services-alert.mjs +3 -3
  164. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  165. package/fesm2022/cmat-services-config.mjs +6 -6
  166. package/fesm2022/cmat-services-config.mjs.map +1 -1
  167. package/fesm2022/cmat-services-confirmation.mjs +7 -7
  168. package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
  169. package/fesm2022/cmat-services-data.mjs +3 -3
  170. package/fesm2022/cmat-services-data.mjs.map +1 -1
  171. package/fesm2022/cmat-services-export-as.mjs +211 -0
  172. package/fesm2022/cmat-services-export-as.mjs.map +1 -0
  173. package/fesm2022/cmat-services-loading.mjs +6 -6
  174. package/fesm2022/cmat-services-loading.mjs.map +1 -1
  175. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  176. package/fesm2022/cmat-services-local-storage.mjs.map +1 -1
  177. package/fesm2022/cmat-services-media-watcher.mjs +3 -3
  178. package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
  179. package/fesm2022/cmat-services-platform.mjs +3 -3
  180. package/fesm2022/cmat-services-platform.mjs.map +1 -1
  181. package/fesm2022/cmat-services-splash-screen.mjs +3 -3
  182. package/fesm2022/cmat-services-splash-screen.mjs.map +1 -1
  183. package/fesm2022/cmat-services-title.mjs +3 -3
  184. package/fesm2022/cmat-services-title.mjs.map +1 -1
  185. package/fesm2022/cmat-services-translation.mjs +3 -3
  186. package/fesm2022/cmat-services-translation.mjs.map +1 -1
  187. package/fesm2022/cmat-services-utils.mjs +3 -3
  188. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  189. package/fesm2022/cmat-validators.mjs.map +1 -1
  190. package/fesm2022/cmat-version.mjs.map +1 -1
  191. package/icons/arrow-cursor.svg +1 -1
  192. package/package.json +82 -148
  193. package/services/export-as/export-as-config.model.d.ts +8 -0
  194. package/services/export-as/export-as.service.d.ts +43 -0
  195. package/services/export-as/index.d.ts +5 -0
  196. package/services/export-as/public-api.d.ts +2 -0
  197. package/styles/overrides/angular-material.scss +95 -13
  198. package/esm2022/animations/cmat-animations.mjs +0 -5
  199. package/esm2022/animations/defaults.mjs +0 -12
  200. package/esm2022/animations/dropdown.mjs +0 -26
  201. package/esm2022/animations/expand-collapse.mjs +0 -17
  202. package/esm2022/animations/fade.mjs +0 -170
  203. package/esm2022/animations/public-api.mjs +0 -19
  204. package/esm2022/animations/shake.mjs +0 -59
  205. package/esm2022/animations/slide.mjs +0 -124
  206. package/esm2022/animations/transform.mjs +0 -16
  207. package/esm2022/animations/zoom.mjs +0 -38
  208. package/esm2022/cmat.mjs +0 -5
  209. package/esm2022/components/adapter/cmat-components-adapter.mjs +0 -5
  210. package/esm2022/components/adapter/datetime-adapter.mjs +0 -127
  211. package/esm2022/components/adapter/datetime-formats.mjs +0 -3
  212. package/esm2022/components/adapter/dayjs-date-adapter.mjs +0 -198
  213. package/esm2022/components/adapter/dayjs-date-formats.mjs +0 -12
  214. package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +0 -100
  215. package/esm2022/components/adapter/dayjs-datetime-formats.mjs +0 -21
  216. package/esm2022/components/adapter/native-datetime-adapter.mjs +0 -130
  217. package/esm2022/components/adapter/native-datetime-formats.mjs +0 -15
  218. package/esm2022/components/adapter/public-api.mjs +0 -9
  219. package/esm2022/components/breadcrumb/breadcrumb-item.directive.mjs +0 -19
  220. package/esm2022/components/breadcrumb/breadcrumb.component.mjs +0 -94
  221. package/esm2022/components/breadcrumb/breadcrumb.service.mjs +0 -333
  222. package/esm2022/components/breadcrumb/cmat-components-breadcrumb.mjs +0 -5
  223. package/esm2022/components/breadcrumb/public-api.mjs +0 -6
  224. package/esm2022/components/breadcrumb/types/breadcrumb.config.mjs +0 -2
  225. package/esm2022/components/breadcrumb/types/breadcrumb.mjs +0 -2
  226. package/esm2022/components/card/card.component.mjs +0 -49
  227. package/esm2022/components/card/card.types.mjs +0 -2
  228. package/esm2022/components/card/cmat-components-card.mjs +0 -5
  229. package/esm2022/components/card/public-api.mjs +0 -3
  230. package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +0 -49
  231. package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +0 -384
  232. package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +0 -22
  233. package/esm2022/components/cascade/cmat-components-cascade.mjs +0 -5
  234. package/esm2022/components/cascade/options.interface.mjs +0 -2
  235. package/esm2022/components/cascade/public-api.mjs +0 -4
  236. package/esm2022/components/chip-input/chip-input.component.mjs +0 -251
  237. package/esm2022/components/chip-input/cmat-components-chip-input.mjs +0 -5
  238. package/esm2022/components/chip-input/public-api.mjs +0 -2
  239. package/esm2022/components/custom-formly/cmat-components-custom-formly.mjs +0 -5
  240. package/esm2022/components/custom-formly/extension/addons.extension.mjs +0 -13
  241. package/esm2022/components/custom-formly/public-api.mjs +0 -29
  242. package/esm2022/components/custom-formly/types/button/button.component.mjs +0 -81
  243. package/esm2022/components/custom-formly/types/cascade/cascade.component.mjs +0 -71
  244. package/esm2022/components/custom-formly/types/checklist/checklist.component.mjs +0 -161
  245. package/esm2022/components/custom-formly/types/chips/chips.component.mjs +0 -55
  246. package/esm2022/components/custom-formly/types/color-picker/color-picker.component.mjs +0 -15
  247. package/esm2022/components/custom-formly/types/date-range/date-range.component.mjs +0 -25
  248. package/esm2022/components/custom-formly/types/datepicker/datepicker.component.mjs +0 -51
  249. package/esm2022/components/custom-formly/types/multicheckbox/multicheckbox.component.mjs +0 -88
  250. package/esm2022/components/custom-formly/types/number/number.component.mjs +0 -27
  251. package/esm2022/components/custom-formly/types/quill/quill.component.mjs +0 -171
  252. package/esm2022/components/custom-formly/types/radio/radio.component.mjs +0 -87
  253. package/esm2022/components/custom-formly/types/rating/rating.component.mjs +0 -27
  254. package/esm2022/components/custom-formly/types/repeat/repeat.component.mjs +0 -25
  255. package/esm2022/components/custom-formly/types/select/select.component.mjs +0 -167
  256. package/esm2022/components/custom-formly/types/select-tree/select-tree.component.mjs +0 -66
  257. package/esm2022/components/custom-formly/types/stepper/horizontal/stepper.component.mjs +0 -28
  258. package/esm2022/components/custom-formly/types/stepper/stepper.type.mjs +0 -2
  259. package/esm2022/components/custom-formly/types/stepper/vertical/stepper.component.mjs +0 -28
  260. package/esm2022/components/custom-formly/types/table/table.component.mjs +0 -127
  261. package/esm2022/components/custom-formly/types/tabs/tab.component.mjs +0 -16
  262. package/esm2022/components/custom-formly/types/tags/tags.component.mjs +0 -146
  263. package/esm2022/components/custom-formly/types/textarea/textarea.component.mjs +0 -25
  264. package/esm2022/components/custom-formly/types/upload/upload.component.mjs +0 -58
  265. package/esm2022/components/custom-formly/wrappers/addons/addons.component.mjs +0 -92
  266. package/esm2022/components/custom-formly/wrappers/card/card.component.mjs +0 -14
  267. package/esm2022/components/custom-formly/wrappers/expansion/expansion.component.mjs +0 -14
  268. package/esm2022/components/custom-formly/wrappers/form-field/form-field.component.mjs +0 -47
  269. package/esm2022/components/custom-formly/wrappers/panel/panel.component.mjs +0 -12
  270. package/esm2022/components/date-range/cmat-components-date-range.mjs +0 -5
  271. package/esm2022/components/date-range/date-range.component.mjs +0 -558
  272. package/esm2022/components/date-range/public-api.mjs +0 -2
  273. package/esm2022/components/drawer/cmat-components-drawer.mjs +0 -5
  274. package/esm2022/components/drawer/drawer.component.mjs +0 -301
  275. package/esm2022/components/drawer/drawer.service.mjs +0 -41
  276. package/esm2022/components/drawer/drawer.types.mjs +0 -2
  277. package/esm2022/components/drawer/public-api.mjs +0 -4
  278. package/esm2022/components/fullscreen/cmat-components-fullscreen.mjs +0 -5
  279. package/esm2022/components/fullscreen/fullscreen.component.mjs +0 -44
  280. package/esm2022/components/fullscreen/public-api.mjs +0 -2
  281. package/esm2022/components/highlight/cmat-components-highlight.mjs +0 -5
  282. package/esm2022/components/highlight/highlight.component.mjs +0 -80
  283. package/esm2022/components/highlight/highlight.service.mjs +0 -47
  284. package/esm2022/components/highlight/public-api.mjs +0 -3
  285. package/esm2022/components/json-editor/cmat-components-json-editor.mjs +0 -5
  286. package/esm2022/components/json-editor/json-editor.component.mjs +0 -176
  287. package/esm2022/components/json-editor/public-api.mjs +0 -2
  288. package/esm2022/components/masonry/cmat-components-masonry.mjs +0 -5
  289. package/esm2022/components/masonry/masonry.component.mjs +0 -54
  290. package/esm2022/components/masonry/public-api.mjs +0 -2
  291. package/esm2022/components/material-color-picker/base-color.mjs +0 -13
  292. package/esm2022/components/material-color-picker/cmat-components-material-color-picker.mjs +0 -5
  293. package/esm2022/components/material-color-picker/material-color-picker.component.mjs +0 -147
  294. package/esm2022/components/material-color-picker/public-api.mjs +0 -3
  295. package/esm2022/components/material-color-picker/selected-color.mjs +0 -3
  296. package/esm2022/components/material-datetimepicker/calendar-body.mjs +0 -76
  297. package/esm2022/components/material-datetimepicker/calendar.mjs +0 -670
  298. package/esm2022/components/material-datetimepicker/clock.mjs +0 -290
  299. package/esm2022/components/material-datetimepicker/cmat-components-material-datetimepicker.mjs +0 -5
  300. package/esm2022/components/material-datetimepicker/datetimepicker-animations.mjs +0 -34
  301. package/esm2022/components/material-datetimepicker/datetimepicker-errors.mjs +0 -6
  302. package/esm2022/components/material-datetimepicker/datetimepicker-filtertype.mjs +0 -8
  303. package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +0 -341
  304. package/esm2022/components/material-datetimepicker/datetimepicker-intl.mjs +0 -63
  305. package/esm2022/components/material-datetimepicker/datetimepicker-toggle.mjs +0 -87
  306. package/esm2022/components/material-datetimepicker/datetimepicker-types.mjs +0 -2
  307. package/esm2022/components/material-datetimepicker/datetimepicker.mjs +0 -531
  308. package/esm2022/components/material-datetimepicker/month-view.mjs +0 -141
  309. package/esm2022/components/material-datetimepicker/multi-year-view.mjs +0 -197
  310. package/esm2022/components/material-datetimepicker/public-api.mjs +0 -11
  311. package/esm2022/components/material-datetimepicker/time.mjs +0 -455
  312. package/esm2022/components/material-datetimepicker/year-view.mjs +0 -124
  313. package/esm2022/components/navigation/cmat-components-navigation.mjs +0 -5
  314. package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +0 -70
  315. package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +0 -82
  316. package/esm2022/components/navigation/horizontal/components/divider/divider.component.mjs +0 -47
  317. package/esm2022/components/navigation/horizontal/components/spacer/spacer.component.mjs +0 -47
  318. package/esm2022/components/navigation/horizontal/horizontal.component.mjs +0 -87
  319. package/esm2022/components/navigation/navigation.service.mjs +0 -140
  320. package/esm2022/components/navigation/navigation.types.mjs +0 -3
  321. package/esm2022/components/navigation/public-api.mjs +0 -5
  322. package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +0 -162
  323. package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +0 -60
  324. package/esm2022/components/navigation/vertical/components/collapsable/collapsable.component.mjs +0 -277
  325. package/esm2022/components/navigation/vertical/components/divider/divider.component.mjs +0 -56
  326. package/esm2022/components/navigation/vertical/components/group/group.component.mjs +0 -78
  327. package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +0 -56
  328. package/esm2022/components/navigation/vertical/vertical.component.mjs +0 -584
  329. package/esm2022/components/pagination/cmat-components-pagination.mjs +0 -5
  330. package/esm2022/components/pagination/pagination.component.mjs +0 -67
  331. package/esm2022/components/pagination/pagination.directive.mjs +0 -197
  332. package/esm2022/components/pagination/pagination.instance.mjs +0 -2
  333. package/esm2022/components/pagination/pagination.pipe.mjs +0 -100
  334. package/esm2022/components/pagination/pagination.service.mjs +0 -90
  335. package/esm2022/components/pagination/public-api.mjs +0 -6
  336. package/esm2022/components/password-strength/animations/index.mjs +0 -48
  337. package/esm2022/components/password-strength/cmat-components-password-strength.mjs +0 -5
  338. package/esm2022/components/password-strength/enum.mjs +0 -17
  339. package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +0 -27
  340. package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +0 -206
  341. package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +0 -150
  342. package/esm2022/components/password-strength/mat-password-strength-validator.mjs +0 -36
  343. package/esm2022/components/password-strength/public-api.mjs +0 -4
  344. package/esm2022/components/password-strength/regexp.class.mjs +0 -8
  345. package/esm2022/components/popover/cmat-components-popover.mjs +0 -5
  346. package/esm2022/components/popover/popover-trigger.mjs +0 -442
  347. package/esm2022/components/popover/popover.component.mjs +0 -348
  348. package/esm2022/components/popover/popover.errors.mjs +0 -27
  349. package/esm2022/components/popover/popover.interfaces.mjs +0 -2
  350. package/esm2022/components/popover/popover.target.mjs +0 -18
  351. package/esm2022/components/popover/popover.type.mjs +0 -2
  352. package/esm2022/components/popover/public-api.mjs +0 -5
  353. package/esm2022/components/progress-bar/cmat-components-progress-bar.mjs +0 -5
  354. package/esm2022/components/progress-bar/progress-bar.component.mjs +0 -58
  355. package/esm2022/components/progress-bar/public-api.mjs +0 -2
  356. package/esm2022/components/rating/cmat-components-rating.mjs +0 -5
  357. package/esm2022/components/rating/public-api.mjs +0 -2
  358. package/esm2022/components/rating/rating.component.mjs +0 -202
  359. package/esm2022/components/select-search/cmat-components-select-search.mjs +0 -5
  360. package/esm2022/components/select-search/default-options.mjs +0 -16
  361. package/esm2022/components/select-search/public-api.mjs +0 -3
  362. package/esm2022/components/select-search/select-no-entries-found.directive.mjs +0 -14
  363. package/esm2022/components/select-search/select-search-clear.directive.mjs +0 -14
  364. package/esm2022/components/select-search/select-search.component.mjs +0 -485
  365. package/esm2022/components/select-tree/cmat-components-select-tree.mjs +0 -5
  366. package/esm2022/components/select-tree/public-api.mjs +0 -4
  367. package/esm2022/components/select-tree/select-tree.component.mjs +0 -565
  368. package/esm2022/components/select-tree/select-tree.flatnode.mjs +0 -3
  369. package/esm2022/components/select-tree/select-tree.node.mjs +0 -3
  370. package/esm2022/components/timeline/cmat-components-timeline.mjs +0 -5
  371. package/esm2022/components/timeline/public-api.mjs +0 -3
  372. package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +0 -70
  373. package/esm2022/components/timeline/timeline.component.mjs +0 -107
  374. package/esm2022/components/toast/cmat-components-toast.mjs +0 -5
  375. package/esm2022/components/toast/models/global-config.model.mjs +0 -2
  376. package/esm2022/components/toast/models/toast.model.mjs +0 -2
  377. package/esm2022/components/toast/models/type.model.mjs +0 -2
  378. package/esm2022/components/toast/public-api.mjs +0 -7
  379. package/esm2022/components/toast/toast-modal.component.mjs +0 -53
  380. package/esm2022/components/toast/toast.component.mjs +0 -30
  381. package/esm2022/components/toast/toast.service.mjs +0 -122
  382. package/esm2022/components/transfer-picker/cmat-components-transfer-picker.mjs +0 -5
  383. package/esm2022/components/transfer-picker/filter/filter.component.mjs +0 -91
  384. package/esm2022/components/transfer-picker/interface.mjs +0 -17
  385. package/esm2022/components/transfer-picker/public-api.mjs +0 -8
  386. package/esm2022/components/transfer-picker/search/search.component.mjs +0 -38
  387. package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +0 -201
  388. package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +0 -32
  389. package/esm2022/components/transfer-picker/transfer-picker.component.mjs +0 -84
  390. package/esm2022/components/transfer-picker/transfer-picker.service.mjs +0 -137
  391. package/esm2022/components/upload/cmat-components-upload.mjs +0 -5
  392. package/esm2022/components/upload/files.type.mjs +0 -2
  393. package/esm2022/components/upload/files.util.service.mjs +0 -89
  394. package/esm2022/components/upload/public-api.mjs +0 -5
  395. package/esm2022/components/upload/upload-queue/upload-queue.component.mjs +0 -155
  396. package/esm2022/components/upload/upload.component.mjs +0 -118
  397. package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +0 -126
  398. package/esm2022/directives/animate-on-scroll/cmat-directives-animate-on-scroll.mjs +0 -5
  399. package/esm2022/directives/animate-on-scroll/public-api.mjs +0 -2
  400. package/esm2022/directives/animate-on-scroll/scroll.service.mjs +0 -38
  401. package/esm2022/directives/autofocus/autofocus.directive.mjs +0 -20
  402. package/esm2022/directives/autofocus/cmat-directives-autofocus.mjs +0 -5
  403. package/esm2022/directives/autofocus/public-api.mjs +0 -2
  404. package/esm2022/directives/debounce/abstract-debounce.directive.mjs +0 -34
  405. package/esm2022/directives/debounce/cmat-directives-debounce.mjs +0 -5
  406. package/esm2022/directives/debounce/debounce-click.directive.mjs +0 -25
  407. package/esm2022/directives/debounce/debounce-keyup.directive.mjs +0 -25
  408. package/esm2022/directives/debounce/public-api.mjs +0 -3
  409. package/esm2022/directives/digit-only/cmat-directives-digit-only.mjs +0 -5
  410. package/esm2022/directives/digit-only/digit-only.directive.mjs +0 -298
  411. package/esm2022/directives/digit-only/mask.directive.mjs +0 -84
  412. package/esm2022/directives/digit-only/public-api.mjs +0 -3
  413. package/esm2022/directives/equal-validator/cmat-directives-equal-validator.mjs +0 -5
  414. package/esm2022/directives/equal-validator/equal-validator.directive.mjs +0 -54
  415. package/esm2022/directives/equal-validator/public-api.mjs +0 -2
  416. package/esm2022/lib/mock-api/cmat-lib-mock-api.mjs +0 -5
  417. package/esm2022/lib/mock-api/mock-api.constants.mjs +0 -3
  418. package/esm2022/lib/mock-api/mock-api.interceptor.mjs +0 -73
  419. package/esm2022/lib/mock-api/mock-api.request-handler.mjs +0 -48
  420. package/esm2022/lib/mock-api/mock-api.service.mjs +0 -93
  421. package/esm2022/lib/mock-api/mock-api.types.mjs +0 -2
  422. package/esm2022/lib/mock-api/mock-api.utils.mjs +0 -16
  423. package/esm2022/lib/mock-api/public-api.mjs +0 -6
  424. package/esm2022/pipes/bytes/bytes.pipe.mjs +0 -25
  425. package/esm2022/pipes/bytes/cmat-pipes-bytes.mjs +0 -5
  426. package/esm2022/pipes/bytes/public-api.mjs +0 -2
  427. package/esm2022/pipes/date-format/cmat-pipes-date-format.mjs +0 -5
  428. package/esm2022/pipes/date-format/date-format.pipe.mjs +0 -20
  429. package/esm2022/pipes/date-format/public-api.mjs +0 -2
  430. package/esm2022/pipes/find-by-key/cmat-pipes-find-by-key.mjs +0 -5
  431. package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +0 -23
  432. package/esm2022/pipes/find-by-key/public-api.mjs +0 -2
  433. package/esm2022/pipes/group-by/cmat-pipes-group-by.mjs +0 -5
  434. package/esm2022/pipes/group-by/group-by.pipe.mjs +0 -29
  435. package/esm2022/pipes/group-by/public-api.mjs +0 -2
  436. package/esm2022/pipes/keys/cmat-pipes-keys.mjs +0 -5
  437. package/esm2022/pipes/keys/keys.pipe.mjs +0 -26
  438. package/esm2022/pipes/keys/public-api.mjs +0 -2
  439. package/esm2022/pipes/secure/cmat-pipes-secure.mjs +0 -5
  440. package/esm2022/pipes/secure/public-api.mjs +0 -2
  441. package/esm2022/pipes/secure/secure-pipe.mjs +0 -46
  442. package/esm2022/pipes/uppercase/cmat-pipes-uppercase.mjs +0 -5
  443. package/esm2022/pipes/uppercase/public-api.mjs +0 -2
  444. package/esm2022/pipes/uppercase/uppercase.pipe.mjs +0 -17
  445. package/esm2022/public-api.mjs +0 -2
  446. package/esm2022/services/alert/alert.dialog.mjs +0 -12
  447. package/esm2022/services/alert/alert.message.mjs +0 -9
  448. package/esm2022/services/alert/alert.service.mjs +0 -166
  449. package/esm2022/services/alert/cmat-services-alert.mjs +0 -5
  450. package/esm2022/services/alert/enum.mjs +0 -15
  451. package/esm2022/services/alert/public-api.mjs +0 -5
  452. package/esm2022/services/config/cmat-services-config.mjs +0 -5
  453. package/esm2022/services/config/config.constants.mjs +0 -3
  454. package/esm2022/services/config/config.service.mjs +0 -35
  455. package/esm2022/services/config/public-api.mjs +0 -4
  456. package/esm2022/services/config/urlStateConfig.service.mjs +0 -30
  457. package/esm2022/services/confirmation/cmat-services-confirmation.mjs +0 -5
  458. package/esm2022/services/confirmation/confirmation.service.mjs +0 -51
  459. package/esm2022/services/confirmation/confirmation.types.mjs +0 -2
  460. package/esm2022/services/confirmation/dialog/dialog.component.mjs +0 -25
  461. package/esm2022/services/confirmation/public-api.mjs +0 -3
  462. package/esm2022/services/data/cmat-services-data.mjs +0 -5
  463. package/esm2022/services/data/data.service.mjs +0 -169
  464. package/esm2022/services/data/public-api.mjs +0 -2
  465. package/esm2022/services/loading/cmat-services-loading.mjs +0 -5
  466. package/esm2022/services/loading/loading.interceptor.mjs +0 -29
  467. package/esm2022/services/loading/loading.service.mjs +0 -72
  468. package/esm2022/services/loading/public-api.mjs +0 -3
  469. package/esm2022/services/local-storage/cmat-services-local-storage.mjs +0 -5
  470. package/esm2022/services/local-storage/local-storage.service.mjs +0 -22
  471. package/esm2022/services/local-storage/public-api.mjs +0 -2
  472. package/esm2022/services/media-watcher/cmat-services-media-watcher.mjs +0 -5
  473. package/esm2022/services/media-watcher/media-watcher.service.mjs +0 -55
  474. package/esm2022/services/media-watcher/public-api.mjs +0 -2
  475. package/esm2022/services/platform/cmat-services-platform.mjs +0 -5
  476. package/esm2022/services/platform/platform.service.mjs +0 -46
  477. package/esm2022/services/platform/public-api.mjs +0 -2
  478. package/esm2022/services/splash-screen/cmat-services-splash-screen.mjs +0 -5
  479. package/esm2022/services/splash-screen/public-api.mjs +0 -2
  480. package/esm2022/services/splash-screen/splash-screen.service.mjs +0 -42
  481. package/esm2022/services/title/cmat-services-title.mjs +0 -5
  482. package/esm2022/services/title/public-api.mjs +0 -2
  483. package/esm2022/services/title/title.service.mjs +0 -46
  484. package/esm2022/services/translation/cmat-services-translation.mjs +0 -5
  485. package/esm2022/services/translation/public-api.mjs +0 -2
  486. package/esm2022/services/translation/translation.service.mjs +0 -62
  487. package/esm2022/services/utils/cmat-services-utils.mjs +0 -5
  488. package/esm2022/services/utils/public-api.mjs +0 -2
  489. package/esm2022/services/utils/utils.service.mjs +0 -467
  490. package/esm2022/validators/cmat-validators.mjs +0 -5
  491. package/esm2022/validators/public-api.mjs +0 -2
  492. package/esm2022/validators/validators.mjs +0 -33
  493. package/esm2022/version/cmat-version.mjs +0 -5
  494. package/esm2022/version/public-api.mjs +0 -2
  495. package/esm2022/version/version.mjs +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-components-transfer-picker.mjs","sources":["../../../projects/cmat/components/transfer-picker/transfer-picker.service.ts","../../../projects/cmat/components/transfer-picker/filter/filter.component.ts","../../../projects/cmat/components/transfer-picker/filter/filter.component.html","../../../projects/cmat/components/transfer-picker/search/search.component.ts","../../../projects/cmat/components/transfer-picker/search/search.component.html","../../../projects/cmat/components/transfer-picker/interface.ts","../../../projects/cmat/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.ts","../../../projects/cmat/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.html","../../../projects/cmat/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.ts","../../../projects/cmat/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.html","../../../projects/cmat/components/transfer-picker/transfer-picker.component.ts","../../../projects/cmat/components/transfer-picker/transfer-picker.component.html","../../../projects/cmat/components/transfer-picker/cmat-components-transfer-picker.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport {\r\n CmatSourceOptions,\r\n CmatTransferFilterData,\r\n CmatTransferFilterItem,\r\n CmatTransferItemNode\r\n} from './interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatTransferPickerService {\r\n dataSourceChange: BehaviorSubject<CmatTransferItemNode[]>;\r\n refreshDataSourceChange: BehaviorSubject<boolean>;\r\n filtersChange: BehaviorSubject<CmatTransferFilterItem[]>;\r\n sourceOptionsChange: BehaviorSubject<CmatSourceOptions | void>;\r\n selectedValuesChange: BehaviorSubject<string[]>;\r\n\r\n private _dataSource: CmatTransferItemNode[];\r\n\r\n private _filterData: CmatTransferFilterData;\r\n private _keyword: string;\r\n private _originalDataSource: CmatTransferItemNode[];\r\n private _filteredDataSource: CmatTransferItemNode[];\r\n private _compareMap: Map<string, (a: any, b: any) => boolean>;\r\n private _conditionMap: Map<string, (arr: boolean[]) => boolean>;\r\n\r\n constructor() {\r\n this.dataSourceChange = new BehaviorSubject<CmatTransferItemNode[]>([]);\r\n this.refreshDataSourceChange= new BehaviorSubject<boolean>(true);\r\n this.filtersChange = new BehaviorSubject<CmatTransferFilterItem[]>([]);\r\n this.sourceOptionsChange = new BehaviorSubject<CmatSourceOptions | void>(void 0);\r\n this.selectedValuesChange = new BehaviorSubject<string[]>([]);\r\n\r\n this._compareMap = new Map<string, (a: any, b: any) => boolean>([\r\n ['0', (a, b): boolean => a === b],\r\n ['1', (a, b): boolean => a !== b],\r\n ['2', (a, b): boolean => a > b],\r\n ['3', (a, b): boolean => a < b],\r\n ['0,2', (a, b): boolean => a >= b],\r\n ['0,2', (a, b): boolean => a <= b]\r\n ]);\r\n\r\n this._conditionMap = new Map<string, (arr: boolean[]) => boolean>([\r\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\n ['or', arr => arr.reduce((o, item) => (o.result = o.result || item || o.prev, o.prev = item, o), {\r\n result: false,\r\n prev: arr[0]\r\n }).result],\r\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\n ['and', arr => arr.reduce((o, item) => (o.result = o.result && item && o.prev, o.prev = item, o), {\r\n result: true,\r\n prev: arr[0]\r\n }).result],\r\n ]);\r\n }\r\n\r\n get dataSource(): CmatTransferItemNode[] {\r\n return this._dataSource;\r\n }\r\n\r\n set dataSource(data: CmatTransferItemNode[]) {\r\n this._dataSource = data;\r\n\r\n if (!this._originalDataSource) {\r\n this._originalDataSource = JSON.parse(JSON.stringify(data));\r\n }\r\n\r\n this.dataSourceChange.next(data);\r\n }\r\n\r\n set sourceOptions(value: CmatSourceOptions) {\r\n this.sourceOptionsChange.next(value);\r\n }\r\n\r\n set selectedValues(value: string[]) {\r\n this.selectedValuesChange.next(value);\r\n }\r\n\r\n\r\n filterDataSource({ filterData, keyword }: { filterData?: CmatTransferFilterData; keyword?: string }): void {\r\n this._filterData = filterData ?? this._filterData;\r\n this._keyword = keyword === void (0) ? this._keyword : keyword;\r\n\r\n if (filterData?.filters.length) {\r\n this._filterDataSourceByType(this._keyword ? this._filteredDataSource : this._originalDataSource, 'Filters');\r\n return;\r\n } else if (filterData && !filterData.filters.length) {\r\n if (this._keyword) {\r\n this._filterDataSourceByType(this._originalDataSource, 'Keyword');\r\n } else {\r\n this.resetDataSource(false);\r\n }\r\n return;\r\n }\r\n\r\n if (keyword) {\r\n this._filterDataSourceByType(this._filterData?.filters.length ? this._filteredDataSource : this._originalDataSource, 'Keyword');\r\n return;\r\n } else if (!keyword) {\r\n if (this._filterData?.filters.length) {\r\n this._filterDataSourceByType(this._originalDataSource, 'Filters');\r\n } else {\r\n this.resetDataSource(false);\r\n }\r\n return;\r\n }\r\n }\r\n\r\n resetDataSource(clear:boolean): void {\r\n this.dataSource = this._originalDataSource;\r\n this._filteredDataSource = [];\r\n this.refreshDataSourceChange.next(clear);\r\n }\r\n\r\n private _filterDataSourceByType(dataSource: CmatTransferItemNode[], type: 'Filters' | 'Keyword'): void {\r\n this._filteredDataSource = [];\r\n switch (type) {\r\n case 'Filters':\r\n this._setFilteredDataSourceByFilters(dataSource);\r\n break;\r\n case 'Keyword':\r\n this._setFilteredDataSourceByKeyword(dataSource);\r\n break;\r\n }\r\n this.dataSource = this._filteredDataSource;\r\n this.refreshDataSourceChange.next(false);\r\n }\r\n\r\n private _setFilteredDataSourceByFilters(dataSource: CmatTransferItemNode[]): void {\r\n dataSource.map((data) => {\r\n const compareResultArr: any = [];\r\n this._filterData.filters.map((filter) => {\r\n if (Object.prototype.hasOwnProperty.call(data, filter.field)) {\r\n const compare = this._compareMap.get(filter.condition.sort().toString())?.(filter.value, data[filter.field]);\r\n\r\n if (this._filterData.filters.length < 2 && compare) {\r\n this._filteredDataSource.push(data);\r\n } else {\r\n compareResultArr.push(compare);\r\n }\r\n }\r\n });\r\n\r\n if (compareResultArr.length && this._conditionMap.get(this._filterData.condition)?.(compareResultArr)) {\r\n this._filteredDataSource.push(data);\r\n }\r\n\r\n if (data.children && data.children.length > 0) {\r\n this._setFilteredDataSourceByFilters(data.children);\r\n }\r\n });\r\n }\r\n\r\n private _setFilteredDataSourceByKeyword(dataSource: CmatTransferItemNode[]): void {\r\n dataSource.map((data) => {\r\n if (data.label.includes(this._keyword)) {\r\n this._filteredDataSource.push(data);\r\n } else if (data.children && data.children.length > 0) {\r\n this._setFilteredDataSourceByKeyword(data.children);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { CdkOverlayOrigin, Overlay, OverlayConfig, OverlayModule, OverlayRef } from '@angular/cdk/overlay';\r\nimport { CdkPortal , PortalModule } from '@angular/cdk/portal';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { CmatTransferFilterData, CmatTransferFilterItem } from '../interface';\r\nimport { CmatTransferPickerService } from '../transfer-picker.service';\r\n\r\n@Component({\r\n selector: 'cmat-transfer-picker-filter',\r\n templateUrl: './filter.component.html',\r\n styleUrls: ['./filter.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatTransferPickerFilter',\r\n standalone: true,\r\n imports: [MatButtonToggleModule, MatIconModule, CommonModule, PortalModule,MatButtonModule,OverlayModule]\r\n})\r\nexport class CmatTransferPickerFilterComponent implements OnInit {\r\n @Input()\r\n filters: CmatTransferFilterItem[];\r\n\r\n @ViewChild(CdkOverlayOrigin, { static: true }) overlayOrigin: CdkOverlayOrigin;\r\n @ViewChild('filterTemplate', { static: true }) filterTemplate: CdkPortal;\r\n overlayRef: OverlayRef;\r\n\r\n filterData: CmatTransferFilterData;\r\n\r\n constructor(\r\n private _overlay: Overlay,\r\n private _service: CmatTransferPickerService\r\n ) {\r\n this.filterData = {\r\n condition: 'or',\r\n filters: []\r\n };\r\n }\r\n\r\n ngOnInit(): void {\r\n const config = new OverlayConfig({\r\n hasBackdrop: true,\r\n backdropClass: 'cdk-overlay-transparent-backdrop',\r\n scrollStrategy: this._overlay.scrollStrategies.block()\r\n });\r\n\r\n config.positionStrategy = this._overlay\r\n .position()\r\n .flexibleConnectedTo(\r\n this.overlayOrigin.elementRef).withPositions([\r\n {\r\n originX: 'end', originY: 'bottom', overlayX: 'end',\r\n overlayY: 'top', offsetX: 5\r\n },{\r\n originX: 'end',\r\n originY: 'bottom',\r\n overlayX: 'end',\r\n overlayY: 'top',\r\n offsetX: -5\r\n }\r\n ]);\r\n\r\n this.overlayRef = this._overlay.create(config);\r\n\r\n this.overlayRef.backdropClick().subscribe(() => {\r\n this.overlayRef.detach();\r\n });\r\n }\r\n\r\n toggleFilter(): void {\r\n if (this.overlayRef?.hasAttached()) {\r\n this.overlayRef.detach();\r\n } else {\r\n this.overlayRef.attach(this.filterTemplate);\r\n }\r\n }\r\n\r\n onFilterClick(filter: CmatTransferFilterItem): void {\r\n filter.selected = !filter.selected;\r\n\r\n const existFilter = this.filterData.filters.find(item => item.value === filter.value);\r\n\r\n if (!existFilter) {\r\n this.filterData.filters.push(filter);\r\n } else if (!filter.selected) {\r\n this.filterData.filters.splice(this.filterData.filters.indexOf(filter), 1);\r\n }\r\n\r\n this.changeFilterData();\r\n }\r\n\r\n onConditionChange(event: any): void {\r\n this.filterData.condition = event;\r\n\r\n this.changeFilterData();\r\n }\r\n\r\n changeFilterData(): void {\r\n this._service.filterDataSource({ filterData: this.filterData });\r\n }\r\n}\r\n","<button type=\"button\" class=\"mr-2 mt-1\" mat-icon-button cdk-overlay-origin (click)=\"toggleFilter()\">\r\n <mat-icon svgIcon=\"mat_outline:filter_list\"></mat-icon>\r\n</button>\r\n<ng-template #filterTemplate=\"cdkPortal\" cdk-portal>\r\n <div\r\n class=\"transfer-picker-filter-panel bg-card flex flex-col flex-nowrap place-content-start box-border items-start w-full shadow\">\r\n <mat-button-toggle-group name=\"condition\" [hideSingleSelectionIndicator]=\"true\" (change)=\"onConditionChange($event.value)\">\r\n <mat-button-toggle value=\"or\" [checked]=\"filterData.condition === 'or'\">或</mat-button-toggle>\r\n <mat-button-toggle value=\"and\" [checked]=\"filterData.condition === 'and'\">且</mat-button-toggle>\r\n </mat-button-toggle-group>\r\n\r\n <div class=\"chip-list\">\r\n @for (item of filters; track $index) {\r\n <div class=\"chip-wrapper\" role=\"presentation\"\r\n (click)=\"onFilterClick(item)\">\r\n <span class=\"chip\" [ngClass]=\"{selected: item?.selected}\">{{item.label}}</span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</ng-template>","import { ChangeDetectionStrategy, Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { CmatTransferPickerService } from '../transfer-picker.service';\r\n\r\n@Component({\r\n selector: 'cmat-transfer-picker-search',\r\n templateUrl: './search.component.html',\r\n styleUrls: ['./search.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatTransferPickerSearch',\r\n standalone: true,\r\n imports: [MatFormFieldModule, MatIconModule, ReactiveFormsModule, MatButtonModule, MatInputModule]\r\n})\r\nexport class CmatTransferPickerSearchComponent implements OnInit {\r\n @Input()\r\n searchPlaceholder: string;\r\n\r\n keyword: FormControl;\r\n\r\n constructor(\r\n private _service: CmatTransferPickerService\r\n ) {\r\n this.keyword = new FormControl();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.keyword\r\n .valueChanges\r\n .pipe(\r\n debounceTime(200),\r\n distinctUntilChanged()\r\n )\r\n .subscribe((keyword: any) => this._service.filterDataSource({ keyword }));\r\n }\r\n\r\n reset(): void {\r\n this.keyword.setValue('');\r\n }\r\n}\r\n","<mat-form-field>\r\n <input matInput type=\"text\" placeholder=\"{{searchPlaceholder}}\" [formControl]=\"keyword\">\r\n @if (keyword.value) {\r\n <button type=\"button\" matSuffix mat-icon-button (click)=\"reset()\">\r\n <mat-icon svgIcon=\"mat_outline:close\"></mat-icon>\r\n </button>\r\n }\r\n</mat-form-field>","/* eslint-disable @typescript-eslint/naming-convention */\r\n/**\r\n * Node for Transfer item\r\n */\r\nexport class CmatTransferItemNode {\r\n [key: string]: any;\r\n\r\n children?: CmatTransferItemNode[];\r\n label: string;\r\n value: string | number;\r\n disabled?: boolean;\r\n\r\n}\r\n\r\n/** Flat Transfer item node with expandable and level information */\r\nexport class CmatTransferItemFlatNode {\r\n label: string;\r\n value: string | number;\r\n level: number;\r\n disabled?: boolean;\r\n expandable: boolean;\r\n}\r\n\r\nexport enum CmatTransferFilterCondition {\r\n EQUALS,\r\n NOT_EQUALS,\r\n MORE_THAN,\r\n LESS_THAN\r\n}\r\n\r\nexport interface CmatTransferFilterItem {\r\n label: string;\r\n value: number | string;\r\n condition: CmatTransferFilterCondition[];\r\n field: string;\r\n selected?: boolean;\r\n}\r\n\r\nexport interface CmatTransferFilterData {\r\n condition: 'or' | 'and';\r\n filters: CmatTransferFilterItem[];\r\n}\r\n\r\nexport interface CmatSourceOptions {\r\n title: string;\r\n filterable: boolean;\r\n searchable: boolean;\r\n searchPlaceholder: string;\r\n filters: CmatTransferFilterItem[];\r\n}\r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { FlatTreeControl } from '@angular/cdk/tree';\r\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTreeFlatDataSource, MatTreeFlattener, MatTreeModule } from '@angular/material/tree';\r\nimport { Observable, of as ofObservable, Subject } from 'rxjs';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { CmatTransferPickerFilterComponent } from '../filter/filter.component';\r\nimport { CmatSourceOptions, CmatTransferItemFlatNode, CmatTransferItemNode } from '../interface';\r\nimport { CmatTransferPickerSearchComponent } from '../search/search.component';\r\nimport { CmatTransferPickerService } from '../transfer-picker.service';\r\n\r\n@Component({\r\n selector: 'cmat-transfer-picker-source',\r\n templateUrl: './transfer-picker-source.component.html',\r\n styleUrls: ['./transfer-picker-source.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatTransferPickerSource',\r\n standalone: true,\r\n imports: [MatCardModule, MatTreeModule, MatCheckboxModule, MatIconModule, MatButtonModule, \r\n CmatTransferPickerFilterComponent, CmatTransferPickerSearchComponent, ScrollingModule]\r\n})\r\nexport class CmatTransferPickerSourceComponent implements OnInit, AfterViewInit, OnDestroy {\r\n /** Map from nested node to flattened node. This helps us to keep the same object for selection */\r\n nestedNodeMap = new Map<CmatTransferItemNode, CmatTransferItemFlatNode>();\r\n\r\n treeControl: FlatTreeControl<CmatTransferItemFlatNode>;\r\n\r\n treeFlattener: MatTreeFlattener<CmatTransferItemNode, CmatTransferItemFlatNode>;\r\n\r\n dataSource: MatTreeFlatDataSource<CmatTransferItemNode, CmatTransferItemFlatNode>;\r\n\r\n /** The selection for checklist */\r\n checklistSelection = new SelectionModel<CmatTransferItemFlatNode>(true /* multiple */);\r\n\r\n options: CmatSourceOptions;\r\n\r\n selectedList: CmatTransferItemFlatNode[];\r\n\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n constructor(\r\n private _service: CmatTransferPickerService, private _changeDetectorRef: ChangeDetectorRef\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.treeFlattener = new MatTreeFlattener(\r\n this._transformer,\r\n this._getLevel,\r\n this._isExpandable,\r\n this._getChildren\r\n );\r\n this.treeControl = new FlatTreeControl<CmatTransferItemFlatNode>(this._getLevel, this._isExpandable);\r\n this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\r\n\r\n this._service\r\n .dataSourceChange\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe((data: any) => {\r\n this.dataSource.data = data;\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n\r\n this._service.refreshDataSourceChange.pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe((state: boolean) => {\r\n if (state) {\r\n this.checklistSelection.clear();\r\n this._changeDetectorRef.markForCheck();\r\n }else{\r\n this.checklistSelection.selected.map((selectedNode: CmatTransferItemFlatNode) => {\r\n this.treeControl.dataNodes.map((node) => {\r\n if (node.value === selectedNode.value) { \r\n this.checklistSelection.deselect(selectedNode);\r\n this.checklistSelection.select(node);\r\n }\r\n });\r\n });\r\n\r\n this.getSelectedList();\r\n }\r\n });\r\n\r\n this._service\r\n .selectedValuesChange\r\n .pipe(\r\n filter((values: string | any[]) => !!values.length),\r\n takeUntil(this._unsubscribeAll)\r\n )\r\n .subscribe((values: any) => {\r\n values.map((value: string | number) => {\r\n this.treeControl.dataNodes.map((node) => {\r\n if (node.value === value) {\r\n this.checklistSelection.select(node);\r\n }\r\n });\r\n });\r\n\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n\r\n this._service\r\n .sourceOptionsChange\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe((options: CmatSourceOptions | void) => { if (options) this.options = options; this._changeDetectorRef.markForCheck(); });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.treeControl.expandAll();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void (0));\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n getSelectedList(): CmatTransferItemFlatNode[] {\r\n this.selectedList = this.checklistSelection.selected;\r\n if (this.selectedList.length) {\r\n this.selectedList.map((item) => {\r\n /* 禁用 */\r\n item.disabled = true;\r\n\r\n /* 选中 */\r\n this.checklistSelection.select(item);\r\n });\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n\r\n return this.selectedList;\r\n }\r\n\r\n resetSelectedItem(item: CmatTransferItemFlatNode): void {\r\n const s = this.checklistSelection.selected.find(i => i.value === item.value);\r\n if (s) {\r\n /* 取消禁用 */\r\n s.disabled = false;\r\n\r\n /* 取消选中 */\r\n this.checklistSelection.deselect(s);\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n hasChild = (_: number, _nodeData: CmatTransferItemFlatNode): boolean => _nodeData.expandable;\r\n\r\n /** Whether all the descendants of the node are selected */\r\n descendantsAllSelected(node: CmatTransferItemFlatNode): boolean {\r\n const descendants = this.treeControl.getDescendants(node);\r\n return descendants.every(child => this.checklistSelection.isSelected(child));\r\n }\r\n\r\n /** Whether part of the descendants are selected */\r\n descendantsPartiallySelected(node: CmatTransferItemFlatNode): boolean {\r\n const descendants = this.treeControl.getDescendants(node);\r\n const result = descendants.some(child => this.checklistSelection.isSelected(child));\r\n return result && !this.descendantsAllSelected(node);\r\n }\r\n\r\n /** Toggle the transfer item selection. Select/deselect all the descendants node */\r\n transferItemSelectionToggle(node: CmatTransferItemFlatNode): void {\r\n this.checklistSelection.toggle(node);\r\n let descendants = this.treeControl.getDescendants(node);\r\n descendants = descendants.filter(n => !n.disabled);\r\n this.checklistSelection.isSelected(node)\r\n ? this.checklistSelection.select(...descendants)\r\n : this.checklistSelection.deselect(...descendants);\r\n\r\n // Force update for the parent\r\n descendants.every(child =>\r\n this.checklistSelection.isSelected(child)\r\n );\r\n this._checkAllParentsSelection(node);\r\n }\r\n\r\n /** Toggle a leaf transfer item selection. Check all the parents to see if they changed */\r\n transferLeafItemSelectionToggle(node: CmatTransferItemFlatNode): void {\r\n this.checklistSelection.toggle(node);\r\n this._checkAllParentsSelection(node);\r\n }\r\n\r\n private _getLevel = (node: CmatTransferItemFlatNode): number => node.level;\r\n\r\n private _isExpandable = (node: CmatTransferItemFlatNode): boolean => node.expandable;\r\n\r\n private _getChildren = (node: CmatTransferItemNode): Observable<CmatTransferItemNode[]> => ofObservable(node.children ?? []);\r\n\r\n /**\r\n * Transformer to convert nested node to flat node. Record the nodes in maps for later use.\r\n */\r\n private _transformer = (node: CmatTransferItemNode, level: number): CmatTransferItemFlatNode => {\r\n const flatNode = this.nestedNodeMap.has(node) && this.nestedNodeMap.get(node)?.value === node.value\r\n ? this.nestedNodeMap.get(node)!\r\n : new CmatTransferItemFlatNode();\r\n flatNode.label = node.label;\r\n flatNode.value = node.value;\r\n flatNode.disabled = node.disabled;\r\n flatNode.level = level;\r\n flatNode.expandable = !!node.children;\r\n this.nestedNodeMap.set(node, flatNode);\r\n return flatNode;\r\n };\r\n\r\n /* Checks all the parents when a leaf node is selected/unselected */\r\n private _checkAllParentsSelection(node: CmatTransferItemFlatNode): void {\r\n let parent: CmatTransferItemFlatNode | null = this._getParentNode(node);\r\n while (parent) {\r\n this._checkRootNodeSelection(parent);\r\n parent = this._getParentNode(parent);\r\n }\r\n }\r\n\r\n /** Check root node checked state and change it accordingly */\r\n private _checkRootNodeSelection(node: CmatTransferItemFlatNode): void {\r\n const nodeSelected = this.checklistSelection.isSelected(node);\r\n const descendants = this.treeControl.getDescendants(node);\r\n const descAllSelected = descendants.every(child =>\r\n this.checklistSelection.isSelected(child)\r\n );\r\n if (nodeSelected && !descAllSelected) {\r\n this.checklistSelection.deselect(node);\r\n } else if (!nodeSelected && descAllSelected) {\r\n this.checklistSelection.select(node);\r\n }\r\n }\r\n\r\n /* Get the parent node of a node */\r\n private _getParentNode(node: CmatTransferItemFlatNode): CmatTransferItemFlatNode | null {\r\n const currentLevel = this._getLevel(node);\r\n\r\n if (currentLevel < 1) {\r\n return null;\r\n }\r\n\r\n const startIndex = this.treeControl.dataNodes.indexOf(node) - 1;\r\n\r\n for (let i = startIndex; i >= 0; i--) {\r\n const currentNode = this.treeControl.dataNodes[i];\r\n\r\n if (this._getLevel(currentNode) < currentLevel) {\r\n return currentNode;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n}\r\n","<mat-card class=\"transfer-picker-source shadow\">\r\n <mat-card-header class=\"pb-3 items-center\">\r\n <mat-card-title class=\"transfer-picker-source-title\">{{options.title}}</mat-card-title>\r\n @if (options.filterable) {\r\n <cmat-transfer-picker-filter\r\n [filters]=\"options.filters\"></cmat-transfer-picker-filter>\r\n }\r\n </mat-card-header>\r\n <mat-card-content class=\"transfer-picker-source-content\">\r\n @if (options.searchable) {\r\n <cmat-transfer-picker-search\r\n [searchPlaceholder]=\"options.searchPlaceholder\"></cmat-transfer-picker-search>\r\n }\r\n\r\n <cdk-virtual-scroll-viewport itemSize=\"48\"\r\n class=\"transfer-picker-source-scroll-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\r\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\r\n <mat-tree-node *matTreeNodeDef=\"let node\" [matTreeNodePadding]=\"node.level\">\r\n <button type=\"button\" mat-icon-button disabled> </button>\r\n <mat-checkbox class=\"checklist-leaf-node\" [checked]=\"checklistSelection.isSelected(node)\"\r\n [disabled]=\"node?.disabled\" (change)=\"transferLeafItemSelectionToggle(node);\">\r\n {{node.label}}\r\n </mat-checkbox>\r\n </mat-tree-node>\r\n\r\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" [matTreeNodePadding]=\"node.level\">\r\n <button type=\"button\" mat-icon-button matTreeNodeToggle>\r\n <mat-icon class=\"mat-icon-rtl-mirror\"\r\n svgIcon=\"{{treeControl.isExpanded(node) ? 'mat_outline:expand_more' : 'mat_outline:chevron_right'}}\">\r\n </mat-icon>\r\n </button>\r\n <mat-checkbox [checked]=\"descendantsAllSelected(node)||node?.disabled\"\r\n [indeterminate]=\"descendantsPartiallySelected(node)\" [disabled]=\"node?.disabled\"\r\n (change)=\"transferItemSelectionToggle(node)\">\r\n {{node.label}}\r\n </mat-checkbox>\r\n </mat-tree-node>\r\n </mat-tree>\r\n @if (!dataSource?.data?.length) {\r\n <div class=\"transfer-picker-source-empty\">暂无数据</div>\r\n }\r\n </cdk-virtual-scroll-viewport>\r\n </mat-card-content>\r\n</mat-card>","import { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { CmatTransferItemFlatNode } from '../interface';\r\n\r\n@Component({\r\n selector: 'cmat-transfer-picker-target',\r\n templateUrl: './transfer-picker-target.component.html',\r\n styleUrls: ['./transfer-picker-target.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatTransferPickerTarget',\r\n standalone: true,\r\n imports: [MatCardModule, MatListModule, MatIconModule, ScrollingModule, MatButtonModule]\r\n})\r\nexport class CmatTransferPickerTargetComponent {\r\n\r\n @Input()\r\n selectedList: CmatTransferItemFlatNode[];\r\n\r\n @Output()\r\n clearItemChange: EventEmitter<CmatTransferItemFlatNode>;\r\n\r\n constructor() {\r\n this.clearItemChange = new EventEmitter<CmatTransferItemFlatNode>();\r\n }\r\n\r\n clearItem(item: CmatTransferItemFlatNode): void {\r\n this.selectedList.splice(this.selectedList.indexOf(item), 1);\r\n this.clearItemChange.next(item);\r\n }\r\n}\r\n","<mat-card class=\"transfer-picker-target shadow\">\r\n <mat-card-header class=\"pb-3 items-center\">\r\n <mat-card-title class=\"transfer-picker-target-title\">已选择 {{selectedList.length}} 项</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <cdk-virtual-scroll-viewport itemSize=\"40\"\r\n class=\"transfer-picker-target-scroll-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\r\n <mat-list dense>\r\n @for (item of selectedList; track $index) {\r\n <mat-list-item class=\"transfer-picker-target-item\">\r\n <div mat-line class=\"flex flex-row items-center\">\r\n <div class=\"flex-1\">{{item.label}}</div>\r\n <button type=\"button\" mat-icon-button (click)=\"clearItem(item)\">\r\n <mat-icon svgIcon=\"heroicons_solid:x-circle\"></mat-icon>\r\n </button>\r\n </div>\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n @if (!selectedList.length) {\r\n <div class=\"transfer-picker-target-empty\">暂无数据</div>\r\n }\r\n </cdk-virtual-scroll-viewport>\r\n </mat-card-content>\r\n</mat-card>","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { CmatTransferFilterItem, CmatTransferItemFlatNode, CmatTransferItemNode } from './interface';\r\nimport { CmatTransferPickerSourceComponent } from './transfer-picker-source/transfer-picker-source.component';\r\nimport { CmatTransferPickerTargetComponent } from './transfer-picker-target/transfer-picker-target.component';\r\nimport { CmatTransferPickerService } from './transfer-picker.service';\r\n\r\n@Component({\r\n selector: 'cmat-transfer-picker',\r\n templateUrl: './transfer-picker.component.html',\r\n styleUrls: ['./transfer-picker.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatTransferPicker',\r\n standalone: true,\r\n imports: [MatIconModule,MatButtonModule, CmatTransferPickerSourceComponent, CmatTransferPickerTargetComponent]\r\n})\r\nexport class CmatTransferPickerComponent implements OnInit, AfterViewInit {\r\n @Input()\r\n title: string;\r\n\r\n @Input()\r\n filterable: boolean;\r\n\r\n @Input()\r\n searchable: boolean;\r\n\r\n @Input()\r\n searchPlaceholder: string;\r\n\r\n @Input()\r\n dataSource: CmatTransferItemNode[];\r\n\r\n @Input()\r\n filters: CmatTransferFilterItem[];\r\n\r\n @Input()\r\n selectedValues: string[];\r\n\r\n @Output()\r\n selectChange: EventEmitter<CmatTransferItemFlatNode[]>;\r\n\r\n @ViewChild(CmatTransferPickerSourceComponent, { static: true })\r\n source: CmatTransferPickerSourceComponent;\r\n\r\n selectedList: CmatTransferItemFlatNode[];\r\n\r\n constructor(\r\n private _service: CmatTransferPickerService,\r\n private _changeDetectorRef: ChangeDetectorRef\r\n ) {\r\n this.filterable = true;\r\n this.dataSource = [];\r\n this.filters = [];\r\n this.selectedList = [];\r\n this.selectedValues = [];\r\n }\r\n\r\n ngOnInit(): void {\r\n this._service.dataSource = this.dataSource;\r\n this._service.selectedValues = this.selectedValues;\r\n\r\n this._service.sourceOptions = {\r\n title: this.title || '数据源',\r\n filterable: this.filterable || true,\r\n searchable: this.searchable || true,\r\n searchPlaceholder: this.searchPlaceholder || '搜索关键字',\r\n filters: this.filters || []\r\n };\r\n\r\n this.selectChange = new EventEmitter<CmatTransferItemFlatNode[]>();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.selectedValues.length) {\r\n this.pick(); \r\n }\r\n }\r\n\r\n pick(): void {\r\n this.selectedList = this.source.getSelectedList() || [];\r\n this._emitterChange();\r\n }\r\n\r\n reset(): void {\r\n if (this.selectedList.length) {\r\n this.selectedList = [];\r\n this._service.resetDataSource(true);\r\n this._emitterChange();\r\n }\r\n }\r\n\r\n onClearItemChange(item: CmatTransferItemFlatNode): void {\r\n if (item) {\r\n this.source.resetSelectedItem(item);\r\n this._emitterChange();\r\n }\r\n }\r\n\r\n private _emitterChange(): void {\r\n this.selectChange.next(this.selectedList);\r\n\r\n this._changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","<cmat-transfer-picker-source></cmat-transfer-picker-source>\r\n<div class=\"cmat-transfer-picker-operation flex flex-col flex-nowrap gap-2 mx-2\">\r\n <button type=\"button\" class=\"pl-2\" mat-raised-button color=\"primary\" (click)=\"pick()\">\r\n 选择<mat-icon svgIcon=\"mat_outline:chevron_right\"></mat-icon>\r\n </button>\r\n <button type=\"button\" class=\"pl-2\" mat-raised-button color=\"primary\" (click)=\"reset()\">\r\n <mat-icon svgIcon=\"mat_outline:chevron_left\"></mat-icon>重置\r\n </button>\r\n</div>\r\n<cmat-transfer-picker-target [selectedList]=\"selectedList\" (clearItemChange)=\"onClearItemChange($event)\">\r\n</cmat-transfer-picker-target>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.CmatTransferPickerService","i4","i1.CmatTransferPickerService","i3","i5","i6","ofObservable","i2","i1"],"mappings":"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"}
1
+ {"version":3,"file":"cmat-components-transfer-picker.mjs","sources":["../../../projects/cmat/components/transfer-picker/transfer-picker.service.ts","../../../projects/cmat/components/transfer-picker/filter/filter.component.ts","../../../projects/cmat/components/transfer-picker/filter/filter.component.html","../../../projects/cmat/components/transfer-picker/search/search.component.ts","../../../projects/cmat/components/transfer-picker/search/search.component.html","../../../projects/cmat/components/transfer-picker/interface.ts","../../../projects/cmat/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.ts","../../../projects/cmat/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.html","../../../projects/cmat/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.ts","../../../projects/cmat/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.html","../../../projects/cmat/components/transfer-picker/transfer-picker.component.ts","../../../projects/cmat/components/transfer-picker/transfer-picker.component.html","../../../projects/cmat/components/transfer-picker/cmat-components-transfer-picker.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport {\r\n CmatSourceOptions,\r\n CmatTransferFilterData,\r\n CmatTransferFilterItem,\r\n CmatTransferItemNode\r\n} from './interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatTransferPickerService {\r\n dataSourceChange: BehaviorSubject<CmatTransferItemNode[]>;\r\n refreshDataSourceChange: BehaviorSubject<boolean>;\r\n filtersChange: BehaviorSubject<CmatTransferFilterItem[]>;\r\n sourceOptionsChange: BehaviorSubject<CmatSourceOptions | void>;\r\n selectedValuesChange: BehaviorSubject<string[]>;\r\n\r\n private _dataSource: CmatTransferItemNode[];\r\n\r\n private _filterData: CmatTransferFilterData;\r\n private _keyword: string;\r\n private _originalDataSource: CmatTransferItemNode[];\r\n private _filteredDataSource: CmatTransferItemNode[];\r\n private _compareMap: Map<string, (a: any, b: any) => boolean>;\r\n private _conditionMap: Map<string, (arr: boolean[]) => boolean>;\r\n\r\n constructor() {\r\n this.dataSourceChange = new BehaviorSubject<CmatTransferItemNode[]>([]);\r\n this.refreshDataSourceChange= new BehaviorSubject<boolean>(true);\r\n this.filtersChange = new BehaviorSubject<CmatTransferFilterItem[]>([]);\r\n this.sourceOptionsChange = new BehaviorSubject<CmatSourceOptions | void>(void 0);\r\n this.selectedValuesChange = new BehaviorSubject<string[]>([]);\r\n\r\n this._compareMap = new Map<string, (a: any, b: any) => boolean>([\r\n ['0', (a, b): boolean => a === b],\r\n ['1', (a, b): boolean => a !== b],\r\n ['2', (a, b): boolean => a > b],\r\n ['3', (a, b): boolean => a < b],\r\n ['0,2', (a, b): boolean => a >= b],\r\n ['0,2', (a, b): boolean => a <= b]\r\n ]);\r\n\r\n this._conditionMap = new Map<string, (arr: boolean[]) => boolean>([\r\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\n ['or', arr => arr.reduce((o, item) => (o.result = o.result || item || o.prev, o.prev = item, o), {\r\n result: false,\r\n prev: arr[0]\r\n }).result],\r\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\r\n ['and', arr => arr.reduce((o, item) => (o.result = o.result && item && o.prev, o.prev = item, o), {\r\n result: true,\r\n prev: arr[0]\r\n }).result],\r\n ]);\r\n }\r\n\r\n get dataSource(): CmatTransferItemNode[] {\r\n return this._dataSource;\r\n }\r\n\r\n set dataSource(data: CmatTransferItemNode[]) {\r\n this._dataSource = data;\r\n\r\n if (!this._originalDataSource) {\r\n this._originalDataSource = JSON.parse(JSON.stringify(data));\r\n }\r\n\r\n this.dataSourceChange.next(data);\r\n }\r\n\r\n set sourceOptions(value: CmatSourceOptions) {\r\n this.sourceOptionsChange.next(value);\r\n }\r\n\r\n set selectedValues(value: string[]) {\r\n this.selectedValuesChange.next(value);\r\n }\r\n\r\n\r\n filterDataSource({ filterData, keyword }: { filterData?: CmatTransferFilterData; keyword?: string }): void {\r\n this._filterData = filterData ?? this._filterData;\r\n this._keyword = keyword === void (0) ? this._keyword : keyword;\r\n\r\n if (filterData?.filters.length) {\r\n this._filterDataSourceByType(this._keyword ? this._filteredDataSource : this._originalDataSource, 'Filters');\r\n return;\r\n } else if (filterData && !filterData.filters.length) {\r\n if (this._keyword) {\r\n this._filterDataSourceByType(this._originalDataSource, 'Keyword');\r\n } else {\r\n this.resetDataSource(false);\r\n }\r\n return;\r\n }\r\n\r\n if (keyword) {\r\n this._filterDataSourceByType(this._filterData?.filters.length ? this._filteredDataSource : this._originalDataSource, 'Keyword');\r\n return;\r\n } else if (!keyword) {\r\n if (this._filterData?.filters.length) {\r\n this._filterDataSourceByType(this._originalDataSource, 'Filters');\r\n } else {\r\n this.resetDataSource(false);\r\n }\r\n return;\r\n }\r\n }\r\n\r\n resetDataSource(clear:boolean): void {\r\n this.dataSource = this._originalDataSource;\r\n this._filteredDataSource = [];\r\n this.refreshDataSourceChange.next(clear);\r\n }\r\n\r\n private _filterDataSourceByType(dataSource: CmatTransferItemNode[], type: 'Filters' | 'Keyword'): void {\r\n this._filteredDataSource = [];\r\n switch (type) {\r\n case 'Filters':\r\n this._setFilteredDataSourceByFilters(dataSource);\r\n break;\r\n case 'Keyword':\r\n this._setFilteredDataSourceByKeyword(dataSource);\r\n break;\r\n }\r\n this.dataSource = this._filteredDataSource;\r\n this.refreshDataSourceChange.next(false);\r\n }\r\n\r\n private _setFilteredDataSourceByFilters(dataSource: CmatTransferItemNode[]): void {\r\n dataSource.map((data) => {\r\n const compareResultArr: any = [];\r\n this._filterData.filters.map((filter) => {\r\n if (Object.prototype.hasOwnProperty.call(data, filter.field)) {\r\n const compare = this._compareMap.get(filter.condition.sort().toString())?.(filter.value, data[filter.field]);\r\n\r\n if (this._filterData.filters.length < 2 && compare) {\r\n this._filteredDataSource.push(data);\r\n } else {\r\n compareResultArr.push(compare);\r\n }\r\n }\r\n });\r\n\r\n if (compareResultArr.length && this._conditionMap.get(this._filterData.condition)?.(compareResultArr)) {\r\n this._filteredDataSource.push(data);\r\n }\r\n\r\n if (data.children && data.children.length > 0) {\r\n this._setFilteredDataSourceByFilters(data.children);\r\n }\r\n });\r\n }\r\n\r\n private _setFilteredDataSourceByKeyword(dataSource: CmatTransferItemNode[]): void {\r\n dataSource.map((data) => {\r\n if (data.label.includes(this._keyword)) {\r\n this._filteredDataSource.push(data);\r\n } else if (data.children && data.children.length > 0) {\r\n this._setFilteredDataSourceByKeyword(data.children);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { CdkOverlayOrigin, Overlay, OverlayConfig, OverlayModule, OverlayRef } from '@angular/cdk/overlay';\r\nimport { CdkPortal , PortalModule } from '@angular/cdk/portal';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { CmatTransferFilterData, CmatTransferFilterItem } from '../interface';\r\nimport { CmatTransferPickerService } from '../transfer-picker.service';\r\n\r\n@Component({\r\n selector: 'cmat-transfer-picker-filter',\r\n templateUrl: './filter.component.html',\r\n styleUrls: ['./filter.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatTransferPickerFilter',\r\n imports: [MatButtonToggleModule, MatIconModule, CommonModule, PortalModule, MatButtonModule, OverlayModule]\r\n})\r\nexport class CmatTransferPickerFilterComponent implements OnInit {\r\n @Input()\r\n filters: CmatTransferFilterItem[];\r\n\r\n @ViewChild(CdkOverlayOrigin, { static: true }) overlayOrigin: CdkOverlayOrigin;\r\n @ViewChild('filterTemplate', { static: true }) filterTemplate: CdkPortal;\r\n overlayRef: OverlayRef;\r\n\r\n filterData: CmatTransferFilterData;\r\n\r\n constructor(\r\n private _overlay: Overlay,\r\n private _service: CmatTransferPickerService\r\n ) {\r\n this.filterData = {\r\n condition: 'or',\r\n filters: []\r\n };\r\n }\r\n\r\n ngOnInit(): void {\r\n const config = new OverlayConfig({\r\n hasBackdrop: true,\r\n backdropClass: 'cdk-overlay-transparent-backdrop',\r\n scrollStrategy: this._overlay.scrollStrategies.block()\r\n });\r\n\r\n config.positionStrategy = this._overlay\r\n .position()\r\n .flexibleConnectedTo(\r\n this.overlayOrigin.elementRef).withPositions([\r\n {\r\n originX: 'end', originY: 'bottom', overlayX: 'end',\r\n overlayY: 'top', offsetX: 5\r\n },{\r\n originX: 'end',\r\n originY: 'bottom',\r\n overlayX: 'end',\r\n overlayY: 'top',\r\n offsetX: -5\r\n }\r\n ]);\r\n\r\n this.overlayRef = this._overlay.create(config);\r\n\r\n this.overlayRef.backdropClick().subscribe(() => {\r\n this.overlayRef.detach();\r\n });\r\n }\r\n\r\n toggleFilter(): void {\r\n if (this.overlayRef?.hasAttached()) {\r\n this.overlayRef.detach();\r\n } else {\r\n this.overlayRef.attach(this.filterTemplate);\r\n }\r\n }\r\n\r\n onFilterClick(filter: CmatTransferFilterItem): void {\r\n filter.selected = !filter.selected;\r\n\r\n const existFilter = this.filterData.filters.find(item => item.value === filter.value);\r\n\r\n if (!existFilter) {\r\n this.filterData.filters.push(filter);\r\n } else if (!filter.selected) {\r\n this.filterData.filters.splice(this.filterData.filters.indexOf(filter), 1);\r\n }\r\n\r\n this.changeFilterData();\r\n }\r\n\r\n onConditionChange(event: any): void {\r\n this.filterData.condition = event;\r\n\r\n this.changeFilterData();\r\n }\r\n\r\n changeFilterData(): void {\r\n this._service.filterDataSource({ filterData: this.filterData });\r\n }\r\n}\r\n","<button type=\"button\" class=\"mr-2 mt-1\" mat-icon-button cdk-overlay-origin (click)=\"toggleFilter()\">\r\n <mat-icon svgIcon=\"mat_outline:filter_list\"></mat-icon>\r\n</button>\r\n<ng-template #filterTemplate=\"cdkPortal\" cdk-portal>\r\n <div\r\n class=\"transfer-picker-filter-panel bg-card flex flex-col flex-nowrap place-content-start box-border items-start w-full shadow\">\r\n <mat-button-toggle-group name=\"condition\" [hideSingleSelectionIndicator]=\"true\" (change)=\"onConditionChange($event.value)\">\r\n <mat-button-toggle value=\"or\" [checked]=\"filterData.condition === 'or'\">或</mat-button-toggle>\r\n <mat-button-toggle value=\"and\" [checked]=\"filterData.condition === 'and'\">且</mat-button-toggle>\r\n </mat-button-toggle-group>\r\n\r\n <div class=\"chip-list\">\r\n @for (item of filters; track $index) {\r\n <div class=\"chip-wrapper\" role=\"presentation\"\r\n (click)=\"onFilterClick(item)\">\r\n <span class=\"chip\" [ngClass]=\"{selected: item?.selected}\">{{item.label}}</span>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</ng-template>","import { ChangeDetectionStrategy, Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { CmatTransferPickerService } from '../transfer-picker.service';\r\n\r\n@Component({\r\n selector: 'cmat-transfer-picker-search',\r\n templateUrl: './search.component.html',\r\n styleUrls: ['./search.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatTransferPickerSearch',\r\n imports: [MatFormFieldModule, MatIconModule, ReactiveFormsModule, MatButtonModule, MatInputModule]\r\n})\r\nexport class CmatTransferPickerSearchComponent implements OnInit {\r\n @Input()\r\n searchPlaceholder: string;\r\n\r\n keyword: FormControl;\r\n\r\n constructor(\r\n private _service: CmatTransferPickerService\r\n ) {\r\n this.keyword = new FormControl();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.keyword\r\n .valueChanges\r\n .pipe(\r\n debounceTime(200),\r\n distinctUntilChanged()\r\n )\r\n .subscribe((keyword: any) => this._service.filterDataSource({ keyword }));\r\n }\r\n\r\n reset(): void {\r\n this.keyword.setValue('');\r\n }\r\n}\r\n","<mat-form-field>\r\n <input matInput type=\"text\" placeholder=\"{{searchPlaceholder}}\" [formControl]=\"keyword\">\r\n @if (keyword.value) {\r\n <button type=\"button\" matSuffix mat-icon-button (click)=\"reset()\">\r\n <mat-icon svgIcon=\"mat_outline:close\"></mat-icon>\r\n </button>\r\n }\r\n</mat-form-field>","/* eslint-disable @typescript-eslint/naming-convention */\r\n/**\r\n * Node for Transfer item\r\n */\r\nexport class CmatTransferItemNode {\r\n [key: string]: any;\r\n\r\n children?: CmatTransferItemNode[];\r\n label: string;\r\n value: string | number;\r\n\r\n}\r\n\r\n/** Flat Transfer item node with expandable and level information */\r\nexport class CmatTransferItemFlatNode {\r\n label: string;\r\n value: string | number;\r\n level: number;\r\n disabled?: boolean;\r\n expandable: boolean;\r\n}\r\n\r\nexport enum CmatTransferFilterCondition {\r\n EQUALS,\r\n NOT_EQUALS,\r\n MORE_THAN,\r\n LESS_THAN\r\n}\r\n\r\nexport interface CmatTransferFilterItem {\r\n label: string;\r\n value: number | string;\r\n condition: CmatTransferFilterCondition[];\r\n field: string;\r\n selected?: boolean;\r\n}\r\n\r\nexport interface CmatTransferFilterData {\r\n condition: 'or' | 'and';\r\n filters: CmatTransferFilterItem[];\r\n}\r\n\r\nexport interface CmatSourceOptions {\r\n title: string;\r\n filterable: boolean;\r\n searchable: boolean;\r\n searchPlaceholder: string;\r\n filters: CmatTransferFilterItem[];\r\n}\r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CdkTree } from '@angular/cdk/tree';\r\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\nimport { Observable, of as ofObservable, Subject } from 'rxjs';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\nimport { CmatTransferPickerFilterComponent } from '../filter/filter.component';\r\nimport { CmatSourceOptions, CmatTransferItemFlatNode, CmatTransferItemNode } from '../interface';\r\nimport { CmatTransferPickerSearchComponent } from '../search/search.component';\r\nimport { CmatTransferPickerService } from '../transfer-picker.service';\r\n\r\n@Component({\r\n selector: 'cmat-transfer-picker-source',\r\n templateUrl: './transfer-picker-source.component.html',\r\n styleUrls: ['./transfer-picker-source.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatTransferPickerSource',\r\n imports: [MatCardModule, MatTreeModule, MatCheckboxModule, MatIconModule, MatButtonModule,\r\n CmatTransferPickerFilterComponent, CmatTransferPickerSearchComponent, ScrollingModule]\r\n})\r\nexport class CmatTransferPickerSourceComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChild('componentTree', { static: false }) tree: CdkTree<CmatTransferItemNode>;\r\n \r\n /** Map from nested node to flattened node. This helps us to keep the same object for selection */\r\n nestedNodeMap = new Map<CmatTransferItemNode, CmatTransferItemFlatNode>();\r\n\r\n dataSource: CmatTransferItemNode[];\r\n dataFlatNodes: CmatTransferItemFlatNode[];\r\n\r\n /** The selection for checklist */\r\n checklistSelection = new SelectionModel<CmatTransferItemFlatNode>(true /* multiple */);\r\n\r\n options: CmatSourceOptions;\r\n\r\n selectedList: CmatTransferItemFlatNode[];\r\n\r\n private _unsubscribeAll: Subject<any> = new Subject<any>();\r\n\r\n constructor(\r\n private _service: CmatTransferPickerService, private _changeDetectorRef: ChangeDetectorRef\r\n ) {\r\n\r\n }\r\n\r\n\r\n\r\n ngOnInit(): void {\r\n this._service\r\n .dataSourceChange\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe((data: CmatTransferItemNode[]) => {\r\n this.dataSource = data;\r\n this.dataFlatNodes = this._getFlattenNodes(this.dataSource);\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n\r\n this._service.refreshDataSourceChange.pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe((state: boolean) => {\r\n if (state) {\r\n this.checklistSelection.clear();\r\n this._changeDetectorRef.markForCheck();\r\n } else {\r\n this.checklistSelection.selected.map((selectedNode: CmatTransferItemFlatNode) => {\r\n this.dataFlatNodes.map((node) => {\r\n if (node.value === selectedNode.value) {\r\n this.checklistSelection.deselect(selectedNode);\r\n this.checklistSelection.select(node);\r\n }\r\n });\r\n });\r\n\r\n this.getSelectedList();\r\n }\r\n });\r\n\r\n this._service\r\n .selectedValuesChange\r\n .pipe(\r\n filter((values: string | any[]) => !!values.length),\r\n takeUntil(this._unsubscribeAll)\r\n )\r\n .subscribe((values: any) => {\r\n values.map((value: string | number) => {\r\n this.dataFlatNodes.map((node) => {\r\n if (node.value === value) {\r\n this.checklistSelection.select(node);\r\n }\r\n });\r\n });\r\n\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n\r\n this._service\r\n .sourceOptionsChange\r\n .pipe(takeUntil(this._unsubscribeAll))\r\n .subscribe((options: CmatSourceOptions | void) => { if (options) this.options = options; this._changeDetectorRef.markForCheck(); });\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.tree.expandAll();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void (0));\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n getSelectedList(): CmatTransferItemFlatNode[] {\r\n this.selectedList = this.checklistSelection.selected;\r\n if (this.selectedList.length) {\r\n this.selectedList.map((item) => {\r\n /* 禁用 */\r\n item.disabled = true;\r\n\r\n /* 选中 */\r\n this.checklistSelection.select(item);\r\n });\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n\r\n return this.selectedList;\r\n }\r\n\r\n resetSelectedItem(item: CmatTransferItemFlatNode): void {\r\n const s = this.checklistSelection.selected.find(i => i.value === item.value);\r\n if (s) {\r\n /* 取消禁用 */\r\n s.disabled = false;\r\n\r\n /* 取消选中 */\r\n this.checklistSelection.deselect(s);\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n }\r\n\r\n childrenAccessor: (node: CmatTransferItemNode) => CmatTransferItemNode[] = (node: CmatTransferItemNode) => node.children ?? [];\r\n\r\n hasChild: (_: number, node: CmatTransferItemNode) => boolean = (_: number, node: CmatTransferItemNode) => !!node.children && node.children.length > 0;\r\n\r\n /** Whether all the descendants of the node are selected */\r\n descendantsAllSelected(node: CmatTransferItemFlatNode): boolean {\r\n const descendants = this._getDescendants(node);\r\n return descendants.every(child => this.checklistSelection.isSelected(child));\r\n }\r\n\r\n /** Whether part of the descendants are selected */\r\n descendantsPartiallySelected(node: CmatTransferItemFlatNode): boolean {\r\n const descendants = this._getDescendants(node);\r\n const result = descendants.some(child => this.checklistSelection.isSelected(child));\r\n return result && !this.descendantsAllSelected(node);\r\n }\r\n\r\n /** Toggle the transfer item selection. Select/deselect all the descendants node */\r\n transferItemSelectionToggle(node: CmatTransferItemFlatNode): void {\r\n this.checklistSelection.toggle(node);\r\n let descendants = this._getDescendants(node);\r\n descendants = descendants.filter(n => !n.disabled);\r\n this.checklistSelection.isSelected(node)\r\n ? this.checklistSelection.select(...descendants)\r\n : this.checklistSelection.deselect(...descendants);\r\n\r\n // Force update for the parent\r\n descendants.every(child =>\r\n this.checklistSelection.isSelected(child)\r\n );\r\n this._checkAllParentsSelection(node);\r\n }\r\n\r\n /** Toggle a leaf transfer item selection. Check all the parents to see if they changed */\r\n transferLeafItemSelectionToggle(node: CmatTransferItemFlatNode): void {\r\n this.checklistSelection.toggle(node);\r\n this._checkAllParentsSelection(node);\r\n }\r\n\r\n private _getLevel = (node: CmatTransferItemFlatNode): number => node.level;\r\n\r\n private _isExpandable = (node: CmatTransferItemFlatNode): boolean => node.expandable;\r\n\r\n private _getChildren = (node: CmatTransferItemNode): Observable<CmatTransferItemNode[]> => ofObservable(node.children ?? []);\r\n\r\n /**\r\n * Transformer to convert nested node to flat node. Record the nodes in maps for later use.\r\n */\r\n private _transformer = (node: CmatTransferItemNode, level: number): CmatTransferItemFlatNode => {\r\n const flatNode = this.nestedNodeMap.has(node) && this.nestedNodeMap.get(node)?.value === node.value\r\n ? this.nestedNodeMap.get(node)!\r\n : new CmatTransferItemFlatNode();\r\n flatNode.label = node.label;\r\n flatNode.value = node.value;\r\n flatNode.disabled = node.disabled;\r\n flatNode.level = level;\r\n flatNode.expandable = !!node.children;\r\n this.nestedNodeMap.set(node, flatNode);\r\n return flatNode;\r\n };\r\n\r\n private _getDescendants(dataNode: CmatTransferItemFlatNode): CmatTransferItemFlatNode[] {\r\n const startIndex = this.dataFlatNodes.indexOf(dataNode);\r\n const results: CmatTransferItemFlatNode[] = [];\r\n\r\n for (let i = startIndex + 1;\r\n i < this.dataFlatNodes.length && this._getLevel(dataNode) < this._getLevel(this.dataFlatNodes[i]);\r\n i++) {\r\n results.push(this.dataFlatNodes[i]);\r\n }\r\n return results;\r\n }\r\n\r\n private _getFlattenNodes(nodes: CmatTransferItemNode[], i: number = 0): CmatTransferItemFlatNode[] {\r\n const flattenedNodes: CmatTransferItemFlatNode[] = [];\r\n\r\n for (const node of nodes) {\r\n flattenedNodes.push(this._transformer(node, i));\r\n if (node.children) {\r\n flattenedNodes.push(...this._getFlattenNodes(node.children, i + 1));\r\n }\r\n }\r\n return flattenedNodes;\r\n }\r\n\r\n /* Checks all the parents when a leaf node is selected/unselected */\r\n private _checkAllParentsSelection(node: CmatTransferItemFlatNode): void {\r\n let parent: CmatTransferItemFlatNode | null = this._getParentNode(node);\r\n while (parent) {\r\n this._checkRootNodeSelection(parent);\r\n parent = this._getParentNode(parent);\r\n }\r\n }\r\n\r\n /** Check root node checked state and change it accordingly */\r\n private _checkRootNodeSelection(node: CmatTransferItemFlatNode): void {\r\n const nodeSelected = this.checklistSelection.isSelected(node);\r\n const descendants = this._getDescendants(node);\r\n const descAllSelected = descendants.every(child =>\r\n this.checklistSelection.isSelected(child)\r\n );\r\n if (nodeSelected && !descAllSelected) {\r\n this.checklistSelection.deselect(node);\r\n } else if (!nodeSelected && descAllSelected) {\r\n this.checklistSelection.select(node);\r\n }\r\n }\r\n\r\n /* Get the parent node of a node */\r\n private _getParentNode(node: CmatTransferItemFlatNode): CmatTransferItemFlatNode | null {\r\n const currentLevel = this._getLevel(node);\r\n\r\n if (currentLevel < 1) {\r\n return null;\r\n }\r\n\r\n const startIndex = this.dataFlatNodes.indexOf(node) - 1;\r\n\r\n for (let i = startIndex; i >= 0; i--) {\r\n const currentNode = this.dataFlatNodes[i];\r\n\r\n if (this._getLevel(currentNode) < currentLevel) {\r\n return currentNode;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n}\r\n","<mat-card class=\"transfer-picker-source shadow\">\r\n <mat-card-header class=\"pb-3 items-center\">\r\n <mat-card-title class=\"transfer-picker-source-title\">{{options.title}}</mat-card-title>\r\n @if (options.filterable) {\r\n <cmat-transfer-picker-filter\r\n [filters]=\"options.filters\"></cmat-transfer-picker-filter>\r\n }\r\n </mat-card-header>\r\n <mat-card-content class=\"transfer-picker-source-content\">\r\n @if (options.searchable) {\r\n <cmat-transfer-picker-search\r\n [searchPlaceholder]=\"options.searchPlaceholder\"></cmat-transfer-picker-search>\r\n }\r\n\r\n <cdk-virtual-scroll-viewport itemSize=\"48\"\r\n class=\"transfer-picker-source-scroll-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\r\n <mat-tree #componentTree [dataSource]=\"dataSource\" [childrenAccessor]=\"childrenAccessor\">\r\n <mat-tree-node *matTreeNodeDef=\"let node\" [matTreeNodePadding]=\"nestedNodeMap.get(node)?.level\">\r\n <button type=\"button\" mat-icon-button disabled> </button>\r\n <mat-checkbox class=\"checklist-leaf-node\" [checked]=\"checklistSelection.isSelected(nestedNodeMap.get(node)!)\"\r\n [disabled]=\"nestedNodeMap.get(node)?.disabled\" (change)=\"transferLeafItemSelectionToggle(nestedNodeMap.get(node)!);\">\r\n {{node.label}}\r\n </mat-checkbox>\r\n </mat-tree-node>\r\n\r\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" [matTreeNodePadding]=\"nestedNodeMap.get(node)?.level\">\r\n <button type=\"button\" mat-icon-button matTreeNodeToggle>\r\n <mat-icon class=\"mat-icon-rtl-mirror\"\r\n svgIcon=\"{{componentTree.isExpanded(node) ? 'mat_outline:expand_more' : 'mat_outline:chevron_right'}}\">\r\n </mat-icon>\r\n </button>\r\n <mat-checkbox [checked]=\"descendantsAllSelected(nestedNodeMap.get(node)!)||nestedNodeMap.get(node)?.disabled\"\r\n [indeterminate]=\"descendantsPartiallySelected(nestedNodeMap.get(node)!)\" [disabled]=\"nestedNodeMap.get(node)?.disabled\"\r\n (change)=\"transferItemSelectionToggle(nestedNodeMap.get(node)!)\">\r\n {{node.label}}\r\n </mat-checkbox>\r\n </mat-tree-node>\r\n </mat-tree>\r\n @if (!dataSource.length) {\r\n <div class=\"transfer-picker-source-empty\">暂无数据</div>\r\n }\r\n </cdk-virtual-scroll-viewport>\r\n </mat-card-content>\r\n</mat-card>","import { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { CmatTransferItemFlatNode } from '../interface';\r\n\r\n@Component({\r\n selector: 'cmat-transfer-picker-target',\r\n templateUrl: './transfer-picker-target.component.html',\r\n styleUrls: ['./transfer-picker-target.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatTransferPickerTarget',\r\n imports: [MatCardModule, MatListModule, MatIconModule, ScrollingModule, MatButtonModule]\r\n})\r\nexport class CmatTransferPickerTargetComponent {\r\n\r\n @Input()\r\n selectedList: CmatTransferItemFlatNode[];\r\n\r\n @Output()\r\n clearItemChange: EventEmitter<CmatTransferItemFlatNode>;\r\n\r\n constructor() {\r\n this.clearItemChange = new EventEmitter<CmatTransferItemFlatNode>();\r\n }\r\n\r\n clearItem(item: CmatTransferItemFlatNode): void {\r\n this.selectedList.splice(this.selectedList.indexOf(item), 1);\r\n this.clearItemChange.next(item);\r\n }\r\n}\r\n","<mat-card class=\"transfer-picker-target shadow\">\r\n <mat-card-header class=\"pb-3 items-center\">\r\n <mat-card-title class=\"transfer-picker-target-title\">已选择 {{selectedList.length}} 项</mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <cdk-virtual-scroll-viewport itemSize=\"40\"\r\n class=\"transfer-picker-target-scroll-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\r\n <mat-list dense>\r\n @for (item of selectedList; track $index) {\r\n <mat-list-item class=\"transfer-picker-target-item\">\r\n <div mat-line class=\"flex flex-row items-center\">\r\n <div class=\"flex-1\">{{item.label}}</div>\r\n <button type=\"button\" mat-icon-button (click)=\"clearItem(item)\">\r\n <mat-icon svgIcon=\"heroicons_solid:x-circle\"></mat-icon>\r\n </button>\r\n </div>\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n @if (!selectedList.length) {\r\n <div class=\"transfer-picker-target-empty\">暂无数据</div>\r\n }\r\n </cdk-virtual-scroll-viewport>\r\n </mat-card-content>\r\n</mat-card>","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { CmatTransferFilterItem, CmatTransferItemFlatNode, CmatTransferItemNode } from './interface';\r\nimport { CmatTransferPickerSourceComponent } from './transfer-picker-source/transfer-picker-source.component';\r\nimport { CmatTransferPickerTargetComponent } from './transfer-picker-target/transfer-picker-target.component';\r\nimport { CmatTransferPickerService } from './transfer-picker.service';\r\n\r\n@Component({\r\n selector: 'cmat-transfer-picker',\r\n templateUrl: './transfer-picker.component.html',\r\n styleUrls: ['./transfer-picker.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatTransferPicker',\r\n imports: [MatIconModule, MatButtonModule, CmatTransferPickerSourceComponent, CmatTransferPickerTargetComponent]\r\n})\r\nexport class CmatTransferPickerComponent implements OnInit, AfterViewInit {\r\n @Input()\r\n title: string;\r\n\r\n @Input()\r\n filterable: boolean;\r\n\r\n @Input()\r\n searchable: boolean;\r\n\r\n @Input()\r\n searchPlaceholder: string;\r\n\r\n @Input()\r\n dataSource: CmatTransferItemNode[];\r\n\r\n @Input()\r\n filters: CmatTransferFilterItem[];\r\n\r\n @Input()\r\n selectedValues: string[];\r\n\r\n @Output()\r\n selectChange: EventEmitter<CmatTransferItemFlatNode[]>;\r\n\r\n @ViewChild(CmatTransferPickerSourceComponent, { static: true })\r\n source: CmatTransferPickerSourceComponent;\r\n\r\n selectedList: CmatTransferItemFlatNode[];\r\n\r\n constructor(\r\n private _service: CmatTransferPickerService,\r\n private _changeDetectorRef: ChangeDetectorRef\r\n ) {\r\n this.filterable = true;\r\n this.dataSource = [];\r\n this.filters = [];\r\n this.selectedList = [];\r\n this.selectedValues = [];\r\n }\r\n\r\n ngOnInit(): void {\r\n this._service.dataSource = this.dataSource;\r\n this._service.selectedValues = this.selectedValues;\r\n\r\n this._service.sourceOptions = {\r\n title: this.title || '数据源',\r\n filterable: this.filterable || true,\r\n searchable: this.searchable || true,\r\n searchPlaceholder: this.searchPlaceholder || '搜索关键字',\r\n filters: this.filters || []\r\n };\r\n\r\n this.selectChange = new EventEmitter<CmatTransferItemFlatNode[]>();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.selectedValues.length) {\r\n this.pick(); \r\n }\r\n }\r\n\r\n pick(): void {\r\n this.selectedList = this.source.getSelectedList() || [];\r\n this._emitterChange();\r\n }\r\n\r\n reset(): void {\r\n if (this.selectedList.length) {\r\n this.selectedList = [];\r\n this._service.resetDataSource(true);\r\n this._emitterChange();\r\n }\r\n }\r\n\r\n onClearItemChange(item: CmatTransferItemFlatNode): void {\r\n if (item) {\r\n this.source.resetSelectedItem(item);\r\n this._emitterChange();\r\n }\r\n }\r\n\r\n private _emitterChange(): void {\r\n this.selectChange.next(this.selectedList);\r\n\r\n this._changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","<cmat-transfer-picker-source></cmat-transfer-picker-source>\r\n<div class=\"cmat-transfer-picker-operation flex flex-col flex-nowrap gap-2 mx-2\">\r\n <button type=\"button\" class=\"pl-2\" mat-raised-button color=\"primary\" (click)=\"pick()\">\r\n 选择<mat-icon svgIcon=\"mat_outline:chevron_right\"></mat-icon>\r\n </button>\r\n <button type=\"button\" class=\"pl-2\" mat-raised-button color=\"primary\" (click)=\"reset()\">\r\n <mat-icon svgIcon=\"mat_outline:chevron_left\"></mat-icon>重置\r\n </button>\r\n</div>\r\n<cmat-transfer-picker-target [selectedList]=\"selectedList\" (clearItemChange)=\"onClearItemChange($event)\">\r\n</cmat-transfer-picker-target>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.CmatTransferPickerService","i4","i1.CmatTransferPickerService","i3","i5","i6","ofObservable","i2","i1"],"mappings":"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"}
@@ -0,0 +1,122 @@
1
+ import * as i1 from '@angular/common';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { Directive, TemplateRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ContentChild } from '@angular/core';
5
+ import * as i4 from '@angular/material/button';
6
+ import { MatButtonModule } from '@angular/material/button';
7
+ import * as i3 from '@angular/material/icon';
8
+ import { MatIconModule } from '@angular/material/icon';
9
+ import * as i2 from '@angular/material/table';
10
+ import { MatTableDataSource, MatTableModule } from '@angular/material/table';
11
+ import { Subject } from 'rxjs';
12
+
13
+ class CmatTreeTableColumnDirective {
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: CmatTreeTableColumnDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
15
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.5", type: CmatTreeTableColumnDirective, isStandalone: true, selector: "ng-template[cmatTreeTableColumn]", ngImport: i0 }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: CmatTreeTableColumnDirective, decorators: [{
18
+ type: Directive,
19
+ args: [{
20
+ selector: 'ng-template[cmatTreeTableColumn]',
21
+ standalone: true
22
+ }]
23
+ }] });
24
+ class CmatTreeTableComponent {
25
+ constructor(_changeDetectorRef) {
26
+ this._changeDetectorRef = _changeDetectorRef;
27
+ this.verticalSeparator = true;
28
+ this.initExpand = true;
29
+ this.tableClass = '';
30
+ this.showControlColumn = true;
31
+ this.nodeClicked = new Subject();
32
+ this.displayedColumns = ['operate'];
33
+ }
34
+ ngOnChanges(changes) {
35
+ if (changes.data) {
36
+ if (this.data) {
37
+ this._treeTable = this._getFlattenNodes(this.data);
38
+ this.dataSource = this._generateDataSource();
39
+ this.displayedColumns = Object.keys(this.data[0]).filter(x => typeof this.data[0][x] !== 'object' && this.data[0].showHeader?.includes(x));
40
+ this.displayedColumns.push('operate');
41
+ }
42
+ else {
43
+ this._treeTable = [];
44
+ this.dataSource = this._generateDataSource();
45
+ this.displayedColumns = ['operate'];
46
+ }
47
+ }
48
+ this._changeDetectorRef.markForCheck();
49
+ }
50
+ formatIndentation(node, step = 5) {
51
+ return '&nbsp;'.repeat((node.level ?? 0) * step);
52
+ }
53
+ onNodeClick(clickedNode) {
54
+ clickedNode.isExpanded = !clickedNode.isExpanded;
55
+ this._switchNodeVisible(clickedNode, null);
56
+ this.dataSource = this._generateDataSource();
57
+ this.nodeClicked.next(clickedNode);
58
+ }
59
+ getDisplayedColumns() {
60
+ if (this.showControlColumn)
61
+ return this.displayedColumns;
62
+ else
63
+ return this.displayedColumns.filter(i => i !== 'operate');
64
+ }
65
+ _switchNodeVisible(node, visible) {
66
+ if (node.children) {
67
+ node.children.forEach((el) => {
68
+ visible == null ? el.isVisible = !el.isVisible : el.isVisible = visible;
69
+ if (visible !== false)
70
+ el.isExpanded = true;
71
+ this._switchNodeVisible(el, el.isVisible);
72
+ });
73
+ }
74
+ }
75
+ _generateDataSource() {
76
+ return new MatTableDataSource(this._treeTable.filter(x => x.isVisible));
77
+ }
78
+ _getFlattenNodes(nodes, i = 0) {
79
+ const flattenedNodes = [];
80
+ for (const node of nodes) {
81
+ node.level = i;
82
+ node.isExpanded = this.initExpand;
83
+ node.isVisible = i === 0 ? true : this.initExpand;
84
+ flattenedNodes.push(node);
85
+ if (node.children) {
86
+ flattenedNodes.push(...this._getFlattenNodes(node.children, i + 1));
87
+ }
88
+ }
89
+ return flattenedNodes;
90
+ }
91
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: CmatTreeTableComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
92
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.5", type: CmatTreeTableComponent, isStandalone: true, selector: "cmat-treetable", inputs: { data: "data", verticalSeparator: "verticalSeparator", initExpand: "initExpand", tableClass: "tableClass", showControlColumn: "showControlColumn" }, outputs: { nodeClicked: "nodeClicked" }, queries: [{ propertyName: "customColumnTpl", first: true, predicate: CmatTreeTableColumnDirective, descendants: true, read: TemplateRef }], exportAs: ["cmatTreeTable"], usesOnChanges: true, ngImport: i0, template: "<table mat-table class=\"normal-mobile-table w-full bg-transparent\" [dataSource]=\"dataSource\" [ngClass]=\"tableClass\">\r\n @for (column of getDisplayedColumns(); track $index) {\r\n @if(column==='operate'){\r\n <ng-container matColumnDef=\"{{column}}\">\r\n <th *matHeaderCellDef mat-header-cell class=\"text-center\"\r\n [ngClass]=\"{'vertical-separator': verticalSeparator&&!$first}\"> \u64CD\u4F5C </th>\r\n <td *matCellDef=\"let element\" mat-cell [ngClass]=\"{'vertical-separator': verticalSeparator&&!$first}\">\r\n <ng-container\r\n *ngTemplateOutlet=\"customColumnTpl ? customColumnTpl : columnTpl; context: {$implicit: element}\"></ng-container>\r\n </td>\r\n </ng-container>\r\n }@else {\r\n <ng-container matColumnDef=\"{{column}}\">\r\n <th *matHeaderCellDef mat-header-cell [ngClass]=\"{'vertical-separator': verticalSeparator&&!$first}\">\r\n {{column}}\r\n </th>\r\n <td *matCellDef=\"let element\" mat-cell [ngClass]=\"{'vertical-separator': verticalSeparator&&!$first}\">\r\n @if($first){\r\n <div class=\"value-cell\">\r\n <div [innerHTML]=\"formatIndentation(element)\"></div>\r\n <button mat-icon-button [ngStyle]=\"{'visibility': element.children?.length>0 ? 'visible' : 'hidden'}\"\r\n (click)=\"onNodeClick(element)\">\r\n <mat-icon [svgIcon]=\"element.isExpanded? 'mat_outline:expand_more' : 'mat_outline:chevron_right'\">\r\n </mat-icon>\r\n </button>\r\n\r\n <div>{{element[column]}}</div>\r\n </div>\r\n }@else {\r\n <div>\r\n {{element[column]}}\r\n </div>\r\n }\r\n </td>\r\n </ng-container>\r\n }\r\n }\r\n\r\n <tr *matHeaderRowDef=\"getDisplayedColumns()\" mat-header-row></tr>\r\n <tr *matRowDef=\"let row; columns: getDisplayedColumns();\" mat-row class='group'></tr>\r\n</table>\r\n\r\n<ng-template #columnTpl>\r\n <div>\u8BF7\u5B9E\u73B0\u81EA\u5B9A\u4E49\u6A21\u677F</div>\r\n</ng-template>", styles: ["cmat-treetable .value-cell{display:flex;align-items:center}cmat-treetable .vertical-separator{border-left:1px solid var(--cmat-divider)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i2.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i2.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i2.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i2.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i2.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i2.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i2.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i2.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i2.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i2.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
93
+ }
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: CmatTreeTableComponent, decorators: [{
95
+ type: Component,
96
+ args: [{ selector: 'cmat-treetable', imports: [CommonModule, MatTableModule, MatIconModule, MatButtonModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, exportAs: 'cmatTreeTable', template: "<table mat-table class=\"normal-mobile-table w-full bg-transparent\" [dataSource]=\"dataSource\" [ngClass]=\"tableClass\">\r\n @for (column of getDisplayedColumns(); track $index) {\r\n @if(column==='operate'){\r\n <ng-container matColumnDef=\"{{column}}\">\r\n <th *matHeaderCellDef mat-header-cell class=\"text-center\"\r\n [ngClass]=\"{'vertical-separator': verticalSeparator&&!$first}\"> \u64CD\u4F5C </th>\r\n <td *matCellDef=\"let element\" mat-cell [ngClass]=\"{'vertical-separator': verticalSeparator&&!$first}\">\r\n <ng-container\r\n *ngTemplateOutlet=\"customColumnTpl ? customColumnTpl : columnTpl; context: {$implicit: element}\"></ng-container>\r\n </td>\r\n </ng-container>\r\n }@else {\r\n <ng-container matColumnDef=\"{{column}}\">\r\n <th *matHeaderCellDef mat-header-cell [ngClass]=\"{'vertical-separator': verticalSeparator&&!$first}\">\r\n {{column}}\r\n </th>\r\n <td *matCellDef=\"let element\" mat-cell [ngClass]=\"{'vertical-separator': verticalSeparator&&!$first}\">\r\n @if($first){\r\n <div class=\"value-cell\">\r\n <div [innerHTML]=\"formatIndentation(element)\"></div>\r\n <button mat-icon-button [ngStyle]=\"{'visibility': element.children?.length>0 ? 'visible' : 'hidden'}\"\r\n (click)=\"onNodeClick(element)\">\r\n <mat-icon [svgIcon]=\"element.isExpanded? 'mat_outline:expand_more' : 'mat_outline:chevron_right'\">\r\n </mat-icon>\r\n </button>\r\n\r\n <div>{{element[column]}}</div>\r\n </div>\r\n }@else {\r\n <div>\r\n {{element[column]}}\r\n </div>\r\n }\r\n </td>\r\n </ng-container>\r\n }\r\n }\r\n\r\n <tr *matHeaderRowDef=\"getDisplayedColumns()\" mat-header-row></tr>\r\n <tr *matRowDef=\"let row; columns: getDisplayedColumns();\" mat-row class='group'></tr>\r\n</table>\r\n\r\n<ng-template #columnTpl>\r\n <div>\u8BF7\u5B9E\u73B0\u81EA\u5B9A\u4E49\u6A21\u677F</div>\r\n</ng-template>", styles: ["cmat-treetable .value-cell{display:flex;align-items:center}cmat-treetable .vertical-separator{border-left:1px solid var(--cmat-divider)}\n"] }]
97
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { data: [{
98
+ type: Input
99
+ }], verticalSeparator: [{
100
+ type: Input
101
+ }], initExpand: [{
102
+ type: Input
103
+ }], tableClass: [{
104
+ type: Input
105
+ }], showControlColumn: [{
106
+ type: Input
107
+ }], nodeClicked: [{
108
+ type: Output
109
+ }], customColumnTpl: [{
110
+ type: ContentChild,
111
+ args: [CmatTreeTableColumnDirective, { read: TemplateRef }]
112
+ }] } });
113
+
114
+ class CmatTreeTableNode {
115
+ }
116
+
117
+ /**
118
+ * Generated bundle index. Do not edit.
119
+ */
120
+
121
+ export { CmatTreeTableColumnDirective, CmatTreeTableComponent, CmatTreeTableNode };
122
+ //# sourceMappingURL=cmat-components-treetable.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmat-components-treetable.mjs","sources":["../../../projects/cmat/components/treetable/treetable.component.ts","../../../projects/cmat/components/treetable/treetable.component.html","../../../projects/cmat/components/treetable/treetable.interface.ts","../../../projects/cmat/components/treetable/cmat-components-treetable.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport {\r\n Component,\r\n ChangeDetectionStrategy,\r\n ViewEncapsulation,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n ChangeDetectorRef,\r\n Output,\r\n Directive,\r\n TemplateRef,\r\n ContentChild,\r\n} from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\r\nimport { Subject } from 'rxjs';\r\nimport { CmatTreeTableNode } from './treetable.interface';\r\n\r\n@Directive({\r\n selector: 'ng-template[cmatTreeTableColumn]',\r\n standalone: true\r\n})\r\nexport class CmatTreeTableColumnDirective {\r\n}\r\n\r\n@Component({\r\n selector: 'cmat-treetable',\r\n templateUrl: './treetable.component.html',\r\n styleUrls: ['./treetable.component.scss'],\r\n imports: [CommonModule, MatTableModule, MatIconModule, MatButtonModule],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n exportAs: 'cmatTreeTable'\r\n})\r\nexport class CmatTreeTableComponent implements OnChanges {\r\n @Input() data: CmatTreeTableNode[];\r\n @Input() verticalSeparator: boolean = true;\r\n @Input() initExpand: boolean = true;\r\n @Input() tableClass: string = '';\r\n @Input() showControlColumn: boolean = true;\r\n\r\n @Output() nodeClicked: Subject<CmatTreeTableNode> = new Subject<CmatTreeTableNode>();\r\n\r\n @ContentChild(CmatTreeTableColumnDirective, { read: TemplateRef })\r\n customColumnTpl?: TemplateRef<any>;\r\n\r\n displayedColumns: string[] = ['operate'];\r\n dataSource: MatTableDataSource<CmatTreeTableNode>;\r\n\r\n private _treeTable: CmatTreeTableNode[];\r\n\r\n constructor(private _changeDetectorRef: ChangeDetectorRef) {\r\n\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.data) {\r\n if (this.data) {\r\n this._treeTable = this._getFlattenNodes(this.data);\r\n this.dataSource = this._generateDataSource();\r\n this.displayedColumns = Object.keys(this.data[0]).filter(x => typeof this.data[0][x] !== 'object' && this.data[0].showHeader?.includes(x))\r\n this.displayedColumns.push('operate');\r\n } else {\r\n this._treeTable = [];\r\n this.dataSource = this._generateDataSource();\r\n this.displayedColumns = ['operate'];\r\n }\r\n }\r\n\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n formatIndentation(node: CmatTreeTableNode, step: number = 5): string {\r\n return '&nbsp;'.repeat((node.level ?? 0) * step);\r\n }\r\n\r\n onNodeClick(clickedNode: CmatTreeTableNode): void {\r\n clickedNode.isExpanded = !clickedNode.isExpanded;\r\n this._switchNodeVisible(clickedNode, null);\r\n\r\n this.dataSource = this._generateDataSource();\r\n this.nodeClicked.next(clickedNode);\r\n }\r\n\r\n getDisplayedColumns(): string[] {\r\n if (this.showControlColumn)\r\n return this.displayedColumns;\r\n else\r\n return this.displayedColumns.filter(i=>i!=='operate');\r\n }\r\n\r\n private _switchNodeVisible(node: CmatTreeTableNode, visible: boolean | null): void {\r\n if (node.children) {\r\n node.children.forEach((el) => {\r\n visible == null ? el.isVisible = !el.isVisible : el.isVisible = visible;\r\n\r\n if (visible !== false)\r\n el.isExpanded = true;\r\n\r\n this._switchNodeVisible(el, el.isVisible);\r\n });\r\n }\r\n }\r\n private _generateDataSource(): MatTableDataSource<CmatTreeTableNode> {\r\n return new MatTableDataSource(this._treeTable.filter(x => x.isVisible));\r\n }\r\n\r\n private _getFlattenNodes(nodes: CmatTreeTableNode[], i: number = 0): CmatTreeTableNode[] {\r\n const flattenedNodes: CmatTreeTableNode[] = [];\r\n\r\n for (const node of nodes) {\r\n node.level = i;\r\n node.isExpanded = this.initExpand;\r\n node.isVisible = i === 0 ? true : this.initExpand;\r\n\r\n flattenedNodes.push(node);\r\n\r\n if (node.children) {\r\n flattenedNodes.push(...this._getFlattenNodes(node.children, i + 1));\r\n }\r\n }\r\n return flattenedNodes;\r\n }\r\n}","<table mat-table class=\"normal-mobile-table w-full bg-transparent\" [dataSource]=\"dataSource\" [ngClass]=\"tableClass\">\r\n @for (column of getDisplayedColumns(); track $index) {\r\n @if(column==='operate'){\r\n <ng-container matColumnDef=\"{{column}}\">\r\n <th *matHeaderCellDef mat-header-cell class=\"text-center\"\r\n [ngClass]=\"{'vertical-separator': verticalSeparator&&!$first}\"> 操作 </th>\r\n <td *matCellDef=\"let element\" mat-cell [ngClass]=\"{'vertical-separator': verticalSeparator&&!$first}\">\r\n <ng-container\r\n *ngTemplateOutlet=\"customColumnTpl ? customColumnTpl : columnTpl; context: {$implicit: element}\"></ng-container>\r\n </td>\r\n </ng-container>\r\n }@else {\r\n <ng-container matColumnDef=\"{{column}}\">\r\n <th *matHeaderCellDef mat-header-cell [ngClass]=\"{'vertical-separator': verticalSeparator&&!$first}\">\r\n {{column}}\r\n </th>\r\n <td *matCellDef=\"let element\" mat-cell [ngClass]=\"{'vertical-separator': verticalSeparator&&!$first}\">\r\n @if($first){\r\n <div class=\"value-cell\">\r\n <div [innerHTML]=\"formatIndentation(element)\"></div>\r\n <button mat-icon-button [ngStyle]=\"{'visibility': element.children?.length>0 ? 'visible' : 'hidden'}\"\r\n (click)=\"onNodeClick(element)\">\r\n <mat-icon [svgIcon]=\"element.isExpanded? 'mat_outline:expand_more' : 'mat_outline:chevron_right'\">\r\n </mat-icon>\r\n </button>\r\n\r\n <div>{{element[column]}}</div>\r\n </div>\r\n }@else {\r\n <div>\r\n {{element[column]}}\r\n </div>\r\n }\r\n </td>\r\n </ng-container>\r\n }\r\n }\r\n\r\n <tr *matHeaderRowDef=\"getDisplayedColumns()\" mat-header-row></tr>\r\n <tr *matRowDef=\"let row; columns: getDisplayedColumns();\" mat-row class='group'></tr>\r\n</table>\r\n\r\n<ng-template #columnTpl>\r\n <div>请实现自定义模板</div>\r\n</ng-template>","export class CmatTreeTableNode {\r\n [propName: string]: any;\r\n\r\n id: string | number;\r\n children: CmatTreeTableNode[] | null;\r\n name: string;\r\n title: string;\r\n showHeader?: string[];\r\n level?: number;\r\n}\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}