@wavemaker/app-ng-runtime 12.0.0-next.141131 → 12.0.0-next.141138

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 (398) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +402 -440
  2. app-ng-runtime/build-task/esm2022/basic/default/anchor/anchor.build.mjs +2 -2
  3. app-ng-runtime/build-task/esm2022/basic/default/html/html.build.mjs +2 -2
  4. app-ng-runtime/build-task/esm2022/basic/default/icon/icon.build.mjs +2 -2
  5. app-ng-runtime/build-task/esm2022/basic/default/label/label.build.mjs +2 -2
  6. app-ng-runtime/build-task/esm2022/basic/default/picture/picture.build.mjs +2 -2
  7. app-ng-runtime/build-task/esm2022/basic/default/spinner/spinner.build.mjs +2 -2
  8. app-ng-runtime/build-task/esm2022/basic/progress/progress-circle/progress-circle.build.mjs +7 -2
  9. app-ng-runtime/build-task/esm2022/basic/rich-text-editor/rich-text-editor.build.mjs +2 -2
  10. app-ng-runtime/build-task/esm2022/containers/accordion/accordion-pane/accordion-pane.build.mjs +2 -2
  11. app-ng-runtime/build-task/esm2022/containers/accordion/accordion.build.mjs +3 -3
  12. app-ng-runtime/build-task/esm2022/containers/tile/tile.build.mjs +2 -2
  13. app-ng-runtime/build-task/esm2022/containers/wizard/wizard.build.mjs +2 -2
  14. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +3 -4
  15. app-ng-runtime/build-task/esm2022/device/barcode-scanner/barcode-scanner.build.mjs +2 -2
  16. app-ng-runtime/build-task/esm2022/device/camera/camera.build.mjs +2 -2
  17. app-ng-runtime/build-task/esm2022/dialogs/alert-dialog/alert-dialog.build.mjs +2 -2
  18. app-ng-runtime/build-task/esm2022/input/calendar/calendar.build.mjs +2 -2
  19. app-ng-runtime/build-task/esm2022/input/chips/chips.build.mjs +2 -2
  20. app-ng-runtime/build-task/esm2022/input/color-picker/color-picker.build.mjs +3 -3
  21. app-ng-runtime/build-task/esm2022/input/currency/currency.build.mjs +3 -3
  22. app-ng-runtime/build-task/esm2022/input/default/button/button.build.mjs +2 -2
  23. app-ng-runtime/build-task/esm2022/input/default/button-group/button-group.build.mjs +2 -2
  24. app-ng-runtime/build-task/esm2022/input/default/switch/switch.build.mjs +2 -2
  25. app-ng-runtime/build-task/esm2022/input/file-upload/file-upload.build.mjs +6 -2
  26. app-ng-runtime/build-task/esm2022/page/footer/footer.build.mjs +2 -2
  27. app-ng-runtime/build-task/esm2022/page/header/header.build.mjs +2 -2
  28. app-ng-runtime/build-task/esm2022/page/layout.build.mjs +2 -2
  29. app-ng-runtime/build-task/esm2022/page/left-panel/left-panel.build.mjs +2 -2
  30. app-ng-runtime/build-task/esm2022/page/page.build.mjs +2 -2
  31. app-ng-runtime/build-task/esm2022/page/right-panel/right-panel.build.mjs +2 -2
  32. app-ng-runtime/build-task/esm2022/page/top-nav/top-nav.build.mjs +2 -2
  33. app-ng-runtime/build-task/esm2022/public_api.mjs +1 -3
  34. app-ng-runtime/build-task/fesm2022/index.mjs +403 -443
  35. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  36. app-ng-runtime/build-task/public_api.d.ts +0 -2
  37. app-ng-runtime/components/advanced/carousel/bundles/index.umd.js +1 -1
  38. app-ng-runtime/components/advanced/carousel/esm2022/carousel.animator.mjs +2 -2
  39. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs +1 -1
  40. app-ng-runtime/components/advanced/carousel/fesm2022/index.mjs.map +1 -1
  41. app-ng-runtime/components/base/bundles/index.umd.js +22 -69
  42. app-ng-runtime/components/base/components.module.d.ts +11 -12
  43. app-ng-runtime/components/base/esm2022/components.module.mjs +1 -5
  44. app-ng-runtime/components/base/esm2022/pipes/custom-pipes.mjs +3 -3
  45. app-ng-runtime/components/base/esm2022/public_api.mjs +1 -2
  46. app-ng-runtime/components/base/esm2022/utils/live-utils.mjs +8 -2
  47. app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +15 -30
  48. app-ng-runtime/components/base/fesm2022/index.mjs +23 -69
  49. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  50. app-ng-runtime/components/base/pipes/custom-pipes.d.ts +1 -1
  51. app-ng-runtime/components/base/public_api.d.ts +0 -1
  52. app-ng-runtime/components/base/widgets/common/base/base.component.d.ts +5 -10
  53. app-ng-runtime/components/basic/default/anchor/anchor.component.d.ts +1 -0
  54. app-ng-runtime/components/basic/default/audio/audio.component.d.ts +3 -0
  55. app-ng-runtime/components/basic/default/bundles/index.umd.js +39 -19
  56. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.component.mjs +4 -4
  57. app-ng-runtime/components/basic/default/esm2022/anchor/anchor.props.mjs +2 -1
  58. app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +14 -6
  59. app-ng-runtime/components/basic/default/esm2022/audio/audio.props.mjs +2 -1
  60. app-ng-runtime/components/basic/default/esm2022/html/html.props.mjs +2 -1
  61. app-ng-runtime/components/basic/default/esm2022/icon/icon.component.mjs +6 -7
  62. app-ng-runtime/components/basic/default/esm2022/icon/icon.props.mjs +2 -1
  63. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.component.mjs +3 -3
  64. app-ng-runtime/components/basic/default/esm2022/iframe/iframe.props.mjs +3 -2
  65. app-ng-runtime/components/basic/default/esm2022/label/label.props.mjs +1 -1
  66. app-ng-runtime/components/basic/default/esm2022/picture/picture.directive.mjs +2 -2
  67. app-ng-runtime/components/basic/default/esm2022/picture/picture.props.mjs +3 -1
  68. app-ng-runtime/components/basic/default/esm2022/spinner/spinner.props.mjs +3 -2
  69. app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +8 -4
  70. app-ng-runtime/components/basic/default/esm2022/video/video.props.mjs +2 -1
  71. app-ng-runtime/components/basic/default/fesm2022/index.mjs +39 -19
  72. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  73. app-ng-runtime/components/basic/default/icon/icon.component.d.ts +1 -0
  74. app-ng-runtime/components/basic/default/iframe/iframe.component.d.ts +1 -0
  75. app-ng-runtime/components/basic/default/picture/picture.directive.d.ts +2 -1
  76. app-ng-runtime/components/basic/default/video/video.component.d.ts +2 -0
  77. app-ng-runtime/components/basic/progress/bundles/index.umd.js +17 -9
  78. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +9 -5
  79. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.props.mjs +2 -1
  80. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +8 -6
  81. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.props.mjs +2 -1
  82. app-ng-runtime/components/basic/progress/fesm2022/index.mjs +17 -9
  83. app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
  84. app-ng-runtime/components/basic/progress/progress-bar/progress-bar.component.d.ts +2 -0
  85. app-ng-runtime/components/basic/progress/progress-circle/progress-circle.component.d.ts +3 -1
  86. app-ng-runtime/components/basic/rich-text-editor/bundles/index.umd.js +2 -0
  87. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +2 -1
  88. app-ng-runtime/components/basic/rich-text-editor/esm2022/rich-text-editor.props.mjs +2 -1
  89. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs +2 -0
  90. app-ng-runtime/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  91. app-ng-runtime/components/basic/search/bundles/index.umd.js +35 -40
  92. app-ng-runtime/components/basic/search/esm2022/search.component.mjs +37 -40
  93. app-ng-runtime/components/basic/search/esm2022/search.props.mjs +3 -5
  94. app-ng-runtime/components/basic/search/fesm2022/index.mjs +35 -40
  95. app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
  96. app-ng-runtime/components/basic/search/search.component.d.ts +4 -5
  97. app-ng-runtime/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +1 -0
  98. app-ng-runtime/components/containers/accordion/bundles/index.umd.js +15 -9
  99. app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +13 -10
  100. app-ng-runtime/components/containers/accordion/esm2022/accordion.directive.mjs +4 -1
  101. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +15 -9
  102. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  103. app-ng-runtime/components/containers/panel/bundles/index.umd.js +14 -14
  104. app-ng-runtime/components/containers/panel/esm2022/panel.component.mjs +15 -15
  105. app-ng-runtime/components/containers/panel/fesm2022/index.mjs +14 -14
  106. app-ng-runtime/components/containers/panel/fesm2022/index.mjs.map +1 -1
  107. app-ng-runtime/components/containers/tabs/bundles/index.umd.js +6 -14
  108. app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +7 -14
  109. app-ng-runtime/components/containers/tabs/esm2022/tabs.props.mjs +2 -3
  110. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +6 -14
  111. app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  112. app-ng-runtime/components/containers/tabs/tabs.component.d.ts +0 -1
  113. app-ng-runtime/components/containers/wizard/bundles/index.umd.js +23 -6
  114. app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +24 -7
  115. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +23 -6
  116. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  117. app-ng-runtime/components/containers/wizard/wizard.component.d.ts +1 -0
  118. app-ng-runtime/components/data/form/bundles/index.umd.js +4 -0
  119. app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +5 -3
  120. app-ng-runtime/components/data/form/fesm2022/index.mjs +4 -2
  121. app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
  122. app-ng-runtime/components/data/form/form-field/form-field.directive.d.ts +1 -0
  123. app-ng-runtime/components/data/list/bundles/index.umd.js +11 -11
  124. app-ng-runtime/components/data/list/esm2022/list.component.mjs +12 -12
  125. app-ng-runtime/components/data/list/fesm2022/index.mjs +11 -11
  126. app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
  127. app-ng-runtime/components/data/live-table/bundles/index.umd.js +2 -2
  128. app-ng-runtime/components/data/live-table/esm2022/live-table.component.mjs +3 -3
  129. app-ng-runtime/components/data/live-table/fesm2022/index.mjs +2 -2
  130. app-ng-runtime/components/data/live-table/fesm2022/index.mjs.map +1 -1
  131. app-ng-runtime/components/data/pagination/bundles/index.umd.js +2 -0
  132. app-ng-runtime/components/data/pagination/esm2022/pagination.component.mjs +3 -1
  133. app-ng-runtime/components/data/pagination/fesm2022/index.mjs +2 -0
  134. app-ng-runtime/components/data/pagination/fesm2022/index.mjs.map +1 -1
  135. app-ng-runtime/components/data/table/bundles/index.umd.js +44 -10
  136. app-ng-runtime/components/data/table/esm2022/table-column/table-column.directive.mjs +14 -5
  137. app-ng-runtime/components/data/table/esm2022/table.component.mjs +30 -7
  138. app-ng-runtime/components/data/table/esm2022/table.props.mjs +3 -1
  139. app-ng-runtime/components/data/table/fesm2022/index.mjs +45 -11
  140. app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
  141. app-ng-runtime/components/data/table/table.component.d.ts +8 -1
  142. app-ng-runtime/components/dialogs/alert-dialog/bundles/index.umd.js +6 -4
  143. app-ng-runtime/components/dialogs/alert-dialog/esm2022/alert-dialog.component.mjs +7 -5
  144. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs +6 -4
  145. app-ng-runtime/components/dialogs/alert-dialog/fesm2022/index.mjs.map +1 -1
  146. app-ng-runtime/components/dialogs/confirm-dialog/bundles/index.umd.js +8 -5
  147. app-ng-runtime/components/dialogs/confirm-dialog/esm2022/confirm-dialog.component.mjs +9 -6
  148. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs +8 -5
  149. app-ng-runtime/components/dialogs/confirm-dialog/fesm2022/index.mjs.map +1 -1
  150. app-ng-runtime/components/dialogs/default/base-dialog.d.ts +0 -2
  151. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +23 -17
  152. app-ng-runtime/components/dialogs/default/dialog-header/dialog-header.component.d.ts +2 -1
  153. app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +13 -1
  154. app-ng-runtime/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +2 -14
  155. app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +12 -6
  156. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +24 -18
  157. app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  158. app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +7 -25
  159. app-ng-runtime/components/dialogs/design-dialog/dialog.component.d.ts +2 -3
  160. app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.component.mjs +8 -26
  161. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +7 -25
  162. app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  163. app-ng-runtime/components/dialogs/iframe-dialog/bundles/index.umd.js +9 -5
  164. app-ng-runtime/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +10 -6
  165. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs +9 -5
  166. app-ng-runtime/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  167. app-ng-runtime/components/dialogs/partial-dialog/bundles/index.umd.js +9 -5
  168. app-ng-runtime/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +10 -6
  169. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs +9 -5
  170. app-ng-runtime/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  171. app-ng-runtime/components/input/calendar/bundles/index.umd.js +2 -4
  172. app-ng-runtime/components/input/calendar/esm2022/calendar.component.mjs +3 -5
  173. app-ng-runtime/components/input/calendar/fesm2022/index.mjs +2 -4
  174. app-ng-runtime/components/input/calendar/fesm2022/index.mjs.map +1 -1
  175. app-ng-runtime/components/input/chips/bundles/index.umd.js +7 -3
  176. app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +7 -4
  177. app-ng-runtime/components/input/chips/esm2022/chips.props.mjs +2 -1
  178. app-ng-runtime/components/input/chips/fesm2022/index.mjs +7 -3
  179. app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
  180. app-ng-runtime/components/input/color-picker/bundles/index.umd.js +5 -3
  181. app-ng-runtime/components/input/color-picker/color-picker.component.d.ts +1 -0
  182. app-ng-runtime/components/input/color-picker/esm2022/color-picker.component.mjs +6 -5
  183. app-ng-runtime/components/input/color-picker/esm2022/color-picker.props.mjs +2 -1
  184. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs +5 -3
  185. app-ng-runtime/components/input/color-picker/fesm2022/index.mjs.map +1 -1
  186. app-ng-runtime/components/input/currency/bundles/index.umd.js +4 -3
  187. app-ng-runtime/components/input/currency/currency.component.d.ts +1 -0
  188. app-ng-runtime/components/input/currency/esm2022/currency.component.mjs +6 -6
  189. app-ng-runtime/components/input/currency/esm2022/currency.props.mjs +2 -1
  190. app-ng-runtime/components/input/currency/fesm2022/index.mjs +4 -3
  191. app-ng-runtime/components/input/currency/fesm2022/index.mjs.map +1 -1
  192. app-ng-runtime/components/input/default/bundles/index.umd.js +257 -197
  193. app-ng-runtime/components/input/default/button/button.component.d.ts +1 -0
  194. app-ng-runtime/components/input/default/checkbox/checkbox.component.d.ts +1 -0
  195. app-ng-runtime/components/input/default/checkboxset/checkboxset.component.d.ts +0 -1
  196. app-ng-runtime/components/input/default/esm2022/button/button.component.mjs +1 -1
  197. app-ng-runtime/components/input/default/esm2022/button/button.props.mjs +2 -1
  198. app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +8 -7
  199. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.component.mjs +7 -7
  200. app-ng-runtime/components/input/default/esm2022/checkbox/checkbox.props.mjs +2 -1
  201. app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +25 -23
  202. app-ng-runtime/components/input/default/esm2022/number/number.component.mjs +5 -5
  203. app-ng-runtime/components/input/default/esm2022/number/number.props.mjs +3 -1
  204. app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +32 -30
  205. app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +60 -30
  206. app-ng-runtime/components/input/default/esm2022/select/select.props.mjs +2 -1
  207. app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +39 -64
  208. app-ng-runtime/components/input/default/esm2022/switch/switch.props.mjs +2 -2
  209. app-ng-runtime/components/input/default/esm2022/text/base/base-input.mjs +1 -4
  210. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.component.mjs +5 -5
  211. app-ng-runtime/components/input/default/esm2022/text/calendar/input-calendar.props.mjs +2 -1
  212. app-ng-runtime/components/input/default/esm2022/text/color/input-color.component.mjs +5 -5
  213. app-ng-runtime/components/input/default/esm2022/text/color/input-color.props.mjs +2 -1
  214. app-ng-runtime/components/input/default/esm2022/text/email/input-email.component.mjs +5 -5
  215. app-ng-runtime/components/input/default/esm2022/text/email/input-email.props.mjs +2 -1
  216. app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +51 -14
  217. app-ng-runtime/components/input/default/esm2022/text/number/input-number.component.mjs +5 -5
  218. app-ng-runtime/components/input/default/esm2022/text/number/input-number.props.mjs +2 -1
  219. app-ng-runtime/components/input/default/esm2022/text/text/input-text.component.mjs +5 -5
  220. app-ng-runtime/components/input/default/esm2022/text/text/input-text.props.mjs +2 -1
  221. app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +9 -6
  222. app-ng-runtime/components/input/default/esm2022/textarea/textarea.props.mjs +2 -1
  223. app-ng-runtime/components/input/default/fesm2022/index.mjs +257 -197
  224. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  225. app-ng-runtime/components/input/default/number/number.component.d.ts +1 -0
  226. app-ng-runtime/components/input/default/radioset/radioset.component.d.ts +0 -1
  227. app-ng-runtime/components/input/default/select/select.component.d.ts +4 -4
  228. app-ng-runtime/components/input/default/switch/switch.component.d.ts +0 -2
  229. app-ng-runtime/components/input/default/text/calendar/input-calendar.component.d.ts +1 -0
  230. app-ng-runtime/components/input/default/text/color/input-color.component.d.ts +1 -0
  231. app-ng-runtime/components/input/default/text/email/input-email.component.d.ts +1 -0
  232. app-ng-runtime/components/input/default/text/locale/number-locale.d.ts +1 -0
  233. app-ng-runtime/components/input/default/text/number/input-number.component.d.ts +1 -0
  234. app-ng-runtime/components/input/default/text/text/input-text.component.d.ts +1 -0
  235. app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +4 -2
  236. app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +2 -1
  237. app-ng-runtime/components/input/epoch/bundles/index.umd.js +31 -21
  238. app-ng-runtime/components/input/epoch/date/date.component.d.ts +1 -0
  239. app-ng-runtime/components/input/epoch/date-time/date-time.component.d.ts +2 -1
  240. app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +10 -6
  241. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +8 -8
  242. app-ng-runtime/components/input/epoch/esm2022/date/date.props.mjs +2 -1
  243. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +12 -9
  244. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.props.mjs +2 -1
  245. app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +7 -7
  246. app-ng-runtime/components/input/epoch/esm2022/time/time.props.mjs +2 -1
  247. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +28 -18
  248. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  249. app-ng-runtime/components/input/epoch/time/time.component.d.ts +1 -0
  250. app-ng-runtime/components/input/file-upload/bundles/index.umd.js +241 -112
  251. app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +238 -115
  252. app-ng-runtime/components/input/file-upload/esm2022/file-upload.props.mjs +7 -1
  253. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +242 -113
  254. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  255. app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +23 -12
  256. app-ng-runtime/components/input/rating/bundles/index.umd.js +35 -26
  257. app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +37 -26
  258. app-ng-runtime/components/input/rating/esm2022/rating.props.mjs +1 -3
  259. app-ng-runtime/components/input/rating/fesm2022/index.mjs +36 -27
  260. app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
  261. app-ng-runtime/components/input/rating/rating.component.d.ts +1 -3
  262. app-ng-runtime/components/input/slider/bundles/index.umd.js +5 -6
  263. app-ng-runtime/components/input/slider/esm2022/slider.component.mjs +6 -8
  264. app-ng-runtime/components/input/slider/esm2022/slider.props.mjs +2 -1
  265. app-ng-runtime/components/input/slider/fesm2022/index.mjs +5 -6
  266. app-ng-runtime/components/input/slider/fesm2022/index.mjs.map +1 -1
  267. app-ng-runtime/components/input/slider/slider.component.d.ts +1 -0
  268. app-ng-runtime/components/navigation/breadcrumb/bundles/index.umd.js +6 -6
  269. app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +7 -7
  270. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs +6 -6
  271. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  272. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +10 -8
  273. app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +9 -8
  274. app-ng-runtime/components/navigation/menu/esm2022/menu.props.mjs +2 -1
  275. app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +2 -2
  276. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +10 -8
  277. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  278. app-ng-runtime/components/navigation/menu/menu.component.d.ts +1 -0
  279. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +121 -13
  280. app-ng-runtime/components/navigation/popover/esm2022/popover.component.mjs +122 -15
  281. app-ng-runtime/components/navigation/popover/esm2022/popover.props.mjs +2 -1
  282. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs +121 -13
  283. app-ng-runtime/components/navigation/popover/fesm2022/index.mjs.map +1 -1
  284. app-ng-runtime/components/navigation/popover/popover.component.d.ts +15 -3
  285. app-ng-runtime/components/page/default/bundles/index.umd.js +2 -1
  286. app-ng-runtime/components/page/default/esm2022/page.props.mjs +4 -3
  287. app-ng-runtime/components/page/default/fesm2022/index.mjs +2 -1
  288. app-ng-runtime/components/page/default/fesm2022/index.mjs.map +1 -1
  289. app-ng-runtime/components/page/footer/bundles/index.umd.js +2 -1
  290. app-ng-runtime/components/page/footer/esm2022/footer.props.mjs +3 -2
  291. app-ng-runtime/components/page/footer/fesm2022/index.mjs +2 -1
  292. app-ng-runtime/components/page/footer/fesm2022/index.mjs.map +1 -1
  293. app-ng-runtime/components/page/header/bundles/index.umd.js +2 -1
  294. app-ng-runtime/components/page/header/esm2022/header.props.mjs +3 -2
  295. app-ng-runtime/components/page/header/fesm2022/index.mjs +2 -1
  296. app-ng-runtime/components/page/header/fesm2022/index.mjs.map +1 -1
  297. app-ng-runtime/components/page/left-panel/bundles/index.umd.js +4 -7
  298. app-ng-runtime/components/page/left-panel/esm2022/left-panel.directive.mjs +5 -9
  299. app-ng-runtime/components/page/left-panel/esm2022/left-panel.props.mjs +3 -2
  300. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +6 -9
  301. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  302. app-ng-runtime/components/page/left-panel/left-panel.directive.d.ts +2 -2
  303. app-ng-runtime/components/page/right-panel/bundles/index.umd.js +4 -7
  304. app-ng-runtime/components/page/right-panel/esm2022/right-panel.directive.mjs +5 -9
  305. app-ng-runtime/components/page/right-panel/esm2022/right-panel.props.mjs +3 -2
  306. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +6 -9
  307. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  308. app-ng-runtime/components/page/right-panel/right-panel.directive.d.ts +2 -2
  309. app-ng-runtime/components/page/top-nav/bundles/index.umd.js +2 -1
  310. app-ng-runtime/components/page/top-nav/esm2022/top-nav.props.mjs +3 -2
  311. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs +2 -1
  312. app-ng-runtime/components/page/top-nav/fesm2022/index.mjs.map +1 -1
  313. app-ng-runtime/core/bundles/index.umd.js +11 -31
  314. app-ng-runtime/core/enums/enums.d.ts +1 -2
  315. app-ng-runtime/core/esm2022/enums/enums.mjs +1 -2
  316. app-ng-runtime/core/esm2022/public_api.mjs +2 -2
  317. app-ng-runtime/core/esm2022/types/types.mjs +1 -4
  318. app-ng-runtime/core/esm2022/utils/build-utils.mjs +7 -12
  319. app-ng-runtime/core/esm2022/utils/utils.mjs +4 -12
  320. app-ng-runtime/core/fesm2022/index.mjs +11 -29
  321. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  322. app-ng-runtime/core/public_api.d.ts +1 -1
  323. app-ng-runtime/core/types/types.d.ts +1 -5
  324. app-ng-runtime/core/utils/utils.d.ts +1 -2
  325. app-ng-runtime/mobile/components/device/barcode-scanner/bundles/index.umd.js +2 -1
  326. app-ng-runtime/mobile/components/device/barcode-scanner/esm2022/barcode-scanner.props.mjs +3 -2
  327. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs +2 -1
  328. app-ng-runtime/mobile/components/device/barcode-scanner/fesm2022/index.mjs.map +1 -1
  329. app-ng-runtime/mobile/components/device/camera/bundles/index.umd.js +2 -1
  330. app-ng-runtime/mobile/components/device/camera/esm2022/camera.props.mjs +3 -2
  331. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs +2 -1
  332. app-ng-runtime/mobile/components/device/camera/fesm2022/index.mjs.map +1 -1
  333. app-ng-runtime/mobile/core/bundles/index.umd.js +18 -2
  334. app-ng-runtime/mobile/core/esm2022/native.xhr.mjs +19 -3
  335. app-ng-runtime/mobile/core/fesm2022/index.mjs +18 -2
  336. app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
  337. app-ng-runtime/package.json +1 -1
  338. app-ng-runtime/runtime/base/bundles/index.umd.js +11 -300
  339. app-ng-runtime/runtime/base/components/app-component/app.component.d.ts +2 -3
  340. app-ng-runtime/runtime/base/esm2022/components/app-component/app.component.mjs +5 -5
  341. app-ng-runtime/runtime/base/esm2022/guards/can-deactivate-page.guard.mjs +5 -4
  342. app-ng-runtime/runtime/base/esm2022/public_api.mjs +1 -2
  343. app-ng-runtime/runtime/base/esm2022/runtime-base.module.mjs +1 -6
  344. app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +2 -2
  345. app-ng-runtime/runtime/base/esm2022/types/types.mjs +1 -4
  346. app-ng-runtime/runtime/base/fesm2022/index.mjs +10 -298
  347. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  348. app-ng-runtime/runtime/base/guards/can-deactivate-page.guard.d.ts +2 -1
  349. app-ng-runtime/runtime/base/public_api.d.ts +0 -1
  350. app-ng-runtime/runtime/base/runtime-base.module.d.ts +8 -9
  351. app-ng-runtime/runtime/base/types/types.d.ts +1 -5
  352. app-ng-runtime/runtime/dynamic/bundles/index.umd.js +13 -49
  353. app-ng-runtime/runtime/dynamic/esm2022/app/app.module.mjs +3 -8
  354. app-ng-runtime/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +7 -23
  355. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +11 -50
  356. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  357. app-ng-runtime/scripts/@wavemaker/nvd3/build/nv.d3.min.js +1 -1
  358. app-ng-runtime/scripts/datatable/datatable.js +38 -34
  359. app-ng-runtime/scripts/summernote/dist/summernote-lite.min.js +2 -3
  360. app-ng-runtime/transpiler/bundles/index.umd.js +0 -5
  361. app-ng-runtime/transpiler/esm2022/build.mjs +1 -4
  362. app-ng-runtime/transpiler/esm2022/imports.mjs +1 -3
  363. app-ng-runtime/transpiler/fesm2022/index.mjs +0 -5
  364. app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
  365. app-ng-runtime/variables/bundles/index.umd.js +34 -16
  366. app-ng-runtime/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +35 -17
  367. app-ng-runtime/variables/fesm2022/index.mjs +34 -16
  368. app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
  369. app-ng-runtime/variables/manager/variable/web-socket-variable.manager.d.ts +0 -4
  370. app-ng-runtime/build-task/advanced/custom-widget-container/custom-widget-container.build.d.ts +0 -2
  371. app-ng-runtime/build-task/advanced/custom-widget-wrapper/custom-widget-wrapper.build.d.ts +0 -2
  372. app-ng-runtime/build-task/esm2022/advanced/custom-widget-container/custom-widget-container.build.mjs +0 -15
  373. app-ng-runtime/build-task/esm2022/advanced/custom-widget-wrapper/custom-widget-wrapper.build.mjs +0 -26
  374. app-ng-runtime/components/advanced/custom/.npmignore +0 -2
  375. app-ng-runtime/components/advanced/custom/bundles/index.umd.js +0 -232
  376. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +0 -19
  377. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget.props.d.ts +0 -2
  378. app-ng-runtime/components/advanced/custom/custom-widget-prop.d.ts +0 -1
  379. app-ng-runtime/components/advanced/custom/custom-widget.directive.d.ts +0 -19
  380. app-ng-runtime/components/advanced/custom/custom-widget.module.d.ts +0 -10
  381. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +0 -102
  382. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget.props.mjs +0 -12
  383. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-prop.mjs +0 -8
  384. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.directive.mjs +0 -68
  385. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.module.mjs +0 -32
  386. app-ng-runtime/components/advanced/custom/esm2022/index.mjs +0 -5
  387. app-ng-runtime/components/advanced/custom/esm2022/public_api.mjs +0 -4
  388. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs +0 -215
  389. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs.map +0 -1
  390. app-ng-runtime/components/advanced/custom/index.d.ts +0 -5
  391. app-ng-runtime/components/advanced/custom/package.json +0 -23
  392. app-ng-runtime/components/advanced/custom/public_api.d.ts +0 -3
  393. app-ng-runtime/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +0 -39
  394. app-ng-runtime/components/base/widgets/common/base/custom-widget-container.directive.d.ts +0 -14
  395. app-ng-runtime/runtime/base/components/base-custom-widget.component.d.ts +0 -73
  396. app-ng-runtime/runtime/base/esm2022/components/base-custom-widget.component.mjs +0 -294
  397. app-ng-runtime/runtime/dynamic/app/services/customwidget-config-provider.service.d.ts +0 -8
  398. app-ng-runtime/runtime/dynamic/esm2022/app/services/customwidget-config-provider.service.mjs +0 -22
