ngx-wapp-components 1.0.49 → 1.0.51

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 (349) hide show
  1. package/ng-package.json +7 -0
  2. package/package.json +42 -51
  3. package/src/lib/button/w-button/w-button.component.html +85 -0
  4. package/src/lib/button/w-button/w-button.component.scss +218 -0
  5. package/src/lib/button/w-button/w-button.component.spec.ts +23 -0
  6. package/src/lib/button/w-button/w-button.component.ts +40 -0
  7. package/src/lib/button/w-buttons-footer/w-buttons-footer.component.html +3 -0
  8. package/src/lib/button/w-buttons-footer/w-buttons-footer.component.scss +11 -0
  9. package/src/lib/button/w-buttons-footer/w-buttons-footer.component.spec.ts +23 -0
  10. package/src/lib/button/w-buttons-footer/w-buttons-footer.component.ts +10 -0
  11. package/src/lib/button/w-select-button/w-select-button.component.html +29 -0
  12. package/src/lib/button/w-select-button/w-select-button.component.scss +65 -0
  13. package/src/lib/button/w-select-button/w-select-button.component.spec.ts +23 -0
  14. package/src/lib/button/w-select-button/w-select-button.component.ts +65 -0
  15. package/src/lib/button/w-toggle-button/w-toggle-button.component.html +33 -0
  16. package/src/lib/button/w-toggle-button/w-toggle-button.component.scss +112 -0
  17. package/src/lib/button/w-toggle-button/w-toggle-button.component.spec.ts +23 -0
  18. package/src/lib/button/w-toggle-button/w-toggle-button.component.ts +75 -0
  19. package/src/lib/edit/w-edit-calendar/w-edit-calendar.component.html +37 -0
  20. package/src/lib/edit/w-edit-calendar/w-edit-calendar.component.scss +59 -0
  21. package/src/lib/edit/w-edit-calendar/w-edit-calendar.component.spec.ts +23 -0
  22. package/src/lib/edit/w-edit-calendar/w-edit-calendar.component.ts +75 -0
  23. package/src/lib/edit/w-edit-checkbox/w-edit-checkbox.component.html +55 -0
  24. package/src/lib/edit/w-edit-checkbox/w-edit-checkbox.component.scss +72 -0
  25. package/src/lib/edit/w-edit-checkbox/w-edit-checkbox.component.spec.ts +23 -0
  26. package/src/lib/edit/w-edit-checkbox/w-edit-checkbox.component.ts +70 -0
  27. package/src/lib/edit/w-edit-input-number/w-edit-input-number.component.html +60 -0
  28. package/src/lib/edit/w-edit-input-number/w-edit-input-number.component.scss +260 -0
  29. package/src/lib/edit/w-edit-input-number/w-edit-input-number.component.spec.ts +23 -0
  30. package/src/lib/edit/w-edit-input-number/w-edit-input-number.component.ts +85 -0
  31. package/src/lib/edit/w-edit-input-text/w-edit-input-text.component.html +59 -0
  32. package/src/lib/edit/w-edit-input-text/w-edit-input-text.component.scss +247 -0
  33. package/src/lib/edit/w-edit-input-text/w-edit-input-text.component.spec.ts +23 -0
  34. package/src/lib/edit/w-edit-input-text/w-edit-input-text.component.ts +90 -0
  35. package/src/lib/edit/w-edit-input-textarea/w-edit-input-textarea.component.html +92 -0
  36. package/src/lib/edit/w-edit-input-textarea/w-edit-input-textarea.component.scss +234 -0
  37. package/src/lib/edit/w-edit-input-textarea/w-edit-input-textarea.component.spec.ts +23 -0
  38. package/src/lib/edit/w-edit-input-textarea/w-edit-input-textarea.component.ts +71 -0
  39. package/src/lib/edit/w-edit-multiselect/w-edit-multiselect.component.html +59 -0
  40. package/src/lib/edit/w-edit-multiselect/w-edit-multiselect.component.scss +227 -0
  41. package/src/lib/edit/w-edit-multiselect/w-edit-multiselect.component.spec.ts +23 -0
  42. package/src/lib/edit/w-edit-multiselect/w-edit-multiselect.component.ts +81 -0
  43. package/src/lib/edit/w-edit-select/w-edit-select.component.html +56 -0
  44. package/src/lib/edit/w-edit-select/w-edit-select.component.scss +166 -0
  45. package/src/lib/edit/w-edit-select/w-edit-select.component.spec.ts +23 -0
  46. package/src/lib/edit/w-edit-select/w-edit-select.component.ts +83 -0
  47. package/src/lib/edit/w-edit-toggle/w-edit-toggle.component.html +55 -0
  48. package/src/lib/edit/w-edit-toggle/w-edit-toggle.component.scss +55 -0
  49. package/src/lib/edit/w-edit-toggle/w-edit-toggle.component.spec.ts +23 -0
  50. package/src/lib/edit/w-edit-toggle/w-edit-toggle.component.ts +71 -0
  51. package/src/lib/edit/w-edit-treeselect/w-edit-treeselect.component.html +58 -0
  52. package/src/lib/edit/w-edit-treeselect/w-edit-treeselect.component.scss +176 -0
  53. package/src/lib/edit/w-edit-treeselect/w-edit-treeselect.component.spec.ts +23 -0
  54. package/src/lib/edit/w-edit-treeselect/w-edit-treeselect.component.ts +80 -0
  55. package/src/lib/file/w-image-cropper/w-image-cropper.component.html +150 -0
  56. package/src/lib/file/w-image-cropper/w-image-cropper.component.scss +59 -0
  57. package/src/lib/file/w-image-cropper/w-image-cropper.component.spec.ts +23 -0
  58. package/src/lib/file/w-image-cropper/w-image-cropper.component.ts +259 -0
  59. package/src/lib/file/w-image-file-uploader/w-image-file-uploader.component.html +100 -0
  60. package/src/lib/file/w-image-file-uploader/w-image-file-uploader.component.scss +77 -0
  61. package/src/lib/file/w-image-file-uploader/w-image-file-uploader.component.spec.ts +23 -0
  62. package/src/lib/file/w-image-file-uploader/w-image-file-uploader.component.ts +388 -0
  63. package/src/lib/file/w-preview-image/w-preview-image.component.css +0 -0
  64. package/src/lib/file/w-preview-image/w-preview-image.component.html +5 -0
  65. package/src/lib/file/w-preview-image/w-preview-image.component.spec.ts +23 -0
  66. package/src/lib/file/w-preview-image/w-preview-image.component.ts +17 -0
  67. package/src/lib/icons/icons.ts +116 -0
  68. package/src/lib/icons/wapping-icons/w-icons.component.ts +52 -0
  69. package/src/lib/layout/w-body/w-body.component.html +3 -0
  70. package/src/lib/layout/w-body/w-body.component.scss +13 -0
  71. package/src/lib/layout/w-body/w-body.component.spec.ts +23 -0
  72. package/src/lib/layout/w-body/w-body.component.ts +10 -0
  73. package/src/lib/layout/w-body-container/w-body-container.component.html +3 -0
  74. package/src/lib/layout/w-body-container/w-body-container.component.scss +58 -0
  75. package/src/lib/layout/w-body-container/w-body-container.component.spec.ts +23 -0
  76. package/src/lib/layout/w-body-container/w-body-container.component.ts +10 -0
  77. package/src/lib/layout/w-body-grid/w-body-grid.component.html +3 -0
  78. package/src/lib/layout/w-body-grid/w-body-grid.component.scss +59 -0
  79. package/src/lib/layout/w-body-grid/w-body-grid.component.spec.ts +23 -0
  80. package/src/lib/layout/w-body-grid/w-body-grid.component.ts +10 -0
  81. package/src/lib/layout/w-container/w-container.component.scss +9 -0
  82. package/src/lib/layout/w-container/w-container.component.ts +14 -0
  83. package/src/lib/layout/w-footer/w-footer.component.html +11 -0
  84. package/src/lib/layout/w-footer/w-footer.component.scss +17 -0
  85. package/src/lib/layout/w-footer/w-footer.component.spec.ts +23 -0
  86. package/src/lib/layout/w-footer/w-footer.component.ts +19 -0
  87. package/src/lib/layout/w-header-panel/w-header-panel.component.html +9 -0
  88. package/src/lib/layout/w-header-panel/w-header-panel.component.scss +29 -0
  89. package/src/lib/layout/w-header-panel/w-header-panel.component.spec.ts +23 -0
  90. package/src/lib/layout/w-header-panel/w-header-panel.component.ts +27 -0
  91. package/src/lib/layout/w-navbar/w-navbar.component.html +26 -0
  92. package/src/lib/layout/w-navbar/w-navbar.component.scss +26 -0
  93. package/src/lib/layout/w-navbar/w-navbar.component.spec.ts +23 -0
  94. package/src/lib/layout/w-navbar/w-navbar.component.ts +48 -0
  95. package/src/lib/layout/w-panel/w-panel.component.html +6 -0
  96. package/src/lib/layout/w-panel/w-panel.component.scss +72 -0
  97. package/src/lib/layout/w-panel/w-panel.component.spec.ts +23 -0
  98. package/src/lib/layout/w-panel/w-panel.component.ts +13 -0
  99. package/src/lib/layout/w-panel-grid/w-panel-grid.component.html +3 -0
  100. package/src/lib/layout/w-panel-grid/w-panel-grid.component.scss +58 -0
  101. package/src/lib/layout/w-panel-grid/w-panel-grid.component.spec.ts +23 -0
  102. package/src/lib/layout/w-panel-grid/w-panel-grid.component.ts +10 -0
  103. package/src/lib/layout/w-panel-title/w-panel-title.component.html +1 -0
  104. package/src/lib/layout/w-panel-title/w-panel-title.component.scss +6 -0
  105. package/src/lib/layout/w-panel-title/w-panel-title.component.spec.ts +23 -0
  106. package/src/lib/layout/w-panel-title/w-panel-title.component.ts +10 -0
  107. package/src/lib/logos/logos.ts +7 -0
  108. package/src/lib/logos/wapping-logos/w-logos.component.ts +47 -0
  109. package/src/lib/misc/w-filter-panel/w-filter-panel.component.html +303 -0
  110. package/src/lib/misc/w-filter-panel/w-filter-panel.component.scss +391 -0
  111. package/src/lib/misc/w-filter-panel/w-filter-panel.component.spec.ts +23 -0
  112. package/src/lib/misc/w-filter-panel/w-filter-panel.component.ts +388 -0
  113. package/src/lib/misc/w-filter-panel/w-list-field/w-list-field.component.html +21 -0
  114. package/src/lib/misc/w-filter-panel/w-list-field/w-list-field.component.scss +65 -0
  115. package/src/lib/misc/w-filter-panel/w-list-field/w-list-field.component.spec.ts +23 -0
  116. package/src/lib/misc/w-filter-panel/w-list-field/w-list-field.component.ts +73 -0
  117. package/src/lib/report/w-powerbi-report/w-powerbi-report.component.css +24 -0
  118. package/src/lib/report/w-powerbi-report/w-powerbi-report.component.html +52 -0
  119. package/src/lib/report/w-powerbi-report/w-powerbi-report.component.spec.ts +23 -0
  120. package/src/lib/report/w-powerbi-report/w-powerbi-report.component.ts +170 -0
  121. package/src/lib/search/w-autocomplete-search/w-autocomplete-search.component.html +92 -0
  122. package/src/lib/search/w-autocomplete-search/w-autocomplete-search.component.scss +142 -0
  123. package/src/lib/search/w-autocomplete-search/w-autocomplete-search.component.spec.ts +23 -0
  124. package/src/lib/search/w-autocomplete-search/w-autocomplete-search.component.ts +94 -0
  125. package/src/lib/search/w-input-search/w-input-search.component.html +130 -0
  126. package/src/lib/search/w-input-search/w-input-search.component.scss +158 -0
  127. package/src/lib/search/w-input-search/w-input-search.component.spec.ts +23 -0
  128. package/src/lib/search/w-input-search/w-input-search.component.ts +85 -0
  129. package/src/lib/shared/enums/enum.ts +12 -0
  130. package/src/lib/shared/models/back-button-config.model.ts +5 -0
  131. package/src/lib/shared/models/custom-button-config.model.ts +4 -0
  132. package/{lib/shared/models/embed-config.model.d.ts → src/lib/shared/models/embed-config.model.ts} +2 -2
  133. package/{lib/shared/models/enums.model.d.ts → src/lib/shared/models/enums.model.ts} +22 -18
  134. package/{lib/shared/models/filter-panel/field.model.d.ts → src/lib/shared/models/filter-panel/field.model.ts} +20 -2
  135. package/src/lib/shared/models/filter-panel/filter-field.models.ts +15 -0
  136. package/src/lib/shared/models/filter-panel/filter-panel-translations.model.ts +29 -0
  137. package/src/lib/shared/models/filter-panel/qb-filter-entity.model.ts +8 -0
  138. package/src/lib/shared/models/filter-panel/qb-filter-field.model.ts +12 -0
  139. package/src/lib/shared/models/filter-panel/qb-operators.model.ts +4 -0
  140. package/src/lib/shared/models/filter-panel/qb-panel-filter.model.ts +14 -0
  141. package/src/lib/shared/models/filter-panel/qb-panel-to-fields.model.ts +12 -0
  142. package/src/lib/shared/models/filter-panel/query-results.model.ts +17 -0
  143. package/src/lib/shared/models/filter.model.ts +5 -0
  144. package/src/lib/shared/models/image-b64.model.ts +5 -0
  145. package/src/lib/shared/models/lazy-element-query-request.model.ts +9 -0
  146. package/src/lib/shared/models/w-file-b64.model.ts +6 -0
  147. package/src/lib/shared/models/w-image-cropper-data.model.ts +7 -0
  148. package/src/lib/shared/models/w-image-file-uploader-config.model.ts +23 -0
  149. package/src/lib/shared/models/w-select-button-state.model.ts +4 -0
  150. package/src/lib/shared/models/w-tree-table.model.ts +30 -0
  151. package/src/lib/shared/models/wapp-table-lazy-loading.model.ts +53 -0
  152. package/src/lib/shared/models/wapp-table.model.ts +56 -0
  153. package/src/lib/shared/pipes/color-text.pipe.ts +20 -0
  154. package/src/lib/shared/service/api/api.service.ts +58 -0
  155. package/src/lib/shared/services/form-control.service.spec.ts +16 -0
  156. package/src/lib/shared/services/form-control.service.ts +15 -0
  157. package/src/lib/shared/services/modal.service.spec.ts +16 -0
  158. package/src/lib/shared/services/modal.service.ts +71 -0
  159. package/src/lib/shared/services/tree.service.ts +30 -0
  160. package/src/lib/sidebar/w-sidebar/w-sidebar.component.html +11 -0
  161. package/src/lib/sidebar/w-sidebar/w-sidebar.component.scss +69 -0
  162. package/src/lib/sidebar/w-sidebar/w-sidebar.component.spec.ts +23 -0
  163. package/src/lib/sidebar/w-sidebar/w-sidebar.component.ts +36 -0
  164. package/src/lib/tables/w-table/w-table.component.html +230 -0
  165. package/src/lib/tables/w-table/w-table.component.scss +225 -0
  166. package/src/lib/tables/w-table/w-table.component.spec.ts +23 -0
  167. package/src/lib/tables/w-table/w-table.component.ts +188 -0
  168. package/src/lib/tables/w-table-lazy/w-table-lazy.component.html +198 -0
  169. package/src/lib/tables/w-table-lazy/w-table-lazy.component.scss +226 -0
  170. package/src/lib/tables/w-table-lazy/w-table-lazy.component.spec.ts +23 -0
  171. package/src/lib/tables/w-table-lazy/w-table-lazy.component.ts +217 -0
  172. package/src/lib/tables/w-tree-table/w-tree-table.component.html +170 -0
  173. package/src/lib/tables/w-tree-table/w-tree-table.component.scss +221 -0
  174. package/src/lib/tables/w-tree-table/w-tree-table.component.spec.ts +23 -0
  175. package/src/lib/tables/w-tree-table/w-tree-table.component.ts +125 -0
  176. package/src/lib/tabview/w-tabview/w-tabview.component.html +72 -0
  177. package/src/lib/tabview/w-tabview/w-tabview.component.scss +34 -0
  178. package/src/lib/tabview/w-tabview/w-tabview.component.spec.ts +23 -0
  179. package/src/lib/tabview/w-tabview/w-tabview.component.ts +14 -0
  180. package/src/lib/theme/theme.component.css +0 -0
  181. package/src/lib/theme/theme.component.html +1 -0
  182. package/src/lib/theme/theme.component.spec.ts +23 -0
  183. package/src/lib/theme/theme.component.ts +10 -0
  184. package/src/lib/view/wapp-view-card-title-text/wapp-view-card-title-text.component.css +0 -0
  185. package/src/lib/view/wapp-view-card-title-text/wapp-view-card-title-text.component.html +1 -0
  186. package/src/lib/view/wapp-view-card-title-text/wapp-view-card-title-text.component.spec.ts +23 -0
  187. package/src/lib/view/wapp-view-card-title-text/wapp-view-card-title-text.component.ts +16 -0
  188. package/src/lib/w-clipboard/w-clipboard.component.css +13 -0
  189. package/src/lib/w-clipboard/w-clipboard.component.html +10 -0
  190. package/src/lib/w-clipboard/w-clipboard.component.spec.ts +23 -0
  191. package/src/lib/w-clipboard/w-clipboard.component.ts +32 -0
  192. package/src/lib/wapp-components.component.spec.ts +23 -0
  193. package/src/lib/wapp-components.component.ts +15 -0
  194. package/src/lib/wapp-components.module.ts +241 -0
  195. package/src/lib/wapp-components.service.spec.ts +16 -0
  196. package/src/lib/wapp-components.service.ts +9 -0
  197. package/{public-api.d.ts → src/public-api.ts} +15 -3
  198. package/src/styles/_variables.scss +427 -0
  199. package/tsconfig.lib.json +14 -0
  200. package/tsconfig.lib.prod.json +10 -0
  201. package/tsconfig.spec.json +14 -0
  202. package/esm2020/lib/button/w-button/w-button.component.mjs +0 -67
  203. package/esm2020/lib/button/w-buttons-footer/w-buttons-footer.component.mjs +0 -11
  204. package/esm2020/lib/button/w-select-button/w-select-button.component.mjs +0 -84
  205. package/esm2020/lib/button/w-toggle-button/w-toggle-button.component.mjs +0 -102
  206. package/esm2020/lib/edit/w-edit-calendar/w-edit-calendar.component.mjs +0 -104
  207. package/esm2020/lib/edit/w-edit-checkbox/w-edit-checkbox.component.mjs +0 -89
  208. package/esm2020/lib/edit/w-edit-input-number/w-edit-input-number.component.mjs +0 -130
  209. package/esm2020/lib/edit/w-edit-input-text/w-edit-input-text.component.mjs +0 -125
  210. package/esm2020/lib/edit/w-edit-input-textarea/w-edit-input-textarea.component.mjs +0 -108
  211. package/esm2020/lib/edit/w-edit-multiselect/w-edit-multiselect.component.mjs +0 -110
  212. package/esm2020/lib/edit/w-edit-select/w-edit-select.component.mjs +0 -115
  213. package/esm2020/lib/edit/w-edit-toggle/w-edit-toggle.component.mjs +0 -93
  214. package/esm2020/lib/edit/w-edit-treeselect/w-edit-treeselect.component.mjs +0 -107
  215. package/esm2020/lib/file/w-image-cropper/w-image-cropper.component.mjs +0 -236
  216. package/esm2020/lib/file/w-image-file-uploader/w-image-file-uploader.component.mjs +0 -409
  217. package/esm2020/lib/file/w-preview-image/w-preview-image.component.mjs +0 -20
  218. package/esm2020/lib/icons/icons.mjs +0 -115
  219. package/esm2020/lib/icons/wapping-icons/w-icons.component.mjs +0 -53
  220. package/esm2020/lib/layout/w-body/w-body.component.mjs +0 -18
  221. package/esm2020/lib/layout/w-body-container/w-body-container.component.mjs +0 -11
  222. package/esm2020/lib/layout/w-container/w-container.component.mjs +0 -19
  223. package/esm2020/lib/layout/w-content-grid/w-content-grid.component.mjs +0 -11
  224. package/esm2020/lib/layout/w-footer/w-footer.component.mjs +0 -27
  225. package/esm2020/lib/layout/w-grid/w-grid.component.mjs +0 -11
  226. package/esm2020/lib/layout/w-header-panel/w-header-panel.component.mjs +0 -36
  227. package/esm2020/lib/layout/w-navbar/w-navbar.component.mjs +0 -44
  228. package/esm2020/lib/layout/w-panel/w-panel.component.mjs +0 -29
  229. package/esm2020/lib/layout/w-panel-title/w-panel-title.component.mjs +0 -14
  230. package/esm2020/lib/logos/logos.mjs +0 -8
  231. package/esm2020/lib/logos/wapping-logos/w-logos.component.mjs +0 -53
  232. package/esm2020/lib/misc/w-filter-panel/w-filter-panel.component.mjs +0 -378
  233. package/esm2020/lib/misc/w-filter-panel/w-list-field/w-list-field.component.mjs +0 -82
  234. package/esm2020/lib/report/w-powerbi-report/w-powerbi-report.component.mjs +0 -203
  235. package/esm2020/lib/search/w-autocomplete-search/w-autocomplete-search.component.mjs +0 -106
  236. package/esm2020/lib/search/w-input-search/w-input-search.component.mjs +0 -109
  237. package/esm2020/lib/shared/enums/enum.mjs +0 -14
  238. package/esm2020/lib/shared/models/custom-button-config.model.mjs +0 -2
  239. package/esm2020/lib/shared/models/embed-config.model.mjs +0 -2
  240. package/esm2020/lib/shared/models/enums.model.mjs +0 -64
  241. package/esm2020/lib/shared/models/filter-panel/field.model.mjs +0 -2
  242. package/esm2020/lib/shared/models/filter-panel/filter-field.models.mjs +0 -2
  243. package/esm2020/lib/shared/models/filter-panel/filter-panel-translations.model.mjs +0 -2
  244. package/esm2020/lib/shared/models/filter-panel/qb-filter-entity.model.mjs +0 -2
  245. package/esm2020/lib/shared/models/filter-panel/qb-operators.model.mjs +0 -2
  246. package/esm2020/lib/shared/models/filter-panel/qb-panel-filter.model.mjs +0 -2
  247. package/esm2020/lib/shared/models/filter-panel/qb-panel-to-fields.model.mjs +0 -2
  248. package/esm2020/lib/shared/models/filter-panel/query-results.model.mjs +0 -8
  249. package/esm2020/lib/shared/models/filter.model.mjs +0 -2
  250. package/esm2020/lib/shared/models/image-b64.model.mjs +0 -2
  251. package/esm2020/lib/shared/models/lazy-element-query-request.model.mjs +0 -2
  252. package/esm2020/lib/shared/models/w-file-b64.model.mjs +0 -2
  253. package/esm2020/lib/shared/models/w-image-cropper-data.model.mjs +0 -2
  254. package/esm2020/lib/shared/models/w-image-file-uploader-config.model.mjs +0 -2
  255. package/esm2020/lib/shared/models/w-select-button-state.model.mjs +0 -2
  256. package/esm2020/lib/shared/models/w-tree-table.model.mjs +0 -2
  257. package/esm2020/lib/shared/models/wapp-table-lazy-loading.model.mjs +0 -2
  258. package/esm2020/lib/shared/models/wapp-table.model.mjs +0 -2
  259. package/esm2020/lib/shared/pipes/color-text.pipe.mjs +0 -25
  260. package/esm2020/lib/shared/service/api/api.service.mjs +0 -52
  261. package/esm2020/lib/shared/services/form-control.service.mjs +0 -18
  262. package/esm2020/lib/shared/services/modal.service.mjs +0 -62
  263. package/esm2020/lib/shared/services/tree.service.mjs +0 -30
  264. package/esm2020/lib/sidebar/w-sidebar/w-sidebar.component.mjs +0 -50
  265. package/esm2020/lib/tables/w-table/w-table.component.mjs +0 -197
  266. package/esm2020/lib/tables/w-table-lazy/w-table-lazy.component.mjs +0 -237
  267. package/esm2020/lib/tables/w-tree-table/w-tree-table.component.mjs +0 -136
  268. package/esm2020/lib/tabview/w-tabview/w-tabview.component.mjs +0 -27
  269. package/esm2020/lib/view/wapp-view-card-title-text/wapp-view-card-title-text.component.mjs +0 -17
  270. package/esm2020/lib/w-clipboard/w-clipboard.component.mjs +0 -39
  271. package/esm2020/lib/wapp-components.component.mjs +0 -19
  272. package/esm2020/lib/wapp-components.module.mjs +0 -430
  273. package/esm2020/lib/wapp-components.service.mjs +0 -14
  274. package/esm2020/ngx-wapp-components.mjs +0 -5
  275. package/esm2020/public-api.mjs +0 -63
  276. package/fesm2015/ngx-wapp-components.mjs +0 -4355
  277. package/fesm2015/ngx-wapp-components.mjs.map +0 -1
  278. package/fesm2020/ngx-wapp-components.mjs +0 -4389
  279. package/fesm2020/ngx-wapp-components.mjs.map +0 -1
  280. package/index.d.ts +0 -5
  281. package/lib/button/w-button/w-button.component.d.ts +0 -23
  282. package/lib/button/w-buttons-footer/w-buttons-footer.component.d.ts +0 -5
  283. package/lib/button/w-select-button/w-select-button.component.d.ts +0 -27
  284. package/lib/button/w-toggle-button/w-toggle-button.component.d.ts +0 -32
  285. package/lib/edit/w-edit-calendar/w-edit-calendar.component.d.ts +0 -34
  286. package/lib/edit/w-edit-checkbox/w-edit-checkbox.component.d.ts +0 -27
  287. package/lib/edit/w-edit-input-number/w-edit-input-number.component.d.ts +0 -37
  288. package/lib/edit/w-edit-input-text/w-edit-input-text.component.d.ts +0 -36
  289. package/lib/edit/w-edit-input-textarea/w-edit-input-textarea.component.d.ts +0 -32
  290. package/lib/edit/w-edit-multiselect/w-edit-multiselect.component.d.ts +0 -35
  291. package/lib/edit/w-edit-select/w-edit-select.component.d.ts +0 -35
  292. package/lib/edit/w-edit-toggle/w-edit-toggle.component.d.ts +0 -28
  293. package/lib/edit/w-edit-treeselect/w-edit-treeselect.component.d.ts +0 -34
  294. package/lib/file/w-image-cropper/w-image-cropper.component.d.ts +0 -69
  295. package/lib/file/w-image-file-uploader/w-image-file-uploader.component.d.ts +0 -70
  296. package/lib/file/w-preview-image/w-preview-image.component.d.ts +0 -10
  297. package/lib/icons/icons.d.ts +0 -1
  298. package/lib/icons/wapping-icons/w-icons.component.d.ts +0 -15
  299. package/lib/layout/w-body/w-body.component.d.ts +0 -6
  300. package/lib/layout/w-body-container/w-body-container.component.d.ts +0 -5
  301. package/lib/layout/w-container/w-container.component.d.ts +0 -5
  302. package/lib/layout/w-content-grid/w-content-grid.component.d.ts +0 -5
  303. package/lib/layout/w-footer/w-footer.component.d.ts +0 -10
  304. package/lib/layout/w-grid/w-grid.component.d.ts +0 -5
  305. package/lib/layout/w-header-panel/w-header-panel.component.d.ts +0 -15
  306. package/lib/layout/w-navbar/w-navbar.component.d.ts +0 -16
  307. package/lib/layout/w-panel/w-panel.component.d.ts +0 -9
  308. package/lib/layout/w-panel-title/w-panel-title.component.d.ts +0 -6
  309. package/lib/logos/logos.d.ts +0 -1
  310. package/lib/logos/wapping-logos/w-logos.component.d.ts +0 -15
  311. package/lib/misc/w-filter-panel/w-filter-panel.component.d.ts +0 -63
  312. package/lib/misc/w-filter-panel/w-list-field/w-list-field.component.d.ts +0 -25
  313. package/lib/report/w-powerbi-report/w-powerbi-report.component.d.ts +0 -42
  314. package/lib/search/w-autocomplete-search/w-autocomplete-search.component.d.ts +0 -29
  315. package/lib/search/w-input-search/w-input-search.component.d.ts +0 -33
  316. package/lib/shared/enums/enum.d.ts +0 -11
  317. package/lib/shared/models/custom-button-config.model.d.ts +0 -4
  318. package/lib/shared/models/filter-panel/filter-field.models.d.ts +0 -17
  319. package/lib/shared/models/filter-panel/filter-panel-translations.model.d.ts +0 -28
  320. package/lib/shared/models/filter-panel/qb-filter-entity.model.d.ts +0 -7
  321. package/lib/shared/models/filter-panel/qb-operators.model.d.ts +0 -4
  322. package/lib/shared/models/filter-panel/qb-panel-filter.model.d.ts +0 -13
  323. package/lib/shared/models/filter-panel/qb-panel-to-fields.model.d.ts +0 -11
  324. package/lib/shared/models/filter-panel/query-results.model.d.ts +0 -15
  325. package/lib/shared/models/filter.model.d.ts +0 -5
  326. package/lib/shared/models/image-b64.model.d.ts +0 -5
  327. package/lib/shared/models/lazy-element-query-request.model.d.ts +0 -8
  328. package/lib/shared/models/w-file-b64.model.d.ts +0 -6
  329. package/lib/shared/models/w-image-cropper-data.model.d.ts +0 -7
  330. package/lib/shared/models/w-image-file-uploader-config.model.d.ts +0 -23
  331. package/lib/shared/models/w-select-button-state.model.d.ts +0 -4
  332. package/lib/shared/models/w-tree-table.model.d.ts +0 -27
  333. package/lib/shared/models/wapp-table-lazy-loading.model.d.ts +0 -51
  334. package/lib/shared/models/wapp-table.model.d.ts +0 -54
  335. package/lib/shared/pipes/color-text.pipe.d.ts +0 -7
  336. package/lib/shared/service/api/api.service.d.ts +0 -12
  337. package/lib/shared/services/form-control.service.d.ts +0 -8
  338. package/lib/shared/services/modal.service.d.ts +0 -22
  339. package/lib/shared/services/tree.service.d.ts +0 -8
  340. package/lib/sidebar/w-sidebar/w-sidebar.component.d.ts +0 -17
  341. package/lib/tables/w-table/w-table.component.d.ts +0 -58
  342. package/lib/tables/w-table-lazy/w-table-lazy.component.d.ts +0 -58
  343. package/lib/tables/w-tree-table/w-tree-table.component.d.ts +0 -41
  344. package/lib/tabview/w-tabview/w-tabview.component.d.ts +0 -8
  345. package/lib/view/wapp-view-card-title-text/wapp-view-card-title-text.component.d.ts +0 -9
  346. package/lib/w-clipboard/w-clipboard.component.d.ts +0 -12
  347. package/lib/wapp-components.component.d.ts +0 -5
  348. package/lib/wapp-components.module.d.ts +0 -88
  349. package/lib/wapp-components.service.d.ts +0 -6
