@acorex/components 7.17.14 → 7.17.15

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 (258) hide show
  1. package/esm2022/action-sheet/lib/action-sheet.component.mjs +3 -3
  2. package/esm2022/action-sheet/lib/action-sheet.module.mjs +4 -4
  3. package/esm2022/action-sheet/lib/action-sheet.service.mjs +3 -3
  4. package/esm2022/alert/lib/alert.component.mjs +3 -3
  5. package/esm2022/alert/lib/alert.module.mjs +4 -4
  6. package/esm2022/avatar/lib/avatar-group.component.mjs +3 -3
  7. package/esm2022/avatar/lib/avatar.component.mjs +3 -3
  8. package/esm2022/avatar/lib/avatar.module.mjs +4 -4
  9. package/esm2022/badge/lib/badge.component.mjs +3 -3
  10. package/esm2022/badge/lib/badge.module.mjs +4 -4
  11. package/esm2022/breadcrumbs/lib/breadcrumbs-item.component.mjs +3 -3
  12. package/esm2022/breadcrumbs/lib/breadcrumbs.component.mjs +3 -3
  13. package/esm2022/breadcrumbs/lib/breadcrumbs.module.mjs +4 -4
  14. package/esm2022/button/lib/button-item-list.component.mjs +3 -3
  15. package/esm2022/button/lib/button-item.component.mjs +3 -3
  16. package/esm2022/button/lib/button.component.mjs +3 -3
  17. package/esm2022/button/lib/button.module.mjs +4 -4
  18. package/esm2022/button-group/lib/button-group.component.mjs +3 -3
  19. package/esm2022/button-group/lib/button-group.module.mjs +4 -4
  20. package/esm2022/calendar/lib/calendar-range.component.mjs +3 -3
  21. package/esm2022/calendar/lib/calendar.class.mjs +3 -3
  22. package/esm2022/calendar/lib/calendar.component.mjs +5 -5
  23. package/esm2022/calendar/lib/calendar.module.mjs +4 -4
  24. package/esm2022/check-box/lib/check-box.component.mjs +3 -3
  25. package/esm2022/check-box/lib/check-box.module.mjs +4 -4
  26. package/esm2022/chips/lib/chips.component.mjs +3 -3
  27. package/esm2022/chips/lib/chips.module.mjs +4 -4
  28. package/esm2022/circular-progress/lib/circular-progress.component.mjs +4 -4
  29. package/esm2022/circular-progress/lib/circular-progress.module.mjs +4 -4
  30. package/esm2022/collapse/lib/collapse-group.component.mjs +3 -3
  31. package/esm2022/collapse/lib/collapse.component.mjs +3 -3
  32. package/esm2022/collapse/lib/collapse.module.mjs +4 -4
  33. package/esm2022/color-box/lib/color-box.component.mjs +3 -3
  34. package/esm2022/color-box/lib/color-box.module.mjs +4 -4
  35. package/esm2022/color-palette/lib/color-palette-input.component.mjs +3 -3
  36. package/esm2022/color-palette/lib/color-palette-picker.component.mjs +3 -3
  37. package/esm2022/color-palette/lib/color-palette-preview.component.mjs +3 -3
  38. package/esm2022/color-palette/lib/color-palette-swatches.component.mjs +3 -3
  39. package/esm2022/color-palette/lib/color-palette.class.mjs +6 -6
  40. package/esm2022/color-palette/lib/color-palette.component.mjs +3 -3
  41. package/esm2022/color-palette/lib/color-palette.module.mjs +4 -4
  42. package/esm2022/common/lib/classes/components.class.mjs +21 -21
  43. package/esm2022/common/lib/common.module.mjs +4 -4
  44. package/esm2022/common/lib/components/base-component.class.mjs +3 -3
  45. package/esm2022/common/lib/components/input-base-value-component.class.mjs +3 -3
  46. package/esm2022/common/lib/components/look-component.class.mjs +3 -3
  47. package/esm2022/common/lib/components/selection-base.component.class.mjs +6 -6
  48. package/esm2022/common/lib/components/value-component.class.mjs +3 -3
  49. package/esm2022/common/lib/directives/auto-focus.directive.mjs +3 -3
  50. package/esm2022/common/lib/directives/delayed-value-changed.directive.mjs +3 -3
  51. package/esm2022/common/lib/directives/hotkey.directive.mjs +3 -3
  52. package/esm2022/common/lib/directives/infinite-scroll.directive.mjs +3 -3
  53. package/esm2022/common/lib/directives/responsive.directive.mjs +3 -3
  54. package/esm2022/common/lib/directives/ripple.directive.mjs +3 -3
  55. package/esm2022/common/lib/services/dom.service.mjs +3 -3
  56. package/esm2022/common/lib/services/hotkey.service.mjs +3 -3
  57. package/esm2022/data-pager/lib/data-pager-base.component.mjs +6 -6
  58. package/esm2022/data-pager/lib/data-pager-info.component.mjs +3 -3
  59. package/esm2022/data-pager/lib/data-pager-input-selector.component.mjs +3 -3
  60. package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +3 -3
  61. package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +3 -3
  62. package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +3 -3
  63. package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +3 -3
  64. package/esm2022/data-pager/lib/data-pager.component.mjs +3 -3
  65. package/esm2022/data-pager/lib/data-pager.module.mjs +4 -4
  66. package/esm2022/data-table/lib/columns/data-table-column.mjs +3 -3
  67. package/esm2022/data-table/lib/columns/data-text-column.component.mjs +3 -3
  68. package/esm2022/data-table/lib/columns/row-command-column.component.mjs +6 -6
  69. package/esm2022/data-table/lib/columns/row-index-column.component.mjs +3 -3
  70. package/esm2022/data-table/lib/columns/row-select-column.component.mjs +3 -3
  71. package/esm2022/data-table/lib/data-table.component.mjs +3 -3
  72. package/esm2022/data-table/lib/data-table.module.mjs +4 -4
  73. package/esm2022/datetime-box/lib/datetime-box.component.mjs +3 -3
  74. package/esm2022/datetime-box/lib/datetime-box.module.mjs +4 -4
  75. package/esm2022/datetime-input/lib/datetime-input.component.mjs +3 -3
  76. package/esm2022/datetime-input/lib/datetime-input.module.mjs +4 -4
  77. package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +6 -6
  78. package/esm2022/datetime-picker/lib/datetime-picker.module.mjs +4 -4
  79. package/esm2022/decorators/lib/components/clear-button.component.mjs +3 -3
  80. package/esm2022/decorators/lib/components/close-button.component.mjs +3 -3
  81. package/esm2022/decorators/lib/components/generic-content.component.mjs +3 -3
  82. package/esm2022/decorators/lib/components/icon.component.mjs +3 -3
  83. package/esm2022/decorators/lib/decorators.module.mjs +4 -4
  84. package/esm2022/dialog/lib/dialog.component.mjs +3 -3
  85. package/esm2022/dialog/lib/dialog.module.mjs +4 -4
  86. package/esm2022/dialog/lib/dialog.service.mjs +3 -3
  87. package/esm2022/drawer/lib/drawer-container.component.mjs +3 -3
  88. package/esm2022/drawer/lib/drawer.component.mjs +3 -3
  89. package/esm2022/drawer/lib/drawer.module.mjs +4 -4
  90. package/esm2022/dropdown/lib/dropdown-box.class.mjs +3 -3
  91. package/esm2022/dropdown/lib/dropdown-box.component.mjs +3 -3
  92. package/esm2022/dropdown/lib/dropdown-panel.component.mjs +3 -3
  93. package/esm2022/dropdown/lib/dropdown.module.mjs +4 -4
  94. package/esm2022/form/lib/form-field.component.mjs +3 -3
  95. package/esm2022/form/lib/form.component.mjs +3 -3
  96. package/esm2022/form/lib/form.module.mjs +4 -4
  97. package/esm2022/form/lib/validation-rule.widget.mjs +3 -3
  98. package/esm2022/form/lib/validation-summary.component.mjs +3 -3
  99. package/esm2022/image/lib/image.component.mjs +3 -3
  100. package/esm2022/image/lib/image.module.mjs +4 -4
  101. package/esm2022/label/lib/label.component.mjs +3 -3
  102. package/esm2022/label/lib/label.module.mjs +4 -4
  103. package/esm2022/list/lib/list.component.mjs +3 -3
  104. package/esm2022/list/lib/list.module.mjs +4 -4
  105. package/esm2022/loading/lib/loading-spinner.component.mjs +3 -3
  106. package/esm2022/loading/lib/loading.component.mjs +3 -3
  107. package/esm2022/loading/lib/loading.directive.mjs +3 -3
  108. package/esm2022/loading/lib/loading.module.mjs +4 -4
  109. package/esm2022/loading/lib/loading.service.mjs +3 -3
  110. package/esm2022/menu/lib/menu-item/menu-item.component.mjs +3 -3
  111. package/esm2022/menu/lib/menu.component.mjs +3 -3
  112. package/esm2022/menu/lib/menu.module.mjs +4 -4
  113. package/esm2022/navbar/lib/navbar.component.mjs +3 -3
  114. package/esm2022/navbar/lib/navbar.module.mjs +4 -4
  115. package/esm2022/notification/lib/notification.component.mjs +3 -3
  116. package/esm2022/notification/lib/notification.module.mjs +4 -4
  117. package/esm2022/notification/lib/notification.service.mjs +3 -3
  118. package/esm2022/number-box/lib/number-box.component.mjs +3 -3
  119. package/esm2022/number-box/lib/number-box.module.mjs +4 -4
  120. package/esm2022/otp/lib/otp.component.mjs +3 -3
  121. package/esm2022/otp/lib/otp.module.mjs +4 -4
  122. package/esm2022/page/lib/base-page.class.mjs +3 -3
  123. package/esm2022/page/lib/page.component.mjs +3 -3
  124. package/esm2022/page/lib/page.module.mjs +4 -4
  125. package/esm2022/password-box/lib/password-box.component.mjs +3 -3
  126. package/esm2022/password-box/lib/password-box.module.mjs +4 -4
  127. package/esm2022/picker/lib/picker-column.directive.mjs +3 -3
  128. package/esm2022/picker/lib/picker.component.mjs +6 -6
  129. package/esm2022/picker/lib/picker.module.mjs +4 -4
  130. package/esm2022/popover/lib/popover.component.mjs +3 -3
  131. package/esm2022/popover/lib/popover.module.mjs +4 -4
  132. package/esm2022/popup/lib/popup.component.mjs +3 -3
  133. package/esm2022/popup/lib/popup.module.mjs +4 -4
  134. package/esm2022/popup/lib/popup.service.mjs +3 -3
  135. package/esm2022/progress-bar/lib/progress-bar.component.mjs +3 -3
  136. package/esm2022/progress-bar/lib/progress-bar.module.mjs +4 -4
  137. package/esm2022/radio/lib/radio.component.mjs +3 -3
  138. package/esm2022/radio/lib/radio.module.mjs +4 -4
  139. package/esm2022/range-slider/lib/range-slider.component.mjs +3 -3
  140. package/esm2022/range-slider/lib/range-slider.module.mjs +4 -4
  141. package/esm2022/result/lib/result.component.mjs +3 -3
  142. package/esm2022/result/lib/result.module.mjs +4 -4
  143. package/esm2022/routing-progress/lib/routing-progress.component.mjs +3 -3
  144. package/esm2022/routing-progress/lib/routing-progress.module.mjs +4 -4
  145. package/esm2022/scheduler/lib/scheduler-month-view.component.mjs +3 -3
  146. package/esm2022/scheduler/lib/scheduler-week-view.component.mjs +3 -3
  147. package/esm2022/scheduler/lib/scheduler.component.mjs +3 -3
  148. package/esm2022/scheduler/lib/scheduler.module.mjs +4 -4
  149. package/esm2022/search-box/lib/search-box.component.mjs +3 -3
  150. package/esm2022/search-box/lib/search-box.module.mjs +4 -4
  151. package/esm2022/select-box/lib/select-box.component.mjs +3 -3
  152. package/esm2022/select-box/lib/select-box.module.mjs +4 -4
  153. package/esm2022/selection-list/lib/selection-list.component.mjs +3 -3
  154. package/esm2022/selection-list/lib/selection-list.module.mjs +4 -4
  155. package/esm2022/side-menu/lib/side-menu-item/side-menu-item.compoent.mjs +3 -3
  156. package/esm2022/side-menu/lib/side-menu.component.mjs +3 -3
  157. package/esm2022/side-menu/lib/side-menu.module.mjs +4 -4
  158. package/esm2022/skeleton/lib/skeleton.component.mjs +3 -3
  159. package/esm2022/skeleton/lib/skeleton.module.mjs +4 -4
  160. package/esm2022/switch/lib/switch-content.component.mjs +3 -3
  161. package/esm2022/switch/lib/switch.component.mjs +3 -3
  162. package/esm2022/switch/lib/switch.module.mjs +4 -4
  163. package/esm2022/tabs/lib/tab-content.directive.mjs +3 -3
  164. package/esm2022/tabs/lib/tab-item.component.mjs +3 -3
  165. package/esm2022/tabs/lib/tabs.component.mjs +4 -4
  166. package/esm2022/tabs/lib/tabs.module.mjs +4 -4
  167. package/esm2022/tag/lib/tag.component.mjs +3 -3
  168. package/esm2022/tag/lib/tag.module.mjs +4 -4
  169. package/esm2022/text-area/lib/text-area.component.mjs +3 -3
  170. package/esm2022/text-area/lib/text-area.module.mjs +4 -4
  171. package/esm2022/text-box/lib/mask-options.directive.mjs +3 -3
  172. package/esm2022/text-box/lib/text-box.component.mjs +3 -3
  173. package/esm2022/text-box/lib/text-box.module.mjs +4 -4
  174. package/esm2022/toast/lib/toast.component.mjs +3 -3
  175. package/esm2022/toast/lib/toast.module.mjs +4 -4
  176. package/esm2022/toast/lib/toast.service.mjs +3 -3
  177. package/esm2022/tooltip/lib/tooltip.component.mjs +3 -3
  178. package/esm2022/tooltip/lib/tooltip.directive.mjs +3 -3
  179. package/esm2022/tooltip/lib/tooltip.module.mjs +4 -4
  180. package/esm2022/uploader/index.mjs +1 -2
  181. package/esm2022/uploader/lib/uploader-drop-zone.component.mjs +6 -5
  182. package/esm2022/uploader/lib/uploader-list.component.mjs +13 -28
  183. package/esm2022/uploader/lib/uploader-zone.directive.mjs +5 -6
  184. package/esm2022/uploader/lib/uploader.models.mjs +31 -0
  185. package/esm2022/uploader/lib/uploader.module.mjs +24 -14
  186. package/esm2022/uploader/lib/uploader.service.mjs +58 -16
  187. package/fesm2022/acorex-components-action-sheet.mjs +10 -10
  188. package/fesm2022/acorex-components-alert.mjs +7 -7
  189. package/fesm2022/acorex-components-avatar.mjs +10 -10
  190. package/fesm2022/acorex-components-badge.mjs +7 -7
  191. package/fesm2022/acorex-components-breadcrumbs.mjs +10 -10
  192. package/fesm2022/acorex-components-button-group.mjs +7 -7
  193. package/fesm2022/acorex-components-button.mjs +13 -13
  194. package/fesm2022/acorex-components-calendar.mjs +15 -15
  195. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  196. package/fesm2022/acorex-components-check-box.mjs +7 -7
  197. package/fesm2022/acorex-components-chips.mjs +7 -7
  198. package/fesm2022/acorex-components-circular-progress.mjs +8 -8
  199. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  200. package/fesm2022/acorex-components-collapse.mjs +10 -10
  201. package/fesm2022/acorex-components-color-box.mjs +7 -7
  202. package/fesm2022/acorex-components-color-palette.mjs +25 -25
  203. package/fesm2022/acorex-components-common.mjs +67 -67
  204. package/fesm2022/acorex-components-data-pager.mjs +31 -31
  205. package/fesm2022/acorex-components-data-table.mjs +25 -25
  206. package/fesm2022/acorex-components-datetime-box.mjs +7 -7
  207. package/fesm2022/acorex-components-datetime-input.mjs +7 -7
  208. package/fesm2022/acorex-components-datetime-picker.mjs +9 -9
  209. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  210. package/fesm2022/acorex-components-decorators.mjs +16 -16
  211. package/fesm2022/acorex-components-dialog.mjs +10 -10
  212. package/fesm2022/acorex-components-drawer.mjs +10 -10
  213. package/fesm2022/acorex-components-dropdown.mjs +13 -13
  214. package/fesm2022/acorex-components-form.mjs +16 -16
  215. package/fesm2022/acorex-components-image.mjs +7 -7
  216. package/fesm2022/acorex-components-label.mjs +7 -7
  217. package/fesm2022/acorex-components-list.mjs +7 -7
  218. package/fesm2022/acorex-components-loading.mjs +16 -16
  219. package/fesm2022/acorex-components-menu.mjs +10 -10
  220. package/fesm2022/acorex-components-navbar.mjs +7 -7
  221. package/fesm2022/acorex-components-notification.mjs +10 -10
  222. package/fesm2022/acorex-components-number-box.mjs +7 -7
  223. package/fesm2022/acorex-components-otp.mjs +7 -7
  224. package/fesm2022/acorex-components-page.mjs +10 -10
  225. package/fesm2022/acorex-components-password-box.mjs +7 -7
  226. package/fesm2022/acorex-components-picker.mjs +12 -12
  227. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  228. package/fesm2022/acorex-components-popover.mjs +7 -7
  229. package/fesm2022/acorex-components-popup.mjs +10 -10
  230. package/fesm2022/acorex-components-progress-bar.mjs +7 -7
  231. package/fesm2022/acorex-components-radio.mjs +7 -7
  232. package/fesm2022/acorex-components-range-slider.mjs +7 -7
  233. package/fesm2022/acorex-components-result.mjs +7 -7
  234. package/fesm2022/acorex-components-routing-progress.mjs +7 -7
  235. package/fesm2022/acorex-components-scheduler.mjs +13 -13
  236. package/fesm2022/acorex-components-search-box.mjs +7 -7
  237. package/fesm2022/acorex-components-select-box.mjs +7 -7
  238. package/fesm2022/acorex-components-selection-list.mjs +7 -7
  239. package/fesm2022/acorex-components-side-menu.mjs +10 -10
  240. package/fesm2022/acorex-components-skeleton.mjs +7 -7
  241. package/fesm2022/acorex-components-switch.mjs +10 -10
  242. package/fesm2022/acorex-components-tabs.mjs +14 -14
  243. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  244. package/fesm2022/acorex-components-tag.mjs +7 -7
  245. package/fesm2022/acorex-components-text-area.mjs +7 -7
  246. package/fesm2022/acorex-components-text-box.mjs +10 -10
  247. package/fesm2022/acorex-components-toast.mjs +10 -10
  248. package/fesm2022/acorex-components-tooltip.mjs +10 -10
  249. package/fesm2022/acorex-components-uploader.mjs +163 -105
  250. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  251. package/package.json +3 -3
  252. package/uploader/index.d.ts +0 -1
  253. package/uploader/lib/uploader-list.component.d.ts +5 -14
  254. package/uploader/lib/uploader.models.d.ts +11 -0
  255. package/uploader/lib/uploader.module.d.ts +12 -9
  256. package/uploader/lib/uploader.service.d.ts +13 -6
  257. package/esm2022/uploader/lib/uploader-overlay.component.mjs +0 -12
  258. package/uploader/lib/uploader-overlay.component.d.ts +0 -6
