cmat 0.0.28 → 0.0.30

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 (483) hide show
  1. package/animations/index.d.ts +5 -5
  2. package/components/adapter/index.d.ts +187 -5
  3. package/components/breadcrumb/index.d.ts +243 -3
  4. package/components/card/index.d.ts +20 -5
  5. package/components/carousel/index.d.ts +175 -5
  6. package/components/cascade/index.d.ts +101 -5
  7. package/components/chip-input/index.d.ts +65 -5
  8. package/components/custom-formly/index.d.ts +669 -5
  9. package/components/date-range/index.d.ts +139 -5
  10. package/components/drawer/index.d.ts +101 -5
  11. package/components/fullscreen/index.d.ts +13 -5
  12. package/components/highlight/index.d.ts +28 -5
  13. package/components/image-viewer/index.d.ts +78 -5
  14. package/components/json-editor/index.d.ts +27 -5
  15. package/components/knob-input/index.d.ts +98 -5
  16. package/components/masonry/index.d.ts +16 -5
  17. package/components/material-color-picker/index.d.ts +46 -5
  18. package/components/material-datetimepicker/index.d.ts +752 -3
  19. package/components/navigation/index.d.ts +314 -5
  20. package/components/opt-input/index.d.ts +87 -5
  21. package/components/org-chart/index.d.ts +38 -5
  22. package/components/pagination/index.d.ts +119 -5
  23. package/components/password-strength/index.d.ts +92 -5
  24. package/components/popover/index.d.ts +289 -3
  25. package/components/progress-bar/index.d.ts +19 -5
  26. package/components/rating/index.d.ts +61 -5
  27. package/components/select-search/index.d.ts +108 -5
  28. package/components/select-table/index.d.ts +120 -5
  29. package/components/select-tree/index.d.ts +120 -5
  30. package/components/speed-dial/index.d.ts +66 -5
  31. package/components/timeline/index.d.ts +56 -5
  32. package/components/toast/index.d.ts +84 -5
  33. package/components/transfer-picker/index.d.ts +188 -3
  34. package/components/treetable/index.d.ts +43 -5
  35. package/components/upload/index.d.ts +111 -5
  36. package/components/x6-angular-shape/index.d.ts +43 -5
  37. package/directives/animate-on-scroll/index.d.ts +30 -5
  38. package/directives/arrow-cursor/index.d.ts +32 -5
  39. package/directives/autofocus/index.d.ts +11 -5
  40. package/directives/data-exporter/index.d.ts +41 -5
  41. package/directives/debounce/index.d.ts +32 -5
  42. package/directives/digit-only/index.d.ts +54 -5
  43. package/directives/equal-validator/index.d.ts +14 -5
  44. package/fesm2022/cmat-components-adapter.mjs +22 -39
  45. package/fesm2022/cmat-components-adapter.mjs.map +1 -1
  46. package/fesm2022/cmat-components-breadcrumb.mjs +19 -21
  47. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  48. package/fesm2022/cmat-components-card.mjs +3 -3
  49. package/fesm2022/cmat-components-carousel.mjs +116 -133
  50. package/fesm2022/cmat-components-carousel.mjs.map +1 -1
  51. package/fesm2022/cmat-components-cascade.mjs +61 -73
  52. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  53. package/fesm2022/cmat-components-chip-input.mjs +14 -18
  54. package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
  55. package/fesm2022/cmat-components-custom-formly.mjs +176 -178
  56. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
  57. package/fesm2022/cmat-components-date-range.mjs +18 -18
  58. package/fesm2022/cmat-components-date-range.mjs.map +1 -1
  59. package/fesm2022/cmat-components-drawer.mjs +17 -19
  60. package/fesm2022/cmat-components-drawer.mjs.map +1 -1
  61. package/fesm2022/cmat-components-fullscreen.mjs +8 -11
  62. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
  63. package/fesm2022/cmat-components-highlight.mjs +14 -14
  64. package/fesm2022/cmat-components-highlight.mjs.map +1 -1
  65. package/fesm2022/cmat-components-image-viewer.mjs +10 -13
  66. package/fesm2022/cmat-components-image-viewer.mjs.map +1 -1
  67. package/fesm2022/cmat-components-json-editor.mjs +7 -7
  68. package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
  69. package/fesm2022/cmat-components-knob-input.mjs +13 -20
  70. package/fesm2022/cmat-components-knob-input.mjs.map +1 -1
  71. package/fesm2022/cmat-components-masonry.mjs +3 -3
  72. package/fesm2022/cmat-components-material-color-picker.mjs +8 -7
  73. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  74. package/fesm2022/cmat-components-material-datetimepicker.mjs +168 -220
  75. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  76. package/fesm2022/cmat-components-navigation.mjs +115 -119
  77. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  78. package/fesm2022/cmat-components-opt-input.mjs +15 -22
  79. package/fesm2022/cmat-components-opt-input.mjs.map +1 -1
  80. package/fesm2022/cmat-components-org-chart.mjs +9 -9
  81. package/fesm2022/cmat-components-org-chart.mjs.map +1 -1
  82. package/fesm2022/cmat-components-pagination.mjs +34 -40
  83. package/fesm2022/cmat-components-pagination.mjs.map +1 -1
  84. package/fesm2022/cmat-components-password-strength.mjs +15 -15
  85. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  86. package/fesm2022/cmat-components-popover.mjs +27 -32
  87. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  88. package/fesm2022/cmat-components-progress-bar.mjs +10 -10
  89. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
  90. package/fesm2022/cmat-components-rating.mjs +10 -14
  91. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  92. package/fesm2022/cmat-components-select-search.mjs +30 -53
  93. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  94. package/fesm2022/cmat-components-select-table.mjs +28 -33
  95. package/fesm2022/cmat-components-select-table.mjs.map +1 -1
  96. package/fesm2022/cmat-components-select-tree.mjs +55 -61
  97. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  98. package/fesm2022/cmat-components-speed-dial.mjs +16 -19
  99. package/fesm2022/cmat-components-speed-dial.mjs.map +1 -1
  100. package/fesm2022/cmat-components-timeline.mjs +18 -20
  101. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  102. package/fesm2022/cmat-components-toast.mjs +16 -16
  103. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  104. package/fesm2022/cmat-components-transfer-picker.mjs +49 -49
  105. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  106. package/fesm2022/cmat-components-treetable.mjs +11 -12
  107. package/fesm2022/cmat-components-treetable.mjs.map +1 -1
  108. package/fesm2022/cmat-components-upload.mjs +33 -34
  109. package/fesm2022/cmat-components-upload.mjs.map +1 -1
  110. package/fesm2022/cmat-directives-animate-on-scroll.mjs +13 -14
  111. package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
  112. package/fesm2022/cmat-directives-arrow-cursor.mjs +11 -15
  113. package/fesm2022/cmat-directives-arrow-cursor.mjs.map +1 -1
  114. package/fesm2022/cmat-directives-autofocus.mjs +8 -9
  115. package/fesm2022/cmat-directives-autofocus.mjs.map +1 -1
  116. package/fesm2022/cmat-directives-data-exporter.mjs +29 -31
  117. package/fesm2022/cmat-directives-data-exporter.mjs.map +1 -1
  118. package/fesm2022/cmat-directives-debounce.mjs +11 -13
  119. package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
  120. package/fesm2022/cmat-directives-digit-only.mjs +17 -17
  121. package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
  122. package/fesm2022/cmat-directives-equal-validator.mjs +9 -16
  123. package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -1
  124. package/fesm2022/cmat-lib-mock-api.mjs +11 -14
  125. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
  126. package/fesm2022/cmat-pipes-bytes.mjs +4 -5
  127. package/fesm2022/cmat-pipes-bytes.mjs.map +1 -1
  128. package/fesm2022/cmat-pipes-date-format.mjs +4 -5
  129. package/fesm2022/cmat-pipes-date-format.mjs.map +1 -1
  130. package/fesm2022/cmat-pipes-find-by-key.mjs +4 -5
  131. package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
  132. package/fesm2022/cmat-pipes-group-by.mjs +4 -5
  133. package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
  134. package/fesm2022/cmat-pipes-keys.mjs +4 -5
  135. package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
  136. package/fesm2022/cmat-pipes-secure.mjs +13 -14
  137. package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
  138. package/fesm2022/cmat-pipes-uppercase.mjs +4 -5
  139. package/fesm2022/cmat-pipes-uppercase.mjs.map +1 -1
  140. package/fesm2022/cmat-services-alert.mjs +7 -16
  141. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  142. package/fesm2022/cmat-services-config.mjs +10 -12
  143. package/fesm2022/cmat-services-config.mjs.map +1 -1
  144. package/fesm2022/cmat-services-confirmation.mjs +17 -20
  145. package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
  146. package/fesm2022/cmat-services-data.mjs +10 -11
  147. package/fesm2022/cmat-services-data.mjs.map +1 -1
  148. package/fesm2022/cmat-services-export-as.mjs +3 -3
  149. package/fesm2022/cmat-services-loading.mjs +14 -14
  150. package/fesm2022/cmat-services-loading.mjs.map +1 -1
  151. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  152. package/fesm2022/cmat-services-media-watcher.mjs +10 -10
  153. package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
  154. package/fesm2022/cmat-services-platform.mjs +8 -8
  155. package/fesm2022/cmat-services-platform.mjs.map +1 -1
  156. package/fesm2022/cmat-services-splash-screen.mjs +9 -14
  157. package/fesm2022/cmat-services-splash-screen.mjs.map +1 -1
  158. package/fesm2022/cmat-services-title.mjs +10 -11
  159. package/fesm2022/cmat-services-title.mjs.map +1 -1
  160. package/fesm2022/cmat-services-translation.mjs +8 -8
  161. package/fesm2022/cmat-services-translation.mjs.map +1 -1
  162. package/fesm2022/cmat-services-utils.mjs +5 -5
  163. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  164. package/index.d.ts +2 -5
  165. package/lib/mock-api/index.d.ts +60 -5
  166. package/package.json +71 -71
  167. package/pipes/bytes/index.d.ts +10 -5
  168. package/pipes/date-format/index.d.ts +10 -5
  169. package/pipes/find-by-key/index.d.ts +10 -5
  170. package/pipes/group-by/index.d.ts +10 -5
  171. package/pipes/keys/index.d.ts +10 -5
  172. package/pipes/secure/index.d.ts +19 -5
  173. package/pipes/uppercase/index.d.ts +10 -5
  174. package/services/alert/index.d.ts +69 -5
  175. package/services/config/index.d.ts +30 -5
  176. package/services/confirmation/index.d.ts +42 -5
  177. package/services/data/index.d.ts +21 -5
  178. package/services/export-as/index.d.ts +55 -5
  179. package/services/loading/index.d.ts +35 -5
  180. package/services/local-storage/index.d.ts +11 -5
  181. package/services/media-watcher/index.d.ts +22 -5
  182. package/services/platform/index.d.ts +11 -5
  183. package/services/splash-screen/index.d.ts +16 -5
  184. package/services/title/index.d.ts +14 -5
  185. package/services/translation/index.d.ts +22 -5
  186. package/services/utils/index.d.ts +63 -5
  187. package/styles/themes.scss +2 -1
  188. package/validators/index.d.ts +8 -5
  189. package/version/index.d.ts +11 -5
  190. package/animations/defaults.d.ts +0 -11
  191. package/animations/dropdown.d.ts +0 -2
  192. package/animations/expand-collapse.d.ts +0 -2
  193. package/animations/fade.d.ts +0 -11
  194. package/animations/public-api.d.ts +0 -1
  195. package/animations/shake.d.ts +0 -2
  196. package/animations/slide.d.ts +0 -9
  197. package/animations/transform.d.ts +0 -2
  198. package/animations/zoom.d.ts +0 -3
  199. package/components/adapter/datetime-adapter.d.ts +0 -45
  200. package/components/adapter/datetime-formats.d.ts +0 -22
  201. package/components/adapter/dayjs-date-adapter.d.ts +0 -63
  202. package/components/adapter/dayjs-date-formats.d.ts +0 -2
  203. package/components/adapter/dayjs-datetime-adapter.d.ts +0 -22
  204. package/components/adapter/dayjs-datetime-formats.d.ts +0 -2
  205. package/components/adapter/native-datetime-adapter.d.ts +0 -31
  206. package/components/adapter/native-datetime-formats.d.ts +0 -2
  207. package/components/adapter/public-api.d.ts +0 -8
  208. package/components/breadcrumb/breadcrumb-item.directive.d.ts +0 -10
  209. package/components/breadcrumb/breadcrumb.component.d.ts +0 -55
  210. package/components/breadcrumb/breadcrumb.service.d.ts +0 -126
  211. package/components/breadcrumb/public-api.d.ts +0 -5
  212. package/components/breadcrumb/types/breadcrumb.config.d.ts +0 -33
  213. package/components/breadcrumb/types/breadcrumb.d.ts +0 -23
  214. package/components/card/card.component.d.ts +0 -15
  215. package/components/card/card.types.d.ts +0 -1
  216. package/components/card/public-api.d.ts +0 -2
  217. package/components/carousel/carousel.component.d.ts +0 -136
  218. package/components/carousel/carousel.interface.d.ts +0 -38
  219. package/components/carousel/public-api.d.ts +0 -2
  220. package/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.d.ts +0 -13
  221. package/components/cascade/cascade-list/cascade-list.component.d.ts +0 -79
  222. package/components/cascade/cascade-menu/cascade-menu.component.d.ts +0 -8
  223. package/components/cascade/options.interface.d.ts +0 -8
  224. package/components/cascade/public-api.d.ts +0 -3
  225. package/components/chip-input/chip-input.component.d.ts +0 -62
  226. package/components/chip-input/public-api.d.ts +0 -1
  227. package/components/custom-formly/extension/addons.extension.d.ts +0 -2
  228. package/components/custom-formly/public-api.d.ts +0 -30
  229. package/components/custom-formly/types/button/button.component.d.ts +0 -34
  230. package/components/custom-formly/types/cascade/cascade.component.d.ts +0 -39
  231. package/components/custom-formly/types/checklist/checklist.component.d.ts +0 -42
  232. package/components/custom-formly/types/chips/chips.component.d.ts +0 -28
  233. package/components/custom-formly/types/color-picker/color-picker.component.d.ts +0 -7
  234. package/components/custom-formly/types/date-range/date-range.component.d.ts +0 -21
  235. package/components/custom-formly/types/datepicker/datepicker.component.d.ts +0 -42
  236. package/components/custom-formly/types/knob/knob.component.d.ts +0 -36
  237. package/components/custom-formly/types/multicheckbox/multicheckbox.component.d.ts +0 -44
  238. package/components/custom-formly/types/number/number.component.d.ts +0 -21
  239. package/components/custom-formly/types/quill/quill.component.d.ts +0 -43
  240. package/components/custom-formly/types/radio/radio.component.d.ts +0 -44
  241. package/components/custom-formly/types/rating/rating.component.d.ts +0 -25
  242. package/components/custom-formly/types/repeat/repeat.component.d.ts +0 -16
  243. package/components/custom-formly/types/select/select.component.d.ts +0 -54
  244. package/components/custom-formly/types/select-table/select-table.component.d.ts +0 -40
  245. package/components/custom-formly/types/select-tree/select-tree.component.d.ts +0 -43
  246. package/components/custom-formly/types/stepper/horizontal/stepper.component.d.ts +0 -8
  247. package/components/custom-formly/types/stepper/stepper.type.d.ts +0 -6
  248. package/components/custom-formly/types/stepper/vertical/stepper.component.d.ts +0 -8
  249. package/components/custom-formly/types/table/table.component.d.ts +0 -43
  250. package/components/custom-formly/types/tabs/tab.component.d.ts +0 -7
  251. package/components/custom-formly/types/tags/tags.component.d.ts +0 -41
  252. package/components/custom-formly/types/textarea/textarea.component.d.ts +0 -13
  253. package/components/custom-formly/types/upload/upload.component.d.ts +0 -32
  254. package/components/custom-formly/wrappers/addons/addons.component.d.ts +0 -10
  255. package/components/custom-formly/wrappers/card/card.component.d.ts +0 -6
  256. package/components/custom-formly/wrappers/expansion/expansion.component.d.ts +0 -6
  257. package/components/custom-formly/wrappers/form-field/form-field.component.d.ts +0 -25
  258. package/components/custom-formly/wrappers/panel/panel.component.d.ts +0 -6
  259. package/components/date-range/date-range.component.d.ts +0 -137
  260. package/components/date-range/public-api.d.ts +0 -1
  261. package/components/drawer/drawer.component.d.ts +0 -75
  262. package/components/drawer/drawer.service.d.ts +0 -26
  263. package/components/drawer/drawer.types.d.ts +0 -2
  264. package/components/drawer/public-api.d.ts +0 -3
  265. package/components/fullscreen/fullscreen.component.d.ts +0 -11
  266. package/components/fullscreen/public-api.d.ts +0 -1
  267. package/components/highlight/highlight.component.d.ts +0 -21
  268. package/components/highlight/highlight.service.d.ts +0 -7
  269. package/components/highlight/public-api.d.ts +0 -2
  270. package/components/image-viewer/image-viewer.component.d.ts +0 -76
  271. package/components/image-viewer/public-api.d.ts +0 -1
  272. package/components/json-editor/json-editor.component.d.ts +0 -25
  273. package/components/json-editor/public-api.d.ts +0 -1
  274. package/components/knob-input/knob-input.component.d.ts +0 -95
  275. package/components/knob-input/public-api.d.ts +0 -1
  276. package/components/masonry/masonry.component.d.ts +0 -13
  277. package/components/masonry/public-api.d.ts +0 -1
  278. package/components/material-color-picker/base-color.d.ts +0 -2
  279. package/components/material-color-picker/material-color-picker.component.d.ts +0 -38
  280. package/components/material-color-picker/public-api.d.ts +0 -2
  281. package/components/material-color-picker/selected-color.d.ts +0 -5
  282. package/components/material-datetimepicker/calendar-body.d.ts +0 -42
  283. package/components/material-datetimepicker/calendar.d.ts +0 -145
  284. package/components/material-datetimepicker/clock.d.ts +0 -73
  285. package/components/material-datetimepicker/datetimepicker-animations.d.ts +0 -4
  286. package/components/material-datetimepicker/datetimepicker-errors.d.ts +0 -1
  287. package/components/material-datetimepicker/datetimepicker-filtertype.d.ts +0 -5
  288. package/components/material-datetimepicker/datetimepicker-input.d.ts +0 -106
  289. package/components/material-datetimepicker/datetimepicker-intl.d.ts +0 -51
  290. package/components/material-datetimepicker/datetimepicker-toggle.d.ts +0 -40
  291. package/components/material-datetimepicker/datetimepicker-types.d.ts +0 -13
  292. package/components/material-datetimepicker/datetimepicker.d.ts +0 -190
  293. package/components/material-datetimepicker/month-view.d.ts +0 -62
  294. package/components/material-datetimepicker/multi-year-view.d.ts +0 -74
  295. package/components/material-datetimepicker/public-api.d.ts +0 -10
  296. package/components/material-datetimepicker/time.d.ts +0 -129
  297. package/components/material-datetimepicker/year-view.d.ts +0 -56
  298. package/components/navigation/horizontal/components/basic/basic.component.d.ts +0 -27
  299. package/components/navigation/horizontal/components/branch/branch.component.d.ts +0 -39
  300. package/components/navigation/horizontal/components/divider/divider.component.d.ts +0 -23
  301. package/components/navigation/horizontal/components/spacer/spacer.component.d.ts +0 -23
  302. package/components/navigation/horizontal/horizontal.component.d.ts +0 -43
  303. package/components/navigation/navigation.service.d.ts +0 -71
  304. package/components/navigation/navigation.types.d.ts +0 -34
  305. package/components/navigation/public-api.d.ts +0 -4
  306. package/components/navigation/vertical/components/aside/aside.component.d.ts +0 -63
  307. package/components/navigation/vertical/components/basic/basic.component.d.ts +0 -24
  308. package/components/navigation/vertical/components/collapsable/collapsable.component.d.ts +0 -74
  309. package/components/navigation/vertical/components/divider/divider.component.d.ts +0 -26
  310. package/components/navigation/vertical/components/group/group.component.d.ts +0 -36
  311. package/components/navigation/vertical/components/spacer/spacer.component.d.ts +0 -26
  312. package/components/navigation/vertical/vertical.component.d.ts +0 -176
  313. package/components/opt-input/models/config.d.ts +0 -14
  314. package/components/opt-input/otp-input.component.d.ts +0 -70
  315. package/components/opt-input/public-api.d.ts +0 -1
  316. package/components/opt-input/utils/keyboard-util.d.ts +0 -9
  317. package/components/opt-input/utils/object-util.d.ts +0 -3
  318. package/components/org-chart/designer/chart-designer.component.d.ts +0 -17
  319. package/components/org-chart/node/chart-node.component.d.ts +0 -17
  320. package/components/org-chart/node/node.type.d.ts +0 -22
  321. package/components/org-chart/org-chart.component.d.ts +0 -12
  322. package/components/org-chart/public-api.d.ts +0 -2
  323. package/components/pagination/pagination.component.d.ts +0 -23
  324. package/components/pagination/pagination.directive.d.ts +0 -40
  325. package/components/pagination/pagination.instance.d.ts +0 -11
  326. package/components/pagination/pagination.pipe.d.ts +0 -29
  327. package/components/pagination/pagination.service.d.ts +0 -20
  328. package/components/pagination/public-api.d.ts +0 -5
  329. package/components/password-strength/animations/index.d.ts +0 -4
  330. package/components/password-strength/enum.d.ts +0 -13
  331. package/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.d.ts +0 -11
  332. package/components/password-strength/mat-password-strength/mat-password-strength.component.d.ts +0 -52
  333. package/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.d.ts +0 -16
  334. package/components/password-strength/mat-password-strength-validator.d.ts +0 -6
  335. package/components/password-strength/public-api.d.ts +0 -3
  336. package/components/password-strength/regexp.class.d.ts +0 -6
  337. package/components/popover/popover-trigger.d.ts +0 -121
  338. package/components/popover/popover.component.d.ts +0 -136
  339. package/components/popover/popover.errors.d.ts +0 -14
  340. package/components/popover/popover.interfaces.d.ts +0 -43
  341. package/components/popover/popover.target.d.ts +0 -8
  342. package/components/popover/popover.type.d.ts +0 -5
  343. package/components/popover/public-api.d.ts +0 -4
  344. package/components/progress-bar/progress-bar.component.d.ts +0 -18
  345. package/components/progress-bar/public-api.d.ts +0 -1
  346. package/components/rating/public-api.d.ts +0 -1
  347. package/components/rating/rating.component.d.ts +0 -58
  348. package/components/select-search/default-options.d.ts +0 -8
  349. package/components/select-search/public-api.d.ts +0 -2
  350. package/components/select-search/select-no-entries-found.directive.d.ts +0 -5
  351. package/components/select-search/select-search-clear.directive.d.ts +0 -5
  352. package/components/select-search/select-search.component.d.ts +0 -91
  353. package/components/select-table/public-api.d.ts +0 -2
  354. package/components/select-table/select-table.component.d.ts +0 -96
  355. package/components/select-table/select-table.type.d.ts +0 -20
  356. package/components/select-tree/public-api.d.ts +0 -3
  357. package/components/select-tree/select-tree.component.d.ts +0 -105
  358. package/components/select-tree/select-tree.flatnode.d.ts +0 -6
  359. package/components/select-tree/select-tree.node.d.ts +0 -5
  360. package/components/speed-dial/public-api.d.ts +0 -2
  361. package/components/speed-dial/speed-dial.component.d.ts +0 -63
  362. package/components/timeline/public-api.d.ts +0 -2
  363. package/components/timeline/timeline-item/timeline-item.component.d.ts +0 -25
  364. package/components/timeline/timeline.component.d.ts +0 -30
  365. package/components/toast/models/global-config.model.d.ts +0 -12
  366. package/components/toast/models/toast.model.d.ts +0 -6
  367. package/components/toast/models/type.model.d.ts +0 -12
  368. package/components/toast/public-api.d.ts +0 -6
  369. package/components/toast/toast-modal.component.d.ts +0 -18
  370. package/components/toast/toast.component.d.ts +0 -17
  371. package/components/toast/toast.service.d.ts +0 -26
  372. package/components/transfer-picker/filter/filter.component.d.ts +0 -23
  373. package/components/transfer-picker/interface.d.ts +0 -41
  374. package/components/transfer-picker/public-api.d.ts +0 -7
  375. package/components/transfer-picker/search/search.component.d.ts +0 -14
  376. package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.d.ts +0 -51
  377. package/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.d.ts +0 -11
  378. package/components/transfer-picker/transfer-picker.component.d.ts +0 -28
  379. package/components/transfer-picker/transfer-picker.service.d.ts +0 -32
  380. package/components/treetable/public-api.d.ts +0 -2
  381. package/components/treetable/treetable.component.d.ts +0 -32
  382. package/components/treetable/treetable.interface.d.ts +0 -9
  383. package/components/upload/files.type.d.ts +0 -22
  384. package/components/upload/files.util.service.d.ts +0 -20
  385. package/components/upload/public-api.d.ts +0 -4
  386. package/components/upload/upload-queue/upload-queue.component.d.ts +0 -40
  387. package/components/upload/upload.component.d.ts +0 -32
  388. package/components/x6-angular-shape/node.d.ts +0 -11
  389. package/components/x6-angular-shape/public-api.d.ts +0 -3
  390. package/components/x6-angular-shape/registry.d.ts +0 -13
  391. package/components/x6-angular-shape/view.d.ts +0 -16
  392. package/directives/animate-on-scroll/animate-on-scroll.directive.d.ts +0 -29
  393. package/directives/animate-on-scroll/public-api.d.ts +0 -1
  394. package/directives/animate-on-scroll/scroll.service.d.ts +0 -15
  395. package/directives/arrow-cursor/arrow-cursor.directive.d.ts +0 -31
  396. package/directives/arrow-cursor/public-api.d.ts +0 -1
  397. package/directives/autofocus/autofocus.directive.d.ts +0 -8
  398. package/directives/autofocus/public-api.d.ts +0 -1
  399. package/directives/data-exporter/constants.d.ts +0 -26
  400. package/directives/data-exporter/data-exporter.directive.d.ts +0 -18
  401. package/directives/data-exporter/mime.d.ts +0 -5
  402. package/directives/data-exporter/options.d.ts +0 -21
  403. package/directives/data-exporter/public-api.d.ts +0 -2
  404. package/directives/data-exporter/services/exporters/csv-exporter.service.d.ts +0 -12
  405. package/directives/data-exporter/services/exporters/exporter.d.ts +0 -4
  406. package/directives/data-exporter/services/exporters/file-exporter.d.ts +0 -8
  407. package/directives/data-exporter/services/exporters/json-exporter.service.d.ts +0 -11
  408. package/directives/data-exporter/services/exporters/txt-exporter.service.d.ts +0 -12
  409. package/directives/data-exporter/services/exporters/worksheet-exporter.d.ts +0 -10
  410. package/directives/data-exporter/services/exporters/xls-exporter.service.d.ts +0 -14
  411. package/directives/data-exporter/services/exporters/xlsx-exporter.service.d.ts +0 -9
  412. package/directives/data-exporter/services/file-util.d.ts +0 -8
  413. package/directives/data-exporter/services/service-locator.service.d.ts +0 -11
  414. package/directives/debounce/abstract-debounce.directive.d.ts +0 -15
  415. package/directives/debounce/debounce-click.directive.d.ts +0 -8
  416. package/directives/debounce/debounce-keyup.directive.d.ts +0 -8
  417. package/directives/debounce/public-api.d.ts +0 -2
  418. package/directives/digit-only/digit-only.directive.d.ts +0 -36
  419. package/directives/digit-only/mask.directive.d.ts +0 -16
  420. package/directives/digit-only/public-api.d.ts +0 -2
  421. package/directives/equal-validator/equal-validator.directive.d.ts +0 -12
  422. package/directives/equal-validator/public-api.d.ts +0 -1
  423. package/lib/mock-api/mock-api.constants.d.ts +0 -2
  424. package/lib/mock-api/mock-api.interceptor.d.ts +0 -12
  425. package/lib/mock-api/mock-api.request-handler.d.ts +0 -16
  426. package/lib/mock-api/mock-api.service.d.ts +0 -20
  427. package/lib/mock-api/mock-api.types.d.ts +0 -7
  428. package/lib/mock-api/mock-api.utils.d.ts +0 -3
  429. package/lib/mock-api/public-api.d.ts +0 -5
  430. package/pipes/bytes/bytes.pipe.d.ts +0 -7
  431. package/pipes/bytes/public-api.d.ts +0 -1
  432. package/pipes/date-format/date-format.pipe.d.ts +0 -7
  433. package/pipes/date-format/public-api.d.ts +0 -1
  434. package/pipes/find-by-key/find-by-key.pipe.d.ts +0 -7
  435. package/pipes/find-by-key/public-api.d.ts +0 -1
  436. package/pipes/group-by/group-by.pipe.d.ts +0 -7
  437. package/pipes/group-by/public-api.d.ts +0 -1
  438. package/pipes/keys/keys.pipe.d.ts +0 -7
  439. package/pipes/keys/public-api.d.ts +0 -1
  440. package/pipes/secure/public-api.d.ts +0 -1
  441. package/pipes/secure/secure-pipe.d.ts +0 -18
  442. package/pipes/uppercase/public-api.d.ts +0 -1
  443. package/pipes/uppercase/uppercase.pipe.d.ts +0 -7
  444. package/public-api.d.ts +0 -1
  445. package/services/alert/alert.dialog.d.ts +0 -11
  446. package/services/alert/alert.message.d.ts +0 -8
  447. package/services/alert/alert.service.d.ts +0 -37
  448. package/services/alert/enum.d.ts +0 -12
  449. package/services/alert/public-api.d.ts +0 -4
  450. package/services/config/config.constants.d.ts +0 -6
  451. package/services/config/config.service.d.ts +0 -11
  452. package/services/config/public-api.d.ts +0 -3
  453. package/services/config/urlStateConfig.service.d.ts +0 -10
  454. package/services/confirmation/confirmation.service.d.ts +0 -12
  455. package/services/confirmation/confirmation.types.d.ts +0 -21
  456. package/services/confirmation/dialog/dialog.component.d.ts +0 -10
  457. package/services/confirmation/public-api.d.ts +0 -2
  458. package/services/data/data.service.d.ts +0 -20
  459. package/services/data/public-api.d.ts +0 -1
  460. package/services/export-as/export-as-config.model.d.ts +0 -8
  461. package/services/export-as/export-as.service.d.ts +0 -43
  462. package/services/export-as/public-api.d.ts +0 -2
  463. package/services/loading/loading.interceptor.d.ts +0 -12
  464. package/services/loading/loading.service.d.ts +0 -24
  465. package/services/loading/public-api.d.ts +0 -2
  466. package/services/local-storage/local-storage.service.d.ts +0 -8
  467. package/services/local-storage/public-api.d.ts +0 -1
  468. package/services/media-watcher/media-watcher.service.d.ts +0 -20
  469. package/services/media-watcher/public-api.d.ts +0 -1
  470. package/services/platform/platform.service.d.ts +0 -9
  471. package/services/platform/public-api.d.ts +0 -1
  472. package/services/splash-screen/public-api.d.ts +0 -1
  473. package/services/splash-screen/splash-screen.service.d.ts +0 -14
  474. package/services/title/public-api.d.ts +0 -1
  475. package/services/title/title.service.d.ts +0 -13
  476. package/services/translation/public-api.d.ts +0 -1
  477. package/services/translation/translation.service.d.ts +0 -20
  478. package/services/utils/public-api.d.ts +0 -1
  479. package/services/utils/utils.service.d.ts +0 -60
  480. package/validators/public-api.d.ts +0 -1
  481. package/validators/validators.d.ts +0 -5
  482. package/version/public-api.d.ts +0 -1
  483. package/version/version.d.ts +0 -9
