cmat 0.0.17 → 0.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (495) hide show
  1. package/components/carousel/carousel.component.d.ts +136 -0
  2. package/components/carousel/carousel.interface.d.ts +38 -0
  3. package/components/carousel/index.d.ts +5 -0
  4. package/components/carousel/public-api.d.ts +2 -0
  5. package/components/custom-formly/public-api.d.ts +1 -0
  6. package/components/custom-formly/types/knob/knob.component.d.ts +36 -0
  7. package/components/custom-formly/types/table/table.component.d.ts +3 -8
  8. package/components/custom-formly/wrappers/form-field/form-field.component.d.ts +4 -4
  9. package/components/image-viewer/image-viewer.component.d.ts +76 -0
  10. package/components/image-viewer/index.d.ts +5 -0
  11. package/components/image-viewer/public-api.d.ts +1 -0
  12. package/components/knob-input/index.d.ts +5 -0
  13. package/components/knob-input/knob-input.component.d.ts +95 -0
  14. package/components/knob-input/public-api.d.ts +1 -0
  15. package/components/material-datetimepicker/datetimepicker-input.d.ts +2 -2
  16. package/components/opt-input/index.d.ts +5 -0
  17. package/components/opt-input/models/config.d.ts +14 -0
  18. package/components/opt-input/otp-input.component.d.ts +70 -0
  19. package/components/opt-input/public-api.d.ts +1 -0
  20. package/components/opt-input/utils/keyboard-util.d.ts +9 -0
  21. package/components/opt-input/utils/object-util.d.ts +3 -0
  22. package/components/org-chart/designer/chart-designer.component.d.ts +17 -0
  23. package/components/org-chart/index.d.ts +5 -0
  24. package/components/org-chart/node/chart-node.component.d.ts +17 -0
  25. package/components/org-chart/node/node.type.d.ts +22 -0
  26. package/components/org-chart/org-chart.component.d.ts +12 -0
  27. package/components/org-chart/public-api.d.ts +2 -0
  28. package/components/popover/popover.interfaces.d.ts +1 -1
  29. package/components/select-table/index.d.ts +5 -0
  30. package/components/select-table/public-api.d.ts +2 -0
  31. package/components/select-table/select-table.component.d.ts +96 -0
  32. package/components/select-table/select-table.type.d.ts +20 -0
  33. package/components/select-tree/select-tree.component.d.ts +11 -12
  34. package/components/speed-dial/index.d.ts +5 -0
  35. package/components/speed-dial/public-api.d.ts +2 -0
  36. package/components/speed-dial/speed-dial.component.d.ts +63 -0
  37. package/components/transfer-picker/interface.d.ts +0 -1
  38. package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.d.ts +8 -6
  39. package/components/treetable/index.d.ts +5 -0
  40. package/components/treetable/public-api.d.ts +2 -0
  41. package/components/treetable/treetable.component.d.ts +32 -0
  42. package/components/treetable/treetable.interface.d.ts +9 -0
  43. package/directives/animate-on-scroll/animate-on-scroll.directive.d.ts +4 -4
  44. package/directives/arrow-cursor/arrow-cursor.directive.d.ts +31 -0
  45. package/directives/arrow-cursor/index.d.ts +5 -0
  46. package/directives/arrow-cursor/public-api.d.ts +1 -0
  47. package/directives/data-exporter/constants.d.ts +26 -0
  48. package/directives/data-exporter/data-exporter.directive.d.ts +18 -0
  49. package/directives/data-exporter/index.d.ts +5 -0
  50. package/directives/data-exporter/mime.d.ts +5 -0
  51. package/directives/data-exporter/options.d.ts +21 -0
  52. package/directives/data-exporter/public-api.d.ts +2 -0
  53. package/directives/data-exporter/services/exporters/csv-exporter.service.d.ts +12 -0
  54. package/directives/data-exporter/services/exporters/exporter.d.ts +4 -0
  55. package/directives/data-exporter/services/exporters/file-exporter.d.ts +8 -0
  56. package/directives/data-exporter/services/exporters/json-exporter.service.d.ts +11 -0
  57. package/directives/data-exporter/services/exporters/txt-exporter.service.d.ts +12 -0
  58. package/directives/data-exporter/services/exporters/worksheet-exporter.d.ts +10 -0
  59. package/directives/data-exporter/services/exporters/xls-exporter.service.d.ts +14 -0
  60. package/directives/data-exporter/services/exporters/xlsx-exporter.service.d.ts +9 -0
  61. package/directives/data-exporter/services/file-util.d.ts +8 -0
  62. package/directives/data-exporter/services/service-locator.service.d.ts +11 -0
  63. package/directives/debounce/abstract-debounce.directive.d.ts +1 -1
  64. package/fesm2022/cmat-animations.mjs.map +1 -1
  65. package/fesm2022/cmat-components-adapter.mjs +9 -9
  66. package/fesm2022/cmat-components-adapter.mjs.map +1 -1
  67. package/fesm2022/cmat-components-breadcrumb.mjs +10 -10
  68. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  69. package/fesm2022/cmat-components-card.mjs +4 -4
  70. package/fesm2022/cmat-components-card.mjs.map +1 -1
  71. package/fesm2022/cmat-components-carousel.mjs +711 -0
  72. package/fesm2022/cmat-components-carousel.mjs.map +1 -0
  73. package/fesm2022/cmat-components-cascade.mjs +12 -12
  74. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  75. package/fesm2022/cmat-components-chip-input.mjs +5 -5
  76. package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
  77. package/fesm2022/cmat-components-custom-formly.mjs +168 -155
  78. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
  79. package/fesm2022/cmat-components-date-range.mjs +5 -5
  80. package/fesm2022/cmat-components-date-range.mjs.map +1 -1
  81. package/fesm2022/cmat-components-drawer.mjs +6 -6
  82. package/fesm2022/cmat-components-drawer.mjs.map +1 -1
  83. package/fesm2022/cmat-components-fullscreen.mjs +4 -4
  84. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
  85. package/fesm2022/cmat-components-highlight.mjs +7 -7
  86. package/fesm2022/cmat-components-highlight.mjs.map +1 -1
  87. package/fesm2022/cmat-components-image-viewer.mjs +227 -0
  88. package/fesm2022/cmat-components-image-viewer.mjs.map +1 -0
  89. package/fesm2022/cmat-components-json-editor.mjs +4 -4
  90. package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
  91. package/fesm2022/cmat-components-knob-input.mjs +404 -0
  92. package/fesm2022/cmat-components-knob-input.mjs.map +1 -0
  93. package/fesm2022/cmat-components-masonry.mjs +4 -4
  94. package/fesm2022/cmat-components-masonry.mjs.map +1 -1
  95. package/fesm2022/cmat-components-material-color-picker.mjs +4 -4
  96. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  97. package/fesm2022/cmat-components-material-datetimepicker.mjs +53 -53
  98. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  99. package/fesm2022/cmat-components-navigation.mjs +51 -51
  100. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  101. package/fesm2022/cmat-components-opt-input.mjs +457 -0
  102. package/fesm2022/cmat-components-opt-input.mjs.map +1 -0
  103. package/fesm2022/cmat-components-org-chart.mjs +141 -0
  104. package/fesm2022/cmat-components-org-chart.mjs.map +1 -0
  105. package/fesm2022/cmat-components-pagination.mjs +13 -13
  106. package/fesm2022/cmat-components-pagination.mjs.map +1 -1
  107. package/fesm2022/cmat-components-password-strength.mjs +12 -12
  108. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  109. package/fesm2022/cmat-components-popover.mjs +10 -10
  110. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  111. package/fesm2022/cmat-components-progress-bar.mjs +4 -4
  112. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
  113. package/fesm2022/cmat-components-rating.mjs +4 -4
  114. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  115. package/fesm2022/cmat-components-select-search.mjs +11 -11
  116. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  117. package/fesm2022/cmat-components-select-table.mjs +658 -0
  118. package/fesm2022/cmat-components-select-table.mjs.map +1 -0
  119. package/fesm2022/cmat-components-select-tree.mjs +75 -57
  120. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  121. package/fesm2022/cmat-components-speed-dial.mjs +312 -0
  122. package/fesm2022/cmat-components-speed-dial.mjs.map +1 -0
  123. package/fesm2022/cmat-components-timeline.mjs +14 -14
  124. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  125. package/fesm2022/cmat-components-toast.mjs +11 -11
  126. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  127. package/fesm2022/cmat-components-transfer-picker.mjs +60 -41
  128. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  129. package/fesm2022/cmat-components-treetable.mjs +122 -0
  130. package/fesm2022/cmat-components-treetable.mjs.map +1 -0
  131. package/fesm2022/cmat-components-upload.mjs +11 -11
  132. package/fesm2022/cmat-components-upload.mjs.map +1 -1
  133. package/fesm2022/cmat-directives-animate-on-scroll.mjs +21 -21
  134. package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
  135. package/fesm2022/cmat-directives-arrow-cursor.mjs +184 -0
  136. package/fesm2022/cmat-directives-arrow-cursor.mjs.map +1 -0
  137. package/fesm2022/cmat-directives-autofocus.mjs +3 -3
  138. package/fesm2022/cmat-directives-autofocus.mjs.map +1 -1
  139. package/fesm2022/cmat-directives-data-exporter.mjs +324 -0
  140. package/fesm2022/cmat-directives-data-exporter.mjs.map +1 -0
  141. package/fesm2022/cmat-directives-debounce.mjs +9 -9
  142. package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
  143. package/fesm2022/cmat-directives-digit-only.mjs +8 -6
  144. package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
  145. package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
  146. package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -1
  147. package/fesm2022/cmat-lib-mock-api.mjs +6 -6
  148. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
  149. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  150. package/fesm2022/cmat-pipes-bytes.mjs.map +1 -1
  151. package/fesm2022/cmat-pipes-date-format.mjs +3 -3
  152. package/fesm2022/cmat-pipes-date-format.mjs.map +1 -1
  153. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
  154. package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
  155. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  156. package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
  157. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  158. package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
  159. package/fesm2022/cmat-pipes-secure.mjs +3 -3
  160. package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
  161. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  162. package/fesm2022/cmat-pipes-uppercase.mjs.map +1 -1
  163. package/fesm2022/cmat-services-alert.mjs +3 -3
  164. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  165. package/fesm2022/cmat-services-config.mjs +6 -6
  166. package/fesm2022/cmat-services-config.mjs.map +1 -1
  167. package/fesm2022/cmat-services-confirmation.mjs +7 -7
  168. package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
  169. package/fesm2022/cmat-services-data.mjs +3 -3
  170. package/fesm2022/cmat-services-data.mjs.map +1 -1
  171. package/fesm2022/cmat-services-export-as.mjs +211 -0
  172. package/fesm2022/cmat-services-export-as.mjs.map +1 -0
  173. package/fesm2022/cmat-services-loading.mjs +6 -6
  174. package/fesm2022/cmat-services-loading.mjs.map +1 -1
  175. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  176. package/fesm2022/cmat-services-local-storage.mjs.map +1 -1
  177. package/fesm2022/cmat-services-media-watcher.mjs +3 -3
  178. package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
  179. package/fesm2022/cmat-services-platform.mjs +3 -3
  180. package/fesm2022/cmat-services-platform.mjs.map +1 -1
  181. package/fesm2022/cmat-services-splash-screen.mjs +3 -3
  182. package/fesm2022/cmat-services-splash-screen.mjs.map +1 -1
  183. package/fesm2022/cmat-services-title.mjs +3 -3
  184. package/fesm2022/cmat-services-title.mjs.map +1 -1
  185. package/fesm2022/cmat-services-translation.mjs +3 -3
  186. package/fesm2022/cmat-services-translation.mjs.map +1 -1
  187. package/fesm2022/cmat-services-utils.mjs +3 -3
  188. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  189. package/fesm2022/cmat-validators.mjs.map +1 -1
  190. package/fesm2022/cmat-version.mjs.map +1 -1
  191. package/icons/arrow-cursor.svg +1 -1
  192. package/package.json +82 -148
  193. package/services/export-as/export-as-config.model.d.ts +8 -0
  194. package/services/export-as/export-as.service.d.ts +43 -0
  195. package/services/export-as/index.d.ts +5 -0
  196. package/services/export-as/public-api.d.ts +2 -0
  197. package/styles/overrides/angular-material.scss +95 -13
  198. package/esm2022/animations/cmat-animations.mjs +0 -5
  199. package/esm2022/animations/defaults.mjs +0 -12
  200. package/esm2022/animations/dropdown.mjs +0 -26
  201. package/esm2022/animations/expand-collapse.mjs +0 -17
  202. package/esm2022/animations/fade.mjs +0 -170
  203. package/esm2022/animations/public-api.mjs +0 -19
  204. package/esm2022/animations/shake.mjs +0 -59
  205. package/esm2022/animations/slide.mjs +0 -124
  206. package/esm2022/animations/transform.mjs +0 -16
  207. package/esm2022/animations/zoom.mjs +0 -38
  208. package/esm2022/cmat.mjs +0 -5
  209. package/esm2022/components/adapter/cmat-components-adapter.mjs +0 -5
  210. package/esm2022/components/adapter/datetime-adapter.mjs +0 -127
  211. package/esm2022/components/adapter/datetime-formats.mjs +0 -3
  212. package/esm2022/components/adapter/dayjs-date-adapter.mjs +0 -198
  213. package/esm2022/components/adapter/dayjs-date-formats.mjs +0 -12
  214. package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +0 -100
  215. package/esm2022/components/adapter/dayjs-datetime-formats.mjs +0 -21
  216. package/esm2022/components/adapter/native-datetime-adapter.mjs +0 -130
  217. package/esm2022/components/adapter/native-datetime-formats.mjs +0 -15
  218. package/esm2022/components/adapter/public-api.mjs +0 -9
  219. package/esm2022/components/breadcrumb/breadcrumb-item.directive.mjs +0 -19
  220. package/esm2022/components/breadcrumb/breadcrumb.component.mjs +0 -94
  221. package/esm2022/components/breadcrumb/breadcrumb.service.mjs +0 -333
  222. package/esm2022/components/breadcrumb/cmat-components-breadcrumb.mjs +0 -5
  223. package/esm2022/components/breadcrumb/public-api.mjs +0 -6
  224. package/esm2022/components/breadcrumb/types/breadcrumb.config.mjs +0 -2
  225. package/esm2022/components/breadcrumb/types/breadcrumb.mjs +0 -2
  226. package/esm2022/components/card/card.component.mjs +0 -49
  227. package/esm2022/components/card/card.types.mjs +0 -2
  228. package/esm2022/components/card/cmat-components-card.mjs +0 -5
  229. package/esm2022/components/card/public-api.mjs +0 -3
  230. package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +0 -49
  231. package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +0 -384
  232. package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +0 -22
  233. package/esm2022/components/cascade/cmat-components-cascade.mjs +0 -5
  234. package/esm2022/components/cascade/options.interface.mjs +0 -2
  235. package/esm2022/components/cascade/public-api.mjs +0 -4
  236. package/esm2022/components/chip-input/chip-input.component.mjs +0 -251
  237. package/esm2022/components/chip-input/cmat-components-chip-input.mjs +0 -5
  238. package/esm2022/components/chip-input/public-api.mjs +0 -2
  239. package/esm2022/components/custom-formly/cmat-components-custom-formly.mjs +0 -5
  240. package/esm2022/components/custom-formly/extension/addons.extension.mjs +0 -13
  241. package/esm2022/components/custom-formly/public-api.mjs +0 -29
  242. package/esm2022/components/custom-formly/types/button/button.component.mjs +0 -81
  243. package/esm2022/components/custom-formly/types/cascade/cascade.component.mjs +0 -71
  244. package/esm2022/components/custom-formly/types/checklist/checklist.component.mjs +0 -161
  245. package/esm2022/components/custom-formly/types/chips/chips.component.mjs +0 -55
  246. package/esm2022/components/custom-formly/types/color-picker/color-picker.component.mjs +0 -15
  247. package/esm2022/components/custom-formly/types/date-range/date-range.component.mjs +0 -25
  248. package/esm2022/components/custom-formly/types/datepicker/datepicker.component.mjs +0 -51
  249. package/esm2022/components/custom-formly/types/multicheckbox/multicheckbox.component.mjs +0 -88
  250. package/esm2022/components/custom-formly/types/number/number.component.mjs +0 -27
  251. package/esm2022/components/custom-formly/types/quill/quill.component.mjs +0 -171
  252. package/esm2022/components/custom-formly/types/radio/radio.component.mjs +0 -87
  253. package/esm2022/components/custom-formly/types/rating/rating.component.mjs +0 -27
  254. package/esm2022/components/custom-formly/types/repeat/repeat.component.mjs +0 -25
  255. package/esm2022/components/custom-formly/types/select/select.component.mjs +0 -167
  256. package/esm2022/components/custom-formly/types/select-tree/select-tree.component.mjs +0 -66
  257. package/esm2022/components/custom-formly/types/stepper/horizontal/stepper.component.mjs +0 -28
  258. package/esm2022/components/custom-formly/types/stepper/stepper.type.mjs +0 -2
  259. package/esm2022/components/custom-formly/types/stepper/vertical/stepper.component.mjs +0 -28
  260. package/esm2022/components/custom-formly/types/table/table.component.mjs +0 -127
  261. package/esm2022/components/custom-formly/types/tabs/tab.component.mjs +0 -16
  262. package/esm2022/components/custom-formly/types/tags/tags.component.mjs +0 -146
  263. package/esm2022/components/custom-formly/types/textarea/textarea.component.mjs +0 -25
  264. package/esm2022/components/custom-formly/types/upload/upload.component.mjs +0 -58
  265. package/esm2022/components/custom-formly/wrappers/addons/addons.component.mjs +0 -92
  266. package/esm2022/components/custom-formly/wrappers/card/card.component.mjs +0 -14
  267. package/esm2022/components/custom-formly/wrappers/expansion/expansion.component.mjs +0 -14
  268. package/esm2022/components/custom-formly/wrappers/form-field/form-field.component.mjs +0 -47
  269. package/esm2022/components/custom-formly/wrappers/panel/panel.component.mjs +0 -12
  270. package/esm2022/components/date-range/cmat-components-date-range.mjs +0 -5
  271. package/esm2022/components/date-range/date-range.component.mjs +0 -558
  272. package/esm2022/components/date-range/public-api.mjs +0 -2
  273. package/esm2022/components/drawer/cmat-components-drawer.mjs +0 -5
  274. package/esm2022/components/drawer/drawer.component.mjs +0 -301
  275. package/esm2022/components/drawer/drawer.service.mjs +0 -41
  276. package/esm2022/components/drawer/drawer.types.mjs +0 -2
  277. package/esm2022/components/drawer/public-api.mjs +0 -4
  278. package/esm2022/components/fullscreen/cmat-components-fullscreen.mjs +0 -5
  279. package/esm2022/components/fullscreen/fullscreen.component.mjs +0 -44
  280. package/esm2022/components/fullscreen/public-api.mjs +0 -2
  281. package/esm2022/components/highlight/cmat-components-highlight.mjs +0 -5
  282. package/esm2022/components/highlight/highlight.component.mjs +0 -80
  283. package/esm2022/components/highlight/highlight.service.mjs +0 -47
  284. package/esm2022/components/highlight/public-api.mjs +0 -3
  285. package/esm2022/components/json-editor/cmat-components-json-editor.mjs +0 -5
  286. package/esm2022/components/json-editor/json-editor.component.mjs +0 -176
  287. package/esm2022/components/json-editor/public-api.mjs +0 -2
  288. package/esm2022/components/masonry/cmat-components-masonry.mjs +0 -5
  289. package/esm2022/components/masonry/masonry.component.mjs +0 -54
  290. package/esm2022/components/masonry/public-api.mjs +0 -2
  291. package/esm2022/components/material-color-picker/base-color.mjs +0 -13
  292. package/esm2022/components/material-color-picker/cmat-components-material-color-picker.mjs +0 -5
  293. package/esm2022/components/material-color-picker/material-color-picker.component.mjs +0 -147
  294. package/esm2022/components/material-color-picker/public-api.mjs +0 -3
  295. package/esm2022/components/material-color-picker/selected-color.mjs +0 -3
  296. package/esm2022/components/material-datetimepicker/calendar-body.mjs +0 -76
  297. package/esm2022/components/material-datetimepicker/calendar.mjs +0 -670
  298. package/esm2022/components/material-datetimepicker/clock.mjs +0 -290
  299. package/esm2022/components/material-datetimepicker/cmat-components-material-datetimepicker.mjs +0 -5
  300. package/esm2022/components/material-datetimepicker/datetimepicker-animations.mjs +0 -34
  301. package/esm2022/components/material-datetimepicker/datetimepicker-errors.mjs +0 -6
  302. package/esm2022/components/material-datetimepicker/datetimepicker-filtertype.mjs +0 -8
  303. package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +0 -341
  304. package/esm2022/components/material-datetimepicker/datetimepicker-intl.mjs +0 -63
  305. package/esm2022/components/material-datetimepicker/datetimepicker-toggle.mjs +0 -87
  306. package/esm2022/components/material-datetimepicker/datetimepicker-types.mjs +0 -2
  307. package/esm2022/components/material-datetimepicker/datetimepicker.mjs +0 -531
  308. package/esm2022/components/material-datetimepicker/month-view.mjs +0 -141
  309. package/esm2022/components/material-datetimepicker/multi-year-view.mjs +0 -197
  310. package/esm2022/components/material-datetimepicker/public-api.mjs +0 -11
  311. package/esm2022/components/material-datetimepicker/time.mjs +0 -455
  312. package/esm2022/components/material-datetimepicker/year-view.mjs +0 -124
  313. package/esm2022/components/navigation/cmat-components-navigation.mjs +0 -5
  314. package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +0 -70
  315. package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +0 -82
  316. package/esm2022/components/navigation/horizontal/components/divider/divider.component.mjs +0 -47
  317. package/esm2022/components/navigation/horizontal/components/spacer/spacer.component.mjs +0 -47
  318. package/esm2022/components/navigation/horizontal/horizontal.component.mjs +0 -87
  319. package/esm2022/components/navigation/navigation.service.mjs +0 -140
  320. package/esm2022/components/navigation/navigation.types.mjs +0 -3
  321. package/esm2022/components/navigation/public-api.mjs +0 -5
  322. package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +0 -162
  323. package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +0 -60
  324. package/esm2022/components/navigation/vertical/components/collapsable/collapsable.component.mjs +0 -277
  325. package/esm2022/components/navigation/vertical/components/divider/divider.component.mjs +0 -56
  326. package/esm2022/components/navigation/vertical/components/group/group.component.mjs +0 -78
  327. package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +0 -56
  328. package/esm2022/components/navigation/vertical/vertical.component.mjs +0 -584
  329. package/esm2022/components/pagination/cmat-components-pagination.mjs +0 -5
  330. package/esm2022/components/pagination/pagination.component.mjs +0 -67
  331. package/esm2022/components/pagination/pagination.directive.mjs +0 -197
  332. package/esm2022/components/pagination/pagination.instance.mjs +0 -2
  333. package/esm2022/components/pagination/pagination.pipe.mjs +0 -100
  334. package/esm2022/components/pagination/pagination.service.mjs +0 -90
  335. package/esm2022/components/pagination/public-api.mjs +0 -6
  336. package/esm2022/components/password-strength/animations/index.mjs +0 -48
  337. package/esm2022/components/password-strength/cmat-components-password-strength.mjs +0 -5
  338. package/esm2022/components/password-strength/enum.mjs +0 -17
  339. package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +0 -27
  340. package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +0 -206
  341. package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +0 -150
  342. package/esm2022/components/password-strength/mat-password-strength-validator.mjs +0 -36
  343. package/esm2022/components/password-strength/public-api.mjs +0 -4
  344. package/esm2022/components/password-strength/regexp.class.mjs +0 -8
  345. package/esm2022/components/popover/cmat-components-popover.mjs +0 -5
  346. package/esm2022/components/popover/popover-trigger.mjs +0 -442
  347. package/esm2022/components/popover/popover.component.mjs +0 -348
  348. package/esm2022/components/popover/popover.errors.mjs +0 -27
  349. package/esm2022/components/popover/popover.interfaces.mjs +0 -2
  350. package/esm2022/components/popover/popover.target.mjs +0 -18
  351. package/esm2022/components/popover/popover.type.mjs +0 -2
  352. package/esm2022/components/popover/public-api.mjs +0 -5
  353. package/esm2022/components/progress-bar/cmat-components-progress-bar.mjs +0 -5
  354. package/esm2022/components/progress-bar/progress-bar.component.mjs +0 -58
  355. package/esm2022/components/progress-bar/public-api.mjs +0 -2
  356. package/esm2022/components/rating/cmat-components-rating.mjs +0 -5
  357. package/esm2022/components/rating/public-api.mjs +0 -2
  358. package/esm2022/components/rating/rating.component.mjs +0 -202
  359. package/esm2022/components/select-search/cmat-components-select-search.mjs +0 -5
  360. package/esm2022/components/select-search/default-options.mjs +0 -16
  361. package/esm2022/components/select-search/public-api.mjs +0 -3
  362. package/esm2022/components/select-search/select-no-entries-found.directive.mjs +0 -14
  363. package/esm2022/components/select-search/select-search-clear.directive.mjs +0 -14
  364. package/esm2022/components/select-search/select-search.component.mjs +0 -485
  365. package/esm2022/components/select-tree/cmat-components-select-tree.mjs +0 -5
  366. package/esm2022/components/select-tree/public-api.mjs +0 -4
  367. package/esm2022/components/select-tree/select-tree.component.mjs +0 -565
  368. package/esm2022/components/select-tree/select-tree.flatnode.mjs +0 -3
  369. package/esm2022/components/select-tree/select-tree.node.mjs +0 -3
  370. package/esm2022/components/timeline/cmat-components-timeline.mjs +0 -5
  371. package/esm2022/components/timeline/public-api.mjs +0 -3
  372. package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +0 -70
  373. package/esm2022/components/timeline/timeline.component.mjs +0 -107
  374. package/esm2022/components/toast/cmat-components-toast.mjs +0 -5
  375. package/esm2022/components/toast/models/global-config.model.mjs +0 -2
  376. package/esm2022/components/toast/models/toast.model.mjs +0 -2
  377. package/esm2022/components/toast/models/type.model.mjs +0 -2
  378. package/esm2022/components/toast/public-api.mjs +0 -7
  379. package/esm2022/components/toast/toast-modal.component.mjs +0 -53
  380. package/esm2022/components/toast/toast.component.mjs +0 -30
  381. package/esm2022/components/toast/toast.service.mjs +0 -122
  382. package/esm2022/components/transfer-picker/cmat-components-transfer-picker.mjs +0 -5
  383. package/esm2022/components/transfer-picker/filter/filter.component.mjs +0 -91
  384. package/esm2022/components/transfer-picker/interface.mjs +0 -17
  385. package/esm2022/components/transfer-picker/public-api.mjs +0 -8
  386. package/esm2022/components/transfer-picker/search/search.component.mjs +0 -38
  387. package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +0 -201
  388. package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +0 -32
  389. package/esm2022/components/transfer-picker/transfer-picker.component.mjs +0 -84
  390. package/esm2022/components/transfer-picker/transfer-picker.service.mjs +0 -137
  391. package/esm2022/components/upload/cmat-components-upload.mjs +0 -5
  392. package/esm2022/components/upload/files.type.mjs +0 -2
  393. package/esm2022/components/upload/files.util.service.mjs +0 -89
  394. package/esm2022/components/upload/public-api.mjs +0 -5
  395. package/esm2022/components/upload/upload-queue/upload-queue.component.mjs +0 -155
  396. package/esm2022/components/upload/upload.component.mjs +0 -118
  397. package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +0 -126
  398. package/esm2022/directives/animate-on-scroll/cmat-directives-animate-on-scroll.mjs +0 -5
  399. package/esm2022/directives/animate-on-scroll/public-api.mjs +0 -2
  400. package/esm2022/directives/animate-on-scroll/scroll.service.mjs +0 -38
  401. package/esm2022/directives/autofocus/autofocus.directive.mjs +0 -20
  402. package/esm2022/directives/autofocus/cmat-directives-autofocus.mjs +0 -5
  403. package/esm2022/directives/autofocus/public-api.mjs +0 -2
  404. package/esm2022/directives/debounce/abstract-debounce.directive.mjs +0 -34
  405. package/esm2022/directives/debounce/cmat-directives-debounce.mjs +0 -5
  406. package/esm2022/directives/debounce/debounce-click.directive.mjs +0 -25
  407. package/esm2022/directives/debounce/debounce-keyup.directive.mjs +0 -25
  408. package/esm2022/directives/debounce/public-api.mjs +0 -3
  409. package/esm2022/directives/digit-only/cmat-directives-digit-only.mjs +0 -5
  410. package/esm2022/directives/digit-only/digit-only.directive.mjs +0 -298
  411. package/esm2022/directives/digit-only/mask.directive.mjs +0 -84
  412. package/esm2022/directives/digit-only/public-api.mjs +0 -3
  413. package/esm2022/directives/equal-validator/cmat-directives-equal-validator.mjs +0 -5
  414. package/esm2022/directives/equal-validator/equal-validator.directive.mjs +0 -54
  415. package/esm2022/directives/equal-validator/public-api.mjs +0 -2
  416. package/esm2022/lib/mock-api/cmat-lib-mock-api.mjs +0 -5
  417. package/esm2022/lib/mock-api/mock-api.constants.mjs +0 -3
  418. package/esm2022/lib/mock-api/mock-api.interceptor.mjs +0 -73
  419. package/esm2022/lib/mock-api/mock-api.request-handler.mjs +0 -48
  420. package/esm2022/lib/mock-api/mock-api.service.mjs +0 -93
  421. package/esm2022/lib/mock-api/mock-api.types.mjs +0 -2
  422. package/esm2022/lib/mock-api/mock-api.utils.mjs +0 -16
  423. package/esm2022/lib/mock-api/public-api.mjs +0 -6
  424. package/esm2022/pipes/bytes/bytes.pipe.mjs +0 -25
  425. package/esm2022/pipes/bytes/cmat-pipes-bytes.mjs +0 -5
  426. package/esm2022/pipes/bytes/public-api.mjs +0 -2
  427. package/esm2022/pipes/date-format/cmat-pipes-date-format.mjs +0 -5
  428. package/esm2022/pipes/date-format/date-format.pipe.mjs +0 -20
  429. package/esm2022/pipes/date-format/public-api.mjs +0 -2
  430. package/esm2022/pipes/find-by-key/cmat-pipes-find-by-key.mjs +0 -5
  431. package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +0 -23
  432. package/esm2022/pipes/find-by-key/public-api.mjs +0 -2
  433. package/esm2022/pipes/group-by/cmat-pipes-group-by.mjs +0 -5
  434. package/esm2022/pipes/group-by/group-by.pipe.mjs +0 -29
  435. package/esm2022/pipes/group-by/public-api.mjs +0 -2
  436. package/esm2022/pipes/keys/cmat-pipes-keys.mjs +0 -5
  437. package/esm2022/pipes/keys/keys.pipe.mjs +0 -26
  438. package/esm2022/pipes/keys/public-api.mjs +0 -2
  439. package/esm2022/pipes/secure/cmat-pipes-secure.mjs +0 -5
  440. package/esm2022/pipes/secure/public-api.mjs +0 -2
  441. package/esm2022/pipes/secure/secure-pipe.mjs +0 -46
  442. package/esm2022/pipes/uppercase/cmat-pipes-uppercase.mjs +0 -5
  443. package/esm2022/pipes/uppercase/public-api.mjs +0 -2
  444. package/esm2022/pipes/uppercase/uppercase.pipe.mjs +0 -17
  445. package/esm2022/public-api.mjs +0 -2
  446. package/esm2022/services/alert/alert.dialog.mjs +0 -12
  447. package/esm2022/services/alert/alert.message.mjs +0 -9
  448. package/esm2022/services/alert/alert.service.mjs +0 -166
  449. package/esm2022/services/alert/cmat-services-alert.mjs +0 -5
  450. package/esm2022/services/alert/enum.mjs +0 -15
  451. package/esm2022/services/alert/public-api.mjs +0 -5
  452. package/esm2022/services/config/cmat-services-config.mjs +0 -5
  453. package/esm2022/services/config/config.constants.mjs +0 -3
  454. package/esm2022/services/config/config.service.mjs +0 -35
  455. package/esm2022/services/config/public-api.mjs +0 -4
  456. package/esm2022/services/config/urlStateConfig.service.mjs +0 -30
  457. package/esm2022/services/confirmation/cmat-services-confirmation.mjs +0 -5
  458. package/esm2022/services/confirmation/confirmation.service.mjs +0 -51
  459. package/esm2022/services/confirmation/confirmation.types.mjs +0 -2
  460. package/esm2022/services/confirmation/dialog/dialog.component.mjs +0 -25
  461. package/esm2022/services/confirmation/public-api.mjs +0 -3
  462. package/esm2022/services/data/cmat-services-data.mjs +0 -5
  463. package/esm2022/services/data/data.service.mjs +0 -169
  464. package/esm2022/services/data/public-api.mjs +0 -2
  465. package/esm2022/services/loading/cmat-services-loading.mjs +0 -5
  466. package/esm2022/services/loading/loading.interceptor.mjs +0 -29
  467. package/esm2022/services/loading/loading.service.mjs +0 -72
  468. package/esm2022/services/loading/public-api.mjs +0 -3
  469. package/esm2022/services/local-storage/cmat-services-local-storage.mjs +0 -5
  470. package/esm2022/services/local-storage/local-storage.service.mjs +0 -22
  471. package/esm2022/services/local-storage/public-api.mjs +0 -2
  472. package/esm2022/services/media-watcher/cmat-services-media-watcher.mjs +0 -5
  473. package/esm2022/services/media-watcher/media-watcher.service.mjs +0 -55
  474. package/esm2022/services/media-watcher/public-api.mjs +0 -2
  475. package/esm2022/services/platform/cmat-services-platform.mjs +0 -5
  476. package/esm2022/services/platform/platform.service.mjs +0 -46
  477. package/esm2022/services/platform/public-api.mjs +0 -2
  478. package/esm2022/services/splash-screen/cmat-services-splash-screen.mjs +0 -5
  479. package/esm2022/services/splash-screen/public-api.mjs +0 -2
  480. package/esm2022/services/splash-screen/splash-screen.service.mjs +0 -42
  481. package/esm2022/services/title/cmat-services-title.mjs +0 -5
  482. package/esm2022/services/title/public-api.mjs +0 -2
  483. package/esm2022/services/title/title.service.mjs +0 -46
  484. package/esm2022/services/translation/cmat-services-translation.mjs +0 -5
  485. package/esm2022/services/translation/public-api.mjs +0 -2
  486. package/esm2022/services/translation/translation.service.mjs +0 -62
  487. package/esm2022/services/utils/cmat-services-utils.mjs +0 -5
  488. package/esm2022/services/utils/public-api.mjs +0 -2
  489. package/esm2022/services/utils/utils.service.mjs +0 -467
  490. package/esm2022/validators/cmat-validators.mjs +0 -5
  491. package/esm2022/validators/public-api.mjs +0 -2
  492. package/esm2022/validators/validators.mjs +0 -33
  493. package/esm2022/version/cmat-version.mjs +0 -5
  494. package/esm2022/version/public-api.mjs +0 -2
  495. package/esm2022/version/version.mjs +0 -11