@@ -1,39 +1,104 @@
1
1
  import { MXBaseComponent } from '@acorex/components/common';
2
2
  import * as i0 from '@angular/core';
3
- import { Component, ViewEncapsulation, inject, Injectable, Directive, Input, HostBinding, NgModule } from '@angular/core';
4
- import * as i1 from '@acorex/components/decorators';
3
+ import { inject, Component, ViewEncapsulation, signal, Injectable, Directive, Input, HostBinding, NgModule } from '@angular/core';
4
+ import * as i1$1 from '@acorex/components/decorators';
5
5
  import { AXDecoratorModule } from '@acorex/components/decorators';
6
- import { AUTO_STYLE, style, state, animate, transition, trigger } from '@angular/animations';
7
- import * as i1$1 from '@angular/cdk/dialog';
8
- import { Dialog, DIALOG_DATA } from '@angular/cdk/dialog';
6
+ import { AXFileService, AXFileModule } from '@acorex/core/file';
7
+ import * as i3 from '@acorex/core/translation';
8
+ import { AXTranslator, AXTranslationModule } from '@acorex/core/translation';
9
+ import { Dialog } from '@angular/cdk/dialog';
9
10
  import { GlobalPositionStrategy } from '@angular/cdk/overlay';
10
- import { HttpClient, HttpClientModule } from '@angular/common/http';
11
11
  import { BehaviorSubject } from 'rxjs';
