cmat 0.0.13 → 0.0.15

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 (291) hide show
  1. package/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.d.ts +0 -1
  2. package/components/cascade/cascade-list/cascade-list.component.d.ts +3 -3
  3. package/components/cascade/cascade-menu/cascade-menu.component.d.ts +0 -1
  4. package/components/cascade/options.interface.d.ts +1 -1
  5. package/components/chip-input/chip-input.component.d.ts +0 -1
  6. package/components/custom-formly/public-api.d.ts +1 -0
  7. package/components/custom-formly/types/multicheckbox/multicheckbox.component.d.ts +0 -1
  8. package/components/custom-formly/types/quill/quill.component.d.ts +42 -0
  9. package/components/custom-formly/types/radio/radio.component.d.ts +0 -1
  10. package/components/custom-formly/types/repeat/repeat.component.d.ts +0 -1
  11. package/components/custom-formly/types/select/select.component.d.ts +0 -1
  12. package/components/custom-formly/types/stepper/horizontal/stepper.component.d.ts +0 -1
  13. package/components/custom-formly/types/stepper/vertical/stepper.component.d.ts +0 -1
  14. package/components/custom-formly/types/table/table.component.d.ts +2 -3
  15. package/components/custom-formly/types/tabs/tab.component.d.ts +0 -1
  16. package/components/custom-formly/types/tags/tags.component.d.ts +0 -1
  17. package/components/material-color-picker/material-color-picker.component.d.ts +0 -1
  18. package/components/material-datetimepicker/calendar-body.d.ts +0 -1
  19. package/components/material-datetimepicker/calendar.d.ts +3 -4
  20. package/components/material-datetimepicker/clock.d.ts +2 -3
  21. package/components/material-datetimepicker/datetimepicker.d.ts +3 -4
  22. package/components/material-datetimepicker/month-view.d.ts +0 -1
  23. package/components/navigation/navigation.types.d.ts +1 -1
  24. package/components/pagination/pagination.component.d.ts +0 -1
  25. package/components/password-strength/mat-password-strength-validator.d.ts +1 -1
  26. package/components/popover/popover.component.d.ts +4 -7
  27. package/components/popover/popover.interfaces.d.ts +1 -2
  28. package/components/select-tree/select-tree.component.d.ts +0 -1
  29. package/components/timeline/timeline.component.d.ts +4 -6
  30. package/components/transfer-picker/filter/filter.component.d.ts +1 -2
  31. package/components/transfer-picker/interface.d.ts +4 -4
  32. package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.d.ts +2 -2
  33. package/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.d.ts +1 -2
  34. package/components/transfer-picker/transfer-picker.component.d.ts +5 -5
  35. package/components/transfer-picker/transfer-picker.service.d.ts +6 -6
  36. package/components/upload/upload-queue/upload-queue.component.d.ts +1 -1
  37. package/directives/digit-only/mask.directive.d.ts +2 -0
  38. package/directives/equal-validator/equal-validator.directive.d.ts +1 -3
  39. package/esm2022/components/adapter/datetime-adapter.mjs +1 -1
  40. package/esm2022/components/adapter/dayjs-date-adapter.mjs +5 -5
  41. package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +4 -4
  42. package/esm2022/components/adapter/native-datetime-adapter.mjs +4 -4
  43. package/esm2022/components/breadcrumb/breadcrumb-item.directive.mjs +3 -3
  44. package/esm2022/components/breadcrumb/breadcrumb.component.mjs +6 -6
  45. package/esm2022/components/breadcrumb/breadcrumb.service.mjs +9 -12
  46. package/esm2022/components/card/card.component.mjs +4 -4
  47. package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +5 -8
  48. package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +12 -10
  49. package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +5 -8
  50. package/esm2022/components/cascade/options.interface.mjs +1 -1
  51. package/esm2022/components/chip-input/chip-input.component.mjs +10 -11
  52. package/esm2022/components/custom-formly/extension/addons.extension.mjs +2 -2
  53. package/esm2022/components/custom-formly/public-api.mjs +2 -1
  54. package/esm2022/components/custom-formly/types/button/button.component.mjs +4 -4
  55. package/esm2022/components/custom-formly/types/cascade/cascade.component.mjs +4 -4
  56. package/esm2022/components/custom-formly/types/checklist/checklist.component.mjs +5 -5
  57. package/esm2022/components/custom-formly/types/chips/chips.component.mjs +5 -5
  58. package/esm2022/components/custom-formly/types/color-picker/color-picker.component.mjs +3 -3
  59. package/esm2022/components/custom-formly/types/date-range/date-range.component.mjs +3 -3
  60. package/esm2022/components/custom-formly/types/datepicker/datepicker.component.mjs +5 -5
  61. package/esm2022/components/custom-formly/types/multicheckbox/multicheckbox.component.mjs +4 -5
  62. package/esm2022/components/custom-formly/types/number/number.component.mjs +5 -5
  63. package/esm2022/components/custom-formly/types/quill/quill.component.mjs +171 -0
  64. package/esm2022/components/custom-formly/types/radio/radio.component.mjs +5 -6
  65. package/esm2022/components/custom-formly/types/rating/rating.component.mjs +3 -3
  66. package/esm2022/components/custom-formly/types/repeat/repeat.component.mjs +5 -8
  67. package/esm2022/components/custom-formly/types/select/select.component.mjs +5 -8
  68. package/esm2022/components/custom-formly/types/select-tree/select-tree.component.mjs +4 -4
  69. package/esm2022/components/custom-formly/types/stepper/horizontal/stepper.component.mjs +5 -8
  70. package/esm2022/components/custom-formly/types/stepper/vertical/stepper.component.mjs +5 -8
  71. package/esm2022/components/custom-formly/types/table/table.component.mjs +5 -8
  72. package/esm2022/components/custom-formly/types/tabs/tab.component.mjs +5 -8
  73. package/esm2022/components/custom-formly/types/tags/tags.component.mjs +7 -10
  74. package/esm2022/components/custom-formly/types/textarea/textarea.component.mjs +3 -3
  75. package/esm2022/components/custom-formly/types/upload/upload.component.mjs +4 -4
  76. package/esm2022/components/custom-formly/wrappers/addons/addons.component.mjs +4 -4
  77. package/esm2022/components/custom-formly/wrappers/card/card.component.mjs +3 -3
  78. package/esm2022/components/custom-formly/wrappers/expansion/expansion.component.mjs +5 -5
  79. package/esm2022/components/custom-formly/wrappers/panel/panel.component.mjs +3 -3
  80. package/esm2022/components/date-range/date-range.component.mjs +20 -15
  81. package/esm2022/components/drawer/drawer.component.mjs +4 -4
  82. package/esm2022/components/drawer/drawer.service.mjs +3 -3
  83. package/esm2022/components/fullscreen/fullscreen.component.mjs +5 -5
  84. package/esm2022/components/highlight/highlight.component.mjs +4 -4
  85. package/esm2022/components/highlight/highlight.service.mjs +4 -4
  86. package/esm2022/components/json-editor/json-editor.component.mjs +10 -10
  87. package/esm2022/components/masonry/masonry.component.mjs +4 -4
  88. package/esm2022/components/material-color-picker/material-color-picker.component.mjs +7 -8
  89. package/esm2022/components/material-datetimepicker/calendar-body.mjs +6 -9
  90. package/esm2022/components/material-datetimepicker/calendar.mjs +9 -15
  91. package/esm2022/components/material-datetimepicker/clock.mjs +5 -8
  92. package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +7 -5
  93. package/esm2022/components/material-datetimepicker/datetimepicker-intl.mjs +3 -3
  94. package/esm2022/components/material-datetimepicker/datetimepicker-toggle.mjs +9 -9
  95. package/esm2022/components/material-datetimepicker/datetimepicker.mjs +14 -15
  96. package/esm2022/components/material-datetimepicker/month-view.mjs +5 -8
  97. package/esm2022/components/material-datetimepicker/multi-year-view.mjs +5 -5
  98. package/esm2022/components/material-datetimepicker/time.mjs +10 -10
  99. package/esm2022/components/material-datetimepicker/year-view.mjs +5 -5
  100. package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +5 -5
  101. package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +5 -5
  102. package/esm2022/components/navigation/horizontal/components/divider/divider.component.mjs +3 -3
  103. package/esm2022/components/navigation/horizontal/components/spacer/spacer.component.mjs +3 -3
  104. package/esm2022/components/navigation/horizontal/horizontal.component.mjs +5 -5
  105. package/esm2022/components/navigation/navigation.service.mjs +4 -4
  106. package/esm2022/components/navigation/navigation.types.mjs +1 -1
  107. package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +5 -5
  108. package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +3 -3
  109. package/esm2022/components/navigation/vertical/components/collapsable/collapsable.component.mjs +5 -5
  110. package/esm2022/components/navigation/vertical/components/divider/divider.component.mjs +3 -3
  111. package/esm2022/components/navigation/vertical/components/group/group.component.mjs +5 -5
  112. package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +5 -5
  113. package/esm2022/components/navigation/vertical/vertical.component.mjs +5 -5
  114. package/esm2022/components/pagination/pagination.component.mjs +5 -8
  115. package/esm2022/components/pagination/pagination.directive.mjs +4 -4
  116. package/esm2022/components/pagination/pagination.pipe.mjs +5 -5
  117. package/esm2022/components/pagination/pagination.service.mjs +4 -4
  118. package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +5 -5
  119. package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +6 -6
  120. package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +5 -5
  121. package/esm2022/components/password-strength/mat-password-strength-validator.mjs +2 -2
  122. package/esm2022/components/popover/popover-trigger.mjs +6 -8
  123. package/esm2022/components/popover/popover.component.mjs +8 -9
  124. package/esm2022/components/popover/popover.interfaces.mjs +1 -1
  125. package/esm2022/components/popover/popover.target.mjs +3 -3
  126. package/esm2022/components/progress-bar/progress-bar.component.mjs +4 -4
  127. package/esm2022/components/rating/rating.component.mjs +11 -7
  128. package/esm2022/components/select-search/select-no-entries-found.directive.mjs +3 -3
  129. package/esm2022/components/select-search/select-search-clear.directive.mjs +3 -3
  130. package/esm2022/components/select-search/select-search.component.mjs +9 -9
  131. package/esm2022/components/select-tree/select-tree.component.mjs +10 -11
  132. package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +11 -11
  133. package/esm2022/components/timeline/timeline.component.mjs +8 -15
  134. package/esm2022/components/toast/toast-modal.component.mjs +5 -5
  135. package/esm2022/components/toast/toast.component.mjs +6 -6
  136. package/esm2022/components/toast/toast.service.mjs +10 -10
  137. package/esm2022/components/transfer-picker/filter/filter.component.mjs +6 -9
  138. package/esm2022/components/transfer-picker/interface.mjs +1 -1
  139. package/esm2022/components/transfer-picker/search/search.component.mjs +3 -3
  140. package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +4 -4
  141. package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +5 -8
  142. package/esm2022/components/transfer-picker/transfer-picker.component.mjs +4 -4
  143. package/esm2022/components/transfer-picker/transfer-picker.service.mjs +8 -8
  144. package/esm2022/components/upload/files.util.service.mjs +4 -4
  145. package/esm2022/components/upload/upload-queue/upload-queue.component.mjs +8 -8
  146. package/esm2022/components/upload/upload.component.mjs +5 -5
  147. package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +4 -4
  148. package/esm2022/directives/animate-on-scroll/scroll.service.mjs +3 -3
  149. package/esm2022/directives/autofocus/autofocus.directive.mjs +3 -3
  150. package/esm2022/directives/debounce/abstract-debounce.directive.mjs +3 -3
  151. package/esm2022/directives/debounce/debounce-click.directive.mjs +3 -3
  152. package/esm2022/directives/debounce/debounce-keyup.directive.mjs +3 -3
  153. package/esm2022/directives/digit-only/digit-only.directive.mjs +6 -6
  154. package/esm2022/directives/digit-only/mask.directive.mjs +20 -5
  155. package/esm2022/directives/equal-validator/equal-validator.directive.mjs +4 -4
  156. package/esm2022/lib/mock-api/mock-api.interceptor.mjs +4 -4
  157. package/esm2022/lib/mock-api/mock-api.request-handler.mjs +1 -1
  158. package/esm2022/lib/mock-api/mock-api.service.mjs +4 -4
  159. package/esm2022/lib/mock-api/mock-api.types.mjs +1 -1
  160. package/esm2022/lib/mock-api/mock-api.utils.mjs +1 -2
  161. package/esm2022/pipes/bytes/bytes.pipe.mjs +4 -4
  162. package/esm2022/pipes/date-format/date-format.pipe.mjs +3 -3
  163. package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +4 -4
  164. package/esm2022/pipes/group-by/group-by.pipe.mjs +4 -4
  165. package/esm2022/pipes/keys/keys.pipe.mjs +4 -4
  166. package/esm2022/pipes/secure/secure-pipe.mjs +3 -3
  167. package/esm2022/pipes/uppercase/uppercase.pipe.mjs +3 -3
  168. package/esm2022/public-api.mjs +1 -1
  169. package/esm2022/services/alert/alert.service.mjs +11 -10
  170. package/esm2022/services/config/config.service.mjs +3 -3
  171. package/esm2022/services/config/urlStateConfig.service.mjs +5 -5
  172. package/esm2022/services/confirmation/confirmation.service.mjs +3 -3
  173. package/esm2022/services/confirmation/dialog/dialog.component.mjs +3 -3
  174. package/esm2022/services/data/data.service.mjs +4 -4
  175. package/esm2022/services/loading/loading.interceptor.mjs +4 -4
  176. package/esm2022/services/loading/loading.service.mjs +4 -4
  177. package/esm2022/services/local-storage/local-storage.service.mjs +3 -3
  178. package/esm2022/services/media-watcher/media-watcher.service.mjs +4 -4
  179. package/esm2022/services/platform/platform.service.mjs +4 -4
  180. package/esm2022/services/splash-screen/splash-screen.service.mjs +3 -3
  181. package/esm2022/services/title/title.service.mjs +4 -4
  182. package/esm2022/services/translation/translation.service.mjs +4 -4
  183. package/esm2022/services/utils/utils.service.mjs +9 -11
  184. package/esm2022/validators/validators.mjs +1 -1
  185. package/fesm2022/cmat-animations.mjs +1 -1
  186. package/fesm2022/cmat-components-adapter.mjs +10 -10
  187. package/fesm2022/cmat-components-adapter.mjs.map +1 -1
  188. package/fesm2022/cmat-components-breadcrumb.mjs +16 -19
  189. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  190. package/fesm2022/cmat-components-card.mjs +3 -3
  191. package/fesm2022/cmat-components-card.mjs.map +1 -1
  192. package/fesm2022/cmat-components-cascade.mjs +19 -23
  193. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  194. package/fesm2022/cmat-components-chip-input.mjs +9 -10
  195. package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
  196. package/fesm2022/cmat-components-custom-formly.mjs +257 -115
  197. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
  198. package/fesm2022/cmat-components-date-range.mjs +20 -15
  199. package/fesm2022/cmat-components-date-range.mjs.map +1 -1
  200. package/fesm2022/cmat-components-drawer.mjs +7 -7
  201. package/fesm2022/cmat-components-drawer.mjs.map +1 -1
  202. package/fesm2022/cmat-components-fullscreen.mjs +4 -4
  203. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
  204. package/fesm2022/cmat-components-highlight.mjs +6 -6
  205. package/fesm2022/cmat-components-highlight.mjs.map +1 -1
  206. package/fesm2022/cmat-components-json-editor.mjs +9 -9
  207. package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
  208. package/fesm2022/cmat-components-masonry.mjs +3 -3
  209. package/fesm2022/cmat-components-masonry.mjs.map +1 -1
  210. package/fesm2022/cmat-components-material-color-picker.mjs +6 -7
  211. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  212. package/fesm2022/cmat-components-material-datetimepicker.mjs +70 -83
  213. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  214. package/fesm2022/cmat-components-navigation.mjs +48 -48
  215. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  216. package/fesm2022/cmat-components-pagination.mjs +14 -17
  217. package/fesm2022/cmat-components-pagination.mjs.map +1 -1
  218. package/fesm2022/cmat-components-password-strength.mjs +15 -15
  219. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  220. package/fesm2022/cmat-components-popover.mjs +15 -18
  221. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  222. package/fesm2022/cmat-components-progress-bar.mjs +3 -3
  223. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
  224. package/fesm2022/cmat-components-rating.mjs +9 -5
  225. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  226. package/fesm2022/cmat-components-select-search.mjs +15 -15
  227. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  228. package/fesm2022/cmat-components-select-tree.mjs +9 -10
  229. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  230. package/fesm2022/cmat-components-timeline.mjs +17 -24
  231. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  232. package/fesm2022/cmat-components-toast.mjs +18 -18
  233. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  234. package/fesm2022/cmat-components-transfer-picker.mjs +25 -31
  235. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  236. package/fesm2022/cmat-components-upload.mjs +14 -14
  237. package/fesm2022/cmat-components-upload.mjs.map +1 -1
  238. package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
  239. package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
  240. package/fesm2022/cmat-directives-autofocus.mjs +3 -3
  241. package/fesm2022/cmat-directives-debounce.mjs +9 -9
  242. package/fesm2022/cmat-directives-digit-only.mjs +24 -9
  243. package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
  244. package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
  245. package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -1
  246. package/fesm2022/cmat-lib-mock-api.mjs +7 -8
  247. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
  248. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  249. package/fesm2022/cmat-pipes-bytes.mjs.map +1 -1
  250. package/fesm2022/cmat-pipes-date-format.mjs +3 -3
  251. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
  252. package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
  253. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  254. package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
  255. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  256. package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
  257. package/fesm2022/cmat-pipes-secure.mjs +3 -3
  258. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  259. package/fesm2022/cmat-services-alert.mjs +10 -9
  260. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  261. package/fesm2022/cmat-services-config.mjs +7 -7
  262. package/fesm2022/cmat-services-config.mjs.map +1 -1
  263. package/fesm2022/cmat-services-confirmation.mjs +6 -6
  264. package/fesm2022/cmat-services-data.mjs +3 -3
  265. package/fesm2022/cmat-services-data.mjs.map +1 -1
  266. package/fesm2022/cmat-services-loading.mjs +6 -6
  267. package/fesm2022/cmat-services-loading.mjs.map +1 -1
  268. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  269. package/fesm2022/cmat-services-media-watcher.mjs +3 -3
  270. package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
  271. package/fesm2022/cmat-services-platform.mjs +3 -3
  272. package/fesm2022/cmat-services-platform.mjs.map +1 -1
  273. package/fesm2022/cmat-services-splash-screen.mjs +3 -3
  274. package/fesm2022/cmat-services-title.mjs +3 -3
  275. package/fesm2022/cmat-services-title.mjs.map +1 -1
  276. package/fesm2022/cmat-services-translation.mjs +3 -3
  277. package/fesm2022/cmat-services-translation.mjs.map +1 -1
  278. package/fesm2022/cmat-services-utils.mjs +8 -10
  279. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  280. package/fesm2022/cmat-validators.mjs.map +1 -1
  281. package/lib/mock-api/mock-api.request-handler.d.ts +1 -3
  282. package/lib/mock-api/mock-api.service.d.ts +1 -3
  283. package/lib/mock-api/mock-api.types.d.ts +2 -4
  284. package/package.json +76 -67
  285. package/pipes/group-by/group-by.pipe.d.ts +1 -1
  286. package/services/config/urlStateConfig.service.d.ts +0 -1
  287. package/services/translation/translation.service.d.ts +2 -2
  288. package/services/utils/utils.service.d.ts +5 -7
  289. package/styles/overrides/angular-material.scss +0 -1
  290. package/styles/overrides/quill.scss +102 -0
  291. package/styles/themes.scss +19 -19
