cmat 0.0.16 → 0.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (498) hide show
  1. package/components/carousel/carousel.component.d.ts +136 -0
  2. package/components/carousel/carousel.interface.d.ts +38 -0
  3. package/components/carousel/index.d.ts +5 -0
  4. package/components/carousel/public-api.d.ts +2 -0
  5. package/components/custom-formly/public-api.d.ts +1 -0
  6. package/components/custom-formly/types/knob/knob.component.d.ts +36 -0
  7. package/components/custom-formly/types/table/table.component.d.ts +3 -8
  8. package/components/custom-formly/wrappers/form-field/form-field.component.d.ts +4 -4
  9. package/components/image-viewer/image-viewer.component.d.ts +76 -0
  10. package/components/image-viewer/index.d.ts +5 -0
  11. package/components/image-viewer/public-api.d.ts +1 -0
  12. package/components/knob-input/index.d.ts +5 -0
  13. package/components/knob-input/knob-input.component.d.ts +95 -0
  14. package/components/knob-input/public-api.d.ts +1 -0
  15. package/components/material-datetimepicker/datetimepicker-input.d.ts +2 -2
  16. package/components/opt-input/index.d.ts +5 -0
  17. package/components/opt-input/models/config.d.ts +14 -0
  18. package/components/opt-input/otp-input.component.d.ts +70 -0
  19. package/components/opt-input/public-api.d.ts +1 -0
  20. package/components/opt-input/utils/keyboard-util.d.ts +9 -0
  21. package/components/opt-input/utils/object-util.d.ts +3 -0
  22. package/components/org-chart/designer/chart-designer.component.d.ts +17 -0
  23. package/components/org-chart/index.d.ts +5 -0
  24. package/components/org-chart/node/chart-node.component.d.ts +17 -0
  25. package/components/org-chart/node/node.type.d.ts +22 -0
  26. package/components/org-chart/org-chart.component.d.ts +12 -0
  27. package/components/org-chart/public-api.d.ts +2 -0
  28. package/components/popover/popover.interfaces.d.ts +1 -1
  29. package/components/select-search/select-search.component.d.ts +2 -1
  30. package/components/select-table/index.d.ts +5 -0
  31. package/components/select-table/public-api.d.ts +2 -0
  32. package/components/select-table/select-table.component.d.ts +96 -0
  33. package/components/select-table/select-table.type.d.ts +20 -0
  34. package/components/select-tree/select-tree.component.d.ts +11 -12
  35. package/components/speed-dial/index.d.ts +5 -0
  36. package/components/speed-dial/public-api.d.ts +2 -0
  37. package/components/speed-dial/speed-dial.component.d.ts +63 -0
  38. package/components/transfer-picker/interface.d.ts +0 -1
  39. package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.d.ts +8 -6
  40. package/components/treetable/index.d.ts +5 -0
  41. package/components/treetable/public-api.d.ts +2 -0
  42. package/components/treetable/treetable.component.d.ts +32 -0
  43. package/components/treetable/treetable.interface.d.ts +9 -0
  44. package/directives/animate-on-scroll/animate-on-scroll.directive.d.ts +4 -4
  45. package/directives/arrow-cursor/arrow-cursor.directive.d.ts +31 -0
  46. package/directives/arrow-cursor/index.d.ts +5 -0
  47. package/directives/arrow-cursor/public-api.d.ts +1 -0
  48. package/directives/data-exporter/constants.d.ts +26 -0
  49. package/directives/data-exporter/data-exporter.directive.d.ts +18 -0
  50. package/directives/data-exporter/index.d.ts +5 -0
  51. package/directives/data-exporter/mime.d.ts +5 -0
  52. package/directives/data-exporter/options.d.ts +21 -0
  53. package/directives/data-exporter/public-api.d.ts +2 -0
  54. package/directives/data-exporter/services/exporters/csv-exporter.service.d.ts +12 -0
  55. package/directives/data-exporter/services/exporters/exporter.d.ts +4 -0
  56. package/directives/data-exporter/services/exporters/file-exporter.d.ts +8 -0
  57. package/directives/data-exporter/services/exporters/json-exporter.service.d.ts +11 -0
  58. package/directives/data-exporter/services/exporters/txt-exporter.service.d.ts +12 -0
  59. package/directives/data-exporter/services/exporters/worksheet-exporter.d.ts +10 -0
  60. package/directives/data-exporter/services/exporters/xls-exporter.service.d.ts +14 -0
  61. package/directives/data-exporter/services/exporters/xlsx-exporter.service.d.ts +9 -0
  62. package/directives/data-exporter/services/file-util.d.ts +8 -0
  63. package/directives/data-exporter/services/service-locator.service.d.ts +11 -0
  64. package/directives/debounce/abstract-debounce.directive.d.ts +1 -1
  65. package/fesm2022/cmat-animations.mjs.map +1 -1
  66. package/fesm2022/cmat-components-adapter.mjs +9 -9
  67. package/fesm2022/cmat-components-adapter.mjs.map +1 -1
  68. package/fesm2022/cmat-components-breadcrumb.mjs +10 -10
  69. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  70. package/fesm2022/cmat-components-card.mjs +4 -4
  71. package/fesm2022/cmat-components-card.mjs.map +1 -1
  72. package/fesm2022/cmat-components-carousel.mjs +711 -0
  73. package/fesm2022/cmat-components-carousel.mjs.map +1 -0
  74. package/fesm2022/cmat-components-cascade.mjs +12 -12
  75. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  76. package/fesm2022/cmat-components-chip-input.mjs +5 -5
  77. package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
  78. package/fesm2022/cmat-components-custom-formly.mjs +168 -155
  79. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
  80. package/fesm2022/cmat-components-date-range.mjs +5 -5
  81. package/fesm2022/cmat-components-date-range.mjs.map +1 -1
  82. package/fesm2022/cmat-components-drawer.mjs +6 -6
  83. package/fesm2022/cmat-components-drawer.mjs.map +1 -1
  84. package/fesm2022/cmat-components-fullscreen.mjs +4 -4
  85. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
  86. package/fesm2022/cmat-components-highlight.mjs +7 -7
  87. package/fesm2022/cmat-components-highlight.mjs.map +1 -1
  88. package/fesm2022/cmat-components-image-viewer.mjs +227 -0
  89. package/fesm2022/cmat-components-image-viewer.mjs.map +1 -0
  90. package/fesm2022/cmat-components-json-editor.mjs +4 -4
  91. package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
  92. package/fesm2022/cmat-components-knob-input.mjs +404 -0
  93. package/fesm2022/cmat-components-knob-input.mjs.map +1 -0
  94. package/fesm2022/cmat-components-masonry.mjs +4 -4
  95. package/fesm2022/cmat-components-masonry.mjs.map +1 -1
  96. package/fesm2022/cmat-components-material-color-picker.mjs +4 -4
  97. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  98. package/fesm2022/cmat-components-material-datetimepicker.mjs +53 -53
  99. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  100. package/fesm2022/cmat-components-navigation.mjs +51 -51
  101. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  102. package/fesm2022/cmat-components-opt-input.mjs +457 -0
  103. package/fesm2022/cmat-components-opt-input.mjs.map +1 -0
  104. package/fesm2022/cmat-components-org-chart.mjs +141 -0
  105. package/fesm2022/cmat-components-org-chart.mjs.map +1 -0
  106. package/fesm2022/cmat-components-pagination.mjs +13 -13
  107. package/fesm2022/cmat-components-pagination.mjs.map +1 -1
  108. package/fesm2022/cmat-components-password-strength.mjs +12 -12
  109. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  110. package/fesm2022/cmat-components-popover.mjs +10 -10
  111. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  112. package/fesm2022/cmat-components-progress-bar.mjs +4 -4
  113. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
  114. package/fesm2022/cmat-components-rating.mjs +4 -4
  115. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  116. package/fesm2022/cmat-components-select-search.mjs +11 -11
  117. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  118. package/fesm2022/cmat-components-select-table.mjs +658 -0
  119. package/fesm2022/cmat-components-select-table.mjs.map +1 -0
  120. package/fesm2022/cmat-components-select-tree.mjs +75 -57
  121. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  122. package/fesm2022/cmat-components-speed-dial.mjs +312 -0
  123. package/fesm2022/cmat-components-speed-dial.mjs.map +1 -0
  124. package/fesm2022/cmat-components-timeline.mjs +14 -14
  125. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  126. package/fesm2022/cmat-components-toast.mjs +11 -11
  127. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  128. package/fesm2022/cmat-components-transfer-picker.mjs +60 -41
  129. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  130. package/fesm2022/cmat-components-treetable.mjs +122 -0
  131. package/fesm2022/cmat-components-treetable.mjs.map +1 -0
  132. package/fesm2022/cmat-components-upload.mjs +11 -11
  133. package/fesm2022/cmat-components-upload.mjs.map +1 -1
  134. package/fesm2022/cmat-directives-animate-on-scroll.mjs +21 -21
  135. package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
  136. package/fesm2022/cmat-directives-arrow-cursor.mjs +184 -0
  137. package/fesm2022/cmat-directives-arrow-cursor.mjs.map +1 -0
  138. package/fesm2022/cmat-directives-autofocus.mjs +3 -3
  139. package/fesm2022/cmat-directives-autofocus.mjs.map +1 -1
  140. package/fesm2022/cmat-directives-data-exporter.mjs +324 -0
  141. package/fesm2022/cmat-directives-data-exporter.mjs.map +1 -0
  142. package/fesm2022/cmat-directives-debounce.mjs +9 -9
  143. package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
  144. package/fesm2022/cmat-directives-digit-only.mjs +8 -6
  145. package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
  146. package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
  147. package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -1
  148. package/fesm2022/cmat-lib-mock-api.mjs +6 -6
  149. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
  150. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  151. package/fesm2022/cmat-pipes-bytes.mjs.map +1 -1
  152. package/fesm2022/cmat-pipes-date-format.mjs +3 -3
  153. package/fesm2022/cmat-pipes-date-format.mjs.map +1 -1
  154. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
  155. package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
  156. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  157. package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
  158. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  159. package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
  160. package/fesm2022/cmat-pipes-secure.mjs +3 -3
  161. package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
  162. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  163. package/fesm2022/cmat-pipes-uppercase.mjs.map +1 -1
  164. package/fesm2022/cmat-services-alert.mjs +3 -3
  165. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  166. package/fesm2022/cmat-services-config.mjs +6 -6
  167. package/fesm2022/cmat-services-config.mjs.map +1 -1
  168. package/fesm2022/cmat-services-confirmation.mjs +7 -7
  169. package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
  170. package/fesm2022/cmat-services-data.mjs +5 -5
  171. package/fesm2022/cmat-services-data.mjs.map +1 -1
  172. package/fesm2022/cmat-services-export-as.mjs +211 -0
  173. package/fesm2022/cmat-services-export-as.mjs.map +1 -0
  174. package/fesm2022/cmat-services-loading.mjs +6 -6
  175. package/fesm2022/cmat-services-loading.mjs.map +1 -1
  176. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  177. package/fesm2022/cmat-services-local-storage.mjs.map +1 -1
  178. package/fesm2022/cmat-services-media-watcher.mjs +3 -3
  179. package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
  180. package/fesm2022/cmat-services-platform.mjs +3 -3
  181. package/fesm2022/cmat-services-platform.mjs.map +1 -1
  182. package/fesm2022/cmat-services-splash-screen.mjs +3 -3
  183. package/fesm2022/cmat-services-splash-screen.mjs.map +1 -1
  184. package/fesm2022/cmat-services-title.mjs +3 -3
  185. package/fesm2022/cmat-services-title.mjs.map +1 -1
  186. package/fesm2022/cmat-services-translation.mjs +3 -3
  187. package/fesm2022/cmat-services-translation.mjs.map +1 -1
  188. package/fesm2022/cmat-services-utils.mjs +35 -3
  189. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  190. package/fesm2022/cmat-validators.mjs.map +1 -1
  191. package/fesm2022/cmat-version.mjs.map +1 -1
  192. package/icons/arrow-cursor.svg +1 -1
  193. package/package.json +81 -147
  194. package/services/data/data.service.d.ts +1 -1
  195. package/services/export-as/export-as-config.model.d.ts +8 -0
  196. package/services/export-as/export-as.service.d.ts +43 -0
  197. package/services/export-as/index.d.ts +5 -0
  198. package/services/export-as/public-api.d.ts +2 -0
  199. package/services/utils/utils.service.d.ts +4 -0
  200. package/styles/overrides/angular-material.scss +95 -13
  201. package/esm2022/animations/cmat-animations.mjs +0 -5
  202. package/esm2022/animations/defaults.mjs +0 -12
  203. package/esm2022/animations/dropdown.mjs +0 -26
  204. package/esm2022/animations/expand-collapse.mjs +0 -17
  205. package/esm2022/animations/fade.mjs +0 -170
  206. package/esm2022/animations/public-api.mjs +0 -19
  207. package/esm2022/animations/shake.mjs +0 -59
  208. package/esm2022/animations/slide.mjs +0 -124
  209. package/esm2022/animations/transform.mjs +0 -16
  210. package/esm2022/animations/zoom.mjs +0 -38
  211. package/esm2022/cmat.mjs +0 -5
  212. package/esm2022/components/adapter/cmat-components-adapter.mjs +0 -5
  213. package/esm2022/components/adapter/datetime-adapter.mjs +0 -127
  214. package/esm2022/components/adapter/datetime-formats.mjs +0 -3
  215. package/esm2022/components/adapter/dayjs-date-adapter.mjs +0 -198
  216. package/esm2022/components/adapter/dayjs-date-formats.mjs +0 -12
  217. package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +0 -100
  218. package/esm2022/components/adapter/dayjs-datetime-formats.mjs +0 -21
  219. package/esm2022/components/adapter/native-datetime-adapter.mjs +0 -130
  220. package/esm2022/components/adapter/native-datetime-formats.mjs +0 -15
  221. package/esm2022/components/adapter/public-api.mjs +0 -9
  222. package/esm2022/components/breadcrumb/breadcrumb-item.directive.mjs +0 -19
  223. package/esm2022/components/breadcrumb/breadcrumb.component.mjs +0 -94
  224. package/esm2022/components/breadcrumb/breadcrumb.service.mjs +0 -333
  225. package/esm2022/components/breadcrumb/cmat-components-breadcrumb.mjs +0 -5
  226. package/esm2022/components/breadcrumb/public-api.mjs +0 -6
  227. package/esm2022/components/breadcrumb/types/breadcrumb.config.mjs +0 -2
  228. package/esm2022/components/breadcrumb/types/breadcrumb.mjs +0 -2
  229. package/esm2022/components/card/card.component.mjs +0 -49
  230. package/esm2022/components/card/card.types.mjs +0 -2
  231. package/esm2022/components/card/cmat-components-card.mjs +0 -5
  232. package/esm2022/components/card/public-api.mjs +0 -3
  233. package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +0 -49
  234. package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +0 -384
  235. package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +0 -22
  236. package/esm2022/components/cascade/cmat-components-cascade.mjs +0 -5
  237. package/esm2022/components/cascade/options.interface.mjs +0 -2
  238. package/esm2022/components/cascade/public-api.mjs +0 -4
  239. package/esm2022/components/chip-input/chip-input.component.mjs +0 -251
  240. package/esm2022/components/chip-input/cmat-components-chip-input.mjs +0 -5
  241. package/esm2022/components/chip-input/public-api.mjs +0 -2
  242. package/esm2022/components/custom-formly/cmat-components-custom-formly.mjs +0 -5
  243. package/esm2022/components/custom-formly/extension/addons.extension.mjs +0 -13
  244. package/esm2022/components/custom-formly/public-api.mjs +0 -29
  245. package/esm2022/components/custom-formly/types/button/button.component.mjs +0 -81
  246. package/esm2022/components/custom-formly/types/cascade/cascade.component.mjs +0 -71
  247. package/esm2022/components/custom-formly/types/checklist/checklist.component.mjs +0 -161
  248. package/esm2022/components/custom-formly/types/chips/chips.component.mjs +0 -55
  249. package/esm2022/components/custom-formly/types/color-picker/color-picker.component.mjs +0 -15
  250. package/esm2022/components/custom-formly/types/date-range/date-range.component.mjs +0 -25
  251. package/esm2022/components/custom-formly/types/datepicker/datepicker.component.mjs +0 -51
  252. package/esm2022/components/custom-formly/types/multicheckbox/multicheckbox.component.mjs +0 -88
  253. package/esm2022/components/custom-formly/types/number/number.component.mjs +0 -27
  254. package/esm2022/components/custom-formly/types/quill/quill.component.mjs +0 -171
  255. package/esm2022/components/custom-formly/types/radio/radio.component.mjs +0 -87
  256. package/esm2022/components/custom-formly/types/rating/rating.component.mjs +0 -27
  257. package/esm2022/components/custom-formly/types/repeat/repeat.component.mjs +0 -25
  258. package/esm2022/components/custom-formly/types/select/select.component.mjs +0 -167
  259. package/esm2022/components/custom-formly/types/select-tree/select-tree.component.mjs +0 -66
  260. package/esm2022/components/custom-formly/types/stepper/horizontal/stepper.component.mjs +0 -28
  261. package/esm2022/components/custom-formly/types/stepper/stepper.type.mjs +0 -2
  262. package/esm2022/components/custom-formly/types/stepper/vertical/stepper.component.mjs +0 -28
  263. package/esm2022/components/custom-formly/types/table/table.component.mjs +0 -127
  264. package/esm2022/components/custom-formly/types/tabs/tab.component.mjs +0 -16
  265. package/esm2022/components/custom-formly/types/tags/tags.component.mjs +0 -146
  266. package/esm2022/components/custom-formly/types/textarea/textarea.component.mjs +0 -25
  267. package/esm2022/components/custom-formly/types/upload/upload.component.mjs +0 -58
  268. package/esm2022/components/custom-formly/wrappers/addons/addons.component.mjs +0 -92
  269. package/esm2022/components/custom-formly/wrappers/card/card.component.mjs +0 -14
  270. package/esm2022/components/custom-formly/wrappers/expansion/expansion.component.mjs +0 -14
  271. package/esm2022/components/custom-formly/wrappers/form-field/form-field.component.mjs +0 -47
  272. package/esm2022/components/custom-formly/wrappers/panel/panel.component.mjs +0 -12
  273. package/esm2022/components/date-range/cmat-components-date-range.mjs +0 -5
  274. package/esm2022/components/date-range/date-range.component.mjs +0 -558
  275. package/esm2022/components/date-range/public-api.mjs +0 -2
  276. package/esm2022/components/drawer/cmat-components-drawer.mjs +0 -5
  277. package/esm2022/components/drawer/drawer.component.mjs +0 -301
  278. package/esm2022/components/drawer/drawer.service.mjs +0 -41
  279. package/esm2022/components/drawer/drawer.types.mjs +0 -2
  280. package/esm2022/components/drawer/public-api.mjs +0 -4
  281. package/esm2022/components/fullscreen/cmat-components-fullscreen.mjs +0 -5
  282. package/esm2022/components/fullscreen/fullscreen.component.mjs +0 -44
  283. package/esm2022/components/fullscreen/public-api.mjs +0 -2
  284. package/esm2022/components/highlight/cmat-components-highlight.mjs +0 -5
  285. package/esm2022/components/highlight/highlight.component.mjs +0 -80
  286. package/esm2022/components/highlight/highlight.service.mjs +0 -47
  287. package/esm2022/components/highlight/public-api.mjs +0 -3
  288. package/esm2022/components/json-editor/cmat-components-json-editor.mjs +0 -5
  289. package/esm2022/components/json-editor/json-editor.component.mjs +0 -176
  290. package/esm2022/components/json-editor/public-api.mjs +0 -2
  291. package/esm2022/components/masonry/cmat-components-masonry.mjs +0 -5
  292. package/esm2022/components/masonry/masonry.component.mjs +0 -54
  293. package/esm2022/components/masonry/public-api.mjs +0 -2
  294. package/esm2022/components/material-color-picker/base-color.mjs +0 -13
  295. package/esm2022/components/material-color-picker/cmat-components-material-color-picker.mjs +0 -5
  296. package/esm2022/components/material-color-picker/material-color-picker.component.mjs +0 -147
  297. package/esm2022/components/material-color-picker/public-api.mjs +0 -3
  298. package/esm2022/components/material-color-picker/selected-color.mjs +0 -3
  299. package/esm2022/components/material-datetimepicker/calendar-body.mjs +0 -76
  300. package/esm2022/components/material-datetimepicker/calendar.mjs +0 -670
  301. package/esm2022/components/material-datetimepicker/clock.mjs +0 -290
  302. package/esm2022/components/material-datetimepicker/cmat-components-material-datetimepicker.mjs +0 -5
  303. package/esm2022/components/material-datetimepicker/datetimepicker-animations.mjs +0 -34
  304. package/esm2022/components/material-datetimepicker/datetimepicker-errors.mjs +0 -6
  305. package/esm2022/components/material-datetimepicker/datetimepicker-filtertype.mjs +0 -8
  306. package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +0 -341
  307. package/esm2022/components/material-datetimepicker/datetimepicker-intl.mjs +0 -63
  308. package/esm2022/components/material-datetimepicker/datetimepicker-toggle.mjs +0 -87
  309. package/esm2022/components/material-datetimepicker/datetimepicker-types.mjs +0 -2
  310. package/esm2022/components/material-datetimepicker/datetimepicker.mjs +0 -531
  311. package/esm2022/components/material-datetimepicker/month-view.mjs +0 -141
  312. package/esm2022/components/material-datetimepicker/multi-year-view.mjs +0 -197
  313. package/esm2022/components/material-datetimepicker/public-api.mjs +0 -11
  314. package/esm2022/components/material-datetimepicker/time.mjs +0 -455
  315. package/esm2022/components/material-datetimepicker/year-view.mjs +0 -124
  316. package/esm2022/components/navigation/cmat-components-navigation.mjs +0 -5
  317. package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +0 -70
  318. package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +0 -82
  319. package/esm2022/components/navigation/horizontal/components/divider/divider.component.mjs +0 -47
  320. package/esm2022/components/navigation/horizontal/components/spacer/spacer.component.mjs +0 -47
  321. package/esm2022/components/navigation/horizontal/horizontal.component.mjs +0 -87
  322. package/esm2022/components/navigation/navigation.service.mjs +0 -140
  323. package/esm2022/components/navigation/navigation.types.mjs +0 -3
  324. package/esm2022/components/navigation/public-api.mjs +0 -5
  325. package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +0 -162
  326. package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +0 -60
  327. package/esm2022/components/navigation/vertical/components/collapsable/collapsable.component.mjs +0 -277
  328. package/esm2022/components/navigation/vertical/components/divider/divider.component.mjs +0 -56
  329. package/esm2022/components/navigation/vertical/components/group/group.component.mjs +0 -78
  330. package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +0 -56
  331. package/esm2022/components/navigation/vertical/vertical.component.mjs +0 -584
  332. package/esm2022/components/pagination/cmat-components-pagination.mjs +0 -5
  333. package/esm2022/components/pagination/pagination.component.mjs +0 -67
  334. package/esm2022/components/pagination/pagination.directive.mjs +0 -197
  335. package/esm2022/components/pagination/pagination.instance.mjs +0 -2
  336. package/esm2022/components/pagination/pagination.pipe.mjs +0 -100
  337. package/esm2022/components/pagination/pagination.service.mjs +0 -90
  338. package/esm2022/components/pagination/public-api.mjs +0 -6
  339. package/esm2022/components/password-strength/animations/index.mjs +0 -48
  340. package/esm2022/components/password-strength/cmat-components-password-strength.mjs +0 -5
  341. package/esm2022/components/password-strength/enum.mjs +0 -17
  342. package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +0 -27
  343. package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +0 -206
  344. package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +0 -150
  345. package/esm2022/components/password-strength/mat-password-strength-validator.mjs +0 -36
  346. package/esm2022/components/password-strength/public-api.mjs +0 -4
  347. package/esm2022/components/password-strength/regexp.class.mjs +0 -8
  348. package/esm2022/components/popover/cmat-components-popover.mjs +0 -5
  349. package/esm2022/components/popover/popover-trigger.mjs +0 -442
  350. package/esm2022/components/popover/popover.component.mjs +0 -348
  351. package/esm2022/components/popover/popover.errors.mjs +0 -27
  352. package/esm2022/components/popover/popover.interfaces.mjs +0 -2
  353. package/esm2022/components/popover/popover.target.mjs +0 -18
  354. package/esm2022/components/popover/popover.type.mjs +0 -2
  355. package/esm2022/components/popover/public-api.mjs +0 -5
  356. package/esm2022/components/progress-bar/cmat-components-progress-bar.mjs +0 -5
  357. package/esm2022/components/progress-bar/progress-bar.component.mjs +0 -58
  358. package/esm2022/components/progress-bar/public-api.mjs +0 -2
  359. package/esm2022/components/rating/cmat-components-rating.mjs +0 -5
  360. package/esm2022/components/rating/public-api.mjs +0 -2
  361. package/esm2022/components/rating/rating.component.mjs +0 -202
  362. package/esm2022/components/select-search/cmat-components-select-search.mjs +0 -5
  363. package/esm2022/components/select-search/default-options.mjs +0 -16
  364. package/esm2022/components/select-search/public-api.mjs +0 -3
  365. package/esm2022/components/select-search/select-no-entries-found.directive.mjs +0 -14
  366. package/esm2022/components/select-search/select-search-clear.directive.mjs +0 -14
  367. package/esm2022/components/select-search/select-search.component.mjs +0 -485
  368. package/esm2022/components/select-tree/cmat-components-select-tree.mjs +0 -5
  369. package/esm2022/components/select-tree/public-api.mjs +0 -4
  370. package/esm2022/components/select-tree/select-tree.component.mjs +0 -565
  371. package/esm2022/components/select-tree/select-tree.flatnode.mjs +0 -3
  372. package/esm2022/components/select-tree/select-tree.node.mjs +0 -3
  373. package/esm2022/components/timeline/cmat-components-timeline.mjs +0 -5
  374. package/esm2022/components/timeline/public-api.mjs +0 -3
  375. package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +0 -70
  376. package/esm2022/components/timeline/timeline.component.mjs +0 -107
  377. package/esm2022/components/toast/cmat-components-toast.mjs +0 -5
  378. package/esm2022/components/toast/models/global-config.model.mjs +0 -2
  379. package/esm2022/components/toast/models/toast.model.mjs +0 -2
  380. package/esm2022/components/toast/models/type.model.mjs +0 -2
  381. package/esm2022/components/toast/public-api.mjs +0 -7
  382. package/esm2022/components/toast/toast-modal.component.mjs +0 -53
  383. package/esm2022/components/toast/toast.component.mjs +0 -30
  384. package/esm2022/components/toast/toast.service.mjs +0 -122
  385. package/esm2022/components/transfer-picker/cmat-components-transfer-picker.mjs +0 -5
  386. package/esm2022/components/transfer-picker/filter/filter.component.mjs +0 -91
  387. package/esm2022/components/transfer-picker/interface.mjs +0 -17
  388. package/esm2022/components/transfer-picker/public-api.mjs +0 -8
  389. package/esm2022/components/transfer-picker/search/search.component.mjs +0 -38
  390. package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +0 -201
  391. package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +0 -32
  392. package/esm2022/components/transfer-picker/transfer-picker.component.mjs +0 -84
  393. package/esm2022/components/transfer-picker/transfer-picker.service.mjs +0 -137
  394. package/esm2022/components/upload/cmat-components-upload.mjs +0 -5
  395. package/esm2022/components/upload/files.type.mjs +0 -2
  396. package/esm2022/components/upload/files.util.service.mjs +0 -89
  397. package/esm2022/components/upload/public-api.mjs +0 -5
  398. package/esm2022/components/upload/upload-queue/upload-queue.component.mjs +0 -155
  399. package/esm2022/components/upload/upload.component.mjs +0 -118
  400. package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +0 -126
  401. package/esm2022/directives/animate-on-scroll/cmat-directives-animate-on-scroll.mjs +0 -5
  402. package/esm2022/directives/animate-on-scroll/public-api.mjs +0 -2
  403. package/esm2022/directives/animate-on-scroll/scroll.service.mjs +0 -38
  404. package/esm2022/directives/autofocus/autofocus.directive.mjs +0 -20
  405. package/esm2022/directives/autofocus/cmat-directives-autofocus.mjs +0 -5
  406. package/esm2022/directives/autofocus/public-api.mjs +0 -2
  407. package/esm2022/directives/debounce/abstract-debounce.directive.mjs +0 -34
  408. package/esm2022/directives/debounce/cmat-directives-debounce.mjs +0 -5
  409. package/esm2022/directives/debounce/debounce-click.directive.mjs +0 -25
  410. package/esm2022/directives/debounce/debounce-keyup.directive.mjs +0 -25
  411. package/esm2022/directives/debounce/public-api.mjs +0 -3
  412. package/esm2022/directives/digit-only/cmat-directives-digit-only.mjs +0 -5
  413. package/esm2022/directives/digit-only/digit-only.directive.mjs +0 -298
  414. package/esm2022/directives/digit-only/mask.directive.mjs +0 -84
  415. package/esm2022/directives/digit-only/public-api.mjs +0 -3
  416. package/esm2022/directives/equal-validator/cmat-directives-equal-validator.mjs +0 -5
  417. package/esm2022/directives/equal-validator/equal-validator.directive.mjs +0 -54
  418. package/esm2022/directives/equal-validator/public-api.mjs +0 -2
  419. package/esm2022/lib/mock-api/cmat-lib-mock-api.mjs +0 -5
  420. package/esm2022/lib/mock-api/mock-api.constants.mjs +0 -3
  421. package/esm2022/lib/mock-api/mock-api.interceptor.mjs +0 -73
  422. package/esm2022/lib/mock-api/mock-api.request-handler.mjs +0 -48
  423. package/esm2022/lib/mock-api/mock-api.service.mjs +0 -93
  424. package/esm2022/lib/mock-api/mock-api.types.mjs +0 -2
  425. package/esm2022/lib/mock-api/mock-api.utils.mjs +0 -16
  426. package/esm2022/lib/mock-api/public-api.mjs +0 -6
  427. package/esm2022/pipes/bytes/bytes.pipe.mjs +0 -25
  428. package/esm2022/pipes/bytes/cmat-pipes-bytes.mjs +0 -5
  429. package/esm2022/pipes/bytes/public-api.mjs +0 -2
  430. package/esm2022/pipes/date-format/cmat-pipes-date-format.mjs +0 -5
  431. package/esm2022/pipes/date-format/date-format.pipe.mjs +0 -20
  432. package/esm2022/pipes/date-format/public-api.mjs +0 -2
  433. package/esm2022/pipes/find-by-key/cmat-pipes-find-by-key.mjs +0 -5
  434. package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +0 -23
  435. package/esm2022/pipes/find-by-key/public-api.mjs +0 -2
  436. package/esm2022/pipes/group-by/cmat-pipes-group-by.mjs +0 -5
  437. package/esm2022/pipes/group-by/group-by.pipe.mjs +0 -29
  438. package/esm2022/pipes/group-by/public-api.mjs +0 -2
  439. package/esm2022/pipes/keys/cmat-pipes-keys.mjs +0 -5
  440. package/esm2022/pipes/keys/keys.pipe.mjs +0 -26
  441. package/esm2022/pipes/keys/public-api.mjs +0 -2
  442. package/esm2022/pipes/secure/cmat-pipes-secure.mjs +0 -5
  443. package/esm2022/pipes/secure/public-api.mjs +0 -2
  444. package/esm2022/pipes/secure/secure-pipe.mjs +0 -46
  445. package/esm2022/pipes/uppercase/cmat-pipes-uppercase.mjs +0 -5
  446. package/esm2022/pipes/uppercase/public-api.mjs +0 -2
  447. package/esm2022/pipes/uppercase/uppercase.pipe.mjs +0 -17
  448. package/esm2022/public-api.mjs +0 -2
  449. package/esm2022/services/alert/alert.dialog.mjs +0 -12
  450. package/esm2022/services/alert/alert.message.mjs +0 -9
  451. package/esm2022/services/alert/alert.service.mjs +0 -166
  452. package/esm2022/services/alert/cmat-services-alert.mjs +0 -5
  453. package/esm2022/services/alert/enum.mjs +0 -15
  454. package/esm2022/services/alert/public-api.mjs +0 -5
  455. package/esm2022/services/config/cmat-services-config.mjs +0 -5
  456. package/esm2022/services/config/config.constants.mjs +0 -3
  457. package/esm2022/services/config/config.service.mjs +0 -35
  458. package/esm2022/services/config/public-api.mjs +0 -4
  459. package/esm2022/services/config/urlStateConfig.service.mjs +0 -30
  460. package/esm2022/services/confirmation/cmat-services-confirmation.mjs +0 -5
  461. package/esm2022/services/confirmation/confirmation.service.mjs +0 -51
  462. package/esm2022/services/confirmation/confirmation.types.mjs +0 -2
  463. package/esm2022/services/confirmation/dialog/dialog.component.mjs +0 -25
  464. package/esm2022/services/confirmation/public-api.mjs +0 -3
  465. package/esm2022/services/data/cmat-services-data.mjs +0 -5
  466. package/esm2022/services/data/data.service.mjs +0 -169
  467. package/esm2022/services/data/public-api.mjs +0 -2
  468. package/esm2022/services/loading/cmat-services-loading.mjs +0 -5
  469. package/esm2022/services/loading/loading.interceptor.mjs +0 -29
  470. package/esm2022/services/loading/loading.service.mjs +0 -72
  471. package/esm2022/services/loading/public-api.mjs +0 -3
  472. package/esm2022/services/local-storage/cmat-services-local-storage.mjs +0 -5
  473. package/esm2022/services/local-storage/local-storage.service.mjs +0 -22
  474. package/esm2022/services/local-storage/public-api.mjs +0 -2
  475. package/esm2022/services/media-watcher/cmat-services-media-watcher.mjs +0 -5
  476. package/esm2022/services/media-watcher/media-watcher.service.mjs +0 -55
  477. package/esm2022/services/media-watcher/public-api.mjs +0 -2
  478. package/esm2022/services/platform/cmat-services-platform.mjs +0 -5
  479. package/esm2022/services/platform/platform.service.mjs +0 -46
  480. package/esm2022/services/platform/public-api.mjs +0 -2
  481. package/esm2022/services/splash-screen/cmat-services-splash-screen.mjs +0 -5
  482. package/esm2022/services/splash-screen/public-api.mjs +0 -2
  483. package/esm2022/services/splash-screen/splash-screen.service.mjs +0 -42
  484. package/esm2022/services/title/cmat-services-title.mjs +0 -5
  485. package/esm2022/services/title/public-api.mjs +0 -2
  486. package/esm2022/services/title/title.service.mjs +0 -46
  487. package/esm2022/services/translation/cmat-services-translation.mjs +0 -5
  488. package/esm2022/services/translation/public-api.mjs +0 -2
  489. package/esm2022/services/translation/translation.service.mjs +0 -62
  490. package/esm2022/services/utils/cmat-services-utils.mjs +0 -5
  491. package/esm2022/services/utils/public-api.mjs +0 -2
  492. package/esm2022/services/utils/utils.service.mjs +0 -435
  493. package/esm2022/validators/cmat-validators.mjs +0 -5
  494. package/esm2022/validators/public-api.mjs +0 -2
  495. package/esm2022/validators/validators.mjs +0 -33
  496. package/esm2022/version/cmat-version.mjs +0 -5
  497. package/esm2022/version/public-api.mjs +0 -2
  498. package/esm2022/version/version.mjs +0 -11