@@ -1,10 +1,10 @@
1
1
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
2
- import * as i2 from '@angular/common';
3
- import { DOCUMENT, CommonModule } from '@angular/common';
2
+ import * as i1 from '@angular/common';
3
+ import { CommonModule } from '@angular/common';
4
4
  import * as i0 from '@angular/core';
5
- import { Input, Output, HostBinding, Optional, Self, Inject, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
6
- import * as i1 from '@angular/forms';
7
- import { FormControl, ReactiveFormsModule } from '@angular/forms';
5
+ import { inject, DOCUMENT, Input, Output, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
6
+ import * as i2 from '@angular/forms';
7
+ import { NgControl, FormBuilder, FormControl, ReactiveFormsModule } from '@angular/forms';
8
8
  import { MatFormFieldControl } from '@angular/material/form-field';
9
9
  import { isNil } from 'lodash';
10
10
  import { Subject } from 'rxjs';
@@ -47,10 +47,7 @@ class ObjectUtil {
47
47
  /* eslint-disable @typescript-eslint/member-ordering */
48
48
  let NEXT_ID = 0;
49
49
  class CmatOtpInputComponent {
50
- constructor(ngControl, _document, _formBuilder) {
51
- this.ngControl = ngControl;
52
- this._document = _document;
53
- this._formBuilder = _formBuilder;
50
+ constructor() {
54
51
  this.id = `cmat-otp-input-${NEXT_ID++}`;
55
52
  this.onBlur = new Subject();
56
53
  this.onInputChange = new Subject();
@@ -60,6 +57,9 @@ class CmatOtpInputComponent {
60
57
  .substring(2) + new Date().getTime().toString(36);
61
58
  this.stateChanges = new Subject();
62
59
  this.focused = false;
60
+ this.ngControl = inject(NgControl, { optional: true, self: true });
61
+ this._document = inject(DOCUMENT);
62
+ this._formBuilder = inject(FormBuilder);
63
63
  this._unsubscribeAll = new Subject();
64
64
  this._activeFocusCount = 0;
65
65
  this._placeholder = '';
@@ -338,7 +338,7 @@ class CmatOtpInputComponent {
338
338
  }
339
339
  handlePaste(e) {
340
340
  // Get pasted data via clipboard API
341
- let clipboardData = e.clipboardData || window['clipboardData'];
341
+ let clipboardData = e.clipboardData ?? window['clipboardData'];
342
342
  if (clipboardData) {
343
343
  var pastedData = clipboardData.getData('Text');
344
344
  }
@@ -415,20 +415,13 @@ class CmatOtpInputComponent {
415
415
  this.onInputChange.next(val);
416
416
  }
417
417
  }
418
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: CmatOtpInputComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: DOCUMENT }, { token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
419
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.9", type: CmatOtpInputComponent, isStandalone: true, selector: "cmat-otp-input", inputs: { id: "id", config: "config", placeholder: "placeholder", value: "value", required: "required", disabled: "disabled" }, outputs: { onBlur: "onBlur", onInputChange: "onInputChange" }, host: { properties: { "attr.id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: CmatOtpInputComponent }], exportAs: ["cmatOtpInput"], usesOnChanges: true, ngImport: i0, template: "@if(otpForm.controls){\r\n<div [attr.tabindex]=\"disabled ? -1 : 0\" class=\"cmat-otp-input-wrapper wrapper {{config.containerClass}}\"\r\n id=\"c_{{componentKey}}\" [ngStyle]=\"config.containerStyles\" (focusin)=\"onFocusIn()\" (focusout)=\"onFocusOut()\">\r\n <div class=\"n-o-c\">\r\n @for (item of controlKeys; track $index) {\r\n <input #inp autocomplete=\"one-time-code\" [pattern]=\"config.allowNumbersOnly ? '\\\\d*' : ''\" [type]=\"inputType\"\r\n [placeholder]=\"config.placeholder || ''\" [ngStyle]=\"config.inputStyles\"\r\n class=\"cmat-otp-input {{config.inputClass}}\" [id]=\"getBoxId($index)\"\r\n [ngClass]=\"{'error-input': (config.showError && errorState)}\"\r\n [formControl]=\"getFormControl(item)\" (paste)=\"handlePaste($event)\" (keyup)=\"onKeyUp($event,$index)\"\r\n (input)=\"onInput($event,$index)\" (keydown)=\"onKeyDown($event,$index)\">\r\n @if(config.separator && !$last){\r\n {{config.separator}}\r\n }\r\n }\r\n </div>\r\n</div>\r\n}", styles: [".cmat-otp-input{width:50px;height:50px;border-radius:4px;border:solid 1px;border-color:var(--cmat-text-hint);text-align:center;font-size:32px}.cmat-otp-input:focus{background-color:var(--cmat-divider);border:solid 2px var(--cmat-primary)}.cmat-otp-input-wrapper .cmat-otp-input{margin:0 .51rem}.cmat-otp-input-wrapper .cmat-otp-input:first-child{margin-left:0}.cmat-otp-input-wrapper .cmat-otp-input:last-child{margin-right:0}.n-o-c{display:flex;align-items:center}.error-input{border-color:var(--cmat-warn)}@media screen and (max-width: 767px){.cmat-otp-input{width:40px;font-size:24px;height:40px}}@media screen and (max-width: 420px){.cmat-otp-input{width:30px;font-size:18px;height:30px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
418
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CmatOtpInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
419
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: CmatOtpInputComponent, isStandalone: true, selector: "cmat-otp-input", inputs: { id: "id", config: "config", placeholder: "placeholder", value: "value", required: "required", disabled: "disabled" }, outputs: { onBlur: "onBlur", onInputChange: "onInputChange" }, host: { properties: { "attr.id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: CmatOtpInputComponent }], exportAs: ["cmatOtpInput"], usesOnChanges: true, ngImport: i0, template: "@if(otpForm.controls){\r\n<div class=\"cmat-otp-input-wrapper wrapper {{config.containerClass}}\" id=\"c_{{componentKey}}\"\r\n [attr.tabindex]=\"disabled ? -1 : 0\" [ngStyle]=\"config.containerStyles\" (focusin)=\"onFocusIn()\" (focusout)=\"onFocusOut()\">\r\n <div class=\"n-o-c\">\r\n @for (item of controlKeys; track $index) {\r\n <input #inp class=\"cmat-otp-input {{config.inputClass}}\" autocomplete=\"one-time-code\" [pattern]=\"config.allowNumbersOnly ? '\\\\d*' : ''\"\r\n [type]=\"inputType\" [placeholder]=\"config.placeholder || ''\"\r\n [ngStyle]=\"config.inputStyles\" [id]=\"getBoxId($index)\"\r\n [ngClass]=\"{'error-input': (config.showError && errorState)}\"\r\n [formControl]=\"getFormControl(item)\" (paste)=\"handlePaste($event)\" (keyup)=\"onKeyUp($event,$index)\"\r\n (input)=\"onInput($event,$index)\" (keydown)=\"onKeyDown($event,$index)\">\r\n @if(config.separator && !$last){\r\n {{config.separator}}\r\n }\r\n }\r\n </div>\r\n</div>\r\n}", styles: [".cmat-otp-input{width:50px;height:50px;border-radius:4px;border:solid 1px;border-color:rgba(var(--cmat-text-hint-rgb),.5);text-align:center;font-size:32px}.cmat-otp-input:focus{background-color:var(--cmat-divider);border:solid 2px var(--cmat-primary)}.cmat-otp-input-wrapper .cmat-otp-input{margin:0 .51rem}.cmat-otp-input-wrapper .cmat-otp-input:first-child{margin-left:0}.cmat-otp-input-wrapper .cmat-otp-input:last-child{margin-right:0}.n-o-c{display:flex;align-items:center}.error-input{border-color:var(--cmat-warn)}@media screen and (max-width: 767px){.cmat-otp-input{width:40px;font-size:24px;height:40px}}@media screen and (max-width: 420px){.cmat-otp-input{width:30px;font-size:18px;height:30px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
420
420
  }
421
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: CmatOtpInputComponent, decorators: [{
421
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CmatOtpInputComponent, decorators: [{
422
422
  type: Component,
423
- args: [{ selector: 'cmat-otp-input', exportAs: 'cmatOtpInput', imports: [CommonModule, ReactiveFormsModule], providers: [{ provide: MatFormFieldControl, useExisting: CmatOtpInputComponent }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if(otpForm.controls){\r\n<div [attr.tabindex]=\"disabled ? -1 : 0\" class=\"cmat-otp-input-wrapper wrapper {{config.containerClass}}\"\r\n id=\"c_{{componentKey}}\" [ngStyle]=\"config.containerStyles\" (focusin)=\"onFocusIn()\" (focusout)=\"onFocusOut()\">\r\n <div class=\"n-o-c\">\r\n @for (item of controlKeys; track $index) {\r\n <input #inp autocomplete=\"one-time-code\" [pattern]=\"config.allowNumbersOnly ? '\\\\d*' : ''\" [type]=\"inputType\"\r\n [placeholder]=\"config.placeholder || ''\" [ngStyle]=\"config.inputStyles\"\r\n class=\"cmat-otp-input {{config.inputClass}}\" [id]=\"getBoxId($index)\"\r\n [ngClass]=\"{'error-input': (config.showError && errorState)}\"\r\n [formControl]=\"getFormControl(item)\" (paste)=\"handlePaste($event)\" (keyup)=\"onKeyUp($event,$index)\"\r\n (input)=\"onInput($event,$index)\" (keydown)=\"onKeyDown($event,$index)\">\r\n @if(config.separator && !$last){\r\n {{config.separator}}\r\n }\r\n }\r\n </div>\r\n</div>\r\n}", styles: [".cmat-otp-input{width:50px;height:50px;border-radius:4px;border:solid 1px;border-color:var(--cmat-text-hint);text-align:center;font-size:32px}.cmat-otp-input:focus{background-color:var(--cmat-divider);border:solid 2px var(--cmat-primary)}.cmat-otp-input-wrapper .cmat-otp-input{margin:0 .51rem}.cmat-otp-input-wrapper .cmat-otp-input:first-child{margin-left:0}.cmat-otp-input-wrapper .cmat-otp-input:last-child{margin-right:0}.n-o-c{display:flex;align-items:center}.error-input{border-color:var(--cmat-warn)}@media screen and (max-width: 767px){.cmat-otp-input{width:40px;font-size:24px;height:40px}}@media screen and (max-width: 420px){.cmat-otp-input{width:30px;font-size:18px;height:30px}}\n"] }]
424
- }], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
425
- type: Optional
426
- }, {
427
- type: Self
428
- }] }, { type: Document, decorators: [{
429
- type: Inject,
430
- args: [DOCUMENT]
431
- }] }, { type: i1.FormBuilder }], propDecorators: { id: [{
423
+ args: [{ selector: 'cmat-otp-input', exportAs: 'cmatOtpInput', imports: [CommonModule, ReactiveFormsModule], providers: [{ provide: MatFormFieldControl, useExisting: CmatOtpInputComponent }], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if(otpForm.controls){\r\n<div class=\"cmat-otp-input-wrapper wrapper {{config.containerClass}}\" id=\"c_{{componentKey}}\"\r\n [attr.tabindex]=\"disabled ? -1 : 0\" [ngStyle]=\"config.containerStyles\" (focusin)=\"onFocusIn()\" (focusout)=\"onFocusOut()\">\r\n <div class=\"n-o-c\">\r\n @for (item of controlKeys; track $index) {\r\n <input #inp class=\"cmat-otp-input {{config.inputClass}}\" autocomplete=\"one-time-code\" [pattern]=\"config.allowNumbersOnly ? '\\\\d*' : ''\"\r\n [type]=\"inputType\" [placeholder]=\"config.placeholder || ''\"\r\n [ngStyle]=\"config.inputStyles\" [id]=\"getBoxId($index)\"\r\n [ngClass]=\"{'error-input': (config.showError && errorState)}\"\r\n [formControl]=\"getFormControl(item)\" (paste)=\"handlePaste($event)\" (keyup)=\"onKeyUp($event,$index)\"\r\n (input)=\"onInput($event,$index)\" (keydown)=\"onKeyDown($event,$index)\">\r\n @if(config.separator && !$last){\r\n {{config.separator}}\r\n }\r\n }\r\n </div>\r\n</div>\r\n}", styles: [".cmat-otp-input{width:50px;height:50px;border-radius:4px;border:solid 1px;border-color:rgba(var(--cmat-text-hint-rgb),.5);text-align:center;font-size:32px}.cmat-otp-input:focus{background-color:var(--cmat-divider);border:solid 2px var(--cmat-primary)}.cmat-otp-input-wrapper .cmat-otp-input{margin:0 .51rem}.cmat-otp-input-wrapper .cmat-otp-input:first-child{margin-left:0}.cmat-otp-input-wrapper .cmat-otp-input:last-child{margin-right:0}.n-o-c{display:flex;align-items:center}.error-input{border-color:var(--cmat-warn)}@media screen and (max-width: 767px){.cmat-otp-input{width:40px;font-size:24px;height:40px}}@media screen and (max-width: 420px){.cmat-otp-input{width:30px;font-size:18px;height:30px}}\n"] }]
424
+ }], ctorParameters: () => [], propDecorators: { id: [{
432
425
  type: HostBinding,
433
426
  args: ['attr.id']
434
427
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-components-opt-input.mjs","sources":["../../../projects/cmat/components/opt-input/utils/keyboard-util.ts","../../../projects/cmat/components/opt-input/utils/object-util.ts","../../../projects/cmat/components/opt-input/otp-input.component.ts","../../../projects/cmat/components/opt-input/otp-input.component.html","../../../projects/cmat/components/opt-input/cmat-components-opt-input.ts"],"sourcesContent":["export class KeyboardUtil {\r\n static ifTab(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'Tab');\r\n }\r\n static ifDelete(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'Delete;Del');\r\n }\r\n static ifBackspace(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'Backspace');\r\n }\r\n static ifRightArrow(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'ArrowRight;Right')\r\n }\r\n static ifLeftArrow(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'ArrowLeft;Left')\r\n }\r\n static ifSpacebar(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'Spacebar; ')//don't remove the space after ; as this will check for space key\r\n }\r\n static ifKey(event: KeyboardEvent, keys: string): boolean {\r\n let keysToCheck = keys.split(';');\r\n return keysToCheck.some(k => k === event.key);\r\n }\r\n}\r\n","export class ObjectUtil{\r\n static keys(obj:any):string[]{\r\n if(!obj) return [];\r\n return Object.keys(obj);\r\n }\r\n}\r\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\r\n/* eslint-disable @typescript-eslint/member-ordering */\r\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\r\nimport { CommonModule, DOCUMENT } from '@angular/common';\r\nimport {\r\n Component,\r\n Input,\r\n Output,\r\n AfterViewInit,\r\n Inject,\r\n OnDestroy,\r\n OnChanges,\r\n SimpleChanges,\r\n ChangeDetectionStrategy,\r\n ViewEncapsulation,\r\n Optional,\r\n Self,\r\n HostBinding\r\n} from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule, ControlValueAccessor, FormBuilder, UntypedFormGroup, NgControl } from '@angular/forms';\r\nimport { MatFormFieldControl } from '@angular/material/form-field';\r\nimport { isNil } from 'lodash';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { OptInputConfig } from './models/config';\r\nimport { KeyboardUtil } from './utils/keyboard-util';\r\nimport { ObjectUtil } from './utils/object-util';\r\n\r\nlet NEXT_ID = 0;\r\n\r\n@Component({\r\n selector: 'cmat-otp-input',\r\n templateUrl: './otp-input.component.html',\r\n styleUrls: ['./otp-input.component.scss'],\r\n exportAs: 'cmatOtpInput',\r\n imports: [CommonModule, ReactiveFormsModule],\r\n providers: [{ provide: MatFormFieldControl, useExisting: CmatOtpInputComponent }],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CmatOtpInputComponent implements MatFormFieldControl<any>, AfterViewInit, OnDestroy, OnChanges, ControlValueAccessor {\r\n @HostBinding('attr.id')\r\n @Input()\r\n public id = `cmat-otp-input-${NEXT_ID++}`;\r\n\r\n @Output() onBlur = new Subject<void>();\r\n @Output() onInputChange = new Subject<string | null>();\r\n @Input() config: OptInputConfig = { length: 4 };\r\n\r\n otpForm: UntypedFormGroup;\r\n currentVal: string | null;\r\n\r\n componentKey = Math.random()\r\n .toString(36)\r\n .substring(2) + new Date().getTime().toString(36);\r\n\r\n readonly stateChanges: Subject<void> = new Subject<void>();\r\n focused: boolean = false;\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n private _activeFocusCount = 0;\r\n\r\n constructor(@Optional() @Self() public ngControl: NgControl, @Inject(DOCUMENT) private _document: Document, private _formBuilder: FormBuilder) {\r\n this.otpForm = this._formBuilder.group({});\r\n\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n }\r\n\r\n get inputType(): string {\r\n return this.config?.isPasswordInput\r\n ? 'password'\r\n : this.config?.allowNumbersOnly\r\n ? 'tel'\r\n : 'text';\r\n }\r\n get controlKeys(): string[] { return ObjectUtil.keys(this.otpForm?.controls) };\r\n\r\n get errorState(): boolean {\r\n if (this.ngControl == null)\r\n return false;\r\n\r\n return (this.ngControl.invalid && ((this.ngControl.dirty ?? false) || this.ngControl.touched)) ?? false;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.config) {\r\n if (this.config.length !== ((this.otpForm?.controls as any).length ?? 0)) {\r\n this.otpForm = this._formBuilder.group({});\r\n for (let index = 0; index < this.config.length; index++) {\r\n this.otpForm.addControl(this._getControlName(index), new FormControl());\r\n }\r\n this.otpForm.valueChanges.pipe(takeUntil(this._unsubscribeAll)).subscribe(() => {\r\n ObjectUtil.keys(this.otpForm.controls).forEach((k) => {\r\n var val = this.otpForm.controls[k].value;\r\n if (val && val.length > 1) {\r\n if (val.length >= this.config.length) {\r\n this.setValue(val);\r\n } else {\r\n this._rebuildValue();\r\n }\r\n }\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n if (this.otpForm) {\r\n if (isDisabled) {\r\n this.otpForm.disable({ emitEvent: false });\r\n } else {\r\n this.otpForm.enable({ emitEvent: false });\r\n }\r\n }\r\n }\r\n writeValue(value: string): void {\r\n this.currentVal = value || null;\r\n if (this.otpForm && this.currentVal) {\r\n this.setValue(this.currentVal);\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this._onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this._onTouchedChange = fn;\r\n }\r\n\r\n onFocusIn(): void {\r\n this._onTouchedChange();\r\n this._activeFocusCount++;\r\n\r\n if (!this.focused) {\r\n this.focused = true;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n onFocusOut(): void {\r\n setTimeout(() => {\r\n this._activeFocusCount--;\r\n if (this._activeFocusCount === 0) {\r\n this.focused = false;\r\n this._onTouchedChange();\r\n this.onBlur.next();\r\n this.stateChanges.next();\r\n }\r\n }, 0);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (!this.config.disableAutoFocus) {\r\n const containerItem = this._document.getElementById(`c_${this.componentKey}`);\r\n if (containerItem) {\r\n const ele: any = containerItem.getElementsByClassName('cmat-otp-input')[0];\r\n if (ele?.focus) {\r\n ele.focus();\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.stateChanges.complete();\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n\r\n @Input()\r\n get placeholder(): string {\r\n return this._placeholder;\r\n }\r\n set placeholder(value: string) {\r\n this._placeholder = value;\r\n this.stateChanges.next();\r\n }\r\n private _placeholder: string = '';\r\n\r\n @Input()\r\n get value(): any {\r\n return this._value;\r\n }\r\n set value(value: any) {\r\n if (value !== this.value) {\r\n this._value = value;\r\n\r\n this.stateChanges.next();\r\n\r\n this._onModelChange(value);\r\n }\r\n }\r\n protected _value: any;\r\n\r\n get empty(): boolean {\r\n return !this._value;\r\n }\r\n\r\n get shouldLabelFloat(): boolean {\r\n return this.focused || !this.empty;\r\n }\r\n\r\n @Input()\r\n get required(): boolean { return this._required; }\r\n set required(value: any) {\r\n this._required = coerceBooleanProperty(value);\r\n this.stateChanges.next();\r\n }\r\n protected _required = false;\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n if (!isNil(this.ngControl?.disabled)) {\r\n return this.ngControl.disabled;\r\n }\r\n return this._disabled;\r\n }\r\n set disabled(value: BooleanInput) {\r\n this._disabled = coerceBooleanProperty(value);\r\n\r\n this.setDisabledState(this._disabled);\r\n\r\n if (this.focused) {\r\n this.focused = false;\r\n this.stateChanges.next();\r\n }\r\n }\r\n protected _disabled = false;\r\n\r\n setDescribedByIds(ids: string[]): void {\r\n const containerItem = this._document.getElementById(`c_${this.componentKey}`);\r\n\r\n if (containerItem) {\r\n if (ids.length) {\r\n containerItem.setAttribute('aria-describedby', ids.join(' '));\r\n } else {\r\n containerItem.removeAttribute('aria-describedby');\r\n }\r\n }\r\n }\r\n\r\n onContainerClick(): void {\r\n const containerItem = this._document.getElementById(`c_${this.componentKey}`);\r\n\r\n if (!this.focused && containerItem) {\r\n containerItem.focus();\r\n }\r\n }\r\n\r\n onKeyDown($event: any, inputIdx: number): any {\r\n const prevInputId = this.getBoxId(inputIdx - 1);\r\n const currentInputId = this.getBoxId(inputIdx);\r\n const nextInputId = this.getBoxId(inputIdx + 1);\r\n if (KeyboardUtil.ifSpacebar($event)) {\r\n $event.preventDefault();\r\n return false;\r\n }\r\n if (KeyboardUtil.ifBackspace($event)) {\r\n if (!$event.target.value) {\r\n this._clearInput(prevInputId, inputIdx - 1);\r\n this._setSelected(prevInputId);\r\n } else {\r\n this._clearInput(currentInputId, inputIdx);\r\n }\r\n this._rebuildValue();\r\n return;\r\n }\r\n if (KeyboardUtil.ifDelete($event)) {\r\n if (!$event.target.value) {\r\n this._clearInput(prevInputId, inputIdx - 1);\r\n this._setSelected(prevInputId);\r\n } else {\r\n this._clearInput(currentInputId, inputIdx);\r\n }\r\n this._rebuildValue();\r\n return;\r\n }\r\n if (this.ifValidKeyCode($event)) {\r\n $event.target.value = $event.key;\r\n let ctrlName = this._getControlName(inputIdx);\r\n this.otpForm.controls[ctrlName]?.setValue($event.key);\r\n $event.preventDefault();\r\n this._setSelected(nextInputId);\r\n this._rebuildValue();\r\n }\r\n }\r\n onInput($event: any, inputIdx: number): void {\r\n let newVal = this.currentVal ? `${this.currentVal}${$event.target.value}` : $event.target.value;\r\n if (this.config.allowNumbersOnly && !this.validateNumber(newVal)) {\r\n $event.target.value = null;\r\n $event.stopPropagation();\r\n $event.preventDefault();\r\n this._clearInput(null, inputIdx);\r\n }\r\n }\r\n\r\n\r\n onKeyUp($event: any, inputIdx: number): void {\r\n if (KeyboardUtil.ifTab($event)) {\r\n inputIdx -= 1;\r\n }\r\n const nextInputId = this.getBoxId(inputIdx + 1);\r\n const prevInputId = this.getBoxId(inputIdx - 1);\r\n if (KeyboardUtil.ifRightArrow($event)) {\r\n $event.preventDefault();\r\n this._setSelected(nextInputId);\r\n return;\r\n }\r\n if (KeyboardUtil.ifLeftArrow($event)) {\r\n $event.preventDefault();\r\n this._setSelected(prevInputId);\r\n return;\r\n }\r\n\r\n if (!$event.target.value) {\r\n return;\r\n }\r\n }\r\n\r\n validateNumber(val: string): boolean | string {\r\n return val && /^[0-9]+$/.test(val);\r\n }\r\n\r\n getBoxId(idx: string | number): string {\r\n return `otp_${idx}_${this.componentKey}`;\r\n }\r\n\r\n focusTo(eleId: string): void {\r\n const ele: any = this._document.getElementById(eleId);\r\n if (ele) {\r\n ele.focus();\r\n }\r\n }\r\n\r\n setValue(value: any): void {\r\n if (this.config.allowNumbersOnly && isNaN(value)) {\r\n return;\r\n }\r\n this.otpForm.reset();\r\n if (!value) {\r\n this._rebuildValue();\r\n return;\r\n }\r\n value = value.toString().replace(/\\s/g, ''); // remove whitespace\r\n Array.from(value).forEach((c, idx) => {\r\n if (this.otpForm.get(this._getControlName(idx))) {\r\n this.otpForm.get(this._getControlName(idx))!.setValue(c);\r\n }\r\n });\r\n if (!this.config.disableAutoFocus) {\r\n setTimeout(() => {\r\n const containerItem = this._document.getElementById(`c_${this.componentKey}`);\r\n var indexOfElementToFocus = value.length < this.config.length ? value.length : (this.config.length - 1);\r\n let ele: any = containerItem!.getElementsByClassName('cmat-otp-input')[indexOfElementToFocus];\r\n if (ele?.focus) {\r\n setTimeout(() => {\r\n ele.focus();\r\n }, 1);\r\n }\r\n }, 0);\r\n\r\n }\r\n this._rebuildValue();\r\n }\r\n\r\n handlePaste(e: any): void {\r\n // Get pasted data via clipboard API\r\n let clipboardData = e.clipboardData || (window as any)['clipboardData'];\r\n if (clipboardData) {\r\n var pastedData = clipboardData.getData('Text');\r\n }\r\n e.stopPropagation();\r\n e.preventDefault();\r\n if (!pastedData || (this.config.allowNumbersOnly && !this.validateNumber(pastedData))) {\r\n return;\r\n }\r\n this.setValue(pastedData);\r\n }\r\n\r\n getFormControl(key: string): FormControl {\r\n return this.otpForm.controls[key] as FormControl;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private _onModelChange: (value: any) => void = () => { };\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private _onTouchedChange: () => any = () => { };\r\n\r\n private _getControlName(idx: number): string {\r\n return `ctrl_${idx}`;\r\n }\r\n\r\n private _clearInput(eleId: string | null, inputIdx: number): void {\r\n let ctrlName = this._getControlName(inputIdx);\r\n this.otpForm.controls[ctrlName]?.setValue(null);\r\n if (eleId) {\r\n const ele = this._document.getElementById(eleId);\r\n if (ele && ele instanceof HTMLInputElement) {\r\n ele.value = '';\r\n }\r\n }\r\n }\r\n\r\n private _setSelected(eleId: string): void {\r\n this.focusTo(eleId);\r\n const ele: any = this._document.getElementById(eleId);\r\n if (ele?.setSelectionRange) {\r\n setTimeout(() => {\r\n ele.setSelectionRange(0, 1);\r\n }, 0);\r\n }\r\n }\r\n\r\n private ifValidKeyCode(event: any): boolean | string {\r\n const inp = event.key;\r\n if (this.config?.allowNumbersOnly) {\r\n return this.validateNumber(inp);\r\n }\r\n const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);\r\n return isMobile ||\r\n (/^[a-zA-Z0-9%*_\\-@#$!]$/.test(inp) && inp.length == 1);\r\n }\r\n\r\n\r\n private _rebuildValue(): void {\r\n let val: string | null = null;\r\n ObjectUtil.keys(this.otpForm.controls).forEach((k) => {\r\n let ctrlVal = this.otpForm.controls[k].value;\r\n if (ctrlVal) {\r\n let isLengthExceed = ctrlVal.length > 1;\r\n let isCaseTransformEnabled = !this.config.allowNumbersOnly && this.config.letterCase && (this.config.letterCase.toLocaleLowerCase() == 'upper' || this.config.letterCase.toLocaleLowerCase() == 'lower');\r\n ctrlVal = ctrlVal[0];\r\n let transformedVal = isCaseTransformEnabled ? this.config.letterCase?.toLocaleLowerCase() == 'upper' ? ctrlVal.toUpperCase() : ctrlVal.toLowerCase() : ctrlVal;\r\n if (isCaseTransformEnabled && transformedVal == ctrlVal) {\r\n isCaseTransformEnabled = false;\r\n } else {\r\n ctrlVal = transformedVal;\r\n }\r\n if (val == null) {\r\n val = ctrlVal;\r\n } else {\r\n val += ctrlVal;\r\n }\r\n if (isLengthExceed || isCaseTransformEnabled) {\r\n this.otpForm.controls[k].setValue(ctrlVal);\r\n }\r\n }\r\n });\r\n if (this.currentVal != val) {\r\n this.currentVal = val;\r\n this._onModelChange(val);\r\n\r\n this.onInputChange.next(val);\r\n }\r\n }\r\n}\r\n\r\n","@if(otpForm.controls){\r\n<div [attr.tabindex]=\"disabled ? -1 : 0\" class=\"cmat-otp-input-wrapper wrapper {{config.containerClass}}\"\r\n id=\"c_{{componentKey}}\" [ngStyle]=\"config.containerStyles\" (focusin)=\"onFocusIn()\" (focusout)=\"onFocusOut()\">\r\n <div class=\"n-o-c\">\r\n @for (item of controlKeys; track $index) {\r\n <input #inp autocomplete=\"one-time-code\" [pattern]=\"config.allowNumbersOnly ? '\\\\d*' : ''\" [type]=\"inputType\"\r\n [placeholder]=\"config.placeholder || ''\" [ngStyle]=\"config.inputStyles\"\r\n class=\"cmat-otp-input {{config.inputClass}}\" [id]=\"getBoxId($index)\"\r\n [ngClass]=\"{'error-input': (config.showError && errorState)}\"\r\n [formControl]=\"getFormControl(item)\" (paste)=\"handlePaste($event)\" (keyup)=\"onKeyUp($event,$index)\"\r\n (input)=\"onInput($event,$index)\" (keydown)=\"onKeyDown($event,$index)\">\r\n @if(config.separator && !$last){\r\n {{config.separator}}\r\n }\r\n }\r\n </div>\r\n</div>\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cmat-components-opt-input.mjs","sources":["../../../projects/cmat/components/opt-input/utils/keyboard-util.ts","../../../projects/cmat/components/opt-input/utils/object-util.ts","../../../projects/cmat/components/opt-input/otp-input.component.ts","../../../projects/cmat/components/opt-input/otp-input.component.html","../../../projects/cmat/components/opt-input/cmat-components-opt-input.ts"],"sourcesContent":["export class KeyboardUtil {\r\n static ifTab(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'Tab');\r\n }\r\n static ifDelete(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'Delete;Del');\r\n }\r\n static ifBackspace(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'Backspace');\r\n }\r\n static ifRightArrow(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'ArrowRight;Right')\r\n }\r\n static ifLeftArrow(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'ArrowLeft;Left')\r\n }\r\n static ifSpacebar(event: KeyboardEvent): boolean {\r\n return this.ifKey(event, 'Spacebar; ')//don't remove the space after ; as this will check for space key\r\n }\r\n static ifKey(event: KeyboardEvent, keys: string): boolean {\r\n let keysToCheck = keys.split(';');\r\n return keysToCheck.some(k => k === event.key);\r\n }\r\n}\r\n","export class ObjectUtil{\r\n static keys(obj:any):string[]{\r\n if(!obj) return [];\r\n return Object.keys(obj);\r\n }\r\n}\r\n","/* eslint-disable @angular-eslint/no-output-on-prefix */\r\n/* eslint-disable @typescript-eslint/member-ordering */\r\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Component, Input, Output, AfterViewInit, OnDestroy, OnChanges, SimpleChanges, ChangeDetectionStrategy, ViewEncapsulation, HostBinding, DOCUMENT, inject } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule, ControlValueAccessor, FormBuilder, UntypedFormGroup, NgControl } from '@angular/forms';\r\nimport { MatFormFieldControl } from '@angular/material/form-field';\r\nimport { isNil } from 'lodash';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { OptInputConfig } from './models/config';\r\nimport { KeyboardUtil } from './utils/keyboard-util';\r\nimport { ObjectUtil } from './utils/object-util';\r\n\r\nlet NEXT_ID = 0;\r\n\r\n@Component({\r\n selector: 'cmat-otp-input',\r\n templateUrl: './otp-input.component.html',\r\n styleUrls: ['./otp-input.component.scss'],\r\n exportAs: 'cmatOtpInput',\r\n imports: [CommonModule, ReactiveFormsModule],\r\n providers: [{ provide: MatFormFieldControl, useExisting: CmatOtpInputComponent }],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CmatOtpInputComponent implements MatFormFieldControl<any>, AfterViewInit, OnDestroy, OnChanges, ControlValueAccessor {\r\n @HostBinding('attr.id')\r\n @Input()\r\n public id = `cmat-otp-input-${NEXT_ID++}`;\r\n\r\n @Output() onBlur = new Subject<void>();\r\n @Output() onInputChange = new Subject<string | null>();\r\n @Input() config: OptInputConfig = { length: 4 };\r\n\r\n otpForm: UntypedFormGroup;\r\n currentVal: string | null;\r\n\r\n componentKey = Math.random()\r\n .toString(36)\r\n .substring(2) + new Date().getTime().toString(36);\r\n\r\n readonly stateChanges: Subject<void> = new Subject<void>();\r\n focused: boolean = false;\r\n\r\n ngControl = inject(NgControl, { optional: true, self: true })!;\r\n private _document = inject<Document>(DOCUMENT);\r\n private _formBuilder = inject(FormBuilder);\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n private _activeFocusCount = 0;\r\n\r\n constructor() {\r\n this.otpForm = this._formBuilder.group({});\r\n\r\n if (this.ngControl != null) {\r\n this.ngControl.valueAccessor = this;\r\n }\r\n }\r\n\r\n get inputType(): string {\r\n return this.config?.isPasswordInput\r\n ? 'password'\r\n : this.config?.allowNumbersOnly\r\n ? 'tel'\r\n : 'text';\r\n }\r\n get controlKeys(): string[] { return ObjectUtil.keys(this.otpForm?.controls) };\r\n\r\n get errorState(): boolean {\r\n if (this.ngControl == null)\r\n return false;\r\n\r\n return (this.ngControl.invalid && ((this.ngControl.dirty ?? false) || this.ngControl.touched)) ?? false;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.config) {\r\n if (this.config.length !== ((this.otpForm?.controls as any).length ?? 0)) {\r\n this.otpForm = this._formBuilder.group({});\r\n for (let index = 0; index < this.config.length; index++) {\r\n this.otpForm.addControl(this._getControlName(index), new FormControl());\r\n }\r\n this.otpForm.valueChanges.pipe(takeUntil(this._unsubscribeAll)).subscribe(() => {\r\n ObjectUtil.keys(this.otpForm.controls).forEach((k) => {\r\n var val = this.otpForm.controls[k].value;\r\n if (val && val.length > 1) {\r\n if (val.length >= this.config.length) {\r\n this.setValue(val);\r\n } else {\r\n this._rebuildValue();\r\n }\r\n }\r\n });\r\n });\r\n }\r\n }\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n if (this.otpForm) {\r\n if (isDisabled) {\r\n this.otpForm.disable({ emitEvent: false });\r\n } else {\r\n this.otpForm.enable({ emitEvent: false });\r\n }\r\n }\r\n }\r\n writeValue(value: string): void {\r\n this.currentVal = value || null;\r\n if (this.otpForm && this.currentVal) {\r\n this.setValue(this.currentVal);\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this._onModelChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this._onTouchedChange = fn;\r\n }\r\n\r\n onFocusIn(): void {\r\n this._onTouchedChange();\r\n this._activeFocusCount++;\r\n\r\n if (!this.focused) {\r\n this.focused = true;\r\n this.stateChanges.next();\r\n }\r\n }\r\n\r\n onFocusOut(): void {\r\n setTimeout(() => {\r\n this._activeFocusCount--;\r\n if (this._activeFocusCount === 0) {\r\n this.focused = false;\r\n this._onTouchedChange();\r\n this.onBlur.next();\r\n this.stateChanges.next();\r\n }\r\n }, 0);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (!this.config.disableAutoFocus) {\r\n const containerItem = this._document.getElementById(`c_${this.componentKey}`);\r\n if (containerItem) {\r\n const ele: any = containerItem.getElementsByClassName('cmat-otp-input')[0];\r\n if (ele?.focus) {\r\n ele.focus();\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.stateChanges.complete();\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n\r\n @Input()\r\n get placeholder(): string {\r\n return this._placeholder;\r\n }\r\n set placeholder(value: string) {\r\n this._placeholder = value;\r\n this.stateChanges.next();\r\n }\r\n private _placeholder: string = '';\r\n\r\n @Input()\r\n get value(): any {\r\n return this._value;\r\n }\r\n set value(value: any) {\r\n if (value !== this.value) {\r\n this._value = value;\r\n\r\n this.stateChanges.next();\r\n\r\n this._onModelChange(value);\r\n }\r\n }\r\n protected _value: any;\r\n\r\n get empty(): boolean {\r\n return !this._value;\r\n }\r\n\r\n get shouldLabelFloat(): boolean {\r\n return this.focused || !this.empty;\r\n }\r\n\r\n @Input()\r\n get required(): boolean { return this._required; }\r\n set required(value: any) {\r\n this._required = coerceBooleanProperty(value);\r\n this.stateChanges.next();\r\n }\r\n protected _required = false;\r\n\r\n @Input()\r\n get disabled(): boolean {\r\n if (!isNil(this.ngControl?.disabled)) {\r\n return this.ngControl.disabled;\r\n }\r\n return this._disabled;\r\n }\r\n set disabled(value: BooleanInput) {\r\n this._disabled = coerceBooleanProperty(value);\r\n\r\n this.setDisabledState(this._disabled);\r\n\r\n if (this.focused) {\r\n this.focused = false;\r\n this.stateChanges.next();\r\n }\r\n }\r\n protected _disabled = false;\r\n\r\n setDescribedByIds(ids: string[]): void {\r\n const containerItem = this._document.getElementById(`c_${this.componentKey}`);\r\n\r\n if (containerItem) {\r\n if (ids.length) {\r\n containerItem.setAttribute('aria-describedby', ids.join(' '));\r\n } else {\r\n containerItem.removeAttribute('aria-describedby');\r\n }\r\n }\r\n }\r\n\r\n onContainerClick(): void {\r\n const containerItem = this._document.getElementById(`c_${this.componentKey}`);\r\n\r\n if (!this.focused && containerItem) {\r\n containerItem.focus();\r\n }\r\n }\r\n\r\n onKeyDown($event: any, inputIdx: number): any {\r\n const prevInputId = this.getBoxId(inputIdx - 1);\r\n const currentInputId = this.getBoxId(inputIdx);\r\n const nextInputId = this.getBoxId(inputIdx + 1);\r\n if (KeyboardUtil.ifSpacebar($event)) {\r\n $event.preventDefault();\r\n return false;\r\n }\r\n if (KeyboardUtil.ifBackspace($event)) {\r\n if (!$event.target.value) {\r\n this._clearInput(prevInputId, inputIdx - 1);\r\n this._setSelected(prevInputId);\r\n } else {\r\n this._clearInput(currentInputId, inputIdx);\r\n }\r\n this._rebuildValue();\r\n return;\r\n }\r\n if (KeyboardUtil.ifDelete($event)) {\r\n if (!$event.target.value) {\r\n this._clearInput(prevInputId, inputIdx - 1);\r\n this._setSelected(prevInputId);\r\n } else {\r\n this._clearInput(currentInputId, inputIdx);\r\n }\r\n this._rebuildValue();\r\n return;\r\n }\r\n if (this.ifValidKeyCode($event)) {\r\n $event.target.value = $event.key;\r\n let ctrlName = this._getControlName(inputIdx);\r\n this.otpForm.controls[ctrlName]?.setValue($event.key);\r\n $event.preventDefault();\r\n this._setSelected(nextInputId);\r\n this._rebuildValue();\r\n }\r\n }\r\n onInput($event: any, inputIdx: number): void {\r\n let newVal = this.currentVal ? `${this.currentVal}${$event.target.value}` : $event.target.value;\r\n if (this.config.allowNumbersOnly && !this.validateNumber(newVal)) {\r\n $event.target.value = null;\r\n $event.stopPropagation();\r\n $event.preventDefault();\r\n this._clearInput(null, inputIdx);\r\n }\r\n }\r\n\r\n\r\n onKeyUp($event: any, inputIdx: number): void {\r\n if (KeyboardUtil.ifTab($event)) {\r\n inputIdx -= 1;\r\n }\r\n const nextInputId = this.getBoxId(inputIdx + 1);\r\n const prevInputId = this.getBoxId(inputIdx - 1);\r\n if (KeyboardUtil.ifRightArrow($event)) {\r\n $event.preventDefault();\r\n this._setSelected(nextInputId);\r\n return;\r\n }\r\n if (KeyboardUtil.ifLeftArrow($event)) {\r\n $event.preventDefault();\r\n this._setSelected(prevInputId);\r\n return;\r\n }\r\n\r\n if (!$event.target.value) {\r\n return;\r\n }\r\n }\r\n\r\n validateNumber(val: string): boolean | string {\r\n return val && /^[0-9]+$/.test(val);\r\n }\r\n\r\n getBoxId(idx: string | number): string {\r\n return `otp_${idx}_${this.componentKey}`;\r\n }\r\n\r\n focusTo(eleId: string): void {\r\n const ele: any = this._document.getElementById(eleId);\r\n if (ele) {\r\n ele.focus();\r\n }\r\n }\r\n\r\n setValue(value: any): void {\r\n if (this.config.allowNumbersOnly && isNaN(value)) {\r\n return;\r\n }\r\n this.otpForm.reset();\r\n if (!value) {\r\n this._rebuildValue();\r\n return;\r\n }\r\n value = value.toString().replace(/\\s/g, ''); // remove whitespace\r\n Array.from(value).forEach((c, idx) => {\r\n if (this.otpForm.get(this._getControlName(idx))) {\r\n this.otpForm.get(this._getControlName(idx))!.setValue(c);\r\n }\r\n });\r\n if (!this.config.disableAutoFocus) {\r\n setTimeout(() => {\r\n const containerItem = this._document.getElementById(`c_${this.componentKey}`);\r\n var indexOfElementToFocus = value.length < this.config.length ? value.length : (this.config.length - 1);\r\n let ele: any = containerItem!.getElementsByClassName('cmat-otp-input')[indexOfElementToFocus];\r\n if (ele?.focus) {\r\n setTimeout(() => {\r\n ele.focus();\r\n }, 1);\r\n }\r\n }, 0);\r\n\r\n }\r\n this._rebuildValue();\r\n }\r\n\r\n handlePaste(e: any): void {\r\n // Get pasted data via clipboard API\r\n let clipboardData = e.clipboardData ?? (window as any)['clipboardData'];\r\n if (clipboardData) {\r\n var pastedData = clipboardData.getData('Text');\r\n }\r\n e.stopPropagation();\r\n e.preventDefault();\r\n if (!pastedData || (this.config.allowNumbersOnly && !this.validateNumber(pastedData))) {\r\n return;\r\n }\r\n this.setValue(pastedData);\r\n }\r\n\r\n getFormControl(key: string): FormControl {\r\n return this.otpForm.controls[key] as FormControl;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private _onModelChange: (value: any) => void = () => { };\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n private _onTouchedChange: () => any = () => { };\r\n\r\n private _getControlName(idx: number): string {\r\n return `ctrl_${idx}`;\r\n }\r\n\r\n private _clearInput(eleId: string | null, inputIdx: number): void {\r\n let ctrlName = this._getControlName(inputIdx);\r\n this.otpForm.controls[ctrlName]?.setValue(null);\r\n if (eleId) {\r\n const ele = this._document.getElementById(eleId);\r\n if (ele && ele instanceof HTMLInputElement) {\r\n ele.value = '';\r\n }\r\n }\r\n }\r\n\r\n private _setSelected(eleId: string): void {\r\n this.focusTo(eleId);\r\n const ele: any = this._document.getElementById(eleId);\r\n if (ele?.setSelectionRange) {\r\n setTimeout(() => {\r\n ele.setSelectionRange(0, 1);\r\n }, 0);\r\n }\r\n }\r\n\r\n private ifValidKeyCode(event: any): boolean | string {\r\n const inp = event.key;\r\n if (this.config?.allowNumbersOnly) {\r\n return this.validateNumber(inp);\r\n }\r\n const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);\r\n return isMobile ||\r\n (/^[a-zA-Z0-9%*_\\-@#$!]$/.test(inp) && inp.length == 1);\r\n }\r\n\r\n\r\n private _rebuildValue(): void {\r\n let val: string | null = null;\r\n ObjectUtil.keys(this.otpForm.controls).forEach((k) => {\r\n let ctrlVal = this.otpForm.controls[k].value;\r\n if (ctrlVal) {\r\n let isLengthExceed = ctrlVal.length > 1;\r\n let isCaseTransformEnabled = !this.config.allowNumbersOnly && this.config.letterCase && (this.config.letterCase.toLocaleLowerCase() == 'upper' || this.config.letterCase.toLocaleLowerCase() == 'lower');\r\n ctrlVal = ctrlVal[0];\r\n let transformedVal = isCaseTransformEnabled ? this.config.letterCase?.toLocaleLowerCase() == 'upper' ? ctrlVal.toUpperCase() : ctrlVal.toLowerCase() : ctrlVal;\r\n if (isCaseTransformEnabled && transformedVal == ctrlVal) {\r\n isCaseTransformEnabled = false;\r\n } else {\r\n ctrlVal = transformedVal;\r\n }\r\n if (val == null) {\r\n val = ctrlVal;\r\n } else {\r\n val += ctrlVal;\r\n }\r\n if (isLengthExceed || isCaseTransformEnabled) {\r\n this.otpForm.controls[k].setValue(ctrlVal);\r\n }\r\n }\r\n });\r\n if (this.currentVal != val) {\r\n this.currentVal = val;\r\n this._onModelChange(val);\r\n\r\n this.onInputChange.next(val);\r\n }\r\n }\r\n}\r\n\r\n","@if(otpForm.controls){\r\n<div class=\"cmat-otp-input-wrapper wrapper {{config.containerClass}}\" id=\"c_{{componentKey}}\"\r\n [attr.tabindex]=\"disabled ? -1 : 0\" [ngStyle]=\"config.containerStyles\" (focusin)=\"onFocusIn()\" (focusout)=\"onFocusOut()\">\r\n <div class=\"n-o-c\">\r\n @for (item of controlKeys; track $index) {\r\n <input #inp class=\"cmat-otp-input {{config.inputClass}}\" autocomplete=\"one-time-code\" [pattern]=\"config.allowNumbersOnly ? '\\\\d*' : ''\"\r\n [type]=\"inputType\" [placeholder]=\"config.placeholder || ''\"\r\n [ngStyle]=\"config.inputStyles\" [id]=\"getBoxId($index)\"\r\n [ngClass]=\"{'error-input': (config.showError && errorState)}\"\r\n [formControl]=\"getFormControl(item)\" (paste)=\"handlePaste($event)\" (keyup)=\"onKeyUp($event,$index)\"\r\n (input)=\"onInput($event,$index)\" (keydown)=\"onKeyDown($event,$index)\">\r\n @if(config.separator && !$last){\r\n {{config.separator}}\r\n }\r\n }\r\n </div>\r\n</div>\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -26,10 +26,10 @@ class CmatChartNodeComponent {
26
26
  this.containerClass = `cmat-org-connector-${this.direction} `;
27
27
  }
28
28
  }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: CmatChartNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.9", type: CmatChartNodeComponent, isStandalone: true, selector: "cmat-org-chart-node", inputs: { node: "node", hasParent: "hasParent", enableControlHeight: "enableControlHeight", direction: "direction", detailsBtnTitle: "detailsBtnTitle" }, outputs: { detailsBtnClick: "detailsBtnClick" }, exportAs: ["cmatOrgChartNode"], usesOnChanges: true, ngImport: i0, template: "<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n@if(hasParent){\r\n<div class=\"cmat-org-border\" [ngClass]=\"containerClass\" [style.height]=\"connectorToParentHeight\"></div>\r\n}\r\n<div class=\"cmat-org-box cmat-org-border cmat-org-background\" [ngClass]=\"node.cssClass\">\r\n @if(node.image!==''){\r\n <div class=\"cmat-org-image\" [style]=\"{ 'background-image': 'url(\\'' + node.image + '\\')' }\"\r\n [style.border-color]=\"node.color\"></div>\r\n }@else {\r\n <div class=\"text-center\">\r\n <mat-icon class=\"icon-size-16\" [svgIcon]=\"'heroicons_outline:user-circle'\">\r\n </mat-icon>\r\n </div>\r\n }\r\n\r\n <div class=\"cmat-org-container\">\r\n <div class=\"cmat-org-title\" [innerHTML]=\"node.title\" [style.color]=\"node.color\"></div>\r\n <div class=\"cmat-org-name\" [innerHTML]=\"node.name\"></div>\r\n \r\n @if(node.showDetail){\r\n <div class=\"button-container\">\r\n <button mat-flat-button class=\"cmat-org-btn cmat-org-btn-details\" color=\"primary\"\r\n (click)=\"detailsBtnClick.emit(node)\">\r\n {{ detailsBtnTitle }}\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n@if(node.children.length){\r\n<div class=\"cmat-org-border\" [ngClass]=\"containerClass\"></div>\r\n}", styles: ["cmat-org-chart-node{display:flex;align-items:center}.cmat-org-box{width:16em;height:16em;box-sizing:border-box;overflow:overlay;position:relative}.cmat-org-container{display:flex;flex-direction:column;align-items:center}.cmat-org-title,.cmat-org-name,.button-container{flex:1}.cmat-org-title{margin-top:.5em}.cmat-org-name{margin:.3em 0}.button-container{display:flex;flex-direction:row;justify-content:center;align-items:center;position:absolute;bottom:1em;width:100%}.cmat-org-image{background-repeat:round;width:4em;height:4em;background-color:transparent!important;border-radius:50%;padding:.25em;border:3px solid var(--cmat-text-hint);margin:4px auto auto}.cmat-org-title{font-size:1.1rem;font-weight:700;text-align:center}.cmat-org-name{text-align:center;margin-bottom:8px!important}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CmatChartNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: CmatChartNodeComponent, isStandalone: true, selector: "cmat-org-chart-node", inputs: { node: "node", hasParent: "hasParent", enableControlHeight: "enableControlHeight", direction: "direction", detailsBtnTitle: "detailsBtnTitle" }, outputs: { detailsBtnClick: "detailsBtnClick" }, exportAs: ["cmatOrgChartNode"], usesOnChanges: true, ngImport: i0, template: "<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n@if(hasParent){\r\n<div class=\"cmat-org-border\" [ngClass]=\"containerClass\" [style.height]=\"connectorToParentHeight\"></div>\r\n}\r\n<div class=\"cmat-org-box cmat-org-border cmat-org-background\" [ngClass]=\"node.cssClass\">\r\n @if(node.image!==''){\r\n <div class=\"cmat-org-image\" [style]=\"{ 'background-image': 'url(\\'' + node.image + '\\')' }\"\r\n [style.border-color]=\"node.color\"></div>\r\n }@else {\r\n <div class=\"text-center\">\r\n <mat-icon class=\"icon-size-16\" [svgIcon]=\"'heroicons_outline:user-circle'\">\r\n </mat-icon>\r\n </div>\r\n }\r\n\r\n <div class=\"cmat-org-container\">\r\n <div class=\"cmat-org-title\" [innerHTML]=\"node.title\" [style.color]=\"node.color\"></div>\r\n <div class=\"cmat-org-name\" [innerHTML]=\"node.name\"></div>\r\n \r\n @if(node.showDetail){\r\n <div class=\"button-container\">\r\n <button mat-flat-button class=\"cmat-org-btn cmat-org-btn-details\" color=\"primary\"\r\n (click)=\"detailsBtnClick.emit(node)\">\r\n {{ detailsBtnTitle }}\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n@if(node.children.length){\r\n<div class=\"cmat-org-border\" [ngClass]=\"containerClass\"></div>\r\n}", styles: ["cmat-org-chart-node{display:flex;align-items:center}.cmat-org-box{width:16em;height:16em;box-sizing:border-box;overflow:overlay;position:relative}.cmat-org-container{display:flex;flex-direction:column;align-items:center}.cmat-org-title,.cmat-org-name,.button-container{flex:1}.cmat-org-title{margin-top:.5em}.cmat-org-name{margin:.3em 0}.button-container{display:flex;flex-direction:row;justify-content:center;align-items:center;position:absolute;bottom:1em;width:100%}.cmat-org-image{background-repeat:round;width:4em;height:4em;background-color:transparent!important;border-radius:50%;padding:.25em;border:3px solid var(--cmat-text-hint);margin:4px auto auto}.cmat-org-title{font-size:1.1rem;font-weight:700;text-align:center}.cmat-org-name{text-align:center;margin-bottom:8px!important}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
31
31
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: CmatChartNodeComponent, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CmatChartNodeComponent, decorators: [{
33
33
  type: Component,
34
34
  args: [{ selector: 'cmat-org-chart-node', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatOrgChartNode', imports: [NgClass, MatIconModule, MatButtonModule], template: "<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n@if(hasParent){\r\n<div class=\"cmat-org-border\" [ngClass]=\"containerClass\" [style.height]=\"connectorToParentHeight\"></div>\r\n}\r\n<div class=\"cmat-org-box cmat-org-border cmat-org-background\" [ngClass]=\"node.cssClass\">\r\n @if(node.image!==''){\r\n <div class=\"cmat-org-image\" [style]=\"{ 'background-image': 'url(\\'' + node.image + '\\')' }\"\r\n [style.border-color]=\"node.color\"></div>\r\n }@else {\r\n <div class=\"text-center\">\r\n <mat-icon class=\"icon-size-16\" [svgIcon]=\"'heroicons_outline:user-circle'\">\r\n </mat-icon>\r\n </div>\r\n }\r\n\r\n <div class=\"cmat-org-container\">\r\n <div class=\"cmat-org-title\" [innerHTML]=\"node.title\" [style.color]=\"node.color\"></div>\r\n <div class=\"cmat-org-name\" [innerHTML]=\"node.name\"></div>\r\n \r\n @if(node.showDetail){\r\n <div class=\"button-container\">\r\n <button mat-flat-button class=\"cmat-org-btn cmat-org-btn-details\" color=\"primary\"\r\n (click)=\"detailsBtnClick.emit(node)\">\r\n {{ detailsBtnTitle }}\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n@if(node.children.length){\r\n<div class=\"cmat-org-border\" [ngClass]=\"containerClass\"></div>\r\n}", styles: ["cmat-org-chart-node{display:flex;align-items:center}.cmat-org-box{width:16em;height:16em;box-sizing:border-box;overflow:overlay;position:relative}.cmat-org-container{display:flex;flex-direction:column;align-items:center}.cmat-org-title,.cmat-org-name,.button-container{flex:1}.cmat-org-title{margin-top:.5em}.cmat-org-name{margin:.3em 0}.button-container{display:flex;flex-direction:row;justify-content:center;align-items:center;position:absolute;bottom:1em;width:100%}.cmat-org-image{background-repeat:round;width:4em;height:4em;background-color:transparent!important;border-radius:50%;padding:.25em;border:3px solid var(--cmat-text-hint);margin:4px auto auto}.cmat-org-title{font-size:1.1rem;font-weight:700;text-align:center}.cmat-org-name{text-align:center;margin-bottom:8px!important}\n"] }]
35
35
  }], propDecorators: { node: [{
@@ -63,10 +63,10 @@ class CmatChartDesignerComponent {
63
63
  this.chartNodeClass = `cmat-org-${this.direction}`;
64
64
  }
65
65
  }
66
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: CmatChartDesignerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
67
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.9", type: CmatChartDesignerComponent, isStandalone: true, selector: "cmat-org-chart-designer", inputs: { node: "node", hasParent: "hasParent", enableControlHeight: "enableControlHeight", direction: "direction", detailsBtnTitle: "detailsBtnTitle" }, outputs: { detailsBtnClick: "detailsBtnClick" }, host: { properties: { "style.flex-direction": "this.hostClass", "style.width": "this.hostWidthClass" } }, exportAs: ["cmatOrgChartDesigner"], usesOnChanges: true, ngImport: i0, template: "<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n<cmat-org-chart-node [class]=\"chartNodeClass\" [node]=\"node\" [hasParent]=\"hasParent\"\r\n [enableControlHeight]=\"enableControlHeight\" [direction]=\"direction\" [detailsBtnTitle]=\"detailsBtnTitle\"\r\n (detailsBtnClick)=\"detailsBtnClick.emit($event)\">\r\n</cmat-org-chart-node>\r\n\r\n<div class=\"cmat-org-reports-{{ direction }} cmat-org-reports\">\r\n @for (childNode of node.children; track $index) {\r\n <div class=\"cmat-org-org-container cmat-org-org-container-{{ direction }}\">\r\n <div class=\"cmat-org-connector-container cmat-org-connector-container-{{ direction }}\">\r\n <div class=\"cmat-org-connector cmat-org-border\" [style.border-color]=\"$first ? 'transparent' : ''\"></div>\r\n <div class=\"cmat-org-border\"></div>\r\n <div class=\"cmat-org-connector cmat-org-border\" [style.border-color]=\"$last ? 'transparent' : ''\"></div>\r\n </div>\r\n <cmat-org-chart-designer [node]=\"childNode\" [hasParent]=\"true\" [enableControlHeight]=\"enableControlHeight\"\r\n [direction]=\"direction\" [detailsBtnTitle]=\"detailsBtnTitle\" (detailsBtnClick)=\"detailsBtnClick.emit($event)\">\r\n </cmat-org-chart-designer>\r\n </div>\r\n }\r\n</div>", styles: ["cmat-org-chart-designer{display:flex;align-items:center;flex:1}.cmat-org-vertical{flex-direction:column}.cmat-org-org-container{display:flex}.cmat-org-org-container-vertical{flex-direction:column}.cmat-org-connector{flex:1}.cmat-org-connector-container{display:flex}.cmat-org-connector-container-horizontal{flex-direction:column}.cmat-org-reports{display:flex;flex:1}.cmat-org-reports-horizontal{flex-direction:column}.cmat-org-reports-vertical{width:100%}\n"], dependencies: [{ kind: "component", type: i0.forwardRef(() => CmatChartDesignerComponent), selector: "cmat-org-chart-designer", inputs: ["node", "hasParent", "enableControlHeight", "direction", "detailsBtnTitle"], outputs: ["detailsBtnClick"], exportAs: ["cmatOrgChartDesigner"] }, { kind: "component", type: i0.forwardRef(() => CmatChartNodeComponent), selector: "cmat-org-chart-node", inputs: ["node", "hasParent", "enableControlHeight", "direction", "detailsBtnTitle"], outputs: ["detailsBtnClick"], exportAs: ["cmatOrgChartNode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CmatChartDesignerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
67
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: CmatChartDesignerComponent, isStandalone: true, selector: "cmat-org-chart-designer", inputs: { node: "node", hasParent: "hasParent", enableControlHeight: "enableControlHeight", direction: "direction", detailsBtnTitle: "detailsBtnTitle" }, outputs: { detailsBtnClick: "detailsBtnClick" }, host: { properties: { "style.flex-direction": "this.hostClass", "style.width": "this.hostWidthClass" } }, exportAs: ["cmatOrgChartDesigner"], usesOnChanges: true, ngImport: i0, template: "<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n<cmat-org-chart-node [class]=\"chartNodeClass\" [node]=\"node\" [hasParent]=\"hasParent\"\r\n [enableControlHeight]=\"enableControlHeight\" [direction]=\"direction\" [detailsBtnTitle]=\"detailsBtnTitle\"\r\n (detailsBtnClick)=\"detailsBtnClick.emit($event)\">\r\n</cmat-org-chart-node>\r\n\r\n<div class=\"cmat-org-reports-{{ direction }} cmat-org-reports\">\r\n @for (childNode of node.children; track $index) {\r\n <div class=\"cmat-org-org-container cmat-org-org-container-{{ direction }}\">\r\n <div class=\"cmat-org-connector-container cmat-org-connector-container-{{ direction }}\">\r\n <div class=\"cmat-org-connector cmat-org-border\" [style.border-color]=\"$first ? 'transparent' : ''\"></div>\r\n <div class=\"cmat-org-border\"></div>\r\n <div class=\"cmat-org-connector cmat-org-border\" [style.border-color]=\"$last ? 'transparent' : ''\"></div>\r\n </div>\r\n <cmat-org-chart-designer [node]=\"childNode\" [hasParent]=\"true\" [enableControlHeight]=\"enableControlHeight\"\r\n [direction]=\"direction\" [detailsBtnTitle]=\"detailsBtnTitle\" (detailsBtnClick)=\"detailsBtnClick.emit($event)\">\r\n </cmat-org-chart-designer>\r\n </div>\r\n }\r\n</div>", styles: ["cmat-org-chart-designer{display:flex;align-items:center;flex:1}.cmat-org-vertical{flex-direction:column}.cmat-org-org-container{display:flex}.cmat-org-org-container-vertical{flex-direction:column}.cmat-org-connector{flex:1}.cmat-org-connector-container{display:flex}.cmat-org-connector-container-horizontal{flex-direction:column}.cmat-org-reports{display:flex;flex:1}.cmat-org-reports-horizontal{flex-direction:column}.cmat-org-reports-vertical{width:100%}\n"], dependencies: [{ kind: "component", type: i0.forwardRef(() => CmatChartDesignerComponent), selector: "cmat-org-chart-designer", inputs: ["node", "hasParent", "enableControlHeight", "direction", "detailsBtnTitle"], outputs: ["detailsBtnClick"], exportAs: ["cmatOrgChartDesigner"] }, { kind: "component", type: i0.forwardRef(() => CmatChartNodeComponent), selector: "cmat-org-chart-node", inputs: ["node", "hasParent", "enableControlHeight", "direction", "detailsBtnTitle"], outputs: ["detailsBtnClick"], exportAs: ["cmatOrgChartNode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
68
68
  }
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: CmatChartDesignerComponent, decorators: [{
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CmatChartDesignerComponent, decorators: [{
70
70
  type: Component,
71
71
  args: [{ selector: 'cmat-org-chart-designer', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatOrgChartDesigner', imports: [CmatChartNodeComponent, forwardRef(() => CmatChartDesignerComponent)], template: "<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n<cmat-org-chart-node [class]=\"chartNodeClass\" [node]=\"node\" [hasParent]=\"hasParent\"\r\n [enableControlHeight]=\"enableControlHeight\" [direction]=\"direction\" [detailsBtnTitle]=\"detailsBtnTitle\"\r\n (detailsBtnClick)=\"detailsBtnClick.emit($event)\">\r\n</cmat-org-chart-node>\r\n\r\n<div class=\"cmat-org-reports-{{ direction }} cmat-org-reports\">\r\n @for (childNode of node.children; track $index) {\r\n <div class=\"cmat-org-org-container cmat-org-org-container-{{ direction }}\">\r\n <div class=\"cmat-org-connector-container cmat-org-connector-container-{{ direction }}\">\r\n <div class=\"cmat-org-connector cmat-org-border\" [style.border-color]=\"$first ? 'transparent' : ''\"></div>\r\n <div class=\"cmat-org-border\"></div>\r\n <div class=\"cmat-org-connector cmat-org-border\" [style.border-color]=\"$last ? 'transparent' : ''\"></div>\r\n </div>\r\n <cmat-org-chart-designer [node]=\"childNode\" [hasParent]=\"true\" [enableControlHeight]=\"enableControlHeight\"\r\n [direction]=\"direction\" [detailsBtnTitle]=\"detailsBtnTitle\" (detailsBtnClick)=\"detailsBtnClick.emit($event)\">\r\n </cmat-org-chart-designer>\r\n </div>\r\n }\r\n</div>", styles: ["cmat-org-chart-designer{display:flex;align-items:center;flex:1}.cmat-org-vertical{flex-direction:column}.cmat-org-org-container{display:flex}.cmat-org-org-container-vertical{flex-direction:column}.cmat-org-connector{flex:1}.cmat-org-connector-container{display:flex}.cmat-org-connector-container-horizontal{flex-direction:column}.cmat-org-reports{display:flex;flex:1}.cmat-org-reports-horizontal{flex-direction:column}.cmat-org-reports-vertical{width:100%}\n"] }]
72
72
  }], propDecorators: { node: [{
@@ -96,10 +96,10 @@ class CmatOrgChartComponent {
96
96
  this.detailsBtnTitle = '查看详细';
97
97
  this.detailsBtnClick = new EventEmitter();
98
98
  }
99
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: CmatOrgChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
100
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.9", type: CmatOrgChartComponent, isStandalone: true, selector: "cmat-org-chart", inputs: { nodes: "nodes", enableControlHeight: "enableControlHeight", direction: "direction", detailsBtnTitle: "detailsBtnTitle" }, outputs: { detailsBtnClick: "detailsBtnClick" }, exportAs: ["cmatOrgChart"], ngImport: i0, template: "<div class=\"cmat-org\">\r\n @for (node of nodes; track $index) {\r\n <div class=\"cmat-org-self-{{ direction }}\">\r\n <cmat-org-chart-designer [node]=\"node\" [direction]=\"direction\" [enableControlHeight]=\"enableControlHeight\"\r\n [detailsBtnTitle]=\"detailsBtnTitle\" (detailsBtnClick)=\"detailsBtnClick.emit($event)\"></cmat-org-chart-designer>\r\n </div>\r\n }\r\n</div>", styles: [".cmat-org-horizontal{padding:1em 0}.cmat-org-vertical{padding:0 1em}.cmat-org-border{border:.1em solid var(--cmat-divider);box-sizing:border-box}.cmat-org-box{padding:.5em 1em;border-radius:.2em;box-shadow:0 2px 8px #00000059}.cmat-org-connector-horizontal{width:1em!important;height:0!important}.cmat-org-connector-vertical{width:0!important;height:1em!important}.cmat-org .cmat-org-self-vertical{margin-bottom:2%}\n"], dependencies: [{ kind: "component", type: CmatChartDesignerComponent, selector: "cmat-org-chart-designer", inputs: ["node", "hasParent", "enableControlHeight", "direction", "detailsBtnTitle"], outputs: ["detailsBtnClick"], exportAs: ["cmatOrgChartDesigner"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
99
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CmatOrgChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
100
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.2", type: CmatOrgChartComponent, isStandalone: true, selector: "cmat-org-chart", inputs: { nodes: "nodes", enableControlHeight: "enableControlHeight", direction: "direction", detailsBtnTitle: "detailsBtnTitle" }, outputs: { detailsBtnClick: "detailsBtnClick" }, exportAs: ["cmatOrgChart"], ngImport: i0, template: "<div class=\"cmat-org\">\r\n @for (node of nodes; track $index) {\r\n <div class=\"cmat-org-self-{{ direction }}\">\r\n <cmat-org-chart-designer [node]=\"node\" [direction]=\"direction\" [enableControlHeight]=\"enableControlHeight\"\r\n [detailsBtnTitle]=\"detailsBtnTitle\" (detailsBtnClick)=\"detailsBtnClick.emit($event)\"></cmat-org-chart-designer>\r\n </div>\r\n }\r\n</div>", styles: [".cmat-org-horizontal{padding:1em 0}.cmat-org-vertical{padding:0 1em}.cmat-org-border{border:.1em solid var(--cmat-divider);box-sizing:border-box}.cmat-org-box{padding:.5em 1em;border-radius:.2em;box-shadow:0 2px 8px #00000059}.cmat-org-connector-horizontal{width:1em!important;height:0!important}.cmat-org-connector-vertical{width:0!important;height:1em!important}.cmat-org .cmat-org-self-vertical{margin-bottom:2%}\n"], dependencies: [{ kind: "component", type: CmatChartDesignerComponent, selector: "cmat-org-chart-designer", inputs: ["node", "hasParent", "enableControlHeight", "direction", "detailsBtnTitle"], outputs: ["detailsBtnClick"], exportAs: ["cmatOrgChartDesigner"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
101
101
  }
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: CmatOrgChartComponent, decorators: [{
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: CmatOrgChartComponent, decorators: [{
103
103
  type: Component,
104
104
  args: [{ selector: 'cmat-org-chart', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatOrgChart', imports: [CmatChartDesignerComponent], template: "<div class=\"cmat-org\">\r\n @for (node of nodes; track $index) {\r\n <div class=\"cmat-org-self-{{ direction }}\">\r\n <cmat-org-chart-designer [node]=\"node\" [direction]=\"direction\" [enableControlHeight]=\"enableControlHeight\"\r\n [detailsBtnTitle]=\"detailsBtnTitle\" (detailsBtnClick)=\"detailsBtnClick.emit($event)\"></cmat-org-chart-designer>\r\n </div>\r\n }\r\n</div>", styles: [".cmat-org-horizontal{padding:1em 0}.cmat-org-vertical{padding:0 1em}.cmat-org-border{border:.1em solid var(--cmat-divider);box-sizing:border-box}.cmat-org-box{padding:.5em 1em;border-radius:.2em;box-shadow:0 2px 8px #00000059}.cmat-org-connector-horizontal{width:1em!important;height:0!important}.cmat-org-connector-vertical{width:0!important;height:1em!important}.cmat-org .cmat-org-self-vertical{margin-bottom:2%}\n"] }]
105
105
  }], propDecorators: { nodes: [{
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-components-org-chart.mjs","sources":["../../../projects/cmat/components/org-chart/node/chart-node.component.ts","../../../projects/cmat/components/org-chart/node/chart-node.component.html","../../../projects/cmat/components/org-chart/designer/chart-designer.component.ts","../../../projects/cmat/components/org-chart/designer/chart-designer.component.html","../../../projects/cmat/components/org-chart/org-chart.component.ts","../../../projects/cmat/components/org-chart/org-chart.component.html","../../../projects/cmat/components/org-chart/node/node.type.ts","../../../projects/cmat/components/org-chart/cmat-components-org-chart.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { INode } from './node.type';\r\n\r\n@Component({\r\n selector: 'cmat-org-chart-node',\r\n templateUrl: './chart-node.component.html',\r\n styleUrls: ['./chart-node.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatOrgChartNode',\r\n imports: [NgClass, MatIconModule, MatButtonModule]\r\n})\r\nexport class CmatChartNodeComponent implements OnChanges {\r\n @Input() node: INode;\r\n @Input() hasParent: boolean;\r\n @Input() enableControlHeight: boolean;\r\n @Input() direction: 'vertical' | 'horizontal' = 'vertical';\r\n @Input() detailsBtnTitle: string;\r\n\r\n @Output() detailsBtnClick = new EventEmitter<INode>();\r\n\r\n containerClass: string;\r\n connectorToParentHeight = '1em';\r\n maxHeightEm = 19.2;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.enableControlHeight) {\r\n if (this.enableControlHeight && this.node.heightFactor) {\r\n let newHeight = this.node.heightFactor * this.maxHeightEm;\r\n if (this.node.heightFactor >= 2) newHeight -= this.node.heightFactor - 1;\r\n this.connectorToParentHeight = `${newHeight}em`;\r\n }\r\n }\r\n\r\n if (changes.direction) {\r\n this.containerClass = `cmat-org-connector-${this.direction} `;\r\n }\r\n }\r\n}\r\n","<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n@if(hasParent){\r\n<div class=\"cmat-org-border\" [ngClass]=\"containerClass\" [style.height]=\"connectorToParentHeight\"></div>\r\n}\r\n<div class=\"cmat-org-box cmat-org-border cmat-org-background\" [ngClass]=\"node.cssClass\">\r\n @if(node.image!==''){\r\n <div class=\"cmat-org-image\" [style]=\"{ 'background-image': 'url(\\'' + node.image + '\\')' }\"\r\n [style.border-color]=\"node.color\"></div>\r\n }@else {\r\n <div class=\"text-center\">\r\n <mat-icon class=\"icon-size-16\" [svgIcon]=\"'heroicons_outline:user-circle'\">\r\n </mat-icon>\r\n </div>\r\n }\r\n\r\n <div class=\"cmat-org-container\">\r\n <div class=\"cmat-org-title\" [innerHTML]=\"node.title\" [style.color]=\"node.color\"></div>\r\n <div class=\"cmat-org-name\" [innerHTML]=\"node.name\"></div>\r\n \r\n @if(node.showDetail){\r\n <div class=\"button-container\">\r\n <button mat-flat-button class=\"cmat-org-btn cmat-org-btn-details\" color=\"primary\"\r\n (click)=\"detailsBtnClick.emit(node)\">\r\n {{ detailsBtnTitle }}\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n@if(node.children.length){\r\n<div class=\"cmat-org-border\" [ngClass]=\"containerClass\"></div>\r\n}","import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, HostBinding, Input, OnChanges, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { CmatChartNodeComponent } from '../node/chart-node.component';\r\nimport { INode } from '../node/node.type';\r\n\r\n@Component({\r\n selector: 'cmat-org-chart-designer',\r\n templateUrl: './chart-designer.component.html',\r\n styleUrls: ['./chart-designer.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatOrgChartDesigner',\r\n imports: [CmatChartNodeComponent, forwardRef(() => CmatChartDesignerComponent)]\r\n})\r\nexport class CmatChartDesignerComponent implements OnChanges {\r\n @Input() node: INode;\r\n @Input() hasParent = false;\r\n @Input() enableControlHeight: boolean;\r\n @Input() direction: 'vertical' | 'horizontal' = 'vertical';\r\n @Input() detailsBtnTitle: string;\r\n\r\n @Output() detailsBtnClick = new EventEmitter<INode>();\r\n\r\n chartNodeClass: string;\r\n\r\n\r\n @HostBinding('style.flex-direction')\r\n get hostClass(): string {\r\n return this.direction === 'vertical' ? 'column' : '';\r\n }\r\n\r\n @HostBinding('style.width')\r\n get hostWidthClass(): string {\r\n return this.direction === 'vertical' ? 'fit-content' : '';\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.direction) {\r\n this.chartNodeClass = `cmat-org-${this.direction}`;\r\n }\r\n }\r\n\r\n}\r\n","<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n<cmat-org-chart-node [class]=\"chartNodeClass\" [node]=\"node\" [hasParent]=\"hasParent\"\r\n [enableControlHeight]=\"enableControlHeight\" [direction]=\"direction\" [detailsBtnTitle]=\"detailsBtnTitle\"\r\n (detailsBtnClick)=\"detailsBtnClick.emit($event)\">\r\n</cmat-org-chart-node>\r\n\r\n<div class=\"cmat-org-reports-{{ direction }} cmat-org-reports\">\r\n @for (childNode of node.children; track $index) {\r\n <div class=\"cmat-org-org-container cmat-org-org-container-{{ direction }}\">\r\n <div class=\"cmat-org-connector-container cmat-org-connector-container-{{ direction }}\">\r\n <div class=\"cmat-org-connector cmat-org-border\" [style.border-color]=\"$first ? 'transparent' : ''\"></div>\r\n <div class=\"cmat-org-border\"></div>\r\n <div class=\"cmat-org-connector cmat-org-border\" [style.border-color]=\"$last ? 'transparent' : ''\"></div>\r\n </div>\r\n <cmat-org-chart-designer [node]=\"childNode\" [hasParent]=\"true\" [enableControlHeight]=\"enableControlHeight\"\r\n [direction]=\"direction\" [detailsBtnTitle]=\"detailsBtnTitle\" (detailsBtnClick)=\"detailsBtnClick.emit($event)\">\r\n </cmat-org-chart-designer>\r\n </div>\r\n }\r\n</div>","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\r\nimport { CmatChartDesignerComponent } from './designer/chart-designer.component';\r\nimport { INode } from './node/node.type';\r\n\r\n\r\n@Component({\r\n selector: 'cmat-org-chart',\r\n templateUrl: './org-chart.component.html',\r\n styleUrls: ['./org-chart.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatOrgChart',\r\n imports: [CmatChartDesignerComponent]\r\n})\r\nexport class CmatOrgChartComponent {\r\n @Input() nodes: INode[];\r\n @Input() enableControlHeight:boolean = false;\r\n @Input() direction: 'vertical' | 'horizontal' = 'vertical';\r\n @Input() detailsBtnTitle = '查看详细';\r\n\r\n @Output() detailsBtnClick = new EventEmitter<INode>();\r\n}\r\n","<div class=\"cmat-org\">\r\n @for (node of nodes; track $index) {\r\n <div class=\"cmat-org-self-{{ direction }}\">\r\n <cmat-org-chart-designer [node]=\"node\" [direction]=\"direction\" [enableControlHeight]=\"enableControlHeight\"\r\n [detailsBtnTitle]=\"detailsBtnTitle\" (detailsBtnClick)=\"detailsBtnClick.emit($event)\"></cmat-org-chart-designer>\r\n </div>\r\n }\r\n</div>","export interface INode {\r\n name: string;\r\n cssClass: string;\r\n image: string;\r\n title?: string;\r\n color?: string;\r\n showDetail: boolean;\r\n children: INode[];\r\n heightFactor?: number;\r\n}\r\n\r\nexport class ChartNode implements INode {\r\n name: string;\r\n cssClass: string;\r\n image: string;\r\n title?: string;\r\n color?: string;\r\n showDetail: boolean;\r\n children: ChartNode[];\r\n heightFactor?: number;\r\n parent?: ChartNode;\r\n\r\n constructor(structure: string[], parent?: ChartNode) {\r\n this.parent = parent;\r\n const [name, ...reports] = structure;\r\n this.name = name.split('(')[0].trim();\r\n const titleMatch = /\\(([^)]+)\\)/.exec(name);\r\n this.title = titleMatch?.[1].trim();\r\n\r\n this.children = reports.map(r => r.substring(1))\r\n .reduce((previous, current) => {\r\n if (!current.startsWith(' ')) {\r\n previous.push([]);\r\n }\r\n\r\n previous[previous.length - 1].push(current);\r\n return previous;\r\n }, [] as string[][])\r\n .map(r => new ChartNode(r, this)) ?? [];\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cmat-components-org-chart.mjs","sources":["../../../projects/cmat/components/org-chart/node/chart-node.component.ts","../../../projects/cmat/components/org-chart/node/chart-node.component.html","../../../projects/cmat/components/org-chart/designer/chart-designer.component.ts","../../../projects/cmat/components/org-chart/designer/chart-designer.component.html","../../../projects/cmat/components/org-chart/org-chart.component.ts","../../../projects/cmat/components/org-chart/org-chart.component.html","../../../projects/cmat/components/org-chart/node/node.type.ts","../../../projects/cmat/components/org-chart/cmat-components-org-chart.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { INode } from './node.type';\r\n\r\n@Component({\r\n selector: 'cmat-org-chart-node',\r\n templateUrl: './chart-node.component.html',\r\n styleUrls: ['./chart-node.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatOrgChartNode',\r\n imports: [NgClass, MatIconModule, MatButtonModule]\r\n})\r\nexport class CmatChartNodeComponent implements OnChanges {\r\n @Input() node: INode;\r\n @Input() hasParent: boolean;\r\n @Input() enableControlHeight: boolean;\r\n @Input() direction: 'vertical' | 'horizontal' = 'vertical';\r\n @Input() detailsBtnTitle: string;\r\n\r\n @Output() detailsBtnClick = new EventEmitter<INode>();\r\n\r\n containerClass: string;\r\n connectorToParentHeight = '1em';\r\n maxHeightEm = 19.2;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.enableControlHeight) {\r\n if (this.enableControlHeight && this.node.heightFactor) {\r\n let newHeight = this.node.heightFactor * this.maxHeightEm;\r\n if (this.node.heightFactor >= 2) newHeight -= this.node.heightFactor - 1;\r\n this.connectorToParentHeight = `${newHeight}em`;\r\n }\r\n }\r\n\r\n if (changes.direction) {\r\n this.containerClass = `cmat-org-connector-${this.direction} `;\r\n }\r\n }\r\n}\r\n","<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n@if(hasParent){\r\n<div class=\"cmat-org-border\" [ngClass]=\"containerClass\" [style.height]=\"connectorToParentHeight\"></div>\r\n}\r\n<div class=\"cmat-org-box cmat-org-border cmat-org-background\" [ngClass]=\"node.cssClass\">\r\n @if(node.image!==''){\r\n <div class=\"cmat-org-image\" [style]=\"{ 'background-image': 'url(\\'' + node.image + '\\')' }\"\r\n [style.border-color]=\"node.color\"></div>\r\n }@else {\r\n <div class=\"text-center\">\r\n <mat-icon class=\"icon-size-16\" [svgIcon]=\"'heroicons_outline:user-circle'\">\r\n </mat-icon>\r\n </div>\r\n }\r\n\r\n <div class=\"cmat-org-container\">\r\n <div class=\"cmat-org-title\" [innerHTML]=\"node.title\" [style.color]=\"node.color\"></div>\r\n <div class=\"cmat-org-name\" [innerHTML]=\"node.name\"></div>\r\n \r\n @if(node.showDetail){\r\n <div class=\"button-container\">\r\n <button mat-flat-button class=\"cmat-org-btn cmat-org-btn-details\" color=\"primary\"\r\n (click)=\"detailsBtnClick.emit(node)\">\r\n {{ detailsBtnTitle }}\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n@if(node.children.length){\r\n<div class=\"cmat-org-border\" [ngClass]=\"containerClass\"></div>\r\n}","import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, HostBinding, Input, OnChanges, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\r\nimport { CmatChartNodeComponent } from '../node/chart-node.component';\r\nimport { INode } from '../node/node.type';\r\n\r\n@Component({\r\n selector: 'cmat-org-chart-designer',\r\n templateUrl: './chart-designer.component.html',\r\n styleUrls: ['./chart-designer.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatOrgChartDesigner',\r\n imports: [CmatChartNodeComponent, forwardRef(() => CmatChartDesignerComponent)]\r\n})\r\nexport class CmatChartDesignerComponent implements OnChanges {\r\n @Input() node: INode;\r\n @Input() hasParent = false;\r\n @Input() enableControlHeight: boolean;\r\n @Input() direction: 'vertical' | 'horizontal' = 'vertical';\r\n @Input() detailsBtnTitle: string;\r\n\r\n @Output() detailsBtnClick = new EventEmitter<INode>();\r\n\r\n chartNodeClass: string;\r\n\r\n\r\n @HostBinding('style.flex-direction')\r\n get hostClass(): string {\r\n return this.direction === 'vertical' ? 'column' : '';\r\n }\r\n\r\n @HostBinding('style.width')\r\n get hostWidthClass(): string {\r\n return this.direction === 'vertical' ? 'fit-content' : '';\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.direction) {\r\n this.chartNodeClass = `cmat-org-${this.direction}`;\r\n }\r\n }\r\n\r\n}\r\n","<!-- eslint-disable @angular-eslint/template/no-inline-styles -->\r\n<cmat-org-chart-node [class]=\"chartNodeClass\" [node]=\"node\" [hasParent]=\"hasParent\"\r\n [enableControlHeight]=\"enableControlHeight\" [direction]=\"direction\" [detailsBtnTitle]=\"detailsBtnTitle\"\r\n (detailsBtnClick)=\"detailsBtnClick.emit($event)\">\r\n</cmat-org-chart-node>\r\n\r\n<div class=\"cmat-org-reports-{{ direction }} cmat-org-reports\">\r\n @for (childNode of node.children; track $index) {\r\n <div class=\"cmat-org-org-container cmat-org-org-container-{{ direction }}\">\r\n <div class=\"cmat-org-connector-container cmat-org-connector-container-{{ direction }}\">\r\n <div class=\"cmat-org-connector cmat-org-border\" [style.border-color]=\"$first ? 'transparent' : ''\"></div>\r\n <div class=\"cmat-org-border\"></div>\r\n <div class=\"cmat-org-connector cmat-org-border\" [style.border-color]=\"$last ? 'transparent' : ''\"></div>\r\n </div>\r\n <cmat-org-chart-designer [node]=\"childNode\" [hasParent]=\"true\" [enableControlHeight]=\"enableControlHeight\"\r\n [direction]=\"direction\" [detailsBtnTitle]=\"detailsBtnTitle\" (detailsBtnClick)=\"detailsBtnClick.emit($event)\">\r\n </cmat-org-chart-designer>\r\n </div>\r\n }\r\n</div>","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\r\nimport { CmatChartDesignerComponent } from './designer/chart-designer.component';\r\nimport { INode } from './node/node.type';\r\n\r\n\r\n@Component({\r\n selector: 'cmat-org-chart',\r\n templateUrl: './org-chart.component.html',\r\n styleUrls: ['./org-chart.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'cmatOrgChart',\r\n imports: [CmatChartDesignerComponent]\r\n})\r\nexport class CmatOrgChartComponent {\r\n @Input() nodes: INode[];\r\n @Input() enableControlHeight:boolean = false;\r\n @Input() direction: 'vertical' | 'horizontal' = 'vertical';\r\n @Input() detailsBtnTitle = '查看详细';\r\n\r\n @Output() detailsBtnClick = new EventEmitter<INode>();\r\n}\r\n","<div class=\"cmat-org\">\r\n @for (node of nodes; track $index) {\r\n <div class=\"cmat-org-self-{{ direction }}\">\r\n <cmat-org-chart-designer [node]=\"node\" [direction]=\"direction\" [enableControlHeight]=\"enableControlHeight\"\r\n [detailsBtnTitle]=\"detailsBtnTitle\" (detailsBtnClick)=\"detailsBtnClick.emit($event)\"></cmat-org-chart-designer>\r\n </div>\r\n }\r\n</div>","export interface INode {\r\n name: string;\r\n cssClass: string;\r\n image: string;\r\n title?: string;\r\n color?: string;\r\n showDetail: boolean;\r\n children: INode[];\r\n heightFactor?: number;\r\n}\r\n\r\nexport class ChartNode implements INode {\r\n name: string;\r\n cssClass: string;\r\n image: string;\r\n title?: string;\r\n color?: string;\r\n showDetail: boolean;\r\n children: ChartNode[];\r\n heightFactor?: number;\r\n parent?: ChartNode;\r\n\r\n constructor(structure: string[], parent?: ChartNode) {\r\n this.parent = parent;\r\n const [name, ...reports] = structure;\r\n this.name = name.split('(')[0].trim();\r\n const titleMatch = /\\(([^)]+)\\)/.exec(name);\r\n this.title = titleMatch?.[1].trim();\r\n\r\n this.children = reports.map(r => r.substring(1))\r\n .reduce((previous, current) => {\r\n if (!current.startsWith(' ')) {\r\n previous.push([]);\r\n }\r\n\r\n previous[previous.length - 1].push(current);\r\n return previous;\r\n }, [] as string[][])\r\n .map(r => new ChartNode(r, this)) ?? [];\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}