@@ -1,298 +0,0 @@
1
- import { Directive, HostListener, Input, } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class CmatDigitOnlyDirective {
4
- constructor(el) {
5
- this.el = el;
6
- this.decimal = false;
7
- this.decimalSeparator = '.';
8
- this.allowNegatives = false;
9
- this.allowPaste = true;
10
- this.negativeSign = '-';
11
- this.min = -Infinity;
12
- this.max = Infinity;
13
- this.value = '';
14
- this._regex = null;
15
- this._hasDecimalPoint = false;
16
- this._hasNegativeSign = false;
17
- this._navigationKeys = [
18
- 'Backspace',
19
- 'Delete',
20
- 'Tab',
21
- 'Escape',
22
- 'Enter',
23
- 'Home',
24
- 'End',
25
- 'ArrowLeft',
26
- 'ArrowRight',
27
- 'Clear',
28
- 'Copy',
29
- 'Paste',
30
- ];
31
- this.inputElement = el.nativeElement;
32
- }
33
- onBeforeInput(e) {
34
- if (isNaN(Number(e.data))) {
35
- if (e.data === this.decimalSeparator ||
36
- (e.data === this.negativeSign && this.allowNegatives)) {
37
- return; // go on
38
- }
39
- e.preventDefault();
40
- e.stopPropagation();
41
- }
42
- }
43
- onInputChange(event) {
44
- const reg = /^-?(0|[1-9][0-9]*)(\.[0-9]*)?$/;
45
- const value = event.target.value;
46
- if ((!isNaN(+value) && reg.test(value)) || value === '' || value === '-') {
47
- this.value = value;
48
- }
49
- this.inputElement.value = this.value;
50
- }
51
- onKeyDown(e) {
52
- if (e.key === 'Process') {
53
- e.preventDefault();
54
- return;
55
- }
56
- if (this._navigationKeys.includes(e.key) || // Allow: navigation keys: backspace, delete, arrows etc.
57
- ((e.key === 'a' || e.code === 'KeyA') && e.ctrlKey === true) || // Allow: Ctrl+A
58
- ((e.key === 'c' || e.code === 'KeyC') && e.ctrlKey === true) || // Allow: Ctrl+C
59
- ((e.key === 'v' || e.code === 'KeyV') && e.ctrlKey === true) || // Allow: Ctrl+V
60
- ((e.key === 'x' || e.code === 'KeyX') && e.ctrlKey === true) || // Allow: Ctrl+X
61
- ((e.key === 'a' || e.code === 'KeyA') && e.metaKey === true) || // Allow: Cmd+A (Mac)
62
- ((e.key === 'c' || e.code === 'KeyC') && e.metaKey === true) || // Allow: Cmd+C (Mac)
63
- ((e.key === 'v' || e.code === 'KeyV') && e.metaKey === true) || // Allow: Cmd+V (Mac)
64
- ((e.key === 'x' || e.code === 'KeyX') && e.metaKey === true) // Allow: Cmd+X (Mac)
65
- ) {
66
- // let it happen, don't do anything
67
- return;
68
- }
69
- let newValue = '';
70
- if (this.decimal && e.key === this.decimalSeparator) {
71
- newValue = this._forecastValue(e.key);
72
- if (newValue.split(this.decimalSeparator).length > 2) {
73
- // has two or more decimal points
74
- e.preventDefault();
75
- return;
76
- }
77
- else {
78
- this._hasDecimalPoint = newValue.includes(this.decimalSeparator);
79
- return; // Allow: only one decimal point
80
- }
81
- }
82
- if (e.key === this.negativeSign && this.allowNegatives) {
83
- newValue = this._forecastValue(e.key);
84
- if (newValue.startsWith(this.negativeSign) ||
85
- newValue.split(this.negativeSign).length > 2) {
86
- e.preventDefault();
87
- return;
88
- }
89
- else {
90
- this._hasNegativeSign = newValue.split(this.negativeSign).length > -1;
91
- return;
92
- }
93
- }
94
- // Ensure that it is a number and stop the keypress
95
- if (e.key === ' ' || isNaN(Number(e.key))) {
96
- e.preventDefault();
97
- return;
98
- }
99
- newValue = newValue || this._forecastValue(e.key);
100
- // check the input pattern RegExp
101
- if (this._regex) {
102
- if (!this._regex.test(newValue)) {
103
- e.preventDefault();
104
- return;
105
- }
106
- }
107
- const newNumber = Number(newValue);
108
- if (newNumber > this.max || newNumber < this.min) {
109
- e.preventDefault();
110
- }
111
- }
112
- onPaste(event) {
113
- if (this.allowPaste === true) {
114
- let pastedInput = '';
115
- if (window['clipboardData']) {
116
- // Browser is IE
117
- pastedInput = window['clipboardData'].getData('text');
118
- }
119
- else if (event.clipboardData?.getData) {
120
- // Other browsers
121
- pastedInput = event.clipboardData.getData('text/plain');
122
- }
123
- this._pasteData(pastedInput);
124
- event.preventDefault();
125
- }
126
- else {
127
- // this prevents the paste
128
- event.preventDefault();
129
- event.stopPropagation();
130
- }
131
- }
132
- onDrop(event) {
133
- const textData = event.dataTransfer?.getData('text') ?? '';
134
- this.inputElement.focus();
135
- this._pasteData(textData);
136
- event.preventDefault();
137
- }
138
- ngOnChanges(changes) {
139
- if (changes['pattern']) {
140
- this._regex = this.pattern ? RegExp(this.pattern) : null;
141
- }
142
- if (changes['min']) {
143
- const maybeMin = Number(this.min);
144
- this.min = isNaN(maybeMin) ? -Infinity : maybeMin;
145
- }
146
- if (changes['max']) {
147
- const maybeMax = Number(this.max);
148
- this.max = isNaN(maybeMax) ? Infinity : maybeMax;
149
- }
150
- }
151
- _pasteData(pastedContent) {
152
- const sanitizedContent = this._sanitizeInput(pastedContent);
153
- if (sanitizedContent.includes(this.negativeSign) &&
154
- this._hasNegativeSign &&
155
- !this._getSelection().includes(this.negativeSign)) {
156
- return;
157
- }
158
- const pasted = document.execCommand('insertText', false, sanitizedContent);
159
- if (!pasted) {
160
- if (this.inputElement.setRangeText) {
161
- const { selectionStart: start, selectionEnd: end } = this.inputElement;
162
- this.inputElement.setRangeText(sanitizedContent, start ?? 0, end ?? 0, 'end');
163
- // Angular's Reactive Form relies on "input" event, but on Firefox, the setRangeText method doesn't trigger it
164
- // so we have to trigger it ourself.
165
- if (typeof window['InstallTrigger'] !==
166
- 'undefined') {
167
- this.inputElement.dispatchEvent(new Event('input', { cancelable: true }));
168
- }
169
- }
170
- else {
171
- // Browser does not support setRangeText, e.g. IE
172
- this._insertAtCursor(this.inputElement, sanitizedContent);
173
- }
174
- }
175
- if (this.decimal) {
176
- this._hasDecimalPoint =
177
- this.inputElement.value.includes(this.decimalSeparator);
178
- }
179
- this._hasNegativeSign =
180
- this.inputElement.value.includes(this.negativeSign);
181
- }
182
- // The following 2 methods were added from the below article for browsers that do not support setRangeText
183
- // https://stackoverflow.com/questions/11076975/how-to-insert-text-into-the-textarea-at-the-current-cursor-position
184
- _insertAtCursor(myField, myValue) {
185
- const startPos = myField.selectionStart ?? 0;
186
- const endPos = myField.selectionEnd ?? 0;
187
- myField.value =
188
- myField.value.substring(0, startPos) +
189
- myValue +
190
- myField.value.substring(endPos, myField.value.length);
191
- const pos = startPos + myValue.length;
192
- myField.focus();
193
- myField.setSelectionRange(pos, pos);
194
- this._triggerEvent(myField, 'input');
195
- }
196
- _triggerEvent(el, type) {
197
- if ('createEvent' in document) {
198
- // modern browsers, IE9+
199
- const e = document.createEvent('HTMLEvents');
200
- e.initEvent(type, false, true);
201
- el.dispatchEvent(e);
202
- }
203
- }
204
- // end stack overflow code
205
- _sanitizeInput(input) {
206
- let result = '';
207
- let regex;
208
- if (this.decimal && this._isValidDecimal(input)) {
209
- regex = new RegExp(`${this._getNegativeSignRegExp()}[^0-9${this.decimalSeparator}]`, 'g');
210
- }
211
- else {
212
- regex = new RegExp(`${this._getNegativeSignRegExp()}[^0-9]`, 'g');
213
- }
214
- result = input.replace(regex, '');
215
- const maxLength = this.inputElement.maxLength;
216
- if (maxLength > 0) {
217
- // the input element has maxLength limit
218
- const allowedLength = maxLength -
219
- this.inputElement.value.length +
220
- (result.includes(`${this.negativeSign}`) ? 1 : 0);
221
- result = allowedLength > 0 ? result.substring(0, allowedLength) : '';
222
- }
223
- return result;
224
- }
225
- _getNegativeSignRegExp() {
226
- return this.allowNegatives &&
227
- (!this._hasNegativeSign || this._getSelection().includes(this.negativeSign))
228
- ? `(?!^${this.negativeSign})`
229
- : '';
230
- }
231
- _isValidDecimal(str) {
232
- if (!this._hasDecimalPoint) {
233
- return str.split(this.decimalSeparator).length <= 2;
234
- }
235
- else {
236
- // the input element already has a decimal separator
237
- const selectedText = this._getSelection();
238
- if (selectedText?.includes(this.decimalSeparator)) {
239
- return str.split(this.decimalSeparator).length <= 2;
240
- }
241
- else {
242
- return !str.includes(this.decimalSeparator);
243
- }
244
- }
245
- }
246
- _getSelection() {
247
- return this.inputElement.value.substring(this.inputElement.selectionStart ?? 0, this.inputElement.selectionEnd ?? 0);
248
- }
249
- _forecastValue(key) {
250
- const selectionStart = this.inputElement.selectionStart ?? 0;
251
- const selectionEnd = this.inputElement.selectionEnd ?? 0;
252
- const oldValue = this.inputElement.value;
253
- return (oldValue.substring(0, selectionStart) +
254
- key +
255
- oldValue.substring(selectionEnd));
256
- }
257
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: CmatDigitOnlyDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
258
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.10", type: CmatDigitOnlyDirective, isStandalone: true, selector: "[cmatDigitOnly]", inputs: { decimal: "decimal", decimalSeparator: "decimalSeparator", allowNegatives: "allowNegatives", allowPaste: "allowPaste", negativeSign: "negativeSign", min: "min", max: "max", pattern: "pattern" }, host: { listeners: { "beforeinput": "onBeforeInput($event)", "input": "onInputChange($event)", "keydown": "onKeyDown($event)", "paste": "onPaste($event)", "drop": "onDrop($event)" } }, usesOnChanges: true, ngImport: i0 }); }
259
- }
260
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: CmatDigitOnlyDirective, decorators: [{
261
- type: Directive,
262
- args: [{
263
- selector: '[cmatDigitOnly]',
264
- standalone: true
265
- }]
266
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { decimal: [{
267
- type: Input
268
- }], decimalSeparator: [{
269
- type: Input
270
- }], allowNegatives: [{
271
- type: Input
272
- }], allowPaste: [{
273
- type: Input
274
- }], negativeSign: [{
275
- type: Input
276
- }], min: [{
277
- type: Input
278
- }], max: [{
279
- type: Input
280
- }], pattern: [{
281
- type: Input
282
- }], onBeforeInput: [{
283
- type: HostListener,
284
- args: ['beforeinput', ['$event']]
285
- }], onInputChange: [{
286
- type: HostListener,
287
- args: ['input', ['$event']]
288
- }], onKeyDown: [{
289
- type: HostListener,
290
- args: ['keydown', ['$event']]
291
- }], onPaste: [{
292
- type: HostListener,
293
- args: ['paste', ['$event']]
294
- }], onDrop: [{
295
- type: HostListener,
296
- args: ['drop', ['$event']]
297
- }] } });
298
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXQtb25seS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2RpcmVjdGl2ZXMvZGlnaXQtb25seS9kaWdpdC1vbmx5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEdBR1IsTUFBTSxlQUFlLENBQUM7O0FBTXZCLE1BQU0sT0FBTyxzQkFBc0I7SUE4Qi9CLFlBQW1CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBN0J4QixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLHFCQUFnQixHQUFHLEdBQUcsQ0FBQztRQUN2QixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsR0FBRyxDQUFDO1FBQ25CLFFBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQztRQUNoQixRQUFHLEdBQUcsUUFBUSxDQUFDO1FBR3hCLFVBQUssR0FBVyxFQUFFLENBQUM7UUFFWCxXQUFNLEdBQWtCLElBQUksQ0FBQztRQUM3QixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLG9CQUFlLEdBQUc7WUFDdEIsV0FBVztZQUNYLFFBQVE7WUFDUixLQUFLO1lBQ0wsUUFBUTtZQUNSLE9BQU87WUFDUCxNQUFNO1lBQ04sS0FBSztZQUNMLFdBQVc7WUFDWCxZQUFZO1lBQ1osT0FBTztZQUNQLE1BQU07WUFDTixPQUFPO1NBQ1YsQ0FBQztRQUdFLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBR0QsYUFBYSxDQUFDLENBQWE7UUFDdkIsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDeEIsSUFDSSxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxnQkFBZ0I7Z0JBQ2hDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsRUFDdkQsQ0FBQztnQkFDQyxPQUFPLENBQUMsUUFBUTtZQUNwQixDQUFDO1lBQ0QsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ25CLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixDQUFDO0lBQ0wsQ0FBQztJQUdELGFBQWEsQ0FBQyxLQUFVO1FBQ3BCLE1BQU0sR0FBRyxHQUFHLGdDQUFnQyxDQUFDO1FBQzdDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUssS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUN2RSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN2QixDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN6QyxDQUFDO0lBR0QsU0FBUyxDQUFDLENBQWdCO1FBQ3RCLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN0QixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDbkIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUNJLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSx5REFBeUQ7WUFDakcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxnQkFBZ0I7WUFDaEYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxnQkFBZ0I7WUFDaEYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxnQkFBZ0I7WUFDaEYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxnQkFBZ0I7WUFDaEYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxxQkFBcUI7WUFDckYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxxQkFBcUI7WUFDckYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxxQkFBcUI7WUFDckYsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsQ0FBQyxxQkFBcUI7VUFDcEYsQ0FBQztZQUNDLG1DQUFtQztZQUNuQyxPQUFPO1FB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QyxhQUFhO3NCQURaLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVdqQyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQXVFbkMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkF3QmpDLE1BQU07c0JBREwsWUFBWTt1QkFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgRGlyZWN0aXZlLFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEhvc3RMaXN0ZW5lcixcclxuICAgIElucHV0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgU2ltcGxlQ2hhbmdlcyxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdbY21hdERpZ2l0T25seV0nLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ21hdERpZ2l0T25seURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgICBASW5wdXQoKSBkZWNpbWFsID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBkZWNpbWFsU2VwYXJhdG9yID0gJy4nO1xyXG4gICAgQElucHV0KCkgYWxsb3dOZWdhdGl2ZXMgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGFsbG93UGFzdGUgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgbmVnYXRpdmVTaWduID0gJy0nO1xyXG4gICAgQElucHV0KCkgbWluID0gLUluZmluaXR5O1xyXG4gICAgQElucHV0KCkgbWF4ID0gSW5maW5pdHk7XHJcbiAgICBASW5wdXQoKSBwYXR0ZXJuPzogc3RyaW5nIHwgUmVnRXhwO1xyXG4gICAgaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgdmFsdWU6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIHByaXZhdGUgX3JlZ2V4OiBSZWdFeHAgfCBudWxsID0gbnVsbDtcclxuICAgIHByaXZhdGUgX2hhc0RlY2ltYWxQb2ludCA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBfaGFzTmVnYXRpdmVTaWduID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIF9uYXZpZ2F0aW9uS2V5cyA9IFtcclxuICAgICAgICAnQmFja3NwYWNlJyxcclxuICAgICAgICAnRGVsZXRlJyxcclxuICAgICAgICAnVGFiJyxcclxuICAgICAgICAnRXNjYXBlJyxcclxuICAgICAgICAnRW50ZXInLFxyXG4gICAgICAgICdIb21lJyxcclxuICAgICAgICAnRW5kJyxcclxuICAgICAgICAnQXJyb3dMZWZ0JyxcclxuICAgICAgICAnQXJyb3dSaWdodCcsXHJcbiAgICAgICAgJ0NsZWFyJyxcclxuICAgICAgICAnQ29weScsXHJcbiAgICAgICAgJ1Bhc3RlJyxcclxuICAgIF07XHJcblxyXG4gICAgY29uc3RydWN0b3IocHVibGljIGVsOiBFbGVtZW50UmVmKSB7XHJcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQgPSBlbC5uYXRpdmVFbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2JlZm9yZWlucHV0JywgWyckZXZlbnQnXSlcclxuICAgIG9uQmVmb3JlSW5wdXQoZTogSW5wdXRFdmVudCk6IGFueSB7XHJcbiAgICAgICAgaWYgKGlzTmFOKE51bWJlcihlLmRhdGEpKSkge1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICBlLmRhdGEgPT09IHRoaXMuZGVjaW1hbFNlcGFyYXRvciB8fFxyXG4gICAgICAgICAgICAgICAgKGUuZGF0YSA9PT0gdGhpcy5uZWdhdGl2ZVNpZ24gJiYgdGhpcy5hbGxvd05lZ2F0aXZlcylcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47IC8vIGdvIG9uXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdpbnB1dCcsIFsnJGV2ZW50J10pXHJcbiAgICBvbklucHV0Q2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCByZWcgPSAvXi0/KDB8WzEtOV1bMC05XSopKFxcLlswLTldKik/JC87XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICAgICAgaWYgKCghaXNOYU4oK3ZhbHVlKSAmJiByZWcudGVzdCh2YWx1ZSkpIHx8IHZhbHVlID09PSAnJyB8fCB2YWx1ZSA9PT0gJy0nKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxyXG4gICAgb25LZXlEb3duKGU6IEtleWJvYXJkRXZlbnQpOiBhbnkge1xyXG4gICAgICAgIGlmIChlLmtleSA9PT0gJ1Byb2Nlc3MnKSB7XHJcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMuX25hdmlnYXRpb25LZXlzLmluY2x1ZGVzKGUua2V5KSB8fCAvLyBBbGxvdzogbmF2aWdhdGlvbiBrZXlzOiBiYWNrc3BhY2UsIGRlbGV0ZSwgYXJyb3dzIGV0Yy5cclxuICAgICAgICAgICAgKChlLmtleSA9PT0gJ2EnIHx8IGUuY29kZSA9PT0gJ0tleUEnKSAmJiBlLmN0cmxLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDdHJsK0FcclxuICAgICAgICAgICAgKChlLmtleSA9PT0gJ2MnIHx8IGUuY29kZSA9PT0gJ0tleUMnKSAmJiBlLmN0cmxLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDdHJsK0NcclxuICAgICAgICAgICAgKChlLmtleSA9PT0gJ3YnIHx8IGUuY29kZSA9PT0gJ0tleVYnKSAmJiBlLmN0cmxLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDdHJsK1ZcclxuICAgICAgICAgICAgKChlLmtleSA9PT0gJ3gnIHx8IGUuY29kZSA9PT0gJ0tleVgnKSAmJiBlLmN0cmxLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDdHJsK1hcclxuICAgICAgICAgICAgKChlLmtleSA9PT0gJ2EnIHx8IGUuY29kZSA9PT0gJ0tleUEnKSAmJiBlLm1ldGFLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDbWQrQSAoTWFjKVxyXG4gICAgICAgICAgICAoKGUua2V5ID09PSAnYycgfHwgZS5jb2RlID09PSAnS2V5QycpICYmIGUubWV0YUtleSA9PT0gdHJ1ZSkgfHwgLy8gQWxsb3c6IENtZCtDIChNYWMpXHJcbiAgICAgICAgICAgICgoZS5rZXkgPT09ICd2JyB8fCBlLmNvZGUgPT09ICdLZXlWJykgJiYgZS5tZXRhS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ21kK1YgKE1hYylcclxuICAgICAgICAgICAgKChlLmtleSA9PT0gJ3gnIHx8IGUuY29kZSA9PT0gJ0tleVgnKSAmJiBlLm1ldGFLZXkgPT09IHRydWUpIC8vIEFsbG93OiBDbWQrWCAoTWFjKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICAvLyBsZXQgaXQgaGFwcGVuLCBkb24ndCBkbyBhbnl0aGluZ1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgbmV3VmFsdWUgPSAnJztcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZGVjaW1hbCAmJiBlLmtleSA9PT0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gdGhpcy5fZm9yZWNhc3RWYWx1ZShlLmtleSk7XHJcbiAgICAgICAgICAgIGlmIChuZXdWYWx1ZS5zcGxpdCh0aGlzLmRlY2ltYWxTZXBhcmF0b3IpLmxlbmd0aCA+IDIpIHtcclxuICAgICAgICAgICAgICAgIC8vIGhhcyB0d28gb3IgbW9yZSBkZWNpbWFsIHBvaW50c1xyXG4gICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faGFzRGVjaW1hbFBvaW50ID0gbmV3VmFsdWUuaW5jbHVkZXModGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjsgLy8gQWxsb3c6IG9ubHkgb25lIGRlY2ltYWwgcG9pbnRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGUua2V5ID09PSB0aGlzLm5lZ2F0aXZlU2lnbiAmJiB0aGlzLmFsbG93TmVnYXRpdmVzKSB7XHJcbiAgICAgICAgICAgIG5ld1ZhbHVlID0gdGhpcy5fZm9yZWNhc3RWYWx1ZShlLmtleSk7XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIG5ld1ZhbHVlLnN0YXJ0c1dpdGgodGhpcy5uZWdhdGl2ZVNpZ24pIHx8XHJcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZS5zcGxpdCh0aGlzLm5lZ2F0aXZlU2lnbikubGVuZ3RoID4gMlxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2hhc05lZ2F0aXZlU2lnbiA9IG5ld1ZhbHVlLnNwbGl0KHRoaXMubmVnYXRpdmVTaWduKS5sZW5ndGggPiAtMTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gRW5zdXJlIHRoYXQgaXQgaXMgYSBudW1iZXIgYW5kIHN0b3AgdGhlIGtleXByZXNzXHJcbiAgICAgICAgaWYgKGUua2V5ID09PSAnICcgfHwgaXNOYU4oTnVtYmVyKGUua2V5KSkpIHtcclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBuZXdWYWx1ZSA9IG5ld1ZhbHVlIHx8IHRoaXMuX2ZvcmVjYXN0VmFsdWUoZS5rZXkpO1xyXG4gICAgICAgIC8vIGNoZWNrIHRoZSBpbnB1dCBwYXR0ZXJuIFJlZ0V4cFxyXG4gICAgICAgIGlmICh0aGlzLl9yZWdleCkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuX3JlZ2V4LnRlc3QobmV3VmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IG5ld051bWJlciA9IE51bWJlcihuZXdWYWx1ZSk7XHJcbiAgICAgICAgaWYgKG5ld051bWJlciA+IHRoaXMubWF4IHx8IG5ld051bWJlciA8IHRoaXMubWluKSB7XHJcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcigncGFzdGUnLCBbJyRldmVudCddKVxyXG4gICAgb25QYXN0ZShldmVudDogYW55KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuYWxsb3dQYXN0ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBsZXQgcGFzdGVkSW5wdXQ6IHN0cmluZyA9ICcnO1xyXG4gICAgICAgICAgICBpZiAoKHdpbmRvdyBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVsnY2xpcGJvYXJkRGF0YSddKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBCcm93c2VyIGlzIElFXHJcbiAgICAgICAgICAgICAgICBwYXN0ZWRJbnB1dCA9ICh3aW5kb3cgYXMgUmVjb3JkPHN0cmluZywgYW55PilbXHJcbiAgICAgICAgICAgICAgICAgICAgJ2NsaXBib2FyZERhdGEnXHJcbiAgICAgICAgICAgICAgICBdLmdldERhdGEoJ3RleHQnKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC5jbGlwYm9hcmREYXRhPy5nZXREYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBPdGhlciBicm93c2Vyc1xyXG4gICAgICAgICAgICAgICAgcGFzdGVkSW5wdXQgPSBldmVudC5jbGlwYm9hcmREYXRhLmdldERhdGEoJ3RleHQvcGxhaW4nKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5fcGFzdGVEYXRhKHBhc3RlZElucHV0KTtcclxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyB0aGlzIHByZXZlbnRzIHRoZSBwYXN0ZVxyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignZHJvcCcsIFsnJGV2ZW50J10pXHJcbiAgICBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHRleHREYXRhID0gZXZlbnQuZGF0YVRyYW5zZmVyPy5nZXREYXRhKCd0ZXh0JykgPz8gJyc7XHJcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgICB0aGlzLl9wYXN0ZURhdGEodGV4dERhdGEpO1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzWydwYXR0ZXJuJ10pIHtcclxuICAgICAgICAgICAgdGhpcy5fcmVnZXggPSB0aGlzLnBhdHRlcm4gPyBSZWdFeHAodGhpcy5wYXR0ZXJuKSA6IG51bGw7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY2hhbmdlc1snbWluJ10pIHtcclxuICAgICAgICAgICAgY29uc3QgbWF5YmVNaW4gPSBOdW1iZXIodGhpcy5taW4pO1xyXG4gICAgICAgICAgICB0aGlzLm1pbiA9IGlzTmFOKG1heWJlTWluKSA/IC1JbmZpbml0eSA6IG1heWJlTWluO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGNoYW5nZXNbJ21heCddKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG1heWJlTWF4ID0gTnVtYmVyKHRoaXMubWF4KTtcclxuICAgICAgICAgICAgdGhpcy5tYXggPSBpc05hTihtYXliZU1heCkgPyBJbmZpbml0eSA6IG1heWJlTWF4O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHByaXZhdGUgX3Bhc3RlRGF0YShwYXN0ZWRDb250ZW50OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBzYW5pdGl6ZWRDb250ZW50ID0gdGhpcy5fc2FuaXRpemVJbnB1dChwYXN0ZWRDb250ZW50KTtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHNhbml0aXplZENvbnRlbnQuaW5jbHVkZXModGhpcy5uZWdhdGl2ZVNpZ24pICYmXHJcbiAgICAgICAgICAgIHRoaXMuX2hhc05lZ2F0aXZlU2lnbiAmJlxyXG4gICAgICAgICAgICAhdGhpcy5fZ2V0U2VsZWN0aW9uKCkuaW5jbHVkZXModGhpcy5uZWdhdGl2ZVNpZ24pXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcGFzdGVkID0gZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2luc2VydFRleHQnLCBmYWxzZSwgc2FuaXRpemVkQ29udGVudCk7XHJcbiAgICAgICAgaWYgKCFwYXN0ZWQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50LnNldFJhbmdlVGV4dCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgeyBzZWxlY3Rpb25TdGFydDogc3RhcnQsIHNlbGVjdGlvbkVuZDogZW5kIH0gPSB0aGlzLmlucHV0RWxlbWVudDtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnNldFJhbmdlVGV4dChcclxuICAgICAgICAgICAgICAgICAgICBzYW5pdGl6ZWRDb250ZW50LFxyXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0ID8/IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgZW5kID8/IDAsXHJcbiAgICAgICAgICAgICAgICAgICAgJ2VuZCdcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAvLyBBbmd1bGFyJ3MgUmVhY3RpdmUgRm9ybSByZWxpZXMgb24gXCJpbnB1dFwiIGV2ZW50LCBidXQgb24gRmlyZWZveCwgdGhlIHNldFJhbmdlVGV4dCBtZXRob2QgZG9lc24ndCB0cmlnZ2VyIGl0XHJcbiAgICAgICAgICAgICAgICAvLyBzbyB3ZSBoYXZlIHRvIHRyaWdnZXIgaXQgb3Vyc2VsZi5cclxuICAgICAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgICAgICB0eXBlb2YgKHdpbmRvdyBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVsnSW5zdGFsbFRyaWdnZXInXSAhPT1cclxuICAgICAgICAgICAgICAgICAgICAndW5kZWZpbmVkJ1xyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQuZGlzcGF0Y2hFdmVudChcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEV2ZW50KCdpbnB1dCcsIHsgY2FuY2VsYWJsZTogdHJ1ZSB9KVxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBCcm93c2VyIGRvZXMgbm90IHN1cHBvcnQgc2V0UmFuZ2VUZXh0LCBlLmcuIElFXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnNlcnRBdEN1cnNvcih0aGlzLmlucHV0RWxlbWVudCwgc2FuaXRpemVkQ29udGVudCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuZGVjaW1hbCkge1xyXG4gICAgICAgICAgICB0aGlzLl9oYXNEZWNpbWFsUG9pbnQgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUuaW5jbHVkZXModGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5faGFzTmVnYXRpdmVTaWduID1cclxuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUuaW5jbHVkZXModGhpcy5uZWdhdGl2ZVNpZ24pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFRoZSBmb2xsb3dpbmcgMiBtZXRob2RzIHdlcmUgYWRkZWQgZnJvbSB0aGUgYmVsb3cgYXJ0aWNsZSBmb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBzZXRSYW5nZVRleHRcclxuICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzExMDc2OTc1L2hvdy10by1pbnNlcnQtdGV4dC1pbnRvLXRoZS10ZXh0YXJlYS1hdC10aGUtY3VycmVudC1jdXJzb3ItcG9zaXRpb25cclxuICAgIHByaXZhdGUgX2luc2VydEF0Q3Vyc29yKG15RmllbGQ6IEhUTUxJbnB1dEVsZW1lbnQsIG15VmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHN0YXJ0UG9zID0gbXlGaWVsZC5zZWxlY3Rpb25TdGFydCA/PyAwO1xyXG4gICAgICAgIGNvbnN0IGVuZFBvcyA9IG15RmllbGQuc2VsZWN0aW9uRW5kID8/IDA7XHJcblxyXG4gICAgICAgIG15RmllbGQudmFsdWUgPVxyXG4gICAgICAgICAgICBteUZpZWxkLnZhbHVlLnN1YnN0cmluZygwLCBzdGFydFBvcykgK1xyXG4gICAgICAgICAgICBteVZhbHVlICtcclxuICAgICAgICAgICAgbXlGaWVsZC52YWx1ZS5zdWJzdHJpbmcoZW5kUG9zLCBteUZpZWxkLnZhbHVlLmxlbmd0aCk7XHJcblxyXG4gICAgICAgIGNvbnN0IHBvcyA9IHN0YXJ0UG9zICsgbXlWYWx1ZS5sZW5ndGg7XHJcbiAgICAgICAgbXlGaWVsZC5mb2N1cygpO1xyXG4gICAgICAgIG15RmllbGQuc2V0U2VsZWN0aW9uUmFuZ2UocG9zLCBwb3MpO1xyXG5cclxuICAgICAgICB0aGlzLl90cmlnZ2VyRXZlbnQobXlGaWVsZCwgJ2lucHV0Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfdHJpZ2dlckV2ZW50KGVsOiBIVE1MSW5wdXRFbGVtZW50LCB0eXBlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBpZiAoJ2NyZWF0ZUV2ZW50JyBpbiBkb2N1bWVudCkge1xyXG4gICAgICAgICAgICAvLyBtb2Rlcm4gYnJvd3NlcnMsIElFOStcclxuICAgICAgICAgICAgY29uc3QgZSA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdIVE1MRXZlbnRzJyk7XHJcbiAgICAgICAgICAgIGUuaW5pdEV2ZW50KHR5cGUsIGZhbHNlLCB0cnVlKTtcclxuICAgICAgICAgICAgZWwuZGlzcGF0Y2hFdmVudChlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBlbmQgc3RhY2sgb3ZlcmZsb3cgY29kZVxyXG5cclxuICAgIHByaXZhdGUgX3Nhbml0aXplSW5wdXQoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9ICcnO1xyXG4gICAgICAgIGxldCByZWdleDogUmVnRXhwO1xyXG4gICAgICAgIGlmICh0aGlzLmRlY2ltYWwgJiYgdGhpcy5faXNWYWxpZERlY2ltYWwoaW5wdXQpKSB7XHJcbiAgICAgICAgICAgIHJlZ2V4ID0gbmV3IFJlZ0V4cChcclxuICAgICAgICAgICAgICAgIGAke3RoaXMuX2dldE5lZ2F0aXZlU2lnblJlZ0V4cCgpfVteMC05JHt0aGlzLmRlY2ltYWxTZXBhcmF0b3J9XWAsXHJcbiAgICAgICAgICAgICAgICAnZydcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZWdleCA9IG5ldyBSZWdFeHAoYCR7dGhpcy5fZ2V0TmVnYXRpdmVTaWduUmVnRXhwKCl9W14wLTldYCwgJ2cnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVzdWx0ID0gaW5wdXQucmVwbGFjZShyZWdleCwgJycpO1xyXG5cclxuICAgICAgICBjb25zdCBtYXhMZW5ndGggPSB0aGlzLmlucHV0RWxlbWVudC5tYXhMZW5ndGg7XHJcbiAgICAgICAgaWYgKG1heExlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgLy8gdGhlIGlucHV0IGVsZW1lbnQgaGFzIG1heExlbmd0aCBsaW1pdFxyXG4gICAgICAgICAgICBjb25zdCBhbGxvd2VkTGVuZ3RoID1cclxuICAgICAgICAgICAgICAgIG1heExlbmd0aCAtXHJcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC52YWx1ZS5sZW5ndGggK1xyXG4gICAgICAgICAgICAgICAgKHJlc3VsdC5pbmNsdWRlcyhgJHt0aGlzLm5lZ2F0aXZlU2lnbn1gKSA/IDEgOiAwKTtcclxuICAgICAgICAgICAgcmVzdWx0ID0gYWxsb3dlZExlbmd0aCA+IDAgPyByZXN1bHQuc3Vic3RyaW5nKDAsIGFsbG93ZWRMZW5ndGgpIDogJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2V0TmVnYXRpdmVTaWduUmVnRXhwKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWxsb3dOZWdhdGl2ZXMgJiZcclxuICAgICAgICAgICAgKCF0aGlzLl9oYXNOZWdhdGl2ZVNpZ24gfHwgdGhpcy5fZ2V0U2VsZWN0aW9uKCkuaW5jbHVkZXModGhpcy5uZWdhdGl2ZVNpZ24pKVxyXG4gICAgICAgICAgICA/IGAoPyFeJHt0aGlzLm5lZ2F0aXZlU2lnbn0pYFxyXG4gICAgICAgICAgICA6ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2lzVmFsaWREZWNpbWFsKHN0cjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9oYXNEZWNpbWFsUG9pbnQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHN0ci5zcGxpdCh0aGlzLmRlY2ltYWxTZXBhcmF0b3IpLmxlbmd0aCA8PSAyO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHRoZSBpbnB1dCBlbGVtZW50IGFscmVhZHkgaGFzIGEgZGVjaW1hbCBzZXBhcmF0b3JcclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRUZXh0ID0gdGhpcy5fZ2V0U2VsZWN0aW9uKCk7XHJcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZFRleHQ/LmluY2x1ZGVzKHRoaXMuZGVjaW1hbFNlcGFyYXRvcikpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBzdHIuc3BsaXQodGhpcy5kZWNpbWFsU2VwYXJhdG9yKS5sZW5ndGggPD0gMjtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAhc3RyLmluY2x1ZGVzKHRoaXMuZGVjaW1hbFNlcGFyYXRvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2V0U2VsZWN0aW9uKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlLnN1YnN0cmluZyhcclxuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPz8gMCxcclxuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQuc2VsZWN0aW9uRW5kID8/IDBcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2ZvcmVjYXN0VmFsdWUoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGlvblN0YXJ0ID0gdGhpcy5pbnB1dEVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPz8gMDtcclxuICAgICAgICBjb25zdCBzZWxlY3Rpb25FbmQgPSB0aGlzLmlucHV0RWxlbWVudC5zZWxlY3Rpb25FbmQgPz8gMDtcclxuICAgICAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlO1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIG9sZFZhbHVlLnN1YnN0cmluZygwLCBzZWxlY3Rpb25TdGFydCkgK1xyXG4gICAgICAgICAgICBrZXkgK1xyXG4gICAgICAgICAgICBvbGRWYWx1ZS5zdWJzdHJpbmcoc2VsZWN0aW9uRW5kKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,84 +0,0 @@
1
- import { Directive, HostListener } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class CmatMaskDirective {
4
- constructor(el) {
5
- this.el = el;
6
- this.value = '';
7
- this.regex = new RegExp('');
8
- this._navigationKeys = [
9
- 'Backspace',
10
- 'Delete',
11
- 'Tab',
12
- 'Escape',
13
- 'Enter',
14
- 'Home',
15
- 'End',
16
- 'ArrowLeft',
17
- 'ArrowRight',
18
- 'Clear',
19
- 'Copy',
20
- 'Paste',
21
- ];
22
- this.inputElement = el.nativeElement;
23
- }
24
- onInputChange(event) {
25
- const value = event.target.value;
26
- if (this.regex.test(value)) {
27
- this.value = value;
28
- }
29
- this.inputElement.value = this.value;
30
- }
31
- onKeyDown(e) {
32
- if (e.key === 'Process') {
33
- e.preventDefault();
34
- return;
35
- }
36
- if (this._navigationKeys.includes(e.key) || // Allow: navigation keys: backspace, delete, arrows etc.
37
- ((e.key === 'a' || e.code === 'KeyA') && e.ctrlKey === true) || // Allow: Ctrl+A
38
- ((e.key === 'c' || e.code === 'KeyC') && e.ctrlKey === true) || // Allow: Ctrl+C
39
- ((e.key === 'v' || e.code === 'KeyV') && e.ctrlKey === true) || // Allow: Ctrl+V
40
- ((e.key === 'x' || e.code === 'KeyX') && e.ctrlKey === true) || // Allow: Ctrl+X
41
- ((e.key === 'a' || e.code === 'KeyA') && e.metaKey === true) || // Allow: Cmd+A (Mac)
42
- ((e.key === 'c' || e.code === 'KeyC') && e.metaKey === true) || // Allow: Cmd+C (Mac)
43
- ((e.key === 'v' || e.code === 'KeyV') && e.metaKey === true) || // Allow: Cmd+V (Mac)
44
- ((e.key === 'x' || e.code === 'KeyX') && e.metaKey === true) // Allow: Cmd+X (Mac)
45
- ) {
46
- // let it happen, don't do anything
47
- return;
48
- }
49
- const newValue = this._forecastValue(e.key);
50
- if (!this.regex.test(newValue)) {
51
- e.preventDefault();
52
- }
53
- }
54
- ngOnInit() {
55
- this.regex = new RegExp(this.inputElement.pattern);
56
- }
57
- _forecastValue(key) {
58
- const selectionStart = this.inputElement.selectionStart ?? 0;
59
- const selectionEnd = this.inputElement.selectionEnd ?? 0;
60
- const oldValue = this.inputElement.value;
61
- const selection = oldValue.substring(selectionStart, selectionEnd);
62
- return selection
63
- ? oldValue.replace(selection, key)
64
- : oldValue.substring(0, selectionStart) +
65
- key +
66
- oldValue.substring(selectionStart);
67
- }
68
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: CmatMaskDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
69
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.10", type: CmatMaskDirective, isStandalone: true, selector: "[cmatMask]", host: { listeners: { "input": "onInputChange($event)", "keydown": "onKeyDown($event)" } }, ngImport: i0 }); }
70
- }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: CmatMaskDirective, decorators: [{
72
- type: Directive,
73
- args: [{
74
- selector: '[cmatMask]',
75
- standalone: true
76
- }]
77
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { onInputChange: [{
78
- type: HostListener,
79
- args: ['input', ['$event']]
80
- }], onKeyDown: [{
81
- type: HostListener,
82
- args: ['keydown', ['$event']]
83
- }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2RpcmVjdGl2ZXMvZGlnaXQtb25seS9tYXNrLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFNNUUsTUFBTSxPQUFPLGlCQUFpQjtJQW9CMUIsWUFBbUIsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFsQmpDLFVBQUssR0FBVyxFQUFFLENBQUM7UUFDbkIsVUFBSyxHQUFXLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXZCLG9CQUFlLEdBQUc7WUFDdEIsV0FBVztZQUNYLFFBQVE7WUFDUixLQUFLO1lBQ0wsUUFBUTtZQUNSLE9BQU87WUFDUCxNQUFNO1lBQ04sS0FBSztZQUNMLFdBQVc7WUFDWCxZQUFZO1lBQ1osT0FBTztZQUNQLE1BQU07WUFDTixPQUFPO1NBQ1YsQ0FBQztRQUdFLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztJQUN6QyxDQUFDO0lBR0QsYUFBYSxDQUFDLEtBQVU7UUFDcEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDakMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3pDLENBQUM7SUFHRCxTQUFTLENBQUMsQ0FBZ0I7UUFDdEIsSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZ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Q0gsUUFBUSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMzQyxDQUFDOytHQTFFUSxpQkFBaUI7bUdBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFKN0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsVUFBVSxFQUFFLElBQUk7aUJBQ25COytFQTBCRyxhQUFhO3NCQURaLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVVqQyxTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tjbWF0TWFza10nLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ21hdE1hc2tEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgdmFsdWU6IHN0cmluZyA9ICcnO1xyXG4gICAgcmVnZXg6IFJlZ0V4cCA9IG5ldyBSZWdFeHAoJycpO1xyXG5cclxuICAgIHByaXZhdGUgX25hdmlnYXRpb25LZXlzID0gW1xyXG4gICAgICAgICdCYWNrc3BhY2UnLFxyXG4gICAgICAgICdEZWxldGUnLFxyXG4gICAgICAgICdUYWInLFxyXG4gICAgICAgICdFc2NhcGUnLFxyXG4gICAgICAgICdFbnRlcicsXHJcbiAgICAgICAgJ0hvbWUnLFxyXG4gICAgICAgICdFbmQnLFxyXG4gICAgICAgICdBcnJvd0xlZnQnLFxyXG4gICAgICAgICdBcnJvd1JpZ2h0JyxcclxuICAgICAgICAnQ2xlYXInLFxyXG4gICAgICAgICdDb3B5JyxcclxuICAgICAgICAnUGFzdGUnLFxyXG4gICAgXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWw6IEVsZW1lbnRSZWYpIHtcclxuICAgICAgICB0aGlzLmlucHV0RWxlbWVudCA9IGVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignaW5wdXQnLCBbJyRldmVudCddKVxyXG4gICAgb25JbnB1dENoYW5nZShldmVudDogYW55KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICAgICAgaWYgKHRoaXMucmVnZXgudGVzdCh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC52YWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgICBvbktleURvd24oZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChlLmtleSA9PT0gJ1Byb2Nlc3MnKSB7XHJcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgcmV0dXJuOyBcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uS2V5cy5pbmNsdWRlcyhlLmtleSkgfHwgLy8gQWxsb3c6IG5hdmlnYXRpb24ga2V5czogYmFja3NwYWNlLCBkZWxldGUsIGFycm93cyBldGMuXHJcbiAgICAgICAgICAgICgoZS5rZXkgPT09ICdhJyB8fCBlLmNvZGUgPT09ICdLZXlBJykgJiYgZS5jdHJsS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ3RybCtBXHJcbiAgICAgICAgICAgICgoZS5rZXkgPT09ICdjJyB8fCBlLmNvZGUgPT09ICdLZXlDJykgJiYgZS5jdHJsS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ3RybCtDXHJcbiAgICAgICAgICAgICgoZS5rZXkgPT09ICd2JyB8fCBlLmNvZGUgPT09ICdLZXlWJykgJiYgZS5jdHJsS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ3RybCtWXHJcbiAgICAgICAgICAgICgoZS5rZXkgPT09ICd4JyB8fCBlLmNvZGUgPT09ICdLZXlYJykgJiYgZS5jdHJsS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ3RybCtYXHJcbiAgICAgICAgICAgICgoZS5rZXkgPT09ICdhJyB8fCBlLmNvZGUgPT09ICdLZXlBJykgJiYgZS5tZXRhS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ21kK0EgKE1hYylcclxuICAgICAgICAgICAgKChlLmtleSA9PT0gJ2MnIHx8IGUuY29kZSA9PT0gJ0tleUMnKSAmJiBlLm1ldGFLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDbWQrQyAoTWFjKVxyXG4gICAgICAgICAgICAoKGUua2V5ID09PSAndicgfHwgZS5jb2RlID09PSAnS2V5VicpICYmIGUubWV0YUtleSA9PT0gdHJ1ZSkgfHwgLy8gQWxsb3c6IENtZCtWIChNYWMpXHJcbiAgICAgICAgICAgICgoZS5rZXkgPT09ICd4JyB8fCBlLmNvZGUgPT09ICdLZXlYJykgJiYgZS5tZXRhS2V5ID09PSB0cnVlKSAvLyBBbGxvdzogQ21kK1ggKE1hYylcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgLy8gbGV0IGl0IGhhcHBlbiwgZG9uJ3QgZG8gYW55dGhpbmdcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLl9mb3JlY2FzdFZhbHVlKGUua2V5KTtcclxuICAgICAgICBpZiAoIXRoaXMucmVnZXgudGVzdChuZXdWYWx1ZSkpIHtcclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJlZ2V4ID0gbmV3IFJlZ0V4cCh0aGlzLmlucHV0RWxlbWVudC5wYXR0ZXJuKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9mb3JlY2FzdFZhbHVlKGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBzZWxlY3Rpb25TdGFydCA9IHRoaXMuaW5wdXRFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID8/IDA7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uRW5kID0gdGhpcy5pbnB1dEVsZW1lbnQuc2VsZWN0aW9uRW5kID8/IDA7XHJcbiAgICAgICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLmlucHV0RWxlbWVudC52YWx1ZTtcclxuICAgICAgICBjb25zdCBzZWxlY3Rpb24gPSBvbGRWYWx1ZS5zdWJzdHJpbmcoc2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCk7XHJcbiAgICAgICAgcmV0dXJuIHNlbGVjdGlvblxyXG4gICAgICAgICAgICA/IG9sZFZhbHVlLnJlcGxhY2Uoc2VsZWN0aW9uLCBrZXkpXHJcbiAgICAgICAgICAgIDogb2xkVmFsdWUuc3Vic3RyaW5nKDAsIHNlbGVjdGlvblN0YXJ0KSArXHJcbiAgICAgICAgICAgIGtleSArXHJcbiAgICAgICAgICAgIG9sZFZhbHVlLnN1YnN0cmluZyhzZWxlY3Rpb25TdGFydCk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,3 +0,0 @@
1
- export * from './digit-only.directive';
2
- export * from './mask.directive';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvZGlyZWN0aXZlcy9kaWdpdC1vbmx5L3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaWdpdC1vbmx5LmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbWFzay5kaXJlY3RpdmUnOyJdfQ==
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21hdC1kaXJlY3RpdmVzLWVxdWFsLXZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvZGlyZWN0aXZlcy9lcXVhbC12YWxpZGF0b3IvY21hdC1kaXJlY3RpdmVzLWVxdWFsLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,54 +0,0 @@
1
- import { Directive, forwardRef, Attribute } from '@angular/core';
2
- import { NG_VALIDATORS } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- export class CmatEqualValidatorDirective {
5
- constructor(_validateEqual, _reverse) {
6
- this._validateEqual = _validateEqual;
7
- this._reverse = _reverse;
8
- }
9
- static _validateNoReverse(c, other) {
10
- return other.value === c.value ? null : { validateEqual: true };
11
- }
12
- static _validateReverse(c, other) {
13
- if (c.value === other.value) {
14
- if (other.errors) {
15
- delete other.errors['cmatValidateEqual'];
16
- if (Object.keys(other.errors).length === 0) {
17
- other.setErrors(null);
18
- }
19
- }
20
- }
21
- else {
22
- other.setErrors({ validateEqual: true });
23
- }
24
- return null;
25
- }
26
- validate(c) {
27
- const other = c.root.get(this._validateEqual);
28
- if (!other) {
29
- return null;
30
- }
31
- return this._reverse === 'true' ? CmatEqualValidatorDirective._validateReverse(c, other) : CmatEqualValidatorDirective._validateNoReverse(c, other);
32
- }
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: CmatEqualValidatorDirective, deps: [{ token: 'cmatValidateEqual', attribute: true }, { token: 'reverse', attribute: true }], target: i0.ɵɵFactoryTarget.Directive }); }
34
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.10", type: CmatEqualValidatorDirective, isStandalone: true, selector: "[cmatValidateEqual][formControlName],[cmatValidateEqual][formControl],[cmatValidateEqual][ngModel]", providers: [
35
- { provide: NG_VALIDATORS, useExisting: forwardRef(() => CmatEqualValidatorDirective), multi: true }
36
- ], ngImport: i0 }); }
37
- }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: CmatEqualValidatorDirective, decorators: [{
39
- type: Directive,
40
- args: [{
41
- selector: '[cmatValidateEqual][formControlName],[cmatValidateEqual][formControl],[cmatValidateEqual][ngModel]',
42
- providers: [
43
- { provide: NG_VALIDATORS, useExisting: forwardRef(() => CmatEqualValidatorDirective), multi: true }
44
- ],
45
- standalone: true
46
- }]
47
- }], ctorParameters: () => [{ type: undefined, decorators: [{
48
- type: Attribute,
49
- args: ['cmatValidateEqual']
50
- }] }, { type: undefined, decorators: [{
51
- type: Attribute,
52
- args: ['reverse']
53
- }] }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXF1YWwtdmFsaWRhdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvZGlyZWN0aXZlcy9lcXVhbC12YWxpZGF0b3IvZXF1YWwtdmFsaWRhdG9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUE4QixhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFTM0UsTUFBTSxPQUFPLDJCQUEyQjtJQUN0QyxZQUFvRCxjQUFzQixFQUMxQyxRQUFnQjtRQURJLG1CQUFjLEdBQWQsY0FBYyxDQUFRO1FBQzFDLGFBQVEsR0FBUixRQUFRLENBQVE7SUFDaEQsQ0FBQztJQUVPLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFrQixFQUFFLEtBQXNCO1FBQzFFLE9BQU8sS0FBSyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ2xFLENBQUM7SUFFTyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBa0IsRUFBRSxLQUFzQjtRQUN4RSxJQUFJLENBQUMsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzVCLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNqQixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztnQkFFekMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQzNDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3hCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFFBQVEsQ0FBQyxDQUFrQjtRQUN6QixNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFOUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQUMsT0FBTyxJQUFJLENBQUM7UUFBQyxDQUFDO1FBRTVCLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLDJCQUEyQixDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsMkJBQTJCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RKLENBQUM7K0dBL0JVLDJCQUEyQixrQkFDZixtQkFBbUIsOEJBQzdCLFNBQVM7bUdBRlgsMkJBQTJCLGlKQUwzQjtZQUNULEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtTQUNwRzs7NEZBR1UsMkJBQTJCO2tCQVB2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvR0FBb0c7b0JBQzlHLFNBQVMsRUFBRTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsNEJBQTRCLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO3FCQUNwRztvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQUVjLFNBQVM7MkJBQUMsbUJBQW1COzswQkFDdkMsU0FBUzsyQkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBmb3J3YXJkUmVmLCBBdHRyaWJ1dGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVmFsaWRhdG9yLCBBYnN0cmFjdENvbnRyb2wsIE5HX1ZBTElEQVRPUlMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tjbWF0VmFsaWRhdGVFcXVhbF1bZm9ybUNvbnRyb2xOYW1lXSxbY21hdFZhbGlkYXRlRXF1YWxdW2Zvcm1Db250cm9sXSxbY21hdFZhbGlkYXRlRXF1YWxdW25nTW9kZWxdJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHsgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ21hdEVxdWFsVmFsaWRhdG9yRGlyZWN0aXZlKSwgbXVsdGk6IHRydWUgfVxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ21hdEVxdWFsVmFsaWRhdG9yRGlyZWN0aXZlIGltcGxlbWVudHMgVmFsaWRhdG9yIHtcclxuICBjb25zdHJ1Y3RvcihAQXR0cmlidXRlKCdjbWF0VmFsaWRhdGVFcXVhbCcpIHByaXZhdGUgX3ZhbGlkYXRlRXF1YWw6IHN0cmluZyxcclxuICAgIEBBdHRyaWJ1dGUoJ3JldmVyc2UnKSBwcml2YXRlIF9yZXZlcnNlOiBzdHJpbmcpIHtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIF92YWxpZGF0ZU5vUmV2ZXJzZShjOiBBYnN0cmFjdENvbnRyb2wsIG90aGVyOiBBYnN0cmFjdENvbnRyb2wpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgbnVsbCB7XHJcbiAgICByZXR1cm4gb3RoZXIudmFsdWUgPT09IGMudmFsdWUgPyBudWxsIDogeyB2YWxpZGF0ZUVxdWFsOiB0cnVlIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN0YXRpYyBfdmFsaWRhdGVSZXZlcnNlKGM6IEFic3RyYWN0Q29udHJvbCwgb3RoZXI6IEFic3RyYWN0Q29udHJvbCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCBudWxsIHtcclxuICAgIGlmIChjLnZhbHVlID09PSBvdGhlci52YWx1ZSkge1xyXG4gICAgICBpZiAob3RoZXIuZXJyb3JzKSB7XHJcbiAgICAgICAgZGVsZXRlIG90aGVyLmVycm9yc1snY21hdFZhbGlkYXRlRXF1YWwnXTtcclxuXHJcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKG90aGVyLmVycm9ycykubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICBvdGhlci5zZXRFcnJvcnMobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBvdGhlci5zZXRFcnJvcnMoeyB2YWxpZGF0ZUVxdWFsOiB0cnVlIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGUoYzogQWJzdHJhY3RDb250cm9sKTogUmVjb3JkPHN0cmluZywgYW55PiB8IG51bGwge1xyXG4gICAgY29uc3Qgb3RoZXIgPSBjLnJvb3QuZ2V0KHRoaXMuX3ZhbGlkYXRlRXF1YWwpO1xyXG5cclxuICAgIGlmICghb3RoZXIpIHsgcmV0dXJuIG51bGw7IH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5fcmV2ZXJzZSA9PT0gJ3RydWUnID8gQ21hdEVxdWFsVmFsaWRhdG9yRGlyZWN0aXZlLl92YWxpZGF0ZVJldmVyc2UoYywgb3RoZXIpIDogQ21hdEVxdWFsVmFsaWRhdG9yRGlyZWN0aXZlLl92YWxpZGF0ZU5vUmV2ZXJzZShjLCBvdGhlcik7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export * from './equal-validator.directive';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvZGlyZWN0aXZlcy9lcXVhbC12YWxpZGF0b3IvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lcXVhbC12YWxpZGF0b3IuZGlyZWN0aXZlJztcclxuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21hdC1saWItbW9jay1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2xpYi9tb2NrLWFwaS9jbWF0LWxpYi1tb2NrLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,3 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const CMAT_MOCK_API_DEFAULT_DELAY = new InjectionToken('CMAT_MOCK_API_DEFAULT_DELAY');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1hcGkuY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9saWIvbW9jay1hcGkvbW9jay1hcGkuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxjQUFjLENBQVMsNkJBQTZCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgY29uc3QgQ01BVF9NT0NLX0FQSV9ERUZBVUxUX0RFTEFZID0gbmV3IEluamVjdGlvblRva2VuPG51bWJlcj4oJ0NNQVRfTU9DS19BUElfREVGQVVMVF9ERUxBWScpO1xyXG4iXX0=
@@ -1,73 +0,0 @@
1
- import { HttpErrorResponse, HttpResponse } from '@angular/common/http';
2
- import { Inject, Injectable } from '@angular/core';
3
- import { of, throwError } from 'rxjs';
4
- import { delay, switchMap } from 'rxjs/operators';
5
- import { CMAT_MOCK_API_DEFAULT_DELAY } from './mock-api.constants';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "./mock-api.service";
8
- export class CmatMockApiInterceptor {
9
- constructor(_defaultDelay, _cmatMockApiService) {
10
- this._defaultDelay = _defaultDelay;
11
- this._cmatMockApiService = _cmatMockApiService;
12
- }
13
- intercept(request, next) {
14
- // Try to get the request handler
15
- const { handler, urlParams } = this._cmatMockApiService.findHandler(request.method.toUpperCase(), request.url);
16
- // Pass through if the request handler does not exist
17
- if (!handler) {
18
- return next.handle(request);
19
- }
20
- // Set the intercepted request on the handler
21
- handler.request = request;
22
- // Set the url params on the handler
23
- handler.urlParams = urlParams;
24
- // Subscribe to the response function observable
25
- return handler.response.pipe(delay(handler.delay ?? this._defaultDelay ?? 0), switchMap((response) => {
26
- // If there is no response data,
27
- // throw an error response
28
- if (!response) {
29
- response = new HttpErrorResponse({
30
- error: 'NOT FOUND',
31
- status: 404,
32
- statusText: 'NOT FOUND'
33
- });
34
- return throwError(() => response);
35
- }
36
- // Parse the response data
37
- const data = {
38
- status: response[0],
39
- body: response[1]
40
- };
41
- // If the status code is in between 200 and 300,
42
- // return a success response
43
- if (data.status >= 200 && data.status < 300) {
44
- response = new HttpResponse({
45
- body: data.body,
46
- status: data.status,
47
- statusText: 'OK'
48
- });
49
- return of(response);
50
- }
51
- // For other status codes,
52
- // throw an error response
53
- response = new HttpErrorResponse({
54
- error: data.body.error,
55
- status: data.status,
56
- statusText: 'ERROR'
57
- });
58
- return throwError(() => response);
59
- }));
60
- }
61
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: CmatMockApiInterceptor, deps: [{ token: CMAT_MOCK_API_DEFAULT_DELAY }, { token: i1.CmatMockApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
62
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: CmatMockApiInterceptor, providedIn: 'root' }); }
63
- }
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: CmatMockApiInterceptor, decorators: [{
65
- type: Injectable,
66
- args: [{
67
- providedIn: 'root'
68
- }]
69
- }], ctorParameters: () => [{ type: undefined, decorators: [{
70
- type: Inject,
71
- args: [CMAT_MOCK_API_DEFAULT_DELAY]
72
- }] }, { type: i1.CmatMockApiService }] });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1hcGkuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2xpYi9tb2NrLWFwaS9tb2NrLWFwaS5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQXdELFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdILE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQU1uRSxNQUFNLE9BQU8sc0JBQXNCO0lBQy9CLFlBQ2lELGFBQXFCLEVBQzFELG1CQUF1QztRQURGLGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBQzFELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7SUFFbkQsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUF5QixFQUFFLElBQWlCO1FBQ2xELGlDQUFpQztRQUNqQyxNQUFNLEVBQ0YsT0FBTyxFQUNQLFNBQVMsRUFDWixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFcEYscURBQXFEO1FBQ3JELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNYLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBRUQsNkNBQTZDO1FBQzdDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBRTFCLG9DQUFvQztRQUNwQyxPQUFPLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUU5QixnREFBZ0Q7UUFDaEQsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDeEIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLENBQUMsRUFDL0MsU0FBUyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFFeEIsZ0NBQWdDO1lBQ2hDLDBCQUEwQjtZQUMxQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ1osUUFBUSxHQUFHLElBQUksaUJBQWlCLENBQUM7b0JBQzdCLEtBQUssRUFBRSxXQUFXO29CQUNsQixNQUFNLEVBQUUsR0FBRztvQkFDWCxVQUFVLEVBQUUsV0FBVztpQkFDMUIsQ0FBQyxDQUFDO2dCQUVILE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7WUFFRCwwQkFBMEI7WUFDMUIsTUFBTSxJQUFJLEdBQUc7Z0JBQ1QsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ25CLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO2FBQ3BCLENBQUM7WUFFRixnREFBZ0Q7WUFDaEQsNEJBQTRCO1lBQzVCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFDMUMsUUFBUSxHQUFHLElBQUksWUFBWSxDQUFDO29CQUN4QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7b0JBQ2YsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO29CQUNuQixVQUFVLEVBQUUsSUFBSTtpQkFDbkIsQ0FBQyxDQUFDO2dCQUVILE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3hCLENBQUM7WUFFRCwwQkFBMEI7WUFDMUIsMEJBQTBCO1lBQzFCLFFBQVEsR0FBRyxJQUFJLGlCQUFpQixDQUFDO2dCQUM3QixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLO2dCQUN0QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ25CLFVBQVUsRUFBRSxPQUFPO2FBQ3RCLENBQUMsQ0FBQztZQUVILE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDWixDQUFDOytHQXRFUSxzQkFBc0Isa0JBRW5CLDJCQUEyQjttSEFGOUIsc0JBQXNCLGNBRm5CLE1BQU07OzRGQUVULHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQUdRLE1BQU07MkJBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENNQVRfTU9DS19BUElfREVGQVVMVF9ERUxBWSB9IGZyb20gJy4vbW9jay1hcGkuY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQ21hdE1vY2tBcGlTZXJ2aWNlIH0gZnJvbSAnLi9tb2NrLWFwaS5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ21hdE1vY2tBcGlJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBASW5qZWN0KENNQVRfTU9DS19BUElfREVGQVVMVF9ERUxBWSkgcHJpdmF0ZSBfZGVmYXVsdERlbGF5OiBudW1iZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBfY21hdE1vY2tBcGlTZXJ2aWNlOiBDbWF0TW9ja0FwaVNlcnZpY2VcclxuICAgICkge1xyXG4gICAgfVxyXG5cclxuICAgIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcclxuICAgICAgICAvLyBUcnkgdG8gZ2V0IHRoZSByZXF1ZXN0IGhhbmRsZXJcclxuICAgICAgICBjb25zdCB7XHJcbiAgICAgICAgICAgIGhhbmRsZXIsXHJcbiAgICAgICAgICAgIHVybFBhcmFtc1xyXG4gICAgICAgIH0gPSB0aGlzLl9jbWF0TW9ja0FwaVNlcnZpY2UuZmluZEhhbmRsZXIocmVxdWVzdC5tZXRob2QudG9VcHBlckNhc2UoKSwgcmVxdWVzdC51cmwpO1xyXG5cclxuICAgICAgICAvLyBQYXNzIHRocm91Z2ggaWYgdGhlIHJlcXVlc3QgaGFuZGxlciBkb2VzIG5vdCBleGlzdFxyXG4gICAgICAgIGlmICghaGFuZGxlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBTZXQgdGhlIGludGVyY2VwdGVkIHJlcXVlc3Qgb24gdGhlIGhhbmRsZXJcclxuICAgICAgICBoYW5kbGVyLnJlcXVlc3QgPSByZXF1ZXN0O1xyXG5cclxuICAgICAgICAvLyBTZXQgdGhlIHVybCBwYXJhbXMgb24gdGhlIGhhbmRsZXJcclxuICAgICAgICBoYW5kbGVyLnVybFBhcmFtcyA9IHVybFBhcmFtcztcclxuXHJcbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIHRoZSByZXNwb25zZSBmdW5jdGlvbiBvYnNlcnZhYmxlXHJcbiAgICAgICAgcmV0dXJuIGhhbmRsZXIucmVzcG9uc2UucGlwZShcclxuICAgICAgICAgICAgZGVsYXkoaGFuZGxlci5kZWxheSA/PyB0aGlzLl9kZWZhdWx0RGVsYXkgPz8gMCksXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIG5vIHJlc3BvbnNlIGRhdGEsXHJcbiAgICAgICAgICAgICAgICAvLyB0aHJvdyBhbiBlcnJvciByZXNwb25zZVxyXG4gICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gbmV3IEh0dHBFcnJvclJlc3BvbnNlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6ICdOT1QgRk9VTkQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IDQwNCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzVGV4dDogJ05PVCBGT1VORCdcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gcmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIC8vIFBhcnNlIHRoZSByZXNwb25zZSBkYXRhXHJcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogcmVzcG9uc2VbMF0sXHJcbiAgICAgICAgICAgICAgICAgICAgYm9keTogcmVzcG9uc2VbMV1cclxuICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gSWYgdGhlIHN0YXR1cyBjb2RlIGlzIGluIGJldHdlZW4gMjAwIGFuZCAzMDAsXHJcbiAgICAgICAgICAgICAgICAvLyByZXR1cm4gYSBzdWNjZXNzIHJlc3BvbnNlXHJcbiAgICAgICAgICAgICAgICBpZiAoZGF0YS5zdGF0dXMgPj0gMjAwICYmIGRhdGEuc3RhdHVzIDwgMzAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBuZXcgSHR0cFJlc3BvbnNlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogZGF0YS5ib2R5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IGRhdGEuc3RhdHVzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNUZXh0OiAnT0snXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihyZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gRm9yIG90aGVyIHN0YXR1cyBjb2RlcyxcclxuICAgICAgICAgICAgICAgIC8vIHRocm93IGFuIGVycm9yIHJlc3BvbnNlXHJcbiAgICAgICAgICAgICAgICByZXNwb25zZSA9IG5ldyBIdHRwRXJyb3JSZXNwb25zZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGRhdGEuYm9keS5lcnJvcixcclxuICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IGRhdGEuc3RhdHVzLFxyXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1c1RleHQ6ICdFUlJPUidcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IHJlc3BvbnNlKTtcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==