@@ -6,13 +6,15 @@ import * as i3 from '@wm/components/base';
6
6
  import { PROP_STRING, PROP_NUMBER, PROP_BOOLEAN, register, registerFormWidget, StylableComponent, styler, provideAsWidgetRef, WmComponentsModule } from '@wm/components/base';
7
7
  import { Subject } from 'rxjs';
8
8
  import * as i1 from '@wm/core';
9
- import { FormWidgetType, isImageFile, isAudioFile, isVideoFile, DataSource } from '@wm/core';
9
+ import { FormWidgetType, isImageFile, isAudioFile, isVideoFile, DataSource, getWmProjectProperties, IDGenerator } from '@wm/core';
10
10
  import { toLower, includes, forEach, isEmpty } from 'lodash-es';
11
11
 
12
12
  const registerProps = () => {
13
13
  register('wm-fileupload', new Map([
14
14
  ['caption', PROP_STRING],
15
15
  ['name', PROP_STRING],
16
+ ['hint', PROP_STRING],
17
+ ['arialabel', PROP_STRING],
16
18
  ['tabindex', PROP_NUMBER],
17
19
  ['multiple', PROP_BOOLEAN],
18
20
  ['fileuploadmessage', PROP_STRING],
@@ -29,6 +31,10 @@ const registerProps = () => {
29
31
  ['selectedFiles', PROP_STRING],
30
32
  ['destination', PROP_STRING],
31
33
  ['filelistheight', PROP_NUMBER],
34
+ ['width', { value: 'auto', ...PROP_STRING }],
35
+ ['showprogressbar', PROP_BOOLEAN],
36
+ ['showprogressbarpercentage', PROP_BOOLEAN],
37
+ ['deleteiconhint', { value: 'Delete', ...PROP_STRING }]
32
38
  ]));
33
39
  registerFormWidget(FormWidgetType.UPLOAD, new Map([
34
40
  ['disabled', PROP_BOOLEAN],
@@ -46,7 +52,7 @@ const _c2 = (a0, a1) => ({ height: a0, overflow: a1 });
46
52
  const _c3 = a0 => ({ width: a0 });
47
53
  function FileUploadComponent_div_1_input_6_Template(rf, ctx) { if (rf & 1) {
48
54
  const _r3 = i0.ɵɵgetCurrentView();
49
- i0.ɵɵelementStart(0, "input", 13);
55
+ i0.ɵɵelementStart(0, "input", 15);
50
56
  i0.ɵɵlistener("click", function FileUploadComponent_div_1_input_6_Template_input_click_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onFileElemClick($event)); })("change", function FileUploadComponent_div_1_input_6_Template_input_change_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onFileSelect($event, $event.target.files)); });
51
57
  i0.ɵɵelementEnd();
52
58
  } if (rf & 2) {
@@ -54,6 +60,23 @@ function FileUploadComponent_div_1_input_6_Template(rf, ctx) { if (rf & 1) {
54
60
  i0.ɵɵproperty("disabled", ctx_r1.disabled)("accept", ctx_r1.chooseFilter);
55
61
  i0.ɵɵattribute("aria-label", ctx_r1.hint || "File selection field");
56
62
  } }
63
+ function FileUploadComponent_div_1_label_9_Template(rf, ctx) { if (rf & 1) {
64
+ i0.ɵɵelement(0, "label", 16);
65
+ } if (rf & 2) {
66
+ const ctx_r1 = i0.ɵɵnextContext(2);
67
+ i0.ɵɵproperty("innerHtml", ctx_r1.chooseFilter + " only ", i0.ɵɵsanitizeHtml);
68
+ } }
69
+ function FileUploadComponent_div_1_span_10_Template(rf, ctx) { if (rf & 1) {
70
+ i0.ɵɵelementStart(0, "span", 17);
71
+ i0.ɵɵtext(1, " . ");
72
+ i0.ɵɵelementEnd();
73
+ } }
74
+ function FileUploadComponent_div_1_label_11_Template(rf, ctx) { if (rf & 1) {
75
+ i0.ɵɵelement(0, "label", 16);
76
+ } if (rf & 2) {
77
+ const ctx_r1 = i0.ɵɵnextContext(2);
78
+ i0.ɵɵproperty("innerHtml", ctx_r1.maxfilesize + "MB max", i0.ɵɵsanitizeHtml);
79
+ } }
57
80
  function FileUploadComponent_div_1_Template(rf, ctx) { if (rf & 1) {
58
81
  const _r1 = i0.ɵɵgetCurrentView();
59
82
  i0.ɵɵelementStart(0, "div", 6)(1, "div", 7);
@@ -65,11 +88,13 @@ function FileUploadComponent_div_1_Template(rf, ctx) { if (rf & 1) {
65
88
  i0.ɵɵtemplate(6, FileUploadComponent_div_1_input_6_Template, 1, 3, "input", 11);
66
89
  i0.ɵɵelementStart(7, "a", 12);
67
90
  i0.ɵɵtext(8);
68
- i0.ɵɵelementEnd()()()()();
91
+ i0.ɵɵelementEnd()();
92
+ i0.ɵɵtemplate(9, FileUploadComponent_div_1_label_9_Template, 1, 1, "label", 13)(10, FileUploadComponent_div_1_span_10_Template, 2, 0, "span", 14)(11, FileUploadComponent_div_1_label_11_Template, 1, 1, "label", 13);
93
+ i0.ɵɵelementEnd()()();
69
94
  } if (rf & 2) {
70
95
  const ctx_r1 = i0.ɵɵnextContext();
71
96
  i0.ɵɵadvance();
72
- i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(8, _c1, ctx_r1.highlightDropArea));
97
+ i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(11, _c1, ctx_r1.highlightDropArea));
73
98
  i0.ɵɵadvance();
74
99
  i0.ɵɵclassMap(ctx_r1.iconclass);
75
100
  i0.ɵɵadvance(2);
@@ -80,34 +105,40 @@ function FileUploadComponent_div_1_Template(rf, ctx) { if (rf & 1) {
80
105
  i0.ɵɵproperty("ngIf", ctx_r1.multiple);
81
106
  i0.ɵɵadvance(2);
82
107
  i0.ɵɵtextInterpolate(ctx_r1.fileUploadMessage);
108
+ i0.ɵɵadvance();
109
+ i0.ɵɵproperty("ngIf", ctx_r1.chooseFilter);
110
+ i0.ɵɵadvance();
111
+ i0.ɵɵproperty("ngIf", ctx_r1.chooseFilter && ctx_r1.maxfilesize);
112
+ i0.ɵɵadvance();
113
+ i0.ɵɵproperty("ngIf", ctx_r1.maxfilesize);
83
114
  } }
84
115
  function FileUploadComponent_div_2_input_3_Template(rf, ctx) { if (rf & 1) {
85
116
  const _r4 = i0.ɵɵgetCurrentView();
86
- i0.ɵɵelementStart(0, "input", 13);
87
- i0.ɵɵlistener("click", function FileUploadComponent_div_2_input_3_Template_input_click_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onFileElemClick($event)); })("change", function FileUploadComponent_div_2_input_3_Template_input_change_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onFileSelect($event, $event.target.files)); });
117
+ i0.ɵɵelementStart(0, "input", 26);
118
+ i0.ɵɵlistener("change", function FileUploadComponent_div_2_input_3_Template_input_change_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onFileSelect($event, $event.target.files)); })("click", function FileUploadComponent_div_2_input_3_Template_input_click_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onFileElemClick($event)); });
88
119
  i0.ɵɵelementEnd();
