cmat 0.0.14 → 0.0.16

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 (283) hide show
  1. package/README.md +2 -2
  2. package/components/cascade/cascade-list/cascade-list.component.d.ts +3 -3
  3. package/components/cascade/options.interface.d.ts +1 -1
  4. package/components/custom-formly/public-api.d.ts +1 -0
  5. package/components/custom-formly/types/button/button.component.d.ts +19 -3
  6. package/components/custom-formly/types/cascade/cascade.component.d.ts +3 -2
  7. package/components/custom-formly/types/checklist/checklist.component.d.ts +3 -2
  8. package/components/custom-formly/types/chips/chips.component.d.ts +3 -2
  9. package/components/custom-formly/types/date-range/date-range.component.d.ts +3 -2
  10. package/components/custom-formly/types/datepicker/datepicker.component.d.ts +3 -2
  11. package/components/custom-formly/types/multicheckbox/multicheckbox.component.d.ts +3 -3
  12. package/components/custom-formly/types/number/number.component.d.ts +3 -2
  13. package/components/custom-formly/types/quill/quill.component.d.ts +3 -2
  14. package/components/custom-formly/types/radio/radio.component.d.ts +3 -3
  15. package/components/custom-formly/types/rating/rating.component.d.ts +3 -2
  16. package/components/custom-formly/types/repeat/repeat.component.d.ts +3 -2
  17. package/components/custom-formly/types/select/select.component.d.ts +3 -2
  18. package/components/custom-formly/types/select-tree/select-tree.component.d.ts +2 -2
  19. package/components/custom-formly/types/stepper/stepper.type.d.ts +2 -2
  20. package/components/custom-formly/types/table/table.component.d.ts +13 -7
  21. package/components/custom-formly/types/tags/tags.component.d.ts +3 -2
  22. package/components/custom-formly/types/upload/upload.component.d.ts +3 -2
  23. package/components/custom-formly/wrappers/form-field/form-field.component.d.ts +25 -0
  24. package/components/material-datetimepicker/clock.d.ts +2 -2
  25. package/components/material-datetimepicker/datetimepicker.d.ts +4 -3
  26. package/components/navigation/navigation.types.d.ts +1 -1
  27. package/components/password-strength/mat-password-strength-validator.d.ts +1 -1
  28. package/components/popover/popover.component.d.ts +1 -3
  29. package/components/timeline/timeline.component.d.ts +1 -1
  30. package/components/transfer-picker/filter/filter.component.d.ts +1 -1
  31. package/components/transfer-picker/interface.d.ts +4 -4
  32. package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.d.ts +2 -2
  33. package/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.d.ts +1 -1
  34. package/components/transfer-picker/transfer-picker.component.d.ts +5 -5
  35. package/components/transfer-picker/transfer-picker.service.d.ts +6 -6
  36. package/components/upload/upload-queue/upload-queue.component.d.ts +4 -3
  37. package/directives/digit-only/mask.directive.d.ts +2 -0
  38. package/directives/equal-validator/equal-validator.directive.d.ts +1 -3
  39. package/esm2022/animations/dropdown.mjs +1 -1
  40. package/esm2022/components/adapter/dayjs-date-adapter.mjs +5 -5
  41. package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +3 -3
  42. package/esm2022/components/adapter/native-datetime-adapter.mjs +3 -3
  43. package/esm2022/components/breadcrumb/breadcrumb-item.directive.mjs +3 -3
  44. package/esm2022/components/breadcrumb/breadcrumb.component.mjs +6 -6
  45. package/esm2022/components/breadcrumb/breadcrumb.service.mjs +10 -13
  46. package/esm2022/components/card/card.component.mjs +5 -5
  47. package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +5 -5
  48. package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +13 -11
  49. package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +5 -5
  50. package/esm2022/components/cascade/options.interface.mjs +1 -1
  51. package/esm2022/components/chip-input/chip-input.component.mjs +10 -9
  52. package/esm2022/components/custom-formly/extension/addons.extension.mjs +3 -3
  53. package/esm2022/components/custom-formly/public-api.mjs +2 -1
  54. package/esm2022/components/custom-formly/types/button/button.component.mjs +57 -15
  55. package/esm2022/components/custom-formly/types/cascade/cascade.component.mjs +4 -4
  56. package/esm2022/components/custom-formly/types/checklist/checklist.component.mjs +5 -5
  57. package/esm2022/components/custom-formly/types/chips/chips.component.mjs +5 -5
  58. package/esm2022/components/custom-formly/types/color-picker/color-picker.component.mjs +3 -3
  59. package/esm2022/components/custom-formly/types/date-range/date-range.component.mjs +4 -4
  60. package/esm2022/components/custom-formly/types/datepicker/datepicker.component.mjs +5 -5
  61. package/esm2022/components/custom-formly/types/multicheckbox/multicheckbox.component.mjs +4 -5
  62. package/esm2022/components/custom-formly/types/number/number.component.mjs +5 -5
  63. package/esm2022/components/custom-formly/types/quill/quill.component.mjs +7 -7
  64. package/esm2022/components/custom-formly/types/radio/radio.component.mjs +5 -6
  65. package/esm2022/components/custom-formly/types/rating/rating.component.mjs +4 -4
  66. package/esm2022/components/custom-formly/types/repeat/repeat.component.mjs +5 -5
  67. package/esm2022/components/custom-formly/types/select/select.component.mjs +16 -15
  68. package/esm2022/components/custom-formly/types/select-tree/select-tree.component.mjs +4 -4
  69. package/esm2022/components/custom-formly/types/stepper/horizontal/stepper.component.mjs +5 -5
  70. package/esm2022/components/custom-formly/types/stepper/stepper.type.mjs +1 -1
  71. package/esm2022/components/custom-formly/types/stepper/vertical/stepper.component.mjs +5 -5
  72. package/esm2022/components/custom-formly/types/table/table.component.mjs +28 -14
  73. package/esm2022/components/custom-formly/types/tabs/tab.component.mjs +4 -4
  74. package/esm2022/components/custom-formly/types/tags/tags.component.mjs +7 -7
  75. package/esm2022/components/custom-formly/types/textarea/textarea.component.mjs +3 -3
  76. package/esm2022/components/custom-formly/types/upload/upload.component.mjs +4 -4
  77. package/esm2022/components/custom-formly/wrappers/addons/addons.component.mjs +3 -3
  78. package/esm2022/components/custom-formly/wrappers/card/card.component.mjs +3 -3
  79. package/esm2022/components/custom-formly/wrappers/expansion/expansion.component.mjs +5 -5
  80. package/esm2022/components/custom-formly/wrappers/form-field/form-field.component.mjs +47 -0
  81. package/esm2022/components/custom-formly/wrappers/panel/panel.component.mjs +3 -3
  82. package/esm2022/components/date-range/date-range.component.mjs +20 -15
  83. package/esm2022/components/drawer/drawer.component.mjs +3 -3
  84. package/esm2022/components/drawer/drawer.service.mjs +3 -3
  85. package/esm2022/components/fullscreen/fullscreen.component.mjs +5 -5
  86. package/esm2022/components/highlight/highlight.component.mjs +3 -3
  87. package/esm2022/components/highlight/highlight.service.mjs +3 -3
  88. package/esm2022/components/json-editor/json-editor.component.mjs +12 -12
  89. package/esm2022/components/masonry/masonry.component.mjs +3 -3
  90. package/esm2022/components/material-color-picker/material-color-picker.component.mjs +7 -5
  91. package/esm2022/components/material-datetimepicker/calendar-body.mjs +6 -6
  92. package/esm2022/components/material-datetimepicker/calendar.mjs +6 -6
  93. package/esm2022/components/material-datetimepicker/clock.mjs +5 -5
  94. package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +7 -5
  95. package/esm2022/components/material-datetimepicker/datetimepicker-intl.mjs +3 -3
  96. package/esm2022/components/material-datetimepicker/datetimepicker-toggle.mjs +9 -9
  97. package/esm2022/components/material-datetimepicker/datetimepicker.mjs +18 -15
  98. package/esm2022/components/material-datetimepicker/month-view.mjs +5 -5
  99. package/esm2022/components/material-datetimepicker/multi-year-view.mjs +5 -5
  100. package/esm2022/components/material-datetimepicker/time.mjs +10 -10
  101. package/esm2022/components/material-datetimepicker/year-view.mjs +5 -5
  102. package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +5 -5
  103. package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +5 -5
  104. package/esm2022/components/navigation/horizontal/components/divider/divider.component.mjs +3 -3
  105. package/esm2022/components/navigation/horizontal/components/spacer/spacer.component.mjs +3 -3
  106. package/esm2022/components/navigation/horizontal/horizontal.component.mjs +4 -4
  107. package/esm2022/components/navigation/navigation.service.mjs +3 -3
  108. package/esm2022/components/navigation/navigation.types.mjs +1 -1
  109. package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +5 -5
  110. package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +5 -5
  111. package/esm2022/components/navigation/vertical/components/collapsable/collapsable.component.mjs +5 -5
  112. package/esm2022/components/navigation/vertical/components/divider/divider.component.mjs +3 -3
  113. package/esm2022/components/navigation/vertical/components/group/group.component.mjs +5 -5
  114. package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +5 -5
  115. package/esm2022/components/navigation/vertical/vertical.component.mjs +5 -5
  116. package/esm2022/components/pagination/pagination.component.mjs +5 -5
  117. package/esm2022/components/pagination/pagination.directive.mjs +3 -3
  118. package/esm2022/components/pagination/pagination.pipe.mjs +5 -5
  119. package/esm2022/components/pagination/pagination.service.mjs +4 -4
  120. package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +5 -5
  121. package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +6 -6
  122. package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +5 -5
  123. package/esm2022/components/password-strength/mat-password-strength-validator.mjs +2 -2
  124. package/esm2022/components/popover/popover-trigger.mjs +3 -3
  125. package/esm2022/components/popover/popover.component.mjs +6 -6
  126. package/esm2022/components/popover/popover.target.mjs +3 -3
  127. package/esm2022/components/progress-bar/progress-bar.component.mjs +5 -5
  128. package/esm2022/components/rating/rating.component.mjs +11 -7
  129. package/esm2022/components/select-search/select-no-entries-found.directive.mjs +3 -3
  130. package/esm2022/components/select-search/select-search-clear.directive.mjs +4 -4
  131. package/esm2022/components/select-search/select-search.component.mjs +9 -9
  132. package/esm2022/components/select-tree/select-tree.component.mjs +11 -9
  133. package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +11 -11
  134. package/esm2022/components/timeline/timeline.component.mjs +5 -8
  135. package/esm2022/components/toast/toast-modal.component.mjs +6 -6
  136. package/esm2022/components/toast/toast.component.mjs +5 -5
  137. package/esm2022/components/toast/toast.service.mjs +10 -10
  138. package/esm2022/components/transfer-picker/filter/filter.component.mjs +6 -6
  139. package/esm2022/components/transfer-picker/interface.mjs +1 -1
  140. package/esm2022/components/transfer-picker/search/search.component.mjs +5 -5
  141. package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +5 -5
  142. package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +5 -5
  143. package/esm2022/components/transfer-picker/transfer-picker.component.mjs +5 -5
  144. package/esm2022/components/transfer-picker/transfer-picker.service.mjs +8 -8
  145. package/esm2022/components/upload/files.util.service.mjs +3 -3
  146. package/esm2022/components/upload/upload-queue/upload-queue.component.mjs +15 -14
  147. package/esm2022/components/upload/upload.component.mjs +5 -5
  148. package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +3 -3
  149. package/esm2022/directives/animate-on-scroll/scroll.service.mjs +3 -3
  150. package/esm2022/directives/autofocus/autofocus.directive.mjs +3 -3
  151. package/esm2022/directives/debounce/abstract-debounce.directive.mjs +3 -3
  152. package/esm2022/directives/debounce/debounce-click.directive.mjs +3 -3
  153. package/esm2022/directives/debounce/debounce-keyup.directive.mjs +3 -3
  154. package/esm2022/directives/digit-only/digit-only.directive.mjs +12 -12
  155. package/esm2022/directives/digit-only/mask.directive.mjs +21 -6
  156. package/esm2022/directives/equal-validator/equal-validator.directive.mjs +4 -4
  157. package/esm2022/lib/mock-api/mock-api.interceptor.mjs +3 -3
  158. package/esm2022/lib/mock-api/mock-api.request-handler.mjs +1 -1
  159. package/esm2022/lib/mock-api/mock-api.service.mjs +4 -4
  160. package/esm2022/lib/mock-api/mock-api.types.mjs +1 -1
  161. package/esm2022/lib/mock-api/mock-api.utils.mjs +1 -2
  162. package/esm2022/pipes/bytes/bytes.pipe.mjs +3 -3
  163. package/esm2022/pipes/date-format/date-format.pipe.mjs +7 -5
  164. package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +3 -3
  165. package/esm2022/pipes/group-by/group-by.pipe.mjs +4 -4
  166. package/esm2022/pipes/keys/keys.pipe.mjs +3 -3
  167. package/esm2022/pipes/secure/secure-pipe.mjs +3 -3
  168. package/esm2022/pipes/uppercase/uppercase.pipe.mjs +3 -3
  169. package/esm2022/public-api.mjs +1 -1
  170. package/esm2022/services/alert/alert.service.mjs +11 -10
  171. package/esm2022/services/config/config.service.mjs +3 -3
  172. package/esm2022/services/config/urlStateConfig.service.mjs +5 -5
  173. package/esm2022/services/confirmation/confirmation.service.mjs +3 -3
  174. package/esm2022/services/confirmation/dialog/dialog.component.mjs +5 -5
  175. package/esm2022/services/data/data.service.mjs +3 -3
  176. package/esm2022/services/loading/loading.interceptor.mjs +5 -5
  177. package/esm2022/services/loading/loading.service.mjs +3 -3
  178. package/esm2022/services/local-storage/local-storage.service.mjs +3 -3
  179. package/esm2022/services/media-watcher/media-watcher.service.mjs +4 -4
  180. package/esm2022/services/platform/platform.service.mjs +3 -3
  181. package/esm2022/services/splash-screen/splash-screen.service.mjs +3 -3
  182. package/esm2022/services/title/title.service.mjs +4 -4
  183. package/esm2022/services/translation/translation.service.mjs +5 -5
  184. package/esm2022/services/utils/utils.service.mjs +13 -14
  185. package/fesm2022/cmat-animations.mjs.map +1 -1
  186. package/fesm2022/cmat-components-adapter.mjs +10 -10
  187. package/fesm2022/cmat-components-adapter.mjs.map +1 -1
  188. package/fesm2022/cmat-components-breadcrumb.mjs +17 -20
  189. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  190. package/fesm2022/cmat-components-card.mjs +4 -4
  191. package/fesm2022/cmat-components-card.mjs.map +1 -1
  192. package/fesm2022/cmat-components-cascade.mjs +20 -18
  193. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  194. package/fesm2022/cmat-components-chip-input.mjs +9 -8
  195. package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
  196. package/fesm2022/cmat-components-custom-formly.mjs +248 -157
  197. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
  198. package/fesm2022/cmat-components-date-range.mjs +19 -14
  199. package/fesm2022/cmat-components-date-range.mjs.map +1 -1
  200. package/fesm2022/cmat-components-drawer.mjs +6 -6
  201. package/fesm2022/cmat-components-fullscreen.mjs +4 -4
  202. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
  203. package/fesm2022/cmat-components-highlight.mjs +6 -6
  204. package/fesm2022/cmat-components-json-editor.mjs +11 -11
  205. package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
  206. package/fesm2022/cmat-components-masonry.mjs +3 -3
  207. package/fesm2022/cmat-components-material-color-picker.mjs +6 -4
  208. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  209. package/fesm2022/cmat-components-material-datetimepicker.mjs +69 -64
  210. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  211. package/fesm2022/cmat-components-navigation.mjs +47 -47
  212. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  213. package/fesm2022/cmat-components-pagination.mjs +14 -14
  214. package/fesm2022/cmat-components-pagination.mjs.map +1 -1
  215. package/fesm2022/cmat-components-password-strength.mjs +14 -14
  216. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  217. package/fesm2022/cmat-components-popover.mjs +11 -11
  218. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  219. package/fesm2022/cmat-components-progress-bar.mjs +4 -4
  220. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
  221. package/fesm2022/cmat-components-rating.mjs +9 -5
  222. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  223. package/fesm2022/cmat-components-select-search.mjs +14 -14
  224. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  225. package/fesm2022/cmat-components-select-tree.mjs +10 -8
  226. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  227. package/fesm2022/cmat-components-timeline.mjs +14 -17
  228. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  229. package/fesm2022/cmat-components-toast.mjs +18 -18
  230. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  231. package/fesm2022/cmat-components-transfer-picker.mjs +28 -28
  232. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  233. package/fesm2022/cmat-components-upload.mjs +21 -20
  234. package/fesm2022/cmat-components-upload.mjs.map +1 -1
  235. package/fesm2022/cmat-directives-animate-on-scroll.mjs +6 -6
  236. package/fesm2022/cmat-directives-autofocus.mjs +3 -3
  237. package/fesm2022/cmat-directives-debounce.mjs +9 -9
  238. package/fesm2022/cmat-directives-digit-only.mjs +31 -16
  239. package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
  240. package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
  241. package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -1
  242. package/fesm2022/cmat-lib-mock-api.mjs +6 -7
  243. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
  244. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  245. package/fesm2022/cmat-pipes-date-format.mjs +6 -4
  246. package/fesm2022/cmat-pipes-date-format.mjs.map +1 -1
  247. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
  248. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  249. package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
  250. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  251. package/fesm2022/cmat-pipes-secure.mjs +3 -3
  252. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  253. package/fesm2022/cmat-services-alert.mjs +10 -9
  254. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  255. package/fesm2022/cmat-services-config.mjs +7 -7
  256. package/fesm2022/cmat-services-config.mjs.map +1 -1
  257. package/fesm2022/cmat-services-confirmation.mjs +7 -7
  258. package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
  259. package/fesm2022/cmat-services-data.mjs +3 -3
  260. package/fesm2022/cmat-services-loading.mjs +7 -7
  261. package/fesm2022/cmat-services-loading.mjs.map +1 -1
  262. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  263. package/fesm2022/cmat-services-media-watcher.mjs +3 -3
  264. package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
  265. package/fesm2022/cmat-services-platform.mjs +3 -3
  266. package/fesm2022/cmat-services-splash-screen.mjs +3 -3
  267. package/fesm2022/cmat-services-title.mjs +3 -3
  268. package/fesm2022/cmat-services-title.mjs.map +1 -1
  269. package/fesm2022/cmat-services-translation.mjs +4 -4
  270. package/fesm2022/cmat-services-translation.mjs.map +1 -1
  271. package/fesm2022/cmat-services-utils.mjs +12 -13
  272. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  273. package/icons/material-icons/material-solid.svg +3585 -3585
  274. package/lib/mock-api/mock-api.request-handler.d.ts +1 -3
  275. package/lib/mock-api/mock-api.service.d.ts +1 -3
  276. package/lib/mock-api/mock-api.types.d.ts +2 -4
  277. package/package.json +95 -95
  278. package/pipes/date-format/date-format.pipe.d.ts +1 -1
  279. package/pipes/group-by/group-by.pipe.d.ts +1 -1
  280. package/services/config/urlStateConfig.service.d.ts +0 -1
  281. package/services/translation/translation.service.d.ts +2 -2
  282. package/services/utils/utils.service.d.ts +5 -7
  283. package/styles/overrides/angular-material.scss +6 -0
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-services-confirmation.mjs","sources":["../../../projects/cmat/services/confirmation/dialog/dialog.component.ts","../../../projects/cmat/services/confirmation/dialog/dialog.component.html","../../../projects/cmat/services/confirmation/confirmation.service.ts","../../../projects/cmat/services/confirmation/cmat-services-confirmation.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\r\nimport { Component, Inject, ViewEncapsulation } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MAT_DIALOG_DATA, MatDialogRef, MatDialogModule } from '@angular/material/dialog';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { CmatConfirmationConfig } from '../confirmation.types';\r\n\r\n@Component({\r\n selector: 'cmat-confirmation-dialog',\r\n templateUrl: './dialog.component.html',\r\n styles: [\r\n /* language=SCSS */\r\n `\r\n .cmat-confirmation-dialog-panel {\r\n .mat-mdc-dialog-container {\r\n padding: 0 !important;\r\n }\r\n }\r\n `\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n standalone: true,\r\n imports: [MatButtonModule, MatDialogModule, MatIconModule, NgClass]\r\n})\r\nexport class CmatConfirmationDialogComponent {\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: CmatConfirmationConfig,\r\n public matDialogRef: MatDialogRef<CmatConfirmationDialogComponent>\r\n ) {\r\n }\r\n}\r\n","<div class=\"relative flex flex-col w-full h-full\">\n\n <!-- Dismiss button -->\n @if (data.dismissible) {\n <div class=\"absolute top-0 right-0 pt-4 pr-4\">\n <button type=\"button\" mat-icon-button [matDialogClose]=\"undefined\">\n <mat-icon class=\"text-secondary\" [svgIcon]=\"'heroicons_outline:x-mark'\"></mat-icon>\n </button>\n </div>\n }\n\n <!-- Content -->\n <div class=\"flex flex-col sm:flex-row items-center sm:items-start p-8 pb-6 sm:pb-8\">\n\n <!-- Icon -->\n @if (data.icon?.show) {\n <div class=\"flex flex-0 items-center justify-center w-10 h-10 sm:mr-4 rounded-full\" [ngClass]=\"{'text-primary-600 bg-primary-100 dark:text-primary-50 dark:bg-primary-600': data.icon?.color === 'primary',\n 'text-accent-600 bg-accent-100 dark:text-accent-50 dark:bg-accent-600': data.icon?.color === 'accent',\n 'text-warn-600 bg-warn-100 dark:text-warn-50 dark:bg-warn-600': data.icon?.color === 'warn',\n 'text-slate-600 bg-slate-100 dark:text-slate-50 dark:bg-slate-600': data.icon?.color === 'basic',\n 'text-blue-600 bg-blue-100 dark:text-blue-50 dark:bg-blue-600': data.icon?.color === 'info',\n 'text-emerald-500 bg-emerald-100 dark:text-emerald-50 dark:bg-emerald-500': data.icon?.color === 'success',\n 'text-amber-500 bg-amber-100 dark:text-amber-50 dark:bg-amber-500': data.icon?.color === 'warning',\n 'text-red-600 bg-red-100 dark:text-red-50 dark:bg-red-600': data.icon?.color === 'error'\n }\">\n @if (data.icon?.name) {\n <mat-icon class=\"text-current\" [svgIcon]=\"data.icon?.name||''\"></mat-icon>\n }\n </div>\n }\n\n @if (data.title || data.message) {\n <div\n class=\"flex flex-col items-center sm:items-start mt-4 sm:mt-0 sm:pr-8 space-y-1 text-center sm:text-left\">\n <!-- Title -->\n @if (data.title) {\n <div class=\"text-xl leading-6 font-medium\" [innerHTML]=\"data.title\"></div>\n }\n <!-- Message -->\n @if (data.message) {\n <div class=\"text-secondary\" [innerHTML]=\"data.message\"></div>\n }\n </div>\n }\n\n </div>\n\n <!-- Actions -->\n @if (data.actions?.confirm?.show || data.actions?.cancel?.show) {\n <div\n class=\"flex items-center justify-center sm:justify-end px-6 py-4 space-x-3 bg-slate-50 dark:bg-black dark:bg-opacity-10\">\n <!-- Confirm -->\n @if (data.actions?.confirm?.show) {\n <button type=\"button\" mat-flat-button [color]=\"data.actions?.confirm?.color\"\n [matDialogClose]=\"'confirmed'\">\n {{data.actions?.confirm?.label}}\n </button>\n }\n <!-- Cancel -->\n @if (data.actions?.cancel?.show) {\n <button type=\"button\" mat-stroked-button [matDialogClose]=\"'cancelled'\">\n {{data.actions?.cancel?.label}}\n </button>\n }\n </div>\n }\n\n</div>","import { Injectable } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { merge } from 'lodash-es';\r\nimport { CmatConfirmationConfig } from './confirmation.types';\r\nimport { CmatConfirmationDialogComponent } from './dialog/dialog.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatConfirmationService {\r\n private _defaultConfig: CmatConfirmationConfig = {\r\n title: '确认动作',\r\n message: '确认此动作吗?',\r\n icon: {\r\n show: true,\r\n name: 'heroicons_outline:exclamation-triangle',\r\n color: 'warn'\r\n },\r\n actions: {\r\n confirm: {\r\n show: true,\r\n label: '确认',\r\n color: 'warn'\r\n },\r\n cancel: {\r\n show: true,\r\n label: '取消'\r\n }\r\n },\r\n dismissible: false\r\n };\r\n\r\n constructor(private _matDialog: MatDialog) {\r\n\r\n }\r\n\r\n open(config: CmatConfirmationConfig = {}): MatDialogRef<CmatConfirmationDialogComponent> {\r\n // Merge the user config with the default config\r\n const userConfig = merge({}, this._defaultConfig, config);\r\n\r\n // Open the dialog\r\n return this._matDialog.open(CmatConfirmationDialogComponent, {\r\n autoFocus: false,\r\n disableClose: !userConfig.dismissible,\r\n data: userConfig,\r\n panelClass: 'cmat-confirmation-dialog-panel'\r\n });\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cmat-services-confirmation.mjs","sources":["../../../projects/cmat/services/confirmation/dialog/dialog.component.ts","../../../projects/cmat/services/confirmation/dialog/dialog.component.html","../../../projects/cmat/services/confirmation/confirmation.service.ts","../../../projects/cmat/services/confirmation/cmat-services-confirmation.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\r\nimport { Component, Inject, ViewEncapsulation } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MAT_DIALOG_DATA, MatDialogRef, MatDialogModule } from '@angular/material/dialog';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { CmatConfirmationConfig } from '../confirmation.types';\r\n\r\n@Component({\r\n selector: 'cmat-confirmation-dialog',\r\n templateUrl: './dialog.component.html',\r\n styles: [\r\n /* language=SCSS */\r\n `\r\n .cmat-confirmation-dialog-panel {\r\n .mat-mdc-dialog-container {\r\n padding: 0 !important;\r\n }\r\n }\r\n `\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n standalone: true,\r\n imports: [MatButtonModule, MatDialogModule, MatIconModule, NgClass]\r\n})\r\nexport class CmatConfirmationDialogComponent {\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: CmatConfirmationConfig,\r\n public matDialogRef: MatDialogRef<CmatConfirmationDialogComponent>\r\n ) {\r\n }\r\n}\r\n","<div class=\"relative flex flex-col w-full h-full\">\r\n\r\n <!-- Dismiss button -->\r\n @if (data.dismissible) {\r\n <div class=\"absolute top-0 right-0 pt-4 pr-4\">\r\n <button type=\"button\" mat-icon-button [matDialogClose]=\"undefined\">\r\n <mat-icon class=\"text-secondary\" [svgIcon]=\"'heroicons_outline:x-mark'\"></mat-icon>\r\n </button>\r\n </div>\r\n }\r\n\r\n <!-- Content -->\r\n <div class=\"flex flex-col sm:flex-row items-center sm:items-start p-8 pb-6 sm:pb-8\">\r\n\r\n <!-- Icon -->\r\n @if (data.icon?.show) {\r\n <div class=\"flex flex-0 items-center justify-center w-10 h-10 sm:mr-4 rounded-full\" [ngClass]=\"{'text-primary-600 bg-primary-100 dark:text-primary-50 dark:bg-primary-600': data.icon?.color === 'primary',\r\n 'text-accent-600 bg-accent-100 dark:text-accent-50 dark:bg-accent-600': data.icon?.color === 'accent',\r\n 'text-warn-600 bg-warn-100 dark:text-warn-50 dark:bg-warn-600': data.icon?.color === 'warn',\r\n 'text-slate-600 bg-slate-100 dark:text-slate-50 dark:bg-slate-600': data.icon?.color === 'basic',\r\n 'text-blue-600 bg-blue-100 dark:text-blue-50 dark:bg-blue-600': data.icon?.color === 'info',\r\n 'text-emerald-500 bg-emerald-100 dark:text-emerald-50 dark:bg-emerald-500': data.icon?.color === 'success',\r\n 'text-amber-500 bg-amber-100 dark:text-amber-50 dark:bg-amber-500': data.icon?.color === 'warning',\r\n 'text-red-600 bg-red-100 dark:text-red-50 dark:bg-red-600': data.icon?.color === 'error'\r\n }\">\r\n @if (data.icon?.name) {\r\n <mat-icon class=\"text-current\" [svgIcon]=\"data.icon?.name||''\"></mat-icon>\r\n }\r\n </div>\r\n }\r\n\r\n @if (data.title || data.message) {\r\n <div\r\n class=\"flex flex-col items-center sm:items-start mt-4 sm:mt-0 sm:pr-8 space-y-1 text-center sm:text-left\">\r\n <!-- Title -->\r\n @if (data.title) {\r\n <div class=\"text-xl leading-6 font-medium\" [innerHTML]=\"data.title\"></div>\r\n }\r\n <!-- Message -->\r\n @if (data.message) {\r\n <div class=\"text-secondary\" [innerHTML]=\"data.message\"></div>\r\n }\r\n </div>\r\n }\r\n\r\n </div>\r\n\r\n <!-- Actions -->\r\n @if (data.actions?.confirm?.show || data.actions?.cancel?.show) {\r\n <div\r\n class=\"flex items-center justify-center sm:justify-end px-6 py-4 space-x-3 bg-slate-50 dark:bg-black dark:bg-opacity-10\">\r\n <!-- Confirm -->\r\n @if (data.actions?.confirm?.show) {\r\n <button type=\"button\" mat-flat-button [color]=\"data.actions?.confirm?.color\"\r\n [matDialogClose]=\"'confirmed'\">\r\n {{data.actions?.confirm?.label}}\r\n </button>\r\n }\r\n <!-- Cancel -->\r\n @if (data.actions?.cancel?.show) {\r\n <button type=\"button\" mat-stroked-button [matDialogClose]=\"'cancelled'\">\r\n {{data.actions?.cancel?.label}}\r\n </button>\r\n }\r\n </div>\r\n }\r\n\r\n</div>","import { Injectable } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { merge } from 'lodash-es';\r\nimport { CmatConfirmationConfig } from './confirmation.types';\r\nimport { CmatConfirmationDialogComponent } from './dialog/dialog.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatConfirmationService {\r\n private _defaultConfig: CmatConfirmationConfig = {\r\n title: '确认动作',\r\n message: '确认此动作吗?',\r\n icon: {\r\n show: true,\r\n name: 'heroicons_outline:exclamation-triangle',\r\n color: 'warn'\r\n },\r\n actions: {\r\n confirm: {\r\n show: true,\r\n label: '确认',\r\n color: 'warn'\r\n },\r\n cancel: {\r\n show: true,\r\n label: '取消'\r\n }\r\n },\r\n dismissible: false\r\n };\r\n\r\n constructor(private _matDialog: MatDialog) {\r\n\r\n }\r\n\r\n open(config: CmatConfirmationConfig = {}): MatDialogRef<CmatConfirmationDialogComponent> {\r\n // Merge the user config with the default config\r\n const userConfig = merge({}, this._defaultConfig, config);\r\n\r\n // Open the dialog\r\n return this._matDialog.open(CmatConfirmationDialogComponent, {\r\n autoFocus: false,\r\n disableClose: !userConfig.dismissible,\r\n data: userConfig,\r\n panelClass: 'cmat-confirmation-dialog-panel'\r\n });\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;MAwBa,+BAA+B,CAAA;IAExC,WACoC,CAAA,IAA4B,EACrD,YAA2D,EAAA;QADlC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAwB;QACrD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAA+C;KAErE;AANQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,+BAA+B,kBAG5B,eAAe,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAHlB,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxB5C,wpGAmEM,ED7CQ,MAAA,EAAA,CAAA,kFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,wUAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEzD,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAjB3C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAYrB,aAAA,EAAA,iBAAiB,CAAC,IAAI,cACzB,IAAI,EAAA,OAAA,EACP,CAAC,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,CAAC,EAAA,QAAA,EAAA,wpGAAA,EAAA,MAAA,EAAA,CAAA,kFAAA,CAAA,EAAA,CAAA;;0BAK9D,MAAM;2BAAC,eAAe,CAAA;;;MElBlB,uBAAuB,CAAA;AAuBhC,IAAA,WAAA,CAAoB,UAAqB,EAAA;QAArB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAW;AAtBjC,QAAA,IAAA,CAAA,cAAc,GAA2B;AAC7C,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,IAAI,EAAE;AACF,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,IAAI,EAAE,wCAAwC;AAC9C,gBAAA,KAAK,EAAE,MAAM;AAChB,aAAA;AACD,YAAA,OAAO,EAAE;AACL,gBAAA,OAAO,EAAE;AACL,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,KAAK,EAAE,IAAI;AACX,oBAAA,KAAK,EAAE,MAAM;AAChB,iBAAA;AACD,gBAAA,MAAM,EAAE;AACJ,oBAAA,IAAI,EAAE,IAAI;AACV,oBAAA,KAAK,EAAE,IAAI;AACd,iBAAA;AACJ,aAAA;AACD,YAAA,WAAW,EAAE,KAAK;SACrB,CAAC;KAID;IAED,IAAI,CAAC,SAAiC,EAAE,EAAA;;AAEpC,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;;AAG1D,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,+BAA+B,EAAE;AACzD,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,YAAY,EAAE,CAAC,UAAU,CAAC,WAAW;AACrC,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,UAAU,EAAE,gCAAgC;AAC/C,SAAA,CAAC,CAAC;KACN;8GAtCQ,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFpB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACRD;;AAEG;;;;"}
@@ -158,10 +158,10 @@ class CmatDataService {
158
158
  .pipe(tap((res) => res), catchError((err) => CmatUtilsService.handleError(err)));
159
159
  }