12
- import * as i2 from '@angular/common';
12
+ import { AUTO_STYLE, style, state, animate, transition, trigger } from '@angular/animations';
13
+ import * as i1 from '@angular/common';
13
14
  import { CommonModule } from '@angular/common';
14
- import * as i3 from '@acorex/components/progress-bar';
15
- import { AXProgressBarModule } from '@acorex/components/progress-bar';
16
- import * as i4 from '@acorex/core/translation';
17
- import { AXTranslator, AXTranslationModule } from '@acorex/core/translation';
18
- import { AXFileService } from '@acorex/core/file';
15
+ import * as i2 from '@acorex/components/circular-progress';
16
+ import { AXCircularProgressModule } from '@acorex/components/circular-progress';
17
+ import * as i4 from '@acorex/core/format';
18
+ import { AXFormatModule } from '@acorex/core/format';
19
19
  import { AXButtonModule } from '@acorex/components/button';
20
+ import { AXProgressBarModule } from '@acorex/components/progress-bar';
21
+ import { HttpClientModule } from '@angular/common/http';
22
+ import { AXDateTimeModule } from '@acorex/core/dateTime';
20
23
 
21
- class AXUploaderDropZoneComponent extends MXBaseComponent {
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXUploaderDropZoneComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: AXUploaderDropZoneComponent, selector: "ax-uploader-drop-zone", usesInheritance: true, ngImport: i0, template: "<div class=\"ax-uploader-drop-zone-container\">\n <ax-icon class=\"ax-icon ax-icon-upload\"></ax-icon>\n <div class=\"ax-uploader-drop-zone-description\">\n <span>Drag & Drop or <a href=\"#\">Choose file</a> to upload</span>\n <p>SVG, PNG, JPG or GIF (MAX. 800x400px)</p>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: i1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], encapsulation: i0.ViewEncapsulation.None }); }
24
+ class AXUploaderListComponent extends MXBaseComponent {
25
+ constructor() {
26
+ super();
27
+ this.leftTime = 5;
28
+ this.isCollapsed = false;
29
+ this.uploadService = inject(AXUploaderService);
30
+ }
31
+ upload(file) {
32
+ //this.uploadService.upload(file)
33
+ }
34
+ toggle() {
35
+ this.isCollapsed = !this.isCollapsed;
36
+ }
37
+ close() {
38
+ this.uploadService.closeDialog();
39
+ }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AXUploaderListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
41
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.5", type: AXUploaderListComponent, selector: "ax-uploader-list", usesInheritance: true, ngImport: i0, template: "<div class=\"ax-uploader-list-header\">\n <div>Uploading</div>\n <div>\n <i\n class=\"ax-icon\"\n [ngClass]=\"{ 'ax-icon-chevron-down': !isCollapsed, 'ax-icon-chevron-up': isCollapsed }\"\n (click)=\"toggle()\"\n ></i>\n <i class=\"ax-icon ax-icon-close\" (click)=\"close()\"></i>\n </div>\n</div>\n<div [@collapse]=\"isCollapsed\">\n <div class=\"ax-uploader-progress-status\">\n <div>{{ leftTime }}min left</div>\n <button (click)=\"uploadService.cancelAll()\">{{ 'common.cancel' | trans }}</button>\n </div>\n <ul class=\"ax-uploader-list-items\">\n @for (item of uploadService.files | async; track item.name) {\n <li>\n <i class=\"fa-regular fa-file fa-2xl\"></i>\n <div class=\"ax-item-container\">\n <div class=\"ax-item-name\">{{ item.name }}</div>\n <small>{{ item.size | format: 'filesize' }}</small>\n <!-- <ax-progress-bar class=\"ax-w-full\" color=\"primary\" [progress]=\"item.progress()\"></ax-progress-bar> -->\n </div>\n @switch (item.status()) {\n @case ('completed') {\n <div class=\"ax-status\">\n <i class=\"ax-icon ax-icon-check-circle-fill ax-state-success ax-show\"></i>\n <i\n class=\"ax-icon ax-icon-archive ax-state-info ax-hide\"\n (click)=\"uploadService.remove(item)\"\n ></i>\n </div>\n }\n @case ('canceled') {\n <div class=\"ax-status\">\n <i class=\"ax-icon ax-icon-block ax-state-danger ax-show\"></i>\n <i\n class=\"ax-icon ax-icon-archive ax-state-info ax-hide\"\n (click)=\"uploadService.remove(item)\"\n ></i>\n </div>\n }\n @default {\n <div class=\"ax-status\">\n <ax-circular-progress [size]=\"22\" [stroke]=\"6\" [progress]=\"item.progress()\" class=\"ax-show\">\n </ax-circular-progress>\n <i class=\"ax-icon ax-icon-cancel-fill ax-hide\" (click)=\"item.cancel()\"></i>\n </div>\n }\n }\n </li>\n }\n </ul>\n</div>\n", styles: [".ax-dark ax-uploader-list .ax-uploader-progress-status{border-color:rgba(var(--ax-color-primary-500));background-color:rgba(var(--ax-color-primary-500),.25);color:rgba(var(--ax-color-primary-fore))}ax-uploader-list{display:block;background-color:rgba(var(--ax-color-surface));-webkit-border-top-left-radius:.75rem;-webkit-border-top-right-radius:.75rem;-moz-border-radius-topleft:.75rem;-moz-border-radius-topright:.75rem;border-top-left-radius:.75rem;border-top-right-radius:.75rem;overflow:hidden;box-shadow:-1px -1px 10px rgba(0,0,0,.16);border:1px solid;border-color:rgba(var(--ax-color-border-default));outline-color:rgba(var(--ax-color-primary-500))}ax-uploader-list .ax-uploader-list-header{display:flex;justify-content:space-between;background-color:rgba(var(--ax-color-on-surface));padding:.75rem 1rem;font-weight:500;color:rgba(var(--ax-color-on-surface-fore))}ax-uploader-list .ax-uploader-list-header .ax-icon{-webkit-margin-start:.5rem;margin-inline-start:.5rem;cursor:pointer;font-size:1.5rem;line-height:2rem;line-height:1}ax-uploader-list .ax-uploader-list-header .ax-icon:hover{opacity:.75}ax-uploader-list .ax-uploader-progress-status{display:flex;align-items:center;justify-content:space-between;border-bottom-width:1px;border-top-width:1px;border-color:rgba(var(--ax-color-primary-200));background-color:rgba(var(--ax-color-primary-200));padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;color:rgba(var(--ax-color-primary-fore-tint))}ax-uploader-list .ax-uploader-list-items{max-height:75vh;width:100%;overflow-y:auto;overflow-x:hidden;padding:.5rem 1rem;gap:.5rem;display:flex;flex-direction:column}ax-uploader-list .ax-uploader-list-items li{display:flex;align-items:center;font-size:.875rem;line-height:1.25rem;gap:1rem;width:100%}ax-uploader-list .ax-uploader-list-items li .ax-item-container{display:flex;flex-direction:column;flex:1}ax-uploader-list .ax-uploader-list-items li .ax-item-container .ax-item-name{font-size:.875rem;line-height:1.25rem}ax-uploader-list .ax-uploader-list-items li .ax-status{cursor:pointer;position:relative;color:rgba(var(--ax-color-black),.5)}ax-uploader-list .ax-uploader-list-items li .ax-status .ax-icon{font-size:1.5rem}ax-uploader-list .ax-uploader-list-items li .ax-status .ax-state-info{color:rgba(var(--ax-color-info-500))}ax-uploader-list .ax-uploader-list-items li .ax-status .ax-state-success{color:rgba(var(--ax-color-success-500))}ax-uploader-list .ax-uploader-list-items li .ax-status .ax-state-danger{color:rgba(var(--ax-color-danger-500))}ax-uploader-list .ax-uploader-list-items li:hover .ax-hide{display:block!important}ax-uploader-list .ax-uploader-list-items li:hover .ax-show{display:none!important}ax-uploader-list .ax-uploader-list-items li .ax-show{display:block}ax-uploader-list .ax-uploader-list-items li .ax-hide{display:none}.ax-uploader-list-pane .cdk-dialog-container:focus,.ax-uploader-list-pane .cdk-dialog-container:focus-visible,.ax-uploader-list-pane .cdk-dialog-container:focus-within{outline:2px solid transparent;outline-offset:2px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.AXCircularProgressComponent, selector: "ax-circular-progress", inputs: ["color", "progress", "stroke", "size"], outputs: ["ValueChange", "strokeChange", "sizeChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.AXTranslatorPipe, name: "trans" }, { kind: "pipe", type: i4.AXFormatPipe, name: "format" }], animations: [
42
+ trigger('collapse', [
43
+ state('false', style({ height: AUTO_STYLE, visibility: AUTO_STYLE })),
44
+ state('true', style({ height: '0', visibility: 'hidden' })),
45
+ transition('false => true', animate(150 + 'ms ease-in')),
46
+ transition('true => false', animate(150 + 'ms ease-out')),
47
+ ]),
48
+ ], encapsulation: i0.ViewEncapsulation.None }); }
24
49
  }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXUploaderDropZoneComponent, decorators: [{
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AXUploaderListComponent, decorators: [{
26
51
  type: Component,
27
- args: [{ selector: 'ax-uploader-drop-zone', encapsulation: ViewEncapsulation.None, template: "<div class=\"ax-uploader-drop-zone-container\">\n <ax-icon class=\"ax-icon ax-icon-upload\"></ax-icon>\n <div class=\"ax-uploader-drop-zone-description\">\n <span>Drag & Drop or <a href=\"#\">Choose file</a> to upload</span>\n <p>SVG, PNG, JPG or GIF (MAX. 800x400px)</p>\n </div>\n</div>\n" }]
28
- }] });
52
+ args: [{ selector: 'ax-uploader-list', encapsulation: ViewEncapsulation.None, animations: [
53
+ trigger('collapse', [
54
+ state('false', style({ height: AUTO_STYLE, visibility: AUTO_STYLE })),
55
+ state('true', style({ height: '0', visibility: 'hidden' })),
56
+ transition('false => true', animate(150 + 'ms ease-in')),
57
+ transition('true => false', animate(150 + 'ms ease-out')),
58
+ ]),
59
+ ], template: "<div class=\"ax-uploader-list-header\">\n <div>Uploading</div>\n <div>\n <i\n class=\"ax-icon\"\n [ngClass]=\"{ 'ax-icon-chevron-down': !isCollapsed, 'ax-icon-chevron-up': isCollapsed }\"\n (click)=\"toggle()\"\n ></i>\n <i class=\"ax-icon ax-icon-close\" (click)=\"close()\"></i>\n </div>\n</div>\n<div [@collapse]=\"isCollapsed\">\n <div class=\"ax-uploader-progress-status\">\n <div>{{ leftTime }}min left</div>\n <button (click)=\"uploadService.cancelAll()\">{{ 'common.cancel' | trans }}</button>\n </div>\n <ul class=\"ax-uploader-list-items\">\n @for (item of uploadService.files | async; track item.name) {\n <li>\n <i class=\"fa-regular fa-file fa-2xl\"></i>\n <div class=\"ax-item-container\">\n <div class=\"ax-item-name\">{{ item.name }}</div>\n <small>{{ item.size | format: 'filesize' }}</small>\n <!-- <ax-progress-bar class=\"ax-w-full\" color=\"primary\" [progress]=\"item.progress()\"></ax-progress-bar> -->\n </div>\n @switch (item.status()) {\n @case ('completed') {\n <div class=\"ax-status\">\n <i class=\"ax-icon ax-icon-check-circle-fill ax-state-success ax-show\"></i>\n <i\n class=\"ax-icon ax-icon-archive ax-state-info ax-hide\"\n (click)=\"uploadService.remove(item)\"\n ></i>\n </div>\n }\n @case ('canceled') {\n <div class=\"ax-status\">\n <i class=\"ax-icon ax-icon-block ax-state-danger ax-show\"></i>\n <i\n class=\"ax-icon ax-icon-archive ax-state-info ax-hide\"\n (click)=\"uploadService.remove(item)\"\n ></i>\n </div>\n }\n @default {\n <div class=\"ax-status\">\n <ax-circular-progress [size]=\"22\" [stroke]=\"6\" [progress]=\"item.progress()\" class=\"ax-show\">\n </ax-circular-progress>\n <i class=\"ax-icon ax-icon-cancel-fill ax-hide\" (click)=\"item.cancel()\"></i>\n </div>\n }\n }\n </li>\n }\n </ul>\n</div>\n", styles: [".ax-dark ax-uploader-list .ax-uploader-progress-status{border-color:rgba(var(--ax-color-primary-500));background-color:rgba(var(--ax-color-primary-500),.25);color:rgba(var(--ax-color-primary-fore))}ax-uploader-list{display:block;background-color:rgba(var(--ax-color-surface));-webkit-border-top-left-radius:.75rem;-webkit-border-top-right-radius:.75rem;-moz-border-radius-topleft:.75rem;-moz-border-radius-topright:.75rem;border-top-left-radius:.75rem;border-top-right-radius:.75rem;overflow:hidden;box-shadow:-1px -1px 10px rgba(0,0,0,.16);border:1px solid;border-color:rgba(var(--ax-color-border-default));outline-color:rgba(var(--ax-color-primary-500))}ax-uploader-list .ax-uploader-list-header{display:flex;justify-content:space-between;background-color:rgba(var(--ax-color-on-surface));padding:.75rem 1rem;font-weight:500;color:rgba(var(--ax-color-on-surface-fore))}ax-uploader-list .ax-uploader-list-header .ax-icon{-webkit-margin-start:.5rem;margin-inline-start:.5rem;cursor:pointer;font-size:1.5rem;line-height:2rem;line-height:1}ax-uploader-list .ax-uploader-list-header .ax-icon:hover{opacity:.75}ax-uploader-list .ax-uploader-progress-status{display:flex;align-items:center;justify-content:space-between;border-bottom-width:1px;border-top-width:1px;border-color:rgba(var(--ax-color-primary-200));background-color:rgba(var(--ax-color-primary-200));padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;color:rgba(var(--ax-color-primary-fore-tint))}ax-uploader-list .ax-uploader-list-items{max-height:75vh;width:100%;overflow-y:auto;overflow-x:hidden;padding:.5rem 1rem;gap:.5rem;display:flex;flex-direction:column}ax-uploader-list .ax-uploader-list-items li{display:flex;align-items:center;font-size:.875rem;line-height:1.25rem;gap:1rem;width:100%}ax-uploader-list .ax-uploader-list-items li .ax-item-container{display:flex;flex-direction:column;flex:1}ax-uploader-list .ax-uploader-list-items li .ax-item-container .ax-item-name{font-size:.875rem;line-height:1.25rem}ax-uploader-list .ax-uploader-list-items li .ax-status{cursor:pointer;position:relative;color:rgba(var(--ax-color-black),.5)}ax-uploader-list .ax-uploader-list-items li .ax-status .ax-icon{font-size:1.5rem}ax-uploader-list .ax-uploader-list-items li .ax-status .ax-state-info{color:rgba(var(--ax-color-info-500))}ax-uploader-list .ax-uploader-list-items li .ax-status .ax-state-success{color:rgba(var(--ax-color-success-500))}ax-uploader-list .ax-uploader-list-items li .ax-status .ax-state-danger{color:rgba(var(--ax-color-danger-500))}ax-uploader-list .ax-uploader-list-items li:hover .ax-hide{display:block!important}ax-uploader-list .ax-uploader-list-items li:hover .ax-show{display:none!important}ax-uploader-list .ax-uploader-list-items li .ax-show{display:block}ax-uploader-list .ax-uploader-list-items li .ax-hide{display:none}.ax-uploader-list-pane .cdk-dialog-container:focus,.ax-uploader-list-pane .cdk-dialog-container:focus-visible,.ax-uploader-list-pane .cdk-dialog-container:focus-within{outline:2px solid transparent;outline-offset:2px}\n"] }]
60
+ }], ctorParameters: () => [] });
61
+
62
+ class AXUploadRequest {
63
+ get name() {
64
+ return this.file.name;
65
+ }
66
+ get size() {
67
+ return this.file.size;
68
+ }
69
+ constructor(file) {
70
+ this.file = file;
71
+ this.progress = signal(0);
72
+ this.status = signal('new');
73
+ }
74
+ async upload() {
75
+ this.progress.set(0);
76
+ this.status.set('inprogress');
77
+ const inv = setInterval(() => {
78
+ this.progress.update(value => value + 1);
79
+ if (this.progress() >= 100) {
80
+ this.progress.set(100);
81
+ clearInterval(inv);
82
+ this.status.set('completed');
83
+ }
84
+ }, this.size / 5000);
85
+ }
86
+ cancel() {
87
+ this.status.set('canceled');
88
+ return Promise.resolve();
89
+ }
90
+ }
29
91
 