@@ -78,9 +78,9 @@ class CmatTransferPickerService {
78
78
  this.selectedValuesChange.next(value);
79
79
  }
80
80
  filterDataSource({ filterData, keyword }) {
81
- this._filterData = filterData || this._filterData;
81
+ this._filterData = filterData ?? this._filterData;
82
82
  this._keyword = keyword === void (0) ? this._keyword : keyword;
83
- if (filterData && filterData.filters.length) {
83
+ if (filterData?.filters.length) {
84
84
  this._filterDataSourceByType(this._keyword ? this._filteredDataSource : this._originalDataSource, 'Filters');
85
85
  return;
86
86
  }
@@ -94,11 +94,11 @@ class CmatTransferPickerService {
94
94
  return;
95
95
  }
96
96
  if (keyword) {
97
- this._filterDataSourceByType(this._filterData && this._filterData.filters.length ? this._filteredDataSource : this._originalDataSource, 'Keyword');
97
+ this._filterDataSourceByType(this._filterData?.filters.length ? this._filteredDataSource : this._originalDataSource, 'Keyword');
98
98
  return;
99
99
  }
100
100
  else if (!keyword) {
101
- if (this._filterData && this._filterData.filters.length) {
101
+ if (this._filterData?.filters.length) {
102
102
  this._filterDataSourceByType(this._originalDataSource, 'Filters');
103
103
  }
104
104
  else {
@@ -157,10 +157,10 @@ class CmatTransferPickerService {
157
157
  }
158
158
  });
159
159
  }
160
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CmatTransferPickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
161
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CmatTransferPickerService, providedIn: 'root' }); }
160
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatTransferPickerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
161
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatTransferPickerService, providedIn: 'root' }); }
162
162
  }