@@ -1,48 +0,0 @@
1
- import { animate, animation, keyframes, style } from '@angular/animations';
2
- export const flipInX = flipIn(1, 1, 0);
3
- export const flipInY = flipIn(1, 0, 1);
4
- export const shake = animation(animate('{{ timing }}s {{ delay }}s', keyframes([
5
- style({ transform: 'translate3d(0, 0, 0)', offset: 0 }),
6
- style({ transform: 'translate3d(-10px, 0, 0)', offset: 0.1 }),
7
- style({ transform: 'translate3d(10px, 0, 0)', offset: 0.2 }),
8
- style({ transform: 'translate3d(-10px, 0, 0)', offset: 0.3 }),
9
- style({ transform: 'translate3d(10px, 0, 0)', offset: 0.4 }),
10
- style({ transform: 'translate3d(-10px, 0, 0)', offset: 0.5 }),
11
- style({ transform: 'translate3d(10px, 0, 0)', offset: 0.6 }),
12
- style({ transform: 'translate3d(-10px, 0, 0)', offset: 0.7 }),
13
- style({ transform: 'translate3d(10px, 0, 0)', offset: 0.8 }),
14
- style({ transform: 'translate3d(-10px, 0, 0)', offset: 0.9 }),
15
- style({ transform: 'translate3d(0, 0, 0)', offset: 1 }),
16
- ])), { params: { timing: 1, delay: 0 } });
17
- function flipIn(timing, rotateX, rotateY) {
18
- const params = { timing: timing, delay: 0, rotateX, rotateY };
19
- return animation([
20
- // eslint-disable-next-line @typescript-eslint/naming-convention
21
- style({ 'backface-visibility': 'visible' }),
22
- animate('{{ timing }}s {{ delay }}s ease-in', keyframes([
23
- style({
24
- opacity: 0,
25
- transform: 'perspective(400px) rotate3d({{ rotateX }}, {{ rotateY }}, 0, 90deg)',
26
- offset: 0,
27
- }),
28
- style({
29
- opacity: 1,
30
- transform: 'perspective(400px) rotate3d({{ rotateX }}, {{ rotateY }}, 0, -20deg)',
31
- offset: 0.4,
32
- }),
33
- style({
34
- transform: 'perspective(400px) rotate3d({{ rotateX }}, {{ rotateY }}, 0, 10deg)',
35
- offset: 0.6,
36
- }),
37
- style({
38
- transform: 'perspective(400px) rotate3d({{ rotateX }}, {{ rotateY }}, 0, -5deg)',
39
- offset: 0.8,
40
- }),
41
- style({
42
- transform: 'perspective(400px) rotate3d(0, 0, 0, 0)',
43
- offset: 1,
44
- }),
45
- ])),
46
- ], { params });
47
- }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2NvbXBvbmVudHMvcGFzc3dvcmQtc3RyZW5ndGgvYW5pbWF0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBOEIsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZHLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN2QyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFdkMsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FDMUIsT0FBTyxDQUNILDRCQUE0QixFQUM1QixTQUFTLENBQUM7SUFDTixLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3ZELEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDN0QsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUM1RCxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQzdELEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDNUQsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUM3RCxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQzVELEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDN0QsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUM1RCxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQzdELEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7Q0FDMUQsQ0FBQyxDQUNMLEVBQ0QsRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUN0QyxDQUFDO0FBR0YsU0FBUyxNQUFNLENBQUMsTUFBYyxFQUFFLE9BQWUsRUFBRSxPQUFlO0lBQzVELE1BQU0sTUFBTSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUU5RCxPQUFPLFNBQVMsQ0FDWjtRQUNJLGdFQUFnRTtRQUNoRSxLQUFLLENBQUMsRUFBRSxxQkFBcUIsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUMzQyxPQUFPLENBQ0gsb0NBQW9DLEVBQ3BDLFNBQVMsQ0FBQztZQUNOLEtBQUssQ0FBQztnQkFDRixPQUFPLEVBQUUsQ0FBQztnQkFDVixTQUFTLEVBQ0wscUVBQXFFO2dCQUN6RSxNQUFNLEVBQUUsQ0FBQzthQUNaLENBQUM7WUFDRixLQUFLLENBQUM7Z0JBQ0YsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsU0FBUyxFQUNMLHNFQUFzRTtnQkFDMUUsTUFBTSxFQUFFLEdBQUc7YUFDZCxDQUFDO1lBQ0YsS0FBSyxDQUFDO2dCQUNGLFNBQVMsRUFDTCxxRUFBcUU7Z0JBQ3pFLE1BQU0sRUFBRSxHQUFHO2FBQ2QsQ0FBQztZQUNGLEtBQUssQ0FBQztnQkFDRixTQUFTLEVBQ0wscUVBQXFFO2dCQUN6RSxNQUFNLEVBQUUsR0FBRzthQUNkLENBQUM7WUFDRixLQUFLLENBQUM7Z0JBQ0YsU0FBUyxFQUFFLHlDQUF5QztnQkFDcEQsTUFBTSxFQUFFLENBQUM7YUFDWixDQUFDO1NBQ0wsQ0FBQyxDQUNMO0tBQ0osRUFDRCxFQUFFLE1BQU0sRUFBRSxDQUNiLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgYW5pbWF0aW9uLCBBbmltYXRpb25SZWZlcmVuY2VNZXRhZGF0YSwga2V5ZnJhbWVzLCBzdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGZsaXBJblggPSBmbGlwSW4oMSwgMSwgMCk7XHJcbmV4cG9ydCBjb25zdCBmbGlwSW5ZID0gZmxpcEluKDEsIDAsIDEpO1xyXG5cclxuZXhwb3J0IGNvbnN0IHNoYWtlID0gYW5pbWF0aW9uKFxyXG4gICAgYW5pbWF0ZShcclxuICAgICAgICAne3sgdGltaW5nIH19cyB7eyBkZWxheSB9fXMnLFxyXG4gICAgICAgIGtleWZyYW1lcyhbXHJcbiAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlM2QoMCwgMCwgMCknLCBvZmZzZXQ6IDAgfSksXHJcbiAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApJywgb2Zmc2V0OiAwLjEgfSksXHJcbiAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlM2QoMTBweCwgMCwgMCknLCBvZmZzZXQ6IDAuMiB9KSxcclxuICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCknLCBvZmZzZXQ6IDAuMyB9KSxcclxuICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGUzZCgxMHB4LCAwLCAwKScsIG9mZnNldDogMC40IH0pLFxyXG4gICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZTNkKC0xMHB4LCAwLCAwKScsIG9mZnNldDogMC41IH0pLFxyXG4gICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZTNkKDEwcHgsIDAsIDApJywgb2Zmc2V0OiAwLjYgfSksXHJcbiAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlM2QoLTEwcHgsIDAsIDApJywgb2Zmc2V0OiAwLjcgfSksXHJcbiAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlM2QoMTBweCwgMCwgMCknLCBvZmZzZXQ6IDAuOCB9KSxcclxuICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGUzZCgtMTBweCwgMCwgMCknLCBvZmZzZXQ6IDAuOSB9KSxcclxuICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGUzZCgwLCAwLCAwKScsIG9mZnNldDogMSB9KSxcclxuICAgICAgICBdKVxyXG4gICAgKSxcclxuICAgIHsgcGFyYW1zOiB7IHRpbWluZzogMSwgZGVsYXk6IDAgfSB9XHJcbik7XHJcblxyXG5cclxuZnVuY3Rpb24gZmxpcEluKHRpbWluZzogbnVtYmVyLCByb3RhdGVYOiBudW1iZXIsIHJvdGF0ZVk6IG51bWJlcik6IEFuaW1hdGlvblJlZmVyZW5jZU1ldGFkYXRhIHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHsgdGltaW5nOiB0aW1pbmcsIGRlbGF5OiAwLCByb3RhdGVYLCByb3RhdGVZIH07XHJcblxyXG4gICAgcmV0dXJuIGFuaW1hdGlvbihcclxuICAgICAgICBbXHJcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cclxuICAgICAgICAgICAgc3R5bGUoeyAnYmFja2ZhY2UtdmlzaWJpbGl0eSc6ICd2aXNpYmxlJyB9KSxcclxuICAgICAgICAgICAgYW5pbWF0ZShcclxuICAgICAgICAgICAgICAgICd7eyB0aW1pbmcgfX1zIHt7IGRlbGF5IH19cyBlYXNlLWluJyxcclxuICAgICAgICAgICAgICAgIGtleWZyYW1lcyhbXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKHt7IHJvdGF0ZVggfX0sIHt7IHJvdGF0ZVkgfX0sIDAsIDkwZGVnKScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDogMCxcclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2Qoe3sgcm90YXRlWCB9fSwge3sgcm90YXRlWSB9fSwgMCwgLTIwZGVnKScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDogMC40LFxyXG4gICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCh7eyByb3RhdGVYIH19LCB7eyByb3RhdGVZIH19LCAwLCAxMGRlZyknLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAuNixcclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2Qoe3sgcm90YXRlWCB9fSwge3sgcm90YXRlWSB9fSwgMCwgLTVkZWcpJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAwLjgsXHJcbiAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICdwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMCwgMCwgMCknLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDEsXHJcbiAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICBdKVxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgeyBwYXJhbXMgfVxyXG4gICAgKTtcclxufVxyXG4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21hdC1jb21wb25lbnRzLXBhc3N3b3JkLXN0cmVuZ3RoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL3Bhc3N3b3JkLXN0cmVuZ3RoL2NtYXQtY29tcG9uZW50cy1wYXNzd29yZC1zdHJlbmd0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,17 +0,0 @@
1
- /* eslint-disable @typescript-eslint/naming-convention */
2
- export var Colors;
3
- (function (Colors) {
4
- Colors["primary"] = "primary";
5
- Colors["accent"] = "accent";
6
- Colors["warn"] = "warn";
7
- })(Colors || (Colors = {}));
8
- export var Criteria;
9
- (function (Criteria) {
10
- Criteria["at_least_eight_chars"] = "minChar";
11
- Criteria["at_least_one_lower_case_char"] = "lowerCase";
12
- Criteria["at_least_one_upper_case_char"] = "upperCase";
13
- Criteria["at_least_one_digit_char"] = "digit";
14
- Criteria["at_least_one_special_char"] = " specialChar";
15
- Criteria["at_custom_chars"] = "customChars";
16
- })(Criteria || (Criteria = {}));
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9wYXNzd29yZC1zdHJlbmd0aC9lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RDtBQUN6RCxNQUFNLENBQU4sSUFBWSxNQUlYO0FBSkQsV0FBWSxNQUFNO0lBQ2QsNkJBQW1CLENBQUE7SUFDbkIsMkJBQWlCLENBQUE7SUFDakIsdUJBQWEsQ0FBQTtBQUNqQixDQUFDLEVBSlcsTUFBTSxLQUFOLE1BQU0sUUFJakI7QUFFRCxNQUFNLENBQU4sSUFBWSxRQU9YO0FBUEQsV0FBWSxRQUFRO0lBQ2hCLDRDQUFnQyxDQUFBO0lBQ2hDLHNEQUEwQyxDQUFBO0lBQzFDLHNEQUEwQyxDQUFBO0lBQzFDLDZDQUFpQyxDQUFBO0lBQ2pDLHNEQUEwQyxDQUFBO0lBQzFDLDJDQUErQixDQUFBO0FBQ25DLENBQUMsRUFQVyxRQUFRLEtBQVIsUUFBUSxRQU9uQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xyXG5leHBvcnQgZW51bSBDb2xvcnMge1xyXG4gICAgcHJpbWFyeSA9ICdwcmltYXJ5JyxcclxuICAgIGFjY2VudCA9ICdhY2NlbnQnLFxyXG4gICAgd2FybiA9ICd3YXJuJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBDcml0ZXJpYSB7XHJcbiAgICBhdF9sZWFzdF9laWdodF9jaGFycyA9ICdtaW5DaGFyJyxcclxuICAgIGF0X2xlYXN0X29uZV9sb3dlcl9jYXNlX2NoYXIgPSAnbG93ZXJDYXNlJyxcclxuICAgIGF0X2xlYXN0X29uZV91cHBlcl9jYXNlX2NoYXIgPSAndXBwZXJDYXNlJyxcclxuICAgIGF0X2xlYXN0X29uZV9kaWdpdF9jaGFyID0gJ2RpZ2l0JyxcclxuICAgIGF0X2xlYXN0X29uZV9zcGVjaWFsX2NoYXIgPSAnIHNwZWNpYWxDaGFyJyxcclxuICAgIGF0X2N1c3RvbV9jaGFycyA9ICdjdXN0b21DaGFycydcclxufVxyXG4iXX0=
@@ -1,27 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
2
- import { MatButtonModule } from '@angular/material/button';
3
- import { MatRippleModule } from '@angular/material/core';
4
- import { MatIconModule } from '@angular/material/icon';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/material/button";
7
- import * as i2 from "@angular/material/core";
8
- import * as i3 from "@angular/material/icon";
9
- export class CmatPassToggleVisibilityComponent {
10
- constructor() {
11
- this._type = 'text';
12
- }
13
- get type() {
14
- return this.isVisible ? 'text' : 'password';
15
- }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatPassToggleVisibilityComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
17
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: CmatPassToggleVisibilityComponent, isStandalone: true, selector: "cmat-pass-toggle-visibility", inputs: { isVisible: "isVisible", tabindex: "tabindex" }, exportAs: ["cmatPassToggleVisibility"], ngImport: i0, template: "<button type=\"button\" class=\"mat-icon-button cdk-focused cdk-mouse-focused\" mat-icon-button\r\n matRipple [matRippleCentered]=\"true\" [attr.tabindex]=\"tabindex ? tabindex : null\" (click)=\"isVisible = !isVisible\">\r\n <mat-icon svgIcon=\"{{isVisible ? 'mat_outline:visibility' : 'mat_outline:visibility_off' }}\"></mat-icon>\r\n</button>", dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i2.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
18
- }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatPassToggleVisibilityComponent, decorators: [{
20
- type: Component,
21
- args: [{ selector: 'cmat-pass-toggle-visibility', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatPassToggleVisibility', standalone: true, imports: [MatButtonModule, MatRippleModule, MatIconModule], template: "<button type=\"button\" class=\"mat-icon-button cdk-focused cdk-mouse-focused\" mat-icon-button\r\n matRipple [matRippleCentered]=\"true\" [attr.tabindex]=\"tabindex ? tabindex : null\" (click)=\"isVisible = !isVisible\">\r\n <mat-icon svgIcon=\"{{isVisible ? 'mat_outline:visibility' : 'mat_outline:visibility_off' }}\"></mat-icon>\r\n</button>" }]
22
- }], propDecorators: { isVisible: [{
23
- type: Input
24
- }], tabindex: [{
25
- type: Input
26
- }] } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LXBhc3MtdG9nZ2xlLXZpc2liaWxpdHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL3Bhc3N3b3JkLXN0cmVuZ3RoL21hdC1wYXNzLXRvZ2dsZS12aXNpYmlsaXR5L21hdC1wYXNzLXRvZ2dsZS12aXNpYmlsaXR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9wYXNzd29yZC1zdHJlbmd0aC9tYXQtcGFzcy10b2dnbGUtdmlzaWJpbGl0eS9tYXQtcGFzcy10b2dnbGUtdmlzaWJpbGl0eS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFhdkQsTUFBTSxPQUFPLGlDQUFpQztJQVQ5QztRQWVJLFVBQUssR0FBUyxNQUFNLENBQUM7S0FNeEI7SUFKRyxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQ2hELENBQUM7OEdBVlEsaUNBQWlDO2tHQUFqQyxpQ0FBaUMseUxDaEI5QyxpV0FHUywyQ0RXSyxlQUFlLDJJQUFFLGVBQWUsa1NBQUUsYUFBYTs7MkZBRWhELGlDQUFpQztrQkFUN0MsU0FBUzsrQkFDSSw2QkFBNkIsaUJBRXhCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sWUFDckMsMEJBQTBCLGNBQ3hCLElBQUksV0FDUCxDQUFDLGVBQWUsRUFBRSxlQUFlLEVBQUUsYUFBYSxDQUFDOzhCQUkxRCxTQUFTO3NCQURSLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdFJpcHBsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcblxyXG50eXBlIFR5cGUgPSAndGV4dCcgfCAncGFzc3dvcmQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NtYXQtcGFzcy10b2dnbGUtdmlzaWJpbGl0eScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWF0LXBhc3MtdG9nZ2xlLXZpc2liaWxpdHkuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgZXhwb3J0QXM6ICdjbWF0UGFzc1RvZ2dsZVZpc2liaWxpdHknLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtNYXRCdXR0b25Nb2R1bGUsIE1hdFJpcHBsZU1vZHVsZSwgTWF0SWNvbk1vZHVsZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIENtYXRQYXNzVG9nZ2xlVmlzaWJpbGl0eUNvbXBvbmVudCB7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgaXNWaXNpYmxlOiBib29sZWFuO1xyXG4gICAgQElucHV0KClcclxuICAgIHRhYmluZGV4Pzogc3RyaW5nO1xyXG5cclxuICAgIF90eXBlOiBUeXBlID0gJ3RleHQnO1xyXG5cclxuICAgIGdldCB0eXBlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWaXNpYmxlID8gJ3RleHQnIDogJ3Bhc3N3b3JkJztcclxuICAgIH1cclxuXHJcbn1cclxuIiwiPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJtYXQtaWNvbi1idXR0b24gY2RrLWZvY3VzZWQgY2RrLW1vdXNlLWZvY3VzZWRcIiBtYXQtaWNvbi1idXR0b25cclxuICAgIG1hdFJpcHBsZSBbbWF0UmlwcGxlQ2VudGVyZWRdPVwidHJ1ZVwiIFthdHRyLnRhYmluZGV4XT1cInRhYmluZGV4ID8gdGFiaW5kZXggOiBudWxsXCIgKGNsaWNrKT1cImlzVmlzaWJsZSA9ICFpc1Zpc2libGVcIj5cclxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwie3tpc1Zpc2libGUgPyAnbWF0X291dGxpbmU6dmlzaWJpbGl0eScgOiAnbWF0X291dGxpbmU6dmlzaWJpbGl0eV9vZmYnIH19XCI+PC9tYXQtaWNvbj5cclxuPC9idXR0b24+Il19
@@ -1,206 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
2
- import { FormControl, Validators } from '@angular/forms';
3
- import { MatProgressBarModule } from '@angular/material/progress-bar';
4
- import { Colors, Criteria } from '../enum';
5
- import { CmatPasswordStrengthValidator } from '../mat-password-strength-validator';
6
- import { RegExpValidator } from '../regexp.class';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/material/progress-bar";
9
- export class CmatPasswordStrengthComponent {
10
- constructor() {
11
- this.enableLengthRule = true;
12
- this.enableLowerCaseLetterRule = true;
13
- this.enableUpperCaseLetterRule = true;
14
- this.enableDigitRule = true;
15
- this.enableSpecialCharRule = true;
16
- this.min = 8;
17
- this.max = 30;
18
- this.warnThreshold = 21;
19
- this.accentThreshold = 81;
20
- this.strengthChanged = new EventEmitter();
21
- this.criteriaMap = new Map();
22
- // TO ACCESS VIA CONTENT CHILD
23
- this.passwordFormControl = new FormControl();
24
- this.passwordConfirmationFormControl = new FormControl();
25
- this.validatorsArray = [];
26
- this.cmatPasswordStrengthValidator = new CmatPasswordStrengthValidator();
27
- this._strength = 0;
28
- this._color = 'warn';
29
- }
30
- get strength() {
31
- return this._strength ? this._strength : 0;
32
- }
33
- get color() {
34
- return this._color;
35
- }
36
- ngOnInit() {
37
- this.setRulesAndValidators();
38
- if (this.password) {
39
- this.calculatePasswordStrength();
40
- }
41
- }
42
- ngOnChanges(changes) {
43
- if ((changes['externalError']?.firstChange) || (changes['password']?.isFirstChange())) {
44
- return;
45
- }
46
- else if (changes['externalError']?.currentValue) {
47
- this._color = Colors.warn;
48
- return;
49
- }
50
- else if (changes['password'] && changes['password'].previousValue === changes['password'].currentValue && !changes['password'].firstChange) {
51
- this._checkPassword();
52
- }
53
- else if (this.password && this.password.length > 0) {
54
- this._checkPassword();
55
- }
56
- else {
57
- this.reset();
58
- }
59
- }
60
- parseCustomValidatorsRegex() {
61
- if (this.customValidator instanceof RegExp) {
62
- return this.customValidator;
63
- }
64
- else {
65
- return RegExp(this.customValidator);
66
- }
67
- }
68
- setRulesAndValidators() {
69
- this.validatorsArray = [];
70
- this.criteriaMap = new Map();
71
- this.passwordConfirmationFormControl
72
- .setValidators(Validators.compose([
73
- Validators.required, this.cmatPasswordStrengthValidator.confirm(this.password)
74
- ]));
75
- this.validatorsArray.push(Validators.required);
76
- if (this.enableLengthRule) {
77
- this.criteriaMap.set(Criteria.at_least_eight_chars, RegExp(`^.{${this.min},${this.max}}$`));
78
- this.validatorsArray.push(Validators.minLength(this.min));
79
- this.validatorsArray.push(Validators.maxLength(this.max));
80
- }
81
- if (this.enableLowerCaseLetterRule) {
82
- this.criteriaMap.set(Criteria.at_least_one_lower_case_char, RegExpValidator.lowerCase);
83
- this.validatorsArray.push(Validators.pattern(RegExpValidator.lowerCase));
84
- }
85
- if (this.enableUpperCaseLetterRule) {
86
- this.criteriaMap.set(Criteria.at_least_one_upper_case_char, RegExpValidator.upperCase);
87
- this.validatorsArray.push(Validators.pattern(RegExpValidator.upperCase));
88
- }
89
- if (this.enableDigitRule) {
90
- this.criteriaMap.set(Criteria.at_least_one_digit_char, RegExpValidator.digit);
91
- this.validatorsArray.push(Validators.pattern(RegExpValidator.digit));
92
- }
93
- if (this.enableSpecialCharRule) {
94
- this.criteriaMap.set(Criteria.at_least_one_special_char, RegExpValidator.specialChar);
95
- this.validatorsArray.push(Validators.pattern(RegExpValidator.specialChar));
96
- }
97
- if (this.customValidator) {
98
- this.criteriaMap.set(Criteria.at_custom_chars, this.parseCustomValidatorsRegex());
99
- this.validatorsArray.push(Validators.pattern(this.parseCustomValidatorsRegex()));
100
- }
101
- this.criteriaMap.forEach((value, key) => {
102
- this.validatorsArray.push(this.cmatPasswordStrengthValidator.validate(key, value));
103
- });
104
- this.passwordFormControl.setValidators(Validators.compose([...this.validatorsArray]));
105
- this.validators = Validators.compose([...this.validatorsArray]);
106
- }
107
- calculatePasswordStrength() {
108
- const requirements = [];
109
- const unit = 100 / this.criteriaMap.size;
110
- requirements.push(this.enableLengthRule ? this._containAtLeastMinChars() : false, this.enableLowerCaseLetterRule ? this._containAtLeastOneLowerCaseLetter() : false, this.enableUpperCaseLetterRule ? this._containAtLeastOneUpperCaseLetter() : false, this.enableDigitRule ? this._containAtLeastOneDigit() : false, this.enableSpecialCharRule ? this._containAtLeastOneSpecialChar() : false, this.customValidator ? this._containCustomChars() : false);
111
- this._strength = requirements.filter(v => v).length * unit;
112
- this.strengthChanged.emit(this.strength);
113
- this.setRulesAndValidators();
114
- if (this._strength < this.warnThreshold) {
115
- this._color = Colors.warn;
116
- }
117
- else if (this._strength < this.accentThreshold) {
118
- this._color = Colors.accent;
119
- }
120
- else {
121
- this._color = Colors.primary;
122
- }
123
- }
124
- reset() {
125
- this._strength = 0;
126
- this.containAtLeastMinChars =
127
- this.containAtLeastOneLowerCaseLetter =
128
- this.containAtLeastOneUpperCaseLetter =
129
- this.containAtLeastOneDigit =
130
- this.containAtCustomChars =
131
- this.containAtLeastOneSpecialChar = false;
132
- this._color = Colors.warn;
133
- this.strengthChanged.emit(this.strength);
134
- }
135
- _containAtLeastMinChars() {
136
- this.containAtLeastMinChars = this.password.length >= this.min;
137
- return this.containAtLeastMinChars;
138
- }
139
- _containAtLeastOneLowerCaseLetter() {
140
- this.containAtLeastOneLowerCaseLetter =
141
- this.criteriaMap
142
- .get(Criteria.at_least_one_lower_case_char)?.test(this.password);
143
- return this.containAtLeastOneLowerCaseLetter || false;
144
- }
145
- _containAtLeastOneUpperCaseLetter() {
146
- this.containAtLeastOneUpperCaseLetter =
147
- this.criteriaMap
148
- .get(Criteria.at_least_one_upper_case_char)?.test(this.password);
149
- return this.containAtLeastOneUpperCaseLetter || false;
150
- }
151
- _containAtLeastOneDigit() {
152
- this.containAtLeastOneDigit =
153
- this.criteriaMap
154
- .get(Criteria.at_least_one_digit_char)?.test(this.password);
155
- return this.containAtLeastOneDigit || false;
156
- }
157
- _containAtLeastOneSpecialChar() {
158
- this.containAtLeastOneSpecialChar =
159
- this.criteriaMap
160
- .get(Criteria.at_least_one_special_char)?.test(this.password);
161
- return this.containAtLeastOneSpecialChar || false;
162
- }
163
- _containCustomChars() {
164
- this.containAtCustomChars =
165
- this.criteriaMap
166
- .get(Criteria.at_custom_chars)?.test(this.password);
167
- return this.containAtCustomChars || false;
168
- }
169
- _checkPassword() {
170
- this.calculatePasswordStrength();
171
- this.passwordConfirmationFormControl.updateValueAndValidity();
172
- }
173
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatPasswordStrengthComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
174
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: CmatPasswordStrengthComponent, isStandalone: true, selector: "cmat-password-strength", inputs: { password: "password", externalError: "externalError", enableLengthRule: "enableLengthRule", enableLowerCaseLetterRule: "enableLowerCaseLetterRule", enableUpperCaseLetterRule: "enableUpperCaseLetterRule", enableDigitRule: "enableDigitRule", enableSpecialCharRule: "enableSpecialCharRule", min: "min", max: "max", customValidator: "customValidator", warnThreshold: "warnThreshold", accentThreshold: "accentThreshold" }, outputs: { strengthChanged: "strengthChanged" }, exportAs: ["cmatPasswordStrength"], usesOnChanges: true, ngImport: i0, template: "<mat-progress-bar mode=\"determinate\" [color]=\"color\" [value]=\"strength\"></mat-progress-bar>", dependencies: [{ kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i1.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
175
- }
176
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatPasswordStrengthComponent, decorators: [{
177
- type: Component,
178
- args: [{ selector: 'cmat-password-strength', exportAs: 'cmatPasswordStrength', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [MatProgressBarModule], template: "<mat-progress-bar mode=\"determinate\" [color]=\"color\" [value]=\"strength\"></mat-progress-bar>" }]
179
- }], propDecorators: { password: [{
180
- type: Input
181
- }], externalError: [{
182
- type: Input
183
- }], enableLengthRule: [{
184
- type: Input
185
- }], enableLowerCaseLetterRule: [{
186
- type: Input
187
- }], enableUpperCaseLetterRule: [{
188
- type: Input
189
- }], enableDigitRule: [{
190
- type: Input
191
- }], enableSpecialCharRule: [{
192
- type: Input
193
- }], min: [{
194
- type: Input
195
- }], max: [{
196
- type: Input
197
- }], customValidator: [{
198
- type: Input
199
- }], warnThreshold: [{
200
- type: Input
201
- }], accentThreshold: [{
202
- type: Input
203
- }], strengthChanged: [{
204
- type: Output
205
- }] } });
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LXBhc3N3b3JkLXN0cmVuZ3RoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9wYXNzd29yZC1zdHJlbmd0aC9tYXQtcGFzc3dvcmQtc3RyZW5ndGgvbWF0LXBhc3N3b3JkLXN0cmVuZ3RoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9wYXNzd29yZC1zdHJlbmd0aC9tYXQtcGFzc3dvcmQtc3RyZW5ndGgvbWF0LXBhc3N3b3JkLXN0cmVuZ3RoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNySixPQUFPLEVBQUUsV0FBVyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzNDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBV2xELE1BQU0sT0FBTyw2QkFBNkI7SUFUMUM7UUFhYSxxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDeEIsOEJBQXlCLEdBQUcsSUFBSSxDQUFDO1FBQ2pDLDhCQUF5QixHQUFHLElBQUksQ0FBQztRQUNqQyxvQkFBZSxHQUFHLElBQUksQ0FBQztRQUN2QiwwQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFFN0IsUUFBRyxHQUFHLENBQUMsQ0FBQztRQUNSLFFBQUcsR0FBRyxFQUFFLENB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QkFBc0IsaUJBRWpCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsb0JBQW9CLENBQUM7OEJBR3RCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFFRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdOLGVBQWU7c0JBRGQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJztcclxuaW1wb3J0IHsgQ29sb3JzLCBDcml0ZXJpYSB9IGZyb20gJy4uL2VudW0nO1xyXG5pbXBvcnQgeyBDbWF0UGFzc3dvcmRTdHJlbmd0aFZhbGlkYXRvciB9IGZyb20gJy4uL21hdC1wYXNzd29yZC1zdHJlbmd0aC12YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBSZWdFeHBWYWxpZGF0b3IgfSBmcm9tICcuLi9yZWdleHAuY2xhc3MnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NtYXQtcGFzc3dvcmQtc3RyZW5ndGgnLFxyXG4gICAgZXhwb3J0QXM6ICdjbWF0UGFzc3dvcmRTdHJlbmd0aCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWF0LXBhc3N3b3JkLXN0cmVuZ3RoLmNvbXBvbmVudC5odG1sJyxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTWF0UHJvZ3Jlc3NCYXJNb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0UGFzc3dvcmRTdHJlbmd0aENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICAgIEBJbnB1dCgpIHBhc3N3b3JkOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBleHRlcm5hbEVycm9yOiBib29sZWFuO1xyXG5cclxuICAgIEBJbnB1dCgpIGVuYWJsZUxlbmd0aFJ1bGUgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgZW5hYmxlTG93ZXJDYXNlTGV0dGVyUnVsZSA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBlbmFibGVVcHBlckNhc2VMZXR0ZXJSdWxlID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGVuYWJsZURpZ2l0UnVsZSA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBlbmFibGVTcGVjaWFsQ2hhclJ1bGUgPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpIG1pbiA9IDg7XHJcbiAgICBASW5wdXQoKSBtYXggPSAzMDtcclxuICAgIEBJbnB1dCgpIGN1c3RvbVZhbGlkYXRvcjogUmVnRXhwO1xyXG5cclxuICAgIEBJbnB1dCgpIHdhcm5UaHJlc2hvbGQgPSAyMTtcclxuICAgIEBJbnB1dCgpIGFjY2VudFRocmVzaG9sZCA9IDgxO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgc3RyZW5ndGhDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcblxyXG4gICAgY3JpdGVyaWFNYXAgPSBuZXcgTWFwPENyaXRlcmlhLCBSZWdFeHA+KCk7XHJcblxyXG4gICAgY29udGFpbkF0TGVhc3RNaW5DaGFyczogYm9vbGVhbiB8IHZvaWQ7XHJcbiAgICBjb250YWluQXRMZWFzdE9uZUxvd2VyQ2FzZUxldHRlcjogYm9vbGVhbiB8IHZvaWQ7XHJcbiAgICBjb250YWluQXRMZWFzdE9uZVVwcGVyQ2FzZUxldHRlcjogYm9vbGVhbiB8IHZvaWQ7XHJcbiAgICBjb250YWluQXRMZWFzdE9uZURpZ2l0OiBib29sZWFuIHwgdm9pZDtcclxuICAgIGNvbnRhaW5BdExlYXN0T25lU3BlY2lhbENoYXI6IGJvb2xlYW4gfCB2b2lkO1xyXG4gICAgY29udGFpbkF0Q3VzdG9tQ2hhcnM6IGJvb2xlYW4gfCB2b2lkO1xyXG5cclxuICAgIC8vIFRPIEFDQ0VTUyBWSUEgQ09OVEVOVCBDSElMRFxyXG4gICAgcGFzc3dvcmRGb3JtQ29udHJvbDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcclxuICAgIHBhc3N3b3JkQ29uZmlybWF0aW9uRm9ybUNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcblxyXG4gICAgdmFsaWRhdG9yc0FycmF5OiBWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbiB8IG51bGw7XHJcbiAgICBjbWF0UGFzc3dvcmRTdHJlbmd0aFZhbGlkYXRvciA9IG5ldyBDbWF0UGFzc3dvcmRTdHJlbmd0aFZhbGlkYXRvcigpO1xyXG5cclxuICAgIHByaXZhdGUgX3N0cmVuZ3RoID0gMDtcclxuICAgIHByaXZhdGUgX2NvbG9yOiBUaGVtZVBhbGV0dGUgPSAnd2Fybic7XHJcblxyXG4gICAgZ2V0IHN0cmVuZ3RoKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0cmVuZ3RoID8gdGhpcy5fc3RyZW5ndGggOiAwO1xyXG4gICAgfVxyXG4gICAgZ2V0IGNvbG9yKCk6IFRoZW1lUGFsZXR0ZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbG9yO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2V0UnVsZXNBbmRWYWxpZGF0b3JzKCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnBhc3N3b3JkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlUGFzc3dvcmRTdHJlbmd0aCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKChjaGFuZ2VzWydleHRlcm5hbEVycm9yJ10/LmZpcnN0Q2hhbmdlKSB8fCAoY2hhbmdlc1sncGFzc3dvcmQnXT8uaXNGaXJzdENoYW5nZSgpKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2VzWydleHRlcm5hbEVycm9yJ10/LmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9jb2xvciA9IENvbG9ycy53YXJuO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfSBlbHNlIGlmIChjaGFuZ2VzWydwYXNzd29yZCddICYmIGNoYW5nZXNbJ3Bhc3N3b3JkJ10ucHJldmlvdXNWYWx1ZSA9PT0gY2hhbmdlc1sncGFzc3dvcmQnXS5jdXJyZW50VmFsdWUgJiYgIWNoYW5nZXNbJ3Bhc3N3b3JkJ10uZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgICAgICAgdGhpcy5fY2hlY2tQYXNzd29yZCgpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5wYXNzd29yZCAmJiB0aGlzLnBhc3N3b3JkLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5fY2hlY2tQYXNzd29yZCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcGFyc2VDdXN0b21WYWxpZGF0b3JzUmVnZXgoKTogUmVnRXhwIHtcclxuICAgICAgICBpZiAodGhpcy5jdXN0b21WYWxpZGF0b3IgaW5zdGFuY2VvZiBSZWdFeHApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tVmFsaWRhdG9yO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBSZWdFeHAodGhpcy5jdXN0b21WYWxpZGF0b3IpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRSdWxlc0FuZFZhbGlkYXRvcnMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0b3JzQXJyYXkgPSBbXTtcclxuICAgICAgICB0aGlzLmNyaXRlcmlhTWFwID0gbmV3IE1hcDxDcml0ZXJpYSwgUmVnRXhwPigpO1xyXG4gICAgICAgIHRoaXMucGFzc3dvcmRDb25maXJtYXRpb25Gb3JtQ29udHJvbFxyXG4gICAgICAgICAgICAuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLmNvbXBvc2UoW1xyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCwgdGhpcy5jbWF0UGFzc3dvcmRTdHJlbmd0aFZhbGlkYXRvci5jb25maXJtKHRoaXMucGFzc3dvcmQpXHJcbiAgICAgICAgICAgIF0pKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRvcnNBcnJheS5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICAgIGlmICh0aGlzLmVuYWJsZUxlbmd0aFJ1bGUpIHtcclxuICAgICAgICAgICAgdGhpcy5jcml0ZXJpYU1hcC5zZXQoQ3JpdGVyaWEuYXRfbGVhc3RfZWlnaHRfY2hhcnMsIFJlZ0V4cChgXi57JHt0aGlzLm1pbn0sJHt0aGlzLm1heH19JGApKTtcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0b3JzQXJyYXkucHVzaChWYWxpZGF0b3JzLm1pbkxlbmd0aCh0aGlzLm1pbikpO1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRvcnNBcnJheS5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmVuYWJsZUxvd2VyQ2FzZUxldHRlclJ1bGUpIHtcclxuICAgICAgICAgICAgdGhpcy5jcml0ZXJpYU1hcC5zZXQoQ3JpdGVyaWEuYXRfbGVhc3Rfb25lX2xvd2VyX2Nhc2VfY2hhciwgUmVnRXhwVmFsaWRhdG9yLmxvd2VyQ2FzZSk7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdG9yc0FycmF5LnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKFJlZ0V4cFZhbGlkYXRvci5sb3dlckNhc2UpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuZW5hYmxlVXBwZXJDYXNlTGV0dGVyUnVsZSkge1xyXG4gICAgICAgICAgICB0aGlzLmNyaXRlcmlhTWFwLnNldChDcml0ZXJpYS5hdF9sZWFzdF9vbmVfdXBwZXJfY2FzZV9jaGFyLCBSZWdFeHBWYWxpZGF0b3IudXBwZXJDYXNlKTtcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0b3JzQXJyYXkucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4oUmVnRXhwVmFsaWRhdG9yLnVwcGVyQ2FzZSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5lbmFibGVEaWdpdFJ1bGUpIHtcclxuICAgICAgICAgICAgdGhpcy5jcml0ZXJpYU1hcC5zZXQoQ3JpdGVyaWEuYXRfbGVhc3Rfb25lX2RpZ2l0X2NoYXIsIFJlZ0V4cFZhbGlkYXRvci5kaWdpdCk7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdG9yc0FycmF5LnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKFJlZ0V4cFZhbGlkYXRvci5kaWdpdCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5lbmFibGVTcGVjaWFsQ2hhclJ1bGUpIHtcclxuICAgICAgICAgICAgdGhpcy5jcml0ZXJpYU1hcC5zZXQoQ3JpdGVyaWEuYXRfbGVhc3Rfb25lX3NwZWNpYWxfY2hhciwgUmVnRXhwVmFsaWRhdG9yLnNwZWNpYWxDaGFyKTtcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0b3JzQXJyYXkucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4oUmVnRXhwVmFsaWRhdG9yLnNwZWNpYWxDaGFyKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmN1c3RvbVZhbGlkYXRvcikge1xyXG4gICAgICAgICAgICB0aGlzLmNyaXRlcmlhTWFwLnNldChDcml0ZXJpYS5hdF9jdXN0b21fY2hhcnMsIHRoaXMucGFyc2VDdXN0b21WYWxpZGF0b3JzUmVnZXgoKSk7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdG9yc0FycmF5LnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKHRoaXMucGFyc2VDdXN0b21WYWxpZGF0b3JzUmVnZXgoKSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5jcml0ZXJpYU1hcC5mb3JFYWNoKCh2YWx1ZTogYW55LCBrZXk6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRvcnNBcnJheS5wdXNoKHRoaXMuY21hdFBhc3N3b3JkU3RyZW5ndGhWYWxpZGF0b3IudmFsaWRhdGUoa2V5LCB2YWx1ZSkpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnBhc3N3b3JkRm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLmNvbXBvc2UoWy4uLnRoaXMudmFsaWRhdG9yc0FycmF5XSkpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdG9ycyA9IFZhbGlkYXRvcnMuY29tcG9zZShbLi4udGhpcy52YWxpZGF0b3JzQXJyYXldKTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgY2FsY3VsYXRlUGFzc3dvcmRTdHJlbmd0aCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCByZXF1aXJlbWVudHM6IGJvb2xlYW5bXSA9IFtdO1xyXG4gICAgICAgIGNvbnN0IHVuaXQgPSAxMDAgLyB0aGlzLmNyaXRlcmlhTWFwLnNpemU7XHJcblxyXG4gICAgICAgIHJlcXVpcmVtZW50cy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLmVuYWJsZUxlbmd0aFJ1bGUgPyB0aGlzLl9jb250YWluQXRMZWFzdE1pbkNoYXJzKCkgOiBmYWxzZSxcclxuICAgICAgICAgICAgdGhpcy5lbmFibGVMb3dlckNhc2VMZXR0ZXJSdWxlID8gdGhpcy5fY29udGFpbkF0TGVhc3RPbmVMb3dlckNhc2VMZXR0ZXIoKSA6IGZhbHNlLFxyXG4gICAgICAgICAgICB0aGlzLmVuYWJsZVVwcGVyQ2FzZUxldHRlclJ1bGUgPyB0aGlzLl9jb250YWluQXRMZWFzdE9uZVVwcGVyQ2FzZUxldHRlcigpIDogZmFsc2UsXHJcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlRGlnaXRSdWxlID8gdGhpcy5fY29udGFpbkF0TGVhc3RPbmVEaWdpdCgpIDogZmFsc2UsXHJcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlU3BlY2lhbENoYXJSdWxlID8gdGhpcy5fY29udGFpbkF0TGVhc3RPbmVTcGVjaWFsQ2hhcigpIDogZmFsc2UsXHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tVmFsaWRhdG9yID8gdGhpcy5fY29udGFpbkN1c3RvbUNoYXJzKCkgOiBmYWxzZVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuX3N0cmVuZ3RoID0gcmVxdWlyZW1lbnRzLmZpbHRlcih2ID0+IHYpLmxlbmd0aCAqIHVuaXQ7XHJcbiAgICAgICAgdGhpcy5zdHJlbmd0aENoYW5nZWQuZW1pdCh0aGlzLnN0cmVuZ3RoKTtcclxuICAgICAgICB0aGlzLnNldFJ1bGVzQW5kVmFsaWRhdG9ycygpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5fc3RyZW5ndGggPCB0aGlzLndhcm5UaHJlc2hvbGQpIHtcclxuICAgICAgICAgICAgdGhpcy5fY29sb3IgPSBDb2xvcnMud2FybjtcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX3N0cmVuZ3RoIDwgdGhpcy5hY2NlbnRUaHJlc2hvbGQpIHtcclxuICAgICAgICAgICAgdGhpcy5fY29sb3IgPSBDb2xvcnMuYWNjZW50O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NvbG9yID0gQ29sb3JzLnByaW1hcnk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlc2V0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3N0cmVuZ3RoID0gMDtcclxuICAgICAgICB0aGlzLmNvbnRhaW5BdExlYXN0TWluQ2hhcnMgPVxyXG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5BdExlYXN0T25lTG93ZXJDYXNlTGV0dGVyID1cclxuICAgICAgICAgICAgdGhpcy5jb250YWluQXRMZWFzdE9uZVVwcGVyQ2FzZUxldHRlciA9XHJcbiAgICAgICAgICAgIHRoaXMuY29udGFpbkF0TGVhc3RPbmVEaWdpdCA9XHJcbiAgICAgICAgICAgIHRoaXMuY29udGFpbkF0Q3VzdG9tQ2hhcnMgPVxyXG4gICAgICAgICAgICB0aGlzLmNvbnRhaW5BdExlYXN0T25lU3BlY2lhbENoYXIgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5fY29sb3IgPSBDb2xvcnMud2FybjtcclxuICAgICAgICB0aGlzLnN0cmVuZ3RoQ2hhbmdlZC5lbWl0KHRoaXMuc3RyZW5ndGgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2NvbnRhaW5BdExlYXN0TWluQ2hhcnMoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgdGhpcy5jb250YWluQXRMZWFzdE1pbkNoYXJzID0gdGhpcy5wYXNzd29yZC5sZW5ndGggPj0gdGhpcy5taW47XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFpbkF0TGVhc3RNaW5DaGFycztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jb250YWluQXRMZWFzdE9uZUxvd2VyQ2FzZUxldHRlcigpOiBib29sZWFuIHtcclxuICAgICAgICB0aGlzLmNvbnRhaW5BdExlYXN0T25lTG93ZXJDYXNlTGV0dGVyID1cclxuICAgICAgICAgICAgdGhpcy5jcml0ZXJpYU1hcFxyXG4gICAgICAgICAgICAgICAgLmdldChDcml0ZXJpYS5hdF9sZWFzdF9vbmVfbG93ZXJfY2FzZV9jaGFyKT8udGVzdCh0aGlzLnBhc3N3b3JkKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb250YWluQXRMZWFzdE9uZUxvd2VyQ2FzZUxldHRlciB8fCBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jb250YWluQXRMZWFzdE9uZVVwcGVyQ2FzZUxldHRlcigpOiBib29sZWFuIHtcclxuICAgICAgICB0aGlzLmNvbnRhaW5BdExlYXN0T25lVXBwZXJDYXNlTGV0dGVyID1cclxuICAgICAgICAgICAgdGhpcy5jcml0ZXJpYU1hcFxyXG4gICAgICAgICAgICAgICAgLmdldChDcml0ZXJpYS5hdF9sZWFzdF9vbmVfdXBwZXJfY2FzZV9jaGFyKT8udGVzdCh0aGlzLnBhc3N3b3JkKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb250YWluQXRMZWFzdE9uZVVwcGVyQ2FzZUxldHRlciB8fCBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jb250YWluQXRMZWFzdE9uZURpZ2l0KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHRoaXMuY29udGFpbkF0TGVhc3RPbmVEaWdpdCA9XHJcbiAgICAgICAgICAgIHRoaXMuY3JpdGVyaWFNYXBcclxuICAgICAgICAgICAgICAgIC5nZXQoQ3JpdGVyaWEuYXRfbGVhc3Rfb25lX2RpZ2l0X2NoYXIpPy50ZXN0KHRoaXMucGFzc3dvcmQpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRhaW5BdExlYXN0T25lRGlnaXQgfHwgZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY29udGFpbkF0TGVhc3RPbmVTcGVjaWFsQ2hhcigpOiBib29sZWFuIHtcclxuICAgICAgICB0aGlzLmNvbnRhaW5BdExlYXN0T25lU3BlY2lhbENoYXIgPVxyXG4gICAgICAgICAgICB0aGlzLmNyaXRlcmlhTWFwXHJcbiAgICAgICAgICAgICAgICAuZ2V0KENyaXRlcmlhLmF0X2xlYXN0X29uZV9zcGVjaWFsX2NoYXIpPy50ZXN0KHRoaXMucGFzc3dvcmQpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRhaW5BdExlYXN0T25lU3BlY2lhbENoYXIgfHwgZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY29udGFpbkN1c3RvbUNoYXJzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHRoaXMuY29udGFpbkF0Q3VzdG9tQ2hhcnMgPVxyXG4gICAgICAgICAgICB0aGlzLmNyaXRlcmlhTWFwXHJcbiAgICAgICAgICAgICAgICAuZ2V0KENyaXRlcmlhLmF0X2N1c3RvbV9jaGFycyk/LnRlc3QodGhpcy5wYXNzd29yZCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udGFpbkF0Q3VzdG9tQ2hhcnMgfHwgZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY2hlY2tQYXNzd29yZCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNhbGN1bGF0ZVBhc3N3b3JkU3RyZW5ndGgoKTtcclxuICAgICAgICB0aGlzLnBhc3N3b3JkQ29uZmlybWF0aW9uRm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxtYXQtcHJvZ3Jlc3MtYmFyIG1vZGU9XCJkZXRlcm1pbmF0ZVwiIFtjb2xvcl09XCJjb2xvclwiIFt2YWx1ZV09XCJzdHJlbmd0aFwiPjwvbWF0LXByb2dyZXNzLWJhcj4iXX0=
@@ -1,150 +0,0 @@
1
- import { animate, animateChild, keyframes, query, stagger, style, transition, trigger, useAnimation } from '@angular/animations';
2
- import { Component, Input, ViewEncapsulation } from '@angular/core';
3
- import { MatCardModule } from '@angular/material/card';
4
- import { MatIconModule } from '@angular/material/icon';
5
- import { shake } from '../animations';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/material/card";
8
- import * as i2 from "@angular/material/icon";
9
- export class CmatPasswordStrengthInfoComponent {
10
- constructor() {
11
- this.enableScoreInfo = false;
12
- this.lowerCaseCriteriaMsg = '包含至少一个小写字母';
13
- this.upperCaseCriteriaMsg = '包含至少一个大写字母';
14
- this.digitsCriteriaMsg = '包含至少一个数字';
15
- this.specialCharsCriteriaMsg = '包含至少一个特殊字符';
16
- this.customCharsCriteriaMsg = '包含至少一个传统字符';
17
- }
18
- ngOnInit() {
19
- if (!this.minCharsCriteriaMsg) {
20
- this.minCharsCriteriaMsg = `包含至少 ${this.passwordComponent.min} 个字符`;
21
- }
22
- }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatPasswordStrengthInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: CmatPasswordStrengthInfoComponent, isStandalone: true, selector: "cmat-password-strength-info", inputs: { passwordComponent: "passwordComponent", enableScoreInfo: "enableScoreInfo", lowerCaseCriteriaMsg: "lowerCaseCriteriaMsg", upperCaseCriteriaMsg: "upperCaseCriteriaMsg", digitsCriteriaMsg: "digitsCriteriaMsg", specialCharsCriteriaMsg: "specialCharsCriteriaMsg", customCharsCriteriaMsg: "customCharsCriteriaMsg", minCharsCriteriaMsg: "minCharsCriteriaMsg" }, exportAs: ["cmatPasswordStrengthInfo"], ngImport: i0, template: "<mat-card class=\"info-card\" @list>\r\n <mat-card-content>\r\n @if (passwordComponent.enableLowerCaseLetterRule) {\r\n <div class=\"info-row\" @items>\r\n @if (passwordComponent.containAtLeastOneLowerCaseLetter) {\r\n <mat-icon color=\"primary\" svgIcon=\"mat_outline:done\" @positiveState></mat-icon>\r\n } @else {\r\n <mat-icon color=\"warn\" svgIcon=\"mat_outline:error\" @negativeState></mat-icon>\r\n }\r\n <span>{{lowerCaseCriteriaMsg}}</span>\r\n </div>\r\n }\r\n\r\n @if (passwordComponent.enableUpperCaseLetterRule) {\r\n <div class=\"info-row\" @items>\r\n @if (passwordComponent.containAtLeastOneUpperCaseLetter) {\r\n <mat-icon color=\"primary\" svgIcon=\"mat_outline:done\" @positiveState></mat-icon>\r\n } @else {\r\n <mat-icon color=\"warn\" svgIcon=\"mat_outline:error\" @negativeState></mat-icon>\r\n }\r\n <span>{{upperCaseCriteriaMsg}}</span>\r\n </div>\r\n }\r\n\r\n @if (passwordComponent.enableDigitRule) {\r\n <div class=\"info-row\" @items>\r\n @if (passwordComponent.containAtLeastOneDigit) {\r\n <mat-icon color=\"primary\" svgIcon=\"mat_outline:done\" @positiveState></mat-icon>\r\n } @else {\r\n <mat-icon color=\"warn\" svgIcon=\"mat_outline:error\" @negativeState></mat-icon>\r\n }\r\n <span>{{digitsCriteriaMsg}}</span>\r\n </div>\r\n }\r\n\r\n @if (passwordComponent.enableSpecialCharRule) {\r\n <div class=\"info-row\" @items>\r\n @if (passwordComponent.containAtLeastOneSpecialChar) {\r\n <mat-icon color=\"primary\" svgIcon=\"mat_outline:done\" @positiveState></mat-icon>\r\n } @else {\r\n <mat-icon color=\"warn\" svgIcon=\"mat_outline:error\" @negativeState></mat-icon>\r\n }\r\n <span>{{specialCharsCriteriaMsg}}</span>\r\n </div>\r\n }\r\n\r\n @if (passwordComponent.enableLengthRule) {\r\n <div class=\"info-row\" @items>\r\n @if (passwordComponent.containAtLeastMinChars) {\r\n <mat-icon color=\"primary\" svgIcon=\"mat_outline:done\" @positiveState></mat-icon>\r\n } @else {\r\n <mat-icon color=\"warn\" svgIcon=\"mat_outline:error\" @negativeState></mat-icon>\r\n }\r\n <span>{{minCharsCriteriaMsg}}</span>\r\n </div>\r\n }\r\n\r\n @if (passwordComponent.customValidator) {\r\n <div class=\"info-row\" @items>\r\n @if (passwordComponent.containAtCustomChars) {\r\n <mat-icon color=\"primary\" svgIcon=\"mat_outline:done\" @positiveState></mat-icon>\r\n } @else {\r\n <mat-icon color=\"warn\" svgIcon=\"mat_outline:error\" @negativeState></mat-icon>\r\n }\r\n <span>{{customCharsCriteriaMsg}}</span>\r\n </div>\r\n }\r\n\r\n @if (enableScoreInfo) {\r\n <div class=\"info-row\" @items>\r\n @if (passwordComponent.strength === 100) {\r\n <mat-icon color=\"primary\" svgIcon=\"mat_outline:done\" @positiveState></mat-icon>\r\n } @else {\r\n <mat-icon color=\"warn\" svgIcon=\"mat_outline:error\" @negativeState></mat-icon>\r\n }\r\n <span>\u5BC6\u7801\u5F3A\u5EA6= {{passwordComponent.strength}} %100</span>\r\n </div>\r\n }\r\n\r\n </mat-card-content>\r\n</mat-card>", styles: ["cmat-password-strength-info{margin-top:20px}cmat-password-strength-info .mat-mdc-card{display:flex;flex-direction:row;flex:1 1 0%;margin:.5rem;box-sizing:border-box;place-content:stretch;align-items:stretch}cmat-password-strength-info .mat-mdc-card .mat-mdc-card-content{display:flex;flex-direction:column;box-sizing:border-box;max-width:100%;place-content:stretch;align-items:stretch}cmat-password-strength-info .mat-mdc-card .mat-mdc-card-content .mat-icon{margin-right:1rem}cmat-password-strength-info .mat-mdc-card .mat-mdc-card-content .info-row{display:flex;flex-direction:row;box-sizing:border-box;align-items:center}\n"], dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i1.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i1.MatCardContent, selector: "mat-card-content" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], animations: [
25
- // nice stagger effect when showing existing elements
26
- trigger('list', [
27
- transition(':enter', [
28
- // child animation selector + stagger
29
- query('@items', stagger(300, animateChild()))
30
- ]),
31
- ]),
32
- trigger('items', [
33
- // cubic-bezier for a tiny bouncing feel
34
- transition(':enter', [
35
- style({ transform: 'scale(0.5)', opacity: 0 }),
36
- animate('1s cubic-bezier(.8,-0.6,0.2,1.5)', style({ transform: 'scale(1)', opacity: 1 }))
37
- ]),
38
- transition(':leave', [
39
- style({ transform: 'scale(1)', opacity: 1, height: '*' }),
40
- animate('1s cubic-bezier(.8,-0.6,0.2,1.5)', style({ transform: 'scale(0.5)', opacity: 0, height: '0px', margin: '0px' }))
41
- ]),
42
- ]),
43
- trigger('positiveState', [
44
- transition(':enter', [
45
- // eslint-disable-next-line @typescript-eslint/naming-convention
46
- style({ 'backface-visibility': 'visible' }),
47
- animate('{{ timing }}s {{ delay }}s ease-in', keyframes([
48
- style({
49
- opacity: 0,
50
- transform: 'perspective(400px) rotate3d({{ rotateX }}, {{ rotateY }}, 0, 90deg)',
51
- offset: 0,
52
- }),
53
- style({
54
- opacity: 1,
55
- transform: 'perspective(400px) rotate3d({{ rotateX }}, {{ rotateY }}, 0, -20deg)',
56
- offset: 0.4,
57
- }),
58
- style({
59
- transform: 'perspective(400px) rotate3d({{ rotateX }}, {{ rotateY }}, 0, 10deg)',
60
- offset: 0.6,
61
- }),
62
- style({
63
- transform: 'perspective(400px) rotate3d({{ rotateX }}, {{ rotateY }}, 0, -5deg)',
64
- offset: 0.8,
65
- }),
66
- style({
67
- transform: 'perspective(400px) rotate3d(0, 0, 0, 0)',
68
- offset: 1,
69
- }),
70
- ])),
71
- ], { params: { timing: 1, delay: 0, rotateX: 1, rotateY: 0 } }),
72
- ]),
73
- trigger('negativeState', [
74
- transition(':enter', useAnimation(shake)),
75
- ]),
76
- ], encapsulation: i0.ViewEncapsulation.None }); }
77
- }
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatPasswordStrengthInfoComponent, decorators: [{
79
- type: Component,
80
- args: [{ selector: 'cmat-password-strength-info', exportAs: 'cmatPasswordStrengthInfo', encapsulation: ViewEncapsulation.None, animations: [
81
- // nice stagger effect when showing existing elements
82
- trigger('list', [
83
- transition(':enter', [
84
- // child animation selector + stagger
85
- query('@items', stagger(300, animateChild()))
86
- ]),
87
- ]),
88
- trigger('items', [
89
- // cubic-bezier for a tiny bouncing feel
90
- transition(':enter', [
91
- style({ transform: 'scale(0.5)', opacity: 0 }),
92
- animate('1s cubic-bezier(.8,-0.6,0.2,1.5)', style({ transform: 'scale(1)', opacity: 1 }))
93
- ]),
94
- transition(':leave', [
95
- style({ transform: 'scale(1)', opacity: 1, height: '*' }),
96
- animate('1s cubic-bezier(.8,-0.6,0.2,1.5)', style({ transform: 'scale(0.5)', opacity: 0, height: '0px', margin: '0px' }))
97
- ]),
98
- ]),
99
- trigger('positiveState', [
100
- transition(':enter', [
101
- // eslint-disable-next-line @typescript-eslint/naming-convention
102
- style({ 'backface-visibility': 'visible' }),
103
- animate('{{ timing }}s {{ delay }}s ease-in', keyframes([
104
- style({
105
- opacity: 0,
106
- transform: 'perspective(400px) rotate3d({{ rotateX }}, {{ rotateY }}, 0, 90deg)',
107
- offset: 0,
108
- }),
109
- style({
110
- opacity: 1,
111
- transform: 'perspective(400px) rotate3d({{ rotateX }}, {{ rotateY }}, 0, -20deg)',
112
- offset: 0.4,
113
- }),
114
- style({
115
- transform: 'perspective(400px) rotate3d({{ rotateX }}, {{ rotateY }}, 0, 10deg)',
116
- offset: 0.6,
117
- }),
118
- style({
119
- transform: 'perspective(400px) rotate3d({{ rotateX }}, {{ rotateY }}, 0, -5deg)',
120
- offset: 0.8,
121
- }),
122
- style({
123
- transform: 'perspective(400px) rotate3d(0, 0, 0, 0)',
124
- offset: 1,
125
- }),
126
- ])),
127
- ], { params: { timing: 1, delay: 0, rotateX: 1, rotateY: 0 } }),
128
- ]),
129
- trigger('negativeState', [
130
- transition(':enter', useAnimation(shake)),
131
- ]),
132
- ], standalone: true, imports: [MatCardModule, MatIconModule], template: "<mat-card class=\"info-card\" @list>\r\n <mat-card-content>\r\n @if (passwordComponent.enableLowerCaseLetterRule) {\r\n <div class=\"info-row\" @items>\r\n @if (passwordComponent.containAtLeastOneLowerCaseLetter) {\r\n <mat-icon color=\"primary\" svgIcon=\"mat_outline:done\" @positiveState></mat-icon>\r\n } @else {\r\n <mat-icon color=\"warn\" svgIcon=\"mat_outline:error\" @negativeState></mat-icon>\r\n }\r\n <span>{{lowerCaseCriteriaMsg}}</span>\r\n </div>\r\n }\r\n\r\n @if (passwordComponent.enableUpperCaseLetterRule) {\r\n <div class=\"info-row\" @items>\r\n @if (passwordComponent.containAtLeastOneUpperCaseLetter) {\r\n <mat-icon color=\"primary\" svgIcon=\"mat_outline:done\" @positiveState></mat-icon>\r\n } @else {\r\n <mat-icon color=\"warn\" svgIcon=\"mat_outline:error\" @negativeState></mat-icon>\r\n }\r\n <span>{{upperCaseCriteriaMsg}}</span>\r\n </div>\r\n }\r\n\r\n @if (passwordComponent.enableDigitRule) {\r\n <div class=\"info-row\" @items>\r\n @if (passwordComponent.containAtLeastOneDigit) {\r\n <mat-icon color=\"primary\" svgIcon=\"mat_outline:done\" @positiveState></mat-icon>\r\n } @else {\r\n <mat-icon color=\"warn\" svgIcon=\"mat_outline:error\" @negativeState></mat-icon>\r\n }\r\n <span>{{digitsCriteriaMsg}}</span>\r\n </div>\r\n }\r\n\r\n @if (passwordComponent.enableSpecialCharRule) {\r\n <div class=\"info-row\" @items>\r\n @if (passwordComponent.containAtLeastOneSpecialChar) {\r\n <mat-icon color=\"primary\" svgIcon=\"mat_outline:done\" @positiveState></mat-icon>\r\n } @else {\r\n <mat-icon color=\"warn\" svgIcon=\"mat_outline:error\" @negativeState></mat-icon>\r\n }\r\n <span>{{specialCharsCriteriaMsg}}</span>\r\n </div>\r\n }\r\n\r\n @if (passwordComponent.enableLengthRule) {\r\n <div class=\"info-row\" @items>\r\n @if (passwordComponent.containAtLeastMinChars) {\r\n <mat-icon color=\"primary\" svgIcon=\"mat_outline:done\" @positiveState></mat-icon>\r\n } @else {\r\n <mat-icon color=\"warn\" svgIcon=\"mat_outline:error\" @negativeState></mat-icon>\r\n }\r\n <span>{{minCharsCriteriaMsg}}</span>\r\n </div>\r\n }\r\n\r\n @if (passwordComponent.customValidator) {\r\n <div class=\"info-row\" @items>\r\n @if (passwordComponent.containAtCustomChars) {\r\n <mat-icon color=\"primary\" svgIcon=\"mat_outline:done\" @positiveState></mat-icon>\r\n } @else {\r\n <mat-icon color=\"warn\" svgIcon=\"mat_outline:error\" @negativeState></mat-icon>\r\n }\r\n <span>{{customCharsCriteriaMsg}}</span>\r\n </div>\r\n }\r\n\r\n @if (enableScoreInfo) {\r\n <div class=\"info-row\" @items>\r\n @if (passwordComponent.strength === 100) {\r\n <mat-icon color=\"primary\" svgIcon=\"mat_outline:done\" @positiveState></mat-icon>\r\n } @else {\r\n <mat-icon color=\"warn\" svgIcon=\"mat_outline:error\" @negativeState></mat-icon>\r\n }\r\n <span>\u5BC6\u7801\u5F3A\u5EA6= {{passwordComponent.strength}} %100</span>\r\n </div>\r\n }\r\n\r\n </mat-card-content>\r\n</mat-card>", styles: ["cmat-password-strength-info{margin-top:20px}cmat-password-strength-info .mat-mdc-card{display:flex;flex-direction:row;flex:1 1 0%;margin:.5rem;box-sizing:border-box;place-content:stretch;align-items:stretch}cmat-password-strength-info .mat-mdc-card .mat-mdc-card-content{display:flex;flex-direction:column;box-sizing:border-box;max-width:100%;place-content:stretch;align-items:stretch}cmat-password-strength-info .mat-mdc-card .mat-mdc-card-content .mat-icon{margin-right:1rem}cmat-password-strength-info .mat-mdc-card .mat-mdc-card-content .info-row{display:flex;flex-direction:row;box-sizing:border-box;align-items:center}\n"] }]
133
- }], propDecorators: { passwordComponent: [{
134
- type: Input
135
- }], enableScoreInfo: [{
136
- type: Input
137
- }], lowerCaseCriteriaMsg: [{
138
- type: Input
139
- }], upperCaseCriteriaMsg: [{
140
- type: Input
141
- }], digitsCriteriaMsg: [{
142
- type: Input
143
- }], specialCharsCriteriaMsg: [{
144
- type: Input
145
- }], customCharsCriteriaMsg: [{
146
- type: Input
147
- }], minCharsCriteriaMsg: [{
148
- type: Input
149
- }] } });
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LXBhc3N3b3JkLXN0cmVuZ3RoLWluZm8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL3Bhc3N3b3JkLXN0cmVuZ3RoL21hdC1wYXNzd29yZC1zdHJlbmd0aC1pbmZvL21hdC1wYXNzd29yZC1zdHJlbmd0aC1pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9wYXNzd29yZC1zdHJlbmd0aC9tYXQtcGFzc3dvcmQtc3RyZW5ndGgtaW5mby9tYXQtcGFzc3dvcmQtc3RyZW5ndGgtaW5mby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqSSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUE7Ozs7QUFpRXJDLE1BQU0sT0FBTyxpQ0FBaUM7SUE5RDlDO1FBb0VJLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBR3hCLHlCQUFvQixHQUFHLFlBQVksQ0FBQztRQUdwQyx5QkFBb0IsR0FBRyxZQUFZLENBQUM7UUFHcEMsc0JBQWlCLEdBQUcsVUFBVSxDQUFDO1FBRy9CLDRCQUF1QixHQUFHLFlBQVksQ0FBQztRQUd2QywyQkFBc0IsR0FBRyxZQUFZLENBQUM7S0FXekM7SUFORyxR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LEtBQUssQ0FBQzt3Q0FDRixPQUFPLEVBQUUsQ0FBQzt3Q0FDVixTQUFTLEVBQUUsc0VBQXNFO3dDQUNqRixNQUFNLEVBQUUsR0FBRztxQ0FDZCxDQUFDO29DQUNGLEtBQUssQ0FBQzt3Q0FDRixTQUFTLEVBQUUscUVBQXFFO3dDQUNoRixNQUFNLEVBQUUsR0FBRztxQ0FDZCxDQUFDO29DQUNGLEtBQUssQ0FBQzt3Q0FDRixTQUFTLEVBQUUscUVBQXFFO3dDQUNoRixNQUFNLEVBQUUsR0FBRztxQ0FDZCxDQUFDO29DQUNGLEtBQUssQ0FBQzt3Q0FDRixTQUFTLEVBQUUseUNBQXlDO3dDQUNwRCxNQUFNLEVBQUUsQ0FBQztxQ0FDWixDQUFDO2lDQUNMLENBQUMsQ0FBQzs2QkFDTixFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7eUJBQ2xFLENBQUM7d0JBQ0YsT0FBTyxDQUFDLGVBQWUsRUFBRTs0QkFDckIsVUFBVSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7eUJBQzVDLENBQUM7cUJBQ0wsY0FDVyxJQUFJLFdBQ1AsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDOzhCQUt2QyxpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLO2dCQUlOLG9CQUFvQjtzQkFEbkIsS0FBSztnQkFJTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBSU4saUJBQWlCO3NCQURoQixLQUFLO2dCQUlOLHVCQUF1QjtzQkFEdEIsS0FBSztnQkFJTixzQkFBc0I7c0JBRHJCLEtBQUs7Z0JBSU4sbUJBQW1CO3NCQURsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgYW5pbWF0ZUNoaWxkLCBrZXlmcmFtZXMsIHF1ZXJ5LCBzdGFnZ2VyLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciwgdXNlQW5pbWF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IHNoYWtlIH0gZnJvbSAnLi4vYW5pbWF0aW9ucydcclxuaW1wb3J0IHsgQ21hdFBhc3N3b3JkU3RyZW5ndGhDb21wb25lbnQgfSBmcm9tICcuLi9tYXQtcGFzc3dvcmQtc3RyZW5ndGgvbWF0LXBhc3N3b3JkLXN0cmVuZ3RoLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY21hdC1wYXNzd29yZC1zdHJlbmd0aC1pbmZvJyxcclxuICAgIGV4cG9ydEFzOiAnY21hdFBhc3N3b3JkU3RyZW5ndGhJbmZvJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9tYXQtcGFzc3dvcmQtc3RyZW5ndGgtaW5mby5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9tYXQtcGFzc3dvcmQtc3RyZW5ndGgtaW5mby5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIGFuaW1hdGlvbnM6IFtcclxuICAgICAgICAvLyBuaWNlIHN0YWdnZXIgZWZmZWN0IHdoZW4gc2hvd2luZyBleGlzdGluZyBlbGVtZW50c1xyXG4gICAgICAgIHRyaWdnZXIoJ2xpc3QnLCBbXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcclxuICAgICAgICAgICAgICAgIC8vIGNoaWxkIGFuaW1hdGlvbiBzZWxlY3RvciArIHN0YWdnZXJcclxuICAgICAgICAgICAgICAgIHF1ZXJ5KCdAaXRlbXMnLCBzdGFnZ2VyKDMwMCwgYW5pbWF0ZUNoaWxkKCkpKVxyXG4gICAgICAgICAgICBdKSxcclxuICAgICAgICBdKSxcclxuICAgICAgICB0cmlnZ2VyKCdpdGVtcycsIFtcclxuICAgICAgICAgICAgLy8gY3ViaWMtYmV6aWVyIGZvciBhIHRpbnkgYm91bmNpbmcgZmVlbFxyXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXHJcbiAgICAgICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3NjYWxlKDAuNSknLCBvcGFjaXR5OiAwIH0pLFxyXG4gICAgICAgICAgICAgICAgYW5pbWF0ZSgnMXMgY3ViaWMtYmV6aWVyKC44LC0wLjYsMC4yLDEuNSknLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3NjYWxlKDEpJywgb3BhY2l0eTogMSB9KSlcclxuICAgICAgICAgICAgXSksXHJcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcclxuICAgICAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAnc2NhbGUoMSknLCBvcGFjaXR5OiAxLCBoZWlnaHQ6ICcqJyB9KSxcclxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJzFzIGN1YmljLWJlemllciguOCwtMC42LDAuMiwxLjUpJywgc3R5bGUoeyB0cmFuc2Zvcm06ICdzY2FsZSgwLjUpJywgb3BhY2l0eTogMCwgaGVpZ2h0OiAnMHB4JywgbWFyZ2luOiAnMHB4JyB9KSlcclxuICAgICAgICAgICAgXSksXHJcbiAgICAgICAgXSksXHJcbiAgICAgICAgdHJpZ2dlcigncG9zaXRpdmVTdGF0ZScsIFtcclxuICAgICAgICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xyXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxyXG4gICAgICAgICAgICAgICAgc3R5bGUoeyAnYmFja2ZhY2UtdmlzaWJpbGl0eSc6ICd2aXNpYmxlJyB9KSxcclxuICAgICAgICAgICAgICAgIGFuaW1hdGUoJ3t7IHRpbWluZyB9fXMge3sgZGVsYXkgfX1zIGVhc2UtaW4nLCBrZXlmcmFtZXMoW1xyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAncGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZTNkKHt7IHJvdGF0ZVggfX0sIHt7IHJvdGF0ZVkgfX0sIDAsIDkwZGVnKScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDogMCxcclxuICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogJ3BlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGUzZCh7eyByb3RhdGVYIH19LCB7eyByb3RhdGVZIH19LCAwLCAtMjBkZWcpJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAwLjQsXHJcbiAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICdwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2Qoe3sgcm90YXRlWCB9fSwge3sgcm90YXRlWSB9fSwgMCwgMTBkZWcpJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAwLjYsXHJcbiAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICdwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2Qoe3sgcm90YXRlWCB9fSwge3sgcm90YXRlWSB9fSwgMCwgLTVkZWcpJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAwLjgsXHJcbiAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICdwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlM2QoMCwgMCwgMCwgMCknLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDEsXHJcbiAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICBdKSksXHJcbiAgICAgICAgICAgIF0sIHsgcGFyYW1zOiB7IHRpbWluZzogMSwgZGVsYXk6IDAsIHJvdGF0ZVg6IDEsIHJvdGF0ZVk6IDAgfSB9KSxcclxuICAgICAgICBdKSxcclxuICAgICAgICB0cmlnZ2VyKCduZWdhdGl2ZVN0YXRlJywgW1xyXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCB1c2VBbmltYXRpb24oc2hha2UpKSxcclxuICAgICAgICBdKSxcclxuICAgIF0sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW01hdENhcmRNb2R1bGUsIE1hdEljb25Nb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0UGFzc3dvcmRTdHJlbmd0aEluZm9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwYXNzd29yZENvbXBvbmVudDogQ21hdFBhc3N3b3JkU3RyZW5ndGhDb21wb25lbnQ7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGVuYWJsZVNjb3JlSW5mbyA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBsb3dlckNhc2VDcml0ZXJpYU1zZyA9ICfljIXlkKvoh7PlsJHkuIDkuKrlsI/lhpnlrZfmr40nO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICB1cHBlckNhc2VDcml0ZXJpYU1zZyA9ICfljIXlkKvoh7PlsJHkuIDkuKrlpKflhpnlrZfmr40nO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBkaWdpdHNDcml0ZXJpYU1zZyA9ICfljIXlkKvoh7PlsJHkuIDkuKrmlbDlrZcnO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzcGVjaWFsQ2hhcnNDcml0ZXJpYU1zZyA9ICfljIXlkKvoh7PlsJHkuIDkuKrnibnmrorlrZfnrKYnO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBjdXN0b21DaGFyc0NyaXRlcmlhTXNnID0gJ+WMheWQq+iHs+WwkeS4gOS4quS8oOe7n+Wtl+espic7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIG1pbkNoYXJzQ3JpdGVyaWFNc2c6IHN0cmluZztcclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMubWluQ2hhcnNDcml0ZXJpYU1zZykge1xyXG4gICAgICAgICAgICB0aGlzLm1pbkNoYXJzQ3JpdGVyaWFNc2cgPSBg5YyF5ZCr6Iez5bCRICR7dGhpcy5wYXNzd29yZENvbXBvbmVudC5taW59IOS4quWtl+espmA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxufVxyXG4iLCI8bWF0LWNhcmQgY2xhc3M9XCJpbmZvLWNhcmRcIiBAbGlzdD5cclxuICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgIEBpZiAocGFzc3dvcmRDb21wb25lbnQuZW5hYmxlTG93ZXJDYXNlTGV0dGVyUnVsZSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5mby1yb3dcIiBAaXRlbXM+XHJcbiAgICAgICAgQGlmIChwYXNzd29yZENvbXBvbmVudC5jb250YWluQXRMZWFzdE9uZUxvd2VyQ2FzZUxldHRlcikge1xyXG4gICAgICAgICAgPG1hdC1pY29uIGNvbG9yPVwicHJpbWFyeVwiIHN2Z0ljb249XCJtYXRfb3V0bGluZTpkb25lXCIgQHBvc2l0aXZlU3RhdGU+PC9tYXQtaWNvbj5cclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgIDxtYXQtaWNvbiBjb2xvcj1cIndhcm5cIiBzdmdJY29uPVwibWF0X291dGxpbmU6ZXJyb3JcIiBAbmVnYXRpdmVTdGF0ZT48L21hdC1pY29uPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8c3Bhbj57e2xvd2VyQ2FzZUNyaXRlcmlhTXNnfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG5cclxuICAgIEBpZiAocGFzc3dvcmRDb21wb25lbnQuZW5hYmxlVXBwZXJDYXNlTGV0dGVyUnVsZSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5mby1yb3dcIiBAaXRlbXM+XHJcbiAgICAgICAgQGlmIChwYXNzd29yZENvbXBvbmVudC5jb250YWluQXRMZWFzdE9uZVVwcGVyQ2FzZUxldHRlcikge1xyXG4gICAgICAgICAgPG1hdC1pY29uIGNvbG9yPVwicHJpbWFyeVwiIHN2Z0ljb249XCJtYXRfb3V0bGluZTpkb25lXCIgQHBvc2l0aXZlU3RhdGU+PC9tYXQtaWNvbj5cclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgIDxtYXQtaWNvbiBjb2xvcj1cIndhcm5cIiBzdmdJY29uPVwibWF0X291dGxpbmU6ZXJyb3JcIiBAbmVnYXRpdmVTdGF0ZT48L21hdC1pY29uPlxyXG4gICAgICAgIH1cclxuICAgICAgICA8c3Bhbj57e3VwcGVyQ2FzZUNyaXRlcmlhTXNnfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG5cclxuICAgIEBpZiAocGFzc3dvcmRDb21wb25lbnQuZW5hYmxlRGlnaXRSdWxlKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLXJvd1wiIEBpdGVtcz5cclxuICAgICAgICBAaWYgKHBhc3N3b3JkQ29tcG9uZW50LmNvbnRhaW5BdExlYXN0T25lRGlnaXQpIHtcclxuICAgICAgICAgIDxtYXQtaWNvbiBjb2xvcj1cInByaW1hcnlcIiBzdmdJY29uPVwibWF0X291dGxpbmU6ZG9uZVwiIEBwb3NpdGl2ZVN0YXRlPjwvbWF0LWljb24+XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICA8bWF0LWljb24gY29sb3I9XCJ3YXJuXCIgc3ZnSWNvbj1cIm1hdF9vdXRsaW5lOmVycm9yXCIgQG5lZ2F0aXZlU3RhdGU+PC9tYXQtaWNvbj5cclxuICAgICAgICB9XHJcbiAgICAgICAgPHNwYW4+e3tkaWdpdHNDcml0ZXJpYU1zZ319PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuXHJcbiAgICBAaWYgKHBhc3N3b3JkQ29tcG9uZW50LmVuYWJsZVNwZWNpYWxDaGFyUnVsZSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5mby1yb3dcIiBAaXRlbXM+XHJcbiAgICAgICAgQGlmIChwYXNzd29yZENvbXBvbmVudC5jb250YWluQXRMZWFzdE9uZVNwZWNpYWxDaGFyKSB7XHJcbiAgICAgICAgICA8bWF0LWljb24gY29sb3I9XCJwcmltYXJ5XCIgc3ZnSWNvbj1cIm1hdF9vdXRsaW5lOmRvbmVcIiBAcG9zaXRpdmVTdGF0ZT48L21hdC1pY29uPlxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgPG1hdC1pY29uIGNvbG9yPVwid2FyblwiIHN2Z0ljb249XCJtYXRfb3V0bGluZTplcnJvclwiIEBuZWdhdGl2ZVN0YXRlPjwvbWF0LWljb24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxzcGFuPnt7c3BlY2lhbENoYXJzQ3JpdGVyaWFNc2d9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcblxyXG4gICAgQGlmIChwYXNzd29yZENvbXBvbmVudC5lbmFibGVMZW5ndGhSdWxlKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLXJvd1wiIEBpdGVtcz5cclxuICAgICAgICBAaWYgKHBhc3N3b3JkQ29tcG9uZW50LmNvbnRhaW5BdExlYXN0TWluQ2hhcnMpIHtcclxuICAgICAgICAgIDxtYXQtaWNvbiBjb2xvcj1cInByaW1hcnlcIiBzdmdJY29uPVwibWF0X291dGxpbmU6ZG9uZVwiIEBwb3NpdGl2ZVN0YXRlPjwvbWF0LWljb24+XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICA8bWF0LWljb24gY29sb3I9XCJ3YXJuXCIgc3ZnSWNvbj1cIm1hdF9vdXRsaW5lOmVycm9yXCIgQG5lZ2F0aXZlU3RhdGU+PC9tYXQtaWNvbj5cclxuICAgICAgICB9XHJcbiAgICAgICAgPHNwYW4+e3ttaW5DaGFyc0NyaXRlcmlhTXNnfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG5cclxuICAgIEBpZiAocGFzc3dvcmRDb21wb25lbnQuY3VzdG9tVmFsaWRhdG9yKSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLXJvd1wiIEBpdGVtcz5cclxuICAgICAgICBAaWYgKHBhc3N3b3JkQ29tcG9uZW50LmNvbnRhaW5BdEN1c3RvbUNoYXJzKSB7XHJcbiAgICAgICAgICA8bWF0LWljb24gY29sb3I9XCJwcmltYXJ5XCIgc3ZnSWNvbj1cIm1hdF9vdXRsaW5lOmRvbmVcIiBAcG9zaXRpdmVTdGF0ZT48L21hdC1pY29uPlxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgPG1hdC1pY29uIGNvbG9yPVwid2FyblwiIHN2Z0ljb249XCJtYXRfb3V0bGluZTplcnJvclwiIEBuZWdhdGl2ZVN0YXRlPjwvbWF0LWljb24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxzcGFuPnt7Y3VzdG9tQ2hhcnNDcml0ZXJpYU1zZ319PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuXHJcbiAgICBAaWYgKGVuYWJsZVNjb3JlSW5mbykge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiaW5mby1yb3dcIiBAaXRlbXM+XHJcbiAgICAgICAgQGlmIChwYXNzd29yZENvbXBvbmVudC5zdHJlbmd0aCA9PT0gMTAwKSB7XHJcbiAgICAgICAgICA8bWF0LWljb24gY29sb3I9XCJwcmltYXJ5XCIgc3ZnSWNvbj1cIm1hdF9vdXRsaW5lOmRvbmVcIiBAcG9zaXRpdmVTdGF0ZT48L21hdC1pY29uPlxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgPG1hdC1pY29uIGNvbG9yPVwid2FyblwiIHN2Z0ljb249XCJtYXRfb3V0bGluZTplcnJvclwiIEBuZWdhdGl2ZVN0YXRlPjwvbWF0LWljb24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDxzcGFuPuWvhueggeW8uuW6pj0ge3twYXNzd29yZENvbXBvbmVudC5zdHJlbmd0aH19ICUxMDA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG5cclxuICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbjwvbWF0LWNhcmQ+Il19
@@ -1,36 +0,0 @@
1
- export class CmatPasswordStrengthValidator {
2
- isUndefinedOrEmpty(control) {
3
- if (!control?.value || control.value.length === 0) {
4
- return void 0;
5
- }
6
- }
7
- validate(criteria, regex) {
8
- return (control) => {
9
- this.isUndefinedOrEmpty(control);
10
- if (!regex.test(control.value)) {
11
- const failed = {};
12
- failed[criteria] = {
13
- actualValue: control.value,
14
- requiredPattern: regex
15
- };
16
- return failed;
17
- }
18
- return null;
19
- };
20
- }
21
- confirm(password) {
22
- return (control) => {
23
- this.isUndefinedOrEmpty(control);
24
- if (control.value !== password) {
25
- return {
26
- notConfirmed: {
27
- password: password,
28
- passwordConfirmation: control.value
29
- }
30
- };
31
- }
32
- return null;
33
- };
34
- }
35
- }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0LXBhc3N3b3JkLXN0cmVuZ3RoLXZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy9wYXNzd29yZC1zdHJlbmd0aC9tYXQtcGFzc3dvcmQtc3RyZW5ndGgtdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyw2QkFBNkI7SUFDdEMsa0JBQWtCLENBQUMsT0FBd0I7UUFDdkMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEQsT0FBTyxLQUFLLENBQUMsQ0FBQztRQUNsQixDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBQyxRQUFnQixFQUFFLEtBQWE7UUFDcEMsT0FBTyxDQUFDLE9BQXdCLEVBQThCLEVBQUU7WUFDNUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM3QixNQUFNLE1BQU0sR0FBUSxFQUFFLENBQUM7Z0JBQ3ZCLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRztvQkFDZixXQUFXLEVBQUUsT0FBTyxDQUFDLEtBQUs7b0JBQzFCLGVBQWUsRUFBRSxLQUFLO2lCQUN6QixDQUFDO2dCQUNGLE9BQU8sTUFBTSxDQUFDO1lBQ2xCLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsT0FBTyxDQUFDLFFBQWdCO1FBQ3BCLE9BQU8sQ0FBQyxPQUF3QixFQUE4QixFQUFFO1lBQzVELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzdCLE9BQU87b0JBQ0gsWUFBWSxFQUFFO3dCQUNWLFFBQVEsRUFBRSxRQUFRO3dCQUNsQixvQkFBb0IsRUFBRSxPQUFPLENBQUMsS0FBSztxQkFDdEM7aUJBQ0osQ0FBQztZQUNOLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUM7SUFDTixDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIENtYXRQYXNzd29yZFN0cmVuZ3RoVmFsaWRhdG9yIHtcclxuICAgIGlzVW5kZWZpbmVkT3JFbXB0eShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIWNvbnRyb2w/LnZhbHVlIHx8IGNvbnRyb2wudmFsdWUubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2b2lkIDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHZhbGlkYXRlKGNyaXRlcmlhOiBzdHJpbmcsIHJlZ2V4OiBSZWdFeHApOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgbnVsbCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNVbmRlZmluZWRPckVtcHR5KGNvbnRyb2wpO1xyXG4gICAgICAgICAgICBpZiAoIXJlZ2V4LnRlc3QoY29udHJvbC52YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGZhaWxlZDogYW55ID0ge307XHJcbiAgICAgICAgICAgICAgICBmYWlsZWRbY3JpdGVyaWFdID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGFjdHVhbFZhbHVlOiBjb250cm9sLnZhbHVlLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkUGF0dGVybjogcmVnZXhcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFpbGVkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgY29uZmlybShwYXNzd29yZDogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogUmVjb3JkPHN0cmluZywgYW55PiB8IG51bGwgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzVW5kZWZpbmVkT3JFbXB0eShjb250cm9sKTtcclxuICAgICAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUgIT09IHBhc3N3b3JkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG5vdENvbmZpcm1lZDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXNzd29yZDogcGFzc3dvcmQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkQ29uZmlybWF0aW9uOiBjb250cm9sLnZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxufVxyXG4iXX0=