30
92
  class AXUploaderService {
31
93
  constructor() {
32
94
  this.dialog = inject(Dialog);
33
- this.http = inject(HttpClient);
95
+ this.fileService = inject(AXFileService);
34
96
  this.files$ = new BehaviorSubject([]);
35
97
  }
36
- openDialog() {
98
+ get files() {
99
+ return this.files$;
100
+ }
101
+ showDialog() {
37
102
  const positionStrategy = new GlobalPositionStrategy();
38
103
  if (!this.dialogRef) {
39
104
  this.dialogRef = this.dialog.open(AXUploaderListComponent, {
@@ -48,86 +113,63 @@ class AXUploaderService {
48
113
  'ax-animate-faster',
49
114
  ],
50
115
  positionStrategy: positionStrategy.bottom().end('24px'),
51
- data: {
52
- files: this.files$,
53
- },
54
116
  });
55
117
  }
56
118
  }
57
119
  closeDialog() {
58
- this.dialogRef.close();
120
+ this.dialogRef?.close();
121
+ this.dialogRef = undefined;
59
122
  }
60
- upload(requestUrl, file, options) {
61
- const formData = new FormData();
62
- formData.append(file.name, file);
63
- return this.http.post(requestUrl, formData, options);
123
+ convertFileToRequest(file) {
124
+ return new AXUploadRequest(file);
64
125
  }
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXUploaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
66
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXUploaderService }); }
67
- }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXUploaderService, decorators: [{
69
- type: Injectable
70
- }] });
71
-
72
- class AXUploaderListComponent extends MXBaseComponent {
73
- constructor(dialogRef) {
74
- super();
75
- this.dialogRef = dialogRef;
76
- this.data = inject(DIALOG_DATA);
77
- this.items = [];
78
- this.leftTime = 5;
79
- this.isCollapsed = false;
80
- this.uploadService = inject(AXUploaderService);
81
- this.uploadService.files$.subscribe({
82
- next: (e) => {
83
- this.items.push(...e);
84
- // this.upload()
85
- },
126
+ startUpload() {
127
+ this.files.value.filter(c => c.status() == 'new').forEach(c => {
128
+ c.upload();
86
129
  });
87
130
  }
88
- upload(file) {
89
- this.uploadService.upload('http://api.acorexui.com/api/v1/files', file).subscribe({
90
- next: (e) => { },
91
- error: (err) => {
92
- console.error(err);
93
- },
94
- });
131
+ async browse() {
132
+ try {
133
+ const files = await this.fileService.choose();
134
+ if (files.length) {
135
+ return this.add(files);
136
+ }
137
+ return Promise.resolve([]);
138
+ }
139
+ catch (error) {
140
+ console.error(error);
141
+ return Promise.resolve([]);
142
+ }
95
143
  }
96
- toggle() {
97
- this.isCollapsed = !this.isCollapsed;
144
+ async add(files) {
145
+ const list = Array.from(files).map(f => this.convertFileToRequest(f));
146
+ const currentValue = this.files$.value;
147
+ currentValue.push(...list);
148
+ this.files$.next(currentValue);
149
+ this.showDialog();
150
+ this.startUpload();
151
+ return Promise.resolve(list);
98
152
  }
99
- close() {
100
- this.dialogRef.close();
153
+ upload() {
101
154
  }
102
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXUploaderListComponent, deps: [{ token: i1$1.DialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
103
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: AXUploaderListComponent, selector: "ax-uploader-list", usesInheritance: true, ngImport: i0, template: "<div class=\"ax-uploader-list-header\">\n <div>Uploader list</div>\n <div>\n <i\n class=\"ax-icon\"\n [ngClass]=\"{ 'ax-icon-chevron-down': !isCollapsed, 'ax-icon-chevron-up': isCollapsed }\"\n (click)=\"toggle()\"\n ></i>\n\n <i class=\"ax-icon ax-icon-close\" (click)=\"close()\"></i>\n </div>\n</div>\n\n<div [@collapse]=\"isCollapsed\">\n <div class=\"ax-uploader-progress-status\">\n <div>{{ leftTime }}min left</div>\n <button>{{ 'common.cancel' | trans }}</button>\n </div>\n <ul class=\"ax-uploader-list-items\">\n <ng-container *ngFor=\"let item of items\">\n <li>\n <div>\n <i class=\"ax-icon ax-icon-inbox\"></i>\n <div class=\"ax-uploader-item-text\">\n <strong>{{ item.name }}</strong>\n <small>{{ item.size }}</small>\n </div>\n </div>\n <div>\n <ax-progress-bar style=\"width: 48px\" color=\"primary\" [progress]=\"20\"></ax-progress-bar>\n </div>\n </li>\n </ng-container>\n </ul>\n</div>\n", styles: [".ax-dark ax-uploader-list .ax-uploader-progress-status{border-color:rgba(var(--ax-color-primary-500));background-color:rgba(var(--ax-color-primary-500),.25);color:rgba(var(--ax-color-primary-fore))}ax-uploader-list{display:block;background-color:rgba(var(--ax-color-surface));-webkit-border-top-left-radius:.75rem;-webkit-border-top-right-radius:.75rem;-moz-border-radius-topleft:.75rem;-moz-border-radius-topright:.75rem;border-top-left-radius:.75rem;border-top-right-radius:.75rem;overflow:hidden;box-shadow:-1px -1px 10px rgba(0,0,0,.16);border:1px solid;border-color:rgba(var(--ax-color-border-default));outline-color:rgba(var(--ax-color-primary-500))}ax-uploader-list .ax-uploader-list-header{display:flex;justify-content:space-between;background-color:rgba(var(--ax-color-on-surface));padding:.75rem 1rem;font-weight:500;color:rgba(var(--ax-color-on-surface-fore))}ax-uploader-list .ax-uploader-list-header .ax-icon{-webkit-margin-start:.5rem;margin-inline-start:.5rem;cursor:pointer;font-size:1.5rem;line-height:2rem;line-height:1}ax-uploader-list .ax-uploader-list-header .ax-icon:hover{opacity:.75}ax-uploader-list .ax-uploader-progress-status{display:flex;align-items:center;justify-content:space-between;border-bottom-width:1px;border-top-width:1px;border-color:rgba(var(--ax-color-primary-200));background-color:rgba(var(--ax-color-primary-200));padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;color:rgba(var(--ax-color-primary-fore-tint))}ax-uploader-list .ax-uploader-list-items{padding:.5rem 0;overflow-y:auto;overflow-x:hidden;max-height:75vh}ax-uploader-list .ax-uploader-list-items li{display:flex;align-items:center;justify-content:space-between;padding:.75rem;font-size:.875rem;line-height:1.25rem}ax-uploader-list .ax-uploader-list-items li>div{display:flex}ax-uploader-list .ax-uploader-list-items li>div .ax-icon{-webkit-margin-end:.5rem;margin-inline-end:.5rem;display:flex;font-size:1.5rem;line-height:1}ax-uploader-list .ax-uploader-list-items li>div .ax-uploader-item-text{display:flex;flex-direction:column}ax-uploader-list .ax-uploader-list-items li>div .ax-uploader-item-text strong{display:block;font-weight:500}ax-uploader-list .ax-uploader-list-items li>div .ax-uploader-item-text small{color:rgb(var(--ax-color-text-default),.5)}.ax-uploader-list-pane .cdk-dialog-container:focus,.ax-uploader-list-pane .cdk-dialog-container:focus-visible,.ax-uploader-list-pane .cdk-dialog-container:focus-within{outline:2px solid transparent;outline-offset:2px}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.AXProgressBarComponent, selector: "ax-progress-bar", inputs: ["color", "progress", "height"], outputs: ["ValueChange", "sizeChange"] }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "trans" }], animations: [
104
- trigger('collapse', [
105
- state('false', style({ height: AUTO_STYLE, visibility: AUTO_STYLE })),
106
- state('true', style({ height: '0', visibility: 'hidden' })),
107
- transition('false => true', animate(150 + 'ms ease-in')),
108
- transition('true => false', animate(150 + 'ms ease-out')),
109
- ]),
110
- ], encapsulation: i0.ViewEncapsulation.None }); }
111
- }
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXUploaderListComponent, decorators: [{
113
- type: Component,
114
- args: [{ selector: 'ax-uploader-list', encapsulation: ViewEncapsulation.None, animations: [
115
- trigger('collapse', [
116
- state('false', style({ height: AUTO_STYLE, visibility: AUTO_STYLE })),
117
- state('true', style({ height: '0', visibility: 'hidden' })),
118
- transition('false => true', animate(150 + 'ms ease-in')),
119
- transition('true => false', animate(150 + 'ms ease-out')),
120
- ]),
121
- ], template: "<div class=\"ax-uploader-list-header\">\n <div>Uploader list</div>\n <div>\n <i\n class=\"ax-icon\"\n [ngClass]=\"{ 'ax-icon-chevron-down': !isCollapsed, 'ax-icon-chevron-up': isCollapsed }\"\n (click)=\"toggle()\"\n ></i>\n\n <i class=\"ax-icon ax-icon-close\" (click)=\"close()\"></i>\n </div>\n</div>\n\n<div [@collapse]=\"isCollapsed\">\n <div class=\"ax-uploader-progress-status\">\n <div>{{ leftTime }}min left</div>\n <button>{{ 'common.cancel' | trans }}</button>\n </div>\n <ul class=\"ax-uploader-list-items\">\n <ng-container *ngFor=\"let item of items\">\n <li>\n <div>\n <i class=\"ax-icon ax-icon-inbox\"></i>\n <div class=\"ax-uploader-item-text\">\n <strong>{{ item.name }}</strong>\n <small>{{ item.size }}</small>\n </div>\n </div>\n <div>\n <ax-progress-bar style=\"width: 48px\" color=\"primary\" [progress]=\"20\"></ax-progress-bar>\n </div>\n </li>\n </ng-container>\n </ul>\n</div>\n", styles: [".ax-dark ax-uploader-list .ax-uploader-progress-status{border-color:rgba(var(--ax-color-primary-500));background-color:rgba(var(--ax-color-primary-500),.25);color:rgba(var(--ax-color-primary-fore))}ax-uploader-list{display:block;background-color:rgba(var(--ax-color-surface));-webkit-border-top-left-radius:.75rem;-webkit-border-top-right-radius:.75rem;-moz-border-radius-topleft:.75rem;-moz-border-radius-topright:.75rem;border-top-left-radius:.75rem;border-top-right-radius:.75rem;overflow:hidden;box-shadow:-1px -1px 10px rgba(0,0,0,.16);border:1px solid;border-color:rgba(var(--ax-color-border-default));outline-color:rgba(var(--ax-color-primary-500))}ax-uploader-list .ax-uploader-list-header{display:flex;justify-content:space-between;background-color:rgba(var(--ax-color-on-surface));padding:.75rem 1rem;font-weight:500;color:rgba(var(--ax-color-on-surface-fore))}ax-uploader-list .ax-uploader-list-header .ax-icon{-webkit-margin-start:.5rem;margin-inline-start:.5rem;cursor:pointer;font-size:1.5rem;line-height:2rem;line-height:1}ax-uploader-list .ax-uploader-list-header .ax-icon:hover{opacity:.75}ax-uploader-list .ax-uploader-progress-status{display:flex;align-items:center;justify-content:space-between;border-bottom-width:1px;border-top-width:1px;border-color:rgba(var(--ax-color-primary-200));background-color:rgba(var(--ax-color-primary-200));padding:.5rem .75rem;font-size:.875rem;line-height:1.25rem;color:rgba(var(--ax-color-primary-fore-tint))}ax-uploader-list .ax-uploader-list-items{padding:.5rem 0;overflow-y:auto;overflow-x:hidden;max-height:75vh}ax-uploader-list .ax-uploader-list-items li{display:flex;align-items:center;justify-content:space-between;padding:.75rem;font-size:.875rem;line-height:1.25rem}ax-uploader-list .ax-uploader-list-items li>div{display:flex}ax-uploader-list .ax-uploader-list-items li>div .ax-icon{-webkit-margin-end:.5rem;margin-inline-end:.5rem;display:flex;font-size:1.5rem;line-height:1}ax-uploader-list .ax-uploader-list-items li>div .ax-uploader-item-text{display:flex;flex-direction:column}ax-uploader-list .ax-uploader-list-items li>div .ax-uploader-item-text strong{display:block;font-weight:500}ax-uploader-list .ax-uploader-list-items li>div .ax-uploader-item-text small{color:rgb(var(--ax-color-text-default),.5)}.ax-uploader-list-pane .cdk-dialog-container:focus,.ax-uploader-list-pane .cdk-dialog-container:focus-visible,.ax-uploader-list-pane .cdk-dialog-container:focus-within{outline:2px solid transparent;outline-offset:2px}\n"] }]
122
- }], ctorParameters: () => [{ type: i1$1.DialogRef }] });
123
-
124
- class AXUploaderOverlayComponent extends MXBaseComponent {
125
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXUploaderOverlayComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
126
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: AXUploaderOverlayComponent, selector: "ax-uploader-overlay", usesInheritance: true, ngImport: i0, template: "<div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-items-center ax-justify-center ax-h-[95vh] hover:ax-bg-primary-50 ax-m-2 hover:ax-border-2 ax-rounded-lg hover:ax-border-primary-500\">\n\n</div>", styles: [""], encapsulation: i0.ViewEncapsulation.None }); }
155
+ cancelAll() {
156
+ this.files$.value.forEach(c => c.cancel());
157
+ this.closeDialog();
158
+ }
159
+ remove(item) {
160
+ let currentValue = this.files$.value;
161
+ currentValue = currentValue.filter(c => c != item);
162
+ this.files$.next(currentValue);
163
+ if (currentValue.length == 0) {
164
+ this.closeDialog();
165
+ }
166
+ }
167
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AXUploaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
168
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AXUploaderService, providedIn: 'root' }); }
127
169
  }