89
120
  } if (rf & 2) {
90
121
  const ctx_r1 = i0.ɵɵnextContext(2);
91
- i0.ɵɵproperty("disabled", ctx_r1.disabled)("accept", ctx_r1.chooseFilter);
92
- i0.ɵɵattribute("aria-label", ctx_r1.hint || "File selection field");
122
+ i0.ɵɵproperty("accept", ctx_r1.chooseFilter)("disabled", ctx_r1.disabled);
123
+ i0.ɵɵattribute("aria-label", ctx_r1.arialabel || "File selection field");
93
124
  } }
94
125
  function FileUploadComponent_div_2_input_4_Template(rf, ctx) { if (rf & 1) {
95
126
  const _r5 = i0.ɵɵgetCurrentView();
96
- i0.ɵɵelementStart(0, "input", 21);
97
- i0.ɵɵlistener("click", function FileUploadComponent_div_2_input_4_Template_input_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onFileElemClick($event)); })("change", function FileUploadComponent_div_2_input_4_Template_input_change_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onFileSelect($event, $event.target.files)); });
127
+ i0.ɵɵelementStart(0, "input", 27);
128
+ i0.ɵɵlistener("change", function FileUploadComponent_div_2_input_4_Template_input_change_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onFileSelect($event, $event.target.files)); })("click", function FileUploadComponent_div_2_input_4_Template_input_click_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onFileElemClick($event)); });
98
129
  i0.ɵɵelementEnd();