160
160
  }
161
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatDataService, deps: [{ token: i1.HttpClient }, { token: i2.CmatUrlStateConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
162
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatDataService, providedIn: 'root' }); }
161
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatDataService, deps: [{ token: i1.HttpClient }, { token: i2.CmatUrlStateConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
162
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatDataService, providedIn: 'root' }); }
163
163
  }
164
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatDataService, decorators: [{
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatDataService, decorators: [{
165
165
  type: Injectable,
166
166
  args: [{
167
167
  providedIn: 'root'
@@ -61,10 +61,10 @@ class CmatLoadingService {
61
61
  this._show$.next(false);
62
62
  }
63
63
  }
64
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatLoadingService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
65
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatLoadingService, providedIn: 'root' }); }
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatLoadingService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
65
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatLoadingService, providedIn: 'root' }); }
66
66
  }
67
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatLoadingService, decorators: [{
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatLoadingService, decorators: [{
68
68
  type: Injectable,
69
69
  args: [{
70
70
  providedIn: 'root'
@@ -80,7 +80,7 @@ class CmatLoadingInterceptor {
80
80
  });
81
81
  }
82
82
  intercept(req, next) {
83
- if (!this.handleRequestsAutomatically || req.url.indexOf('file/download/') > -1) {
83
+ if (!this.handleRequestsAutomatically || req.url.includes('file/download/')) {
84
84
  return next.handle(req);
85
85
  }
86
86
  this._cmatLoadingService.setLoadingStatus(true, req.url);
@@ -89,10 +89,10 @@ class CmatLoadingInterceptor {
89
89
  this._cmatLoadingService.setLoadingStatus(false, req.url);
90
90
  }));
91
91
  }
92
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatLoadingInterceptor, deps: [{ token: CmatLoadingService }], target: i0.ɵɵFactoryTarget.Injectable }); }
93
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatLoadingInterceptor }); }
92
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatLoadingInterceptor, deps: [{ token: CmatLoadingService }], target: i0.ɵɵFactoryTarget.Injectable }); }
93
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatLoadingInterceptor }); }
94
94
  }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatLoadingInterceptor, decorators: [{
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatLoadingInterceptor, decorators: [{
96
96
  type: Injectable
97
97
  }], ctorParameters: () => [{ type: CmatLoadingService }] });