128
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXUploaderOverlayComponent, decorators: [{
129
- type: Component,
130
- args: [{ selector: 'ax-uploader-overlay', encapsulation: ViewEncapsulation.None, template: "<div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-items-center ax-justify-center ax-h-[95vh] hover:ax-bg-primary-50 ax-m-2 hover:ax-border-2 ax-rounded-lg hover:ax-border-primary-500\">\n\n</div>" }]
170
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AXUploaderService, decorators: [{
171
+ type: Injectable,
172
+ args: [{ providedIn: 'root' }]
131
173
  }] });
132
174
 
133
175
  class AXUploaderZoneDirective {
@@ -161,8 +203,7 @@ class AXUploaderZoneDirective {
161
203
  handleOnDrop(event) {
162
204
  event.preventDefault();
163
205
  event.stopImmediatePropagation();
164
- this.uploadService.files$.next(event.dataTransfer?.files);
165
- this.uploadService.openDialog();
206
+ this.uploadService.add(event.dataTransfer?.files);
166
207
  this.removeZone();
167
208
  }
168
209
  handleDragOver(event) {
@@ -186,10 +227,10 @@ class AXUploaderZoneDirective {
186
227
  get __hostClass() {
187
228
  return `ax-drop-zone`;
188
229
  }
189
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXUploaderZoneDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
190
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.4", type: AXUploaderZoneDirective, selector: "[axUploaderZone]", inputs: { multiple: "multiple" }, host: { properties: { "class": "this.__hostClass" } }, ngImport: i0 }); }
230
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AXUploaderZoneDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
231
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.5", type: AXUploaderZoneDirective, selector: "[axUploaderZone]", inputs: { multiple: "multiple" }, host: { properties: { "class": "this.__hostClass" } }, ngImport: i0 }); }
191
232
  }
192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXUploaderZoneDirective, decorators: [{
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AXUploaderZoneDirective, decorators: [{
193
234
  type: Directive,
194
235
  args: [{
195
236
  selector: '[axUploaderZone]',
@@ -201,34 +242,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
201
242
  args: ['class']
202
243
  }] } });
203
244
 
245
+ class AXUploaderDropZoneComponent extends MXBaseComponent {
246
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AXUploaderDropZoneComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
247
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.5", type: AXUploaderDropZoneComponent, selector: "ax-uploader-drop-zone", usesInheritance: true, ngImport: i0, template: "<div class=\"ax-uploader-drop-zone-container\" axUploaderZone>\n <ax-icon class=\"ax-icon ax-icon-upload\"></ax-icon>\n <div class=\"ax-uploader-drop-zone-description\">\n <span>Drag & Drop or <a href=\"#\">Choose file</a> to upload</span>\n <p>SVG, PNG, JPG or GIF (MAX. 800x400px)</p>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "component", type: i1$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "directive", type: AXUploaderZoneDirective, selector: "[axUploaderZone]", inputs: ["multiple"] }], encapsulation: i0.ViewEncapsulation.None }); }
248
+ }
249
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AXUploaderDropZoneComponent, decorators: [{
250
+ type: Component,
251
+ args: [{ selector: 'ax-uploader-drop-zone', encapsulation: ViewEncapsulation.None, template: "<div class=\"ax-uploader-drop-zone-container\" axUploaderZone>\n <ax-icon class=\"ax-icon ax-icon-upload\"></ax-icon>\n <div class=\"ax-uploader-drop-zone-description\">\n <span>Drag & Drop or <a href=\"#\">Choose file</a> to upload</span>\n <p>SVG, PNG, JPG or GIF (MAX. 800x400px)</p>\n </div>\n</div>" }]
252
+ }] });
253
+
204
254
  class AXUploaderModule {
205
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXUploaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
206
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: AXUploaderModule, declarations: [AXUploaderDropZoneComponent,
255
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AXUploaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
256
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.5", ngImport: i0, type: AXUploaderModule, declarations: [AXUploaderDropZoneComponent,
207
257
  AXUploaderListComponent,
208
- AXUploaderOverlayComponent,
209
258
  AXUploaderZoneDirective], imports: [CommonModule,
210
259
  HttpClientModule,
211
260
  AXDecoratorModule,
212
261
  AXButtonModule,
213
262
  AXTranslationModule,
214
- AXProgressBarModule], exports: [AXUploaderDropZoneComponent,
263
+ AXProgressBarModule,
264
+ AXFormatModule,
265
+ AXFileModule,
266
+ AXDateTimeModule,
267
+ AXCircularProgressModule], exports: [AXUploaderDropZoneComponent,
215
268
  AXUploaderListComponent,
216
- AXUploaderOverlayComponent,
217
269
  AXUploaderZoneDirective] }); }