163
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CmatTransferPickerService, decorators: [{
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatTransferPickerService, decorators: [{
164
164
  type: Injectable,
165
165
  args: [{
166
166
  providedIn: 'root'
@@ -202,7 +202,7 @@ class CmatTransferPickerFilterComponent {
202
202
  });
203
203
  }
204
204
  toggleFilter() {
205
- if (this.overlayRef && this.overlayRef.hasAttached()) {
205
+ if (this.overlayRef?.hasAttached()) {
206
206
  this.overlayRef.detach();
207
207
  }
208
208
  else {
@@ -227,15 +227,12 @@ class CmatTransferPickerFilterComponent {
227
227
  changeFilterData() {
228
228
  this._service.filterDataSource({ filterData: this.filterData });
229
229
  }
230
- trackByFn(index, item) {
231
- return index || item.label;
232
- }
233
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CmatTransferPickerFilterComponent, deps: [{ token: i1.Overlay }, { token: CmatTransferPickerService }], target: i0.ɵɵFactoryTarget.Component }); }
234
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.9", type: CmatTransferPickerFilterComponent, isStandalone: true, selector: "cmat-transfer-picker-filter", inputs: { filters: "filters" }, viewQueries: [{ propertyName: "overlayOrigin", first: true, predicate: CdkOverlayOrigin, descendants: true, static: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true, static: true }], exportAs: ["cmatTransferPickerFilter"], ngImport: i0, template: "<button type=\"button\" class=\"mr-2 mt-1\" mat-icon-button (click)=\"toggleFilter()\" cdk-overlay-origin>\n <mat-icon svgIcon=\"mat_outline:filter_list\"></mat-icon>\n</button>\n<ng-template cdk-portal #filterTemplate=\"cdkPortal\">\n <div\n class=\"transfer-picker-filter-panel bg-card flex flex-col flex-nowrap place-content-start box-border items-start w-full shadow\">\n <mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" name=\"condition\" (change)=\"onConditionChange($event.value)\">\n <mat-button-toggle value=\"or\" [checked]=\"filterData.condition === 'or'\">\u6216</mat-button-toggle>\n <mat-button-toggle value=\"and\" [checked]=\"filterData.condition === 'and'\">\u4E14</mat-button-toggle>\n </mat-button-toggle-group>\n\n <div class=\"chip-list\">\n @for (item of filters; track trackByFn($index, item)) {\n <div class=\"chip-wrapper\" role=\"presentation\"\n (click)=\"onFilterClick(item)\">\n <span class=\"chip\" [ngClass]=\"{selected: item?.selected}\">{{item.label}}</span>\n </div>\n }\n </div>\n </div>\n</ng-template>", styles: [".transfer-picker-filter-panel{min-width:276px;padding:10px 0}.transfer-picker-filter-panel .mat-button-toggle-group{font-size:12px;margin-right:15px;margin-bottom:20px;align-self:flex-end}.transfer-picker-filter-panel .mat-button-toggle-group .mat-button-toggle-label-content{line-height:1.8}.transfer-picker-filter-panel .chip-list{width:276px;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;box-sizing:border-box}.transfer-picker-filter-panel .chip-list:after{content:\"\";flex:1 1 0%;max-width:33.333333%}.transfer-picker-filter-panel .chip-list .chip-wrapper{flex:1 1 0%;box-sizing:border-box;max-width:33.333333%;text-align:center;margin-bottom:20px}.transfer-picker-filter-panel .chip-list .chip-wrapper .chip{display:inline-block;min-width:50%;cursor:pointer;padding:5px 10px;font-size:12px}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i3.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i6.TemplatePortalDirective, selector: "[cdk-portal], [portal]", exportAs: ["cdkPortal"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
230
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatTransferPickerFilterComponent, deps: [{ token: i1.Overlay }, { token: CmatTransferPickerService }], target: i0.ɵɵFactoryTarget.Component }); }
231
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: CmatTransferPickerFilterComponent, isStandalone: true, selector: "cmat-transfer-picker-filter", inputs: { filters: "filters" }, viewQueries: [{ propertyName: "overlayOrigin", first: true, predicate: CdkOverlayOrigin, descendants: true, static: true }, { propertyName: "filterTemplate", first: true, predicate: ["filterTemplate"], descendants: true, static: true }], exportAs: ["cmatTransferPickerFilter"], ngImport: i0, template: "<button type=\"button\" class=\"mr-2 mt-1\" mat-icon-button cdk-overlay-origin (click)=\"toggleFilter()\">\n <mat-icon svgIcon=\"mat_outline:filter_list\"></mat-icon>\n</button>\n<ng-template #filterTemplate=\"cdkPortal\" cdk-portal>\n <div\n class=\"transfer-picker-filter-panel bg-card flex flex-col flex-nowrap place-content-start box-border items-start w-full shadow\">\n <mat-button-toggle-group name=\"condition\" [hideSingleSelectionIndicator]=\"true\" (change)=\"onConditionChange($event.value)\">\n <mat-button-toggle value=\"or\" [checked]=\"filterData.condition === 'or'\">\u6216</mat-button-toggle>\n <mat-button-toggle value=\"and\" [checked]=\"filterData.condition === 'and'\">\u4E14</mat-button-toggle>\n </mat-button-toggle-group>\n\n <div class=\"chip-list\">\n @for (item of filters; track $index) {\n <div class=\"chip-wrapper\" role=\"presentation\"\n (click)=\"onFilterClick(item)\">\n <span class=\"chip\" [ngClass]=\"{selected: item?.selected}\">{{item.label}}</span>\n </div>\n }\n </div>\n </div>\n</ng-template>", styles: [".transfer-picker-filter-panel{min-width:276px;padding:10px 0}.transfer-picker-filter-panel .mat-button-toggle-group{font-size:12px;margin-right:15px;margin-bottom:20px;align-self:flex-end}.transfer-picker-filter-panel .mat-button-toggle-group .mat-button-toggle-label-content{line-height:1.8}.transfer-picker-filter-panel .chip-list{width:276px;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;box-sizing:border-box}.transfer-picker-filter-panel .chip-list:after{content:\"\";flex:1 1 0%;max-width:33.333333%}.transfer-picker-filter-panel .chip-list .chip-wrapper{flex:1 1 0%;box-sizing:border-box;max-width:33.333333%;text-align:center;margin-bottom:20px}.transfer-picker-filter-panel .chip-list .chip-wrapper .chip{display:inline-block;min-width:50%;cursor:pointer;padding:5px 10px;font-size:12px}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i3.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i6.TemplatePortalDirective, selector: "[cdk-portal], [portal]", exportAs: ["cdkPortal"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
235
232
  }
236
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CmatTransferPickerFilterComponent, decorators: [{
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatTransferPickerFilterComponent, decorators: [{
237
234
  type: Component,
238
- args: [{ selector: 'cmat-transfer-picker-filter', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatTransferPickerFilter', standalone: true, imports: [MatButtonToggleModule, MatIconModule, CommonModule, PortalModule, MatButtonModule, OverlayModule], template: "<button type=\"button\" class=\"mr-2 mt-1\" mat-icon-button (click)=\"toggleFilter()\" cdk-overlay-origin>\n <mat-icon svgIcon=\"mat_outline:filter_list\"></mat-icon>\n</button>\n<ng-template cdk-portal #filterTemplate=\"cdkPortal\">\n <div\n class=\"transfer-picker-filter-panel bg-card flex flex-col flex-nowrap place-content-start box-border items-start w-full shadow\">\n <mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" name=\"condition\" (change)=\"onConditionChange($event.value)\">\n <mat-button-toggle value=\"or\" [checked]=\"filterData.condition === 'or'\">\u6216</mat-button-toggle>\n <mat-button-toggle value=\"and\" [checked]=\"filterData.condition === 'and'\">\u4E14</mat-button-toggle>\n </mat-button-toggle-group>\n\n <div class=\"chip-list\">\n @for (item of filters; track trackByFn($index, item)) {\n <div class=\"chip-wrapper\" role=\"presentation\"\n (click)=\"onFilterClick(item)\">\n <span class=\"chip\" [ngClass]=\"{selected: item?.selected}\">{{item.label}}</span>\n </div>\n }\n </div>\n </div>\n</ng-template>", styles: [".transfer-picker-filter-panel{min-width:276px;padding:10px 0}.transfer-picker-filter-panel .mat-button-toggle-group{font-size:12px;margin-right:15px;margin-bottom:20px;align-self:flex-end}.transfer-picker-filter-panel .mat-button-toggle-group .mat-button-toggle-label-content{line-height:1.8}.transfer-picker-filter-panel .chip-list{width:276px;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;box-sizing:border-box}.transfer-picker-filter-panel .chip-list:after{content:\"\";flex:1 1 0%;max-width:33.333333%}.transfer-picker-filter-panel .chip-list .chip-wrapper{flex:1 1 0%;box-sizing:border-box;max-width:33.333333%;text-align:center;margin-bottom:20px}.transfer-picker-filter-panel .chip-list .chip-wrapper .chip{display:inline-block;min-width:50%;cursor:pointer;padding:5px 10px;font-size:12px}\n"] }]
235
+ args: [{ selector: 'cmat-transfer-picker-filter', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatTransferPickerFilter', standalone: true, imports: [MatButtonToggleModule, MatIconModule, CommonModule, PortalModule, MatButtonModule, OverlayModule], template: "<button type=\"button\" class=\"mr-2 mt-1\" mat-icon-button cdk-overlay-origin (click)=\"toggleFilter()\">\n <mat-icon svgIcon=\"mat_outline:filter_list\"></mat-icon>\n</button>\n<ng-template #filterTemplate=\"cdkPortal\" cdk-portal>\n <div\n class=\"transfer-picker-filter-panel bg-card flex flex-col flex-nowrap place-content-start box-border items-start w-full shadow\">\n <mat-button-toggle-group name=\"condition\" [hideSingleSelectionIndicator]=\"true\" (change)=\"onConditionChange($event.value)\">\n <mat-button-toggle value=\"or\" [checked]=\"filterData.condition === 'or'\">\u6216</mat-button-toggle>\n <mat-button-toggle value=\"and\" [checked]=\"filterData.condition === 'and'\">\u4E14</mat-button-toggle>\n </mat-button-toggle-group>\n\n <div class=\"chip-list\">\n @for (item of filters; track $index) {\n <div class=\"chip-wrapper\" role=\"presentation\"\n (click)=\"onFilterClick(item)\">\n <span class=\"chip\" [ngClass]=\"{selected: item?.selected}\">{{item.label}}</span>\n </div>\n }\n </div>\n </div>\n</ng-template>", styles: [".transfer-picker-filter-panel{min-width:276px;padding:10px 0}.transfer-picker-filter-panel .mat-button-toggle-group{font-size:12px;margin-right:15px;margin-bottom:20px;align-self:flex-end}.transfer-picker-filter-panel .mat-button-toggle-group .mat-button-toggle-label-content{line-height:1.8}.transfer-picker-filter-panel .chip-list{width:276px;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;box-sizing:border-box}.transfer-picker-filter-panel .chip-list:after{content:\"\";flex:1 1 0%;max-width:33.333333%}.transfer-picker-filter-panel .chip-list .chip-wrapper{flex:1 1 0%;box-sizing:border-box;max-width:33.333333%;text-align:center;margin-bottom:20px}.transfer-picker-filter-panel .chip-list .chip-wrapper .chip{display:inline-block;min-width:50%;cursor:pointer;padding:5px 10px;font-size:12px}\n"] }]
239
236
  }], ctorParameters: () => [{ type: i1.Overlay }, { type: CmatTransferPickerService }], propDecorators: { filters: [{
240
237
  type: Input
241
238
  }], overlayOrigin: [{
@@ -260,10 +257,10 @@ class CmatTransferPickerSearchComponent {
260
257
  reset() {
261
258
  this.keyword.setValue('');
262
259
  }
263
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CmatTransferPickerSearchComponent, deps: [{ token: CmatTransferPickerService }], target: i0.ɵɵFactoryTarget.Component }); }
264
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.9", type: CmatTransferPickerSearchComponent, isStandalone: true, selector: "cmat-transfer-picker-search", inputs: { searchPlaceholder: "searchPlaceholder" }, exportAs: ["cmatTransferPickerSearch"], ngImport: i0, template: "<mat-form-field>\n <input matInput type=\"text\" placeholder=\"{{searchPlaceholder}}\" [formControl]=\"keyword\">\n @if (keyword.value) {\n <button type=\"button\" matSuffix mat-icon-button (click)=\"reset()\">\n <mat-icon svgIcon=\"mat_outline:close\"></mat-icon>\n </button>\n }\n</mat-form-field>", styles: ["cmat-transfer-picker-search{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;align-items:center}cmat-transfer-picker-search .mat-mdc-form-field{width:88%}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
260
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatTransferPickerSearchComponent, deps: [{ token: CmatTransferPickerService }], target: i0.ɵɵFactoryTarget.Component }); }
261
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: CmatTransferPickerSearchComponent, isStandalone: true, selector: "cmat-transfer-picker-search", inputs: { searchPlaceholder: "searchPlaceholder" }, exportAs: ["cmatTransferPickerSearch"], ngImport: i0, template: "<mat-form-field>\n <input matInput type=\"text\" placeholder=\"{{searchPlaceholder}}\" [formControl]=\"keyword\">\n @if (keyword.value) {\n <button type=\"button\" matSuffix mat-icon-button (click)=\"reset()\">\n <mat-icon svgIcon=\"mat_outline:close\"></mat-icon>\n </button>\n }\n</mat-form-field>", styles: ["cmat-transfer-picker-search{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;align-items:center}cmat-transfer-picker-search .mat-mdc-form-field{width:88%}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
265
262
  }
266
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CmatTransferPickerSearchComponent, decorators: [{
263
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatTransferPickerSearchComponent, decorators: [{
267
264
  type: Component,
268
265
  args: [{ selector: 'cmat-transfer-picker-search', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatTransferPickerSearch', standalone: true, imports: [MatFormFieldModule, MatIconModule, ReactiveFormsModule, MatButtonModule, MatInputModule], template: "<mat-form-field>\n <input matInput type=\"text\" placeholder=\"{{searchPlaceholder}}\" [formControl]=\"keyword\">\n @if (keyword.value) {\n <button type=\"button\" matSuffix mat-icon-button (click)=\"reset()\">\n <mat-icon svgIcon=\"mat_outline:close\"></mat-icon>\n </button>\n }\n</mat-form-field>", styles: ["cmat-transfer-picker-search{display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:center;align-items:center}cmat-transfer-picker-search .mat-mdc-form-field{width:88%}\n"] }]
269
266
  }], ctorParameters: () => [{ type: CmatTransferPickerService }], propDecorators: { searchPlaceholder: [{
@@ -457,10 +454,10 @@ class CmatTransferPickerSourceComponent {
457
454
  }
458
455
  return null;
459
456
  }
460
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CmatTransferPickerSourceComponent, deps: [{ token: CmatTransferPickerService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
461
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.9", type: CmatTransferPickerSourceComponent, isStandalone: true, selector: "cmat-transfer-picker-source", exportAs: ["cmatTransferPickerSource"], ngImport: i0, template: "<mat-card class=\"transfer-picker-source shadow\">\n <mat-card-header class=\"pb-3 items-center\">\n <mat-card-title class=\"transfer-picker-source-title\">{{options.title}}</mat-card-title>\n @if (options.filterable) {\n <cmat-transfer-picker-filter\n [filters]=\"options.filters\"></cmat-transfer-picker-filter>\n }\n </mat-card-header>\n <mat-card-content class=\"transfer-picker-source-content\">\n @if (options.searchable) {\n <cmat-transfer-picker-search\n [searchPlaceholder]=\"options.searchPlaceholder\"></cmat-transfer-picker-search>\n }\n\n <cdk-virtual-scroll-viewport itemSize=\"48\"\n class=\"transfer-picker-source-scroll-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <mat-tree-node *matTreeNodeDef=\"let node\" [matTreeNodePadding]=\"node.level\">\n <button type=\"button\" mat-icon-button disabled> </button>\n <mat-checkbox class=\"checklist-leaf-node\" [checked]=\"checklistSelection.isSelected(node)\"\n [disabled]=\"node?.disabled\" (change)=\"transferLeafItemSelectionToggle(node);\">\n {{node.label}}\n </mat-checkbox>\n </mat-tree-node>\n\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" [matTreeNodePadding]=\"node.level\">\n <button type=\"button\" mat-icon-button matTreeNodeToggle>\n <mat-icon class=\"mat-icon-rtl-mirror\"\n svgIcon=\"{{treeControl.isExpanded(node) ? 'mat_outline:expand_more' : 'mat_outline:chevron_right'}}\">\n </mat-icon>\n </button>\n <mat-checkbox [checked]=\"descendantsAllSelected(node)||node?.disabled\"\n [indeterminate]=\"descendantsPartiallySelected(node)\" [disabled]=\"node?.disabled\"\n (change)=\"transferItemSelectionToggle(node)\">\n {{node.label}}\n </mat-checkbox>\n </mat-tree-node>\n </mat-tree>\n @if (!dataSource?.data?.length) {\n <div class=\"transfer-picker-source-empty\">\u6682\u65E0\u6570\u636E</div>\n }\n </cdk-virtual-scroll-viewport>\n </mat-card-content>\n</mat-card>", styles: [".transfer-picker-source{width:276px;height:100%;padding:0}.transfer-picker-source .mat-mdc-card-header{display:flex;flex-direction:row;flex-wrap:nowrap;box-sizing:border-box;place-content:space-between;align-items:flex-start;margin-bottom:-8px}.transfer-picker-source-title{font-size:1rem;margin-bottom:0}.transfer-picker-source-scroll-wrapper{height:300px}.transfer-picker-source-empty{text-align:center;font-size:1rem;margin-top:20px;color:#00000040}\n"], dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i2$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i2$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatTreeModule }, { kind: "directive", type: i3$2.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i3$2.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "directive", type: i3$2.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "component", type: i3$2.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i3$2.MatTreeNode, selector: "mat-tree-node", inputs: ["disabled", "tabIndex"], exportAs: ["matTreeNode"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i4$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: CmatTransferPickerFilterComponent, selector: "cmat-transfer-picker-filter", inputs: ["filters"], exportAs: ["cmatTransferPickerFilter"] }, { kind: "component", type: CmatTransferPickerSearchComponent, selector: "cmat-transfer-picker-search", inputs: ["searchPlaceholder"], exportAs: ["cmatTransferPickerSearch"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i7.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "component", type: i7.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
457
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatTransferPickerSourceComponent, deps: [{ token: CmatTransferPickerService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
458
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: CmatTransferPickerSourceComponent, isStandalone: true, selector: "cmat-transfer-picker-source", exportAs: ["cmatTransferPickerSource"], ngImport: i0, template: "<mat-card class=\"transfer-picker-source shadow\">\n <mat-card-header class=\"pb-3 items-center\">\n <mat-card-title class=\"transfer-picker-source-title\">{{options.title}}</mat-card-title>\n @if (options.filterable) {\n <cmat-transfer-picker-filter\n [filters]=\"options.filters\"></cmat-transfer-picker-filter>\n }\n </mat-card-header>\n <mat-card-content class=\"transfer-picker-source-content\">\n @if (options.searchable) {\n <cmat-transfer-picker-search\n [searchPlaceholder]=\"options.searchPlaceholder\"></cmat-transfer-picker-search>\n }\n\n <cdk-virtual-scroll-viewport itemSize=\"48\"\n class=\"transfer-picker-source-scroll-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <mat-tree-node *matTreeNodeDef=\"let node\" [matTreeNodePadding]=\"node.level\">\n <button type=\"button\" mat-icon-button disabled> </button>\n <mat-checkbox class=\"checklist-leaf-node\" [checked]=\"checklistSelection.isSelected(node)\"\n [disabled]=\"node?.disabled\" (change)=\"transferLeafItemSelectionToggle(node);\">\n {{node.label}}\n </mat-checkbox>\n </mat-tree-node>\n\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" [matTreeNodePadding]=\"node.level\">\n <button type=\"button\" mat-icon-button matTreeNodeToggle>\n <mat-icon class=\"mat-icon-rtl-mirror\"\n svgIcon=\"{{treeControl.isExpanded(node) ? 'mat_outline:expand_more' : 'mat_outline:chevron_right'}}\">\n </mat-icon>\n </button>\n <mat-checkbox [checked]=\"descendantsAllSelected(node)||node?.disabled\"\n [indeterminate]=\"descendantsPartiallySelected(node)\" [disabled]=\"node?.disabled\"\n (change)=\"transferItemSelectionToggle(node)\">\n {{node.label}}\n </mat-checkbox>\n </mat-tree-node>\n </mat-tree>\n @if (!dataSource?.data?.length) {\n <div class=\"transfer-picker-source-empty\">\u6682\u65E0\u6570\u636E</div>\n }\n </cdk-virtual-scroll-viewport>\n </mat-card-content>\n</mat-card>", styles: [".transfer-picker-source{width:276px;height:100%;padding:0}.transfer-picker-source .mat-mdc-card-header{display:flex;flex-direction:row;flex-wrap:nowrap;box-sizing:border-box;place-content:space-between;align-items:flex-start;margin-bottom:-8px}.transfer-picker-source-title{font-size:1rem;margin-bottom:0}.transfer-picker-source-scroll-wrapper{height:300px}.transfer-picker-source-empty{text-align:center;font-size:1rem;margin-top:20px;color:#00000040}\n"], dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i2$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i2$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatTreeModule }, { kind: "directive", type: i3$2.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i3$2.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "directive", type: i3$2.MatTreeNodeToggle, selector: "[matTreeNodeToggle]", inputs: ["matTreeNodeToggleRecursive"] }, { kind: "component", type: i3$2.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i3$2.MatTreeNode, selector: "mat-tree-node", inputs: ["disabled", "tabIndex"], exportAs: ["matTreeNode"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i4$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: CmatTransferPickerFilterComponent, selector: "cmat-transfer-picker-filter", inputs: ["filters"], exportAs: ["cmatTransferPickerFilter"] }, { kind: "component", type: CmatTransferPickerSearchComponent, selector: "cmat-transfer-picker-search", inputs: ["searchPlaceholder"], exportAs: ["cmatTransferPickerSearch"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i7.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "component", type: i7.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
462
459
  }
463
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CmatTransferPickerSourceComponent, decorators: [{
460
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatTransferPickerSourceComponent, decorators: [{
464
461
  type: Component,
465
462
  args: [{ selector: 'cmat-transfer-picker-source', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatTransferPickerSource', standalone: true, imports: [MatCardModule, MatTreeModule, MatCheckboxModule, MatIconModule, MatButtonModule,
466
463
  CmatTransferPickerFilterComponent, CmatTransferPickerSearchComponent, ScrollingModule], template: "<mat-card class=\"transfer-picker-source shadow\">\n <mat-card-header class=\"pb-3 items-center\">\n <mat-card-title class=\"transfer-picker-source-title\">{{options.title}}</mat-card-title>\n @if (options.filterable) {\n <cmat-transfer-picker-filter\n [filters]=\"options.filters\"></cmat-transfer-picker-filter>\n }\n </mat-card-header>\n <mat-card-content class=\"transfer-picker-source-content\">\n @if (options.searchable) {\n <cmat-transfer-picker-search\n [searchPlaceholder]=\"options.searchPlaceholder\"></cmat-transfer-picker-search>\n }\n\n <cdk-virtual-scroll-viewport itemSize=\"48\"\n class=\"transfer-picker-source-scroll-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <mat-tree-node *matTreeNodeDef=\"let node\" [matTreeNodePadding]=\"node.level\">\n <button type=\"button\" mat-icon-button disabled> </button>\n <mat-checkbox class=\"checklist-leaf-node\" [checked]=\"checklistSelection.isSelected(node)\"\n [disabled]=\"node?.disabled\" (change)=\"transferLeafItemSelectionToggle(node);\">\n {{node.label}}\n </mat-checkbox>\n </mat-tree-node>\n\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" [matTreeNodePadding]=\"node.level\">\n <button type=\"button\" mat-icon-button matTreeNodeToggle>\n <mat-icon class=\"mat-icon-rtl-mirror\"\n svgIcon=\"{{treeControl.isExpanded(node) ? 'mat_outline:expand_more' : 'mat_outline:chevron_right'}}\">\n </mat-icon>\n </button>\n <mat-checkbox [checked]=\"descendantsAllSelected(node)||node?.disabled\"\n [indeterminate]=\"descendantsPartiallySelected(node)\" [disabled]=\"node?.disabled\"\n (change)=\"transferItemSelectionToggle(node)\">\n {{node.label}}\n </mat-checkbox>\n </mat-tree-node>\n </mat-tree>\n @if (!dataSource?.data?.length) {\n <div class=\"transfer-picker-source-empty\">\u6682\u65E0\u6570\u636E</div>\n }\n </cdk-virtual-scroll-viewport>\n </mat-card-content>\n</mat-card>", styles: [".transfer-picker-source{width:276px;height:100%;padding:0}.transfer-picker-source .mat-mdc-card-header{display:flex;flex-direction:row;flex-wrap:nowrap;box-sizing:border-box;place-content:space-between;align-items:flex-start;margin-bottom:-8px}.transfer-picker-source-title{font-size:1rem;margin-bottom:0}.transfer-picker-source-scroll-wrapper{height:300px}.transfer-picker-source-empty{text-align:center;font-size:1rem;margin-top:20px;color:#00000040}\n"] }]
@@ -474,15 +471,12 @@ class CmatTransferPickerTargetComponent {
474
471
  this.selectedList.splice(this.selectedList.indexOf(item), 1);
475
472
  this.clearItemChange.next(item);
476
473
  }
477
- trackByFn(index, item) {
478
- return index || item.label;
479
- }
480
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CmatTransferPickerTargetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
481
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.9", type: CmatTransferPickerTargetComponent, isStandalone: true, selector: "cmat-transfer-picker-target", inputs: { selectedList: "selectedList" }, outputs: { clearItemChange: "clearItemChange" }, exportAs: ["cmatTransferPickerTarget"], ngImport: i0, template: "<mat-card class=\"transfer-picker-target shadow\">\n <mat-card-header class=\"pb-3 items-center\">\n <mat-card-title class=\"transfer-picker-target-title\">\u5DF2\u9009\u62E9 {{selectedList.length}} \u9879</mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <cdk-virtual-scroll-viewport itemSize=\"40\"\n class=\"transfer-picker-target-scroll-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\n <mat-list dense>\n @for (item of selectedList; track trackByFn($index, item)) {\n <mat-list-item class=\"transfer-picker-target-item\">\n <div mat-line class=\"flex flex-row items-center\">\n <div class=\"flex-1\">{{item.label}}</div>\n <button type=\"button\" mat-icon-button (click)=\"clearItem(item)\">\n <mat-icon svgIcon=\"heroicons_solid:x-circle\"></mat-icon>\n </button>\n </div>\n </mat-list-item>\n }\n </mat-list>\n @if (!selectedList.length) {\n <div class=\"transfer-picker-target-empty\">\u6682\u65E0\u6570\u636E</div>\n }\n </cdk-virtual-scroll-viewport>\n </mat-card-content>\n</mat-card>", styles: [".transfer-picker-target{height:100%;padding:0;width:276px}.transfer-picker-target .mat-mdc-card-header{margin-bottom:-8px}.transfer-picker-target-title{font-size:1rem;margin-bottom:0;padding:12px 0}.transfer-picker-target-item{width:100%}.transfer-picker-target-scroll-wrapper{height:356px}.transfer-picker-target-empty{text-align:center;margin-top:20px;color:#00000040}\n"], dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i2$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i2$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2$2.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i2$2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i7.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "component", type: i7.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
474
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatTransferPickerTargetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
475
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: CmatTransferPickerTargetComponent, isStandalone: true, selector: "cmat-transfer-picker-target", inputs: { selectedList: "selectedList" }, outputs: { clearItemChange: "clearItemChange" }, exportAs: ["cmatTransferPickerTarget"], ngImport: i0, template: "<mat-card class=\"transfer-picker-target shadow\">\n <mat-card-header class=\"pb-3 items-center\">\n <mat-card-title class=\"transfer-picker-target-title\">\u5DF2\u9009\u62E9 {{selectedList.length}} \u9879</mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <cdk-virtual-scroll-viewport itemSize=\"40\"\n class=\"transfer-picker-target-scroll-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\n <mat-list dense>\n @for (item of selectedList; track $index) {\n <mat-list-item class=\"transfer-picker-target-item\">\n <div mat-line class=\"flex flex-row items-center\">\n <div class=\"flex-1\">{{item.label}}</div>\n <button type=\"button\" mat-icon-button (click)=\"clearItem(item)\">\n <mat-icon svgIcon=\"heroicons_solid:x-circle\"></mat-icon>\n </button>\n </div>\n </mat-list-item>\n }\n </mat-list>\n @if (!selectedList.length) {\n <div class=\"transfer-picker-target-empty\">\u6682\u65E0\u6570\u636E</div>\n }\n </cdk-virtual-scroll-viewport>\n </mat-card-content>\n</mat-card>", styles: [".transfer-picker-target{height:100%;padding:0;width:276px}.transfer-picker-target .mat-mdc-card-header{margin-bottom:-8px}.transfer-picker-target-title{font-size:1rem;margin-bottom:0;padding:12px 0}.transfer-picker-target-item{width:100%}.transfer-picker-target-scroll-wrapper{height:356px}.transfer-picker-target-empty{text-align:center;margin-top:20px;color:#00000040}\n"], dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2$1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2$1.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i2$1.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i2$1.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i2$2.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i2$2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "directive", type: i7.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "component", type: i7.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
482
476
  }
483
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CmatTransferPickerTargetComponent, decorators: [{
477
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatTransferPickerTargetComponent, decorators: [{
484
478
  type: Component,
485
- args: [{ selector: 'cmat-transfer-picker-target', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatTransferPickerTarget', standalone: true, imports: [MatCardModule, MatListModule, MatIconModule, ScrollingModule, MatButtonModule], template: "<mat-card class=\"transfer-picker-target shadow\">\n <mat-card-header class=\"pb-3 items-center\">\n <mat-card-title class=\"transfer-picker-target-title\">\u5DF2\u9009\u62E9 {{selectedList.length}} \u9879</mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <cdk-virtual-scroll-viewport itemSize=\"40\"\n class=\"transfer-picker-target-scroll-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\n <mat-list dense>\n @for (item of selectedList; track trackByFn($index, item)) {\n <mat-list-item class=\"transfer-picker-target-item\">\n <div mat-line class=\"flex flex-row items-center\">\n <div class=\"flex-1\">{{item.label}}</div>\n <button type=\"button\" mat-icon-button (click)=\"clearItem(item)\">\n <mat-icon svgIcon=\"heroicons_solid:x-circle\"></mat-icon>\n </button>\n </div>\n </mat-list-item>\n }\n </mat-list>\n @if (!selectedList.length) {\n <div class=\"transfer-picker-target-empty\">\u6682\u65E0\u6570\u636E</div>\n }\n </cdk-virtual-scroll-viewport>\n </mat-card-content>\n</mat-card>", styles: [".transfer-picker-target{height:100%;padding:0;width:276px}.transfer-picker-target .mat-mdc-card-header{margin-bottom:-8px}.transfer-picker-target-title{font-size:1rem;margin-bottom:0;padding:12px 0}.transfer-picker-target-item{width:100%}.transfer-picker-target-scroll-wrapper{height:356px}.transfer-picker-target-empty{text-align:center;margin-top:20px;color:#00000040}\n"] }]
479
+ args: [{ selector: 'cmat-transfer-picker-target', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatTransferPickerTarget', standalone: true, imports: [MatCardModule, MatListModule, MatIconModule, ScrollingModule, MatButtonModule], template: "<mat-card class=\"transfer-picker-target shadow\">\n <mat-card-header class=\"pb-3 items-center\">\n <mat-card-title class=\"transfer-picker-target-title\">\u5DF2\u9009\u62E9 {{selectedList.length}} \u9879</mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <cdk-virtual-scroll-viewport itemSize=\"40\"\n class=\"transfer-picker-target-scroll-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\n <mat-list dense>\n @for (item of selectedList; track $index) {\n <mat-list-item class=\"transfer-picker-target-item\">\n <div mat-line class=\"flex flex-row items-center\">\n <div class=\"flex-1\">{{item.label}}</div>\n <button type=\"button\" mat-icon-button (click)=\"clearItem(item)\">\n <mat-icon svgIcon=\"heroicons_solid:x-circle\"></mat-icon>\n </button>\n </div>\n </mat-list-item>\n }\n </mat-list>\n @if (!selectedList.length) {\n <div class=\"transfer-picker-target-empty\">\u6682\u65E0\u6570\u636E</div>\n }\n </cdk-virtual-scroll-viewport>\n </mat-card-content>\n</mat-card>", styles: [".transfer-picker-target{height:100%;padding:0;width:276px}.transfer-picker-target .mat-mdc-card-header{margin-bottom:-8px}.transfer-picker-target-title{font-size:1rem;margin-bottom:0;padding:12px 0}.transfer-picker-target-item{width:100%}.transfer-picker-target-scroll-wrapper{height:356px}.transfer-picker-target-empty{text-align:center;margin-top:20px;color:#00000040}\n"] }]
486
480
  }], ctorParameters: () => [], propDecorators: { selectedList: [{
487
481
  type: Input
488
482
  }], clearItemChange: [{
@@ -537,10 +531,10 @@ class CmatTransferPickerComponent {
537
531
  this.selectChange.next(this.selectedList);
538
532
  this._changeDetectorRef.detectChanges();
539
533
  }
540
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CmatTransferPickerComponent, deps: [{ token: CmatTransferPickerService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
541
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.9", type: CmatTransferPickerComponent, isStandalone: true, selector: "cmat-transfer-picker", inputs: { title: "title", filterable: "filterable", searchable: "searchable", searchPlaceholder: "searchPlaceholder", dataSource: "dataSource", filters: "filters", selectedValues: "selectedValues" }, outputs: { selectChange: "selectChange" }, viewQueries: [{ propertyName: "source", first: true, predicate: CmatTransferPickerSourceComponent, descendants: true, static: true }], exportAs: ["cmatTransferPicker"], ngImport: i0, template: "<cmat-transfer-picker-source></cmat-transfer-picker-source>\n<div class=\"cmat-transfer-picker-operation flex flex-col flex-nowrap gap-2 mx-2\">\n <button type=\"button\" class=\"pl-2\" mat-raised-button color=\"primary\" (click)=\"pick()\">\n \u9009\u62E9<mat-icon svgIcon=\"mat_outline:chevron_right\"></mat-icon>\n </button>\n <button type=\"button\" class=\"pl-2\" mat-raised-button color=\"primary\" (click)=\"reset()\">\n <mat-icon svgIcon=\"mat_outline:chevron_left\"></mat-icon>\u91CD\u7F6E\n </button>\n</div>\n<cmat-transfer-picker-target [selectedList]=\"selectedList\" (clearItemChange)=\"onClearItemChange($event)\">\n</cmat-transfer-picker-target>", styles: ["cmat-transfer-picker{height:100%;overflow:hidden;padding:1rem;display:flex;flex-wrap:nowrap;justify-items:center;align-items:center;gap:.5rem}cmat-transfer-picker cmat-transfer-picker-source,cmat-transfer-picker cmat-transfer-picker-target{height:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: CmatTransferPickerSourceComponent, selector: "cmat-transfer-picker-source", exportAs: ["cmatTransferPickerSource"] }, { kind: "component", type: CmatTransferPickerTargetComponent, selector: "cmat-transfer-picker-target", inputs: ["selectedList"], outputs: ["clearItemChange"], exportAs: ["cmatTransferPickerTarget"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
534
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatTransferPickerComponent, deps: [{ token: CmatTransferPickerService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
535
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: CmatTransferPickerComponent, isStandalone: true, selector: "cmat-transfer-picker", inputs: { title: "title", filterable: "filterable", searchable: "searchable", searchPlaceholder: "searchPlaceholder", dataSource: "dataSource", filters: "filters", selectedValues: "selectedValues" }, outputs: { selectChange: "selectChange" }, viewQueries: [{ propertyName: "source", first: true, predicate: CmatTransferPickerSourceComponent, descendants: true, static: true }], exportAs: ["cmatTransferPicker"], ngImport: i0, template: "<cmat-transfer-picker-source></cmat-transfer-picker-source>\n<div class=\"cmat-transfer-picker-operation flex flex-col flex-nowrap gap-2 mx-2\">\n <button type=\"button\" class=\"pl-2\" mat-raised-button color=\"primary\" (click)=\"pick()\">\n \u9009\u62E9<mat-icon svgIcon=\"mat_outline:chevron_right\"></mat-icon>\n </button>\n <button type=\"button\" class=\"pl-2\" mat-raised-button color=\"primary\" (click)=\"reset()\">\n <mat-icon svgIcon=\"mat_outline:chevron_left\"></mat-icon>\u91CD\u7F6E\n </button>\n</div>\n<cmat-transfer-picker-target [selectedList]=\"selectedList\" (clearItemChange)=\"onClearItemChange($event)\">\n</cmat-transfer-picker-target>", styles: ["cmat-transfer-picker{height:100%;overflow:hidden;padding:1rem;display:flex;flex-wrap:nowrap;justify-items:center;align-items:center;gap:.5rem}cmat-transfer-picker cmat-transfer-picker-source,cmat-transfer-picker cmat-transfer-picker-target{height:100%}\n"], dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: CmatTransferPickerSourceComponent, selector: "cmat-transfer-picker-source", exportAs: ["cmatTransferPickerSource"] }, { kind: "component", type: CmatTransferPickerTargetComponent, selector: "cmat-transfer-picker-target", inputs: ["selectedList"], outputs: ["clearItemChange"], exportAs: ["cmatTransferPickerTarget"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
542
536
  }
543
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: CmatTransferPickerComponent, decorators: [{
537
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: CmatTransferPickerComponent, decorators: [{
544
538
  type: Component,
545
539
  args: [{ selector: 'cmat-transfer-picker', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatTransferPicker', standalone: true, imports: [MatIconModule, MatButtonModule, CmatTransferPickerSourceComponent, CmatTransferPickerTargetComponent], template: "<cmat-transfer-picker-source></cmat-transfer-picker-source>\n<div class=\"cmat-transfer-picker-operation flex flex-col flex-nowrap gap-2 mx-2\">\n <button type=\"button\" class=\"pl-2\" mat-raised-button color=\"primary\" (click)=\"pick()\">\n \u9009\u62E9<mat-icon svgIcon=\"mat_outline:chevron_right\"></mat-icon>\n </button>\n <button type=\"button\" class=\"pl-2\" mat-raised-button color=\"primary\" (click)=\"reset()\">\n <mat-icon svgIcon=\"mat_outline:chevron_left\"></mat-icon>\u91CD\u7F6E\n </button>\n</div>\n<cmat-transfer-picker-target [selectedList]=\"selectedList\" (clearItemChange)=\"onClearItemChange($event)\">\n</cmat-transfer-picker-target>", styles: ["cmat-transfer-picker{height:100%;overflow:hidden;padding:1rem;display:flex;flex-wrap:nowrap;justify-items:center;align-items:center;gap:.5rem}cmat-transfer-picker cmat-transfer-picker-source,cmat-transfer-picker cmat-transfer-picker-target{height:100%}\n"] }]
546
540
  }], ctorParameters: () => [{ type: CmatTransferPickerService }, { type: i0.ChangeDetectorRef }], propDecorators: { title: [{
@@ -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';\nimport { BehaviorSubject } from 'rxjs';\nimport {\n CmatSourceOptions,\n CmatTransferFilterData,\n CmatTransferFilterItem,\n CmatTransferItemNode\n} from './interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CmatTransferPickerService {\n dataSourceChange: BehaviorSubject<Array<CmatTransferItemNode>>;\n refreshDataSourceChange: BehaviorSubject<boolean>;\n filtersChange: BehaviorSubject<Array<CmatTransferFilterItem>>;\n sourceOptionsChange: BehaviorSubject<CmatSourceOptions | void>;\n selectedValuesChange: BehaviorSubject<Array<string>>;\n\n private _dataSource: Array<CmatTransferItemNode>;\n\n private _filterData: CmatTransferFilterData;\n private _keyword: string;\n private _originalDataSource: Array<CmatTransferItemNode>;\n private _filteredDataSource: Array<CmatTransferItemNode>;\n private _compareMap: Map<string, (a: any, b: any) => boolean>;\n private _conditionMap: Map<string, (arr: Array<boolean>) => boolean>;\n\n constructor() {\n this.dataSourceChange = new BehaviorSubject<Array<CmatTransferItemNode>>([]);\n this.refreshDataSourceChange= new BehaviorSubject<boolean>(true);\n this.filtersChange = new BehaviorSubject<Array<CmatTransferFilterItem>>([]);\n this.sourceOptionsChange = new BehaviorSubject<CmatSourceOptions | void>(void 0);\n this.selectedValuesChange = new BehaviorSubject<Array<string>>([]);\n\n this._compareMap = new Map<string, (a: any, b: any) => boolean>([\n ['0', (a, b): boolean => a === b],\n ['1', (a, b): boolean => a !== b],\n ['2', (a, b): boolean => a > b],\n ['3', (a, b): boolean => a < b],\n ['0,2', (a, b): boolean => a >= b],\n ['0,2', (a, b): boolean => a <= b]\n ]);\n\n this._conditionMap = new Map<string, (arr: Array<boolean>) => boolean>([\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n ['or', arr => arr.reduce((o, item) => (o.result = o.result || item || o.prev, o.prev = item, o), {\n result: false,\n prev: arr[0]\n }).result],\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n ['and', arr => arr.reduce((o, item) => (o.result = o.result && item && o.prev, o.prev = item, o), {\n result: true,\n prev: arr[0]\n }).result],\n ]);\n }\n\n get dataSource(): Array<CmatTransferItemNode> {\n return this._dataSource;\n }\n\n set dataSource(data: Array<CmatTransferItemNode>) {\n this._dataSource = data;\n\n if (!this._originalDataSource) {\n this._originalDataSource = JSON.parse(JSON.stringify(data));\n }\n\n this.dataSourceChange.next(data);\n }\n\n set sourceOptions(value: CmatSourceOptions) {\n this.sourceOptionsChange.next(value);\n }\n\n set selectedValues(value: Array<string>) {\n this.selectedValuesChange.next(value);\n }\n\n\n filterDataSource({ filterData, keyword }: { filterData?: CmatTransferFilterData; keyword?: string }): void {\n this._filterData = filterData || this._filterData;\n this._keyword = keyword === void (0) ? this._keyword : keyword;\n\n if (filterData && filterData.filters.length) {\n this._filterDataSourceByType(this._keyword ? this._filteredDataSource : this._originalDataSource, 'Filters');\n return;\n } else if (filterData && !filterData.filters.length) {\n if (this._keyword) {\n this._filterDataSourceByType(this._originalDataSource, 'Keyword');\n } else {\n this.resetDataSource(false);\n }\n return;\n }\n\n if (keyword) {\n this._filterDataSourceByType(this._filterData && this._filterData.filters.length ? this._filteredDataSource : this._originalDataSource, 'Keyword');\n return;\n } else if (!keyword) {\n if (this._filterData && this._filterData.filters.length) {\n this._filterDataSourceByType(this._originalDataSource, 'Filters');\n } else {\n this.resetDataSource(false);\n }\n return;\n }\n }\n\n resetDataSource(clear:boolean): void {\n this.dataSource = this._originalDataSource;\n this._filteredDataSource = [];\n this.refreshDataSourceChange.next(clear);\n }\n\n private _filterDataSourceByType(dataSource: Array<CmatTransferItemNode>, type: 'Filters' | 'Keyword'): void {\n this._filteredDataSource = [];\n switch (type) {\n case 'Filters':\n this._setFilteredDataSourceByFilters(dataSource);\n break;\n case 'Keyword':\n this._setFilteredDataSourceByKeyword(dataSource);\n break;\n }\n this.dataSource = this._filteredDataSource;\n this.refreshDataSourceChange.next(false);\n }\n\n private _setFilteredDataSourceByFilters(dataSource: Array<CmatTransferItemNode>): void {\n dataSource.map((data) => {\n const compareResultArr: any = [];\n this._filterData.filters.map((filter) => {\n if (Object.prototype.hasOwnProperty.call(data, filter.field)) {\n const compare = this._compareMap.get(filter.condition.sort().toString())?.(filter.value, data[filter.field]);\n\n if (this._filterData.filters.length < 2 && compare) {\n this._filteredDataSource.push(data);\n } else {\n compareResultArr.push(compare);\n }\n }\n });\n\n if (compareResultArr.length && this._conditionMap.get(this._filterData.condition)?.(compareResultArr)) {\n this._filteredDataSource.push(data);\n }\n\n if (data.children && data.children.length > 0) {\n this._setFilteredDataSourceByFilters(data.children);\n }\n });\n }\n\n private _setFilteredDataSourceByKeyword(dataSource: Array<CmatTransferItemNode>): void {\n dataSource.map((data) => {\n if (data.label.includes(this._keyword)) {\n this._filteredDataSource.push(data);\n } else if (data.children && data.children.length > 0) {\n this._setFilteredDataSourceByKeyword(data.children);\n }\n });\n }\n\n}\n","import { CdkOverlayOrigin, Overlay, OverlayConfig, OverlayModule, OverlayRef } from '@angular/cdk/overlay';\nimport { CdkPortal , PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CmatTransferFilterData, CmatTransferFilterItem } from '../interface';\nimport { CmatTransferPickerService } from '../transfer-picker.service';\n\n@Component({\n selector: 'cmat-transfer-picker-filter',\n templateUrl: './filter.component.html',\n styleUrls: ['./filter.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'cmatTransferPickerFilter',\n standalone: true,\n imports: [MatButtonToggleModule, MatIconModule, CommonModule, PortalModule,MatButtonModule,OverlayModule]\n})\nexport class CmatTransferPickerFilterComponent implements OnInit {\n @Input()\n filters: Array<CmatTransferFilterItem>;\n\n @ViewChild(CdkOverlayOrigin, { static: true }) overlayOrigin: CdkOverlayOrigin;\n @ViewChild('filterTemplate', { static: true }) filterTemplate: CdkPortal;\n overlayRef: OverlayRef;\n\n filterData: CmatTransferFilterData;\n\n constructor(\n private _overlay: Overlay,\n private _service: CmatTransferPickerService\n ) {\n this.filterData = {\n condition: 'or',\n filters: []\n };\n }\n\n ngOnInit(): void {\n const config = new OverlayConfig({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n scrollStrategy: this._overlay.scrollStrategies.block()\n });\n\n config.positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(\n this.overlayOrigin.elementRef).withPositions([\n {\n originX: 'end', originY: 'bottom', overlayX: 'end',\n overlayY: 'top', offsetX: 5\n },{\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: -5\n }\n ]);\n\n this.overlayRef = this._overlay.create(config);\n\n this.overlayRef.backdropClick().subscribe(() => {\n this.overlayRef.detach();\n });\n }\n\n toggleFilter(): void {\n if (this.overlayRef && this.overlayRef.hasAttached()) {\n this.overlayRef.detach();\n } else {\n this.overlayRef.attach(this.filterTemplate);\n }\n }\n\n onFilterClick(filter: CmatTransferFilterItem): void {\n filter.selected = !filter.selected;\n\n const existFilter = this.filterData.filters.find(item => item.value === filter.value);\n\n if (!existFilter) {\n this.filterData.filters.push(filter);\n } else if (!filter.selected) {\n this.filterData.filters.splice(this.filterData.filters.indexOf(filter), 1);\n }\n\n this.changeFilterData();\n }\n\n onConditionChange(event: any): void {\n this.filterData.condition = event;\n\n this.changeFilterData();\n }\n\n changeFilterData(): void {\n this._service.filterDataSource({ filterData: this.filterData });\n }\n\n trackByFn(index: number, item: CmatTransferFilterItem): any {\n return index || item.label;\n }\n}\n","<button type=\"button\" class=\"mr-2 mt-1\" mat-icon-button (click)=\"toggleFilter()\" cdk-overlay-origin>\n <mat-icon svgIcon=\"mat_outline:filter_list\"></mat-icon>\n</button>\n<ng-template cdk-portal #filterTemplate=\"cdkPortal\">\n <div\n class=\"transfer-picker-filter-panel bg-card flex flex-col flex-nowrap place-content-start box-border items-start w-full shadow\">\n <mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" name=\"condition\" (change)=\"onConditionChange($event.value)\">\n <mat-button-toggle value=\"or\" [checked]=\"filterData.condition === 'or'\">或</mat-button-toggle>\n <mat-button-toggle value=\"and\" [checked]=\"filterData.condition === 'and'\">且</mat-button-toggle>\n </mat-button-toggle-group>\n\n <div class=\"chip-list\">\n @for (item of filters; track trackByFn($index, item)) {\n <div class=\"chip-wrapper\" role=\"presentation\"\n (click)=\"onFilterClick(item)\">\n <span class=\"chip\" [ngClass]=\"{selected: item?.selected}\">{{item.label}}</span>\n </div>\n }\n </div>\n </div>\n</ng-template>","import { ChangeDetectionStrategy, Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { CmatTransferPickerService } from '../transfer-picker.service';\n\n@Component({\n selector: 'cmat-transfer-picker-search',\n templateUrl: './search.component.html',\n styleUrls: ['./search.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'cmatTransferPickerSearch',\n standalone: true,\n imports: [MatFormFieldModule, MatIconModule, ReactiveFormsModule, MatButtonModule, MatInputModule]\n})\nexport class CmatTransferPickerSearchComponent implements OnInit {\n @Input()\n searchPlaceholder: string;\n\n keyword: FormControl;\n\n constructor(\n private _service: CmatTransferPickerService\n ) {\n this.keyword = new FormControl();\n }\n\n ngOnInit(): void {\n this.keyword\n .valueChanges\n .pipe(\n debounceTime(200),\n distinctUntilChanged()\n )\n .subscribe((keyword: any) => this._service.filterDataSource({ keyword }));\n }\n\n reset(): void {\n this.keyword.setValue('');\n }\n}\n","<mat-form-field>\n <input matInput type=\"text\" placeholder=\"{{searchPlaceholder}}\" [formControl]=\"keyword\">\n @if (keyword.value) {\n <button type=\"button\" matSuffix mat-icon-button (click)=\"reset()\">\n <mat-icon svgIcon=\"mat_outline:close\"></mat-icon>\n </button>\n }\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?: Array<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: Array<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: Array<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: Array<CmatTransferFilterItem>;\r\n}\r\n","import { SelectionModel } from '@angular/cdk/collections';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { FlatTreeControl } from '@angular/cdk/tree';\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTreeFlatDataSource, MatTreeFlattener, MatTreeModule } from '@angular/material/tree';\nimport { Observable, of as ofObservable, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { CmatTransferPickerFilterComponent } from '../filter/filter.component';\nimport { CmatSourceOptions, CmatTransferItemFlatNode, CmatTransferItemNode } from '../interface';\nimport { CmatTransferPickerSearchComponent } from '../search/search.component';\nimport { CmatTransferPickerService } from '../transfer-picker.service';\n\n@Component({\n selector: 'cmat-transfer-picker-source',\n templateUrl: './transfer-picker-source.component.html',\n styleUrls: ['./transfer-picker-source.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'cmatTransferPickerSource',\n standalone: true,\n imports: [MatCardModule, MatTreeModule, MatCheckboxModule, MatIconModule, MatButtonModule, \n CmatTransferPickerFilterComponent, CmatTransferPickerSearchComponent, ScrollingModule]\n})\nexport class CmatTransferPickerSourceComponent implements OnInit, AfterViewInit, OnDestroy {\n /** Map from nested node to flattened node. This helps us to keep the same object for selection */\n nestedNodeMap = new Map<CmatTransferItemNode, CmatTransferItemFlatNode>();\n\n treeControl: FlatTreeControl<CmatTransferItemFlatNode>;\n\n treeFlattener: MatTreeFlattener<CmatTransferItemNode, CmatTransferItemFlatNode>;\n\n dataSource: MatTreeFlatDataSource<CmatTransferItemNode, CmatTransferItemFlatNode>;\n\n /** The selection for checklist */\n checklistSelection = new SelectionModel<CmatTransferItemFlatNode>(true /* multiple */);\n\n options: CmatSourceOptions;\n\n selectedList: Array<CmatTransferItemFlatNode>;\n\n private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n constructor(\n private _service: CmatTransferPickerService, private _changeDetectorRef: ChangeDetectorRef\n ) {\n\n }\n\n ngOnInit(): void {\n this.treeFlattener = new MatTreeFlattener(\n this._transformer,\n this._getLevel,\n this._isExpandable,\n this._getChildren\n );\n this.treeControl = new FlatTreeControl<CmatTransferItemFlatNode>(this._getLevel, this._isExpandable);\n this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\n\n this._service\n .dataSourceChange\n .pipe(takeUntil(this._unsubscribeAll))\n .subscribe((data: any) => {\n this.dataSource.data = data;\n this._changeDetectorRef.markForCheck();\n });\n\n this._service.refreshDataSourceChange.pipe(takeUntil(this._unsubscribeAll))\n .subscribe((state: boolean) => {\n if (state) {\n this.checklistSelection.clear();\n this._changeDetectorRef.markForCheck();\n }else{\n this.checklistSelection.selected.map((selectedNode: CmatTransferItemFlatNode) => {\n this.treeControl.dataNodes.map((node) => {\n if (node.value === selectedNode.value) { \n this.checklistSelection.deselect(selectedNode);\n this.checklistSelection.select(node);\n }\n });\n });\n\n this.getSelectedList();\n }\n });\n\n this._service\n .selectedValuesChange\n .pipe(\n filter((values: string | any[]) => !!values.length),\n takeUntil(this._unsubscribeAll)\n )\n .subscribe((values: any) => {\n values.map((value: string | number) => {\n this.treeControl.dataNodes.map((node) => {\n if (node.value === value) {\n this.checklistSelection.select(node);\n }\n });\n });\n\n this._changeDetectorRef.markForCheck();\n });\n\n this._service\n .sourceOptionsChange\n .pipe(takeUntil(this._unsubscribeAll))\n .subscribe((options: CmatSourceOptions | void) => { if (options) this.options = options; this._changeDetectorRef.markForCheck(); });\n }\n\n ngAfterViewInit(): void {\n this.treeControl.expandAll();\n }\n\n ngOnDestroy(): void {\n this._unsubscribeAll.next(void (0));\n this._unsubscribeAll.complete();\n }\n\n getSelectedList(): Array<CmatTransferItemFlatNode> {\n this.selectedList = this.checklistSelection.selected;\n if (this.selectedList.length) {\n this.selectedList.map((item) => {\n /* 禁用 */\n item.disabled = true;\n\n /* 选中 */\n this.checklistSelection.select(item);\n });\n }\n\n this._changeDetectorRef.markForCheck();\n\n return this.selectedList;\n }\n\n resetSelectedItem(item: CmatTransferItemFlatNode): void {\n const s = this.checklistSelection.selected.find(i => i.value === item.value);\n if (s) {\n /* 取消禁用 */\n s.disabled = false;\n\n /* 取消选中 */\n this.checklistSelection.deselect(s);\n\n this._changeDetectorRef.markForCheck();\n }\n }\n hasChild = (_: number, _nodeData: CmatTransferItemFlatNode): boolean => _nodeData.expandable;\n\n /** Whether all the descendants of the node are selected */\n descendantsAllSelected(node: CmatTransferItemFlatNode): boolean {\n const descendants = this.treeControl.getDescendants(node);\n return descendants.every(child => this.checklistSelection.isSelected(child));\n }\n\n /** Whether part of the descendants are selected */\n descendantsPartiallySelected(node: CmatTransferItemFlatNode): boolean {\n const descendants = this.treeControl.getDescendants(node);\n const result = descendants.some(child => this.checklistSelection.isSelected(child));\n return result && !this.descendantsAllSelected(node);\n }\n\n /** Toggle the transfer item selection. Select/deselect all the descendants node */\n transferItemSelectionToggle(node: CmatTransferItemFlatNode): void {\n this.checklistSelection.toggle(node);\n let descendants = this.treeControl.getDescendants(node);\n descendants = descendants.filter(n => !n.disabled);\n this.checklistSelection.isSelected(node)\n ? this.checklistSelection.select(...descendants)\n : this.checklistSelection.deselect(...descendants);\n\n // Force update for the parent\n descendants.every(child =>\n this.checklistSelection.isSelected(child)\n );\n this._checkAllParentsSelection(node);\n }\n\n /** Toggle a leaf transfer item selection. Check all the parents to see if they changed */\n transferLeafItemSelectionToggle(node: CmatTransferItemFlatNode): void {\n this.checklistSelection.toggle(node);\n this._checkAllParentsSelection(node);\n }\n\n private _getLevel = (node: CmatTransferItemFlatNode): number => node.level;\n\n private _isExpandable = (node: CmatTransferItemFlatNode): boolean => node.expandable;\n\n private _getChildren = (node: CmatTransferItemNode): Observable<Array<CmatTransferItemNode>> => ofObservable(node.children ?? []);\n\n /**\n * Transformer to convert nested node to flat node. Record the nodes in maps for later use.\n */\n private _transformer = (node: CmatTransferItemNode, level: number): CmatTransferItemFlatNode => {\n const flatNode = this.nestedNodeMap.has(node) && this.nestedNodeMap.get(node)?.value === node.value\n ? this.nestedNodeMap.get(node) as CmatTransferItemFlatNode\n : new CmatTransferItemFlatNode();\n flatNode.label = node.label;\n flatNode.value = node.value;\n flatNode.disabled = node.disabled;\n flatNode.level = level;\n flatNode.expandable = !!node.children;\n this.nestedNodeMap.set(node, flatNode);\n return flatNode;\n };\n\n /* Checks all the parents when a leaf node is selected/unselected */\n private _checkAllParentsSelection(node: CmatTransferItemFlatNode): void {\n let parent: CmatTransferItemFlatNode | null = this._getParentNode(node);\n while (parent) {\n this._checkRootNodeSelection(parent);\n parent = this._getParentNode(parent);\n }\n }\n\n /** Check root node checked state and change it accordingly */\n private _checkRootNodeSelection(node: CmatTransferItemFlatNode): void {\n const nodeSelected = this.checklistSelection.isSelected(node);\n const descendants = this.treeControl.getDescendants(node);\n const descAllSelected = descendants.every(child =>\n this.checklistSelection.isSelected(child)\n );\n if (nodeSelected && !descAllSelected) {\n this.checklistSelection.deselect(node);\n } else if (!nodeSelected && descAllSelected) {\n this.checklistSelection.select(node);\n }\n }\n\n /* Get the parent node of a node */\n private _getParentNode(node: CmatTransferItemFlatNode): CmatTransferItemFlatNode | null {\n const currentLevel = this._getLevel(node);\n\n if (currentLevel < 1) {\n return null;\n }\n\n const startIndex = this.treeControl.dataNodes.indexOf(node) - 1;\n\n for (let i = startIndex; i >= 0; i--) {\n const currentNode = this.treeControl.dataNodes[i];\n\n if (this._getLevel(currentNode) < currentLevel) {\n return currentNode;\n }\n }\n return null;\n }\n\n}\n","<mat-card class=\"transfer-picker-source shadow\">\n <mat-card-header class=\"pb-3 items-center\">\n <mat-card-title class=\"transfer-picker-source-title\">{{options.title}}</mat-card-title>\n @if (options.filterable) {\n <cmat-transfer-picker-filter\n [filters]=\"options.filters\"></cmat-transfer-picker-filter>\n }\n </mat-card-header>\n <mat-card-content class=\"transfer-picker-source-content\">\n @if (options.searchable) {\n <cmat-transfer-picker-search\n [searchPlaceholder]=\"options.searchPlaceholder\"></cmat-transfer-picker-search>\n }\n\n <cdk-virtual-scroll-viewport itemSize=\"48\"\n class=\"transfer-picker-source-scroll-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <mat-tree-node *matTreeNodeDef=\"let node\" [matTreeNodePadding]=\"node.level\">\n <button type=\"button\" mat-icon-button disabled> </button>\n <mat-checkbox class=\"checklist-leaf-node\" [checked]=\"checklistSelection.isSelected(node)\"\n [disabled]=\"node?.disabled\" (change)=\"transferLeafItemSelectionToggle(node);\">\n {{node.label}}\n </mat-checkbox>\n </mat-tree-node>\n\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" [matTreeNodePadding]=\"node.level\">\n <button type=\"button\" mat-icon-button matTreeNodeToggle>\n <mat-icon class=\"mat-icon-rtl-mirror\"\n svgIcon=\"{{treeControl.isExpanded(node) ? 'mat_outline:expand_more' : 'mat_outline:chevron_right'}}\">\n </mat-icon>\n </button>\n <mat-checkbox [checked]=\"descendantsAllSelected(node)||node?.disabled\"\n [indeterminate]=\"descendantsPartiallySelected(node)\" [disabled]=\"node?.disabled\"\n (change)=\"transferItemSelectionToggle(node)\">\n {{node.label}}\n </mat-checkbox>\n </mat-tree-node>\n </mat-tree>\n @if (!dataSource?.data?.length) {\n <div class=\"transfer-picker-source-empty\">暂无数据</div>\n }\n </cdk-virtual-scroll-viewport>\n </mat-card-content>\n</mat-card>","import { ScrollingModule } from '@angular/cdk/scrolling';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { CmatTransferItemFlatNode } from '../interface';\n\n@Component({\n selector: 'cmat-transfer-picker-target',\n templateUrl: './transfer-picker-target.component.html',\n styleUrls: ['./transfer-picker-target.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'cmatTransferPickerTarget',\n standalone: true,\n imports: [MatCardModule, MatListModule, MatIconModule, ScrollingModule, MatButtonModule]\n})\nexport class CmatTransferPickerTargetComponent {\n\n @Input()\n selectedList: Array<CmatTransferItemFlatNode>;\n\n @Output()\n clearItemChange: EventEmitter<CmatTransferItemFlatNode>;\n\n constructor() {\n this.clearItemChange = new EventEmitter<CmatTransferItemFlatNode>();\n }\n\n clearItem(item: CmatTransferItemFlatNode): void {\n this.selectedList.splice(this.selectedList.indexOf(item), 1);\n this.clearItemChange.next(item);\n }\n trackByFn(index: number, item: CmatTransferItemFlatNode): any {\n return index || item.label;\n }\n}\n","<mat-card class=\"transfer-picker-target shadow\">\n <mat-card-header class=\"pb-3 items-center\">\n <mat-card-title class=\"transfer-picker-target-title\">已选择 {{selectedList.length}} 项</mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <cdk-virtual-scroll-viewport itemSize=\"40\"\n class=\"transfer-picker-target-scroll-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\n <mat-list dense>\n @for (item of selectedList; track trackByFn($index, item)) {\n <mat-list-item class=\"transfer-picker-target-item\">\n <div mat-line class=\"flex flex-row items-center\">\n <div class=\"flex-1\">{{item.label}}</div>\n <button type=\"button\" mat-icon-button (click)=\"clearItem(item)\">\n <mat-icon svgIcon=\"heroicons_solid:x-circle\"></mat-icon>\n </button>\n </div>\n </mat-list-item>\n }\n </mat-list>\n @if (!selectedList.length) {\n <div class=\"transfer-picker-target-empty\">暂无数据</div>\n }\n </cdk-virtual-scroll-viewport>\n </mat-card-content>\n</mat-card>","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CmatTransferFilterItem, CmatTransferItemFlatNode, CmatTransferItemNode } from './interface';\nimport { CmatTransferPickerSourceComponent } from './transfer-picker-source/transfer-picker-source.component';\nimport { CmatTransferPickerTargetComponent } from './transfer-picker-target/transfer-picker-target.component';\nimport { CmatTransferPickerService } from './transfer-picker.service';\n\n@Component({\n selector: 'cmat-transfer-picker',\n templateUrl: './transfer-picker.component.html',\n styleUrls: ['./transfer-picker.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'cmatTransferPicker',\n standalone: true,\n imports: [MatIconModule,MatButtonModule, CmatTransferPickerSourceComponent, CmatTransferPickerTargetComponent]\n})\nexport class CmatTransferPickerComponent implements OnInit, AfterViewInit {\n @Input()\n title: string;\n\n @Input()\n filterable: boolean;\n\n @Input()\n searchable: boolean;\n\n @Input()\n searchPlaceholder: string;\n\n @Input()\n dataSource: Array<CmatTransferItemNode>;\n\n @Input()\n filters: Array<CmatTransferFilterItem>;\n\n @Input()\n selectedValues: Array<string>;\n\n @Output()\n selectChange: EventEmitter<Array<CmatTransferItemFlatNode>>;\n\n @ViewChild(CmatTransferPickerSourceComponent, { static: true })\n source: CmatTransferPickerSourceComponent;\n\n selectedList: Array<CmatTransferItemFlatNode>;\n\n constructor(\n private _service: CmatTransferPickerService,\n private _changeDetectorRef: ChangeDetectorRef\n ) {\n this.filterable = true;\n this.dataSource = [];\n this.filters = [];\n this.selectedList = [];\n this.selectedValues = [];\n }\n\n ngOnInit(): void {\n this._service.dataSource = this.dataSource;\n this._service.selectedValues = this.selectedValues;\n\n this._service.sourceOptions = {\n title: this.title || '数据源',\n filterable: this.filterable || true,\n searchable: this.searchable || true,\n searchPlaceholder: this.searchPlaceholder || '搜索关键字',\n filters: this.filters || []\n };\n\n this.selectChange = new EventEmitter<Array<CmatTransferItemFlatNode>>();\n }\n\n ngAfterViewInit(): void {\n if (this.selectedValues.length) {\n this.pick(); \n }\n }\n\n pick(): void {\n this.selectedList = this.source.getSelectedList() || [];\n this._emitterChange();\n }\n\n reset(): void {\n if (this.selectedList.length) {\n this.selectedList = [];\n this._service.resetDataSource(true);\n this._emitterChange();\n }\n }\n\n onClearItemChange(item: CmatTransferItemFlatNode): void {\n if (item) {\n this.source.resetSelectedItem(item);\n this._emitterChange();\n }\n }\n\n private _emitterChange(): void {\n this.selectChange.next(this.selectedList);\n\n this._changeDetectorRef.detectChanges();\n }\n}\n","<cmat-transfer-picker-source></cmat-transfer-picker-source>\n<div class=\"cmat-transfer-picker-operation flex flex-col flex-nowrap gap-2 mx-2\">\n <button type=\"button\" class=\"pl-2\" mat-raised-button color=\"primary\" (click)=\"pick()\">\n 选择<mat-icon svgIcon=\"mat_outline:chevron_right\"></mat-icon>\n </button>\n <button type=\"button\" class=\"pl-2\" mat-raised-button color=\"primary\" (click)=\"reset()\">\n <mat-icon svgIcon=\"mat_outline:chevron_left\"></mat-icon>重置\n </button>\n</div>\n<cmat-transfer-picker-target [selectedList]=\"selectedList\" (clearItemChange)=\"onClearItemChange($event)\">\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';\nimport { BehaviorSubject } from 'rxjs';\nimport {\n CmatSourceOptions,\n CmatTransferFilterData,\n CmatTransferFilterItem,\n CmatTransferItemNode\n} from './interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CmatTransferPickerService {\n dataSourceChange: BehaviorSubject<CmatTransferItemNode[]>;\n refreshDataSourceChange: BehaviorSubject<boolean>;\n filtersChange: BehaviorSubject<CmatTransferFilterItem[]>;\n sourceOptionsChange: BehaviorSubject<CmatSourceOptions | void>;\n selectedValuesChange: BehaviorSubject<string[]>;\n\n private _dataSource: CmatTransferItemNode[];\n\n private _filterData: CmatTransferFilterData;\n private _keyword: string;\n private _originalDataSource: CmatTransferItemNode[];\n private _filteredDataSource: CmatTransferItemNode[];\n private _compareMap: Map<string, (a: any, b: any) => boolean>;\n private _conditionMap: Map<string, (arr: boolean[]) => boolean>;\n\n constructor() {\n this.dataSourceChange = new BehaviorSubject<CmatTransferItemNode[]>([]);\n this.refreshDataSourceChange= new BehaviorSubject<boolean>(true);\n this.filtersChange = new BehaviorSubject<CmatTransferFilterItem[]>([]);\n this.sourceOptionsChange = new BehaviorSubject<CmatSourceOptions | void>(void 0);\n this.selectedValuesChange = new BehaviorSubject<string[]>([]);\n\n this._compareMap = new Map<string, (a: any, b: any) => boolean>([\n ['0', (a, b): boolean => a === b],\n ['1', (a, b): boolean => a !== b],\n ['2', (a, b): boolean => a > b],\n ['3', (a, b): boolean => a < b],\n ['0,2', (a, b): boolean => a >= b],\n ['0,2', (a, b): boolean => a <= b]\n ]);\n\n this._conditionMap = new Map<string, (arr: boolean[]) => boolean>([\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n ['or', arr => arr.reduce((o, item) => (o.result = o.result || item || o.prev, o.prev = item, o), {\n result: false,\n prev: arr[0]\n }).result],\n // eslint-disable-next-line @typescript-eslint/explicit-function-return-type\n ['and', arr => arr.reduce((o, item) => (o.result = o.result && item && o.prev, o.prev = item, o), {\n result: true,\n prev: arr[0]\n }).result],\n ]);\n }\n\n get dataSource(): CmatTransferItemNode[] {\n return this._dataSource;\n }\n\n set dataSource(data: CmatTransferItemNode[]) {\n this._dataSource = data;\n\n if (!this._originalDataSource) {\n this._originalDataSource = JSON.parse(JSON.stringify(data));\n }\n\n this.dataSourceChange.next(data);\n }\n\n set sourceOptions(value: CmatSourceOptions) {\n this.sourceOptionsChange.next(value);\n }\n\n set selectedValues(value: string[]) {\n this.selectedValuesChange.next(value);\n }\n\n\n filterDataSource({ filterData, keyword }: { filterData?: CmatTransferFilterData; keyword?: string }): void {\n this._filterData = filterData ?? this._filterData;\n this._keyword = keyword === void (0) ? this._keyword : keyword;\n\n if (filterData?.filters.length) {\n this._filterDataSourceByType(this._keyword ? this._filteredDataSource : this._originalDataSource, 'Filters');\n return;\n } else if (filterData && !filterData.filters.length) {\n if (this._keyword) {\n this._filterDataSourceByType(this._originalDataSource, 'Keyword');\n } else {\n this.resetDataSource(false);\n }\n return;\n }\n\n if (keyword) {\n this._filterDataSourceByType(this._filterData?.filters.length ? this._filteredDataSource : this._originalDataSource, 'Keyword');\n return;\n } else if (!keyword) {\n if (this._filterData?.filters.length) {\n this._filterDataSourceByType(this._originalDataSource, 'Filters');\n } else {\n this.resetDataSource(false);\n }\n return;\n }\n }\n\n resetDataSource(clear:boolean): void {\n this.dataSource = this._originalDataSource;\n this._filteredDataSource = [];\n this.refreshDataSourceChange.next(clear);\n }\n\n private _filterDataSourceByType(dataSource: CmatTransferItemNode[], type: 'Filters' | 'Keyword'): void {\n this._filteredDataSource = [];\n switch (type) {\n case 'Filters':\n this._setFilteredDataSourceByFilters(dataSource);\n break;\n case 'Keyword':\n this._setFilteredDataSourceByKeyword(dataSource);\n break;\n }\n this.dataSource = this._filteredDataSource;\n this.refreshDataSourceChange.next(false);\n }\n\n private _setFilteredDataSourceByFilters(dataSource: CmatTransferItemNode[]): void {\n dataSource.map((data) => {\n const compareResultArr: any = [];\n this._filterData.filters.map((filter) => {\n if (Object.prototype.hasOwnProperty.call(data, filter.field)) {\n const compare = this._compareMap.get(filter.condition.sort().toString())?.(filter.value, data[filter.field]);\n\n if (this._filterData.filters.length < 2 && compare) {\n this._filteredDataSource.push(data);\n } else {\n compareResultArr.push(compare);\n }\n }\n });\n\n if (compareResultArr.length && this._conditionMap.get(this._filterData.condition)?.(compareResultArr)) {\n this._filteredDataSource.push(data);\n }\n\n if (data.children && data.children.length > 0) {\n this._setFilteredDataSourceByFilters(data.children);\n }\n });\n }\n\n private _setFilteredDataSourceByKeyword(dataSource: CmatTransferItemNode[]): void {\n dataSource.map((data) => {\n if (data.label.includes(this._keyword)) {\n this._filteredDataSource.push(data);\n } else if (data.children && data.children.length > 0) {\n this._setFilteredDataSourceByKeyword(data.children);\n }\n });\n }\n\n}\n","import { CdkOverlayOrigin, Overlay, OverlayConfig, OverlayModule, OverlayRef } from '@angular/cdk/overlay';\nimport { CdkPortal , PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CmatTransferFilterData, CmatTransferFilterItem } from '../interface';\nimport { CmatTransferPickerService } from '../transfer-picker.service';\n\n@Component({\n selector: 'cmat-transfer-picker-filter',\n templateUrl: './filter.component.html',\n styleUrls: ['./filter.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'cmatTransferPickerFilter',\n standalone: true,\n imports: [MatButtonToggleModule, MatIconModule, CommonModule, PortalModule,MatButtonModule,OverlayModule]\n})\nexport class CmatTransferPickerFilterComponent implements OnInit {\n @Input()\n filters: CmatTransferFilterItem[];\n\n @ViewChild(CdkOverlayOrigin, { static: true }) overlayOrigin: CdkOverlayOrigin;\n @ViewChild('filterTemplate', { static: true }) filterTemplate: CdkPortal;\n overlayRef: OverlayRef;\n\n filterData: CmatTransferFilterData;\n\n constructor(\n private _overlay: Overlay,\n private _service: CmatTransferPickerService\n ) {\n this.filterData = {\n condition: 'or',\n filters: []\n };\n }\n\n ngOnInit(): void {\n const config = new OverlayConfig({\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n scrollStrategy: this._overlay.scrollStrategies.block()\n });\n\n config.positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(\n this.overlayOrigin.elementRef).withPositions([\n {\n originX: 'end', originY: 'bottom', overlayX: 'end',\n overlayY: 'top', offsetX: 5\n },{\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: -5\n }\n ]);\n\n this.overlayRef = this._overlay.create(config);\n\n this.overlayRef.backdropClick().subscribe(() => {\n this.overlayRef.detach();\n });\n }\n\n toggleFilter(): void {\n if (this.overlayRef?.hasAttached()) {\n this.overlayRef.detach();\n } else {\n this.overlayRef.attach(this.filterTemplate);\n }\n }\n\n onFilterClick(filter: CmatTransferFilterItem): void {\n filter.selected = !filter.selected;\n\n const existFilter = this.filterData.filters.find(item => item.value === filter.value);\n\n if (!existFilter) {\n this.filterData.filters.push(filter);\n } else if (!filter.selected) {\n this.filterData.filters.splice(this.filterData.filters.indexOf(filter), 1);\n }\n\n this.changeFilterData();\n }\n\n onConditionChange(event: any): void {\n this.filterData.condition = event;\n\n this.changeFilterData();\n }\n\n changeFilterData(): void {\n this._service.filterDataSource({ filterData: this.filterData });\n }\n}\n","<button type=\"button\" class=\"mr-2 mt-1\" mat-icon-button cdk-overlay-origin (click)=\"toggleFilter()\">\n <mat-icon svgIcon=\"mat_outline:filter_list\"></mat-icon>\n</button>\n<ng-template #filterTemplate=\"cdkPortal\" cdk-portal>\n <div\n class=\"transfer-picker-filter-panel bg-card flex flex-col flex-nowrap place-content-start box-border items-start w-full shadow\">\n <mat-button-toggle-group name=\"condition\" [hideSingleSelectionIndicator]=\"true\" (change)=\"onConditionChange($event.value)\">\n <mat-button-toggle value=\"or\" [checked]=\"filterData.condition === 'or'\">或</mat-button-toggle>\n <mat-button-toggle value=\"and\" [checked]=\"filterData.condition === 'and'\">且</mat-button-toggle>\n </mat-button-toggle-group>\n\n <div class=\"chip-list\">\n @for (item of filters; track $index) {\n <div class=\"chip-wrapper\" role=\"presentation\"\n (click)=\"onFilterClick(item)\">\n <span class=\"chip\" [ngClass]=\"{selected: item?.selected}\">{{item.label}}</span>\n </div>\n }\n </div>\n </div>\n</ng-template>","import { ChangeDetectionStrategy, Component, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { debounceTime, distinctUntilChanged } from 'rxjs/operators';\nimport { CmatTransferPickerService } from '../transfer-picker.service';\n\n@Component({\n selector: 'cmat-transfer-picker-search',\n templateUrl: './search.component.html',\n styleUrls: ['./search.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'cmatTransferPickerSearch',\n standalone: true,\n imports: [MatFormFieldModule, MatIconModule, ReactiveFormsModule, MatButtonModule, MatInputModule]\n})\nexport class CmatTransferPickerSearchComponent implements OnInit {\n @Input()\n searchPlaceholder: string;\n\n keyword: FormControl;\n\n constructor(\n private _service: CmatTransferPickerService\n ) {\n this.keyword = new FormControl();\n }\n\n ngOnInit(): void {\n this.keyword\n .valueChanges\n .pipe(\n debounceTime(200),\n distinctUntilChanged()\n )\n .subscribe((keyword: any) => this._service.filterDataSource({ keyword }));\n }\n\n reset(): void {\n this.keyword.setValue('');\n }\n}\n","<mat-form-field>\n <input matInput type=\"text\" placeholder=\"{{searchPlaceholder}}\" [formControl]=\"keyword\">\n @if (keyword.value) {\n <button type=\"button\" matSuffix mat-icon-button (click)=\"reset()\">\n <mat-icon svgIcon=\"mat_outline:close\"></mat-icon>\n </button>\n }\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';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { FlatTreeControl } from '@angular/cdk/tree';\nimport { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTreeFlatDataSource, MatTreeFlattener, MatTreeModule } from '@angular/material/tree';\nimport { Observable, of as ofObservable, Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { CmatTransferPickerFilterComponent } from '../filter/filter.component';\nimport { CmatSourceOptions, CmatTransferItemFlatNode, CmatTransferItemNode } from '../interface';\nimport { CmatTransferPickerSearchComponent } from '../search/search.component';\nimport { CmatTransferPickerService } from '../transfer-picker.service';\n\n@Component({\n selector: 'cmat-transfer-picker-source',\n templateUrl: './transfer-picker-source.component.html',\n styleUrls: ['./transfer-picker-source.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'cmatTransferPickerSource',\n standalone: true,\n imports: [MatCardModule, MatTreeModule, MatCheckboxModule, MatIconModule, MatButtonModule, \n CmatTransferPickerFilterComponent, CmatTransferPickerSearchComponent, ScrollingModule]\n})\nexport class CmatTransferPickerSourceComponent implements OnInit, AfterViewInit, OnDestroy {\n /** Map from nested node to flattened node. This helps us to keep the same object for selection */\n nestedNodeMap = new Map<CmatTransferItemNode, CmatTransferItemFlatNode>();\n\n treeControl: FlatTreeControl<CmatTransferItemFlatNode>;\n\n treeFlattener: MatTreeFlattener<CmatTransferItemNode, CmatTransferItemFlatNode>;\n\n dataSource: MatTreeFlatDataSource<CmatTransferItemNode, CmatTransferItemFlatNode>;\n\n /** The selection for checklist */\n checklistSelection = new SelectionModel<CmatTransferItemFlatNode>(true /* multiple */);\n\n options: CmatSourceOptions;\n\n selectedList: CmatTransferItemFlatNode[];\n\n private _unsubscribeAll: Subject<any> = new Subject<any>();\n\n constructor(\n private _service: CmatTransferPickerService, private _changeDetectorRef: ChangeDetectorRef\n ) {\n\n }\n\n ngOnInit(): void {\n this.treeFlattener = new MatTreeFlattener(\n this._transformer,\n this._getLevel,\n this._isExpandable,\n this._getChildren\n );\n this.treeControl = new FlatTreeControl<CmatTransferItemFlatNode>(this._getLevel, this._isExpandable);\n this.dataSource = new MatTreeFlatDataSource(this.treeControl, this.treeFlattener);\n\n this._service\n .dataSourceChange\n .pipe(takeUntil(this._unsubscribeAll))\n .subscribe((data: any) => {\n this.dataSource.data = data;\n this._changeDetectorRef.markForCheck();\n });\n\n this._service.refreshDataSourceChange.pipe(takeUntil(this._unsubscribeAll))\n .subscribe((state: boolean) => {\n if (state) {\n this.checklistSelection.clear();\n this._changeDetectorRef.markForCheck();\n }else{\n this.checklistSelection.selected.map((selectedNode: CmatTransferItemFlatNode) => {\n this.treeControl.dataNodes.map((node) => {\n if (node.value === selectedNode.value) { \n this.checklistSelection.deselect(selectedNode);\n this.checklistSelection.select(node);\n }\n });\n });\n\n this.getSelectedList();\n }\n });\n\n this._service\n .selectedValuesChange\n .pipe(\n filter((values: string | any[]) => !!values.length),\n takeUntil(this._unsubscribeAll)\n )\n .subscribe((values: any) => {\n values.map((value: string | number) => {\n this.treeControl.dataNodes.map((node) => {\n if (node.value === value) {\n this.checklistSelection.select(node);\n }\n });\n });\n\n this._changeDetectorRef.markForCheck();\n });\n\n this._service\n .sourceOptionsChange\n .pipe(takeUntil(this._unsubscribeAll))\n .subscribe((options: CmatSourceOptions | void) => { if (options) this.options = options; this._changeDetectorRef.markForCheck(); });\n }\n\n ngAfterViewInit(): void {\n this.treeControl.expandAll();\n }\n\n ngOnDestroy(): void {\n this._unsubscribeAll.next(void (0));\n this._unsubscribeAll.complete();\n }\n\n getSelectedList(): CmatTransferItemFlatNode[] {\n this.selectedList = this.checklistSelection.selected;\n if (this.selectedList.length) {\n this.selectedList.map((item) => {\n /* 禁用 */\n item.disabled = true;\n\n /* 选中 */\n this.checklistSelection.select(item);\n });\n }\n\n this._changeDetectorRef.markForCheck();\n\n return this.selectedList;\n }\n\n resetSelectedItem(item: CmatTransferItemFlatNode): void {\n const s = this.checklistSelection.selected.find(i => i.value === item.value);\n if (s) {\n /* 取消禁用 */\n s.disabled = false;\n\n /* 取消选中 */\n this.checklistSelection.deselect(s);\n\n this._changeDetectorRef.markForCheck();\n }\n }\n hasChild = (_: number, _nodeData: CmatTransferItemFlatNode): boolean => _nodeData.expandable;\n\n /** Whether all the descendants of the node are selected */\n descendantsAllSelected(node: CmatTransferItemFlatNode): boolean {\n const descendants = this.treeControl.getDescendants(node);\n return descendants.every(child => this.checklistSelection.isSelected(child));\n }\n\n /** Whether part of the descendants are selected */\n descendantsPartiallySelected(node: CmatTransferItemFlatNode): boolean {\n const descendants = this.treeControl.getDescendants(node);\n const result = descendants.some(child => this.checklistSelection.isSelected(child));\n return result && !this.descendantsAllSelected(node);\n }\n\n /** Toggle the transfer item selection. Select/deselect all the descendants node */\n transferItemSelectionToggle(node: CmatTransferItemFlatNode): void {\n this.checklistSelection.toggle(node);\n let descendants = this.treeControl.getDescendants(node);\n descendants = descendants.filter(n => !n.disabled);\n this.checklistSelection.isSelected(node)\n ? this.checklistSelection.select(...descendants)\n : this.checklistSelection.deselect(...descendants);\n\n // Force update for the parent\n descendants.every(child =>\n this.checklistSelection.isSelected(child)\n );\n this._checkAllParentsSelection(node);\n }\n\n /** Toggle a leaf transfer item selection. Check all the parents to see if they changed */\n transferLeafItemSelectionToggle(node: CmatTransferItemFlatNode): void {\n this.checklistSelection.toggle(node);\n this._checkAllParentsSelection(node);\n }\n\n private _getLevel = (node: CmatTransferItemFlatNode): number => node.level;\n\n private _isExpandable = (node: CmatTransferItemFlatNode): boolean => node.expandable;\n\n private _getChildren = (node: CmatTransferItemNode): Observable<CmatTransferItemNode[]> => ofObservable(node.children ?? []);\n\n /**\n * Transformer to convert nested node to flat node. Record the nodes in maps for later use.\n */\n private _transformer = (node: CmatTransferItemNode, level: number): CmatTransferItemFlatNode => {\n const flatNode = this.nestedNodeMap.has(node) && this.nestedNodeMap.get(node)?.value === node.value\n ? this.nestedNodeMap.get(node)!\n : new CmatTransferItemFlatNode();\n flatNode.label = node.label;\n flatNode.value = node.value;\n flatNode.disabled = node.disabled;\n flatNode.level = level;\n flatNode.expandable = !!node.children;\n this.nestedNodeMap.set(node, flatNode);\n return flatNode;\n };\n\n /* Checks all the parents when a leaf node is selected/unselected */\n private _checkAllParentsSelection(node: CmatTransferItemFlatNode): void {\n let parent: CmatTransferItemFlatNode | null = this._getParentNode(node);\n while (parent) {\n this._checkRootNodeSelection(parent);\n parent = this._getParentNode(parent);\n }\n }\n\n /** Check root node checked state and change it accordingly */\n private _checkRootNodeSelection(node: CmatTransferItemFlatNode): void {\n const nodeSelected = this.checklistSelection.isSelected(node);\n const descendants = this.treeControl.getDescendants(node);\n const descAllSelected = descendants.every(child =>\n this.checklistSelection.isSelected(child)\n );\n if (nodeSelected && !descAllSelected) {\n this.checklistSelection.deselect(node);\n } else if (!nodeSelected && descAllSelected) {\n this.checklistSelection.select(node);\n }\n }\n\n /* Get the parent node of a node */\n private _getParentNode(node: CmatTransferItemFlatNode): CmatTransferItemFlatNode | null {\n const currentLevel = this._getLevel(node);\n\n if (currentLevel < 1) {\n return null;\n }\n\n const startIndex = this.treeControl.dataNodes.indexOf(node) - 1;\n\n for (let i = startIndex; i >= 0; i--) {\n const currentNode = this.treeControl.dataNodes[i];\n\n if (this._getLevel(currentNode) < currentLevel) {\n return currentNode;\n }\n }\n return null;\n }\n\n}\n","<mat-card class=\"transfer-picker-source shadow\">\n <mat-card-header class=\"pb-3 items-center\">\n <mat-card-title class=\"transfer-picker-source-title\">{{options.title}}</mat-card-title>\n @if (options.filterable) {\n <cmat-transfer-picker-filter\n [filters]=\"options.filters\"></cmat-transfer-picker-filter>\n }\n </mat-card-header>\n <mat-card-content class=\"transfer-picker-source-content\">\n @if (options.searchable) {\n <cmat-transfer-picker-search\n [searchPlaceholder]=\"options.searchPlaceholder\"></cmat-transfer-picker-search>\n }\n\n <cdk-virtual-scroll-viewport itemSize=\"48\"\n class=\"transfer-picker-source-scroll-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <mat-tree-node *matTreeNodeDef=\"let node\" [matTreeNodePadding]=\"node.level\">\n <button type=\"button\" mat-icon-button disabled> </button>\n <mat-checkbox class=\"checklist-leaf-node\" [checked]=\"checklistSelection.isSelected(node)\"\n [disabled]=\"node?.disabled\" (change)=\"transferLeafItemSelectionToggle(node);\">\n {{node.label}}\n </mat-checkbox>\n </mat-tree-node>\n\n <mat-tree-node *matTreeNodeDef=\"let node; when: hasChild\" [matTreeNodePadding]=\"node.level\">\n <button type=\"button\" mat-icon-button matTreeNodeToggle>\n <mat-icon class=\"mat-icon-rtl-mirror\"\n svgIcon=\"{{treeControl.isExpanded(node) ? 'mat_outline:expand_more' : 'mat_outline:chevron_right'}}\">\n </mat-icon>\n </button>\n <mat-checkbox [checked]=\"descendantsAllSelected(node)||node?.disabled\"\n [indeterminate]=\"descendantsPartiallySelected(node)\" [disabled]=\"node?.disabled\"\n (change)=\"transferItemSelectionToggle(node)\">\n {{node.label}}\n </mat-checkbox>\n </mat-tree-node>\n </mat-tree>\n @if (!dataSource?.data?.length) {\n <div class=\"transfer-picker-source-empty\">暂无数据</div>\n }\n </cdk-virtual-scroll-viewport>\n </mat-card-content>\n</mat-card>","import { ScrollingModule } from '@angular/cdk/scrolling';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { CmatTransferItemFlatNode } from '../interface';\n\n@Component({\n selector: 'cmat-transfer-picker-target',\n templateUrl: './transfer-picker-target.component.html',\n styleUrls: ['./transfer-picker-target.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'cmatTransferPickerTarget',\n standalone: true,\n imports: [MatCardModule, MatListModule, MatIconModule, ScrollingModule, MatButtonModule]\n})\nexport class CmatTransferPickerTargetComponent {\n\n @Input()\n selectedList: CmatTransferItemFlatNode[];\n\n @Output()\n clearItemChange: EventEmitter<CmatTransferItemFlatNode>;\n\n constructor() {\n this.clearItemChange = new EventEmitter<CmatTransferItemFlatNode>();\n }\n\n clearItem(item: CmatTransferItemFlatNode): void {\n this.selectedList.splice(this.selectedList.indexOf(item), 1);\n this.clearItemChange.next(item);\n }\n}\n","<mat-card class=\"transfer-picker-target shadow\">\n <mat-card-header class=\"pb-3 items-center\">\n <mat-card-title class=\"transfer-picker-target-title\">已选择 {{selectedList.length}} 项</mat-card-title>\n </mat-card-header>\n <mat-card-content>\n <cdk-virtual-scroll-viewport itemSize=\"40\"\n class=\"transfer-picker-target-scroll-wrapper overflow-y-auto lg:overflow-y-hidden lg:hover:overflow-y-auto scrollbar-custom\">\n <mat-list dense>\n @for (item of selectedList; track $index) {\n <mat-list-item class=\"transfer-picker-target-item\">\n <div mat-line class=\"flex flex-row items-center\">\n <div class=\"flex-1\">{{item.label}}</div>\n <button type=\"button\" mat-icon-button (click)=\"clearItem(item)\">\n <mat-icon svgIcon=\"heroicons_solid:x-circle\"></mat-icon>\n </button>\n </div>\n </mat-list-item>\n }\n </mat-list>\n @if (!selectedList.length) {\n <div class=\"transfer-picker-target-empty\">暂无数据</div>\n }\n </cdk-virtual-scroll-viewport>\n </mat-card-content>\n</mat-card>","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CmatTransferFilterItem, CmatTransferItemFlatNode, CmatTransferItemNode } from './interface';\nimport { CmatTransferPickerSourceComponent } from './transfer-picker-source/transfer-picker-source.component';\nimport { CmatTransferPickerTargetComponent } from './transfer-picker-target/transfer-picker-target.component';\nimport { CmatTransferPickerService } from './transfer-picker.service';\n\n@Component({\n selector: 'cmat-transfer-picker',\n templateUrl: './transfer-picker.component.html',\n styleUrls: ['./transfer-picker.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'cmatTransferPicker',\n standalone: true,\n imports: [MatIconModule,MatButtonModule, CmatTransferPickerSourceComponent, CmatTransferPickerTargetComponent]\n})\nexport class CmatTransferPickerComponent implements OnInit, AfterViewInit {\n @Input()\n title: string;\n\n @Input()\n filterable: boolean;\n\n @Input()\n searchable: boolean;\n\n @Input()\n searchPlaceholder: string;\n\n @Input()\n dataSource: CmatTransferItemNode[];\n\n @Input()\n filters: CmatTransferFilterItem[];\n\n @Input()\n selectedValues: string[];\n\n @Output()\n selectChange: EventEmitter<CmatTransferItemFlatNode[]>;\n\n @ViewChild(CmatTransferPickerSourceComponent, { static: true })\n source: CmatTransferPickerSourceComponent;\n\n selectedList: CmatTransferItemFlatNode[];\n\n constructor(\n private _service: CmatTransferPickerService,\n private _changeDetectorRef: ChangeDetectorRef\n ) {\n this.filterable = true;\n this.dataSource = [];\n this.filters = [];\n this.selectedList = [];\n this.selectedValues = [];\n }\n\n ngOnInit(): void {\n this._service.dataSource = this.dataSource;\n this._service.selectedValues = this.selectedValues;\n\n this._service.sourceOptions = {\n title: this.title || '数据源',\n filterable: this.filterable || true,\n searchable: this.searchable || true,\n searchPlaceholder: this.searchPlaceholder || '搜索关键字',\n filters: this.filters || []\n };\n\n this.selectChange = new EventEmitter<CmatTransferItemFlatNode[]>();\n }\n\n ngAfterViewInit(): void {\n if (this.selectedValues.length) {\n this.pick(); \n }\n }\n\n pick(): void {\n this.selectedList = this.source.getSelectedList() || [];\n this._emitterChange();\n }\n\n reset(): void {\n if (this.selectedList.length) {\n this.selectedList = [];\n this._service.resetDataSource(true);\n this._emitterChange();\n }\n }\n\n onClearItemChange(item: CmatTransferItemFlatNode): void {\n if (item) {\n this.source.resetSelectedItem(item);\n this._emitterChange();\n }\n }\n\n private _emitterChange(): void {\n this.selectChange.next(this.selectedList);\n\n this._changeDetectorRef.detectChanges();\n }\n}\n","<cmat-transfer-picker-source></cmat-transfer-picker-source>\n<div class=\"cmat-transfer-picker-operation flex flex-col flex-nowrap gap-2 mx-2\">\n <button type=\"button\" class=\"pl-2\" mat-raised-button color=\"primary\" (click)=\"pick()\">\n 选择<mat-icon svgIcon=\"mat_outline:chevron_right\"></mat-icon>\n </button>\n <button type=\"button\" class=\"pl-2\" mat-raised-button color=\"primary\" (click)=\"reset()\">\n <mat-icon svgIcon=\"mat_outline:chevron_left\"></mat-icon>重置\n </button>\n</div>\n<cmat-transfer-picker-target [selectedList]=\"selectedList\" (clearItemChange)=\"onClearItemChange($event)\">\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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"}