@wavemaker/app-ng-runtime 12.0.0-next.45191 → 12.0.0-next.45196

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 (97) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +7 -7
  2. app-ng-runtime/build-task/esm2022/containers/accordion/accordion-pane/accordion-pane.build.mjs +2 -2
  3. app-ng-runtime/build-task/esm2022/containers/accordion/accordion.build.mjs +3 -3
  4. app-ng-runtime/build-task/esm2022/containers/wizard/wizard.build.mjs +2 -2
  5. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +3 -3
  6. app-ng-runtime/build-task/esm2022/input/chips/chips.build.mjs +2 -2
  7. app-ng-runtime/build-task/esm2022/input/file-upload/file-upload.build.mjs +2 -2
  8. app-ng-runtime/build-task/fesm2022/index.mjs +7 -7
  9. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  10. app-ng-runtime/components/base/bundles/index.umd.js +0 -5
  11. app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +1 -6
  12. app-ng-runtime/components/base/fesm2022/index.mjs +0 -5
  13. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  14. app-ng-runtime/components/basic/default/audio/audio.component.d.ts +2 -0
  15. app-ng-runtime/components/basic/default/bundles/index.umd.js +18 -7
  16. app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +13 -5
  17. app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +7 -4
  18. app-ng-runtime/components/basic/default/fesm2022/index.mjs +18 -7
  19. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  20. app-ng-runtime/components/basic/default/video/video.component.d.ts +1 -0
  21. app-ng-runtime/components/basic/progress/bundles/index.umd.js +7 -3
  22. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +8 -4
  23. app-ng-runtime/components/basic/progress/fesm2022/index.mjs +7 -3
  24. app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
  25. app-ng-runtime/components/basic/progress/progress-bar/progress-bar.component.d.ts +1 -0
  26. app-ng-runtime/components/basic/search/bundles/index.umd.js +7 -2
  27. app-ng-runtime/components/basic/search/esm2022/search.component.mjs +8 -3
  28. app-ng-runtime/components/basic/search/fesm2022/index.mjs +7 -2
  29. app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
  30. app-ng-runtime/components/basic/search/search.component.d.ts +3 -2
  31. app-ng-runtime/components/chart/bundles/index.umd.js +2 -1
  32. app-ng-runtime/components/chart/esm2022/chart.utils.mjs +3 -2
  33. app-ng-runtime/components/chart/fesm2022/index.mjs +2 -1
  34. app-ng-runtime/components/chart/fesm2022/index.mjs.map +1 -1
  35. app-ng-runtime/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +1 -0
  36. app-ng-runtime/components/containers/accordion/bundles/index.umd.js +15 -9
  37. app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +13 -10
  38. app-ng-runtime/components/containers/accordion/esm2022/accordion.directive.mjs +4 -1
  39. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +15 -9
  40. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  41. app-ng-runtime/components/containers/wizard/bundles/index.umd.js +6 -6
  42. app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +7 -7
  43. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +6 -6
  44. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  45. app-ng-runtime/components/data/list/bundles/index.umd.js +20 -12
  46. app-ng-runtime/components/data/list/esm2022/list-item.directive.mjs +10 -1
  47. app-ng-runtime/components/data/list/esm2022/list.component.mjs +13 -13
  48. app-ng-runtime/components/data/list/fesm2022/index.mjs +21 -13
  49. app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
  50. app-ng-runtime/components/input/chips/bundles/index.umd.js +24 -7
  51. app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +25 -8
  52. app-ng-runtime/components/input/chips/fesm2022/index.mjs +24 -7
  53. app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
  54. app-ng-runtime/components/input/default/bundles/index.umd.js +21 -5
  55. app-ng-runtime/components/input/default/esm2022/base-form.component.mjs +3 -3
  56. app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +20 -4
  57. app-ng-runtime/components/input/default/fesm2022/index.mjs +21 -5
  58. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  59. app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +3 -1
  60. app-ng-runtime/components/input/epoch/bundles/index.umd.js +22 -14
  61. app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +13 -6
  62. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +4 -4
  63. app-ng-runtime/components/input/epoch/esm2022/date/date.props.mjs +2 -1
  64. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +4 -4
  65. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +19 -11
  66. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  67. app-ng-runtime/components/input/file-upload/bundles/index.umd.js +80 -64
  68. app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +80 -65
  69. app-ng-runtime/components/input/file-upload/esm2022/file-upload.props.mjs +3 -2
  70. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +81 -65
  71. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  72. app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +7 -2
  73. app-ng-runtime/components/input/rating/bundles/index.umd.js +2 -2
  74. app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +3 -3
  75. app-ng-runtime/components/input/rating/fesm2022/index.mjs +2 -2
  76. app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
  77. app-ng-runtime/components/navigation/breadcrumb/bundles/index.umd.js +6 -6
  78. app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +7 -7
  79. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs +6 -6
  80. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  81. app-ng-runtime/components/page/left-panel/bundles/index.umd.js +10 -3
  82. app-ng-runtime/components/page/left-panel/esm2022/left-panel.directive.mjs +11 -4
  83. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +10 -3
  84. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  85. app-ng-runtime/components/page/left-panel/left-panel.directive.d.ts +2 -2
  86. app-ng-runtime/components/page/right-panel/bundles/index.umd.js +2 -2
  87. app-ng-runtime/components/page/right-panel/esm2022/right-panel.directive.mjs +3 -3
  88. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +2 -2
  89. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  90. app-ng-runtime/components/page/right-panel/right-panel.directive.d.ts +1 -1
  91. app-ng-runtime/package.json +1 -1
  92. app-ng-runtime/scripts/datatable/datatable.js +9 -5
  93. app-ng-runtime/variables/bundles/index.umd.js +34 -16
  94. app-ng-runtime/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +35 -17
  95. app-ng-runtime/variables/fesm2022/index.mjs +34 -16
  96. app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
  97. app-ng-runtime/variables/manager/variable/web-socket-variable.manager.d.ts +0 -4