98
98
 
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-services-loading.mjs","sources":["../../../projects/cmat/services/loading/loading.service.ts","../../../projects/cmat/services/loading/loading.interceptor.ts","../../../projects/cmat/services/loading/cmat-services-loading.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatLoadingService {\r\n private _auto$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\r\n private _mode$: BehaviorSubject<'determinate' | 'indeterminate'> = new BehaviorSubject<'determinate' | 'indeterminate'>('indeterminate');\r\n private _progress$: BehaviorSubject<number | null> = new BehaviorSubject<number | null>(0);\r\n private _show$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n private _urlMap: Map<string, boolean> = new Map<string, boolean>();\r\n\r\n constructor(private _httpClient: HttpClient) {\r\n }\r\n\r\n get auto$(): Observable<boolean> {\r\n return this._auto$.asObservable();\r\n }\r\n\r\n get mode$(): Observable<'determinate' | 'indeterminate'> {\r\n return this._mode$.asObservable();\r\n }\r\n\r\n get progress$(): Observable<number | null> {\r\n return this._progress$.asObservable();\r\n }\r\n\r\n get show$(): Observable<boolean> {\r\n return this._show$.asObservable();\r\n }\r\n\r\n show(): void {\r\n this._show$.next(true);\r\n }\r\n\r\n hide(): void {\r\n this._show$.next(false);\r\n }\r\n\r\n setAutoMode(value: boolean): void {\r\n this._auto$.next(value);\r\n }\r\n\r\n setMode(value: 'determinate' | 'indeterminate'): void {\r\n this._mode$.next(value);\r\n }\r\n\r\n setProgress(value: number): void {\r\n if (value < 0 || value > 100) {\r\n console.error('Progress value must be between 0 and 100!');\r\n return;\r\n }\r\n\r\n this._progress$.next(value);\r\n }\r\n\r\n setLoadingStatus(status: boolean, url: string): void {\r\n // Return if the url was not provided\r\n if (!url) {\r\n console.error('The request URL must be provided!');\r\n return;\r\n }\r\n\r\n if (status === true) {\r\n this._urlMap.set(url, status);\r\n this._show$.next(true);\r\n }\r\n else if (status === false && this._urlMap.has(url)) {\r\n this._urlMap.delete(url);\r\n }\r\n\r\n // Only set the status to 'false' if all outgoing requests are completed\r\n if (this._urlMap.size === 0) {\r\n this._show$.next(false);\r\n }\r\n }\r\n}\r\n\r\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { finalize, Observable } from 'rxjs';\r\nimport { CmatLoadingService } from './loading.service';\r\n\r\n@Injectable()\r\nexport class CmatLoadingInterceptor implements HttpInterceptor {\r\n handleRequestsAutomatically: boolean;\r\n\r\n constructor(\r\n private _cmatLoadingService: CmatLoadingService\r\n ) {\r\n this._cmatLoadingService.auto$\r\n .subscribe((value: boolean) => {\r\n this.handleRequestsAutomatically = value;\r\n });\r\n }\r\n\r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n if (!this.handleRequestsAutomatically || req.url.indexOf('file/download/') > -1) {\r\n return next.handle(req);\r\n }\r\n\r\n this._cmatLoadingService.setLoadingStatus(true, req.url);\r\n\r\n return next.handle(req).pipe(\r\n finalize(() => {\r\n // Set the status to false if there are any errors or the request is completed\r\n this._cmatLoadingService.setLoadingStatus(false, req.url);\r\n }));\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.CmatLoadingService"],"mappings":"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"}
1
+ {"version":3,"file":"cmat-services-loading.mjs","sources":["../../../projects/cmat/services/loading/loading.service.ts","../../../projects/cmat/services/loading/loading.interceptor.ts","../../../projects/cmat/services/loading/cmat-services-loading.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatLoadingService {\r\n private _auto$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\r\n private _mode$: BehaviorSubject<'determinate' | 'indeterminate'> = new BehaviorSubject<'determinate' | 'indeterminate'>('indeterminate');\r\n private _progress$: BehaviorSubject<number | null> = new BehaviorSubject<number | null>(0);\r\n private _show$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n private _urlMap: Map<string, boolean> = new Map<string, boolean>();\r\n\r\n constructor(private _httpClient: HttpClient) {\r\n }\r\n\r\n get auto$(): Observable<boolean> {\r\n return this._auto$.asObservable();\r\n }\r\n\r\n get mode$(): Observable<'determinate' | 'indeterminate'> {\r\n return this._mode$.asObservable();\r\n }\r\n\r\n get progress$(): Observable<number | null> {\r\n return this._progress$.asObservable();\r\n }\r\n\r\n get show$(): Observable<boolean> {\r\n return this._show$.asObservable();\r\n }\r\n\r\n show(): void {\r\n this._show$.next(true);\r\n }\r\n\r\n hide(): void {\r\n this._show$.next(false);\r\n }\r\n\r\n setAutoMode(value: boolean): void {\r\n this._auto$.next(value);\r\n }\r\n\r\n setMode(value: 'determinate' | 'indeterminate'): void {\r\n this._mode$.next(value);\r\n }\r\n\r\n setProgress(value: number): void {\r\n if (value < 0 || value > 100) {\r\n console.error('Progress value must be between 0 and 100!');\r\n return;\r\n }\r\n\r\n this._progress$.next(value);\r\n }\r\n\r\n setLoadingStatus(status: boolean, url: string): void {\r\n // Return if the url was not provided\r\n if (!url) {\r\n console.error('The request URL must be provided!');\r\n return;\r\n }\r\n\r\n if (status === true) {\r\n this._urlMap.set(url, status);\r\n this._show$.next(true);\r\n }\r\n else if (status === false && this._urlMap.has(url)) {\r\n this._urlMap.delete(url);\r\n }\r\n\r\n // Only set the status to 'false' if all outgoing requests are completed\r\n if (this._urlMap.size === 0) {\r\n this._show$.next(false);\r\n }\r\n }\r\n}\r\n\r\n","import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { finalize, Observable } from 'rxjs';\r\nimport { CmatLoadingService } from './loading.service';\r\n\r\n@Injectable()\r\nexport class CmatLoadingInterceptor implements HttpInterceptor {\r\n handleRequestsAutomatically: boolean;\r\n\r\n constructor(\r\n private _cmatLoadingService: CmatLoadingService\r\n ) {\r\n this._cmatLoadingService.auto$\r\n .subscribe((value: boolean) => {\r\n this.handleRequestsAutomatically = value;\r\n });\r\n }\r\n\r\n intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n if (!this.handleRequestsAutomatically || req.url.includes('file/download/')) {\r\n return next.handle(req);\r\n }\r\n\r\n this._cmatLoadingService.setLoadingStatus(true, req.url);\r\n\r\n return next.handle(req).pipe(\r\n finalize(() => {\r\n // Set the status to false if there are any errors or the request is completed\r\n this._cmatLoadingService.setLoadingStatus(false, req.url);\r\n }));\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.CmatLoadingService"],"mappings":"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"}
@@ -11,10 +11,10 @@ class CmatLocalStorageService {
11
11
  removeItem(key) {
12
12
  localStorage.removeItem(key);
13
13
  }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatLocalStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
15
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatLocalStorageService, providedIn: 'root' }); }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatLocalStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
15
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatLocalStorageService, providedIn: 'root' }); }
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatLocalStorageService, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatLocalStorageService, decorators: [{
18
18
  type: Injectable,
19
19
  args: [{
20
20
  providedIn: 'root'
@@ -44,10 +44,10 @@ class CmatMediaWatcherService {
44
44
  onMediaQueryChange$(query) {
45
45
  return this._breakpointObserver.observe(query);
46
46
  }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatMediaWatcherService, deps: [{ token: i1.BreakpointObserver }, { token: i2.CmatConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
48
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatMediaWatcherService, providedIn: 'root' }); }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatMediaWatcherService, deps: [{ token: i1.BreakpointObserver }, { token: i2.CmatConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
48
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatMediaWatcherService, providedIn: 'root' }); }
49
49
  }
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatMediaWatcherService, decorators: [{
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatMediaWatcherService, decorators: [{
51
51
  type: Injectable,
52
52
  args: [{
53
53
  providedIn: 'root'
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-services-media-watcher.mjs","sources":["../../../projects/cmat/services/media-watcher/media-watcher.service.ts","../../../projects/cmat/services/media-watcher/cmat-services-media-watcher.ts"],"sourcesContent":["import { BreakpointObserver, BreakpointState } from '@angular/cdk/layout';\r\nimport { Injectable, OnDestroy } from '@angular/core';\r\nimport { fromPairs } from 'lodash-es';\r\nimport { Observable, ReplaySubject, Subject } from 'rxjs';\r\nimport { map, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { CmatConfigService } from 'cmat/services/config';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatMediaWatcherService implements OnDestroy {\r\n private _onMediaChange: ReplaySubject<{ matchingAliases: string[]; matchingQueries: any }> = new ReplaySubject<{ matchingAliases: string[]; matchingQueries: any }>(1);\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n\r\n constructor(\r\n private _breakpointObserver: BreakpointObserver,\r\n private _cmatConfigService: CmatConfigService\r\n ) {\r\n this._cmatConfigService.config$.pipe(\r\n takeUntil(this._unsubscribeAll),\r\n map(config => fromPairs(Object.entries(config.screens).map(([alias, screen]) => ([alias, `(min-width: ${screen})`])))),\r\n switchMap(screens => this._breakpointObserver.observe(Object.values(screens)).pipe(\r\n map((state) => {\r\n // Prepare the observable values and set their defaults\r\n const matchingAliases: string[] = [];\r\n const matchingQueries: any = {};\r\n\r\n // Get the matching breakpoints and use them to fill the subject\r\n const matchingBreakpoints = Object.entries(state.breakpoints).filter(([, matches]) => matches) ?? [];\r\n for (const [query] of matchingBreakpoints) {\r\n // Find the alias of the matching query\r\n const matchingAlias = Object.entries(screens).find(([, q]) => q === query)?.[0];\r\n\r\n // Add the matching query to the observable values\r\n if (matchingAlias) {\r\n matchingAliases.push(matchingAlias);\r\n matchingQueries[matchingAlias] = query;\r\n }\r\n }\r\n\r\n // Execute the observable\r\n this._onMediaChange.next({\r\n matchingAliases,\r\n matchingQueries\r\n });\r\n })\r\n ))\r\n ).subscribe();\r\n }\r\n\r\n get onMediaChange$(): Observable<{ matchingAliases: string[]; matchingQueries: any }> {\r\n return this._onMediaChange.asObservable();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n onMediaQueryChange$(query: string | string[]): Observable<BreakpointState> {\r\n return this._breakpointObserver.observe(query);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cmat-services-media-watcher.mjs","sources":["../../../projects/cmat/services/media-watcher/media-watcher.service.ts","../../../projects/cmat/services/media-watcher/cmat-services-media-watcher.ts"],"sourcesContent":["import { BreakpointObserver, BreakpointState } from '@angular/cdk/layout';\r\nimport { Injectable, OnDestroy } from '@angular/core';\r\nimport { fromPairs } from 'lodash-es';\r\nimport { Observable, ReplaySubject, Subject } from 'rxjs';\r\nimport { map, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { CmatConfigService } from 'cmat/services/config';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatMediaWatcherService implements OnDestroy {\r\n private _onMediaChange: ReplaySubject<{ matchingAliases: string[]; matchingQueries: any }> = new ReplaySubject<{ matchingAliases: string[]; matchingQueries: any }>(1);\r\n private _unsubscribeAll: Subject<void> = new Subject<void>();\r\n\r\n constructor(\r\n private _breakpointObserver: BreakpointObserver,\r\n private _cmatConfigService: CmatConfigService\r\n ) {\r\n this._cmatConfigService.config$.pipe(\r\n takeUntil(this._unsubscribeAll),\r\n map(config => fromPairs(Object.entries(config.screens).map(([alias, screen]) => ([alias, `(min-width: ${screen as string})`])))),\r\n switchMap(screens => this._breakpointObserver.observe(Object.values(screens)).pipe(\r\n map((state) => {\r\n // Prepare the observable values and set their defaults\r\n const matchingAliases: string[] = [];\r\n const matchingQueries: any = {};\r\n\r\n // Get the matching breakpoints and use them to fill the subject\r\n const matchingBreakpoints = Object.entries(state.breakpoints).filter(([, matches]) => matches) ?? [];\r\n for (const [query] of matchingBreakpoints) {\r\n // Find the alias of the matching query\r\n const matchingAlias = Object.entries(screens).find(([, q]) => q === query)?.[0];\r\n\r\n // Add the matching query to the observable values\r\n if (matchingAlias) {\r\n matchingAliases.push(matchingAlias);\r\n matchingQueries[matchingAlias] = query;\r\n }\r\n }\r\n\r\n // Execute the observable\r\n this._onMediaChange.next({\r\n matchingAliases,\r\n matchingQueries\r\n });\r\n })\r\n ))\r\n ).subscribe();\r\n }\r\n\r\n get onMediaChange$(): Observable<{ matchingAliases: string[]; matchingQueries: any }> {\r\n return this._onMediaChange.asObservable();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unsubscribeAll.next(void 0);\r\n this._unsubscribeAll.complete();\r\n }\r\n\r\n onMediaQueryChange$(query: string | string[]): Observable<BreakpointState> {\r\n return this._breakpointObserver.observe(query);\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -35,10 +35,10 @@ class CmatPlatformService {
35
35
  this.osName = 'os-android';
36
36
  }
37
37
  }
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatPlatformService, deps: [{ token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable }); }
39
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatPlatformService, providedIn: 'root' }); }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatPlatformService, deps: [{ token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable }); }
39
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatPlatformService, providedIn: 'root' }); }
40
40
  }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatPlatformService, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatPlatformService, decorators: [{
42
42
  type: Injectable,
43
43
  args: [{
44
44
  providedIn: 'root'
@@ -28,10 +28,10 @@ class CmatSplashScreenService {
28
28
  hide() {
29
29
  this._document.body.classList.add('cmat-splash-screen-hidden');
30
30
  }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatSplashScreenService, deps: [{ token: DOCUMENT }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
32
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatSplashScreenService, providedIn: 'root' }); }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatSplashScreenService, deps: [{ token: DOCUMENT }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
32
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatSplashScreenService, providedIn: 'root' }); }
33
33
  }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatSplashScreenService, decorators: [{
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatSplashScreenService, decorators: [{
35
35
  type: Injectable,
36
36
  args: [{
37
37
  providedIn: 'root'
@@ -35,10 +35,10 @@ class CmatTitleService {
35
35
  }
36
36
  });
37
37
  }
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatTitleService, deps: [{ token: i1.Title }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
39
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatTitleService, providedIn: 'root' }); }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTitleService, deps: [{ token: i1.Title }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
39
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTitleService, providedIn: 'root' }); }
40
40
  }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatTitleService, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTitleService, decorators: [{
42
42
  type: Injectable,
43
43
  args: [{
44
44
  providedIn: 'root'
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-services-title.mjs","sources":["../../../projects/cmat/services/title/title.service.ts","../../../projects/cmat/services/title/cmat-services-title.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { filter, map, mergeMap } from 'rxjs/operators';\r\nimport { CmatUtilsService } from 'cmat/services/utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatTitleService {\r\n sub: Subscription;\r\n appName: string;\r\n\r\n constructor(private _titleService: Title, private _router: Router) {\r\n this.sub = this._router.events.pipe(\r\n filter((event: any) => event instanceof NavigationEnd),\r\n map(() => this._router.routerState.root),\r\n map((route) => {\r\n\r\n while (route.firstChild) {\r\n route = route.firstChild;\r\n }\r\n\r\n return route;\r\n }),\r\n\r\n mergeMap(route => route.data))\r\n .subscribe((data: { [x: string]: any }) => {\r\n let title = data['title'];\r\n\r\n if (title) {\r\n const fragment = this._router.url.split('#')[1];\r\n\r\n if (fragment) {\r\n title += ' | ' + CmatUtilsService.toTitleCase(fragment);\r\n }\r\n }\r\n\r\n if (title && this.appName) {\r\n title += ' - ' + this.appName;\r\n } else if (this.appName) {\r\n title = this.appName;\r\n }\r\n\r\n if (title) {\r\n this._titleService.setTitle(title);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;MAUa,gBAAgB,CAAA;IAIzB,WAAoB,CAAA,aAAoB,EAAU,OAAe,EAAA;QAA7C,IAAa,CAAA,aAAA,GAAb,aAAa,CAAO;QAAU,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;AAC7D,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAC/B,MAAM,CAAC,CAAC,KAAU,KAAK,KAAK,YAAY,aAAa,CAAC,EACtD,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EACxC,GAAG,CAAC,CAAC,KAAK,KAAI;AAEV,YAAA,OAAO,KAAK,CAAC,UAAU,EAAE;AACrB,gBAAA,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;aAC5B;AAED,YAAA,OAAO,KAAK,CAAC;AACjB,SAAC,CAAC,EAEF,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7B,aAAA,SAAS,CAAC,CAAC,IAA0B,KAAI;AACtC,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;YAE1B,IAAI,KAAK,EAAE;AACP,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEhD,IAAI,QAAQ,EAAE;oBACV,KAAK,IAAI,KAAK,GAAG,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;iBAC3D;aACJ;AAED,YAAA,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;AACvB,gBAAA,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;aACjC;AAAM,iBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACrB,gBAAA,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;aACxB;YAED,IAAI,KAAK,EAAE;AACP,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACtC;AACL,SAAC,CAAC,CAAC;KACV;8GAvCQ,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACTD;;AAEG;;;;"}
1
+ {"version":3,"file":"cmat-services-title.mjs","sources":["../../../projects/cmat/services/title/title.service.ts","../../../projects/cmat/services/title/cmat-services-title.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { filter, map, mergeMap } from 'rxjs/operators';\r\nimport { CmatUtilsService } from 'cmat/services/utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatTitleService {\r\n sub: Subscription;\r\n appName: string;\r\n\r\n constructor(private _titleService: Title, private _router: Router) {\r\n this.sub = this._router.events.pipe(\r\n filter((event: any) => event instanceof NavigationEnd),\r\n map(() => this._router.routerState.root),\r\n map((route) => {\r\n\r\n while (route.firstChild) {\r\n route = route.firstChild;\r\n }\r\n\r\n return route;\r\n }),\r\n\r\n mergeMap(route => route.data))\r\n .subscribe((data: Record<string, any>) => {\r\n let title = data['title'];\r\n\r\n if (title) {\r\n const fragment = this._router.url.split('#')[1];\r\n\r\n if (fragment) {\r\n title += ' | ' + CmatUtilsService.toTitleCase(fragment);\r\n }\r\n }\r\n\r\n if (title && this.appName) {\r\n title += ' - ' + this.appName;\r\n } else if (this.appName) {\r\n title = this.appName;\r\n }\r\n\r\n if (title) {\r\n this._titleService.setTitle(title);\r\n }\r\n });\r\n }\r\n\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;MAUa,gBAAgB,CAAA;IAIzB,WAAoB,CAAA,aAAoB,EAAU,OAAe,EAAA;QAA7C,IAAa,CAAA,aAAA,GAAb,aAAa,CAAO;QAAU,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;AAC7D,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAC/B,MAAM,CAAC,CAAC,KAAU,KAAK,KAAK,YAAY,aAAa,CAAC,EACtD,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EACxC,GAAG,CAAC,CAAC,KAAK,KAAI;AAEV,YAAA,OAAO,KAAK,CAAC,UAAU,EAAE;AACrB,gBAAA,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;aAC5B;AAED,YAAA,OAAO,KAAK,CAAC;AACjB,SAAC,CAAC,EAEF,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7B,aAAA,SAAS,CAAC,CAAC,IAAyB,KAAI;AACrC,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;YAE1B,IAAI,KAAK,EAAE;AACP,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEhD,IAAI,QAAQ,EAAE;oBACV,KAAK,IAAI,KAAK,GAAG,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;iBAC3D;aACJ;AAED,YAAA,IAAI,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;AACvB,gBAAA,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;aACjC;AAAM,iBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACrB,gBAAA,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;aACxB;YAED,IAAI,KAAK,EAAE;AACP,gBAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACtC;AACL,SAAC,CAAC,CAAC;KACV;8GAvCQ,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACTD;;AAEG;;;;"}
@@ -27,7 +27,7 @@ class CmatTranslationService {
27
27
  }
28
28
  useBrowserLanguage() {
29
29
  const browserLang = this.getBrowserLanguage();
30
- if (browserLang && browserLang.match(/en|zh/)) {
30
+ if (browserLang && (/en|zh/.exec(browserLang))) {
31
31
  this.changeLanguage(browserLang);
32
32
  return browserLang;
33
33
  }
@@ -51,10 +51,10 @@ class CmatTranslationService {
51
51
  getTranslationAsync(key, interpolateParams) {
52
52
  return this._translate.get(key, interpolateParams);
53
53
  }
54
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatTranslationService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
55
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatTranslationService, providedIn: 'root' }); }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTranslationService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable }); }
55
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTranslationService, providedIn: 'root' }); }
56
56
  }
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatTranslationService, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatTranslationService, decorators: [{
58
58
  type: Injectable,
59
59
  args: [{
60
60
  providedIn: 'root'
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-services-translation.mjs","sources":["../../../projects/cmat/services/translation/translation.service.ts","../../../projects/cmat/services/translation/cmat-services-translation.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatTranslationService {\r\n\r\n private readonly _defaultLanguage = 'zh';\r\n\r\n private _onLanguageChanged = new Subject<string>();\r\n\r\n constructor(private _translate: TranslateService) {\r\n this.setDefaultLanguage(this._defaultLanguage);\r\n }\r\n\r\n get languageChanged$(): Observable<string> {\r\n return this._onLanguageChanged.asObservable();\r\n }\r\n\r\n addLanguages(lang: string[]): void {\r\n this._translate.addLangs(lang);\r\n }\r\n\r\n\r\n setDefaultLanguage(lang: string): void {\r\n this._translate.setDefaultLang(lang);\r\n }\r\n\r\n getDefaultLanguage(): string {\r\n return this._translate.defaultLang;\r\n }\r\n\r\n getBrowserLanguage(): string | void {\r\n return this._translate.getBrowserLang();\r\n }\r\n\r\n\r\n useBrowserLanguage(): string | void {\r\n const browserLang = this.getBrowserLanguage();\r\n\r\n if (browserLang && browserLang.match(/en|zh/)) {\r\n this.changeLanguage(browserLang);\r\n return browserLang;\r\n }\r\n return browserLang;\r\n }\r\n\r\n changeLanguage(language: string = 'zh'): string {\r\n if (!language) {\r\n language = this._translate.defaultLang;\r\n }\r\n\r\n if (language !== this._translate.currentLang) {\r\n setTimeout(() => {\r\n this._translate.use(language);\r\n this._onLanguageChanged.next(language);\r\n });\r\n }\r\n return language;\r\n }\r\n\r\n\r\n getTranslation(key: string | Array<string>, interpolateParams?: object): string | any {\r\n return this._translate.instant(key, interpolateParams);\r\n }\r\n\r\n\r\n getTranslationAsync(key: string | Array<string>, interpolateParams?: object): Observable<string | any> {\r\n return this._translate.get(key, interpolateParams);\r\n }\r\n}\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAOa,sBAAsB,CAAA;AAM/B,IAAA,WAAA,CAAoB,UAA4B,EAAA;QAA5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAkB;QAJ/B,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;AAEjC,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,OAAO,EAAU,CAAC;AAG/C,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAClD;AAED,IAAA,IAAI,gBAAgB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KACjD;AAED,IAAA,YAAY,CAAC,IAAc,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KAClC;AAGD,IAAA,kBAAkB,CAAC,IAAY,EAAA;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;KACxC;IAED,kBAAkB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;KACtC;IAED,kBAAkB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;KAC3C;IAGD,kBAAkB,GAAA;AACd,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE9C,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;AAC3C,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AACjC,YAAA,OAAO,WAAW,CAAC;SACtB;AACD,QAAA,OAAO,WAAW,CAAC;KACtB;IAED,cAAc,CAAC,WAAmB,IAAI,EAAA;QAClC,IAAI,CAAC,QAAQ,EAAE;AACX,YAAA,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;SAC1C;QAED,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YAC1C,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC9B,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3C,aAAC,CAAC,CAAC;SACN;AACD,QAAA,OAAO,QAAQ,CAAC;KACnB;IAGD,cAAc,CAAC,GAA2B,EAAE,iBAA0B,EAAA;QAClE,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;KAC1D;IAGD,mBAAmB,CAAC,GAA2B,EAAE,iBAA0B,EAAA;QACvE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;KACtD;8GAhEQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFnB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACND;;AAEG;;;;"}
1
+ {"version":3,"file":"cmat-services-translation.mjs","sources":["../../../projects/cmat/services/translation/translation.service.ts","../../../projects/cmat/services/translation/cmat-services-translation.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatTranslationService {\r\n\r\n private readonly _defaultLanguage = 'zh';\r\n\r\n private _onLanguageChanged = new Subject<string>();\r\n\r\n constructor(private _translate: TranslateService) {\r\n this.setDefaultLanguage(this._defaultLanguage);\r\n }\r\n\r\n get languageChanged$(): Observable<string> {\r\n return this._onLanguageChanged.asObservable();\r\n }\r\n\r\n addLanguages(lang: string[]): void {\r\n this._translate.addLangs(lang);\r\n }\r\n\r\n\r\n setDefaultLanguage(lang: string): void {\r\n this._translate.setDefaultLang(lang);\r\n }\r\n\r\n getDefaultLanguage(): string {\r\n return this._translate.defaultLang;\r\n }\r\n\r\n getBrowserLanguage(): string | void {\r\n return this._translate.getBrowserLang();\r\n }\r\n\r\n\r\n useBrowserLanguage(): string | void {\r\n const browserLang = this.getBrowserLanguage();\r\n\r\n if (browserLang && (/en|zh/.exec(browserLang))) {\r\n this.changeLanguage(browserLang);\r\n return browserLang;\r\n }\r\n return browserLang;\r\n }\r\n\r\n changeLanguage(language: string = 'zh'): string {\r\n if (!language) {\r\n language = this._translate.defaultLang;\r\n }\r\n\r\n if (language !== this._translate.currentLang) {\r\n setTimeout(() => {\r\n this._translate.use(language);\r\n this._onLanguageChanged.next(language);\r\n });\r\n }\r\n return language;\r\n }\r\n\r\n\r\n getTranslation(key: string | string[], interpolateParams?: object): any {\r\n return this._translate.instant(key, interpolateParams);\r\n }\r\n\r\n\r\n getTranslationAsync(key: string | string[], interpolateParams?: object): Observable<any> {\r\n return this._translate.get(key, interpolateParams);\r\n }\r\n}\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAOa,sBAAsB,CAAA;AAM/B,IAAA,WAAA,CAAoB,UAA4B,EAAA;QAA5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAkB;QAJ/B,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;AAEjC,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,OAAO,EAAU,CAAC;AAG/C,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KAClD;AAED,IAAA,IAAI,gBAAgB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KACjD;AAED,IAAA,YAAY,CAAC,IAAc,EAAA;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KAClC;AAGD,IAAA,kBAAkB,CAAC,IAAY,EAAA;AAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;KACxC;IAED,kBAAkB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;KACtC;IAED,kBAAkB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;KAC3C;IAGD,kBAAkB,GAAA;AACd,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE9C,IAAI,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;AAC5C,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;AACjC,YAAA,OAAO,WAAW,CAAC;SACtB;AACD,QAAA,OAAO,WAAW,CAAC;KACtB;IAED,cAAc,CAAC,WAAmB,IAAI,EAAA;QAClC,IAAI,CAAC,QAAQ,EAAE;AACX,YAAA,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;SAC1C;QAED,IAAI,QAAQ,KAAK,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YAC1C,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC9B,gBAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC3C,aAAC,CAAC,CAAC;SACN;AACD,QAAA,OAAO,QAAQ,CAAC;KACnB;IAGD,cAAc,CAAC,GAAsB,EAAE,iBAA0B,EAAA;QAC7D,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;KAC1D;IAGD,mBAAmB,CAAC,GAAsB,EAAE,iBAA0B,EAAA;QAClE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;KACtD;8GAhEQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFnB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACND;;AAEG;;;;"}
@@ -133,19 +133,19 @@ class CmatUtilsService {
133
133
  const httpMessages = this.getHttpResponseMessage(data);
134
134
  for (const message of httpMessages) {
135
135
  const fullMessage = CmatUtilsService.splitInTwo(message, this.captionAndMessageSeparator);
136
- if (fullMessage.firstPart && fullMessage.firstPart.toLowerCase().indexOf(searchString) !== -1) {
137
- return includeCaptionInResult ? message : fullMessage.secondPart || fullMessage.firstPart;
136
+ if (fullMessage.firstPart?.toLowerCase().includes(searchString)) {
137
+ return includeCaptionInResult ? message : fullMessage.secondPart ?? fullMessage.firstPart;
138
138
  }
139
139
  }
140
140
  if (!seachInCaptionOnly) {
141
141
  for (const message of httpMessages) {
142
- if (message.toLowerCase().indexOf(searchString) !== -1) {
142
+ if (message.toLowerCase().includes(searchString)) {
143
143
  if (includeCaptionInResult) {
144
144
  return message;
145
145
  }
146
146
  else {
147
147
  const fullMessage = CmatUtilsService.splitInTwo(message, this.captionAndMessageSeparator);
148
- return fullMessage.secondPart || fullMessage.firstPart;
148
+ return fullMessage.secondPart ?? fullMessage.firstPart;
149
149
  }
150
150
  }
151
151
  }
@@ -212,7 +212,7 @@ class CmatUtilsService {
212
212
  result = JSON.stringify(object);
213
213
  return result;
214
214
  }
215
- catch (error) { /* empty */ }
215
+ catch { /* empty */ }
216
216
  const simpleObject = {};
217
217
  for (const prop in object) {
218
218
  if (!Object.prototype.hasOwnProperty.call(object, prop)) {
@@ -233,7 +233,7 @@ class CmatUtilsService {
233
233
  try {
234
234
  return JSON.parse(value);
235
235
  }
236
- catch (e) {
236
+ catch {
237
237
  if (isUndefined(value)) {
238
238
  return void 0;
239
239
  }
@@ -282,9 +282,7 @@ class CmatUtilsService {
282
282
  }
283
283
  static newGuid() {
284
284
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
285
- // eslint-disable-next-line no-bitwise
286
285
  const r = (Math.random() * 16) | 0;
287
- // eslint-disable-next-line no-bitwise
288
286
  const v = c === 'x' ? r : (r & 0x3) | 0x8;
289
287
  return v.toString(16);
290
288
  });
@@ -335,7 +333,7 @@ class CmatUtilsService {
335
333
  }
336
334
  static isTokenExpired(token, offsetSeconds) {
337
335
  const date = this.getTokenExpirationDate(token);
338
- offsetSeconds = offsetSeconds || 0;
336
+ offsetSeconds = offsetSeconds ?? 0;
339
337
  if (date == null) {
340
338
  return false;
341
339
  }
@@ -353,6 +351,7 @@ class CmatUtilsService {
353
351
  };
354
352
  // Reject the promise on error
355
353
  reader.onerror = (e) => {
354
+ // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
356
355
  reject(e);
357
356
  };
358
357
  // Read the file as the
@@ -361,7 +360,7 @@ class CmatUtilsService {
361
360
  }
362
361
  static dataURIToBlob(dataURI) {
363
362
  const splitDataURI = dataURI.split(',');
364
- const byteString = splitDataURI[0].indexOf('base64') >= 0 ? atob(splitDataURI[1]) : decodeURI(splitDataURI[1]);
363
+ const byteString = splitDataURI[0].includes('base64') ? atob(splitDataURI[1]) : decodeURI(splitDataURI[1]);
365
364
  const mimeString = splitDataURI[0].split(':')[1].split(';')[0];
366
365
  const ia = new Uint8Array(byteString.length);
367
366
  for (let i = 0; i < byteString.length; i++) {
@@ -425,10 +424,10 @@ class CmatUtilsService {
425
424
  }
426
425
  return id;
427
426
  }
428
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatUtilsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
429
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatUtilsService, providedIn: 'root' }); }
427
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatUtilsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
428
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatUtilsService, providedIn: 'root' }); }
430
429
  }
431
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: CmatUtilsService, decorators: [{
430
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: CmatUtilsService, decorators: [{
432
431
  type: Injectable,
433
432
  args: [{
434
433
  providedIn: 'root'
@@ -1 +1 @@
1
- {"version":3,"file":"cmat-services-utils.mjs","sources":["../../../projects/cmat/services/utils/utils.service.ts","../../../projects/cmat/services/utils/cmat-services-utils.ts"],"sourcesContent":["import { HttpErrorResponse, HttpHeaders, HttpResponse, HttpResponseBase } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { IsActiveMatchOptions } from '@angular/router';\r\nimport AES from 'crypto-js/aes';\r\nimport CryptoJSCore from 'crypto-js/core';\r\nimport Base64 from 'crypto-js/enc-base64';\r\nimport Hex from 'crypto-js/enc-hex';\r\nimport UTF8 from 'crypto-js/enc-utf8';\r\nimport Pkcs7 from 'crypto-js/pad-pkcs7';\r\nimport { isUndefined } from 'lodash-es';\r\nimport { throwError, Observable } from 'rxjs';\r\nimport { CMAT_VERSION } from 'cmat/version';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatUtilsService {\r\n public static readonly captionAndMessageSeparator = ':';\r\n public static readonly noNetworkMessageCaption = '无网络';\r\n public static readonly noNetworkMessageDetail = '无法连接服务器';\r\n public static readonly accessDeniedMessageCaption = '拒绝访问!';\r\n public static readonly accessDeniedMessageDetail = '';\r\n private static readonly key = UTF8.parse('14789632236987411478963223698741');//32位\r\n private static readonly iv = UTF8.parse('1478963223698741');//16位\r\n\r\n get exactMatchOptions(): IsActiveMatchOptions {\r\n return {\r\n paths: 'exact',\r\n fragment: 'ignored',\r\n matrixParams: 'ignored',\r\n queryParams: 'exact'\r\n };\r\n }\r\n\r\n get subsetMatchOptions(): IsActiveMatchOptions {\r\n return {\r\n paths: 'subset',\r\n fragment: 'ignored',\r\n matrixParams: 'ignored',\r\n queryParams: 'subset'\r\n };\r\n }\r\n\r\n public static getRequestHeaders(): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Content-Type', 'application/json')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', CMAT_VERSION);\r\n }\r\n\r\n public static getRequestBypassHeaders(): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Content-Type', 'application/json')\r\n .append('bypass', 'true')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', CMAT_VERSION);\r\n }\r\n\r\n public static getRequestCryptoHeaders(params: string): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', this.getEncryptData('partymanageApi' + params).toString());\r\n }\r\n\r\n public static getRequestCryptoBypassHeaders(params: string): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('bypass', 'true')\r\n .append('App-Version', this.getEncryptData('partymanageApi' + params).toString());\r\n }\r\n\r\n public static getEncryptData(data: string): string {\r\n const src = UTF8.parse(data);\r\n\r\n return AES.encrypt(src, this.key, {\r\n iv: this.iv,\r\n mode: CryptoJSCore.mode.CBC,\r\n padding: Pkcs7\r\n }).ciphertext.toString();\r\n }\r\n\r\n public static getDecryptData(data: string): string {\r\n const encryptedHexStr = Hex.parse(data);\r\n return AES.decrypt(Base64.stringify(encryptedHexStr), this.key, {\r\n iv: this.iv,\r\n mode: CryptoJSCore.mode.CBC,\r\n padding: Pkcs7\r\n }).toString(UTF8).toString();\r\n }\r\n\r\n public static handleError(error: any): Observable<never> {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('Client side network error occurred:', error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error('Backend - ' +\r\n `status: ${error.status}, ` +\r\n `statusText: ${error.statusText}, ` +\r\n `message: ${error.message}`);\r\n }\r\n\r\n // return an observable with a user-facing error message\r\n return throwError(() => error || 'server error');\r\n }\r\n\r\n public static getHttpResponseMessage(data: HttpResponseBase | any): string[] {\r\n\r\n const responses: string[] = [];\r\n\r\n if (data instanceof HttpResponseBase) {\r\n if (this.checkNoNetwork(data)) {\r\n responses.push(`${this.noNetworkMessageCaption}${this.captionAndMessageSeparator} ${this.noNetworkMessageDetail}`);\r\n } else {\r\n const responseObject = this.getResponseBody(data);\r\n\r\n if (responseObject && (typeof responseObject === 'object' || responseObject instanceof Object)) {\r\n\r\n for (const key in responseObject) {\r\n if (Object.prototype.hasOwnProperty.call(responseObject, key)) {\r\n if (key) {\r\n responses.push(`${key}${this.captionAndMessageSeparator} ${responseObject[key]}`);\r\n } else if (responseObject[key]) {\r\n responses.push(responseObject[key].toString());\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!responses.length && this.getResponseBody(data)) {\r\n responses.push(`${this.getResponseBody(data).toString()}`);\r\n }\r\n }\r\n\r\n if (!responses.length) {\r\n responses.push(data.toString());\r\n }\r\n\r\n if (this.checkAccessDenied(data)) {\r\n responses.splice(0, 0, `${this.accessDeniedMessageCaption}${this.captionAndMessageSeparator} ${this.accessDeniedMessageDetail}`);\r\n }\r\n\r\n return responses;\r\n }\r\n\r\n\r\n public static findHttpResponseMessage(messageToFind: string, data: HttpResponse<any> | any, seachInCaptionOnly = true, includeCaptionInResult = false): string | null {\r\n const searchString = messageToFind.toLowerCase();\r\n const httpMessages = this.getHttpResponseMessage(data);\r\n\r\n for (const message of httpMessages) {\r\n const fullMessage = CmatUtilsService.splitInTwo(message, this.captionAndMessageSeparator);\r\n\r\n if (fullMessage.firstPart && fullMessage.firstPart.toLowerCase().indexOf(searchString) !== -1) {\r\n return includeCaptionInResult ? message : fullMessage.secondPart || fullMessage.firstPart;\r\n }\r\n }\r\n\r\n if (!seachInCaptionOnly) {\r\n for (const message of httpMessages) {\r\n\r\n if (message.toLowerCase().indexOf(searchString) !== -1) {\r\n if (includeCaptionInResult) {\r\n return message;\r\n } else {\r\n const fullMessage = CmatUtilsService.splitInTwo(message, this.captionAndMessageSeparator);\r\n return fullMessage.secondPart || fullMessage.firstPart;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public static getResponseBody(response: HttpResponseBase): any {\r\n if (response instanceof HttpResponse) {\r\n return response.body;\r\n }\r\n\r\n if (response instanceof HttpErrorResponse) {\r\n return response.error || response.message || response.statusText;\r\n }\r\n return response;\r\n }\r\n\r\n\r\n public static checkNoNetwork(response: HttpResponseBase): boolean {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status === 0;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkAccessDenied(response: HttpResponseBase): boolean {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status === 403;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkNotFound(response: HttpResponseBase): boolean {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status === 404;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkIsLocalHost(url: string, base?: string): boolean {\r\n if (url) {\r\n const location = new URL(url, base);\r\n return location.hostname === 'localhost' || location.hostname === '127.0.0.1';\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static getQueryParamsFromString(paramString: string): { [key: string]: string | null } | null {\r\n if (!paramString) {\r\n return null;\r\n }\r\n\r\n const params: { [key: string]: string | null } = {};\r\n\r\n for (const param of paramString.split('&')) {\r\n const keyValue = CmatUtilsService.splitInTwo(param, '=');\r\n params[keyValue.firstPart] = keyValue.secondPart;\r\n }\r\n\r\n return params;\r\n }\r\n\r\n public static splitInTwo(text: string, separator?: string): { firstPart: string; secondPart: string | null } {\r\n const separatorIndex = separator ? text.indexOf(separator) : -1;\r\n\r\n if (separatorIndex === -1) {\r\n return { firstPart: text, secondPart: null };\r\n }\r\n\r\n const part1 = text.substring(0, separatorIndex).trim();\r\n const part2 = text.substring(separatorIndex + 1).trim();\r\n\r\n return { firstPart: part1, secondPart: part2 };\r\n }\r\n\r\n public static safeStringify(object: any): string {\r\n let result: string;\r\n\r\n try {\r\n result = JSON.stringify(object);\r\n return result;\r\n } catch (error) { /* empty */ }\r\n\r\n const simpleObject: any = {};\r\n\r\n for (const prop in object) {\r\n if (!Object.prototype.hasOwnProperty.call(object, prop)) {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'object') {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'function') {\r\n continue;\r\n }\r\n simpleObject[prop] = object[prop];\r\n }\r\n\r\n result = '[***Sanitized Object***]: ' + JSON.stringify(simpleObject);\r\n\r\n return result;\r\n }\r\n\r\n public static jsonTryParse(value: string): string | void {\r\n try {\r\n return JSON.parse(value);\r\n } catch (e) {\r\n if (isUndefined(value)) {\r\n return void 0;\r\n }\r\n\r\n return value;\r\n }\r\n }\r\n\r\n public static capitalizeFirstLetter(text: string): string {\r\n if (text) {\r\n return text.charAt(0).toUpperCase() + text.slice(1);\r\n } else {\r\n return text;\r\n }\r\n }\r\n\r\n\r\n public static toTitleCase(text: string): string {\r\n return text.replace(/\\w\\S*/g, subString => subString.charAt(0).toUpperCase() + subString.substring(1).toLowerCase());\r\n }\r\n\r\n public static toLowerCase(items: string | string[]): string;\r\n public static toLowerCase(items: any): string | string[] | void {\r\n if (items instanceof Array) {\r\n const loweredRoles: string[] = [];\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n loweredRoles[i] = items[i].toLowerCase();\r\n }\r\n\r\n return loweredRoles;\r\n } else if (typeof items === 'string' || items instanceof String) {\r\n return items.toLowerCase();\r\n }\r\n\r\n return void 0;\r\n }\r\n\r\n public static uniqueId(): string {\r\n return this.randomNumber(1000000, 9000000).toString();\r\n }\r\n\r\n public static randomNumber(min: number, max: number): number {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n\r\n public static baseUrl(): string {\r\n let base: string;\r\n\r\n if (window.location.origin) {\r\n base = window.location.origin;\r\n } else {\r\n base = window.location.protocol + '//' + window.location.hostname + (window.location.port ? ':' + window.location.port : '');\r\n }\r\n\r\n return base.replace(/\\/$/, '');\r\n }\r\n\r\n public static newGuid(): string {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\r\n // eslint-disable-next-line no-bitwise\r\n const r = (Math.random() * 16) | 0;\r\n // eslint-disable-next-line no-bitwise\r\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n }\r\n\r\n public static testIsAbsoluteUrl(url: string): boolean {\r\n const r = new RegExp('^(?:[a-z]+:)?//', 'i');\r\n return r.test(url);\r\n }\r\n\r\n public static convertToAbsoluteUrl(url: string): string {\r\n return CmatUtilsService.testIsAbsoluteUrl(url) ? url : '//' + url;\r\n }\r\n\r\n public static urlBase64Decode(str: string): string {\r\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\r\n switch (output.length % 4) {\r\n case 0: {\r\n break;\r\n }\r\n case 2: {\r\n output += '==';\r\n break;\r\n }\r\n case 3: {\r\n output += '=';\r\n break;\r\n }\r\n }\r\n return this._base64DecodeUnicode(output);\r\n }\r\n\r\n public static decodeToken(token: string): any {\r\n const parts = token.split('.');\r\n\r\n if (parts.length !== 3) {\r\n throw new Error('JWT must have 3 parts');\r\n }\r\n\r\n const decoded = this.urlBase64Decode(parts[1]);\r\n if (!decoded) {\r\n throw new Error('Cannot decode the token');\r\n }\r\n\r\n return JSON.parse(decoded);\r\n }\r\n\r\n public static getTokenExpirationDate(token: string): Date | null {\r\n const decoded = this.decodeToken(token);\r\n\r\n if (!Object.prototype.hasOwnProperty.call(decoded, 'exp')) {\r\n return null;\r\n }\r\n\r\n const date = new Date(0); // The 0 here is the key, which sets the date to the epoch\r\n date.setUTCSeconds(decoded.exp);\r\n\r\n return date;\r\n }\r\n\r\n public static isTokenExpired(token: string, offsetSeconds?: number): boolean {\r\n const date = this.getTokenExpirationDate(token);\r\n offsetSeconds = offsetSeconds || 0;\r\n\r\n if (date == null) {\r\n return false;\r\n }\r\n\r\n // Token expired?\r\n return !(date.valueOf() > (new Date().valueOf() + (offsetSeconds * 1000)));\r\n }\r\n\r\n public static readAsDataURL(file: File): Promise<any> {\r\n // Return a new promise\r\n return new Promise((resolve, reject) => {\r\n\r\n // Create a new reader\r\n const reader = new FileReader();\r\n\r\n // Resolve the promise on success\r\n reader.onload = (): void => {\r\n resolve(reader.result);\r\n };\r\n\r\n // Reject the promise on error\r\n reader.onerror = (e): void => {\r\n reject(e);\r\n };\r\n\r\n // Read the file as the\r\n reader.readAsDataURL(file);\r\n });\r\n }\r\n\r\n public static dataURIToBlob(dataURI: string): Blob {\r\n const splitDataURI = dataURI.split(',');\r\n\r\n const byteString = splitDataURI[0].indexOf('base64') >= 0 ? atob(splitDataURI[1]) : decodeURI(splitDataURI[1]);\r\n const mimeString = splitDataURI[0].split(':')[1].split(';')[0];\r\n\r\n const ia = new Uint8Array(byteString.length);\r\n for (let i = 0; i < byteString.length; i++) {\r\n ia[i] = byteString.charCodeAt(i);\r\n }\r\n\r\n return new Blob([ia], { type: mimeString });\r\n }\r\n\r\n public static getFileType(accept: string): 'csv' | 'gif' | 'word' | 'excel' | 'jpg' | 'outlook' | 'pdf' | 'png' | 'ppt' | 'file' | 'text' | 'video' | 'zip' {\r\n let fileType = 'file';\r\n switch (accept) {\r\n case 'image/jpeg':\r\n case 'image/jpg':\r\n fileType = 'jpg';\r\n break;\r\n case 'image/png':\r\n fileType = 'png';\r\n break;\r\n case 'text/csv':\r\n fileType = 'csv';\r\n break;\r\n case 'image/gif':\r\n fileType = 'gif';\r\n break;\r\n case 'application/msword':\r\n case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\r\n fileType = 'word';\r\n break;\r\n case 'application/vnd.ms-excel':\r\n case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\r\n fileType = 'word';\r\n break;\r\n case 'application/pdf':\r\n fileType = 'pdf';\r\n break;\r\n case 'application/vnd.openxmlformats-officedocument.presentationml.presentation':\r\n case 'application/vnd.ms-powerpoint':\r\n fileType = 'ppt';\r\n break;\r\n case 'text/plain':\r\n fileType = 'text';\r\n break;\r\n case 'video/mpeg':\r\n case 'video/mp4':\r\n case 'audio/mp4':\r\n fileType = 'video';\r\n break;\r\n case 'aplication/zip':\r\n fileType = 'zip';\r\n break;\r\n }\r\n\r\n return fileType as 'csv' | 'gif' | 'word' | 'excel' | 'jpg' | 'outlook' | 'pdf' | 'png' | 'ppt' | 'file' | 'text' | 'video' | 'zip';\r\n }\r\n\r\n private static _base64DecodeUnicode(str: any): string {\r\n return decodeURIComponent(Array.prototype.map.call(atob(str), (c: any) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join(''));\r\n }\r\n\r\n randomId(stringLength: number = 10): string {\r\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n let id = '';\r\n\r\n for (let i = 0; i < stringLength; i++) {\r\n id += chars.charAt(Math.floor(Math.random() * chars.length));\r\n }\r\n\r\n return id;\r\n }\r\n}\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cmat-services-utils.mjs","sources":["../../../projects/cmat/services/utils/utils.service.ts","../../../projects/cmat/services/utils/cmat-services-utils.ts"],"sourcesContent":["import { HttpErrorResponse, HttpHeaders, HttpResponse, HttpResponseBase } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { IsActiveMatchOptions } from '@angular/router';\r\nimport AES from 'crypto-js/aes';\r\nimport CryptoJSCore from 'crypto-js/core';\r\nimport Base64 from 'crypto-js/enc-base64';\r\nimport Hex from 'crypto-js/enc-hex';\r\nimport UTF8 from 'crypto-js/enc-utf8';\r\nimport Pkcs7 from 'crypto-js/pad-pkcs7';\r\nimport { isUndefined } from 'lodash-es';\r\nimport { throwError, Observable } from 'rxjs';\r\nimport { CMAT_VERSION } from 'cmat/version';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CmatUtilsService {\r\n public static readonly captionAndMessageSeparator = ':';\r\n public static readonly noNetworkMessageCaption = '无网络';\r\n public static readonly noNetworkMessageDetail = '无法连接服务器';\r\n public static readonly accessDeniedMessageCaption = '拒绝访问!';\r\n public static readonly accessDeniedMessageDetail = '';\r\n private static readonly key = UTF8.parse('14789632236987411478963223698741');//32位\r\n private static readonly iv = UTF8.parse('1478963223698741');//16位\r\n\r\n get exactMatchOptions(): IsActiveMatchOptions {\r\n return {\r\n paths: 'exact',\r\n fragment: 'ignored',\r\n matrixParams: 'ignored',\r\n queryParams: 'exact'\r\n };\r\n }\r\n\r\n get subsetMatchOptions(): IsActiveMatchOptions {\r\n return {\r\n paths: 'subset',\r\n fragment: 'ignored',\r\n matrixParams: 'ignored',\r\n queryParams: 'subset'\r\n };\r\n }\r\n\r\n public static getRequestHeaders(): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Content-Type', 'application/json')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', CMAT_VERSION);\r\n }\r\n\r\n public static getRequestBypassHeaders(): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Content-Type', 'application/json')\r\n .append('bypass', 'true')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', CMAT_VERSION);\r\n }\r\n\r\n public static getRequestCryptoHeaders(params: string): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('App-Version', this.getEncryptData('partymanageApi' + params).toString());\r\n }\r\n\r\n public static getRequestCryptoBypassHeaders(params: string): HttpHeaders {\r\n return new HttpHeaders()\r\n .append('Access-Control-Allow-Origin', '*')\r\n .append('Accept', `application/vnd.iman.v${CMAT_VERSION}+json, application/json, text/plain, */*`)\r\n .append('bypass', 'true')\r\n .append('App-Version', this.getEncryptData('partymanageApi' + params).toString());\r\n }\r\n\r\n public static getEncryptData(data: string): string {\r\n const src = UTF8.parse(data);\r\n\r\n return AES.encrypt(src, this.key, {\r\n iv: this.iv,\r\n mode: CryptoJSCore.mode.CBC,\r\n padding: Pkcs7\r\n }).ciphertext.toString();\r\n }\r\n\r\n public static getDecryptData(data: string): string {\r\n const encryptedHexStr = Hex.parse(data);\r\n return AES.decrypt(Base64.stringify(encryptedHexStr), this.key, {\r\n iv: this.iv,\r\n mode: CryptoJSCore.mode.CBC,\r\n padding: Pkcs7\r\n }).toString(UTF8).toString();\r\n }\r\n\r\n public static handleError(error: any): Observable<never> {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('Client side network error occurred:', error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.error('Backend - ' +\r\n `status: ${error.status}, ` +\r\n `statusText: ${error.statusText}, ` +\r\n `message: ${error.message}`);\r\n }\r\n\r\n // return an observable with a user-facing error message\r\n return throwError(() => error || 'server error');\r\n }\r\n\r\n public static getHttpResponseMessage(data: any): string[] {\r\n\r\n const responses: string[] = [];\r\n\r\n if (data instanceof HttpResponseBase) {\r\n if (this.checkNoNetwork(data)) {\r\n responses.push(`${this.noNetworkMessageCaption}${this.captionAndMessageSeparator} ${this.noNetworkMessageDetail}`);\r\n } else {\r\n const responseObject = this.getResponseBody(data);\r\n\r\n if (responseObject && (typeof responseObject === 'object' || responseObject instanceof Object)) {\r\n\r\n for (const key in responseObject) {\r\n if (Object.prototype.hasOwnProperty.call(responseObject, key)) {\r\n if (key) {\r\n responses.push(`${key}${this.captionAndMessageSeparator} ${responseObject[key]}`);\r\n } else if (responseObject[key]) {\r\n responses.push(responseObject[key].toString());\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!responses.length && this.getResponseBody(data)) {\r\n responses.push(`${this.getResponseBody(data).toString()}`);\r\n }\r\n }\r\n\r\n if (!responses.length) {\r\n responses.push(data.toString());\r\n }\r\n\r\n if (this.checkAccessDenied(data)) {\r\n responses.splice(0, 0, `${this.accessDeniedMessageCaption}${this.captionAndMessageSeparator} ${this.accessDeniedMessageDetail}`);\r\n }\r\n\r\n return responses;\r\n }\r\n\r\n\r\n public static findHttpResponseMessage(messageToFind: string, data: any, seachInCaptionOnly = true, includeCaptionInResult = false): string | null {\r\n const searchString = messageToFind.toLowerCase();\r\n const httpMessages = this.getHttpResponseMessage(data);\r\n\r\n for (const message of httpMessages) {\r\n const fullMessage = CmatUtilsService.splitInTwo(message, this.captionAndMessageSeparator);\r\n\r\n if (fullMessage.firstPart?.toLowerCase().includes(searchString)) {\r\n return includeCaptionInResult ? message : fullMessage.secondPart ?? fullMessage.firstPart;\r\n }\r\n }\r\n\r\n if (!seachInCaptionOnly) {\r\n for (const message of httpMessages) {\r\n\r\n if (message.toLowerCase().includes(searchString)) {\r\n if (includeCaptionInResult) {\r\n return message;\r\n } else {\r\n const fullMessage = CmatUtilsService.splitInTwo(message, this.captionAndMessageSeparator);\r\n return fullMessage.secondPart ?? fullMessage.firstPart;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public static getResponseBody(response: HttpResponseBase): any {\r\n if (response instanceof HttpResponse) {\r\n return response.body;\r\n }\r\n\r\n if (response instanceof HttpErrorResponse) {\r\n return response.error || response.message || response.statusText;\r\n }\r\n return response;\r\n }\r\n\r\n\r\n public static checkNoNetwork(response: HttpResponseBase): boolean {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status === 0;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkAccessDenied(response: HttpResponseBase): boolean {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status === 403;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkNotFound(response: HttpResponseBase): boolean {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status === 404;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static checkIsLocalHost(url: string, base?: string): boolean {\r\n if (url) {\r\n const location = new URL(url, base);\r\n return location.hostname === 'localhost' || location.hostname === '127.0.0.1';\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public static getQueryParamsFromString(paramString: string): Record<string, string | null> | null {\r\n if (!paramString) {\r\n return null;\r\n }\r\n\r\n const params: Record<string, string | null> = {};\r\n\r\n for (const param of paramString.split('&')) {\r\n const keyValue = CmatUtilsService.splitInTwo(param, '=');\r\n params[keyValue.firstPart] = keyValue.secondPart;\r\n }\r\n\r\n return params;\r\n }\r\n\r\n public static splitInTwo(text: string, separator?: string): { firstPart: string; secondPart: string | null } {\r\n const separatorIndex = separator ? text.indexOf(separator) : -1;\r\n\r\n if (separatorIndex === -1) {\r\n return { firstPart: text, secondPart: null };\r\n }\r\n\r\n const part1 = text.substring(0, separatorIndex).trim();\r\n const part2 = text.substring(separatorIndex + 1).trim();\r\n\r\n return { firstPart: part1, secondPart: part2 };\r\n }\r\n\r\n public static safeStringify(object: any): string {\r\n let result: string;\r\n\r\n try {\r\n result = JSON.stringify(object);\r\n return result;\r\n } catch { /* empty */ }\r\n\r\n const simpleObject: any = {};\r\n\r\n for (const prop in object) {\r\n if (!Object.prototype.hasOwnProperty.call(object, prop)) {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'object') {\r\n continue;\r\n }\r\n if (typeof (object[prop]) == 'function') {\r\n continue;\r\n }\r\n simpleObject[prop] = object[prop];\r\n }\r\n\r\n result = '[***Sanitized Object***]: ' + JSON.stringify(simpleObject);\r\n\r\n return result;\r\n }\r\n\r\n public static jsonTryParse(value: string): string | void {\r\n try {\r\n return JSON.parse(value);\r\n } catch {\r\n if (isUndefined(value)) {\r\n return void 0;\r\n }\r\n\r\n return value;\r\n }\r\n }\r\n\r\n public static capitalizeFirstLetter(text: string): string {\r\n if (text) {\r\n return text.charAt(0).toUpperCase() + text.slice(1);\r\n } else {\r\n return text;\r\n }\r\n }\r\n\r\n\r\n public static toTitleCase(text: string): string {\r\n return text.replace(/\\w\\S*/g, subString => subString.charAt(0).toUpperCase() + subString.substring(1).toLowerCase());\r\n }\r\n\r\n public static toLowerCase(items: any): string | string[] | void {\r\n if (items instanceof Array) {\r\n const loweredRoles: string[] = [];\r\n\r\n for (let i = 0; i < items.length; i++) {\r\n loweredRoles[i] = items[i].toLowerCase();\r\n }\r\n\r\n return loweredRoles;\r\n } else if (typeof items === 'string' || items instanceof String) {\r\n return items.toLowerCase();\r\n }\r\n\r\n return void 0;\r\n }\r\n\r\n public static uniqueId(): string {\r\n return this.randomNumber(1000000, 9000000).toString();\r\n }\r\n\r\n public static randomNumber(min: number, max: number): number {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n\r\n public static baseUrl(): string {\r\n let base: string;\r\n\r\n if (window.location.origin) {\r\n base = window.location.origin;\r\n } else {\r\n base = window.location.protocol + '//' + window.location.hostname + (window.location.port ? ':' + window.location.port : '');\r\n }\r\n\r\n return base.replace(/\\/$/, '');\r\n }\r\n\r\n public static newGuid(): string {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\r\n \r\n const r = (Math.random() * 16) | 0;\r\n \r\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n }\r\n\r\n public static testIsAbsoluteUrl(url: string): boolean {\r\n const r = new RegExp('^(?:[a-z]+:)?//', 'i');\r\n return r.test(url);\r\n }\r\n\r\n public static convertToAbsoluteUrl(url: string): string {\r\n return CmatUtilsService.testIsAbsoluteUrl(url) ? url : '//' + url;\r\n }\r\n\r\n public static urlBase64Decode(str: string): string {\r\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\r\n switch (output.length % 4) {\r\n case 0: {\r\n break;\r\n }\r\n case 2: {\r\n output += '==';\r\n break;\r\n }\r\n case 3: {\r\n output += '=';\r\n break;\r\n }\r\n }\r\n return this._base64DecodeUnicode(output);\r\n }\r\n\r\n public static decodeToken(token: string): any {\r\n const parts = token.split('.');\r\n\r\n if (parts.length !== 3) {\r\n throw new Error('JWT must have 3 parts');\r\n }\r\n\r\n const decoded = this.urlBase64Decode(parts[1]);\r\n if (!decoded) {\r\n throw new Error('Cannot decode the token');\r\n }\r\n\r\n return JSON.parse(decoded);\r\n }\r\n\r\n public static getTokenExpirationDate(token: string): Date | null {\r\n const decoded = this.decodeToken(token);\r\n\r\n if (!Object.prototype.hasOwnProperty.call(decoded, 'exp')) {\r\n return null;\r\n }\r\n\r\n const date = new Date(0); // The 0 here is the key, which sets the date to the epoch\r\n date.setUTCSeconds(decoded.exp);\r\n\r\n return date;\r\n }\r\n\r\n public static isTokenExpired(token: string, offsetSeconds?: number): boolean {\r\n const date = this.getTokenExpirationDate(token);\r\n offsetSeconds = offsetSeconds ?? 0;\r\n\r\n if (date == null) {\r\n return false;\r\n }\r\n\r\n // Token expired?\r\n return !(date.valueOf() > (new Date().valueOf() + (offsetSeconds * 1000)));\r\n }\r\n\r\n public static readAsDataURL(file: File): Promise<any> {\r\n // Return a new promise\r\n return new Promise((resolve, reject) => {\r\n\r\n // Create a new reader\r\n const reader = new FileReader();\r\n\r\n // Resolve the promise on success\r\n reader.onload = (): void => {\r\n resolve(reader.result);\r\n };\r\n\r\n // Reject the promise on error\r\n reader.onerror = (e): void => {\r\n // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\r\n reject(e);\r\n };\r\n\r\n // Read the file as the\r\n reader.readAsDataURL(file);\r\n });\r\n }\r\n\r\n public static dataURIToBlob(dataURI: string): Blob {\r\n const splitDataURI = dataURI.split(',');\r\n\r\n const byteString = splitDataURI[0].includes('base64') ? atob(splitDataURI[1]) : decodeURI(splitDataURI[1]);\r\n const mimeString = splitDataURI[0].split(':')[1].split(';')[0];\r\n\r\n const ia = new Uint8Array(byteString.length);\r\n for (let i = 0; i < byteString.length; i++) {\r\n ia[i] = byteString.charCodeAt(i);\r\n }\r\n\r\n return new Blob([ia], { type: mimeString });\r\n }\r\n\r\n public static getFileType(accept: string): 'csv' | 'gif' | 'word' | 'excel' | 'jpg' | 'outlook' | 'pdf' | 'png' | 'ppt' | 'file' | 'text' | 'video' | 'zip' {\r\n let fileType = 'file';\r\n switch (accept) {\r\n case 'image/jpeg':\r\n case 'image/jpg':\r\n fileType = 'jpg';\r\n break;\r\n case 'image/png':\r\n fileType = 'png';\r\n break;\r\n case 'text/csv':\r\n fileType = 'csv';\r\n break;\r\n case 'image/gif':\r\n fileType = 'gif';\r\n break;\r\n case 'application/msword':\r\n case 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\r\n fileType = 'word';\r\n break;\r\n case 'application/vnd.ms-excel':\r\n case 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\r\n fileType = 'word';\r\n break;\r\n case 'application/pdf':\r\n fileType = 'pdf';\r\n break;\r\n case 'application/vnd.openxmlformats-officedocument.presentationml.presentation':\r\n case 'application/vnd.ms-powerpoint':\r\n fileType = 'ppt';\r\n break;\r\n case 'text/plain':\r\n fileType = 'text';\r\n break;\r\n case 'video/mpeg':\r\n case 'video/mp4':\r\n case 'audio/mp4':\r\n fileType = 'video';\r\n break;\r\n case 'aplication/zip':\r\n fileType = 'zip';\r\n break;\r\n }\r\n\r\n return fileType as 'csv' | 'gif' | 'word' | 'excel' | 'jpg' | 'outlook' | 'pdf' | 'png' | 'ppt' | 'file' | 'text' | 'video' | 'zip';\r\n }\r\n\r\n private static _base64DecodeUnicode(str: any): string {\r\n return decodeURIComponent(Array.prototype.map.call(atob(str), (c: any) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join(''));\r\n }\r\n\r\n randomId(stringLength: number = 10): string {\r\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n let id = '';\r\n\r\n for (let i = 0; i < stringLength; i++) {\r\n id += chars.charAt(Math.floor(Math.random() * chars.length));\r\n }\r\n\r\n return id;\r\n }\r\n}\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}