cmat 0.0.17 → 0.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (495) hide show
  1. package/components/carousel/carousel.component.d.ts +136 -0
  2. package/components/carousel/carousel.interface.d.ts +38 -0
  3. package/components/carousel/index.d.ts +5 -0
  4. package/components/carousel/public-api.d.ts +2 -0
  5. package/components/custom-formly/public-api.d.ts +1 -0
  6. package/components/custom-formly/types/knob/knob.component.d.ts +36 -0
  7. package/components/custom-formly/types/table/table.component.d.ts +3 -8
  8. package/components/custom-formly/wrappers/form-field/form-field.component.d.ts +4 -4
  9. package/components/image-viewer/image-viewer.component.d.ts +76 -0
  10. package/components/image-viewer/index.d.ts +5 -0
  11. package/components/image-viewer/public-api.d.ts +1 -0
  12. package/components/knob-input/index.d.ts +5 -0
  13. package/components/knob-input/knob-input.component.d.ts +95 -0
  14. package/components/knob-input/public-api.d.ts +1 -0
  15. package/components/material-datetimepicker/datetimepicker-input.d.ts +2 -2
  16. package/components/opt-input/index.d.ts +5 -0
  17. package/components/opt-input/models/config.d.ts +14 -0
  18. package/components/opt-input/otp-input.component.d.ts +70 -0
  19. package/components/opt-input/public-api.d.ts +1 -0
  20. package/components/opt-input/utils/keyboard-util.d.ts +9 -0
  21. package/components/opt-input/utils/object-util.d.ts +3 -0
  22. package/components/org-chart/designer/chart-designer.component.d.ts +17 -0
  23. package/components/org-chart/index.d.ts +5 -0
  24. package/components/org-chart/node/chart-node.component.d.ts +17 -0
  25. package/components/org-chart/node/node.type.d.ts +22 -0
  26. package/components/org-chart/org-chart.component.d.ts +12 -0
  27. package/components/org-chart/public-api.d.ts +2 -0
  28. package/components/popover/popover.interfaces.d.ts +1 -1
  29. package/components/select-table/index.d.ts +5 -0
  30. package/components/select-table/public-api.d.ts +2 -0
  31. package/components/select-table/select-table.component.d.ts +96 -0
  32. package/components/select-table/select-table.type.d.ts +20 -0
  33. package/components/select-tree/select-tree.component.d.ts +11 -12
  34. package/components/speed-dial/index.d.ts +5 -0
  35. package/components/speed-dial/public-api.d.ts +2 -0
  36. package/components/speed-dial/speed-dial.component.d.ts +63 -0
  37. package/components/transfer-picker/interface.d.ts +0 -1
  38. package/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.d.ts +8 -6
  39. package/components/treetable/index.d.ts +5 -0
  40. package/components/treetable/public-api.d.ts +2 -0
  41. package/components/treetable/treetable.component.d.ts +32 -0
  42. package/components/treetable/treetable.interface.d.ts +9 -0
  43. package/directives/animate-on-scroll/animate-on-scroll.directive.d.ts +4 -4
  44. package/directives/arrow-cursor/arrow-cursor.directive.d.ts +31 -0
  45. package/directives/arrow-cursor/index.d.ts +5 -0
  46. package/directives/arrow-cursor/public-api.d.ts +1 -0
  47. package/directives/data-exporter/constants.d.ts +26 -0
  48. package/directives/data-exporter/data-exporter.directive.d.ts +18 -0
  49. package/directives/data-exporter/index.d.ts +5 -0
  50. package/directives/data-exporter/mime.d.ts +5 -0
  51. package/directives/data-exporter/options.d.ts +21 -0
  52. package/directives/data-exporter/public-api.d.ts +2 -0
  53. package/directives/data-exporter/services/exporters/csv-exporter.service.d.ts +12 -0
  54. package/directives/data-exporter/services/exporters/exporter.d.ts +4 -0
  55. package/directives/data-exporter/services/exporters/file-exporter.d.ts +8 -0
  56. package/directives/data-exporter/services/exporters/json-exporter.service.d.ts +11 -0
  57. package/directives/data-exporter/services/exporters/txt-exporter.service.d.ts +12 -0
  58. package/directives/data-exporter/services/exporters/worksheet-exporter.d.ts +10 -0
  59. package/directives/data-exporter/services/exporters/xls-exporter.service.d.ts +14 -0
  60. package/directives/data-exporter/services/exporters/xlsx-exporter.service.d.ts +9 -0
  61. package/directives/data-exporter/services/file-util.d.ts +8 -0
  62. package/directives/data-exporter/services/service-locator.service.d.ts +11 -0
  63. package/directives/debounce/abstract-debounce.directive.d.ts +1 -1
  64. package/fesm2022/cmat-animations.mjs.map +1 -1
  65. package/fesm2022/cmat-components-adapter.mjs +9 -9
  66. package/fesm2022/cmat-components-adapter.mjs.map +1 -1
  67. package/fesm2022/cmat-components-breadcrumb.mjs +10 -10
  68. package/fesm2022/cmat-components-breadcrumb.mjs.map +1 -1
  69. package/fesm2022/cmat-components-card.mjs +4 -4
  70. package/fesm2022/cmat-components-card.mjs.map +1 -1
  71. package/fesm2022/cmat-components-carousel.mjs +711 -0
  72. package/fesm2022/cmat-components-carousel.mjs.map +1 -0
  73. package/fesm2022/cmat-components-cascade.mjs +12 -12
  74. package/fesm2022/cmat-components-cascade.mjs.map +1 -1
  75. package/fesm2022/cmat-components-chip-input.mjs +5 -5
  76. package/fesm2022/cmat-components-chip-input.mjs.map +1 -1
  77. package/fesm2022/cmat-components-custom-formly.mjs +168 -155
  78. package/fesm2022/cmat-components-custom-formly.mjs.map +1 -1
  79. package/fesm2022/cmat-components-date-range.mjs +5 -5
  80. package/fesm2022/cmat-components-date-range.mjs.map +1 -1
  81. package/fesm2022/cmat-components-drawer.mjs +6 -6
  82. package/fesm2022/cmat-components-drawer.mjs.map +1 -1
  83. package/fesm2022/cmat-components-fullscreen.mjs +4 -4
  84. package/fesm2022/cmat-components-fullscreen.mjs.map +1 -1
  85. package/fesm2022/cmat-components-highlight.mjs +7 -7
  86. package/fesm2022/cmat-components-highlight.mjs.map +1 -1
  87. package/fesm2022/cmat-components-image-viewer.mjs +227 -0
  88. package/fesm2022/cmat-components-image-viewer.mjs.map +1 -0
  89. package/fesm2022/cmat-components-json-editor.mjs +4 -4
  90. package/fesm2022/cmat-components-json-editor.mjs.map +1 -1
  91. package/fesm2022/cmat-components-knob-input.mjs +404 -0
  92. package/fesm2022/cmat-components-knob-input.mjs.map +1 -0
  93. package/fesm2022/cmat-components-masonry.mjs +4 -4
  94. package/fesm2022/cmat-components-masonry.mjs.map +1 -1
  95. package/fesm2022/cmat-components-material-color-picker.mjs +4 -4
  96. package/fesm2022/cmat-components-material-color-picker.mjs.map +1 -1
  97. package/fesm2022/cmat-components-material-datetimepicker.mjs +53 -53
  98. package/fesm2022/cmat-components-material-datetimepicker.mjs.map +1 -1
  99. package/fesm2022/cmat-components-navigation.mjs +51 -51
  100. package/fesm2022/cmat-components-navigation.mjs.map +1 -1
  101. package/fesm2022/cmat-components-opt-input.mjs +457 -0
  102. package/fesm2022/cmat-components-opt-input.mjs.map +1 -0
  103. package/fesm2022/cmat-components-org-chart.mjs +141 -0
  104. package/fesm2022/cmat-components-org-chart.mjs.map +1 -0
  105. package/fesm2022/cmat-components-pagination.mjs +13 -13
  106. package/fesm2022/cmat-components-pagination.mjs.map +1 -1
  107. package/fesm2022/cmat-components-password-strength.mjs +12 -12
  108. package/fesm2022/cmat-components-password-strength.mjs.map +1 -1
  109. package/fesm2022/cmat-components-popover.mjs +10 -10
  110. package/fesm2022/cmat-components-popover.mjs.map +1 -1
  111. package/fesm2022/cmat-components-progress-bar.mjs +4 -4
  112. package/fesm2022/cmat-components-progress-bar.mjs.map +1 -1
  113. package/fesm2022/cmat-components-rating.mjs +4 -4
  114. package/fesm2022/cmat-components-rating.mjs.map +1 -1
  115. package/fesm2022/cmat-components-select-search.mjs +11 -11
  116. package/fesm2022/cmat-components-select-search.mjs.map +1 -1
  117. package/fesm2022/cmat-components-select-table.mjs +658 -0
  118. package/fesm2022/cmat-components-select-table.mjs.map +1 -0
  119. package/fesm2022/cmat-components-select-tree.mjs +75 -57
  120. package/fesm2022/cmat-components-select-tree.mjs.map +1 -1
  121. package/fesm2022/cmat-components-speed-dial.mjs +312 -0
  122. package/fesm2022/cmat-components-speed-dial.mjs.map +1 -0
  123. package/fesm2022/cmat-components-timeline.mjs +14 -14
  124. package/fesm2022/cmat-components-timeline.mjs.map +1 -1
  125. package/fesm2022/cmat-components-toast.mjs +11 -11
  126. package/fesm2022/cmat-components-toast.mjs.map +1 -1
  127. package/fesm2022/cmat-components-transfer-picker.mjs +60 -41
  128. package/fesm2022/cmat-components-transfer-picker.mjs.map +1 -1
  129. package/fesm2022/cmat-components-treetable.mjs +122 -0
  130. package/fesm2022/cmat-components-treetable.mjs.map +1 -0
  131. package/fesm2022/cmat-components-upload.mjs +11 -11
  132. package/fesm2022/cmat-components-upload.mjs.map +1 -1
  133. package/fesm2022/cmat-directives-animate-on-scroll.mjs +21 -21
  134. package/fesm2022/cmat-directives-animate-on-scroll.mjs.map +1 -1
  135. package/fesm2022/cmat-directives-arrow-cursor.mjs +184 -0
  136. package/fesm2022/cmat-directives-arrow-cursor.mjs.map +1 -0
  137. package/fesm2022/cmat-directives-autofocus.mjs +3 -3
  138. package/fesm2022/cmat-directives-autofocus.mjs.map +1 -1
  139. package/fesm2022/cmat-directives-data-exporter.mjs +324 -0
  140. package/fesm2022/cmat-directives-data-exporter.mjs.map +1 -0
  141. package/fesm2022/cmat-directives-debounce.mjs +9 -9
  142. package/fesm2022/cmat-directives-debounce.mjs.map +1 -1
  143. package/fesm2022/cmat-directives-digit-only.mjs +8 -6
  144. package/fesm2022/cmat-directives-digit-only.mjs.map +1 -1
  145. package/fesm2022/cmat-directives-equal-validator.mjs +3 -3
  146. package/fesm2022/cmat-directives-equal-validator.mjs.map +1 -1
  147. package/fesm2022/cmat-lib-mock-api.mjs +6 -6
  148. package/fesm2022/cmat-lib-mock-api.mjs.map +1 -1
  149. package/fesm2022/cmat-pipes-bytes.mjs +3 -3
  150. package/fesm2022/cmat-pipes-bytes.mjs.map +1 -1
  151. package/fesm2022/cmat-pipes-date-format.mjs +3 -3
  152. package/fesm2022/cmat-pipes-date-format.mjs.map +1 -1
  153. package/fesm2022/cmat-pipes-find-by-key.mjs +3 -3
  154. package/fesm2022/cmat-pipes-find-by-key.mjs.map +1 -1
  155. package/fesm2022/cmat-pipes-group-by.mjs +3 -3
  156. package/fesm2022/cmat-pipes-group-by.mjs.map +1 -1
  157. package/fesm2022/cmat-pipes-keys.mjs +3 -3
  158. package/fesm2022/cmat-pipes-keys.mjs.map +1 -1
  159. package/fesm2022/cmat-pipes-secure.mjs +3 -3
  160. package/fesm2022/cmat-pipes-secure.mjs.map +1 -1
  161. package/fesm2022/cmat-pipes-uppercase.mjs +3 -3
  162. package/fesm2022/cmat-pipes-uppercase.mjs.map +1 -1
  163. package/fesm2022/cmat-services-alert.mjs +3 -3
  164. package/fesm2022/cmat-services-alert.mjs.map +1 -1
  165. package/fesm2022/cmat-services-config.mjs +6 -6
  166. package/fesm2022/cmat-services-config.mjs.map +1 -1
  167. package/fesm2022/cmat-services-confirmation.mjs +7 -7
  168. package/fesm2022/cmat-services-confirmation.mjs.map +1 -1
  169. package/fesm2022/cmat-services-data.mjs +3 -3
  170. package/fesm2022/cmat-services-data.mjs.map +1 -1
  171. package/fesm2022/cmat-services-export-as.mjs +211 -0
  172. package/fesm2022/cmat-services-export-as.mjs.map +1 -0
  173. package/fesm2022/cmat-services-loading.mjs +6 -6
  174. package/fesm2022/cmat-services-loading.mjs.map +1 -1
  175. package/fesm2022/cmat-services-local-storage.mjs +3 -3
  176. package/fesm2022/cmat-services-local-storage.mjs.map +1 -1
  177. package/fesm2022/cmat-services-media-watcher.mjs +3 -3
  178. package/fesm2022/cmat-services-media-watcher.mjs.map +1 -1
  179. package/fesm2022/cmat-services-platform.mjs +3 -3
  180. package/fesm2022/cmat-services-platform.mjs.map +1 -1
  181. package/fesm2022/cmat-services-splash-screen.mjs +3 -3
  182. package/fesm2022/cmat-services-splash-screen.mjs.map +1 -1
  183. package/fesm2022/cmat-services-title.mjs +3 -3
  184. package/fesm2022/cmat-services-title.mjs.map +1 -1
  185. package/fesm2022/cmat-services-translation.mjs +3 -3
  186. package/fesm2022/cmat-services-translation.mjs.map +1 -1
  187. package/fesm2022/cmat-services-utils.mjs +3 -3
  188. package/fesm2022/cmat-services-utils.mjs.map +1 -1
  189. package/fesm2022/cmat-validators.mjs.map +1 -1
  190. package/fesm2022/cmat-version.mjs.map +1 -1
  191. package/icons/arrow-cursor.svg +1 -1
  192. package/package.json +82 -148
  193. package/services/export-as/export-as-config.model.d.ts +8 -0
  194. package/services/export-as/export-as.service.d.ts +43 -0
  195. package/services/export-as/index.d.ts +5 -0
  196. package/services/export-as/public-api.d.ts +2 -0
  197. package/styles/overrides/angular-material.scss +95 -13
  198. package/esm2022/animations/cmat-animations.mjs +0 -5
  199. package/esm2022/animations/defaults.mjs +0 -12
  200. package/esm2022/animations/dropdown.mjs +0 -26
  201. package/esm2022/animations/expand-collapse.mjs +0 -17
  202. package/esm2022/animations/fade.mjs +0 -170
  203. package/esm2022/animations/public-api.mjs +0 -19
  204. package/esm2022/animations/shake.mjs +0 -59
  205. package/esm2022/animations/slide.mjs +0 -124
  206. package/esm2022/animations/transform.mjs +0 -16
  207. package/esm2022/animations/zoom.mjs +0 -38
  208. package/esm2022/cmat.mjs +0 -5
  209. package/esm2022/components/adapter/cmat-components-adapter.mjs +0 -5
  210. package/esm2022/components/adapter/datetime-adapter.mjs +0 -127
  211. package/esm2022/components/adapter/datetime-formats.mjs +0 -3
  212. package/esm2022/components/adapter/dayjs-date-adapter.mjs +0 -198
  213. package/esm2022/components/adapter/dayjs-date-formats.mjs +0 -12
  214. package/esm2022/components/adapter/dayjs-datetime-adapter.mjs +0 -100
  215. package/esm2022/components/adapter/dayjs-datetime-formats.mjs +0 -21
  216. package/esm2022/components/adapter/native-datetime-adapter.mjs +0 -130
  217. package/esm2022/components/adapter/native-datetime-formats.mjs +0 -15
  218. package/esm2022/components/adapter/public-api.mjs +0 -9
  219. package/esm2022/components/breadcrumb/breadcrumb-item.directive.mjs +0 -19
  220. package/esm2022/components/breadcrumb/breadcrumb.component.mjs +0 -94
  221. package/esm2022/components/breadcrumb/breadcrumb.service.mjs +0 -333
  222. package/esm2022/components/breadcrumb/cmat-components-breadcrumb.mjs +0 -5
  223. package/esm2022/components/breadcrumb/public-api.mjs +0 -6
  224. package/esm2022/components/breadcrumb/types/breadcrumb.config.mjs +0 -2
  225. package/esm2022/components/breadcrumb/types/breadcrumb.mjs +0 -2
  226. package/esm2022/components/card/card.component.mjs +0 -49
  227. package/esm2022/components/card/card.types.mjs +0 -2
  228. package/esm2022/components/card/cmat-components-card.mjs +0 -5
  229. package/esm2022/components/card/public-api.mjs +0 -3
  230. package/esm2022/components/cascade/cascade-bottom-sheet/cascade-bottom-sheet.component.mjs +0 -49
  231. package/esm2022/components/cascade/cascade-list/cascade-list.component.mjs +0 -384
  232. package/esm2022/components/cascade/cascade-menu/cascade-menu.component.mjs +0 -22
  233. package/esm2022/components/cascade/cmat-components-cascade.mjs +0 -5
  234. package/esm2022/components/cascade/options.interface.mjs +0 -2
  235. package/esm2022/components/cascade/public-api.mjs +0 -4
  236. package/esm2022/components/chip-input/chip-input.component.mjs +0 -251
  237. package/esm2022/components/chip-input/cmat-components-chip-input.mjs +0 -5
  238. package/esm2022/components/chip-input/public-api.mjs +0 -2
  239. package/esm2022/components/custom-formly/cmat-components-custom-formly.mjs +0 -5
  240. package/esm2022/components/custom-formly/extension/addons.extension.mjs +0 -13
  241. package/esm2022/components/custom-formly/public-api.mjs +0 -29
  242. package/esm2022/components/custom-formly/types/button/button.component.mjs +0 -81
  243. package/esm2022/components/custom-formly/types/cascade/cascade.component.mjs +0 -71
  244. package/esm2022/components/custom-formly/types/checklist/checklist.component.mjs +0 -161
  245. package/esm2022/components/custom-formly/types/chips/chips.component.mjs +0 -55
  246. package/esm2022/components/custom-formly/types/color-picker/color-picker.component.mjs +0 -15
  247. package/esm2022/components/custom-formly/types/date-range/date-range.component.mjs +0 -25
  248. package/esm2022/components/custom-formly/types/datepicker/datepicker.component.mjs +0 -51
  249. package/esm2022/components/custom-formly/types/multicheckbox/multicheckbox.component.mjs +0 -88
  250. package/esm2022/components/custom-formly/types/number/number.component.mjs +0 -27
  251. package/esm2022/components/custom-formly/types/quill/quill.component.mjs +0 -171
  252. package/esm2022/components/custom-formly/types/radio/radio.component.mjs +0 -87
  253. package/esm2022/components/custom-formly/types/rating/rating.component.mjs +0 -27
  254. package/esm2022/components/custom-formly/types/repeat/repeat.component.mjs +0 -25
  255. package/esm2022/components/custom-formly/types/select/select.component.mjs +0 -167
  256. package/esm2022/components/custom-formly/types/select-tree/select-tree.component.mjs +0 -66
  257. package/esm2022/components/custom-formly/types/stepper/horizontal/stepper.component.mjs +0 -28
  258. package/esm2022/components/custom-formly/types/stepper/stepper.type.mjs +0 -2
  259. package/esm2022/components/custom-formly/types/stepper/vertical/stepper.component.mjs +0 -28
  260. package/esm2022/components/custom-formly/types/table/table.component.mjs +0 -127
  261. package/esm2022/components/custom-formly/types/tabs/tab.component.mjs +0 -16
  262. package/esm2022/components/custom-formly/types/tags/tags.component.mjs +0 -146
  263. package/esm2022/components/custom-formly/types/textarea/textarea.component.mjs +0 -25
  264. package/esm2022/components/custom-formly/types/upload/upload.component.mjs +0 -58
  265. package/esm2022/components/custom-formly/wrappers/addons/addons.component.mjs +0 -92
  266. package/esm2022/components/custom-formly/wrappers/card/card.component.mjs +0 -14
  267. package/esm2022/components/custom-formly/wrappers/expansion/expansion.component.mjs +0 -14
  268. package/esm2022/components/custom-formly/wrappers/form-field/form-field.component.mjs +0 -47
  269. package/esm2022/components/custom-formly/wrappers/panel/panel.component.mjs +0 -12
  270. package/esm2022/components/date-range/cmat-components-date-range.mjs +0 -5
  271. package/esm2022/components/date-range/date-range.component.mjs +0 -558
  272. package/esm2022/components/date-range/public-api.mjs +0 -2
  273. package/esm2022/components/drawer/cmat-components-drawer.mjs +0 -5
  274. package/esm2022/components/drawer/drawer.component.mjs +0 -301
  275. package/esm2022/components/drawer/drawer.service.mjs +0 -41
  276. package/esm2022/components/drawer/drawer.types.mjs +0 -2
  277. package/esm2022/components/drawer/public-api.mjs +0 -4
  278. package/esm2022/components/fullscreen/cmat-components-fullscreen.mjs +0 -5
  279. package/esm2022/components/fullscreen/fullscreen.component.mjs +0 -44
  280. package/esm2022/components/fullscreen/public-api.mjs +0 -2
  281. package/esm2022/components/highlight/cmat-components-highlight.mjs +0 -5
  282. package/esm2022/components/highlight/highlight.component.mjs +0 -80
  283. package/esm2022/components/highlight/highlight.service.mjs +0 -47
  284. package/esm2022/components/highlight/public-api.mjs +0 -3
  285. package/esm2022/components/json-editor/cmat-components-json-editor.mjs +0 -5
  286. package/esm2022/components/json-editor/json-editor.component.mjs +0 -176
  287. package/esm2022/components/json-editor/public-api.mjs +0 -2
  288. package/esm2022/components/masonry/cmat-components-masonry.mjs +0 -5
  289. package/esm2022/components/masonry/masonry.component.mjs +0 -54
  290. package/esm2022/components/masonry/public-api.mjs +0 -2
  291. package/esm2022/components/material-color-picker/base-color.mjs +0 -13
  292. package/esm2022/components/material-color-picker/cmat-components-material-color-picker.mjs +0 -5
  293. package/esm2022/components/material-color-picker/material-color-picker.component.mjs +0 -147
  294. package/esm2022/components/material-color-picker/public-api.mjs +0 -3
  295. package/esm2022/components/material-color-picker/selected-color.mjs +0 -3
  296. package/esm2022/components/material-datetimepicker/calendar-body.mjs +0 -76
  297. package/esm2022/components/material-datetimepicker/calendar.mjs +0 -670
  298. package/esm2022/components/material-datetimepicker/clock.mjs +0 -290
  299. package/esm2022/components/material-datetimepicker/cmat-components-material-datetimepicker.mjs +0 -5
  300. package/esm2022/components/material-datetimepicker/datetimepicker-animations.mjs +0 -34
  301. package/esm2022/components/material-datetimepicker/datetimepicker-errors.mjs +0 -6
  302. package/esm2022/components/material-datetimepicker/datetimepicker-filtertype.mjs +0 -8
  303. package/esm2022/components/material-datetimepicker/datetimepicker-input.mjs +0 -341
  304. package/esm2022/components/material-datetimepicker/datetimepicker-intl.mjs +0 -63
  305. package/esm2022/components/material-datetimepicker/datetimepicker-toggle.mjs +0 -87
  306. package/esm2022/components/material-datetimepicker/datetimepicker-types.mjs +0 -2
  307. package/esm2022/components/material-datetimepicker/datetimepicker.mjs +0 -531
  308. package/esm2022/components/material-datetimepicker/month-view.mjs +0 -141
  309. package/esm2022/components/material-datetimepicker/multi-year-view.mjs +0 -197
  310. package/esm2022/components/material-datetimepicker/public-api.mjs +0 -11
  311. package/esm2022/components/material-datetimepicker/time.mjs +0 -455
  312. package/esm2022/components/material-datetimepicker/year-view.mjs +0 -124
  313. package/esm2022/components/navigation/cmat-components-navigation.mjs +0 -5
  314. package/esm2022/components/navigation/horizontal/components/basic/basic.component.mjs +0 -70
  315. package/esm2022/components/navigation/horizontal/components/branch/branch.component.mjs +0 -82
  316. package/esm2022/components/navigation/horizontal/components/divider/divider.component.mjs +0 -47
  317. package/esm2022/components/navigation/horizontal/components/spacer/spacer.component.mjs +0 -47
  318. package/esm2022/components/navigation/horizontal/horizontal.component.mjs +0 -87
  319. package/esm2022/components/navigation/navigation.service.mjs +0 -140
  320. package/esm2022/components/navigation/navigation.types.mjs +0 -3
  321. package/esm2022/components/navigation/public-api.mjs +0 -5
  322. package/esm2022/components/navigation/vertical/components/aside/aside.component.mjs +0 -162
  323. package/esm2022/components/navigation/vertical/components/basic/basic.component.mjs +0 -60
  324. package/esm2022/components/navigation/vertical/components/collapsable/collapsable.component.mjs +0 -277
  325. package/esm2022/components/navigation/vertical/components/divider/divider.component.mjs +0 -56
  326. package/esm2022/components/navigation/vertical/components/group/group.component.mjs +0 -78
  327. package/esm2022/components/navigation/vertical/components/spacer/spacer.component.mjs +0 -56
  328. package/esm2022/components/navigation/vertical/vertical.component.mjs +0 -584
  329. package/esm2022/components/pagination/cmat-components-pagination.mjs +0 -5
  330. package/esm2022/components/pagination/pagination.component.mjs +0 -67
  331. package/esm2022/components/pagination/pagination.directive.mjs +0 -197
  332. package/esm2022/components/pagination/pagination.instance.mjs +0 -2
  333. package/esm2022/components/pagination/pagination.pipe.mjs +0 -100
  334. package/esm2022/components/pagination/pagination.service.mjs +0 -90
  335. package/esm2022/components/pagination/public-api.mjs +0 -6
  336. package/esm2022/components/password-strength/animations/index.mjs +0 -48
  337. package/esm2022/components/password-strength/cmat-components-password-strength.mjs +0 -5
  338. package/esm2022/components/password-strength/enum.mjs +0 -17
  339. package/esm2022/components/password-strength/mat-pass-toggle-visibility/mat-pass-toggle-visibility.component.mjs +0 -27
  340. package/esm2022/components/password-strength/mat-password-strength/mat-password-strength.component.mjs +0 -206
  341. package/esm2022/components/password-strength/mat-password-strength-info/mat-password-strength-info.component.mjs +0 -150
  342. package/esm2022/components/password-strength/mat-password-strength-validator.mjs +0 -36
  343. package/esm2022/components/password-strength/public-api.mjs +0 -4
  344. package/esm2022/components/password-strength/regexp.class.mjs +0 -8
  345. package/esm2022/components/popover/cmat-components-popover.mjs +0 -5
  346. package/esm2022/components/popover/popover-trigger.mjs +0 -442
  347. package/esm2022/components/popover/popover.component.mjs +0 -348
  348. package/esm2022/components/popover/popover.errors.mjs +0 -27
  349. package/esm2022/components/popover/popover.interfaces.mjs +0 -2
  350. package/esm2022/components/popover/popover.target.mjs +0 -18
  351. package/esm2022/components/popover/popover.type.mjs +0 -2
  352. package/esm2022/components/popover/public-api.mjs +0 -5
  353. package/esm2022/components/progress-bar/cmat-components-progress-bar.mjs +0 -5
  354. package/esm2022/components/progress-bar/progress-bar.component.mjs +0 -58
  355. package/esm2022/components/progress-bar/public-api.mjs +0 -2
  356. package/esm2022/components/rating/cmat-components-rating.mjs +0 -5
  357. package/esm2022/components/rating/public-api.mjs +0 -2
  358. package/esm2022/components/rating/rating.component.mjs +0 -202
  359. package/esm2022/components/select-search/cmat-components-select-search.mjs +0 -5
  360. package/esm2022/components/select-search/default-options.mjs +0 -16
  361. package/esm2022/components/select-search/public-api.mjs +0 -3
  362. package/esm2022/components/select-search/select-no-entries-found.directive.mjs +0 -14
  363. package/esm2022/components/select-search/select-search-clear.directive.mjs +0 -14
  364. package/esm2022/components/select-search/select-search.component.mjs +0 -485
  365. package/esm2022/components/select-tree/cmat-components-select-tree.mjs +0 -5
  366. package/esm2022/components/select-tree/public-api.mjs +0 -4
  367. package/esm2022/components/select-tree/select-tree.component.mjs +0 -565
  368. package/esm2022/components/select-tree/select-tree.flatnode.mjs +0 -3
  369. package/esm2022/components/select-tree/select-tree.node.mjs +0 -3
  370. package/esm2022/components/timeline/cmat-components-timeline.mjs +0 -5
  371. package/esm2022/components/timeline/public-api.mjs +0 -3
  372. package/esm2022/components/timeline/timeline-item/timeline-item.component.mjs +0 -70
  373. package/esm2022/components/timeline/timeline.component.mjs +0 -107
  374. package/esm2022/components/toast/cmat-components-toast.mjs +0 -5
  375. package/esm2022/components/toast/models/global-config.model.mjs +0 -2
  376. package/esm2022/components/toast/models/toast.model.mjs +0 -2
  377. package/esm2022/components/toast/models/type.model.mjs +0 -2
  378. package/esm2022/components/toast/public-api.mjs +0 -7
  379. package/esm2022/components/toast/toast-modal.component.mjs +0 -53
  380. package/esm2022/components/toast/toast.component.mjs +0 -30
  381. package/esm2022/components/toast/toast.service.mjs +0 -122
  382. package/esm2022/components/transfer-picker/cmat-components-transfer-picker.mjs +0 -5
  383. package/esm2022/components/transfer-picker/filter/filter.component.mjs +0 -91
  384. package/esm2022/components/transfer-picker/interface.mjs +0 -17
  385. package/esm2022/components/transfer-picker/public-api.mjs +0 -8
  386. package/esm2022/components/transfer-picker/search/search.component.mjs +0 -38
  387. package/esm2022/components/transfer-picker/transfer-picker-source/transfer-picker-source.component.mjs +0 -201
  388. package/esm2022/components/transfer-picker/transfer-picker-target/transfer-picker-target.component.mjs +0 -32
  389. package/esm2022/components/transfer-picker/transfer-picker.component.mjs +0 -84
  390. package/esm2022/components/transfer-picker/transfer-picker.service.mjs +0 -137
  391. package/esm2022/components/upload/cmat-components-upload.mjs +0 -5
  392. package/esm2022/components/upload/files.type.mjs +0 -2
  393. package/esm2022/components/upload/files.util.service.mjs +0 -89
  394. package/esm2022/components/upload/public-api.mjs +0 -5
  395. package/esm2022/components/upload/upload-queue/upload-queue.component.mjs +0 -155
  396. package/esm2022/components/upload/upload.component.mjs +0 -118
  397. package/esm2022/directives/animate-on-scroll/animate-on-scroll.directive.mjs +0 -126
  398. package/esm2022/directives/animate-on-scroll/cmat-directives-animate-on-scroll.mjs +0 -5
  399. package/esm2022/directives/animate-on-scroll/public-api.mjs +0 -2
  400. package/esm2022/directives/animate-on-scroll/scroll.service.mjs +0 -38
  401. package/esm2022/directives/autofocus/autofocus.directive.mjs +0 -20
  402. package/esm2022/directives/autofocus/cmat-directives-autofocus.mjs +0 -5
  403. package/esm2022/directives/autofocus/public-api.mjs +0 -2
  404. package/esm2022/directives/debounce/abstract-debounce.directive.mjs +0 -34
  405. package/esm2022/directives/debounce/cmat-directives-debounce.mjs +0 -5
  406. package/esm2022/directives/debounce/debounce-click.directive.mjs +0 -25
  407. package/esm2022/directives/debounce/debounce-keyup.directive.mjs +0 -25
  408. package/esm2022/directives/debounce/public-api.mjs +0 -3
  409. package/esm2022/directives/digit-only/cmat-directives-digit-only.mjs +0 -5
  410. package/esm2022/directives/digit-only/digit-only.directive.mjs +0 -298
  411. package/esm2022/directives/digit-only/mask.directive.mjs +0 -84
  412. package/esm2022/directives/digit-only/public-api.mjs +0 -3
  413. package/esm2022/directives/equal-validator/cmat-directives-equal-validator.mjs +0 -5
  414. package/esm2022/directives/equal-validator/equal-validator.directive.mjs +0 -54
  415. package/esm2022/directives/equal-validator/public-api.mjs +0 -2
  416. package/esm2022/lib/mock-api/cmat-lib-mock-api.mjs +0 -5
  417. package/esm2022/lib/mock-api/mock-api.constants.mjs +0 -3
  418. package/esm2022/lib/mock-api/mock-api.interceptor.mjs +0 -73
  419. package/esm2022/lib/mock-api/mock-api.request-handler.mjs +0 -48
  420. package/esm2022/lib/mock-api/mock-api.service.mjs +0 -93
  421. package/esm2022/lib/mock-api/mock-api.types.mjs +0 -2
  422. package/esm2022/lib/mock-api/mock-api.utils.mjs +0 -16
  423. package/esm2022/lib/mock-api/public-api.mjs +0 -6
  424. package/esm2022/pipes/bytes/bytes.pipe.mjs +0 -25
  425. package/esm2022/pipes/bytes/cmat-pipes-bytes.mjs +0 -5
  426. package/esm2022/pipes/bytes/public-api.mjs +0 -2
  427. package/esm2022/pipes/date-format/cmat-pipes-date-format.mjs +0 -5
  428. package/esm2022/pipes/date-format/date-format.pipe.mjs +0 -20
  429. package/esm2022/pipes/date-format/public-api.mjs +0 -2
  430. package/esm2022/pipes/find-by-key/cmat-pipes-find-by-key.mjs +0 -5
  431. package/esm2022/pipes/find-by-key/find-by-key.pipe.mjs +0 -23
  432. package/esm2022/pipes/find-by-key/public-api.mjs +0 -2
  433. package/esm2022/pipes/group-by/cmat-pipes-group-by.mjs +0 -5
  434. package/esm2022/pipes/group-by/group-by.pipe.mjs +0 -29
  435. package/esm2022/pipes/group-by/public-api.mjs +0 -2
  436. package/esm2022/pipes/keys/cmat-pipes-keys.mjs +0 -5
  437. package/esm2022/pipes/keys/keys.pipe.mjs +0 -26
  438. package/esm2022/pipes/keys/public-api.mjs +0 -2
  439. package/esm2022/pipes/secure/cmat-pipes-secure.mjs +0 -5
  440. package/esm2022/pipes/secure/public-api.mjs +0 -2
  441. package/esm2022/pipes/secure/secure-pipe.mjs +0 -46
  442. package/esm2022/pipes/uppercase/cmat-pipes-uppercase.mjs +0 -5
  443. package/esm2022/pipes/uppercase/public-api.mjs +0 -2
  444. package/esm2022/pipes/uppercase/uppercase.pipe.mjs +0 -17
  445. package/esm2022/public-api.mjs +0 -2
  446. package/esm2022/services/alert/alert.dialog.mjs +0 -12
  447. package/esm2022/services/alert/alert.message.mjs +0 -9
  448. package/esm2022/services/alert/alert.service.mjs +0 -166
  449. package/esm2022/services/alert/cmat-services-alert.mjs +0 -5
  450. package/esm2022/services/alert/enum.mjs +0 -15
  451. package/esm2022/services/alert/public-api.mjs +0 -5
  452. package/esm2022/services/config/cmat-services-config.mjs +0 -5
  453. package/esm2022/services/config/config.constants.mjs +0 -3
  454. package/esm2022/services/config/config.service.mjs +0 -35
  455. package/esm2022/services/config/public-api.mjs +0 -4
  456. package/esm2022/services/config/urlStateConfig.service.mjs +0 -30
  457. package/esm2022/services/confirmation/cmat-services-confirmation.mjs +0 -5
  458. package/esm2022/services/confirmation/confirmation.service.mjs +0 -51
  459. package/esm2022/services/confirmation/confirmation.types.mjs +0 -2
  460. package/esm2022/services/confirmation/dialog/dialog.component.mjs +0 -25
  461. package/esm2022/services/confirmation/public-api.mjs +0 -3
  462. package/esm2022/services/data/cmat-services-data.mjs +0 -5
  463. package/esm2022/services/data/data.service.mjs +0 -169
  464. package/esm2022/services/data/public-api.mjs +0 -2
  465. package/esm2022/services/loading/cmat-services-loading.mjs +0 -5
  466. package/esm2022/services/loading/loading.interceptor.mjs +0 -29
  467. package/esm2022/services/loading/loading.service.mjs +0 -72
  468. package/esm2022/services/loading/public-api.mjs +0 -3
  469. package/esm2022/services/local-storage/cmat-services-local-storage.mjs +0 -5
  470. package/esm2022/services/local-storage/local-storage.service.mjs +0 -22
  471. package/esm2022/services/local-storage/public-api.mjs +0 -2
  472. package/esm2022/services/media-watcher/cmat-services-media-watcher.mjs +0 -5
  473. package/esm2022/services/media-watcher/media-watcher.service.mjs +0 -55
  474. package/esm2022/services/media-watcher/public-api.mjs +0 -2
  475. package/esm2022/services/platform/cmat-services-platform.mjs +0 -5
  476. package/esm2022/services/platform/platform.service.mjs +0 -46
  477. package/esm2022/services/platform/public-api.mjs +0 -2
  478. package/esm2022/services/splash-screen/cmat-services-splash-screen.mjs +0 -5
  479. package/esm2022/services/splash-screen/public-api.mjs +0 -2
  480. package/esm2022/services/splash-screen/splash-screen.service.mjs +0 -42
  481. package/esm2022/services/title/cmat-services-title.mjs +0 -5
  482. package/esm2022/services/title/public-api.mjs +0 -2
  483. package/esm2022/services/title/title.service.mjs +0 -46
  484. package/esm2022/services/translation/cmat-services-translation.mjs +0 -5
  485. package/esm2022/services/translation/public-api.mjs +0 -2
  486. package/esm2022/services/translation/translation.service.mjs +0 -62
  487. package/esm2022/services/utils/cmat-services-utils.mjs +0 -5
  488. package/esm2022/services/utils/public-api.mjs +0 -2
  489. package/esm2022/services/utils/utils.service.mjs +0 -467
  490. package/esm2022/validators/cmat-validators.mjs +0 -5
  491. package/esm2022/validators/public-api.mjs +0 -2
  492. package/esm2022/validators/validators.mjs +0 -33
  493. package/esm2022/version/cmat-version.mjs +0 -5
  494. package/esm2022/version/public-api.mjs +0 -2
  495. package/esm2022/version/version.mjs +0 -11
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy91cGxvYWQvZmlsZXMudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBGaWxlTW9kZWwge1xyXG4gICAgaWQ/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgZmlsZU5hbWU6IHN0cmluZztcclxuICAgIGZpbGVQYXRoOiBzdHJpbmc7XHJcbiAgICBmaWxlU3RhdHVzPzogJ1VwbG9hZGVkJyB8ICdQcm9jZXNzZWQnO1xyXG4gICAgbGVuZ3RoOiBudW1iZXI7XHJcbiAgICB1cGxvYWRVc2VySWQ/OiBzdHJpbmc7XHJcbiAgICB1cGxvYWRVc2VyTmFtZT86IHN0cmluZztcclxuICAgIHVwbG9hZERhdGU6IERhdGU7XHJcbiAgICBmaWxlVHlwZTogJ2NzdicgfCAnZ2lmJyB8ICd3b3JkJyB8ICdleGNlbCcgfCAnanBnJyB8ICdvdXRsb29rJyB8ICdwZGYnIHwgJ3BuZycgfCAncHB0JyB8ICdmaWxlJyB8ICd0ZXh0JyB8ICd2aWRlbycgfCAnemlwJztcclxuICAgIGZpbGVDYXRlZ29yeTogc3RyaW5nO1xyXG4gICAgZGF0YT86IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGaWxlQ2F0ZWdvcnlNb2RlbCB7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICB2YWx1ZTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVMaXN0TW9kZWwge1xyXG4gICAgZGF0YTogRmlsZU1vZGVsW107XHJcbiAgICBkYXRhQ291bnQ6IG51bWJlcjtcclxuICAgIGNhdGVnb3J5OiBGaWxlQ2F0ZWdvcnlNb2RlbFtdO1xyXG59XHJcbiJdfQ==
@@ -1,89 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Subject, catchError, map, takeUntil, tap } from 'rxjs';
3
- import { CmatUtilsService } from 'cmat/services/utils';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common/http";
6
- import * as i2 from "cmat/services/config";
7
- export class CmatFilesUtilService {
8
- constructor(_http, _urlStateConfigService) {
9
- this._http = _http;
10
- this._urlStateConfigService = _urlStateConfigService;
11
- this._unsubscribeAll = new Subject();
12
- this._urlStateConfigService.config$
13
- .pipe(takeUntil(this._unsubscribeAll))
14
- .subscribe((config) => {
15
- this._config = config;
16
- });
17
- }
18
- ngOnDestroy() {
19
- this._unsubscribeAll.next(void 0);
20
- this._unsubscribeAll.complete();
21
- }
22
- downloadFile(fileId, isStream = true) {
23
- return this._http.get(`${this._config.fileUrl}/download/${fileId}`, {
24
- headers: CmatUtilsService.getRequestCryptoHeaders(fileId),
25
- observe: 'response',
26
- reportProgress: true,
27
- responseType: 'blob',
28
- params: {
29
- isStream
30
- }
31
- }).pipe(catchError(CmatUtilsService.handleError));
32
- }
33
- downloadFileZip(fileIds) {
34
- return this._http.post(`${this._config.fileUrl}/download`, fileIds, {
35
- headers: CmatUtilsService.getRequestCryptoHeaders('fileZip'),
36
- observe: 'response',
37
- reportProgress: true,
38
- responseType: 'blob',
39
- }).pipe(catchError(CmatUtilsService.handleError));
40
- }
41
- uploadFile(file) {
42
- return this._http.post(`${this._config.fileUrl}/upload`, file, {
43
- headers: CmatUtilsService.getRequestCryptoHeaders('files'),
44
- observe: 'events',
45
- reportProgress: true,
46
- responseType: 'json'
47
- }).pipe(tap((res) => res), catchError(CmatUtilsService.handleError));
48
- }
49
- deleteFile(fileId) {
50
- return this._http.delete(`${this._config.fileUrl}/${fileId}`, {
51
- headers: CmatUtilsService.getRequestCryptoHeaders(fileId)
52
- }).pipe(catchError(err => CmatUtilsService.handleError(err)));
53
- }
54
- getFileList(ids, fileName, fileCategory, searchDate, pageIndex = -1, pageSize = -1) {
55
- const query = {
56
- ids,
57
- fileName,
58
- fileCategory,
59
- searchDate
60
- };
61
- if (this._config.enableDataProtect) {
62
- return this._http.post(`${this._config.fileUrl}/${pageIndex}/${pageSize}`, CmatUtilsService.getEncryptData(JSON.stringify(query)), {
63
- headers: CmatUtilsService.getRequestCryptoHeaders('fileList'),
64
- responseType: 'text'
65
- })
66
- .pipe(
67
- // retry(3), // retry a failed request up to 3 times
68
- map((res) => JSON.parse(CmatUtilsService.getDecryptData(res))), catchError(err => CmatUtilsService.handleError(err)));
69
- }
70
- else {
71
- return this._http.post(`${this._config.fileUrl}/${pageIndex}/${pageSize}`, query, {
72
- headers: CmatUtilsService.getRequestCryptoHeaders('fileList'),
73
- responseType: 'json'
74
- })
75
- .pipe(
76
- // retry(3), // retry a failed request up to 3 times
77
- tap((res) => res), catchError(err => CmatUtilsService.handleError(err)));
78
- }
79
- }
80
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: CmatFilesUtilService, deps: [{ token: i1.HttpClient }, { token: i2.CmatUrlStateConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
81
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: CmatFilesUtilService, providedIn: 'root' }); }
82
- }
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: CmatFilesUtilService, decorators: [{
84
- type: Injectable,
85
- args: [{
86
- providedIn: 'root'
87
- }]
88
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.CmatUrlStateConfigService }] });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMudXRpbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21hdC9jb21wb25lbnRzL3VwbG9hZC9maWxlcy51dGlsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQWMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU1RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQU12RCxNQUFNLE9BQU8sb0JBQW9CO0lBSTdCLFlBQW9CLEtBQWlCLEVBQVUsc0JBQWlEO1FBQTVFLFVBQUssR0FBTCxLQUFLLENBQVk7UUFBVSwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQTJCO1FBRnhGLG9CQUFlLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFHekQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU87YUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDckMsU0FBUyxDQUFDLENBQUMsTUFBdUIsRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFjLEVBQUUsV0FBb0IsSUFBSTtRQUNqRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLGFBQWEs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LENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ3ZELENBQUM7UUFDVixDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksU0FBUyxJQUFJLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRTtnQkFDN0YsT0FBTyxFQUFFLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQztnQkFDN0QsWUFBWSxFQUFFLE1BQU07YUFDdkIsQ0FBQztpQkFDRyxJQUFJO1lBQ0Qsb0RBQW9EO1lBQ3BELEdBQUcsQ0FBQyxDQUFDLEdBQWtCLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUNoQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDdkQsQ0FBQztRQUNWLENBQUM7SUFDTCxDQUFDOytHQTFGUSxvQkFBb0I7bUhBQXBCLG9CQUFvQixjQUZqQixNQUFNOzs0RkFFVCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIGNhdGNoRXJyb3IsIG1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSVVybFN0YXRlQ29uZmlnLCBDbWF0VXJsU3RhdGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnY21hdC9zZXJ2aWNlcy9jb25maWcnO1xyXG5pbXBvcnQgeyBDbWF0VXRpbHNTZXJ2aWNlIH0gZnJvbSAnY21hdC9zZXJ2aWNlcy91dGlscyc7XHJcbmltcG9ydCB7IEZpbGVMaXN0TW9kZWwgfSBmcm9tICcuL2ZpbGVzLnR5cGUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbWF0RmlsZXNVdGlsU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgICBwcml2YXRlIF9jb25maWc6IElVcmxTdGF0ZUNvbmZpZztcclxuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlQWxsOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIF91cmxTdGF0ZUNvbmZpZ1NlcnZpY2U6IENtYXRVcmxTdGF0ZUNvbmZpZ1NlcnZpY2UpIHtcclxuICAgICAgICB0aGlzLl91cmxTdGF0ZUNvbmZpZ1NlcnZpY2UuY29uZmlnJFxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjb25maWc6IElVcmxTdGF0ZUNvbmZpZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY29uZmlnID0gY29uZmlnO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbC5uZXh0KHZvaWQgMCk7XHJcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBkb3dubG9hZEZpbGUoZmlsZUlkOiBzdHJpbmcsIGlzU3RyZWFtOiBib29sZWFuID0gdHJ1ZSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0KGAke3RoaXMuX2NvbmZpZy5maWxlVXJsfS9kb3dubG9hZC8ke2ZpbGVJZH1gLCB7XHJcbiAgICAgICAgICAgIGhlYWRlcnM6IENtYXRVdGlsc1NlcnZpY2UuZ2V0UmVxdWVzdENyeXB0b0hlYWRlcnMoZmlsZUlkKSxcclxuICAgICAgICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyxcclxuICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXHJcbiAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InLFxyXG4gICAgICAgICAgICBwYXJhbXM6IHtcclxuICAgICAgICAgICAgICAgIGlzU3RyZWFtXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LCkucGlwZTxhbnk+KFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKENtYXRVdGlsc1NlcnZpY2UuaGFuZGxlRXJyb3IpKTtcclxuICAgIH1cclxuXHJcbiAgICBkb3dubG9hZEZpbGVaaXAoZmlsZUlkcz86IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0KGAke3RoaXMuX2NvbmZpZy5maWxlVXJsfS9kb3dubG9hZGAsIGZpbGVJZHMsIHtcclxuICAgICAgICAgICAgaGVhZGVyczogQ21hdFV0aWxzU2VydmljZS5nZXRSZXF1ZXN0Q3J5cHRvSGVhZGVycygnZmlsZVppcCcpLFxyXG4gICAgICAgICAgICBvYnNlcnZlOiAncmVzcG9uc2UnLFxyXG4gICAgICAgICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicsXHJcbiAgICAgICAgfSkucGlwZTxhbnk+KFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKENtYXRVdGlsc1NlcnZpY2UuaGFuZGxlRXJyb3IpKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGxvYWRGaWxlKGZpbGU6IEZvcm1EYXRhKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0KGAke3RoaXMuX2NvbmZpZy5maWxlVXJsfS91cGxvYWRgLCBmaWxlLCB7XHJcbiAgICAgICAgICAgIGhlYWRlcnM6IENtYXRVdGlsc1NlcnZpY2UuZ2V0UmVxdWVzdENyeXB0b0hlYWRlcnMoJ2ZpbGVzJyksXHJcbiAgICAgICAgICAgIG9ic2VydmU6ICdldmVudHMnLFxyXG4gICAgICAgICAgICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnanNvbidcclxuICAgICAgICB9KS5waXBlKFxyXG4gICAgICAgICAgICB0YXAoKHJlczogYW55KSA9PiByZXMpLFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKENtYXRVdGlsc1NlcnZpY2UuaGFuZGxlRXJyb3IpKTtcclxuICAgIH1cclxuXHJcbiAgICBkZWxldGVGaWxlKGZpbGVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faHR0cC5kZWxldGUoYCR7dGhpcy5fY29uZmlnLmZpbGVVcmx9LyR7ZmlsZUlkfWAsIHtcclxuICAgICAgICAgICAgaGVhZGVyczogQ21hdFV0aWxzU2VydmljZS5nZXRSZXF1ZXN0Q3J5cHRvSGVhZGVycyhmaWxlSWQpXHJcbiAgICAgICAgfSkucGlwZShcclxuICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4gQ21hdFV0aWxzU2VydmljZS5oYW5kbGVFcnJvcihlcnIpKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RmlsZUxpc3QoaWRzPzogW10sIGZpbGVOYW1lPzogc3RyaW5nLCBmaWxlQ2F0ZWdvcnk/OiBzdHJpbmcsIHNlYXJjaERhdGU/OiBEYXRlLCBwYWdlSW5kZXg6IG51bWJlciA9IC0xLCBwYWdlU2l6ZTogbnVtYmVyID0gLTEpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0ge1xyXG4gICAgICAgICAgICBpZHMsXHJcbiAgICAgICAgICAgIGZpbGVOYW1lLFxyXG4gICAgICAgICAgICBmaWxlQ2F0ZWdvcnksXHJcbiAgICAgICAgICAgIHNlYXJjaERhdGVcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmICh0aGlzLl9jb25maWcuZW5hYmxlRGF0YVByb3RlY3QpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdChgJHt0aGlzLl9jb25maWcuZmlsZVVybH0vJHtwYWdlSW5kZXh9LyR7cGFnZVNpemV9YCxcclxuICAgICAgICAgICAgICAgIENtYXRVdGlsc1NlcnZpY2UuZ2V0RW5jcnlwdERhdGEoSlNPTi5zdHJpbmdpZnkocXVlcnkpKSxcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBDbWF0VXRpbHNTZXJ2aWNlLmdldFJlcXVlc3RDcnlwdG9IZWFkZXJzKCdmaWxlTGlzdCcpLFxyXG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgIC8vIHJldHJ5KDMpLCAvLyByZXRyeSBhIGZhaWxlZCByZXF1ZXN0IHVwIHRvIDMgdGltZXNcclxuICAgICAgICAgICAgICAgICAgICBtYXAoKHJlczogc3RyaW5nKSA9PiBKU09OLnBhcnNlKENtYXRVdGlsc1NlcnZpY2UuZ2V0RGVjcnlwdERhdGEocmVzKSkpLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IENtYXRVdGlsc1NlcnZpY2UuaGFuZGxlRXJyb3IoZXJyKSlcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdDxGaWxlTGlzdE1vZGVsPihgJHt0aGlzLl9jb25maWcuZmlsZVVybH0vJHtwYWdlSW5kZXh9LyR7cGFnZVNpemV9YCwgcXVlcnksIHtcclxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IENtYXRVdGlsc1NlcnZpY2UuZ2V0UmVxdWVzdENyeXB0b0hlYWRlcnMoJ2ZpbGVMaXN0JyksXHJcbiAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6ICdqc29uJ1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgLy8gcmV0cnkoMyksIC8vIHJldHJ5IGEgZmFpbGVkIHJlcXVlc3QgdXAgdG8gMyB0aW1lc1xyXG4gICAgICAgICAgICAgICAgICAgIHRhcCgocmVzOiBGaWxlTGlzdE1vZGVsKSA9PiByZXMpLFxyXG4gICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IENtYXRVdGlsc1NlcnZpY2UuaGFuZGxlRXJyb3IoZXJyKSlcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,5 +0,0 @@
1
- export * from './upload-queue/upload-queue.component';
2
- export * from './upload.component';
3
- export * from './files.util.service';
4
- export * from './files.type';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy91cGxvYWQvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdXBsb2FkLXF1ZXVlL3VwbG9hZC1xdWV1ZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3VwbG9hZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpbGVzLnV0aWwuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZmlsZXMudHlwZSc7XHJcbiJdfQ==
@@ -1,155 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output, ViewChildren, ViewEncapsulation, forwardRef } from '@angular/core';
2
- import { MatButtonModule } from '@angular/material/button';
3
- import { MatCardModule } from '@angular/material/card';
4
- import { MatIconModule } from '@angular/material/icon';
5
- import { MatListModule } from '@angular/material/list';
6
- import { Subject, takeUntil } from 'rxjs';
7
- import { CmatUploadComponent } from '../upload.component';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "cmat/services/media-watcher";
10
- import * as i2 from "@angular/material/card";
11
- import * as i3 from "@angular/material/list";
12
- import * as i4 from "@angular/material/button";
13
- import * as i5 from "@angular/material/icon";
14
- export class CmatUploadQueueComponent {
15
- constructor(_changeDetectorRef, _cmatMediaWatcherService, _elementRef) {
16
- this._changeDetectorRef = _changeDetectorRef;
17
- this._cmatMediaWatcherService = _cmatMediaWatcherService;
18
- this._elementRef = _elementRef;
19
- this.fileAlias = 'fileData';
20
- this.filePath = '';
21
- this.required = false;
22
- this.autoUpload = true;
23
- this.multiple = true;
24
- this.accept = '';
25
- this.title = '附件';
26
- this.editMode = false;
27
- this.filesData = [];
28
- this.outputRemoveIdEvent = new EventEmitter();
29
- this.outputUploadIdEvent = new EventEmitter();
30
- this.outputFilesDataEvent = new EventEmitter();
31
- this.id = 'cmatupload-' + Math.floor(Math.random() * 1000000);
32
- this._unsubscribeAll = new Subject();
33
- this._cmatMediaWatcherService.onMediaChange$
34
- .pipe(takeUntil(this._unsubscribeAll))
35
- .subscribe(({ matchingAliases }) => {
36
- this.isHandSet = !matchingAliases.includes('lg');
37
- this._changeDetectorRef.markForCheck();
38
- });
39
- }
40
- onDrop(event) {
41
- const files = event.dataTransfer.files;
42
- for (const file of files) {
43
- if (this.accept?.includes(file.type))
44
- this.add(file);
45
- }
46
- event.preventDefault();
47
- event.stopPropagation();
48
- }
49
- onDropOver(event) {
50
- event.preventDefault();
51
- }
52
- ngAfterViewInit() {
53
- const fileUpload = this._elementRef.nativeElement.querySelector('#' + this.id);
54
- fileUpload.onchange = () => {
55
- for (let index = 0; index < (fileUpload.files?.length ?? 0); index++) {
56
- const file = fileUpload.files[index];
57
- this.add(file);
58
- }
59
- };
60
- }
61
- ngOnDestroy() {
62
- this._unsubscribeAll.next(void 0);
63
- this._unsubscribeAll.complete();
64
- }
65
- add(file) {
66
- if ((this.accept === '' || this.accept === undefined) || (this.accept !== '' && this.accept.includes(file.type))) {
67
- if (!Array.isArray(this.filesData)) {
68
- this.filesData = [];
69
- }
70
- if (!(!this.multiple && this.filesData.length > 0)) {
71
- this.filesData.push(file);
72
- }
73
- else if (this.fileUploads.first.id === null) {
74
- this.filesData.push(file);
75
- this.fileUploads.first.remove();
76
- }
77
- }
78
- this._changeDetectorRef.markForCheck();
79
- }
80
- upload(event) {
81
- this.outputUploadIdEvent.emit(event.id);
82
- this.outputFilesDataEvent.emit(this.filesData);
83
- }
84
- remove(event) {
85
- const index = this.filesData.indexOf(event.file);
86
- if (index > -1) {
87
- this.filesData.splice(index, 1);
88
- if (event.file.id) {
89
- this.outputRemoveIdEvent.emit(event.file.id);
90
- }
91
- this.outputFilesDataEvent.emit(this.filesData);
92
- }
93
- this._changeDetectorRef.markForCheck();
94
- }
95
- uploadAll() {
96
- this.fileUploads.forEach((fileUpload) => {
97
- if (fileUpload.id === null) {
98
- fileUpload.upload();
99
- }
100
- });
101
- this._changeDetectorRef.markForCheck();
102
- }
103
- removeAll() {
104
- this.fileUploads.forEach((fileUpload) => { fileUpload.remove(); });
105
- this._changeDetectorRef.markForCheck();
106
- }
107
- choose() {
108
- this._elementRef.nativeElement.querySelector('#' + this.id).click();
109
- }
110
- getData() {
111
- return Array.isArray(this.filesData) ? this.filesData : [];
112
- }
113
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: CmatUploadQueueComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.CmatMediaWatcherService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
114
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.10", type: CmatUploadQueueComponent, isStandalone: true, selector: "cmat-upload-queue", inputs: { fileAlias: "fileAlias", filePath: "filePath", fileCategory: "fileCategory", required: "required", autoUpload: "autoUpload", multiple: "multiple", accept: "accept", title: "title", editMode: "editMode", filesData: "filesData" }, outputs: { outputRemoveIdEvent: "outputRemoveIdEvent", outputUploadIdEvent: "outputUploadIdEvent", outputFilesDataEvent: "outputFilesDataEvent" }, host: { listeners: { "drop": "onDrop($event)", "dragover": "onDropOver($event)" } }, viewQueries: [{ propertyName: "fileUploads", predicate: i0.forwardRef(() => CmatUploadComponent), descendants: true }], exportAs: ["cmatUploadQueue"], ngImport: i0, template: "<mat-card>\r\n <mat-card-header>\r\n <mat-card-title>\r\n <legend class=\"text-lg\">\r\n {{title}}\r\n @if(required){\r\n <span>*</span>\r\n }\r\n </legend>\r\n </mat-card-title>\r\n </mat-card-header>\r\n <input type=\"file\" class=\"hidden\" [id]=\"id\" [multiple]=\"multiple\" [accept]=\"accept\" />\r\n\r\n @if(editMode){\r\n <mat-card-actions class=\"space-x-1 print:hidden\">\r\n @if(!isHandSet){\r\n <button mat-raised-button color=\"primary\" (click)=\"choose()\">\r\n @if(autoUpload){\r\n <mat-icon [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon>\r\n }@else {\r\n <mat-icon [svgIcon]=\"'mat_outline:add_box'\"></mat-icon>\r\n }\r\n <span class=\"ml-2\">\u9009\u62E9</span>\r\n </button>\r\n @if(getData().length > 0&&multiple){\r\n @if(!autoUpload){\r\n <button mat-raised-button color=\"accent\" (click)=\"uploadAll()\"><mat-icon\r\n [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon><span class=\"ml-2\">\u4E0A\u4F20\u5168\u90E8</span></button>\r\n }\r\n\r\n <button mat-raised-button color=\"warn\" (click)=\"removeAll()\"><mat-icon\r\n [svgIcon]=\"'heroicons_solid:trash'\"></mat-icon><span class=\"ml-2\">\u5220\u9664\u5168\u90E8</span></button>\r\n }\r\n }@else {\r\n <button mat-icon-button color=\"primary\" (click)=\"choose()\">\r\n @if(autoUpload){\r\n <mat-icon [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon>\r\n }@else {\r\n <mat-icon [svgIcon]=\"'mat_outline:add_box'\"></mat-icon>\r\n }\r\n </button>\r\n\r\n @if(getData().length > 0&&multiple){\r\n @if(!autoUpload){\r\n <button mat-icon-button color=\"accent\" (click)=\"uploadAll()\"><mat-icon\r\n [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon></button>\r\n }\r\n\r\n <button mat-icon-button color=\"warn\" (click)=\"removeAll()\"><mat-icon\r\n [svgIcon]=\"'heroicons_solid:trash'\"></mat-icon></button>\r\n }\r\n }\r\n </mat-card-actions>\r\n }\r\n\r\n <mat-card-content>\r\n <mat-list class=\"border-t\">\r\n @for (file of getData(); track $index) {\r\n <mat-list-item class=\"cmat-upload-file-item h-full\">\r\n <cmat-upload class=\"my-2\" [fileAlias]=\"fileAlias\" [filePath]=\"filePath\" [fileCategory]=\"fileCategory\"\r\n [autoUpload]=\"autoUpload\" [editMode]=\"editMode\" [file]=\"file\" [id]=\"file.id||null\"\r\n (removeEvent)=\"remove($event)\" (uploadEvent)=\"upload($event)\"></cmat-upload>\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n </mat-card-content>\r\n</mat-card>", dependencies: [{ kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i2.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i2.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i2.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "ngmodule", type: MatListModule }, { kind: "component", type: i3.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i3.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: CmatUploadComponent, selector: "cmat-upload", inputs: ["fileAlias", "filePath", "fileCategory", "editMode", "autoUpload", "id", "file"], outputs: ["removeEvent", "uploadEvent"], exportAs: ["cmatUpload"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
115
- }
116
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: CmatUploadQueueComponent, decorators: [{
117
- type: Component,
118
- args: [{ selector: 'cmat-upload-queue', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatUploadQueue', standalone: true, imports: [MatCardModule, MatListModule, MatButtonModule, MatIconModule, CmatUploadComponent], template: "<mat-card>\r\n <mat-card-header>\r\n <mat-card-title>\r\n <legend class=\"text-lg\">\r\n {{title}}\r\n @if(required){\r\n <span>*</span>\r\n }\r\n </legend>\r\n </mat-card-title>\r\n </mat-card-header>\r\n <input type=\"file\" class=\"hidden\" [id]=\"id\" [multiple]=\"multiple\" [accept]=\"accept\" />\r\n\r\n @if(editMode){\r\n <mat-card-actions class=\"space-x-1 print:hidden\">\r\n @if(!isHandSet){\r\n <button mat-raised-button color=\"primary\" (click)=\"choose()\">\r\n @if(autoUpload){\r\n <mat-icon [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon>\r\n }@else {\r\n <mat-icon [svgIcon]=\"'mat_outline:add_box'\"></mat-icon>\r\n }\r\n <span class=\"ml-2\">\u9009\u62E9</span>\r\n </button>\r\n @if(getData().length > 0&&multiple){\r\n @if(!autoUpload){\r\n <button mat-raised-button color=\"accent\" (click)=\"uploadAll()\"><mat-icon\r\n [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon><span class=\"ml-2\">\u4E0A\u4F20\u5168\u90E8</span></button>\r\n }\r\n\r\n <button mat-raised-button color=\"warn\" (click)=\"removeAll()\"><mat-icon\r\n [svgIcon]=\"'heroicons_solid:trash'\"></mat-icon><span class=\"ml-2\">\u5220\u9664\u5168\u90E8</span></button>\r\n }\r\n }@else {\r\n <button mat-icon-button color=\"primary\" (click)=\"choose()\">\r\n @if(autoUpload){\r\n <mat-icon [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon>\r\n }@else {\r\n <mat-icon [svgIcon]=\"'mat_outline:add_box'\"></mat-icon>\r\n }\r\n </button>\r\n\r\n @if(getData().length > 0&&multiple){\r\n @if(!autoUpload){\r\n <button mat-icon-button color=\"accent\" (click)=\"uploadAll()\"><mat-icon\r\n [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon></button>\r\n }\r\n\r\n <button mat-icon-button color=\"warn\" (click)=\"removeAll()\"><mat-icon\r\n [svgIcon]=\"'heroicons_solid:trash'\"></mat-icon></button>\r\n }\r\n }\r\n </mat-card-actions>\r\n }\r\n\r\n <mat-card-content>\r\n <mat-list class=\"border-t\">\r\n @for (file of getData(); track $index) {\r\n <mat-list-item class=\"cmat-upload-file-item h-full\">\r\n <cmat-upload class=\"my-2\" [fileAlias]=\"fileAlias\" [filePath]=\"filePath\" [fileCategory]=\"fileCategory\"\r\n [autoUpload]=\"autoUpload\" [editMode]=\"editMode\" [file]=\"file\" [id]=\"file.id||null\"\r\n (removeEvent)=\"remove($event)\" (uploadEvent)=\"upload($event)\"></cmat-upload>\r\n </mat-list-item>\r\n }\r\n </mat-list>\r\n </mat-card-content>\r\n</mat-card>" }]
119
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.CmatMediaWatcherService }, { type: i0.ElementRef }], propDecorators: { fileUploads: [{
120
- type: ViewChildren,
121
- args: [forwardRef(() => CmatUploadComponent)]
122
- }], fileAlias: [{
123
- type: Input
124
- }], filePath: [{
125
- type: Input
126
- }], fileCategory: [{
127
- type: Input
128
- }], required: [{
129
- type: Input
130
- }], autoUpload: [{
131
- type: Input
132
- }], multiple: [{
133
- type: Input
134
- }], accept: [{
135
- type: Input
136
- }], title: [{
137
- type: Input
138
- }], editMode: [{
139
- type: Input
140
- }], filesData: [{
141
- type: Input
142
- }], outputRemoveIdEvent: [{
143
- type: Output
144
- }], outputUploadIdEvent: [{
145
- type: Output
146
- }], outputFilesDataEvent: [{
147
- type: Output
148
- }], onDrop: [{
149
- type: HostListener,
150
- args: ['drop', ['$event']]
151
- }], onDropOver: [{
152
- type: HostListener,
153
- args: ['dragover', ['$event']]
154
- }] } });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLXF1ZXVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy91cGxvYWQvdXBsb2FkLXF1ZXVlL3VwbG9hZC1xdWV1ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbWF0L2NvbXBvbmVudHMvdXBsb2FkL3VwbG9hZC1xdWV1ZS91cGxvYWQtcXVldWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFlBQVksRUFDWixpQkFBaUIsRUFDakIsVUFBVSxFQUNiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7OztBQVcxRCxNQUFNLE9BQU8sd0JBQXdCO0lBK0JqQyxZQUFvQixrQkFBcUMsRUFBVSx3QkFBaUQsRUFBVSxXQUF1QjtRQUFqSSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQVUsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUF5QjtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBNUJySixjQUFTLEdBQVcsVUFBVSxDQUFDO1FBRy9CLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFJdEIsYUFB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QUUsZUFBZSx3VUFBRSxhQUFhLG9MQUFFLG1CQUFtQjs7NEZBRWxGLHdCQUF3QjtrQkFUcEMsU0FBUzsrQkFDSSxtQkFBbUIsaUJBRWQsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxZQUNyQyxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxhQUFhLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLENBQUM7cUpBR3ZDLFdBQVc7c0JBQS9ELFlBQVk7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2dCQUVuRCxTQUFTO3NCQURSLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUdOLFlBQVk7c0JBRFgsS0FBSztnQkFHTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVOLFNBQVM7c0JBRFIsS0FBSztnQkFHSSxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFrQlAsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFhaEMsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlclZpZXdJbml0LFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBIb3N0TGlzdGVuZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE91dHB1dCxcclxuICAgIFF1ZXJ5TGlzdCxcclxuICAgIFZpZXdDaGlsZHJlbixcclxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gICAgZm9yd2FyZFJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ21hdE1lZGlhV2F0Y2hlclNlcnZpY2UgfSBmcm9tICdjbWF0L3NlcnZpY2VzL21lZGlhLXdhdGNoZXInO1xyXG5pbXBvcnQgeyBDbWF0VXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi4vdXBsb2FkLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY21hdC11cGxvYWQtcXVldWUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZC1xdWV1ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBleHBvcnRBczogJ2NtYXRVcGxvYWRRdWV1ZScsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW01hdENhcmRNb2R1bGUsIE1hdExpc3RNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgQ21hdFVwbG9hZENvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIENtYXRVcGxvYWRRdWV1ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgICBAVmlld0NoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gQ21hdFVwbG9hZENvbXBvbmVudCkpIGZpbGVVcGxvYWRzOiBRdWVyeUxpc3Q8Q21hdFVwbG9hZENvbXBvbmVudD47XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZmlsZUFsaWFzOiBzdHJpbmcgPSAnZmlsZURhdGEnO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBmaWxlUGF0aDogc3RyaW5nID0gJyc7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZmlsZUNhdGVnb3J5OiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgYXV0b1VwbG9hZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KCkgbXVsdGlwbGU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgYWNjZXB0OiBzdHJpbmcgPSAnJztcclxuICAgIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAn6ZmE5Lu2JztcclxuICAgIEBJbnB1dCgpIGVkaXRNb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgZmlsZXNEYXRhOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgIEBPdXRwdXQoKSBvdXRwdXRSZW1vdmVJZEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgICBAT3V0cHV0KCkgb3V0cHV0VXBsb2FkSWRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgQE91dHB1dCgpIG91dHB1dEZpbGVzRGF0YUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgcHVibGljIGlkID0gJ2NtYXR1cGxvYWQtJyArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDApO1xyXG5cclxuICAgIGlzSGFuZFNldDogYm9vbGVhbjtcclxuXHJcbiAgICBwcml2YXRlIF91bnN1YnNjcmliZUFsbDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIF9jbWF0TWVkaWFXYXRjaGVyU2VydmljZTogQ21hdE1lZGlhV2F0Y2hlclNlcnZpY2UsIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgICAgICB0aGlzLl9jbWF0TWVkaWFXYXRjaGVyU2VydmljZS5vbk1lZGlhQ2hhbmdlJFxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmVBbGwpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh7IG1hdGNoaW5nQWxpYXNlcyB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzSGFuZFNldCA9ICFtYXRjaGluZ0FsaWFzZXMuaW5jbHVkZXMoJ2xnJyk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxyXG4gICAgb25Ecm9wKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBmaWxlcyA9IGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcztcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmFjY2VwdD8uaW5jbHVkZXMoZmlsZS50eXBlKSlcclxuICAgICAgICAgICAgICAgIHRoaXMuYWRkKGZpbGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSlcclxuICAgIG9uRHJvcE92ZXIoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGZpbGVVcGxvYWQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignIycgKyB0aGlzLmlkKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG5cclxuICAgICAgICBmaWxlVXBsb2FkLm9uY2hhbmdlID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgKGZpbGVVcGxvYWQuZmlsZXM/Lmxlbmd0aCA/PyAwKTsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZmlsZSA9IGZpbGVVcGxvYWQuZmlsZXMhW2luZGV4XTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWRkKGZpbGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbC5uZXh0KHZvaWQgMCk7XHJcbiAgICAgICAgdGhpcy5fdW5zdWJzY3JpYmVBbGwuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBhZGQoZmlsZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCh0aGlzLmFjY2VwdCA9PT0gJycgfHwgdGhpcy5hY2NlcHQgPT09IHVuZGVmaW5lZCkgfHwgKHRoaXMuYWNjZXB0ICE9PSAnJyAmJiB0aGlzLmFjY2VwdC5pbmNsdWRlcyhmaWxlLnR5cGUpKSkge1xyXG4gICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5maWxlc0RhdGEpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVzRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoISghdGhpcy5tdWx0aXBsZSAmJiB0aGlzLmZpbGVzRGF0YS5sZW5ndGggPiAwKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWxlc0RhdGEucHVzaChmaWxlKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmZpbGVVcGxvYWRzLmZpcnN0LmlkID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVzRGF0YS5wdXNoKGZpbGUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWxlVXBsb2Fkcy5maXJzdC5yZW1vdmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBsb2FkKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm91dHB1dFVwbG9hZElkRXZlbnQuZW1pdChldmVudC5pZCk7XHJcblxyXG4gICAgICAgIHRoaXMub3V0cHV0RmlsZXNEYXRhRXZlbnQuZW1pdCh0aGlzLmZpbGVzRGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlKGV2ZW50OiBDbWF0VXBsb2FkQ29tcG9uZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZpbGVzRGF0YS5pbmRleE9mKGV2ZW50LmZpbGUpO1xyXG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZXNEYXRhLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICAgIGlmIChldmVudC5maWxlLmlkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm91dHB1dFJlbW92ZUlkRXZlbnQuZW1pdChldmVudC5maWxlLmlkKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5vdXRwdXRGaWxlc0RhdGFFdmVudC5lbWl0KHRoaXMuZmlsZXNEYXRhKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG5cclxuICAgIHVwbG9hZEFsbCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZpbGVVcGxvYWRzLmZvckVhY2goKGZpbGVVcGxvYWQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGZpbGVVcGxvYWQuaWQgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIGZpbGVVcGxvYWQudXBsb2FkKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlQWxsKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlsZVVwbG9hZHMuZm9yRWFjaCgoZmlsZVVwbG9hZCkgPT4geyBmaWxlVXBsb2FkLnJlbW92ZSgpIH0pO1xyXG5cclxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuXHJcbiAgICBjaG9vc2UoKTogdm9pZCB7XHJcbiAgICAgICAgKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcjJyArIHRoaXMuaWQpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNsaWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGF0YSgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMuZmlsZXNEYXRhKSA/IHRoaXMuZmlsZXNEYXRhIDogW107XHJcbiAgICB9XHJcbn1cclxuIiwiPG1hdC1jYXJkPlxyXG4gICAgPG1hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgICA8bWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAgICAgIDxsZWdlbmQgY2xhc3M9XCJ0ZXh0LWxnXCI+XHJcbiAgICAgICAgICAgICAgICB7e3RpdGxlfX1cclxuICAgICAgICAgICAgICAgIEBpZihyZXF1aXJlZCl7XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj4qPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2xlZ2VuZD5cclxuICAgICAgICA8L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgPC9tYXQtY2FyZC1oZWFkZXI+XHJcbiAgICA8aW5wdXQgdHlwZT1cImZpbGVcIiBjbGFzcz1cImhpZGRlblwiIFtpZF09XCJpZFwiIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiIFthY2NlcHRdPVwiYWNjZXB0XCIgLz5cclxuXHJcbiAgICBAaWYoZWRpdE1vZGUpe1xyXG4gICAgPG1hdC1jYXJkLWFjdGlvbnMgY2xhc3M9XCJzcGFjZS14LTEgcHJpbnQ6aGlkZGVuXCI+XHJcbiAgICAgICAgQGlmKCFpc0hhbmRTZXQpe1xyXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImNob29zZSgpXCI+XHJcbiAgICAgICAgICAgIEBpZihhdXRvVXBsb2FkKXtcclxuICAgICAgICAgICAgPG1hdC1pY29uIFtzdmdJY29uXT1cIidtYXRfb3V0bGluZTpmaWxlX3VwbG9hZCdcIj48L21hdC1pY29uPlxyXG4gICAgICAgICAgICB9QGVsc2Uge1xyXG4gICAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiJ21hdF9vdXRsaW5lOmFkZF9ib3gnXCI+PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTJcIj7pgInmi6k8L3NwYW4+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgQGlmKGdldERhdGEoKS5sZW5ndGggPiAwJiZtdWx0aXBsZSl7XHJcbiAgICAgICAgQGlmKCFhdXRvVXBsb2FkKXtcclxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cInVwbG9hZEFsbCgpXCI+PG1hdC1pY29uXHJcbiAgICAgICAgICAgICAgICBbc3ZnSWNvbl09XCInbWF0X291dGxpbmU6ZmlsZV91cGxvYWQnXCI+PC9tYXQtaWNvbj48c3BhbiBjbGFzcz1cIm1sLTJcIj7kuIrkvKDlhajpg6g8L3NwYW4+PC9idXR0b24+XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwid2FyblwiIChjbGljayk9XCJyZW1vdmVBbGwoKVwiPjxtYXQtaWNvblxyXG4gICAgICAgICAgICAgICAgW3N2Z0ljb25dPVwiJ2hlcm9pY29uc19zb2xpZDp0cmFzaCdcIj48L21hdC1pY29uPjxzcGFuIGNsYXNzPVwibWwtMlwiPuWIoOmZpOWFqOmDqDwvc3Bhbj48L2J1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICAgICAgfUBlbHNlIHtcclxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY2hvb3NlKClcIj5cclxuICAgICAgICAgICAgQGlmKGF1dG9VcGxvYWQpe1xyXG4gICAgICAgICAgICA8bWF0LWljb24gW3N2Z0ljb25dPVwiJ21hdF9vdXRsaW5lOmZpbGVfdXBsb2FkJ1wiPjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBbc3ZnSWNvbl09XCInbWF0X291dGxpbmU6YWRkX2JveCdcIj48L21hdC1pY29uPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIEBpZihnZXREYXRhKCkubGVuZ3RoID4gMCYmbXVsdGlwbGUpe1xyXG4gICAgICAgIEBpZighYXV0b1VwbG9hZCl7XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwidXBsb2FkQWxsKClcIj48bWF0LWljb25cclxuICAgICAgICAgICAgICAgIFtzdmdJY29uXT1cIidtYXRfb3V0bGluZTpmaWxlX3VwbG9hZCdcIj48L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJ3YXJuXCIgKGNsaWNrKT1cInJlbW92ZUFsbCgpXCI+PG1hdC1pY29uXHJcbiAgICAgICAgICAgICAgICBbc3ZnSWNvbl09XCInaGVyb2ljb25zX3NvbGlkOnRyYXNoJ1wiPjwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cclxuICAgIH1cclxuXHJcbiAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICA8bWF0LWxpc3QgY2xhc3M9XCJib3JkZXItdFwiPlxyXG4gICAgICAgICAgICBAZm9yIChmaWxlIG9mIGdldERhdGEoKTsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICAgIDxtYXQtbGlzdC1pdGVtIGNsYXNzPVwiY21hdC11cGxvYWQtZmlsZS1pdGVtIGgtZnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgPGNtYXQtdXBsb2FkIGNsYXNzPVwibXktMlwiIFtmaWxlQWxpYXNdPVwiZmlsZUFsaWFzXCIgW2ZpbGVQYXRoXT1cImZpbGVQYXRoXCIgW2ZpbGVDYXRlZ29yeV09XCJmaWxlQ2F0ZWdvcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFthdXRvVXBsb2FkXT1cImF1dG9VcGxvYWRcIiBbZWRpdE1vZGVdPVwiZWRpdE1vZGVcIiBbZmlsZV09XCJmaWxlXCIgW2lkXT1cImZpbGUuaWR8fG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgIChyZW1vdmVFdmVudCk9XCJyZW1vdmUoJGV2ZW50KVwiICh1cGxvYWRFdmVudCk9XCJ1cGxvYWQoJGV2ZW50KVwiPjwvY21hdC11cGxvYWQ+XHJcbiAgICAgICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvbWF0LWxpc3Q+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbjwvbWF0LWNhcmQ+Il19
@@ -1,118 +0,0 @@
1
- import { NgClass } from '@angular/common';
2
- import { HttpEventType } from '@angular/common/http';
3
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
4
- import { MatButtonModule } from '@angular/material/button';
5
- import { MatIconModule } from '@angular/material/icon';
6
- import { MatProgressBarModule } from '@angular/material/progress-bar';
7
- import { MatTooltipModule } from '@angular/material/tooltip';
8
- import { saveAs } from 'file-saver-es';
9
- import { Subject, takeUntil } from 'rxjs';
10
- import { CmatBytesPipe } from 'cmat/pipes/bytes';
11
- import { CmatUtilsService } from 'cmat/services/utils';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "./files.util.service";
14
- import * as i2 from "@angular/material/button";
15
- import * as i3 from "@angular/material/icon";
16
- import * as i4 from "@angular/material/progress-bar";
17
- import * as i5 from "@angular/material/tooltip";
18
- export class CmatUploadComponent {
19
- constructor(_fileService, _changeDetectorRef) {
20
- this._fileService = _fileService;
21
- this._changeDetectorRef = _changeDetectorRef;
22
- this.fileAlias = 'fileData';
23
- this.filePath = '';
24
- this.fileCategory = '';
25
- this.editMode = false;
26
- this.autoUpload = true;
27
- this.removeEvent = new EventEmitter();
28
- this.uploadEvent = new EventEmitter();
29
- this.progressPercentage = 0;
30
- this.loaded = 0;
31
- this.total = 0;
32
- this.isUploading = false;
33
- this._unsubscribeAll = new Subject();
34
- }
35
- get file() {
36
- return this._file;
37
- }
38
- set file(file) {
39
- this._file = file;
40
- this.total = this._file.size;
41
- }
42
- // eslint-disable-next-line @typescript-eslint/member-ordering
43
- get fileType() {
44
- return CmatUtilsService.getFileType(this.file.type);
45
- }
46
- ngOnInit() {
47
- if (this.autoUpload && this.id === null) {
48
- this.upload();
49
- }
50
- }
51
- ngOnDestroy() {
52
- this._unsubscribeAll.next(void 0);
53
- this._unsubscribeAll.complete();
54
- }
55
- upload() {
56
- this.isUploading = true;
57
- const fileModel = {
58
- id: null,
59
- fileName: this.file.name,
60
- length: this.file.size,
61
- fileCategory: this.fileCategory,
62
- filePath: this.filePath,
63
- fileType: 'file',
64
- data: this.file
65
- };
66
- fileModel.fileType = this.fileType;
67
- const formData = new FormData();
68
- formData.set('fileData', this._file, this._file.name);
69
- formData.append('fileInfo', JSON.stringify(fileModel));
70
- this._fileService.uploadFile(formData).pipe(takeUntil(this._unsubscribeAll)).subscribe((event) => {
71
- if (event.type === HttpEventType.UploadProgress) {
72
- this.progressPercentage = Math.floor(event.loaded * 100 / event.total);
73
- this.loaded = event.loaded;
74
- this.total = event.total;
75
- }
76
- if (event.type === HttpEventType.Response) {
77
- this.id = event.body.id;
78
- this.file.id = event.body.id;
79
- this.isUploading = false;
80
- }
81
- this.uploadEvent.emit(this.file);
82
- this._changeDetectorRef.markForCheck();
83
- });
84
- }
85
- download() {
86
- this._fileService.downloadFile(this.id).pipe(takeUntil(this._unsubscribeAll)).subscribe((file) => {
87
- saveAs(new Blob([file.body]), this.file.fileName);
88
- });
89
- }
90
- remove() {
91
- this.removeEvent.emit(this);
92
- }
93
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: CmatUploadComponent, deps: [{ token: i1.CmatFilesUtilService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
94
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.10", type: CmatUploadComponent, isStandalone: true, selector: "cmat-upload", inputs: { fileAlias: "fileAlias", filePath: "filePath", fileCategory: "fileCategory", editMode: "editMode", autoUpload: "autoUpload", id: "id", file: "file" }, outputs: { removeEvent: "removeEvent", uploadEvent: "uploadEvent" }, exportAs: ["cmatUpload"], ngImport: i0, template: "<div class=\"flex flex-col\">\r\n <div class=\"flex flex-row items-center\">\r\n <span class=\"flex items-center px-1\">\r\n <mat-icon class=\"icon-size-6 text-hint\"\r\n [svgIcon]=\"fileType\"></mat-icon>\r\n </span>\r\n <span class=\"text-sm flex flex-auto whitespace-nowrap overflow-x-hidden text-ellipsis\"\r\n matTooltip=\"{{file.name}}\">{{file.name}}({{file.size | cmatBytes}})</span>\r\n <span class=\"space-x-1 print:hidden\">\r\n @if(id===null){\r\n <button mat-icon-button color=\"primary\" class=\"w-8 min-h-8 h-8 max-w-8\" [ngClass]=\"{'disabled' : isUploading}\"\r\n (click)=\"upload()\">\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon>\r\n </button>\r\n }\r\n\r\n @if(id!==null){\r\n <button mat-icon-button color=\"primary\" class=\"w-8 min-h-8 h-8 max-w-8\" (click)=\"download()\">\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'mat_outline:file_download'\"></mat-icon>\r\n </button>\r\n }\r\n\r\n @if(editMode){\r\n <button mat-icon-button color=\"warn\" class=\"w-8 min-h-8 h-8 max-w-8\" (click)=\"remove()\">\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:trash'\"></mat-icon>\r\n </button>\r\n }\r\n </span>\r\n </div>\r\n @if(id===null){\r\n <mat-progress-bar [value]=\"progressPercentage\"></mat-progress-bar>\r\n <div class=\"text-sm block whitespace-nowrap overflow-x-hidden text-ellipsis\">\r\n <span>{{progressPercentage}}%</span><span> {{loaded | cmatBytes}} of {{total | cmatBytes}}</span>\r\n </div>\r\n }\r\n</div>", dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i4.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: CmatBytesPipe, name: "cmatBytes" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
95
- }
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: CmatUploadComponent, decorators: [{
97
- type: Component,
98
- args: [{ selector: 'cmat-upload', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, exportAs: 'cmatUpload', standalone: true, imports: [MatButtonModule, MatIconModule, MatProgressBarModule, MatTooltipModule, CmatBytesPipe, NgClass], template: "<div class=\"flex flex-col\">\r\n <div class=\"flex flex-row items-center\">\r\n <span class=\"flex items-center px-1\">\r\n <mat-icon class=\"icon-size-6 text-hint\"\r\n [svgIcon]=\"fileType\"></mat-icon>\r\n </span>\r\n <span class=\"text-sm flex flex-auto whitespace-nowrap overflow-x-hidden text-ellipsis\"\r\n matTooltip=\"{{file.name}}\">{{file.name}}({{file.size | cmatBytes}})</span>\r\n <span class=\"space-x-1 print:hidden\">\r\n @if(id===null){\r\n <button mat-icon-button color=\"primary\" class=\"w-8 min-h-8 h-8 max-w-8\" [ngClass]=\"{'disabled' : isUploading}\"\r\n (click)=\"upload()\">\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'mat_outline:file_upload'\"></mat-icon>\r\n </button>\r\n }\r\n\r\n @if(id!==null){\r\n <button mat-icon-button color=\"primary\" class=\"w-8 min-h-8 h-8 max-w-8\" (click)=\"download()\">\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'mat_outline:file_download'\"></mat-icon>\r\n </button>\r\n }\r\n\r\n @if(editMode){\r\n <button mat-icon-button color=\"warn\" class=\"w-8 min-h-8 h-8 max-w-8\" (click)=\"remove()\">\r\n <mat-icon class=\"icon-size-5\" [svgIcon]=\"'heroicons_solid:trash'\"></mat-icon>\r\n </button>\r\n }\r\n </span>\r\n </div>\r\n @if(id===null){\r\n <mat-progress-bar [value]=\"progressPercentage\"></mat-progress-bar>\r\n <div class=\"text-sm block whitespace-nowrap overflow-x-hidden text-ellipsis\">\r\n <span>{{progressPercentage}}%</span><span> {{loaded | cmatBytes}} of {{total | cmatBytes}}</span>\r\n </div>\r\n }\r\n</div>" }]
99
- }], ctorParameters: () => [{ type: i1.CmatFilesUtilService }, { type: i0.ChangeDetectorRef }], propDecorators: { fileAlias: [{
100
- type: Input
101
- }], filePath: [{
102
- type: Input
103
- }], fileCategory: [{
104
- type: Input
105
- }], editMode: [{
106
- type: Input
107
- }], autoUpload: [{
108
- type: Input
109
- }], id: [{
110
- type: Input
111
- }], removeEvent: [{
112
- type: Output
113
- }], uploadEvent: [{
114
- type: Output
115
- }], file: [{
116
- type: Input
117
- }] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy91cGxvYWQvdXBsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NtYXQvY29tcG9uZW50cy91cGxvYWQvdXBsb2FkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04saUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7QUFhdkQsTUFBTSxPQUFPLG1CQUFtQjtJQThCNUIsWUFBb0IsWUFBa0MsRUFBVSxrQkFBcUM7UUFBakYsaUJBQVksR0FBWixZQUFZLENBQXNCO1FBQVUsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQTVCckcsY0FB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UixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFlBQ3JDLFlBQVksY0FDVixJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxPQUFPLENBQUM7eUhBSXpHLFNBQVM7c0JBRFIsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdOLEVBQUU7c0JBREQsS0FBSztnQkFHSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBZ0JILElBQUk7c0JBRFAsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwRXZlbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIENvbXBvbmVudCxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIElucHV0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlci1lcyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDbWF0Qnl0ZXNQaXBlIH0gZnJvbSAnY21hdC9waXBlcy9ieXRlcyc7XHJcbmltcG9ydCB7IENtYXRVdGlsc1NlcnZpY2UgfSBmcm9tICdjbWF0L3NlcnZpY2VzL3V0aWxzJztcclxuaW1wb3J0IHsgRmlsZU1vZGVsIH0gZnJvbSAnLi9maWxlcy50eXBlJztcclxuaW1wb3J0IHsgQ21hdEZpbGVzVXRpbFNlcnZpY2UgfSBmcm9tICcuL2ZpbGVzLnV0aWwuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY21hdC11cGxvYWQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBleHBvcnRBczogJ2NtYXRVcGxvYWQnLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdFByb2dyZXNzQmFyTW9kdWxlLCBNYXRUb29sdGlwTW9kdWxlLCBDbWF0Qnl0ZXNQaXBlLCBOZ0NsYXNzXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ21hdFVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBmaWxlQWxpYXM6IHN0cmluZyA9ICdmaWxlRGF0YSc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGZpbGVQYXRoOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZmlsZUNhdGVnb3J5OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZWRpdE1vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKSBhdXRvVXBsb2FkID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgaWQ6IHN0cmluZztcclxuXHJcbiAgICBAT3V0cHV0KCkgcmVtb3ZlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPENtYXRVcGxvYWRDb21wb25lbnQ+KCk7XHJcbiAgICBAT3V0cHV0KCkgdXBsb2FkRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICBwcm9ncmVzc1BlcmNlbnRhZ2U6IG51bWJlciA9IDA7XHJcbiAgICBsb2FkZWQ6IG51bWJlciA9IDA7XHJcbiAgICB0b3RhbDogbnVtYmVyID0gMDtcclxuICAgIGlzVXBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBfZmlsZTogYW55O1xyXG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVBbGw6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuXHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZmlsZVNlcnZpY2U6IENtYXRGaWxlc1V0aWxTZXJ2aWNlLCBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGdldCBmaWxlKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbGU7XHJcbiAgICB9XHJcbiAgICBzZXQgZmlsZShmaWxlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLl9maWxlID0gZmlsZTtcclxuICAgICAgICB0aGlzLnRvdGFsID0gdGhpcy5fZmlsZS5zaXplO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nXHJcbiAgICBnZXQgZmlsZVR5cGUoKTogJ2NzdicgfCAnZ2lmJyB8ICd3b3JkJyB8ICdleGNlbCcgfCAnanBnJyB8ICdvdXRsb29rJyB8ICdwZGYnIHwgJ3BuZycgfCAncHB0JyB8ICdmaWxlJyB8ICd0ZXh0JyB8ICd2aWRlbycgfCAnemlwJyB7XHJcbiAgICAgICAgcmV0dXJuIENtYXRVdGlsc1NlcnZpY2UuZ2V0RmlsZVR5cGUodGhpcy5maWxlLnR5cGUpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmF1dG9VcGxvYWQgJiYgdGhpcy5pZCA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLnVwbG9hZCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsLm5leHQodm9pZCAwKTtcclxuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUFsbC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICB1cGxvYWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc1VwbG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgY29uc3QgZmlsZU1vZGVsID0ge1xyXG4gICAgICAgICAgICBpZDogbnVsbCxcclxuICAgICAgICAgICAgZmlsZU5hbWU6IHRoaXMuZmlsZS5uYW1lLFxyXG4gICAgICAgICAgICBsZW5ndGg6IHRoaXMuZmlsZS5zaXplLFxyXG4gICAgICAgICAgICBmaWxlQ2F0ZWdvcnk6IHRoaXMuZmlsZUNhdGVnb3J5LFxyXG4gICAgICAgICAgICBmaWxlUGF0aDogdGhpcy5maWxlUGF0aCxcclxuICAgICAgICAgICAgZmlsZVR5cGU6ICdmaWxlJyxcclxuICAgICAgICAgICAgZGF0YTogdGhpcy5maWxlXHJcbiAgICAgICAgfSBhcyBGaWxlTW9kZWw7XHJcblxyXG4gICAgICAgIGZpbGVNb2RlbC5maWxlVHlwZSA9IHRoaXMuZmlsZVR5cGU7XHJcblxyXG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcblxyXG4gICAgICAgIGZvcm1EYXRhLnNldCgnZmlsZURhdGEnLCB0aGlzLl9maWxlLCB0aGlzLl9maWxlLm5hbWUpO1xyXG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZUluZm8nLCBKU09OLnN0cmluZ2lmeShmaWxlTW9kZWwpKTtcclxuXHJcbiAgICAgICAgdGhpcy5fZmlsZVNlcnZpY2UudXBsb2FkRmlsZShmb3JtRGF0YSkucGlwZShcclxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlQWxsKVxyXG4gICAgICAgICkuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2dyZXNzUGVyY2VudGFnZSA9IE1hdGguZmxvb3IoZXZlbnQubG9hZGVkICogMTAwIC8gZXZlbnQudG90YWwpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkZWQgPSBldmVudC5sb2FkZWQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvdGFsID0gZXZlbnQudG90YWw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaWQgPSBldmVudC5ib2R5LmlkO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWxlLmlkID0gZXZlbnQuYm9keS5pZDtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzVXBsb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMudXBsb2FkRXZlbnQuZW1pdCh0aGlzLmZpbGUpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZG93bmxvYWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZmlsZVNlcnZpY2UuZG93bmxvYWRGaWxlKHRoaXMuaWQpLnBpcGUoXHJcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZUFsbClcclxuICAgICAgICApLnN1YnNjcmliZSgoZmlsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHNhdmVBcyhuZXcgQmxvYihbZmlsZS5ib2R5XSksIHRoaXMuZmlsZS5maWxlTmFtZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlRXZlbnQuZW1pdCh0aGlzKTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBweC0xXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24tc2l6ZS02IHRleHQtaGludFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdmdJY29uXT1cImZpbGVUeXBlXCI+PC9tYXQtaWNvbj5cclxuICAgIDwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSBmbGV4IGZsZXgtYXV0byB3aGl0ZXNwYWNlLW5vd3JhcCBvdmVyZmxvdy14LWhpZGRlbiB0ZXh0LWVsbGlwc2lzXCJcclxuICAgICAgbWF0VG9vbHRpcD1cInt7ZmlsZS5uYW1lfX1cIj57e2ZpbGUubmFtZX19KHt7ZmlsZS5zaXplIHwgY21hdEJ5dGVzfX0pPC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJzcGFjZS14LTEgcHJpbnQ6aGlkZGVuXCI+XHJcbiAgICAgIEBpZihpZD09PW51bGwpe1xyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cInctOCBtaW4taC04IGgtOCBtYXgtdy04XCIgW25nQ2xhc3NdPVwieydkaXNhYmxlZCcgOiBpc1VwbG9hZGluZ31cIlxyXG4gICAgICAgIChjbGljayk9XCJ1cGxvYWQoKVwiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24tc2l6ZS01XCIgW3N2Z0ljb25dPVwiJ21hdF9vdXRsaW5lOmZpbGVfdXBsb2FkJ1wiPjwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICB9XHJcblxyXG4gICAgICBAaWYoaWQhPT1udWxsKXtcclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJ3LTggbWluLWgtOCBoLTggbWF4LXctOFwiIChjbGljayk9XCJkb3dubG9hZCgpXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbi1zaXplLTVcIiBbc3ZnSWNvbl09XCInbWF0X291dGxpbmU6ZmlsZV9kb3dubG9hZCdcIj48L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgfVxyXG5cclxuICAgICAgQGlmKGVkaXRNb2RlKXtcclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJ3YXJuXCIgY2xhc3M9XCJ3LTggbWluLWgtOCBoLTggbWF4LXctOFwiIChjbGljayk9XCJyZW1vdmUoKVwiPlxyXG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24tc2l6ZS01XCIgW3N2Z0ljb25dPVwiJ2hlcm9pY29uc19zb2xpZDp0cmFzaCdcIj48L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIEBpZihpZD09PW51bGwpe1xyXG4gIDxtYXQtcHJvZ3Jlc3MtYmFyIFt2YWx1ZV09XCJwcm9ncmVzc1BlcmNlbnRhZ2VcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcbiAgPGRpdiBjbGFzcz1cInRleHQtc20gYmxvY2sgd2hpdGVzcGFjZS1ub3dyYXAgb3ZlcmZsb3cteC1oaWRkZW4gdGV4dC1lbGxpcHNpc1wiPlxyXG4gICAgPHNwYW4+e3twcm9ncmVzc1BlcmNlbnRhZ2V9fSU8L3NwYW4+PHNwYW4+IHt7bG9hZGVkIHwgY21hdEJ5dGVzfX0gb2Yge3t0b3RhbCB8IGNtYXRCeXRlc319PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+Il19