@@ -50,7 +50,8 @@
50
50
  ['filelistheight', i3.PROP_NUMBER],
51
51
  ['width', { value: 'auto', ...i3.PROP_STRING }],
52
52
  ['showprogressbar', i3.PROP_BOOLEAN],
53
- ['showprogressbarpercentage', i3.PROP_BOOLEAN]
53
+ ['showprogressbarpercentage', i3.PROP_BOOLEAN],
54
+ ['deleteiconhint', { value: 'Delete', ...i3.PROP_STRING }]
54
55
  ]));
55
56
  i3.registerFormWidget(i1.FormWidgetType.UPLOAD, new Map([
56
57
  ['disabled', i3.PROP_BOOLEAN],
@@ -185,14 +186,14 @@
185
186
  i0__namespace.ɵɵadvance();
186
187
  i0__namespace.ɵɵproperty("innerHTML", ctx_r1.caption, i0__namespace.ɵɵsanitizeHtml);
187
188
  } }
188
- function FileUploadComponent_ul_4_div_1_li_1_span_8_Template(rf, ctx) { if (rf & 1) {
189
+ function FileUploadComponent_ul_4_ng_container_1_li_1_span_8_Template(rf, ctx) { if (rf & 1) {
189
190
  i0__namespace.ɵɵelement(0, "span");
190
191
  i0__namespace.ɵɵpipe(1, "stateClass");
191
192
  } if (rf & 2) {
192
193
  const ft_r7 = i0__namespace.ɵɵnextContext(2).$implicit;
193
194
  i0__namespace.ɵɵclassMapInterpolate1("status-icon ", i0__namespace.ɵɵpipeBind1(1, 3, ft_r7.status), "");
194
195
  } }
195
- function FileUploadComponent_ul_4_div_1_li_1_span_10_Template(rf, ctx) { if (rf & 1) {
196
+ function FileUploadComponent_ul_4_ng_container_1_li_1_span_10_Template(rf, ctx) { if (rf & 1) {
196
197
  i0__namespace.ɵɵelementStart(0, "span", 47);
197
198
  i0__namespace.ɵɵtext(1);
198
199
  i0__namespace.ɵɵpipe(2, "filesize");
@@ -202,7 +203,7 @@
202
203
  i0__namespace.ɵɵadvance();
203
204
  i0__namespace.ɵɵtextInterpolate(i0__namespace.ɵɵpipeBind2(2, 1, ft_r7.size, 0));
204
205
  } }
205
- function FileUploadComponent_ul_4_div_1_li_1_span_11_Template(rf, ctx) { if (rf & 1) {
206
+ function FileUploadComponent_ul_4_ng_container_1_li_1_span_11_Template(rf, ctx) { if (rf & 1) {
206
207
  i0__namespace.ɵɵelement(0, "span", 34);
207
208
  i0__namespace.ɵɵpipe(1, "stateClass");
208
209
  } if (rf & 2) {
@@ -211,12 +212,12 @@
211
212
  i0__namespace.ɵɵclassMapInterpolate1("status-icon ", i0__namespace.ɵɵpipeBind1(1, 4, ft_r7.status), "");
212
213
  i0__namespace.ɵɵpropertyInterpolate("title", ft_r7.errMsg || ctx_r1.appLocale.MESSAGE_FILE_UPLOAD_FAILED);
213
214
  } }
214
- function FileUploadComponent_ul_4_div_1_li_1_span_12_Template(rf, ctx) { if (rf & 1) {
215
+ function FileUploadComponent_ul_4_ng_container_1_li_1_span_12_Template(rf, ctx) { if (rf & 1) {
215
216
  i0__namespace.ɵɵelementStart(0, "span", 48);
216
217
  i0__namespace.ɵɵtext(1, "Upload Failed");
217
218
  i0__namespace.ɵɵelementEnd();
218
219
  } }
219
- function FileUploadComponent_ul_4_div_1_li_1_div_13_Template(rf, ctx) { if (rf & 1) {
220
+ function FileUploadComponent_ul_4_ng_container_1_li_1_div_13_Template(rf, ctx) { if (rf & 1) {
220
221
  i0__namespace.ɵɵelementStart(0, "div", 49);
221
222
  i0__namespace.ɵɵelement(1, "div", 50);
222
223
  i0__namespace.ɵɵelementEnd();
@@ -225,7 +226,7 @@
225
226
  i0__namespace.ɵɵadvance();
226
227
  i0__namespace.ɵɵproperty("ngClass", ft_r7.status === "error" ? "progress-bar-danger" : "progress-bar-info")("ngStyle", i0__namespace.ɵɵpureFunction1(2, _c3, ft_r7.progress + "%"));
227
228
  } }
228
- function FileUploadComponent_ul_4_div_1_li_1_div_14_Template(rf, ctx) { if (rf & 1) {
229
+ function FileUploadComponent_ul_4_ng_container_1_li_1_div_14_Template(rf, ctx) { if (rf & 1) {
229
230
  i0__namespace.ɵɵelementStart(0, "div", 51);
230
231
  i0__namespace.ɵɵtext(1);
231
232
  i0__namespace.ɵɵelementEnd();
@@ -234,17 +235,17 @@
234
235
  i0__namespace.ɵɵadvance();
235
236
  i0__namespace.ɵɵtextInterpolate1("", ft_r7.progress + "%", " ");
236
237
  } }
237
- function FileUploadComponent_ul_4_div_1_li_1_div_15_Template(rf, ctx) { if (rf & 1) {
238
+ function FileUploadComponent_ul_4_ng_container_1_li_1_div_15_Template(rf, ctx) { if (rf & 1) {
238
239
  const _r8 = i0__namespace.ɵɵgetCurrentView();
239
240
  i0__namespace.ɵɵelementStart(0, "div", 45)(1, "a", 52);
240
- i0__namespace.ɵɵlistener("click", function FileUploadComponent_ul_4_div_1_li_1_div_15_Template_a_click_1_listener() { i0__namespace.ɵɵrestoreView(_r8); const ft_r7 = i0__namespace.ɵɵnextContext(2).$implicit; const ctx_r1 = i0__namespace.ɵɵnextContext(2); return i0__namespace.ɵɵresetView(ctx_r1.abortFileUpload(ft_r7)); });
241
+ i0__namespace.ɵɵlistener("click", function FileUploadComponent_ul_4_ng_container_1_li_1_div_15_Template_a_click_1_listener() { i0__namespace.ɵɵrestoreView(_r8); const ft_r7 = i0__namespace.ɵɵnextContext(2).$implicit; const ctx_r1 = i0__namespace.ɵɵnextContext(2); return i0__namespace.ɵɵresetView(ctx_r1.abortFileUpload(ft_r7)); });
241
242
  i0__namespace.ɵɵelement(2, "i", 53);
242
243
  i0__namespace.ɵɵelementEnd()();
243
244
  } }
244
- function FileUploadComponent_ul_4_div_1_li_1_a_17_Template(rf, ctx) { if (rf & 1) {
245
+ function FileUploadComponent_ul_4_ng_container_1_li_1_a_17_Template(rf, ctx) { if (rf & 1) {
245
246
  const _r9 = i0__namespace.ɵɵgetCurrentView();
246
247
  i0__namespace.ɵɵelementStart(0, "a", 54);
247
- i0__namespace.ɵɵlistener("click", function FileUploadComponent_ul_4_div_1_li_1_a_17_Template_a_click_0_listener() { i0__namespace.ɵɵrestoreView(_r9); const ft_r7 = i0__namespace.ɵɵnextContext(2).$implicit; const ctx_r1 = i0__namespace.ɵɵnextContext(2); return i0__namespace.ɵɵresetView(ctx_r1.clear(ft_r7)); });
248
+ i0__namespace.ɵɵlistener("click", function FileUploadComponent_ul_4_ng_container_1_li_1_a_17_Template_a_click_0_listener() { i0__namespace.ɵɵrestoreView(_r9); const ft_r7 = i0__namespace.ɵɵnextContext(2).$implicit; const ctx_r1 = i0__namespace.ɵɵnextContext(2); return i0__namespace.ɵɵresetView(ctx_r1.clear(ft_r7)); });
248
249
  i0__namespace.ɵɵelement(1, "i");
249
250
  i0__namespace.ɵɵelementEnd();
250
251
  } if (rf & 2) {
@@ -253,31 +254,35 @@
253
254
  i0__namespace.ɵɵadvance();
254
255
  i0__namespace.ɵɵclassMap(ctx_r1.cleariconclass);
255
256
  } }
256
- function FileUploadComponent_ul_4_div_1_li_1_div_18_Template(rf, ctx) { if (rf & 1) {
257
+ function FileUploadComponent_ul_4_ng_container_1_li_1_div_18_Template(rf, ctx) { if (rf & 1) {
257
258
  const _r10 = i0__namespace.ɵɵgetCurrentView();
258
- i0__namespace.ɵɵelementStart(0, "div", 45)(1, "a", 55);
259
- i0__namespace.ɵɵlistener("click", function FileUploadComponent_ul_4_div_1_li_1_div_18_Template_a_click_1_listener($event) { i0__namespace.ɵɵrestoreView(_r10); const ft_r7 = i0__namespace.ɵɵnextContext(2).$implicit; const ctx_r1 = i0__namespace.ɵɵnextContext(2); return i0__namespace.ɵɵresetView(ctx_r1.onFileDelete($event, ft_r7)); });
260
- i0__namespace.ɵɵelement(2, "i", 56);
259
+ i0__namespace.ɵɵelementStart(0, "div", 45)(1, "a", 54);
260
+ i0__namespace.ɵɵlistener("click", function FileUploadComponent_ul_4_ng_container_1_li_1_div_18_Template_a_click_1_listener($event) { i0__namespace.ɵɵrestoreView(_r10); const ft_r7 = i0__namespace.ɵɵnextContext(2).$implicit; const ctx_r1 = i0__namespace.ɵɵnextContext(2); return i0__namespace.ɵɵresetView(ctx_r1.onFileDelete($event, ft_r7)); });
261
+ i0__namespace.ɵɵelement(2, "i", 55);
261
262
  i0__namespace.ɵɵelementEnd()();
263
+ } if (rf & 2) {
264
+ const ctx_r1 = i0__namespace.ɵɵnextContext(4);
265
+ i0__namespace.ɵɵadvance();
266
+ i0__namespace.ɵɵpropertyInterpolate("title", ctx_r1.deleteiconhint);
262
267
  } }
263
- function FileUploadComponent_ul_4_div_1_li_1_Template(rf, ctx) { if (rf & 1) {
268
+ function FileUploadComponent_ul_4_ng_container_1_li_1_Template(rf, ctx) { if (rf & 1) {
264
269
  i0__namespace.ɵɵelementStart(0, "li", 32)(1, "div", 33);
265
270
  i0__namespace.ɵɵelement(2, "div", 34);
266
271
  i0__namespace.ɵɵpipe(3, "fileIconClass");
267
272
  i0__namespace.ɵɵelementStart(4, "div", 35)(5, "p", 36)(6, "span", 37);
268
273
  i0__namespace.ɵɵtext(7);
269
274
  i0__namespace.ɵɵelementEnd();
270
- i0__namespace.ɵɵtemplate(8, FileUploadComponent_ul_4_div_1_li_1_span_8_Template, 2, 5, "span", 38);
275
+ i0__namespace.ɵɵtemplate(8, FileUploadComponent_ul_4_ng_container_1_li_1_span_8_Template, 2, 5, "span", 38);
271
276
  i0__namespace.ɵɵelement(9, "br");
272
- i0__namespace.ɵɵtemplate(10, FileUploadComponent_ul_4_div_1_li_1_span_10_Template, 3, 4, "span", 39)(11, FileUploadComponent_ul_4_div_1_li_1_span_11_Template, 2, 6, "span", 40)(12, FileUploadComponent_ul_4_div_1_li_1_span_12_Template, 2, 0, "span", 41);
277
+ i0__namespace.ɵɵ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);
273
278
  i0__namespace.ɵɵelementEnd();
274
- i0__namespace.ɵɵtemplate(13, FileUploadComponent_ul_4_div_1_li_1_div_13_Template, 2, 4, "div", 42)(14, FileUploadComponent_ul_4_div_1_li_1_div_14_Template, 2, 1, "div", 43);
279
+ i0__namespace.ɵɵ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);
275
280
  i0__namespace.ɵɵelementEnd();
276
- i0__namespace.ɵɵtemplate(15, FileUploadComponent_ul_4_div_1_li_1_div_15_Template, 3, 0, "div", 44);
281
+ i0__namespace.ɵɵtemplate(15, FileUploadComponent_ul_4_ng_container_1_li_1_div_15_Template, 3, 0, "div", 44);
277
282
  i0__namespace.ɵɵelementStart(16, "div", 45);
278
- i0__namespace.ɵɵtemplate(17, FileUploadComponent_ul_4_div_1_li_1_a_17_Template, 2, 4, "a", 46);
283
+ i0__namespace.ɵɵtemplate(17, FileUploadComponent_ul_4_ng_container_1_li_1_a_17_Template, 2, 4, "a", 46);
279
284
  i0__namespace.ɵɵelementEnd();
280
- i0__namespace.ɵɵtemplate(18, FileUploadComponent_ul_4_div_1_li_1_div_18_Template, 3, 0, "div", 44);
285
+ i0__namespace.ɵɵtemplate(18, FileUploadComponent_ul_4_ng_container_1_li_1_div_18_Template, 3, 1, "div", 44);
281
286
  i0__namespace.ɵɵelementEnd()();
282
287
  } if (rf & 2) {
283
288
  const ft_r7 = i0__namespace.ɵɵnextContext().$implicit;
@@ -288,7 +293,7 @@
288
293
  i0__namespace.ɵɵadvance(5);
289
294
  i0__namespace.ɵɵtextInterpolate(ft_r7.storageName || ft_r7.name);
290
295
  i0__namespace.ɵɵadvance();
291
- i0__namespace.ɵɵproperty("ngIf", ft_r7.status === "success");
296
+ i0__namespace.ɵɵproperty("ngIf", ft_r7.status === "success" && (!ctx_r1.datasource || ctx_r1.datasource && (ft_r7._response == null ? null : ft_r7._response.success)));
292
297
  i0__namespace.ɵɵadvance(2);
293
298
  i0__namespace.ɵɵproperty("ngIf", ft_r7.fileLength !== 0);
294
299
  i0__namespace.ɵɵadvance();
@@ -304,12 +309,12 @@
304
309
  i0__namespace.ɵɵadvance(2);
305
310
  i0__namespace.ɵɵproperty("ngIf", ctx_r1.cleariconclass !== "" && ft_r7.status !== "onProgress");
306
311
  i0__namespace.ɵɵadvance();
307
- i0__namespace.ɵɵproperty("ngIf", ft_r7.status === "success");
312
+ i0__namespace.ɵɵproperty("ngIf", ft_r7.status === "success" && (!ctx_r1.datasource || ctx_r1.datasource && (ft_r7._response == null ? null : ft_r7._response.success)));
308
313
  } }
309
- function FileUploadComponent_ul_4_div_1_Template(rf, ctx) { if (rf & 1) {
310
- i0__namespace.ɵɵelementStart(0, "div");
311
- i0__namespace.ɵɵtemplate(1, FileUploadComponent_ul_4_div_1_li_1_Template, 19, 16, "li", 31);
312
- i0__namespace.ɵɵelementEnd();
314
+ function FileUploadComponent_ul_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {
315
+ i0__namespace.ɵɵelementContainerStart(0);
316
+ i0__namespace.ɵɵtemplate(1, FileUploadComponent_ul_4_ng_container_1_li_1_Template, 19, 16, "li", 31);
317
+ i0__namespace.ɵɵelementContainerEnd();
313
318
  } if (rf & 2) {
314
319
  const ft_r7 = ctx.$implicit;
315
320
  i0__namespace.ɵɵadvance();
@@ -317,7 +322,7 @@
317
322
  } }
318
323
  function FileUploadComponent_ul_4_Template(rf, ctx) { if (rf & 1) {
319
324
  i0__namespace.ɵɵelementStart(0, "ul", 29);
320
- i0__namespace.ɵɵtemplate(1, FileUploadComponent_ul_4_div_1_Template, 2, 1, "div", 30);
325
+ i0__namespace.ɵɵtemplate(1, FileUploadComponent_ul_4_ng_container_1_Template, 2, 1, "ng-container", 30);
321
326
  i0__namespace.ɵɵelementEnd();
322
327
  } if (rf & 2) {
323
328
  const ctx_r1 = i0__namespace.ɵɵnextContext();
@@ -326,7 +331,7 @@
326
331
  i0__namespace.ɵɵproperty("ngForOf", ctx_r1.uploadedFiles);
327
332
  } }
328
333
  function FileUploadComponent_ul_5_li_1_Template(rf, ctx) { if (rf & 1) {
329
- i0__namespace.ɵɵelementStart(0, "li", 32)(1, "div", 33);
334
+ i0__namespace.ɵɵelementStart(0, "li", 58)(1, "div", 33);
330
335
  i0__namespace.ɵɵelement(2, "div", 59);
331
336
  i0__namespace.ɵɵelementStart(3, "div", 35)(4, "p", 60)(5, "label", 37);
332
337
  i0__namespace.ɵɵtext(6);
@@ -342,8 +347,8 @@
342
347
  i0__namespace.ɵɵtextInterpolate(ft_r11.name);
343
348
  } }
344
349
  function FileUploadComponent_ul_5_Template(rf, ctx) { if (rf & 1) {
345
- i0__namespace.ɵɵelementStart(0, "ul", 57);
346
- i0__namespace.ɵɵtemplate(1, FileUploadComponent_ul_5_li_1_Template, 10, 1, "li", 58);
350
+ i0__namespace.ɵɵelementStart(0, "ul", 56);
351
+ i0__namespace.ɵɵtemplate(1, FileUploadComponent_ul_5_li_1_Template, 10, 1, "li", 57);
347
352
  i0__namespace.ɵɵelementEnd();
348
353
  } if (rf & 2) {
349
354
  const ctx_r1 = i0__namespace.ɵɵnextContext();
@@ -460,6 +465,9 @@
460
465
  * @param $files
461
466
  */
462
467
  onSelectEventCall($event, $files) {
468
+ $files.forEach(file => {
469
+ file.uniqueId = this.idGenerator.nextUid();
470
+ });
463
471
  this.selectedFiles = $files;
464
472
  this.uploadedFiles = this.multiple ? [...this.uploadedFiles, ...$files] : $files;
465
473
  setTimeout(() => {
@@ -515,34 +523,36 @@
515
523
  }
516
524
  // Make call if there are valid files else no call is made
517
525
  if ($files.length) {
518
- this.progressObservable = new rxjs.Subject();
519
526
  // EVENT: ON_BEFORE_SELECT
520
527
  beforeSelectVal = this.invokeEventCallback('beforeselect', {
521
528
  $event: $.extend($event.$files || {}, $files),
522
529
  files: $files
523
530
  });
524
531
  if (this.datasource) {
525
- this.datasource._progressObservable = this.progressObservable;
526
- this.datasource._progressObservable.asObservable().subscribe((progressObj) => {
527
- lodashEs.forEach(this.selectedFiles, (file) => {
528
- if (file.name === progressObj.fileName) {
529
- file.progress = progressObj.progress;
530
- if (file.progress === 100) {
531
- file.status = 'success';
532
- }
533
- else {
534
- file.status = progressObj.status;
535
- if (progressObj.errMsg) {
536
- file.errMsg = progressObj.errMsg;
537
- this.invokeEventCallback('error', {
538
- $event,
539
- files: file
540
- });
532
+ if (!this.uploadProgressSubscription) {
533
+ this.progressObservable = new rxjs.Subject();
534
+ this.datasource._progressObservable = this.progressObservable;
535
+ this.uploadProgressSubscription = this.datasource._progressObservable.asObservable().subscribe((progressObj) => {
536
+ lodashEs.forEach(this.uploadedFiles, (file) => {
537
+ if (file.name === progressObj.fileName && file.uniqueId === progressObj.uniqueId) {
538
+ file.progress = progressObj.progress;
539
+ if (file.progress === 100) {
540
+ file.status = 'success';
541
+ }
542
+ else {
543
+ file.status = progressObj.status;
544
+ if (progressObj.errMsg) {
545
+ file.errMsg = progressObj.errMsg;
546
+ this.invokeEventCallback('error', {
547
+ $event,
548
+ files: file
549
+ });
550
+ }
541
551
  }
542
552
  }
543
- }
553
+ });
544
554
  });
545
- });
555
+ }
546
556
  }
547
557
  else {
548
558
  this.selectedFiles = $files;
@@ -567,17 +577,16 @@
567
577
  onOk: () => {
568
578
  if (this.deletedatasource) {
569
579
  this.deletedatasource.setInput('file', file._response.fileName || file.name);
570
- this.deleteFileObservable = new rxjs.Subject();
571
- this.deletedatasource._deleteFileObservable = this.deleteFileObservable;
572
- this.deletedatasource._deleteFileObservable.asObservable().subscribe((response) => {
573
- if (response.status === "success") {
574
- this.selectedFiles = this.selectedFiles.filter((fileObj) => file !== fileObj) || [];
575
- this.uploadedFiles = this.uploadedFiles.filter((fileObj) => file !== fileObj) || [];
576
- this.deletedatasource._deleteFileObservable.unsubscribe();
577
- }
578
- }, (error) => {
579
- this.deletedatasource._deleteFileObservable.unsubscribe();
580
- });
580
+ if (!this.deleteProgressSubscription) {
581
+ this.deleteFileObservable = new rxjs.Subject();
582
+ this.deletedatasource._deleteFileObservable = this.deleteFileObservable;
583
+ this.deletedatasource._deleteFileObservable.asObservable().subscribe((response) => {
584
+ if (response.status === "success") {
585
+ this.selectedFiles = this.selectedFiles.filter((fileObj) => file !== fileObj) || [];
586
+ this.uploadedFiles = this.uploadedFiles.filter((fileObj) => file !== fileObj) || [];
587
+ }
588
+ });
589
+ }
581
590
  }
582
591
  this.invokeEventCallback('delete', { $event: file });
583
592
  this.dialogService.closeAppConfirmDialog();
@@ -700,6 +709,7 @@
700
709
  this.defaultAllowedExtensions = this.allowedFileUploadExtensions.split(',').map(item => item.trim()).map(item => item.endsWith('/*') ? item : `.${item}`);
701
710
  this.chooseFilter = this.defaultAllowedExtensions.includes('*/*') ? '' : this.defaultAllowedExtensions;
702
711
  this.fileUploadMessage = 'Drop your files here or click here to browse';
712
+ this.idGenerator = new i1.IDGenerator('file-');
703
713
  this.uploadUrl = 'services';
704
714
  // styler(this.nativeElement, this);
705
715
  }
@@ -719,11 +729,17 @@
719
729
  document.removeEventListener('drop', this.dropCb);
720
730
  document.removeEventListener('mouseleave', this.dropCb);
721
731
  super.ngOnDestroy();
732
+ const subscriptions = [this.uploadProgressSubscription, this.deleteProgressSubscription];
733
+ subscriptions.forEach(subscription => {
734
+ if (subscription) {
735
+ subscription.unsubscribe();
736
+ }
737
+ });
722
738
  }
723
739
  static { this.ɵfac = function FileUploadComponent_Factory(t) { return new (t || FileUploadComponent)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(i1__namespace.App), i0__namespace.ɵɵinjectAttribute('select.event'), i0__namespace.ɵɵdirectiveInject(i1__namespace.AbstractDialogService), i0__namespace.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
724
740
  static { this.ɵcmp = /*@__PURE__*/ i0__namespace.ɵɵdefineComponent({ type: FileUploadComponent, selectors: [["", "wmFileUpload", ""]], features: [i0__namespace.ɵɵProvidersFeature([
725
741
  i3.provideAsWidgetRef(FileUploadComponent)
726
- ]), i0__namespace.ɵɵ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, "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"], [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", "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"], ["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"], ["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"], ["title", "delete", "type", "button", 1, "btn", "btn-transparent", "btn-default", "status-icon", 3, "click"], [1, "wi", "wi-delete"], [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, "uploaddetails"], [1, "status-icon", "wi", "wi-cancel", "text-danger"]], template: function FileUploadComponent_Template(rf, ctx) { if (rf & 1) {
742
+ ]), i0__namespace.ɵɵ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) {
727
743
  i0__namespace.ɵɵelementStart(0, "div", 0);
728
744
  i0__namespace.ɵɵ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);
729
745
  i0__namespace.ɵɵelementEnd();
@@ -744,7 +760,7 @@
744
760
  type: i0.Component,
745
761
  args: [{ selector: '[wmFileUpload]', providers: [
746
762
  i3.provideAsWidgetRef(FileUploadComponent)
747
- ], 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}\" *ngIf=\"uploadedFiles.length > 0\" >\n <div *ngFor=\"let ft of uploadedFiles\">\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 col-md-3\">\n <span class=\"upload-title\">{{ ft.storageName || ft.name }}</span>\n <span *ngIf=\"ft.status === '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 class=\"btn btn-transparent file-upload-stop\" type=\"button\" (click)=\"abortFileUpload(ft)\">\n <i class=\"wi wi-close\"></i>\n </a>\n </div>\n <div class=\"media-right media-middle\">\n <a (click)=\"clear(ft)\" *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'\">\n <a (click)=\"onFileDelete($event, ft)\" class=\"btn btn-transparent btn-default status-icon\" title=\"delete\" type=\"button\">\n <i class=\"wi wi-delete\"></i>\n </a>\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" }]
763
+ ], 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" }]
748
764
  }], () => [{ type: i0__namespace.Injector }, { type: i1__namespace.App }, { type: undefined, decorators: [{
749
765
  type: i0.Attribute,
750
766
  args: ['select.event']