99
130
  } if (rf & 2) {
100
131
  const ctx_r1 = i0.ɵɵnextContext(2);
101
- i0.ɵɵproperty("disabled", ctx_r1.disabled)("accept", ctx_r1.chooseFilter);
102
- i0.ɵɵattribute("aria-label", ctx_r1.hint || "File selection field");
132
+ i0.ɵɵproperty("accept", ctx_r1.chooseFilter)("disabled", ctx_r1.disabled);
133
+ i0.ɵɵattribute("aria-label", ctx_r1.arialabel || "File selection field");
103
134
  } }
104
135
  function FileUploadComponent_div_2_Template(rf, ctx) { if (rf & 1) {
105
- i0.ɵɵelementStart(0, "div", 14)(1, "div", 15)(2, "form", 10);
106
- i0.ɵɵtemplate(3, FileUploadComponent_div_2_input_3_Template, 1, 3, "input", 11)(4, FileUploadComponent_div_2_input_4_Template, 1, 3, "input", 16);
107
- i0.ɵɵelementStart(5, "button", 17);
108
- i0.ɵɵelement(6, "i", 18)(7, "span", 19);
136
+ i0.ɵɵelementStart(0, "div", 18)(1, "div", 19)(2, "form", 10);
137
+ i0.ɵɵtemplate(3, FileUploadComponent_div_2_input_3_Template, 1, 3, "input", 20)(4, FileUploadComponent_div_2_input_4_Template, 1, 3, "input", 21);
138
+ i0.ɵɵelementStart(5, "button", 22);
139
+ i0.ɵɵelement(6, "i", 23)(7, "span", 24);
109
140
  i0.ɵɵelementEnd()()();
110
- i0.ɵɵelement(8, "div", 20);
141
+ i0.ɵɵelement(8, "div", 25);
111
142
  i0.ɵɵelementEnd();
112
143
  } if (rf & 2) {
113
144
  const ctx_r1 = i0.ɵɵnextContext();
@@ -126,9 +157,9 @@ function FileUploadComponent_div_2_Template(rf, ctx) { if (rf & 1) {
126
157
  } }
127
158
  function FileUploadComponent_button_3_Template(rf, ctx) { if (rf & 1) {
128
159
  const _r6 = i0.ɵɵgetCurrentView();
129
- i0.ɵɵelementStart(0, "button", 22);
160
+ i0.ɵɵelementStart(0, "button", 28);
130
161
  i0.ɵɵlistener("click", function FileUploadComponent_button_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.openFileSelector()); });
131
- i0.ɵɵelement(1, "i")(2, "span", 19);
162
+ i0.ɵɵelement(1, "i")(2, "span", 24);
132
163
  i0.ɵɵelementEnd();
133
164
  } if (rf & 2) {
134
165
  const ctx_r1 = i0.ɵɵnextContext();
@@ -138,8 +169,15 @@ function FileUploadComponent_button_3_Template(rf, ctx) { if (rf & 1) {
138
169
  i0.ɵɵadvance();
139
170
  i0.ɵɵproperty("innerHTML", ctx_r1.caption, i0.ɵɵsanitizeHtml);
140
171
  } }
141
- function FileUploadComponent_ul_4_div_1_li_1_span_9_Template(rf, ctx) { if (rf & 1) {
142
- i0.ɵɵelementStart(0, "span", 36);
172
+ function FileUploadComponent_ul_4_ng_container_1_li_1_span_8_Template(rf, ctx) { if (rf & 1) {
173
+ i0.ɵɵelement(0, "span");
174
+ i0.ɵɵpipe(1, "stateClass");
175
+ } if (rf & 2) {
176
+ const ft_r7 = i0.ɵɵnextContext(2).$implicit;
177
+ i0.ɵɵclassMapInterpolate1("status-icon ", i0.ɵɵpipeBind1(1, 3, ft_r7.status), "");
178
+ } }
179
+ function FileUploadComponent_ul_4_ng_container_1_li_1_span_10_Template(rf, ctx) { if (rf & 1) {
180
+ i0.ɵɵelementStart(0, "span", 47);
143
181
  i0.ɵɵtext(1);
144
182
  i0.ɵɵpipe(2, "filesize");
145
183
  i0.ɵɵelementEnd();
@@ -148,130 +186,152 @@ function FileUploadComponent_ul_4_div_1_li_1_span_9_Template(rf, ctx) { if (rf &
148
186
  i0.ɵɵadvance();
149
187
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(2, 1, ft_r7.size, 0));
150
188
  } }
151
- function FileUploadComponent_ul_4_div_1_li_1_div_10_Template(rf, ctx) { if (rf & 1) {
152
- i0.ɵɵelementStart(0, "div", 37);
153
- i0.ɵɵelement(1, "div", 38);
189
+ function FileUploadComponent_ul_4_ng_container_1_li_1_span_11_Template(rf, ctx) { if (rf & 1) {
190
+ i0.ɵɵelement(0, "span", 34);
191
+ i0.ɵɵpipe(1, "stateClass");
192
+ } if (rf & 2) {
193
+ const ft_r7 = i0.ɵɵnextContext(2).$implicit;
194
+ const ctx_r1 = i0.ɵɵnextContext(2);
195
+ i0.ɵɵclassMapInterpolate1("status-icon ", i0.ɵɵpipeBind1(1, 4, ft_r7.status), "");
196
+ i0.ɵɵpropertyInterpolate("title", ft_r7.errMsg || ctx_r1.appLocale.MESSAGE_FILE_UPLOAD_FAILED);
197
+ } }
198
+ function FileUploadComponent_ul_4_ng_container_1_li_1_span_12_Template(rf, ctx) { if (rf & 1) {
199
+ i0.ɵɵelementStart(0, "span", 48);
200
+ i0.ɵɵtext(1, "Upload Failed");
201
+ i0.ɵɵelementEnd();
202
+ } }
203
+ function FileUploadComponent_ul_4_ng_container_1_li_1_div_13_Template(rf, ctx) { if (rf & 1) {
204
+ i0.ɵɵelementStart(0, "div", 49);
205
+ i0.ɵɵelement(1, "div", 50);
154
206
  i0.ɵɵelementEnd();
155
207
  } if (rf & 2) {
156
208
  const ft_r7 = i0.ɵɵnextContext(2).$implicit;
157
209
  i0.ɵɵadvance();
158
- i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(1, _c3, ft_r7.progress + "%"));
210
+ i0.ɵɵproperty("ngClass", ft_r7.status === "error" ? "progress-bar-danger" : "progress-bar-info")("ngStyle", i0.ɵɵpureFunction1(2, _c3, ft_r7.progress + "%"));
159
211
  } }
160
- function FileUploadComponent_ul_4_div_1_li_1_div_11_Template(rf, ctx) { if (rf & 1) {
161
- const _r8 = i0.ɵɵgetCurrentView();
162
- i0.ɵɵelementStart(0, "div", 39)(1, "a", 40);
163
- i0.ɵɵlistener("click", function FileUploadComponent_ul_4_div_1_li_1_div_11_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r8); const ft_r7 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.abortFileUpload(ft_r7)); });
164
- i0.ɵɵelement(2, "i", 41);
165
- i0.ɵɵelementEnd()();
166
- } }
167
- function FileUploadComponent_ul_4_div_1_li_1_div_12_Template(rf, ctx) { if (rf & 1) {
168
- i0.ɵɵelementStart(0, "div", 39);
169
- i0.ɵɵelement(1, "span");
170
- i0.ɵɵpipe(2, "stateClass");
212
+ function FileUploadComponent_ul_4_ng_container_1_li_1_div_14_Template(rf, ctx) { if (rf & 1) {
213
+ i0.ɵɵelementStart(0, "div", 51);
214
+ i0.ɵɵtext(1);
171
215
  i0.ɵɵelementEnd();
172
216
  } if (rf & 2) {
173
217
  const ft_r7 = i0.ɵɵnextContext(2).$implicit;
174
218
  i0.ɵɵadvance();
175
- i0.ɵɵclassMapInterpolate1("status-icon ", i0.ɵɵpipeBind1(2, 3, ft_r7.status), "");
219
+ i0.ɵɵtextInterpolate1("", ft_r7.progress + "%", " ");
176
220
  } }
177
- function FileUploadComponent_ul_4_div_1_li_1_div_13_Template(rf, ctx) { if (rf & 1) {
178
- const _r9 = i0.ɵɵgetCurrentView();
179
- i0.ɵɵelementStart(0, "div", 39)(1, "a", 42);
180
- i0.ɵɵlistener("click", function FileUploadComponent_ul_4_div_1_li_1_div_13_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r9); const ft_r7 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.clear(ft_r7)); });
181
- i0.ɵɵelement(2, "i");
221
+ function FileUploadComponent_ul_4_ng_container_1_li_1_div_15_Template(rf, ctx) { if (rf & 1) {
222
+ const _r8 = i0.ɵɵgetCurrentView();
223
+ i0.ɵɵelementStart(0, "div", 45)(1, "a", 52);
224
+ i0.ɵɵlistener("click", function FileUploadComponent_ul_4_ng_container_1_li_1_div_15_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r8); const ft_r7 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.abortFileUpload(ft_r7)); });
225
+ i0.ɵɵelement(2, "i", 53);
182
226
  i0.ɵɵelementEnd()();
227
+ } }
228
+ function FileUploadComponent_ul_4_ng_container_1_li_1_a_17_Template(rf, ctx) { if (rf & 1) {
229
+ const _r9 = i0.ɵɵgetCurrentView();
230
+ i0.ɵɵelementStart(0, "a", 54);
231
+ i0.ɵɵlistener("click", function FileUploadComponent_ul_4_ng_container_1_li_1_a_17_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r9); const ft_r7 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.clear(ft_r7)); });
232
+ i0.ɵɵelement(1, "i");
233
+ i0.ɵɵelementEnd();
183
234
  } if (rf & 2) {
184
235
  const ctx_r1 = i0.ɵɵnextContext(4);
185
- i0.ɵɵadvance();
186
236
  i0.ɵɵpropertyInterpolate("title", ctx_r1.cleariconhint);
187
237
  i0.ɵɵadvance();
188
238
  i0.ɵɵclassMap(ctx_r1.cleariconclass);
189
239
  } }