@@ -0,0 +1,23 @@
1
+ import { ComponentFixture, TestBed } from '@angular/core/testing';
2
+
3
+ import { WImageFileUploaderComponent } from './w-image-file-uploader.component';
4
+
5
+ describe('WImageFileUploaderComponent', () => {
6
+ let component: WImageFileUploaderComponent;
7
+ let fixture: ComponentFixture<WImageFileUploaderComponent>;
8
+
9
+ beforeEach(async () => {
10
+ await TestBed.configureTestingModule({
11
+ declarations: [ WImageFileUploaderComponent ]
12
+ })
13
+ .compileComponents();
14
+
15
+ fixture = TestBed.createComponent(WImageFileUploaderComponent);
16
+ component = fixture.componentInstance;
17
+ fixture.detectChanges();
18
+ });
19
+
20
+ it('should create', () => {
21
+ expect(component).toBeTruthy();
22
+ });
23
+ });
@@ -0,0 +1,388 @@
1
+ import { HttpClient, HttpHeaders } from '@angular/common/http';
2
+ import { Component, ElementRef, EventEmitter, Input, Output, QueryList, ViewChild, ViewChildren } from '@angular/core';
3
+ import { WImageFileUploaderConfig } from '../../shared/models/w-image-file-uploader-config.model';
4
+ import { FileUpload } from 'primeng/fileupload';
5
+ import { ConfirmationService } from 'primeng/api';
6
+ import { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog';
7
+ import { ImageB64 } from '../../shared/models/image-b64.model';
8
+ import { WImageCropperComponent } from '../w-image-cropper/w-image-cropper.component';
9
+ import { WImageCropperData } from '../../shared/models/w-image-cropper-data.model';
10
+ import { WFileB64 } from '../../shared/models/w-file-b64.model';
11
+
12
+ @Component({
13
+ selector: 'w-image-file-uploader',
14
+ templateUrl: './w-image-file-uploader.component.html',
15
+ styleUrls: ['./w-image-file-uploader.component.scss'],
16
+ providers: [ConfirmationService]
17
+ })
18
+ export class WImageFileUploaderComponent {
19
+ @Input('allowMultipleImages') allowMultipleImages: boolean = false;
20
+ @Input('activeImageUpload') activeImageUpload: boolean = false;
21
+ @Input('imagesAlreadyUploaded') imagesAlreadyUploaded: any[] = [];
22
+ @Input('imageSingleMode') imageSingleMode: any;
23
+ @Input('uploadUrl') uploadUrl!: string;
24
+ @Input('updateUrl') updateUrl!: string;
25
+ @Input('deleteUrl') deleteUrl!: string;
26
+ @Input('headers') headers!: HttpHeaders;
27
+ @Input('activePositionProperty') activePositionProperty: boolean = false;
28
+ @Input('viewSingleMode') viewSingleMode: boolean = false;
29
+ @Input('identificatorImageName') identificatorName: string = "id";
30
+ @Input('identificatorImagesCollectionValue') identificatorValue: any = 0;
31
+ @Input('imageUploadConfig') imageUploadConfig: WImageFileUploaderConfig = {
32
+ imagePropertyNames: [],
33
+ maxImageSize: 1000000,
34
+ allowAuto: false,
35
+ uploadButtonLabel: "",
36
+ chooseButtonLabel: "",
37
+ cancelButtonLabel: "",
38
+ contentHeaderLabel: "",
39
+ contentSubheaderLabel: "",
40
+ deleteImageButtonLabel: "",
41
+ croppedDialogTranslations: "",
42
+ croppedImageConfiguration: {
43
+ roundedCropper: false,
44
+ configuredAspectRatio: 4/3,
45
+ viewPortWidthPx: 400,
46
+ viewPortHeihtPx: 500
47
+ },
48
+ confirmDeleteMessageLabel: "",
49
+ confirmDeleteButtonLabel: ""
50
+ }
51
+
52
+ @Output('onUploadFinished') onUploadFinished: EventEmitter<any> = new EventEmitter<any>();
53
+ @Output('onErrorHandler') onErrorHandler: EventEmitter<any> = new EventEmitter<any>();
54
+ @Output('onReturnImagesB64') onReturnImagesB64: EventEmitter<any> = new EventEmitter<any>();
55
+ @Output('onDeleteImage') onDeleteImage: EventEmitter<any> = new EventEmitter<any>();
56
+
57
+ @ViewChild('fileUpload') fileUpload!: FileUpload;
58
+
59
+ @ViewChildren('buttonRemoveOnlyImage') buttonRemoveOnlyImage!: QueryList<ElementRef>;
60
+ @ViewChild('fileUploadOnlyImage') fileuploadOnlyImage!: FileUpload;
61
+
62
+ cropperImages: any[] = [];
63
+ defaultWidth: string = "w-18rem";
64
+ defaultHeight: string = "h-18rem";
65
+ disableMoveButtons: boolean = false;
66
+ isUploadingMultiMode: boolean = false;
67
+ isDeletingMultiMode: boolean = false;
68
+
69
+ onlyImageSelected: any;
70
+ onlyCroppedImageSelected: any = null;
71
+
72
+ dimensionsInput!: WImageCropperData;
73
+ carouselImagesResponsiveOptions: any[] = [
74
+ {
75
+ breakpoint: '1024px',
76
+ numVisible: 4,
77
+ numScroll: 4
78
+ },
79
+ {
80
+ breakpoint: '850px',
81
+ numVisible: 2,
82
+ numScroll: 2
83
+ },
84
+ {
85
+ breakpoint: '560px',
86
+ numVisible: 1,
87
+ numScroll: 1
88
+ }
89
+ ];
90
+
91
+ constructor(
92
+ private dialogService: DialogService,
93
+ private http: HttpClient,
94
+ private confirmationService: ConfirmationService
95
+ ){}
96
+
97
+ ngOnInit(): void {
98
+ this.dimensionsInput = {
99
+ roundedCropper: this.imageUploadConfig.croppedImageConfiguration.roundedCropper,
100
+ configuredAspectRatio: this.imageUploadConfig.croppedImageConfiguration.configuredAspectRatio,
101
+ viewPortWidthPx: this.imageUploadConfig.croppedImageConfiguration.viewPortWidthPx,
102
+ viewPortHeihtPx: this.imageUploadConfig.croppedImageConfiguration.viewPortHeihtPx,
103
+ maxFileSize: this.imageUploadConfig.maxImageSize
104
+ }
105
+
106
+ if(this.activeImageUpload == false && this.imagesAlreadyUploaded.length > 0){
107
+ this.cropperImages.push(...this.imagesAlreadyUploaded);
108
+ }
109
+ }
110
+
111
+ readProperty(obj: any, prop:string):any {
112
+ if(typeof obj === 'undefined') {
113
+ return false;
114
+ }
115
+
116
+ var _index = prop.indexOf('.')
117
+ if(_index > -1) {
118
+ return this.readProperty(obj[prop.substring(0, _index)], prop.substr(_index + 1));
119
+ }
120
+ return obj[prop];
121
+ }
122
+
123
+ onCustomUploadSingleMode(event: any){
124
+ this.onlyImageSelected = event.currentFiles[0];
125
+ this.openModalCropper(this.onlyImageSelected, event.originalEvent);
126
+ }
127
+
128
+ onCustomizeUploadFunctionSingleMode(event: any){
129
+ if(this.activeImageUpload == true){
130
+ if(this.onlyCroppedImageSelected){
131
+ let base64Images: ImageB64[] = [{base64: this.onlyCroppedImageSelected.base64, name: this.onlyCroppedImageSelected.name}];
132
+
133
+ this.http.post(this.uploadUrl, base64Images, { headers: this.headers }).subscribe({
134
+ next: (imageUploaded: any) => {
135
+ this.fileuploadOnlyImage.clear();
136
+ this.onUploadFinished.emit(imageUploaded);
137
+ },
138
+ error: (error) => {
139
+ this.fileuploadOnlyImage.uploading = false;
140
+ this.onErrorHandler.emit(error);
141
+ }
142
+ })
143
+ }
144
+ }
145
+ }
146
+
147
+ removeImageSingleMode(event: Event, file: any) {
148
+ event.stopPropagation();
149
+ this.fileuploadOnlyImage.clear();
150
+ this.onlyImageSelected = null;
151
+ this.onlyCroppedImageSelected = null;
152
+ this.imageSingleMode = null;
153
+ this.onReturnImagesB64.emit(null);
154
+ }
155
+
156
+ moveImageToLeft(event: any){
157
+ let indexToMove = this.findIndex(event);
158
+ if(indexToMove > 0 && indexToMove < this.imagesAlreadyUploaded.length){
159
+ const temp = this.imagesAlreadyUploaded[indexToMove];
160
+ this.imagesAlreadyUploaded[indexToMove] = this.imagesAlreadyUploaded[ indexToMove - 1];
161
+ this.imagesAlreadyUploaded[indexToMove - 1] = temp;
162
+
163
+ this.imagesAlreadyUploaded = (this.activePositionProperty) ? this.addPositionProperty(this.imagesAlreadyUploaded) : this.imagesAlreadyUploaded;
164
+
165
+ if(this.uploadUrl != undefined && this.identificatorValue !== 0){
166
+ this.disableMoveButtons = true;
167
+ this.updateImage(this.imagesAlreadyUploaded);
168
+ }else if(this.activeImageUpload == true && this.uploadUrl != undefined){
169
+ this.onUploadFinished.emit(this.imagesAlreadyUploaded);
170
+ }else{
171
+ this.onReturnImagesB64.emit(this.getArraysToCreateAndToUpdate(this.imagesAlreadyUploaded));
172
+ }
173
+ }
174
+ }
175
+
176
+ moveImageToRight(event: any){
177
+ let indexToMove = this.findIndex(event);
178
+ if(indexToMove >= 0 && indexToMove < this.imagesAlreadyUploaded.length -1){
179
+ const temp = this.imagesAlreadyUploaded[indexToMove];
180
+ this.imagesAlreadyUploaded[indexToMove] = this.imagesAlreadyUploaded[ indexToMove + 1];
181
+ this.imagesAlreadyUploaded[indexToMove + 1] = temp;
182
+
183
+ this.imagesAlreadyUploaded = (this.activePositionProperty) ? this.addPositionProperty(this.imagesAlreadyUploaded) : this.imagesAlreadyUploaded;
184
+
185
+ if(this.uploadUrl!=undefined && this.identificatorValue !== 0){
186
+ this.disableMoveButtons = true;
187
+ this.updateImage(this.imagesAlreadyUploaded);
188
+ }else{
189
+ this.onReturnImagesB64.emit(this.getArraysToCreateAndToUpdate(this.imagesAlreadyUploaded));
190
+ }
191
+ }
192
+ }
193
+
194
+ onCustomizeUploadFunctionMultiMode(event?: any){
195
+ if(this.activeImageUpload == true){
196
+ if(this.cropperImages.length > 0){
197
+ let base64Images: ImageB64[] = this.mapToObjectB64(this.cropperImages);
198
+ this.isUploadingMultiMode = true;
199
+
200
+ this.http.post(this.uploadUrl, base64Images, { headers: this.headers }).subscribe({
201
+ next: (imagesUploaded: any) => {
202
+ this.imagesAlreadyUploaded.push(...imagesUploaded);
203
+ this.imagesAlreadyUploaded = [...this.imagesAlreadyUploaded];
204
+ this.cropperImages = [];
205
+ this.fileUpload.clear();
206
+
207
+ this.imagesAlreadyUploaded = this.activePositionProperty ? this.addPositionProperty(this.imagesAlreadyUploaded) : this.imagesAlreadyUploaded;
208
+
209
+ if(this.uploadUrl!=undefined && this.identificatorValue !== 0){
210
+ this.updateImage(this.imagesAlreadyUploaded);
211
+ }else{
212
+ this.onUploadFinished.emit(this.imagesAlreadyUploaded);
213
+ }
214
+
215
+ this.isUploadingMultiMode = false;
216
+ },
217
+ error: (error) => {
218
+ this.isUploadingMultiMode = false;
219
+ this.onErrorHandler.emit(error);
220
+ }
221
+ })
222
+ }
223
+ }
224
+ }
225
+
226
+ onCustomUploadMultiMode(event: any){
227
+ if(this.allowMultipleImages == true){
228
+ event.currentFiles.forEach((file: any, index: number) => {
229
+ let foundIt = this.cropperImages.find(f => f.name == file.name);
230
+ if(event.currentFiles.length == 0){
231
+ this.openModalCropper(file, event.originalEvent);
232
+ }else if(foundIt == undefined){
233
+ this.openModalCropper(file, event.originalEvent);
234
+ }
235
+ });
236
+ }else{
237
+ this.openModalCropper(event.currentFiles[0], event.originalEvent);
238
+ }
239
+ }
240
+
241
+ confirmDeleteImageMultiMode(event: any, image: any){
242
+ this.confirmationService.confirm({
243
+ target: event.target as EventTarget,
244
+ message: this.imageUploadConfig.confirmDeleteMessageLabel,
245
+ icon: "pi pi-exclamation-triangle",
246
+ acceptLabel: this.imageUploadConfig.deleteImageButtonLabel,
247
+ accept: () => {
248
+ this.onDeleteImageMultiMode(image);
249
+ }
250
+ })
251
+ }
252
+
253
+ onDeleteFileMultiMode(event: any, file: File, uploader: FileUpload){
254
+ const index = uploader.files.indexOf(file);
255
+ uploader.remove(event, index);
256
+ this.cropperImages = this.cropperImages.filter(s => !file.name.includes(s.name));
257
+ }
258
+
259
+ onDeleteImageMultiMode(image: any){
260
+ if(this.activeImageUpload){
261
+ this.isDeletingMultiMode = true;
262
+ let deleteUrlFinal = this.deleteUrl+"/"+image[this.identificatorName];
263
+ this.http.delete(deleteUrlFinal, {headers: this.headers}).subscribe({
264
+ next: () => {
265
+ this.imagesAlreadyUploaded = this.imagesAlreadyUploaded.filter(img => (img.base64 !== image.base64) || (img[this.identificatorName] !== image[this.identificatorName]));
266
+ this.isDeletingMultiMode = false;
267
+ this.onDeleteImage.emit(image);
268
+ },
269
+ error: (error) => {
270
+ this.isDeletingMultiMode = false;
271
+ this.onErrorHandler.emit(error);
272
+ this.onDeleteImage.emit(null);
273
+ }
274
+ })
275
+ }else{
276
+ this.imagesAlreadyUploaded = this.imagesAlreadyUploaded.filter(img => (img.base64 !== image.base64) || (img[this.identificatorName] !== image[this.identificatorName]));
277
+ this.onDeleteImage.emit(image);
278
+ }
279
+ }
280
+
281
+ updateImage(imagesToUpdate: any[]): any{
282
+ let updateUrlFinal = this.updateUrl + "/" + this.identificatorValue;
283
+ this.http.put(updateUrlFinal, imagesToUpdate, {headers: this.headers}).subscribe({
284
+ next: (imagesUpdated: any) => {
285
+ this.disableMoveButtons = false;
286
+ this.imagesAlreadyUploaded = imagesUpdated;
287
+ this.onUploadFinished.emit(this.imagesAlreadyUploaded);
288
+ }
289
+ });
290
+ }
291
+
292
+ openModalCropper(fileBlob: any, event?: any){
293
+ const ref: DynamicDialogRef = this.dialogService.open(WImageCropperComponent, {
294
+ header: this.imageUploadConfig.croppedDialogTranslations?.modal.header,
295
+ width: '70rem',
296
+ contentStyle: {"overflow": "auto", "height": "auto", "padding-bottom": "8px"},
297
+ data: {dataModal: this.dimensionsInput, translations: this.imageUploadConfig.croppedDialogTranslations, blob: fileBlob},
298
+ resizable: true
299
+ });
300
+
301
+ ref.onClose.subscribe((imageCropped: WFileB64) => {
302
+ if(imageCropped){
303
+ if(this.allowMultipleImages == false){
304
+ this.onlyCroppedImageSelected = imageCropped;
305
+ this.onReturnImagesB64.emit(this.mapToObjectB64(this.onlyCroppedImageSelected));
306
+ }else{
307
+ this.cropperImages.push(imageCropped);
308
+
309
+ this.cropperImages = (this.activePositionProperty && this.activeImageUpload == false ) ? this.addPositionProperty(this.cropperImages) : this.cropperImages;
310
+
311
+ if(this.activeImageUpload == false){
312
+ this.imagesAlreadyUploaded.push(imageCropped);
313
+ this.imagesAlreadyUploaded = [...this.imagesAlreadyUploaded];
314
+ this.onReturnImagesB64.emit(this.getArraysToCreateAndToUpdate(this.cropperImages));
315
+ }else{
316
+ this.onReturnImagesB64.emit(this.getArraysToCreateAndToUpdate(this.mapToObjectB64(this.cropperImages)));
317
+ }
318
+ }
319
+ }else{
320
+ if(this.allowMultipleImages){
321
+ this.fileUpload._files = this.fileUpload._files.filter(f => !f.name.includes(fileBlob.name));
322
+ let filesAux = this.fileUpload._files;
323
+ this.fileUpload.clear();
324
+ this.fileUpload._files = filesAux;
325
+ }else{
326
+ this.onlyImageSelected = null;
327
+ this.fileuploadOnlyImage.clear();
328
+ }
329
+ }
330
+
331
+ if((this.activeImageUpload == true) && (this.imageUploadConfig.allowAuto == true) && (this.cropperImages.length == this.fileUpload._files.length)){
332
+ this.onCustomizeUploadFunctionMultiMode();
333
+ }
334
+ })
335
+ }
336
+
337
+ mapToObjectB64(images: any): ImageB64[]{
338
+ if(Array.isArray(images) == false){
339
+ return [{
340
+ base64: images.base64,
341
+ name: images.name,
342
+ ...(images.position !== undefined && { position: images.position })
343
+ }]
344
+ }
345
+
346
+ return images.map((img: any) => {
347
+ return {
348
+ base64: img.base64,
349
+ name: img.name,
350
+ ...(img.position !== undefined && { position: img.position })
351
+ }
352
+ });
353
+ }
354
+
355
+ getArraysToCreateAndToUpdate(images: any[]){
356
+ return {
357
+ toCreate:
358
+ images.filter((img) => img[this.identificatorName] == undefined),
359
+ toUpdated:
360
+ images.filter((img) => img.base64 == undefined)
361
+ }
362
+ }
363
+
364
+ addPositionProperty(imagesArray: any[]){
365
+ imagesArray = imagesArray.map((img, index) => ({
366
+ ...img,
367
+ position: index
368
+ }))
369
+
370
+ return imagesArray;
371
+ }
372
+
373
+ onImageMouseOver(file: any) {
374
+ this.buttonRemoveOnlyImage.toArray().forEach(btnRemove => {
375
+ btnRemove.nativeElement.id === file.name ? btnRemove.nativeElement.style.display = 'flex' : null;
376
+ })
377
+ }
378
+
379
+ onImageMouseLeave(file: any) {
380
+ this.buttonRemoveOnlyImage.toArray().forEach(btnRemove => {
381
+ btnRemove.nativeElement.id === file.name ? btnRemove.nativeElement.style.display = 'none' : null;
382
+ })
383
+ }
384
+
385
+ findIndex(img: any){
386
+ return this.imagesAlreadyUploaded.indexOf(img);
387
+ }
388
+ }
@@ -0,0 +1,5 @@
1
+ <div class="flex align-content-center align-items-center justify-content-center h-full w-full">
2
+ <p-image *ngIf="imageCropped"
3
+ class="flex align-content-center align-items-center"
4
+ [src]="imageCropped" > </p-image>
5
+ </div>
@@ -0,0 +1,23 @@
1
+ import { ComponentFixture, TestBed } from '@angular/core/testing';
2
+
3
+ import { WPreviewImageComponent } from './w-preview-image.component';
4
+
5
+ describe('WPreviewImageComponent', () => {
6
+ let component: WPreviewImageComponent;
7
+ let fixture: ComponentFixture<WPreviewImageComponent>;
8
+
9
+ beforeEach(async () => {
10
+ await TestBed.configureTestingModule({
11
+ declarations: [ WPreviewImageComponent ]
12
+ })
13
+ .compileComponents();
14
+
15
+ fixture = TestBed.createComponent(WPreviewImageComponent);
16
+ component = fixture.componentInstance;
17
+ fixture.detectChanges();
18
+ });
19
+
20
+ it('should create', () => {
21
+ expect(component).toBeTruthy();
22
+ });
23
+ });
@@ -0,0 +1,17 @@
1
+ import { Component } from '@angular/core';
2
+ import { DynamicDialogConfig } from 'primeng/dynamicdialog';
3
+
4
+ @Component({
5
+ selector: 'w-preview-image',
6
+ templateUrl: './w-preview-image.component.html',
7
+ styleUrls: ['./w-preview-image.component.css']
8
+ })
9
+ export class WPreviewImageComponent {
10
+ imageCropped!: any;
11
+
12
+ constructor(public dynamicDialogConfig: DynamicDialogConfig){}
13
+
14
+ ngOnInit(): void {
15
+ this.imageCropped = this.dynamicDialogConfig.data.imageEdited;
16
+ }
17
+ }