218
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXUploaderModule, providers: [AXUploaderService, AXFileService], imports: [CommonModule,
270
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AXUploaderModule, providers: [AXUploaderService], imports: [CommonModule,
219
271
  HttpClientModule,
220
272
  AXDecoratorModule,
221
273
  AXButtonModule,
222
274
  AXTranslationModule,
223
- AXProgressBarModule] }); }
275
+ AXProgressBarModule,
276
+ AXFormatModule,
277
+ AXFileModule,
278
+ AXDateTimeModule,
279
+ AXCircularProgressModule] }); }
224
280
  }
225
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXUploaderModule, decorators: [{
281
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: AXUploaderModule, decorators: [{
226
282
  type: NgModule,
227
283
  args: [{
228
284
  declarations: [
229
285
  AXUploaderDropZoneComponent,
230
286
  AXUploaderListComponent,
231
- AXUploaderOverlayComponent,
232
287
  AXUploaderZoneDirective,
233
288
  ],
234
289
  imports: [
@@ -238,14 +293,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
238
293
  AXButtonModule,
239
294
  AXTranslationModule,
240
295
  AXProgressBarModule,
296
+ AXFormatModule,
297
+ AXFileModule,
298
+ AXDateTimeModule,
299
+ AXCircularProgressModule
241
300
  ],
242
301
  exports: [
243
302
  AXUploaderDropZoneComponent,
244
303
  AXUploaderListComponent,
245
- AXUploaderOverlayComponent,
246
304
  AXUploaderZoneDirective,
247
305
  ],
248
- providers: [AXUploaderService, AXFileService],
306
+ providers: [AXUploaderService],
249
307
  }]
250
308
  }] });
251
309
 
@@ -253,5 +311,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
253
311
  * Generated bundle index. Do not edit.
254
312
  */
255
313
 