190
- function FileUploadComponent_ul_4_div_1_li_1_div_14_Template(rf, ctx) { if (rf & 1) {
191
- i0.ɵɵelementStart(0, "div", 43);
192
- i0.ɵɵelement(1, "span");
193
- i0.ɵɵpipe(2, "stateClass");
194
- i0.ɵɵelementEnd();
240
+ function FileUploadComponent_ul_4_ng_container_1_li_1_div_18_Template(rf, ctx) { if (rf & 1) {
241
+ const _r10 = i0.ɵɵgetCurrentView();
242
+ i0.ɵɵelementStart(0, "div", 45)(1, "a", 54);
243
+ i0.ɵɵlistener("click", function FileUploadComponent_ul_4_ng_container_1_li_1_div_18_Template_a_click_1_listener($event) { i0.ɵɵrestoreView(_r10); const ft_r7 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onFileDelete($event, ft_r7)); });
244
+ i0.ɵɵelement(2, "i", 55);
245
+ i0.ɵɵelementEnd()();
195
246
  } if (rf & 2) {
196
- const ft_r7 = i0.ɵɵnextContext(2).$implicit;
197
- const ctx_r1 = i0.ɵɵnextContext(2);
198
- i0.ɵɵpropertyInterpolate("title", ft_r7.errMsg || ctx_r1.appLocale.MESSAGE_FILE_UPLOAD_FAILED);
247
+ const ctx_r1 = i0.ɵɵnextContext(4);
199
248
  i0.ɵɵadvance();
200
- i0.ɵɵclassMapInterpolate1("status-icon ", i0.ɵɵpipeBind1(2, 4, ft_r7.status), "");
249
+ i0.ɵɵpropertyInterpolate("title", ctx_r1.deleteiconhint);
201
250
  } }
202
- function FileUploadComponent_ul_4_div_1_li_1_Template(rf, ctx) { if (rf & 1) {
203
- i0.ɵɵelementStart(0, "li", 26)(1, "div", 27);
204
- i0.ɵɵelement(2, "div", 28);
251
+ function FileUploadComponent_ul_4_ng_container_1_li_1_Template(rf, ctx) { if (rf & 1) {
252
+ i0.ɵɵelementStart(0, "li", 32)(1, "div", 33);
253
+ i0.ɵɵelement(2, "div", 34);
205
254
  i0.ɵɵpipe(3, "fileIconClass");
206
- i0.ɵɵelementStart(4, "div", 29)(5, "p", 30)(6, "label", 31);
255
+ i0.ɵɵelementStart(4, "div", 35)(5, "p", 36)(6, "span", 37);
207
256
  i0.ɵɵtext(7);
208
257
  i0.ɵɵelementEnd();
209
- i0.ɵɵelement(8, "br");
210
- i0.ɵɵtemplate(9, FileUploadComponent_ul_4_div_1_li_1_span_9_Template, 3, 4, "span", 32);
258
+ i0.ɵɵtemplate(8, FileUploadComponent_ul_4_ng_container_1_li_1_span_8_Template, 2, 5, "span", 38);
259
+ i0.ɵɵelement(9, "br");
260
+ i0.ɵɵtemplate(10, FileUploadComponent_ul_4_ng_container_1_li_1_span_10_Template, 3, 4, "span", 39)(11, FileUploadComponent_ul_4_ng_container_1_li_1_span_11_Template, 2, 6, "span", 40)(12, FileUploadComponent_ul_4_ng_container_1_li_1_span_12_Template, 2, 0, "span", 41);
211
261
  i0.ɵɵelementEnd();
212
- i0.ɵɵtemplate(10, FileUploadComponent_ul_4_div_1_li_1_div_10_Template, 2, 3, "div", 33);
262
+ i0.ɵɵtemplate(13, FileUploadComponent_ul_4_ng_container_1_li_1_div_13_Template, 2, 4, "div", 42)(14, FileUploadComponent_ul_4_ng_container_1_li_1_div_14_Template, 2, 1, "div", 43);
213
263
  i0.ɵɵelementEnd();
214
- i0.ɵɵtemplate(11, FileUploadComponent_ul_4_div_1_li_1_div_11_Template, 3, 0, "div", 34)(12, FileUploadComponent_ul_4_div_1_li_1_div_12_Template, 3, 5, "div", 34)(13, FileUploadComponent_ul_4_div_1_li_1_div_13_Template, 3, 4, "div", 34)(14, FileUploadComponent_ul_4_div_1_li_1_div_14_Template, 3, 6, "div", 35);
264
+ i0.ɵɵtemplate(15, FileUploadComponent_ul_4_ng_container_1_li_1_div_15_Template, 3, 0, "div", 44);
265
+ i0.ɵɵelementStart(16, "div", 45);
266
+ i0.ɵɵtemplate(17, FileUploadComponent_ul_4_ng_container_1_li_1_a_17_Template, 2, 4, "a", 46);
267
+ i0.ɵɵelementEnd();
268
+ i0.ɵɵtemplate(18, FileUploadComponent_ul_4_ng_container_1_li_1_div_18_Template, 3, 1, "div", 44);
215
269
  i0.ɵɵelementEnd()();
216
270
  } if (rf & 2) {
217
271
  const ft_r7 = i0.ɵɵnextContext().$implicit;
218
272
  const ctx_r1 = i0.ɵɵnextContext(2);
219
273
  i0.ɵɵadvance(2);
220
- i0.ɵɵclassMapInterpolate1("media-left media-middle file-icon ", i0.ɵɵpipeBind1(3, 11, ctx_r1.getFileExtension(ft_r7.name)), "");
274
+ i0.ɵɵclassMapInterpolate1("media-left media-middle file-icon ", i0.ɵɵpipeBind1(3, 14, ctx_r1.getFileExtension(ft_r7.name)), "");
221
275
  i0.ɵɵpropertyInterpolate("title", ctx_r1.getFileExtension(ft_r7.name));
222
276
  i0.ɵɵadvance(5);
223
- i0.ɵɵtextInterpolate(ft_r7.name);
277
+ i0.ɵɵtextInterpolate(ft_r7.storageName || ft_r7.name);
278
+ i0.ɵɵadvance();
279
+ i0.ɵɵproperty("ngIf", ft_r7.status === "success" && (!ctx_r1.datasource || ctx_r1.datasource && (ft_r7._response == null ? null : ft_r7._response.success)));
224
280
  i0.ɵɵadvance(2);
225
281
  i0.ɵɵproperty("ngIf", ft_r7.fileLength !== 0);
226
282
  i0.ɵɵadvance();
227
- i0.ɵɵproperty("ngIf", ft_r7.status === "onProgress");
283
+ i0.ɵɵproperty("ngIf", ft_r7.status === "error");
228
284
  i0.ɵɵadvance();
229
- i0.ɵɵproperty("ngIf", ft_r7.status === "onProgress" || ft_r7.status === "queued");
285
+ i0.ɵɵproperty("ngIf", ft_r7.status === "error");
230
286
  i0.ɵɵadvance();
231
- i0.ɵɵproperty("ngIf", ft_r7.status === "success");
287
+ i0.ɵɵproperty("ngIf", ft_r7.status === "onProgress" || ctx_r1.showprogressbar);
232
288
  i0.ɵɵadvance();
289
+ i0.ɵɵproperty("ngIf", (ft_r7.status === "onProgress" || ctx_r1.showprogressbar && ctx_r1.showprogressbarpercentage) && ft_r7.progress);
290
+ i0.ɵɵadvance();
291
+ i0.ɵɵproperty("ngIf", ft_r7.status === "onProgress" || ft_r7.status === "queued");
292
+ i0.ɵɵadvance(2);
233
293
  i0.ɵɵproperty("ngIf", ctx_r1.cleariconclass !== "" && ft_r7.status !== "onProgress");
234
294
  i0.ɵɵadvance();
235
- i0.ɵɵproperty("ngIf", ft_r7.status === "error");
295
+ i0.ɵɵproperty("ngIf", ft_r7.status === "success" && (!ctx_r1.datasource || ctx_r1.datasource && (ft_r7._response == null ? null : ft_r7._response.success)));
236
296
  } }
237
- function FileUploadComponent_ul_4_div_1_Template(rf, ctx) { if (rf & 1) {
238
- i0.ɵɵelementStart(0, "div");
239
- i0.ɵɵtemplate(1, FileUploadComponent_ul_4_div_1_li_1_Template, 15, 13, "li", 25);
240
- i0.ɵɵelementEnd();
297
+ function FileUploadComponent_ul_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {
298
+ i0.ɵɵelementContainerStart(0);
299
+ i0.ɵɵtemplate(1, FileUploadComponent_ul_4_ng_container_1_li_1_Template, 19, 16, "li", 31);
300
+ i0.ɵɵelementContainerEnd();
241
301
  } if (rf & 2) {
242
302
  const ft_r7 = ctx.$implicit;
243
303
  i0.ɵɵadvance();
244
304
  i0.ɵɵproperty("ngIf", ft_r7.status !== "abort");
245
305
  } }
246
306
  function FileUploadComponent_ul_4_Template(rf, ctx) { if (rf & 1) {
247
- i0.ɵɵelementStart(0, "ul", 23);
248
- i0.ɵɵtemplate(1, FileUploadComponent_ul_4_div_1_Template, 2, 1, "div", 24);
307
+ i0.ɵɵelementStart(0, "ul", 29);
308
+ i0.ɵɵtemplate(1, FileUploadComponent_ul_4_ng_container_1_Template, 2, 1, "ng-container", 30);
249
309
  i0.ɵɵelementEnd();
250
310
  } if (rf & 2) {
251
311
  const ctx_r1 = i0.ɵɵnextContext();
252
312
  i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction2(2, _c2, ctx_r1.filelistheight, ctx_r1.overflow));
253
313
  i0.ɵɵadvance();
254
- i0.ɵɵproperty("ngForOf", ctx_r1.selectedFiles);
314
+ i0.ɵɵproperty("ngForOf", ctx_r1.uploadedFiles);
255
315
  } }
256
316
  function FileUploadComponent_ul_5_li_1_Template(rf, ctx) { if (rf & 1) {
257
- i0.ɵɵelementStart(0, "li", 26)(1, "div", 27);
258
- i0.ɵɵelement(2, "div", 46);
259
- i0.ɵɵelementStart(3, "div", 29)(4, "p", 30)(5, "label", 31);
317
+ i0.ɵɵelementStart(0, "li", 58)(1, "div", 33);
318
+ i0.ɵɵelement(2, "div", 59);
319
+ i0.ɵɵelementStart(3, "div", 35)(4, "p", 60)(5, "label", 37);
260
320
  i0.ɵɵtext(6);
261
321
  i0.ɵɵelementEnd();
262
322
  i0.ɵɵelement(7, "br");
263
323
  i0.ɵɵelementEnd()();
264
- i0.ɵɵelementStart(8, "div", 39);
265
- i0.ɵɵelement(9, "span", 47);
324
+ i0.ɵɵelementStart(8, "div", 45);
325
+ i0.ɵɵelement(9, "span", 61);
266
326
  i0.ɵɵelementEnd()()();
267
327
  } if (rf & 2) {
268
- const ft_r10 = ctx.$implicit;
328
+ const ft_r11 = ctx.$implicit;
269
329
  i0.ɵɵadvance(6);
270
- i0.ɵɵtextInterpolate(ft_r10.name);
330
+ i0.ɵɵtextInterpolate(ft_r11.name);
271
331
  } }
272
332
  function FileUploadComponent_ul_5_Template(rf, ctx) { if (rf & 1) {
273
- i0.ɵɵelementStart(0, "ul", 44);
274
- i0.ɵɵtemplate(1, FileUploadComponent_ul_5_li_1_Template, 10, 1, "li", 45);
333
+ i0.ɵɵelementStart(0, "ul", 56);
334
+ i0.ɵɵtemplate(1, FileUploadComponent_ul_5_li_1_Template, 10, 1, "li", 57);
275
335
  i0.ɵɵelementEnd();
276
336
  } if (rf & 2) {
277
337
  const ctx_r1 = i0.ɵɵnextContext();
@@ -388,7 +448,11 @@ class FileUploadComponent extends StylableComponent {
388
448
  * @param $files
389
449
  */
390
450
  onSelectEventCall($event, $files) {
451
+ $files.forEach(file => {
452
+ file.uniqueId = this.idGenerator.nextUid();
453
+ });
391
454
  this.selectedFiles = $files;
455
+ this.uploadedFiles = this.multiple ? [...this.uploadedFiles, ...$files] : $files;
392
456
  setTimeout(() => {
393
457
  this.invokeEventCallback('select', {
394
458
  $event: $.extend($event.$files || {}, $files),
@@ -410,7 +474,11 @@ class FileUploadComponent extends StylableComponent {
410
474
  }
411
475
  /*this function to clear the specified file. if argument is not provided, it clears the complete list */
412
476
  clear(fileObj) {
413
- this.selectedFiles = (fileObj) ? this.selectedFiles.filter((file) => file !== fileObj) : [];
477
+ this.selectedFiles = (fileObj) ? this.clearFile(this.selectedFiles, fileObj) : [];
478
+ this.uploadedFiles = (fileObj) ? this.clearFile(this.uploadedFiles, fileObj) : [];
479
+ }
480
+ clearFile(files, fileObj) {
481
+ return files.filter((file) => file?._response?.fileName !== fileObj?._response?.fileName || file?.name !== fileObj?.name || file !== fileObj);
414
482
  }
415
483
  /*this function to set the class names for clear icon */
416
484
  setClearIconClass(classValue) {
@@ -438,30 +506,36 @@ class FileUploadComponent extends StylableComponent {
438
506
  }
439
507
  // Make call if there are valid files else no call is made
440
508
  if ($files.length) {
441
- this.progressObservable = new Subject();
442
509
  // EVENT: ON_BEFORE_SELECT
443
510
  beforeSelectVal = this.invokeEventCallback('beforeselect', {
444
511
  $event: $.extend($event.$files || {}, $files),
445
512
  files: $files
446
513
  });
447
514
  if (this.datasource) {
448
- this.datasource._progressObservable = this.progressObservable;
449
- this.datasource._progressObservable.asObservable().subscribe((progressObj) => {
450
- forEach(this.selectedFiles, (file) => {
451
- if (file.name === progressObj.fileName) {
452
- file.progress = progressObj.progress;
453
- if (file.progress === 100) {
454
- file.status = 'success';
455
- }
456
- else {
457
- file.status = progressObj.status;
458
- if (progressObj.errMsg) {
459
- file.errMsg = progressObj.errMsg;
515
+ if (!this.uploadProgressSubscription) {
516
+ this.progressObservable = new Subject();
517
+ this.datasource._progressObservable = this.progressObservable;
518
+ this.uploadProgressSubscription = this.datasource._progressObservable.asObservable().subscribe((progressObj) => {
519
+ forEach(this.uploadedFiles, (file) => {
520
+ if (file.name === progressObj.fileName && file.uniqueId === progressObj.uniqueId) {
521
+ file.progress = progressObj.progress;
522
+ if (file.progress === 100) {
523
+ file.status = 'success';
524
+ }
525
+ else {
526
+ file.status = progressObj.status;
527
+ if (progressObj.errMsg) {
528
+ file.errMsg = progressObj.errMsg;
529
+ this.invokeEventCallback('error', {
530
+ $event,
531
+ files: file
532
+ });
533
+ }
460
534
  }
461
535
  }
462
- }
536
+ });
463
537
  });
464
- });
538
+ }
465
539
  }
466
540
  else {
467
541
  this.selectedFiles = $files;
@@ -472,6 +546,43 @@ class FileUploadComponent extends StylableComponent {
472
546
  }
473
547
  }
474
548
  }
549
+ onFileDelete($event, file) {
550
+ if (!file) {
551
+ return;
552
+ }
553
+ const beforeDeleteVal = this.invokeEventCallback('beforedelete', { $event: file });
554
+ if (beforeDeleteVal !== false) {
555
+ this.dialogService.showAppConfirmDialog({
556
+ title: "Delete file",
557
+ message: "Are you sure you want to delete this file?",
558
+ oktext: "Ok",
559
+ canceltext: "Cancel",
560
+ onOk: () => {
561
+ if (this.deletedatasource) {
562
+ this.deletedatasource.setInput('file', file._response.fileName || file.name);
563
+ if (!this.deleteProgressSubscription) {
564
+ this.deleteFileObservable = new Subject();
565
+ this.deletedatasource._deleteFileObservable = this.deleteFileObservable;
566
+ this.deletedatasource._deleteFileObservable.asObservable().subscribe((response) => {
567
+ if (response.status === "success") {
568
+ this.selectedFiles = this.selectedFiles.filter((fileObj) => file !== fileObj) || [];
569
+ this.uploadedFiles = this.uploadedFiles.filter((fileObj) => file !== fileObj) || [];
570
+ }
571
+ });
572
+ }
573
+ }
574
+ this.invokeEventCallback('delete', { $event: file });
575
+ this.dialogService.closeAppConfirmDialog();
576
+ },
577
+ onCancel: () => {
578
+ this.dialogService.closeAppConfirmDialog();
579
+ },
580
+ onOpen: () => {
581
+ $('.cancel-action').focus();
582
+ }
583
+ });
584
+ }
585
+ }
475
586
  // Prevent default behavior (Prevent file from being opened)
476
587
  dragOverHandler($event) {
477
588
  $event.preventDefault();
@@ -516,6 +627,11 @@ class FileUploadComponent extends StylableComponent {
516
627
  abortFileUpload($file) {
517
628
  this.datasource.execute(DataSource.Operation.CANCEL, $file);
518
629
  }
630
+ isMimeType(file) {
631
+ return (this.defaultAllowedExtensions.includes('image/*') && isImageFile(file))
632
+ || (this.defaultAllowedExtensions.includes('audio/*') && isAudioFile(file))
633
+ || (this.defaultAllowedExtensions.includes('video/*') && isVideoFile(file));
634
+ }
519
635
  /* Define the property change handler. This function will be triggered when there is a change in the widget property */
520
636
  onPropertyChange(key, nv, ov) {
521
637
  /*Monitoring changes for styles or properties and accordingly handling respective changes.*/
@@ -525,7 +641,15 @@ class FileUploadComponent extends StylableComponent {
525
641
  this.changeServerUploadPath(nv);
526
642
  break;
527
643
  case 'contenttype':
528
- this.chooseFilter = nv.split(' ').join(',');
644
+ if (this.defaultAllowedExtensions.includes('*/*')) {
645
+ this.chooseFilter = nv.split(' ').join(',');
646
+ }
647
+ else {
648
+ this.chooseFilter = nv.split(' ').filter(item => this.defaultAllowedExtensions.includes(item) || this.isMimeType(item)).join(',');
649
+ if (isEmpty(this.chooseFilter)) {
650
+ this.chooseFilter = this.defaultAllowedExtensions;
651
+ }
652
+ }
529
653
  break;
530
654
  case 'multiple':
531
655
  this.formName = this.name + (this.multiple ? '-multiple-fileupload' : '-single-fileupload');
@@ -536,11 +660,13 @@ class FileUploadComponent extends StylableComponent {
536
660
  }
537
661
  super.onPropertyChange(key, nv, ov);
538
662
  }
539
- constructor(inj, app, onSelectEvt, explicitContext) {
663
+ constructor(inj, app, onSelectEvt, dialogService, explicitContext) {
540
664
  super(inj, WIDGET_CONFIG, explicitContext);
541
665
  this.app = app;
542
666
  this.onSelectEvt = onSelectEvt;
667
+ this.dialogService = dialogService;
543
668
  this.selectedFiles = [];
669
+ this.uploadedFiles = [];
544
670
  this.selectedFolders = [];
545
671
  this.fileTransfers = {};
546
672
  this.caption = 'Upload';
@@ -562,14 +688,11 @@ class FileUploadComponent extends StylableComponent {
562
688
  file: undefined,
563
689
  uploadPath: undefined
564
690
  };
565
- this.chooseFilter = '';
691
+ this.allowedFileUploadExtensions = getWmProjectProperties().allowedFileUploadExtensions;
692
+ this.defaultAllowedExtensions = this.allowedFileUploadExtensions.split(',').map(item => item.trim()).map(item => item.endsWith('/*') ? item : `.${item}`);
693
+ this.chooseFilter = this.defaultAllowedExtensions.includes('*/*') ? '' : this.defaultAllowedExtensions;
566
694
  this.fileUploadMessage = 'Drop your files here or click here to browse';
567
- this.uploadedFiles = {
568
- fileName: '',
569
- path: '',
570
- length: '',
571
- status: ''
572
- };
695
+ this.idGenerator = new IDGenerator('file-');
573
696
  this.uploadUrl = 'services';
574
697
  // styler(this.nativeElement, this);
575
698
  }
@@ -589,13 +712,19 @@ class FileUploadComponent extends StylableComponent {
589
712
  document.removeEventListener('drop', this.dropCb);
590
713
  document.removeEventListener('mouseleave', this.dropCb);
591
714
  super.ngOnDestroy();
715
+ const subscriptions = [this.uploadProgressSubscription, this.deleteProgressSubscription];
716
+ subscriptions.forEach(subscription => {
717
+ if (subscription) {
718
+ subscription.unsubscribe();
719
+ }
720
+ });
592
721
  }
593
- static { this.ɵfac = function FileUploadComponent_Factory(t) { return new (t || FileUploadComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.App), i0.ɵɵinjectAttribute('select.event'), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
722
+ static { this.ɵfac = function FileUploadComponent_Factory(t) { return new (t || FileUploadComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.App), i0.ɵɵinjectAttribute('select.event'), i0.ɵɵdirectiveInject(i1.AbstractDialogService), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
594
723
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: FileUploadComponent, selectors: [["", "wmFileUpload", ""]], features: [i0.ɵɵProvidersFeature([
595
724
  provideAsWidgetRef(FileUploadComponent)
596
- ]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 6, vars: 5, consts: [["init-widget", "", 1, "app-fileupload"], ["class", "app-multi-file-upload", 4, "ngIf"], ["class", "app-single-file-upload", 4, "ngIf"], ["focus-target", "", "class", "app-button btn btn-default", 3, "disabled", "click", 4, "ngIf"], ["class", "list-group file-upload", 3, "ngStyle", 4, "ngIf"], ["class", "list-group file-upload", 3, "ngStyle", "title", 4, "ngIf"], [1, "app-multi-file-upload"], ["id", "dropzone", 1, "drop-box", 3, "click", "dragover", "drop", "ngClass"], [1, "message"], [1, "caption", 3, "innerHtml"], [1, "form-horizontal", 3, "name"], ["class", "file-input", "type", "file", "name", "files", "multiple", "", 3, "disabled", "accept", "click", "change", 4, "ngIf"], ["href", "javascript:void(0);", 1, "app-anchor"], ["type", "file", "name", "files", "multiple", "", 1, "file-input", 3, "click", "change", "disabled", "accept"], [1, "app-single-file-upload"], [1, "app-button-wrapper"], ["class", "file-input", "type", "file", "name", "files", 3, "disabled", "accept", "click", "change", 4, "ngIf"], ["id", "dropzone", "focus-target", "", 1, "app-button", "btn", "btn-default", 3, "ngClass"], ["aria-hidden", "true"], [1, "caption", 3, "innerHTML"], [1, "app-files-upload-status", "single"], ["type", "file", "name", "files", 1, "file-input", 3, "click", "change", "disabled", "accept"], ["focus-target", "", 1, "app-button", "btn", "btn-default", 3, "click", "disabled"], [1, "list-group", "file-upload", 3, "ngStyle"], [4, "ngFor", "ngForOf"], ["class", "list-group-item file-upload-status", 4, "ngIf"], [1, "list-group-item", "file-upload-status"], [1, "media", "upload-file-list"], [3, "title"], [1, "media-body", "media-middle", "file-details"], [1, "uploaddetails"], [1, "upload-title"], ["class", "filesize", 4, "ngIf"], ["class", "progress", 4, "ngIf"], ["class", "media-right media-middle", 4, "ngIf"], ["class", "media-right media-middle", 3, "title", 4, "ngIf"], [1, "filesize"], [1, "progress"], [1, "progress-bar", "progress-bar-striped", "progress-bar-info", 3, "ngStyle"], [1, "media-right", "media-middle"], ["type", "button", 1, "btn", "btn-transparent", "file-upload-stop", 3, "click"], [1, "wi", "wi-close"], ["type", "button", 1, "btn", "btn-transparent", "btn-default", "status-icon", 3, "click", "title"], [1, "media-right", "media-middle", 3, "title"], [1, "list-group", "file-upload", 3, "ngStyle", "title"], ["class", "list-group-item file-upload-status", 4, "ngFor", "ngForOf"], [1, "media-left", "media-middle", "file-icon", "fa", "fa-folder-o"], [1, "status-icon", "wi", "wi-cancel", "text-danger"]], template: function FileUploadComponent_Template(rf, ctx) { if (rf & 1) {
725
+ ]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 6, vars: 5, consts: [["init-widget", "", 1, "app-fileupload"], ["class", "app-multi-file-upload", 4, "ngIf"], ["class", "app-single-file-upload", 4, "ngIf"], ["focus-target", "", "class", "app-button btn btn-default", 3, "disabled", "click", 4, "ngIf"], ["class", "list-group file-upload", "tabindex", "0", 3, "ngStyle", 4, "ngIf"], ["class", "list-group file-upload", 3, "ngStyle", "title", 4, "ngIf"], [1, "app-multi-file-upload"], ["id", "dropzone", 1, "drop-box", 3, "click", "dragover", "drop", "ngClass"], [1, "message"], [1, "upload-label", 3, "innerHtml"], [1, "form-horizontal", 3, "name"], ["class", "file-input", "type", "file", "name", "files", "multiple", "", 3, "disabled", "accept", "click", "change", 4, "ngIf"], ["href", "javascript:void(0);", 1, "app-anchor", "upload-label"], ["class", "upload-extensions", 3, "innerHtml", 4, "ngIf"], ["class", "upload-extensions", 4, "ngIf"], ["type", "file", "name", "files", "multiple", "", 1, "file-input", 3, "click", "change", "disabled", "accept"], [1, "upload-extensions", 3, "innerHtml"], [1, "upload-extensions"], [1, "app-single-file-upload"], [1, "app-button-wrapper"], ["class", "file-input", "multiple", "", "name", "files", "type", "file", 3, "accept", "disabled", "change", "click", 4, "ngIf"], ["class", "file-input", "name", "files", "type", "file", 3, "accept", "disabled", "change", "click", 4, "ngIf"], ["id", "dropzone", "focus-target", "", 1, "app-button", "btn", "btn-default", 3, "ngClass"], ["aria-hidden", "true"], [1, "caption", 3, "innerHTML"], [1, "app-files-upload-status", "single"], ["multiple", "", "name", "files", "type", "file", 1, "file-input", 3, "change", "click", "accept", "disabled"], ["name", "files", "type", "file", 1, "file-input", 3, "change", "click", "accept", "disabled"], ["focus-target", "", 1, "app-button", "btn", "btn-default", 3, "click", "disabled"], ["tabindex", "0", 1, "list-group", "file-upload", 3, "ngStyle"], [4, "ngFor", "ngForOf"], ["class", "list-group-item file-upload-status", "tabindex", "0", 4, "ngIf"], ["tabindex", "0", 1, "list-group-item", "file-upload-status"], [1, "media", "upload-file-list"], [3, "title"], [1, "media-body", "media-middle", "file-details"], [1, "uploaddetails", "col-md-3"], [1, "upload-title"], [3, "class", 4, "ngIf"], ["class", "filesize", 4, "ngIf"], [3, "class", "title", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], ["class", "progress col-md-7 upload-progress", 4, "ngIf"], ["class", "col-md-1 upload-progress-percentage", 4, "ngIf"], ["class", "media-right media-middle", 4, "ngIf"], [1, "media-right", "media-middle"], ["href", "javascript:void(0)", "class", "btn btn-transparent btn-default status-icon", "type", "button", 3, "title", "click", 4, "ngIf"], [1, "filesize"], [1, "error-message"], [1, "progress", "col-md-7", "upload-progress"], [1, "progress-bar", "progress-bar-striped", 3, "ngClass", "ngStyle"], [1, "col-md-1", "upload-progress-percentage"], ["href", "javascript:void(0)", "type", "button", 1, "btn", "btn-transparent", "file-upload-stop", 3, "click"], [1, "wi", "wi-close"], ["href", "javascript:void(0)", "type", "button", 1, "btn", "btn-transparent", "btn-default", "status-icon", 3, "click", "title"], [1, "wi", "wi-delete"], [1, "list-group", "file-upload", 3, "ngStyle", "title"], ["class", "list-group-item file-upload-status", 4, "ngFor", "ngForOf"], [1, "list-group-item", "file-upload-status"], [1, "media-left", "media-middle", "file-icon", "fa", "fa-folder-o"], [1, "uploaddetails"], [1, "status-icon", "wi", "wi-cancel", "text-danger"]], template: function FileUploadComponent_Template(rf, ctx) { if (rf & 1) {
597
726
  i0.ɵɵelementStart(0, "div", 0);
598
- i0.ɵɵtemplate(1, FileUploadComponent_div_1_Template, 9, 10, "div", 1)(2, FileUploadComponent_div_2_Template, 9, 10, "div", 2)(3, FileUploadComponent_button_3_Template, 3, 5, "button", 3)(4, FileUploadComponent_ul_4_Template, 2, 5, "ul", 4)(5, FileUploadComponent_ul_5_Template, 2, 6, "ul", 5);
727
+ i0.ɵɵtemplate(1, FileUploadComponent_div_1_Template, 12, 13, "div", 1)(2, FileUploadComponent_div_2_Template, 9, 10, "div", 2)(3, FileUploadComponent_button_3_Template, 3, 5, "button", 3)(4, FileUploadComponent_ul_4_Template, 2, 5, "ul", 4)(5, FileUploadComponent_ul_5_Template, 2, 6, "ul", 5);
599
728
  i0.ɵɵelementEnd();
600
729
  } if (rf & 2) {
601
730
  i0.ɵɵadvance();
@@ -605,7 +734,7 @@ class FileUploadComponent extends StylableComponent {
605
734
  i0.ɵɵadvance();
606
735
  i0.ɵɵproperty("ngIf", ctx._isCordova);
607
736
  i0.ɵɵadvance();
608
- i0.ɵɵproperty("ngIf", ctx.selectedFiles.length > 0);
737
+ i0.ɵɵproperty("ngIf", ctx.uploadedFiles.length > 0);
609
738
  i0.ɵɵadvance();
610
739
  i0.ɵɵproperty("ngIf", ctx.selectedFolders.length > 0);
611
740
  } }, dependencies: [i2.NgClass, i2.NgForOf, i2.NgIf, i2.NgStyle, i3.FileIconClassPipe, i3.FileSizePipe, i3.StateClassPipe], encapsulation: 2 }); }
@@ -614,11 +743,11 @@ class FileUploadComponent extends StylableComponent {
614
743
  type: Component,
615
744
  args: [{ selector: '[wmFileUpload]', providers: [
616
745
  provideAsWidgetRef(FileUploadComponent)
617
- ], template: "<div class=\"app-fileupload\" init-widget>\n <!-- drag and drop files UI in web -->\n <div class=\"app-multi-file-upload\" *ngIf=\"!_isMobileType && multiple\">\n <div id=\"dropzone\" class=\"drop-box\" (click)=\"triggerFileSelect()\" [ngClass]=\"{'highlight-drop-box' : highlightDropArea}\" (dragover)=\"dragOverHandler($event);\" (drop)=\"onFileDrop($event);\">\n <i class=\"{{iconclass}}\"></i>\n <div class=\"message\">\n <label [innerHtml]=\"caption\" class=\"caption\"></label>\n <form class=\"form-horizontal\" name=\"{{formName}}\">\n <input class=\"file-input\" [attr.aria-label]=\"hint || 'File selection field'\" type=\"file\" name=\"files\" *ngIf=\"multiple\" [disabled]=\"disabled\" [accept]=\"chooseFilter\" (click)=\"onFileElemClick($event)\" (change)=\"onFileSelect($event, $event.target.files)\" multiple >\n <a href=\"javascript:void(0);\" class=\"app-anchor\">{{fileUploadMessage}}</a>\n </form>\n </div>\n </div>\n </div>\n <!-- single file upload in web and single , multiple file upload UI in mobile runmode -->\n <div class=\"app-single-file-upload\" *ngIf=\"!_isCordova && (!multiple || _isMobileType)\">\n <div class=\"app-button-wrapper\">\n <form class=\"form-horizontal\" name=\"{{formName}}\">\n <!-- support for file upload in Mobileapp in its runmode (Web) -->\n <input class=\"file-input\" [attr.aria-label]=\"hint || 'File selection field'\" type=\"file\" name=\"files\" *ngIf=\"multiple\" [disabled]=\"disabled\" [accept]=\"chooseFilter\" (click)=\"onFileElemClick($event)\" (change)=\"onFileSelect($event, $event.target.files)\" multiple>\n <input class=\"file-input\" [attr.aria-label]=\"hint || 'File selection field'\" type=\"file\" name=\"files\" *ngIf=\"!multiple\" [disabled]=\"disabled\" [accept]=\"chooseFilter\" (click)=\"onFileElemClick($event)\" (change)=\"onFileSelect($event, $event.target.files)\" >\n <button id=\"dropzone\" focus-target class=\"app-button btn btn-default\" [ngClass]=\"{'highlight-drop-box' : highlightDropArea}\">\n <i class=\"{{iconclass}}\" aria-hidden=\"true\"></i>\n <span class=\"caption\" [innerHTML]=\"caption\"></span>\n </button>\n </form>\n </div>\n <div class=\"app-files-upload-status single\"></div>\n </div>\n <!-- support for file upload in Mobile Application (device) -->\n <button *ngIf=\"_isCordova\" focus-target class=\"app-button btn btn-default\" (click)=\"openFileSelector()\" [disabled]=\"disabled\">\n <i class=\"{{iconclass}}\"></i>\n <span class=\"caption\" [innerHTML]=\"caption\"></span>\n </button>\n <!-- list of selectedfiles UI -->\n <ul class=\"list-group file-upload\" [ngStyle]=\"{height: filelistheight, overflow: overflow}\" *ngIf=\"selectedFiles.length > 0\" >\n <div *ngFor=\"let ft of selectedFiles\">\n <li class=\"list-group-item file-upload-status\" *ngIf=\"ft.status !== 'abort'\">\n <div class=\"media upload-file-list\">\n <div class=\"media-left media-middle file-icon {{getFileExtension(ft.name) | fileIconClass}}\" title=\"{{getFileExtension(ft.name)}}\"></div>\n <div class=\"media-body media-middle file-details\">\n <p class=\"uploaddetails\">\n <label class=\"upload-title\">{{ft.name}}</label><br/>\n <span class=\"filesize\" *ngIf=\"ft.fileLength !== 0\">{{ft.size | filesize:0}}</span>\n </p>\n <div class=\"progress\" *ngIf=\"ft.status === 'onProgress'\">\n <div class=\"progress-bar progress-bar-striped progress-bar-info\" [ngStyle]=\"{width: (ft.progress +'%')}\"></div>\n </div>\n </div>\n <div class=\"media-right media-middle\" *ngIf=\"ft.status === 'onProgress' || ft.status === 'queued'\">\n <a class=\"btn btn-transparent file-upload-stop\" type=\"button\" (click)=\"abortFileUpload(ft)\">\n <i class=\"wi wi-close\"></i>\n </a>\n </div>\n\n <div class=\"media-right media-middle\" *ngIf=\"ft.status === 'success'\">\n <span class=\"status-icon {{ft.status | stateClass }}\"></span>\n </div>\n <div *ngIf=\"cleariconclass !== '' && ft.status !== 'onProgress'\" class=\"media-right media-middle\">\n <a (click)=\"clear(ft)\" class=\"btn btn-transparent btn-default status-icon\" title=\"{{cleariconhint}}\" type=\"button\">\n <i class=\"{{cleariconclass}}\"></i>\n </a>\n </div>\n <div class=\"media-right media-middle\" *ngIf=\"ft.status === 'error'\" title=\"{{ft.errMsg || this.appLocale.MESSAGE_FILE_UPLOAD_FAILED}}\">\n <span class=\"status-icon {{ft.status | stateClass }}\"></span>\n </div>\n </div>\n </li>\n </div>\n </ul>\n <!-- list of selectedfolders UI to show the error in title -->\n <ul class=\"list-group file-upload\" [ngStyle]=\"{height: filelistheight, overflow: overflow}\" title=\"{{this.appLocale.MESSAGE_FOLDER_UPLOADS_NOT_ALLOWED}}\" *ngIf=\"selectedFolders.length > 0\" >\n <li *ngFor=\"let ft of selectedFolders\" class=\"list-group-item file-upload-status\">\n <div class=\"media upload-file-list\">\n <div class=\"media-left media-middle file-icon fa fa-folder-o\"></div>\n <div class=\"media-body media-middle file-details\">\n <p class=\"uploaddetails\">\n <label class=\"upload-title\">{{ft.name}}</label><br/>\n </p>\n </div>\n <div class=\"media-right media-middle\" >\n <span class=\"status-icon wi wi-cancel text-danger\"></span>\n </div>\n </div>\n </li>\n </ul>\n</div>\n" }]
746
+ ], template: "<div class=\"app-fileupload\" init-widget>\n <!-- drag and drop files UI in web -->\n <div class=\"app-multi-file-upload\" *ngIf=\"!_isMobileType && multiple\">\n <div id=\"dropzone\" class=\"drop-box\" (click)=\"triggerFileSelect()\" [ngClass]=\"{'highlight-drop-box' : highlightDropArea}\" (dragover)=\"dragOverHandler($event);\" (drop)=\"onFileDrop($event);\">\n <i class=\"{{iconclass}}\"></i>\n <div class=\"message\">\n <label [innerHtml]=\"caption\" class=\"upload-label\"></label>\n <form class=\"form-horizontal\" name=\"{{formName}}\">\n <input class=\"file-input\" [attr.aria-label]=\"hint || 'File selection field'\" type=\"file\" name=\"files\" *ngIf=\"multiple\" [disabled]=\"disabled\" [accept]=\"chooseFilter\" (click)=\"onFileElemClick($event)\" (change)=\"onFileSelect($event, $event.target.files)\" multiple >\n <a class=\"app-anchor upload-label\" href=\"javascript:void(0);\">{{ fileUploadMessage }}</a>\n </form>\n <label *ngIf=\"chooseFilter\" [innerHtml]=\"chooseFilter + ' only '\" class=\"upload-extensions\"></label>\n <span *ngIf=\"chooseFilter && maxfilesize\" class=\"upload-extensions\"> . </span>\n <label *ngIf=\"maxfilesize\" [innerHtml]=\"maxfilesize + 'MB max'\" class=\"upload-extensions\"></label>\n </div>\n </div>\n </div>\n <!-- single file upload in web and single , multiple file upload UI in mobile runmode -->\n <div class=\"app-single-file-upload\" *ngIf=\"!_isCordova && (!multiple || _isMobileType)\">\n <div class=\"app-button-wrapper\">\n <form class=\"form-horizontal\" name=\"{{formName}}\">\n <!-- support for file upload in Mobileapp in its runmode (Web) -->\n <input (change)=\"onFileSelect($event, $event.target.files)\" (click)=\"onFileElemClick($event)\" *ngIf=\"multiple\"\n [accept]=\"chooseFilter\" [attr.aria-label]=\"arialabel || 'File selection field'\" [disabled]=\"disabled\" class=\"file-input\"\n multiple name=\"files\" type=\"file\">\n <input (change)=\"onFileSelect($event, $event.target.files)\" (click)=\"onFileElemClick($event)\" *ngIf=\"!multiple\"\n [accept]=\"chooseFilter\" [attr.aria-label]=\"arialabel || 'File selection field'\" [disabled]=\"disabled\" class=\"file-input\"\n name=\"files\" type=\"file\">\n <button id=\"dropzone\" focus-target class=\"app-button btn btn-default\" [ngClass]=\"{'highlight-drop-box' : highlightDropArea}\">\n <i class=\"{{iconclass}}\" aria-hidden=\"true\"></i>\n <span class=\"caption\" [innerHTML]=\"caption\"></span>\n </button>\n </form>\n </div>\n <div class=\"app-files-upload-status single\"></div>\n </div>\n <!-- support for file upload in Mobile Application (device) -->\n <button *ngIf=\"_isCordova\" focus-target class=\"app-button btn btn-default\" (click)=\"openFileSelector()\" [disabled]=\"disabled\">\n <i class=\"{{iconclass}}\"></i>\n <span class=\"caption\" [innerHTML]=\"caption\"></span>\n </button>\n <!-- list of selectedfiles UI -->\n <ul class=\"list-group file-upload\" [ngStyle]=\"{height: filelistheight, overflow: overflow}\"\n *ngIf=\"uploadedFiles.length > 0\" tabindex=\"0\">\n <ng-container *ngFor=\"let ft of uploadedFiles\">\n <li class=\"list-group-item file-upload-status\" *ngIf=\"ft.status !== 'abort'\" tabindex=\"0\">\n <div class=\"media upload-file-list\">\n <div class=\"media-left media-middle file-icon {{getFileExtension(ft.name) | fileIconClass}}\" title=\"{{getFileExtension(ft.name)}}\"></div>\n <div class=\"media-body media-middle file-details\">\n <p class=\"uploaddetails col-md-3\">\n <span class=\"upload-title\">{{ ft.storageName || ft.name }}</span>\n <span *ngIf=\"ft.status === 'success' && (!datasource || (datasource && ft._response?.success))\"\n class=\"status-icon {{ft.status | stateClass }}\"></span>\n <br/>\n <span class=\"filesize\" *ngIf=\"ft.fileLength !== 0\">{{ft.size | filesize:0}}</span>\n <span *ngIf=\"ft.status === 'error'\"\n class=\"status-icon {{ft.status | stateClass }}\"\n title=\"{{ft.errMsg || this.appLocale.MESSAGE_FILE_UPLOAD_FAILED}}\"></span>\n <span *ngIf=\"ft.status === 'error'\" class=\"error-message\">Upload Failed</span>\n </p>\n <div *ngIf=\"ft.status === 'onProgress' || showprogressbar\"\n class=\"progress col-md-7 upload-progress\">\n <div [ngClass]=\"ft.status === 'error' ? 'progress-bar-danger' : 'progress-bar-info'\"\n [ngStyle]=\"{width: (ft.progress +'%')}\"\n class=\"progress-bar progress-bar-striped\"></div>\n </div>\n <div *ngIf=\"(ft.status === 'onProgress' || showprogressbar && showprogressbarpercentage) && ft.progress \"\n class=\"col-md-1 upload-progress-percentage\">{{ ft.progress + '%' }}\n </div>\n </div>\n <div class=\"media-right media-middle\" *ngIf=\"ft.status === 'onProgress' || ft.status === 'queued'\">\n <a href=\"javascript:void(0)\" class=\"btn btn-transparent file-upload-stop\" type=\"button\"\n (click)=\"abortFileUpload(ft)\">\n <i class=\"wi wi-close\"></i>\n </a>\n </div>\n <div class=\"media-right media-middle\">\n <a href=\"javascript:void(0)\" (click)=\"clear(ft)\"\n *ngIf=\"cleariconclass !== '' && ft.status !== 'onProgress'\"\n class=\"btn btn-transparent btn-default status-icon\" title=\"{{cleariconhint}}\" type=\"button\">\n <i class=\"{{cleariconclass}}\"></i>\n </a>\n </div>\n <div class=\"media-right media-middle\" *ngIf=\"ft.status === 'success' && (!datasource || (datasource && ft._response?.success))\">\n <a href=\"javascript:void(0)\" (click)=\"onFileDelete($event, ft)\"\n class=\"btn btn-transparent btn-default status-icon\" title=\"{{deleteiconhint}}\" type=\"button\">\n <i class=\"wi wi-delete\"></i>\n </a>\n </div>\n </div>\n </li>\n </ng-container>\n </ul>\n <!-- list of selectedfolders UI to show the error in title -->\n <ul class=\"list-group file-upload\" [ngStyle]=\"{height: filelistheight, overflow: overflow}\" title=\"{{this.appLocale.MESSAGE_FOLDER_UPLOADS_NOT_ALLOWED}}\" *ngIf=\"selectedFolders.length > 0\" >\n <li *ngFor=\"let ft of selectedFolders\" class=\"list-group-item file-upload-status\">\n <div class=\"media upload-file-list\">\n <div class=\"media-left media-middle file-icon fa fa-folder-o\"></div>\n <div class=\"media-body media-middle file-details\">\n <p class=\"uploaddetails\">\n <label class=\"upload-title\">{{ft.name}}</label><br/>\n </p>\n </div>\n <div class=\"media-right media-middle\" >\n <span class=\"status-icon wi wi-cancel text-danger\"></span>\n </div>\n </div>\n </li>\n </ul>\n</div>\n" }]
618
747
  }], () => [{ type: i0.Injector }, { type: i1.App }, { type: undefined, decorators: [{
619
748
  type: Attribute,
620
749
  args: ['select.event']
621
- }] }, { type: undefined, decorators: [{
750
+ }] }, { type: i1.AbstractDialogService }, { type: undefined, decorators: [{
622
751
  type: Inject,
623
752
  args: ['EXPLICIT_CONTEXT']
624
753
  }, {