256
- export { AXUploaderDropZoneComponent, AXUploaderListComponent, AXUploaderModule, AXUploaderOverlayComponent, AXUploaderService, AXUploaderZoneDirective };
314
+ export { AXUploaderDropZoneComponent, AXUploaderListComponent, AXUploaderModule, AXUploaderService, AXUploaderZoneDirective };
257
315
  //# sourceMappingURL=acorex-components-uploader.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-uploader.mjs","sources":["../../../../libs/components/uploader/src/lib/uploader-drop-zone.component.ts","../../../../libs/components/uploader/src/lib/uploader-drop-zone.component.html","../../../../libs/components/uploader/src/lib/uploader.service.ts","../../../../libs/components/uploader/src/lib/uploader-list.component.ts","../../../../libs/components/uploader/src/lib/uploader-list.component.html","../../../../libs/components/uploader/src/lib/uploader-overlay.component.ts","../../../../libs/components/uploader/src/lib/uploader-overlay.component.html","../../../../libs/components/uploader/src/lib/uploader-zone.directive.ts","../../../../libs/components/uploader/src/lib/uploader.module.ts","../../../../libs/components/uploader/src/acorex-components-uploader.ts"],"sourcesContent":["import { MXBaseComponent } from '@acorex/components/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ax-uploader-drop-zone',\n templateUrl: './uploader-drop-zone.component.html',\n styleUrls: ['./uploader.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXUploaderDropZoneComponent extends MXBaseComponent {}\n","<div class=\"ax-uploader-drop-zone-container\">\n <ax-icon class=\"ax-icon ax-icon-upload\"></ax-icon>\n <div class=\"ax-uploader-drop-zone-description\">\n <span>Drag & Drop or <a href=\"#\">Choose file</a> to upload</span>\n <p>SVG, PNG, JPG or GIF (MAX. 800x400px)</p>\n </div>\n</div>\n","import { Dialog, DialogRef } from '@angular/cdk/dialog';\nimport { GlobalPositionStrategy } from '@angular/cdk/overlay';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { AXUploaderListComponent } from './uploader-list.component';\n\n@Injectable()\nexport class AXUploaderService {\n private dialog: Dialog = inject(Dialog);\n private http: HttpClient = inject(HttpClient);\n files$: BehaviorSubject<Array<any>> = new BehaviorSubject<Array<any>>([]);\n\n dialogRef: DialogRef;\n openDialog() {\n const positionStrategy = new GlobalPositionStrategy();\n if (!this.dialogRef) {\n this.dialogRef = this.dialog.open(AXUploaderListComponent, {\n hasBackdrop: false,\n closeOnNavigation: false,\n width: '320px',\n maxWidth: 320,\n panelClass: [\n 'ax-uploader-list-pane',\n 'ax-animate-animated',\n 'ax-animate-fadeIn',\n 'ax-animate-faster',\n ],\n positionStrategy: positionStrategy.bottom().end('24px'),\n data: {\n files: this.files$,\n },\n }) as DialogRef;\n }\n }\n\n closeDialog() {\n this.dialogRef.close();\n }\n\n upload(requestUrl: string, file: File, options?: any) {\n const formData = new FormData();\n formData.append(file.name, file);\n return this.http.post(requestUrl, formData, options);\n }\n}\n","import { AXComponentCloseEvent, MXBaseComponent } from '@acorex/components/common';\nimport { AUTO_STYLE, animate, state, style, transition, trigger } from '@angular/animations';\nimport { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport { Component, ViewEncapsulation, inject } from '@angular/core';\nimport { AXUploaderService } from './uploader.service';\n\nexport interface AXUploaderItem {\n type: 'picture' | 'doc' | 'pdf' | 'archive' | 'video' | 'unknow';\n name: string;\n size: number;\n description?: string;\n}\n\n@Component({\n selector: 'ax-uploader-list',\n templateUrl: './uploader-list.component.html',\n styleUrls: ['./uploader-list.component.scss'],\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger('collapse', [\n state('false', style({ height: AUTO_STYLE, visibility: AUTO_STYLE })),\n state('true', style({ height: '0', visibility: 'hidden' })),\n transition('false => true', animate(150 + 'ms ease-in')),\n transition('true => false', animate(150 + 'ms ease-out')),\n ]),\n ],\n})\nexport class AXUploaderListComponent extends MXBaseComponent {\n data = inject(DIALOG_DATA);\n items: any[] = [];\n leftTime = 5;\n isCollapsed = false;\n\n private uploadService: AXUploaderService = inject(AXUploaderService);\n\n constructor(private dialogRef: DialogRef<AXComponentCloseEvent>) {\n super();\n this.uploadService.files$.subscribe({\n next: (e: any) => {\n this.items.push(...e);\n // this.upload()\n },\n });\n }\n\n upload(file) {\n this.uploadService.upload('http://api.acorexui.com/api/v1/files', file).subscribe({\n next: (e: any) => {},\n error: (err: any) => {\n console.error(err);\n },\n });\n }\n\n toggle() {\n this.isCollapsed = !this.isCollapsed;\n }\n close() {\n this.dialogRef.close();\n }\n}\n","<div class=\"ax-uploader-list-header\">\n <div>Uploader list</div>\n <div>\n <i\n class=\"ax-icon\"\n [ngClass]=\"{ 'ax-icon-chevron-down': !isCollapsed, 'ax-icon-chevron-up': isCollapsed }\"\n (click)=\"toggle()\"\n ></i>\n\n <i class=\"ax-icon ax-icon-close\" (click)=\"close()\"></i>\n </div>\n</div>\n\n<div [@collapse]=\"isCollapsed\">\n <div class=\"ax-uploader-progress-status\">\n <div>{{ leftTime }}min left</div>\n <button>{{ 'common.cancel' | trans }}</button>\n </div>\n <ul class=\"ax-uploader-list-items\">\n <ng-container *ngFor=\"let item of items\">\n <li>\n <div>\n <i class=\"ax-icon ax-icon-inbox\"></i>\n <div class=\"ax-uploader-item-text\">\n <strong>{{ item.name }}</strong>\n <small>{{ item.size }}</small>\n </div>\n </div>\n <div>\n <ax-progress-bar style=\"width: 48px\" color=\"primary\" [progress]=\"20\"></ax-progress-bar>\n </div>\n </li>\n </ng-container>\n </ul>\n</div>\n","import { MXBaseComponent } from '@acorex/components/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ax-uploader-overlay',\n templateUrl: './uploader-overlay.component.html',\n styleUrls: ['./uploader.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXUploaderOverlayComponent extends MXBaseComponent {}\n","<div\n class=\"ax-flex ax-flex-col ax-gap-4 ax-items-center ax-justify-center ax-h-[95vh] hover:ax-bg-primary-50 ax-m-2 hover:ax-border-2 ax-rounded-lg hover:ax-border-primary-500\">\n\n</div>","import { AXFileService } from '@acorex/core/file';\nimport { AXTranslator } from '@acorex/core/translation';\nimport { Directive, ElementRef, HostBinding, Input, OnDestroy, inject } from '@angular/core';\nimport { AXUploaderService } from './uploader.service';\n@Directive({\n selector: '[axUploaderZone]',\n})\nexport class AXUploaderZoneDirective implements OnDestroy {\n @Input() multiple = true;\n private fileService: AXFileService = inject(AXFileService);\n private uploadService: AXUploaderService = inject(AXUploaderService);\n private element: HTMLElement;\n\n stateClass = 'ax-uploader-overlay-state';\n overlayElement: HTMLDivElement;\n init() {\n this.element = this.elementRef.nativeElement as HTMLElement;\n this.element.style.position = 'relative';\n }\n\n constructor(private elementRef: ElementRef) {\n this.init();\n this.element.addEventListener('dragenter', this.handleDragEnter.bind(this), true);\n this.element.addEventListener('dragover', this.handleDragOver.bind(this), true);\n this.element.addEventListener('drop', this.handleOnDrop.bind(this), true);\n this.element.addEventListener('dragleave', this.removeZone.bind(this), true);\n }\n\n ngOnDestroy(): void {\n this.element.removeEventListener('dragenter', this.handleDragEnter.bind(this));\n this.element.removeEventListener('drop', this.handleOnDrop.bind(this));\n this.element.removeEventListener('dragover', this.handleDragOver.bind(this));\n this.element.removeEventListener('dragleave', this.removeZone.bind(this));\n }\n private handleDragEnter(event: Event) {\n this.createZone();\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n private handleOnDrop(event: DragEvent) {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.uploadService.files$.next(event.dataTransfer?.files as any);\n this.uploadService.openDialog();\n this.removeZone();\n }\n\n private handleDragOver(event: Event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n private createZone() {\n this.overlayElement = document.createElement('div');\n this.overlayElement.classList.add('ax-uploader-overlay-state');\n\n const icon: HTMLSpanElement = document.createElement('span');\n icon.classList.add('ax-icon', 'ax-icon-upload');\n\n const text = document.createElement('span');\n text.innerText = AXTranslator.get('uploader.zone.text');\n\n this.overlayElement.appendChild(icon);\n this.overlayElement.appendChild(text);\n\n this.element.appendChild(this.overlayElement);\n }\n private removeZone() {\n this.overlayElement.remove();\n }\n @HostBinding('class')\n get __hostClass(): string {\n return `ax-drop-zone`;\n }\n}\n","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AXProgressBarModule } from '@acorex/components/progress-bar';\nimport { AXFileService } from '@acorex/core/file';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AXUploaderDropZoneComponent } from './uploader-drop-zone.component';\nimport { AXUploaderListComponent } from './uploader-list.component';\nimport { AXUploaderOverlayComponent } from './uploader-overlay.component';\nimport { AXUploaderZoneDirective } from './uploader-zone.directive';\nimport { AXUploaderService } from './uploader.service';\n\n@NgModule({\n declarations: [\n AXUploaderDropZoneComponent,\n AXUploaderListComponent,\n AXUploaderOverlayComponent,\n AXUploaderZoneDirective,\n ],\n imports: [\n CommonModule,\n HttpClientModule,\n AXDecoratorModule,\n AXButtonModule,\n AXTranslationModule,\n AXProgressBarModule,\n ],\n exports: [\n AXUploaderDropZoneComponent,\n AXUploaderListComponent,\n AXUploaderOverlayComponent,\n AXUploaderZoneDirective,\n ],\n providers: [AXUploaderService, AXFileService],\n})\nexport class AXUploaderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-uploader.mjs","sources":["../../../../libs/components/uploader/src/lib/uploader-list.component.ts","../../../../libs/components/uploader/src/lib/uploader-list.component.html","../../../../libs/components/uploader/src/lib/uploader.models.ts","../../../../libs/components/uploader/src/lib/uploader.service.ts","../../../../libs/components/uploader/src/lib/uploader-zone.directive.ts","../../../../libs/components/uploader/src/lib/uploader-drop-zone.component.ts","../../../../libs/components/uploader/src/lib/uploader-drop-zone.component.html","../../../../libs/components/uploader/src/lib/uploader.module.ts","../../../../libs/components/uploader/src/acorex-components-uploader.ts"],"sourcesContent":["import { MXBaseComponent } from '@acorex/components/common';\nimport { AUTO_STYLE, animate, state, style, transition, trigger } from '@angular/animations';\nimport { Component, ViewEncapsulation, inject } from '@angular/core';\nimport { AXUploaderService } from './uploader.service';\n\n@Component({\n selector: 'ax-uploader-list',\n templateUrl: './uploader-list.component.html',\n styleUrls: ['./uploader-list.component.scss'],\n encapsulation: ViewEncapsulation.None,\n animations: [\n trigger('collapse', [\n state('false', style({ height: AUTO_STYLE, visibility: AUTO_STYLE })),\n state('true', style({ height: '0', visibility: 'hidden' })),\n transition('false => true', animate(150 + 'ms ease-in')),\n transition('true => false', animate(150 + 'ms ease-out')),\n ]),\n ],\n})\nexport class AXUploaderListComponent extends MXBaseComponent {\n leftTime = 5;\n isCollapsed = false;\n\n protected uploadService: AXUploaderService = inject(AXUploaderService);\n\n constructor() {\n super();\n }\n\n upload(file: File) {\n //this.uploadService.upload(file)\n }\n\n toggle() {\n this.isCollapsed = !this.isCollapsed;\n }\n\n close() {\n this.uploadService.closeDialog();\n }\n}\n","<div class=\"ax-uploader-list-header\">\n <div>Uploading</div>\n <div>\n <i\n class=\"ax-icon\"\n [ngClass]=\"{ 'ax-icon-chevron-down': !isCollapsed, 'ax-icon-chevron-up': isCollapsed }\"\n (click)=\"toggle()\"\n ></i>\n <i class=\"ax-icon ax-icon-close\" (click)=\"close()\"></i>\n </div>\n</div>\n<div [@collapse]=\"isCollapsed\">\n <div class=\"ax-uploader-progress-status\">\n <div>{{ leftTime }}min left</div>\n <button (click)=\"uploadService.cancelAll()\">{{ 'common.cancel' | trans }}</button>\n </div>\n <ul class=\"ax-uploader-list-items\">\n @for (item of uploadService.files | async; track item.name) {\n <li>\n <i class=\"fa-regular fa-file fa-2xl\"></i>\n <div class=\"ax-item-container\">\n <div class=\"ax-item-name\">{{ item.name }}</div>\n <small>{{ item.size | format: 'filesize' }}</small>\n <!-- <ax-progress-bar class=\"ax-w-full\" color=\"primary\" [progress]=\"item.progress()\"></ax-progress-bar> -->\n </div>\n @switch (item.status()) {\n @case ('completed') {\n <div class=\"ax-status\">\n <i class=\"ax-icon ax-icon-check-circle-fill ax-state-success ax-show\"></i>\n <i\n class=\"ax-icon ax-icon-archive ax-state-info ax-hide\"\n (click)=\"uploadService.remove(item)\"\n ></i>\n </div>\n }\n @case ('canceled') {\n <div class=\"ax-status\">\n <i class=\"ax-icon ax-icon-block ax-state-danger ax-show\"></i>\n <i\n class=\"ax-icon ax-icon-archive ax-state-info ax-hide\"\n (click)=\"uploadService.remove(item)\"\n ></i>\n </div>\n }\n @default {\n <div class=\"ax-status\">\n <ax-circular-progress [size]=\"22\" [stroke]=\"6\" [progress]=\"item.progress()\" class=\"ax-show\">\n </ax-circular-progress>\n <i class=\"ax-icon ax-icon-cancel-fill ax-hide\" (click)=\"item.cancel()\"></i>\n </div>\n }\n }\n </li>\n }\n </ul>\n</div>\n","import { signal } from \"@angular/core\";\n\nexport type AXUploadStatus = 'new' | 'inprogress' | 'completed' | 'faild' | 'canceled';\n\n\n\nexport class AXUploadRequest {\n\n get name(): string {\n return this.file.name;\n }\n\n get size(): number {\n return this.file.size;\n }\n\n readonly progress = signal(0);\n\n readonly status = signal<AXUploadStatus>('new');\n\n constructor(private file: File) {\n }\n\n\n\n public async upload(): Promise<void> {\n this.progress.set(0);\n this.status.set('inprogress');\n const inv = setInterval(() => {\n this.progress.update(value => value + 1);\n if (this.progress() >= 100) {\n this.progress.set(100);\n clearInterval(inv);\n this.status.set('completed');\n }\n }, this.size / 5000);\n }\n\n public cancel(): Promise<void> {\n this.status.set('canceled');\n return Promise.resolve();\n }\n}\n\n\n","import { Dialog, DialogRef } from '@angular/cdk/dialog';\nimport { GlobalPositionStrategy } from '@angular/cdk/overlay';\nimport { Injectable, inject } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { AXUploaderListComponent } from './uploader-list.component';\nimport { AXUploadRequest } from './uploader.models';\nimport { AXFileService } from '@acorex/core/file';\n\n@Injectable({ providedIn: 'root' })\nexport class AXUploaderService {\n\n private dialog: Dialog = inject(Dialog);\n private fileService: AXFileService = inject(AXFileService);\n private files$: BehaviorSubject<AXUploadRequest[]> = new BehaviorSubject<AXUploadRequest[]>([]);\n public get files(): BehaviorSubject<AXUploadRequest[]> {\n return this.files$;\n }\n\n private dialogRef: DialogRef | undefined;\n\n\n private showDialog() {\n const positionStrategy = new GlobalPositionStrategy();\n if (!this.dialogRef) {\n this.dialogRef = this.dialog.open(AXUploaderListComponent, {\n hasBackdrop: false,\n closeOnNavigation: false,\n width: '320px',\n maxWidth: 320,\n panelClass: [\n 'ax-uploader-list-pane',\n 'ax-animate-animated',\n 'ax-animate-fadeIn',\n 'ax-animate-faster',\n ],\n positionStrategy: positionStrategy.bottom().end('24px'),\n }) as DialogRef;\n }\n }\n\n closeDialog() {\n this.dialogRef?.close();\n this.dialogRef = undefined;\n }\n\n private convertFileToRequest(file: File): AXUploadRequest {\n return new AXUploadRequest(file);\n }\n\n private startUpload() {\n this.files.value.filter(c => c.status() == 'new').forEach(c => {\n c.upload();\n });\n }\n\n async browse(): Promise<AXUploadRequest[]> {\n try {\n const files = await this.fileService.choose();\n if (files.length) {\n return this.add(files);\n }\n return Promise.resolve([]);\n } catch (error) {\n console.error(error);\n return Promise.resolve([]);\n }\n }\n\n async add(files: FileList | File[]): Promise<AXUploadRequest[]> {\n const list = Array.from(files).map(f => this.convertFileToRequest(f));\n const currentValue = this.files$.value;\n currentValue.push(...list);\n this.files$.next(currentValue);\n this.showDialog();\n this.startUpload();\n return Promise.resolve(list);\n }\n\n upload() {\n\n }\n\n cancelAll() {\n this.files$.value.forEach(c => c.cancel());\n this.closeDialog();\n }\n\n remove(item: AXUploadRequest) {\n let currentValue = this.files$.value;\n currentValue = currentValue.filter(c => c != item);\n this.files$.next(currentValue);\n if (currentValue.length == 0) {\n this.closeDialog();\n }\n }\n}\n","import { AXFileService } from '@acorex/core/file';\nimport { AXTranslator } from '@acorex/core/translation';\nimport { Directive, ElementRef, HostBinding, Input, OnDestroy, inject } from '@angular/core';\nimport { AXUploaderService } from './uploader.service';\n@Directive({\n selector: '[axUploaderZone]',\n})\nexport class AXUploaderZoneDirective implements OnDestroy {\n @Input() multiple = true;\n private fileService: AXFileService = inject(AXFileService);\n private uploadService: AXUploaderService = inject(AXUploaderService);\n private element: HTMLElement;\n\n stateClass = 'ax-uploader-overlay-state';\n overlayElement: HTMLDivElement;\n\n init() {\n this.element = this.elementRef.nativeElement as HTMLElement;\n this.element.style.position = 'relative';\n }\n\n constructor(private elementRef: ElementRef) {\n this.init();\n this.element.addEventListener('dragenter', this.handleDragEnter.bind(this), true);\n this.element.addEventListener('dragover', this.handleDragOver.bind(this), true);\n this.element.addEventListener('drop', this.handleOnDrop.bind(this), true);\n this.element.addEventListener('dragleave', this.removeZone.bind(this), true);\n }\n\n ngOnDestroy(): void {\n this.element.removeEventListener('dragenter', this.handleDragEnter.bind(this));\n this.element.removeEventListener('drop', this.handleOnDrop.bind(this));\n this.element.removeEventListener('dragover', this.handleDragOver.bind(this));\n this.element.removeEventListener('dragleave', this.removeZone.bind(this));\n }\n private handleDragEnter(event: Event) {\n this.createZone();\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n private handleOnDrop(event: DragEvent) {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.uploadService.add(event.dataTransfer?.files);\n this.removeZone();\n }\n\n private handleDragOver(event: Event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n private createZone() {\n this.overlayElement = document.createElement('div');\n this.overlayElement.classList.add('ax-uploader-overlay-state');\n\n const icon: HTMLSpanElement = document.createElement('span');\n icon.classList.add('ax-icon', 'ax-icon-upload');\n\n const text = document.createElement('span');\n text.innerText = AXTranslator.get('uploader.zone.text');\n\n this.overlayElement.appendChild(icon);\n this.overlayElement.appendChild(text);\n\n this.element.appendChild(this.overlayElement);\n }\n\n private removeZone() {\n this.overlayElement.remove();\n }\n\n @HostBinding('class')\n get __hostClass(): string {\n return `ax-drop-zone`;\n }\n}\n","import { MXBaseComponent } from '@acorex/components/common';\nimport { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ax-uploader-drop-zone',\n templateUrl: './uploader-drop-zone.component.html',\n styleUrls: ['./uploader.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXUploaderDropZoneComponent extends MXBaseComponent {}\n","<div class=\"ax-uploader-drop-zone-container\" axUploaderZone>\n <ax-icon class=\"ax-icon ax-icon-upload\"></ax-icon>\n <div class=\"ax-uploader-drop-zone-description\">\n <span>Drag & Drop or <a href=\"#\">Choose file</a> to upload</span>\n <p>SVG, PNG, JPG or GIF (MAX. 800x400px)</p>\n </div>\n</div>","import { AXButtonModule } from '@acorex/components/button';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { AXProgressBarModule } from '@acorex/components/progress-bar';\nimport { AXFileModule } from '@acorex/core/file';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { HttpClientModule } from '@angular/common/http';\nimport { AXUploaderDropZoneComponent } from './uploader-drop-zone.component';\nimport { AXUploaderListComponent } from './uploader-list.component';\nimport { AXUploaderZoneDirective } from './uploader-zone.directive';\nimport { AXUploaderService } from './uploader.service';\nimport { AXFormatModule } from '@acorex/core/format';\nimport { AXDateTimeModule } from '@acorex/core/dateTime';\nimport { AXCircularProgressModule } from '@acorex/components/circular-progress';\n\n@NgModule({\n declarations: [\n AXUploaderDropZoneComponent,\n AXUploaderListComponent,\n AXUploaderZoneDirective,\n ],\n imports: [\n CommonModule,\n HttpClientModule,\n AXDecoratorModule,\n AXButtonModule,\n AXTranslationModule,\n AXProgressBarModule,\n AXFormatModule,\n AXFileModule,\n AXDateTimeModule,\n AXCircularProgressModule\n ],\n exports: [\n AXUploaderDropZoneComponent,\n AXUploaderListComponent,\n AXUploaderZoneDirective,\n ],\n providers: [AXUploaderService],\n})\nexport class AXUploaderModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.AXUploaderZoneDirective"],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@acorex/components",
3
- "version": "7.17.14",
3
+ "version": "7.17.15",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
- "@angular/common": ">=17.0.2",
7
- "@angular/core": ">=17.0.2",
6
+ "@angular/common": ">=17.0.3",
7
+ "@angular/core": ">=17.0.3",
8
8
  "@angular/cdk": ">=17.0.0",
9
9
  "imask": ">=7.0.1",
10
10
  "angular-imask": ">=7.0.1",
@@ -1,6 +1,5 @@
1
1
  export * from './lib/uploader-drop-zone.component';
2
2
  export * from './lib/uploader-list.component';
3
- export * from './lib/uploader-overlay.component';
4
3
  export * from './lib/uploader-zone.directive';
5
4
  export * from './lib/uploader.module';
6
5
  export * from './lib/uploader.service';
@@ -1,21 +1,12 @@
1
- import { AXComponentCloseEvent, MXBaseComponent } from '@acorex/components/common';
2
- import { DialogRef } from '@angular/cdk/dialog';
1
+ import { MXBaseComponent } from '@acorex/components/common';
2
+ import { AXUploaderService } from './uploader.service';
3
3
  import * as i0 from "@angular/core";
4
- export interface AXUploaderItem {
5
- type: 'picture' | 'doc' | 'pdf' | 'archive' | 'video' | 'unknow';
6
- name: string;
7
- size: number;
8
- description?: string;
9
- }
10
4
  export declare class AXUploaderListComponent extends MXBaseComponent {
11
- private dialogRef;
12
- data: any;
13
- items: any[];
14
5
  leftTime: number;
15
6
  isCollapsed: boolean;
16
- private uploadService;
17
- constructor(dialogRef: DialogRef<AXComponentCloseEvent>);
18
- upload(file: any): void;
7
+ protected uploadService: AXUploaderService;
8
+ constructor();
9
+ upload(file: File): void;
19
10
  toggle(): void;
20
11
  close(): void;
21
12
  static ɵfac: i0.ɵɵFactoryDeclaration<AXUploaderListComponent, never>;
@@ -0,0 +1,11 @@
1
+ export type AXUploadStatus = 'new' | 'inprogress' | 'completed' | 'faild' | 'canceled';
2
+ export declare class AXUploadRequest {
3
+ private file;
4
+ get name(): string;
5
+ get size(): number;
6
+ readonly progress: import("@angular/core").WritableSignal<number>;
7
+ readonly status: import("@angular/core").WritableSignal<AXUploadStatus>;
8
+ constructor(file: File);
9
+ upload(): Promise<void>;
10
+ cancel(): Promise<void>;
11
+ }