ngx-wapp-components 3.2.11-alpha.9 → 3.2.11

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 (695) hide show
  1. package/fesm2022/ngx-wapp-components.mjs +13296 -0
  2. package/fesm2022/ngx-wapp-components.mjs.map +1 -0
  3. package/package.json +63 -57
  4. package/types/ngx-wapp-components.d.ts +4178 -0
  5. package/ng-package.json +0 -11
  6. package/src/lib/button/w-button/w-button.component.html +0 -62
  7. package/src/lib/button/w-button/w-button.component.scss +0 -176
  8. package/src/lib/button/w-button/w-button.component.spec.ts +0 -23
  9. package/src/lib/button/w-button/w-button.component.ts +0 -44
  10. package/src/lib/button/w-button-week/w-button-week.component.html +0 -10
  11. package/src/lib/button/w-button-week/w-button-week.component.scss +0 -42
  12. package/src/lib/button/w-button-week/w-button-week.component.spec.ts +0 -23
  13. package/src/lib/button/w-button-week/w-button-week.component.ts +0 -81
  14. package/src/lib/button/w-buttons-footer/w-buttons-footer.component.html +0 -3
  15. package/src/lib/button/w-buttons-footer/w-buttons-footer.component.scss +0 -11
  16. package/src/lib/button/w-buttons-footer/w-buttons-footer.component.spec.ts +0 -23
  17. package/src/lib/button/w-buttons-footer/w-buttons-footer.component.ts +0 -11
  18. package/src/lib/button/w-radio-button/w-radio-button.component.html +0 -38
  19. package/src/lib/button/w-radio-button/w-radio-button.component.scss +0 -115
  20. package/src/lib/button/w-radio-button/w-radio-button.component.spec.ts +0 -23
  21. package/src/lib/button/w-radio-button/w-radio-button.component.ts +0 -74
  22. package/src/lib/button/w-select-button/w-select-button.component.html +0 -45
  23. package/src/lib/button/w-select-button/w-select-button.component.scss +0 -71
  24. package/src/lib/button/w-select-button/w-select-button.component.spec.ts +0 -23
  25. package/src/lib/button/w-select-button/w-select-button.component.ts +0 -95
  26. package/src/lib/button/w-toggle-button/w-toggle-button.component.html +0 -35
  27. package/src/lib/button/w-toggle-button/w-toggle-button.component.scss +0 -101
  28. package/src/lib/button/w-toggle-button/w-toggle-button.component.spec.ts +0 -23
  29. package/src/lib/button/w-toggle-button/w-toggle-button.component.ts +0 -96
  30. package/src/lib/card/w-card/w-card.component.html +0 -75
  31. package/src/lib/card/w-card/w-card.component.scss +0 -96
  32. package/src/lib/card/w-card/w-card.component.spec.ts +0 -28
  33. package/src/lib/card/w-card/w-card.component.ts +0 -36
  34. package/src/lib/chart/w-chart-bar/w-chart-bar.component.html +0 -1
  35. package/src/lib/chart/w-chart-bar/w-chart-bar.component.scss +0 -1
  36. package/src/lib/chart/w-chart-bar/w-chart-bar.component.spec.ts +0 -23
  37. package/src/lib/chart/w-chart-bar/w-chart-bar.component.ts +0 -432
  38. package/src/lib/dataview/w-dataview/w-dataview.component.html +0 -3
  39. package/src/lib/dataview/w-dataview/w-dataview.component.scss +0 -0
  40. package/src/lib/dataview/w-dataview/w-dataview.component.spec.ts +0 -28
  41. package/src/lib/dataview/w-dataview/w-dataview.component.ts +0 -16
  42. package/src/lib/edit/w-edit-calendar/w-edit-calendar.component.html +0 -71
  43. package/src/lib/edit/w-edit-calendar/w-edit-calendar.component.scss +0 -72
  44. package/src/lib/edit/w-edit-calendar/w-edit-calendar.component.spec.ts +0 -23
  45. package/src/lib/edit/w-edit-calendar/w-edit-calendar.component.ts +0 -168
  46. package/src/lib/edit/w-edit-calendar-month/w-edit-calendar-month.component.html +0 -42
  47. package/src/lib/edit/w-edit-calendar-month/w-edit-calendar-month.component.scss +0 -86
  48. package/src/lib/edit/w-edit-calendar-month/w-edit-calendar-month.component.spec.ts +0 -23
  49. package/src/lib/edit/w-edit-calendar-month/w-edit-calendar-month.component.ts +0 -77
  50. package/src/lib/edit/w-edit-checkbox/w-edit-checkbox.component.html +0 -35
  51. package/src/lib/edit/w-edit-checkbox/w-edit-checkbox.component.scss +0 -37
  52. package/src/lib/edit/w-edit-checkbox/w-edit-checkbox.component.spec.ts +0 -23
  53. package/src/lib/edit/w-edit-checkbox/w-edit-checkbox.component.ts +0 -83
  54. package/src/lib/edit/w-edit-input-colorpicker/w-edit-input-colorpicker.component.html +0 -38
  55. package/src/lib/edit/w-edit-input-colorpicker/w-edit-input-colorpicker.component.scss +0 -35
  56. package/src/lib/edit/w-edit-input-colorpicker/w-edit-input-colorpicker.component.spec.ts +0 -23
  57. package/src/lib/edit/w-edit-input-colorpicker/w-edit-input-colorpicker.component.ts +0 -79
  58. package/src/lib/edit/w-edit-input-number/w-edit-input-number.component.html +0 -75
  59. package/src/lib/edit/w-edit-input-number/w-edit-input-number.component.scss +0 -97
  60. package/src/lib/edit/w-edit-input-number/w-edit-input-number.component.spec.ts +0 -23
  61. package/src/lib/edit/w-edit-input-number/w-edit-input-number.component.ts +0 -139
  62. package/src/lib/edit/w-edit-input-text/w-edit-input-text.component.html +0 -54
  63. package/src/lib/edit/w-edit-input-text/w-edit-input-text.component.scss +0 -102
  64. package/src/lib/edit/w-edit-input-text/w-edit-input-text.component.spec.ts +0 -23
  65. package/src/lib/edit/w-edit-input-text/w-edit-input-text.component.ts +0 -101
  66. package/src/lib/edit/w-edit-input-textarea/w-edit-input-textarea.component.html +0 -50
  67. package/src/lib/edit/w-edit-input-textarea/w-edit-input-textarea.component.scss +0 -82
  68. package/src/lib/edit/w-edit-input-textarea/w-edit-input-textarea.component.spec.ts +0 -23
  69. package/src/lib/edit/w-edit-input-textarea/w-edit-input-textarea.component.ts +0 -88
  70. package/src/lib/edit/w-edit-multiselect/w-edit-multiselect.component.html +0 -55
  71. package/src/lib/edit/w-edit-multiselect/w-edit-multiselect.component.scss +0 -199
  72. package/src/lib/edit/w-edit-multiselect/w-edit-multiselect.component.spec.ts +0 -23
  73. package/src/lib/edit/w-edit-multiselect/w-edit-multiselect.component.ts +0 -103
  74. package/src/lib/edit/w-edit-select/w-edit-select.component.html +0 -55
  75. package/src/lib/edit/w-edit-select/w-edit-select.component.scss +0 -131
  76. package/src/lib/edit/w-edit-select/w-edit-select.component.spec.ts +0 -23
  77. package/src/lib/edit/w-edit-select/w-edit-select.component.ts +0 -107
  78. package/src/lib/edit/w-edit-toggle/w-edit-toggle.component.html +0 -21
  79. package/src/lib/edit/w-edit-toggle/w-edit-toggle.component.scss +0 -57
  80. package/src/lib/edit/w-edit-toggle/w-edit-toggle.component.spec.ts +0 -23
  81. package/src/lib/edit/w-edit-toggle/w-edit-toggle.component.ts +0 -73
  82. package/src/lib/edit/w-edit-treeselect/w-edit-treeselect.component.html +0 -43
  83. package/src/lib/edit/w-edit-treeselect/w-edit-treeselect.component.scss +0 -179
  84. package/src/lib/edit/w-edit-treeselect/w-edit-treeselect.component.spec.ts +0 -23
  85. package/src/lib/edit/w-edit-treeselect/w-edit-treeselect.component.ts +0 -112
  86. package/src/lib/file/w-file-generator/w-file-generator.component.css +0 -0
  87. package/src/lib/file/w-file-generator/w-file-generator.component.html +0 -1
  88. package/src/lib/file/w-file-generator/w-file-generator.component.spec.ts +0 -23
  89. package/src/lib/file/w-file-generator/w-file-generator.component.ts +0 -76
  90. package/src/lib/file/w-file-uploader/w-file-uploader.component.html +0 -70
  91. package/src/lib/file/w-file-uploader/w-file-uploader.component.scss +0 -136
  92. package/src/lib/file/w-file-uploader/w-file-uploader.component.spec.ts +0 -23
  93. package/src/lib/file/w-file-uploader/w-file-uploader.component.ts +0 -185
  94. package/src/lib/file/w-image-cropper/w-image-cropper.component.html +0 -92
  95. package/src/lib/file/w-image-cropper/w-image-cropper.component.scss +0 -56
  96. package/src/lib/file/w-image-cropper/w-image-cropper.component.spec.ts +0 -23
  97. package/src/lib/file/w-image-cropper/w-image-cropper.component.ts +0 -271
  98. package/src/lib/file/w-image-file-uploader/w-image-file-uploader.component.html +0 -200
  99. package/src/lib/file/w-image-file-uploader/w-image-file-uploader.component.scss +0 -201
  100. package/src/lib/file/w-image-file-uploader/w-image-file-uploader.component.spec.ts +0 -23
  101. package/src/lib/file/w-image-file-uploader/w-image-file-uploader.component.ts +0 -545
  102. package/src/lib/file/w-preview-image/w-preview-image.component.css +0 -0
  103. package/src/lib/file/w-preview-image/w-preview-image.component.html +0 -7
  104. package/src/lib/file/w-preview-image/w-preview-image.component.spec.ts +0 -23
  105. package/src/lib/file/w-preview-image/w-preview-image.component.ts +0 -18
  106. package/src/lib/icons/icons.scss +0 -1007
  107. package/src/lib/icons/wapping-icons/w-icons.component.html +0 -1
  108. package/src/lib/icons/wapping-icons/w-icons.component.scss +0 -6
  109. package/src/lib/icons/wapping-icons/w-icons.component.ts +0 -13
  110. package/src/lib/layout/gap-divider/w-input-vertical-gap-divider/w-input-vertical-gap-divider.component.html +0 -1
  111. package/src/lib/layout/gap-divider/w-input-vertical-gap-divider/w-input-vertical-gap-divider.component.scss +0 -9
  112. package/src/lib/layout/gap-divider/w-input-vertical-gap-divider/w-input-vertical-gap-divider.component.spec.ts +0 -23
  113. package/src/lib/layout/gap-divider/w-input-vertical-gap-divider/w-input-vertical-gap-divider.component.ts +0 -11
  114. package/src/lib/layout/gap-divider/w-panel-section-gap-divider/w-panel-section-gap-divider.component.html +0 -1
  115. package/src/lib/layout/gap-divider/w-panel-section-gap-divider/w-panel-section-gap-divider.component.scss +0 -9
  116. package/src/lib/layout/gap-divider/w-panel-section-gap-divider/w-panel-section-gap-divider.component.spec.ts +0 -23
  117. package/src/lib/layout/gap-divider/w-panel-section-gap-divider/w-panel-section-gap-divider.component.ts +0 -11
  118. package/src/lib/layout/w-body/w-body.component.html +0 -3
  119. package/src/lib/layout/w-body/w-body.component.scss +0 -13
  120. package/src/lib/layout/w-body/w-body.component.spec.ts +0 -23
  121. package/src/lib/layout/w-body/w-body.component.ts +0 -11
  122. package/src/lib/layout/w-body-container/w-body-container.component.html +0 -3
  123. package/src/lib/layout/w-body-container/w-body-container.component.scss +0 -2
  124. package/src/lib/layout/w-body-container/w-body-container.component.spec.ts +0 -23
  125. package/src/lib/layout/w-body-container/w-body-container.component.ts +0 -11
  126. package/src/lib/layout/w-body-grid/w-body-grid.component.html +0 -3
  127. package/src/lib/layout/w-body-grid/w-body-grid.component.scss +0 -5
  128. package/src/lib/layout/w-body-grid/w-body-grid.component.spec.ts +0 -23
  129. package/src/lib/layout/w-body-grid/w-body-grid.component.ts +0 -11
  130. package/src/lib/layout/w-container/w-container.component.scss +0 -9
  131. package/src/lib/layout/w-container/w-container.component.ts +0 -15
  132. package/src/lib/layout/w-footer/w-footer.component.html +0 -13
  133. package/src/lib/layout/w-footer/w-footer.component.scss +0 -17
  134. package/src/lib/layout/w-footer/w-footer.component.spec.ts +0 -23
  135. package/src/lib/layout/w-footer/w-footer.component.ts +0 -20
  136. package/src/lib/layout/w-header-panel/w-header-panel.component.html +0 -15
  137. package/src/lib/layout/w-header-panel/w-header-panel.component.scss +0 -39
  138. package/src/lib/layout/w-header-panel/w-header-panel.component.spec.ts +0 -23
  139. package/src/lib/layout/w-header-panel/w-header-panel.component.ts +0 -55
  140. package/src/lib/layout/w-navbar/w-navbar.component.html +0 -28
  141. package/src/lib/layout/w-navbar/w-navbar.component.scss +0 -26
  142. package/src/lib/layout/w-navbar/w-navbar.component.spec.ts +0 -23
  143. package/src/lib/layout/w-navbar/w-navbar.component.ts +0 -49
  144. package/src/lib/layout/w-panel/w-panel.component.html +0 -25
  145. package/src/lib/layout/w-panel/w-panel.component.scss +0 -173
  146. package/src/lib/layout/w-panel/w-panel.component.spec.ts +0 -23
  147. package/src/lib/layout/w-panel/w-panel.component.ts +0 -54
  148. package/src/lib/layout/w-panel-grid/w-panel-grid.component.html +0 -3
  149. package/src/lib/layout/w-panel-grid/w-panel-grid.component.scss +0 -6
  150. package/src/lib/layout/w-panel-grid/w-panel-grid.component.spec.ts +0 -23
  151. package/src/lib/layout/w-panel-grid/w-panel-grid.component.ts +0 -11
  152. package/src/lib/layout/w-panel-subtitle/w-panel-subtitle.component.html +0 -1
  153. package/src/lib/layout/w-panel-subtitle/w-panel-subtitle.component.scss +0 -6
  154. package/src/lib/layout/w-panel-subtitle/w-panel-subtitle.component.spec.ts +0 -23
  155. package/src/lib/layout/w-panel-subtitle/w-panel-subtitle.component.ts +0 -12
  156. package/src/lib/layout/w-panel-title/w-panel-title.component.html +0 -1
  157. package/src/lib/layout/w-panel-title/w-panel-title.component.scss +0 -9
  158. package/src/lib/layout/w-panel-title/w-panel-title.component.spec.ts +0 -23
  159. package/src/lib/layout/w-panel-title/w-panel-title.component.ts +0 -12
  160. package/src/lib/logos/logos.ts +0 -7
  161. package/src/lib/logos/wapping-logos/w-logos.component.scss +0 -5
  162. package/src/lib/logos/wapping-logos/w-logos.component.ts +0 -62
  163. package/src/lib/maps/w-maps/w-maps.component.html +0 -31
  164. package/src/lib/maps/w-maps/w-maps.component.scss +0 -102
  165. package/src/lib/maps/w-maps/w-maps.component.spec.ts +0 -23
  166. package/src/lib/maps/w-maps/w-maps.component.ts +0 -225
  167. package/src/lib/material/shared/components/wapp-modal-close-button/wapp-modal-close-button.component.css +0 -23
  168. package/src/lib/material/shared/components/wapp-modal-close-button/wapp-modal-close-button.component.html +0 -5
  169. package/src/lib/material/shared/components/wapp-modal-close-button/wapp-modal-close-button.component.spec.ts +0 -28
  170. package/src/lib/material/shared/components/wapp-modal-close-button/wapp-modal-close-button.component.ts +0 -17
  171. package/src/lib/material/shared/components/wapp-modal-title/wapp-modal-title.component.css +0 -11
  172. package/src/lib/material/shared/components/wapp-modal-title/wapp-modal-title.component.html +0 -1
  173. package/src/lib/material/shared/components/wapp-modal-title/wapp-modal-title.component.spec.ts +0 -28
  174. package/src/lib/material/shared/components/wapp-modal-title/wapp-modal-title.component.ts +0 -17
  175. package/src/lib/material/shared/components/wapp-service-description/wapp-service-description.component.css +0 -0
  176. package/src/lib/material/shared/components/wapp-service-description/wapp-service-description.component.html +0 -5
  177. package/src/lib/material/shared/components/wapp-service-description/wapp-service-description.component.spec.ts +0 -28
  178. package/src/lib/material/shared/components/wapp-service-description/wapp-service-description.component.ts +0 -23
  179. package/src/lib/material/shared/models/data-req-to-send-card.model.ts +0 -18
  180. package/src/lib/material/shared/models/enums.model.ts +0 -53
  181. package/src/lib/material/shared/models/modal-size.model.ts +0 -4
  182. package/src/lib/material/shared/models/wapp-service.ts +0 -56
  183. package/src/lib/material/shared/models/wapping-service-image.ts +0 -3
  184. package/src/lib/material/shared/models/wapping-service-item-view.ts +0 -14
  185. package/src/lib/material/shared/models/wapping-service-template.model.ts +0 -24
  186. package/src/lib/material/shared/models/wapping-service-translations.model.ts +0 -11
  187. package/src/lib/material/shared/models/wapping-service.ts +0 -58
  188. package/src/lib/material/shared/services/material-modal.service.spec.ts +0 -16
  189. package/src/lib/material/shared/services/material-modal.service.ts +0 -66
  190. package/src/lib/material/w-material-service-card/w-material-service-card.component.html +0 -62
  191. package/src/lib/material/w-material-service-card/w-material-service-card.component.scss +0 -140
  192. package/src/lib/material/w-material-service-card/w-material-service-card.component.spec.ts +0 -23
  193. package/src/lib/material/w-material-service-card/w-material-service-card.component.ts +0 -180
  194. package/src/lib/material/w-material-service-view/w-material-service-view.component.html +0 -85
  195. package/src/lib/material/w-material-service-view/w-material-service-view.component.scss +0 -521
  196. package/src/lib/material/w-material-service-view/w-material-service-view.component.spec.ts +0 -28
  197. package/src/lib/material/w-material-service-view/w-material-service-view.component.ts +0 -244
  198. package/src/lib/material/wapp-material-service-card/wapp-material-service-card.component.html +0 -89
  199. package/src/lib/material/wapp-material-service-card/wapp-material-service-card.component.scss +0 -109
  200. package/src/lib/material/wapp-material-service-card/wapp-material-service-card.component.spec.ts +0 -28
  201. package/src/lib/material/wapp-material-service-card/wapp-material-service-card.component.ts +0 -109
  202. package/src/lib/material/wapp-material-service-view/carousel/carousel.component.html +0 -74
  203. package/src/lib/material/wapp-material-service-view/carousel/carousel.component.scss +0 -197
  204. package/src/lib/material/wapp-material-service-view/carousel/carousel.component.spec.ts +0 -28
  205. package/src/lib/material/wapp-material-service-view/carousel/carousel.component.ts +0 -268
  206. package/src/lib/material/wapp-material-service-view/main-title/main-title.component.css +0 -36
  207. package/src/lib/material/wapp-material-service-view/main-title/main-title.component.html +0 -11
  208. package/src/lib/material/wapp-material-service-view/main-title/main-title.component.spec.ts +0 -28
  209. package/src/lib/material/wapp-material-service-view/main-title/main-title.component.ts +0 -22
  210. package/src/lib/material/wapp-material-service-view/wapp-material-service-view.component.css +0 -331
  211. package/src/lib/material/wapp-material-service-view/wapp-material-service-view.component.html +0 -131
  212. package/src/lib/material/wapp-material-service-view/wapp-material-service-view.component.spec.ts +0 -28
  213. package/src/lib/material/wapp-material-service-view/wapp-material-service-view.component.ts +0 -192
  214. package/src/lib/misc/w-badge/w-badge.component.html +0 -4
  215. package/src/lib/misc/w-badge/w-badge.component.scss +0 -105
  216. package/src/lib/misc/w-badge/w-badge.component.spec.ts +0 -23
  217. package/src/lib/misc/w-badge/w-badge.component.ts +0 -19
  218. package/src/lib/misc/w-chip/w-chip.component.html +0 -33
  219. package/src/lib/misc/w-chip/w-chip.component.scss +0 -38
  220. package/src/lib/misc/w-chip/w-chip.component.spec.ts +0 -23
  221. package/src/lib/misc/w-chip/w-chip.component.ts +0 -36
  222. package/src/lib/misc/w-code-block/monaco-editor-v2/base-editor.ts +0 -130
  223. package/src/lib/misc/w-code-block/monaco-editor-v2/config.ts +0 -11
  224. package/src/lib/misc/w-code-block/monaco-editor-v2/diff-editor.component.ts +0 -100
  225. package/src/lib/misc/w-code-block/monaco-editor-v2/editor.component.ts +0 -136
  226. package/src/lib/misc/w-code-block/monaco-editor-v2/editor.module.ts +0 -34
  227. package/src/lib/misc/w-code-block/monaco-editor-v2/types.ts +0 -9
  228. package/src/lib/misc/w-code-block/w-code-block.component.html +0 -21
  229. package/src/lib/misc/w-code-block/w-code-block.component.scss +0 -23
  230. package/src/lib/misc/w-code-block/w-code-block.component.spec.ts +0 -28
  231. package/src/lib/misc/w-code-block/w-code-block.component.ts +0 -35
  232. package/src/lib/misc/w-cron-expressions/w-cron-expressions.component.css +0 -0
  233. package/src/lib/misc/w-cron-expressions/w-cron-expressions.component.html +0 -209
  234. package/src/lib/misc/w-cron-expressions/w-cron-expressions.component.spec.ts +0 -23
  235. package/src/lib/misc/w-cron-expressions/w-cron-expressions.component.ts +0 -694
  236. package/src/lib/misc/w-filter-panel/query-builder/query-arrow-icon.directive.ts +0 -9
  237. package/src/lib/misc/w-filter-panel/query-builder/query-builder.component.html +0 -197
  238. package/src/lib/misc/w-filter-panel/query-builder/query-builder.component.scss +0 -219
  239. package/src/lib/misc/w-filter-panel/query-builder/query-builder.component.spec.ts +0 -27
  240. package/src/lib/misc/w-filter-panel/query-builder/query-builder.component.ts +0 -815
  241. package/src/lib/misc/w-filter-panel/query-builder/query-builder.interfaces.ts +0 -166
  242. package/src/lib/misc/w-filter-panel/query-builder/query-button-group.directive.ts +0 -9
  243. package/src/lib/misc/w-filter-panel/query-builder/query-empty-warning.directive.ts +0 -9
  244. package/src/lib/misc/w-filter-panel/query-builder/query-entity.directive.ts +0 -9
  245. package/src/lib/misc/w-filter-panel/query-builder/query-field.directive.ts +0 -9
  246. package/src/lib/misc/w-filter-panel/query-builder/query-input.directive.ts +0 -20
  247. package/src/lib/misc/w-filter-panel/query-builder/query-operator.directive.ts +0 -9
  248. package/src/lib/misc/w-filter-panel/query-builder/query-remove-button.directive.ts +0 -9
  249. package/src/lib/misc/w-filter-panel/query-builder/query-switch-group.directive.ts +0 -9
  250. package/src/lib/misc/w-filter-panel/w-filter-panel.component.html +0 -385
  251. package/src/lib/misc/w-filter-panel/w-filter-panel.component.scss +0 -486
  252. package/src/lib/misc/w-filter-panel/w-filter-panel.component.spec.ts +0 -23
  253. package/src/lib/misc/w-filter-panel/w-filter-panel.component.ts +0 -949
  254. package/src/lib/misc/w-filter-panel/w-list-field/w-list-field.component.html +0 -36
  255. package/src/lib/misc/w-filter-panel/w-list-field/w-list-field.component.scss +0 -13
  256. package/src/lib/misc/w-filter-panel/w-list-field/w-list-field.component.spec.ts +0 -23
  257. package/src/lib/misc/w-filter-panel/w-list-field/w-list-field.component.ts +0 -92
  258. package/src/lib/misc/w-parameter-selector/w-parameter-selector.component.html +0 -38
  259. package/src/lib/misc/w-parameter-selector/w-parameter-selector.component.scss +0 -92
  260. package/src/lib/misc/w-parameter-selector/w-parameter-selector.component.spec.ts +0 -28
  261. package/src/lib/misc/w-parameter-selector/w-parameter-selector.component.ts +0 -89
  262. package/src/lib/misc/w-timeline/w-timeline.component.html +0 -37
  263. package/src/lib/misc/w-timeline/w-timeline.component.scss +0 -131
  264. package/src/lib/misc/w-timeline/w-timeline.component.spec.ts +0 -23
  265. package/src/lib/misc/w-timeline/w-timeline.component.ts +0 -58
  266. package/src/lib/misc/w-wizard/w-wizard.component.html +0 -136
  267. package/src/lib/misc/w-wizard/w-wizard.component.scss +0 -82
  268. package/src/lib/misc/w-wizard/w-wizard.component.spec.ts +0 -23
  269. package/src/lib/misc/w-wizard/w-wizard.component.ts +0 -85
  270. package/src/lib/report/w-powerbi-report/w-powerbi-report.component.css +0 -18
  271. package/src/lib/report/w-powerbi-report/w-powerbi-report.component.html +0 -72
  272. package/src/lib/report/w-powerbi-report/w-powerbi-report.component.spec.ts +0 -23
  273. package/src/lib/report/w-powerbi-report/w-powerbi-report.component.ts +0 -182
  274. package/src/lib/search/w-autocomplete-search/w-autocomplete-search.component.html +0 -92
  275. package/src/lib/search/w-autocomplete-search/w-autocomplete-search.component.scss +0 -144
  276. package/src/lib/search/w-autocomplete-search/w-autocomplete-search.component.spec.ts +0 -23
  277. package/src/lib/search/w-autocomplete-search/w-autocomplete-search.component.ts +0 -95
  278. package/src/lib/search/w-input-search/w-input-search.component.html +0 -139
  279. package/src/lib/search/w-input-search/w-input-search.component.scss +0 -64
  280. package/src/lib/search/w-input-search/w-input-search.component.spec.ts +0 -23
  281. package/src/lib/search/w-input-search/w-input-search.component.ts +0 -96
  282. package/src/lib/shared/components/w-address-field/w-address-field.component.html +0 -31
  283. package/src/lib/shared/components/w-address-field/w-address-field.component.scss +0 -0
  284. package/src/lib/shared/components/w-address-field/w-address-field.component.spec.ts +0 -23
  285. package/src/lib/shared/components/w-address-field/w-address-field.component.ts +0 -312
  286. package/src/lib/shared/components/w-notifications-event-field/w-notifications-event-field.component.html +0 -2
  287. package/src/lib/shared/components/w-notifications-event-field/w-notifications-event-field.component.scss +0 -5
  288. package/src/lib/shared/components/w-notifications-event-field/w-notifications-event-field.component.spec.ts +0 -23
  289. package/src/lib/shared/components/w-notifications-event-field/w-notifications-event-field.component.ts +0 -156
  290. package/src/lib/shared/components/w-period-select-field/w-period-select-field.component.html +0 -54
  291. package/src/lib/shared/components/w-period-select-field/w-period-select-field.component.scss +0 -5
  292. package/src/lib/shared/components/w-period-select-field/w-period-select-field.component.spec.ts +0 -28
  293. package/src/lib/shared/components/w-period-select-field/w-period-select-field.component.ts +0 -172
  294. package/src/lib/shared/components/w-tree-field/w-tree-field.component.css +0 -0
  295. package/src/lib/shared/components/w-tree-field/w-tree-field.component.html +0 -25
  296. package/src/lib/shared/components/w-tree-field/w-tree-field.component.spec.ts +0 -23
  297. package/src/lib/shared/components/w-tree-field/w-tree-field.component.ts +0 -210
  298. package/src/lib/shared/enums/cron-expressions/enum.model.ts +0 -28
  299. package/src/lib/shared/enums/enum.ts +0 -19
  300. package/src/lib/shared/models/action-button-response.model.ts +0 -4
  301. package/src/lib/shared/models/action-button.model.ts +0 -5
  302. package/src/lib/shared/models/address-maps.model.ts +0 -14
  303. package/src/lib/shared/models/back-button-config.model.ts +0 -5
  304. package/src/lib/shared/models/components-tenant-storage.model.ts +0 -5
  305. package/src/lib/shared/models/cron-expressions/cron-component-translations.model.ts +0 -43
  306. package/src/lib/shared/models/custom-button-config.model.ts +0 -14
  307. package/src/lib/shared/models/embed-config.model.ts +0 -9
  308. package/src/lib/shared/models/enums.model.ts +0 -144
  309. package/src/lib/shared/models/filter-panel/boolean-select-option.model.ts +0 -4
  310. package/src/lib/shared/models/filter-panel/field.model.ts +0 -165
  311. package/src/lib/shared/models/filter-panel/filter-field.models.ts +0 -15
  312. package/src/lib/shared/models/filter-panel/filter-panel-translations.model.ts +0 -49
  313. package/src/lib/shared/models/filter-panel/gmarealevel1.model.ts +0 -4
  314. package/src/lib/shared/models/filter-panel/gmarealevel2.model.ts +0 -4
  315. package/src/lib/shared/models/filter-panel/gmcountry-model.ts +0 -4
  316. package/src/lib/shared/models/filter-panel/gmlocality.model.ts +0 -4
  317. package/src/lib/shared/models/filter-panel/gmpostalcode.model.ts +0 -4
  318. package/src/lib/shared/models/filter-panel/last-query.model.ts +0 -6
  319. package/src/lib/shared/models/filter-panel/nullable-select-option.model.ts +0 -4
  320. package/src/lib/shared/models/filter-panel/period-select-value.model.ts +0 -5
  321. package/src/lib/shared/models/filter-panel/platform-event.model.ts +0 -6
  322. package/src/lib/shared/models/filter-panel/platform-events-group.model.ts +0 -6
  323. package/src/lib/shared/models/filter-panel/qb-filter-entity.model.ts +0 -8
  324. package/src/lib/shared/models/filter-panel/qb-filter-field.model.ts +0 -12
  325. package/src/lib/shared/models/filter-panel/qb-operators.model.ts +0 -4
  326. package/src/lib/shared/models/filter-panel/qb-panel-filter.model.ts +0 -14
  327. package/src/lib/shared/models/filter-panel/qb-panel-to-fields.model.ts +0 -12
  328. package/src/lib/shared/models/filter-panel/query-results.model.ts +0 -20
  329. package/src/lib/shared/models/filter-panel/translated-select-optinon.model.ts +0 -4
  330. package/src/lib/shared/models/filter.model.ts +0 -5
  331. package/src/lib/shared/models/image-b64.model.ts +0 -9
  332. package/src/lib/shared/models/lazy-element-query-request.model.ts +0 -9
  333. package/src/lib/shared/models/multiselect-option.model.ts +0 -4
  334. package/src/lib/shared/models/parameter-selector.model.ts +0 -10
  335. package/src/lib/shared/models/storeable-table-pagination.model.ts +0 -4
  336. package/src/lib/shared/models/stored-filter-panel-query.model.ts +0 -6
  337. package/src/lib/shared/models/tenant-storage-pagination.model.ts +0 -6
  338. package/src/lib/shared/models/w-address.model.ts +0 -16
  339. package/src/lib/shared/models/w-chart-config.model.ts +0 -14
  340. package/src/lib/shared/models/w-file-attachment.model.ts +0 -4
  341. package/src/lib/shared/models/w-file-b64.model.ts +0 -6
  342. package/src/lib/shared/models/w-file-uploader-config.model.ts +0 -11
  343. package/src/lib/shared/models/w-file-uploader-data-sheet-response.model.ts +0 -4
  344. package/src/lib/shared/models/w-image-cropper-data.model.ts +0 -8
  345. package/src/lib/shared/models/w-image-file-uploader-config.model.ts +0 -29
  346. package/src/lib/shared/models/w-select-button-state.model.ts +0 -6
  347. package/src/lib/shared/models/w-timeline-event-item.model.ts +0 -11
  348. package/src/lib/shared/models/w-tree-table.model.ts +0 -39
  349. package/src/lib/shared/models/wapp-table-action-button-response.model.ts +0 -4
  350. package/src/lib/shared/models/wapp-table-lazy-loading.model.ts +0 -75
  351. package/src/lib/shared/models/wapp-table.model.ts +0 -68
  352. package/src/lib/shared/pipes/color-text.pipe.ts +0 -24
  353. package/src/lib/shared/pipes/w-currency.pipe.ts +0 -31
  354. package/src/lib/shared/pipes/w-date.pipe.ts +0 -58
  355. package/src/lib/shared/pipes/w-percentage.pipe.ts +0 -12
  356. package/src/lib/shared/pipes/w-summary.pipe.ts +0 -23
  357. package/src/lib/shared/service/api/api.service.ts +0 -154
  358. package/src/lib/shared/services/clipboard.service.spec.ts +0 -16
  359. package/src/lib/shared/services/clipboard.service.ts +0 -19
  360. package/src/lib/shared/services/date-conversion.service.spec.ts +0 -16
  361. package/src/lib/shared/services/date-conversion.service.ts +0 -20
  362. package/src/lib/shared/services/file-size.service.spec.ts +0 -16
  363. package/src/lib/shared/services/file-size.service.ts +0 -37
  364. package/src/lib/shared/services/file.service.ts +0 -37
  365. package/src/lib/shared/services/form-control.service.spec.ts +0 -16
  366. package/src/lib/shared/services/form-control.service.ts +0 -15
  367. package/src/lib/shared/services/local-storage.service.spec.ts +0 -16
  368. package/src/lib/shared/services/local-storage.service.ts +0 -15
  369. package/src/lib/shared/services/modal.service.spec.ts +0 -16
  370. package/src/lib/shared/services/modal.service.ts +0 -71
  371. package/src/lib/shared/services/number-conversion.service.spec.ts +0 -16
  372. package/src/lib/shared/services/number-conversion.service.ts +0 -29
  373. package/src/lib/shared/services/session-storage.service.spec.ts +0 -16
  374. package/src/lib/shared/services/session-storage.service.ts +0 -124
  375. package/src/lib/shared/services/tree.service.ts +0 -30
  376. package/src/lib/shared/skeletons/w-skeleton-edit/w-skeleton-edit.component.css +0 -0
  377. package/src/lib/shared/skeletons/w-skeleton-edit/w-skeleton-edit.component.html +0 -32
  378. package/src/lib/shared/skeletons/w-skeleton-edit/w-skeleton-edit.component.spec.ts +0 -23
  379. package/src/lib/shared/skeletons/w-skeleton-edit/w-skeleton-edit.component.ts +0 -16
  380. package/src/lib/shared/skeletons/w-skeleton-edit-product/w-skeleton-edit-product.component.css +0 -0
  381. package/src/lib/shared/skeletons/w-skeleton-edit-product/w-skeleton-edit-product.component.html +0 -37
  382. package/src/lib/shared/skeletons/w-skeleton-edit-product/w-skeleton-edit-product.component.spec.ts +0 -23
  383. package/src/lib/shared/skeletons/w-skeleton-edit-product/w-skeleton-edit-product.component.ts +0 -11
  384. package/src/lib/shared/skeletons/w-skeleton-form/w-skeleton-form.component.css +0 -0
  385. package/src/lib/shared/skeletons/w-skeleton-form/w-skeleton-form.component.html +0 -5
  386. package/src/lib/shared/skeletons/w-skeleton-form/w-skeleton-form.component.spec.ts +0 -23
  387. package/src/lib/shared/skeletons/w-skeleton-form/w-skeleton-form.component.ts +0 -18
  388. package/src/lib/shared/skeletons/w-skeleton-generic/w-skeleton-generic.component.css +0 -0
  389. package/src/lib/shared/skeletons/w-skeleton-generic/w-skeleton-generic.component.html +0 -3
  390. package/src/lib/shared/skeletons/w-skeleton-generic/w-skeleton-generic.component.spec.ts +0 -23
  391. package/src/lib/shared/skeletons/w-skeleton-generic/w-skeleton-generic.component.ts +0 -11
  392. package/src/lib/shared/skeletons/w-skeleton-iframe/w-skeleton-iframe.component.css +0 -0
  393. package/src/lib/shared/skeletons/w-skeleton-iframe/w-skeleton-iframe.component.html +0 -3
  394. package/src/lib/shared/skeletons/w-skeleton-iframe/w-skeleton-iframe.component.spec.ts +0 -23
  395. package/src/lib/shared/skeletons/w-skeleton-iframe/w-skeleton-iframe.component.ts +0 -11
  396. package/src/lib/shared/skeletons/w-skeleton-input-generic/w-skeleton-input-generic.component.css +0 -4
  397. package/src/lib/shared/skeletons/w-skeleton-input-generic/w-skeleton-input-generic.component.html +0 -10
  398. package/src/lib/shared/skeletons/w-skeleton-input-generic/w-skeleton-input-generic.component.spec.ts +0 -23
  399. package/src/lib/shared/skeletons/w-skeleton-input-generic/w-skeleton-input-generic.component.ts +0 -14
  400. package/src/lib/shared/skeletons/w-skeleton-list/w-skeleton-list.component.css +0 -0
  401. package/src/lib/shared/skeletons/w-skeleton-list/w-skeleton-list.component.html +0 -14
  402. package/src/lib/shared/skeletons/w-skeleton-list/w-skeleton-list.component.spec.ts +0 -23
  403. package/src/lib/shared/skeletons/w-skeleton-list/w-skeleton-list.component.ts +0 -14
  404. package/src/lib/shared/skeletons/w-skeleton-powerbi-report/w-skeleton-powerbi-report.component.css +0 -0
  405. package/src/lib/shared/skeletons/w-skeleton-powerbi-report/w-skeleton-powerbi-report.component.html +0 -10
  406. package/src/lib/shared/skeletons/w-skeleton-powerbi-report/w-skeleton-powerbi-report.component.spec.ts +0 -23
  407. package/src/lib/shared/skeletons/w-skeleton-powerbi-report/w-skeleton-powerbi-report.component.ts +0 -11
  408. package/src/lib/shared/skeletons/w-skeleton-profile-sidebar/w-skeleton-profile-sidebar.component.css +0 -0
  409. package/src/lib/shared/skeletons/w-skeleton-profile-sidebar/w-skeleton-profile-sidebar.component.html +0 -14
  410. package/src/lib/shared/skeletons/w-skeleton-profile-sidebar/w-skeleton-profile-sidebar.component.spec.ts +0 -23
  411. package/src/lib/shared/skeletons/w-skeleton-profile-sidebar/w-skeleton-profile-sidebar.component.ts +0 -11
  412. package/src/lib/shared/skeletons/w-skeleton-query-builder/w-skeleton-query-builder.component.html +0 -41
  413. package/src/lib/shared/skeletons/w-skeleton-query-builder/w-skeleton-query-builder.component.scss +0 -8
  414. package/src/lib/shared/skeletons/w-skeleton-query-builder/w-skeleton-query-builder.component.spec.ts +0 -23
  415. package/src/lib/shared/skeletons/w-skeleton-query-builder/w-skeleton-query-builder.component.ts +0 -14
  416. package/src/lib/shared/skeletons/w-skeleton-sidebar/w-skeleton-sidebar.component.html +0 -10
  417. package/src/lib/shared/skeletons/w-skeleton-sidebar/w-skeleton-sidebar.component.scss +0 -26
  418. package/src/lib/shared/skeletons/w-skeleton-sidebar/w-skeleton-sidebar.component.spec.ts +0 -23
  419. package/src/lib/shared/skeletons/w-skeleton-sidebar/w-skeleton-sidebar.component.ts +0 -15
  420. package/src/lib/shared/skeletons/w-skeleton-timeline/w-skeleton-timeline.component.html +0 -18
  421. package/src/lib/shared/skeletons/w-skeleton-timeline/w-skeleton-timeline.component.scss +0 -120
  422. package/src/lib/shared/skeletons/w-skeleton-timeline/w-skeleton-timeline.component.spec.ts +0 -23
  423. package/src/lib/shared/skeletons/w-skeleton-timeline/w-skeleton-timeline.component.ts +0 -24
  424. package/src/lib/shared/skeletons/w-skeleton-tree/w-skeleton-tree.component.css +0 -0
  425. package/src/lib/shared/skeletons/w-skeleton-tree/w-skeleton-tree.component.html +0 -12
  426. package/src/lib/shared/skeletons/w-skeleton-tree/w-skeleton-tree.component.spec.ts +0 -23
  427. package/src/lib/shared/skeletons/w-skeleton-tree/w-skeleton-tree.component.ts +0 -19
  428. package/src/lib/shared/skeletons/w-skeleton-user-profile-info-sidebar/w-skeleton-user-profile-info-sidebar.component.css +0 -0
  429. package/src/lib/shared/skeletons/w-skeleton-user-profile-info-sidebar/w-skeleton-user-profile-info-sidebar.component.html +0 -55
  430. package/src/lib/shared/skeletons/w-skeleton-user-profile-info-sidebar/w-skeleton-user-profile-info-sidebar.component.spec.ts +0 -23
  431. package/src/lib/shared/skeletons/w-skeleton-user-profile-info-sidebar/w-skeleton-user-profile-info-sidebar.component.ts +0 -11
  432. package/src/lib/sidebar/w-sidebar/w-sidebar.component.html +0 -82
  433. package/src/lib/sidebar/w-sidebar/w-sidebar.component.scss +0 -122
  434. package/src/lib/sidebar/w-sidebar/w-sidebar.component.spec.ts +0 -23
  435. package/src/lib/sidebar/w-sidebar/w-sidebar.component.ts +0 -73
  436. package/src/lib/tables/w-table/w-table.component.html +0 -473
  437. package/src/lib/tables/w-table/w-table.component.scss +0 -507
  438. package/src/lib/tables/w-table/w-table.component.spec.ts +0 -23
  439. package/src/lib/tables/w-table/w-table.component.ts +0 -317
  440. package/src/lib/tables/w-table-lazy/w-table-lazy.component.html +0 -334
  441. package/src/lib/tables/w-table-lazy/w-table-lazy.component.scss +0 -484
  442. package/src/lib/tables/w-table-lazy/w-table-lazy.component.spec.ts +0 -23
  443. package/src/lib/tables/w-table-lazy/w-table-lazy.component.ts +0 -401
  444. package/src/lib/tables/w-tree-table/w-tree-table.component.html +0 -381
  445. package/src/lib/tables/w-tree-table/w-tree-table.component.scss +0 -325
  446. package/src/lib/tables/w-tree-table/w-tree-table.component.spec.ts +0 -23
  447. package/src/lib/tables/w-tree-table/w-tree-table.component.ts +0 -195
  448. package/src/lib/tabview/w-button-tabview/w-button-tabview.component.html +0 -176
  449. package/src/lib/tabview/w-button-tabview/w-button-tabview.component.scss +0 -37
  450. package/src/lib/tabview/w-button-tabview/w-button-tabview.component.spec.ts +0 -23
  451. package/src/lib/tabview/w-button-tabview/w-button-tabview.component.ts +0 -28
  452. package/src/lib/tabview/w-tabview/w-tabview.component.html +0 -228
  453. package/src/lib/tabview/w-tabview/w-tabview.component.scss +0 -85
  454. package/src/lib/tabview/w-tabview/w-tabview.component.spec.ts +0 -23
  455. package/src/lib/tabview/w-tabview/w-tabview.component.ts +0 -62
  456. package/src/lib/theme/theme.component.css +0 -0
  457. package/src/lib/theme/theme.component.html +0 -1
  458. package/src/lib/theme/theme.component.spec.ts +0 -23
  459. package/src/lib/theme/theme.component.ts +0 -11
  460. package/src/lib/tree/w-tree/w-tree.component.html +0 -57
  461. package/src/lib/tree/w-tree/w-tree.component.scss +0 -113
  462. package/src/lib/tree/w-tree/w-tree.component.spec.ts +0 -23
  463. package/src/lib/tree/w-tree/w-tree.component.ts +0 -85
  464. package/src/lib/view/w-input-label/w-input-label.component.html +0 -27
  465. package/src/lib/view/w-input-label/w-input-label.component.scss +0 -48
  466. package/src/lib/view/w-input-label/w-input-label.component.spec.ts +0 -23
  467. package/src/lib/view/w-input-label/w-input-label.component.ts +0 -42
  468. package/src/lib/view/w-view-badge/w-view-badge.component.html +0 -9
  469. package/src/lib/view/w-view-badge/w-view-badge.component.scss +0 -9
  470. package/src/lib/view/w-view-badge/w-view-badge.component.spec.ts +0 -23
  471. package/src/lib/view/w-view-badge/w-view-badge.component.ts +0 -17
  472. package/src/lib/view/w-view-boolean/w-view-boolean.component.html +0 -40
  473. package/src/lib/view/w-view-boolean/w-view-boolean.component.scss +0 -47
  474. package/src/lib/view/w-view-boolean/w-view-boolean.component.spec.ts +0 -23
  475. package/src/lib/view/w-view-boolean/w-view-boolean.component.ts +0 -34
  476. package/src/lib/view/w-view-card-title-text/w-view-card-title-text.component.html +0 -1
  477. package/src/lib/view/w-view-card-title-text/w-view-card-title-text.component.scss +0 -5
  478. package/src/lib/view/w-view-card-title-text/w-view-card-title-text.component.spec.ts +0 -23
  479. package/src/lib/view/w-view-card-title-text/w-view-card-title-text.component.ts +0 -17
  480. package/src/lib/view/w-view-text/w-view-text.component.html +0 -19
  481. package/src/lib/view/w-view-text/w-view-text.component.scss +0 -39
  482. package/src/lib/view/w-view-text/w-view-text.component.spec.ts +0 -23
  483. package/src/lib/view/w-view-text/w-view-text.component.ts +0 -41
  484. package/src/lib/w-clipboard/w-clipboard.component.css +0 -12
  485. package/src/lib/w-clipboard/w-clipboard.component.html +0 -10
  486. package/src/lib/w-clipboard/w-clipboard.component.spec.ts +0 -23
  487. package/src/lib/w-clipboard/w-clipboard.component.ts +0 -33
  488. package/src/lib/wapp-components.component.spec.ts +0 -23
  489. package/src/lib/wapp-components.component.ts +0 -15
  490. package/src/lib/wapp-components.module.ts +0 -498
  491. package/src/lib/wapp-components.service.spec.ts +0 -16
  492. package/src/lib/wapp-components.service.ts +0 -9
  493. package/src/public-api.ts +0 -166
  494. package/src/styles/_variables.scss +0 -971
  495. package/tsconfig.lib.json +0 -16
  496. package/tsconfig.lib.prod.json +0 -10
  497. package/tsconfig.spec.json +0 -14
  498. /package/{src/assets → assets}/images/analytics-background.png +0 -0
  499. /package/{src/assets → assets}/wappIcons/account.svg +0 -0
  500. /package/{src/assets → assets}/wappIcons/activated.svg +0 -0
  501. /package/{src/assets → assets}/wappIcons/addChild.svg +0 -0
  502. /package/{src/assets → assets}/wappIcons/addNotification.svg +0 -0
  503. /package/{src/assets → assets}/wappIcons/addToCart.svg +0 -0
  504. /package/{src/assets → assets}/wappIcons/arrowDown.svg +0 -0
  505. /package/{src/assets → assets}/wappIcons/arrowLeft.svg +0 -0
  506. /package/{src/assets → assets}/wappIcons/arrowRight.svg +0 -0
  507. /package/{src/assets → assets}/wappIcons/arrowSmDown.svg +0 -0
  508. /package/{src/assets → assets}/wappIcons/arrowSmLeft.svg +0 -0
  509. /package/{src/assets → assets}/wappIcons/arrowSmRight.svg +0 -0
  510. /package/{src/assets → assets}/wappIcons/arrowUp.svg +0 -0
  511. /package/{src/assets → assets}/wappIcons/bag.svg +0 -0
  512. /package/{src/assets → assets}/wappIcons/banner.svg +0 -0
  513. /package/{src/assets → assets}/wappIcons/barcodeScan.svg +0 -0
  514. /package/{src/assets → assets}/wappIcons/bell.svg +0 -0
  515. /package/{src/assets → assets}/wappIcons/boardGame.svg +0 -0
  516. /package/{src/assets → assets}/wappIcons/calendar.svg +0 -0
  517. /package/{src/assets → assets}/wappIcons/calendarDate.svg +0 -0
  518. /package/{src/assets → assets}/wappIcons/cardFavorite.svg +0 -0
  519. /package/{src/assets → assets}/wappIcons/cardUpdate.svg +0 -0
  520. /package/{src/assets → assets}/wappIcons/caretSmUp.svg +0 -0
  521. /package/{src/assets → assets}/wappIcons/cartRefresh.svg +0 -0
  522. /package/{src/assets → assets}/wappIcons/chart.svg +0 -0
  523. /package/{src/assets → assets}/wappIcons/check.svg +0 -0
  524. /package/{src/assets → assets}/wappIcons/checkSmall.svg +0 -0
  525. /package/{src/assets → assets}/wappIcons/checkSmallAlt.svg +0 -0
  526. /package/{src/assets → assets}/wappIcons/clock.svg +0 -0
  527. /package/{src/assets → assets}/wappIcons/closeCircle.svg +0 -0
  528. /package/{src/assets → assets}/wappIcons/cockade.svg +0 -0
  529. /package/{src/assets → assets}/wappIcons/code.svg +0 -0
  530. /package/{src/assets → assets}/wappIcons/collapse.svg +0 -0
  531. /package/{src/assets → assets}/wappIcons/comment.svg +0 -0
  532. /package/{src/assets → assets}/wappIcons/compass.svg +0 -0
  533. /package/{src/assets → assets}/wappIcons/connection.svg +0 -0
  534. /package/{src/assets → assets}/wappIcons/contactList.svg +0 -0
  535. /package/{src/assets → assets}/wappIcons/copy.svg +0 -0
  536. /package/{src/assets → assets}/wappIcons/coupon.svg +0 -0
  537. /package/{src/assets → assets}/wappIcons/crown.svg +0 -0
  538. /package/{src/assets → assets}/wappIcons/ctrlDown.svg +0 -0
  539. /package/{src/assets → assets}/wappIcons/ctrlLeft.svg +0 -0
  540. /package/{src/assets → assets}/wappIcons/ctrlRight.svg +0 -0
  541. /package/{src/assets → assets}/wappIcons/ctrlUp.svg +0 -0
  542. /package/{src/assets → assets}/wappIcons/currencyExchange.svg +0 -0
  543. /package/{src/assets → assets}/wappIcons/deactivated.svg +0 -0
  544. /package/{src/assets → assets}/wappIcons/delete.svg +0 -0
  545. /package/{src/assets → assets}/wappIcons/desktop.svg +0 -0
  546. /package/{src/assets → assets}/wappIcons/discount.svg +0 -0
  547. /package/{src/assets → assets}/wappIcons/document.svg +0 -0
  548. /package/{src/assets → assets}/wappIcons/doubleArrowLeft.svg +0 -0
  549. /package/{src/assets → assets}/wappIcons/doubleArrowRight.svg +0 -0
  550. /package/{src/assets → assets}/wappIcons/dropCap.svg +0 -0
  551. /package/{src/assets → assets}/wappIcons/earnAndBurn.svg +0 -0
  552. /package/{src/assets → assets}/wappIcons/edit.svg +0 -0
  553. /package/{src/assets → assets}/wappIcons/empty.svg +0 -0
  554. /package/{src/assets → assets}/wappIcons/exchange.svg +0 -0
  555. /package/{src/assets → assets}/wappIcons/expand.svg +0 -0
  556. /package/{src/assets → assets}/wappIcons/feedback.svg +0 -0
  557. /package/{src/assets → assets}/wappIcons/fileCopies.svg +0 -0
  558. /package/{src/assets → assets}/wappIcons/filter.svg +0 -0
  559. /package/{src/assets → assets}/wappIcons/filterOrganization.svg +0 -0
  560. /package/{src/assets → assets}/wappIcons/folderImage.svg +0 -0
  561. /package/{src/assets → assets}/wappIcons/folderSettings.svg +0 -0
  562. /package/{src/assets → assets}/wappIcons/folderShared.svg +0 -0
  563. /package/{src/assets → assets}/wappIcons/fork.svg +0 -0
  564. /package/{src/assets → assets}/wappIcons/globe.svg +0 -0
  565. /package/{src/assets → assets}/wappIcons/goldCoin.svg +0 -0
  566. /package/{src/assets → assets}/wappIcons/handshake.svg +0 -0
  567. /package/{src/assets → assets}/wappIcons/image.svg +0 -0
  568. /package/{src/assets → assets}/wappIcons/info.svg +0 -0
  569. /package/{src/assets → assets}/wappIcons/launch.svg +0 -0
  570. /package/{src/assets → assets}/wappIcons/layers.svg +0 -0
  571. /package/{src/assets → assets}/wappIcons/licenseKey.svg +0 -0
  572. /package/{src/assets → assets}/wappIcons/loan.svg +0 -0
  573. /package/{src/assets → assets}/wappIcons/logoWhatsapp.svg +0 -0
  574. /package/{src/assets → assets}/wappIcons/mat-calendar.svg +0 -0
  575. /package/{src/assets → assets}/wappIcons/memberGetMember.svg +0 -0
  576. /package/{src/assets → assets}/wappIcons/messaging.svg +0 -0
  577. /package/{src/assets → assets}/wappIcons/migration.svg +0 -0
  578. /package/{src/assets → assets}/wappIcons/minus.svg +0 -0
  579. /package/{src/assets → assets}/wappIcons/minusSmall.svg +0 -0
  580. /package/{src/assets → assets}/wappIcons/mobileCard.svg +0 -0
  581. /package/{src/assets → assets}/wappIcons/mobileChat.svg +0 -0
  582. /package/{src/assets → assets}/wappIcons/newConstruction.svg +0 -0
  583. /package/{src/assets → assets}/wappIcons/news.svg +0 -0
  584. /package/{src/assets → assets}/wappIcons/notification.svg +0 -0
  585. /package/{src/assets → assets}/wappIcons/pSettings.svg +0 -0
  586. /package/{src/assets → assets}/wappIcons/parameterOff.svg +0 -0
  587. /package/{src/assets → assets}/wappIcons/parameterOffAlt1.svg +0 -0
  588. /package/{src/assets → assets}/wappIcons/parameterOffAlt2.svg +0 -0
  589. /package/{src/assets → assets}/wappIcons/parameterOn.svg +0 -0
  590. /package/{src/assets → assets}/wappIcons/parameterOnAlt1.svg +0 -0
  591. /package/{src/assets → assets}/wappIcons/parameterOnAlt2.svg +0 -0
  592. /package/{src/assets → assets}/wappIcons/peopleNetwork.svg +0 -0
  593. /package/{src/assets → assets}/wappIcons/percentage.svg +0 -0
  594. /package/{src/assets → assets}/wappIcons/phone.svg +0 -0
  595. /package/{src/assets → assets}/wappIcons/picture.svg +0 -0
  596. /package/{src/assets → assets}/wappIcons/plus.svg +0 -0
  597. /package/{src/assets → assets}/wappIcons/plusSmall.svg +0 -0
  598. /package/{src/assets → assets}/wappIcons/present.svg +0 -0
  599. /package/{src/assets → assets}/wappIcons/receiptList.svg +0 -0
  600. /package/{src/assets → assets}/wappIcons/refund.svg +0 -0
  601. /package/{src/assets → assets}/wappIcons/report-csv.svg +0 -0
  602. /package/{src/assets → assets}/wappIcons/report.svg +0 -0
  603. /package/{src/assets → assets}/wappIcons/search.svg +0 -0
  604. /package/{src/assets → assets}/wappIcons/searchContent.svg +0 -0
  605. /package/{src/assets → assets}/wappIcons/selfie.svg +0 -0
  606. /package/{src/assets → assets}/wappIcons/settingsWheel.svg +0 -0
  607. /package/{src/assets → assets}/wappIcons/shop.svg +0 -0
  608. /package/{src/assets → assets}/wappIcons/shopLocation.svg +0 -0
  609. /package/{src/assets → assets}/wappIcons/slideLeft.svg +0 -0
  610. /package/{src/assets → assets}/wappIcons/slideRight.svg +0 -0
  611. /package/{src/assets → assets}/wappIcons/star-fill.svg +0 -0
  612. /package/{src/assets → assets}/wappIcons/star-filled.svg +0 -0
  613. /package/{src/assets → assets}/wappIcons/star.svg +0 -0
  614. /package/{src/assets → assets}/wappIcons/statistics.svg +0 -0
  615. /package/{src/assets → assets}/wappIcons/support.svg +0 -0
  616. /package/{src/assets → assets}/wappIcons/swapVertical.svg +0 -0
  617. /package/{src/assets → assets}/wappIcons/tag.svg +0 -0
  618. /package/{src/assets → assets}/wappIcons/tagLoyalty.svg +0 -0
  619. /package/{src/assets → assets}/wappIcons/team.svg +0 -0
  620. /package/{src/assets → assets}/wappIcons/text.svg +0 -0
  621. /package/{src/assets → assets}/wappIcons/thumbtack-fill.svg +0 -0
  622. /package/{src/assets → assets}/wappIcons/thumbtack.svg +0 -0
  623. /package/{src/assets → assets}/wappIcons/timeline.svg +0 -0
  624. /package/{src/assets → assets}/wappIcons/times.svg +0 -0
  625. /package/{src/assets → assets}/wappIcons/timesSmall.svg +0 -0
  626. /package/{src/assets → assets}/wappIcons/transactions.svg +0 -0
  627. /package/{src/assets → assets}/wappIcons/translation.svg +0 -0
  628. /package/{src/assets → assets}/wappIcons/ui.svg +0 -0
  629. /package/{src/assets → assets}/wappIcons/userLocation.svg +0 -0
  630. /package/{src/assets → assets}/wappIcons/users.svg +0 -0
  631. /package/{src/assets → assets}/wappIcons/usersCheck.svg +0 -0
  632. /package/{src/assets → assets}/wappIcons/usersHeart.svg +0 -0
  633. /package/{src/assets → assets}/wappIcons/usersMeeting.svg +0 -0
  634. /package/{src/assets → assets}/wappIcons/usersWm.svg +0 -0
  635. /package/{src/assets → assets}/wappIcons/v2-advancedconfig-antifraud.svg +0 -0
  636. /package/{src/assets → assets}/wappIcons/v2-advancedconfig-customerpreferences.svg +0 -0
  637. /package/{src/assets → assets}/wappIcons/v2-advancedconfig-customerregister.svg +0 -0
  638. /package/{src/assets → assets}/wappIcons/v2-advancedconfig-users.svg +0 -0
  639. /package/{src/assets → assets}/wappIcons/v2-advancedconfig-waconfig.svg +0 -0
  640. /package/{src/assets → assets}/wappIcons/v2-analytics-panels.svg +0 -0
  641. /package/{src/assets → assets}/wappIcons/v2-analytics-reports.svg +0 -0
  642. /package/{src/assets → assets}/wappIcons/v2-audiences-compositegroups.svg +0 -0
  643. /package/{src/assets → assets}/wappIcons/v2-audiences-compositesegments.svg +0 -0
  644. /package/{src/assets → assets}/wappIcons/v2-audiences-customergroups.svg +0 -0
  645. /package/{src/assets → assets}/wappIcons/v2-audiences-segmentgroups.svg +0 -0
  646. /package/{src/assets → assets}/wappIcons/v2-audiences-segments.svg +0 -0
  647. /package/{src/assets → assets}/wappIcons/v2-calendars-calendars.svg +0 -0
  648. /package/{src/assets → assets}/wappIcons/v2-campaigns-campaigns.svg +0 -0
  649. /package/{src/assets → assets}/wappIcons/v2-campaigns-notificationRules.svg +0 -0
  650. /package/{src/assets → assets}/wappIcons/v2-campaigns-templates.svg +0 -0
  651. /package/{src/assets → assets}/wappIcons/v2-campaigns-waflowrules.svg +0 -0
  652. /package/{src/assets → assets}/wappIcons/v2-campaigns-waflows.svg +0 -0
  653. /package/{src/assets → assets}/wappIcons/v2-partnerlevels-partnerlevels.svg +0 -0
  654. /package/{src/assets → assets}/wappIcons/v2-platformsettings-advancedsettings.svg +0 -0
  655. /package/{src/assets → assets}/wappIcons/v2-platformsettings-apikey.svg +0 -0
  656. /package/{src/assets → assets}/wappIcons/v2-platformsettings-fileproccessing.svg +0 -0
  657. /package/{src/assets → assets}/wappIcons/v2-productmanagement-brands.svg +0 -0
  658. /package/{src/assets → assets}/wappIcons/v2-productmanagement-buyers.svg +0 -0
  659. /package/{src/assets → assets}/wappIcons/v2-productmanagement-campaigns.svg +0 -0
  660. /package/{src/assets → assets}/wappIcons/v2-productmanagement-categories.svg +0 -0
  661. /package/{src/assets → assets}/wappIcons/v2-productmanagement-products.svg +0 -0
  662. /package/{src/assets → assets}/wappIcons/v2-productmanagement-productsegments.svg +0 -0
  663. /package/{src/assets → assets}/wappIcons/v2-productmanagement-sections.svg +0 -0
  664. /package/{src/assets → assets}/wappIcons/v2-productmanagement-segmentgroups.svg +0 -0
  665. /package/{src/assets → assets}/wappIcons/v2-productmanagement-suppliers.svg +0 -0
  666. /package/{src/assets → assets}/wappIcons/v2-productmanagement-tags.svg +0 -0
  667. /package/{src/assets → assets}/wappIcons/v2-productmanagement-types.svg +0 -0
  668. /package/{src/assets → assets}/wappIcons/v2-productmanagement-variantoptions.svg +0 -0
  669. /package/{src/assets → assets}/wappIcons/v2-programconfig-apptemplates.svg +0 -0
  670. /package/{src/assets → assets}/wappIcons/v2-programconfig-codegeneration.svg +0 -0
  671. /package/{src/assets → assets}/wappIcons/v2-programconfig-company.svg +0 -0
  672. /package/{src/assets → assets}/wappIcons/v2-programconfig-groupofstores.svg +0 -0
  673. /package/{src/assets → assets}/wappIcons/v2-programconfig-legaltextcustomers.svg +0 -0
  674. /package/{src/assets → assets}/wappIcons/v2-programconfig-paymentmethods.svg +0 -0
  675. /package/{src/assets → assets}/wappIcons/v2-programconfig-stores.svg +0 -0
  676. /package/{src/assets → assets}/wappIcons/v2-programconfig-storeusers.svg +0 -0
  677. /package/{src/assets → assets}/wappIcons/v2-programconfig-textpersonalization.svg +0 -0
  678. /package/{src/assets → assets}/wappIcons/v2-programconfiguration-appconfig.svg +0 -0
  679. /package/{src/assets → assets}/wappIcons/v2-services-directdiscounts.svg +0 -0
  680. /package/{src/assets → assets}/wappIcons/v2-services-giftcards.svg +0 -0
  681. /package/{src/assets → assets}/wappIcons/v2-services-giftvouchers.svg +0 -0
  682. /package/{src/assets → assets}/wappIcons/v2-services-pointprograms.svg +0 -0
  683. /package/{src/assets → assets}/wappIcons/v2-services-posts.svg +0 -0
  684. /package/{src/assets → assets}/wappIcons/v2-services-promotionalactions.svg +0 -0
  685. /package/{src/assets → assets}/wappIcons/v2-services-promotions.svg +0 -0
  686. /package/{src/assets → assets}/wappIcons/v2-services-raffles.svg +0 -0
  687. /package/{src/assets → assets}/wappIcons/v2-services-refundcards.svg +0 -0
  688. /package/{src/assets → assets}/wappIcons/v2-services-rewards.svg +0 -0
  689. /package/{src/assets → assets}/wappIcons/v2-view-customers.svg +0 -0
  690. /package/{src/assets → assets}/wappIcons/v2-view-physicalcards.svg +0 -0
  691. /package/{src/assets → assets}/wappIcons/v2-view-tickets.svg +0 -0
  692. /package/{src/assets → assets}/wappIcons/view.svg +0 -0
  693. /package/{src/assets → assets}/wappIcons/viewOff.svg +0 -0
  694. /package/{src/assets → assets}/wappIcons/wallet.svg +0 -0
  695. /package/{src/assets → assets}/wappIcons/windowParagraph.svg +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ngx-wapp-components.mjs","sources":["../../../projects/wapp-components/src/lib/wapp-components.service.ts","../../../projects/wapp-components/src/lib/wapp-components.component.ts","../../../projects/wapp-components/src/lib/shared/enums/enum.ts","../../../projects/wapp-components/src/lib/view/w-input-label/w-input-label.component.ts","../../../projects/wapp-components/src/lib/view/w-input-label/w-input-label.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-input-text/w-edit-input-text.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-input-text/w-edit-input-text.component.html","../../../projects/wapp-components/src/lib/button/w-button/w-button.component.ts","../../../projects/wapp-components/src/lib/button/w-button/w-button.component.html","../../../projects/wapp-components/src/lib/w-clipboard/w-clipboard.component.ts","../../../projects/wapp-components/src/lib/w-clipboard/w-clipboard.component.html","../../../projects/wapp-components/src/lib/icons/wapping-icons/w-icons.component.ts","../../../projects/wapp-components/src/lib/icons/wapping-icons/w-icons.component.html","../../../projects/wapp-components/src/lib/logos/logos.ts","../../../projects/wapp-components/src/lib/logos/wapping-logos/w-logos.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-input-textarea/w-edit-input-textarea.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-input-textarea/w-edit-input-textarea.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-select/w-edit-select.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-select/w-edit-select.component.html","../../../projects/wapp-components/src/lib/shared/models/enums.model.ts","../../../projects/wapp-components/src/lib/shared/services/date-conversion.service.ts","../../../projects/wapp-components/src/lib/misc/w-badge/w-badge.component.ts","../../../projects/wapp-components/src/lib/misc/w-badge/w-badge.component.html","../../../projects/wapp-components/src/lib/button/w-button-week/w-button-week.component.ts","../../../projects/wapp-components/src/lib/button/w-button-week/w-button-week.component.html","../../../projects/wapp-components/src/lib/shared/pipes/w-date.pipe.ts","../../../projects/wapp-components/src/lib/shared/pipes/w-percentage.pipe.ts","../../../projects/wapp-components/src/lib/shared/services/session-storage.service.ts","../../../projects/wapp-components/src/lib/shared/pipes/w-currency.pipe.ts","../../../projects/wapp-components/src/lib/tables/w-table/w-table.component.ts","../../../projects/wapp-components/src/lib/tables/w-table/w-table.component.html","../../../projects/wapp-components/src/lib/shared/services/local-storage.service.ts","../../../projects/wapp-components/src/lib/tables/w-table-lazy/w-table-lazy.component.ts","../../../projects/wapp-components/src/lib/tables/w-table-lazy/w-table-lazy.component.html","../../../projects/wapp-components/src/lib/layout/w-container/w-container.component.ts","../../../projects/wapp-components/src/lib/layout/w-navbar/w-navbar.component.ts","../../../projects/wapp-components/src/lib/layout/w-navbar/w-navbar.component.html","../../../projects/wapp-components/src/lib/layout/w-body/w-body.component.ts","../../../projects/wapp-components/src/lib/layout/w-body/w-body.component.html","../../../projects/wapp-components/src/lib/layout/w-footer/w-footer.component.ts","../../../projects/wapp-components/src/lib/layout/w-footer/w-footer.component.html","../../../projects/wapp-components/src/lib/shared/pipes/color-text.pipe.ts","../../../projects/wapp-components/src/lib/edit/w-edit-multiselect/w-edit-multiselect.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-multiselect/w-edit-multiselect.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-treeselect/w-edit-treeselect.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-treeselect/w-edit-treeselect.component.html","../../../projects/wapp-components/src/lib/layout/w-panel-title/w-panel-title.component.ts","../../../projects/wapp-components/src/lib/layout/w-panel-title/w-panel-title.component.html","../../../projects/wapp-components/src/lib/layout/w-panel-subtitle/w-panel-subtitle.component.ts","../../../projects/wapp-components/src/lib/layout/w-panel-subtitle/w-panel-subtitle.component.html","../../../projects/wapp-components/src/lib/layout/w-panel/w-panel.component.ts","../../../projects/wapp-components/src/lib/layout/w-panel/w-panel.component.html","../../../projects/wapp-components/src/lib/layout/w-body-container/w-body-container.component.ts","../../../projects/wapp-components/src/lib/layout/w-body-container/w-body-container.component.html","../../../projects/wapp-components/src/lib/layout/w-header-panel/w-header-panel.component.ts","../../../projects/wapp-components/src/lib/layout/w-header-panel/w-header-panel.component.html","../../../projects/wapp-components/src/lib/shared/services/number-conversion.service.ts","../../../projects/wapp-components/src/lib/edit/w-edit-input-number/w-edit-input-number.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-input-number/w-edit-input-number.component.html","../../../projects/wapp-components/src/lib/search/w-input-search/w-input-search.component.ts","../../../projects/wapp-components/src/lib/search/w-input-search/w-input-search.component.html","../../../projects/wapp-components/src/lib/shared/models/filter-panel/query-results.model.ts","../../../projects/wapp-components/src/lib/shared/service/api/api.service.ts","../../../projects/wapp-components/src/lib/misc/w-filter-panel/w-list-field/w-list-field.component.ts","../../../projects/wapp-components/src/lib/misc/w-filter-panel/w-list-field/w-list-field.component.html","../../../projects/wapp-components/src/lib/view/w-view-card-title-text/w-view-card-title-text.component.ts","../../../projects/wapp-components/src/lib/view/w-view-card-title-text/w-view-card-title-text.component.html","../../../projects/wapp-components/src/lib/button/w-toggle-button/w-toggle-button.component.ts","../../../projects/wapp-components/src/lib/button/w-toggle-button/w-toggle-button.component.html","../../../projects/wapp-components/src/lib/button/w-select-button/w-select-button.component.ts","../../../projects/wapp-components/src/lib/button/w-select-button/w-select-button.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-calendar/w-edit-calendar.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-calendar/w-edit-calendar.component.html","../../../projects/wapp-components/src/lib/shared/components/w-address-field/w-address-field.component.ts","../../../projects/wapp-components/src/lib/shared/components/w-address-field/w-address-field.component.html","../../../projects/wapp-components/src/lib/shared/components/w-tree-field/w-tree-field.component.ts","../../../projects/wapp-components/src/lib/shared/components/w-tree-field/w-tree-field.component.html","../../../projects/wapp-components/src/lib/shared/components/w-notifications-event-field/w-notifications-event-field.component.ts","../../../projects/wapp-components/src/lib/shared/components/w-notifications-event-field/w-notifications-event-field.component.html","../../../projects/wapp-components/src/lib/shared/components/w-period-select-field/w-period-select-field.component.ts","../../../projects/wapp-components/src/lib/shared/components/w-period-select-field/w-period-select-field.component.html","../../../projects/wapp-components/src/lib/misc/w-filter-panel/query-builder/query-operator.directive.ts","../../../projects/wapp-components/src/lib/misc/w-filter-panel/query-builder/query-field.directive.ts","../../../projects/wapp-components/src/lib/misc/w-filter-panel/query-builder/query-entity.directive.ts","../../../projects/wapp-components/src/lib/misc/w-filter-panel/query-builder/query-switch-group.directive.ts","../../../projects/wapp-components/src/lib/misc/w-filter-panel/query-builder/query-button-group.directive.ts","../../../projects/wapp-components/src/lib/misc/w-filter-panel/query-builder/query-input.directive.ts","../../../projects/wapp-components/src/lib/misc/w-filter-panel/query-builder/query-remove-button.directive.ts","../../../projects/wapp-components/src/lib/misc/w-filter-panel/query-builder/query-empty-warning.directive.ts","../../../projects/wapp-components/src/lib/misc/w-filter-panel/query-builder/query-arrow-icon.directive.ts","../../../projects/wapp-components/src/lib/misc/w-filter-panel/query-builder/query-builder.component.ts","../../../projects/wapp-components/src/lib/misc/w-filter-panel/query-builder/query-builder.component.html","../../../projects/wapp-components/src/lib/misc/w-filter-panel/w-filter-panel.component.ts","../../../projects/wapp-components/src/lib/misc/w-filter-panel/w-filter-panel.component.html","../../../projects/wapp-components/src/lib/file/w-preview-image/w-preview-image.component.ts","../../../projects/wapp-components/src/lib/file/w-preview-image/w-preview-image.component.html","../../../projects/wapp-components/src/lib/shared/services/modal.service.ts","../../../projects/wapp-components/src/lib/file/w-image-cropper/w-image-cropper.component.ts","../../../projects/wapp-components/src/lib/file/w-image-cropper/w-image-cropper.component.html","../../../projects/wapp-components/src/lib/shared/services/file-size.service.ts","../../../projects/wapp-components/src/lib/file/w-image-file-uploader/w-image-file-uploader.component.ts","../../../projects/wapp-components/src/lib/file/w-image-file-uploader/w-image-file-uploader.component.html","../../../projects/wapp-components/src/lib/report/w-powerbi-report/w-powerbi-report.component.ts","../../../projects/wapp-components/src/lib/report/w-powerbi-report/w-powerbi-report.component.html","../../../projects/wapp-components/src/lib/sidebar/w-sidebar/w-sidebar.component.ts","../../../projects/wapp-components/src/lib/sidebar/w-sidebar/w-sidebar.component.html","../../../projects/wapp-components/src/lib/button/w-buttons-footer/w-buttons-footer.component.ts","../../../projects/wapp-components/src/lib/button/w-buttons-footer/w-buttons-footer.component.html","../../../projects/wapp-components/src/lib/tables/w-tree-table/w-tree-table.component.ts","../../../projects/wapp-components/src/lib/tables/w-tree-table/w-tree-table.component.html","../../../projects/wapp-components/src/lib/layout/w-body-grid/w-body-grid.component.ts","../../../projects/wapp-components/src/lib/layout/w-body-grid/w-body-grid.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-toggle/w-edit-toggle.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-toggle/w-edit-toggle.component.html","../../../projects/wapp-components/src/lib/layout/w-panel-grid/w-panel-grid.component.ts","../../../projects/wapp-components/src/lib/layout/w-panel-grid/w-panel-grid.component.html","../../../projects/wapp-components/src/lib/card/w-card/w-card.component.ts","../../../projects/wapp-components/src/lib/card/w-card/w-card.component.html","../../../projects/wapp-components/src/lib/search/w-autocomplete-search/w-autocomplete-search.component.ts","../../../projects/wapp-components/src/lib/search/w-autocomplete-search/w-autocomplete-search.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-checkbox/w-edit-checkbox.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-checkbox/w-edit-checkbox.component.html","../../../projects/wapp-components/src/lib/maps/w-maps/w-maps.component.ts","../../../projects/wapp-components/src/lib/maps/w-maps/w-maps.component.html","../../../projects/wapp-components/src/lib/button/w-radio-button/w-radio-button.component.ts","../../../projects/wapp-components/src/lib/button/w-radio-button/w-radio-button.component.html","../../../projects/wapp-components/src/lib/misc/w-wizard/w-wizard.component.ts","../../../projects/wapp-components/src/lib/misc/w-wizard/w-wizard.component.html","../../../projects/wapp-components/src/lib/tabview/w-tabview/w-tabview.component.ts","../../../projects/wapp-components/src/lib/tabview/w-tabview/w-tabview.component.html","../../../projects/wapp-components/src/lib/tabview/w-button-tabview/w-button-tabview.component.ts","../../../projects/wapp-components/src/lib/tabview/w-button-tabview/w-button-tabview.component.html","../../../projects/wapp-components/src/lib/tree/w-tree/w-tree.component.ts","../../../projects/wapp-components/src/lib/tree/w-tree/w-tree.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-input-generic/w-skeleton-input-generic.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-input-generic/w-skeleton-input-generic.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-generic/w-skeleton-generic.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-generic/w-skeleton-generic.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-timeline/w-skeleton-timeline.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-timeline/w-skeleton-timeline.component.html","../../../projects/wapp-components/src/lib/misc/w-timeline/w-timeline.component.ts","../../../projects/wapp-components/src/lib/misc/w-timeline/w-timeline.component.html","../../../projects/wapp-components/src/lib/view/w-view-text/w-view-text.component.ts","../../../projects/wapp-components/src/lib/view/w-view-text/w-view-text.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-sidebar/w-skeleton-sidebar.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-sidebar/w-skeleton-sidebar.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-list/w-skeleton-list.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-list/w-skeleton-list.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-iframe/w-skeleton-iframe.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-iframe/w-skeleton-iframe.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-edit/w-skeleton-edit.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-edit/w-skeleton-edit.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-edit-product/w-skeleton-edit-product.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-edit-product/w-skeleton-edit-product.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-powerbi-report/w-skeleton-powerbi-report.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-powerbi-report/w-skeleton-powerbi-report.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-query-builder/w-skeleton-query-builder.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-query-builder/w-skeleton-query-builder.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-tree/w-skeleton-tree.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-tree/w-skeleton-tree.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-profile-sidebar/w-skeleton-profile-sidebar.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-profile-sidebar/w-skeleton-profile-sidebar.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-user-profile-info-sidebar/w-skeleton-user-profile-info-sidebar.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-user-profile-info-sidebar/w-skeleton-user-profile-info-sidebar.component.html","../../../projects/wapp-components/src/lib/shared/pipes/w-summary.pipe.ts","../../../projects/wapp-components/src/lib/misc/w-chip/w-chip.component.ts","../../../projects/wapp-components/src/lib/misc/w-chip/w-chip.component.html","../../../projects/wapp-components/src/lib/view/w-view-boolean/w-view-boolean.component.ts","../../../projects/wapp-components/src/lib/view/w-view-boolean/w-view-boolean.component.html","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-form/w-skeleton-form.component.ts","../../../projects/wapp-components/src/lib/shared/skeletons/w-skeleton-form/w-skeleton-form.component.html","../../../projects/wapp-components/src/lib/layout/gap-divider/w-panel-section-gap-divider/w-panel-section-gap-divider.component.ts","../../../projects/wapp-components/src/lib/layout/gap-divider/w-panel-section-gap-divider/w-panel-section-gap-divider.component.html","../../../projects/wapp-components/src/lib/layout/gap-divider/w-input-vertical-gap-divider/w-input-vertical-gap-divider.component.ts","../../../projects/wapp-components/src/lib/layout/gap-divider/w-input-vertical-gap-divider/w-input-vertical-gap-divider.component.html","../../../projects/wapp-components/src/lib/view/w-view-badge/w-view-badge.component.ts","../../../projects/wapp-components/src/lib/view/w-view-badge/w-view-badge.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-calendar-month/w-edit-calendar-month.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-calendar-month/w-edit-calendar-month.component.html","../../../projects/wapp-components/src/lib/misc/w-parameter-selector/w-parameter-selector.component.ts","../../../projects/wapp-components/src/lib/misc/w-parameter-selector/w-parameter-selector.component.html","../../../projects/wapp-components/src/lib/chart/w-chart-bar/w-chart-bar.component.ts","../../../projects/wapp-components/src/lib/chart/w-chart-bar/w-chart-bar.component.html","../../../projects/wapp-components/src/lib/file/w-file-uploader/w-file-uploader.component.ts","../../../projects/wapp-components/src/lib/file/w-file-uploader/w-file-uploader.component.html","../../../projects/wapp-components/src/lib/shared/enums/cron-expressions/enum.model.ts","../../../projects/wapp-components/src/lib/shared/services/form-control.service.ts","../../../projects/wapp-components/src/lib/misc/w-cron-expressions/w-cron-expressions.component.ts","../../../projects/wapp-components/src/lib/misc/w-cron-expressions/w-cron-expressions.component.html","../../../projects/wapp-components/src/lib/edit/w-edit-input-colorpicker/w-edit-input-colorpicker.component.ts","../../../projects/wapp-components/src/lib/edit/w-edit-input-colorpicker/w-edit-input-colorpicker.component.html","../../../projects/wapp-components/src/lib/file/w-file-generator/w-file-generator.component.ts","../../../projects/wapp-components/src/lib/file/w-file-generator/w-file-generator.component.html","../../../projects/wapp-components/src/lib/dataview/w-dataview/w-dataview.component.ts","../../../projects/wapp-components/src/lib/dataview/w-dataview/w-dataview.component.html","../../../projects/wapp-components/src/lib/misc/w-code-block/monaco-editor-v2/config.ts","../../../projects/wapp-components/src/lib/misc/w-code-block/monaco-editor-v2/base-editor.ts","../../../projects/wapp-components/src/lib/misc/w-code-block/monaco-editor-v2/diff-editor.component.ts","../../../projects/wapp-components/src/lib/misc/w-code-block/monaco-editor-v2/editor.component.ts","../../../projects/wapp-components/src/lib/misc/w-code-block/monaco-editor-v2/editor.module.ts","../../../projects/wapp-components/src/lib/material/shared/models/enums.model.ts","../../../projects/wapp-components/src/lib/material/shared/components/wapp-modal-close-button/wapp-modal-close-button.component.ts","../../../projects/wapp-components/src/lib/material/shared/components/wapp-modal-close-button/wapp-modal-close-button.component.html","../../../projects/wapp-components/src/lib/material/shared/components/wapp-modal-title/wapp-modal-title.component.ts","../../../projects/wapp-components/src/lib/material/shared/components/wapp-modal-title/wapp-modal-title.component.html","../../../projects/wapp-components/src/lib/material/shared/components/wapp-service-description/wapp-service-description.component.ts","../../../projects/wapp-components/src/lib/material/shared/components/wapp-service-description/wapp-service-description.component.html","../../../projects/wapp-components/src/lib/material/shared/services/material-modal.service.ts","../../../projects/wapp-components/src/lib/material/wapp-material-service-view/main-title/main-title.component.ts","../../../projects/wapp-components/src/lib/material/wapp-material-service-view/main-title/main-title.component.html","../../../projects/wapp-components/src/lib/material/wapp-material-service-view/carousel/carousel.component.ts","../../../projects/wapp-components/src/lib/material/wapp-material-service-view/carousel/carousel.component.html","../../../projects/wapp-components/src/lib/material/wapp-material-service-view/wapp-material-service-view.component.ts","../../../projects/wapp-components/src/lib/material/wapp-material-service-view/wapp-material-service-view.component.html","../../../projects/wapp-components/src/lib/material/w-material-service-card/w-material-service-card.component.ts","../../../projects/wapp-components/src/lib/material/w-material-service-card/w-material-service-card.component.html","../../../projects/wapp-components/src/lib/material/wapp-material-service-card/wapp-material-service-card.component.ts","../../../projects/wapp-components/src/lib/material/wapp-material-service-card/wapp-material-service-card.component.html","../../../projects/wapp-components/src/lib/material/w-material-service-view/w-material-service-view.component.ts","../../../projects/wapp-components/src/lib/material/w-material-service-view/w-material-service-view.component.html","../../../projects/wapp-components/src/lib/misc/w-code-block/w-code-block.component.ts","../../../projects/wapp-components/src/lib/misc/w-code-block/w-code-block.component.html","../../../projects/wapp-components/src/lib/wapp-components.module.ts","../../../projects/wapp-components/src/lib/shared/services/tree.service.ts","../../../projects/wapp-components/src/lib/shared/services/file.service.ts","../../../projects/wapp-components/src/lib/shared/services/clipboard.service.ts","../../../projects/wapp-components/src/public-api.ts","../../../projects/wapp-components/src/ngx-wapp-components.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WappComponentsService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-wapp-components',\r\n template: `\r\n <p>\r\n wapp-components works!\r\n </p>\r\n `,\r\n styles: [],\r\n standalone: false\r\n})\r\nexport class WappComponentsComponent {\r\n\r\n}\r\n","export enum SizeType {\r\n small = 0,\r\n medium = 1,\r\n large = 2\r\n}\r\n\r\nexport enum ButtonType{\r\n primary = 0,\r\n secondary = 1,\r\n tertiary = 2,\r\n text = 3,\r\n table = 4\r\n}\r\n\r\nexport enum IconType{\r\n pIcon = 0, \r\n urlIcon = 1, \r\n wIcon = 2\r\n}\r\n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-input-label',\r\n templateUrl: './w-input-label.component.html',\r\n styleUrls: ['./w-input-label.component.scss'],\r\n standalone: false\r\n})\r\nexport class WInputLabelComponent {\r\n @Input() label!: string; \r\n @Input() disabled: boolean = false;\r\n @Input() required: boolean = false;\r\n @Input() validated: boolean = false; \r\n @Input() tooltip!: string; \r\n @Input() tooltipPosition?: string;\r\n @Input() size: string = \"small\"; \r\n @Input() labelStyleClass!: string;\r\n @Input() message!: string;\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n\r\n getLabelClasses() {\r\n return {\r\n 'w-input-label-small-label': this.getSizeName(this.sizeType.small) === this.size && !this.disabled,\r\n 'w-input-label-small-label-disabled': this.getSizeName(this.sizeType.small) === this.size && this.disabled,\r\n 'w-input-label-medium-label': this.getSizeName(this.sizeType.medium) === this.size && !this.disabled,\r\n 'w-input-label-medium-label-disabled': this.getSizeName(this.sizeType.medium) === this.size && this.disabled,\r\n [this.labelStyleClass]: this.hasLabelStyleClass\r\n };\r\n }\r\n\r\n hasLabelStyleClass(){\r\n return this.labelStyleClass != undefined && this.labelStyleClass != \"\"; \r\n }\r\n}\r\n","@if (label != undefined && label.length > 0) {\r\n <div class=\"w-input-label flex\">\r\n <div class=\"flex flex-column\">\r\n <div [ngClass]=\"getLabelClasses()\">\r\n {{label}}\r\n @if (required && !disabled ) {\r\n <span class=\"required-symbol\" [ngClass]=\"{'not-validated': validated == false}\">*</span>\r\n }\r\n </div>\r\n @if (message) {\r\n <div class=\"w-input-label-message\">\r\n {{message}}\r\n </div>\r\n }\r\n </div>\r\n @if (tooltip) {\r\n <div [pTooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition || 'right'\" class=\"w-input-label-icon-help-container\">\r\n <svg class=\"w-input-label-icon-help\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path id=\"Vector\" d=\"M6 0C2.7 0 0 2.7 0 6C0 9.3 2.7 12 6 12C9.3 12 12 9.3 12 6C12 2.7 9.3 0 6 0ZM6 9.75C5.586 9.75 5.25 9.414 5.25 9C5.25 8.586 5.586 8.25 6 8.25C6.414 8.25 6.75 8.586 6.75 9C6.75 9.414 6.414 9.75 6 9.75ZM7.21725 6.069C6.8445 6.38925 6.75 6.49725 6.75 6.75C6.75 7.16475 6.414 7.5 6 7.5C5.586 7.5 5.25 7.16475 5.25 6.75C5.25 5.7795 5.84625 5.268 6.2415 4.92975C6.61425 4.611 6.70875 4.50225 6.70875 4.25025C6.70875 4.113 6.70875 3.75 6.00075 3.75C5.67375 3.768 5.325 3.918 5.05725 4.17075C4.7565 4.45425 4.281 4.44 3.99675 4.14C3.7125 3.8385 3.726 3.36375 4.0275 3.0795C4.554 2.58375 5.24025 2.289 5.96175 2.2515H5.964C7.323 2.2515 8.20875 3.05475 8.20875 4.251C8.20875 5.22075 7.6125 5.73225 7.218 6.06975L7.21725 6.069Z\" fill=\"#9AA0A6\"/>\r\n </svg>\r\n </div>\r\n }\r\n </div>\r\n}\r\n@if (label != undefined && label == '') {\r\n <div class=\"w-input-no-label-height\"></div>\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Optional, Output, Self, forwardRef } from '@angular/core';\r\nimport { NgControl, FormControlName, NG_VALUE_ACCESSOR, FormControl, ControlValueAccessor } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-edit-input-text',\r\n templateUrl: './w-edit-input-text.component.html',\r\n styleUrls: ['./w-edit-input-text.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditInputTextComponent),\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class WEditInputTextComponent implements ControlValueAccessor {\r\n value: string = \"\";\r\n\r\n @Input('label') label!: string;\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('placeholder') placeholder: string = \"\";\r\n @Input('successMessage') successMessage: string = \"\";\r\n\r\n\r\n @Input('required') required: boolean = false;\r\n @Input('requiredErrorDescription') requiredErrorDescription: string = \"Data is required\";\r\n\r\n @Input('disabled') disabled: boolean = false;\r\n\r\n @Input('minlength') minlength!: number;\r\n @Input('minlengthErrorDescription') minlengthErrorDescription: string = \"Min length error\";\r\n\r\n @Input('maxlength') maxlength!: number;\r\n @Input('maxlengthErrorDescription') maxlengthErrorDescription: string = \"Max length error\";\r\n\r\n @Input('email') email: boolean = false;\r\n @Input('emailErrorDescription') emailErrorDescription: string = \"Invalid email\";\r\n\r\n @Input('pattern') pattern: boolean = false;\r\n @Input('patternErrorDescription') patternErrorDescription: string = \"Invalid pattern\";\r\n\r\n @Input('autofocus') autofocus: boolean = false;\r\n @Input('inputIcon') inputIcon: string = '';\r\n @Input('size') size: string = 'small';\r\n\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('removePaddingTop') removePaddingTop: boolean = false;\r\n\r\n @Input('tooltip') tooltip!: string;\r\n @Input() tooltipPosition?: string;\r\n\r\n isTouched: boolean = false;\r\n onChange = (_: any) => { }\r\n onTouch = () => { }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onValueChanged() {\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n onInputBlur(event: Event) {\r\n const newValue = (event.target as HTMLInputElement).value;\r\n this.value = newValue;\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n\r\n isRequiredValid(): boolean {\r\n return !(this.required && this.formControl?.hasError('required'));\r\n }\r\n\r\n isRequiredValidNgModel(): boolean {\r\n return !(this.required && (this.value == null || this.value.toString().trim() === ''));\r\n }\r\n}\r\n","@if (formControl) {\r\n <div class=\"w-edit-input-text-select-field p-fluid field\">\r\n @if (showLabel) {\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition\" [validated]=\"isRequiredValid()\"></w-input-label>\r\n }\r\n <span [ngClass]=\"{'p-input-icon-right' : inputIcon != ''}\">\r\n @if (inputIcon != '') {\r\n <i class=\"w-edit-input-text-small-icon pi {{inputIcon}}\"></i>\r\n }\r\n <input pInputText\r\n [ngClass]=\"{'w-edit-input-text-small-error': formControl.hasError('required') && formControl.dirty && requiredErrorDescription != '',\r\n 'w-edit-input-text-small-valid': formControl.valid && formControl.touched && successMessage != '',\r\n 'w-edit-input-text-small-warning': formControl.invalid && (formControl.hasError('minlength') || formControl.hasError('maxlength') || formControl.hasError('pattern'))}\"\r\n minlength=\"{{minlength}}\" maxlength=\"{{maxlength}}\" [email]=\"email\"\r\n class=\"w-edit-input-text-small\" id=\"w-textarea\"\r\n [placeholder]=\"placeholder\" [required]=\"required\" [formControl]=\"formControl\">\r\n </span>\r\n @if (formControl.invalid && formControl.hasError('maxlength') && formControl.touched ) {\r\n <span\r\n class=\"w-alert-message w-input-warning-alert-text p-error block\">{{maxlengthErrorDescription}}</span>\r\n }\r\n @if (formControl.invalid && formControl.hasError('minlength') && formControl.touched ) {\r\n <span\r\n class=\"w-alert-message w-input-warning-alert-text p-error block\">{{minlengthErrorDescription}}</span>\r\n }\r\n @if (formControl.invalid && formControl.hasError('pattern') && formControl.touched ) {\r\n <span\r\n class=\"w-alert-message w-input-warning-alert-text p-error block\">{{patternErrorDescription}}</span>\r\n }\r\n @if (formControl.invalid && formControl.hasError('email') && formControl.dirty) {\r\n <span\r\n class=\"w-alert-message w-input-error-alert-text p-error block\">{{emailErrorDescription}}</span>\r\n }\r\n @if (formControl.hasError('required') && formControl.dirty) {\r\n <span\r\n class=\"w-alert-message w-input-error-alert-text p-error block\">{{requiredErrorDescription}}</span>\r\n }\r\n </div>\r\n} @else {\r\n <div class=\"w-edit-input-text-select-field p-fluid field\">\r\n @if (showLabel) {\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition\" [validated]=\"isRequiredValidNgModel()\"></w-input-label>\r\n }\r\n <span [ngClass]=\"{'p-input-icon-right' : inputIcon != ''}\">\r\n @if (inputIcon != '') {\r\n <i class=\"w-edit-input-text-small-icon pi {{inputIcon}}\"></i>\r\n }\r\n <input pInputText minlength=\"{{minlength}}\" maxlength=\"{{maxlength}}\" pattern=\"{{pattern}}\" [required]=\"required\"\r\n class=\"w-edit-input-text-small\" id=\"w-textarea\"\r\n [placeholder]=\"placeholder\" [required]=\"required\" [(ngModel)]=\"value\" (input)=\"onValueChanged()\"\r\n [disabled]=\"disabled\" [autofocus]=\"autofocus\">\r\n </span>\r\n </div>\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ButtonType, SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-button',\r\n templateUrl: './w-button.component.html',\r\n styleUrls: ['./w-button.component.scss'],\r\n standalone: false\r\n})\r\nexport class WButtonComponent implements OnInit{\r\n @Input('type') type: string = \"primary\";\r\n @Input('label') label!: string;\r\n @Input('size') size: string = \"small\";\r\n @Input('icon') icon: string = \"\";\r\n @Input('iconPos') iconPos: string = \"left\";\r\n @Input('tooltipPosition') tooltipPosition: string = \"bottom\";\r\n @Input('tooltip') tooltip: string = \"\";\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('loading') loading: boolean = false;\r\n @Output('onClick') onClick: EventEmitter<MouseEvent> = new EventEmitter();\r\n @Input('buttonClass') buttonClass: string = \"\";\r\n \r\n sizeType: typeof SizeType = SizeType;\r\n buttonType: typeof ButtonType = ButtonType;\r\n tooltipDelay: number = 250;\r\n\r\n ngOnInit(): void {}\r\n\r\n onButtonClick(event: MouseEvent){\r\n this.onClick.emit(event);\r\n }\r\n \r\n getIcon(): string{\r\n return this.loading ? '' : (this.icon ? \"pi \" + this.icon : \"\");\r\n }\r\n \r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n getButtonTypeName(value: number): string{\r\n return ButtonType[value];\r\n }\r\n}\r\n","@if (type == getButtonTypeName(buttonType.primary)) {\r\n @if (size == getSizeName(sizeType.small)) {\r\n <p-button #test\r\n label=\"{{label}}\"\r\n [icon]=\"getIcon()\"\r\n [iconPos]=\"iconPos == 'right' ? 'right' : 'left'\"\r\n styleClass=\"w-button-small border-none {{buttonClass}}\"\r\n [disabled]=\"disabled\"\r\n (onClick)=\"onButtonClick($event)\"\r\n [loading]=\"loading\"\r\n [pTooltip]=\"tooltip\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n >\r\n </p-button>\r\n }\r\n} @else {\r\n @if (type == getButtonTypeName(buttonType.secondary) || type == getButtonTypeName(buttonType.tertiary)) {\r\n @if (size == getSizeName(sizeType.small)) {\r\n <p-button\r\n label=\"{{label}}\"\r\n [icon]=\"getIcon()\"\r\n [iconPos]=\"iconPos == 'right' ? 'right' : 'left'\"\r\n [styleClass]=\"'p-button-outlined ' + (type == getButtonTypeName(buttonType.tertiary) ? 'w-button-small-tertiary' : 'w-button-small p-button-outlined')\"\r\n [outlined]=\"true\"\r\n [disabled]=\"disabled\"\r\n (onClick)=\"onButtonClick($event)\"\r\n [loading]=\"loading\"\r\n [pTooltip]=\"tooltip\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n [showDelay]=\"tooltipDelay\"\r\n >\r\n </p-button>\r\n }\r\n } @else {\r\n @if (type == getButtonTypeName(buttonType.text)) {\r\n <p-button\r\n label=\"{{label}}\"\r\n [icon]=\"getIcon()\"\r\n [iconPos]=\"iconPos == 'right' ? 'right' : 'left'\"\r\n styleClass=\"p-button-text w-button-text-small {{buttonClass}}\"\r\n [text]=\"true\"\r\n [disabled]=\"disabled\"\r\n (onClick)=\"onButtonClick($event)\"\r\n [loading]=\"loading\"\r\n [pTooltip]=\"tooltip\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n [showDelay]=\"tooltipDelay\">\r\n </p-button>\r\n } @else {\r\n <p-button\r\n [icon]=\"getIcon()\"\r\n styleClass=\"w-table-button {{buttonClass}}\"\r\n [disabled]=\"disabled\"\r\n (onClick)=\"onButtonClick($event)\"\r\n [pTooltip]=\"tooltip\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n [showDelay]=\"tooltipDelay\"\r\n class=\"p-button-text\">\r\n </p-button>\r\n }\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { Clipboard } from '@angular/cdk/clipboard';\r\n\r\n@Component({\r\n selector: 'w-clipboard',\r\n templateUrl: './w-clipboard.component.html',\r\n styleUrls: ['./w-clipboard.component.css'],\r\n standalone: false\r\n})\r\nexport class WClipboardComponent {\r\n\r\n @Input('codeText') codeText!: string; \r\n @Input('language') language!: string; \r\n icon: string = 'pi pi-copy';\r\n\r\n constructor(private clipboard: Clipboard) {}\r\n\r\n copyToClipboard(){\r\n const successful = this.clipboard.copy(this.codeText);\r\n if(successful){\r\n this.icon = 'pi-check'\r\n setTimeout(() => {\r\n this.icon = 'pi-copy';\r\n }, 1500)\r\n }else{\r\n this.icon = 'pi-times'\r\n setTimeout(() => {\r\n this.icon = 'pi-copy';\r\n }, 1500)\r\n }\r\n }\r\n\r\n}\r\n","<div class=\"card relative\">\r\n <div class=\"absolute top-0 right-0 pr-3 pt-3\">\r\n <w-button [icon]=\"icon\" type=\"secondary\"\r\n (onClick)=\"copyToClipboard()\">\r\n </w-button>\r\n </div>\r\n <pre id=\"text\" class=\"-mb-2 ml-3\">\r\n <code [highlight]=\"codeText\" [language]=\"language\"></code>\r\n </pre>\r\n</div>","import {Component, Input } from '@angular/core';\r\n@Component({\r\n selector: 'w-icons',\r\n templateUrl: './w-icons.component.html',\r\n styleUrls: ['./w-icons.component.scss'],\r\n standalone: false\r\n})\r\nexport class WIconsComponent {\r\n @Input('name') name!: string;\r\n @Input('width') width!: number;\r\n @Input('height') height!: number;\r\n @Input('color') color!: string;\r\n}\r\n","<span className=\"w-icon {{name}}\" [ngStyle]=\"{'font-size': height + 'px', 'height': height + 'px', 'width': width + 'px', 'background-color': color, 'color': color}\"></span>","export const wappingLogos: any = {\r\n wappingComplete: '<svg id=\"wappingComplete\" width=\"197\" height=\"64\" viewBox=\"0 0 197 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8839)\"><path id=\"path\" d=\"M40.9986 43.7251C40.9482 44.072 40.8726 44.4189 40.743 44.7479C40.4658 45.4416 39.9113 45.9173 39.202 46.1533C39.004 46.2176 38.7915 46.2713 38.6187 46.3929C38.5215 46.4608 38.5071 46.6539 38.3955 46.679C38.2155 46.7183 38.2443 46.5574 38.2083 46.4501C38.1435 46.257 37.8806 46.1211 37.7186 46.0281C37.0669 45.649 36.5989 45.0733 36.4692 44.3259C36.4152 44.0183 36.2532 42.6201 36.7285 42.6344C37.0885 42.6451 37.4558 42.7166 37.8158 42.7595C38.8023 42.874 39.7889 42.9884 40.7754 43.1064C41.1462 43.1493 41.0454 43.4462 41.0022 43.7323L40.9986 43.7251ZM36.2532 53.7632C33.3692 52.7047 31.9074 50.8737 32.7283 48.9641C33.3836 47.4371 33.9129 45.9065 33.9129 44.1793C33.9129 38.4539 29.2395 33.8121 23.4751 33.8121C17.7108 33.8121 13.0373 38.4539 13.0373 44.1793C13.0373 49.4361 16.7746 53.5415 21.7613 54.4069C22.1285 54.4713 23.9144 54.6215 24.332 54.6215H35.9436C36.48 54.7002 36.6925 54.01 36.2604 53.7597L36.2532 53.7632ZM43.7206 33.569C43.2993 35.2783 41.6647 35.8612 40.1093 36.2689C38.2191 36.766 36.2424 36.7445 34.5286 35.8469C33.4304 35.2712 31.641 34.0052 31.1729 31.1229C30.7985 28.8127 31.7346 27.2857 32.5915 26.0949C33.0308 25.4834 33.8553 24.8897 34.6186 24.4821C35.7455 23.8777 36.0264 23.9063 36.2532 25.1365C36.4368 26.1307 37.2073 26.921 38.1218 27.2929C39.5188 27.8615 40.8258 28.5946 41.8915 29.6889C42.9465 30.7724 44.1202 31.9633 43.7206 33.5725V33.569ZM39.7925 31.6164C39.7925 30.9119 39.2164 30.3362 38.5035 30.3362C37.7906 30.3362 37.2145 30.9083 37.2145 31.6164C37.2145 32.3245 37.7906 32.8966 38.5035 32.8966C39.2164 32.8966 39.7925 32.3245 39.7925 31.6164ZM16.1085 32.657C18.9997 30.472 21.8693 28.237 24.5985 25.8553C29.7868 21.3351 31.0829 13.6536 27.8209 7.63146C24.6489 1.77022 17.4875 -1.25517 10.9239 0.49355C4.13337 2.30306 -0.201604 8.18218 0.00722364 15.5704C0.489687 15.6133 1.07296 15.4274 1.53743 15.2521C4.65184 14.0684 7.68704 14.3402 10.283 16.7005C12.7097 18.9033 13.3758 21.9931 12.3136 25.3654C11.4531 28.1655 10.4234 30.9119 9.48367 33.6905C8.33872 37.0771 8.05068 40.4244 10.2902 44.5333C9.75011 38.7221 12.4253 35.4464 16.1121 32.6606L16.1085 32.657ZM40.509 40.9286C40.0805 40.6532 39.8249 40.4244 39.0328 40.3385C38.2731 40.2563 37.6934 40.4458 37.3225 40.6711C36.8401 40.9643 36.6313 41.1396 36.48 41.4543C36.3468 41.7296 36.4476 42.1087 36.7933 42.148C37.607 42.2446 38.4243 42.3376 39.238 42.4341C39.6881 42.4878 40.1417 42.5378 40.5918 42.5915C40.7106 42.6058 40.8294 42.6272 40.9482 42.6308C41.2975 42.6415 41.4199 42.0658 41.2831 41.8369C41.0562 41.4471 40.9014 41.1825 40.5054 40.9286H40.509Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M104.353 34.3879C103.982 34.3771 103.478 34.37 102.837 34.37H102.358C101.94 34.37 101.595 34.3843 101.325 34.4058C101.054 34.4308 100.82 34.5166 100.622 34.6632C100.129 34.5416 99.6863 34.4665 99.2903 34.4415C98.8978 34.4165 98.3541 34.4058 97.6664 34.4058C96.6547 34.4058 95.6934 34.5166 94.7825 34.7348C93.7491 35.003 92.7734 35.4392 91.8625 36.0365C90.9516 36.6372 90.145 37.356 89.443 38.2036C88.7409 39.0475 88.154 39.9952 87.6895 41.0466C87.2215 42.098 86.901 43.1994 86.7282 44.3509C86.433 46.4787 86.5842 48.3275 87.1891 49.8939C87.7939 51.4602 88.8345 52.5974 90.3107 53.3091C90.6059 53.4306 90.9408 53.5487 91.308 53.6595C91.6789 53.7704 92.1073 53.849 92.6006 53.8991H92.6366C92.759 53.9241 92.8994 53.9349 93.0614 53.9349H93.5979C94.9517 53.9349 96.1866 53.7275 97.292 53.3091C97.5872 53.234 97.9185 53.1016 98.2893 52.905C98.6818 53.47 99.4091 53.7847 100.468 53.8598C100.885 53.8848 101.292 53.8848 101.688 53.8598C102.081 53.8347 102.444 53.799 102.779 53.7489C103.11 53.6988 103.395 53.6452 103.629 53.5844C103.863 53.5236 104.018 53.4807 104.09 53.4557H104.054C104.399 53.3341 104.633 53.1946 104.756 53.0337C104.878 52.8763 104.965 52.6618 105.015 52.3936L105.238 50.888C105.289 50.5698 105.22 50.3015 105.033 50.0798C104.849 49.8581 104.583 49.7508 104.237 49.7508H103.463L105.31 36.6837C105.386 36.0722 105.422 35.6073 105.422 35.2891C105.422 34.9708 105.335 34.7455 105.163 34.6096C104.99 34.4773 104.72 34.4022 104.349 34.3915L104.353 34.3879ZM98.2173 48.281C98.0913 48.3311 97.9581 48.3848 97.8105 48.4455C97.6628 48.5063 97.4036 48.5993 97.0328 48.7209C96.3415 48.9176 95.7582 49.0392 95.2793 49.0892C94.8005 49.1393 94.4368 49.1393 94.1884 49.0892C93.6951 49.0177 93.3063 48.8568 93.0254 48.6136C92.741 48.3704 92.5394 48.0701 92.4169 47.716C92.2945 47.362 92.2261 46.965 92.2117 46.5216C92.1973 46.0817 92.2189 45.6276 92.2693 45.1627C92.3413 44.4296 92.471 43.7072 92.6582 42.9956C92.8418 42.2839 93.119 41.6509 93.4899 41.0859C93.8607 40.5245 94.3216 40.0703 94.8761 39.727C95.4305 39.3837 96.1146 39.212 96.9283 39.212C97.4216 39.212 97.8825 39.2299 98.3145 39.2657C98.7466 39.3014 99.1318 39.3444 99.4775 39.3944L98.2209 48.2775L98.2173 48.281Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M94.6276 15.3201C92.1325 14.3116 90.9264 15.9852 90.7319 16.3893L74.6414 48.0128L71.3218 32.2923C71.1633 31.5699 70.9725 31.037 70.7529 30.6937C70.5333 30.3504 69.1363 28.5159 66.688 29.2705C63.9804 30.1073 64.2756 32.1349 64.2144 32.6678C64.182 32.9181 64.2072 33.1934 64.2864 33.4903C64.3657 33.7907 64.4377 34.1089 64.4989 34.4558C64.4989 34.4558 68.3046 49.64 68.751 51.2635C69.0175 52.0574 69.1183 52.4043 69.2623 52.7154C69.4027 53.0301 69.5539 53.3126 69.7124 53.5629C70.1552 54.3783 70.9437 54.929 72.0815 55.2115C72.3335 55.2723 72.6107 55.3224 72.9096 55.351C73.2084 55.3832 73.4857 55.3975 73.7377 55.3975C74.4974 55.3975 75.2211 55.233 75.9196 54.904C76.6145 54.575 77.2626 54.128 77.8602 53.5629C78.2383 53.1875 78.5623 52.8084 78.8324 52.4329C79.0988 52.0574 79.3616 51.6497 79.6137 51.2099L96.2371 19.1966C96.3127 19.0464 97.5656 16.5038 94.624 15.3165L94.6276 15.3201Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M64.1207 44.4832C63.8039 45.1734 63.487 45.8493 63.1738 46.5073C62.857 47.1653 62.5581 47.7303 62.2737 48.2024L59.0512 32.3888C58.8928 31.8882 58.5472 31.3911 58.0107 30.9047C57.4742 30.4184 56.7289 30.1752 55.782 30.1752C54.9611 30.1752 53.7441 30.2825 52.8224 31.4304C51.447 33.1398 52.6568 36.5729 52.6568 36.5729C53.3841 39.6161 53.9674 42.0336 54.4102 43.8216C54.8531 45.6097 55.1987 47.0151 55.4508 48.0343C55.7028 49.0535 55.8936 49.783 56.0196 50.2229C56.1457 50.6627 56.2717 51.0525 56.3977 51.3994H56.3509C56.4445 51.7463 56.5705 52.1146 56.7289 52.5044C56.8874 52.8978 57.0602 53.2482 57.251 53.5629C57.8199 54.3783 58.6264 54.929 59.6669 55.2115C59.919 55.2723 60.189 55.3224 60.4734 55.351C60.7579 55.3832 61.0243 55.3975 61.2799 55.3975C62.0684 55.3975 62.8281 55.2401 63.5554 54.9254C64.2827 54.6107 64.9128 54.1423 65.4493 53.5129C65.6077 53.3555 65.7805 53.1588 65.9714 52.9264C66.1622 52.6904 66.335 52.4329 66.4934 52.1504L67.1019 51.1276L64.902 42.7702C64.6464 43.3317 64.3872 43.8967 64.1207 44.4796V44.4832Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M125.696 38.3323C125.091 36.791 124.051 35.6538 122.575 34.9171C122.254 34.7705 121.804 34.631 121.224 34.4952C120.645 34.3628 120.036 34.2949 119.395 34.2949H119.359C118.668 34.2949 118.009 34.345 117.383 34.4415C116.756 34.5416 116.169 34.699 115.626 34.9171L114.628 35.3212C114.409 35.053 114.092 34.8206 113.685 34.6239C113.278 34.4272 112.817 34.3307 112.306 34.3307C111.669 34.3307 111.107 34.4058 110.617 34.5524C110.128 34.699 109.699 34.8706 109.332 35.0673C108.893 35.289 108.511 35.5215 108.194 35.7647C108.144 35.8147 108.072 35.9363 107.975 36.133C107.877 36.3297 107.816 36.487 107.791 36.6086L107.568 38.1857C107.517 38.529 107.579 38.8044 107.751 39.0118C107.924 39.2192 108.18 39.3229 108.522 39.3229H109.364L106.272 61.273C106.196 61.8345 106.156 62.2708 106.142 62.5747C106.128 62.8787 106.196 63.1076 106.347 63.2542C106.495 63.4008 106.722 63.4866 107.031 63.5117C107.341 63.5367 107.777 63.5474 108.338 63.5474H108.742C109.303 63.5474 109.76 63.5331 110.117 63.5117C110.47 63.4866 110.747 63.4008 110.941 63.2542C111.136 63.1076 111.291 62.8823 111.402 62.5747C111.514 62.2672 111.604 61.8345 111.676 61.273L114.7 40.1311C115.021 39.9344 115.438 39.727 115.957 39.5089C116.573 39.2406 117.127 39.094 117.62 39.069C118.114 39.044 118.495 39.0583 118.765 39.1048C119.284 39.1799 119.676 39.3372 119.95 39.5804C120.22 39.8236 120.425 40.1311 120.558 40.4959C120.692 40.8642 120.76 41.2719 120.76 41.726C120.76 42.1802 120.735 42.6379 120.684 43.1028C120.634 43.6428 120.548 44.1936 120.425 44.755C120.303 45.32 120.13 45.8564 119.907 46.3714C119.683 46.8864 119.403 47.3513 119.057 47.7661C118.711 48.1845 118.294 48.4992 117.8 48.7209C117.53 48.9176 116.925 49.0141 115.989 49.0141C115.579 49.0141 115.197 48.9998 114.823 48.982L114.121 53.7847H115.251C115.77 53.7847 116.256 53.7668 116.709 53.731C117.167 53.6953 117.638 53.6166 118.132 53.4914C118.747 53.3448 119.493 53.0802 120.367 52.7011C121.242 52.322 122.074 51.6926 122.863 50.8093C123.651 49.9511 124.346 48.9247 124.951 47.7267C125.556 46.5288 125.955 45.2449 126.153 43.8717C126.449 41.7189 126.294 39.87 125.693 38.3287L125.696 38.3323Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M155.962 24.972C155.555 24.9469 154.993 24.9362 154.28 24.9362C153.639 24.9362 153.128 24.9505 152.746 24.972C152.365 24.997 152.062 25.0936 151.843 25.2652C151.619 25.4369 151.454 25.6944 151.342 26.0341C151.231 26.3774 151.137 26.878 151.065 27.5396L150.993 28.1619C150.917 28.8485 150.881 29.367 150.881 29.721C150.881 30.0751 150.975 30.3326 151.159 30.4935C151.342 30.6544 151.634 30.7367 152.026 30.751C152.419 30.7653 152.973 30.7688 153.69 30.7688C154.331 30.7688 154.849 30.7581 155.242 30.7331C155.634 30.7081 155.944 30.6115 156.163 30.4398C156.386 30.2682 156.552 30.0107 156.664 29.671C156.775 29.3277 156.869 28.827 156.941 28.1654L157.017 27.5432C157.089 26.8816 157.128 26.3738 157.128 26.0198C157.128 25.6657 157.035 25.4083 156.851 25.2473C156.667 25.09 156.372 24.997 155.965 24.972H155.962Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M196.74 34.6096C196.568 34.4773 196.298 34.4022 195.927 34.3914C195.556 34.3807 195.041 34.3736 194.375 34.3736H194.116C193.622 34.3736 193.223 34.3914 192.913 34.4272C192.604 34.463 192.351 34.5667 192.157 34.7383C192.207 34.8098 192.143 34.8098 191.973 34.7383C191.801 34.6632 191.653 34.606 191.531 34.5559C191.505 34.5559 191.48 34.5488 191.459 34.5381C191.433 34.5273 191.408 34.5202 191.383 34.5202C191.16 34.4701 190.861 34.4415 190.476 34.4272C190.094 34.4165 189.68 34.4093 189.237 34.4093C188.225 34.4093 187.278 34.5202 186.393 34.7383C185.777 34.8849 185.021 35.1675 184.121 35.5823C183.221 36.0007 182.403 36.6086 181.662 37.4168C180.873 38.2751 180.171 39.2943 179.555 40.4816C178.94 41.6688 178.533 42.9598 178.335 44.3545C178.04 46.4823 178.191 48.3311 178.796 49.8974C179.401 51.4638 180.441 52.601 181.917 53.3126C182.187 53.4342 182.508 53.5522 182.879 53.6631C183.249 53.7739 183.667 53.8526 184.135 53.9027C184.258 53.9277 184.405 53.9384 184.578 53.9384H185.133C186.465 53.9384 187.721 53.731 188.902 53.3126H188.866L189.086 53.2375L188.679 56.3952C188.603 57.0318 188.359 57.4967 187.941 57.7899C187.523 58.0831 186.994 58.2906 186.353 58.4157C186.133 58.4658 185.874 58.5016 185.579 58.5266C185.284 58.5516 184.974 58.5623 184.654 58.5623C183.988 58.5623 183.329 58.5194 182.677 58.4336C182.025 58.3478 181.55 58.2798 181.255 58.2333C180.96 58.1833 180.736 58.1404 180.589 58.1046C180.441 58.0688 180.268 58.051 180.07 58.051C179.505 58.051 179.055 58.2405 178.72 58.6196C178.389 58.9986 178.036 59.5815 177.669 60.3647C177.546 60.6329 177.442 60.8797 177.356 61.0978C177.269 61.3195 177.211 61.5126 177.19 61.6843C177.139 61.9525 177.165 62.1671 177.262 62.328C177.359 62.4889 177.539 62.6284 177.798 62.75C178.058 62.8716 178.407 62.9896 178.85 63.1004C179.293 63.2113 179.836 63.34 180.477 63.4866C180.92 63.5367 181.402 63.5832 181.917 63.6333C182.436 63.6833 183.001 63.7084 183.617 63.7084C183.937 63.7084 184.344 63.6833 184.837 63.6333C185.331 63.5832 185.842 63.5117 186.371 63.4151C186.9 63.315 187.422 63.2006 187.941 63.0647C188.459 62.9288 188.927 62.7643 189.345 62.5712C190.576 62.0061 191.624 61.2194 192.485 60.2038C193.349 59.1882 193.9 57.8364 194.148 56.1485L196.884 36.6945C196.957 36.0829 196.996 35.618 196.996 35.2998C196.996 34.9815 196.91 34.7562 196.737 34.6203L196.74 34.6096ZM189.792 48.281C189.619 48.3526 189.446 48.4241 189.273 48.4813C189.1 48.5421 188.877 48.6243 188.607 48.7209C187.966 48.9426 187.404 49.0678 186.926 49.1071C186.447 49.1429 186.069 49.1393 185.799 49.0892C185.28 49.0177 184.877 48.8639 184.578 48.6315C184.283 48.3991 184.074 48.0987 183.952 47.7339C183.829 47.3656 183.761 46.965 183.746 46.5216C183.732 46.0817 183.754 45.6276 183.804 45.1627C183.876 44.6012 183.97 44.0326 184.081 43.4569C184.193 42.8811 184.358 42.3447 184.578 41.8405C184.801 41.3398 185.079 40.8857 185.41 40.4816C185.741 40.0775 186.155 39.7663 186.648 39.5446C186.846 39.4481 187.109 39.3658 187.444 39.305C187.775 39.2442 188.128 39.212 188.495 39.212C188.863 39.212 189.197 39.2192 189.493 39.2299C189.788 39.2406 190.072 39.2728 190.342 39.3229C190.465 39.3479 190.584 39.3765 190.695 39.4159C190.807 39.4516 190.922 39.4838 191.048 39.5089L189.792 48.281Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M175.454 49.7115H174.677L176.045 40.0202C176.34 37.9425 175.94 36.4477 174.842 35.5429C173.744 34.6382 171.829 34.209 169.096 34.2591C168.455 34.2591 167.872 34.2841 167.343 34.3306C166.813 34.3807 166.363 34.4415 165.992 34.513C165.769 34.5631 165.506 34.6274 165.197 34.7133C164.887 34.7991 164.624 34.9028 164.401 35.0244C163.933 34.513 163.216 34.2555 162.259 34.2555C161.618 34.2555 161.045 34.3271 160.541 34.4737C160.037 34.6203 159.598 34.7919 159.231 34.9886C158.788 35.2104 158.406 35.4428 158.086 35.686C157.963 35.8076 157.87 35.9506 157.808 36.108C157.747 36.2689 157.704 36.3976 157.679 36.4942L157.456 38.0712C157.405 38.4145 157.474 38.6935 157.661 38.9152C157.844 39.1369 158.111 39.2442 158.457 39.2442H159.27L158.791 42.4377L157.499 51.3207C157.423 51.8106 157.387 52.2076 157.387 52.5116C157.387 52.8155 157.456 53.0587 157.592 53.2268C157.729 53.3984 157.931 53.5093 158.201 53.5558C158.471 53.6058 158.842 53.6273 159.31 53.6273H160.638C161.081 53.6273 161.445 53.5951 161.729 53.5343C162.01 53.4735 162.233 53.3555 162.395 53.1874C162.554 53.0158 162.676 52.7798 162.766 52.4722C162.853 52.1682 162.932 51.782 163.008 51.3171L164.671 39.5339C165.287 39.4373 165.92 39.3515 166.576 39.2764C167.227 39.2013 167.886 39.1906 168.552 39.2406C169.218 39.2907 169.715 39.4373 170.05 39.6805C170.381 39.9237 170.5 40.3528 170.403 40.9643L169.035 50.6198C169.01 50.7664 168.999 51.006 168.999 51.335C168.999 51.664 169.071 52.0037 169.222 52.3435C169.37 52.6868 169.622 52.9979 169.978 53.2804C170.335 53.5629 170.86 53.7382 171.548 53.8133C172.484 53.9098 173.258 53.8991 173.877 53.7775C174.493 53.6559 174.864 53.5701 174.986 53.52C175.307 53.3734 175.584 53.2196 175.818 53.0623C176.052 52.9049 176.192 52.6653 176.243 52.3471L176.463 50.8415C176.513 50.5232 176.445 50.255 176.261 50.0333C176.074 49.8116 175.811 49.7043 175.465 49.7043L175.454 49.7115Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M154.942 35.1031C154.723 34.8599 154.431 34.6561 154.075 34.4987C153.718 34.3414 153.293 34.2591 152.8 34.2591C152.159 34.2591 151.587 34.3306 151.083 34.4773C150.579 34.6239 150.139 34.7848 149.772 34.9529C149.329 35.1746 148.948 35.4071 148.627 35.6502C148.505 35.7218 148.4 35.8398 148.314 35.9971C148.228 36.158 148.17 36.3225 148.148 36.4906L147.929 38.0677C147.878 38.411 147.954 38.6899 148.148 38.9116C148.346 39.1334 148.606 39.2406 148.922 39.2406H149.772L148.037 51.3171C147.961 51.9036 147.918 52.3506 147.907 52.6582C147.893 52.9657 147.961 53.191 148.112 53.3376C148.26 53.4843 148.487 53.5701 148.796 53.5951C149.103 53.6202 149.542 53.6309 150.107 53.6309H150.514C151.079 53.6309 151.536 53.6202 151.882 53.5951C152.228 53.5701 152.505 53.4843 152.714 53.3376C152.923 53.191 153.081 52.9657 153.193 52.6582C153.304 52.3506 153.394 51.9072 153.47 51.3171L155.501 36.7803C155.526 36.5121 155.493 36.2224 155.407 35.9184C155.321 35.6109 155.166 35.3355 154.946 35.0924L154.942 35.1031Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M142.42 34.9207C142.1 34.7741 141.65 34.6346 141.07 34.4987C140.49 34.3664 139.882 34.2985 139.241 34.2985H139.205C138.514 34.2985 137.855 34.3485 137.228 34.4451C136.602 34.5452 136.015 34.7026 135.471 34.9207L134.474 35.3248C134.254 35.0566 133.938 34.8241 133.531 34.6275C133.124 34.4308 132.663 34.3342 132.152 34.3342C131.514 34.3342 130.953 34.4093 130.463 34.5559C129.973 34.7026 129.545 34.8742 129.178 35.0709C128.738 35.2926 128.357 35.5251 128.04 35.7682C127.99 35.8183 127.918 35.9399 127.82 36.1366C127.723 36.3333 127.662 36.4906 127.637 36.6122L127.414 38.1893C127.363 38.5326 127.424 38.8079 127.597 39.0153C127.77 39.2228 128.026 39.3265 128.368 39.3265H129.21L126.117 61.2766C126.042 61.8381 126.002 62.2743 125.988 62.5783C125.973 62.8823 126.042 63.1111 126.193 63.2578C126.341 63.4044 126.567 63.4902 126.877 63.5152C127.187 63.5403 127.622 63.551 128.184 63.551H128.587C129.149 63.551 129.606 63.5367 129.963 63.5152C130.315 63.4902 130.593 63.4044 130.787 63.2578C130.982 63.1111 131.136 62.8859 131.248 62.5783C131.36 62.2708 131.45 61.8381 131.522 61.2766L134.546 40.1347C134.866 39.938 135.284 39.7306 135.803 39.5124C136.418 39.2442 136.973 39.0976 137.466 39.0726C137.725 39.0583 137.948 39.0583 138.147 39.0654C138.399 39.0654 138.625 39.0797 138.795 39.1083C139.313 39.1834 139.706 39.3408 139.976 39.5839C140.246 39.8271 140.451 40.1347 140.584 40.4994C140.717 40.8678 140.786 41.2754 140.786 41.7296C140.786 42.1838 140.76 42.6415 140.714 43.1064C140.663 43.6464 140.577 44.1971 140.454 44.7586C140.332 45.3236 140.159 45.86 139.936 46.375C139.713 46.8899 139.432 47.3548 139.086 47.7697C138.741 48.1881 138.323 48.5028 137.83 48.7245C137.56 48.9212 136.955 49.0177 136.019 49.0177C135.986 49.0177 135.957 49.0177 135.921 49.0177C135.889 49.0177 135.867 49.0177 135.835 49.0177C135.425 49.0177 135.043 49.0034 134.668 48.9855L133.966 53.7882H135.097C135.615 53.7882 136.101 53.7704 136.555 53.7346C137.012 53.6988 137.484 53.6202 137.977 53.495C138.593 53.3484 139.338 53.0837 140.213 52.7047C141.088 52.3256 141.92 51.6962 142.708 50.8129C143.497 49.9547 144.192 48.9283 144.797 47.7303C145.401 46.5323 145.801 45.2485 145.999 43.8753C146.294 41.7225 146.14 39.8736 145.538 38.3323C144.933 36.791 143.893 35.6538 142.417 34.9171L142.42 34.9207Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8839\"><rect width=\"197\" height=\"64\" fill=\"white\"/></clipPath></defs></svg>',\r\n wappingNaming: '<svg id=\"wappingNaming\" width=\"145\" height=\"40\" viewBox=\"0 0 145 50\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8840)\"><path id=\"path\" d=\"M52.4312 20.1687C52.0606 20.1579 51.557 20.1507 50.9167 20.1507H50.4382C50.0209 20.1507 49.6756 20.1651 49.4058 20.1867C49.1359 20.2119 48.9021 20.2984 48.7042 20.4461C48.2114 20.3236 47.7689 20.2479 47.3732 20.2227C46.9811 20.1975 46.4379 20.1867 45.7508 20.1867C44.7399 20.1867 43.7794 20.2984 42.8692 20.5181C41.8368 20.7883 40.8619 21.2278 39.9517 21.8295C39.0416 22.4347 38.2358 23.1588 37.5343 24.0126C36.8328 24.8628 36.2464 25.8175 35.7823 26.8767C35.3147 27.9358 34.9945 29.0454 34.8218 30.2054C34.5268 32.349 34.6779 34.2115 35.2823 35.7894C35.8867 37.3674 36.9263 38.513 38.4013 39.2299C38.6962 39.3524 39.0308 39.4713 39.3977 39.5829C39.7683 39.6946 40.1964 39.7739 40.6892 39.8243H40.7252C40.8475 39.8495 40.9878 39.8603 41.1497 39.8603H41.6857C43.0383 39.8603 44.2722 39.6514 45.3766 39.2299C45.6716 39.1542 46.0026 39.0209 46.3731 38.8228C46.7652 39.392 47.4919 39.709 48.5496 39.7847C48.9669 39.8099 49.3734 39.8099 49.7691 39.7847C50.1612 39.7595 50.5245 39.7234 50.8591 39.673C51.1901 39.6226 51.4743 39.5685 51.7081 39.5073C51.9419 39.446 52.0966 39.4028 52.1686 39.3776H52.1326C52.4779 39.2551 52.7118 39.1146 52.8341 38.9525C52.9564 38.794 53.0427 38.5778 53.0931 38.3076L53.3161 36.791C53.3665 36.4703 53.2981 36.2001 53.1111 35.9768C52.9276 35.7534 52.6614 35.6453 52.3161 35.6453H51.5426L53.3881 22.4815C53.4636 21.8655 53.4996 21.3972 53.4996 21.0765C53.4996 20.7559 53.4133 20.5289 53.2406 20.392C53.0679 20.2587 52.7981 20.1831 52.4276 20.1723L52.4312 20.1687ZM46.3012 34.1647C46.1753 34.2151 46.0422 34.2692 45.8947 34.3304C45.7472 34.3916 45.4882 34.4853 45.1176 34.6078C44.4269 34.8059 43.8441 34.9284 43.3657 34.9789C42.8872 35.0293 42.5239 35.0293 42.2757 34.9789C41.7828 34.9068 41.3943 34.7447 41.1137 34.4997C40.8295 34.2547 40.628 33.9521 40.5057 33.5955C40.3834 33.2388 40.3151 32.8389 40.3007 32.3922C40.2863 31.9491 40.3079 31.4916 40.3582 31.0232C40.4302 30.2847 40.5597 29.557 40.7468 28.8401C40.9302 28.1232 41.2072 27.4855 41.5778 26.9163C41.9483 26.3507 42.4088 25.8932 42.9628 25.5473C43.5168 25.2015 44.2003 25.0286 45.0133 25.0286C45.5061 25.0286 45.9666 25.0466 46.3983 25.0826C46.83 25.1186 47.2149 25.1618 47.5603 25.2123L46.3048 34.1611L46.3012 34.1647Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M42.7146 0.959747C40.2216 -0.0561787 39.0164 1.62983 38.8222 2.03692L22.7453 33.8945L19.4285 18.0576C19.2702 17.3298 19.0796 16.7931 18.8601 16.4472C18.6407 16.1014 17.2449 14.2532 14.7986 15.0134C12.0934 15.8564 12.3884 17.8991 12.3272 18.4358C12.2948 18.688 12.32 18.9654 12.3992 19.2644C12.4783 19.567 12.5503 19.8877 12.6114 20.2371C12.6114 20.2371 16.4139 35.5337 16.86 37.1692C17.1262 37.969 17.2269 38.3184 17.3708 38.6319C17.5111 38.9489 17.6622 39.2335 17.8205 39.4857C18.2629 40.3071 19.0508 40.8619 20.1876 41.1465C20.4394 41.2077 20.7164 41.2581 21.015 41.287C21.3136 41.3194 21.5906 41.3338 21.8424 41.3338C22.6014 41.3338 23.3245 41.1681 24.0224 40.8366C24.7167 40.5052 25.3642 40.0549 25.9614 39.4857C26.3391 39.1074 26.6629 38.7255 26.9327 38.3473C27.1989 37.969 27.4615 37.5583 27.7134 37.1152L44.3226 4.86494C44.3982 4.71363 45.6501 2.1522 42.711 0.956145L42.7146 0.959747Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M12.2336 30.3387C11.917 31.034 11.6005 31.7149 11.2875 32.3778C10.9709 33.0407 10.6723 33.6099 10.3881 34.0854L7.16844 18.1548C7.01015 17.6505 6.6648 17.1497 6.12878 16.6598C5.59277 16.1698 4.8481 15.9248 3.90198 15.9248C3.08177 15.9248 1.86585 16.0329 0.944913 17.1893C-0.429299 18.9114 0.77943 22.3698 0.77943 22.3698C1.50611 25.4356 2.08889 27.871 2.53137 29.6723C2.97385 31.4735 3.3192 32.8894 3.57102 33.9161C3.82284 34.9428 4.0135 35.6777 4.13941 36.1209C4.26532 36.564 4.39123 36.9567 4.51714 37.3061H4.47038C4.56391 37.6556 4.68982 38.0266 4.84811 38.4193C5.00639 38.8156 5.17907 39.1686 5.36973 39.4857C5.93812 40.3071 6.74394 40.8619 7.7836 41.1465C8.03542 41.2077 8.30522 41.2581 8.58942 41.287C8.87362 41.3194 9.13982 41.3338 9.39524 41.3338C10.1831 41.3338 10.9421 41.1753 11.6688 40.8582C12.3955 40.5412 13.025 40.0693 13.561 39.4352C13.7193 39.2767 13.892 39.0786 14.0827 38.8444C14.2733 38.6066 14.446 38.3473 14.6043 38.0627L15.2123 37.0323L13.0142 28.6131C12.7588 29.1787 12.4998 29.7479 12.2336 30.3351V30.3387Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M73.7567 24.1423C73.1524 22.5896 72.1127 21.444 70.6378 20.7019C70.3176 20.5542 69.8679 20.4137 69.2887 20.2768C68.7096 20.1435 68.1016 20.075 67.4612 20.075H67.4253C66.7346 20.075 66.0762 20.1254 65.4503 20.2227C64.8243 20.3236 64.238 20.4821 63.6948 20.7019L62.6983 21.1089C62.4788 20.8388 62.1623 20.6046 61.7557 20.4064C61.3492 20.2083 60.8888 20.111 60.3779 20.111C59.7412 20.111 59.18 20.1867 58.6908 20.3344C58.2015 20.4821 57.7734 20.655 57.4065 20.8532C56.9676 21.0765 56.5863 21.3107 56.2697 21.5557C56.2193 21.6061 56.1474 21.7286 56.0503 21.9267C55.9531 22.1249 55.892 22.2834 55.8668 22.4059L55.6437 23.9946C55.5934 24.3405 55.6545 24.6179 55.8272 24.8268C55.9999 25.0358 56.2553 25.1402 56.5971 25.1402H57.4389L54.3487 47.2528C54.2731 47.8184 54.2336 48.2579 54.2192 48.5642C54.2048 48.8704 54.2731 49.101 54.4242 49.2487C54.5717 49.3964 54.7983 49.4828 55.1077 49.508C55.4171 49.5333 55.8524 49.5441 56.4136 49.5441H56.8165C57.3777 49.5441 57.8346 49.5297 58.1907 49.508C58.5433 49.4828 58.8203 49.3964 59.0145 49.2487C59.2088 49.101 59.3635 48.874 59.475 48.5642C59.5865 48.2543 59.6764 47.8184 59.7484 47.2528L62.7702 25.9544C63.0904 25.7563 63.5077 25.5473 64.0257 25.3276C64.6409 25.0574 65.1949 24.9097 65.6877 24.8844C66.1806 24.8592 66.5619 24.8736 66.8317 24.9205C67.3497 24.9961 67.7418 25.1546 68.0152 25.3996C68.2851 25.6446 68.4901 25.9544 68.6232 26.3219C68.7563 26.6929 68.8247 27.1036 68.8247 27.5612C68.8247 28.0187 68.7995 28.4798 68.7491 28.9482C68.6988 29.4921 68.6124 30.0469 68.4901 30.6125C68.3678 31.1817 68.1951 31.7221 67.9721 32.2409C67.749 32.7597 67.4684 33.228 67.1231 33.6459C66.7777 34.0674 66.3604 34.3844 65.8676 34.6078C65.5978 34.8059 64.9934 34.9032 64.0581 34.9032C63.648 34.9032 63.2667 34.8888 62.8925 34.8708L62.191 39.709H63.3206C63.8387 39.709 64.3243 39.691 64.7776 39.655C65.2344 39.619 65.7057 39.5397 66.1986 39.4136C66.8137 39.2659 67.5584 38.9993 68.4326 38.6175C69.3067 38.2356 70.1377 37.6015 70.9256 36.7117C71.7134 35.8471 72.4077 34.8131 73.0121 33.6063C73.6164 32.3994 74.0157 31.1061 74.2136 29.7227C74.5086 27.554 74.3539 25.6914 73.7531 24.1387L73.7567 24.1423Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M103.996 10.6831C103.59 10.6579 103.029 10.6471 102.316 10.6471C101.676 10.6471 101.165 10.6615 100.784 10.6831C100.403 10.7083 100.1 10.8056 99.8809 10.9785C99.6579 11.1514 99.4924 11.4108 99.3809 11.7531C99.2694 12.0989 99.1758 12.6033 99.1039 13.2697L99.0319 13.8966C98.9564 14.5883 98.9204 15.1107 98.9204 15.4673C98.9204 15.824 99.0139 16.0833 99.1974 16.2455C99.3809 16.4076 99.6723 16.4904 100.064 16.5048C100.457 16.5193 101.011 16.5229 101.726 16.5229C102.367 16.5229 102.885 16.5121 103.277 16.4868C103.669 16.4616 103.978 16.3643 104.198 16.1914C104.421 16.0185 104.586 15.7591 104.698 15.4169C104.809 15.071 104.903 14.5667 104.975 13.9002L105.05 13.2733C105.122 12.6069 105.162 12.0953 105.162 11.7386C105.162 11.382 105.068 11.1226 104.885 10.9605C104.701 10.802 104.406 10.7083 104 10.6831H103.996Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M144.741 20.392C144.568 20.2587 144.298 20.1831 143.928 20.1723C143.557 20.1615 143.043 20.1543 142.377 20.1543H142.118C141.626 20.1543 141.226 20.1723 140.917 20.2083C140.607 20.2443 140.356 20.3488 140.161 20.5217C140.212 20.5938 140.147 20.5938 139.978 20.5217C139.805 20.4461 139.658 20.3884 139.535 20.338C139.51 20.338 139.485 20.3308 139.464 20.32C139.438 20.3092 139.413 20.302 139.388 20.302C139.165 20.2515 138.866 20.2227 138.481 20.2083C138.1 20.1975 137.686 20.1903 137.244 20.1903C136.233 20.1903 135.287 20.302 134.402 20.5217C133.787 20.6694 133.031 20.954 132.132 21.3719C131.233 21.7934 130.416 22.4059 129.675 23.2201C128.887 24.0847 128.186 25.1114 127.57 26.3075C126.955 27.5035 126.549 28.804 126.351 30.209C126.056 32.3526 126.207 34.2151 126.811 35.793C127.416 37.371 128.455 38.5166 129.93 39.2335C130.2 39.356 130.52 39.4749 130.891 39.5865C131.261 39.6982 131.679 39.7775 132.146 39.8279C132.269 39.8531 132.416 39.8639 132.589 39.8639H133.143C134.474 39.8639 135.729 39.655 136.909 39.2335H136.873L137.093 39.1578L136.686 42.3389C136.611 42.9802 136.366 43.4485 135.949 43.7439C135.532 44.0393 135.003 44.2483 134.362 44.3744C134.143 44.4248 133.884 44.4608 133.589 44.4861C133.294 44.5113 132.985 44.5221 132.664 44.5221C131.999 44.5221 131.341 44.4788 130.689 44.3924C130.038 44.3059 129.563 44.2375 129.268 44.1906C128.973 44.1402 128.75 44.097 128.603 44.0609C128.455 44.0249 128.283 44.0069 128.085 44.0069C127.52 44.0069 127.07 44.1978 126.736 44.5797C126.405 44.9616 126.052 45.5488 125.685 46.3378C125.563 46.608 125.459 46.8565 125.372 47.0763C125.286 47.2997 125.229 47.4942 125.207 47.6671C125.157 47.9373 125.182 48.1535 125.279 48.3156C125.376 48.4777 125.556 48.6182 125.815 48.7407C126.074 48.8632 126.423 48.9821 126.865 49.0937C127.308 49.2054 127.851 49.3351 128.491 49.4828C128.934 49.5333 129.416 49.5801 129.93 49.6305C130.448 49.681 131.013 49.7062 131.628 49.7062C131.949 49.7062 132.355 49.681 132.848 49.6305C133.341 49.5801 133.852 49.508 134.38 49.4108C134.909 49.3099 135.431 49.1946 135.949 49.0577C136.467 48.9208 136.935 48.7551 137.352 48.5606C138.582 47.9914 139.629 47.1988 140.489 46.1757C141.352 45.1525 141.903 43.7908 142.151 42.0903L144.885 22.4923C144.957 21.8763 144.996 21.408 144.996 21.0873C144.996 20.7667 144.91 20.5397 144.737 20.4028L144.741 20.392ZM137.798 34.1647C137.625 34.2367 137.453 34.3088 137.28 34.3664C137.107 34.4277 136.884 34.5105 136.614 34.6078C135.974 34.8312 135.413 34.9572 134.934 34.9969C134.456 35.0329 134.078 35.0293 133.808 34.9789C133.29 34.9068 132.887 34.7519 132.589 34.5177C132.294 34.2836 132.085 33.9809 131.963 33.6135C131.841 33.2424 131.772 32.8389 131.758 32.3922C131.743 31.9491 131.765 31.4916 131.815 31.0232C131.887 30.4576 131.981 29.8848 132.092 29.3048C132.204 28.7248 132.369 28.1844 132.589 27.6764C132.812 27.1721 133.089 26.7146 133.42 26.3075C133.751 25.9004 134.165 25.5869 134.657 25.3636C134.855 25.2663 135.118 25.1835 135.452 25.1222C135.783 25.061 136.136 25.0285 136.503 25.0285C136.87 25.0285 137.204 25.0358 137.499 25.0466C137.794 25.0574 138.079 25.0898 138.348 25.1402C138.471 25.1654 138.589 25.1943 138.701 25.2339C138.812 25.2699 138.927 25.3023 139.053 25.3276L137.798 34.1647Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M123.473 35.6057H122.696L124.063 25.8427C124.358 23.7496 123.958 22.2438 122.861 21.3323C121.764 20.4209 119.85 19.9886 117.12 20.039C116.479 20.039 115.897 20.0642 115.368 20.111C114.839 20.1615 114.389 20.2227 114.019 20.2948C113.796 20.3452 113.533 20.4101 113.224 20.4965C112.914 20.583 112.652 20.6874 112.429 20.8099C111.961 20.2948 111.245 20.0354 110.288 20.0354C109.648 20.0354 109.076 20.1074 108.572 20.2551C108.069 20.4028 107.63 20.5758 107.263 20.7739C106.82 20.9973 106.439 21.2314 106.119 21.4764C105.996 21.5989 105.903 21.743 105.842 21.9015C105.781 22.0636 105.737 22.1933 105.712 22.2906L105.489 23.8793C105.439 24.2252 105.507 24.5062 105.694 24.7295C105.878 24.9529 106.144 25.061 106.489 25.061H107.302L106.824 28.2781L105.532 37.2269C105.457 37.7204 105.421 38.1203 105.421 38.4265C105.421 38.7327 105.489 38.9777 105.626 39.147C105.763 39.32 105.964 39.4316 106.234 39.4785C106.504 39.5289 106.874 39.5505 107.342 39.5505H108.669C109.112 39.5505 109.475 39.5181 109.759 39.4569C110.04 39.3956 110.263 39.2767 110.425 39.1074C110.583 38.9345 110.706 38.6967 110.795 38.3869C110.882 38.0807 110.961 37.6916 111.036 37.2233L112.698 25.3528C113.314 25.2555 113.947 25.1691 114.601 25.0934C115.253 25.0177 115.911 25.0069 116.576 25.0574C117.242 25.1078 117.738 25.2555 118.073 25.5005C118.404 25.7455 118.523 26.1778 118.426 26.7938L117.059 36.5208C117.033 36.6685 117.023 36.9098 117.023 37.2413C117.023 37.5727 117.095 37.915 117.246 38.2572C117.393 38.603 117.645 38.9165 118.001 39.2011C118.357 39.4857 118.882 39.6622 119.57 39.7379C120.505 39.8351 121.278 39.8243 121.897 39.7018C122.512 39.5793 122.883 39.4929 123.005 39.4424C123.325 39.2947 123.602 39.1398 123.836 38.9813C124.07 38.8228 124.21 38.5814 124.261 38.2608L124.48 36.7441C124.53 36.4235 124.462 36.1533 124.279 35.9299C124.091 35.7066 123.829 35.5985 123.484 35.5985L123.473 35.6057Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M102.978 20.8892C102.759 20.6442 102.468 20.4389 102.112 20.2803C101.755 20.1218 101.331 20.039 100.838 20.039C100.198 20.039 99.6257 20.111 99.1221 20.2587C98.6184 20.4064 98.1795 20.5685 97.8126 20.7379C97.3701 20.9612 96.9888 21.1954 96.6686 21.4404C96.5463 21.5124 96.442 21.6313 96.3557 21.7898C96.2693 21.9519 96.2118 22.1177 96.1902 22.287L95.9707 23.8757C95.9204 24.2216 95.9959 24.5026 96.1902 24.7259C96.388 24.9493 96.647 25.0574 96.9636 25.0574H97.8126L96.0787 37.2232C96.0031 37.8141 95.9599 38.2644 95.9491 38.5742C95.9348 38.884 96.0031 39.111 96.1542 39.2587C96.3017 39.4064 96.5283 39.4929 96.8377 39.5181C97.1435 39.5433 97.5824 39.5541 98.1472 39.5541H98.5537C99.1185 39.5541 99.5753 39.5433 99.9207 39.5181C100.266 39.4929 100.543 39.4064 100.752 39.2587C100.96 39.111 101.119 38.884 101.23 38.5742C101.342 38.2644 101.432 37.8177 101.507 37.2232L103.536 22.5788C103.561 22.3086 103.529 22.0168 103.443 21.7106C103.356 21.4007 103.202 21.1233 102.982 20.8784L102.978 20.8892Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M90.4664 20.7055C90.1462 20.5578 89.6965 20.4173 89.1173 20.2804C88.5382 20.1471 87.9302 20.0786 87.2899 20.0786H87.2539C86.5632 20.0786 85.9049 20.129 85.2789 20.2263C84.653 20.3272 84.0666 20.4857 83.5234 20.7055L82.5269 21.1126C82.3074 20.8424 81.9909 20.6082 81.5844 20.41C81.1778 20.2119 80.7174 20.1146 80.2066 20.1146C79.5698 20.1146 79.0086 20.1903 78.5194 20.338C78.0301 20.4857 77.602 20.6586 77.2351 20.8568C76.7962 21.0801 76.4149 21.3143 76.0983 21.5593C76.0479 21.6097 75.976 21.7322 75.8789 21.9303C75.7817 22.1285 75.7206 22.287 75.6954 22.4095L75.4723 23.9982C75.422 24.3441 75.4831 24.6215 75.6558 24.8304C75.8285 25.0394 76.0839 25.1438 76.4257 25.1438H77.2675L74.1773 47.2564C74.1017 47.822 74.0622 48.2615 74.0478 48.5678C74.0334 48.874 74.1017 49.1045 74.2528 49.2523C74.4003 49.4 74.627 49.4864 74.9363 49.5116C75.2457 49.5369 75.681 49.5477 76.2422 49.5477H76.6451C77.2063 49.5477 77.6632 49.5333 78.0193 49.5116C78.3719 49.4864 78.6489 49.4 78.8431 49.2523C79.0374 49.1045 79.1921 48.8776 79.3036 48.5678C79.4151 48.2579 79.5051 47.822 79.577 47.2564L82.5988 25.958C82.919 25.7599 83.3363 25.5509 83.8543 25.3312C84.4695 25.061 85.0235 24.9133 85.5163 24.888C85.7753 24.8736 85.9984 24.8736 86.1962 24.8808C86.4481 24.8808 86.6747 24.8953 86.8438 24.9241C87.3618 24.9997 87.7539 25.1582 88.0237 25.4032C88.2935 25.6482 88.4986 25.958 88.6317 26.3255C88.7648 26.6965 88.8331 27.1072 88.8331 27.5648C88.8331 28.0223 88.808 28.4834 88.7612 28.9518C88.7108 29.4957 88.6245 30.0505 88.5022 30.6161C88.3799 31.1853 88.2072 31.7257 87.9842 32.2445C87.7611 32.7633 87.4805 33.2316 87.1352 33.6495C86.7898 34.071 86.3725 34.388 85.8797 34.6114C85.6099 34.8095 85.0055 34.9068 84.0702 34.9068C84.0378 34.9068 84.009 34.9068 83.973 34.9068C83.9407 34.9068 83.9191 34.9068 83.8867 34.9068C83.4766 34.9068 83.0953 34.8924 82.7211 34.8744L82.0196 39.7126H83.1492C83.6673 39.7126 84.1529 39.6946 84.6062 39.6586C85.0631 39.6226 85.5343 39.5433 86.0272 39.4172C86.6423 39.2695 87.387 39.0029 88.2612 38.6211C89.1353 38.2392 89.9663 37.6051 90.7542 36.7153C91.542 35.8507 92.2363 34.8167 92.8407 33.6099C93.445 32.403 93.8444 31.1097 94.0422 29.7263C94.3372 27.5576 94.1825 25.695 93.5817 24.1423C92.9774 22.5896 91.9377 21.444 90.4628 20.7019L90.4664 20.7055Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8840\"><rect width=\"145\" height=\"50\" fill=\"white\"/></clipPath></defs></svg>',\r\n wappingIsotype: '<svg id=\"wappingIsotype\" width=\"45\" height=\"55\" viewBox=\"0 0 45 55\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8841)\"><path id=\"path\" d=\"M41.5017 43.839C41.4513 44.1867 41.3757 44.5345 41.2461 44.8644C40.9688 45.56 40.4143 46.0368 39.705 46.2735C39.5069 46.338 39.2945 46.3918 39.1216 46.5137C39.0244 46.5818 39.01 46.7754 38.8984 46.8005C38.7184 46.84 38.7472 46.6786 38.7112 46.5711C38.6463 46.3774 38.3835 46.2412 38.2215 46.148C37.5697 45.7679 37.1016 45.1907 36.972 44.4413C36.918 44.133 36.756 42.7311 37.2313 42.7454C37.5913 42.7562 37.9586 42.8279 38.3187 42.8709C39.3053 42.9856 40.2919 43.1004 41.2785 43.2187C41.6494 43.2617 41.5485 43.5593 41.5053 43.8461L41.5017 43.839ZM36.756 53.9032C33.8718 52.842 32.4099 51.0062 33.2308 49.0916C33.8862 47.5606 34.4155 46.0261 34.4155 44.2943C34.4155 38.5541 29.7417 33.9002 23.9769 33.9002C18.2121 33.9002 13.5383 38.5541 13.5383 44.2943C13.5383 49.5649 17.2759 53.6809 22.2629 54.5486C22.6302 54.6132 24.4162 54.7637 24.8339 54.7637H36.4463C36.9828 54.8426 37.1952 54.1506 36.7632 53.8997L36.756 53.9032ZM44.2239 33.6564C43.8026 35.3702 42.1679 35.9546 40.6124 36.3634C38.722 36.8617 36.7452 36.8402 35.0312 35.9403C33.933 35.363 32.1434 34.0938 31.6753 31.2039C31.3008 28.8878 32.237 27.3568 33.094 26.1628C33.5333 25.5497 34.3579 24.9546 35.1212 24.5458C36.2482 23.9399 36.5291 23.9686 36.756 25.202C36.9396 26.1987 37.7101 26.9911 38.6247 27.364C40.0218 27.934 41.3289 28.6691 42.3947 29.7662C43.4497 30.8526 44.6236 32.0465 44.2239 33.66V33.6564ZM40.2955 31.6987C40.2955 30.9924 39.7194 30.4152 39.0064 30.4152C38.2935 30.4152 37.7174 30.9888 37.7174 31.6987C37.7174 32.4086 38.2935 32.9823 39.0064 32.9823C39.7194 32.9823 40.2955 32.4086 40.2955 31.6987ZM16.6098 32.7421C19.5012 30.5514 22.371 28.3105 25.1003 25.9226C30.289 21.3907 31.5853 13.6892 28.323 7.65133C25.1507 1.77483 17.9889 -1.25844 11.4247 0.494834C4.63368 2.30906 0.298381 8.20348 0.507224 15.611C0.989724 15.654 1.57305 15.4675 2.03754 15.2919C5.15219 14.1051 8.18762 14.3776 10.7838 16.744C13.2107 18.9526 13.8768 22.0504 12.8146 25.4314C11.954 28.2388 10.9242 30.9924 9.98439 33.7783C8.83935 37.1737 8.5513 40.5296 10.791 44.6493C10.2508 38.823 12.9262 35.5387 16.6134 32.7457L16.6098 32.7421ZM41.012 41.0352C40.5835 40.7591 40.3279 40.5296 39.5357 40.4436C38.776 40.3611 38.1963 40.5511 37.8254 40.777C37.3429 41.071 37.134 41.2467 36.9828 41.5622C36.8496 41.8383 36.9504 42.2184 37.2961 42.2578C38.1098 42.3546 38.9272 42.4478 39.741 42.5446C40.1911 42.5984 40.6448 42.6486 41.0949 42.7024C41.2137 42.7167 41.3325 42.7382 41.4513 42.7418C41.8006 42.7526 41.923 42.1753 41.7862 41.9459C41.5594 41.555 41.4045 41.2897 41.0084 41.0352H41.012Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8841\"><rect width=\"44\" height=\"55\" fill=\"white\" transform=\"translate(0.5)\"/></clipPath></defs></svg>',\r\n wappingIsotype2: '<svg id=\"wappingIsotype2\" width=\"45\" height=\"40\" viewBox=\"0 0 45 40\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_46_8842)\"><path id=\"path\" d=\"M42.3339 0.926238C39.9109 -0.0542108 38.7396 1.57292 38.5508 1.96579L22.9255 32.7109L19.7018 17.427C19.548 16.7247 19.3627 16.2066 19.1494 15.8729C18.9361 15.5391 17.5795 13.7555 15.202 14.4891C12.5727 15.3027 12.8594 17.274 12.8 17.792C12.7685 18.0354 12.793 18.3031 12.8699 18.5917C12.9468 18.8838 13.0167 19.1932 13.0762 19.5304C13.0762 19.5304 16.7719 34.2928 17.2054 35.8713C17.4641 36.6431 17.562 36.9803 17.7019 37.2828C17.8383 37.5888 17.9851 37.8634 18.1389 38.1068C18.569 38.8995 19.3347 39.4349 20.4396 39.7096C20.6843 39.7687 20.9535 39.8174 21.2437 39.8452C21.5339 39.8765 21.8031 39.8904 22.0479 39.8904C22.7856 39.8904 23.4884 39.7305 24.1667 39.4106C24.8415 39.0907 25.4708 38.6561 26.0512 38.1068C26.4184 37.7418 26.733 37.3732 26.9953 37.0082C27.254 36.6431 27.5092 36.2467 27.754 35.8191L43.8968 4.69506C43.9702 4.54903 45.1869 2.07705 42.3304 0.922762L42.3339 0.926238Z\" fill=\"#5F6368\"/><path id=\"path\" d=\"M12.7091 29.2793C12.4015 29.9503 12.0938 30.6074 11.7896 31.2472C11.4819 31.8869 11.1917 32.4362 10.9155 32.8951L7.78623 17.5209C7.63239 17.0341 7.29674 16.5508 6.77578 16.078C6.25482 15.6052 5.53107 15.3687 4.61152 15.3687C3.81434 15.3687 2.63257 15.473 1.7375 16.5891C0.401884 18.251 1.57667 21.5887 1.57667 21.5887C2.28293 24.5474 2.84935 26.8977 3.2794 28.6361C3.70945 30.3745 4.04511 31.7409 4.28985 32.7317C4.5346 33.7226 4.71991 34.4319 4.84228 34.8595C4.96465 35.2872 5.08703 35.6661 5.2094 36.0034H5.16395C5.25485 36.3406 5.37723 36.6987 5.53107 37.0777C5.68491 37.4601 5.85273 37.8009 6.03804 38.1068C6.59047 38.8995 7.37366 39.4349 8.38411 39.7096C8.62886 39.7687 8.89109 39.8174 9.1673 39.8452C9.44352 39.8765 9.70225 39.8904 9.95049 39.8904C10.7162 39.8904 11.4539 39.7374 12.1602 39.4315C12.8665 39.1255 13.4783 38.6701 13.9993 38.0581C14.1531 37.9052 14.321 37.7139 14.5063 37.488C14.6916 37.2585 14.8594 37.0082 15.0132 36.7335L15.6041 35.7391L13.4678 27.6139C13.2196 28.1598 12.9679 28.7091 12.7091 29.2758V29.2793Z\" fill=\"#5F6368\"/></g><defs><clipPath id=\"clip0_46_8842\"><rect width=\"44\" height=\"40\" fill=\"white\" transform=\"translate(0.5)\"/></clipPath></defs></svg>', \r\n itx: '<svg width=\"164\" height=\"32\" viewBox=\"0 0 164 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g clip-path=\"url(#clip0_6798_515)\"><path d=\"M26.6038 4.78003C31.5538 4.78003 35.2138 7.57003 35.6938 12.1H31.9438C31.1938 9.25003 29.4238 7.84003 26.6038 7.84003C22.5237 7.84003 20.0938 11.23 20.0938 16C20.0938 20.74 22.4938 24.16 26.6038 24.16C29.6638 24.16 31.6738 22 32.0638 18.55H35.7238C35.3338 23.68 31.8838 27.22 26.6038 27.22C23.5738 27.22 21.1138 26.14 19.1937 24.04C17.3037 21.91 16.3438 19.21 16.3438 16C16.3438 9.88003 20.1537 4.78003 26.6038 4.78003Z\" fill=\"black\"/><path d=\"M40.3341 5.29003H44.0841V15.04L53.6241 5.29003H58.2441L49.6941 13.84L58.8441 26.71H54.1641L47.1441 16.48L44.0841 19.51V26.71H40.3341V5.29003Z\" fill=\"black\"/><path d=\"M62.0713 5.29003H71.6713C76.2613 5.29003 78.8113 7.81003 78.8113 11.92C78.8113 16.09 76.2013 18.49 71.6713 18.49H65.8213V26.71H62.0713V5.29003ZM65.8213 15.43H71.4013C73.3813 15.43 75.0613 14.23 75.0613 11.89C75.0613 9.49003 73.7713 8.35003 71.4913 8.35003H65.8213V15.43Z\" fill=\"black\"/></g><rect width=\"30\" height=\"1\" transform=\"matrix(0 -1 1 0 86.8115 31)\" fill=\"black\"/><g clip-path=\"url(#clip1_6798_515)\"><path d=\"M98.5075 3.02393C99.6275 3.02393 100.66 3.71193 100.804 4.87193H100.26C100.068 3.99993 99.3475 3.48793 98.5075 3.48793C97.0115 3.48793 96.3555 4.72793 96.3555 5.99993C96.3555 7.22393 96.9795 8.51193 98.5075 8.51193C99.4995 8.51193 100.228 7.76793 100.34 6.67993H100.884C100.732 8.11993 99.8115 8.97593 98.5075 8.97593C96.7315 8.97593 95.8115 7.59993 95.8115 5.99993C95.8115 4.44793 96.6915 3.02393 98.5075 3.02393Z\" fill=\"black\"/><path d=\"M101.98 3.14393H102.524V6.68793C102.524 7.83993 102.996 8.51193 104.196 8.51193C105.348 8.51193 105.876 7.91193 105.876 6.67993V3.14393H106.42V6.78393C106.42 8.11993 105.66 8.97593 104.196 8.97593C102.7 8.97593 101.98 8.07193 101.98 6.78393V3.14393Z\" fill=\"black\"/><path d=\"M109.689 3.02393C110.897 3.02393 111.809 3.67193 111.809 4.79993H111.265C111.225 3.95193 110.545 3.48793 109.697 3.48793C108.921 3.48793 108.273 3.80793 108.273 4.62393C108.273 5.21593 108.753 5.39993 109.073 5.47993L110.465 5.82393C111.569 6.09593 112.009 6.58393 112.009 7.34393C112.009 7.90393 111.705 8.97593 109.825 8.97593C108.417 8.97593 107.545 8.32793 107.545 7.11993V6.97593H108.089V7.02393C108.089 8.07193 108.801 8.51193 109.937 8.51193C110.585 8.51193 111.465 8.16793 111.465 7.35193C111.465 6.83193 111.065 6.51193 110.321 6.32793L109.017 6.00793C108.169 5.79993 107.729 5.39993 107.729 4.63193C107.729 3.98393 108.177 3.02393 109.689 3.02393Z\" fill=\"black\"/><path d=\"M112.576 3.14393H117.104V3.60793H115.112V8.85593H114.568V3.60793H112.576V3.14393Z\" fill=\"black\"/><path d=\"M120.349 3.02393C122.125 3.02393 123.037 4.41593 123.037 5.99993C123.037 7.54393 122.157 8.97593 120.349 8.97593C118.565 8.97593 117.653 7.59193 117.653 5.99993C117.653 4.42393 118.557 3.02393 120.349 3.02393ZM118.197 5.99993C118.197 7.25593 118.845 8.51193 120.349 8.51193C121.837 8.51193 122.493 7.26393 122.493 5.99993C122.493 4.75993 121.861 3.48793 120.341 3.48793C118.901 3.48793 118.197 4.67193 118.197 5.99993Z\" fill=\"black\"/><path d=\"M124.191 3.14393H124.991L126.967 8.15193L128.935 3.14393H129.735V8.85593H129.191V3.91993H129.175L127.223 8.85593H126.711L124.751 3.91993H124.735V8.85593H124.191V3.14393Z\" fill=\"black\"/><path d=\"M131.191 3.14393H135.135V3.60793H131.735V5.67193H134.919V6.13593H131.735V8.39193H135.175V8.85593H131.191V3.14393Z\" fill=\"black\"/><path d=\"M136.253 3.14393H138.853C139.877 3.14393 140.605 3.64793 140.605 4.63193C140.605 5.39193 140.197 5.94393 139.493 6.08793V6.10393C140.389 6.22393 140.477 6.93593 140.501 7.53593C140.517 7.92793 140.541 8.60793 140.757 8.85593H140.157C140.037 8.67193 140.021 8.19193 139.997 7.80793C139.965 7.24793 139.877 6.88793 139.685 6.63993C139.509 6.41593 139.245 6.31993 138.941 6.31993H136.797V8.85593H136.253V3.14393ZM136.797 5.85593H138.837C139.477 5.85593 140.061 5.44793 140.061 4.74393C140.061 4.00793 139.613 3.60793 138.837 3.60793H136.797V5.85593Z\" fill=\"black\"/><path d=\"M96.0835 13.1439H96.6275V16.2159L99.9475 13.1439H100.684L98.1315 15.5039L100.804 18.8559H100.1L97.7235 15.8799L96.6275 16.8959V18.8559H96.0835V13.1439Z\" fill=\"black\"/><path d=\"M101.583 13.1439H102.191L105.519 17.9759H105.535V13.1439H106.079V18.8559H105.471L102.143 14.0239H102.127V18.8559H101.583V13.1439Z\" fill=\"black\"/><path d=\"M109.936 13.0239C111.712 13.0239 112.624 14.4159 112.624 15.9999C112.624 17.5439 111.744 18.9759 109.936 18.9759C108.152 18.9759 107.24 17.5919 107.24 15.9999C107.24 14.4239 108.144 13.0239 109.936 13.0239ZM107.784 15.9999C107.784 17.2559 108.432 18.5119 109.936 18.5119C111.424 18.5119 112.08 17.2639 112.08 15.9999C112.08 14.7599 111.448 13.4879 109.928 13.4879C108.488 13.4879 107.784 14.6719 107.784 15.9999Z\" fill=\"black\"/><path d=\"M113.218 13.1439H113.802L115.098 18.1439H115.114L116.506 13.1439H117.186L118.586 18.1439H118.602L119.906 13.1439H120.45L118.874 18.8559H118.298L116.85 13.7439H116.834L115.394 18.8559H114.802L113.218 13.1439Z\" fill=\"black\"/><path d=\"M121.371 13.1439H121.915V18.3919H125.115V18.8559H121.371V13.1439Z\" fill=\"black\"/><path d=\"M125.988 13.1439H129.932V13.6079H126.532V15.6719H129.716V16.1359H126.532V18.3919H129.972V18.8559H125.988V13.1439Z\" fill=\"black\"/><path d=\"M131.05 13.1439H132.93C134.618 13.1439 135.65 13.9759 135.65 15.9999C135.65 17.8799 134.762 18.8559 132.922 18.8559H131.05V13.1439ZM131.594 18.3919H132.746C134.322 18.3919 135.106 17.7839 135.106 15.9999C135.106 14.2559 134.378 13.6079 132.73 13.6079H131.594V18.3919Z\" fill=\"black\"/><path d=\"M139.271 13.0239C140.495 13.0239 141.447 13.6959 141.655 14.9199H141.111C141.039 14.2159 140.303 13.4879 139.271 13.4879C137.759 13.4879 137.119 14.7519 137.119 15.9999C137.119 17.2639 137.767 18.5119 139.271 18.5119C140.447 18.5119 141.247 17.7359 141.247 16.4639V16.4159H139.303V15.9519H141.727V18.8559H141.335L141.263 17.8159H141.247C140.895 18.5679 140.175 18.9759 139.271 18.9759C137.503 18.9759 136.575 17.6079 136.575 15.9999C136.575 14.4319 137.471 13.0239 139.271 13.0239Z\" fill=\"black\"/><path d=\"M143.097 13.1439H147.041V13.6079H143.641V15.6719H146.825V16.1359H143.641V18.3919H147.081V18.8559H143.097V13.1439Z\" fill=\"black\"/><path d=\"M96.0835 23.1439H98.6275C99.6115 23.1439 100.316 23.7119 100.316 24.7759C100.316 25.8639 99.5795 26.4079 98.6275 26.4079H96.6275V28.8559H96.0835V23.1439ZM96.6275 25.9439H98.5075C99.2515 25.9439 99.7715 25.5759 99.7715 24.7759C99.7715 24.0639 99.3555 23.6079 98.4915 23.6079H96.6275V25.9439Z\" fill=\"black\"/><path d=\"M101.443 23.1439H101.987V28.3919H105.187V28.8559H101.443V23.1439Z\" fill=\"black\"/><path d=\"M107.731 23.1439H108.339L110.579 28.8559H109.995L109.299 27.0799H106.699L106.011 28.8559H105.427L107.731 23.1439ZM108.011 23.6879L106.867 26.6159H109.115L108.011 23.6879Z\" fill=\"black\"/><path d=\"M110.256 23.1439H114.784V23.6079H112.792V28.8559H112.248V23.6079H110.256V23.1439Z\" fill=\"black\"/><path d=\"M115.637 23.1439H119.261V23.6079H116.181V25.6719H118.917V26.1359H116.181V28.8559H115.637V23.1439Z\" fill=\"black\"/><path d=\"M122.646 23.0239C124.422 23.0239 125.334 24.4159 125.334 25.9999C125.334 27.5439 124.454 28.9759 122.646 28.9759C120.862 28.9759 119.95 27.5919 119.95 25.9999C119.95 24.4239 120.854 23.0239 122.646 23.0239ZM120.494 25.9999C120.494 27.2559 121.142 28.5119 122.646 28.5119C124.134 28.5119 124.79 27.2639 124.79 25.9999C124.79 24.7599 124.158 23.4879 122.638 23.4879C121.198 23.4879 120.494 24.6719 120.494 25.9999Z\" fill=\"black\"/><path d=\"M126.504 23.1439H129.104C130.128 23.1439 130.856 23.6479 130.856 24.6319C130.856 25.3919 130.448 25.9439 129.744 26.0879V26.1039C130.64 26.2239 130.728 26.9359 130.752 27.5359C130.768 27.9279 130.792 28.6079 131.008 28.8559H130.408C130.288 28.6719 130.272 28.1919 130.248 27.8079C130.216 27.2479 130.128 26.8879 129.936 26.6399C129.76 26.4159 129.496 26.3199 129.192 26.3199H127.048V28.8559H126.504V23.1439ZM127.048 25.8559H129.088C129.728 25.8559 130.312 25.4479 130.312 24.7439C130.312 24.0079 129.864 23.6079 129.088 23.6079H127.048V25.8559Z\" fill=\"black\"/><path d=\"M132.143 23.1439H132.943L134.919 28.1519L136.887 23.1439H137.687V28.8559H137.143V23.9199H137.127L135.175 28.8559H134.663L132.703 23.9199H132.687V28.8559H132.143V23.1439Z\" fill=\"black\"/></g><defs><clipPath id=\"clip0_6798_515\"><rect width=\"62.4675\" height=\"22.44\" fill=\"white\" transform=\"translate(16.3438 4.78003)\"/></clipPath><clipPath id=\"clip1_6798_515\"><rect width=\"51.2691\" height=\"25.952\" fill=\"white\" transform=\"translate(95.8115 3.02393)\"/></clipPath></defs></svg>'\r\n}","import { AfterViewInit, ChangeDetectionStrategy, Component, ElementRef, Input, OnInit } from '@angular/core';\r\nimport { wappingLogos } from '../logos';\r\n\r\n@Component({\r\n selector: 'w-logos',\r\n template: `\r\n <ng-content></ng-content>\r\n @if (url != undefined && name == undefined) {\r\n <div [style]=\"'width: '+width+'px; height: '+height+'px;'\">\r\n <img [src]=\"url\" class=\"w-logo-img\">\r\n </div>\r\n }\r\n `,\r\n styleUrls: ['./w-logos.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class WLogosComponent implements OnInit, AfterViewInit{\r\n @Input('name') name!: string | undefined;\r\n @Input('width') width!: any;\r\n @Input('height') height!: any;\r\n @Input('color') color!: string;\r\n @Input('url') url!: string | undefined; \r\n\r\n constructor(private element: ElementRef) { }\r\n \r\n ngOnInit(): void {\r\n if(this.name != undefined){\r\n this.element.nativeElement.innerHTML = wappingLogos[this.name] || null; \r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if(this.name != undefined){\r\n const svgElement = this.element.nativeElement.querySelector('svg');\r\n\r\n if (svgElement) {\r\n if (this.width) {\r\n svgElement.setAttribute('width', this.width.toString());\r\n }\r\n\r\n if (this.height) {\r\n svgElement.setAttribute('height', this.height.toString());\r\n }\r\n }\r\n \r\n if(this.color){\r\n this.applyColorToPaths(this.color);\r\n }\r\n }\r\n }\r\n \r\n private applyColorToPaths(fillColor: string) {\r\n const svgElement = this.element.nativeElement.querySelector('svg');\r\n if (svgElement) {\r\n const pathElements = svgElement.querySelectorAll('path');\r\n pathElements.forEach((path:any) => {\r\n path.setAttribute('fill', fillColor);\r\n });\r\n }\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Optional, Output, Self, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, FormControlName, NG_VALUE_ACCESSOR, NgControl, Validators } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n@Component({\r\n selector: 'w-edit-input-textarea',\r\n templateUrl: './w-edit-input-textarea.component.html',\r\n styleUrls: ['./w-edit-input-textarea.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditInputTextareaComponent),\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class WEditInputTextareaComponent implements ControlValueAccessor {\r\n\r\n @Input('label') label!: string;\r\n @Input('message') message!: string;\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('placeholder') placeholder: string = \"\";\r\n\r\n @Input('rows') rows: number = 4;\r\n @Input('minlength') minlength!: number;\r\n @Input('maxlength') maxlength!: number;\r\n @Input('autoResize') autoResize: boolean = true;\r\n\r\n @Input('required') required: boolean = false;\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('successMessage') successMessage: string = \"\";\r\n @Input('requiredErrorDescription') requiredErrorDescription: string = \"Data is required\";\r\n @Input('minlengthErrorDescription') minlengthErrorDescription: string = \"Min length warning\";\r\n @Input('maxlengthErrorDescription') maxlengthErrorDescription: string = \"Max length warning\";\r\n @Input('pattern') pattern: boolean = false;\r\n @Input('patternErrorDescription') patternErrorDescription: string = \"Invalid pattern\";\r\n\r\n @Input('size') size: string = \"small\";\r\n\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('removePaddingTop') removePaddingTop: boolean = false;\r\n\r\n @Input('tooltip') tooltip!: string;\r\n @Input() tooltipPosition?: string;\r\n\r\n value: string = '';\r\n\r\n isTouched: boolean = false;\r\n onChange = (_: any) => { }\r\n onTouch = () => { }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(onChange: any): void {\r\n this.onChange = onChange;\r\n }\r\n\r\n registerOnTouched(onTouch: any): void {\r\n this.onTouch = onTouch;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onValueChanged() {\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n \r\n isRequiredValid(): boolean {\r\n return !(this.required && this.formControl?.hasError('required'));\r\n }\r\n\r\n isRequiredValidNgModel(): boolean {\r\n return !(this.required && (this.value == null || this.value.toString().trim() === ''));\r\n }\r\n}\r\n","@if (formControl) {\r\n <div class=\"w-edit-input-textarea-field\">\r\n <div class=\"flex flex-column w-edit-input-textarea-height\">\r\n @if (showLabel) {\r\n <w-input-label [label]=\"label\" [required]=\"required\" [message]=\"message\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition\" [validated]=\"isRequiredValid()\"></w-input-label>\r\n }\r\n <textarea pTextarea\r\n [ngClass]=\"{'w-edit-input-textarea-small-error': formControl.hasError('required') && formControl.dirty && requiredErrorDescription != '',\r\n 'w-edit-input-textarea-small-valid': formControl.valid && formControl.touched && successMessage != '',\r\n 'w-edit-input-textarea-small-warning': formControl.invalid && (formControl.hasError('minlength') || formControl.hasError('maxlength') || formControl.hasError('pattern')),\r\n 'flex flex-1 h-max': !autoResize}\"\r\n [autoResize]=\"autoResize\"\r\n [rows]=\"rows\"\r\n class=\"w-edit-input-textarea-small\"\r\n id=\"w-textarea\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [formControl]=\"formControl\">\r\n </textarea>\r\n </div>\r\n @if(formControl.invalid && formControl.hasError('maxlength')){ <span class=\"w-input-alert-message w-full w-input-warning-alert-text p-error block\">{{maxlengthErrorDescription}}</span> }\r\n @if(formControl.invalid && formControl.hasError('minlength')){ <span class=\"w-input-alert-message w-full w-input-warning-alert-text p-error block\">{{minlengthErrorDescription}}</span> }\r\n @if(formControl.invalid && formControl.hasError('pattern')){ <span class=\"w-input-alert-message w-full w-input-warning-alert-text p-error block\">{{patternErrorDescription}}</span> }\r\n @if(formControl.hasError('required') && formControl.dirty){ <span class=\"w-input-alert-message w-full w-input-error-alert-text p-error block\">{{requiredErrorDescription}}</span> }\r\n </div>\r\n} @else {\r\n <ng-template #noNgControl>\r\n <div class=\"flex flex-column w-edit-input-textarea-height\">\r\n @if (showLabel) {\r\n <w-input-label [label]=\"label\" [required]=\"required\" [message]=\"message\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition\" [validated]=\"isRequiredValidNgModel()\"></w-input-label>\r\n }\r\n <textarea pTextarea\r\n [disabled]=\"disabled\"\r\n minlength=\"{{minlength}}\"\r\n maxlength=\"{{maxlength}}\"\r\n pattern=\"{{pattern}}\"\r\n [autoResize]=\"autoResize\"\r\n [required]=\"required\"\r\n [rows]=\"rows\"\r\n class=\"flex flex-1 h-max w-edit-input-textarea-small\"\r\n id=\"w-textarea\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [(ngModel)]=\"value\"\r\n (input)=\"onValueChanged()\"\r\n [disabled]=\"disabled\">\r\n </textarea>\r\n </div>\r\n </ng-template>\r\n}","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\r\nimport { AbstractControl, ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-edit-select',\r\n templateUrl: './w-edit-select.component.html',\r\n styleUrls: ['./w-edit-select.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditSelectComponent),\r\n multi: true\r\n }\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class WEditSelectComponent implements OnInit, ControlValueAccessor{\r\n @Input('label') label!: string;\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('placeholder') placeholder = \"\";\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('loading') loading: boolean = false;\r\n @Input('required') required: boolean = false;\r\n @Input('size') size: string = \"small\";\r\n @Input('options') options: any;\r\n @Input('filter') filter: boolean = false;\r\n @Input('filterPlaceholder') filterPlaceholder = \"\";\r\n @Input('optionLabel') optionLabel!: string;\r\n @Input('optionValue') optionValue!: string;\r\n @Input('virtualScroll') virtualScroll: boolean = false;\r\n @Input('virtualScrollItemSize') virtualScrollItemSize!: number;\r\n @Input('appendTo') appendTo!: string;\r\n @Input('showClear') showClear: boolean = false;\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('requiredErrorDescription') errorDescription: string = \"Select an option is required\";\r\n @Input('removePaddingTop') removePaddingTop: boolean = false;\r\n @Input('tooltip') tooltip!: string;\r\n @Input() tooltipPosition?: string;\r\n\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n @Output('onClear') onClearEvent: EventEmitter<boolean> = new EventEmitter();\r\n\r\n sizeType: typeof SizeType = SizeType;\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n ngModelValue: any;\r\n\r\n ngOnInit(): void {\r\n this.showClear = !this.required;\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onOptionSelected(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n\r\n onOptionSelectForm(event: any){\r\n this.onChangeEvent.emit(event.value);\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n onInputBlur(event: Event){\r\n const newValue = (event.target as HTMLInputElement).value;\r\n this.ngModelValue = newValue;\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n\r\n onClear() {\r\n this.onClearEvent.emit(true);\r\n } \r\n\r\n isRequiredValid(): boolean {\r\n return !(this.required && this.formControl?.hasError('required'));\r\n }\r\n\r\n isRequiredValidNgModel(): boolean {\r\n return !(this.required && this.ngModelValue == null);\r\n }\r\n}\r\n","@if (formControl) {\r\n <div class=\"w-edit-select-field p-fluid field\">\r\n @if (showLabel) {\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\"\r\n [tooltipPosition]=\"tooltipPosition\" [validated]=\"isRequiredValid()\"></w-input-label>\r\n }\r\n <p-select class=\"w-edit-select-small\"\r\n [ngClass]=\"{'ng-invalid ng-dirty': formControl.dirty && formControl.hasError('required')}\"\r\n [options]=\"options\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue\"\r\n [placeholder]=\"placeholder\"\r\n [loading]=\"loading\"\r\n dropdownIcon=\"pi pi-chevron-down\"\r\n [showClear]=\"showClear\"\r\n [formControl]=\"formControl\"\r\n [filter]=\"filter\"\r\n [filterPlaceholder]=\"filterPlaceholder\" \r\n [virtualScroll]=\"virtualScroll\"\r\n [virtualScrollItemSize]=\"virtualScrollItemSize\"\r\n [appendTo]=\"appendTo\"\r\n (onClear)=\"onClear()\"\r\n (onChange)=\"onOptionSelectForm($event)\">\r\n </p-select>\r\n @if (formControl.dirty && formControl.hasError('required')) {\r\n <span\r\n class=\"w-error-message-container w-full w-error-message p-error block\">{{errorDescription}}</span>\r\n }\r\n </div>\r\n} @else {\r\n <div class=\"w-edit-select-field p-fluid field\">\r\n @if (showLabel) {\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition\" [validated]=\"isRequiredValidNgModel()\"></w-input-label>\r\n }\r\n <p-select class=\"w-edit-select-small\"\r\n [options]=\"options\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [filter]=\"filter\"\r\n [filterPlaceholder]=\"filterPlaceholder\"\r\n [loading]=\"loading\"\r\n dropdownIcon=\"pi pi-chevron-down\"\r\n [showClear]=\"showClear\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [virtualScrollItemSize]=\"virtualScrollItemSize\"\r\n [disabled]=\"disabled\"\r\n [(ngModel)]=\"ngModelValue\"\r\n (onChange)=\"onOptionSelected()\"\r\n (onClear)=\"onClear()\"\r\n [appendTo]=\"appendTo\">\r\n </p-select>\r\n </div>\r\n}\r\n","export enum TableColumnFilterTypes {\r\n None = 0,\r\n Text = 1,\r\n Multiselect = 2,\r\n Checkbox = 3,\r\n Image = 4,\r\n Boolean = 5,\r\n Date = 6\r\n}\r\n\r\nexport enum TableColumnTypes {\r\n None = 0,\r\n Text = 1,\r\n Badge = 2,\r\n Checkbox = 3,\r\n Image = 4,\r\n Boolean = 5,\r\n Date = 6,\r\n Currency = 7,\r\n Number = 8,\r\n ShortDate = 9,\r\n LongDate = 10,\r\n GeneralDateTimeShortTime = 11,\r\n GeneralDateTimeLongTime = 12,\r\n ColoredBadge = 13,\r\n Week = 14,\r\n BuisinessDateTime = 15,\r\n SecondaryCheckbox = 16,\r\n Percentage = 17,\r\n DateRaw = 18,\r\n Enum = 19\r\n}\r\n\r\nexport enum WappTableColumnAlignTypes {\r\n Right = 0,\r\n Left = 1,\r\n Center = 2,\r\n}\r\n\r\nexport enum QBDataTypeEnum{\r\n Boolean = 1,\r\n Datetime = 2,\r\n Decimal = 3,\r\n List = 4, \r\n Number = 5, \r\n Text = 6,\r\n Address = 7,\r\n StoreList = 8,\r\n ServiceList = 9,\r\n ProductList = 10,\r\n CategoryList = 11,\r\n ProductTagList = 12,\r\n SegmentList = 13,\r\n GroupList = 14,\r\n CustomerTagList = 15,\r\n TypeEventActivityList = 16,\r\n PaymentTypeList = 17,\r\n SaleChannelList = 18,\r\n CustomerChannelList = 19,\r\n OperationTypeList = 20,\r\n Multiselect = 21,\r\n NullableSelect = 22,\r\n BooleanSelect = 23,\r\n TranslatedSelect = 32, \r\n ThirdPartySystems = 33,\r\n NotificationEventList = 34,\r\n TreeList = 35,\r\n PredefinedPeriod = 36,\r\n PeriodSelect = 37\r\n}\r\n\r\nexport enum OperatorEnum{\r\n Equals = '=',\r\n NotEquals = '!=',\r\n LessThan = '<',\r\n LessThanEqual = '<=',\r\n GreaterThan = '>',\r\n GreaterThanEqual = '>=',\r\n In = 'in',\r\n NotIn = 'not in',\r\n IsNull = 'is null',\r\n IsNotNull = 'is not null',\r\n Nullable = 'nullable'\r\n}\r\n\r\nexport enum DataTypeEnum{\r\n Single = 1,\r\n Multi = 2,\r\n Nullable = 3\r\n}\r\n\r\nexport enum WDatePipeFormatType {\r\n d = 0,\r\n D = 1,\r\n g = 2,\r\n G = 3,\r\n Date = 4,\r\n}\r\n\r\nexport enum AddressEnum{\r\n Country = 1, \r\n Locality = 2, \r\n AreaLevel1 = 3, \r\n AreaLevel2 = 4, \r\n PostalCode = 5\r\n}\r\n\r\nexport enum NotificationsEventEnum{\r\n EventGroup = 1, \r\n Event = 2\r\n}\r\n\r\nexport enum PeriodSelectEnum {\r\n Last24Hours = 1, \r\n Last3Months = 2,\r\n Custom = 10\r\n}\r\n\r\nexport enum CustomColor {\r\n darkBlue1 = 1,\r\n darkBlue2 = 2,\r\n darkBlue3 = 3,\r\n purple1 = 4,\r\n purple2 = 5,\r\n purple3 = 6,\r\n pink1 = 7,\r\n pink2 = 8,\r\n pink3 = 9,\r\n green1 = 10,\r\n green2 = 11,\r\n green3 = 12,\r\n error1 = 13, \r\n error2 = 14\r\n}\r\n\r\nexport enum WDatePipeReturnType {\r\n string = 0,\r\n date = 1\r\n}\r\n\r\nexport enum TypeMedia {\r\n Image = 1,\r\n Url = 2\r\n}","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DateConversionService {\r\n\r\n constructor() { }\r\n\r\n formatUTCDate(date: string | Date): Date | null | any{\r\n const inputDate = typeof date === 'string' ? new Date(`${date}Z`) : date; \r\n\r\n if (isNaN(inputDate?.getTime())) { \r\n return null;\r\n }\r\n \r\n return new Date(inputDate.toISOString());\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-badge',\r\n templateUrl: './w-badge.component.html',\r\n styleUrls: ['./w-badge.component.scss'],\r\n standalone: false\r\n})\r\nexport class WBadgeComponent {\r\n @Input('label') label: string = \"\";\r\n @Input('color') color: string = \"default\";\r\n @Input('tooltip') tooltip!: string;\r\n @Input('maxWidthOverflow') maxWidthOverflow!: string;\r\n @Input('icon') icon: string = \"\";\r\n\r\n getIcon(): string{\r\n return this.icon ? \"pi \" + this.icon : \"\";\r\n }\r\n}\r\n","<span [class]=\"'w-badge color-' + color\" [ngClass]=\"{'w-badge-overflow-text': maxWidthOverflow}\" [pTooltip]=\"tooltip\" [style.max-width]=\"maxWidthOverflow\">\r\n @if(icon != ''){<span [class]=\"'w-badge-icon ' + icon\"></span>}\r\n {{label}}\r\n</span>\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'w-button-week',\r\n templateUrl: './w-button-week.component.html',\r\n styleUrls: ['./w-button-week.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WButtonWeekComponent),\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class WButtonWeekComponent implements OnInit, ControlValueAccessor {\r\n @Input('value') value!: number[];\r\n @Input('translations') translations!: string[];\r\n @Input('defaultEsp') defaultEsp: boolean = false; \r\n @Output('onDayClick') onDayClick: EventEmitter<MouseEvent> = new EventEmitter(); \r\n \r\n weekDays: any[] = [\r\n { name: 'Mon', value: 1, disabled: true },\r\n { name: 'Tue', value: 2, disabled: true },\r\n { name: 'Wed', value: 3, disabled: true }, \r\n { name: 'Thu', value: 4, disabled: true },\r\n { name: 'Fri', value: 5, disabled: true },\r\n { name: 'Sat', value: 6, disabled: true }, \r\n { name: 'Sun', value: 0, disabled: true }\r\n ];\r\n\r\n weekDaysEsp: any[] = [\r\n { name: 'L', value: 1, disabled: true },\r\n { name: 'M', value: 2, disabled: true },\r\n { name: 'MX', value: 3, disabled: true }, \r\n { name: 'J', value: 4, disabled: true },\r\n { name: 'V', value: 5, disabled: true },\r\n { name: 'S', value: 6, disabled: true }, \r\n { name: 'D', value: 0, disabled: true }\r\n ];\r\n\r\n isTouched: boolean = false;\r\n onChange = (_: any) => { }\r\n onTouch = () => { }\r\n\r\n ngOnInit(): void {\r\n if(this.translations){\r\n if(this.translations.length == 7){\r\n this.weekDays = this.weekDays.map((day:any, index) => {\r\n return {\r\n name: this.translations[index], \r\n value: day.value, \r\n disabled: day.disabled\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value; \r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n onValueChanged(){\r\n this.onChange(this.value); \r\n this.onTouch(); \r\n }\r\n\r\n onButtonOptionClick(event: any){\r\n this.onDayClick.emit(event.option); \r\n }\r\n}\r\n","<p-selectbutton class=\"w-button-week-small\" \r\n [options]=\"defaultEsp ? weekDaysEsp : weekDays\" \r\n [(ngModel)]=\"value\" \r\n [multiple]=\"true\" \r\n optionLabel=\"name\" \r\n optionValue=\"value\" \r\n (onChange)=\"onValueChanged()\" \r\n (onOptionClick)=\"onButtonOptionClick($event)\" \r\n optionDisabled=\"disabled\">\r\n</p-selectbutton>\r\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\nimport { DatePipe } from '@angular/common';\r\nimport { WDatePipeReturnType, WDatePipeFormatType } from '../models/enums.model';\r\nimport { DateConversionService } from '../services/date-conversion.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\n@Pipe({\r\n name: 'wappDate',\r\n standalone: false\r\n})\r\nexport class WDatePipe implements PipeTransform {\r\n\r\n constructor(\r\n private dateConversionService: DateConversionService) {}\r\n \r\n transform(date: Date | number | string, format?: WDatePipeFormatType | \"\", locale?: any | \"\", returnType?: WDatePipeReturnType) {\r\n let wappDate: any;\r\n\r\n switch(format) { \r\n case WDatePipeFormatType.d: { \r\n wappDate = new DatePipe(locale ? locale : window.navigator.language.slice(0, 2)).transform(date, 'shortDate')\r\n break; \r\n } \r\n case WDatePipeFormatType.D: { \r\n wappDate = new DatePipe(locale ? locale : window.navigator.language.slice(0, 2)).transform(date, 'fullDate')\r\n break; \r\n } \r\n case WDatePipeFormatType.g: { \r\n wappDate = new DatePipe(locale ? locale : window.navigator.language.slice(0, 2)).transform(date, 'short')?.replace(/,/g, \"\")\r\n break; \r\n } \r\n case WDatePipeFormatType.G: { \r\n wappDate = new DatePipe(locale ? locale : window.navigator.language.slice(0, 2)).transform(date, 'shortDate')! + ' '\r\n + new DatePipe(locale ? locale : window.navigator.language.slice(0, 2)).transform(date, 'mediumTime')\r\n break; \r\n }\r\n case WDatePipeFormatType.Date: { \r\n wappDate = date;\r\n wappDate = this.dateConversionService.formatUTCDate(wappDate);\r\n\r\n if(returnType == WDatePipeReturnType.date) return wappDate;\r\n\r\n wappDate = locale ?\r\n new DatePipe(locale).transform(wappDate, 'short')?.replace(/,/g, \"\") :\r\n new DatePipe(window.navigator.language.slice(0, 2)).transform(wappDate, 'short')?.replace(/,/g, \"\");\r\n break; \r\n }\r\n\r\n default: { \r\n wappDate = locale ?\r\n new DatePipe(locale).transform(date, 'short')?.replace(/,/g, \"\") :\r\n new DatePipe(window.navigator.language.slice(0, 2)).transform(date, 'short')?.replace(/,/g, \"\");\r\n break; \r\n } \r\n } \r\n return wappDate;\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'wappPercentage',\r\n standalone: false\r\n})\r\nexport class WPercentagePipe implements PipeTransform {\r\n \r\n transform(number: number) {\r\n return number + '%';\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { StoredFilterPanelQuery } from '../models/stored-filter-panel-query.model';\r\nimport { ComponentsTenantStorage } from '../models/components-tenant-storage.model';\r\nimport { StoreableTablePagination } from '../models/storeable-table-pagination.model';\r\nimport { TenantStoragePagination } from '../models/tenant-storage-pagination.model';\r\nimport { PeriodSelectEnum } from '../models/enums.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SessionStorageService {\r\n private businessData = \"businessData\";\r\n\r\n constructor() { }\r\n\r\n setComponentsTenantStorage(tenantId: string, tenantStorage: ComponentsTenantStorage) {\r\n sessionStorage.setItem(tenantId, JSON.stringify(tenantStorage));\r\n }\r\n\r\n getComponentsTenantStorage(tenantId: string): ComponentsTenantStorage {\r\n return JSON.parse(sessionStorage.getItem(tenantId)!);\r\n }\r\n\r\n setLastFilterPanelQuery(tenantId: string, storedQuery: StoredFilterPanelQuery | null) {\r\n\r\n if(storedQuery != undefined) {\r\n let allFilters:ComponentsTenantStorage = this.getAllLastFilterPanelQueries(tenantId);\r\n if(allFilters) {\r\n allFilters[storedQuery.id] = storedQuery;\r\n sessionStorage.setItem(tenantId, JSON.stringify(allFilters));\r\n } else {\r\n let tenantStorage: ComponentsTenantStorage = {\r\n [storedQuery.id]: storedQuery\r\n }\r\n sessionStorage.setItem(tenantId, JSON.stringify(tenantStorage));\r\n }\r\n }\r\n }\r\n\r\n setFilterPanelValue(tenantId: string, filterId: string, queryValue: StoredFilterPanelQuery | null) {\r\n let tenantStorage: ComponentsTenantStorage = this.getComponentsTenantStorage(tenantId);\r\n tenantStorage[filterId] = queryValue;\r\n sessionStorage.setItem(tenantId, JSON.stringify(tenantStorage));\r\n }\r\n\r\n getAllLastFilterPanelQueries(tenantId: string): ComponentsTenantStorage {\r\n return this.getComponentsTenantStorage(tenantId);\r\n }\r\n\r\n getLastFilterPanelQuery(tenantId: string, filterId: string): StoredFilterPanelQuery {\r\n return this.getComponentsTenantStorage(tenantId)?.[filterId]!;\r\n }\r\n\r\n removeLastFilterPanelQuery(tenantId: string, filterId: string) {\r\n let tenantStorage: ComponentsTenantStorage = JSON.parse(sessionStorage.getItem(tenantId)!);\r\n tenantStorage[filterId] = null;\r\n this.setComponentsTenantStorage(tenantId, tenantStorage);\r\n }\r\n\r\n getBusinessData() {\r\n return JSON.parse(sessionStorage.getItem(this.businessData)!);\r\n }\r\n\r\n setTablePaginationQuery(tenantId: string, storeablePagination: StoreableTablePagination | null) {\r\n if(storeablePagination != undefined) {\r\n let allFilters:ComponentsTenantStorage = this.getAllLastFilterPanelQueries(tenantId);\r\n if(allFilters) {\r\n allFilters[storeablePagination.id] = storeablePagination;\r\n sessionStorage.setItem(tenantId, JSON.stringify(allFilters));\r\n } else {\r\n let tenantStorage: ComponentsTenantStorage = {\r\n [storeablePagination.id]: storeablePagination\r\n }\r\n sessionStorage.setItem(tenantId, JSON.stringify(tenantStorage));\r\n }\r\n }\r\n }\r\n\r\n getStoredPagination(tenantId: string, filterId: string) {\r\n return this.getTenantStoragePaginators(tenantId)?.[filterId]!;\r\n }\r\n\r\n\r\n getTenantStoragePaginators(tenantId: string): TenantStoragePagination {\r\n return JSON.parse(sessionStorage.getItem(tenantId)!);\r\n }\r\n\r\n setTenantPeriodSelectType(tenantId: string, periodSelectName: string, periodSelectType: PeriodSelectEnum) {\r\n let allFilters: any = this.getAllLastFilterPanelQueries(tenantId);\r\n if(allFilters) {\r\n allFilters[periodSelectName] = periodSelectType;\r\n sessionStorage.setItem(tenantId, JSON.stringify(allFilters));\r\n } else {\r\n let tenantStorage: any = {\r\n [periodSelectName]: periodSelectType\r\n }\r\n sessionStorage.setItem(tenantId, JSON.stringify(tenantStorage));\r\n }\r\n }\r\n\r\n getTenantPeriodSelectType(tenantId: string, periodSelectName: string) {\r\n return this.getTenantStoragePaginators(tenantId)?.[periodSelectName]!;\r\n }\r\n\r\n removeTenantPeriodSelectType(tenantId: string, periodSelectName: string) {\r\n let tenantStorage: any = JSON.parse(sessionStorage.getItem(tenantId)!);\r\n if(tenantStorage) {\r\n delete tenantStorage[periodSelectName];\r\n sessionStorage.setItem(tenantId, JSON.stringify(tenantStorage));\r\n }\r\n }\r\n\r\n setTokens(internalApiToken: string, authApiToken: string) {\r\n let tokens = {\r\n internalApiToken: internalApiToken,\r\n authApiToken: authApiToken\r\n }\r\n sessionStorage.setItem(\"tokens\", JSON.stringify(tokens));\r\n }\r\n\r\n getTokens() {\r\n return JSON.parse(sessionStorage.getItem(\"tokens\")!);\r\n }\r\n}\r\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\nimport { SessionStorageService } from '../services/session-storage.service';\r\n\r\n@Pipe({\r\n name: 'wappCurrency',\r\n standalone: false\r\n})\r\n@Injectable({ \r\n providedIn: 'root' \r\n})\r\nexport class WCurrencyPipe implements PipeTransform {\r\n\r\n constructor(\r\n private sessionStorageService: SessionStorageService\r\n ) {}\r\n \r\n transform(value: number, digits?: number): any {\r\n let businessCurrency = this.sessionStorageService.getBusinessData().currencySymbol;\r\n let valueWithDigits = value.toFixed(digits || 2);\r\n\r\n if(businessCurrency) {\r\n if(businessCurrency == '€') {\r\n return valueWithDigits + ' ' + businessCurrency;\r\n } else {\r\n return businessCurrency + ' ' + valueWithDigits;\r\n }\r\n } else {\r\n return '$ ' + valueWithDigits;\r\n }\r\n }\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { Table } from 'primeng/table';\r\nimport { WappTable } from '../../shared/models/wapp-table.model';\r\nimport { CustomColor, TableColumnFilterTypes, TableColumnTypes, WDatePipeFormatType, WappTableColumnAlignTypes } from '../../shared/models/enums.model';\r\nimport { DateConversionService } from '../../shared/services/date-conversion.service';\r\n\r\n@Component({\r\n selector: 'w-table',\r\n templateUrl: './w-table.component.html',\r\n styleUrls: ['./w-table.component.scss'],\r\n providers: [ConfirmationService],\r\n standalone: false\r\n})\r\nexport class WTableComponent implements OnInit, OnChanges {\r\n translations: any;\r\n translateObjectName: string = \"object\"\r\n selectAll: boolean = false;\r\n tableMinWidth: number = 70;\r\n\r\n tableSkeletons: any = [{ name: '' }, { name: '' }, { name: '' }, { name: '' }];\r\n\r\n private _totalRecords: number = 0;\r\n\r\n set totalRecords(value: number) {\r\n this._totalRecords = value;\r\n }\r\n\r\n get totalRecords() {\r\n return this._totalRecords;\r\n }\r\n\r\n wappDateFormat: typeof WDatePipeFormatType = WDatePipeFormatType;\r\n \r\n @Input('loading') loading: boolean = true;\r\n @Input('elements') elements!: any[];\r\n @Input('selectedElements') selectedElements: any[] = [];\r\n @Input('wappTableObject') wappTableObject!: WappTable;\r\n @Input('rowsPerPage') rowsPerPage: number = 0;\r\n originalRowsPerPage: number = 0;\r\n @Input('singleRowSelection') singleRowSelection: boolean = false;\r\n\r\n @Output('onElementSelect') onElementSelect = new EventEmitter<any>();\r\n @Output('onViewElementSelect') onViewElementSelect = new EventEmitter<any>();\r\n @Output('onCopyElementSelect') onCopyElementSelect = new EventEmitter<any>();\r\n @Output('onEditElementSelect') onEditElementSelect = new EventEmitter<any>();\r\n @Output('onCustomElementSelect') onCustomElementSelect = new EventEmitter<any>();\r\n @Output('onDeleteElementSelect') onDeleteElementSelect = new EventEmitter<any[]>();\r\n @Output('onNewElementSelect') onNewElementSelect = new EventEmitter<boolean>();\r\n @Output('onPageChange') onPageChange = new EventEmitter<any>();\r\n @Output('onSelectedElementsChange') onSelectedElementsChange = new EventEmitter<any>();\r\n @Output('onSecondaryCheckboxChange') onSecondaryCheckboxChange = new EventEmitter<any>();\r\n\r\n @ViewChild('filter') filter!: ElementRef;\r\n @ViewChild('table') dataTable!: Table;\r\n\r\n constructor(\r\n private confirmationService: ConfirmationService,\r\n public dateConversionService: DateConversionService\r\n ) { }\r\n\r\n ngOnInit(): void { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes?.['rowsPerPage'] && changes?.['rowsPerPage'].currentValue !== changes?.['rowsPerPage'].previousValue) {\r\n if (this.originalRowsPerPage === 0 && changes?.['rowsPerPage'].currentValue !== 0) {\r\n this.originalRowsPerPage = changes?.['rowsPerPage'].currentValue;\r\n }\r\n }\r\n\r\n if (changes?.['elements'] && changes?.['elements']?.currentValue.length != 0) {\r\n this.totalRecords = changes?.['elements']?.currentValue.length;\r\n if (this.rowsPerPage === 0 && this.elements) {\r\n this.rowsPerPage = Math.min(this.elements.length, 10);\r\n } else if ((this.rowsPerPage > this.elements.length) || this.elements.length === 0) {\r\n this.rowsPerPage = Math.max(this.elements.length, 0);\r\n }else if(this.elements.length > this.rowsPerPage){\r\n if(this.originalRowsPerPage === 0){\r\n this.rowsPerPage = Math.min(this.elements.length, 10);\r\n }else if(this.rowsPerPage < this.originalRowsPerPage){\r\n this.rowsPerPage = this.elements.length;\r\n }\r\n }\r\n }\r\n }\r\n\r\n create() {\r\n this.onNewElementSelect.emit(true);\r\n }\r\n\r\n onElement(element: any) {\r\n this.onElementSelect.emit(element);\r\n }\r\n\r\n viewElement(element: any) {\r\n this.onViewElementSelect.emit(element);\r\n }\r\n\r\n editElement(element: any) {\r\n this.onEditElementSelect.emit(element);\r\n }\r\n\r\n customElement(element: any) {\r\n this.onCustomElementSelect.emit(element);\r\n }\r\n\r\n readProperty(obj: any, prop: string): any {\r\n if (typeof obj === 'undefined') {\r\n return false;\r\n }\r\n\r\n var _index = prop.indexOf('.')\r\n if (_index > -1) {\r\n return this.readProperty(obj[prop.substring(0, _index)], prop.substr(_index + 1));\r\n }\r\n return obj[prop];\r\n }\r\n\r\n confirmDeleteSelected(event: any) {\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.wappTableObject.confirmMultipleDeleteLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this.wappTableObject.confirmDeleteBtnLabel,\r\n accept: () => {\r\n this.deleteSelectedElements();\r\n }\r\n });\r\n }\r\n\r\n deleteSelectedElements() {\r\n this.onDeleteElementSelect.emit(this.selectedElements)\r\n this.selectedElements = [];\r\n }\r\n\r\n confirmDelete(event: Event, element: any) {\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.wappTableObject.confirmSingleDeleteLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n rejectButtonProps: {\r\n label: this.wappTableObject.confirmDeleteBtnLabel\r\n }, \r\n rejectButtonStyleClass: 'p-button-text p-button-sm',\r\n acceptButtonProps: {\r\n label: this.wappTableObject.confirmDeleteBtnLabel,\r\n },\r\n accept: () => {\r\n this.deleteSingleElement(element);\r\n }, \r\n defaultFocus: 'w-table-confirm-dialog'\r\n });\r\n }\r\n\r\n deleteSingleElement(element: any) {\r\n this.onDeleteElementSelect.emit([element])\r\n }\r\n\r\n copyElement(element: any) {\r\n this.onCopyElementSelect.emit(element);\r\n }\r\n\r\n confirmCopy(event: Event, element: any) {\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.wappTableObject.confirmCopyLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this.wappTableObject.confirmCopyBtnLabel,\r\n accept: () => {\r\n this.copyElement(element);\r\n }\r\n });\r\n }\r\n\r\n onSelectionChange(selectedItems : any) {\r\n if (this.singleRowSelection) {\r\n this.selectedElements = [selectedItems];\r\n } else {\r\n this.selectedElements = selectedItems;\r\n }\r\n this.selectAll = this.selectedElements.length === this.elements.length;\r\n this.onSelectedElementsChange.emit(this.selectedElements);\r\n }\r\n\r\n onSelectAllChange(event: any) {\r\n const checked = event.checked;\r\n\r\n if (checked) {\r\n this.selectedElements = this.wappTableObject.disableCheckbox ? this.getSelectableElements(this.elements) : this.elements;\r\n if(this.dataTable.filteredValue) {\r\n this.updateSelectedFilteredItems(this.dataTable.filteredValue.map(v => v[this.wappTableObject.identificator]));\r\n }\r\n this.selectAll = true;\r\n }\r\n else {\r\n this.selectedElements = [];\r\n this.selectAll = false;\r\n }\r\n\r\n this.onSelectedElementsChange.emit(this.selectedElements);\r\n }\r\n\r\n getSelectableElements(allElements: any[]) {\r\n return allElements.filter((element: any) => !this.readProperty(element, this.wappTableObject.disableCheckbox!));\r\n }\r\n\r\n updateSelectedFilteredItems(items: any[]) {\r\n this.selectedElements = this.selectedElements.filter(e => items.includes(e[this.wappTableObject.identificator]));\r\n }\r\n\r\n onSecondaryCheckboxChanges(element: any) {\r\n this.onSecondaryCheckboxChange.emit(element)\r\n }\r\n\r\n onGlobalFilter(table: Table, event: Event) {\r\n table.filterGlobal((event.target as HTMLInputElement).value, 'contains');\r\n }\r\n\r\n clear(table: Table) {\r\n table.clear();\r\n }\r\n\r\n public get tableColumnFilterTypes(): typeof TableColumnFilterTypes {\r\n return TableColumnFilterTypes;\r\n }\r\n\r\n public get tableColumnTypes(): typeof TableColumnTypes {\r\n return TableColumnTypes;\r\n }\r\n\r\n getBooleanColumnClass(index: number, valueProperty: boolean) {\r\n const booleanIconClasses = [];\r\n\r\n if (valueProperty == true) {\r\n booleanIconClasses.push(this.wappTableObject.columnBooleanTypeIcons[index].trueIcon ?? '');\r\n booleanIconClasses.push(this.wappTableObject.columnBooleanTypeIcons[index].trueIconColor ?? '');\r\n } else if (valueProperty == false) {\r\n booleanIconClasses.push(this.wappTableObject.columnBooleanTypeIcons[index].falseIcon ?? '');\r\n booleanIconClasses.push(this.wappTableObject.columnBooleanTypeIcons[index].falseIconColor ?? '');\r\n } else if (valueProperty == null) {\r\n booleanIconClasses.push(this.wappTableObject.columnBooleanTypeIcons[index].nullIcon ?? '');\r\n booleanIconClasses.push(this.wappTableObject.columnBooleanTypeIcons[index].nullIconColor ?? '');\r\n }\r\n\r\n return booleanIconClasses;\r\n }\r\n\r\n clearFilters() {\r\n this.dataTable.clear();\r\n }\r\n\r\n getTableColumnAlignClass(alignment: number) {\r\n if (alignment == WappTableColumnAlignTypes.Right) return 'text-right';\r\n if (alignment == WappTableColumnAlignTypes.Left) return 'text-left';\r\n if (alignment == WappTableColumnAlignTypes.Center) return 'text-center';\r\n return 'text-left'\r\n }\r\n\r\n getTableColumnAlignClassDefaultByColumnType(columnType: TableColumnTypes) {\r\n if (columnType == TableColumnTypes.Text) return 'text-left';\r\n if (columnType == TableColumnTypes.Currency) return 'text-left';\r\n if (columnType == TableColumnTypes.Date) return 'text-left';\r\n if (columnType == TableColumnTypes.Badge) return 'text-center';\r\n if (columnType == TableColumnTypes.Boolean) return 'text-center';\r\n if (columnType == TableColumnTypes.Image) return 'text-center';\r\n if (columnType == TableColumnTypes.Number) return 'text-right';\r\n if (columnType == TableColumnTypes.SecondaryCheckbox) return 'text-center';\r\n if (columnType == TableColumnTypes.Enum) return 'text-center';\r\n return 'text-left'\r\n }\r\n\r\n calculateColspan() {\r\n let colspan = this.wappTableObject.headers.length;\r\n this.wappTableObject.hasCheckbox ?\r\n colspan += 1 : '';\r\n this.hasActionButtons() ?\r\n colspan += 1 : '';\r\n return colspan;\r\n }\r\n\r\n hasActionButtons(): boolean {\r\n return this.wappTableObject.hasCopyButton ||\r\n this.wappTableObject.hasEditButton ||\r\n this.wappTableObject.hasViewButton ||\r\n this.wappTableObject.hasDeleteButton ||\r\n this.wappTableObject.hasCustomButton ?\r\n true : false;\r\n }\r\n\r\n pageChange(element: any) {\r\n this.onPageChange.emit(element);\r\n }\r\n\r\n getButtonCustomColorClass(customColor: CustomColor) {\r\n if(customColor == CustomColor.darkBlue1) { return 'darkBlue1' }\r\n if(customColor == CustomColor.darkBlue2) { return 'darkBlue2' }\r\n if(customColor == CustomColor.darkBlue3) { return 'darkBlue3' }\r\n if(customColor == CustomColor.purple1) { return 'purple1' }\r\n if(customColor == CustomColor.purple2) { return 'purple2' }\r\n if(customColor == CustomColor.purple3) { return 'purple3' }\r\n if(customColor == CustomColor.pink1) { return 'pink1' }\r\n if(customColor == CustomColor.pink2) { return 'pink2' }\r\n if(customColor == CustomColor.pink3) { return 'pink3' }\r\n if(customColor == CustomColor.green1) { return 'green1' }\r\n if(customColor == CustomColor.green2) { return 'green2' }\r\n if(customColor == CustomColor.green3) { return 'green3' }\r\n if(customColor == CustomColor.error1) { return 'error1' }\r\n if(customColor == CustomColor.error2) { return 'error2' }\r\n return '';\r\n }\r\n\r\n isElementSelected(id: number): boolean {\r\n return this.selectedElements && this.selectedElements.length > 0\r\n ? this.selectedElements.some(element => element[this.wappTableObject.identificator] == id)\r\n : false;\r\n }\r\n}\r\n","<ng-content select=\".filter-panel\"></ng-content>\r\n@if (wappTableObject) {\r\n <div [class.table-container]=\"wappTableObject.tableContainer\">\r\n @if (!loading) {\r\n <p-table class=\"w-table-styles\" [ngClass]=\"{'w-table-no-buttons' : !wappTableObject.hasEditButton && !wappTableObject.hasDeleteButton && !wappTableObject.hasCopyButton && !wappTableObject.customButtonConfig}\"\r\n #table\r\n [value]=\"elements\" \r\n dataKey=\"{{wappTableObject.identificator}}\"\r\n [paginator]=\"wappTableObject.hasPaginator\"\r\n [selection]=\"selectedElements\" \r\n (selectionChange)=\"onSelectionChange($event)\"\r\n [selectAll]=\"selectAll\" \r\n (selectAllChange)=\"onSelectAllChange($event)\"\r\n [showCurrentPageReport]=\"true\"\r\n [rows]=\"rowsPerPage\" \r\n [currentPageReportTemplate]=\"wappTableObject.currentPageReportTemplate ? wappTableObject.currentPageReportTemplate + ' ' + '{last}' + ' de ' + totalRecords! : 'Showing ' + '{last}' + ' of ' + totalRecords!\"\r\n [globalFilterFields]=\"wappTableObject.globalFilterFields!\" responsiveLayout=\"scroll\"\r\n [rowHover]=\"wappTableObject.hasViewButton!\" \r\n [tableStyle]=\"{'min-width': wappTableObject.tableMinWidth!}\"\r\n (onPage)=\"pageChange($event)\"\r\n [selectionMode]=\"singleRowSelection ? 'single' : 'multiple'\"\r\n stripedRows>\r\n @if (wappTableObject?.hasClearButton || wappTableObject.hasGlobalSearch || wappTableObject.hasTotalPagingSelector) {\r\n <ng-template #caption>\r\n <span class=\"flex align-items-center table-paginator p-0\">\r\n @if (wappTableObject.hasTotalPagingSelector) {\r\n <span class=\"showing-per-page\"> {{wappTableObject.currentPageReportTemplate}} </span>\r\n }\r\n @if (wappTableObject.hasTotalPagingSelector) {\r\n <p-inputnumber\r\n class=\"pl-2 showing-per-page\" size=\"small\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" [inputStyle]=\"{ width: '3rem' }\"\r\n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"totalRecords!\"\r\n decrementButtonClass=\"p-button-outlined\"\r\n incrementButtonClass=\"p-button-outlined\"\r\n incrementButtonIcon=\"pi pi-plus\"\r\n decrementButtonIcon=\"pi pi-minus\"\r\n mode=\"decimal\">\r\n </p-inputnumber>\r\n }\r\n @if (wappTableObject?.hasGlobalSearch) {\r\n <p-iconfield class=\"p-input-icon-left ml-auto\" iconPosition=\"left\" class=\"ml-auto\">\r\n <p-inputicon>\r\n <i class=\"pi pi-search\"></i>\r\n </p-inputicon>\r\n <input\r\n pInputText\r\n type=\"text\"\r\n (input)=\"onGlobalFilter(table, $event)\"\r\n [placeholder]=\"wappTableObject.searchPlaceholder\" class=\"w-full height-input w-input\"\r\n />\r\n </p-iconfield>\r\n }\r\n </span>\r\n </ng-template>\r\n }\r\n <ng-template #header>\r\n <tr>\r\n @if (wappTableObject.hasCheckbox) {\r\n <th\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[0]) : 'text-center'\">\r\n @if (wappTableObject.hasSelectAllCheckbox == true && !singleRowSelection) {\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n }\r\n </th>\r\n }\r\n @if (!wappTableObject.hasSortableColumns) {\r\n @for (header of wappTableObject?.headers; track header; let i = $index) {\r\n <th\r\n [class.image-header]=\"wappTableObject.columnTypes[wappTableObject.hasCheckbox ? i+1 : i] == tableColumnTypes.Image \"\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[wappTableObject.hasCheckbox ? i+1 : i]) : getTableColumnAlignClassDefaultByColumnType(wappTableObject.columnTypes[wappTableObject.hasCheckbox ? i+1 : i])\">\r\n {{header}}\r\n </th>\r\n }\r\n } @else {\r\n @for (filterType of wappTableObject.headers; track filterType; let i = $index) {\r\n <th [pSortableColumn]=\"wappTableObject.sortableNames[i]\"\r\n [class.image-header]=\"wappTableObject.columnTypes[wappTableObject.hasCheckbox ? i+1 : i] === tableColumnTypes.Image \"\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[wappTableObject.hasCheckbox ? i+1 : i]) : getTableColumnAlignClassDefaultByColumnType(wappTableObject.columnTypes[wappTableObject.hasCheckbox ? i+1 : i])\">\r\n {{wappTableObject.headers[i]}}\r\n @if (wappTableObject.sortableNames[i] != null) {\r\n <p-sortIcon [field]=\"wappTableObject.sortableNames[i]\"></p-sortIcon>\r\n }\r\n </th>\r\n }\r\n }\r\n @if (wappTableObject.hasDeleteButton || wappTableObject.hasEditButton || wappTableObject.hasViewButton || wappTableObject.hasCopyButton) {\r\n <th></th>\r\n }\r\n </tr>\r\n </ng-template>\r\n <ng-template #body let-element>\r\n <tr [ngClass]=\"{'row-hover': wappTableObject.hasViewButton}\"\r\n (click)=\"wappTableObject.hasClickableRow ? onElement(element) : ''\">\r\n @for (columnType of wappTableObject.columnTypes!; track columnType; let i = $index) {\r\n @if (columnType == tableColumnTypes?.Checkbox! && wappTableObject.hasCheckbox) {\r\n <td [style]=\"'width: '+wappTableObject.columnWidths![i]\"\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\">\r\n @if (wappTableObject.disableCheckbox) {\r\n <div>\r\n @if (singleRowSelection) {\r\n <p-tableRadioButton [value]=\"element\" [disabled]=\"readProperty(element, wappTableObject.disableCheckbox)\"></p-tableRadioButton>\r\n } @else {\r\n <p-tableCheckbox [value]=\"element\" [disabled]=\"readProperty(element, wappTableObject.disableCheckbox)\"></p-tableCheckbox>\r\n }\r\n </div>\r\n } @else {\r\n @if (singleRowSelection) {\r\n <p-tableRadioButton [value]=\"element\"></p-tableRadioButton>\r\n } @else {\r\n <p-tableCheckbox [value]=\"element\"></p-tableCheckbox>\r\n }\r\n }\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.Image) {\r\n <td [style]=\"'width: '+wappTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n @if (readProperty(element, wappTableObject.columns[i])) {\r\n <img\r\n [src]=\"readProperty(element, wappTableObject.columns[i])\"\r\n class=\"element-image-width\"/>\r\n }\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.Text) {\r\n <td [style]=\"'width: '+wappTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableObject.columns[i]) }}\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.Number) {\r\n <td [style]=\"'width: '+wappTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-right'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableObject.columns[i]) }}\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.Percentage) {\r\n <td [style]=\"'width: '+wappTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-right'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableObject.columns[i]) | wappPercentage }}\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.Currency) {\r\n <td [style]=\"'width: '+wappTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-right'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableObject.columns[i]) | wappCurrency }}\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.Badge) {\r\n <td [style]=\"'width: '+wappTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n <w-badge [label]=\"readProperty(element, wappTableObject.columns[i])\" [color]=\"'info'\"></w-badge>\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.Enum) {\r\n <td [style]=\"'width: '+wappTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n @for (enum of wappTableObject.enumIcon; track enum; let ind = $index) {\r\n <div>\r\n @if (enum.enumValue == readProperty(element, wappTableObject.columns[i])) {\r\n <i [class]=\"'pi '+ enum.icon +' '+enum.iconColor \"></i>\r\n }\r\n </div>\r\n }\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.ColoredBadge) {\r\n <td [style]=\"'width: '+wappTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n @for (badge of wappTableObject.coloredBadge; track badge; let ind = $index) {\r\n <div>\r\n @if (badge.coloredBadgeProperty == readProperty(element, wappTableObject.columns[i])) {\r\n <w-badge\r\n [label]=\"readProperty(element, wappTableObject.columns[i])\" [color]=\"badge.color\"></w-badge>\r\n }\r\n </div>\r\n }\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.Boolean) {\r\n <td\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n <i class=\"pi\" [ngClass]=\"getBooleanColumnClass(i, readProperty(element, wappTableObject.columns[i]))\"></i>\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.SecondaryCheckbox) {\r\n <td [style]=\"'width: '+wappTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n <p-checkbox [(ngModel)]=\"element[wappTableObject.columns[i]]\" [disabled]=\"!isElementSelected(element[wappTableObject.identificator])\" [binary]=\"true\" inputId=\"binary\" (ngModelChange)=\"onSecondaryCheckboxChanges(element)\"></p-checkbox>\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.Date) {\r\n <td\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableObject.columns[i])) | wappDate }}\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.DateRaw) {\r\n <td [style]=\"'width: '+wappTableObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableObject.columns[i]) | wappDate }}\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.ShortDate) {\r\n <td\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableObject.columns[i])) | wappDate : wappDateFormat.d }}\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.LongDate) {\r\n <td\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableObject.columns[i])) | wappDate : wappDateFormat.D }}\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.GeneralDateTimeShortTime) {\r\n <td\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableObject.columns[i])) | wappDate : wappDateFormat.g }}\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.GeneralDateTimeLongTime) {\r\n <td\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableObject.columns[i])) | wappDate : wappDateFormat.G }}\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.BuisinessDateTime) {\r\n <td\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableObject.columns[i]) | wappDate : wappDateFormat.Date }}\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.Week) {\r\n <td\r\n [ngClass]=\"wappTableObject.columnAlign ? getTableColumnAlignClass(wappTableObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n <w-button-week [value]=\"readProperty(element, wappTableObject.columns[i])\" [translations]=\"wappTableObject.weekButtonTranslations ? wappTableObject.weekButtonTranslations : []\" [defaultEsp]=\"wappTableObject.weekButtonDefaultEsp ?? false\"></w-button-week>\r\n </td>\r\n }\r\n }\r\n @if (wappTableObject.hasCustomButton || wappTableObject?.hasEditButton || wappTableObject?.hasCopyButton || wappTableObject?.hasDeleteButton || wappTableObject?.hasViewButton) {\r\n <td>\r\n <div class=\"w-table-buttons flex justify-content-end\">\r\n @if (wappTableObject?.hasViewButton && !wappTableObject.disableViewProperty) {\r\n <w-button\r\n type=\"table\" [tooltip]=\"wappTableObject.buttonTooltips?.viewTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n (onClick)=\"viewElement(element)\"\r\n icon=\"pi-eye\" buttonClass=\"w-table-button-view\">\r\n </w-button>\r\n }\r\n @if (wappTableObject.disableViewProperty) {\r\n <w-button\r\n type=\"table\"\r\n [tooltip]=\"readProperty(element, wappTableObject.disableViewProperty) ? '' : wappTableObject.buttonTooltips?.viewTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n (onClick)=\"viewElement(element)\"\r\n [disabled]=\"readProperty(element, wappTableObject.disableViewProperty)\"\r\n icon=\"pi-eye\" buttonClass=\"w-table-button-view\">\r\n </w-button>\r\n }\r\n @if (wappTableObject?.hasCustomButton) {\r\n @for (customButtonConfig of wappTableObject.customButtonConfig; track $index) {\r\n @if (!customButtonConfig?.disableProperty) {\r\n <w-button\r\n (onClick)=\"customElement({buttonId: customButtonConfig.buttonId, element: element})\"\r\n type=\"table\"\r\n [tooltip]=\"wappTableObject.buttonTooltips?.customTooltip![$index]\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n [icon]=\"customButtonConfig?.icon!\"\r\n [buttonClass]=\"'w-table-button-view' + getButtonCustomColorClass(customButtonConfig.color!) \">\r\n </w-button>\r\n }\r\n @if (customButtonConfig?.disableProperty) {\r\n <w-button\r\n type=\"table\"\r\n (onClick)=\"customElement({buttonId: customButtonConfig.buttonId, element: element})\"\r\n [disabled]=\"readProperty(element, customButtonConfig?.disableProperty!)\"\r\n [tooltip]=\"readProperty(element, customButtonConfig?.disableProperty!) ? '' : wappTableObject.buttonTooltips?.customTooltip![$index]\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n [icon]=\"customButtonConfig?.icon!\"\r\n [buttonClass]=\"'w-table-button-view ' + getButtonCustomColorClass(customButtonConfig.color!)\">\r\n </w-button>\r\n } \r\n }\r\n }\r\n @if (wappTableObject?.hasEditButton && !wappTableObject.disableEditProperty) {\r\n <w-button\r\n [tooltip]=\"wappTableObject.buttonTooltips?.editTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n type=\"table\" (onClick)=\"editElement(element)\"\r\n icon=\"pi-pencil\" buttonClass=\"w-table-button-edit\">\r\n </w-button>\r\n }\r\n @if (wappTableObject.disableEditProperty) {\r\n <w-button\r\n type=\"table\" (onClick)=\"editElement(element)\"\r\n [disabled]=\"readProperty(element, wappTableObject.disableEditProperty)\"\r\n [tooltip]=\"readProperty(element, wappTableObject.disableEditProperty) ? '' : wappTableObject.buttonTooltips?.editTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n icon=\"pi-pencil\" buttonClass=\"w-table-button-edit\">\r\n </w-button>\r\n }\r\n @if (wappTableObject?.hasCopyButton) {\r\n <w-button\r\n type=\"table\" (onClick)=\"confirmCopy($event, element)\"\r\n [tooltip]=\"wappTableObject.buttonTooltips?.copyTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n icon=\"pi-copy\" buttonClass=\"w-table-button-view\">\r\n </w-button>\r\n }\r\n @if (wappTableObject?.hasDeleteButton) {\r\n <span>\r\n @if (wappTableObject.disableDeleteProperty) {\r\n <w-button\r\n type=\"table\" (onClick)=\"confirmDelete($event, element)\"\r\n [disabled]=\"readProperty(element, wappTableObject.disableDeleteProperty)\"\r\n [tooltip]=\"readProperty(element, wappTableObject.disableDeleteProperty) ? '' : wappTableObject.buttonTooltips?.deleteTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n icon=\"pi-trash\" buttonClass=\"w-table-button-delete\">\r\n </w-button>\r\n } @else {\r\n @if (!wappTableObject?.disableDelete && !wappTableObject.disableDeleteProperty) {\r\n <w-button\r\n type=\"table\" [tooltip]=\"wappTableObject.buttonTooltips?.deleteTooltip!\"\r\n [tooltipPosition]=\"wappTableObject.buttonTooltips?.position!\"\r\n (onClick)=\"confirmDelete($event, element)\"\r\n icon=\"pi-trash\" buttonClass=\"w-table-button-delete\">\r\n </w-button>\r\n }\r\n }\r\n </span>\r\n }\r\n </div>\r\n </td>\r\n }\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"w-table-lazy-empty-message-padding\">\r\n <td [attr.colspan]=\"calculateColspan()\">{{wappTableObject.emptyMessage ? wappTableObject.emptyMessage : 'No matches.'}}</td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"loadingbody\">\r\n <tr>\r\n <td colspan=\"8\">Loading elements.</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n } @else {\r\n <p-table class=\"w-table-styles\" [value]=\"tableSkeletons\" responsiveLayout=\"scroll\" [paginator]=\"wappTableObject.hasPaginator\" [rows]=\"rowsPerPage\" [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [currentPageReportTemplate]=\"wappTableObject.currentPageReportTemplate ? wappTableObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords : 'Showing ' + rowsPerPage + ' of ' + totalRecords\"\r\n stripedRows>\r\n @if (wappTableObject?.hasClearButton || wappTableObject.hasGlobalSearch) {\r\n <ng-template pTemplate=\"caption\">\r\n <span class=\"flex align-items-center table-paginator p-0\">\r\n @if (wappTableObject.hasTotalPagingSelector) {\r\n <span class=\"showing-per-page\"> {{wappTableObject.currentPageReportTemplate}} </span>\r\n }\r\n @if (wappTableObject.hasTotalPagingSelector) {\r\n <p-inputnumber\r\n class=\"pl-2 showing-per-page\" size=\"small\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" [inputStyle]=\"{ width: '3rem' }\"\r\n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"totalRecords\"\r\n decrementButtonClass=\"p-button-outlined\"\r\n incrementButtonClass=\"p-button-outlined\"\r\n incrementButtonIcon=\"pi pi-plus\"\r\n decrementButtonIcon=\"pi pi-minus\"\r\n mode=\"decimal\">\r\n @if (wappTableObject?.hasGlobalSearch) {\r\n <span class=\"p-input-icon-left ml-auto\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" #filter\r\n [placeholder]=\"wappTableObject.searchPlaceholder\" class=\"w-full height-input w-input\"/>\r\n </span>\r\n }\r\n </p-inputnumber>\r\n }\r\n </span>\r\n </ng-template>\r\n }\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n @if (!wappTableObject.hasColumnFilters && wappTableObject.hasCheckbox) {\r\n <th>\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n }\r\n @for (header of wappTableObject?.headers; track header) {\r\n <th>\r\n {{header}}\r\n </th>\r\n }\r\n @if (wappTableObject?.hasDeleteButton || wappTableObject?.hasEditButton || wappTableObject?.hasViewButton) {\r\n <th></th>\r\n }\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\">\r\n <tr height=\"70px\">\r\n @for (item of wappTableObject.columnTypes; track item) {\r\n <td [style.width]=\"item == tableColumnTypes.Checkbox ? '8rem' : ''\" >\r\n @if (item == tableColumnTypes.Checkbox && wappTableObject.hasCheckbox) {\r\n <p-tableCheckbox></p-tableCheckbox>\r\n }\r\n @if (item != tableColumnTypes.Checkbox) {\r\n <p-skeleton></p-skeleton>\r\n }\r\n </td>\r\n }\r\n @if (wappTableObject.hasEditButton || wappTableObject.hasDeleteButton || wappTableObject.hasCopyButton || wappTableObject.hasViewButton) {\r\n <td>\r\n <div class=\"w-table-buttons flex justify-content-end\">\r\n @if (wappTableObject?.hasViewButton) {\r\n <w-button\r\n [tooltip]=\"wappTableObject.buttonTooltips?.viewTooltip!\"\r\n icon=\"pi-eye\" type=\"table\" buttonClass=\"w-table-button-view\">\r\n </w-button>\r\n }\r\n @if (wappTableObject?.hasCustomButton) {\r\n @for (customButtonConfig of wappTableObject.customButtonConfig; track $index) {\r\n <w-button\r\n [tooltip]=\"wappTableObject.buttonTooltips?.customTooltip![$index]\"\r\n [icon]=\"customButtonConfig?.icon!\" type=\"table\" [buttonClass]=\"'w-table-button-view ' + getButtonCustomColorClass(customButtonConfig.color!)\">\r\n </w-button>\r\n }\r\n }\r\n @if (wappTableObject?.hasEditButton) {\r\n <w-button\r\n [tooltip]=\"wappTableObject.buttonTooltips?.editTooltip!\"\r\n icon=\"pi-pencil\" type=\"table\" buttonClass=\"w-table-button-edit\">\r\n </w-button>\r\n }\r\n @if (wappTableObject?.hasCopyButton) {\r\n <w-button\r\n [tooltip]=\"wappTableObject.buttonTooltips?.copyTooltip!\"\r\n icon=\"pi-copy\" type=\"table\" buttonClass=\"w-table-button-view\">\r\n </w-button>\r\n }\r\n @if (wappTableObject?.hasDeleteButton) {\r\n <w-button\r\n [tooltip]=\"wappTableObject.buttonTooltips?.deleteTooltip!\"\r\n icon=\"pi-trash\" type=\"table\" buttonClass=\"w-table-button-delete\">\r\n </w-button>\r\n }\r\n </div>\r\n </td>\r\n }\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n }\r\n </div>\r\n}\r\n<p-confirmpopup></p-confirmpopup>\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LocalStorageService {\r\n \r\n private tenant = \"Tenant\";\r\n\r\n constructor() { }\r\n\r\n getTenant() {\r\n return JSON.parse(localStorage.getItem(this.tenant)!);\r\n }\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { ConfirmationService, FilterMetadata, LazyLoadEvent } from 'primeng/api';\r\nimport { Table, TableLazyLoadEvent } from 'primeng/table';\r\nimport { LazyElementQueryRequest } from '../../shared/models/lazy-element-query-request.model';\r\nimport { WappTableLazyLoading } from '../../shared/models/wapp-table-lazy-loading.model';\r\nimport { CustomColor, TableColumnFilterTypes, TableColumnTypes, WDatePipeFormatType, WappTableColumnAlignTypes } from '../../shared/models/enums.model';\r\nimport { DateConversionService } from '../../shared/services/date-conversion.service';\r\nimport { StoreableTablePagination } from '../../shared/models/storeable-table-pagination.model';\r\nimport { SessionStorageService } from '../../shared/services/session-storage.service';\r\nimport { LocalStorageService } from '../../shared/services/local-storage.service';\r\n\r\n\r\n@Component({\r\n selector: 'w-table-lazy',\r\n templateUrl: './w-table-lazy.component.html',\r\n styleUrls: ['./w-table-lazy.component.scss'],\r\n standalone: false\r\n})\r\nexport class WTableLazyComponent implements OnInit {\r\n domComponentId!: string;\r\n\r\n translations: any;\r\n lastQuery!: LazyElementQueryRequest;\r\n\r\n selectAll: boolean = false;\r\n filterElementsIndex: number = 0;\r\n wappDateFormat: typeof WDatePipeFormatType = WDatePipeFormatType;\r\n\r\n @Input('loading') loading!: boolean;\r\n @Input('elements') elements!: any[];\r\n @Input('selectedElements') selectedElements: any[] = [];\r\n @Input('rowsPerPage') rowsPerPage: number = 10;\r\n @Input('allElements') allElements!: any[];\r\n @Input('totalRecords') totalRecords!: number;\r\n @Input('maxRowsPerPage') maxRowsPerPage: number = 50;\r\n @Input('singleRowSelection') singleRowSelection: boolean = false;\r\n\r\n private _wappTableLazyLoadingObject!: WappTableLazyLoading;\r\n\r\n @Input('wappTableLazyLoadingObject') set wappTableLazyLoadingObject(value: WappTableLazyLoading) {\r\n this._wappTableLazyLoadingObject = value;\r\n }\r\n\r\n get wappTableLazyLoadingObject() {\r\n return this._wappTableLazyLoadingObject;\r\n }\r\n\r\n @Output('queryElements') queryElements = new EventEmitter<LazyElementQueryRequest>();\r\n\r\n @Output('onElementSelect') onElementSelect = new EventEmitter<any>();\r\n @Output('onViewElementSelect') onViewElementSelect = new EventEmitter<any>();\r\n @Output('onCustomElementSelect') onCustomElementSelect = new EventEmitter<any>();\r\n @Output('onCopyElementSelect') onCopyElementSelect = new EventEmitter<any>();\r\n @Output('onEditElementSelect') onEditElementSelect = new EventEmitter<any>();\r\n @Output('onDeleteElementSelect') onDeleteElementSelect = new EventEmitter<any[]>();\r\n @Output('onAllElementSelect') onAllElementSelect = new EventEmitter<boolean>();\r\n @Output('onPageChange') onPageChange = new EventEmitter<any>();\r\n @Output('onSelectedElementsChange') onSelectedElementsChange = new EventEmitter<any>();\r\n @Output('onSecondaryCheckboxChange') onSecondaryCheckboxChange = new EventEmitter<any>();\r\n\r\n @ViewChild('table', { static: false }) dataTable!: Table;\r\n\r\n constructor(\r\n private confirmationService: ConfirmationService,\r\n public dateConversionService: DateConversionService,\r\n private elementRef: ElementRef,\r\n private sessionStorage: SessionStorageService,\r\n private localStorage: LocalStorageService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.domComponentId = this.elementRef.nativeElement.id;\r\n\r\n this.syncInitialSelection();\r\n\r\n if(this._wappTableLazyLoadingObject.hasSelectAllCheckbox == undefined){\r\n this._wappTableLazyLoadingObject.hasSelectAllCheckbox = true;\r\n }\r\n }\r\n\r\n syncInitialSelection() {\r\n if (this.selectedElements && this.elements) {\r\n this.selectedElements = this.elements.filter(element =>\r\n this.isElementSelected(element[this._wappTableLazyLoadingObject.identificator])\r\n );\r\n }\r\n }\r\n \r\n loadElements(event: TableLazyLoadEvent) {\r\n this.loading = true;\r\n let storedPagination: StoreableTablePagination = this.sessionStorage.getStoredPagination(this.localStorage.getTenant().tenantId, this.domComponentId);\r\n\r\n let adaptedQuery: LazyElementQueryRequest = {\r\n first: event.first!,\r\n rows: this.rowsPerPage!,\r\n sortOrder: event.sortOrder!,\r\n sortField: event.sortField?.toString()!,\r\n filters: Object.keys(event.filters!).map((key) => {\r\n return {\r\n columnName: key!,\r\n value: (event.filters![key] as FilterMetadata)!.value,\r\n matchMode: (event.filters![key] as FilterMetadata).matchMode!\r\n }\r\n })\r\n }\r\n\r\n if(storedPagination) {\r\n adaptedQuery.first = storedPagination.query.first;\r\n adaptedQuery.rows = storedPagination.query.rows;\r\n this.rowsPerPage = storedPagination.query.rows;\r\n setTimeout(() => {\r\n this.refreshPaginationAndRows(adaptedQuery.first, adaptedQuery.rows);\r\n }, 500);\r\n }\r\n\r\n this.lastQuery = adaptedQuery;\r\n this.queryElements.emit(adaptedQuery);\r\n\r\n setTimeout(() => {\r\n this.syncInitialSelection();\r\n }, 1000);\r\n }\r\n\r\n reloadElements(rowsPerPage: number) {\r\n this.lastQuery.rows = this.rowsPerPage;\r\n\r\n let pagination: StoreableTablePagination = {\r\n id: this.domComponentId,\r\n query: {\r\n first: this.dataTable.first!,\r\n rows: rowsPerPage\r\n }\r\n };\r\n this.setStoredTablePagination(this.localStorage.getTenant().tenantId, pagination);\r\n\r\n this.queryElements.emit(this.lastQuery);\r\n }\r\n\r\n readProperty(obj: any, prop: string): any {\r\n if (prop === null) {\r\n return undefined;\r\n }\r\n if (typeof obj === 'undefined') {\r\n return false;\r\n }\r\n\r\n const properties = prop.split('.');\r\n let result = obj;\r\n\r\n for (const property of properties) {\r\n const match = property.match(/(.+?)\\[(\\d+)\\]/);\r\n if (match) {\r\n const arrayProp = match[1];\r\n const index = parseInt(match[2], 10);\r\n if (!Array.isArray(result[arrayProp]) || isNaN(index) || index < 0 || index >= result[arrayProp].length) {\r\n return undefined;\r\n }\r\n result = result[arrayProp][index];\r\n } else {\r\n if (typeof result[property] === 'undefined') {\r\n return undefined;\r\n }\r\n result = result[property];\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n onElement(element: any) {\r\n this.onElementSelect.emit(element);\r\n }\r\n\r\n viewElement(element: any) {\r\n this.onViewElementSelect.emit(element);\r\n }\r\n customElement(element: any) {\r\n this.onCustomElementSelect.emit(element);\r\n }\r\n\r\n editElement(element: any) {\r\n this.onEditElementSelect.emit(element);\r\n }\r\n\r\n confirmDeleteSelection(event: any) {\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this._wappTableLazyLoadingObject.confirmMultipleDeleteLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this._wappTableLazyLoadingObject.confirmDeleteBtnLabel,\r\n accept: () => {\r\n this.deleteSelectedElements();\r\n }\r\n });\r\n }\r\n\r\n deleteSelectedElements() {\r\n this.onDeleteElementSelect.emit(this.selectedElements)\r\n this.selectedElements = [];\r\n }\r\n\r\n confirmDelete(event: Event, element: any) {\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this._wappTableLazyLoadingObject.confirmSingleDeleteLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this._wappTableLazyLoadingObject.confirmDeleteBtnLabel,\r\n accept: () => {\r\n this.deleteSingleElement(element);\r\n }\r\n });\r\n }\r\n\r\n deleteSingleElement(element: any) {\r\n this.onDeleteElementSelect.emit([element])\r\n }\r\n\r\n copyElement(element: any) {\r\n this.onCopyElementSelect.emit(element);\r\n }\r\n\r\n confirmCopy(event: Event, element: any) {\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this._wappTableLazyLoadingObject.confirmCopyLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this._wappTableLazyLoadingObject.confirmCopyBtnLabel,\r\n accept: () => {\r\n this.copyElement(element);\r\n }\r\n });\r\n }\r\n\r\n onSelectionChange(selectedItems : any) {\r\n if (this.singleRowSelection) {\r\n this.selectedElements = [selectedItems];\r\n } else {\r\n this.selectedElements = selectedItems;\r\n }\r\n this.selectAll = this.selectedElements.length === this.elements.length;\r\n this.onSelectedElementsChange.emit(this.selectedElements);\r\n }\r\n\r\n onSelectAllChange(event: any) {\r\n const checked = event.checked;\r\n\r\n if (checked) {\r\n this.onAllElementSelect.emit(true);\r\n this.loading = true;\r\n setTimeout(() => {\r\n this.selectedElements = this._wappTableLazyLoadingObject.disableCheckbox ? this.getSelectableElements(this.allElements) : this.allElements;\r\n this.updateSelectedFilteredItems(this.dataTable.filteredValue!.map(v => v[this._wappTableLazyLoadingObject.identificator]));\r\n this.selectAll = true;\r\n this.loading = false;\r\n }, 1000);\r\n }\r\n else {\r\n this.selectedElements = [];\r\n this.selectAll = false;\r\n }\r\n\r\n this.onSelectedElementsChange.emit(this.selectedElements);\r\n }\r\n\r\n getSelectableElements(allElements: any[]) {\r\n return allElements.filter((element: any) => !this.readProperty(element, this._wappTableLazyLoadingObject.disableCheckbox!));\r\n }\r\n\r\n getBooleanColumnClass(index: number, valueProperty: boolean) {\r\n const booleanIconClasses = [];\r\n\r\n if (valueProperty == true) {\r\n booleanIconClasses.push(this._wappTableLazyLoadingObject.columnBooleanTypeIcons[index].trueIcon ?? '');\r\n booleanIconClasses.push(this._wappTableLazyLoadingObject.columnBooleanTypeIcons[index].trueIconColor ?? '');\r\n } else if (valueProperty == false) {\r\n booleanIconClasses.push(this._wappTableLazyLoadingObject.columnBooleanTypeIcons[index].falseIcon ?? '');\r\n booleanIconClasses.push(this._wappTableLazyLoadingObject.columnBooleanTypeIcons[index].falseIconColor) ?? '';\r\n } else if (valueProperty == null) {\r\n booleanIconClasses.push(this._wappTableLazyLoadingObject.columnBooleanTypeIcons[index].nullIcon ?? '');\r\n booleanIconClasses.push(this._wappTableLazyLoadingObject.columnBooleanTypeIcons[index].nullIconColor ?? '');\r\n }\r\n\r\n return booleanIconClasses;\r\n }\r\n\r\n onSecondaryCheckboxChanges(element: any) {\r\n this.onSecondaryCheckboxChange.emit(element)\r\n }\r\n\r\n clear(table: Table) {\r\n table.clear();\r\n }\r\n\r\n public get tableColumnFilterTypes(): typeof TableColumnFilterTypes {\r\n return TableColumnFilterTypes;\r\n }\r\n\r\n public get tableColumnTypes(): typeof TableColumnTypes {\r\n return TableColumnTypes;\r\n }\r\n\r\n clearFilters() {\r\n this.dataTable.clear();\r\n }\r\n\r\n getTableColumnAlignClass(alignment: number) {\r\n if(alignment == WappTableColumnAlignTypes.Right) return 'text-right';\r\n if(alignment == WappTableColumnAlignTypes.Left) return 'text-left';\r\n if(alignment == WappTableColumnAlignTypes.Center) return 'text-center';\r\n return 'text-left'\r\n }\r\n\r\n getTableColumnAlignClassDefaultByColumnType(columnType: TableColumnTypes) {\r\n if(columnType == TableColumnTypes.Text) return 'text-left';\r\n if(columnType == TableColumnTypes.Currency) return 'text-left';\r\n if(columnType == TableColumnTypes.Date) return 'text-left';\r\n if(columnType == TableColumnTypes.Badge) return 'text-center';\r\n if(columnType == TableColumnTypes.Boolean) return 'text-center';\r\n if(columnType == TableColumnTypes.Image) return 'text-center';\r\n if(columnType == TableColumnTypes.Number) return 'text-right';\r\n if(columnType == TableColumnTypes.Enum) return 'text-center';\r\n return 'text-left'\r\n }\r\n\r\n calculateColspan() {\r\n let colspan = this._wappTableLazyLoadingObject.headers.length;\r\n this._wappTableLazyLoadingObject.hasCheckbox ?\r\n colspan += 1 : '';\r\n this.hasActionButtons() ?\r\n colspan += 1 : '';\r\n return colspan;\r\n }\r\n\r\n hasActionButtons() : boolean {\r\n return this._wappTableLazyLoadingObject.hasCopyButton ||\r\n this._wappTableLazyLoadingObject.hasEditButton ||\r\n this._wappTableLazyLoadingObject.hasViewButton ||\r\n this._wappTableLazyLoadingObject.hasDeleteButton ||\r\n this._wappTableLazyLoadingObject?.hasCustomButton ?\r\n true : false;\r\n }\r\n\r\n refreshPagination(first: number) {\r\n this.dataTable._first = first;\r\n }\r\n\r\n refreshPaginationAndRows(first: number, rows: number) {\r\n this.dataTable._first = first;\r\n this.dataTable._rows = rows;\r\n }\r\n\r\n pageChange(element: any) {\r\n let pagination: StoreableTablePagination = {\r\n id: this.domComponentId,\r\n query: {\r\n first: element.first,\r\n rows: element.rows\r\n }\r\n }\r\n this.setStoredTablePagination(this.localStorage.getTenant().tenantId, pagination)\r\n this.onPageChange.emit(element);\r\n }\r\n\r\n setStoredTablePagination(tenantId: string, storedQuery: StoreableTablePagination) {\r\n this.sessionStorage.setTablePaginationQuery(tenantId, storedQuery);\r\n }\r\n\r\n getButtonCustomColorClass(customColor: CustomColor) {\r\n if(customColor == CustomColor.darkBlue1) { return 'darkBlue1' }\r\n if(customColor == CustomColor.darkBlue2) { return 'darkBlue2' }\r\n if(customColor == CustomColor.darkBlue3) { return 'darkBlue3' }\r\n if(customColor == CustomColor.purple1) { return 'purple1' }\r\n if(customColor == CustomColor.purple2) { return 'purple2' }\r\n if(customColor == CustomColor.purple3) { return 'purple3' }\r\n if(customColor == CustomColor.pink1) { return 'pink1' }\r\n if(customColor == CustomColor.pink2) { return 'pink2' }\r\n if(customColor == CustomColor.pink3) { return 'pink3' }\r\n if(customColor == CustomColor.green1) { return 'green1' }\r\n if(customColor == CustomColor.green2) { return 'green2' }\r\n if(customColor == CustomColor.green3) { return 'green3' }\r\n if(customColor == CustomColor.error1) { return 'error1' }\r\n if(customColor == CustomColor.error2) { return 'error2' }\r\n return '';\r\n }\r\n\r\n updateSelectedFilteredItems(items: any[]) {\r\n this.selectedElements = this.selectedElements.filter(e => items.includes(e[this._wappTableLazyLoadingObject.identificator]));\r\n }\r\n\r\n isElementSelected(id: number) {\r\n return this.selectedElements.some(element => element[this._wappTableLazyLoadingObject.identificator] == id);\r\n }\r\n\r\n getActualRowsPerPage(){\r\n if(this.elements && this.elements.length < this.rowsPerPage){\r\n return this.elements.length;\r\n }else{\r\n return this.rowsPerPage;\r\n }\r\n }\r\n}\r\n","<ng-content select=\".filter-panel\"></ng-content>\r\n<div *ngIf=\"wappTableLazyLoadingObject\" [class.table-container]=\"wappTableLazyLoadingObject.tableContainer\">\r\n <p-table class=\"w-table-styles\"\r\n [ngClass]=\"{'w-table-no-buttons' : !wappTableLazyLoadingObject.hasEditButton && !wappTableLazyLoadingObject.hasDeleteButton && !wappTableLazyLoadingObject.hasCopyButton && !wappTableLazyLoadingObject.customButtonConfig && !wappTableLazyLoadingObject.hasViewButton}\"\r\n #table [value]=\"elements\"\r\n dataKey=\"{{wappTableLazyLoadingObject.identificator}}\"\r\n [lazy]=\"true\"\r\n [rowHover]=\"wappTableLazyLoadingObject.hasViewButton!\"\r\n (onLazyLoad)=\"loadElements($event)\"\r\n [selection]=\"selectedElements\" (selectionChange)=\"onSelectionChange($event)\"\r\n [selectAll]=\"selectAll\" (selectAllChange)=\"onSelectAllChange($event)\"\r\n [paginator]=\"wappTableLazyLoadingObject.hasPaginator!\"\r\n [rows]=\"rowsPerPage\"\r\n [currentPageReportTemplate]=\"wappTableLazyLoadingObject.currentPageReportTemplate ? wappTableLazyLoadingObject.currentPageReportTemplate + ' ' + getActualRowsPerPage() + ' de ' + totalRecords! : 'Showing ' + rowsPerPage + ' of ' + totalRecords!\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [loading]=\"loading\"\r\n [showLoader]=\"false\"\r\n [globalFilterFields]=\"wappTableLazyLoadingObject.globalFilterFields!\"\r\n [tableStyle]=\"{'min-width': wappTableLazyLoadingObject.tableMinWidth!}\"\r\n (onPage)=\"pageChange($event)\"\r\n [selectionMode]=\"singleRowSelection ? 'single' : 'multiple'\"\r\n stripedRows>\r\n <ng-template *ngIf=\"wappTableLazyLoadingObject.hasClearButton || wappTableLazyLoadingObject.hasGlobalSearch\" pTemplate=\"caption\">\r\n <span class=\"flex align-items-center table-paginator p-0\">\r\n <span *ngIf=\"wappTableLazyLoadingObject.hasTotalPagingSelector\" class=\"showing-per-page\"> {{wappTableLazyLoadingObject.currentPageReportTemplate}} </span>\r\n <p-inputnumber *ngIf=\"wappTableLazyLoadingObject.hasTotalPagingSelector\"\r\n class=\"pl-2 showing-per-page\" size=\"small\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" [inputStyle]=\"{ width: '3rem' }\"\r\n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"maxRowsPerPage\"\r\n decrementButtonClass=\"p-button-outlined\"\r\n incrementButtonClass=\"p-button-outlined\"\r\n incrementButtonIcon=\"pi pi-plus\"\r\n decrementButtonIcon=\"pi pi-minus\"\r\n mode=\"decimal\"\r\n (ngModelChange)=\"reloadElements($event)\">\r\n </p-inputnumber>\r\n <p-iconfield *ngIf=\"wappTableLazyLoadingObject?.hasGlobalSearch\" class=\"p-input-icon-left ml-auto\" iconPosition=\"left\" class=\"ml-auto\">\r\n <p-inputicon>\r\n <i class=\"pi pi-search\"></i>\r\n </p-inputicon>\r\n <input\r\n pInputText\r\n type=\"text\"\r\n (input)=\"table.filterGlobal($event, 'contains')\"\r\n [placeholder]=\"wappTableLazyLoadingObject.searchPlaceholder\" class=\"w-full height-input w-input\"\r\n />\r\n </p-iconfield>\r\n </span>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\">\r\n <tr>\r\n <th *ngIf=\"!wappTableLazyLoadingObject.hasColumnFilters && wappTableLazyLoadingObject.hasCheckbox; else noCheckbox\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[0]) : 'text-center'\">\r\n <p-tableHeaderCheckbox *ngIf=\"wappTableLazyLoadingObject.hasSelectAllCheckbox == true && !singleRowSelection\"></p-tableHeaderCheckbox>\r\n </th>\r\n\r\n <ng-template #noCheckbox><th *ngIf=\"wappTableLazyLoadingObject.hasCheckbox\"></th></ng-template>\r\n\r\n <ng-container *ngIf=\"!wappTableLazyLoadingObject.hasSortableColumns; else something\">\r\n <th *ngFor=\"let header of wappTableLazyLoadingObject?.headers; index as i\" [class]=\"(header == 'Imagen' || header == 'Image') ? 'image-header' : ''\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[wappTableLazyLoadingObject.hasCheckbox ? i+1 : i]) : getTableColumnAlignClassDefaultByColumnType(wappTableLazyLoadingObject.columnTypes[wappTableLazyLoadingObject.hasCheckbox ? i+1 : i])\">\r\n {{header}}\r\n </th>\r\n </ng-container>\r\n\r\n <ng-template #something>\r\n <ng-template #something ngFor let-filterType [ngForOf]=\"wappTableLazyLoadingObject.headers\" let-i=\"index\">\r\n <th [pSortableColumn]=\"wappTableLazyLoadingObject.sortableNames[i]\" [class]=\"(wappTableLazyLoadingObject.headers[i] == 'Imagen' || wappTableLazyLoadingObject.headers[i] == 'Image') ? 'image-header' : ''\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[wappTableLazyLoadingObject.hasCheckbox ? i+1 : i]) : getTableColumnAlignClassDefaultByColumnType(wappTableLazyLoadingObject.columnTypes[wappTableLazyLoadingObject.hasCheckbox ? i+1 : i])\">\r\n {{wappTableLazyLoadingObject.headers[i]}}\r\n <p-sortIcon *ngIf=\"wappTableLazyLoadingObject.sortableNames[i] != null\" [field]=\"wappTableLazyLoadingObject.sortableNames[i]\"></p-sortIcon>\r\n </th>\r\n </ng-template>\r\n </ng-template>\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasDeleteButton || wappTableLazyLoadingObject.hasEditButton || wappTableLazyLoadingObject.hasViewButton || wappTableLazyLoadingObject.hasCopyButton || wappTableLazyLoadingObject?.hasCustomButton\"></th>\r\n </tr>\r\n\r\n <tr *ngIf=\"wappTableLazyLoadingObject.hasColumnFilters\">\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasCheckbox\" [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[0]) : 'text-left'\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasImage\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[wappTableLazyLoadingObject.hasCheckbox ? 1 : 0]) : getTableColumnAlignClassDefaultByColumnType(wappTableLazyLoadingObject.columnTypes[wappTableLazyLoadingObject.hasCheckbox ? 1 : 0])\">\r\n </th>\r\n <ng-template ngFor let-filterType [ngForOf]=\"wappTableLazyLoadingObject.columnFilterTypes\" let-i=\"index\">\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Text\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\">\r\n <p-columnFilter type=\"text\" [field]=\"wappTableLazyLoadingObject.filterNames[i]\"></p-columnFilter>\r\n </th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Multiselect\" [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\">\r\n <p-columnFilter [field]=\"wappTableLazyLoadingObject.filterNames[i]\" matchMode=\"in\" [showMenu]=\"false\">\r\n <ng-template pTemplate=\"filter\" let-value let-filter=\"filterCallback\">\r\n <p-multiSelect [ngModel]=\"value\" appendTo=\"body\" [options]=\"wappTableLazyLoadingObject.selectFilterElements[i]\" placeholder=\"Any\" (onChange)=\"filter($event.value)\" optionLabel=\"name\" [maxSelectedLabels]=\"1\" [selectedItemsLabel]=\"'{0} items'\">\r\n <ng-template let-option pTemplate=\"item\">\r\n <div class=\"p-multiselect-representative-option\">\r\n <span class=\"ml-1\">{{option.name}}</span>\r\n </div>\r\n </ng-template>\r\n </p-multiSelect>\r\n </ng-template>\r\n </p-columnFilter>\r\n </th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.None\"></th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Boolean\" [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-center'\">\r\n <p-columnFilter type=\"boolean\" [field]=\"wappTableLazyLoadingObject.filterNames[i]\"></p-columnFilter>\r\n </th>\r\n <th *ngIf=\"filterType == tableColumnFilterTypes.Date\" [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\">\r\n <p-columnFilter type=\"date\" [field]=\"wappTableLazyLoadingObject.filterNames[i]\"></p-columnFilter>\r\n </th>\r\n </ng-template>\r\n <th *ngIf=\"wappTableLazyLoadingObject.hasDeleteButton || wappTableLazyLoadingObject.hasEditButton || wappTableLazyLoadingObject.hasViewButton || wappTableLazyLoadingObject.hasCopyButton || wappTableLazyLoadingObject?.hasCustomButton\"></th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-element let-index=\"index\">\r\n <tr *ngIf=\"!loading\" [ngClass]=\"{'row-hover': wappTableLazyLoadingObject.hasViewButton}\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? onElement(element) : ''\">\r\n <ng-template ngFor let-columnType [ngForOf]=\"wappTableLazyLoadingObject.columnTypes\" let-i=\"index\">\r\n <td *ngIf=\"columnType == tableColumnTypes.Checkbox && wappTableLazyLoadingObject.hasCheckbox\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\" class=\"text-center\">\r\n <div *ngIf=\"wappTableLazyLoadingObject.disableCheckbox; else activeCheckbox\">\r\n <ng-container *ngIf=\"singleRowSelection; else checkboxMode\">\r\n <p-radioButton [name]=\"'table-radio'\" [value]=\"element\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableCheckbox)\" [(ngModel)]=\"selectedElements[0]\" (ngModelChange)=\"onSelectionChange(element)\"></p-radioButton>\r\n </ng-container>\r\n <ng-template #checkboxMode>\r\n <p-tableCheckbox [value]=\"element\" [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableCheckbox)\"></p-tableCheckbox>\r\n </ng-template>\r\n </div>\r\n\r\n <ng-template #activeCheckbox>\r\n <ng-container *ngIf=\"singleRowSelection; else checkboxModeActive\">\r\n <p-radioButton [name]=\"'table-radio'\" [value]=\"element\" [(ngModel)]=\"selectedElements[0]\" (ngModelChange)=\"onSelectionChange(element)\"></p-radioButton>\r\n </ng-container>\r\n <ng-template #checkboxModeActive>\r\n <p-tableCheckbox [value]=\"element\"></p-tableCheckbox>\r\n </ng-template>\r\n </ng-template>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Image\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n <img *ngIf=\"readProperty(element, wappTableLazyLoadingObject.columns[i])\"\r\n [src]=\"readProperty(element, wappTableLazyLoadingObject.columns[i])\"\r\n class=\"element-image-width\"/>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Text\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Number\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-right'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Percentage\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-right'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) | wappPercentage }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Currency\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) | wappCurrency }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Badge\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n <w-badge [label]=\"readProperty(element, wappTableLazyLoadingObject.columns[i])\" [color]=\"'info'\"></w-badge>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Enum\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-selectable-row' : ''\">\r\n <div *ngFor=\"let enum of wappTableLazyLoadingObject.enumIcon; index as ind\">\r\n <i [class]=\"'pi '+ enum.icon +' '+enum.iconColor \" *ngIf=\"enum.enumValue == readProperty(element, wappTableLazyLoadingObject.columns[i])\"></i>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.ColoredBadge\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n <div *ngFor=\"let badge of wappTableLazyLoadingObject.coloredBadge; index as ind\">\r\n <w-badge *ngIf=\"badge.coloredBadgeProperty == readProperty(element, wappTableLazyLoadingObject.columns[i])\"\r\n [label]=\"readProperty(element, wappTableLazyLoadingObject.columns[i])\" [color]=\"badge.color ? badge.color : 'info'\">\r\n </w-badge>\r\n </div>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Boolean\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n <i class=\"pi\" [ngClass]=\"getBooleanColumnClass(i, readProperty(element, wappTableLazyLoadingObject.columns[i]))\"></i>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.SecondaryCheckbox\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n <p-checkbox [(ngModel)]=\"element[wappTableLazyLoadingObject.columns[i]]\" [binary]=\"true\" inputId=\"binary\" (ngModelChange)=\"onSecondaryCheckboxChanges(element)\"></p-checkbox>\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Date\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableLazyLoadingObject.columns[i])) | wappDate }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.DateRaw\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) | wappDate }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.ShortDate\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableLazyLoadingObject.columns[i])) | wappDate : wappDateFormat.d }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.LongDate\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableLazyLoadingObject.columns[i])) | wappDate : wappDateFormat.D }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.GeneralDateTimeShortTime\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableLazyLoadingObject.columns[i])) | wappDate : wappDateFormat.g }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.GeneralDateTimeLongTime\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ dateConversionService.formatUTCDate(readProperty(element, wappTableLazyLoadingObject.columns[i])) | wappDate : wappDateFormat.G }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.BuisinessDateTime\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-left'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n {{ readProperty(element, wappTableLazyLoadingObject.columns[i]) | wappDate : wappDateFormat.Date }}\r\n </td>\r\n <td *ngIf=\"columnType == tableColumnTypes.Week\" [style]=\"'width: '+wappTableLazyLoadingObject.columnWidths[i]\"\r\n [ngClass]=\"wappTableLazyLoadingObject.columnAlign ? getTableColumnAlignClass(wappTableLazyLoadingObject.columnAlign[i]) : 'text-center'\"\r\n (click)=\"wappTableLazyLoadingObject.hasClickableRow ? viewElement(element) : ''\" [class]=\"wappTableLazyLoadingObject.hasClickableRow ? 'w-table-lazy-selectable-row' : ''\">\r\n <w-button-week [value]=\"readProperty(element, wappTableLazyLoadingObject.columns[i])\" [translations]=\"wappTableLazyLoadingObject.weekButtonTranslations ? wappTableLazyLoadingObject.weekButtonTranslations : []\" [defaultEsp]=\"wappTableLazyLoadingObject.weekButtonDefaultEsp ?? false\"></w-button-week>\r\n </td>\r\n </ng-template>\r\n <td>\r\n <div class=\"w-table-buttons flex justify-content-end align-items-end\">\r\n <w-button *ngIf=\"wappTableLazyLoadingObject?.hasViewButton\"\r\n (onClick)=\"viewElement(element)\"\r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.viewTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi-eye\" type=\"table\" buttonClass=\"w-table-button-view\">\r\n </w-button>\r\n <ng-template *ngIf=\"wappTableLazyLoadingObject?.hasCustomButton\" ngFor let-customButtonConfig [ngForOf]=\"wappTableLazyLoadingObject.customButtonConfig\" let-i=\"index\">\r\n <w-button *ngIf=\"!customButtonConfig?.disableProperty && (!customButtonConfig?.hideProperty || !readProperty(element, customButtonConfig?.hideProperty!))\"\r\n (onClick)=\"customElement({buttonId: customButtonConfig.buttonId, element: element})\"\r\n [icon]=\"customButtonConfig?.icon!\"\r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.customTooltip![i]\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n type=\"table\"\r\n [buttonClass]=\"'w-table-button-view ' + getButtonCustomColorClass(customButtonConfig.color!)\">\r\n </w-button>\r\n <w-button *ngIf=\"customButtonConfig?.disableProperty\"\r\n (onClick)=\"customElement({buttonId: customButtonConfig.buttonId, element: element})\"\r\n [disabled]=\"readProperty(element, customButtonConfig?.disableProperty!)\"\r\n [icon]=\"customButtonConfig?.icon!\"\r\n [tooltip]=\"readProperty(element, customButtonConfig?.disableProperty!) ? '' : wappTableLazyLoadingObject.buttonTooltips?.customTooltip![i]\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n type=\"table\"\r\n [buttonClass]=\"'w-table-button-view ' + getButtonCustomColorClass(customButtonConfig.color!)\">\r\n </w-button>\r\n </ng-template>\r\n <w-button *ngIf=\"wappTableLazyLoadingObject.hasEditButton && !wappTableLazyLoadingObject.disableEditProperty\"\r\n (onClick)=\"editElement(element)\"\r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.editTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi-pencil\" type=\"table\" buttonClass=\"w-table-button-edit\">\r\n </w-button>\r\n <w-button *ngIf=\"wappTableLazyLoadingObject.hasEditButton && wappTableLazyLoadingObject.disableEditProperty\"\r\n (onClick)=\"editElement(element)\"\r\n [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableEditProperty)\"\r\n [tooltip]=\"readProperty(element, wappTableLazyLoadingObject.disableEditProperty) ? '' : wappTableLazyLoadingObject.buttonTooltips?.editTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi-pencil\" type=\"table\" buttonClass=\"w-table-button-edit\">\r\n </w-button>\r\n <w-button *ngIf=\"wappTableLazyLoadingObject?.hasCopyButton\"\r\n (onClick)=\"confirmCopy($event, element)\"\r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.copyTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi-copy\" type=\"table\" buttonClass=\"w-table-button-view\">\r\n </w-button>\r\n <span *ngIf=\"wappTableLazyLoadingObject?.hasDeleteButton\">\r\n <w-button *ngIf=\"wappTableLazyLoadingObject.disableDeleteProperty; else noDisableDelete\"\r\n (onClick)=\"confirmDelete($event, element)\"\r\n [disabled]=\"readProperty(element, wappTableLazyLoadingObject.disableDeleteProperty)\"\r\n [tooltip]=\"readProperty(element, wappTableLazyLoadingObject.disableDeleteProperty) ? '' : wappTableLazyLoadingObject.buttonTooltips?.deleteTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi-trash\" type=\"table\" buttonClass=\"w-table-button-delete\">\r\n </w-button>\r\n <ng-template #noDisableDelete>\r\n <w-button (onClick)=\"confirmDelete($event, element)\"\r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.deleteTooltip!\"\r\n [tooltipPosition]=\"wappTableLazyLoadingObject.buttonTooltips?.position!\"\r\n icon=\"pi-trash\" type=\"table\" buttonClass=\"w-table-button-delete\">\r\n </w-button>\r\n </ng-template>\r\n </span>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"loadingbody\">\r\n <tr height=\"70px\" *ngFor=\"let n of [0,1,2,3,4]\">\r\n <td *ngFor=\"let item of wappTableLazyLoadingObject.columnTypes\" [style.width]=\"item == tableColumnTypes.Checkbox ? '8rem' : ''\" >\r\n <p-tableCheckbox *ngIf=\"item == tableColumnTypes.Checkbox && wappTableLazyLoadingObject.hasCheckbox\"></p-tableCheckbox>\r\n <p-skeleton *ngIf=\"item == tableColumnTypes.Image\" width=\"6rem\" height=\"4rem\"></p-skeleton>\r\n <p-skeleton *ngIf=\"item != tableColumnTypes.Checkbox && item != tableColumnTypes.Image\"></p-skeleton>\r\n </td>\r\n <td *ngIf=\"wappTableLazyLoadingObject.hasEditButton || wappTableLazyLoadingObject.hasDeleteButton\">\r\n <div class=\"w-table-buttons flex justify-content-end\">\r\n <w-button *ngIf=\"wappTableLazyLoadingObject?.hasEditButton\"\r\n icon=\"pi-pencil\" type=\"table\" buttonClass=\"w-table-button-edit\">\r\n </w-button>\r\n <ng-template *ngIf=\"wappTableLazyLoadingObject?.hasCustomButton\" ngFor let-customButtonConfig [ngForOf]=\"wappTableLazyLoadingObject.customButtonConfig\" let-i=\"index\">\r\n <w-button\r\n [tooltip]=\"wappTableLazyLoadingObject.buttonTooltips?.customTooltip![i]\"\r\n [icon]=\"customButtonConfig?.icon!\" type=\"table\" [buttonClass]=\"'w-table-button-view ' + getButtonCustomColorClass(customButtonConfig.color!)\">\r\n </w-button>\r\n </ng-template>\r\n <w-button *ngIf=\"wappTableLazyLoadingObject?.hasDeleteButton\"\r\n icon=\"pi-trash\" type=\"table\" buttonClass=\"w-table-button-delete\">\r\n </w-button>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr class=\"w-table-lazy-empty-message-padding\">\r\n <td [attr.colspan]=\"calculateColspan()\">{{wappTableLazyLoadingObject.emptyMessage ? wappTableLazyLoadingObject.emptyMessage : 'No matches.'}}</td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n</div>\r\n<p-confirmpopup></p-confirmpopup>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-container',\r\n template: `\r\n <div class=\"w-filter-panel-container\">\r\n <ng-content></ng-content>\r\n </div>\r\n `,\r\n styleUrls: ['./w-container.component.scss'],\r\n standalone: false\r\n})\r\nexport class WContainerComponent {\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, NavigationEnd, Router } from '@angular/router';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\ninterface Breadcrumb {\r\n label: string;\r\n url?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'w-navbar',\r\n templateUrl: './w-navbar.component.html',\r\n styleUrls: ['./w-navbar.component.scss'],\r\n standalone: false\r\n})\r\nexport class WNavbarComponent {\r\n\r\n private readonly _breadcrumbs$ = new BehaviorSubject<Breadcrumb[]>([]);\r\n\r\n readonly breadcrumbs$ = this._breadcrumbs$.asObservable();\r\n\r\n constructor(private router: Router) {\r\n this.router.events.pipe(filter((event) => event instanceof NavigationEnd)).subscribe(event => {\r\n const root = this.router.routerState.snapshot.root;\r\n const breadcrumbs: Breadcrumb[] = [];\r\n this.addBreadcrumb(root, [], breadcrumbs);\r\n\r\n this._breadcrumbs$.next(breadcrumbs);\r\n });\r\n }\r\n\r\n private addBreadcrumb(route: ActivatedRouteSnapshot, parentUrl: string[], breadcrumbs: Breadcrumb[]) {\r\n const routeUrl = parentUrl.concat(route.url.map(url => url.path));\r\n const breadcrumb = route.data['breadcrumb'];\r\n const parentBreadcrumb = route.parent && route.parent.data ? route.parent.data['breadcrumb'] : null;\r\n\r\n if (breadcrumb && breadcrumb !== parentBreadcrumb) {\r\n breadcrumbs.push({\r\n label: route.data['breadcrumb'],\r\n url: '/' + routeUrl.join('/')\r\n });\r\n }\r\n\r\n if (route.firstChild) {\r\n this.addBreadcrumb(route.firstChild, routeUrl, breadcrumbs);\r\n }\r\n }\r\n}\r\n","<w-container>\r\n <div class=\"flex wrap navbar-margins\">\r\n <div class=\"flex flex-column sm:flex-row align-items-center gap-4\">\r\n <nav class=\"layout-breadcrumb\">\r\n <ol>\r\n @for (item of breadcrumbs$ | async; track item; let last = $last) {\r\n <li>{{item.label}}</li>\r\n @if (!last) {\r\n <li class=\"layout-breadcrumb-chevron\"> | </li>\r\n }\r\n }\r\n </ol>\r\n </nav>\r\n </div>\r\n <div class=\"flex sm:ml-auto\">\r\n <div class=\"navbar-button-spacing\">\r\n <!-- ToDo remplace with w-button -->\r\n <w-button icon=\"pi pi-check\" styleClass=\"p-button-outlined p-button-secondary\" icon=\"pi pi-check\"></w-button>\r\n <p-button icon=\"pi pi-check\" styleClass=\"p-button-outlined p-button-seco ndary\" icon=\"pi pi-check\"></p-button>\r\n </div>\r\n <div class=\"navbar-button-spacing\">\r\n <!-- ToDo remplace with w-button -->\r\n <p-button label=\"Submit\"></p-button>\r\n <p-button label=\"Submit\"></p-button>\r\n </div>\r\n </div>\r\n </div>\r\n</w-container>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-body',\r\n templateUrl: './w-body.component.html',\r\n styleUrls: ['./w-body.component.scss'],\r\n standalone: false\r\n})\r\nexport class WBodyComponent {\r\n @Input('showFooterSpace') showFooterSpace: boolean = false;\r\n}\r\n","<div class=\"w-body\" [ngClass]=\"{'w-body-with-footer-space' : showFooterSpace}\">\r\n <ng-content></ng-content>\r\n</div>","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-footer',\r\n templateUrl: './w-footer.component.html',\r\n styleUrls: ['./w-footer.component.scss'],\r\n standalone: false\r\n})\r\nexport class WFooterComponent implements OnInit{\r\n @Input('mainLabel') mainLabel!: string; \r\n @Input('supportLabel') supportLabel!: string;\r\n @Input('support') support: boolean = false; \r\n\r\n year!: any;\r\n\r\n ngOnInit(): void {\r\n this.year = new Date().getFullYear();\r\n }\r\n\r\n}\r\n","\r\n<div class=\"w-footer flex justify-content-between flex-wrap w-full\">\r\n <div class=\"w-info-footer flex align-items-center justify-content-center\">\r\n <w-logos [name]=\"'wappingIsotype'\" [width]=\"16\" [height]=\"20\"></w-logos>\r\n <div class=\"body textMainColor\">{{mainLabel}} {{year}} </div>\r\n </div>\r\n <div class=\"w-support-footer flex align-items-center justify-content-center\">\r\n <div class=\"subtitle2 textMainColor\">{{supportLabel}}</div>\r\n @if (support) {\r\n <w-icons name=\"support\" pTooltip=\"support\" [width]=\"16\" [height]=\"16\"></w-icons>\r\n }\r\n </div>\r\n</div>","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: 'ColorTextPipe',\r\n standalone: false\r\n})\r\nexport class ColorTextPipe implements PipeTransform {\r\n transform(value: any) {\r\n var mapObj: any = {\r\n \"string\": \"string\",\r\n \"number\": \"number\",\r\n \"boolean\": \"boolean\",\r\n \"any\": \"any\",\r\n \"null\": \"null\",\r\n \"Input\": \"Input\",\r\n \"Output\":\"Output\"\r\n };\r\n\r\n if(value){\r\n return value.replace(/\\b(?:string|number|boolean|number|any|null|Input|Output)\\b/gi, (matched: any) => mapObj[matched] != \"Input\" && mapObj[matched] != \"Output\" ? `<font color=\"#9900FF\">${mapObj[matched]}</font>`: `<font color='#ff7373'>${mapObj[matched]}</font>`);\r\n }\r\n return value;\r\n }\r\n}","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\r\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ControlValueAccessor } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-edit-multiselect',\r\n templateUrl: './w-edit-multiselect.component.html',\r\n styleUrls: ['./w-edit-multiselect.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditMultiselectComponent),\r\n multi: true\r\n }\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n standalone: false\r\n})\r\nexport class WEditMultiselectComponent implements OnInit, ControlValueAccessor{\r\n @Input('label') label!: string;\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('placeholder') placeholder = \"\";\r\n @Input('filter') filter: boolean = true;\r\n @Input('filterPlaceholder') filterPlaceholder: string = 'Search';\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('optionDisabled') optionDisabled!: string;\r\n @Input('showPanelDisabled') showPanelDisabled: boolean = false;\r\n @Input('readonly') readonly!: boolean;\r\n @Input('required') required: boolean = false;\r\n @Input('size') size: string = \"small\";\r\n @Input('options') options: any;\r\n @Input('optionLabel') optionLabel!: string;\r\n @Input('optionValue') optionValue!: string;\r\n @Input('virtualScroll') virtualScroll: boolean = false;\r\n @Input('virtualScrollItemSize') virtualScrollItemSize!: number;\r\n @Input('appendTo') appendTo!: string;\r\n @Input('showClear') showClear: boolean = false;\r\n @Input('showToggleAll') showToggleAll: boolean = false;\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('requiredErrorDescription') errorDescription: string = \"Select an option is required\";\r\n @Input('removePaddingTop') removePaddingTop: boolean = false;\r\n @Input('tooltip') tooltip!: string;\r\n @Input() tooltipPosition?: string;\r\n\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n sizeType: typeof SizeType = SizeType;\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n ngModelValue: any;\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onOptionSelected(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n\r\n onOptionSelectedForm(event: any){\r\n this.onChangeEvent.emit(event.value);\r\n }\r\n\r\n onInputBlur(event: Event){\r\n const newValue = (event.target as HTMLInputElement).value;\r\n this.ngModelValue = newValue;\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n isRequiredValid(): boolean {\r\n return !(this.required && this.formControl?.hasError('required'));\r\n }\r\n\r\n isRequiredValidNgModel(): boolean { \r\n return !(this.required && (this.ngModelValue == null || this.ngModelValue?.length == 0));\r\n }\r\n}\r\n","@if (formControl) {\r\n <div class=\"w-edit-multiselect-field p-fluid field\">\r\n @if (showLabel) {\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\"\r\n [tooltipPosition]=\"tooltipPosition\" [validated]=\"isRequiredValid()\"></w-input-label>\r\n }\r\n <p-multiselect class=\"w-edit-multiselect-small\" [ngClass]=\"{'disabled-options': showPanelDisabled}\"\r\n [options]=\"options\"\r\n display=\"chip\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue\"\r\n [optionDisabled]=\"optionDisabled\"\r\n [placeholder]=\"placeholder\"\r\n [required]=\"required\"\r\n [formControl]=\"formControl\"\r\n [filter]=\"filter\"\r\n [filterPlaceHolder]=\"filterPlaceholder\" \r\n [virtualScroll]=\"virtualScroll\"\r\n [virtualScrollItemSize]=\"virtualScrollItemSize\"\r\n [appendTo]=\"appendTo\"\r\n [showClear]=\"showClear\"\r\n [showToggleAll]=\"showToggleAll\"\r\n [maxSelectedLabels]=\"1000\"\r\n (onChange)=\"onOptionSelectedForm($event)\">\r\n </p-multiselect>\r\n @if (formControl.dirty && formControl.hasError('required')) {\r\n <span class=\"w-full w-error-message p-error block\">{{errorDescription}}</span>\r\n }\r\n </div>\r\n} @else {\r\n <div class=\"w-edit-multiselect-field p-fluid field\">\r\n @if (showLabel) {\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\"\r\n [tooltipPosition]=\"tooltipPosition\" [validated]=\"isRequiredValidNgModel()\"></w-input-label>\r\n }\r\n <p-multiselect class=\"w-edit-multiselect-small\" [ngClass]=\"{'disabled-options': showPanelDisabled}\"\r\n [options]=\"options\"\r\n display=\"chip\"\r\n [optionLabel]=\"optionLabel\"\r\n [optionValue]=\"optionValue\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [optionDisabled]=\"optionDisabled\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [virtualScrollItemSize]=\"virtualScrollItemSize\"\r\n [readonly]=\"readonly\"\r\n [(ngModel)]=\"ngModelValue\"\r\n (onChange)=\"onOptionSelected()\"\r\n [appendTo]=\"appendTo\"\r\n [showClear]=\"showClear\"\r\n [showToggleAll]=\"showToggleAll\" \r\n [maxSelectedLabels]=\"1000\">\r\n </p-multiselect>\r\n </div>\r\n}\r\n","import { EventEmitter, Input, OnChanges, Output, SimpleChanges, forwardRef } from '@angular/core';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\nimport { TreeSelect } from 'primeng/treeselect';\r\n\r\n@Component({\r\n selector: 'w-edit-treeselect',\r\n templateUrl: './w-edit-treeselect.component.html',\r\n styleUrls: ['./w-edit-treeselect.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditTreeselectComponent),\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class WEditTreeselectComponent implements OnInit, OnChanges, ControlValueAccessor {\r\n @Input('label') label!: string; \r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('placeholder') placeholder!: string;\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('required') required: boolean = false;\r\n @Input('size') size: string = \"small\";\r\n @Input('options') options: any;\r\n @Input('selectionMode') selectionMode: 'single' | 'multiple' | 'checkbox' = 'single'; \r\n @Input('appendTo') appendTo!: string; \r\n @Input('showClear') showClear: boolean = true;\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('requiredErrorDescription') errorDescription: string = \"Select an option is required\";\r\n @Input('filter') filter: boolean = true;\r\n @Input('filterBy') filterBy!: string;\r\n @Input('removePaddingTop') removePaddingTop: boolean = false; \r\n @Input('tooltip') tooltip!: string; \r\n @Input() tooltipPosition?: string;\r\n\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n sizeType: typeof SizeType = SizeType;\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n ngModelValue: any;\r\n\r\n ngOnInit(): void {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(changes['options'] && changes['options'].currentValue){\r\n this.options = changes['options'].currentValue;\r\n }\r\n }\r\n\r\n writeValue(value: any): void { \r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n \r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onOptionSelected(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n\r\n onOptionSelectedForm(event: any){\r\n this.onTouch();\r\n this.onChangeEvent.emit(event.node);\r\n }\r\n\r\n onClear(){\r\n this.ngModelValue = null;\r\n this.onOptionSelected();\r\n }\r\n\r\n onClearForm(){\r\n this.formControl?.setValue(null);\r\n this.onChangeEvent.emit(null);\r\n }\r\n\r\n onInputBlur(event: Event){\r\n const newValue = (event.target as HTMLInputElement).value;\r\n this.ngModelValue = newValue;\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n } \r\n \r\n isRequiredValid(): boolean {\r\n return !(this.required && this.formControl?.hasError('required'));\r\n }\r\n\r\n isRequiredValidNgModel(): boolean {\r\n return !(this.required && this.ngModelValue && this.ngModelValue.length == 0);\r\n }\r\n}","@if (formControl) {\r\n <div class=\"w-edit-treeselect-field p-fluid field\">\r\n @if (showLabel) {\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition\" [validated]=\"isRequiredValid()\"></w-input-label>\r\n }\r\n <p-treeselect class=\"w-edit-treeselect-small\"\r\n [ngClass]=\"{'ng-invalid ng-dirty': formControl.dirty && formControl.hasError('required')}\"\r\n [options]=\"options\"\r\n [selectionMode]=\"selectionMode\"\r\n [placeholder]=\"placeholder\"\r\n [showClear]=\"showClear\"\r\n [filter]=\"true\"\r\n [filterBy]=\"filterBy\"\r\n [required]=\"required\"\r\n [formControl]=\"formControl\"\r\n [appendTo]=\"appendTo\"\r\n (onNodeSelect)=\"onOptionSelectedForm($event)\"\r\n (onClear)=\"onClearForm()\">\r\n </p-treeselect>\r\n @if (formControl.dirty && formControl.hasError('required')) {\r\n <small class=\"w-error-message-container w-full w-error-message p-error block\">{{errorDescription}}</small>\r\n }\r\n </div>\r\n} @else {\r\n <div class=\"w-edit-treeselect-field p-fluid field\">\r\n @if (showLabel) {\r\n <w-input-label [required]=\"required\" [label]=\"label\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition\" [validated]=\"isRequiredValidNgModel()\"></w-input-label>\r\n }\r\n <p-treeselect class=\"w-edit-treeselect-small\"\r\n [options]=\"options\"\r\n [selectionMode]=\"selectionMode\"\r\n [placeholder]=\"placeholder\"\r\n [showClear]=\"showClear\"\r\n [disabled]=\"disabled\"\r\n [filter]=\"true\"\r\n [filterBy]=\"filterBy\"\r\n [(ngModel)]=\"ngModelValue\"\r\n (ngModelChange)=\"onOptionSelected()\"\r\n (onClear)=\"onClear()\"\r\n [appendTo]=\"appendTo\">\r\n </p-treeselect>\r\n </div>\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-panel-title',\r\n templateUrl: './w-panel-title.component.html',\r\n styleUrls: ['./w-panel-title.component.scss'],\r\n standalone: false\r\n})\r\nexport class WPanelTitleComponent {\r\n @Input('title') title!: string;\r\n @Input('activePaddingBottom') activePaddingBottom: boolean = true; \r\n}\r\n","<div class=\"w-panel-title w-panel-title-text\" [ngClass]=\"{'w-panel-title-bottom': activePaddingBottom == true}\">{{title}}</div>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-panel-subtitle',\r\n templateUrl: './w-panel-subtitle.component.html',\r\n styleUrls: ['./w-panel-subtitle.component.scss'],\r\n standalone: false\r\n})\r\nexport class WPanelSubtitleComponent {\r\n @Input('subtitle') subtitle!: string;\r\n @Input('activePaddingBottom') activePaddingBottom!: boolean\r\n}\r\n","<div class=\"w-panel-subtitle w-panel-subtitle-text\">{{subtitle}}</div>\r\n","import { Component, ElementRef, Input, OnInit } from '@angular/core';\r\nimport { MenuItem } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'w-panel',\r\n templateUrl: './w-panel.component.html',\r\n styleUrls: ['./w-panel.component.scss'],\r\n standalone: false\r\n})\r\nexport class WPanelComponent implements OnInit {\r\n @Input('width') width: any;\r\n @Input('title') title!: string;\r\n @Input('subtitle') subtitle!: string;\r\n @Input('activeGrid') activeGrid: boolean = true;\r\n @Input('reduced') reduced: boolean = false;\r\n @Input('justifyContent') justifyContent: string = '';\r\n @Input('activeOverflow') activeOverflow: boolean = false;\r\n @Input('heightOverflow') heightOverflow!: string;\r\n @Input('maxHeightOverflow') maxHeightOverflow!: string;\r\n @Input('backgroundColor') backgroundColor: string = '#fff';\r\n @Input('activeMaxHeight') activeMaxHeight: boolean = false; \r\n\r\n @Input('activeMenu') activeMenu: boolean = false;\r\n @Input('menuOptions') menuOptions!: MenuItem[];\r\n\r\n @Input('wPanelStyleClass') wPanelStyleClass!: string; \r\n @Input('wPanelContentStyleClass') wPanelContentStyleClass!: string; \r\n\r\n spacing4XL: string = '36px'; \r\n \r\n constructor(private elementRef: ElementRef) {}\r\n\r\n ngOnInit(): void {\r\n this.elementRef.nativeElement.style.setProperty(\"--bgcolor\", this.backgroundColor);\r\n }\r\n \r\n getCombinedClasses() {\r\n let classes = [];\r\n \r\n if (this.activeGrid) {\r\n classes.push('w-panel-content grid');\r\n }\r\n \r\n if (this.justifyContent.length > 0) {\r\n classes.push('flex flex-wrap '+this.justifyContent);\r\n }\r\n\r\n if(this.activeOverflow){\r\n classes.push('w-panel-overflow');\r\n }\r\n \r\n return classes.join(' ');\r\n }\r\n}\r\n","<div [ngClass]=\"{ 'w-panel': !reduced, 'w-reduced-panel': reduced}\" class=\"w-full h-full {{wPanelStyleClass}}\">\r\n @if (activeMenu == true) {\r\n <div class=\"flex flex-wrap\" [ngClass]=\"{'justify-content-between': title, 'justify-content-end': !title}\">\r\n @if (title) {\r\n <w-panel-title class=\"flex\" [title]=\"title\"></w-panel-title>\r\n }\r\n <div class=\"flex\">\r\n <p-button icon=\"pi pi-ellipsis-v\" styleClass=\"w-menu-button-x-small p-button-text\" (onClick)=\"menu.toggle($event)\"></p-button>\r\n <p-tieredMenu styleClass=\"w-panel-menu\" #menu [model]=\"menuOptions\" [popup]=\"true\"></p-tieredMenu>\r\n </div>\r\n </div>\r\n }\r\n @if (title && activeMenu == false) {\r\n <w-panel-title [title]=\"title\"></w-panel-title>\r\n }\r\n @if (subtitle) {\r\n <w-panel-subtitle [subtitle]=\"subtitle\"></w-panel-subtitle>\r\n }\r\n <div class=\"w-panel-static-content\">\r\n <ng-content select=\".static-content\"></ng-content>\r\n </div>\r\n <div class=\"w-panel-content {{wPanelContentStyleClass}}\" [ngClass]=\"getCombinedClasses()\" [style.height]=\"heightOverflow\" [style.max-height]=\"maxHeightOverflow\" [style.padding-bottom]=\"(activeMaxHeight == true && (title != undefined)) ? spacing4XL : ''\">\r\n <ng-content></ng-content>\r\n </div>\r\n</div>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-body-container',\r\n templateUrl: './w-body-container.component.html',\r\n styleUrls: ['./w-body-container.component.scss'],\r\n standalone: false\r\n})\r\nexport class WBodyContainerComponent {\r\n\r\n}\r\n","<div class=\"grid w-body-container\">\r\n <ng-content></ng-content>\r\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\nimport { ConfirmationService } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'w-header-panel',\r\n templateUrl: './w-header-panel.component.html',\r\n styleUrls: ['./w-header-panel.component.scss'],\r\n providers: [ConfirmationService],\r\n standalone: false\r\n})\r\nexport class WHeaderPanelComponent {\r\n @Input('label') label!: string;\r\n @Input(\"backToCustomRoute\") public backToCustomRoute!: string;\r\n @Input('requireConfirmation') requireConfirmation: boolean = false;\r\n @Input('contentConfirmation') contentConfirmation!: string;\r\n @Input('acceptLabel') acceptLabel!: string;\r\n @Input('rejectLabel') rejectLabel!: string;\r\n @Input('showButtonBack') showButtonBack: boolean = false;\r\n @Input('disabledButtonBack') disabledButtonBack: boolean = false;\r\n @Input('showInfo') showInfo: boolean = false;\r\n @Output('onClickButtonBack') onClickButtonBack: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor(\r\n private location: Location,\r\n private router: Router,\r\n private confirmationService: ConfirmationService,\r\n ){}\r\n\r\n onButtonBack(event: any){\r\n if(!this.requireConfirmation){\r\n if(this.backToCustomRoute){\r\n this.router.navigate([this.backToCustomRoute])\r\n return\r\n }\r\n this.location.back();\r\n }else{\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.contentConfirmation,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this.acceptLabel,\r\n rejectLabel: this.rejectLabel,\r\n accept: () => {\r\n if(this.backToCustomRoute){\r\n this.router.navigate([this.backToCustomRoute])\r\n return\r\n }\r\n this.location.back();\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","<div class=\"w-header-panel flex flex-row-reverse flex-wrap\" [ngClass]=\"{'justify-content-between' : showButtonBack || showInfo}\">\r\n <div class=\"w-action-buttons flex flex-column lg:flex-row-reverse\">\r\n <ng-content select=\".main-actions\"></ng-content>\r\n <ng-content select=\".secondary-actions\"></ng-content>\r\n </div>\r\n <div class=\"w-left-actions flex\">\r\n @if (showButtonBack) {\r\n <w-button class=\"flex align-items-center justify-content-center\" type=\"text\" icon=\"pi-arrow-left\" (onClick)=\"onButtonBack($event)\" [disabled]=\"disabledButtonBack\"></w-button>\r\n }\r\n @if (showInfo) {\r\n <ng-content select=\".info\"></ng-content>\r\n }\r\n </div>\r\n</div>\r\n<p-confirmpopup></p-confirmpopup>","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NumberConversionService {\r\n\r\n constructor() { }\r\n\r\n getPercentageValue(value: number | string): number{\r\n let valuePercentage = typeof value === \"string\" ? Number(value) : value;\r\n \r\n if (isNaN(valuePercentage)) {\r\n throw new Error(\"Invalid value\");\r\n }\r\n\r\n return parseFloat((valuePercentage / 100).toFixed(4));\r\n }\r\n\r\n getValueByPercentage(value: number | string): number {\r\n let numericValue = typeof value === \"string\" ? Number(value) : value;\r\n \r\n if (isNaN(numericValue)) {\r\n throw new Error(\"Invalid value\");\r\n }\r\n \r\n return parseFloat((numericValue * 100).toFixed(4));\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Optional, Output, Self, SimpleChanges, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, FormControlName, NG_VALUE_ACCESSOR, NgControl, Validators } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\nimport { NumberConversionService } from '../../shared/services/number-conversion.service';\r\n\r\n@Component({\r\n selector: 'w-edit-input-number',\r\n templateUrl: './w-edit-input-number.component.html',\r\n styleUrls: ['./w-edit-input-number.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditInputNumberComponent),\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class WEditInputNumberComponent implements OnInit, OnChanges, ControlValueAccessor {\r\n value: number = 0;\r\n\r\n @Input('label') label!: string;\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('placeholder') placeholder: string = \"\";\r\n @Input('successMessage') successMessage: string = \"\";\r\n @Input('mode') mode: string = \"decimal\";\r\n @Input('minFractionDigits') minFractionDigits: number = 0;\r\n @Input('maxFractionDigits') maxFractionDigits: number = 0;\r\n\r\n @Input('required') required: boolean = false;\r\n @Input('requiredErrorDescription') requiredErrorDescription: string = \"Data is required\";\r\n\r\n @Input('disabled') disabled: boolean = false;\r\n\r\n @Input('min') min!: number;\r\n @Input('minErrorDescription') minErrorDescription: string = \"Min error\";\r\n\r\n @Input('max') max!: number;\r\n @Input('maxErrorDescription') maxErrorDescription: string = \"Max error\";\r\n\r\n @Input('prefix') prefix!: string; \r\n @Input('suffix') suffix!: string; \r\n\r\n @Input('autofocus') autofocus: boolean = false;\r\n @Input('size') size: string = \"small\";\r\n\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('removePaddingTop') removePaddingTop: boolean = false;\r\n\r\n @Input('useGrouping') useGrouping: boolean = true;\r\n\r\n @Input('tooltip') tooltip!: string;\r\n @Input() tooltipPosition?: string;\r\n\r\n private _isPercentageMode = false;\r\n isTouched: boolean = false;\r\n onChange = (_: number) => { }\r\n onTouch = () => { }\r\n\r\n constructor(private numberConversionService: NumberConversionService){}\r\n\r\n ngOnInit(): void {\r\n this.setPreSuffixMode(); \r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(changes['prefix']?.previousValue !== undefined){\r\n this.prefix = changes['prefix'].currentValue; \r\n this.setPreSuffixMode(); \r\n }\r\n\r\n if(changes['suffix']?.previousValue !== undefined){\r\n this.suffix = changes['suffix'].currentValue; \r\n this.setPreSuffixMode(); \r\n }\r\n }\r\n\r\n writeValue(value: any): void { \r\n if (value !== null && value !== undefined) {\r\n if(this._isPercentageMode){\r\n this.value = this.numberConversionService.getValueByPercentage(value); \r\n }else{\r\n this.value = +value;\r\n }\r\n } else {\r\n this.value = value;\r\n }\r\n }\r\n\r\n registerOnChange(onChange: any): void {\r\n this.onChange = onChange;\r\n }\r\n\r\n registerOnTouched(onTouch: any): void {\r\n this.onTouch = onTouch;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onValueChanged(event: any){\r\n let value = event.value;\r\n\r\n if (this._isPercentageMode && value !== null && value !== undefined) {\r\n value = this.numberConversionService.getPercentageValue(value);\r\n }\r\n\r\n this.onChange(value);\r\n this.onTouch();\r\n }\r\n\r\n onInputBlur(event: Event){\r\n const newValue: number = +(event.target as HTMLInputElement).value;\r\n this.value = newValue;\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n\r\n setPreSuffixMode(){\r\n this._isPercentageMode = this.suffix === '%' || this.prefix === '%';\r\n }\r\n\r\n isRequiredValid(): boolean {\r\n return !(this.required && this.formControl?.hasError('required'));\r\n }\r\n\r\n isRequiredValidNgModel(): boolean {\r\n return !(this.required && this.value == null);\r\n }\r\n}\r\n","@if (formControl != null) {\r\n <div class=\"w-edit-input-number-field p-fluid field\">\r\n @if (showLabel) {\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition\" [validated]=\"isRequiredValid()\"></w-input-label>\r\n }\r\n @if (getSizeName(sizeType.medium) == size) {\r\n <p-inputNumber\r\n [ngClass]=\"{'w-edit-input-number-medium-error': formControl.hasError('required') && formControl.dirty && requiredErrorDescription != '',\r\n 'w-edit-input-number-medium-valid': formControl.valid && formControl.touched && successMessage != '',\r\n 'w-edit-input-number-medium-warning': formControl.invalid && formControl.touched && (formControl.hasError('min') || formControl.hasError('max'))}\"\r\n class=\"w-edit-input-number-medium w-edit-input-number-medium-height\"\r\n styleClass=\"flex flex-1\"\r\n [mode]=\"mode\"\r\n [minFractionDigits]=\"minFractionDigits\" [maxFractionDigits]=\"maxFractionDigits\"\r\n [prefix]=\"prefix\" [suffix]=\"suffix\" [useGrouping]=\"useGrouping\"\r\n id=\"w-textarea\" [placeholder]=\"placeholder\"\r\n [required]=\"required\" [formControl]=\"formControl\" >\r\n </p-inputNumber>\r\n }\r\n @if (getSizeName(sizeType.small) == size) {\r\n <p-inputNumber\r\n [ngClass]=\"{'w-edit-input-number-small-error': formControl.hasError('required') && formControl.dirty && requiredErrorDescription != '',\r\n 'w-edit-input-number-small-valid': formControl.valid && formControl.touched && successMessage != '',\r\n 'w-edit-input-number-small-warning': formControl.invalid && formControl.touched && (formControl.hasError('min') || formControl.hasError('max'))}\"\r\n class=\"w-edit-input-number-small\"\r\n styleClass=\"flex flex-1\"\r\n [mode]=\"mode\"\r\n [minFractionDigits]=\"minFractionDigits\" [maxFractionDigits]=\"maxFractionDigits\"\r\n [prefix]=\"prefix\" [suffix]=\"suffix\" [useGrouping]=\"useGrouping\"\r\n id=\"w-textarea\" [placeholder]=\"placeholder\"\r\n [required]=\"required\" [formControl]=\"formControl\"></p-inputNumber>\r\n }\r\n <!-- <small *ngIf=\"formControl.valid && formControl.touched\" class=\"w-input-success-alert-text\">{{successMessage}}</small>-->\r\n @if (formControl.invalid && formControl.hasError('max') && formControl.touched) {\r\n <span\r\n class=\"w-input-alert-message w-input-warning-alert-text p-error block\">{{maxErrorDescription}}</span>\r\n }\r\n @if (formControl.invalid && formControl.hasError('min') && formControl.touched) {\r\n <span\r\n class=\"w-input-alert-message w-input-warning-alert-text p-error block\">{{minErrorDescription}}</span>\r\n }\r\n @if (formControl.hasError('required') && formControl.dirty) {\r\n <span\r\n class=\"w-input-alert-message w-input-error-alert-text p-error block\">{{requiredErrorDescription}}</span>\r\n }\r\n </div>\r\n} @else {\r\n <div class=\"w-edit-input-number-field p-fluid field\">\r\n @if (showLabel) {\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition\" [validated]=\"isRequiredValidNgModel()\"></w-input-label>\r\n }\r\n @if (getSizeName(sizeType.medium) == size) {\r\n <p-inputNumber [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n class=\"w-edit-input-number-medium w-edit-input-number-medium-height\"\r\n styleClass=\"flex flex-1\"\r\n [mode]=\"mode\"\r\n [minFractionDigits]=\"minFractionDigits\" [maxFractionDigits]=\"maxFractionDigits\"\r\n [min]=\"min\" [max]=\"max\" [prefix]=\"prefix\" [suffix]=\"suffix\" [useGrouping]=\"useGrouping\"\r\n id=\"w-textarea\" [placeholder]=\"placeholder\"\r\n [required]=\"required\" [(ngModel)]=\"value\" (onInput)=\"onValueChanged($event)\" [disabled]=\"disabled\"></p-inputNumber>\r\n }\r\n @if (getSizeName(sizeType.small) == size) {\r\n <p-inputNumber [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n class=\"w-edit-input-number-small\"\r\n styleClass=\"flex flex-1\"\r\n [mode]=\"mode\"\r\n [minFractionDigits]=\"minFractionDigits\" [maxFractionDigits]=\"maxFractionDigits\"\r\n [min]=\"min\" [max]=\"max\" [prefix]=\"prefix\" [suffix]=\"suffix\" [useGrouping]=\"useGrouping\"\r\n id=\"w-textarea\" [placeholder]=\"placeholder\"\r\n [required]=\"required\" [(ngModel)]=\"value\" (onInput)=\"onValueChanged($event)\" [disabled]=\"disabled\"></p-inputNumber>\r\n }\r\n </div>\r\n}\r\n","import { Component, EventEmitter, Input, Optional, Output, Self, forwardRef } from '@angular/core';\r\nimport { SizeType } from '../../shared/enums/enum';\r\nimport { NgControl, FormControlName, NG_VALUE_ACCESSOR, FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'w-input-search',\r\n templateUrl: './w-input-search.component.html',\r\n styleUrls: ['./w-input-search.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WInputSearchComponent),\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class WInputSearchComponent {\r\n @Input('label') label!: string;\r\n @Input('placeholder') placeholder: string = \"\";\r\n\r\n @Input('required') required: boolean = false;\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('hasButton') hasButton: boolean = true;\r\n @Input('disabledButton') disabledButton: boolean = false;\r\n @Input('loading') loading: boolean = false; \r\n\r\n @Input('inputIcon') inputIcon: string = '';\r\n @Input('size') size: string = \"small\";\r\n\r\n \r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('removePaddingTop') removePaddingTop: boolean = false; \r\n \r\n @Output('getInputData') getInputData: EventEmitter<any> = new EventEmitter();\r\n\r\n selectedItem: any;\r\n suggestions: any[] = [];\r\n value: any ;\r\n\r\n isTouched : boolean = false;\r\n onChange = (_:any) => { }\r\n onTouch = () => { }\r\n\r\n onInputData(){\r\n if(this.formControl){\r\n this.getInputData.emit(this.formControl.value);\r\n }else{\r\n this.getInputData.emit(this.value);\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(onChange: any): void {\r\n this.onChange = onChange;\r\n }\r\n\r\n registerOnTouched(onTouch: any): void {\r\n this.onTouch = onTouch;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onValueChanged() {\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n onInputBlur(event: Event) {\r\n const newValue = (event.target as HTMLInputElement).value;\r\n this.value = newValue;\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n isRequiredValid(): boolean {\r\n return !(this.required && this.formControl?.hasError('required'));\r\n }\r\n\r\n isRequiredValidNgModel(): boolean {\r\n return !(this.required && this.value == null);\r\n }\r\n \r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n \r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n}\r\n","<!-- @if (formControl != null) { \r\n<div class=\"w-input-search-field p-fluid field\">\r\n @if (label != undefined && label.length > 0) {\r\n <div class=\"flex\" [ngClass]=\"{'w-input-search-height-label': removePaddingTop == false,\r\n 'w-input-search-height-label-no-top': removePaddingTop == true}\">\r\n <label htmlFor=\"state\" [ngClass]=\"{'w-input-search-small-label': getSizeName(sizeType.small) == size && !isDisabled, \r\n 'w-input-search-small-label-disabled': getSizeName(sizeType.small) == size && isDisabled,\r\n 'no-top': removePaddingTop == true}\">\r\n {{label}}\r\n </label>\r\n </div>\r\n }\r\n @if(label != undefined && label == '') { \r\n <div class=\"w-input-no-label-height\"></div> \r\n }\r\n @if(hasButton) {\r\n <div>\r\n <div class=\"w-input-search-small p-inputgroup\">\r\n <button (click)=\"onInputData()\" type=\"button\" \r\n pButton icon=\"pi {{inputIcon}}\"\r\n [disabled]=\"disabledButton\"></button>\r\n <input type=\"text\" pInputText \r\n (keydown.enter)='onInputData()'\r\n [formControl]=\"formControl\"\r\n class=\"w-input-search-text\"\r\n [placeholder]=\"placeholder\"/>\r\n </div>\r\n </div>\r\n } @else { \r\n <ng-template #withoutButton>\r\n <div class=\"w-input-search-small p-fluid field\">\r\n <span class=\"p-input-icon-left\">\r\n <i *ngIf=\"inputIcon != ''\" class=\"pi {{inputIcon}}\"></i>\r\n <input pInputText\r\n (keydown.enter)='onInputData()'\r\n class=\"flex flex-1 col-12 w-input-search-text-wo-button\"\r\n [placeholder]=\"placeholder\"\r\n [formControl]=\"formControl\">\r\n </span>\r\n </div>\r\n </ng-template>\r\n }\r\n</div>\r\n} @else {\r\n<ng-template #noNgControl>\r\n <div class=\"w-input-search-field\">\r\n @if (label != undefined && label.length > 0) {\r\n <div [ngClass]=\"{'w-input-search-height-label': removePaddingTop == false,\r\n 'w-input-search-height-label-no-top': removePaddingTop == true}\">\r\n <label htmlFor=\"state\" [ngClass]=\"{'w-input-search-small-label': getSizeName(sizeType.small) == size && !isDisabled, \r\n 'w-input-search-small-label-disabled': getSizeName(sizeType.small) == size && isDisabled,\r\n 'no-top': removePaddingTop == true}\">\r\n {{label}}\r\n </label>\r\n </div>\r\n }\r\n @if(label != undefined && label == '') {\r\n <div class=\"w-input-no-label-height\"></div>\r\n }\r\n @if(hasButton) {\r\n <div>\r\n <div class=\"w-input-search-small p-inputgroup\">\r\n <button (click)=\"onInputData()\" type=\"button\" \r\n pButton icon=\"pi {{inputIcon}}\"\r\n [disabled]=\"disabledButton\"></button>\r\n <input type=\"text\" pInputText \r\n (keydown.enter)='onInputData()'\r\n [(ngModel)]=\"value\"\r\n (input)=\"onValueChanged()\"\r\n class=\"w-input-search-text\"\r\n [disabled]=\"isDisabled\"\r\n [placeholder]=\"placeholder\"/>\r\n </div>\r\n </div>\r\n } @else {\r\n <ng-template #withoutButton>\r\n <div class=\"w-input-search-small p-fluid field\">\r\n <span class=\"p-input-icon-left\">\r\n <i *ngIf=\"inputIcon != ''\" class=\"pi {{inputIcon}}\"></i>\r\n <input pInputText\r\n (keydown.enter)='onInputData()'\r\n class=\"flex flex-1 col-12 w-input-search-text-wo-button\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"value\"\r\n (input)=\"onValueChanged()\"\r\n [disabled]=\"isDisabled\">\r\n </span>\r\n </div>\r\n </ng-template>\r\n }\r\n </div>\r\n</ng-template>\r\n}\r\n -->\r\n\r\n<div class=\"w-input-search-field\">\r\n @if (label != undefined && label.length > 0) {\r\n <w-input-label [label]=\"label\" [disabled]=\"disabled\" [required]=\"required\" [validated]=\"formControl ? isRequiredValid() : isRequiredValidNgModel()\" ></w-input-label>\r\n }\r\n <div>\r\n <p-inputgroup class=\"w-input-search\">\r\n @if (hasButton) {\r\n <p-button class=\"button\" icon=\"pi {{inputIcon}}\" (onClick)=\"onInputData()\" [disabled]=\"disabledButton\" [loading]=\"loading\"/>\r\n } @else {\r\n <p-iconfield iconPosition=\"left\">\r\n <p-inputicon class=\"pi pi-search\"></p-inputicon>\r\n @if (formControl != null) {\r\n <input class=\"input\" pInputText\r\n [formControl]=\"formControl\"\r\n [placeholder]=\"placeholder\"\r\n (keydown.enter)=\"onInputData()\" />\r\n } @else {\r\n <input class=\"input\" pInputText\r\n [(ngModel)]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n (keydown.enter)=\"onInputData()\"\r\n (input)=\"onValueChanged()\"\r\n [disabled]=\"disabled\" />\r\n }\r\n </p-iconfield>\r\n }\r\n @if (hasButton) {\r\n @if (formControl != null) {\r\n <input class=\"input\" pInputText\r\n [formControl]=\"formControl\"\r\n [placeholder]=\"placeholder\"\r\n (keydown.enter)=\"onInputData()\" />\r\n } @else {\r\n <input class=\"input\" pInputText\r\n [(ngModel)]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n (keydown.enter)=\"onInputData()\"\r\n (input)=\"onValueChanged()\"\r\n [disabled]=\"disabled\" />\r\n }\r\n }\r\n </p-inputgroup>\r\n </div>\r\n</div>\r\n","import { RuleSet } from \"../../../misc/w-filter-panel/query-builder/query-builder.interfaces\";\r\nimport { LazyElementQueryRequest } from \"../lazy-element-query-request.model\";\r\n\r\nexport interface QueryResults {\r\n type: QueryResultType,\r\n basic?: RuleSet | null | undefined,\r\n advanced?: RuleSet | null | undefined,\r\n grouped: RuleSet | null | undefined,\r\n lazyRequest?: LazyElementQueryRequest,\r\n options?: {\r\n [key: string]: any;\r\n }\r\n}\r\n\r\nexport enum QueryResultType {\r\n NoFilters = 0,\r\n Basic = 1,\r\n Advanced = 2,\r\n Grouped = 3\r\n}","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable, forkJoin, map, of, switchMap, tap } from \"rxjs\";\r\nimport { QbPanelFilter } from \"../../models/filter-panel/qb-panel-filter.model\";\r\nimport { QbPanelToFields } from \"../../models/filter-panel/qb-panel-to-fields.model\";\r\nimport { GMCountry } from \"../../models/filter-panel/gmcountry-model\";\r\nimport { MessageService } from \"primeng/api\";\r\nimport { GMLocality } from \"../../models/filter-panel/gmlocality.model\";\r\nimport { GMPostalCode } from \"../../models/filter-panel/gmpostalcode.model\";\r\nimport { GMAreaLevel2 } from \"../../models/filter-panel/gmarealevel2.model\";\r\nimport { GMAreaLevel1 } from \"../../models/filter-panel/gmarealevel1.model\";\r\nimport { PlatformEventsGroups } from \"../../models/filter-panel/platform-events-group.model\";\r\nimport { PlatformEvent } from \"../../models/filter-panel/platform-event.model\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiService {\r\n \r\n constructor(\r\n private http: HttpClient,\r\n private messageService: MessageService, \r\n ) { }\r\n\r\n getFilterPanel(apiUrl: string, token: string, commonDataApiUrl: string, commonDataApiToken: string, tenantId: string, applicationId: string, filterId?: string): Observable<QbPanelFilter> {\r\n let url = filterId ? `${apiUrl}/${tenantId}/${applicationId}/${filterId}` : `${apiUrl}`;\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${token}` }); \r\n let fieldsModified: any; \r\n \r\n return this.http.get<any>(url, {headers: headers}).pipe(\r\n switchMap((filtersPanel: QbPanelFilter) => {\r\n const fields = filtersPanel.qbpanelToFields;\r\n return forkJoin(\r\n fields.map((field: QbPanelToFields) => {\r\n fieldsModified = field;\r\n if(field.qbfilterField.hasListOfValues) {\r\n return this.getFieldValues(commonDataApiUrl, commonDataApiToken, field.qbfilterFieldId).pipe(\r\n map(values => {\r\n const arrayOfValues = values.map((a: any) => ({\r\n name: a.value,\r\n value: +a.key\r\n })); \r\n field.qbfilterField.listOfValues = arrayOfValues;\r\n return field;\r\n })\r\n );\r\n } else {\r\n return of(field);\r\n }\r\n })).pipe(\r\n map(modifiedItems => {\r\n filtersPanel.qbpanelToFields = modifiedItems;\r\n return filtersPanel;\r\n })\r\n );\r\n }\r\n )\r\n );\r\n }\r\n\r\n getFieldValues(commonDataApiUrl: string, commonDataApiToken: string, filterFieldId: number): Observable<string[]> {\r\n let url = `${commonDataApiUrl}/fields/${filterFieldId}/values`; \r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${commonDataApiToken}` }); \r\n return this.http.get<string[]>(url, {headers})\r\n .pipe(\r\n tap(_ => { })\r\n );\r\n }\r\n\r\n getCountries(segmentationApi: string, segmentationApiToken: string):Observable<GMCountry[]>{\r\n let url = `${segmentationApi}/countries`;\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${segmentationApiToken}` }); \r\n return this.http.get<GMCountry[]>(url, {headers})\r\n .pipe(\r\n tap(_ => { }),\r\n );\r\n }\r\n\r\n getAreaLevels1(countryIds: number[], segmentationApi: string, segmentationApiToken: string): Observable<GMAreaLevel1[]>{\r\n let params = countryIds.map(id => id.toString()).join('&gmCountryIds=')\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${segmentationApiToken}` }); \r\n let url = `${segmentationApi}/arealevels1?gmCountryIds=`+params;\r\n return this.http.get<GMAreaLevel1[]>(url, {headers})\r\n .pipe(\r\n tap(_ => { }),\r\n );\r\n }\r\n\r\n getAreaLevels2(areaLevel1Ids: number[], segmentationApi: string, segmentationApiToken: string): Observable<GMAreaLevel2[]>{\r\n let params = areaLevel1Ids.map(id => id.toString()).join('&gmAreaLevel1Ids=')\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${segmentationApiToken}` }); \r\n let url = `${segmentationApi}/arealevels2?gmAreaLevel1Ids=`+params;\r\n return this.http.get<GMAreaLevel2[]>(url, {headers})\r\n .pipe(\r\n tap(_ => { }),\r\n );\r\n }\r\n\r\n getLocalities(areaLevel2Ids: number[], segmentationApi: string, segmentationApiToken: string): Observable<GMLocality[]>{\r\n let params = areaLevel2Ids.map(id => id.toString()).join('&gmAreaLevel2Ids=')\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${segmentationApiToken}` }); \r\n let url = `${segmentationApi}/localities?gmAreaLevel2Ids=`+params;\r\n return this.http.get<GMLocality[]>(url, {headers})\r\n .pipe(\r\n tap(_ => { }),\r\n );\r\n }\r\n\r\n getPostalCodes(localityIds: number[], segmentationApi: string, segmentationApiToken: string): Observable<GMPostalCode[]>{\r\n let params = localityIds.map(id => id.toString()).join('&gmLocalityIds=')\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${segmentationApiToken}` }); \r\n let url = `${segmentationApi}/postalcodes?gmLocalityIds=`+params;\r\n return this.http.get<GMPostalCode[]>(url, {headers})\r\n .pipe(\r\n tap(_ => { }),\r\n );\r\n }\r\n\r\n getCategories(productApi: string, productApiToken: string): Observable<any[]>{\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${productApiToken}` }); \r\n let url = `${productApi}/api/Category`;\r\n return this.http.get<any[]>(url, {headers})\r\n .pipe(\r\n tap(_ => { }),\r\n );\r\n }\r\n\r\n getSections(productApi: string, productApiToken: string): Observable<any[]>{\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${productApiToken}` }); \r\n let url = `${productApi}/api/Section`;\r\n return this.http.get<any[]>(url, {headers})\r\n .pipe(\r\n tap(_ => { }),\r\n );\r\n }\r\n \r\n getEventCategories(notificationApiUrl: string, notificationApiToken: string): Observable<PlatformEventsGroups[]>{\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${notificationApiToken}` }); \r\n let url = `${notificationApiUrl}/categories`;\r\n return this.http.get<PlatformEventsGroups[]>(url,{ headers })\r\n .pipe(\r\n tap(_ => {})\r\n );\r\n }\r\n\r\n getEvents(eventCategoryId: number, notificationApiUrl: string, notificationApiToken: string): Observable<PlatformEvent[]>{\r\n const headers = new HttpHeaders({ 'Content-Type': 'application/json', Authorization: `Bearer ${notificationApiToken}` }); \r\n let url = `${notificationApiUrl}/events/${eventCategoryId}`;\r\n return this.http.get<PlatformEvent[]>(url,{ headers })\r\n .pipe(\r\n tap(_ => {})\r\n );\r\n }\r\n}\r\n","import { Component, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { DataTypeEnum, OperatorEnum } from \"../../../shared/models/enums.model\";\r\n\r\n@Component({\r\n selector: 'w-list-field',\r\n templateUrl: './w-list-field.component.html',\r\n styleUrls: ['./w-list-field.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WListFieldComponent),\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class WListFieldComponent implements OnInit, ControlValueAccessor, OnChanges{\r\n @Input('options') optionsReceived!: any;\r\n options!: any;\r\n optionSelected: any;\r\n @Input('operator') operator: any;\r\n @Input('placeholder') placeholder!: any;\r\n @Input('onlyDropdown') onlyDropdown: boolean = false;\r\n @Input('disabled') disabled: boolean = false; \r\n @Input('required') required: boolean = true; \r\n @Input('translationsOptions') translationsOptions!: any;\r\n @Input('virtualScroll') virtualScroll: boolean = false;\r\n @Input('virtualScrollItemSize') virtualScrollItemSize: number = 32;\r\n\r\n dataType: typeof DataTypeEnum = DataTypeEnum;\r\n\r\n private onChange: any = () => {};\r\n private onTouched: any = () => {};\r\n\r\n constructor(){}\r\n \r\n ngOnInit(): void {\r\n this.options = this.optionsReceived;\r\n if(this.translationsOptions){\r\n this.options = this.options.map((o: any) => {\r\n return {\r\n ...o,\r\n name: this.translationsOptions[o.value] ?? o.name\r\n }\r\n })\r\n }\r\n }\r\n \r\n ngOnChanges(changes: SimpleChanges): void {\r\n if((changes['optionsReceived']?.currentValue != undefined && changes['optionsReceived']?.previousValue != undefined) \r\n && (changes['optionsReceived']?.currentValue[0] !== changes['optionsReceived']?.previousValue[0])){ \r\n this.options = this['optionsReceived'] ?? [];\r\n }\r\n \r\n if(changes['operator']?.currentValue != changes['operator']?.previousValue){\r\n this.optionSelected = null;\r\n this.onOptionSelected();\r\n }\r\n\r\n if(this.onlyDropdown == false){\r\n if(changes['operator']?.previousValue != undefined){\r\n this.optionSelected = null;\r\n }\r\n }\r\n }\r\n\r\n onOptionSelected(){\r\n this.onChange(this.optionSelected);\r\n this.onTouched();\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.optionSelected = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n \r\n getDataType(){\r\n if(this.operator == OperatorEnum.Equals || this.operator == OperatorEnum.NotEquals){\r\n return DataTypeEnum.Single;\r\n }else{\r\n return DataTypeEnum.Multi;\r\n }\r\n }\r\n}\r\n"," @if (getDataType() == dataType.Multi) {\r\n <w-edit-multiselect \r\n class=\"w-list-field w-filter-panel-advanced-query-builder-input-width w-filter-panel-basic-query-builder-input-width q-inline-block-display inline-flex\"\r\n [required]=\"required\"\r\n [showClear]=\"false\"\r\n appendTo=\"self\"\r\n [options]=\"options\"\r\n [(ngModel)]=\"optionSelected\"\r\n optionLabel=\"name\"\r\n optionValue=\"value\"\r\n [placeholder]=\"placeholder\"\r\n (onChange)=\"onOptionSelected()\"\r\n [disabled]=\"disabled\"\r\n [showLabel]=\"false\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [virtualScrollItemSize]=\"virtualScrollItemSize\">\r\n </w-edit-multiselect>\r\n }\r\n @if (options && getDataType() == dataType.Single) {\r\n <w-edit-select \r\n class=\"w-list-field w-filter-panel-advanced-query-builder-input-width w-filter-panel-basic-query-builder-input-width\" \r\n [required]=\"required\"\r\n [showClear]=\"false\"\r\n appendTo=\"self\"\r\n [options]=\"options\"\r\n [(ngModel)]=\"optionSelected\"\r\n optionLabel=\"name\"\r\n optionValue=\"value\"\r\n [placeholder]=\"placeholder\"\r\n (onChange)=\"onOptionSelected()\"\r\n [disabled]=\"disabled\"\r\n [showLabel]=\"false\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [virtualScrollItemSize]=\"virtualScrollItemSize\">\r\n </w-edit-select>\r\n }","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-view-card-title-text',\r\n templateUrl: './w-view-card-title-text.component.html',\r\n styleUrls: ['./w-view-card-title-text.component.scss'],\r\n standalone: false\r\n})\r\nexport class WViewCardTitleTextComponent implements OnInit {\r\n\r\n @Input('cardTitle') cardTitle!: string;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","<span class=\"w-view-card-title-text-style\">{{cardTitle}}</span>\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2, ViewChild, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SizeType, ButtonType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-toggle-button',\r\n templateUrl: './w-toggle-button.component.html',\r\n styleUrls: ['./w-toggle-button.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WToggleButtonComponent),\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class WToggleButtonComponent implements OnInit, ControlValueAccessor {\r\n @Input('onLabel') onLabel!: string;\r\n @Input('offLabel') offLabel!: string;\r\n @Input('size') size: string = \"small\";\r\n @Input('onIcon') onIcon: string = \"\";\r\n @Input('offIcon') offIcon: string = \"\";\r\n @Input('tooltipPosition') tooltipPosition: string = \"bottom\";\r\n @Input('tooltip') tooltip: string = \"\";\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('allowEmpty') allowEmpty: boolean = true;\r\n @Input('buttonClass') buttonClass!: string;\r\n\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n @ViewChild('wToggleButton', { read: ElementRef }) viewSelectorEl!: ElementRef;\r\n\r\n\r\n sizeType: typeof SizeType = SizeType;\r\n buttonType: typeof ButtonType = ButtonType;\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n ngModelValue: any;\r\n\r\n constructor(private renderer: Renderer2){}\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n \r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onButtonChanged(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n\r\n onButtonChangedForm(value: any){\r\n this.onChangeEvent.emit(value.checked);\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n getButtonTypeName(value: number): string{\r\n return ButtonType[value];\r\n }\r\n\r\n isEmpty(label: string){\r\n if(label == '' || label == undefined || label == null){\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n hasOnlyIcon(icon: string, label: string){\r\n if(!this.isEmpty(icon) && this.isEmpty(label)){\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n","@if (formControl) {\r\n <p-togglebutton #wToggleButton\r\n [class]=\"'w-togglebutton-small ' + (buttonClass ? buttonClass : '')\" \r\n [ngClass]=\"{'empty-onlabel': isEmpty(onLabel), 'empty-offlabel': isEmpty(offLabel),\r\n 'only-icon-onlabel': hasOnlyIcon(onIcon, onLabel), 'only-icon-offlabel': hasOnlyIcon(offIcon, offLabel)}\"\r\n [onLabel]=\"onLabel\"\r\n [offLabel]=\"offLabel\"\r\n iconPos=\"left\"\r\n [onIcon]=\"onIcon\"\r\n [offIcon]=\"offIcon\" \r\n [allowEmpty]=\"allowEmpty\"\r\n [pTooltip]=\"tooltip\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n [formControl]=\"formControl\"\r\n (onChange)=\"onButtonChangedForm($event)\">\r\n </p-togglebutton>\r\n} @else {\r\n <p-togglebutton #wToggleButton\r\n [class]=\"'w-togglebutton-small ' + (buttonClass ? buttonClass : '')\" \r\n [ngClass]=\"{'empty-onlabel': isEmpty(onLabel), 'empty-offlabel': isEmpty(offLabel),\r\n 'only-icon-onlabel': hasOnlyIcon(onIcon, onLabel), 'only-icon-offlabel': hasOnlyIcon(offIcon, offLabel), \r\n 'active': this.ngModelValue}\"\r\n [(ngModel)]=\"ngModelValue\"\r\n (ngModelChange)=\"onButtonChanged()\"\r\n [disabled]=\"disabled\"\r\n [onLabel]=\"onLabel\"\r\n [offLabel]=\"offLabel\" \r\n iconPos=\"left\"\r\n [onIcon]=\"onIcon\"\r\n [offIcon]=\"offIcon\"\r\n [allowEmpty]=\"allowEmpty\"\r\n [pTooltip]=\"tooltip\"\r\n [tooltipPosition]=\"tooltipPosition\">\r\n </p-togglebutton>\r\n}\r\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, Output, Renderer2, ViewChild, forwardRef } from '@angular/core';\r\nimport { SizeType } from '../../shared/enums/enum';\r\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { WSelectButtonState } from '../../shared/models/w-select-button-state.model';\r\n\r\n@Component({\r\n selector: 'w-select-button',\r\n templateUrl: './w-select-button.component.html',\r\n styleUrls: ['./w-select-button.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WSelectButtonComponent),\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class WSelectButtonComponent implements AfterViewInit {\r\n @Input('stateOptions') stateOptions: WSelectButtonState[] = [{label: 'Off', value: 'off'}, {label: 'On', value: 'on'}];\r\n @Input('size') size: string = \"small\";\r\n \r\n @Input('tooltipPosition') tooltipPosition: string = \"bottom\";\r\n @Input('tooltip') tooltip: string = \"\";\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('stateClass') stateClass!: string;\r\n @Input('allowEmpty') allowEmpty: boolean = false;\r\n\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n sizeType: typeof SizeType = SizeType;\r\n @ViewChild('wSelectButton', { read: ElementRef }) viewSelectorEl!: ElementRef;\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n ngModelValue: any;\r\n\r\n constructor(private renderer: Renderer2){}\r\n\r\n ngAfterViewInit(): void {\r\n if(this.stateOptions.every(opt => opt?.class)){\r\n const root = this.viewSelectorEl.nativeElement as HTMLElement;\r\n const spans = root.querySelectorAll('.p-selectbutton .p-togglebutton');\r\n spans.forEach((toggle, i) => {\r\n this.renderer.addClass(toggle, this.stateOptions[i].class! ?? '');\r\n });\r\n }\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n \r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onButtonChanged(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n const root = this.viewSelectorEl.nativeElement as HTMLElement;\r\n const toggles = root.querySelectorAll('.p-selectbutton .p-togglebutton');\r\n\r\n toggles.forEach((toggle) => {\r\n const span = toggle.querySelector('span');\r\n if (!span) return;\r\n const isChecked = toggle.classList.contains('p-togglebutton-checked');\r\n if (!isChecked) {\r\n this.renderer.addClass(toggle, 'active');\r\n } else {\r\n this.renderer.removeClass(toggle, 'active');\r\n }\r\n });\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n\r\n onButtonChangedForm(value: any){\r\n this.onChangeEvent.emit(value.checked);\r\n }\r\n}\r\n","@if (formControl) {\r\n <p-selectbutton #wSelectButton [ngClass]=\"{'w-button-small' : size == getSizeName(sizeType.small), \r\n 'w-button-medium' : size == getSizeName(sizeType.medium),\r\n 'w-button-large' : size == getSizeName(sizeType.large)}\"\r\n [options]=\"stateOptions\"\r\n [formControl]=\"formControl\"\r\n [disabled]=\"disabled\"\r\n optionLabel=\"label\"\r\n optionValue=\"value\"\r\n [pTooltip]=\"tooltip\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n (onChange)=\"onButtonChangedForm($event)\" \r\n [allowEmpty]=\"allowEmpty\">\r\n <ng-template let-item pTemplate>\r\n @if (item.label) {\r\n <div class=\"flex\">\r\n <span [class]=\"item.icon\"></span>\r\n <span>{{item.label}}</span>\r\n </div>\r\n }\r\n </ng-template>\r\n </p-selectbutton>\r\n} @else {\r\n <p-selectbutton #wSelectButton [ngClass]=\"{'w-button-small' : size == getSizeName(sizeType.small), \r\n 'w-button-medium' : size == getSizeName(sizeType.medium),\r\n 'w-button-large' : size == getSizeName(sizeType.large)}\"\r\n [options]=\"stateOptions\"\r\n [(ngModel)]=\"ngModelValue\"\r\n [disabled]=\"disabled\"\r\n optionLabel=\"label\"\r\n optionValue=\"value\"\r\n [pTooltip]=\"tooltip\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n (ngModelChange)=\"onButtonChanged()\" \r\n [allowEmpty]=\"allowEmpty\">\r\n <ng-template let-item pTemplate>\r\n @if (item.label) {\r\n <div class=\"flex\">\r\n <span [class]=\"item.icon\"></span>\r\n <span>{{item.label}}</span>\r\n </div>\r\n }\r\n </ng-template>\r\n </p-selectbutton>\r\n}\r\n","import { AfterViewInit, Component, EventEmitter, Input, OnChanges, OnInit, Optional, Output, Self, SimpleChanges, forwardRef } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor, FormControl } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\nimport { DatePickerTypeView } from 'primeng/datepicker';\r\n\r\n@Component({\r\n selector: 'w-edit-calendar',\r\n templateUrl: './w-edit-calendar.component.html',\r\n styleUrls: ['./w-edit-calendar.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditCalendarComponent),\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class WEditCalendarComponent implements OnInit, AfterViewInit, OnChanges, ControlValueAccessor {\r\n\r\n private _minDate!: Date;\r\n \r\n @Input() set minDate(value: Date) {\r\n if(this.autoMinDate){\r\n if(this.ngModelValue < value) { this.ngModelValue = value }\r\n if(this.formControl?.value && this.formControl?.value < value) { this.onValue(value) }\r\n }\r\n this._minDate = value;\r\n }\r\n \r\n get minDate() {\r\n return this._minDate;\r\n }\r\n\r\n private _maxDate!: Date;\r\n\r\n @Input() set maxDate(value: Date) {\r\n if(this.ngModelValue > value) { this.ngModelValue = value }\r\n if(this.formControl?.value && this.formControl?.value > value) { this.onValue(value) }\r\n this._maxDate = value;\r\n }\r\n \r\n get maxDate() {\r\n return this._maxDate;\r\n }\r\n \r\n @Input('label') label!: string;\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('showTime') showTime: boolean = true;\r\n @Input('showSeconds') showSeconds: boolean = true;\r\n @Input('timeOnly') timeOnly: boolean = false;\r\n @Input('showIcon') showIcon: boolean = true;\r\n @Input('placeholder') placeholder: string = \"\";\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('size') size: string = \"small\";\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('displayInlineBlock') displayInlineBlock: boolean = false;\r\n @Input('required') required: boolean = false;\r\n @Input('requiredErrorDescription') requiredErrorDescription : string = \"Mensaje default required\";\r\n @Input('someErrorDescription') someErrorDescription : string = \"Mensaje default some error\";\r\n @Input('removePaddingTop') removePaddingTop: boolean = false;\r\n @Input('firstDayOfWeek') firstDayOfWeek: number = 1;\r\n @Input('tooltip') tooltip!: string;\r\n @Input() tooltipPosition?: string;\r\n @Input('dataType') dataType: string = 'date';\r\n @Input('viewType') viewType: DatePickerTypeView = 'date';\r\n @Input('monthMode') monthMode: boolean = false;\r\n @Input('readonlyInput') readonlyInput!: boolean; \r\n @Input('keepInvalid') keepInvalid: boolean = true;\r\n @Input('autoMinDate') autoMinDate: boolean = true;\r\n\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n @Input('dateFormat') dateFormat: string = '';\r\n sizeType: typeof SizeType = SizeType;\r\n\r\n ngModelValue: any;\r\n\r\n isTouched : boolean = false;\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n ngModelTouched: boolean = false;\r\n\r\n ngOnInit(): void {\r\n if(this.monthMode) {\r\n this.showTime = false;\r\n this.timeOnly = false;\r\n this.dateFormat = 'dd/MM'\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.ngModelTouched = true;\r\n }\r\n \r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(changes['viewType']?.previousValue !== undefined){\r\n this.viewType = changes['viewType'].currentValue;\r\n }\r\n\r\n if(changes['dateFormat']?.previousValue !== undefined){\r\n this.dateFormat = changes['dateFormat'].currentValue;\r\n }\r\n }\r\n\r\n writeValue(value: any) {\r\n if(typeof(value) === 'string') {\r\n if(value.trim() === \"\") {\r\n value = null;\r\n } else {\r\n value = new Date(value);\r\n if(isNaN(value.getTime())) {\r\n value = null;\r\n }\r\n }\r\n }\r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onValue(value: any){\r\n this.onChangeEvent.emit(value);\r\n }\r\n\r\n onInputValue(value: any){\r\n if(value.data == null){\r\n this.onChangeEvent.emit(null);\r\n }\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n onDateChanged(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n\r\n isRequiredValid(): boolean {\r\n return !(this.required && this.formControl?.hasError('required'));\r\n }\r\n\r\n isRequiredValidNgModel(): boolean {\r\n return !(this.required && this.ngModelValue == null);\r\n }\r\n\r\n onDateBlur() {\r\n this.ngModelTouched = true;\r\n }\r\n\r\n isNgModelInvalid(): boolean {\r\n return this.required && !this.ngModelValue && this.ngModelTouched;\r\n }\r\n}\r\n","@if (formControl) {\r\n <div class=\"w-edit-calendar-styles p-fluid field\">\r\n @if (showLabel) {\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" [validated]=\"isRequiredValid()\"></w-input-label>\r\n }\r\n <p-datepicker class=\"w-edit-calendar-small\" \r\n [ngClass]=\"{'disabled': disabled, \r\n 'ng-invalid ng-dirty': formControl.hasError('required') && formControl.touched, \r\n 'w-edit-calendar-no-icon' : !showIcon\r\n }\" \r\n [formControl]=\"formControl\" \r\n placeholder=\"{{placeholder}}\"\r\n appendTo=\"body\"\r\n [showIcon]=\"showIcon\"\r\n [icon]=\"timeOnly ? 'pi pi-clock' : 'pi pi-calendar'\" \r\n [showTime]=\"showTime\" \r\n [timeOnly]=\"timeOnly\" \r\n [showSeconds]=\"showSeconds\" \r\n [showIcon]=\"showIcon\" \r\n [minDate]=\"minDate\"\r\n [maxDate]=\"maxDate\" \r\n [firstDayOfWeek]=\"firstDayOfWeek\" \r\n [dataType]=\"dataType\" \r\n [view]=\"viewType\" \r\n [dateFormat]=\"dateFormat\"\r\n [readonlyInput]=\"readonlyInput\" \r\n (onSelect)=\"onValue($event)\"\r\n (onInput)=\"onInputValue($event)\"\r\n [keepInvalid]=\"keepInvalid\"\r\n />\r\n @if (formControl.hasError('required') && formControl.touched) {\r\n <small class=\"p-error block\">{{requiredErrorDescription}}</small>\r\n }\r\n @if (formControl.errors && !formControl.hasError('required') && formControl.touched) {\r\n <small class=\"p-error block\">{{someErrorDescription}}</small>\r\n }\r\n </div>\r\n} @else {\r\n <div class=\"w-edit-calendar-styles p-fluid field\" [ngClass]=\"{'displayInlineBlock' : displayInlineBlock}\" >\r\n @if (showLabel) {\r\n <w-input-label [label]=\"label\" [required]=\"required\" [disabled]=\"disabled\" [size]=\"size\" [tooltip]=\"tooltip\" [validated]=\"isRequiredValid()\"></w-input-label>\r\n }\r\n <p-datepicker class=\"w-edit-calendar-small\" \r\n [ngClass]=\"{'disabled': disabled, \r\n 'w-edit-calendar-no-icon' : !showIcon,\r\n 'ng-invalid ng-dirty': isNgModelInvalid()\r\n }\" \r\n [(ngModel)]=\"ngModelValue\" \r\n placeholder=\"{{placeholder}}\"\r\n appendTo=\"body\" \r\n [disabled]=\"disabled\"\r\n [showIcon]=\"showIcon\"\r\n [icon]=\"timeOnly ? 'pi pi-clock' : 'pi pi-calendar'\" \r\n [showTime]=\"showTime\" \r\n [timeOnly]=\"timeOnly\" \r\n [showSeconds]=\"showSeconds\" \r\n [showIcon]=\"showIcon\" \r\n [minDate]=\"minDate\"\r\n [maxDate]=\"maxDate\" \r\n [firstDayOfWeek]=\"firstDayOfWeek\"\r\n [required]=\"required\" \r\n [dataType]=\"dataType\" \r\n [view]=\"viewType\" \r\n [dateFormat]=\"dateFormat\" \r\n [readonlyInput]=\"readonlyInput\" \r\n (ngModelChange)=\"onDateChanged()\"\r\n (blur)=\"onDateBlur()\"\r\n [keepInvalid]=\"keepInvalid\"\r\n />\r\n </div>\r\n}\r\n","import { Component, Input, OnChanges, OnInit, SimpleChanges, forwardRef } from '@angular/core';\r\nimport { GMCountry } from '../../models/filter-panel/gmcountry-model';\r\nimport { GMAreaLevel1 } from '../../models/filter-panel/gmarealevel1.model';\r\nimport { GMAreaLevel2 } from '../../models/filter-panel/gmarealevel2.model';\r\nimport { GMLocality } from '../../models/filter-panel/gmlocality.model';\r\nimport { GMPostalCode } from '../../models/filter-panel/gmpostalcode.model';\r\nimport { AddressEnum, DataTypeEnum, OperatorEnum } from '../../models/enums.model';\r\nimport { ApiService } from '../../service/api/api.service';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'w-address-field',\r\n templateUrl: './w-address-field.component.html',\r\n styleUrls: ['./w-address-field.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WAddressFieldComponent),\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class WAddressFieldComponent implements OnInit, OnChanges, ControlValueAccessor {\r\n\r\n countries: GMCountry[] = [];\r\n countrySelected: any;\r\n countryId: number | null = null;\r\n areaLevels1: GMAreaLevel1[] = [];\r\n areaLevel1Selected!: any;\r\n areaLevel1Id: number | null = null;\r\n areaLevels2: GMAreaLevel2[] = [];\r\n areaLevel2Selected!: any;\r\n areaLevel2Id: number | null = null;\r\n localities: GMLocality[] = [];\r\n localitySelected: any;\r\n localityId: number | null = null;\r\n postalCodes: GMPostalCode[] = [];\r\n postalCodeSelected: any;\r\n addressValue: any;\r\n @Input('operator') operator!: any;\r\n @Input('selectPlaceholder') selectPlaceholder: string = 'Select an option';\r\n @Input('segmentationApiUrl') segmentationApiUrl!: string;\r\n @Input('segmentationApiToken') segmentationApiToken!: string;\r\n dataType: typeof DataTypeEnum = DataTypeEnum;\r\n\r\n private onChange: any = () => {};\r\n private onTouched: any = () => {};\r\n\r\n constructor(private apiService: ApiService){}\r\n\r\n ngOnInit(): void {\r\n this.getCountries();\r\n }\r\n\r\n ngOnChanges(changes: any): void {\r\n if(changes.operator.previousValue !== undefined){\r\n this.countrySelected = null;\r\n this.countryId = null;\r\n this.areaLevel1Selected = null;\r\n this.areaLevel1Id = null;\r\n this.areaLevel2Selected = null;\r\n this.areaLevel2Id = null;\r\n this.localitySelected = null;\r\n this.localityId = null;\r\n this.postalCodeSelected = null;\r\n\r\n this.onChange(null);\r\n this.onTouched();\r\n }\r\n }\r\n\r\n getCountries(){\r\n this.apiService.getCountries(this.segmentationApiUrl, this.segmentationApiToken).subscribe({ \r\n next: (countries: GMCountry[]) => {\r\n this.countries = countries ?? [];\r\n this.countrySelected = this.getAddressData(AddressEnum.Country, true, \"gMCountryId\");\r\n this.onCountrySelected();\r\n }\r\n })\r\n }\r\n\r\n getAreaLevel1(countryId: number[]){\r\n this.apiService.getAreaLevels1(countryId, this.segmentationApiUrl, this.segmentationApiToken).subscribe({\r\n next: (areaLevels1: GMAreaLevel1[]) => {\r\n this.areaLevels1 = areaLevels1 ?? [];\r\n this.areaLevel1Selected = this.getAddressData(AddressEnum.AreaLevel1, true, \"gMAreaLevel1Id\");\r\n this.onAreaLevel1Selected();\r\n }\r\n })\r\n }\r\n\r\n getAreaLevel2(areaLevel1Id: number[]){\r\n this.apiService.getAreaLevels2(areaLevel1Id, this.segmentationApiUrl, this.segmentationApiToken).subscribe({\r\n next: (areaLevels2: GMAreaLevel2[]) => {\r\n this.areaLevels2 = areaLevels2 ?? [];\r\n this.areaLevel2Selected = this.getAddressData(AddressEnum.AreaLevel2, true, \"gMAreaLevel2Id\");\r\n this.onAreaLevel2Selected();\r\n }\r\n })\r\n }\r\n\r\n getLocalities(areaLevel2Id: number[]){\r\n this.apiService.getLocalities(areaLevel2Id, this.segmentationApiUrl, this.segmentationApiToken).subscribe({\r\n next: (localities: GMLocality[]) => {\r\n this.localities = localities ?? [];\r\n this.localitySelected = this.getAddressData(AddressEnum.Locality, true, \"gMLocalityId\");\r\n this.onLocalitySelected();\r\n }\r\n })\r\n }\r\n\r\n getPostalCodes(localityId: number[]){\r\n this.apiService.getPostalCodes(localityId, this.segmentationApiUrl, this.segmentationApiToken).subscribe({\r\n next: (postalCodes: GMPostalCode[]) => {\r\n this.postalCodes = postalCodes ?? [];\r\n this.postalCodeSelected = this.getAddressData(AddressEnum.PostalCode, false);\r\n this.onPostalCodeSelected();\r\n }\r\n })\r\n }\r\n\r\n getAddressData(addressEnumType: number, isNotLastSelect: boolean, addressPropertyIdName?: string){\r\n let dataSelected: any;\r\n if(this.addressValue?.property){\r\n if(this.addressValue.property == addressEnumType){\r\n dataSelected = this.addressValue.data;\r\n this.addressValue = null;\r\n }else if(isNotLastSelect && addressPropertyIdName){\r\n dataSelected = this.addressValue[addressPropertyIdName];\r\n }\r\n }else if(Array.isArray(this.addressValue)){\r\n dataSelected = [];\r\n if(this.hasPropertyValueFirstElement(this.addressValue, \"property\", addressEnumType)){\r\n dataSelected = this.addressValue.map(a => a.data);\r\n this.addressValue = null;\r\n }else if(isNotLastSelect && addressPropertyIdName){\r\n dataSelected = this.addressValue[0][addressPropertyIdName];\r\n }\r\n }\r\n return dataSelected;\r\n }\r\n\r\n onCountrySelected(){\r\n this.areaLevel1Selected = null;\r\n this.areaLevel2Selected = null;\r\n this.localitySelected = null;\r\n this.postalCodeSelected = null;\r\n\r\n this.countryId = this.countrySelected;\r\n\r\n this.doOnChange(AddressEnum.Country, this.countrySelected);\r\n\r\n this.areaLevels1 = [];\r\n if(this.countrySelected?.length > 0){\r\n this.getAreaLevel1(this.countrySelected);\r\n } else if(!Array.isArray(this.countrySelected) && this.countrySelected){\r\n this.getAreaLevel1([this.countrySelected]);\r\n }\r\n }\r\n\r\n onAreaLevel1Selected(){\r\n this.areaLevel2Selected = null;\r\n this.localitySelected = null;\r\n this.postalCodeSelected = null;\r\n\r\n this.areaLevel1Id = this.areaLevel1Selected;\r\n\r\n this.doOnChange(AddressEnum.AreaLevel1, this.areaLevel1Selected, this.countryId);\r\n\r\n this.areaLevels2 = [];\r\n if(this.areaLevel1Selected?.length > 0){\r\n this.getAreaLevel2(this.areaLevel1Selected);\r\n } else if(!Array.isArray(this.areaLevel1Selected) && this.areaLevel1Selected){\r\n this.getAreaLevel2([this.areaLevel1Selected]);\r\n }\r\n }\r\n\r\n onAreaLevel2Selected(){\r\n this.localitySelected = null;\r\n this.postalCodeSelected = null;\r\n\r\n this.areaLevel2Id = this.areaLevel2Selected;\r\n\r\n this.doOnChange(AddressEnum.AreaLevel2, this.areaLevel2Selected, this.countryId, this.areaLevel1Id);\r\n\r\n this.localities = [];\r\n if(this.areaLevel2Selected?.length > 0){\r\n this.getLocalities(this.areaLevel2Selected);\r\n } else if(!Array.isArray(this.areaLevel2Selected) && this.areaLevel2Selected){\r\n this.getLocalities([this.areaLevel2Selected]);\r\n }\r\n }\r\n\r\n onLocalitySelected(){\r\n this.postalCodeSelected = null;\r\n\r\n this.localityId = this.localitySelected;\r\n\r\n this.doOnChange(AddressEnum.Locality, this.localitySelected, this.countryId, this.areaLevel1Id, this.areaLevel2Id);\r\n\r\n this.postalCodes = [];\r\n if(this.localitySelected?.length > 0){\r\n this.getPostalCodes(this.localitySelected);\r\n } else if(!Array.isArray(this.localitySelected) && this.localitySelected){\r\n this.getPostalCodes([this.localitySelected]);\r\n }\r\n }\r\n\r\n onPostalCodeSelected(){\r\n this.doOnChange(AddressEnum.PostalCode, this.postalCodeSelected, this.countryId, this.areaLevel1Id, this.areaLevel2Id, this.localityId)\r\n }\r\n\r\n onCountryCleared() {\r\n this.countrySelected = null;\r\n this.countryId = null;\r\n this.areaLevel1Selected = null;\r\n this.areaLevel1Id = null;\r\n this.areaLevel2Selected = null;\r\n this.areaLevel2Id = null;\r\n this.localitySelected = null;\r\n this.localityId = null;\r\n this.postalCodeSelected = null;\r\n this.onChange(null);\r\n }\r\n\r\n onAreaLevel1Cleared() {\r\n this.areaLevel1Selected = null;\r\n this.areaLevel1Id = null;\r\n this.areaLevel2Selected = null;\r\n this.areaLevel2Id = null;\r\n this.localitySelected = null;\r\n this.localityId = null;\r\n this.postalCodeSelected = null;\r\n this.onChange(this.createObjectAddressProperty(AddressEnum.Country, this.countrySelected));\r\n }\r\n\r\n onAreaLevel2Cleared() {\r\n this.areaLevel2Selected = null;\r\n this.areaLevel2Id = null;\r\n this.localitySelected = null;\r\n this.localityId = null;\r\n this.postalCodeSelected = null;\r\n this.onChange(this.createObjectAddressProperty(AddressEnum.AreaLevel1, this.areaLevel1Selected, this.countryId));\r\n }\r\n\r\n onLocalityCleared() {\r\n this.localitySelected = null;\r\n this.localityId = null;\r\n this.postalCodeSelected = null;\r\n this.onChange(this.createObjectAddressProperty(AddressEnum.AreaLevel2, this.areaLevel2Selected, this.countryId, this.areaLevel1Id));\r\n }\r\n \r\n onPostalCodeCleared() {\r\n this.postalCodeSelected = null;\r\n this.onChange(this.createObjectAddressProperty(AddressEnum.Locality, this.localitySelected, this.countryId, this.areaLevel1Id, this.areaLevel2Id));\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.postalCodeSelected = value;\r\n this.addressValue = value;\r\n\r\n if(value == undefined){\r\n this.countrySelected = null;\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n createObjectAddressProperty(addressType: any, value: any, countryId?: number | null, areaLevel1Id?: number | null, areaLevel2Id?: number|null, localityId?: number|null){\r\n return {\r\n property: addressType, \r\n data: value,\r\n gMCountryId: countryId,\r\n gMAreaLevel1Id: areaLevel1Id,\r\n gMAreaLevel2Id: areaLevel2Id,\r\n gMLocalityId: localityId\r\n }\r\n }\r\n\r\n doOnChange(addressType: any, value: any, countryId?: number | null, areaLevel1Id?: number | null, areaLevel2Id?: number|null, localityId?: number|null){\r\n if(value){\r\n if(this.getDataType() == DataTypeEnum.Single){\r\n this.onChange(this.createObjectAddressProperty(addressType, value, countryId, areaLevel1Id, areaLevel2Id, localityId));\r\n }else if(this.getDataType() == DataTypeEnum.Multi){\r\n let addressProperties = value.map((v: any) => this.createObjectAddressProperty(addressType, v, countryId, areaLevel1Id, areaLevel2Id, localityId));\r\n this.onChange(addressProperties);\r\n }\r\n\r\n this.onTouched();\r\n }\r\n }\r\n\r\n getDataType(){\r\n if(this.operator == OperatorEnum.Equals || this.operator == OperatorEnum.NotEquals){\r\n return DataTypeEnum.Single;\r\n }else{\r\n return DataTypeEnum.Multi;\r\n }\r\n }\r\n\r\n hasPropertyValueFirstElement(arr: any[], property: string, value: any): boolean {\r\n const firstElement = arr[0];\r\n return firstElement && firstElement[property] === value;\r\n }\r\n}\r\n","@if (getDataType() == dataType.Multi && countries.length > 0) {\r\n <w-edit-multiselect class=\"w-filter-panel-advanced-query-builder-input-width w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"self\" [options]=\"countries\" [(ngModel)]=\"countrySelected\" optionLabel=\"name\" optionValue=\"gmCountryId\" (onChange)=\"onCountrySelected()\" [placeholder]=\"selectPlaceholder\" [showLabel]=\"false\"></w-edit-multiselect>\r\n}\r\n@if (getDataType() == dataType.Multi && areaLevels1.length > 0 && countrySelected) {\r\n <w-edit-multiselect class=\"w-filter-panel-advanced-query-builder-input-width w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"self\" [options]=\"areaLevels1\" [(ngModel)]=\"areaLevel1Selected\" optionLabel=\"name\" optionValue=\"gmAreaLevel1Id\" (onChange)=\"onAreaLevel1Selected()\" [placeholder]=\"selectPlaceholder\" [showLabel]=\"false\"></w-edit-multiselect>\r\n}\r\n@if (getDataType() == dataType.Multi && areaLevels2.length > 0 && areaLevel1Selected) {\r\n <w-edit-multiselect class=\"w-filter-panel-advanced-query-builder-input-width w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"self\" [options]=\"areaLevels2\" [(ngModel)]=\"areaLevel2Selected\" optionLabel=\"name\" optionValue=\"gmAreaLevel2Id\" (onChange)=\"onAreaLevel2Selected()\" [placeholder]=\"selectPlaceholder\" [showLabel]=\"false\"></w-edit-multiselect>\r\n}\r\n@if (getDataType() == dataType.Multi && localities.length > 0 && areaLevel2Selected) {\r\n <w-edit-multiselect class=\"w-filter-panel-advanced-query-builder-input-width w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"self\" [options]=\"localities\" [(ngModel)]=\"localitySelected\" optionLabel=\"name\" optionValue=\"gmLocalityId\" (onChange)=\"onLocalitySelected()\" [placeholder]=\"selectPlaceholder\" [showLabel]=\"false\"></w-edit-multiselect>\r\n}\r\n@if (getDataType() == dataType.Multi && postalCodes.length > 0 && localitySelected) {\r\n <w-edit-multiselect class=\"w-filter-panel-advanced-query-builder-input-width w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"self\" [options]=\"postalCodes\" [(ngModel)]=\"postalCodeSelected\" optionLabel=\"name\" optionValue=\"gmPostalCodeId\" (onChange)=\"onPostalCodeSelected()\" [placeholder]=\"selectPlaceholder\" [showLabel]=\"false\"></w-edit-multiselect>\r\n}\r\n\r\n@if (getDataType() == dataType.Single && countries.length > 0) {\r\n <w-edit-select class=\"w-filter-panel-advanced-query-builder-input-width w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"self\" [options]=\"countries\" [(ngModel)]=\"countrySelected\" optionLabel=\"name\" optionValue=\"gmCountryId\" (onChange)=\"onCountrySelected()\" (onClear)=\"onCountryCleared()\" [placeholder]=\"selectPlaceholder\" [showLabel]=\"false\"></w-edit-select>\r\n}\r\n@if (getDataType() == dataType.Single && areaLevels1.length > 0 && countrySelected) {\r\n <w-edit-select class=\"w-filter-panel-advanced-query-builder-input-width w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"self\" [options]=\"areaLevels1\" [(ngModel)]=\"areaLevel1Selected\" optionLabel=\"name\" optionValue=\"gmAreaLevel1Id\" (onChange)=\"onAreaLevel1Selected()\" (onClear)=\"onAreaLevel1Cleared()\" [placeholder]=\"selectPlaceholder\" [showLabel]=\"false\"></w-edit-select>\r\n}\r\n@if (getDataType() == dataType.Single && areaLevels2.length > 0 && areaLevel1Selected) {\r\n <w-edit-select class=\"w-filter-panel-advanced-query-builder-input-width w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"self\" [options]=\"areaLevels2\" [(ngModel)]=\"areaLevel2Selected\" optionLabel=\"name\" optionValue=\"gmAreaLevel2Id\" (onChange)=\"onAreaLevel2Selected()\" (onClear)=\"onAreaLevel2Cleared()\" [placeholder]=\"selectPlaceholder\" [showLabel]=\"false\"></w-edit-select>\r\n}\r\n@if (getDataType() == dataType.Single && localities.length > 0 && areaLevel2Selected) {\r\n <w-edit-select class=\"w-filter-panel-advanced-query-builder-input-width w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"self\" [options]=\"localities\" [(ngModel)]=\"localitySelected\" optionLabel=\"name\" optionValue=\"gmLocalityId\" (onChange)=\"onLocalitySelected()\" (onClear)=\"onLocalityCleared()\" [placeholder]=\"selectPlaceholder\" [showLabel]=\"false\"></w-edit-select>\r\n}\r\n@if (getDataType() == dataType.Single && postalCodes.length > 0 && localitySelected) {\r\n <w-edit-select class=\"w-filter-panel-advanced-query-builder-input-width w-address-field-width q-inline-block-display inline-flex\" [showClear]=\"false\" appendTo=\"self\" [options]=\"postalCodes\" [(ngModel)]=\"postalCodeSelected\" optionLabel=\"name\" optionValue=\"gmPostalCodeId\" (onChange)=\"onPostalCodeSelected()\" (onClear)=\"onPostalCodeCleared()\" [placeholder]=\"selectPlaceholder\" [showLabel]=\"false\"></w-edit-select>\r\n}\r\n","import { ChangeDetectorRef, Component, forwardRef, Input, OnChanges, OnInit,SimpleChanges } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { DataTypeEnum, OperatorEnum } from '../../models/enums.model';\r\nimport { TreeNode } from 'primeng/api';\r\nimport { ApiService } from '../../service/api/api.service';\r\n\r\n@Component({\r\n selector: 'w-tree-field',\r\n templateUrl: './w-tree-field.component.html',\r\n styleUrls: ['./w-tree-field.component.css'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WTreeFieldComponent),\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class WTreeFieldComponent implements OnInit, OnChanges, ControlValueAccessor {\r\n items: any[] = [];\r\n treeNodeItems!: TreeNode[];\r\n itemSelected: any;\r\n\r\n @Input('field') field!: string;\r\n @Input('operator') operator!: any;\r\n @Input('selectPlaceholder') selectPlaceholder: string = 'Select an option';\r\n @Input('productApiUrl') productApiUrl!: string;\r\n @Input('productApiToken') productApiToken!: string;\r\n\r\n dataType: typeof DataTypeEnum = DataTypeEnum;\r\n\r\n private onChange: any = () => {};\r\n private onTouched: any = () => {};\r\n\r\n constructor(private cdr: ChangeDetectorRef, private apiService: ApiService) {}\r\n\r\n ngOnInit(): void {\r\n this.getItems();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const operatorChanged = changes['operator']?.previousValue !== undefined;\r\n const fieldChanged = changes['field']?.previousValue !== undefined && changes['field'].currentValue !== changes['field'].previousValue;\r\n\r\n if (operatorChanged || fieldChanged) {\r\n this.itemSelected = null;\r\n this.onChange(null);\r\n this.onTouched();\r\n\r\n if (fieldChanged) {\r\n this.field = changes['field'].currentValue;\r\n this.getItems();\r\n }\r\n }\r\n }\r\n\r\n getItems() {\r\n this.getItemByIdentity().subscribe({\r\n next: (items) => {\r\n this.items = items ?? [];\r\n this.treeNodeItems = this.itemsToTreeNodeMap(this.items);\r\n this.resolveSelection();\r\n }\r\n });\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.itemSelected = value ?? null;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n onNodeSelected(value: any, fromGetItems: boolean = false) {\r\n this.itemSelected = value;\r\n let allSelectedNodesIds = null;\r\n if (value) {\r\n if (Array.isArray(value)) {\r\n allSelectedNodesIds = value.map((node: any) => node.data);\r\n } else {\r\n allSelectedNodesIds = {\r\n parent: value.data,\r\n ids: this.getParentAndChildrenIds([value])\r\n };\r\n }\r\n\r\n if(fromGetItems){\r\n if (this.getDataType() === DataTypeEnum.Multi) {\r\n requestAnimationFrame(() => {\r\n this.treeNodeItems = this.updatePartialSelection(this.treeNodeItems, value);\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n }\r\n }\r\n\r\n this.onChange(allSelectedNodesIds);\r\n this.onTouched();\r\n }\r\n\r\n private resolveSelection() {\r\n this.itemSelected = this.operator == '=' ? this.findNodesByIds(this.treeNodeItems, this.itemSelected?.parent ?? null) : this.findNodesByIds(this.treeNodeItems, this.itemSelected); \r\n this.onNodeSelected(this.itemSelected, true);\r\n }\r\n\r\n getItemByIdentity() {\r\n return this.field === 'category'\r\n ? this.apiService.getCategories(this.productApiUrl, this.productApiToken)\r\n : this.apiService.getSections(this.productApiUrl, this.productApiToken);\r\n }\r\n\r\n getParentAndChildrenIds(nodes: TreeNode[], ids: number[] = []): number[] {\r\n for (let node of nodes) {\r\n ids.push(node.data);\r\n if (node.children && node.children.length > 0) {\r\n this.getParentAndChildrenIds(node.children, ids);\r\n }\r\n }\r\n return ids;\r\n }\r\n\r\n updatePartialSelection(nodes: TreeNode[], selectedNodes: TreeNode[]): TreeNode[] {\r\n if (!nodes || !selectedNodes) return nodes || [];\r\n\r\n for (let node of nodes) {\r\n if (node.children && node.children.length > 0) {\r\n this.updatePartialSelection(node.children, selectedNodes);\r\n const selectedChildrenCount = node.children.filter((child: any) => selectedNodes.some((node: any) => node.data === child.data)).length;\r\n const hasPartialChildren = node.children.some((child: any) => child.partialSelected);\r\n\r\n node.partialSelected = (selectedChildrenCount > 0 && selectedChildrenCount < node.children.length) || hasPartialChildren;\r\n } else {\r\n node.partialSelected = false;\r\n }\r\n }\r\n\r\n return nodes;\r\n }\r\n\r\n getDataType() {\r\n return this.operator === OperatorEnum.Equals || this.operator === OperatorEnum.NotEquals\r\n ? DataTypeEnum.Single\r\n : DataTypeEnum.Multi;\r\n }\r\n\r\n itemsToTreeNodeMap(productSectionList: any[]): TreeNode[] {\r\n if (!productSectionList) return [];\r\n\r\n return productSectionList.map((product) => ({\r\n key: `${product[this.getFieldId()]}`,\r\n label: product.name,\r\n data: product[this.getFieldId()],\r\n children: this.itemsToTreeNodeMap(product[this.getEntityInverseParent()])\r\n }));\r\n }\r\n\r\n findNodesByIds(nodes: any[], ids: any): any | any[] {\r\n const isArray = Array.isArray(ids);\r\n const idList = isArray ? ids : [ids];\r\n let foundNodes: any[] = [];\r\n\r\n for (let node of nodes) {\r\n if (idList.includes(node.data)) {\r\n foundNodes.push(node);\r\n if (!isArray) return node;\r\n }\r\n if (node.children) {\r\n const result = this.findNodesByIds(node.children, ids);\r\n if (isArray) {\r\n foundNodes = foundNodes.concat(result);\r\n } else if (result) {\r\n return result;\r\n }\r\n }\r\n }\r\n\r\n return isArray ? foundNodes : null;\r\n }\r\n\r\n getFieldId() {\r\n return this.field === 'category' ? 'productCategoryId' : 'productSectionId';\r\n }\r\n\r\n getEntityInverseParent() {\r\n return this.field === 'category' ? 'inverseParentProductCategory' : 'inverseParentProductSection';\r\n }\r\n\r\n findTreeNodeCategory(listNode: TreeNode[], id: number, partial?: boolean) {\r\n for (let node of listNode) {\r\n if (node.data == id) {\r\n node.partialSelected = partial;\r\n return node;\r\n }\r\n\r\n if (node.children) {\r\n let newNodeFound: any = this.findTreeNodeCategory(node.children, id, node.partialSelected);\r\n if (newNodeFound) {\r\n return newNodeFound;\r\n }\r\n }\r\n }\r\n return undefined;\r\n }\r\n}\r\n","@if (getDataType() == dataType.Multi) {\r\n <w-edit-treeselect [showLabel]=\"false\" [removePaddingTop]=\"true\"\r\n class=\"w-tree-field-width w-filter-panel-advanced-query-builder-input-width w-filter-panel-basic-query-builder-input-width q-inline-block-display inline-flex\"\r\n [options]=\"treeNodeItems\"\r\n selectionMode=\"checkbox\"\r\n [placeholder]=\"selectPlaceholder\"\r\n appendTo=\"self\"\r\n [(ngModel)]=\"itemSelected\"\r\n (ngModelChange)=\"onNodeSelected($event)\"\r\n [filterBy]=\"'label,data'\">\r\n </w-edit-treeselect>\r\n}\r\n\r\n@if (getDataType() == dataType.Single) {\r\n <w-edit-treeselect [showLabel]=\"false\" [removePaddingTop]=\"true\"\r\n class=\"w-tree-field-width w-filter-panel-advanced-query-builder-input-width w-filter-panel-basic-query-builder-input-width q-inline-block-display inline-flex\"\r\n [options]=\"treeNodeItems\"\r\n selectionMode=\"single\"\r\n [placeholder]=\"selectPlaceholder\"\r\n appendTo=\"self\"\r\n [(ngModel)]=\"itemSelected\"\r\n (ngModelChange)=\"onNodeSelected($event)\"\r\n [filterBy]=\"'label,data'\">\r\n </w-edit-treeselect>\r\n}\r\n","import { Component, forwardRef, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { ApiService } from '../../service/api/api.service';\r\nimport { NotificationsEventEnum } from '../../models/enums.model';\r\nimport { PlatformEventsGroups } from '../../models/filter-panel/platform-events-group.model';\r\nimport { PlatformEvent } from '../../models/filter-panel/platform-event.model';\r\nimport { FieldMap } from '../../models/filter-panel/field.model';\r\n\r\n@Component({\r\n selector: 'w-notifications-event-field',\r\n templateUrl: './w-notifications-event-field.component.html',\r\n styleUrls: ['./w-notifications-event-field.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WNotificationsEventFieldComponent),\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class WNotificationsEventFieldComponent implements OnInit, ControlValueAccessor {\r\n eventCategories: PlatformEventsGroups[] = []; \r\n eventCategorySelected: any; \r\n eventCategoryId: number | null = null;\r\n events: PlatformEvent[] = []; \r\n eventSelected: any;\r\n eventId: number | null = null;\r\n notificationEventValue: any; \r\n isFirstGroupTrans: boolean = true;\r\n @Input('operator') operator!: any;\r\n @Input('placeholder') placeholder: string = 'Select an option';\r\n @Input('notificationApiUrl') notificationApiUrl!: string;\r\n @Input('notificationApiToken') notificationApiToken!: string;\r\n @Input('translationsOptions') translationsOptions!: any;\r\n\r\n private onChange: any = () => {};\r\n private onTouched: any = () => {};\r\n\r\n constructor(private apiService: ApiService){}\r\n\r\n ngOnInit(): void {\r\n this.getEventCategories();\r\n }\r\n\r\n getEventCategories(){\r\n this.apiService.getEventCategories(this.notificationApiUrl, this.notificationApiToken).subscribe({\r\n next: (eventCatgories: PlatformEventsGroups[]) => {\r\n this.eventCategories = eventCatgories ?? []; \r\n if(this.isFirstGroupTrans && this.translationsOptions && this.translationsOptions?.platformEventsGroup){\r\n this.eventCategories = eventCatgories.map(e => {\r\n return {\r\n ...e, \r\n description: this.translationsOptions.platformEventsGroup[e.code] ?? e.description\r\n }\r\n });\r\n this.isFirstGroupTrans = false;\r\n }\r\n\r\n this.eventCategorySelected = this.getNotificationEventData(NotificationsEventEnum.EventGroup, true, 'eventCategoryId'); \r\n this.onEventCategorySelected();\r\n }\r\n });\r\n }\r\n\r\n getEvents(eventCategoryId: number){\r\n this.apiService.getEvents(eventCategoryId, this.notificationApiUrl, this.notificationApiToken).subscribe({\r\n next: (events: PlatformEvent[]) => {\r\n this.events = events ?? []; \r\n if(this.translationsOptions && this.translationsOptions?.platformEventById){\r\n this.events = this.events.map(e => {\r\n return {\r\n ...e, \r\n description: this.translationsOptions.platformEventById[e.code] ?? e.description\r\n }\r\n })\r\n }\r\n this.eventSelected = this.getNotificationEventData(NotificationsEventEnum.Event, false); \r\n this.onEventSelected();\r\n }\r\n });\r\n }\r\n\r\n getNotificationEventData(notificationDataEnumType: number, isNotLastSelect: boolean, notificationPropertyIdName?: string){\r\n let dataSelected: any;\r\n if(this.notificationEventValue?.property){\r\n if(this.notificationEventValue.property == notificationDataEnumType){\r\n dataSelected = this.notificationEventValue.data;\r\n this.notificationEventValue = null;\r\n }else if(isNotLastSelect && notificationPropertyIdName){\r\n dataSelected = this.notificationEventValue[notificationPropertyIdName];\r\n }\r\n }\r\n return dataSelected;\r\n }\r\n \r\n onEventCategorySelected(){\r\n this.eventSelected = null; \r\n\r\n this.eventCategoryId = this.eventCategorySelected; \r\n\r\n this.doOnChange(NotificationsEventEnum.EventGroup, this.eventCategorySelected); \r\n\r\n this.events = []; \r\n if(this.eventCategorySelected !== undefined && this.eventCategorySelected !== null){\r\n this.getEvents(this.eventCategorySelected);\r\n }\r\n }\r\n\r\n onEventSelected(){\r\n this.doOnChange(NotificationsEventEnum.Event, this.eventSelected, this.eventCategoryId);\r\n }\r\n\r\n onEventCategoryCleared() {\r\n this.eventCategorySelected = null; \r\n this.eventSelected = null;\r\n this.onChange(null);\r\n }\r\n\r\n onEventCleared() {\r\n this.eventSelected = null;\r\n this.onChange(this.createObjectNotificationProperty(NotificationsEventEnum.EventGroup, this.eventCategorySelected, this.eventCategoryId));\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.eventSelected = value; \r\n this.notificationEventValue = value;\r\n\r\n if(value == undefined){\r\n this.eventCategorySelected = null;\r\n }\r\n }\r\n \r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n \r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n createObjectNotificationProperty(notificationType: any, value: any, eventCategoryId?: number | null){\r\n return {\r\n property: notificationType, \r\n data: value,\r\n eventCategoryId: eventCategoryId\r\n }\r\n }\r\n\r\n doOnChange(notificationType: any, value: any, eventCategoryId?: number | null){\r\n if(value){\r\n this.onChange(this.createObjectNotificationProperty(notificationType, value, eventCategoryId)); \r\n this.onTouched();\r\n }\r\n }\r\n}\r\n","<w-edit-select [loading]=\"eventCategories.length == 0\" class=\"w-notifications-event-field q-inline-block-display inline-flex w-filter-panel-basic-query-builder-input-width notifications-event-field-width\" [showClear]=\"false\" appendTo=\"self\" [options]=\"eventCategories\" [(ngModel)]=\"eventCategorySelected\" optionLabel=\"description\" optionValue=\"platformEventsGroupsId\" (onChange)=\"onEventCategorySelected()\" (onClear)=\"onEventCategoryCleared()\" [placeholder]=\"placeholder\"></w-edit-select>\r\n<w-edit-select [disabled]=\"!(events.length > 0 && eventCategorySelected != undefined && eventCategorySelected != null)\" class=\"w-notifications-event-field q-inline-block-display inline-flex w-filter-panel-basic-query-builder-input-width notifications-event-field-width\" [showClear]=\"false\" appendTo=\"self\" [options]=\"events\" [(ngModel)]=\"eventSelected\" optionLabel=\"description\" optionValue=\"platformEventId\" (onChange)=\"onEventSelected()\" (onClear)=\"onEventCleared()\" [placeholder]=\"placeholder\"></w-edit-select>\r\n","import { Component, forwardRef, Input, OnInit } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { FilterPanelTranslations } from '../../models/filter-panel/filter-panel-translations.model';\r\nimport { PeriodSelectEnum } from '../../models/enums.model';\r\nimport { PeriodSelectValue } from '../../models/filter-panel/period-select-value.model';\r\nimport { LocalStorageService } from '../../services/local-storage.service';\r\nimport { SessionStorageService } from '../../services/session-storage.service';\r\n\r\n@Component({\r\n selector: 'w-period-select-field',\r\n templateUrl: './w-period-select-field.component.html',\r\n styleUrls: ['./w-period-select-field.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WPeriodSelectFieldComponent),\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class WPeriodSelectFieldComponent implements OnInit {\r\n periodCategories: any; \r\n periodCategorySelected: any; \r\n fromDateValue: any; \r\n toDateValue: any;\r\n translationsMap!: { [key: number]: string };\r\n periodSelectEnum: typeof PeriodSelectEnum = PeriodSelectEnum;\r\n maxDate: Date = new Date(new Date().getTime() - 24 * 60 * 60 * 1000);\r\n\r\n @Input('operator') operator!: any;\r\n @Input('placeholder') placeholder: string = 'Select an option';\r\n @Input('translationsObject') translationsObject!: FilterPanelTranslations;\r\n @Input('periodSelectValue') periodSelectValue!: PeriodSelectValue;\r\n @Input('required') required: boolean = true;\r\n \r\n private onChange: any = () => {};\r\n private onTouched: any = () => {};\r\n \r\n constructor(private wLocalStorage: LocalStorageService, private wSessionStorage: SessionStorageService) { }\r\n\r\n ngOnInit() {\r\n this.initPeriodCategorySelect();\r\n }\r\n\r\n initPeriodCategorySelect() {\r\n const key24H = PeriodSelectEnum[PeriodSelectEnum.Last24Hours].toLowerCase();\r\n const key3M = PeriodSelectEnum[PeriodSelectEnum.Last3Months].toLowerCase();\r\n const keyCustom = PeriodSelectEnum[PeriodSelectEnum.Custom].toLowerCase();\r\n\r\n this.translationsMap = {\r\n [PeriodSelectEnum.Last24Hours]: this.translationsObject?.translatedSelectOptions![key24H] || 'Últimas 24 horas',\r\n [PeriodSelectEnum.Last3Months]: this.translationsObject?.translatedSelectOptions![key3M] || 'Últimos 3 meses',\r\n [PeriodSelectEnum.Custom]: this.translationsObject?.translatedSelectOptions![keyCustom] || 'Personalizado',\r\n };\r\n this.periodCategories = Object.entries(this.translationsMap).map(([key, value]) => ({\r\n value: Number(key), \r\n name: value\r\n }));\r\n this.initValues();\r\n }\r\n\r\n initValues() {\r\n if(this.periodSelectValue) {\r\n this.writeValue(this.periodCategorySelected);\r\n this.doOnChange(this.periodCategorySelected);\r\n \r\n this.fromDateValue = new Date(this.periodSelectValue.fromDate.toISOString().replace(/Z$/, ''));\r\n this.toDateValue = new Date(this.periodSelectValue.toDate.toISOString().replace(/Z$/, ''));\r\n }\r\n }\r\n\r\n onFromDateChange() {\r\n this.doOnChange(this.periodCategorySelected);\r\n }\r\n\r\n onToDateChange() {\r\n this.doOnChange(this.periodCategorySelected);\r\n }\r\n\r\n onClearCategory() {\r\n this.periodCategorySelected = PeriodSelectEnum.Last24Hours;\r\n const now = new Date();\r\n const last24 = new Date(now.getTime() - 24 * 60 * 60 * 1000);\r\n this.fromDateValue = last24;\r\n this.toDateValue = now;\r\n this.doOnChange(this.periodCategorySelected);\r\n this.onPeriodCategorySelected(); \r\n }\r\n\r\n onPeriodCategorySelected() {\r\n const now = new Date();\r\n const last24 = new Date(now.getTime() - 24 * 60 * 60 * 1000);\r\n const last3Months = new Date(now.setMonth(new Date().getMonth() - 3));\r\n\r\n if(this.periodCategorySelected === PeriodSelectEnum.Last24Hours) {\r\n this.fromDateValue = last24;\r\n this.toDateValue = now;\r\n } else if(this.periodCategorySelected === PeriodSelectEnum.Last3Months) {\r\n this.fromDateValue = last3Months;\r\n this.toDateValue = now;\r\n } else {\r\n const startYesterday = new Date();\r\n startYesterday.setDate(new Date().getDate() - 1);\r\n startYesterday.setHours(0, 0, 0, 0);\r\n\r\n this.fromDateValue = startYesterday;\r\n\r\n const endYesterday = new Date();\r\n endYesterday.setDate(new Date().getDate() - 1);\r\n endYesterday.setHours(23, 59, 59, 999);\r\n \r\n this.toDateValue = endYesterday;\r\n }\r\n this.wSessionStorage.setTenantPeriodSelectType(this.wLocalStorage.getTenant().tenantId, 'ticketsPeriodSelectType', this.periodCategorySelected);\r\n this.doOnChange(this.periodCategorySelected);\r\n }\r\n\r\n disableCalendar(): boolean {\r\n return this.periodCategorySelected === PeriodSelectEnum.Last24Hours || this.periodCategorySelected == null;\r\n }\r\n \r\n writeValue(value: any): void {\r\n if(value == undefined || value == null) {\r\n this.periodCategorySelected = null;\r\n } else {\r\n this.periodCategorySelected = value.periodType;\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n \r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n createObjectPeriodProperty(periodType: PeriodSelectEnum, fromDateValue?: Date | null, toDateValue?: Date | null){\r\n return {\r\n periodType: periodType, \r\n fromDate: fromDateValue!,\r\n toDate: toDateValue!\r\n }\r\n }\r\n\r\n doOnChange(value: any) {\r\n if(value) {\r\n this.onChange(this.createObjectPeriodProperty(this.periodCategorySelected, this.fromDateValue, this.toDateValue));\r\n this.onTouched();\r\n }\r\n }\r\n\r\n isValid(): boolean {\r\n if (this.periodCategorySelected === PeriodSelectEnum.Custom) {\r\n return !!this.fromDateValue && !!this.toDateValue;\r\n }\r\n return true;\r\n }\r\n\r\n getMaxDate(): Date {\r\n if(this.toDateValue) {\r\n return this.toDateValue;\r\n } else {\r\n return this.maxDate; \r\n }\r\n }\r\n\r\n get isCustomSelected(): boolean {\r\n return this.periodCategorySelected === PeriodSelectEnum.Custom;\r\n }\r\n}\r\n","<w-edit-select \r\n class=\"w-period-select-field q-inline-block-display w-filter-panel-basic-query-builder-input-width period-select-field-width\"\r\n appendTo=\"self\"\r\n [options]=\"periodCategories\"\r\n [(ngModel)]=\"periodCategorySelected\"\r\n (onChange)=\"onPeriodCategorySelected()\"\r\n (onClear)=\"onClearCategory()\"\r\n optionLabel=\"name\"\r\n optionValue=\"value\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\">\r\n</w-edit-select>\r\n@if (isCustomSelected) {\r\n <w-edit-calendar\r\n [disabled]=\"disableCalendar()\"\r\n class=\"w-period-select-field q-inline-block-display w-filter-panel-basic-query-builder-input-width period-select-field-width\" \r\n [ngClass]=\"{'fadein animation-duration-2000' : isCustomSelected}\"\r\n appendTo=\"self\" \r\n size=\"small\" \r\n [dataType]=\"'date'\"\r\n [showIcon]=\"false\"\r\n [(ngModel)]=\"fromDateValue\"\r\n [required]=\"true\"\r\n (onChange)=\"onFromDateChange()\"\r\n [showTime]=\"true\"\r\n [showSeconds]=\"true\"\r\n [maxDate]=\"getMaxDate()\"\r\n [firstDayOfWeek]=\"translationsObject.firstDayOfWeek ?? 1\"\r\n [placeholder]=\"translationsObject.fieldsPlaceholders.from ?? 'Desde'\"\r\n [displayInlineBlock]=\"true\"\r\n [showLabel]=\"false\">\r\n </w-edit-calendar>\r\n <w-edit-calendar\r\n [disabled]=\"disableCalendar()\"\r\n class=\"w-period-select-field q-inline-block-display w-filter-panel-basic-query-builder-input-width period-select-field-width\" \r\n [ngClass]=\"{'fadein animation-duration-2000' : isCustomSelected}\"\r\n appendTo=\"self\" \r\n size=\"small\" \r\n [dataType]=\"'date'\"\r\n [showIcon]=\"false\"\r\n [(ngModel)]=\"toDateValue\"\r\n [required]=\"true\"\r\n (onChange)=\"onToDateChange()\"\r\n [showTime]=\"true\"\r\n [showSeconds]=\"true\"\r\n [maxDate]=\"maxDate\"\r\n [minDate]=\"fromDateValue\"\r\n [autoMinDate]=\"false\"\r\n [firstDayOfWeek]=\"translationsObject.firstDayOfWeek ?? 1\"\r\n [placeholder]=\"translationsObject.fieldsPlaceholders.to ?? 'Hasta'\"\r\n [displayInlineBlock]=\"true\"\r\n [showLabel]=\"false\">\r\n </w-edit-calendar>\r\n}","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[queryOperator]',\r\n standalone: false\r\n})\r\nexport class QueryOperatorDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[queryField]',\r\n standalone: false\r\n})\r\nexport class QueryFieldDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[queryEntity]',\r\n standalone: false\r\n})\r\nexport class QueryEntityDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[querySwitchGroup]',\r\n standalone: false\r\n})\r\nexport class QuerySwitchGroupDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[queryButtonGroup]',\r\n standalone: false\r\n})\r\nexport class QueryButtonGroupDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, Input, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[queryInput]',\r\n standalone: false\r\n})\r\nexport class QueryInputDirective {\r\n /** Unique name for query input type. */\r\n @Input()\r\n get queryInputType(): string { return this._type; }\r\n set queryInputType(value: string) {\r\n // If the directive is set without a type (updated programatically), then this setter will\r\n // trigger with an empty string and should not overwrite the programatically set value.\r\n if (!value) { return; }\r\n this._type = value;\r\n }\r\n private _type!: string;\r\n\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[queryRemoveButton]',\r\n standalone: false\r\n})\r\nexport class QueryRemoveButtonDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[queryEmptyWarning]',\r\n standalone: false\r\n})\r\nexport class QueryEmptyWarningDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[queryArrowIcon]',\r\n standalone: false\r\n})\r\nexport class QueryArrowIconDirective {\r\n constructor(public template: TemplateRef<any>) {}\r\n}\r\n","import {\r\n AbstractControl,\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n NG_VALIDATORS,\r\n ValidationErrors,\r\n Validator\r\n} from '@angular/forms';\r\nimport { QueryOperatorDirective } from './query-operator.directive';\r\nimport { QueryFieldDirective } from './query-field.directive';\r\nimport { QueryEntityDirective } from './query-entity.directive';\r\nimport { QuerySwitchGroupDirective } from './query-switch-group.directive';\r\nimport { QueryButtonGroupDirective } from './query-button-group.directive';\r\nimport { QueryInputDirective } from './query-input.directive';\r\nimport { QueryRemoveButtonDirective } from './query-remove-button.directive';\r\nimport { QueryEmptyWarningDirective } from './query-empty-warning.directive';\r\nimport { QueryArrowIconDirective } from './query-arrow-icon.directive';\r\nimport {\r\n ButtonGroupContext,\r\n Entity,\r\n Field,\r\n SwitchGroupContext,\r\n EntityContext,\r\n FieldContext,\r\n InputContext,\r\n LocalRuleMeta,\r\n OperatorContext,\r\n Option,\r\n QueryBuilderClassNames,\r\n QueryBuilderConfig,\r\n RemoveButtonContext,\r\n ArrowIconContext,\r\n Rule,\r\n RuleSet,\r\n EmptyWarningContext,\r\n} from './query-builder.interfaces';\r\nimport {\r\n ChangeDetectorRef,\r\n Component,\r\n ContentChild,\r\n ContentChildren,\r\n forwardRef,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n QueryList,\r\n SimpleChanges,\r\n TemplateRef,\r\n ViewChild,\r\n ElementRef\r\n} from '@angular/core';\r\n\r\nexport const CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => QueryBuilderComponent),\r\n multi: true\r\n};\r\n\r\nexport const VALIDATOR: any = {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => QueryBuilderComponent),\r\n multi: true\r\n};\r\n\r\n@Component({\r\n selector: 'query-builder',\r\n templateUrl: './query-builder.component.html',\r\n styleUrls: ['./query-builder.component.scss'],\r\n providers: [CONTROL_VALUE_ACCESSOR, VALIDATOR],\r\n standalone: false\r\n})\r\nexport class QueryBuilderComponent implements OnInit, OnChanges, ControlValueAccessor, Validator {\r\n public fields!: Field[];\r\n public filterFields!: Field[];\r\n public entities!: Entity[] | null;\r\n public defaultClassNames: QueryBuilderClassNames = {\r\n arrowIconButton: 'q-arrow-icon-button',\r\n arrowIcon: 'q-icon q-arrow-icon',\r\n removeIcon: 'q-icon q-remove-icon',\r\n addIcon: 'q-icon q-add-icon',\r\n button: 'q-button',\r\n buttonGroup: 'q-button-group',\r\n removeButton: 'q-remove-button',\r\n switchGroup: 'q-switch-group',\r\n switchLabel: 'q-switch-label',\r\n switchRadio: 'q-switch-radio',\r\n rightAlign: 'q-right-align',\r\n transition: 'q-transition',\r\n collapsed: 'q-collapsed',\r\n treeContainer: 'q-tree-container',\r\n tree: 'q-tree',\r\n row: 'q-row',\r\n connector: 'q-connector',\r\n rule: 'q-rule',\r\n ruleSet: 'q-ruleset',\r\n invalidRuleSet: 'q-invalid-ruleset',\r\n emptyWarning: 'q-empty-warning',\r\n fieldControl: 'q-field-control',\r\n fieldControlSize: 'q-control-size',\r\n entityControl: 'q-entity-control',\r\n entityControlSize: 'q-control-size',\r\n operatorControl: 'q-operator-control',\r\n operatorControlSize: 'q-control-size',\r\n inputControl: 'q-input-control',\r\n inputControlSize: 'q-control-size'\r\n };\r\n public defaultOperatorMap: { [key: string]: string[] } = {\r\n string: ['=', '!=', 'contains', 'like'],\r\n number: ['=', '!=', '>', '>=', '<', '<='],\r\n time: ['=', '!=', '>', '>=', '<', '<='],\r\n date: ['=', '!=', '>', '>=', '<', '<='],\r\n category: ['=', '!=', 'in', 'not in'],\r\n boolean: ['=']\r\n };\r\n @Input() disabled!: boolean;\r\n @Input() data: RuleSet = { condition: 'and', rules: [] };\r\n\r\n // For ControlValueAccessor interface\r\n public onChangeCallback!: () => void;\r\n public onTouchedCallback!: () => any;\r\n\r\n @Input() allowRuleset: boolean = true;\r\n @Input() allowCollapse: boolean = false;\r\n @Input() emptyMessage: string = 'A ruleset cannot be empty. Please add a rule or remove it all together.';\r\n @Input() classNames!: QueryBuilderClassNames;\r\n @Input() operatorMap!: { [key: string]: string[] };\r\n @Input() parentValue!: RuleSet;\r\n @Input() config: QueryBuilderConfig = { fields: {} };\r\n @Input() parentArrowIconTemplate!: QueryArrowIconDirective;\r\n @Input() parentInputTemplates!: QueryList<QueryInputDirective>;\r\n @Input() parentOperatorTemplate!: QueryOperatorDirective;\r\n @Input() parentFieldTemplate!: QueryFieldDirective;\r\n @Input() parentEntityTemplate!: QueryEntityDirective;\r\n @Input() parentSwitchGroupTemplate!: QuerySwitchGroupDirective;\r\n @Input() parentButtonGroupTemplate!: QueryButtonGroupDirective;\r\n @Input() parentRemoveButtonTemplate!: QueryRemoveButtonDirective;\r\n @Input() parentEmptyWarningTemplate!: QueryEmptyWarningDirective;\r\n @Input() parentChangeCallback!: () => void;\r\n @Input() parentTouchedCallback!: () => void;\r\n @Input() persistValueOnFieldChange: boolean = false;\r\n\r\n @ViewChild('treeContainer', {static: true}) treeContainer!: ElementRef;\r\n\r\n @ContentChild(QueryButtonGroupDirective) buttonGroupTemplate!: QueryButtonGroupDirective;\r\n @ContentChild(QuerySwitchGroupDirective) switchGroupTemplate!: QuerySwitchGroupDirective;\r\n @ContentChild(QueryFieldDirective) fieldTemplate!: QueryFieldDirective;\r\n @ContentChild(QueryEntityDirective) entityTemplate!: QueryEntityDirective;\r\n @ContentChild(QueryOperatorDirective) operatorTemplate!: QueryOperatorDirective;\r\n @ContentChild(QueryRemoveButtonDirective) removeButtonTemplate!: QueryRemoveButtonDirective;\r\n @ContentChild(QueryEmptyWarningDirective) emptyWarningTemplate!: QueryEmptyWarningDirective;\r\n @ContentChildren(QueryInputDirective) inputTemplates!: QueryList<QueryInputDirective>;\r\n @ContentChild(QueryArrowIconDirective) arrowIconTemplate!: QueryArrowIconDirective;\r\n\r\n private defaultTemplateTypes: string[] = [\r\n 'string', 'number', 'time', 'date', 'category', 'boolean', 'multiselect'];\r\n private defaultPersistValueTypes: string[] = [\r\n 'string', 'number', 'time', 'date', 'boolean'];\r\n private defaultEmptyList: any[] = [];\r\n private operatorsCache!: { [key: string]: string[] };\r\n private inputContextCache = new Map<Rule, InputContext>();\r\n private operatorContextCache = new Map<Rule, OperatorContext>();\r\n private fieldContextCache = new Map<Rule, FieldContext>();\r\n private entityContextCache = new Map<Rule, EntityContext>();\r\n private removeButtonContextCache = new Map<Rule, RemoveButtonContext>();\r\n private buttonGroupContext!: any;\r\n\r\n constructor(private changeDetectorRef: ChangeDetectorRef) { }\r\n\r\n // ----------OnInit Implementation----------\r\n\r\n ngOnInit() { }\r\n\r\n // ----------OnChanges Implementation----------\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n const config = this.config;\r\n const type = typeof config;\r\n if (type === 'object') {\r\n this.fields = Object.keys(config.fields).map((value) => {\r\n const field = config.fields[value];\r\n field.value = field.value || value;\r\n return field;\r\n });\r\n if (config.entities) {\r\n this.entities = Object.keys(config.entities).map((value) => {\r\n const entity = config.entities![value];\r\n entity.value = entity.value || value;\r\n return entity;\r\n });\r\n } else {\r\n this.entities = null;\r\n }\r\n this.operatorsCache = {};\r\n } else {\r\n throw new Error(`Expected 'config' must be a valid object, got ${type} instead.`);\r\n }\r\n }\r\n\r\n // ----------Validator Implementation----------\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n const errors: { [key: string]: any } = {};\r\n const ruleErrorStore: any[] = [];\r\n let hasErrors = false;\r\n\r\n if (!this.config.allowEmptyRulesets && this.checkEmptyRuleInRuleset(this.data)) {\r\n errors['empty'] = 'Empty rulesets are not allowed.';\r\n hasErrors = true;\r\n }\r\n\r\n this.validateRulesInRuleset(this.data, ruleErrorStore);\r\n\r\n if (ruleErrorStore.length) {\r\n errors['rules'] = ruleErrorStore;\r\n hasErrors = true;\r\n }\r\n return hasErrors ? errors : null;\r\n }\r\n\r\n // ----------ControlValueAccessor Implementation----------\r\n\r\n @Input()\r\n get value(): RuleSet {\r\n return this.data;\r\n }\r\n set value(value: RuleSet) {\r\n // When component is initialized without a formControl, null is passed to value\r\n this.data = value || { condition: 'and', rules: [] };\r\n this.handleDataChange();\r\n }\r\n\r\n writeValue(obj: any): void {\r\n this.value = obj;\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChangeCallback = () => fn(this.data);\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouchedCallback = () => fn(this.data);\r\n }\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n this.changeDetectorRef.detectChanges();\r\n }\r\n\r\n // ----------END----------\r\n\r\n getDisabledState = (): boolean => {\r\n return this.disabled;\r\n }\r\n\r\n findTemplateForRule(rule: any): any {\r\n const type = this.getInputType(rule.field, rule.operator!);\r\n if (type) {\r\n const queryInput = this.findQueryInput(type);\r\n if (queryInput) {\r\n return queryInput.template;\r\n } else {\r\n if (this.defaultTemplateTypes.indexOf(type) === -1) {\r\n console.warn(`Could not find template for field with type: ${type}`);\r\n }\r\n return null;\r\n }\r\n }\r\n }\r\n\r\n findQueryInput(type: string): any {\r\n const templates = this.parentInputTemplates || this.inputTemplates;\r\n return templates.find((item) => item.queryInputType === type);\r\n }\r\n\r\n getOperators(field: string): string[] {\r\n if (this.operatorsCache[field]) {\r\n return this.operatorsCache[field];\r\n }\r\n let operators = this.defaultEmptyList;\r\n const fieldObject = this.config.fields[field];\r\n\r\n if (this.config.getOperators) {\r\n return this.config.getOperators(field, fieldObject);\r\n }\r\n\r\n const type = fieldObject.type;\r\n\r\n if (fieldObject && fieldObject.operators) {\r\n operators = fieldObject.operators;\r\n } else if (type) {\r\n operators = (this.operatorMap && this.operatorMap[type]) || this.defaultOperatorMap[type] || this.defaultEmptyList;\r\n if (operators.length === 0) {\r\n console.warn(\r\n `No operators found for field '${field}' with type ${fieldObject.type}. ` +\r\n `Please define an 'operators' property on the field or use the 'operatorMap' binding to fix this.`);\r\n }\r\n if (fieldObject.nullable) {\r\n operators = operators.concat(['is null', 'is not null']);\r\n }\r\n } else {\r\n console.warn(`No 'type' property found on field: '${field}'`);\r\n }\r\n\r\n // Cache reference to array object, so it won't be computed next time and trigger a rerender.\r\n this.operatorsCache[field] = operators;\r\n return operators;\r\n }\r\n\r\n getFields(entity: string): Field[] {\r\n if (this.entities && entity) {\r\n return this.fields.filter((field) => {\r\n return field && field.entity === entity;\r\n });\r\n } else {\r\n return this.fields;\r\n }\r\n }\r\n\r\n getInputType(field: string, operator: string): string | null {\r\n if (this.config.getInputType) {\r\n return this.config.getInputType(field, operator);\r\n }\r\n\r\n if (!this.config.fields[field]) {\r\n throw new Error(`No configuration for field '${field}' could be found! Please add it to config.fields.`);\r\n }\r\n\r\n const type = this.config.fields[field].type;\r\n switch (operator) {\r\n case 'is null':\r\n case 'is not null':\r\n return null; // No displayed component\r\n case 'in':\r\n case 'not in':\r\n return type === 'category' || type === 'boolean' ? 'multiselect' : type;\r\n default:\r\n return type;\r\n }\r\n }\r\n\r\n getOptions(field: string): Option[] {\r\n if (this.config.getOptions) {\r\n return this.config.getOptions(field);\r\n }\r\n return this.config.fields[field].options || this.defaultEmptyList;\r\n }\r\n\r\n getClassNames(...args: any): string | null {\r\n const clsLookup: QueryBuilderClassNames = this.classNames ? this.classNames : this.defaultClassNames;\r\n const classNames = args\r\n .map((id: keyof QueryBuilderClassNames) => clsLookup[id] || this.defaultClassNames[id])\r\n .filter((c: any): c is string => !!c);\r\n return classNames.length ? classNames.join(' ') : null;\r\n }\r\n\r\n getDefaultField(entity: Entity): Field | null {\r\n if (!entity) {\r\n return null;\r\n } else if (entity.defaultField !== undefined) {\r\n return this.getDefaultValue(entity.defaultField);\r\n } else {\r\n const entityFields = this.fields.filter((field) => {\r\n return field && field.entity === entity.value;\r\n });\r\n if (entityFields && entityFields.length) {\r\n return entityFields[0];\r\n } else {\r\n console.warn(`No fields found for entity '${entity.name}'. ` +\r\n `A 'defaultOperator' is also not specified on the field config. Operator value will default to null.`);\r\n return null;\r\n }\r\n }\r\n }\r\n\r\n getDefaultOperator(field: Field): string | null {\r\n if (field && field.defaultOperator !== undefined) {\r\n return this.getDefaultValue(field.defaultOperator);\r\n } else {\r\n const operators = this.getOperators(field.value!);\r\n if (operators && operators.length) {\r\n return operators[0];\r\n } else {\r\n console.warn(`No operators found for field '${field.value}'. ` +\r\n `A 'defaultOperator' is also not specified on the field config. Operator value will default to null.`);\r\n return null;\r\n }\r\n }\r\n }\r\n\r\n addRule(parent?: RuleSet): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n parent = parent || this.data;\r\n if (this.config.addRule) {\r\n this.config.addRule(parent);\r\n } else {\r\n const field = this.fields[0];\r\n parent.rules = parent.rules.concat([{\r\n field: field.value!,\r\n operator: this.getDefaultOperator(field)!,\r\n value: this.getDefaultValue(field.defaultValue),\r\n entity: field.entity\r\n }]);\r\n }\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n removeRule(rule: any, parent?: RuleSet): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n parent = parent || this.data;\r\n if (this.config.removeRule) {\r\n this.config.removeRule(rule, parent);\r\n } else {\r\n parent.rules = parent.rules.filter((r) => r !== rule);\r\n }\r\n this.inputContextCache.delete(rule);\r\n this.operatorContextCache.delete(rule);\r\n this.fieldContextCache.delete(rule);\r\n this.entityContextCache.delete(rule);\r\n this.removeButtonContextCache.delete(rule);\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n addRuleSet(parent?: RuleSet): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n parent = parent || this.data;\r\n if (this.config.addRuleSet) {\r\n this.config.addRuleSet(parent);\r\n } else {\r\n parent.rules = parent.rules.concat([{ condition: 'and', rules: [] }]);\r\n }\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n removeRuleSet(ruleset?: RuleSet, parent?: RuleSet): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n ruleset = ruleset || this.data;\r\n parent = parent || this.parentValue;\r\n if (this.config.removeRuleSet) {\r\n this.config.removeRuleSet(ruleset, parent);\r\n } else {\r\n parent.rules = parent.rules.filter((r) => r !== ruleset);\r\n }\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n transitionEnd(e: Event): void {\r\n this.treeContainer.nativeElement.style.maxHeight = null;\r\n }\r\n\r\n toggleCollapse(): void {\r\n this.computedTreeContainerHeight();\r\n setTimeout(() => {\r\n this.data.collapsed = !this.data.collapsed;\r\n }, 100);\r\n }\r\n\r\n computedTreeContainerHeight(): void {\r\n const nativeElement: HTMLElement = this.treeContainer.nativeElement;\r\n if (nativeElement && nativeElement.firstElementChild) {\r\n nativeElement.style.maxHeight = (nativeElement.firstElementChild.clientHeight + 8) + 'px';\r\n }\r\n }\r\n\r\n changeCondition(value: string): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n this.data.condition = value;\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n changeOperator(rule: Rule): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n if (this.config.coerceValueForOperator) {\r\n rule.value = this.config.coerceValueForOperator(rule.operator!, rule.value, rule);\r\n } else {\r\n rule.value = this.coerceValueForOperator(rule.operator!, rule.value, rule);\r\n }\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n coerceValueForOperator(operator: string, value: any, rule: Rule): any {\r\n const inputType: any = this.getInputType(rule.field, operator);\r\n if (inputType === 'multiselect' && !Array.isArray(value)) {\r\n return [value];\r\n }\r\n return value;\r\n }\r\n\r\n changeInput(): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n changeField(fieldValue: string, rule: Rule): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n\r\n const inputContext = this.inputContextCache.get(rule);\r\n const currentField = inputContext && inputContext.field;\r\n\r\n const nextField: Field = this.config.fields[fieldValue];\r\n\r\n const nextValue = this.calculateFieldChangeValue(\r\n currentField!, nextField, rule.value);\r\n\r\n if (nextValue !== undefined) {\r\n rule.value = nextValue;\r\n } else {\r\n delete rule.value;\r\n }\r\n\r\n rule.operator = this.getDefaultOperator(nextField)!;\r\n\r\n // Create new context objects so templates will automatically update\r\n this.inputContextCache.delete(rule);\r\n this.operatorContextCache.delete(rule);\r\n this.fieldContextCache.delete(rule);\r\n this.entityContextCache.delete(rule);\r\n this.getInputContext(rule);\r\n this.getFieldContext(rule);\r\n this.getOperatorContext(rule);\r\n this.getEntityContext(rule);\r\n\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n\r\n changeEntity(entityValue: string, rule: Rule, index: number, data: RuleSet): void {\r\n if (this.disabled) {\r\n return;\r\n }\r\n let i = index;\r\n let rs = data;\r\n const entity: any = this.entities!.find((e) => e.value === entityValue);\r\n const defaultField: Field = this.getDefaultField(entity)!;\r\n if (!rs) {\r\n rs = this.data;\r\n i = rs.rules.findIndex((x) => x === rule);\r\n }\r\n rule.field = defaultField.value!;\r\n rs.rules[i] = rule;\r\n if (defaultField) {\r\n this.changeField(defaultField.value!, rule);\r\n } else {\r\n this.handleTouched();\r\n this.handleDataChange();\r\n }\r\n }\r\n\r\n getDefaultValue(defaultValue: any): any {\r\n switch (typeof defaultValue) {\r\n case 'function':\r\n return defaultValue();\r\n default:\r\n return defaultValue;\r\n }\r\n }\r\n\r\n getOperatorTemplate(): TemplateRef<any> | null {\r\n const t = this.parentOperatorTemplate || this.operatorTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getFieldTemplate(): TemplateRef<any> | null {\r\n const t = this.parentFieldTemplate || this.fieldTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getEntityTemplate(): TemplateRef<any> | null {\r\n const t = this.parentEntityTemplate || this.entityTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getArrowIconTemplate(): TemplateRef<any> | null {\r\n const t = this.parentArrowIconTemplate || this.arrowIconTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getButtonGroupTemplate(): TemplateRef<any> | null {\r\n const t = this.parentButtonGroupTemplate || this.buttonGroupTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getSwitchGroupTemplate(): TemplateRef<any> | null {\r\n const t = this.parentSwitchGroupTemplate || this.switchGroupTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getRemoveButtonTemplate(): TemplateRef<any> | null {\r\n const t = this.parentRemoveButtonTemplate || this.removeButtonTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getEmptyWarningTemplate(): TemplateRef<any> | null {\r\n const t = this.parentEmptyWarningTemplate || this.emptyWarningTemplate;\r\n return t ? t.template : null;\r\n }\r\n\r\n getQueryItemClassName(local: any): string {\r\n let cls = this.getClassNames('row', 'connector', 'transition');\r\n cls += ' ' + this.getClassNames(local.ruleset ? 'ruleSet' : 'rule');\r\n if (local.invalid) {\r\n cls += ' ' + this.getClassNames('invalidRuleSet');\r\n }\r\n return cls!;\r\n }\r\n\r\n getButtonGroupContext(): ButtonGroupContext {\r\n if (!this.buttonGroupContext) {\r\n this.buttonGroupContext = {\r\n addRule: this.addRule.bind(this),\r\n addRuleSet: this.allowRuleset && this.addRuleSet.bind(this),\r\n removeRuleSet: this.allowRuleset && this.parentValue && this.removeRuleSet.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n $implicit: this.data\r\n };\r\n }\r\n return this.buttonGroupContext;\r\n }\r\n\r\n getRemoveButtonContext(rule: any): RemoveButtonContext {\r\n if (!this.removeButtonContextCache.has(rule)) {\r\n this.removeButtonContextCache.set(rule, {\r\n removeRule: this.removeRule.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n $implicit: rule\r\n });\r\n }\r\n return this.removeButtonContextCache.get(rule)!;\r\n }\r\n\r\n getFieldContext(rule: any): FieldContext {\r\n if (!this.fieldContextCache.has(rule)) {\r\n this.fieldContextCache.set(rule, {\r\n onChange: this.changeField.bind(this),\r\n getFields: this.getFields.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n fields: this.fields,\r\n $implicit: rule\r\n });\r\n }\r\n return this.fieldContextCache.get(rule)!;\r\n }\r\n\r\n getEntityContext(rule: any): EntityContext {\r\n if (!this.entityContextCache.has(rule)) {\r\n this.entityContextCache.set(rule, {\r\n onChange: (entityValue: string, r: Rule) => this.changeEntity(entityValue, r, undefined as any, undefined as any),\r\n getDisabledState: this.getDisabledState,\r\n entities: this.entities!,\r\n $implicit: rule\r\n });\r\n }\r\n return this.entityContextCache.get(rule)!;\r\n }\r\n\r\n getSwitchGroupContext(): SwitchGroupContext {\r\n return {\r\n onChange: this.changeCondition.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n $implicit: this.data\r\n };\r\n }\r\n\r\n getArrowIconContext(): ArrowIconContext {\r\n return {\r\n getDisabledState: this.getDisabledState,\r\n $implicit: this.data\r\n };\r\n }\r\n\r\n getEmptyWarningContext(): EmptyWarningContext {\r\n return {\r\n getDisabledState: this.getDisabledState,\r\n message: this.emptyMessage,\r\n $implicit: this.data\r\n };\r\n }\r\n\r\n getOperatorContext(rule: Rule): OperatorContext {\r\n if (!this.operatorContextCache.has(rule)) {\r\n this.operatorContextCache.set(rule, {\r\n onChange: this.changeOperator.bind(this, rule),\r\n getDisabledState: this.getDisabledState,\r\n operators: this.getOperators(rule.field),\r\n $implicit: rule\r\n });\r\n }\r\n return this.operatorContextCache.get(rule)!;\r\n }\r\n\r\n getInputContext(rule: any): InputContext {\r\n if (!this.inputContextCache.has(rule)) {\r\n this.inputContextCache.set(rule, {\r\n onChange: this.changeInput.bind(this),\r\n getDisabledState: this.getDisabledState,\r\n options: this.getOptions(rule.field),\r\n field: this.config.fields[rule.field],\r\n $implicit: rule\r\n });\r\n }\r\n return this.inputContextCache.get(rule)!;\r\n }\r\n\r\n private calculateFieldChangeValue(\r\n currentField: Field,\r\n nextField: Field,\r\n currentValue: any\r\n ): any {\r\n\r\n if (this.config.calculateFieldChangeValue != null) {\r\n return this.config.calculateFieldChangeValue(\r\n currentField, nextField, currentValue);\r\n }\r\n\r\n const canKeepValue = () => {\r\n if (currentField == null || nextField == null) {\r\n return false;\r\n }\r\n return currentField.type === nextField.type\r\n && this.defaultPersistValueTypes.indexOf(currentField.type) !== -1;\r\n };\r\n\r\n if (this.persistValueOnFieldChange && canKeepValue()) {\r\n return currentValue;\r\n }\r\n\r\n if (nextField && nextField.defaultValue !== undefined) {\r\n return this.getDefaultValue(nextField.defaultValue);\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private checkEmptyRuleInRuleset(ruleset: RuleSet): boolean {\r\n if (!ruleset || !ruleset.rules || ruleset.rules.length === 0) {\r\n return true;\r\n } else {\r\n return ruleset.rules.some((item: any) => {\r\n if (item.rules) {\r\n return this.checkEmptyRuleInRuleset(item);\r\n } else {\r\n return false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n private validateRulesInRuleset(ruleset: RuleSet, errorStore: any[]) {\r\n if (ruleset && ruleset.rules && ruleset.rules.length > 0) {\r\n ruleset.rules.forEach((item) => {\r\n if ((item as RuleSet).rules) {\r\n return this.validateRulesInRuleset(item as RuleSet, errorStore);\r\n } else if ((item as Rule).field) {\r\n const field = this.config.fields[(item as Rule).field];\r\n if (field && field.validator && field.validator.apply!) {\r\n const error = field.validator(item as Rule, ruleset);\r\n if (error != null) {\r\n errorStore.push(error);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n private handleDataChange(): void {\r\n this.changeDetectorRef.markForCheck();\r\n if (this.onChangeCallback) {\r\n this.onChangeCallback();\r\n }\r\n if (this.parentChangeCallback) {\r\n this.parentChangeCallback();\r\n }\r\n }\r\n\r\n private handleTouched(): void {\r\n if (this.onTouchedCallback) {\r\n this.onTouchedCallback();\r\n }\r\n if (this.parentTouchedCallback) {\r\n this.parentTouchedCallback();\r\n }\r\n }\r\n}\r\n","<div [ngClass]=\"getClassNames('switchRow')\">\r\n\r\n @if (allowCollapse) {\r\n <a (click)=\"toggleCollapse()\" [ngClass]=\"getClassNames('arrowIconButton', data.collapsed ? 'collapsed' : null)\">\r\n @if (getArrowIconTemplate(); as template) {\r\n <ng-container *ngTemplateOutlet=\"template; context: getArrowIconContext()\"></ng-container>\r\n } @else {\r\n <i [ngClass]=\"getClassNames('arrowIcon')\"></i>\r\n }\r\n </a>\r\n }\r\n\r\n @if (getButtonGroupTemplate(); as template) {\r\n <div [ngClass]=\"getClassNames('buttonGroup', 'rightAlign')\">\r\n <ng-container *ngTemplateOutlet=\"template; context: getButtonGroupContext()\"></ng-container>\r\n </div>\r\n } @else {\r\n <div [ngClass]=\"getClassNames('buttonGroup', 'rightAlign')\">\r\n <button type=\"button\" (click)=\"addRule()\" [ngClass]=\"getClassNames('button')\" [disabled]=disabled>\r\n <i [ngClass]=\"getClassNames('addIcon')\"></i> Rule\r\n </button>\r\n @if (allowRuleset) {\r\n <button type=\"button\" (click)=\"addRuleSet()\" [ngClass]=\"getClassNames('button')\" [disabled]=disabled>\r\n <i [ngClass]=\"getClassNames('addIcon')\"></i> Ruleset\r\n </button>\r\n }\r\n @if (!!parentValue && allowRuleset) {\r\n <button type=\"button\" (click)=\"removeRuleSet()\" [ngClass]=\"getClassNames('button', 'removeButton')\" [disabled]=disabled>\r\n <i [ngClass]=\"getClassNames('removeIcon')\"></i>\r\n </button>\r\n }\r\n </div>\r\n }\r\n\r\n\r\n @if (getSwitchGroupTemplate(); as template) {\r\n <ng-container *ngTemplateOutlet=\"template; context: getSwitchGroupContext()\"></ng-container>\r\n } @else {\r\n @if (data) {\r\n <div [ngClass]=\"getClassNames('switchGroup', 'transition')\">\r\n <div [ngClass]=\"getClassNames('switchControl')\">\r\n <input type=\"radio\" [ngClass]=\"getClassNames('switchRadio')\" [(ngModel)]=\"data.condition\" [disabled]=disabled\r\n value=\"and\" #andOption />\r\n <label (click)=\"changeCondition(andOption.value)\" [ngClass]=\"getClassNames('switchLabel')\">AND</label>\r\n </div>\r\n <div [ngClass]=\"getClassNames('switchControl')\">\r\n <input type=\"radio\" [ngClass]=\"getClassNames('switchRadio')\" [(ngModel)]=\"data.condition\" [disabled]=disabled\r\n value=\"or\" #orOption />\r\n <label (click)=\"changeCondition(orOption.value)\" [ngClass]=\"getClassNames('switchLabel')\">OR</label>\r\n </div>\r\n </div>\r\n }\r\n }\r\n\r\n</div>\r\n\r\n<div #treeContainer (transitionend)=\"transitionEnd($event)\" [ngClass]=\"getClassNames('treeContainer', data.collapsed ? 'collapsed' : null)\">\r\n @if (data && data.rules) {\r\n <ul [ngClass]=\"getClassNames('tree')\">\r\n @for (rule of data.rules; track rule; let i = $index) {\r\n @if ({ruleset: !!rule.rules, invalid: !config.allowEmptyRulesets && rule.rules && rule.rules.length === 0}; as local) {\r\n <li [ngClass]=\"getQueryItemClassName(local)\">\r\n @if (!local.ruleset) {\r\n @if (getRemoveButtonTemplate(); as template) {\r\n <div [ngClass]=\"getClassNames('buttonGroup', 'rightAlign')\">\r\n <ng-container *ngTemplateOutlet=\"template; context: getRemoveButtonContext(rule)\"></ng-container>\r\n </div>\r\n } @else {\r\n <div [ngClass]=\"getClassNames('removeButtonSize', 'rightAlign')\">\r\n <button type=\"button\" [ngClass]=\"getClassNames('button', 'removeButton')\" (click)=\"removeRule(rule, data)\" [disabled]=disabled>\r\n <i [ngClass]=\"getClassNames('removeIcon')\"></i>\r\n </button>\r\n </div>\r\n }\r\n @if (entities?.length! > 0) {\r\n <div class=\"q-inline-block-display\">\r\n @if (getEntityTemplate(); as template) {\r\n <ng-container *ngTemplateOutlet=\"template; context: getEntityContext(rule)\"></ng-container>\r\n } @else {\r\n <div [ngClass]=\"getClassNames('entityControlSize')\">\r\n <select [ngClass]=\"getClassNames('entityControl')\" [(ngModel)]=\"rule.entity\" (ngModelChange)=\"changeEntity($event, rule,i,data)\"\r\n [disabled]=\"disabled\">\r\n @for (entity of entities; track entity) {\r\n <option [ngValue]=\"entity.value\">\r\n {{entity.name}}\r\n </option>\r\n }\r\n </select>\r\n </div>\r\n }\r\n </div>\r\n }\r\n @if (getFieldTemplate(); as template) {\r\n <ng-container *ngTemplateOutlet=\"template; context: getFieldContext(rule)\"></ng-container>\r\n } @else {\r\n <div [ngClass]=\"getClassNames('fieldControlSize')\">\r\n <select [ngClass]=\"getClassNames('fieldControl')\" [(ngModel)]=\"rule.field\" (ngModelChange)=\"changeField($event, rule)\"\r\n [disabled]=\"disabled\">\r\n @for (field of getFields(rule.entity); track field) {\r\n <option [ngValue]=\"field.value\">\r\n {{field.name}}\r\n </option>\r\n }\r\n </select>\r\n </div>\r\n }\r\n @if (getOperatorTemplate(); as template) {\r\n <ng-container *ngTemplateOutlet=\"template; context: getOperatorContext(rule)\"></ng-container>\r\n } @else {\r\n <div [ngClass]=\"getClassNames('operatorControlSize')\">\r\n <select [ngClass]=\"getClassNames('operatorControl')\" [(ngModel)]=\"rule.operator\" (ngModelChange)=\"changeOperator(rule)\"\r\n [disabled]=\"disabled\">\r\n @for (operator of getOperators(rule.field); track operator) {\r\n <option [ngValue]=\"operator\">\r\n {{operator}}\r\n </option>\r\n }\r\n </select>\r\n </div>\r\n }\r\n @if (findTemplateForRule(rule); as template) {\r\n <ng-container *ngTemplateOutlet=\"template; context: getInputContext(rule)\"></ng-container>\r\n } @else {\r\n <div [ngClass]=\"getClassNames('inputControlSize')\">\r\n @switch (getInputType(rule.field, rule.operator)) {\r\n @case ('string') {\r\n <input [ngClass]=\"getClassNames('inputControl')\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"changeInput()\"\r\n [disabled]=\"disabled\" type=\"text\">\r\n }\r\n @case ('number') {\r\n <input [ngClass]=\"getClassNames('inputControl')\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"changeInput()\"\r\n [disabled]=\"disabled\" type=\"number\">\r\n }\r\n @case ('date') {\r\n <input [ngClass]=\"getClassNames('inputControl')\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"changeInput()\"\r\n [disabled]=\"disabled\" type=\"date\">\r\n }\r\n @case ('time') {\r\n <input [ngClass]=\"getClassNames('inputControl')\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"changeInput()\"\r\n [disabled]=\"disabled\" type=\"time\">\r\n }\r\n @case ('category') {\r\n <select [ngClass]=\"getClassNames('inputControl')\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"changeInput()\"\r\n [disabled]=\"disabled\">\r\n @for (opt of getOptions(rule.field); track opt) {\r\n <option [ngValue]=\"opt.value\">\r\n {{opt.name}}\r\n </option>\r\n }\r\n </select>\r\n }\r\n @case ('multiselect') {\r\n <select [ngClass]=\"getClassNames('inputControl')\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"changeInput()\"\r\n [disabled]=\"disabled\" multiple>\r\n @for (opt of getOptions(rule.field); track opt) {\r\n <option [ngValue]=\"opt.value\">\r\n {{opt.name}}\r\n </option>\r\n }\r\n </select>\r\n }\r\n @case ('boolean') {\r\n <input [ngClass]=\"getClassNames('inputControl')\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"changeInput()\"\r\n [disabled]=\"disabled\" type=\"checkbox\">\r\n }\r\n }\r\n </div>\r\n }\r\n }\r\n @if (local.ruleset) {\r\n <query-builder [data]=\"rule\" [disabled]=\"disabled\" [parentTouchedCallback]=\"parentTouchedCallback || onTouchedCallback\"\r\n [parentChangeCallback]=\"parentChangeCallback || onChangeCallback\" [parentInputTemplates]=\"parentInputTemplates || inputTemplates\"\r\n [parentOperatorTemplate]=\"parentOperatorTemplate || operatorTemplate\" [parentFieldTemplate]=\"parentFieldTemplate || fieldTemplate\"\r\n [parentEntityTemplate]=\"parentEntityTemplate || entityTemplate\" [parentSwitchGroupTemplate]=\"parentSwitchGroupTemplate || switchGroupTemplate\"\r\n [parentButtonGroupTemplate]=\"parentButtonGroupTemplate || buttonGroupTemplate\" [parentRemoveButtonTemplate]=\"parentRemoveButtonTemplate || removeButtonTemplate\"\r\n [parentEmptyWarningTemplate]=\"parentEmptyWarningTemplate || emptyWarningTemplate\" [parentArrowIconTemplate]=\"parentArrowIconTemplate || arrowIconTemplate\"\r\n [parentValue]=\"data\" [classNames]=\"classNames\" [config]=\"config\" [allowRuleset]=\"allowRuleset\"\r\n [allowCollapse]=\"allowCollapse\" [emptyMessage]=\"emptyMessage\" [operatorMap]=\"operatorMap\">\r\n </query-builder>\r\n }\r\n @if (getEmptyWarningTemplate(); as template) {\r\n @if (local.invalid) {\r\n <ng-container *ngTemplateOutlet=\"template; context: getEmptyWarningContext()\"></ng-container>\r\n }\r\n } @else {\r\n @if (local.invalid) {\r\n <p [ngClass]=\"getClassNames('emptyWarning')\">\r\n {{emptyMessage}}\r\n </p>\r\n }\r\n }\r\n </li>\r\n }\r\n }\r\n </ul>\r\n }\r\n</div>","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { FormBuilder, FormControl } from '@angular/forms';\r\nimport { NotificationsEventEnum, OperatorEnum, PeriodSelectEnum, QBDataTypeEnum } from '../../shared/models/enums.model';\r\nimport { QbPanelFilter } from '../../shared/models/filter-panel/qb-panel-filter.model';\r\nimport { Entity, EntityMap, Field, FieldMap, QueryBuilderConfig, Rule, RuleSet } from '../../shared/models/filter-panel/field.model';\r\nimport { FilterPanelTranslations } from '../../shared/models/filter-panel/filter-panel-translations.model';\r\nimport { QueryResultType, QueryResults } from '../../shared/models/filter-panel/query-results.model';\r\nimport { FilterField } from '../../shared/models/filter-panel/filter-field.models';\r\nimport { QbFilterEntity } from '../../shared/models/filter-panel/qb-filter-entity.model';\r\nimport { ApiService } from '../../shared/service/api/api.service';\r\nimport { StoredFilterPanelQuery } from '../../shared/models/stored-filter-panel-query.model';\r\nimport { SessionStorageService } from '../../shared/services/session-storage.service';\r\nimport { NullableSelectOption } from '../../shared/models/filter-panel/nullable-select-option.model';\r\nimport { BooleanSelectOption } from '../../shared/models/filter-panel/boolean-select-option.model';\r\nimport { TranslatedSelectOption } from '../../shared/models/filter-panel/translated-select-optinon.model';\r\nimport { WPeriodSelectFieldComponent } from '../../shared/components/w-period-select-field/w-period-select-field.component';\r\nimport { QueryBuilderComponent } from './query-builder/query-builder.component';\r\nimport { LocalStorageService } from '../../shared/services/local-storage.service';\r\n\r\nconst ticketsPeriodSelectType: string = 'ticketsPeriodSelectType';\r\n\r\n@Component({\r\n selector: 'w-filter-panel',\r\n templateUrl: './w-filter-panel.component.html',\r\n styleUrls: ['./w-filter-panel.component.scss'],\r\n standalone: false\r\n})\r\nexport class WFilterPanelComponent implements OnInit {\r\n public queryCtrl!: FormControl;\r\n public advancedQueryCtrl!: FormControl;\r\n public groupedQueryCtrl!: FormControl;\r\n public persistValueOnFieldChange: boolean = false;\r\n \r\n queryConfigReady: boolean = false;\r\n isAdvancedSearch: boolean = false;\r\n qbDataTypeEnum = QBDataTypeEnum;\r\n qbDataEnums = Object.values(QBDataTypeEnum);\r\n basicQueryConfig!: any;\r\n advancedQueryConfig!: any;\r\n basicQuery: any = {\r\n condition: 'and',\r\n rules: []\r\n };\r\n groupedQuery: any = {\r\n condition: 'and',\r\n rules: []\r\n };\r\n advancedQuery: any = {\r\n condition: 'and',\r\n rules: []\r\n };\r\n filterPanelObject!: QbPanelFilter;\r\n entityConfigGrouped: QueryBuilderConfig = { fields: {} };\r\n entities: any[] = [];\r\n defaultValues: any[] = [];\r\n defaultOperators: any[] = [];\r\n storedQuery!: StoredFilterPanelQuery;\r\n parentRoute!: string;\r\n notificationEventField: string = 'notificationevent';\r\n periodSelectField: string = 'periodSelect';\r\n notificationEventRulesToAdd:any[] = []; \r\n periodSelectRulesToAdd:any[] = []; \r\n lastFromPeriodSelectDateValue!: string;\r\n lastToPeriodSelectDateValue!: string;\r\n periodSelectEnum: typeof PeriodSelectEnum = PeriodSelectEnum;\r\n\r\n @Input('apiUrl') authorizationApiUrl!: string;\r\n @Input('commonDataApiUrl') commonDataApiUrl!: string;\r\n @Input('notificationApiUrl') notificationApiUrl!: string;\r\n @Input('segmentationApiUrl') segmentationApiUrl!: string;\r\n @Input('productApiUrl') productApiUrl!: string;\r\n @Input('token') token!: string;\r\n @Input('commonDataToken') commonDataToken!: string;\r\n @Input('segmentationToken') segmentationToken!: string;\r\n @Input('filterId') filterId!: string;\r\n @Input('dataIsLoadingSearchButton') dataIsLoadingSearchButton: boolean = false;\r\n @Input('tenantId') tenantId!: string;\r\n @Input('applicationId') applicationId!: string;\r\n @Input('fieldsToKeepLocalDate') fieldsToKeepLocalDate: string[] = [];\r\n @Input('fieldsForNotificationEvent') fieldsForNotificationEvent: string[] = [];\r\n @Input('notificationEventEntity') notificationEventEntity!: string;\r\n\r\n @Input('translationsObject') translationsObject: FilterPanelTranslations = {\r\n basicSearchTabLabel: 'Basic search',\r\n advancedSearchTabLabel: 'Advanced search',\r\n groupedFilterTitle: 'Grouped filter',\r\n advancedSearch: {\r\n andButtonLabel: 'And',\r\n orButtonLabel: 'Or',\r\n addRuleButtonLabel: 'Add filter',\r\n addRuleSetButtonLabel: 'Add filter set',\r\n removeRuleSetButtonLabel: 'Remove rule set'\r\n },\r\n noRulesLabel: 'Add filter or filter set to start',\r\n searchButtonLabel: 'Clear',\r\n clearButtonLabel: 'Clear',\r\n fieldsPlaceholders: {\r\n boolean: {\r\n true: 'True',\r\n false: 'False'\r\n },\r\n decimal: 'Insert decimal number',\r\n list: 'Select an option',\r\n number: 'Insert a number',\r\n text: 'Insert text',\r\n datetime: 'Select a date',\r\n from: 'From',\r\n to: 'To'\r\n },\r\n firstDayOfWeek: 0,\r\n operators: {\r\n contains:'contains'\r\n },\r\n fields: {\r\n IdleDeadline: 'Id',\r\n name: 'Name',\r\n code: 'Code',\r\n delete: 'Deleted',\r\n country: 'Country'\r\n },\r\n nullableSelectOptions: {\r\n customeroperation: {\r\n isNullOption: 'No customers',\r\n isNotNullOption: 'Customers'\r\n }\r\n },\r\n booleanSelectOptions: {\r\n voidedoperation: {\r\n isNullOption: 'No voided',\r\n isNotNullOption: 'Voided'\r\n }\r\n },\r\n translatedSelectOptions: {\r\n welcome: \"Bienvenida\",\r\n segmented: \"Segmentos de cliente\",\r\n lottery: \"Sorteo\",\r\n conditionalOnPurchase: \"Compra\",\r\n manual : \"Manual\"\r\n }\r\n };\r\n\r\n @Input('translationsEspecificFieldOptions') translationsEspecificFieldOptions!: {field: string, options: any}[];\r\n \r\n @Output('searchClicked') searchClicked = new EventEmitter<QueryResults>();\r\n @Output('clearClicked') clearClicked = new EventEmitter<boolean>();\r\n @Output('lastQuery') lastQuery = new EventEmitter<QueryResults>();\r\n @Output('hasDefaultValues') hasDefaultValues = new EventEmitter<boolean>();\r\n \r\n stateOptions: any[] = [{ label: this.translationsObject.advancedSearch.andButtonLabel, value: 'and' }, { label: this.translationsObject.advancedSearch.orButtonLabel, value: 'or' }];\r\n \r\n @ViewChild('advancedQueryBuilder', { static: false }) queryBuilder!: QueryBuilderComponent;\r\n @ViewChild('basicQueryBuilderObject') basicQueryBuilderObject!: QueryBuilderComponent;\r\n @ViewChild('periodSelect') periodSelectComponent!: WPeriodSelectFieldComponent;\r\n \r\n constructor(\r\n private formBuilder: FormBuilder, \r\n private apiService: ApiService,\r\n private sessionStorage: SessionStorageService,\r\n private localStorage: LocalStorageService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.isAdvancedSearch = this.sessionStorage.getLastFilterPanelQuery(this.tenantId, this.filterId)?.advancedQueryValue ? true : false;\r\n if((this.storedQuery?.advancedQueryValue && this.storedQuery?.advancedQueryValue.rules.length == 0) || (this.storedQuery?.basicQueryValue && this.storedQuery?.basicQueryValue.rules.length == 0)) {\r\n //Do nothing\r\n } else {\r\n this.storedQuery= this.sessionStorage.getLastFilterPanelQuery(this.tenantId, this.filterId)\r\n }\r\n this.getQueryBuilderFilterPanel();\r\n }\r\n\r\n initQueryBuilderControls() {\r\n this.queryCtrl = this.formBuilder.control(this.basicQuery);\r\n this.advancedQueryCtrl = this.formBuilder.control(this.advancedQuery);\r\n if(this.filterPanelObject.allowGrouped) {\r\n this.groupedQueryCtrl = this.formBuilder.control(this.groupedQuery);\r\n }\r\n \r\n if((this.storedQuery?.advancedQueryValue && this.storedQuery?.advancedQueryValue.rules.length == 0) || (this.storedQuery?.basicQueryValue && this.storedQuery?.basicQueryValue.rules.length == 0)) {\r\n //Do nothing\r\n } else {\r\n let lastQuery: QueryResults = {\r\n type: this.getQueryType(),\r\n basic: this.storedQuery?.basicQueryValue ? Object.assign({}, this.storedQuery?.basicQueryValue) : null,\r\n advanced: this.storedQuery?.advancedQueryValue ? Object.assign({}, this.storedQuery?.advancedQueryValue) : null,\r\n grouped: this.isAdvancedSearch && this.filterPanelObject.allowGrouped && this.groupedQueryCtrl ? Object.assign({}, this.groupedQueryCtrl?.value) : null\r\n }\r\n\r\n this.setNoFiltersQueryType(lastQuery)\r\n .then((res) => {\r\n lastQuery = this.deleteFieldsWithoutValue(lastQuery);\r\n lastQuery = this.handleEmptyFieldsQuery(lastQuery);\r\n this.lastQuery.emit(lastQuery);\r\n }).then(() => {\r\n this.inverseNullableFilterOperationHandle(this.advancedQueryCtrl.value);\r\n })\r\n .then(() => {\r\n this.onSearchClicked();\r\n });\r\n }\r\n }\r\n\r\n nullableSelectPlaceholder(rule: Rule, options: NullableSelectOption[]) {\r\n if(rule.operator == 'is' && rule.value == 'null') {\r\n rule.value = 0;\r\n return this.translationsObject.nullableSelectOptions![options[0].name].isNullOption;\r\n }\r\n if(rule.operator == 'is not' && rule.value == 'null') {\r\n rule.value = 1;\r\n return this.translationsObject.nullableSelectOptions![options[0].name].isNotNullOption;\r\n }\r\n return this.translationsObject.fieldsPlaceholders.list;\r\n }\r\n \r\n setEmtpyArraysToNull(query: any) {\r\n if (\"rules\" in query) {\r\n query.rules.forEach((rule: RuleSet | Rule) => {\r\n this.setEmtpyArraysToNull(rule);\r\n });\r\n } else {\r\n if (query.value instanceof Array && query.value.length == 0) {\r\n query.value = null;\r\n }\r\n }\r\n }\r\n\r\n updateSearchType() {\r\n this.isAdvancedSearch = !this.isAdvancedSearch;\r\n if(this.isAdvancedSearch) {\r\n setTimeout(() => {\r\n this.updateNullableElements(this.queryBuilder.config.fields)\r\n }, 3000);\r\n }\r\n }\r\n\r\n updateNullableElements(elements: { [key: string]: any }): void {\r\n for (const key in elements) {\r\n if (elements.hasOwnProperty(key)) {\r\n const element = elements[key];\r\n if (element.operators.includes('nullable') && element.defaultValue == null) {\r\n element.defaultValue = 0;\r\n }\r\n }\r\n }\r\n }\r\n\r\n onSearchClicked() {\r\n let queries: QueryResults = {\r\n type: this.getQueryType(),\r\n basic: this.isAdvancedSearch ? null : Object.assign({}, this.queryCtrl.value),\r\n advanced: this.isAdvancedSearch ? Object.assign({}, this.advancedQueryCtrl.value) : null,\r\n grouped: this.isAdvancedSearch && this.filterPanelObject.allowGrouped ? Object.assign({}, this.groupedQueryCtrl.value) : null,\r\n options: {\r\n periodSelectType: this.periodSelectComponent ? this.periodSelectComponent.periodCategorySelected : null,\r\n }\r\n }\r\n \r\n this.setEntity(queries);\r\n\r\n queries = this.initializeOperators(queries);\r\n\r\n this.setNoFiltersQueryType(queries).then((resQueries:any) => {\r\n if(resQueries.type != 0){\r\n this.nullableFilterOperationHandle(queries.basic ? queries.basic : queries.advanced);\r\n this.setPeriodSelectValue(queries.basic ? queries.basic : queries.advanced);\r\n }\r\n }).then((resQueries:any) => {\r\n let storedQuery: StoredFilterPanelQuery = {\r\n id: this.filterId,\r\n basicQueryValue: queries.basic,\r\n advancedQueryValue: queries.advanced,\r\n groupedQueryValue: queries.grouped\r\n }\r\n this.setEmtpyArraysToNull(queries.basic ? queries.basic : queries.advanced);\r\n \r\n if(storedQuery.advancedQueryValue && storedQuery.advancedQueryValue.rules == 0) {\r\n //Do nothing\r\n } else {\r\n this.sessionStorage.setLastFilterPanelQuery(this.tenantId, storedQuery);\r\n }\r\n this.keepLocalDateFilterOperationHandle(queries.basic ? queries.basic : queries.advanced);\r\n }).then((resQueries: any) => {\r\n queries = this.deleteFieldsWithoutValue(queries);\r\n queries = this.handleEmptyFieldsQuery(queries);\r\n\r\n if(queries.advanced){\r\n queries.advanced = this.modifyTreeListValueParentToNull(queries.advanced);\r\n }else{\r\n queries.basic = this.modifyTreeListValueParentToNull(queries.basic);\r\n }\r\n \r\n this.searchClicked.emit(queries);\r\n }).then(() => {\r\n this.inverseNullableFilterOperationHandle(this.advancedQueryCtrl.value);\r\n })\r\n .catch((error) => {\r\n console.error(\"Error en la promesa:\", error);\r\n });\r\n }\r\n\r\n setNoFiltersQueryType(queries:any) {\r\n return new Promise((resolve, reject) => {\r\n queries = this.handleEmptyFieldsQuery(queries);\r\n resolve(queries);\r\n });\r\n }\r\n\r\n onClearClicked() {\r\n this.resetBasicQueryValues();\r\n this.clearPeriodSelectComponent();\r\n this.advancedQuery.rules = [];\r\n this.groupedQuery.rules = [];\r\n this.sessionStorage.removeLastFilterPanelQuery(this.tenantId, this.filterId);\r\n this.clearClicked.emit(true);\r\n }\r\n\r\n clearPeriodSelectComponent() {\r\n if(this.periodSelectComponent) {\r\n this.periodSelectComponent.onClearCategory();\r\n }\r\n }\r\n\r\n handleEmptyFieldsQuery(queries: QueryResults): QueryResults {\r\n if(queries.advanced != null && queries.advanced?.rules.length == 0) {\r\n queries.type = 0\r\n }\r\n if(queries.basic != null && queries.basic?.rules.length == 0) {\r\n queries.type = 0\r\n }\r\n if(queries.grouped != null && queries.grouped?.rules.length == 0) {\r\n queries.type = 0\r\n }\r\n return queries;\r\n }\r\n\r\n nullableFilterOperationHandle(query: any) {\r\n if (\"rules\" in query) {\r\n query.rules.forEach((rule: RuleSet | Rule) => {\r\n this.nullableFilterOperationHandle(rule);\r\n });\r\n } else {\r\n if (query.operator === OperatorEnum.Nullable || ((query.operator == 'is' || query.operator == 'is not') && (query.value == 1 || query.value == 0))) {\r\n if(query.value == 1) {\r\n query.operator = 'is not';\r\n }\r\n if(query.value == 0) {\r\n query.operator = 'is';\r\n }\r\n query.value = 'null';\r\n }\r\n }\r\n }\r\n\r\n setPeriodSelectValue(query: any) {\r\n if (\"rules\" in query) {\r\n query.rules.forEach((rule: RuleSet | Rule) => {\r\n this.setPeriodSelectValue(rule);\r\n });\r\n } else {\r\n if(query.field === 'periodSelect' && query.value.periodType === PeriodSelectEnum.Last24Hours) {\r\n query.value.toDate = new Date();\r\n query.value.fromDate = new Date(new Date().getTime() - 24 * 60 * 60 * 1000);\r\n }\r\n if(query.field === 'periodSelect' && query.value.periodType === PeriodSelectEnum.Last3Months) {\r\n query.value.toDate = new Date();\r\n query.value.fromDate = new Date(new Date().setMonth(new Date().getMonth() - 3));\r\n }\r\n }\r\n }\r\n\r\n inverseNullableFilterOperationHandle(query: any) {\r\n if (\"rules\" in query) {\r\n query.rules.forEach((rule: RuleSet | Rule) => {\r\n this.inverseNullableFilterOperationHandle(rule);\r\n });\r\n } else {\r\n if ((query.operator == 'is not' || query.operator == 'is') && query.value == 'null') {\r\n if(query.operator == 'is not') {\r\n query.value = 1;\r\n }\r\n if(query.operator == 'is') {\r\n query.value = 0;\r\n }\r\n }\r\n }\r\n }\r\n\r\n keepLocalDateFilterOperationHandle(query: any){\r\n if(this.fieldsToKeepLocalDate.length > 0){\r\n if(\"rules\" in query){\r\n query.rules.forEach((rule: RuleSet | Rule) => {\r\n this.keepLocalDateFilterOperationHandle(rule);\r\n });\r\n }else{\r\n if (this.fieldsToKeepLocalDate.includes(query.field) && query.value) {\r\n const dateValue = new Date(query.value);\r\n const toUTCDate = new Date(Date.UTC(dateValue.getFullYear(), dateValue.getMonth(), dateValue.getDate(), dateValue.getHours(), dateValue.getMinutes(), dateValue.getSeconds(), dateValue.getMilliseconds()));\r\n query.value = toUTCDate;\r\n } else {\r\n if(query.field == 'periodSelect' && query.value) {\r\n if(this.lastFromPeriodSelectDateValue != query.value.fromDate) {\r\n const fromDateValue = new Date(query.value.fromDate);\r\n const toUTCFromDate = new Date(Date.UTC(fromDateValue.getFullYear(), fromDateValue.getMonth(), fromDateValue.getDate(), fromDateValue.getHours(), fromDateValue.getMinutes(), fromDateValue.getSeconds(), fromDateValue.getMilliseconds()));\r\n query.value.fromDate = toUTCFromDate;\r\n this.lastFromPeriodSelectDateValue = query.value.fromDate;\r\n }\r\n\r\n if(this.lastToPeriodSelectDateValue != query.value.toDate) {\r\n const toDateValue = new Date(query.value.toDate);\r\n const toUTCToDate = new Date(Date.UTC(toDateValue.getFullYear(), toDateValue.getMonth(), toDateValue.getDate(), toDateValue.getHours(), toDateValue.getMinutes(), toDateValue.getSeconds(), toDateValue.getMilliseconds()));\r\n query.value.toDate = toUTCToDate;\r\n this.lastToPeriodSelectDateValue = query.value.toDate;\r\n }\r\n }\r\n }\r\n \r\n }\r\n }\r\n }\r\n\r\n \r\nmodifyTreeListValueParentToNull(query: any): any {\r\n const clonedQuery = JSON.parse(JSON.stringify(query));\r\n\r\n if (\"rules\" in clonedQuery) {\r\n clonedQuery.rules = clonedQuery.rules.map((rule: RuleSet | Rule) =>\r\n this.modifyTreeListValueParentToNull(rule)\r\n );\r\n return clonedQuery;\r\n } else {\r\n if ((clonedQuery.field === 'section' || clonedQuery.field === 'category') && clonedQuery.operator === '=') {\r\n clonedQuery.extra = clonedQuery.value;\r\n clonedQuery.value = clonedQuery.value.ids;\r\n clonedQuery.operator = 'in';\r\n }\r\n return clonedQuery;\r\n }\r\n}\r\n\r\n\r\n modifyNotificationEventValue(query: any){\r\n if(this.fieldsForNotificationEvent.length > 0 && this.notificationEventEntity && query){\r\n if (\"rules\" in query) {\r\n query.rules.forEach((rule: RuleSet | Rule) => {\r\n this.modifyNotificationEventValue(rule);\r\n });\r\n\r\n if(this.notificationEventRulesToAdd.length > 0){\r\n query.rules.push(...this.notificationEventRulesToAdd)\r\n query.rules = query.rules.filter((obj:any) => obj.field !== this.notificationEventField);\r\n this.notificationEventRulesToAdd = [];\r\n }\r\n }else{\r\n if (query.value && query.field == this.notificationEventField && query.entity == this.notificationEventEntity) {\r\n query.extra = query.value; \r\n let rules = [];\r\n\r\n if(query.extra.property == NotificationsEventEnum.EventGroup){\r\n rules = [\r\n {\r\n field: this.fieldsForNotificationEvent[NotificationsEventEnum.EventGroup - 1],\r\n operator: \"=\", \r\n value: query.extra.data, \r\n entity: this.notificationEventEntity\r\n }\r\n ]; \r\n }else{\r\n rules = [\r\n {\r\n field: this.fieldsForNotificationEvent[NotificationsEventEnum.EventGroup - 1],\r\n operator: \"=\", \r\n value: query.extra.eventCategoryId, \r\n entity: this.notificationEventEntity\r\n }, \r\n {\r\n field: this.fieldsForNotificationEvent[NotificationsEventEnum.Event - 1],\r\n operator: \"=\", \r\n value: query.extra.data, \r\n entity: this.notificationEventEntity\r\n }\r\n ]; \r\n }\r\n this.notificationEventRulesToAdd.push(...rules); \r\n }\r\n }\r\n return query;\r\n }\r\n }\r\n\r\n modifyPeriodSelectValue(query: any) {\r\n let periodSelect = query.rules.filter((rule: Rule) => rule.field == this.periodSelectField);\r\n if(periodSelect.length > 0 && periodSelect[0].value) {\r\n let rules = [];\r\n if(periodSelect[0].value.fromDate) {\r\n rules.push(\r\n {\r\n field: \"fromdevicedate\",\r\n operator: \">=\", \r\n value: periodSelect[0].value.fromDate, \r\n entity: \"operation\",\r\n }\r\n )\r\n }\r\n if(periodSelect[0].value.toDate) {\r\n rules.push({\r\n field: \"todevicedate\",\r\n operator: \"<=\", \r\n value: periodSelect[0].value.toDate, \r\n entity: \"operation\",\r\n }\r\n );\r\n }\r\n this.removeRulesRecursively(query, ['periodSelect']);\r\n query.rules.push(...rules); \r\n return query;\r\n }\r\n }\r\n\r\n removeRulesRecursively(query: any, fieldsToRemove: string[]) {\r\n if (!query || !query.rules) return;\r\n \r\n query.rules = query.rules.filter((rule: any) => {\r\n if (rule.rules) {\r\n this.removeRulesRecursively(rule, fieldsToRemove);\r\n return rule.rules.length > 0;\r\n }\r\n return fieldsToRemove.includes(rule.field) ? false : true;\r\n });\r\n }\r\n \r\n getQueryType(): QueryResultType {\r\n if(!this.isAdvancedSearch) {\r\n return QueryResultType.Basic;\r\n } else {\r\n if(this.isAdvancedSearch && this.groupedQueryCtrl?.value) {\r\n return QueryResultType.Grouped\r\n } else {\r\n return QueryResultType.Advanced;\r\n }\r\n }\r\n }\r\n\r\n setEntity(queries: QueryResults) {\r\n if(this.getQueryType() == QueryResultType.Basic) {\r\n queries.basic!.rules = queries.basic!.rules.map((r:any) => {\r\n return {\r\n field: r.field,\r\n operator: r.operator,\r\n value: r.value,\r\n entity: this.entities.find(e => e.fieldJsonName == r.field).entity\r\n }\r\n })\r\n }\r\n }\r\n\r\n getQueryBuilderFilterPanel() {\r\n this.apiService.getFilterPanel(this.authorizationApiUrl, this.token, this.commonDataApiUrl, this.commonDataToken, this.tenantId, this.applicationId, this.filterId)\r\n .subscribe((qbPanelFilter: QbPanelFilter) => {\r\n this.filterPanelObject = qbPanelFilter;\r\n let basicFilterIds: number[] = qbPanelFilter.qbpanelToFields.filter(panelToField => panelToField.basic).map(panelToField => panelToField.qbfilterFieldId);\r\n let advancedFilterIds: number[] = qbPanelFilter.qbpanelToFields.filter(panelToField => !panelToField.basic).map(panelToField => panelToField.qbfilterFieldId);\r\n this.defaultValues = qbPanelFilter.qbpanelToFields.map(panelToField => {\r\n return {\r\n qbfilterFieldId: panelToField.qbfilterFieldId, \r\n basic: panelToField.basic, \r\n defaultValue: this.defaultValueAdapter(panelToField.defaultValue)\r\n }\r\n })\r\n this.hasDefaultValues.emit(this.defaultValues.some((v) => v.defaultValue != null));\r\n this.defaultOperators = qbPanelFilter.qbpanelToFields.map(panelToField => {\r\n return {\r\n qbfilterFieldId: panelToField.qbfilterFieldId,\r\n qbdefaultOperator: panelToField.qbdefaultOperator\r\n }\r\n })\r\n let filterEntity: QbFilterEntity[] = qbPanelFilter.qbpanelToFields.map(panelToField => {\r\n return {\r\n id: panelToField.qbfilterField.qbfilterEntity.id, \r\n basic: panelToField.basic,\r\n name: panelToField.qbfilterField.qbfilterEntity.name, \r\n jsonName: panelToField.qbfilterField.qbfilterEntity.jsonName, \r\n fields: []\r\n }\r\n });\r\n\r\n let filterFields: FilterField[] = qbPanelFilter.qbpanelToFields.map(p => p.qbfilterField);\r\n filterEntity.forEach((entity: QbFilterEntity, index: number) => {\r\n let fields = filterFields.filter(e => e.qbfilterEntity.id == entity.id);\r\n filterEntity[index].fields = fields ;\r\n })\r\n \r\n this.basicQueryConfig = this.initQueryBuilder(filterEntity, true);\r\n this.basicQueryConfig = this.filterFieldsById(this.basicQueryConfig, basicFilterIds);\r\n this.basicQueryConfig.fields = this.translateFields(this.basicQueryConfig.fields);\r\n this.advancedQueryConfig = this.initQueryBuilder(filterEntity, false);\r\n this.advancedQueryConfig = this.filterFieldsById(this.advancedQueryConfig, advancedFilterIds);\r\n this.advancedQueryConfig.fields = this.translateFields(this.advancedQueryConfig.fields);\r\n let rules = Object.keys(this.basicQueryConfig.fields)\r\n .filter(fieldKey => { \r\n if(\r\n (this.filterId == 'tickets' || this.filterId == 'last-3-months-tickets') &&\r\n Object.keys(this.basicQueryConfig.fields).includes('periodSelect')\r\n ) {\r\n return fieldKey !== 'todevicedate' && fieldKey !== 'fromdevicedate'\r\n }\r\n return true;\r\n })\r\n .map(fieldKey => { \r\n let defaultOperator = this.defaultOperators.find(operator => operator.qbfilterFieldId == this.basicQueryConfig.fields[fieldKey].id && operator.qbdefaultOperator != null);\r\n return {\r\n field: fieldKey, \r\n value: this.basicQueryConfig.fields[fieldKey].defaultValue!,\r\n operator: defaultOperator ? defaultOperator.qbdefaultOperator.symbol : null\r\n }\r\n });\r\n if(this.storedQuery && this.storedQuery?.id == this.filterId && this.storedQuery?.basicQueryValue && this.storedQuery?.basicQueryValue.rules.length != 0) {\r\n this.basicQuery = this.storedQuery.basicQueryValue;\r\n } else {\r\n this.basicQuery = {\r\n condition: 'and',\r\n rules: rules\r\n };\r\n }\r\n if(this.storedQuery && this.storedQuery?.id == this.filterId && this.storedQuery?.advancedQueryValue && this.storedQuery?.advancedQueryValue.rules.length != 0) {\r\n this.advancedQuery = this.storedQuery.advancedQueryValue;\r\n } else {\r\n this.advancedQuery = {\r\n condition: 'and',\r\n rules: []\r\n };\r\n }\r\n\r\n this.queryConfigReady = true;\r\n this.initQueryBuilderControls();\r\n })\r\n }\r\n\r\n defaultValueAdapter(value: any) {\r\n if(value == 'QBFilterOptionsEnumNull') {\r\n return 0;\r\n }\r\n\r\n if(value == 'QBFilterOptionsEnumNotNull') {\r\n return 1;\r\n }\r\n \r\n if(value == '0') {\r\n return 0;\r\n }\r\n\r\n if(value == '1') {\r\n return 1;\r\n }\r\n if(value == 'FromDateTimeNow') {\r\n return new Date(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate(), 0,0,0));\r\n }\r\n if(value == 'ToDateTimeNow') {\r\n return new Date(new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate(), 23,59,59));\r\n }\r\n if(value == 'PeriodSelectLast24Hours') {\r\n const now = new Date();\r\n let tenantId = this.localStorage.getTenant().tenantId;\r\n let ticketsPeriodSelectTypeValue = this.sessionStorage.getTenantPeriodSelectType(tenantId, ticketsPeriodSelectType);\r\n if(!ticketsPeriodSelectTypeValue) {\r\n this.sessionStorage.setTenantPeriodSelectType(tenantId, ticketsPeriodSelectType, PeriodSelectEnum.Last24Hours);\r\n }\r\n return {\r\n periodType: PeriodSelectEnum.Last24Hours,\r\n fromDate: new Date(now.getTime() - 24 * 60 * 60 * 1000),\r\n toDate: now\r\n }\r\n }\r\n if(value == 'PeriodSelectLast3Months') {\r\n const now = new Date();\r\n let tenantId = this.localStorage.getTenant().tenantId;\r\n let ticketsPeriodSelectTypeValue = this.sessionStorage.getTenantPeriodSelectType(tenantId, ticketsPeriodSelectType);\r\n if(!ticketsPeriodSelectTypeValue) {\r\n this.sessionStorage.setTenantPeriodSelectType(tenantId, ticketsPeriodSelectType, PeriodSelectEnum.Last3Months);\r\n }\r\n return {\r\n periodType: PeriodSelectEnum.Last3Months,\r\n fromDate: new Date(now.setMonth(new Date().getMonth() - 3)),\r\n toDate: now\r\n }\r\n }\r\n return value;\r\n }\r\n\r\n initQueryBuilder(filterEntities: QbFilterEntity[], isBasic: boolean) {\r\n let entityConfigAux: QueryBuilderConfig = { fields: {} };\r\n let entitiesArray: EntityMap[] = [];\r\n \r\n filterEntities.map((e, index) => {\r\n let entity: Entity = { name: e.jsonName };\r\n return entitiesArray[index] = { [e.jsonName]: entity };\r\n });\r\n\r\n let entitiesMap: EntityMap = {};\r\n\r\n for (const entity of entitiesArray) {\r\n const keys = Object.keys(entity);\r\n\r\n keys.forEach(key => {\r\n if(this.translationsObject.entities) {\r\n let entitiesTranslationsKeys = Object.keys(this.translationsObject.entities);\r\n let translation = entitiesTranslationsKeys.find(translationKey => translationKey == key);\r\n if(translation) {\r\n entitiesMap[key] = { name: this.translationsObject.entities[key] }\r\n } else {\r\n entitiesMap[key] = entity[key]\r\n }\r\n } else {\r\n entitiesMap[key] = entity[key]\r\n }\r\n });\r\n\r\n entityConfigAux.entities = entitiesMap;\r\n }\r\n\r\n let fields: FieldMap[] = [];\r\n filterEntities.forEach((filterEntity) => {\r\n return filterEntity.fields.filter((filterField: FilterField) => {\r\n let index: number = fields.length ?? 0;\r\n let operatorsFlatArray = filterField.operators.map((o:any) => o.symbol);\r\n let defaultOperator = this.defaultOperators.find(operator => operator.qbfilterFieldId == filterField.id);\r\n let field: Field = {\r\n id: filterField.id,\r\n name: filterField.name,\r\n operators: defaultOperator.qbdefaultOperator?.symbol ? this.moveElementToFirstPlace(operatorsFlatArray, defaultOperator.qbdefaultOperator?.symbol) : operatorsFlatArray,\r\n type: this.getDataType(filterField.dataType),\r\n defaultValue: this.formatDefaultValue(this.defaultValues.find(value => value.qbfilterFieldId == filterField.id && value.basic == isBasic)?.defaultValue, filterField.dataType),\r\n defaultOperator: defaultOperator.qbdefaultOperator?.symbol,\r\n entity: filterEntity.jsonName,\r\n options: filterField.listOfValues, \r\n translationsOptions: this.translationsEspecificFieldOptions ? this.translationsEspecificFieldOptions.find(t => t.field == filterField.jsonName)?.options : null, \r\n validator: (rule: Rule, parent: RuleSet): any | null => {\r\n if (rule.operator !== \"is null\" && rule.operator !== \"is not null\") {\r\n if (rule.value === undefined || rule.value === null || rule.value === '' || rule.value.length == 0) {\r\n return { required: 'empty field' };\r\n }\r\n }\r\n return null;\r\n }\r\n }\r\n this.entities.push({fieldJsonName: filterField.jsonName, entity: field.entity});\r\n fields[index] = { [filterField.jsonName]: field };\r\n });\r\n });\r\n\r\n let fieldsMap: FieldMap = {};\r\n\r\n for (const field of fields) {\r\n const keys = Object.keys(field);\r\n keys.forEach(key => {\r\n fieldsMap[key] = field[key];\r\n });\r\n\r\n entityConfigAux.fields = fieldsMap;\r\n }\r\n return entityConfigAux;\r\n }\r\n\r\n filterFieldsById(fieldsObj: any, idArray: number[]): any {\r\n const filteredFields: any = {};\r\n \r\n for (const key in fieldsObj.fields) {\r\n const field = fieldsObj.fields[key];\r\n if (idArray.includes(field.id)) {\r\n filteredFields[key] = field;\r\n }\r\n }\r\n \r\n return {\r\n ...fieldsObj,\r\n fields: filteredFields,\r\n };\r\n }\r\n\r\n translateFields(fields: FieldMap) {\r\n for (const key in fields) {\r\n if (fields.hasOwnProperty(key)) {\r\n fields[key].field = key;\r\n fields[key].name = this.translationsObject.fields[key];\r\n if(this.translationsObject.extraCompositeFieldName! && this.translationsObject?.extraCompositeFieldName![key]){\r\n fields[key].extraName = this.translationsObject.extraCompositeFieldName[key];\r\n }\r\n }\r\n }\r\n return fields;\r\n }\r\n\r\n moveElementToFirstPlace(array: any[], elementToFirstPlace: string) {\r\n const index = array.indexOf(elementToFirstPlace);\r\n if (index !== -1) {\r\n array.splice(index, 1);\r\n array.unshift(elementToFirstPlace); \r\n }\r\n return array;\r\n }\r\n\r\n formatDefaultValue(value: any, type: QBDataTypeEnum) {\r\n if(value) {\r\n if(type == QBDataTypeEnum.Boolean) {\r\n return value.toLowerCase() === 'true';\r\n }\r\n if(type == this.qbDataTypeEnum.Number || type == this.qbDataTypeEnum.Decimal || type == this.qbDataTypeEnum.List){\r\n return Number(value);\r\n }\r\n if(type == this.qbDataTypeEnum.NullableSelect) {\r\n return 1;\r\n }\r\n if(type == this.qbDataTypeEnum.BooleanSelect) {\r\n return 1;\r\n }\r\n if(type == this.qbDataTypeEnum.Multiselect && typeof value === 'string') {\r\n return this.parseStringToNumberArray(value);\r\n }\r\n if(type == this.qbDataTypeEnum.TranslatedSelect) {\r\n return Number(value);\r\n }\r\n } \r\n return value;\r\n }\r\n\r\n parseStringToNumberArray(input: string): number[] {\r\n return input\r\n .split(',')\r\n .map(num => Number(num.trim()))\r\n .filter(num => !isNaN(num));\r\n }\r\n\r\n getDataType(id: number) {\r\n return this.qbDataEnums.find(value => value === id)?.toString() ?? \"\";\r\n }\r\n\r\n deleteFieldsWithoutValue(json: any) {\r\n if (json.basic && json.basic.rules) {\r\n json.basic.rules = json.basic.rules.filter((rule: any) => rule.value != null);\r\n json.basic.rules = json.basic.rules.filter((rule: any) => rule.value != undefined);\r\n json.basic.rules = json.basic.rules.filter((rule: any) => rule.value !== \"\");\r\n json.basic.rules = json.basic.rules.filter((rule: any) => { return !(rule.operator === \"nullable\" && rule.value === \"null\"); });\r\n }\r\n if(json.advanced && json.advanced.rules?.length != 0) {\r\n json.advanced.rules = json.advanced.rules.filter((rule: any) => rule.rules?.length != 0);\r\n json.advanced.rules = json.advanced.rules.filter((rule: any) => rule.value != null);\r\n json.advanced.rules = json.advanced.rules.filter((rule: any) => rule.value != undefined);\r\n json.advanced.rules = json.advanced.rules.filter((rule: any) => rule.value !== \"\");\r\n json.advanced.rules = json.advanced.rules.filter((rule: any) => { return !(rule.operator === \"nullable\" && rule.value === \"null\"); });\r\n }\r\n if(json.grouped && json.grouped?.rules.length != 0) {\r\n json.grouped.rules = json.grouped.rules.filter((rule: any) => rule.rules?.length != 0);\r\n }\r\n if(json.grouped && json.grouped?.rules.length == 0) {\r\n json.grouped = null;\r\n }\r\n return json;\r\n }\r\n \r\n initializeOperators(json: any) {\r\n if (json.basic && json.basic.rules) {\r\n json.basic.rules.forEach((rule:any) => {\r\n if(!rule.operator) {\r\n rule.operator = \"=\";\r\n }\r\n });\r\n }\r\n return json;\r\n }\r\n\r\n resetBasicQueryValues() {\r\n this.basicQuery.rules.forEach((rule: Rule) => {\r\n if(rule.value || rule.value == 0){\r\n rule.value = null\r\n }\r\n });\r\n }\r\n\r\n getQueryFieldName(fieldName: string, fields: FieldMap) {\r\n const fieldEntry = Object.keys(fields).find(key => fields[key].field === fieldName);\r\n\r\n return fieldEntry && fields[fieldEntry].name ? fields[fieldEntry].name : fieldName;\r\n }\r\n\r\n getNullableSelectOptions(options: NullableSelectOption[]) {\r\n return options.map((option: NullableSelectOption) => {\r\n return {\r\n name: option.value === 1 ? \r\n this.translationsObject.nullableSelectOptions![option.name].isNotNullOption :\r\n this.translationsObject.nullableSelectOptions![option.name].isNullOption,\r\n value: option.value,\r\n }\r\n })\r\n }\r\n \r\n getBooleanSelectOptions(options: BooleanSelectOption[]) {\r\n return options.map((option: BooleanSelectOption) => {\r\n return {\r\n name: option.value === 1 ? \r\n this.translationsObject.booleanSelectOptions![option.name].isNotNullOption :\r\n this.translationsObject.booleanSelectOptions![option.name].isNullOption,\r\n value: option.value,\r\n }\r\n })\r\n }\r\n\r\n getTranslatedSelectOptions(options: TranslatedSelectOption[]) {\r\n return options.map((option: TranslatedSelectOption) => {\r\n return {\r\n name: this.translationsObject.translatedSelectOptions![option.name.charAt(0).toLowerCase() + option.name.slice(1)] ?? option.name, \r\n value: option.value\r\n }\r\n })\r\n }\r\n\r\n fieldIsBoolean(fieldName: string, fields: FieldMap) {\r\n const fieldEntry = Object.keys(fields).find(key => fields[key].field === fieldName);\r\n\r\n return fields[fieldEntry!].type == QBDataTypeEnum.Boolean.toString() ? true : false;\r\n }\r\n\r\n isMultiselect(rule: Rule) {\r\n if(rule.operator == 'in' || rule.operator == 'not in' || rule.operator == 'is null' || rule.operator == 'is not null') {\r\n if(rule.value) {\r\n if(!Array.isArray(rule.value)) {\r\n rule.value = null;\r\n }\r\n }\r\n return true;\r\n } else {\r\n if(rule.value) {\r\n if(Array.isArray(rule.value))\r\n rule.value = null;\r\n }\r\n return false;\r\n }\r\n }\r\n\r\n isToKeepLocalDate(field: string){\r\n return this.fieldsToKeepLocalDate.length == 0 ? false : this.fieldsToKeepLocalDate.includes(field)\r\n }\r\n\r\n disableFilterButton() {\r\n if(this.filterId == 'tickets' || this.filterId == 'last-3-months-tickets') {\r\n return this.periodSelectComponent ? !this.periodSelectComponent.isValid() : false;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n","<!-- TODO: Intentar otra vez pasar los componentes a los de w- porque no se alinena y el w-edit-select no va bien en field.\r\nAhora se conservan los de p-w con estilos. -->\r\n<p-blockUI class=\"w-filter-panel-blockui\" [autoZIndex]=\"false\" [target]=\"filterPanel\" [blocked]=\"dataIsLoadingSearchButton\"></p-blockUI>\r\n\r\n<p-card class=\"w-filter-panel-no-style-card\" #filterPanel>\r\n @if (queryConfigReady) {\r\n <div class=\"w-filter-panel-styles\">\r\n @if (!filterPanelObject.allowAdvancedSearch) {\r\n <div>\r\n <div [ngClass]=\"{ 'w-filter-panel-container-advanced' : isAdvancedSearch, 'w-filter-panel-container-basic' : !isAdvancedSearch }\">\r\n <ng-container *ngTemplateOutlet=\"basic\"></ng-container>\r\n <div class=\"w-filter-panel-buttons\">\r\n <w-button icon=\"w-icon closeCircle\" buttonClass=\"cancel-filter-button\" [label]=\"translationsObject.clearButtonLabel\" type=\"tertiary\" size=\"small\" (onClick)=\"onClearClicked()\"></w-button>\r\n <w-button icon=\"pi pi-filter-fill\" buttonClass=\"set-filter-button\" [label]=\"translationsObject.searchButtonLabel\" size=\"small\" (onClick)=\"onSearchClicked()\" [disabled]=\"disableFilterButton()\"></w-button>\r\n </div>\r\n </div>\r\n </div>\r\n } @else {\r\n <div [ngClass]=\"{ 'w-filter-panel-container-advanced' : isAdvancedSearch, 'w-filter-panel-container-basic' : !isAdvancedSearch }\">\r\n @if (!isAdvancedSearch) {\r\n <ng-container *ngTemplateOutlet=\"basic\"></ng-container>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"advanced\"></ng-container>\r\n }\r\n <div class=\"w-filter-panel-buttons\" [class.pt-3]=\"isAdvancedSearch\">\r\n <w-button buttonClass=\"cancel-filter-button\" [label]=\"translationsObject.clearButtonLabel\" icon=\"w-icon closeCircle\" type=\"tertiary\" size=\"small\" (onClick)=\"onClearClicked()\"></w-button>\r\n <w-button buttonClass=\"set-filter-button\" [label]=\"translationsObject.searchButtonLabel\" icon=\"pi pi-filter-fill\" size=\"small\" (onClick)=\"onSearchClicked()\" [disabled]=\"disableFilterButton()\" [loading]=\"dataIsLoadingSearchButton\"></w-button>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</p-card>\r\n\r\n<ng-template #basic>\r\n @if (filterPanelObject.allowAdvancedSearch) {\r\n <div class=\"flex justify-content-end flex-wrap\">\r\n <w-button buttonClass=\"change-filter-button\" icon=\"pi pi-sync\" [label]=\"translationsObject.advancedSearchTabLabel\" type=\"text\" (onClick)=\"updateSearchType()\"></w-button>\r\n </div>\r\n }\r\n @if (basicQuery.rules.length > 0) {\r\n <div class=\"w-filter-panel-basic query-builder-style fadein animation-duration-500\">\r\n <query-builder #basicQueryBuilderObject [formControl]='queryCtrl' [config]='basicQueryConfig' [allowRuleset]='filterPanelObject.allowRuleSet' [allowRuleset]=\"filterPanelObject.allowRuleSet\" [persistValueOnFieldChange]='persistValueOnFieldChange'>\r\n <ng-container *queryButtonGroup=\"let ruleset;\">\r\n </ng-container>\r\n <ng-container *queryRemoveButton=\"let rule; let removeRule=removeRule\">\r\n </ng-container>\r\n <ng-container *querySwitchGroup=\"let ruleset; let onChange=onChange\">\r\n </ng-container>\r\n <ng-container *queryEntity=\"let rule; let entities=entities; let onChange=onChange\">\r\n @if (false) {\r\n <p-autocomplete [disabled]=\"true\" class=\" w-edit-select-small\" appendTo=\"body\" [suggestions]=\"entities\" [(ngModel)]=\"rule.entity\" optionLabel=\"name\" optionValue=\"value\" (ngModelChange)=\"onChange($event, rule)\"></p-autocomplete>\r\n }\r\n </ng-container>\r\n <ng-container *queryField=\"let rule; let fields=fields; let onChange=onChange; let getFields = getFields; let value=value; let name=name; let index=index\">\r\n <span appendTo=\"body\" class=\"w-filter-panel-input-text-label\" [class.w-filter-panel-boolean-label-width]=\"fieldIsBoolean(rule.field, getFields(rule.entity))\" optionLabel=\"name\" optionValue=\"value\">{{ getQueryFieldName(rule.field, getFields(rule.entity))}}</span>\r\n </ng-container>\r\n <ng-container *queryOperator=\"let rule; let operators=operators; let onChange=onChange\">\r\n <span class=\"query-builder-operator-width\">\r\n @if (isAdvancedSearch) {\r\n <w-edit-select [appendTo]=\"'self'\" [options]=\"operators\" [(ngModel)]=\"rule.operator\" [placeholder]=\"'-'\" [showClear]=\"false\" (ngModelChange)=\"onChange(rule)\" [required]=\"true\" [showLabel]=\"false\"></w-edit-select>\r\n }\r\n </span>\r\n </ng-container>\r\n <ng-container *queryInput=\"let rule; type: qbDataTypeEnum.Boolean.toString(); let onChange=onChange\">\r\n <span class=\"query-builder-operator-width\">\r\n <w-toggle-button size=\"small\" [(ngModel)]=\"rule.value\" onLabel=\"True\" offLabel=\"False\" (ngModelChange)=\"onChange()\"></w-toggle-button>\r\n </span>\r\n </ng-container>\r\n <ng-container *queryInput=\"let rule; type: qbDataTypeEnum.Datetime.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-basic-query-builder-input-width\">\r\n <w-edit-calendar appendTo=\"body\" size=\"small\" [showIcon]=\"false\" [dataType]=\"isToKeepLocalDate(rule.field) ? 'date' : 'string'\" [(ngModel)]=\"rule.value\" (onChange)=\"onChange()\" [showTime]=\"true\" [showSeconds]=\"true\" [firstDayOfWeek]=\"translationsObject.firstDayOfWeek ?? 1\" [placeholder]=\"translationsObject.fieldsPlaceholders.datetime\" [showLabel]=\"false\"></w-edit-calendar>\r\n </span>\r\n </ng-container>\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Decimal.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-basic-query-builder-input-width\">\r\n <w-edit-input-number class=\"field-gap w-edit-input-number-small w-edit-input-number-small-height\" [(ngModel)]=\"rule.value\" mode=\"decimal\" [min]=\"0\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"5\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.decimal\" [showLabel]=\"false\"></w-edit-input-number>\r\n </span>\r\n </ng-container>\r\n <ng-container *queryInput=\"let rule; let field=field; let options=options; type: qbDataTypeEnum.List.toString(); let onChange=onChange\">\r\n <w-list-field appendTo=\"body\" [required]=\"false\" [options]=\"options\" [(ngModel)]=\"rule.value\" [operator]=\"rule.operator\" (ngModelChange)=\"onChange()\" [virtualScroll]=\"true\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\" [translationsOptions]=\"field.translationsOptions\"></w-list-field>\r\n </ng-container>\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Number.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-basic-query-builder-input-width\">\r\n <w-edit-input-number [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.number\" [min]=\"0\" [useGrouping]=\"false\" [showLabel]=\"false\"> </w-edit-input-number>\r\n </span>\r\n </ng-container>\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Text.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-basic-query-builder-input-width\">\r\n <w-edit-input-text class=\"w-edit-input-text-small-height\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.text\" [showLabel]=\"false\"></w-edit-input-text>\r\n </span>\r\n </ng-container>\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.Multiselect.toString(); let onChange=onChange\">\r\n <w-list-field appendTo='body' [options]=\"getTranslatedSelectOptions(options)\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [virtualScroll]=\"true\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></w-list-field>\r\n </ng-container>\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.NullableSelect.toString(); let onChange=onChange\">\r\n <w-list-field appendTo=\"body\" [onlyDropdown]=\"true\" [required]=\"false\" [operator]=\"'='\" [options]=\"getNullableSelectOptions(options)\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [placeholder]=\"nullableSelectPlaceholder(rule, options)\"></w-list-field>\r\n </ng-container>\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.BooleanSelect.toString(); let onChange=onChange\">\r\n <w-list-field appendTo=\"body\" [required]=\"false\" [onlyDropdown]=\"true\" [operator]=\"'='\" [options]=\"getBooleanSelectOptions(options)\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></w-list-field>\r\n </ng-container>\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.Address.toString(); let onChange=onChange\">\r\n <w-address-field [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [operator]=\"rule.operator\" [segmentationApiUrl]=\"segmentationApiUrl\" [segmentationApiToken]=\"segmentationToken\"></w-address-field>\r\n </ng-container>\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.TranslatedSelect.toString(); let onChange=onChange\">\r\n <w-list-field appendTo=\"body\" [options]=\"getTranslatedSelectOptions(options)\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></w-list-field>\r\n </ng-container>\r\n <ng-container *queryInput=\"let rule; let field=field; let options=options; type: qbDataTypeEnum.NotificationEventList.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-input-text-label extra-label\">{{field.extraName}}</span>\r\n <w-notifications-event-field class=\"w-filter-panel-notifications-event-field\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [operator]=\"rule.operator\" [notificationApiUrl]=\"notificationApiUrl\" [notificationApiToken]=\"commonDataToken\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\" [translationsOptions]=\"field.translationsOptions\"></w-notifications-event-field>\r\n </ng-container>\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.PeriodSelect.toString(); let onChange=onChange\">\r\n <w-period-select-field #periodSelect [ngClass]=\"{ 'w-filter-panel-period-select-field': rule.value.periodType === periodSelectEnum.Custom }\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [operator]=\"rule.operator\" [translationsObject]=\"translationsObject\" [periodSelectValue]=\"rule.value\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></w-period-select-field>\r\n </ng-container>\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.TreeList.toString(); let onChange=onChange\">\r\n <w-tree-field [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [field]=\"rule.field\" [operator]=\"rule.operator\" [productApiUrl]=\"productApiUrl\" [productApiToken]=\"commonDataToken\" [selectPlaceholder]=\"translationsObject.fieldsPlaceholders.list\"></w-tree-field>\r\n </ng-container>\r\n </query-builder>\r\n </div>\r\n }\r\n\r\n @if (!isAdvancedSearch && basicQuery.rules.length==0) {\r\n <ng-container *ngTemplateOutlet=\"noQueryData\"></ng-container>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #advanced>\r\n <div [class.query-builder-style]=\"!filterPanelObject.allowRuleSet\" class=\"w-filter-panel-container fadein animation-duration-500\">\r\n @if (filterPanelObject.allowRuleSet) {\r\n <div class=\"flex justify-content-end flex-wrap\">\r\n <w-button buttonClass=\"change-filter-button\" icon=\"pi pi-sync\" class=\"mb-2\" [label]=\"translationsObject.basicSearchTabLabel\" type=\"text\" (onClick)=\"updateSearchType()\"></w-button>\r\n </div>\r\n }\r\n <query-builder class=\"w-filter-panel-advanced query-builder-style\" #advancedQueryBuilder [formControl]='advancedQueryCtrl' [config]='advancedQueryConfig' [allowRuleset]='filterPanelObject.allowRuleSet' [allowCollapse]='filterPanelObject.allowColapse' [allowRuleset]=\"filterPanelObject.allowRuleSet\" [persistValueOnFieldChange]='persistValueOnFieldChange'>\r\n @if (filterPanelObject.allowRuleSet) {\r\n <div>\r\n <ng-container *queryButtonGroup=\"let ruleset; let addRule=addRule; let addRuleSet=addRuleSet; let removeRuleSet=removeRuleSet\">\r\n <span class=\"flex gap-3\">\r\n <w-button [label]=\"translationsObject.advancedSearch.addRuleButtonLabel\" type=\"secondary\" size=\"small\" (onClick)=\"addRule()\"></w-button>\r\n @if (addRuleSet) {\r\n <w-button [label]=\"translationsObject.advancedSearch.addRuleSetButtonLabel\" type=\"secondary\" icon=\"pi pi-plus\" size=\"small\" (onClick)=\"addRuleSet()\"></w-button>\r\n }\r\n @if (removeRuleSet) {\r\n <w-button [label]=\"translationsObject.advancedSearch.removeRuleSetButtonLabel\" type=\"tertiary\" icon=\"pi pi-minus\" size=\"small\" (onClick)=\"removeRuleSet()\"></w-button>\r\n }\r\n </span>\r\n </ng-container>\r\n </div>\r\n } @else {\r\n <ng-container *queryButtonGroup=\"let ruleset; let addRule=addRule; let addRuleSet=addRuleSet; let removeRuleSet=removeRuleSet\">\r\n <div class=\"flex justify-content-end flex-wrap\">\r\n <w-button [label]=\"translationsObject.basicSearchTabLabel\" type=\"text\" (onClick)=\"updateSearchType()\"></w-button>\r\n </div>\r\n <span class=\"advanced-query-button-group flex gap-3\">\r\n <w-button [label]=\"translationsObject.advancedSearch.addRuleButtonLabel\" type=\"secondary\" size=\"small\" (onClick)=\"addRule()\"></w-button>\r\n @if (addRuleSet) {\r\n <w-button [label]=\"translationsObject.advancedSearch.addRuleSetButtonLabel\" type=\"secondary\" icon=\"pi pi-plus\" size=\"small\" (onClick)=\"addRuleSet()\"></w-button>\r\n }\r\n @if (removeRuleSet) {\r\n <w-button [label]=\"translationsObject.advancedSearch.removeRuleSetButtonLabel\" type=\"tertiary\" icon=\"pi pi-minus\" size=\"small\" (onClick)=\"removeRuleSet()\"></w-button>\r\n }\r\n </span>\r\n </ng-container>\r\n }\r\n\r\n <ng-container *queryArrowIcon>\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-angle-right\" class=\"p-button-rounded p-button-text\"></button>\r\n </ng-container>\r\n\r\n <ng-container *queryRemoveButton=\"let rule; let removeRule=removeRule\">\r\n <w-button class=\"\" label=\"\" size=\"small\" type=\"tertiary\" icon=\"pi pi-times\" (onClick)=\"removeRule(rule)\"></w-button>\r\n </ng-container>\r\n\r\n <ng-container *querySwitchGroup=\"let ruleset; let onChange=onChange\">\r\n @if (ruleset) {\r\n <div class=\"w-filter-panel-switch-group-padding q-inline-block-display inline-flex\">\r\n @if (filterPanelObject.allowLogicalRule) {\r\n <w-select-button [stateOptions]=\"[{label: 'And', value: 'and'}, {label: 'Or', value: 'or'}]\"\r\n [(ngModel)]=\"ruleset.condition\"\r\n [size]=\"'small'\"\r\n (value)=\"ruleset.condition = $event\">\r\n </w-select-button>\r\n }\r\n </div>\r\n }\r\n </ng-container>\r\n\r\n <ng-container *queryEntity=\"let rule; let entities=entities; let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width\" [ngClass]=\"{'w-no-entity-mode' : !filterPanelObject.enityMode}\">\r\n @if (filterPanelObject.enityMode) {\r\n <w-edit-select [appendTo]=\"'self'\" [options]=\"entities\" [(ngModel)]=\"rule.entity\" (ngModelChange)=\"onChange($event, rule)\" optionLabel=\"name\" optionValue=\"value\" [required]=\"true\" [showLabel]=\"false\"></w-edit-select>\r\n }\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryField=\"let rule; let fields=fields; let onChange=onChange; let getFields = getFields\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <w-list-field class=\"field-gap\" [options]=\"getFields(rule.entity)\" [(ngModel)]=\"rule.field\" [operator]=\"'='\" (ngModelChange)=\"onChange($event, rule)\" [required]=\"true\" [onlyDropdown]=\"true\"></w-list-field>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryOperator=\"let rule; let operators=operators; let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-operators q-inline-block-display\" [ngClass]=\"{'w-field-nullable' : operators.includes('nullable')}\">\r\n @if (!operators.includes('nullable')) {\r\n <w-edit-select [appendTo]=\"'self'\" [options]=\"operators\" [(ngModel)]=\"rule.operator\" [placeholder]=\"'-'\" [showClear]=\"false\" (ngModelChange)=\"onChange(rule)\" [required]=\"true\" [showLabel]=\"false\"></w-edit-select>\r\n }\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; type: qbDataTypeEnum.Boolean.toString(); let onChange=onChange\">\r\n <w-toggle-button class=\"field-gap toggle-button-align\" size=\"small\" [(ngModel)]=\"rule.value\" onLabel=\"True\" offLabel=\"False\" (ngModelChange)=\"onChange()\"></w-toggle-button>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; type: qbDataTypeEnum.Datetime.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <w-edit-calendar class=\"field-gap\" appendTo=\"body\" size=\"small\" [dataType]=\"isToKeepLocalDate(rule.field) ? 'date' : 'string'\" [showIcon]=\"false\" [(ngModel)]=\"rule.value\" (onChange)=\"onChange()\" [showTime]=\"true\" [showSeconds]=\"true\" [firstDayOfWeek]=\"translationsObject.firstDayOfWeek ?? 1\" [placeholder]=\"translationsObject.fieldsPlaceholders.datetime\" [displayInlineBlock]=\"true\" [showLabel]=\"false\"></w-edit-calendar>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Decimal.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <w-edit-input-number class=\"field-gap w-edit-input-number-small w-edit-input-number-small-height\" [(ngModel)]=\"rule.value\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"5\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.decimal\" [showLabel]=\"false\"></w-edit-input-number>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.List.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <w-list-field [options]=\"options\" [(ngModel)]=\"rule.value\" [operator]=\"rule.operator\" (ngModelChange)=\"onChange()\" [virtualScroll]=\"true\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></w-list-field>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.List.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display field-gap\">\r\n <w-list-field [options]=\"options\" [(ngModel)]=\"rule.value\" [operator]=\"rule.operator\" (ngModelChange)=\"onChange()\" [virtualScroll]=\"true\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></w-list-field>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Number.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <w-edit-input-number [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.number\" [min]=\"0\" [useGrouping]=\"false\" [showLabel]=\"false\"> </w-edit-input-number>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Text.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <w-edit-input-text [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.text\" [showLabel]=\"false\"></w-edit-input-text>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.Multiselect.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <w-edit-multiselect [appendTo]=\"'self'\" [options]=\"options\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" optionLabel=\"name\" optionValue=\"value\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\" [showLabel]=\"false\" [required]=\"true\"></w-edit-multiselect>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.Address.toString(); let onChange=onChange\">\r\n <w-address-field [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [operator]=\"rule.operator\" [segmentationApiUrl]=\"segmentationApiUrl\" [segmentationApiToken]=\"segmentationToken\" [selectPlaceholder]=\"translationsObject.fieldsPlaceholders.list\"></w-address-field>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.NullableSelect.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display w-entity-nullable\">\r\n <w-list-field [onlyDropdown]=\"true\" operator=\"=\" [options]=\"getNullableSelectOptions(options)\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></w-list-field>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.BooleanSelect.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <w-list-field [onlyDropdown]=\"true\" operator=\"=\" [options]=\"getBooleanSelectOptions(options)\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></w-list-field>\r\n </span>\r\n </ng-container>\r\n\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.TranslatedSelect.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <w-list-field [options]=\"getTranslatedSelectOptions(options)\" [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></w-list-field>\r\n </span>\r\n </ng-container>\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.TreeList.toString(); let onChange=onChange\">\r\n <w-tree-field [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [field]=\"rule.field\" [operator]=\"rule.operator\" [productApiUrl]=\"productApiUrl\" [productApiToken]=\"commonDataToken\" [selectPlaceholder]=\"translationsObject.fieldsPlaceholders.list\"></w-tree-field>\r\n </ng-container>\r\n </query-builder>\r\n\r\n @if (isAdvancedSearch && advancedQuery.rules.length==0) {\r\n <ng-container *ngTemplateOutlet=\"noQueryData\"></ng-container>\r\n }\r\n\r\n <!-- Grouped filter -->\r\n @if (filterPanelObject.allowGrouped) {\r\n <div>\r\n <div class=\"py-5\">\r\n <w-view-card-title-text [cardTitle]=\"translationsObject.groupedFilterTitle\"></w-view-card-title-text>\r\n </div>\r\n @if (groupedQuery.rules.length > 0) {\r\n <query-builder class=\"w-filter-panel-grouped query-builder-style\" [formControl]='groupedQueryCtrl' [config]='advancedQueryConfig' [allowRuleset]='filterPanelObject.allowRuleSet' [allowCollapse]='filterPanelObject.allowColapse' [allowRuleset]=\"filterPanelObject.allowRuleSet\" [persistValueOnFieldChange]='persistValueOnFieldChange'>\r\n <ng-container *queryButtonGroup=\"let ruleset; let addRule=addRule; let addRuleSet=addRuleSet; let removeRuleSet=removeRuleSet\">\r\n <div class=\"flex gap-3\">\r\n <w-button [label]=\"translationsObject.advancedSearch.addRuleButtonLabel\" type=\"secondary\" size=\"small\" (onClick)=\"addRule()\"></w-button>\r\n @if (addRuleSet) {\r\n <w-button [label]=\"translationsObject.advancedSearch.addRuleSetButtonLabel\" type=\"secondary\" icon=\"pi pi-plus\" size=\"small\" (onClick)=\"addRuleSet()\"></w-button>\r\n }\r\n @if (removeRuleSet) {\r\n <w-button [label]=\"translationsObject.advancedSearch.removeRuleSetButtonLabel\" type=\"tertiary\" icon=\"pi pi-minus\" size=\"small\" (onClick)=\"removeRuleSet()\"></w-button>\r\n }\r\n </div>\r\n </ng-container>\r\n <ng-container *queryArrowIcon>\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-angle-right\" class=\"p-button-rounded p-button-text\"></button>\r\n </ng-container>\r\n <ng-container *queryRemoveButton=\"let rule; let removeRule=removeRule\">\r\n <w-button class=\"\" label=\"\" size=\"small\" type=\"tertiary\" icon=\"pi pi-times\" (onClick)=\"removeRule(rule)\"></w-button>\r\n </ng-container>\r\n <ng-container *querySwitchGroup=\"let ruleset; let onChange=onChange\">\r\n @if (ruleset) {\r\n <div class=\"w-filter-panel-switch-group-padding q-inline-block-display inline-flex\">\r\n @if (filterPanelObject.allowLogicalRule) {\r\n <w-select-button [stateOptions]=\"[{label: 'And', value: 'and'}, {label: 'Or', value: 'or'}]\"\r\n [(ngModel)]=\"ruleset.condition\"\r\n [size]=\"'small'\"\r\n (value)=\"ruleset.condition = $event\">\r\n </w-select-button>\r\n }\r\n </div>\r\n }\r\n </ng-container>\r\n <ng-container *queryEntity=\"let rule; let entities=entities; let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width\" [ngClass]=\"{'w-no-entity-mode' : !filterPanelObject.enityMode}\">\r\n @if (filterPanelObject.enityMode) {\r\n <w-edit-select [appendTo]=\"'self'\" [options]=\"entities\" [(ngModel)]=\"rule.entity\" (ngModelChange)=\"onChange($event, rule)\" optionLabel=\"name\" optionValue=\"value\" [required]=\"true\" [showLabel]=\"false\"></w-edit-select>\r\n }\r\n </span>\r\n </ng-container>\r\n <ng-container *queryField=\"let rule; let fields=fields; let onChange=onChange; let getFields = getFields\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <w-list-field class=\"field-gap\" [options]=\"getFields(rule.entity)\" [(ngModel)]=\"rule.field\" [operator]=\"'='\" (ngModelChange)=\"onChange($event, rule)\" [required]=\"true\" [onlyDropdown]=\"true\"></w-list-field>\r\n </span>\r\n </ng-container>\r\n <ng-container *queryOperator=\"let rule; let operators=operators; let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-operators q-inline-block-display\" [ngClass]=\"{'w-field-nullable' : operators.includes('nullable')}\">\r\n <w-edit-select [appendTo]=\"'self'\" [options]=\"operators\" [(ngModel)]=\"rule.operator\" [placeholder]=\"'-'\" [showClear]=\"false\" (ngModelChange)=\"onChange(rule)\" [required]=\"true\" [showLabel]=\"false\"></w-edit-select>\r\n </span>\r\n </ng-container>\r\n <ng-container *queryInput=\"let rule; type: qbDataTypeEnum.Boolean.toString(); let onChange=onChange\">\r\n <w-toggle-button class=\"field-gap toggle-button-align\" size=\"small\" [(ngModel)]=\"rule.value\" onLabel=\"True\" offLabel=\"False\" (ngModelChange)=\"onChange()\"></w-toggle-button>\r\n </ng-container>\r\n <ng-container *queryInput=\"let rule; type: qbDataTypeEnum.Datetime.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <w-edit-calendar class=\"field-gap\" appendTo=\"body\" size=\"small\" [dataType]=\"isToKeepLocalDate(rule.field) ? 'date' : 'string'\" [showIcon]=\"false\" [(ngModel)]=\"rule.value\" (onChange)=\"onChange()\" [showTime]=\"true\" [showSeconds]=\"true\" [placeholder]=\"translationsObject.fieldsPlaceholders.datetime\" [displayInlineBlock]=\"true\"></w-edit-calendar>\r\n </span>\r\n </ng-container>\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Decimal.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <w-edit-input-number class=\"field-gap w-edit-input-number-small w-edit-input-number-small-height\" [(ngModel)]=\"rule.value\" mode=\"decimal\" [minFractionDigits]=\"2\" [maxFractionDigits]=\"5\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.decimal\" [showLabel]=\"false\"></w-edit-input-number>\r\n </span>\r\n </ng-container>\r\n <ng-container *queryInput=\"let rule; let options=options; type: qbDataTypeEnum.List.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <w-list-field [options]=\"options\" [(ngModel)]=\"rule.value\" [operator]=\"rule.operator\" (ngModelChange)=\"onChange()\" [virtualScroll]=\"true\" [placeholder]=\"translationsObject.fieldsPlaceholders.list\"></w-list-field>\r\n </span>\r\n </ng-container>\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Number.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width q-inline-block-display\">\r\n <w-edit-input-number [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.number\" [min]=\"0\" [useGrouping]=\"false\" [showLabel]=\"false\"> </w-edit-input-number>\r\n </span>\r\n </ng-container>\r\n <ng-container *queryInput=\"let rule; let field=field; type: qbDataTypeEnum.Text.toString(); let onChange=onChange\">\r\n <span class=\"w-filter-panel-advanced-query-builder-input-width\">\r\n <w-edit-input-text [(ngModel)]=\"rule.value\" (ngModelChange)=\"onChange()\" [placeholder]=\"translationsObject.fieldsPlaceholders.text\" [showLabel]=\"false\"></w-edit-input-text>\r\n </span>\r\n </ng-container>\r\n </query-builder>\r\n }\r\n @if (isAdvancedSearch && groupedQuery.rules.length==0) {\r\n <ng-container *ngTemplateOutlet=\"noQueryData\"></ng-container>\r\n }\r\n </div>\r\n }\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #noQueryData>\r\n <div class=\"flex justify-content-center flex-wrap card-container surface-50\">\r\n <div class=\"flex align-items-center justify-content-center w-full h-4rem text-gray-900 border-round m-2\">\r\n {{translationsObject.noRulesLabel}}\r\n </div>\r\n </div>\r\n</ng-template>\r\n","import { Component } from '@angular/core';\r\nimport { DynamicDialogConfig } from 'primeng/dynamicdialog';\r\n\r\n@Component({\r\n selector: 'w-preview-image',\r\n templateUrl: './w-preview-image.component.html',\r\n styleUrls: ['./w-preview-image.component.css'],\r\n standalone: false\r\n})\r\nexport class WPreviewImageComponent {\r\n imageCropped!: any;\r\n\r\n constructor(public dynamicDialogConfig: DynamicDialogConfig){}\r\n\r\n ngOnInit(): void {\r\n this.imageCropped = this.dynamicDialogConfig.data.imageEdited;\r\n }\r\n}\r\n","<div class=\"flex align-content-center align-items-center justify-content-center h-full w-full\">\r\n @if (imageCropped) {\r\n <p-image\r\n class=\"flex align-content-center align-items-center\"\r\n [src]=\"imageCropped\" > </p-image>\r\n }\r\n</div>\r\n","import { Injectable, Type } from '@angular/core';\r\nimport { Breakpoints, BreakpointObserver } from '@angular/cdk/layout';\r\nimport { DialogService, DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\n\r\nexport interface ModalSize {\r\n width: string;\r\n height?: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ModalService {\r\n\r\n constructor(private dialogService: DialogService, private breakpointObserver: BreakpointObserver) { }\r\n\r\n dialogRef: any;\r\n smallDialogSubscription: any;\r\n dialogData: any;\r\n\r\n open(componentOrTemplateRef: Type<any>, modalConfig?: DynamicDialogConfig, modalSize?: ModalSize,): DynamicDialogRef {\r\n if (!modalConfig) {\r\n modalConfig = new DynamicDialogConfig;\r\n }\r\n\r\n if (modalConfig.data) {\r\n this.dialogData = modalConfig.data;\r\n }\r\n\r\n // TODO dejo esto comentado como guía para completarlo más adelante\r\n //modalConfig.maxWidth = '100vw';\r\n\r\n this.dialogRef = this.dialogService.open(componentOrTemplateRef, modalConfig);\r\n\r\n this.smallDialogSubscription = this.breakpointObserver.observe([Breakpoints.XSmall])\r\n .subscribe(size => {\r\n if (size.matches) {\r\n //this.dialogRef.updateSize('100%', '100%');\r\n //this.dialogRef.hasBackdrop = false;\r\n } else {\r\n if (!modalSize) {\r\n //this.dialogRef.updateSize('auto', 'auto');\r\n }\r\n else {\r\n //this.dialogRef.updateSize(modalSize.width, modalSize.height);\r\n }\r\n }\r\n });\r\n\r\n return this.dialogRef;\r\n }\r\n\r\n close(): void {\r\n this.smallDialogSubscription.unsubscribe();\r\n this.dialogRef.close();\r\n }\r\n \r\n getComponentInstance<T>() {\r\n let dialogComponentRef = this.dialogService.dialogComponentRefMap.get(this.dialogRef);\r\n dialogComponentRef!.changeDetectorRef.detectChanges();\r\n\r\n return dialogComponentRef?.instance.componentRef!.instance as T;\r\n }\r\n\r\n getComponentRef() {\r\n let dialogComponentRef = this.dialogService.dialogComponentRefMap.get(this.dialogRef);\r\n dialogComponentRef!.changeDetectorRef.detectChanges();\r\n\r\n return dialogComponentRef?.instance.componentRef;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { WImageCropperData } from '../../shared/models/w-image-cropper-data.model';\r\nimport { WFileB64 } from '../../shared/models/w-file-b64.model';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { ModalService } from '../../shared/services/modal.service';\r\nimport { WPreviewImageComponent } from '../w-preview-image/w-preview-image.component';\r\nimport { Dimensions, ImageCroppedEvent, ImageTransform } from 'ngx-image-cropper';\r\n\r\n@Component({\r\n selector: 'w-image-cropper',\r\n templateUrl: './w-image-cropper.component.html',\r\n styleUrls: ['./w-image-cropper.component.scss'],\r\n standalone: false\r\n})\r\nexport class WImageCropperComponent {\r\n @Input() dimensionsInput!: WImageCropperData;\r\n @Input() translationsImageCropper: any;\r\n @Output() imageCroppedFinal = new EventEmitter<any>();\r\n @Output() imageB64 = new EventEmitter<any>();\r\n @Input() blob: any;\r\n\r\n imageChangedEvent: any = '';\r\n croppedImage: any = '';\r\n canvasRotation = 0;\r\n rotation: number = 0;\r\n translateH = 0;\r\n translateV = 0;\r\n scale = 1;\r\n aspectRatio = 4 / 3;\r\n showCropper = false;\r\n containWithinAspectRatio = false;\r\n transform: ImageTransform = {\r\n translateUnit: 'px'\r\n };\r\n imageURL?: string;\r\n loading = false;\r\n allowMoveImage = true;\r\n hidden = false;\r\n\r\n croppedImageFile: WFileB64 = {name: \"\", type: \"\", fileBase64: \"\", base64: \"\"};\r\n\r\n dimensions: any;\r\n maxFileSize!: number;\r\n roundedCropper!: boolean;\r\n acceptImage: string = 'image/*';\r\n fromModal: boolean = true;\r\n dialogPreview!: DynamicDialogRef;\r\n constructor(\r\n private ref: DynamicDialogRef,\r\n private dialogService: ModalService,\r\n public dynamicDialogConfig: DynamicDialogConfig){\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n if(this.dynamicDialogConfig.data == undefined){\r\n this.fromModal = false;\r\n this.aspectRatio = this.dimensionsInput.configuredAspectRatio;\r\n this.roundedCropper = this.dimensionsInput.roundedCropper;\r\n this.dimensions = {\r\n width: this.dimensionsInput.viewPortWidthPx,\r\n height: this.dimensionsInput.viewPortHeihtPx\r\n }\r\n this.maxFileSize = this.getMaxFileSizeByDimensions(this.dimensions.width, this.dimensions.height);\r\n }else{\r\n this.aspectRatio = this.dynamicDialogConfig.data.dataModal.configuredAspectRatio;\r\n this.roundedCropper = this.dynamicDialogConfig.data.dataModal.roundedCropper;\r\n this.dimensions = {\r\n width: this.dynamicDialogConfig.data.dataModal.viewPortWidthPx,\r\n height: this.dynamicDialogConfig.data.dataModal.viewPortHeihtPx\r\n }\r\n this.maxFileSize = this.dynamicDialogConfig.data.dataModal.maxFileSize\r\n this.translationsImageCropper = this.dynamicDialogConfig.data.translations;\r\n this.blob = this.dynamicDialogConfig.data.blob;\r\n if(this.blob)\r\n this.setCroppeImageFileObject();\r\n\r\n if(this.dynamicDialogConfig.data.dataModal.acceptImage){\r\n this.acceptImage = this.dynamicDialogConfig.data.dataModal.acceptImage;\r\n }\r\n }\r\n }\r\n\r\n myUploader(event: any) {\r\n this.resetImage()\r\n this.loading = true;\r\n this.blob = event.files[0];\r\n this.setCroppeImageFileObject();\r\n }\r\n\r\n setCroppeImageFileObject(){\r\n this.croppedImageFile.name = this.blob.name;\r\n this.croppedImageFile.type = this.blob.type;\r\n }\r\n\r\n imageCropped(event: ImageCroppedEvent) {\r\n this.croppedImage = event.base64;\r\n }\r\n\r\n imageLoaded(event: any) {\r\n this.showCropper = true;\r\n }\r\n\r\n cropperReady(sourceImageDimensions: Dimensions) {\r\n this.loading = false;\r\n }\r\n\r\n loadImageFailed() {\r\n console.error('Load image failed');\r\n }\r\n\r\n rotateLeft() {\r\n this.loading = true;\r\n setTimeout(() => { // Use timeout because rotating image is a heavy operation and will block the ui thread\r\n this.canvasRotation--;\r\n this.flipAfterRotate();\r\n });\r\n }\r\n\r\n rotateRight() {\r\n this.loading = true;\r\n setTimeout(() => {\r\n this.canvasRotation++;\r\n this.flipAfterRotate();\r\n });\r\n }\r\n\r\n moveLeft() {\r\n this.transform = {\r\n ...this.transform,\r\n translateH: ++this.translateH\r\n };\r\n }\r\n\r\n moveRight() {\r\n this.transform = {\r\n ...this.transform,\r\n translateH: --this.translateH\r\n };\r\n }\r\n\r\n moveTop() {\r\n this.transform = {\r\n ...this.transform,\r\n translateV: ++this.translateV\r\n };\r\n }\r\n\r\n moveBottom() {\r\n this.transform = {\r\n ...this.transform,\r\n translateV: --this.translateV\r\n };\r\n }\r\n\r\n flipHorizontal() {\r\n this.transform = {\r\n ...this.transform,\r\n flipH: !this.transform.flipH\r\n };\r\n }\r\n\r\n flipVertical() {\r\n this.transform = {\r\n ...this.transform,\r\n flipV: !this.transform.flipV\r\n };\r\n }\r\n\r\n resetImage() {\r\n this.scale = 1;\r\n this.rotation = 0;\r\n this.canvasRotation = 0;\r\n this.transform = {\r\n translateUnit: 'px'\r\n };\r\n }\r\n\r\n zoomOut() {\r\n this.scale -= .1;\r\n this.transform = {\r\n ...this.transform,\r\n scale: this.scale\r\n };\r\n }\r\n\r\n zoomIn() {\r\n this.scale += .1;\r\n this.transform = {\r\n ...this.transform,\r\n scale: this.scale\r\n };\r\n }\r\n\r\n toggleContainWithinAspectRatio() {\r\n this.containWithinAspectRatio = !this.containWithinAspectRatio;\r\n }\r\n\r\n updateRotation() {\r\n this.transform = {\r\n ...this.transform,\r\n rotate: this.rotation\r\n };\r\n }\r\n\r\n toggleAspectRatio() {\r\n this.aspectRatio = this.aspectRatio === 4 / 3 ? 16 / 5 : 4 / 3;\r\n }\r\n \r\n toggleAspectRatio1() {\r\n this.aspectRatio = this.aspectRatio = 1;\r\n }\r\n\r\n viewCrop(){\r\n this.dialogPreview = this.dialogService.open(WPreviewImageComponent, {\r\n header: this.translationsImageCropper.modal.preview,\r\n width:'35rem',\r\n modal: true, \r\n closable: true,\r\n contentStyle: {\"overflow\": \"auto\", \"height\": \"35rem\", \"padding-bottom\": \"8px\"},\r\n data: {imageEdited: this.croppedImage}\r\n })\r\n }\r\n\r\n deleteBlob(){\r\n this.blob = null\r\n this.croppedImage = null\r\n }\r\n\r\n cancelDialog(){\r\n this.blob = null\r\n this.croppedImage = null\r\n this.ref.close();\r\n }\r\n\r\n saveImageCropped(){\r\n this.croppedImageFile.fileBase64 = this.croppedImage;\r\n this.croppedImageFile.base64 = this.imageCroppedToBase64(this.croppedImage, this.croppedImageFile.name);\r\n\r\n if(this.fromModal){\r\n this.ref.close(this.croppedImageFile)\r\n }else{\r\n this.imageCroppedFinal.emit(this.croppedImageFile);\r\n }\r\n }\r\n\r\n private flipAfterRotate() {\r\n const flippedH = this.transform.flipH;\r\n const flippedV = this.transform.flipV;\r\n this.transform = {\r\n ...this.transform,\r\n flipH: flippedV,\r\n flipV: flippedH\r\n };\r\n this.translateH = 0;\r\n this.translateV = 0;\r\n }\r\n\r\n imageCroppedToBase64(imageData: string, imageName: string){\r\n const base64Parts = imageData?.split(',');\r\n if (base64Parts.length === 2) {\r\n const base64Content = base64Parts[1];\r\n return base64Content;\r\n }\r\n return '';\r\n }\r\n\r\n getMaxFileSizeByDimensions(width: number, height: number, factor: number = 0.5): number {\r\n return Math.round(width * height * factor * 1024);\r\n }\r\n}\r\n","<div class=\"flex flex-column align-content-center justify-content-center wapp-card-cropper\">\r\n <div class=\"flex flex-1\"></div>\r\n @if (!blob) {\r\n <div class=\"flex justify-content-center align-content-center\">\r\n <span class=\"flex align-content-center surface-border justify-content-between flex-wrap\">\r\n <p-fileUpload #fileUploader\r\n class=\"w-file-button bg-white\"\r\n chooseIcon=\"pi pi-image\"\r\n [chooseLabel]=\"translationsImageCropper.select\"\r\n (onSelect)=\"myUploader($event)\"\r\n name=\"filesToUpload[]\" \r\n [auto]=\"true\"\r\n [multiple]=\"false\"\r\n [accept]=\"acceptImage\"\r\n mode=\"basic\"\r\n [maxFileSize]=\"maxFileSize\">\r\n </p-fileUpload>\r\n </span>\r\n </div>\r\n } @else {\r\n <div class=\"flex flex-column w-full\">\r\n <div class=\"flex flex-row align-content-center\">\r\n <div class=\"w-3\"></div>\r\n <div\r\n class=\"flex align-content-center align-items-center justify-content-between wapp-image-cropper-wrapper flex-1\">\r\n <image-cropper [imageFile]=\"blob\" [imageURL]=\"imageURL\" [maintainAspectRatio]=\"true\"\r\n [containWithinAspectRatio]=\"containWithinAspectRatio\" [aspectRatio]=\"aspectRatio\"\r\n [resizeToWidth]=\"dimensions.width\" [resizeToHeight]=\"dimensions.height\" [cropperMinWidth]=\"128\"\r\n [onlyScaleDown]=\"true\" [roundCropper]=\"false\" [canvasRotation]=\"canvasRotation\" [(transform)]=\"transform\"\r\n [alignImage]=\"'center'\" [style.display]=\"showCropper ? null : 'none'\" [allowMoveImage]=\"allowMoveImage\"\r\n [hidden]=\"hidden\" backgroundColor=\"white\" format=\"jpeg\" [roundCropper]=\"roundedCropper\"\r\n (imageCropped)=\"imageCropped($event)\" (imageLoaded)=\"imageLoaded($event)\"\r\n (cropperReady)=\"cropperReady($event)\" (loadImageFailed)=\"loadImageFailed()\"\r\n [output]=\"'base64'\"></image-cropper>\r\n </div>\r\n <div class=\"flex flex-column justify-content-center align-content-center align-items-center\">\r\n <w-button class=\"flex align-items-center align-content-center justify-content-start px-3 py-3\"\r\n [pTooltip]=\"translationsImageCropper.zoomIn\" icon=\"pi pi-search-plus\" (click)=\"zoomIn()\"\r\n type=\"text\"></w-button>\r\n <w-button class=\"flex align-items-center align-content-center justify-content-start px-3 py-3\"\r\n [pTooltip]=\"translationsImageCropper.zoomOut\" icon=\"pi pi-search-minus\" (click)=\"zoomOut()\"\r\n type=\"text\"></w-button>\r\n </div>\r\n <div class=\"flex flex-1\"></div>\r\n </div>\r\n <div class=\"flex flex-1\">\r\n <div class=\"w-3\"></div>\r\n <div class=\"flex flex-1 flex-column wapp-image-cropper-tools py-4\">\r\n <p-slider [(ngModel)]=\"rotation\" [min]=\"-360\" [max]=\"360\" (ngModelChange)=\"updateRotation()\"\r\n class=\"w-full align-content-center\" [pTooltip]=\"translationsImageCropper.rotation\"></p-slider>\r\n </div>\r\n <div class=\"w-3 align-items-end\"></div>\r\n </div>\r\n <div class=\"flex flex-1\">\r\n <div class=\"w-3\"></div>\r\n <div\r\n class=\"flex flex-1 wapp-image-cropper-tools flex-row justify-content-center align-items-center align-content-center\">\r\n <w-button type=\"text\" icon=\"pi pi-replay\" tooltipPosition=\"bottom\"\r\n [pTooltip]=\"translationsImageCropper.rotateLeft\" (click)=\"rotateLeft()\"></w-button>\r\n <w-button type=\"text\" icon=\"pi pi-refresh\" tooltipPosition=\"bottom\"\r\n [pTooltip]=\"translationsImageCropper.rotateRight\" (click)=\"rotateRight()\"></w-button>\r\n <w-button type=\"text\" icon=\"pi pi-arrows-h\" tooltipPosition=\"bottom\"\r\n [pTooltip]=\"translationsImageCropper.flipHorizontal\" (click)=\"flipHorizontal()\"></w-button>\r\n <w-button type=\"text\" [pTooltip]=\"translationsImageCropper.flipVertical\" icon=\"pi pi-arrows-v\"\r\n tooltipPosition=\"bottom\" (click)=\"flipVertical()\"></w-button>\r\n <w-button type=\"text\" [pTooltip]=\"translationsImageCropper.restore\" icon=\"pi pi-history\"\r\n tooltipPosition=\"bottom\" (click)=\"resetImage()\"></w-button>\r\n <w-button type=\"text\" [pTooltip]=\"translationsImageCropper.preview\" icon=\"pi pi-eye\" tooltipPosition=\"bottom\"\r\n (click)=\"viewCrop()\"></w-button>\r\n </div>\r\n <div class=\"w-3 align-items-end\"></div>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"flex flex-1\"></div>\r\n <div\r\n class=\"wapp-image-cropper-dialog-buttons flex justify-content-end align-content-center align-items-center w-full h-2\">\r\n @if (blob) {\r\n <w-button (onClick)=\"deleteBlob()\" class=\"flex align-content-center align-items-center \" icon=\"pi-trash\"\r\n [label]=\"translationsImageCropper.delete\" type=\"text\">\r\n </w-button>\r\n }\r\n @if (fromModal) {\r\n <w-button (onClick)=\"cancelDialog()\" class=\"flex align-content-center align-items-center \" icon=\"pi-times\"\r\n [label]=\"translationsImageCropper.cancel\" type=\"text\">\r\n </w-button>\r\n }\r\n <w-button icon=\"pi-save\" (click)=\"saveImageCropped()\" [disabled]=\"!blob\" [label]=\"translationsImageCropper.save\"\r\n class=\"flex align-content-center align-items-center\" type=\"text\">\r\n </w-button>\r\n </div>\r\n</div>","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FileSizeService {\r\n private byteUnit = 1.048576; \r\n private bytes: number = 1000000;\r\n\r\n init(initialBytes: number){\r\n this.bytes = initialBytes;\r\n }\r\n\r\n formatSize(){\r\n this.bytes = Math.round(this.bytes * this.byteUnit);\r\n return this.bytes;\r\n }\r\n\r\n formatSizeMessage() {\r\n const k = 1024;\r\n const sizes = ['B','KB', 'MB', 'GB'];\r\n\r\n if (this.bytes === 0) {\r\n return `0 ${sizes[0]}`;\r\n }\r\n\r\n const i = Math.floor(Math.log(this.bytes) / Math.log(k));\r\n const locale: string = navigator.language;\r\n\r\n const formattedSize = (this.bytes / Math.pow(k, i)).toLocaleString(locale, {\r\n minimumFractionDigits: 0,\r\n maximumFractionDigits: 3,\r\n });\r\n\r\n return `${formattedSize} ${sizes[i]}`;\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, QueryList, SimpleChanges, ViewChild, ViewChildren } from '@angular/core';\r\nimport { WImageFileUploaderConfig } from '../../shared/models/w-image-file-uploader-config.model';\r\nimport { FileUpload } from 'primeng/fileupload';\r\nimport { ConfirmationService } from 'primeng/api';\r\nimport { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { ImageB64 } from '../../shared/models/image-b64.model';\r\nimport { WImageCropperComponent } from '../w-image-cropper/w-image-cropper.component';\r\nimport { WImageCropperData } from '../../shared/models/w-image-cropper-data.model';\r\nimport { WFileB64 } from '../../shared/models/w-file-b64.model';\r\nimport { TypeMedia } from '../../shared/models/enums.model';\r\nimport { FileSizeService } from '../../shared/services/file-size.service';\r\n\r\n@Component({\r\n selector: 'w-image-file-uploader',\r\n templateUrl: './w-image-file-uploader.component.html',\r\n styleUrls: ['./w-image-file-uploader.component.scss'],\r\n providers: [ConfirmationService],\r\n standalone: false\r\n})\r\nexport class WImageFileUploaderComponent implements OnInit, OnChanges {\r\n @Input('allowMultipleImages') allowMultipleImages: boolean = false;\r\n @Input('activeImageUpload') activeImageUpload: boolean = false;\r\n @Input('deactiveImageMethods') deactiveImageMethods: boolean = false;\r\n @Input('imagesAlreadyUploaded') imagesAlreadyUploaded: any[] = [];\r\n @Input('imageSingleMode') imageSingleMode: any;\r\n @Input('uploadUrl') uploadUrl!: string;\r\n @Input('updateUrl') updateUrl!: string;\r\n @Input('deleteUrl') deleteUrl!: string;\r\n @Input('headers') headers!: HttpHeaders;\r\n @Input('activePositionProperty') activePositionProperty: boolean = false;\r\n @Input('startPositionFromZero') startPositionFromZero: boolean = true;\r\n @Input('activeTypeMediaProperty') activeTypeMediaProperty: boolean = false;\r\n @Input('viewSingleMode') viewSingleMode: boolean = false;\r\n @Input('viewMultiMode') viewMultiMode: boolean = false;\r\n @Input('allowDeleteImage') allowDeleteImage: boolean = true;\r\n @Input('identificatorImageName') identificatorName: string = \"id\";\r\n @Input('identificatorImagesCollectionValue') identificatorValue: any = 0;\r\n @Input('imageUploadConfig') imageUploadConfig: WImageFileUploaderConfig = {\r\n imagePropertyNames: [],\r\n acceptImageTypes: \"image/*\",\r\n maxImageSize: 1000000,\r\n allowAuto: false,\r\n uploadButtonLabel: \"\",\r\n chooseButtonLabel: \"\",\r\n cancelButtonLabel: \"\",\r\n contentHeaderLabel: \"\",\r\n contentSubheaderLabel: \"\",\r\n deleteImageButtonLabel: \"\",\r\n croppedDialogTranslations: \"\",\r\n croppedImageConfiguration: {\r\n roundedCropper: false,\r\n configuredAspectRatio: 4/3,\r\n viewPortWidthPx: 400,\r\n viewPortHeihtPx: 500\r\n },\r\n confirmDeleteMessageLabel: \"\",\r\n confirmDeleteButtonLabel: \"\",\r\n invalidFileSizeMessageSummary: \"\",\r\n invalidFileSizeMessageDetail: \"\",\r\n invalidFileTypeMessageSummary: \"\",\r\n invalidFileTypeMessageDetail: \"\"\r\n }\r\n @Input('activeFieldVersion') activeFieldVersion: boolean = false;\r\n @Input('fieldVersionReduced') fieldVersionReduced: boolean = false;\r\n @Input('label') label!: string;\r\n @Input('tooltip') tooltip!: string;\r\n @Input() tooltipPosition?: string;\r\n @Input('required') required: boolean = false;\r\n @Input('customHeightImg') customHeightImg!: number;\r\n @Input('activeMessagesOverlay') activeMessagesOverlay: boolean = false;\r\n\r\n @Output('onUploadFinished') onUploadFinished: EventEmitter<any> = new EventEmitter<any>();\r\n @Output('onErrorHandler') onErrorHandler: EventEmitter<any> = new EventEmitter<any>();\r\n @Output('onReturnImagesB64') onReturnImagesB64: EventEmitter<any> = new EventEmitter<any>();\r\n @Output('onDeleteImage') onDeleteImage: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n @ViewChild('fileUpload') fileUpload!: FileUpload;\r\n\r\n @ViewChildren('buttonRemoveOnlyImage') buttonRemoveOnlyImage!: QueryList<ElementRef>;\r\n @ViewChild('fileUploadOnlyImage') fileuploadOnlyImage!: FileUpload;\r\n\r\n activeIndexGallery: number = 0;\r\n cropperImages: any[] = [];\r\n defaultWidth: string = \"w-18rem\";\r\n defaultHeight: string = \"h-18rem\";\r\n disableMoveButtons: boolean = false;\r\n isUploadingMultiMode: boolean = false;\r\n isDeletingMultiMode: boolean = false;\r\n actualMaxSize!: number;\r\n timelife: number = 5000;\r\n\r\n onlyImageSelected: any;\r\n onlyCroppedImageSelected: any = null;\r\n\r\n dimensionsInput!: WImageCropperData;\r\n carouselImagesResponsiveOptions: any[] = [\r\n {\r\n breakpoint: '1024px',\r\n numVisible: 4,\r\n numScroll: 4\r\n },\r\n {\r\n breakpoint: '850px',\r\n numVisible: 2,\r\n numScroll: 2\r\n },\r\n {\r\n breakpoint: '560px',\r\n numVisible: 1,\r\n numScroll: 1\r\n }\r\n ];\r\n\r\n constructor(\r\n private dialogService: DialogService,\r\n private http: HttpClient,\r\n private confirmationService: ConfirmationService, \r\n public fileSizeService: FileSizeService\r\n ){}\r\n\r\n ngOnInit(): void {\r\n this.fileSizeService.init(this.imageUploadConfig.maxImageSize);\r\n this.actualMaxSize = this.fileSizeService.formatSize();\r\n\r\n this.dimensionsInput = {\r\n roundedCropper: this.imageUploadConfig.croppedImageConfiguration.roundedCropper,\r\n configuredAspectRatio: this.imageUploadConfig.croppedImageConfiguration.configuredAspectRatio,\r\n viewPortWidthPx: this.imageUploadConfig.croppedImageConfiguration.viewPortWidthPx,\r\n viewPortHeihtPx: this.imageUploadConfig.croppedImageConfiguration.viewPortHeihtPx,\r\n maxFileSize: this.imageUploadConfig.maxImageSize\r\n }\r\n\r\n if(this.activeImageUpload == false && this.imagesAlreadyUploaded.length > 0){\r\n this.cropperImages.push(...this.imagesAlreadyUploaded);\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(changes['imageUploadConfig'] && changes['imageUploadConfig'].currentValue){\r\n this.imageUploadConfig = changes['imageUploadConfig'].currentValue;\r\n this.fileSizeService.init(this.imageUploadConfig.maxImageSize);\r\n this.actualMaxSize = this.fileSizeService.formatSize();\r\n }\r\n }\r\n\r\n readProperty(obj: any, prop:string):any {\r\n if(typeof obj === 'undefined') {\r\n return false;\r\n }\r\n\r\n var _index = prop.indexOf('.')\r\n if(_index > -1) {\r\n return this.readProperty(obj[prop.substring(0, _index)], prop.substr(_index + 1));\r\n }\r\n return obj[prop];\r\n }\r\n\r\n onCustomUploadSingleMode(event: any){ \r\n if(this.fileUpload?.msgs && this.fileUpload.msgs.length > 0){\r\n setTimeout(() => {\r\n this.fileUpload.msgs = [];\r\n }, this.timelife);\r\n }\r\n\r\n this.onlyImageSelected = event.currentFiles[0];\r\n if(this.onlyImageSelected){\r\n this.openModalCropper(this.onlyImageSelected, event.originalEvent);\r\n }\r\n }\r\n\r\n onCustomizeUploadFunctionSingleMode(event: any){\r\n if(this.activeImageUpload == true){\r\n if(this.onlyCroppedImageSelected){\r\n let base64Images: ImageB64[] = [{base64: this.onlyCroppedImageSelected.base64, name: this.onlyCroppedImageSelected.name}];\r\n\r\n this.http.post(this.uploadUrl, base64Images, { headers: this.headers }).subscribe({\r\n next: (imageUploaded: any) => {\r\n this.fileuploadOnlyImage.clear();\r\n this.onUploadFinished.emit(imageUploaded);\r\n },\r\n error: (error) => {\r\n this.fileuploadOnlyImage.uploading = false;\r\n this.onErrorHandler.emit(error);\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n removeImageSingleMode(event: Event, file: any) {\r\n event.stopPropagation();\r\n this.fileuploadOnlyImage.clear();\r\n this.onlyImageSelected = null;\r\n this.onlyCroppedImageSelected = null;\r\n this.imageSingleMode = null;\r\n this.onReturnImagesB64.emit(null);\r\n }\r\n\r\n moveImageToLeft(event: any){\r\n let indexToMove = this.findIndex(event);\r\n if(indexToMove > 0 && indexToMove < this.imagesAlreadyUploaded.length){\r\n const temp = this.imagesAlreadyUploaded[indexToMove];\r\n this.imagesAlreadyUploaded[indexToMove] = this.imagesAlreadyUploaded[ indexToMove - 1];\r\n this.imagesAlreadyUploaded[indexToMove - 1] = temp;\r\n\r\n this.imagesAlreadyUploaded = (this.activePositionProperty) ? this.addPositionProperty(this.imagesAlreadyUploaded) : this.imagesAlreadyUploaded;\r\n this.activeIndexGallery = indexToMove - 1;\r\n\r\n if(this.uploadUrl != undefined && this.identificatorValue !== 0 && this.deactiveImageMethods == false){\r\n this.disableMoveButtons = true;\r\n this.updateImage(this.imagesAlreadyUploaded);\r\n }else if(this.activeImageUpload == true && this.uploadUrl != undefined){\r\n this.onUploadFinished.emit(this.imagesAlreadyUploaded);\r\n }else{\r\n this.onReturnImagesB64.emit(this.getArraysToCreateAndToUpdate(this.imagesAlreadyUploaded));\r\n }\r\n }\r\n }\r\n\r\n moveImageToRight(event: any){\r\n let indexToMove = this.findIndex(event);\r\n if(indexToMove >= 0 && indexToMove < this.imagesAlreadyUploaded.length -1){\r\n const temp = this.imagesAlreadyUploaded[indexToMove];\r\n this.imagesAlreadyUploaded[indexToMove] = this.imagesAlreadyUploaded[ indexToMove + 1];\r\n this.imagesAlreadyUploaded[indexToMove + 1] = temp;\r\n\r\n this.imagesAlreadyUploaded = (this.activePositionProperty) ? this.addPositionProperty(this.imagesAlreadyUploaded) : this.imagesAlreadyUploaded;\r\n this.activeIndexGallery = indexToMove + 1;\r\n\r\n if(this.uploadUrl!=undefined && this.identificatorValue !== 0 && this.deactiveImageMethods == false){\r\n this.disableMoveButtons = true;\r\n this.updateImage(this.imagesAlreadyUploaded);\r\n }else if(this.activeImageUpload == true && this.uploadUrl != undefined){\r\n this.onUploadFinished.emit(this.imagesAlreadyUploaded);\r\n }else{\r\n this.onReturnImagesB64.emit(this.getArraysToCreateAndToUpdate(this.imagesAlreadyUploaded));\r\n }\r\n }\r\n }\r\n\r\n onCustomizeUploadFunctionMultiMode(event?: any){\r\n if(this.activeImageUpload == true){\r\n if(this.cropperImages.length > 0){\r\n let base64Images: ImageB64[] = this.mapToObjectB64(this.cropperImages);\r\n this.isUploadingMultiMode = true;\r\n\r\n this.http.post(this.uploadUrl, base64Images, { headers: this.headers }).subscribe({\r\n next: (imagesUploaded: any) => {\r\n this.imagesAlreadyUploaded.push(...imagesUploaded);\r\n this.imagesAlreadyUploaded = [...this.imagesAlreadyUploaded];\r\n\r\n if(this.imagesAlreadyUploaded.length == 1){\r\n this.activeIndexGallery = 0;\r\n }\r\n\r\n this.cropperImages = [];\r\n this.fileUpload.clear();\r\n\r\n this.imagesAlreadyUploaded = this.activePositionProperty ? this.addPositionProperty(this.imagesAlreadyUploaded) : this.imagesAlreadyUploaded;\r\n\r\n if(this.uploadUrl!=undefined && this.identificatorValue !== 0 && this.deactiveImageMethods == false){\r\n this.updateImage(this.imagesAlreadyUploaded);\r\n }else{\r\n this.onUploadFinished.emit(this.imagesAlreadyUploaded);\r\n }\r\n\r\n this.isUploadingMultiMode = false;\r\n },\r\n error: (error) => {\r\n this.isUploadingMultiMode = false;\r\n this.onErrorHandler.emit(error);\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n onCustomUploadMultiMode(event: any){ \r\n if(this.fileUpload?.msgs && this.fileUpload.msgs.length > 0){\r\n setTimeout(() => {\r\n this.fileUpload.msgs = [];\r\n }, this.timelife);\r\n }\r\n \r\n if(this.allowMultipleImages == true){\r\n event.currentFiles.forEach((file: any, index: number) => {\r\n let foundIt = this.cropperImages.find(f => f.name == file.name);\r\n let foundItAlreadyUploaded = this.imagesAlreadyUploaded.find(f => f.name == file.name);\r\n\r\n if(event.currentFiles.length == 0){\r\n this.openModalCropper(file, event.originalEvent);\r\n }else if(foundIt == undefined || foundItAlreadyUploaded == undefined){\r\n this.openModalCropper(file, event.originalEvent);\r\n }\r\n });\r\n\r\n if(this.imageUploadConfig.allowAuto == false){\r\n this.fileUpload.files = [];\r\n }\r\n }else{\r\n this.openModalCropper(event.currentFiles[0], event.originalEvent);\r\n }\r\n }\r\n\r\n onMessagesClosed(event: any){ \r\n this.fileUpload.msgs = [];\r\n }\r\n\r\n confirmDeleteImageMultiMode(event: any, image: any){\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.imageUploadConfig.confirmDeleteMessageLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this.imageUploadConfig.deleteImageButtonLabel,\r\n accept: () => {\r\n this.onDeleteImageMultiMode(image);\r\n }\r\n })\r\n }\r\n\r\n onDeleteFileMultiMode(event: any, file: File, uploader: FileUpload){\r\n const index = uploader.files.indexOf(file);\r\n uploader.remove(event, index);\r\n this.cropperImages = this.cropperImages.filter(s => !file.name.includes(s.name));\r\n }\r\n\r\n onDeleteImageMultiMode(image: any){\r\n this.isDeletingMultiMode = true;\r\n if(this.activeImageUpload && this.identificatorValue == 0){\r\n let deleteUrlFinal = this.deleteUrl+\"/\"+image[this.identificatorName];\r\n this.http.delete(deleteUrlFinal, {headers: this.headers}).subscribe({\r\n next: () => {\r\n this.getIndexToDelete(image);\r\n this.imagesAlreadyUploaded = this.imagesAlreadyUploaded.filter(img => (img.base64 !== image.base64) || (img[this.identificatorName] !== image[this.identificatorName]));\r\n this.imagesAlreadyUploaded = [...this.activePositionProperty ? this.addPositionProperty(this.imagesAlreadyUploaded) : this.imagesAlreadyUploaded];\r\n this.isDeletingMultiMode = false;\r\n this.onDeleteImage.emit({deletedImage: image, images: this.imagesAlreadyUploaded});\r\n },\r\n error: (error) => {\r\n this.isDeletingMultiMode = false;\r\n this.onErrorHandler.emit(error);\r\n this.onDeleteImage.emit(null);\r\n }\r\n })\r\n }else{\r\n this.getIndexToDelete(image);\r\n this.imagesAlreadyUploaded = this.imagesAlreadyUploaded.filter(img => (img.base64 !== image.base64) || (img[this.identificatorName] !== image[this.identificatorName]));\r\n this.imagesAlreadyUploaded = [...this.activePositionProperty ? this.addPositionProperty(this.imagesAlreadyUploaded) : this.imagesAlreadyUploaded];\r\n this.cropperImages = this.cropperImages.filter(img => (img.base64 !== image.base64) || (img.fileBase64 !== image.fileBase64) || (img[this.identificatorName] !== image[this.identificatorName]));\r\n\r\n if(image[this.identificatorName]){\r\n this.onDeleteImage.emit({deletedImage: image, images: this.imagesAlreadyUploaded});\r\n }\r\n \r\n this.onReturnImagesB64.emit(this.getArraysToCreateAndToUpdate(this.imagesAlreadyUploaded));\r\n this.isDeletingMultiMode = false;\r\n }\r\n }\r\n\r\n getIndexToDelete(image: any){\r\n let imageIndex = this.imagesAlreadyUploaded.findIndex(img => {\r\n const fileBase64Matches = img.fileBase64 !== undefined && img.fileBase64 === image.fileBase64;\r\n const identificatorNameMatches = img[this.identificatorName] !== undefined && img[this.identificatorName] === image[this.identificatorName];\r\n return fileBase64Matches || identificatorNameMatches;\r\n });\r\n\r\n if(imageIndex > 0){\r\n this.activeIndexGallery = imageIndex-1; \r\n }else{\r\n this.activeIndexGallery = 0; \r\n }\r\n }\r\n\r\n updateImage(imagesToUpdate: any[]): any{\r\n let updateUrlFinal = this.updateUrl.replace('{id}',this.identificatorValue);\r\n this.http.put(updateUrlFinal, imagesToUpdate, {headers: this.headers}).subscribe({\r\n next: (imagesUpdated: any) => {\r\n this.disableMoveButtons = false;\r\n this.imagesAlreadyUploaded = imagesUpdated;\r\n this.onUploadFinished.emit(this.imagesAlreadyUploaded);\r\n }\r\n });\r\n }\r\n\r\n openModalCropper(fileBlob: any, event?: any){\r\n const ref: DynamicDialogRef = this.dialogService.open(WImageCropperComponent, {\r\n header: this.imageUploadConfig.croppedDialogTranslations?.modal.header,\r\n width: '70rem',\r\n contentStyle: {\"overflow\": \"auto\", \"height\": \"auto\", \"padding-bottom\": \"8px\"},\r\n data: {dataModal: this.dimensionsInput, translations: this.imageUploadConfig.croppedDialogTranslations, blob: fileBlob},\r\n resizable: true\r\n })!;\r\n\r\n ref.onClose.subscribe((imageCropped: WFileB64) => {\r\n if(imageCropped){\r\n if(this.allowMultipleImages == false){\r\n this.onlyCroppedImageSelected = imageCropped;\r\n this.onReturnImagesB64.emit(this.mapToObjectB64(this.onlyCroppedImageSelected));\r\n }else{\r\n this.cropperImages.push(imageCropped);\r\n\r\n this.cropperImages = (this.activePositionProperty && this.activeImageUpload == false ) ? this.addPositionProperty(this.cropperImages) : this.cropperImages;\r\n\r\n if(this.activeImageUpload == false){\r\n this.imagesAlreadyUploaded.push(imageCropped);\r\n this.imagesAlreadyUploaded = [...this.imagesAlreadyUploaded];\r\n\r\n if(this.imagesAlreadyUploaded.length == 1){\r\n this.activeIndexGallery = 0;\r\n }\r\n\r\n this.onReturnImagesB64.emit(this.getArraysToCreateAndToUpdate(this.cropperImages));\r\n }else{\r\n this.onReturnImagesB64.emit(this.getArraysToCreateAndToUpdate(this.mapToObjectB64(this.cropperImages)));\r\n }\r\n }\r\n }else{\r\n if(this.allowMultipleImages){\r\n this.fileUpload._files = this.fileUpload._files.filter(f => !f.name.includes(fileBlob.name));\r\n let filesAux = this.fileUpload._files;\r\n this.fileUpload.clear();\r\n this.fileUpload._files = filesAux;\r\n }else{\r\n this.onlyImageSelected = null;\r\n this.fileuploadOnlyImage.clear();\r\n }\r\n }\r\n\r\n if((this.activeImageUpload == true) && (this.imageUploadConfig.allowAuto == true) && (this.cropperImages.length == this.fileUpload._files.length)){\r\n this.onCustomizeUploadFunctionMultiMode();\r\n }\r\n })\r\n }\r\n\r\n mapToObjectB64(images: any): ImageB64[]{\r\n if(Array.isArray(images) == false){\r\n return [{\r\n base64: images.base64,\r\n name: this.sanitizeImageName(images.name), \r\n fileBase64: images.fileBase64, \r\n ...(this.activePositionProperty ? { position: this.startPositionFromZero ? 0 : 1 } : null),\r\n ...(this.activeTypeMediaProperty ? { typeMedia: TypeMedia.Image} : null)\r\n }]\r\n }\r\n\r\n return images.map((img: any) => {\r\n return {\r\n base64: img.base64,\r\n name: this.sanitizeImageName(img.name), \r\n fileBase64: img.fileBase64, \r\n ...(this.activePositionProperty ? { position: this.startPositionFromZero ? 0 : 1 } : null),\r\n ...(this.activeTypeMediaProperty ? { typeMedia: TypeMedia.Image} : null)\r\n }\r\n });\r\n }\r\n\r\n sanitizeImageName(name: string){\r\n name = name\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n\r\n return name.replace(/[^a-zA-Z0-9\\-\\_\\.]/g, '_');\r\n }\r\n\r\n getArraysToCreateAndToUpdate(images: any[]){\r\n return {\r\n toCreate:\r\n images.filter((img) => img[this.identificatorName] == undefined),\r\n toUpdated:\r\n images.filter((img) => img.base64 == undefined)\r\n }\r\n }\r\n\r\n addPositionProperty(imagesArray: any[]){\r\n imagesArray = imagesArray.map((img, index) => ({\r\n ...img,\r\n position: index + (this.startPositionFromZero ? 0 : 1)\r\n }))\r\n\r\n return imagesArray;\r\n }\r\n\r\n onImageMouseOver(file: any) {\r\n this.buttonRemoveOnlyImage.toArray().forEach(btnRemove => {\r\n btnRemove.nativeElement.id === file.name ? btnRemove.nativeElement.style.display = 'flex' : null;\r\n })\r\n }\r\n\r\n onImageMouseLeave(file: any) {\r\n this.buttonRemoveOnlyImage.toArray().forEach(btnRemove => {\r\n btnRemove.nativeElement.id === file.name ? btnRemove.nativeElement.style.display = 'none' : null;\r\n })\r\n }\r\n\r\n findIndex(img: any){\r\n let i = this.imagesAlreadyUploaded.indexOf(img);\r\n return i != -1 ? i : 0;\r\n }\r\n\r\n openImageFileSelector(){\r\n this.fileUpload.choose();\r\n }\r\n\r\n openSingleImageFileSelector(){\r\n this.fileuploadOnlyImage.choose();\r\n }\r\n\r\n getGalleryClass(){\r\n if(this.activeFieldVersion == true){\r\n return 'w-image-file-uploader-gallery-field';\r\n }\r\n return 'w-image-file-uploader-gallery';\r\n }\r\n\r\n isValid(){\r\n if(this.required == true){\r\n if(this.allowMultipleImages == true){\r\n return this.imagesAlreadyUploaded.length > 0;\r\n }else{\r\n return (this.onlyCroppedImageSelected != null || this.onlyCroppedImageSelected != undefined) \r\n || (this.onlyImageSelected != null || this.onlyImageSelected != undefined) \r\n || (this.imageSingleMode != null || this.imageSingleMode != undefined);\r\n }\r\n }else{\r\n return true;\r\n }\r\n }\r\n\r\n getFileName(file: any){\r\n if(this.onlyImageSelected != null || this.onlyImageSelected != undefined){\r\n return this.sanitizeFileName(file.name);\r\n }else{\r\n return this.sanitizeFileName(file.split('/').pop());\r\n }\r\n }\r\n\r\n sanitizeFileName(name: string){\r\n name = name\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n\r\n return name.replace(/[^a-zA-Z0-9\\-\\_\\.]/g, '_');\r\n }\r\n}\r\n","@if (activeFieldVersion == true) {\r\n <w-input-label [label]=\"label\" [tooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition\" [required]=\"required\" [validated]=\"isValid()\"></w-input-label>\r\n @if (label != undefined && label.length > 0) {\r\n <div class=\"input-label-gap-divider\"></div>\r\n }\r\n}\r\n@if (allowMultipleImages == false) {\r\n <p-fileUpload #fileUploadOnlyImage class=\"w-image-file-button\"\r\n [ngClass]=\"{'w-image-file-uploader' : activeFieldVersion == false, \r\n 'w-image-file-uploader-no-image' : (onlyCroppedImageSelected == null || undefined ) && (imageSingleMode == null || undefined), \r\n 'w-image-file-uploader-field' : activeFieldVersion == true,\r\n 'w-image-file-uploader-field-no-image' : activeFieldVersion == true && (onlyCroppedImageSelected == null || undefined ) && (imageSingleMode == null || undefined)}\"\r\n mode=\"advanced\" [accept]=\"imageUploadConfig.acceptImageTypes\" [multiple]=\"false\"\r\n [invalidFileSizeMessageSummary]=\"imageUploadConfig.invalidFileSizeMessageSummary + ':'\"\r\n [invalidFileSizeMessageDetail]=\"imageUploadConfig.invalidFileSizeMessageDetail + ' ' + fileSizeService.formatSizeMessage() + '.'\"\r\n [invalidFileTypeMessageSummary]=\"imageUploadConfig.invalidFileTypeMessageSummary + ':'\"\r\n [invalidFileTypeMessageDetail]=\"imageUploadConfig.invalidFileTypeMessageDetail + ': {0}.'\"\r\n (onSelect)=\"onCustomUploadSingleMode($event)\"\r\n [uploadLabel]=\"onlyCroppedImageSelected ? (onlyCroppedImageSelected.name.length>6)? (onlyCroppedImageSelected.name | slice:0:6)+'...':(onlyCroppedImageSelected.name) : ''\"\r\n [customUpload]=\"true\" (uploadHandler)=\"onCustomizeUploadFunctionSingleMode($event)\"\r\n [maxFileSize]=\"actualMaxSize\" \r\n [styleClass]=\"activeMessagesOverlay ? 'w-image-file-message' : ''\">\r\n <ng-template pTemplate=\"content\" let-messages=\"messages\">\r\n @if (false) {\r\n <p-progressbar></p-progressbar>\r\n }\r\n @for (message of messages; track message) {\r\n <p-message [severity]=\"message.severity\" closable [life]=\"timelife\" (onClose)=\"onMessagesClosed($event)\">{{message.text}}</p-message>\r\n }\r\n @if ((onlyCroppedImageSelected != null || undefined) || (imageSingleMode != null || undefined)) {\r\n <p-galleria [ngClass]=\"getGalleryClass()\"\r\n [value]=\"(onlyCroppedImageSelected !== null) ? [onlyCroppedImageSelected.fileBase64] : (imageUploadConfig.singleModeImageDefault ? [imageUploadConfig.singleModeImageDefault] : (imageSingleMode ? [imageSingleMode] : ['https://wappingstoragedev.blob.core.windows.net/wapping/appresources/ic_image_blue.png']))\"\r\n [responsiveOptions]=\"carouselImagesResponsiveOptions\"\r\n [containerStyle]=\"{ 'max-width': '100%', 'max-height':'100%'}\" [numVisible]=\"1\"\r\n [showItemNavigators]=\"false\" [showThumbnails]=\"false\" [showIndicators]=\"false\">\r\n <ng-template #item let-item>\r\n <div class=\"w-image-file-uploader-delete-button\">\r\n @if(allowDeleteImage == true){\r\n <w-button buttonClass=\"w-image-file-uploader-delete-button-icon\" icon=\"pi pi-trash\" type=\"text\" (click)=\"removeImageSingleMode($event, onlyImageSelected)\"></w-button>\r\n }\r\n </div>\r\n <div class=\"image-container\"\r\n [ngStyle]=\"{'height': activeFieldVersion ? '280px' : customHeightImg ? customHeightImg + 'px' : 'auto'}\">\r\n <img [src]=\"item\"/>\r\n </div>\r\n </ng-template>\r\n </p-galleria>\r\n }\r\n @if (viewSingleMode == false) {\r\n <div (click)=\"openSingleImageFileSelector()\"\r\n class=\"w-image-file-uploader-space-container flex flex-column justify-content-center align-items-center\"\r\n style=\"cursor: pointer; gap: 0px;\"\r\n [ngClass]=\"{'w-image-file-uploader-container-height w-image-file-uploader-container-bottom' : (onlyCroppedImageSelected == null || undefined ) && (imageSingleMode == null || undefined) && activeFieldVersion == false, 'w-image-file-uploader-field-container-height' : activeFieldVersion == true && (onlyCroppedImageSelected == null || undefined ) && (imageSingleMode == null || undefined), 'no-reduced': !fieldVersionReduced, \r\n 'w-image-file-uploader-container-bottom': onlyCroppedImageSelected != null || fieldVersionReduced}\">\r\n <span class=\"pi pi-upload subtitle1 textMainColor\"></span>\r\n <span class=\"subtitle1 textMainColor m-0\">\r\n {{imageUploadConfig.contentHeaderLabel}}\r\n </span>\r\n <span class=\"body textMainColor m-0\">\r\n {{ imageUploadConfig.contentSubheaderLabel }}\r\n </span>\r\n </div>\r\n } @else {\r\n @if (imageSingleMode == null || undefined) {\r\n <div class=\"textSoftColor flex justify-content-center align-items-center w-image-file-uploader-container-height\">\r\n {{imageUploadConfig.viewModecontentLabel}}\r\n </div>\r\n }\r\n }\r\n </ng-template>\r\n </p-fileUpload>\r\n} @else {\r\n <p-fileupload #fileUpload class=\"w-image-file-button\"\r\n [ngClass]=\"{'w-image-file-uploader' : activeFieldVersion == false, \r\n 'w-image-file-uploader-no-image' : (imagesAlreadyUploaded.length == 0 || undefined ) || (imagesAlreadyUploaded == null || undefined), \r\n 'w-image-file-uploader-field' : activeFieldVersion == true,\r\n 'w-image-file-uploader-field-no-image' : activeFieldVersion == true && (imagesAlreadyUploaded.length == 0 || undefined ) || (imagesAlreadyUploaded == null || undefined)}\"\r\n name=\"mediaImages[]\"\r\n [accept]=\"imageUploadConfig.acceptImageTypes\"\r\n mode=\"advanced\"\r\n [customUpload]=\"true\"\r\n (onSelect)=\"onCustomUploadMultiMode($event)\"\r\n (uploadHandler)=\"onCustomizeUploadFunctionMultiMode($event)\"\r\n [uploadLabel]=\"imageUploadConfig.uploadButtonLabel ?? ''\"\r\n [chooseLabel]=\"imageUploadConfig.chooseButtonLabel ?? ''\"\r\n [cancelLabel]=\"imageUploadConfig.cancelButtonLabel ?? ''\"\r\n [showUploadButton]=\"activeImageUpload\"\r\n [showCancelButton]=\"activeImageUpload\"\r\n [auto]=\"imageUploadConfig.allowAuto\"\r\n [multiple]=\"true\"\r\n [maxFileSize]=\"actualMaxSize\"\r\n [invalidFileSizeMessageSummary]=\"imageUploadConfig.invalidFileSizeMessageSummary + ':'\"\r\n [invalidFileSizeMessageDetail]=\"imageUploadConfig.invalidFileSizeMessageDetail + ' ' + fileSizeService.formatSizeMessage() + '.'\"\r\n [invalidFileTypeMessageSummary]=\"imageUploadConfig.invalidFileTypeMessageSummary + ':'\"\r\n [invalidFileTypeMessageDetail]=\"imageUploadConfig.invalidFileTypeMessageDetail + ': {0}.'\" \r\n [styleClass]=\"activeMessagesOverlay ? 'w-image-file-message' : ''\"\r\n [chooseStyleClass]=\"'p-button-icon p-button-icon-right'\"> \r\n <ng-template let-files let-i=\"index\" let-messages=\"messages\" #content>\r\n @for (message of messages; track message) {\r\n <p-message [severity]=\"message.severity\" closable [life]=\"timelife\" (onClose)=\"onMessagesClosed($event)\">{{message.text}}</p-message>\r\n }\r\n @if (isUploadingMultiMode) {\r\n <p-progressbar class=\"p-element ng-star-inserted\" [mode]=\"'indeterminate'\">\r\n <div role=\"progressbar\" aria-valuemin=\"0\" aria-valuenow=\"0\" aria-valuemax=\"100\" data-pc-name=\"progressbar\"\r\n data-pc-section=\"root\" class=\"p-progressbar p-component p-progressbar-determinate\">\r\n <div class=\"p-progressbar-value p-progressbar-value-animate ng-star-inserted\"\r\n style=\"display: flex; width: 0%;\" data-pc-section=\"value\"></div>\r\n </div>\r\n </p-progressbar>\r\n }\r\n\r\n @if (activeImageUpload && cropperImages.length > 0) {\r\n <div class=\"w-image-file-loader\">\r\n @for (file of files; track file.name; let i = $index) {\r\n <div class=\"container\">\r\n <div class=\"image\">\r\n <img role=\"presentation\" [alt]=\"file.name\" [src]=\"file.objectURL\" width=\"50\"/>\r\n </div>\r\n <span class=\"font-semibold text-ellipsis max-w-60 whitespace-nowrap overflow-hidden\">{{ file.name }}</span>\r\n <div>{{ file.size }}</div>\r\n <w-button icon=\"pi pi-times\" type=\"text\" buttonClass=\"w-table-button w-table-button-delete\" (onClick)=\"onDeleteFileMultiMode($event, file, fileUpload)\"></w-button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n @if (imagesAlreadyUploaded.length > 0) {\r\n <p-galleria [ngClass]=\"getGalleryClass()\"\r\n [value]=\"imagesAlreadyUploaded\" \r\n [(activeIndex)]=\"activeIndexGallery\"\r\n [responsiveOptions]=\"carouselImagesResponsiveOptions\" \r\n [containerStyle]=\"{ 'max-width': '100%', 'max-height':'100%'}\"\r\n [numVisible]=\"1\" \r\n [showThumbnailNavigators]=\"false\" \r\n [showItemNavigators]=\"true\">\r\n <ng-template #item let-item>\r\n <div class=\"w-image-file-uploader-delete-button\">\r\n @if(allowDeleteImage == true){\r\n <w-button buttonClass=\"w-image-file-uploader-delete-button-icon\" icon=\"pi pi-trash\" type=\"text\" (onClick)=\"confirmDeleteImageMultiMode($event, item)\" [loading]=\"isDeletingMultiMode\"></w-button>\r\n }\r\n </div>\r\n <div class=\"image-container\"\r\n [ngStyle]=\"{'height': activeFieldVersion ? '280px' : customHeightImg ? customHeightImg + 'px' : 'auto'}\">\r\n <img [src]=\"readProperty(item, imageUploadConfig.imagePropertyNames[0]) ?? item.fileBase64\"/>\r\n </div>\r\n <div class=\"w-image-file-uploader-move-buttons\">\r\n @if (viewMultiMode == false && activePositionProperty == true) {\r\n <div class=\"w-image-file-uploader-multi-action-button\"\r\n [ngClass]=\"{'w-image-file-uploader-hide-move-button' : findIndex(item) == 0 || disableMoveButtons}\"\r\n (click)=\"moveImageToLeft(item)\">\r\n <w-icons name=\"doubleArrowLeft\" class=\"w-image-file-uploader-arrow\" [height]=\"10\" [width]=\"10\"\r\n [color]=\"'white'\"></w-icons>\r\n </div>\r\n }\r\n @if (isDeletingMultiMode == false) {\r\n <div class=\"w-image-file-uploader-multi-images-index flex align-items-center justify-content-center\">\r\n {{ findIndex(item) + 1 }} / {{ imagesAlreadyUploaded.length }}\r\n </div>\r\n } @else {\r\n <div class=\"w-image-file-uploader-multi-images-index flex align-items-center justify-content-center\"> - / - </div>\r\n }\r\n @if (viewMultiMode == false && activePositionProperty == true) {\r\n <div class=\"w-image-file-uploader-multi-action-button\"\r\n [ngClass]=\"{'w-image-file-uploader-hide-move-button' : (findIndex(item) == imagesAlreadyUploaded.length-1) || disableMoveButtons}\"\r\n (click)=\"moveImageToRight(item)\">\r\n <w-icons name=\"doubleArrowRight\" class=\"w-image-file-uploader-arrow\" [height]=\"10\" [width]=\"10\"\r\n [color]=\"'white'\"></w-icons>\r\n </div>\r\n }\r\n </div>\r\n </ng-template>\r\n </p-galleria>\r\n }\r\n\r\n @if (viewMultiMode == false) {\r\n <div (click)=\"openImageFileSelector()\"\r\n class=\"w-image-file-uploader-space-container flex flex-column justify-content-center align-items-center\"\r\n style=\"cursor: pointer; gap: 0px;\"\r\n [ngClass]=\"{'w-image-file-uploader-container-height' : (imagesAlreadyUploaded.length == 0 || undefined ) || (imagesAlreadyUploaded == null || undefined) && activeFieldVersion == false, 'w-image-file-uploader-field-container-height' : activeFieldVersion == true && (imagesAlreadyUploaded.length == 0 || undefined ) || (imagesAlreadyUploaded == null || undefined), 'no-reduced': !fieldVersionReduced, \r\n 'w-image-file-uploader-container-bottom' : imagesAlreadyUploaded.length > 0 || fieldVersionReduced}\">\r\n <span class=\"pi pi-upload subtitle1 textMainColor\"></span>\r\n <span class=\"subtitle1 textMainColor m-0\">\r\n {{imageUploadConfig.contentHeaderLabel}}\r\n </span>\r\n <span class=\"body textMainColor m-0\">\r\n {{ imageUploadConfig.contentSubheaderLabel }}\r\n </span>\r\n </div>\r\n } @else {\r\n @if (imagesAlreadyUploaded.length == 0) {\r\n <div class=\"w-image-file-uploader-view-mode-no-content textSoftColor\">\r\n {{imageUploadConfig.viewModecontentLabel}}\r\n </div>\r\n }\r\n }\r\n </ng-template>\r\n </p-fileupload>\r\n}\r\n\r\n<p-confirmpopup></p-confirmpopup>\r\n","import { Component, ElementRef, EventEmitter, HostListener, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { EmbedConfig } from '../../shared/models/embed-config.model';\r\nimport { Embed, IReportEmbedConfiguration, Report, models, service } from 'powerbi-client';\r\nimport { PowerBIReportEmbedComponent } from 'powerbi-client-angular';\r\n\r\n@Component({\r\n selector: 'w-powerbi-report',\r\n templateUrl: './w-powerbi-report.component.html',\r\n styleUrls: ['./w-powerbi-report.component.css'],\r\n standalone: false\r\n})\r\nexport class WPowerbiReportComponent implements OnInit {\r\n\r\n @Input('embedConfig') embedConfig!: EmbedConfig;\r\n @Input('reportTitle') reportTitle!: string;\r\n @Input('hasReportFilters') hasReportFilters: boolean = false;\r\n @Input('parameterReportFilters') parameterReportFilters!: string;\r\n @Input('showReportFilters') showReportFilters: boolean = false;\r\n @Input('filterPanelPosition') filterPanelPosition: string = \"bottom\";\r\n @Input('showPageNavigation') showPageNavigation: boolean = false;\r\n @Input('showPrintButton') showPrintButton: boolean = false;\r\n @Input('showFullScreenButton') showFullScreenButton: boolean = false;\r\n @Input('showVisualHeaders') showVisualHeaders: boolean = true;\r\n @Input('showRefreshButton') showRefreshButton: boolean = false;\r\n @Input('height') height: string = '810px';\r\n @Input('filters') filters!: models.IFilter[];\r\n @Input('isEmbedTokenType') isEmbedTokenType: boolean = false;\r\n // @Input('zoomRatio') zoomRatio: number = 0.00175;\r\n\r\n @Output('refreshNotAllowed') refreshNotAllowed = new EventEmitter<boolean>();\r\n\r\n powerbiReportWidth!: number;\r\n private _zoom!: number;\r\n\r\n @Input() set zoom(value: number) {\r\n this._zoom = value;\r\n this.setReportZoom(this._zoom);\r\n }\r\n\r\n get zoom(): number {\r\n return this._zoom;\r\n }\r\n reportClass = 'report-container';\r\n\r\n reportConfig: IReportEmbedConfiguration = {\r\n type: 'report',\r\n embedUrl: undefined,\r\n accessToken: undefined,\r\n filters: undefined,\r\n settings: {\r\n layoutType: models.LayoutType.Custom,\r\n customLayout: {\r\n displayOption: models.DisplayOption.FitToWidth\r\n },\r\n background: models.BackgroundType.Transparent\r\n }\r\n };\r\n\r\n eventHandlersMap = new Map([\r\n ['loaded', () => {\r\n const report = this.reportObj.getReport();\r\n report.setComponentTitle('Embedded report');\r\n if (this.filters) {\r\n this.updateFilters(this.filters);\r\n } \r\n },\r\n ],\r\n ['rendered', () => {\r\n }],\r\n ['error', (event?: service.ICustomEvent<any>) => {\r\n if (event) {\r\n console.error(event.detail);\r\n }\r\n },\r\n ],\r\n ['visualClicked', () => { }],\r\n ['pageChanged', (event) => { }],\r\n ]) as Map<string, (event?: service.ICustomEvent<any>, embeddedEntity?: Embed) => void | null>;\r\n\r\n @ViewChild(PowerBIReportEmbedComponent) reportObj!: PowerBIReportEmbedComponent;\r\n\r\n // @HostListener('window:resize', ['$event'])\r\n // onResize(event: any) {\r\n // this.getReportDivWidth();\r\n // }\r\n\r\n constructor(private elementRef: ElementRef) { }\r\n\r\n ngOnInit(): void {\r\n this.embedReport();\r\n this.elementRef.nativeElement.style.setProperty(\"--height\", this.height)\r\n }\r\n\r\n // getReportDivWidth() {\r\n // this.powerbiReportWidth = this.elementRef.nativeElement.querySelector('#powerbiContainer').offsetWidth;\r\n // this.setReportZoom(this.powerbiReportWidth * this.zoomRatio);\r\n // }\r\n\r\n async embedReport(): Promise<void> {\r\n try {\r\n this.reportConfig = {\r\n ...this.reportConfig,\r\n id: this.embedConfig!.id,\r\n embedUrl: this.embedConfig!.embedUrl,\r\n tokenType: this.isEmbedTokenType ? models.TokenType.Embed : models.TokenType.Aad,\r\n accessToken: this.embedConfig!.embedToken.token,\r\n filters: this.parameterReportFilters ? JSON.parse(this.parameterReportFilters) : undefined,\r\n settings: {\r\n panes: {\r\n filters: {\r\n visible: this.showReportFilters\r\n },\r\n pageNavigation: {\r\n visible: this.showPageNavigation\r\n },\r\n },\r\n visualSettings: {\r\n visualHeaders: [\r\n {\r\n settings: {\r\n visible: this.showVisualHeaders\r\n }\r\n }\r\n ]\r\n },\r\n customLayout: {\r\n displayOption: models.DisplayOption.FitToWidth\r\n },\r\n background: models.BackgroundType.Transparent\r\n }\r\n };\r\n } catch (error: any) {\r\n console.log(`Failed to fetch config for report. Status: ${error.status} ${error.statusText}`);\r\n return;\r\n }\r\n }\r\n\r\n async refresh() {\r\n const report: Report = this.reportObj.getReport();\r\n try {\r\n await report.refresh();\r\n } catch (errors: any) {\r\n console.log(errors);\r\n if (errors.message = \"refreshNotAllowed\") this.onRefreshNotAllowed();\r\n }\r\n }\r\n\r\n async updateFilters(filters: models.IFilter[]) {\r\n try {\r\n const report: Report = this.reportObj.getReport();\r\n await report.removeFilters();\r\n await report.updateFilters(models.FiltersOperations.Add, filters);\r\n } catch (error: any) {\r\n console.error(error);\r\n if (error.message = \"refreshNotAllowed\") this.onRefreshNotAllowed();\r\n return;\r\n }\r\n }\r\n\r\n async setReportZoom(zoom: number) {\r\n try {\r\n const report: Report = this.reportObj.getReport();\r\n await report.setZoom(zoom);\r\n } catch (error) {\r\n console.log(\"Error setting report zoom: \" + error)\r\n }\r\n }\r\n\r\n print() {\r\n const report: Report = this.reportObj.getReport();\r\n report.print();\r\n }\r\n\r\n enterFullScreen() {\r\n const report: Report = this.reportObj.getReport();\r\n report.fullscreen();\r\n }\r\n\r\n onRefreshNotAllowed() {\r\n this.refreshNotAllowed.emit(true);\r\n }\r\n}\r\n","@if (reportTitle || showPrintButton || showFullScreenButton) {\r\n <div class=\"flex justify-content-between flex-wrap\">\r\n <div class=\"flex align-items-center justify-content-center\">\r\n </div>\r\n <div class=\"flex align-items-center justify-content-center\">\r\n <div class=\"text-right\">\r\n @if (showRefreshButton) {\r\n <p-button icon=\"pi pi-refresh\"\r\n styleClass=\"p-button-rounded p-button-secondary p-button-text\"\r\n (onClick)=\"refresh()\">\r\n </p-button>\r\n }\r\n @if (showPrintButton) {\r\n <p-button icon=\"pi pi-print\"\r\n styleClass=\"p-button-rounded p-button-secondary p-button-text\"\r\n (onClick)=\"print()\">\r\n </p-button>\r\n }\r\n @if (showFullScreenButton) {\r\n <p-button icon=\"pi pi-arrows-alt\"\r\n styleClass=\"p-button-rounded p-button-secondary p-button-text\"\r\n (onClick)=\"enterFullScreen()\">\r\n </p-button>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n\r\n@if (filterPanelPosition == 'right') {\r\n <div class=\"grid\">\r\n <div class=\"col-12 md:col-12 lg:col-8\">\r\n <ng-container *ngTemplateOutlet=\"powerbiReport\"></ng-container>\r\n </div>\r\n <div class=\"col-12 md:col-12 lg:col-4\">\r\n @if (hasReportFilters) {\r\n <ng-content select=\".report-filters-right\"></ng-content>\r\n }\r\n </div>\r\n </div>\r\n}\r\n\r\n@if (filterPanelPosition == 'left') {\r\n <div class=\"grid\">\r\n <div class=\"col-12 md:col-12 lg:col-8\">\r\n @if (hasReportFilters) {\r\n <ng-content select=\".report-filters-left\"></ng-content>\r\n }\r\n </div>\r\n <div class=\"col-12 md:col-12 lg:col-4\">\r\n <ng-container *ngTemplateOutlet=\"powerbiReport\"></ng-container>\r\n </div>\r\n </div>\r\n}\r\n\r\n@if (filterPanelPosition == 'bottom') {\r\n <div>\r\n <ng-container *ngTemplateOutlet=\"powerbiReport\"></ng-container>\r\n @if (hasReportFilters) {\r\n <ng-content select=\".report-filters-bottom\"></ng-content>\r\n }\r\n </div>\r\n}\r\n\r\n<ng-template #powerbiReport>\r\n <div id=\"powerbiContainer\">\r\n <powerbi-report [embedConfig]=\"reportConfig\"\r\n [cssClassName]=\"reportClass\"\r\n [eventHandlers]=\"eventHandlersMap\">\r\n </powerbi-report>\r\n </div>\r\n</ng-template>","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { IconType } from '../../shared/enums/enum';\r\nimport { Drawer } from 'primeng/drawer';\r\n\r\n@Component({\r\n selector: 'w-sidebar',\r\n templateUrl: './w-sidebar.component.html',\r\n styleUrls: ['./w-sidebar.component.scss'],\r\n standalone: false\r\n})\r\nexport class WSidebarComponent implements OnInit {\r\n @Input('headerTitle') headerTitle!: string;\r\n @Input('showCloseIcon') showCloseIcon: boolean = false; \r\n @Input('activeGrid') activeGrid: boolean = false;\r\n @Input('activeStaticContent') activeStaticContent: boolean = false;\r\n @Input('closeOnOverlay') closeOnOverlay: boolean = false;\r\n @Input('closeOnEscape') closeOnEscape: boolean = true;\r\n @Input('styleClass') styleClass: string = \"w-sidebar w-full md:w-4 lg:w-4\";\r\n @Input('size') size: string = \"medium\";\r\n @Input('icon') icon!: string ;\r\n @Input('iconWidth') iconWidth: number = 40; \r\n @Input('iconHeight') iconHeight: number = 40; \r\n @Input('titleTabActive') titleTabActive: boolean = false; \r\n\r\n iconType: typeof IconType = IconType;\r\n \r\n @Output() visibleChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n private _visible: boolean = false;\r\n @Input()\r\n get visible(): boolean {\r\n return this._visible;\r\n }\r\n\r\n set visible(value: boolean) {\r\n if (value !== this._visible) {\r\n this._visible = value;\r\n this.visibleChange.emit(this._visible);\r\n }\r\n }\r\n @ViewChild('drawer') drawer!: Drawer;\r\n\r\n constructor(){}\r\n \r\n ngOnInit(): void {\r\n if(this.size == 'big') {\r\n this.styleClass = this.styleClass + \" w-sidebar w-full md:w-6 lg:w-6\"\r\n } \r\n \r\n this.styleClass = this.styleClass + (this.titleTabActive ? ' hide-header' : '');\r\n this.styleClass = this.styleClass + (this.activeStaticContent ? ' auto-height' : '');\r\n }\r\n\r\n onClose(event: any) {\r\n this.visible = false;\r\n this.drawer.close(event)\r\n }\r\n\r\n getIconType(){\r\n if(this.icon.includes(\"pi pi-\")){\r\n return IconType.pIcon;\r\n }else if(this.isURL(this.icon)){\r\n return IconType.urlIcon;\r\n }else {\r\n return IconType.wIcon;\r\n }\r\n }\r\n\r\n private isURL(url: string) {\r\n const patronURL = /^(ftp|http|https):\\/\\/[^ \"]+$/;\r\n return patronURL.test(url);\r\n }\r\n}\r\n","<!-- <p-drawer [(visible)]=\"visible\" position=\"right\" [showCloseIcon]=\"showCloseIcon\" [modal]=\"true\" [blockScroll]=\"true\" [dismissible]=\"closeOnOverlay\" [closeOnEscape]=\"closeOnEscape\"\r\n [styleClass]=\"styleClass\" class=\"wapp-sidebar\" [ngClass]=\"{'hide-header': titleTabActive, 'auto-height': activeStaticContent}\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"flex\">\r\n @if (icon && getIconType() == iconType.pIcon) {\r\n <span class=\"w-sidebar-icon icon-large-size textMainColor\" [ngClass]=\"icon\"></span>\r\n }\r\n @if (icon && getIconType() == iconType.wIcon) {\r\n <w-icons class=\"w-sidebar-icon\" [name]=\"icon\" color=\"var(--text-color)\" [width]=\"24\" [height]=\"24\"></w-icons>\r\n }\r\n @if (icon && getIconType() == iconType.urlIcon) {\r\n <div class=\"flex align-content-start flex-wrap\">\r\n <div class=\"flex align-items-center justify-content-center w-sidebar-img-container\">\r\n <span class=\"w-sidebar-span-img-container w-sidebar-icon flex align-items-center justify-content-center\" [ngStyle]=\"{'width.px': iconWidth, 'height.px': iconHeight}\">\r\n <img class=\"w-sidebar-img-responsive\" [src]=\"icon\">\r\n </span>\r\n </div>\r\n <div class=\"flex align-items-center justify-content-center\">\r\n <span class=\"w-sidebar-title-text m-0\">{{headerTitle}}</span>\r\n </div>\r\n </div>\r\n }\r\n @if (icon == null || getIconType() != iconType.urlIcon) {\r\n <span class=\"w-sidebar-title-text m-0\">{{headerTitle}}</span>\r\n }\r\n </div>\r\n @if (activeStaticContent) {\r\n <div class=\"w-sidebar-static-content\">\r\n <ng-content select=\".static-content\"></ng-content>\r\n </div>\r\n }\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"content\">\r\n <div [ngClass]=\"{'w-sidebar-content grid' : activeGrid}\">\r\n <ng-content></ng-content>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"footer\"></ng-template>\r\n</p-drawer>\r\n -->\r\n\r\n<p-drawer #drawer [(visible)]=\"visible\" position=\"right\" [showCloseIcon]=\"showCloseIcon\" [modal]=\"true\" [blockScroll]=\"true\" [dismissible]=\"closeOnOverlay\" [closeOnEscape]=\"closeOnEscape\"\r\n [styleClass]=\"styleClass\" [ngClass]=\"{'hide-header': titleTabActive, 'auto-height': activeStaticContent}\">\r\n <ng-template #header>\r\n <div class=\"flex\">\r\n @if (icon && getIconType() == iconType.pIcon) {\r\n <span class=\"w-sidebar-icon icon-large-size textMainColor\" [ngClass]=\"icon\"></span>\r\n }\r\n @if (icon && getIconType() == iconType.wIcon) {\r\n <w-icons class=\"w-sidebar-icon\" [name]=\"icon\" color=\"var(--text-color)\" [width]=\"24\" [height]=\"24\"></w-icons>\r\n }\r\n @if (icon && getIconType() == iconType.urlIcon) {\r\n <div class=\"flex align-content-start flex-wrap\">\r\n <div class=\"flex align-items-center justify-content-center w-sidebar-img-container\">\r\n <span class=\"w-sidebar-span-img-container w-sidebar-icon flex align-items-center justify-content-center\" [ngStyle]=\"{'width.px': iconWidth, 'height.px': iconHeight}\">\r\n <img class=\"w-sidebar-img-responsive\" [src]=\"icon\">\r\n </span>\r\n </div>\r\n <div class=\"flex align-items-center justify-content-center\">\r\n <span class=\"w-sidebar-title-text m-0\">{{headerTitle}}</span>\r\n </div>\r\n </div>\r\n }\r\n @if (icon == null || getIconType() != iconType.urlIcon) {\r\n <span class=\"w-sidebar-title-text m-0\">{{headerTitle}}</span>\r\n }\r\n </div>\r\n @if (activeStaticContent) {\r\n <div class=\"w-sidebar-static-content\">\r\n <ng-content select=\".static-content\"></ng-content>\r\n </div>\r\n }\r\n </ng-template>\r\n <ng-template #content>\r\n <div [ngClass]=\"{'w-sidebar-content grid' : activeGrid}\">\r\n <ng-content></ng-content>\r\n </div>\r\n </ng-template>\r\n <ng-template #footer></ng-template>\r\n</p-drawer>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-buttons-footer',\r\n templateUrl: './w-buttons-footer.component.html',\r\n styleUrls: ['./w-buttons-footer.component.scss'],\r\n standalone: false\r\n})\r\nexport class WButtonsFooterComponent {\r\n\r\n}\r\n","<div class=\"flex flex-row-reverse flex-wrap right-0 bottom-0 fixed wapp-button-footer\">\r\n <ng-content select=\".wapp-buttons-footer\"></ng-content>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { ConfirmationService, MessageService, TreeDragDropService, TreeNode } from 'primeng/api';\r\nimport { TreeTable } from 'primeng/treetable';\r\nimport { ActionButtonResponse, WTreeTable } from '../../shared/models/w-tree-table.model';\r\nimport { TableColumnTypes, WDatePipeFormatType, WappTableColumnAlignTypes } from '../../shared/models/enums.model';\r\nimport { DateConversionService } from '../../shared/services/date-conversion.service';\r\n\r\n@Component({\r\n selector: 'w-tree-table',\r\n templateUrl: './w-tree-table.component.html',\r\n styleUrls: ['./w-tree-table.component.scss'],\r\n providers: [TreeDragDropService, MessageService, ConfirmationService],\r\n standalone: false\r\n})\r\nexport class WTreeTableComponent implements OnInit, OnChanges {\r\n\r\n loadingElements: boolean = true;\r\n collapsedElementTree: boolean = true;\r\n columns: any;\r\n openSidebar: boolean = false;\r\n elementInfo!: any;\r\n tableSkeletons: any = [{name: ''}, {name: ''}, {name: ''}, {name: ''}];\r\n wappDateFormat: typeof WDatePipeFormatType = WDatePipeFormatType;\r\n\r\n private _totalRecords: number = 0;\r\n\r\n set totalRecords(value: number) {\r\n this._totalRecords = value;\r\n } \r\n\r\n get totalRecords() {\r\n return this._totalRecords;\r\n }\r\n\r\n private _elements: any;\r\n \r\n @Input('elements') set elements(value: any) {\r\n this._elements = value;\r\n };\r\n get elements() {\r\n return this._elements;\r\n }\r\n @Input('rowsPerPage') rowsPerPage: number = 0;\r\n originalRowsPerPage: number = 0;\r\n @Input('loading') loading: boolean = true;\r\n @Input('wappTreeTableObject') wappTreeTableObject!: WTreeTable;\r\n @Input() getChildFunction!: (element: any) => any[] | null;\r\n\r\n @Output('onActionButtonClick') onActionButtonClick = new EventEmitter<ActionButtonResponse>();\r\n @Output('onDeleteElementSelect') onDeleteElementSelect = new EventEmitter<any>();\r\n @Output('onCantDeleteElementWarn') onCantDeleteElementWarn = new EventEmitter<boolean>();\r\n \r\n @ViewChild('treeTable') treeTable!: TreeTable;\r\n\r\n constructor(\r\n private confirmationService: ConfirmationService, \r\n public dateConversionService: DateConversionService \r\n ) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes?.['rowsPerPage'] && changes?.['rowsPerPage'].currentValue !== changes?.['rowsPerPage'].previousValue) {\r\n if (this.originalRowsPerPage === 0 && changes?.['rowsPerPage'].currentValue !== 0) {\r\n this.originalRowsPerPage = changes?.['rowsPerPage'].currentValue;\r\n }\r\n }\r\n\r\n if (changes?.['elements'] && changes?.['elements']?.currentValue.length != 0) {\r\n this.totalRecords = changes?.['elements']?.currentValue.length;\r\n if (this.rowsPerPage === 0 && this.elements) {\r\n this.rowsPerPage = Math.min(this.elements.length, 10);\r\n } else if ((this.rowsPerPage > this.elements.length) || this.elements.length === 0) {\r\n this.rowsPerPage = Math.max(this.elements.length, 0);\r\n }else if(this.elements.length > this.rowsPerPage){\r\n if(this.originalRowsPerPage === 0){\r\n this.rowsPerPage = Math.min(this.elements.length, 10);\r\n }else if(this.rowsPerPage < this.originalRowsPerPage){\r\n this.rowsPerPage = this.elements.length;\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.initComponent();\r\n }\r\n\r\n initComponent() {\r\n this.columns = this.wappTreeTableObject.columns;\r\n }\r\n\r\n filterGlobal(table: TreeTable, event: any) {\r\n table.filterGlobal((event.target as HTMLInputElement).value, 'contains')\r\n }\r\n\r\n actionButtonClicked(id: number, element: any) {\r\n this.onActionButtonClick.emit({id: id, element: element})\r\n }\r\n\r\n confirmDeleteSelected(event: any, data: any) {\r\n this.confirmationService.confirm({\r\n target: event.target as EventTarget,\r\n message: this.wappTreeTableObject.confirmSingleDeleteLabel,\r\n icon: \"pi pi-exclamation-triangle\",\r\n acceptLabel: this.wappTreeTableObject.confirmDeleteBtnLabel,\r\n accept: () => {\r\n this.deleteNode(data);\r\n }\r\n });\r\n }\r\n\r\n deleteNode(node: any) {\r\n const children = this.getChildFunction(node);\r\n if (!children || children.length === 0) {\r\n this.onDeleteElementSelect.emit(node);\r\n } else {\r\n this.onCantDeleteElementWarn.emit(true);\r\n }\r\n }\r\n \r\n\r\n updateShowingTableRows() {\r\n this.elements = [...this.elements];\r\n }\r\n\r\n private expandRecursive(node: TreeNode, isExpand: boolean) {\r\n node.expanded = isExpand;\r\n if (node.children) {\r\n node.children.forEach(childNode => {\r\n this.expandRecursive(childNode, isExpand);\r\n });\r\n }\r\n }\r\n\r\n private findTreeNode(listNode: TreeNode[], nodeId: number) {\r\n for (let node of listNode) {\r\n if (node.data.productCategoryId == nodeId) {\r\n return node;\r\n }\r\n\r\n if (node.children) {\r\n let newNodeFound: any = this.findTreeNode(node.children, nodeId);\r\n if (newNodeFound) {\r\n return newNodeFound;\r\n }\r\n }\r\n }\r\n return undefined;\r\n }\r\n\r\n getTableColumnAlignClass(alignment: number) {\r\n if(alignment == WappTableColumnAlignTypes.Right) return 'text-right';\r\n if(alignment == WappTableColumnAlignTypes.Left) return 'text-left';\r\n if(alignment == WappTableColumnAlignTypes.Center) return 'text-center';\r\n return 'text-left'\r\n }\r\n\r\n getTableColumnAlignFlexClass(alignment: number) {\r\n if(alignment == WappTableColumnAlignTypes.Right) return 'flex justify-content-end';\r\n if(alignment == WappTableColumnAlignTypes.Left) return 'flex justify-content-start';\r\n if(alignment == WappTableColumnAlignTypes.Center) return 'flex justify-content-center';\r\n return 'justify-content-start'\r\n }\r\n public get tableColumnTypes(): typeof TableColumnTypes {\r\n return TableColumnTypes;\r\n }\r\n\r\n readProperty(obj: any, prop:string):any {\r\n if(typeof obj === 'undefined') {\r\n return false;\r\n }\r\n \r\n var _index = prop.indexOf('.')\r\n if(_index > -1) {\r\n return this.readProperty(obj[prop.substring(0, _index)], prop.substr(_index + 1));\r\n }\r\n return obj[prop];\r\n }\r\n\r\n getBooleanColumnClass(index: number, valueProperty: boolean){\r\n const booleanIconClasses = [];\r\n\r\n if (valueProperty == true) {\r\n booleanIconClasses.push(this.wappTreeTableObject.columnBooleanTypeIcons[index].trueIcon ?? '');\r\n booleanIconClasses.push(this.wappTreeTableObject.columnBooleanTypeIcons[index].trueIconColor ?? '');\r\n } else if (valueProperty == false) {\r\n booleanIconClasses.push(this.wappTreeTableObject.columnBooleanTypeIcons[index].falseIcon ?? '');\r\n booleanIconClasses.push(this.wappTreeTableObject.columnBooleanTypeIcons[index].falseIconColor ?? '');\r\n } else if (valueProperty == null) {\r\n booleanIconClasses.push(this.wappTreeTableObject.columnBooleanTypeIcons[index].nullIcon ?? '');\r\n booleanIconClasses.push(this.wappTreeTableObject.columnBooleanTypeIcons[index].nullIconColor ?? '');\r\n }\r\n\r\n return booleanIconClasses;\r\n }\r\n}\r\n","@if (wappTreeTableObject) {\r\n <div [class.table-container]=\"wappTreeTableObject.tableContainer\">\r\n @if (!loading && elements) {\r\n <p-treeTable\r\n #treeTable [value]=\"elements\"\r\n class=\"w-table-styles\"\r\n [columns]=\"columns\"\r\n [scrollable]=\"true\"\r\n [tableStyle]=\"{'min-width': wappTreeTableObject.tableMinWidth!}\"\r\n [loading]=\"loadingElements\"\r\n [showLoader]=\"false\"\r\n [paginator]=\"true\"\r\n [rows]=\"rowsPerPage\"\r\n [rowHover]=\"false\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [currentPageReportTemplate]=\"wappTreeTableObject.currentPageReportTemplate ? wappTreeTableObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords! : 'Showing ' + rowsPerPage + ' of ' + totalRecords!\">\r\n @if (true) {\r\n <ng-template pTemplate=\"caption\">\r\n <span class=\"flex align-items-center table-paginator p-0\">\r\n @if (wappTreeTableObject.hasTotalPagingSelector) {\r\n <span class=\"showing-per-page\"> {{wappTreeTableObject.currentPageReportTemplate}} </span>\r\n }\r\n @if (wappTreeTableObject.hasTotalPagingSelector) {\r\n <p-inputnumber\r\n class=\"pl-2 showing-per-page\" size=\"small\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" [inputStyle]=\"{ width: '3rem' }\"\r\n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"totalRecords!\"\r\n decrementButtonClass=\"p-button-outlined\"\r\n incrementButtonClass=\"p-button-outlined\"\r\n incrementButtonIcon=\"pi pi-plus\"\r\n decrementButtonIcon=\"pi pi-minus\"\r\n mode=\"decimal\"\r\n (ngModelChange)=\"updateShowingTableRows()\">\r\n </p-inputnumber>\r\n }\r\n <p-iconfield class=\"p-input-icon-left ml-auto\" iconPosition=\"left\" class=\"ml-auto\">\r\n <p-inputicon>\r\n <i class=\"pi pi-search\"></i>\r\n </p-inputicon>\r\n <input\r\n pInputText\r\n type=\"text\"\r\n (input)=\"filterGlobal(treeTable, $event)\"\r\n [placeholder]=\"wappTreeTableObject.searchPlaceholder\" class=\"w-full height-input w-input\"\r\n />\r\n </p-iconfield>\r\n </span>\r\n </ng-template>\r\n }\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n @for (col of columns; track $index) {\r\n <th\r\n class=\"'{{col.field}}-field'\"\r\n [ttSortableColumn]=\"col.field\"\r\n [style]=\"'width: '+wappTreeTableObject.columnWidths[$index]\">\r\n <div [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignFlexClass(wappTreeTableObject.columnAlign[$index]) : 'flex justify-content-start'\" >\r\n <div>\r\n {{ col.header }}\r\n </div>\r\n <div>\r\n <p-treeTableSortIcon [field]=\"col.field\"></p-treeTableSortIcon>\r\n </div>\r\n </div>\r\n </th>\r\n }\r\n <th class=\"buttons-field\">\r\n </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\" let-columns=\"columns\">\r\n <tr>\r\n @for (columnType of wappTreeTableObject.columnTypes!; track $index) {\r\n @if (columnType == tableColumnTypes.Image) {\r\n <td [style]=\"'width: '+wappTreeTableObject.columnWidths[$index]\" [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[$index]) : 'text-center'\">\r\n <div [class.flex]=\"$index === 0\" [class.justify-content-between]=\"$index === 0\">\r\n <div [class.align-content-center]=\"$index === 0\">\r\n @if ($index === 0) {\r\n <p-treeTableToggler [rowNode]=\"rowNode\"></p-treeTableToggler>\r\n }\r\n </div>\r\n <div [class.my-auto]=\"$index === 0\">\r\n @if (readProperty(rowData, wappTreeTableObject.columns[$index].field)) {\r\n <img\r\n [src]=\"readProperty(rowData, wappTreeTableObject.columns[$index].field)\"\r\n class=\"element-image-width\"/>\r\n }\r\n </div>\r\n </div>\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.Text) {\r\n <td [style]=\"'width: '+wappTreeTableObject.columnWidths[$index]\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[$index]) : 'text-left'\">\r\n <div [class.flex]=\"$index === 0\" [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignFlexClass(wappTreeTableObject.columnAlign[$index]) : 'justify-content-start'\">\r\n <div [class.align-content-center]=\"$index === 0\">\r\n @if ($index === 0) {\r\n <p-treeTableToggler [rowNode]=\"rowNode\"></p-treeTableToggler>\r\n }\r\n </div>\r\n <div class=\"w-table-text-word-break\" [class.my-auto]=\"$index === 0\">\r\n {{ readProperty(rowData, wappTreeTableObject.columns[$index].field) }}\r\n </div>\r\n </div>\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.Number) {\r\n <td [style]=\"'width: '+wappTreeTableObject.columnWidths[$index]\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[$index]) : 'text-right'\">\r\n <div [class.flex]=\"$index === 0\" [class.justify-content-between]=\"$index === 0\">\r\n <div [class.align-content-center]=\"$index === 0\">\r\n @if ($index === 0) {\r\n <p-treeTableToggler [rowNode]=\"rowNode\"></p-treeTableToggler>\r\n }\r\n </div>\r\n <div [class.my-auto]=\"$index === 0\">\r\n {{ readProperty(rowData, wappTreeTableObject.columns[$index].field) }}\r\n </div>\r\n </div>\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.Percentage) {\r\n <td [style]=\"'width: '+wappTreeTableObject.columnWidths[$index]\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[$index]) : 'text-right'\">\r\n <div [class.flex]=\"$index === 0\" [class.justify-content-between]=\"$index === 0\">\r\n <div [class.align-content-center]=\"$index === 0\">\r\n @if ($index === 0) {\r\n <p-treeTableToggler [rowNode]=\"rowNode\"></p-treeTableToggler>\r\n }\r\n </div>\r\n <div [class.my-auto]=\"$index === 0\">\r\n {{ readProperty(rowData, wappTreeTableObject.columns[$index].field) | wappPercentage }}\r\n </div>\r\n </div>\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.Currency) {\r\n <td [style]=\"'width: '+wappTreeTableObject.columnWidths[$index]\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[$index]) : 'text-right'\">\r\n <div [class.flex]=\"$index === 0\" [class.justify-content-between]=\"$index === 0\">\r\n <div [class.align-content-center]=\"$index === 0\">\r\n @if ($index === 0) {\r\n <p-treeTableToggler [rowNode]=\"rowNode\"></p-treeTableToggler>\r\n }\r\n </div>\r\n <div [class.my-auto]=\"$index === 0\">\r\n {{ readProperty(rowData, wappTreeTableObject.columns[$index].field) | wappCurrency }}\r\n </div>\r\n </div>\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.Badge) {\r\n <td [style]=\"'width: '+wappTreeTableObject.columnWidths[$index]\"\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[$index]) : 'text-center'\">\r\n <div [class.flex]=\"$index === 0\" [class.justify-content-between]=\"$index === 0\">\r\n <div [class.align-content-center]=\"$index === 0\">\r\n @if ($index === 0) {\r\n <p-treeTableToggler [rowNode]=\"rowNode\"></p-treeTableToggler>\r\n }\r\n </div>\r\n <div [class.my-auto]=\"$index === 0\">\r\n <w-badge [label]=\"readProperty(rowData, wappTreeTableObject.columns[$index].field)\" [color]=\"'info'\"></w-badge>\r\n </div>\r\n </div>\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.Boolean) {\r\n <td\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[$index]) : 'text-center'\">\r\n <div [class.flex]=\"$index === 0\" [class.justify-content-between]=\"$index === 0\">\r\n <div [class.align-content-center]=\"$index === 0\">\r\n @if ($index === 0) {\r\n <p-treeTableToggler [rowNode]=\"rowNode\"></p-treeTableToggler>\r\n }\r\n </div>\r\n <div [class.my-auto]=\"$index === 0\">\r\n <i class=\"pi\" [ngClass]=\"getBooleanColumnClass($index, readProperty(rowData, wappTreeTableObject.columns[$index].field))\"></i>\r\n </div>\r\n </div>\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.Date) {\r\n <td\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[$index]) : 'text-left'\">\r\n <div [class.flex]=\"$index === 0\" [class.justify-content-between]=\"$index === 0\">\r\n <div [class.align-content-center]=\"$index === 0\">\r\n @if ($index === 0) {\r\n <p-treeTableToggler [rowNode]=\"rowNode\"></p-treeTableToggler>\r\n }\r\n </div>\r\n <div [class.my-auto]=\"$index === 0\">\r\n {{ dateConversionService.formatUTCDate(readProperty(rowData, wappTreeTableObject.columns[$index].field)) | wappDate }}\r\n </div>\r\n </div>\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.ShortDate) {\r\n <td\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[$index]) : 'text-left'\">\r\n <div [class.flex]=\"$index === 0\" [class.justify-content-between]=\"$index === 0\">\r\n <div [class.align-content-center]=\"$index === 0\">\r\n @if ($index === 0) {\r\n <p-treeTableToggler [rowNode]=\"rowNode\"></p-treeTableToggler>\r\n }\r\n </div>\r\n <div [class.my-auto]=\"$index === 0\">\r\n {{ dateConversionService.formatUTCDate(readProperty(rowData, wappTreeTableObject.columns[$index].field)) | wappDate : wappDateFormat.d }}\r\n </div>\r\n </div>\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.LongDate) {\r\n <td\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[$index]) : 'text-left'\">\r\n <div [class.flex]=\"$index === 0\" [class.justify-content-between]=\"$index === 0\">\r\n <div [class.align-content-center]=\"$index === 0\">\r\n @if ($index === 0) {\r\n <p-treeTableToggler [rowNode]=\"rowNode\"></p-treeTableToggler>\r\n }\r\n </div>\r\n <div [class.my-auto]=\"$index === 0\">\r\n {{ dateConversionService.formatUTCDate(readProperty(rowData, wappTreeTableObject.columns[$index].field)) | wappDate : wappDateFormat.D }}\r\n </div>\r\n </div>\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.GeneralDateTimeShortTime) {\r\n <td\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[$index]) : 'text-left'\">\r\n <div [class.flex]=\"$index === 0\" [class.justify-content-between]=\"$index === 0\">\r\n <div [class.align-content-center]=\"$index === 0\">\r\n @if ($index === 0) {\r\n <p-treeTableToggler [rowNode]=\"rowNode\"></p-treeTableToggler>\r\n }\r\n </div>\r\n <div [class.my-auto]=\"$index === 0\">\r\n {{ dateConversionService.formatUTCDate(readProperty(rowData, wappTreeTableObject.columns[$index].field)) | wappDate : wappDateFormat.g }}\r\n </div>\r\n </div>\r\n </td>\r\n }\r\n @if (columnType == tableColumnTypes.GeneralDateTimeLongTime) {\r\n <td\r\n [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[$index]) : 'text-left'\">\r\n <div [class.flex]=\"$index === 0\" [class.justify-content-between]=\"$index === 0\">\r\n <div [class.align-content-center]=\"$index === 0\">\r\n @if ($index === 0) {\r\n <p-treeTableToggler [rowNode]=\"rowNode\"></p-treeTableToggler>\r\n }\r\n </div>\r\n <div [class.my-auto]=\"$index === 0\">\r\n {{ dateConversionService.formatUTCDate(readProperty(rowData, wappTreeTableObject.columns[$index].field)) | wappDate : wappDateFormat.G }}\r\n </div>\r\n </div>\r\n </td>\r\n }\r\n }\r\n <td class=\"buttons-field\">\r\n <div class=\"w-table-buttons flex justify-content-end\">\r\n @for (button of wappTreeTableObject.actionButtons; track button) {\r\n <span>\r\n <w-button [icon]=\"button.icon\" (onClick)=\"actionButtonClicked(button.id, rowData)\" [tooltip]=\"button.tooltip!\" [tooltipPosition]=\"button.tooltipPosition!\" type=\"table\" [buttonClass]=\"'w-table-button-add '+ button.styleClass!\"></w-button>\r\n </span>\r\n }\r\n @if (wappTreeTableObject.hasDeleteButton) {\r\n <w-button icon=\"pi-trash\" (onClick)=\"confirmDeleteSelected($event, rowData)\" [tooltip]=\"wappTreeTableObject.deleteButtonTooltip!\" tooltipPosition=\"bottom\" type=\"table\" buttonClass=\"w-table-button-delete\"></w-button>\r\n }\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\" let-columns>\r\n <tr>\r\n <td [attr.colspan]=\"columns.length\">\r\n {{wappTreeTableObject.noRecordsLabel}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-treeTable>\r\n } @else {\r\n <p-treeTable\r\n #treeTable [value]=\"tableSkeletons\"\r\n class=\"w-table-styles\"\r\n [columns]=\"columns\"\r\n [scrollable]=\"true\"\r\n [tableStyle]=\"{'min-width':'50rem'}\"\r\n [loading]=\"loadingElements\"\r\n [showLoader]=\"false\"\r\n [paginator]=\"true\"\r\n [rows]=\"rowsPerPage\"\r\n [rowHover]=\"false\"\r\n [totalRecords]=\"totalRecords\"\r\n [showCurrentPageReport]=\"true\"\r\n [currentPageReportTemplate]=\"wappTreeTableObject.currentPageReportTemplate ? wappTreeTableObject.currentPageReportTemplate + ' ' + rowsPerPage + ' de ' + totalRecords! : 'Showing ' + rowsPerPage + ' of ' + totalRecords!\"\r\n stripedRows>\r\n @if (true) {\r\n <ng-template pTemplate=\"caption\">\r\n <span class=\"flex align-items-center table-paginator p-0\">\r\n @if (wappTreeTableObject.hasTotalPagingSelector) {\r\n <span class=\"showing-per-page\"> {{wappTreeTableObject.currentPageReportTemplate}} </span>\r\n }\r\n @if (wappTreeTableObject.hasTotalPagingSelector) {\r\n <p-inputnumber\r\n class=\"pl-2 showing-per-page\" size=\"small\" [(ngModel)]=\"rowsPerPage\" [showButtons]=\"true\" [inputStyle]=\"{ width: '3rem' }\"\r\n buttonLayout=\"horizontal\" inputId=\"horizontal\" spinnerMode=\"horizontal\" [step]=\"1\" [min]=\"1\" [max]=\"totalRecords!\"\r\n decrementButtonClass=\"p-button-outlined\"\r\n incrementButtonClass=\"p-button-outlined\"\r\n incrementButtonIcon=\"pi pi-plus\"\r\n decrementButtonIcon=\"pi pi-minus\"\r\n mode=\"decimal\"\r\n (ngModelChange)=\"updateShowingTableRows()\">\r\n </p-inputnumber>\r\n }\r\n <p-iconfield class=\"p-input-icon-left ml-auto\" iconPosition=\"left\" class=\"ml-auto\">\r\n <p-inputicon>\r\n <i class=\"pi pi-search\"></i>\r\n </p-inputicon>\r\n <input\r\n pInputText\r\n type=\"text\"\r\n (input)=\"filterGlobal(treeTable, $event)\"\r\n [placeholder]=\"wappTreeTableObject.searchPlaceholder\" class=\"w-full height-input w-input\"\r\n />\r\n </p-iconfield>\r\n </span>\r\n </ng-template>\r\n }\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n @for (col of columns; track $index) {\r\n <th\r\n class=\"{{col.field}}-field'\"\r\n [ttSortableColumn]=\"col.field\">\r\n <div [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignFlexClass(wappTreeTableObject.columnAlign[$index]) : 'flex justify-content-start'\">\r\n <div>\r\n {{ col.header }}\r\n </div>\r\n <div>\r\n <p-treeTableSortIcon [field]=\"col.field\"></p-treeTableSortIcon>\r\n </div>\r\n </div>\r\n </th>\r\n }\r\n <th class=\"buttons-field\">\r\n </th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowNode let-rowData=\"rowData\" let-columns=\"columns\">\r\n <tr>\r\n @for (col of columns; track $index) {\r\n <td [ngClass]=\"wappTreeTableObject.columnAlign ? getTableColumnAlignClass(wappTreeTableObject.columnAlign[$index]) : 'text-left'\">\r\n <p-skeleton></p-skeleton>\r\n </td>\r\n }\r\n <td class=\"buttons-field\">\r\n <div class=\"w-table-buttons flex justify-content-end\">\r\n @for (button of wappTreeTableObject.actionButtons; track button) {\r\n <span>\r\n <w-button [icon]=\"button.icon\" (onClick)=\"actionButtonClicked(button.id, rowData)\" [tooltip]=\"button.tooltip!\" [tooltipPosition]=\"button.tooltipPosition!\" [buttonClass]=\"'w-table-button-add ' + button.styleClass!\"></w-button>\r\n </span>\r\n }\r\n @if (wappTreeTableObject.hasDeleteButton) {\r\n <w-button icon=\"pi-trash\" (onClick)=\"confirmDeleteSelected($event, rowData)\" [tooltip]=\"'Tooltip' \" tooltipPosition=\"bottom\"type=\"table\" buttonClass=\"w-table-button-delete\"></w-button>\r\n }\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"emptymessage\" let-columns>\r\n <tr>\r\n <td [attr.colspan]=\"columns.length\">\r\n {{wappTreeTableObject.noRecordsLabel}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-treeTable>\r\n }\r\n </div>\r\n }\r\n\r\n <p-confirmpopup></p-confirmpopup>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-body-grid',\r\n templateUrl: './w-body-grid.component.html',\r\n styleUrls: ['./w-body-grid.component.scss'],\r\n standalone: false\r\n})\r\nexport class WBodyGridComponent {\r\n\r\n}\r\n","<div class=\"w-body-grid grid\">\r\n <ng-content></ng-content>\r\n</div>","import { Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';\r\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-edit-toggle',\r\n templateUrl: './w-edit-toggle.component.html',\r\n styleUrls: ['./w-edit-toggle.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditToggleComponent),\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class WEditToggleComponent {\r\n @Input('label') label: string = '';\r\n @Input('disabled') isDisabled: boolean = false;\r\n @Input('isRequired') isRequired: boolean = false;\r\n @Input('size') size: string = 'small';\r\n @Input('hasAlign') hasAlign: boolean = true;\r\n @Input('tooltip') tooltip!: string; \r\n @Input() tooltipPosition?: string;\r\n\r\n @Input('formControl') formControl!: FormControl | null;\r\n\r\n @Output('toggleState')\r\n toggleState: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n value: boolean = false;\r\n isTouched : boolean = false;\r\n \r\n onChange = (_:any) => { }\r\n onTouch = () => { }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n \r\n onInput(obj: any){\r\n this.value = obj;\r\n this.toggleState.emit(this.value);\r\n this.onTouch();\r\n this.onChange(this.value);\r\n }\r\n\r\n onValueChanged() {\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n getSize(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n}\r\n","@if (formControl) {\r\n <div class=\"w-edit-toggle-small-field\"> \r\n <w-input-label [label]=\"label\" [disabled]=\"isDisabled\" [size]=\"'small'\" [tooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition\"></w-input-label>\r\n <div class=\"toggle-container\">\r\n <p-toggleswitch class=\"w-edit-toggle-small\" \r\n [formControl]=\"formControl\">\r\n </p-toggleswitch>\r\n </div>\r\n </div>\r\n} @else {\r\n <div class=\"w-edit-toggle-small-field\"> \r\n <w-input-label [label]=\"label\" [disabled]=\"isDisabled\" [size]=\"'small'\" [tooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition\"></w-input-label>\r\n <div class=\"toggle-container\">\r\n <p-toggleswitch class=\"w-edit-toggle-small\" \r\n [(ngModel)]=\"value\" \r\n (ngModelChange)=\"onInput($event)\"\r\n [disabled]=\"isDisabled\">\r\n </p-toggleswitch>\r\n </div>\r\n </div>\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-panel-grid',\r\n templateUrl: './w-panel-grid.component.html',\r\n styleUrls: ['./w-panel-grid.component.scss'],\r\n standalone: false\r\n})\r\nexport class WPanelGridComponent {\r\n\r\n}\r\n","<div class=\"w-panel-grid grid\">\r\n <ng-content></ng-content>\r\n</div>","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-card',\r\n templateUrl: './w-card.component.html',\r\n styleUrls: ['./w-card.component.scss'], \r\n standalone: false\r\n})\r\nexport class WCardComponent implements OnInit {\r\n\r\n @Input('header') header!: string;\r\n @Input('subheader') subheader!: string;\r\n @Input('image') image!: string;\r\n @Input('icon') icon!: string;\r\n @Input('iconColor') iconColor!: string;\r\n @Input('width') width: string = '250px';\r\n @Input('imagePosition') imagePosition: 'top' | 'left' = 'top';\r\n @Input('defaultImageIcon') defaultImageIcon: string = \"analytics-reports\";\r\n\r\n @Output('cardClick') cardClick: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onCardClick() {\r\n this.cardClick.emit();\r\n }\r\n\r\n isPath(path: string) {\r\n const urlPattern = /^(ftp|http|https):\\/\\/[^ \"]+$/;\r\n const localPattern = /^(\\/|\\.\\/|\\.\\.\\/|assets\\/)/;\r\n return urlPattern.test(path) || localPattern.test(path);\r\n }\r\n}\r\n","@if(imagePosition === 'top') {\r\n <p-card class=\"w-card-top-image\"\r\n [header]=\"header\"\r\n [subheader]=\"subheader\"\r\n [style]=\"{ width: width, cursor: 'pointer' }\"\r\n (click)=\"onCardClick()\">\r\n <ng-template pTemplate=\"header\">\r\n <div class=\"w-card-image-container\">\r\n @if (image && isPath(image)){\r\n <img class=\"w-full w-card-image\" [src]=\"image\"/>\r\n }@else {\r\n <div class=\"w-full\" style=\"position: relative;\">\r\n <img class=\"w-full h-full w-card-image\" [src]=\"'assets/images/analytics-background.png'\">\r\n <span [class]=\"'w-icon-card-image w-icon '+defaultImageIcon\"></span>\r\n </div>\r\n }\r\n @if(icon) {\r\n <div class=\"w-card-image-icon\">\r\n <w-icons [name]=\"icon\"\r\n [color]=\"iconColor\"\r\n [height]=\"15\"\r\n [width]=\"15\">\r\n </w-icons>\r\n </div>\r\n }\r\n </div>\r\n </ng-template>\r\n <ng-content select=\".content\"></ng-content>\r\n <ng-template pTemplate=\"footer\">\r\n <div (click)=\"$event.stopPropagation()\"\r\n (keydown)=\"$event.stopPropagation()\">\r\n <ng-content></ng-content>\r\n </div>\r\n </ng-template>\r\n </p-card>\r\n} @else {\r\n <div class=\"inline-flex\">\r\n <div class=\"flex w-card-left-image-container\">\r\n @if (image && isPath(image)){\r\n <img class=\"w-card-left-image\" [src]=\"image\" (click)=\"onCardClick()\"/>\r\n }@else {\r\n <div class=\"w-full\" style=\"position: relative;\">\r\n <img class=\"w-full h-full w-card-left-image\" [src]=\"'assets/images/analytics-background.png'\">\r\n <span [class]=\"'w-icon-card-image w-icon '+defaultImageIcon\"></span>\r\n </div>\r\n }\r\n\r\n @if(icon) {\r\n <div class=\"w-card-image-icon w-card-left-image-icon\">\r\n <w-icons [name]=\"icon\"\r\n [color]=\"iconColor\"\r\n [height]=\"15\"\r\n [width]=\"15\">\r\n </w-icons>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"flex\">\r\n <p-card class=\"flex w-card-left-image-card\"\r\n [header]=\"header\"\r\n [subheader]=\"subheader\"\r\n [style]=\"{ width: width, cursor: 'pointer' }\"\r\n (click)=\"onCardClick()\">\r\n <ng-content select=\".left-image-content\"></ng-content>\r\n <ng-template pTemplate=\"footer\">\r\n <div class=\"w-card-left-image-footer\"\r\n (click)=\"$event.stopPropagation()\"\r\n (keydown)=\"$event.stopPropagation()\">\r\n <ng-content select=\".left-image-card-footer\"></ng-content>\r\n </div>\r\n </ng-template>\r\n </p-card>\r\n </div>\r\n </div>\r\n}","import { Component, Input, forwardRef } from '@angular/core';\r\nimport { SizeType } from '../../shared/enums/enum';\r\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'w-autocomplete-search',\r\n templateUrl: './w-autocomplete-search.component.html',\r\n styleUrls: ['./w-autocomplete-search.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WAutocompleteSearchComponent),\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class WAutocompleteSearchComponent {\r\n @Input('label') label: string = \"Default Label\";\r\n @Input('placeholder') placeholder: string = \"\";\r\n\r\n @Input('isRequired') isRequired: boolean = false;\r\n @Input('isDisabled') isDisabled: boolean = false;\r\n\r\n @Input('size') size: string = \"medium\";\r\n\r\n @Input('items') items: any[] = [\r\n {\"name\": \"Afghanistan\", \"code\": \"AF\"},\r\n {\"name\": \"México\", \"code\": \"MX\"},\r\n {\"name\": \"Turquía\", \"code\": \"TQ\"},\r\n {\"name\": \"Estados unidos\", \"code\": \"EU\"},\r\n ];\r\n \r\n @Input('formControl') formControl!: FormControl | null;\r\n \r\n selectedItem: any;\r\n suggestions: any[] = [];\r\n value: any ;\r\n\r\n isTouched : boolean = false;\r\n onChange = (_:any) => { }\r\n onTouch = () => { }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(onChange: any): void {\r\n this.onChange = onChange;\r\n }\r\n\r\n registerOnTouched(onTouch: any): void {\r\n this.onTouch = onTouch;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n\r\n onValueChanged() {\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n onInputBlur(event: Event) {\r\n const newValue = (event.target as HTMLInputElement).value;\r\n this.value = newValue;\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n \r\n search(event: any) {\r\n\r\n let filtered: any[] = [];\r\n let query = event.query;\r\n\r\n for(let i=0; i < (this.items as any[]).length; i++)\r\n {\r\n let item = (this.items as any[])[i];\r\n if(item.name.toLowerCase().indexOf(query.toLowerCase()) == 0)\r\n {\r\n filtered.push(item);\r\n }\r\n }\r\n this.suggestions = filtered;\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n \r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n}\r\n","<div *ngIf=\"formControl != null; else noNgControl\">\r\n <div *ngIf=\"getSizeName(sizeType.medium) == size; else inputSmall\">\r\n <span class=\"p-input-icon-left w-container-medium w-full\">\r\n <i class=\"pi pi-search\"></i>\r\n <p-autoComplete\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n class=\"w-autocomplete-search-medium\"\r\n [suggestions]=\"suggestions\"\r\n (completeMethod)=\"search($event)\"\r\n [formControl]=\"formControl\"\r\n [placeholder]=\"placeholder\"\r\n field=\"name\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"flex align-items-center gap-2\">\r\n <i class=\"pi pi-search\"></i>\r\n <div class=\"item-content\">{{item.name}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n </span>\r\n </div>\r\n <ng-template #inputSmall>\r\n <span class=\"p-input-icon-left w-container-small w-full\">\r\n <i class=\"pi pi-search\"></i>\r\n <p-autoComplete\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n class=\"w-autocomplete-search-small\"\r\n [suggestions]=\"suggestions\"\r\n (completeMethod)=\"search($event)\"\r\n [formControl]=\"formControl\"\r\n [placeholder]=\"placeholder\"\r\n field=\"name\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"flex align-items-center gap-2\">\r\n <i class=\"pi pi-search\"></i>\r\n <div class=\"item-content-small\">{{item.name}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n </span>\r\n </ng-template>\r\n</div>\r\n<ng-template #noNgControl>\r\n <div *ngIf=\"getSizeName(sizeType.medium) == size; else inputSmall\">\r\n <span class=\"p-input-icon-left w-container w-full\">\r\n <i class=\"pi pi-search\"></i>\r\n <p-autoComplete\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n class=\"w-autocomplete-search-medium\"\r\n [suggestions]=\"suggestions\"\r\n (completeMethod)=\"search($event)\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"value\" \r\n (ngModelChange)=\"onValueChanged()\" \r\n [disabled]=\"isDisabled\"\r\n field=\"name\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"flex align-items-center gap-2\">\r\n <i class=\"pi pi-search\"></i>\r\n <div class=\"item-content\">{{item.name}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n </span>\r\n </div>\r\n <ng-template #inputSmall>\r\n <span class=\"p-input-icon-left w-container-small w-full\">\r\n <i class=\"pi pi-search\"></i>\r\n <p-autoComplete\r\n [style]=\"{'width':'100%'}\"\r\n [inputStyle]=\"{'width':'100%'}\"\r\n class=\"w-autocomplete-search-small\"\r\n [suggestions]=\"suggestions\"\r\n [(ngModel)]=\"value\" \r\n (input)=\"onValueChanged()\" \r\n [disabled]=\"isDisabled\"\r\n (completeMethod)=\"search($event)\"\r\n [placeholder]=\"placeholder\"\r\n field=\"name\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"flex align-items-center gap-2\">\r\n <i class=\"pi pi-search\"></i>\r\n <div class=\"item-content-small\">{{item.name}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n </span>\r\n </ng-template>\r\n</ng-template>","import { Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';\r\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-edit-checkbox',\r\n templateUrl: './w-edit-checkbox.component.html',\r\n styleUrls: ['./w-edit-checkbox.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditCheckboxComponent),\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class WEditCheckboxComponent {\r\n @Input('label') label: string = '';\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('helpDescription') helpDescription: string = '';\r\n @Input('disabled') isDisabled: boolean = false;\r\n @Input('size') size: string = 'small';\r\n @Input('hasAlign') hasAlign: boolean = true;\r\n @Input('tooltip') tooltip!: string;\r\n @Input() tooltipPosition?: string;\r\n @Input('layout') layout: string = \"horizontal\";\r\n\r\n @Input('formControl') formControl!: FormControl | null;\r\n\r\n @Output('checkboxState')\r\n checkboxState: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n value: boolean = false;\r\n isTouched : boolean = false;\r\n\r\n onChange = (_:any) => { }\r\n onTouch = () => { }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n\r\n onInput(obj: any){\r\n this.value = obj;\r\n this.checkboxState.emit(this.value);\r\n this.onTouch();\r\n this.onChange(this.value);\r\n }\r\n\r\n onValueChanged() {\r\n this.onChange(this.value);\r\n this.onTouch();\r\n }\r\n\r\n getSize(value: number): string {\r\n return SizeType[value];\r\n }\r\n\r\n get sizeType(): typeof SizeType {\r\n return SizeType;\r\n }\r\n\r\n isRequiredValid(): boolean {\r\n return !(this.formControl?.hasError('required'));\r\n }\r\n\r\n isRequiredValidNgModel(): boolean {\r\n return !(this.value == null);\r\n }\r\n}\r\n","@if (formControl) {\r\n <div class=\"flex align-content-center\"\r\n [ngClass]=\"{'w-edit-checkbox-small-field': getSize(sizeType.small) == size}\">\r\n <p-checkbox\r\n [binary]=\"true\"\r\n [ngClass]=\"{'w-edit-checkbox-small': getSize(sizeType.small) == size}\"\r\n [formControl]=\"formControl\" id=\"w-checkbox\">\r\n </p-checkbox>\r\n @if (showLabel) {\r\n <w-input-label class=\"w-edit-checkbox-small-label\"\r\n [label]=\"label\"\r\n [required]=\"formControl.hasError('required')\"\r\n [disabled]=\"isDisabled\"\r\n [size]=\"'small'\"\r\n [tooltip]=\"tooltip\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n [validated]=\"isRequiredValid()\">\r\n </w-input-label>\r\n }\r\n </div>\r\n} @else {\r\n <div class=\"flex align-content-center\"\r\n [ngClass]=\"{'w-edit-checkbox-small-field': getSize(sizeType.small) == size}\">\r\n <p-checkbox\r\n [binary]=\"true\"\r\n [ngClass]=\"{'w-edit-checkbox-small': getSize(sizeType.small) == size}\"\r\n (ngModelChange)=\"onInput($event)\"\r\n [(ngModel)]=\"value\" id=\"w-checkbox\"\r\n [disabled]=\"isDisabled\">\r\n </p-checkbox>\r\n @if (showLabel) {\r\n <w-input-label class=\"w-edit-checkbox-small-label\" [label]=\"label\" [disabled]=\"isDisabled\" [size]=\"'small'\" [tooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition\" [validated]=\"isRequiredValidNgModel()\"></w-input-label>\r\n }\r\n </div>\r\n}\r\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2, ViewChild } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { WAddress } from '../../shared/models/w-address.model';\r\nimport { WAddressMaps } from '../../shared/models/address-maps.model';\r\n\r\n@Component({\r\n selector: 'w-maps',\r\n templateUrl: './w-maps.component.html',\r\n styleUrls: ['./w-maps.component.scss'],\r\n standalone: false\r\n})\r\nexport class WMapsComponent implements OnInit, AfterViewInit{\r\n @ViewChild('mapSearchField') searchField!: ElementRef;\r\n @ViewChild('divMap') divMap!: ElementRef;\r\n\r\n @Input('label') label!: string;\r\n @Input('showLabel') showLabel: boolean = true;\r\n @Input('wAddress') wAddress!: string | WAddress;\r\n @Input('required') required: boolean = false;\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('tooltip') tooltip!: string;\r\n @Input() tooltipPosition?: string;\r\n @Input('isEdit') isEdit: boolean = false;\r\n @Input('mapHeight') mapHeight: number = 30;\r\n @Input('componentRestrictions') componentRestrictions: any;\r\n @Input('initialCoords') initialCoords: any; \r\n\r\n @Output('addressResponse') addressResponse = new EventEmitter<WAddressMaps>();\r\n @Output('onAddressEmpty') onAddressEmpty = new EventEmitter<string>();\r\n @Output('onAddressValid') onAddressValid = new EventEmitter<boolean>();\r\n\r\n map!: google.maps.Map\r\n autoComplete: any;\r\n variableMap!: google.maps.Map;\r\n marker!: google.maps.Marker;\r\n service!: google.maps.places.PlacesService;\r\n formMapas!: FormGroup;\r\n addressFinal: WAddressMaps = {} as WAddressMaps;\r\n readyAddress: boolean = false;\r\n viewAddress!: string;\r\n formatedAddress!: string;\r\n textareaAddress!: any;\r\n\r\n constructor(private render: Renderer2,private cd: ChangeDetectorRef) { }\r\n\r\n ngOnInit(): void {\r\n if(this.componentRestrictions.country.length==0)\r\n this.componentRestrictions.country = ['ES']\r\n\r\n if(typeof this.wAddress !== \"string\"){\r\n this.viewAddress = (this.wAddress?.route ? this.wAddress?.route+\" \": '') + (this.wAddress?.streetNumber? this.wAddress?.streetNumber+\" \": '') + \r\n (this.wAddress?.administrativeAreaLevel1? this.wAddress?.administrativeAreaLevel1+\" \": '') + ( this.wAddress?.administrativeAreaLevel2? this.wAddress?.administrativeAreaLevel2+\" \": '' )+\r\n (this.wAddress?.postalCode? this.wAddress?.postalCode+\" \": '') + (this.wAddress?.locality? this.wAddress?.locality+\", \": '')+(this.wAddress?.country? this.wAddress?.country+\" \": '')\r\n\r\n this.textareaAddress = (this.wAddress?.route ? this.wAddress?.route+\" \": '') + (this.wAddress?.streetNumber? this.wAddress?.streetNumber+\" \": '') + \"\\n\\n\" +\r\n (this.wAddress?.administrativeAreaLevel1? this.wAddress?.administrativeAreaLevel1+\" \": '') + ( this.wAddress?.administrativeAreaLevel2? this.wAddress?.administrativeAreaLevel2+\" \": '' )+\r\n (this.wAddress?.postalCode? \"(\"+this.wAddress?.postalCode+\")\": '') + \"\\n\\n\" + (this.wAddress?.locality? this.wAddress?.locality+\", \": '')+(this.wAddress?.country? this.wAddress?.country+\" \": '')\r\n this.readyAddress = true;\r\n }\r\n }\r\n\r\n async ngAfterViewInit() {\r\n if(typeof this.wAddress !== \"string\"){\r\n this.formatedAddress = this.cleanText( (this.wAddress?.route ? this.wAddress?.route+\" \": '') + (this.wAddress?.streetNumber? this.wAddress?.streetNumber+\" \": '') + \r\n (this.wAddress?.administrativeAreaLevel1? this.wAddress?.administrativeAreaLevel1+\" \": '') + ( this.wAddress?.administrativeAreaLevel2? this.wAddress?.administrativeAreaLevel2+\" \": '' )+\r\n (this.wAddress?.postalCode? this.wAddress?.postalCode+\" \": '') + (this.wAddress?.locality? this.wAddress?.locality+\", \": '')+(this.wAddress?.country? this.wAddress?.country+\" \": '') )\r\n\r\n this.textareaAddress = this.cleanText( (this.wAddress?.route ? this.wAddress?.route+\" \": '') + (this.wAddress?.streetNumber? this.wAddress?.streetNumber+\" \": '') + \"\\n\\n\" +\r\n (this.wAddress?.administrativeAreaLevel1? this.wAddress?.administrativeAreaLevel1+\" \": '') + ( this.wAddress?.administrativeAreaLevel2? this.wAddress?.administrativeAreaLevel2+\" \": '' )+\r\n (this.wAddress?.postalCode? \"(\"+this.wAddress?.postalCode+\")\": '') + \"\\n\\n\" + (this.wAddress?.locality? this.wAddress?.locality+\", \": '')+(this.wAddress?.country? this.wAddress?.country+\" \": '') )\r\n this.readyAddress = true;\r\n this.cd.detectChanges();\r\n }\r\n\r\n if(this.isEdit)\r\n this.loadAutoComplete();\r\n\r\n if (this.initialCoords != undefined) {\r\n let position = {\r\n coords: {\r\n latitude: this.initialCoords.latitude,\r\n longitude: this.initialCoords.longitude,\r\n }\r\n }\r\n await this.loadMap(position)\r\n } else {\r\n let position = new google.maps.LatLng(19.0528136, -98.2071769)\r\n \r\n const opciones = {\r\n center: position,\r\n zoom: 11,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n };\r\n\r\n this.variableMap = await new google.maps.Map(document.getElementById(\"variableMap\") as HTMLElement, opciones)\r\n\r\n const request = {\r\n query: this.formatedAddress,\r\n fields: [\"name\",\"geometry\"]\r\n };\r\n \r\n this.service = new google.maps.places.PlacesService(this.variableMap);\r\n this.service.findPlaceFromQuery(request, (results, status) => {\r\n if (\r\n status === google.maps.places.PlacesServiceStatus.OK &&\r\n results?.length &&\r\n results[0].geometry?.location\r\n ) {\r\n const location = results[0].geometry.location;\r\n\r\n const pos = {\r\n coords: {\r\n latitude: location.lat(),\r\n longitude: location.lng(),\r\n }\r\n };\r\n\r\n this.loadMap(pos);\r\n }\r\n });\r\n }\r\n }\r\n\r\n async loadMap(position: any) {\r\n const opciones = {\r\n center: new google.maps.LatLng(position.coords.latitude, position.coords.longitude),\r\n zoom: 11,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP\r\n };\r\n\r\n this.map = await new google.maps.Map(this.render.selectRootElement(this.divMap.nativeElement), opciones)\r\n\r\n const marker = new google.maps.Marker;\r\n marker.setMap(null);\r\n\r\n this.marker = new google.maps.Marker({\r\n position: this.map.getCenter(),\r\n });\r\n this.marker.setMap(this.map);\r\n \r\n google.maps.event.addListener(this.map, \"bounds_changed\", () => {\r\n this.autoComplete.setBounds(this.map.getBounds() as google.maps.LatLngBounds);\r\n });\r\n }\r\n\r\n returnAddress(place: any) {\r\n let address_component: [] = place.address_components;\r\n address_component.forEach((field) => {\r\n this.addressFinal[field['types'][0]] = field['long_name']\r\n })\r\n this.addressFinal.latitude = place.geometry['location'].lat();\r\n this.addressFinal.longitude = place.geometry['location'].lng();\r\n this.addressFinal.streetAddress = place.formatted_address\r\n this.textareaAddress = this.cleanText( (this.addressFinal?.route ? this.addressFinal?.route+\" \": '') + (this.addressFinal?.street_number? this.addressFinal?.street_number+\" \": '') + \"\\n\\n\" +\r\n (this.addressFinal?.administrative_area_level_1? this.addressFinal?.administrative_area_level_1+\" \": '') + ( this.addressFinal?.administrative_area_level_2? this.addressFinal?.administrative_area_level_2+\" \": '' )+\r\n (this.addressFinal?.postal_code? \"(\"+this.addressFinal?.postal_code+\")\": '') + \"\\n\\n\" + (this.addressFinal?.locality? this.addressFinal?.locality+\", \": '')+(this.addressFinal?.country? this.addressFinal?.country+\" \": '') ) \r\n this.cd.detectChanges();\r\n this.readyAddress = true;\r\n this.addressResponse.emit(this.addressFinal);\r\n }\r\n\r\n cleanText(text: any){\r\n return text.trimStart();\r\n }\r\n\r\n private loadAutoComplete() {\r\n \r\n if(this.initialCoords){\r\n let center = {lat: this.initialCoords.latitude , lng: this.initialCoords.longitude}\r\n let defaultBounds = {\r\n north: center.lat + 0.1,\r\n south: center.lat - 0.1,\r\n east: center.lng + 0.1,\r\n west: center.lng - 0.1,\r\n };\r\n this.autoComplete = new google.maps.places.SearchBox(\r\n this.render.selectRootElement(this.searchField.nativeElement), {\r\n bounds: defaultBounds,\r\n }\r\n )\r\n }else{ \r\n let center = {lat: 19.432713378069636 , lng: -99.13328805659542}\r\n let defaultBounds = {\r\n north: center.lat + 0.1,\r\n south: center.lat - 0.1,\r\n east: center.lng + 0.1,\r\n west: center.lng - 0.1,\r\n };\r\n this.autoComplete = new google.maps.places.SearchBox(\r\n this.render.selectRootElement(this.searchField.nativeElement), {\r\n bounds: defaultBounds\r\n }\r\n )\r\n }\r\n \r\n \r\n google.maps.event.addListener(this.autoComplete, 'places_changed', () => {\r\n\r\n const place: any = this.autoComplete.getPlaces();\r\n this.map.setCenter(place[0].geometry.location);\r\n this.marker.setMap(null);\r\n this.marker = new google.maps.Marker({\r\n position: place[0].geometry.location\r\n });\r\n \r\n this.marker.setMap(this.map);\r\n \r\n this.returnAddress(place[0]);\r\n })\r\n }\r\n\r\n isAddressValidated(){\r\n if(this.formatedAddress && this.addressFinal && this.readyAddress){\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n onAddressValue(){\r\n this.readyAddress = false;\r\n if(this.formatedAddress == '' || this.formatedAddress == null){\r\n this.onAddressEmpty.emit(this.formatedAddress);\r\n }\r\n }\r\n}\r\n","<div class=\"w-label-maps\">\r\n @if (showLabel) {\r\n <w-input-label [label]=\"label\" [required]=\"required\" [validated]=\"isAddressValidated()\" [disabled]=\"disabled\" [tooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition\"></w-input-label>\r\n }\r\n <div class=\"w-search-maps\">\r\n @if (isEdit) {\r\n <div class=\"w-full w-label-input\">\r\n <div class=\"searchfield-container\">\r\n <input type=\"text\" #mapSearchField\r\n class=\"w-full w-searchfield-maps\"\r\n [(ngModel)]=\"formatedAddress\" \r\n (ngModelChange)=\"onAddressValue()\"\r\n pInputText/>\r\n </div>\r\n </div>\r\n }\r\n\r\n <div class=\"w-full flex w-maps-text-container\">\r\n <div class=\"w-6 w-map\" [style]=\"'height:'+mapHeight+'rem'\" id=\"map\" #divMap></div>\r\n <span [style]=\"'height:'+mapHeight+'rem'\"\r\n class=\"w-6 w-textarea-address\">\r\n @if (textareaAddress) {\r\n <p>\r\n {{textareaAddress}}\r\n </p>\r\n }\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n <div [hidden]=\"true\" id=\"variableMap\"></div>","import { Component, EventEmitter, Input, OnInit, Optional, Output, Self, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SizeType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-radio-button',\r\n templateUrl: './w-radio-button.component.html',\r\n styleUrls: ['./w-radio-button.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WRadioButtonComponent),\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class WRadioButtonComponent implements OnInit, ControlValueAccessor {\r\n selectedOption: any;\r\n selectedIndex = 0;\r\n isDisabled: boolean = false;\r\n isTouched : boolean = false;\r\n\r\n @Input('radioGroupElements') radioGroupElements: any[] = [];\r\n @Input('required') required: boolean = false;\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('requiredErrorDescription') requiredErrorDescription: string = \"Default required error description\";\r\n @Input('size') size: string = \"medium\";\r\n \r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n\r\n formControl: any;\r\n ngModelValue: any;\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n \r\n sizeType: typeof SizeType = SizeType;\r\n\r\n ngOnInit(): void { }\r\n\r\n writeValue(value: any): void {\r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled;\r\n }\r\n\r\n onChanged(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n\r\n onChangedForm(value: any){\r\n this.onChange(value);\r\n this.onTouch();\r\n this.onChangeEvent.emit(value);\r\n }\r\n\r\n getSizeName(value: number): string {\r\n return SizeType[value];\r\n }\r\n}\r\n","@if (formControl) {\r\n <div>\r\n @for (option of radioGroupElements; track option) {\r\n <div class=\"field-checkbox\">\r\n <p-radiobutton [ngClass]=\"{'w-radiobutton-small' : size == getSizeName(sizeType.small),\r\n 'w-radiobutton-medium' : size == getSizeName(sizeType.medium)}\"\r\n [inputId]=\"option.key\"\r\n [required]=\"required\"\r\n [disabled]=\"disabled\"\r\n [formControl]=\"formControl\"\r\n ngDefaultControl\r\n (onClick)=\"onChangedForm($event)\">\r\n </p-radiobutton>\r\n <label [ngClass]=\"{'w-radiobutton-label-small' : size == getSizeName(sizeType.small),\r\n 'w-radiobutton-label-medium' : size == getSizeName(sizeType.medium)}\" [for]=\"option.key\">{{option.name}}</label>\r\n </div>\r\n }\r\n @if (formControl.hasError('required') && formControl.touched) {\r\n <small class=\"p-error block\">{{requiredErrorDescription}}</small>\r\n }\r\n </div>\r\n} @else {\r\n @for (option of radioGroupElements; track option) {\r\n <div class=\"field-checkbox\">\r\n <p-radiobutton [ngClass]=\"{'w-radiobutton-small' : size == getSizeName(sizeType.small),\r\n 'w-radiobutton-medium' : size == getSizeName(sizeType.medium)}\"\r\n [inputId]=\"option.key\"\r\n [(ngModel)]=\"ngModelValue\"\r\n [disabled]=\"disabled\"\r\n [value]=\"option\"\r\n ngDefaultControl\r\n (onClick)=\"onChanged()\">\r\n </p-radiobutton>\r\n <label [ngClass]=\"{'w-radiobutton-label-small' : size == getSizeName(sizeType.small),\r\n 'w-radiobutton-label-medium' : size == getSizeName(sizeType.medium)}\" [for]=\"option.key\">{{option.name}}</label>\r\n </div>\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { MenuItem, MessageService } from 'primeng/api';\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'w-wizard',\r\n templateUrl: './w-wizard.component.html',\r\n styleUrls: ['./w-wizard.component.scss'],\r\n providers: [MessageService],\r\n standalone: false\r\n})\r\nexport class WWizardComponent {\r\n items!: MenuItem[];\r\n private _activeIndex: number = 0;\r\n\r\n @Input() set activeIndex(value: number) {\r\n this._activeIndex = value;\r\n }\r\n\r\n get activeIndex() {\r\n return this._activeIndex;\r\n }\r\n\r\n @Input('stepsItems') stepsItems!: MenuItem[];\r\n @Input('stepsHeadings') stepsHeadings!: string[];\r\n @Input('stepsSubheadings') stepsSubheadings!: string[];\r\n @Input('nextBtnLabel') nextBtnLabel: string = \"Next\";\r\n @Input('previousBtnLabel') previousBtnLabel: string = \"Previous\";\r\n @Input('cancelBtnLabel') cancelBtnLabel: string = \"Cancel\";\r\n @Input('confirmButtonLabel') confirmButtonLabel!: string;\r\n @Input('confirmButtonIcon') confirmButtonIcon!: string;\r\n @Input('confirmButtonLoading') confirmButtonLoading: boolean = false;\r\n @Input('secondaryConfirmButtonLabel') secondaryConfirmButtonLabel!: string;\r\n @Input('secondaryConfirmButtonIcon') secondaryConfirmButtonIcon!: string;\r\n @Input('secondaryConfirmButtonLoading') secondaryConfirmButtonLoading: boolean = false;\r\n @Input('isReadOnly') isReadOnly: boolean = true;\r\n @Input('cancelCustomRoute') public cancelCustomRoute!: string;\r\n @Input('disableConfirmButton') disableConfirmButton: boolean = false;\r\n @Input('disableSecondaryConfirmButton') disableSecondaryConfirmButton: boolean = false;\r\n @Input('disableNextPageButton') disableNextPageButton: boolean = false;\r\n @Input('disablePreviousPageButton') disablePreviousPageButton: boolean = false;\r\n\r\n @Output('confirmButtonActivated') confirmButtonActivated = new EventEmitter<boolean>();\r\n @Output('secondaryConfirmButtonActivated') secondaryConfirmButtonActivated = new EventEmitter<boolean>();\r\n @Output('activeIndexParent') activeIndexParent = new EventEmitter<number>();\r\n\r\n constructor(\r\n public messageService: MessageService,\r\n private location: Location,\r\n private router: Router\r\n ) {}\r\n\r\n onActiveIndexChange(event:any) {\r\n this._activeIndex = event;\r\n }\r\n\r\n cancel(){\r\n if(this.cancelCustomRoute){\r\n this.router.navigate([this.cancelCustomRoute])\r\n return\r\n }\r\n this.location.back();\r\n }\r\n\r\n nextPage() {\r\n this._activeIndex++;\r\n this.activeIndexParent.emit(this._activeIndex);\r\n return;\r\n }\r\n \r\n previousPage() {\r\n this._activeIndex--;\r\n this.activeIndexParent.emit(this._activeIndex);\r\n }\r\n \r\n confirm() {\r\n this.confirmButtonActivated.emit(true);\r\n }\r\n\r\n secondaryConfirm() {\r\n this.secondaryConfirmButtonActivated.emit(true);\r\n }\r\n}\r\n","<w-body-grid>\r\n <w-panel class=\"col-12 w-wizard-steps-panel\" [activeGrid]=\"false\">\r\n <p-steps [model]=\"stepsItems\" [activeIndex]=\"activeIndex\" (activeIndexChange)=\"onActiveIndexChange($event)\" [readonly]=\"isReadOnly\"></p-steps>\r\n </w-panel>\r\n\r\n <w-panel class=\"col-12 w-wizard-main-panel\" [activeGrid]=\"false\">\r\n\r\n <div class=\"flex flex-column align-items-center sm:align-items-start w-wizard-headings\">\r\n @if (stepsHeadings && stepsHeadings[activeIndex]) {\r\n <span class=\"w-wizard-heading\">\r\n {{stepsHeadings[activeIndex]}}\r\n </span>\r\n }\r\n @if (stepsSubheadings && stepsSubheadings[activeIndex]) {\r\n <span class=\"w-wizard-subheading\">\r\n {{stepsSubheadings[activeIndex]}}\r\n </span>\r\n }\r\n </div>\r\n\r\n @if (activeIndex == 0) {\r\n <ng-content select=\".step-1\" class=\"w-wizard-body\"></ng-content>\r\n }\r\n @if (activeIndex == 1) {\r\n <ng-content select=\".step-2\" class=\"w-wizard-body\"></ng-content>\r\n }\r\n @if (activeIndex == 2) {\r\n <ng-content select=\".step-3\" class=\"w-wizard-body\"></ng-content>\r\n }\r\n @if (activeIndex == 3) {\r\n <ng-content select=\".step-4\" class=\"w-wizard-body\"></ng-content>\r\n }\r\n @if (activeIndex == 4) {\r\n <ng-content select=\".step-5\" class=\"w-wizard-body\"></ng-content>\r\n }\r\n @if (activeIndex == 5) {\r\n <ng-content select=\".step-6\" class=\"w-wizard-body\"></ng-content>\r\n }\r\n @if (activeIndex == 6) {\r\n <ng-content select=\".step-7\" class=\"w-wizard-body\"></ng-content>\r\n }\r\n @if (activeIndex == 7) {\r\n <ng-content select=\".step-8\" class=\"w-wizard-body\"></ng-content>\r\n }\r\n @if (activeIndex == 8) {\r\n <ng-content select=\".step-9\" class=\"w-wizard-body\"></ng-content>\r\n }\r\n @if (activeIndex == 9) {\r\n <ng-content select=\".step-10\" class=\"w-wizard-body\"></ng-content>\r\n }\r\n @if (activeIndex == 10) {\r\n <ng-content select=\".step-11\" class=\"w-wizard-body\"></ng-content>\r\n }\r\n @if (activeIndex == 11) {\r\n <ng-content select=\".step-12\" class=\"w-wizard-body\"></ng-content>\r\n }\r\n @if (activeIndex == 12) {\r\n <ng-content select=\".step-13\" class=\"w-wizard-body\"></ng-content>\r\n }\r\n @if (activeIndex == 13) {\r\n <ng-content select=\".step-14\" class=\"w-wizard-body\"></ng-content>\r\n }\r\n @if (activeIndex == 14) {\r\n <ng-content select=\".step-15\" class=\"w-wizard-body\"></ng-content>\r\n }\r\n @if (activeIndex == 15) {\r\n <ng-content select=\".step-16\" class=\"w-wizard-body\"></ng-content>\r\n }\r\n @if (activeIndex == 16) {\r\n <ng-content select=\".step-17\" class=\"w-wizard-body\"></ng-content>\r\n }\r\n @if (activeIndex == 17) {\r\n <ng-content select=\".step-18\" class=\"w-wizard-body\"></ng-content>\r\n }\r\n @if (activeIndex == 18) {\r\n <ng-content select=\".step-19\" class=\"w-wizard-body\"></ng-content>\r\n }\r\n @if (activeIndex == 19) {\r\n <ng-content select=\".step-20\" class=\"w-wizard-body\"></ng-content>\r\n }\r\n\r\n <div class=\"flex justify-content-between flex-wrap m-auto\">\r\n <div class=\"flex align-items-center justify-content-center\">\r\n @if (activeIndex == 0) {\r\n <w-button\r\n [icon]=\"'pi-times'\"\r\n type=\"secondary\"\r\n [label]=\"cancelBtnLabel\"\r\n (onClick)=\"cancel()\">\r\n </w-button>\r\n }\r\n @if (activeIndex != 0) {\r\n <w-button\r\n [icon]=\"'pi-arrow-left'\"\r\n type=\"secondary\"\r\n [label]=\"previousBtnLabel\"\r\n [disabled]=\"disablePreviousPageButton\"\r\n (onClick)=\"previousPage()\">\r\n </w-button>\r\n }\r\n </div>\r\n @if (!(stepsItems.length -1 == activeIndex)) {\r\n <div class=\"flex align-items-center justify-content-center\">\r\n <w-button type=\"primary\"\r\n [icon]=\"'pi-arrow-right'\"\r\n [iconPos]=\"'right'\"\r\n [label]=\"nextBtnLabel\"\r\n [disabled]=\"disableNextPageButton\"\r\n (onClick)=\"nextPage()\">\r\n </w-button>\r\n </div>\r\n } @else {\r\n <div class=\"flex align-items-center justify-content-center\">\r\n @if (secondaryConfirmButtonLabel) {\r\n <w-button\r\n type=\"secondary\"\r\n class=\"w-wizard-button-gap\"\r\n [icon]=\"'pi '+secondaryConfirmButtonIcon\"\r\n [label]=\"secondaryConfirmButtonLabel\"\r\n [disabled]=\"disableSecondaryConfirmButton\"\r\n [loading]=\"secondaryConfirmButtonLoading\"\r\n (onClick)=\"secondaryConfirm()\">\r\n </w-button>\r\n }\r\n <w-button type=\"primary\"\r\n [icon]=\"'pi '+ confirmButtonIcon\"\r\n [label]=\"confirmButtonLabel\"\r\n [disabled]=\"disableConfirmButton\"\r\n [loading]=\"confirmButtonLoading\"\r\n (onClick)=\"confirm()\">\r\n </w-button>\r\n </div>\r\n }\r\n </div>\r\n </w-panel>\r\n</w-body-grid>\r\n","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { Tabs } from 'primeng/tabs';\r\n\r\n@Component({\r\n selector: 'w-tabview',\r\n templateUrl: './w-tabview.component.html',\r\n styleUrls: ['./w-tabview.component.scss'],\r\n standalone: false\r\n})\r\nexport class WTabviewComponent implements OnInit{\r\n\r\n @Input('headers') headers: string[] = ['Header 1', 'Header 2', 'Header 3'];\r\n @Input('disabledTabs') disabledTabs: boolean[] = [false, false, false];\r\n @Input('requiredTabs') requiredTabs: boolean[] = [false, false, false];\r\n @Input('validatedTabs') validatedTabs: boolean[] = [false, false, false];\r\n @Input('applyValidationStyle') applyValidationStyle: boolean = false;\r\n @Input('icons') icons!: string[];\r\n @Input('activeIndex') activeIndex: number = 0;\r\n @Input('type') type: string = \"regular\";\r\n @Input('titleTabActive') titleTabActive: boolean = false; \r\n @Input('keepTabsVisible') keepTabsVisible: boolean = false; \r\n @Input('lazy') lazy: boolean = true;\r\n @Output('outActiveIndex') outActiveIndex: EventEmitter<number> = new EventEmitter<number>();\r\n @ViewChild(Tabs) tabView!: Tabs;\r\n\r\n isScrollable: boolean = false;\r\n\r\n constructor(private cdref: ChangeDetectorRef){}\r\n\r\n ngOnInit(): void {\r\n this.cdref.detectChanges();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n this.checkTabsOverflow();\r\n }, 0);\r\n\r\n window.addEventListener('resize', () => {\r\n this.checkTabsOverflow();\r\n });\r\n }\r\n\r\n activeIndexChange(index: any) {\r\n this.activeIndex = index;\r\n this.outActiveIndex.emit(index)\r\n }\r\n\r\n checkTabsOverflow(): void {\r\n if (!this.tabView) {\r\n return;\r\n }\r\n\r\n const container = this.tabView.el.nativeElement.querySelector('.p-tabview-nav');\r\n\r\n if (container) {\r\n const isOverflowing = container.scrollWidth > container.clientWidth;\r\n this.isScrollable = isOverflowing;\r\n }\r\n }\r\n\r\n}\r\n","<!-- ToDo revisar tabs con iconos -->\r\n<p-tabs [value]=\"activeIndex\" [class]=\"type == 'regular' ? 'w-tabview-regular' : 'w-tabview-secondary'\"\r\n (valueChange)=\"activeIndexChange($event)\" [scrollable]=\"isScrollable\" [ngClass]=\"{'title-tabActive': titleTabActive}\" [scrollable]=\"true\" [lazy]=\"lazy\">\r\n <p-tablist>\r\n @if (headers.length > 0) {\r\n <p-tab [value]=\"0\" [disabled]=\"disabledTabs[0]\" [ngClass]=\"{'flex items-center !gap-2 text-inherit': (icons && icons[0])}\">\r\n @if (icons && icons[0]) {\r\n <i [class]=\"'pi '+icons[0]\"></i>\r\n }\r\n <div>\r\n @if (headers[0]) {\r\n <span class=\"p-tabview-title\">{{headers[0]}}</span>\r\n }\r\n @if (requiredTabs[0] && !disabledTabs[0]) {\r\n <span class=\"p-tabview-asterisk\" [ngClass]=\"{'not-validated': applyValidationStyle && !validatedTabs[0]}\">*</span>\r\n }\r\n </div>\r\n </p-tab>\r\n }\r\n @if (headers.length > 1) {\r\n <p-tab [value]=\"1\" [disabled]=\"disabledTabs[1]\" [ngClass]=\"{'flex items-center !gap-2 text-inherit': (icons && icons[0])}\">\r\n @if (icons && icons[1]) {\r\n <i [class]=\"'pi '+icons[1]\"></i>\r\n }\r\n <div>\r\n @if (headers[1]) {\r\n <span class=\"p-tabview-title\">{{headers[1]}}</span>\r\n }\r\n @if (requiredTabs[1] && !disabledTabs[1]) {\r\n <span class=\"p-tabview-asterisk\" [ngClass]=\"{'not-validated': applyValidationStyle && !validatedTabs[1]}\">*</span>\r\n }\r\n </div>\r\n </p-tab>\r\n }\r\n @if (headers.length > 2 ) {\r\n <p-tab [value]=\"2\" [disabled]=\"disabledTabs[2]\" [ngClass]=\"{'flex items-center !gap-2 text-inherit': (icons && icons[0])}\">\r\n @if (icons && icons[2]) {\r\n <i [class]=\"'pi '+icons[2]\"></i>\r\n }\r\n <div>\r\n @if (headers[2]) {\r\n <span class=\"p-tabview-title\">{{headers[2]}}</span>\r\n }\r\n @if (requiredTabs[2] && !disabledTabs[2]) {\r\n <span class=\"p-tabview-asterisk\" [ngClass]=\"{'not-validated': applyValidationStyle && !validatedTabs[2]}\">*</span>\r\n }\r\n </div>\r\n </p-tab>\r\n }\r\n @if (headers.length > 3) {\r\n <p-tab [value]=\"3\" [disabled]=\"disabledTabs[3]\" [ngClass]=\"{'flex items-center !gap-2 text-inherit': (icons && icons[0])}\">\r\n @if (icons && icons[3]) {\r\n <i [class]=\"'pi '+icons[3]\"></i>\r\n }\r\n <div>\r\n @if (headers[3]) {\r\n <span class=\"p-tabview-title\">{{headers[3]}}</span>\r\n }\r\n @if (requiredTabs[3] && !disabledTabs[3]) {\r\n <span class=\"p-tabview-asterisk\" [ngClass]=\"{'not-validated': applyValidationStyle && !validatedTabs[3]}\">*</span>\r\n }\r\n </div>\r\n </p-tab>\r\n }\r\n @if (headers.length > 4) {\r\n <p-tab [value]=\"4\" [disabled]=\"disabledTabs[4]\" [ngClass]=\"{'flex items-center !gap-2 text-inherit': (icons && icons[0])}\">\r\n @if (icons && icons[4]) {\r\n <i [class]=\"'pi '+icons[4]\"></i>\r\n }\r\n <div>\r\n @if (headers[4]) {\r\n <span class=\"p-tabview-title\">{{headers[4]}}</span>\r\n }\r\n @if (requiredTabs[4] && !disabledTabs[4]) {\r\n <span class=\"p-tabview-asterisk\" [ngClass]=\"{'not-validated': applyValidationStyle && !validatedTabs[4]}\">*</span>\r\n }\r\n </div>\r\n </p-tab>\r\n }\r\n @if (headers.length > 5) {\r\n <p-tab [value]=\"5\" [disabled]=\"disabledTabs[5]\" [ngClass]=\"{'flex items-center !gap-2 text-inherit': (icons && icons[0])}\">\r\n @if (icons && icons[5]) {\r\n <i [class]=\"'pi '+icons[5]\"></i>\r\n }\r\n <div>\r\n @if (headers[5]) {\r\n <span class=\"p-tabview-title\">{{headers[5]}}</span>\r\n }\r\n @if (requiredTabs[5] && !disabledTabs[5]) {\r\n <span class=\"p-tabview-asterisk\" [ngClass]=\"{'not-validated': applyValidationStyle && !validatedTabs[5]}\">*</span>\r\n }\r\n </div>\r\n </p-tab>\r\n }\r\n @if (headers.length > 6) {\r\n <p-tab [value]=\"6\" [disabled]=\"disabledTabs[6]\" [ngClass]=\"{'flex items-center !gap-2 text-inherit': (icons && icons[0])}\">\r\n @if (icons && icons[6]) {\r\n <i [class]=\"'pi '+icons[6]\"></i>\r\n }\r\n <div>\r\n @if (headers[6]) {\r\n <span class=\"p-tabview-title\">{{headers[6]}}</span>\r\n }\r\n @if (requiredTabs[6] && !disabledTabs[6]) {\r\n <span class=\"p-tabview-asterisk\" [ngClass]=\"{'not-validated': applyValidationStyle && !validatedTabs[6]}\">*</span>\r\n }\r\n </div>\r\n </p-tab>\r\n }\r\n @if (headers.length > 7) {\r\n <p-tab [value]=\"7\" [disabled]=\"disabledTabs[7]\" [ngClass]=\"{'flex items-center !gap-2 text-inherit': (icons && icons[0])}\">\r\n @if (icons && icons[7]) {\r\n <i [class]=\"'pi '+icons[7]\"></i>\r\n }\r\n <div>\r\n @if (headers[7]) {\r\n <span class=\"p-tabview-title\">{{headers[7]}}</span>\r\n }\r\n @if (requiredTabs[7] && !disabledTabs[7]) {\r\n <span class=\"p-tabview-asterisk\" [ngClass]=\"{'not-validated': applyValidationStyle && !validatedTabs[7]}\">*</span>\r\n }\r\n </div>\r\n </p-tab>\r\n }\r\n @if (headers.length > 8) {\r\n <p-tab [value]=\"8\" [disabled]=\"disabledTabs[8]\" [ngClass]=\"{'flex items-center !gap-2 text-inherit': (icons && icons[0])}\">\r\n @if (icons && icons[8]) {\r\n <i [class]=\"'pi '+icons[8]\"></i>\r\n }\r\n <div>\r\n @if (headers[8]) {\r\n <span class=\"p-tabview-title\">{{headers[8]}}</span>\r\n }\r\n @if (requiredTabs[8] && !disabledTabs[8]) {\r\n <span class=\"p-tabview-asterisk\" [ngClass]=\"{'not-validated': applyValidationStyle && !validatedTabs[8]}\">*</span>\r\n }\r\n </div>\r\n </p-tab>\r\n }\r\n @if (headers.length > 9) {\r\n <p-tab [value]=\"9\" [disabled]=\"disabledTabs[9]\" [ngClass]=\"{'flex items-center !gap-2 text-inherit': (icons && icons[0])}\">\r\n @if (icons && icons[9]) {\r\n <i [class]=\"'pi '+icons[9]\"></i>\r\n }\r\n <div>\r\n @if (headers[9]) {\r\n <span class=\"p-tabview-title\">{{headers[9]}}</span>\r\n }\r\n @if (requiredTabs[9] && !disabledTabs[9]) {\r\n <span class=\"p-tabview-asterisk\" [ngClass]=\"{'not-validated': applyValidationStyle && !validatedTabs[9]}\">*</span>\r\n }\r\n </div>\r\n </p-tab>\r\n }\r\n </p-tablist>\r\n <p-tabpanels>\r\n @if (headers.length > 0 ) {\r\n <p-tabpanel [value]=\"0\">\r\n @if (keepTabsVisible == true ? true : activeIndex == 0) {\r\n <ng-content select=\".panel-1\"></ng-content>\r\n }\r\n </p-tabpanel>\r\n }\r\n @if (headers.length > 1) {\r\n <p-tabpanel [value]=\"1\">\r\n @if (keepTabsVisible == true ? true : activeIndex == 1) {\r\n <ng-content select=\".panel-2\"></ng-content>\r\n }\r\n </p-tabpanel>\r\n }\r\n @if (headers.length > 2 ) {\r\n <p-tabpanel [value]=\"2\">\r\n @if (keepTabsVisible == true ? true : activeIndex == 2) {\r\n <ng-content select=\".panel-3\"></ng-content>\r\n }\r\n </p-tabpanel>\r\n }\r\n @if (headers.length > 3) {\r\n <p-tabpanel [value]=\"3\">\r\n @if (keepTabsVisible == true ? true : activeIndex == 3) {\r\n <ng-content select=\".panel-4\"></ng-content>\r\n }\r\n </p-tabpanel>\r\n }\r\n @if (headers.length > 4) {\r\n <p-tabpanel [value]=\"4\">\r\n @if (keepTabsVisible == true ? true : activeIndex == 4) {\r\n <ng-content select=\".panel-5\"></ng-content>\r\n }\r\n </p-tabpanel>\r\n }\r\n @if (headers.length > 5) {\r\n <p-tabpanel [value]=\"5\">\r\n @if (keepTabsVisible == true ? true : activeIndex == 5) {\r\n <ng-content select=\".panel-6\"></ng-content>\r\n }\r\n </p-tabpanel>\r\n }\r\n @if (headers.length > 6) {\r\n <p-tabpanel [value]=\"6\">\r\n @if (keepTabsVisible == true ? true : activeIndex == 6) {\r\n <ng-content select=\".panel-7\"></ng-content>\r\n }\r\n </p-tabpanel>\r\n }\r\n @if (headers.length > 7) {\r\n <p-tabpanel [value]=\"7\">\r\n @if (keepTabsVisible == true ? true : activeIndex == 7) {\r\n <ng-content select=\".panel-8\"></ng-content>\r\n }\r\n </p-tabpanel>\r\n }\r\n @if (headers.length > 8) {\r\n <p-tabpanel [value]=\"8\">\r\n @if (keepTabsVisible == true ? true : activeIndex == 8) {\r\n <ng-content select=\".panel-9\"></ng-content>\r\n }\r\n </p-tabpanel>\r\n }\r\n @if (headers.length > 9) {\r\n <p-tabpanel [value]=\"9\">\r\n @if (keepTabsVisible == true ? true : activeIndex == 9) {\r\n <ng-content select=\".panel-10\"></ng-content>\r\n }\r\n </p-tabpanel>\r\n }\r\n </p-tabpanels>\r\n</p-tabs>\r\n","import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-button-tabview',\r\n templateUrl: './w-button-tabview.component.html',\r\n styleUrls: ['./w-button-tabview.component.scss'],\r\n standalone: false, \r\n encapsulation: ViewEncapsulation.Emulated\r\n})\r\nexport class WButtonTabviewComponent implements OnInit{\r\n \r\n @Input('headers') headers: string[] = ['Header 1', 'Header 2', 'Header 3']; \r\n @Input('disabledTabs') disabledTabs: boolean[] = [false, false, false];\r\n @Input('icons') icons!: string[];\r\n @Input('activeIndex') activeIndex: number = 0;\r\n @Output('outActiveIndex') outActiveIndex: EventEmitter<number> = new EventEmitter<number>();\r\n \r\n constructor(private cdref: ChangeDetectorRef){}\r\n\r\n ngOnInit(): void {\r\n this.cdref.detectChanges();\r\n }\r\n\r\n activeIndexChange(index: any) {\r\n this.activeIndex = index;\r\n this.outActiveIndex.emit(index)\r\n }\r\n}\r\n","<p-tabs [value]=\"activeIndex\" class=\"w-button-tabview\" (valueChange)=\"activeIndexChange($event)\" [scrollable]=\"true\">\r\n <p-tablist>\r\n @if (headers.length > 0) {\r\n <p-tab [value]=\"0\" [disabled]=\"disabledTabs[0]\">\r\n @if(icons && icons[0]){\r\n <i [class]=\"'pi '+icons[0]\"></i>\r\n }\r\n @if(headers[0]){\r\n <span class=\"p-tabview-title\">{{headers[0]}}</span>\r\n }\r\n </p-tab>\r\n }\r\n @if (headers.length > 1) {\r\n <p-tab [value]=\"1\" [disabled]=\"disabledTabs[1]\">\r\n @if(icons && icons[1]){\r\n <i [class]=\"'pi '+icons[1]\"></i>\r\n }\r\n @if(headers[1]){\r\n <span class=\"p-tabview-title\">{{headers[1]}}</span>\r\n }\r\n </p-tab>\r\n }\r\n @if (headers.length > 2) {\r\n <p-tab [value]=\"2\" [disabled]=\"disabledTabs[2]\">\r\n @if(icons && icons[2]){\r\n <i [class]=\"'pi '+icons[2]\"></i>\r\n }\r\n @if(headers[2]){\r\n <span class=\"p-tabview-title\">{{headers[2]}}</span>\r\n }\r\n </p-tab>\r\n }\r\n @if (headers.length > 3) {\r\n <p-tab [value]=\"3\" [disabled]=\"disabledTabs[3]\">\r\n @if(icons && icons[3]){\r\n <i [class]=\"'pi '+icons[3]\"></i>\r\n }\r\n @if(headers[3]){\r\n <span class=\"p-tabview-title\">{{headers[3]}}</span>\r\n }\r\n </p-tab>\r\n }\r\n @if (headers.length > 4) {\r\n <p-tab [value]=\"4\" [disabled]=\"disabledTabs[4]\">\r\n @if(icons && icons[4]){\r\n <i [class]=\"'pi '+icons[4]\"></i>\r\n }\r\n @if(headers[4]){\r\n <span class=\"p-tabview-title\">{{headers[4]}}</span>\r\n }\r\n </p-tab>\r\n }\r\n @if (headers.length > 5) {\r\n <p-tab [value]=\"5\" [disabled]=\"disabledTabs[5]\">\r\n @if(icons && icons[5]){\r\n <i [class]=\"'pi '+icons[5]\"></i>\r\n }\r\n @if(headers[5]){\r\n <span class=\"p-tabview-title\">{{headers[5]}}</span>\r\n }\r\n </p-tab>\r\n }\r\n @if (headers.length > 6) {\r\n <p-tab [value]=\"6\" [disabled]=\"disabledTabs[6]\">\r\n @if(icons && icons[6]){\r\n <i [class]=\"'pi '+icons[6]\"></i>\r\n }\r\n @if(headers[6]){\r\n <span class=\"p-tabview-title\">{{headers[6]}}</span>\r\n }\r\n </p-tab>\r\n }\r\n @if (headers.length > 7) {\r\n <p-tab [value]=\"7\" [disabled]=\"disabledTabs[7]\">\r\n @if(icons && icons[7]){\r\n <i [class]=\"'pi '+icons[7]\"></i>\r\n }\r\n @if(headers[7]){\r\n <span class=\"p-tabview-title\">{{headers[7]}}</span>\r\n }\r\n </p-tab>\r\n }\r\n @if (headers.length > 8) {\r\n <p-tab [value]=\"8\" [disabled]=\"disabledTabs[8]\">\r\n @if(icons && icons[8]){\r\n <i [class]=\"'pi '+icons[8]\"></i>\r\n }\r\n @if(headers[8]){\r\n <span class=\"p-tabview-title\">{{headers[8]}}</span>\r\n }\r\n </p-tab>\r\n }\r\n @if (headers.length > 9) {\r\n <p-tab [value]=\"9\" [disabled]=\"disabledTabs[9]\">\r\n @if(icons && icons[9]){\r\n <i [class]=\"'pi '+icons[9]\"></i>\r\n }\r\n @if(headers[9]){\r\n <span class=\"p-tabview-title\">{{headers[9]}}</span>\r\n }\r\n </p-tab>\r\n }\r\n </p-tablist>\r\n <p-tabpanels>\r\n @if (headers.length > 0 ) {\r\n <p-tabpanel [value]=\"0\">\r\n @if (activeIndex == 0) {\r\n <ng-content select=\".panel-1\"></ng-content>\r\n }\r\n </p-tabpanel>\r\n }\r\n @if (headers.length > 1) {\r\n <p-tabpanel [value]=\"1\">\r\n @if (activeIndex == 1) {\r\n <ng-content select=\".panel-2\"></ng-content>\r\n }\r\n </p-tabpanel>\r\n }\r\n @if (headers.length > 2 ) {\r\n <p-tabpanel [value]=\"2\">\r\n @if (activeIndex == 2) {\r\n <ng-content select=\".panel-3\"></ng-content>\r\n }\r\n </p-tabpanel>\r\n }\r\n @if (headers.length > 3) {\r\n <p-tabpanel [value]=\"3\">\r\n @if (activeIndex == 3) {\r\n <ng-content select=\".panel-4\"></ng-content>\r\n }\r\n </p-tabpanel>\r\n }\r\n @if (headers.length > 4) {\r\n <p-tabpanel [value]=\"4\">\r\n @if (activeIndex == 4) {\r\n <ng-content select=\".panel-5\"></ng-content>\r\n }\r\n </p-tabpanel>\r\n }\r\n @if (headers.length > 5) {\r\n <p-tabpanel [value]=\"5\">\r\n @if (activeIndex == 5) {\r\n <ng-content select=\".panel-6\"></ng-content>\r\n }\r\n </p-tabpanel>\r\n }\r\n @if (headers.length > 6) {\r\n <p-tabpanel [value]=\"6\">\r\n @if (activeIndex == 6) {\r\n <ng-content select=\".panel-7\"></ng-content>\r\n }\r\n </p-tabpanel>\r\n }\r\n @if (headers.length > 7) {\r\n <p-tabpanel [value]=\"7\">\r\n @if (activeIndex == 7) {\r\n <ng-content select=\".panel-8\"></ng-content>\r\n }\r\n </p-tabpanel>\r\n }\r\n @if (headers.length > 8) {\r\n <p-tabpanel [value]=\"8\">\r\n @if (activeIndex == 8) {\r\n <ng-content select=\".panel-9\"></ng-content>\r\n }\r\n </p-tabpanel>\r\n }\r\n @if (headers.length > 9) {\r\n <p-tabpanel [value]=\"9\">\r\n @if (activeIndex == 9) {\r\n <ng-content select=\".panel-10\"></ng-content>\r\n }\r\n </p-tabpanel>\r\n }\r\n </p-tabpanels>\r\n</p-tabs>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { TreeDragDropService, TreeNode } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'w-tree',\r\n templateUrl: './w-tree.component.html',\r\n styleUrls: ['./w-tree.component.scss'],\r\n providers: [TreeDragDropService],\r\n standalone: false\r\n})\r\nexport class WTreeComponent implements OnInit{\r\n @Input('nodes') nodes!: any;\r\n @Input('selection') selection!: any;\r\n @Input('selectionMode') selectionMode: 'single' | 'multiple' | 'checkbox' = \"checkbox\";\r\n @Input('activeToggleButton') activeToggleButton: boolean = false;\r\n @Input('collapsedNodes') collapsedNodes: boolean = true;\r\n @Input('collapseButtonLabel') collapseButtonLabel : string = \"Collapse\";\r\n @Input('expandButtonLabel') expandButtonLabel : string = \"Expand\";\r\n @Input('propagateSelectionDown') propagateSelectionDown: boolean = true;\r\n @Input('propagateSelectionUp') propagateSelectionUp: boolean = true;\r\n @Input('activeFilter') activeFilter: boolean = false;\r\n @Input('filterPlaceholder') filterPlaceholder!: string;\r\n @Input('filterBy') filterBy!: string; \r\n @Input('emptyMessage') emptyMessage: string = \"Empty records\";\r\n @Input('loading') loading: boolean = false; \r\n @Input('draggableNodes') draggableNodes: boolean = false;\r\n @Input('draggableScope') draggableScope!: string;\r\n @Input('droppableNodes') droppableNodes: boolean = false;\r\n @Input('droppableScope') droppableScope!: string ;\r\n @Input('scrollHeight') scrollHeight!: string;\r\n @Input('activeVirtualScroll') activeVirtualScroll: boolean = false;\r\n @Input('virtualScrollItemSize') virtualScrollItemSize!: number;\r\n @Input('nodeItemTemplateName') nodeItemTemplateName: string = \"nodeItemTemplateName\";\r\n \r\n @Output() selectionChange = new EventEmitter<any>();\r\n @Output('onFilter') onFilterEmit: EventEmitter<any> = new EventEmitter();\r\n @Output('onNodeDrope') onNodeDropeEmit: EventEmitter<any> = new EventEmitter();\r\n\r\n ngOnInit(): void {\r\n }\r\n \r\n onSelectionChange(event: any){\r\n this.selectionChange.emit(event)\r\n }\r\n\r\n onFilter(event: any){\r\n this.onFilterEmit.emit(event);\r\n }\r\n\r\n onNodeDrope(event: any){\r\n this.onNodeDropeEmit.emit(event);\r\n }\r\n\r\n expandAll(){\r\n this.nodes.forEach((node: any) => {\r\n this.expandRecursive(node, true);\r\n } );\r\n this.collapsedNodes = false;\r\n }\r\n\r\n collapseAll(){\r\n this.nodes.forEach((node: any) => {\r\n this.expandRecursive(node, false);\r\n } );\r\n this.collapsedNodes = true;\r\n }\r\n\r\n private expandRecursive(node:TreeNode, isExpand:boolean){\r\n node.expanded = isExpand;\r\n if (node.children){\r\n node.children.forEach( childNode => {\r\n this.expandRecursive(childNode, isExpand);\r\n } );\r\n }\r\n }\r\n\r\n isPrimeIcon(icon: string){\r\n if(icon.includes('pi')) return true;\r\n return false;\r\n }\r\n\r\n getIcon(icon: string){\r\n return 'pi pi-fw ' + icon;\r\n }\r\n}\r\n","@if (activeToggleButton) {\r\n <div class=\"w-tree-buttontoggle flex justify-content-end flex-wrap card-container green-container\">\r\n @if (collapsedNodes) {\r\n <div>\r\n <w-button\r\n size=\"small\"\r\n type=\"secondary\"\r\n icon=\"pi pi-plus\"\r\n [label]=\"expandButtonLabel\"\r\n (onClick)=\"expandAll()\">\r\n </w-button>\r\n </div>\r\n } @else {\r\n <w-button\r\n size=\"small\"\r\n type=\"secondary\"\r\n icon=\"pi pi-minus\"\r\n [label]=\"collapseButtonLabel\"\r\n (onClick)=\"collapseAll()\">\r\n </w-button>\r\n }\r\n </div>\r\n}\r\n\r\n<p-tree class=\"w-full w-tree\" #wTree\r\n [value]=\"nodes\"\r\n [(selection)]=\"selection\"\r\n (selectionChange)=\"onSelectionChange($event)\"\r\n [selectionMode]=\"selectionMode\"\r\n [loading]=\"loading\"\r\n [filter]=\"activeFilter\"\r\n [filterPlaceholder]=\"filterPlaceholder\"\r\n [propagateSelectionDown]=\"propagateSelectionDown\"\r\n [propagateSelectionUp]=\"propagateSelectionUp\"\r\n [emptyMessage]=\"emptyMessage\"\r\n [draggableNodes]=\"draggableNodes\"\r\n [draggableScope]=\"draggableScope\"\r\n [droppableNodes]=\"droppableNodes\"\r\n [droppableScope]=\"droppableScope\"\r\n (onNodeDrop)=\"onNodeDrope($event)\"\r\n [virtualScroll]=\"activeVirtualScroll\"\r\n [virtualScrollItemSize]=\"virtualScrollItemSize\"\r\n [scrollHeight]=\"scrollHeight\"\r\n (onFilter)=\"onFilter($event)\"\r\n styleClass=\"w-tree\">\r\n <ng-template let-node [pTemplate]=\"nodeItemTemplateName\">\r\n <div class=\"flex p-elemnt\">\r\n @if (node.icon && isPrimeIcon(node.icon)) {\r\n <span class=\"w-tree-icon flex align-items-center justify-content-center\" [class]=\"getIcon(node.icon)\"></span>\r\n }\r\n @if (node.icon && isPrimeIcon(node.icon) == false) {\r\n <w-icons class=\"w-tree-icon flex align-items-center\" [name]=\"node.icon\" [height]=\"16\" [width]=\"18\" [color]=\"'#2e3134'\"></w-icons>\r\n }\r\n <div class=\"flex align-items-center\">{{node.label}}</div>\r\n </div>\r\n </ng-template>\r\n</p-tree>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-input-generic',\r\n templateUrl: './w-skeleton-input-generic.component.html',\r\n styleUrls: ['./w-skeleton-input-generic.component.css'],\r\n standalone: false\r\n})\r\nexport class WSkeletonInputGenericComponent {\r\n @Input('height') height: any = '32px';\r\n @Input('width') width: any = '100%';\r\n @Input('hasAlign') hasAlign: any = true;\r\n @Input('label') label: any;\r\n}\r\n","@if (hasAlign) {\r\n <div class=\"flex align-items-center w-height-label\">\r\n @if (label != undefined) {\r\n <label for=\"input-skeleton-generic\">\r\n <p-skeleton height=\"16px\" width=\"70px\"></p-skeleton>\r\n </label>\r\n }\r\n </div>\r\n}\r\n<p-skeleton id='input-skeleton-generic' [height]=\"height\" width=\"width\"></p-skeleton>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-generic',\r\n templateUrl: './w-skeleton-generic.component.html',\r\n styleUrls: ['./w-skeleton-generic.component.css'],\r\n standalone: false\r\n})\r\nexport class WSkeletonGenericComponent {\r\n @Input('height') height: string = \"300px\"; \r\n}\r\n","<w-panel-grid>\r\n <w-skeleton-input-generic class=\"col-12\" [hasAlign]=\"false\" [height]=\"height\"></w-skeleton-input-generic>\r\n</w-panel-grid>","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-timeline',\r\n templateUrl: './w-skeleton-timeline.component.html',\r\n styleUrls: ['./w-skeleton-timeline.component.scss'],\r\n standalone: false\r\n})\r\nexport class WSkeletonTimelineComponent implements OnInit {\r\n @Input('eventsNumber') eventsNumber: number = 3;\r\n @Input('align') align: string = 'alternate';\r\n @Input('setCustomOpposite') setCustomOpposite: boolean = false;\r\n\r\n events: any[] = []\r\n\r\n ngOnInit(): void {\r\n this.events.length = this.eventsNumber;\r\n }\r\n\r\n getClassNames(){\r\n let className = 'w-skeleton-timeline'; \r\n return (className + (this.setCustomOpposite ? ' custom-opposite' : ''));\r\n }\r\n}\r\n","<p-timeline [value]=\"events\" [align]=\"align\" [styleClass]=\"getClassNames()\">\r\n <ng-template pTemplate=\"marker\" let-event>\r\n <p-skeleton shape=\"circle\" size=\"2rem\"></p-skeleton>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\" let-event>\r\n <w-panel [reduced]=\"true\">\r\n <p-skeleton class=\"col-12\" width=\"100%\" height=\"20px\"></p-skeleton>\r\n <p-skeleton class=\"col-12\" width=\"100%\" height=\"100px\"></p-skeleton>\r\n </w-panel>\r\n </ng-template>\r\n @if (setCustomOpposite; as event) {\r\n <ng-template pTemplate=\"opposite\" let-event>\r\n <div class=\"opposite-skeleton\">\r\n <w-skeleton-generic height=\"16px\"></w-skeleton-generic>\r\n </div>\r\n </ng-template>\r\n }\r\n</p-timeline>","import { Component, ContentChild, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, TemplateRef } from '@angular/core';\r\nimport { WTimelineEventItem } from '../../shared/models/w-timeline-event-item.model';\r\nimport { ActionButtonResponse } from '../../shared/models/action-button-response.model';\r\n\r\n@Component({\r\n selector: 'w-timeline',\r\n templateUrl: './w-timeline.component.html',\r\n styleUrls: ['./w-timeline.component.scss'],\r\n standalone: false\r\n})\r\n\r\nexport class WTimelineComponent implements OnChanges{\r\n @Input('events') events!: WTimelineEventItem[];\r\n @Input('header') header!: string;\r\n @Input('panel') panel: boolean = false;\r\n @Input('align') align: string = \"alternate\";\r\n @Input('setCustomOpposite') setCustomOpposite: boolean = false;\r\n @Input('customOppositeProperty') customOppositeProperty: string = \"\";\r\n @Input('isLoading') isLoading: boolean = true;\r\n @Input('emptyMessage') emptyMessage: string = 'No events to show';\r\n @Input('reducedPanelMargin') reducedPanelMargin: boolean = false; \r\n @Input('reducedEventPanelMargin') reducedEventPanelMargin: boolean = false; \r\n @Input('activePanelGrid') activePanelGrid: boolean = true; \r\n @Input('activePanelTitle') activePanelTitle: boolean = true; \r\n @Input('activePanelSubtitle') activePanelSubtitle: boolean = true; \r\n @Input('disabledPanelCursor') disabledPanelCursor: boolean = false; \r\n @Input('eventIdName') eventIdName!: string;\r\n\r\n @ContentChild('contentTemplate') contentTemplate!: TemplateRef<any>;\r\n @Output('onEventCard') onEventCardEmit: EventEmitter<ActionButtonResponse | any> = new EventEmitter<ActionButtonResponse | any>(); \r\n\r\n constructor() {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(changes['events'] && changes['events'].previousValue != null){\r\n this.events = [...changes['events'].currentValue];\r\n }\r\n }\r\n\r\n onEventCard(event: WTimelineEventItem | any) {\r\n if(event){\r\n this.onEventCardEmit.emit(event)\r\n }\r\n }\r\n\r\n getClassNames(){\r\n let className = 'w-timeline'; \r\n return (className + (this.setCustomOpposite ? ' custom-opposite' : ''));\r\n }\r\n\r\n getCustomOppositeValue(event: any){\r\n return this.customOppositeProperty ? event[this.customOppositeProperty] : event.date;\r\n }\r\n \r\n get locale() {\r\n return window.navigator.language.slice(0,2);\r\n }\r\n}\r\n","<div *ngIf=\"panel; else timeline\">\r\n <w-panel [title]=\"header\" [reduced]=\"reducedPanelMargin\">\r\n <div class=\"col-12\">\r\n <ng-container *ngTemplateOutlet=\"timeline\"></ng-container>\r\n </div>\r\n </w-panel>\r\n</div>\r\n\r\n<ng-template #timeline>\r\n <p-timeline *ngIf=\"!isLoading; else timelineSkeleton\" [value]=\"events\" [align]=\"align\" [styleClass]=\"getClassNames()\">\r\n <ng-template pTemplate=\"marker\" let-event>\r\n <span \r\n class=\"flex w-2rem h-2rem align-items-center justify-content-center text-white border-circle z-0 shadow-1 shadow-2\"\r\n [style.backgroundColor]=\"event.color\">\r\n <i [ngClass]=\"'pi '+event.icon\"></i>\r\n </span>\r\n </ng-template>\r\n <ng-template pTemplate=\"content\" let-event>\r\n <w-panel [class]=\"disabledPanelCursor ? '' : 'w-timeline-panel' \" [title]=\"activePanelTitle ? event.status : ''\" [subtitle]=\"activePanelSubtitle ? event.date : ''\" [activeGrid]=\"activePanelGrid\" [reduced]=\"reducedEventPanelMargin\" (click)=\"onEventCard(eventIdName ? event[eventIdName] : event)\">\r\n <ng-container *ngIf=\"contentTemplate\">\r\n <ng-container \r\n *ngTemplateOutlet=\"contentTemplate; context: { $implicit: event }\">\r\n </ng-container>\r\n </ng-container>\r\n </w-panel>\r\n </ng-template>\r\n <ng-template *ngIf=\"setCustomOpposite\" pTemplate=\"opposite\" let-event>\r\n {{ getCustomOppositeValue(event) }}\r\n </ng-template>\r\n </p-timeline>\r\n <p *ngIf=\"events.length === 0 && !isLoading\">\r\n {{emptyMessage}}\r\n </p>\r\n <ng-template #timelineSkeleton>\r\n <w-skeleton-timeline class=\"col-12\" [align]=\"align\" [setCustomOpposite]=\"setCustomOpposite\"></w-skeleton-timeline>\r\n </ng-template>\r\n</ng-template>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-view-text',\r\n templateUrl: './w-view-text.component.html',\r\n styleUrls: ['./w-view-text.component.scss'],\r\n standalone: false\r\n})\r\nexport class WViewTextComponent {\r\n @Input('label') label!: string;\r\n @Input('value') value!: any;\r\n @Input('tooltip') tooltip!: string;\r\n @Input() tooltipPosition?: string;\r\n @Input('layout') layout: string = 'horizontal';\r\n @Input('displayAsList') displayAsList: boolean = false; \r\n\r\n checkEmptyValue(value: any){\r\n if(value == null || value == \"\" || value == undefined){\r\n return '-'; \r\n }else{\r\n if(this.displayAsList == true){\r\n return this.transformValueToList(value); \r\n }\r\n\r\n return value; \r\n }\r\n }\r\n\r\n transformValueToList(value: any){\r\n let valueString = value;\r\n \r\n if(Array.isArray(value)){\r\n valueString = value.join(',');\r\n }\r\n \r\n const valueSplit = valueString.split(',');\r\n const formattedValueToList = valueSplit.map((val: any) => `- ${val.trim()}`);\r\n const valueAsList = formattedValueToList.join('\\n');\r\n return valueAsList; \r\n }\r\n}\r\n","@if (layout == 'horizontal') {\r\n <div class=\"w-view-text-content grid flex align-content-center\">\r\n <div class=\"col-4\">\r\n <w-input-label class=\"flex\" [label]=\"label\" [tooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition\"></w-input-label>\r\n </div>\r\n <div class=\"col-8 w-view-text-value\" [ngClass]=\"{'w-text-value-list': displayAsList == true}\">\r\n <span class=\"flex\"> {{checkEmptyValue(value)}} </span>\r\n </div>\r\n </div>\r\n} @else {\r\n <div class=\"flex flex-column\">\r\n <w-input-label class=\"flex\" [label]=\"label\" [tooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition\"></w-input-label>\r\n <div class=\"flex input-label-gap-divider\"></div>\r\n <div class=\"flex w-view-text-value\" [ngClass]=\"{'w-text-value-list': displayAsList == true}\">\r\n <span class=\"flex\"> {{checkEmptyValue(value)}} </span>\r\n </div>\r\n <div class=\"flex spacingXSMDivider\"></div>\r\n </div>\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-sidebar',\r\n templateUrl: './w-skeleton-sidebar.component.html',\r\n styleUrls: ['./w-skeleton-sidebar.component.scss'],\r\n standalone: false\r\n})\r\nexport class WSkeletonSidebarComponent implements OnInit {\r\n @Input('itemsNumber') items: any = 6;\r\n\r\n ngOnInit(): void {\r\n this.items = Array(this.items);\r\n }\r\n}\r\n","@for (item of items; track item) {\r\n <div class=\"w-view-text-content grid flex align-content-center\">\r\n <div class=\"col-4 body\">\r\n <p class=\"w-view-text-label-color\"> <p-skeleton></p-skeleton> </p>\r\n </div>\r\n <div class=\"col-8 body\">\r\n <p> <p-skeleton></p-skeleton> </p>\r\n </div>\r\n </div>\r\n}","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-list',\r\n templateUrl: './w-skeleton-list.component.html',\r\n styleUrls: ['./w-skeleton-list.component.css'],\r\n standalone: false\r\n})\r\nexport class WSkeletonListComponent {\r\n\r\n @Input('headerPanel') headerPanel: boolean = true;\r\n @Input('contentReduced') contentReduced: boolean = false;\r\n \r\n}\r\n","<w-body-container>\r\n @if (headerPanel) {\r\n <w-header-panel class=\"col-12\">\r\n <div class=\"main-actions\">\r\n <p-skeleton height=\"32px\" width=\"190px\"></p-skeleton>\r\n <p-skeleton height=\"32px\" width=\"190px\"></p-skeleton>\r\n </div>\r\n </w-header-panel>\r\n }\r\n <w-panel class=\"col-12\" [reduced]=\"contentReduced\">\r\n <w-skeleton-input-generic class=\"col-12\" [hasAlign]=\"false\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-12\" [hasAlign]=\"false\" height=\"300px\"></w-skeleton-input-generic>\r\n </w-panel>\r\n</w-body-container>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-iframe',\r\n templateUrl: './w-skeleton-iframe.component.html',\r\n styleUrls: ['./w-skeleton-iframe.component.css'],\r\n standalone: false\r\n})\r\nexport class WSkeletonIframeComponent {\r\n\r\n}\r\n","<p-skeleton width=\"100%\" height=\"4rem\" styleClass=\"mb-2\"></p-skeleton>\r\n<p-skeleton width=\"100%\" height=\"30rem\" styleClass=\"mb-2\"></p-skeleton>\r\n<p-skeleton width=\"100%\" height=\"4rem\"></p-skeleton>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-edit',\r\n templateUrl: './w-skeleton-edit.component.html',\r\n styleUrls: ['./w-skeleton-edit.component.css'],\r\n standalone: false\r\n})\r\nexport class WSkeletonEditComponent {\r\n @Input('columnsNumber') columnsNumber: number = 3;\r\n columnsArray: any[] = new Array(this.columnsNumber);\r\n\r\n ngOnInit(): void{\r\n this.columnsArray.length = this.columnsNumber;\r\n }\r\n}\r\n","<w-body-container>\r\n <w-header-panel class=\"col-12\">\r\n <div class=\"main-actions\">\r\n <p-skeleton height=\"32px\" width=\"190px\"></p-skeleton>\r\n <p-skeleton height=\"32px\" width=\"190px\"></p-skeleton>\r\n </div>\r\n </w-header-panel>\r\n @for (item of columnsArray; track item) {\r\n @if (columnsNumber == 1) {\r\n <w-panel class=\"col-12\">\r\n <p-skeleton class=\"col-12\" width=\"100%\" height=\"20px\"></p-skeleton>\r\n <p-skeleton class=\"col-12\" height=\"500px\"></p-skeleton>\r\n </w-panel>\r\n }\r\n @if (columnsNumber == 3) {\r\n <w-panel class=\"col-4\">\r\n <p-skeleton class=\"col-12\" width=\"100%\" height=\"20px\"></p-skeleton>\r\n <p-skeleton class=\"col-12\" height=\"500px\"></p-skeleton>\r\n </w-panel>\r\n }\r\n @if (columnsNumber == 2) {\r\n <w-panel class=\"col-6\">\r\n <p-skeleton class=\"col-12\" width=\"100%\" height=\"20px\"></p-skeleton>\r\n <p-skeleton class=\"col-12\" height=\"500px\"></p-skeleton>\r\n </w-panel>\r\n }\r\n }\r\n <w-panel class=\"col-12\">\r\n <p-skeleton class=\"col-12\" width=\"100%\" height=\"20px\"></p-skeleton>\r\n <p-skeleton class=\"col-12\" height=\"500px\"></p-skeleton>\r\n </w-panel>\r\n</w-body-container>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-edit-product',\r\n templateUrl: './w-skeleton-edit-product.component.html',\r\n styleUrls: ['./w-skeleton-edit-product.component.css'],\r\n standalone: false\r\n})\r\nexport class WSkeletonEditProductComponent {\r\n\r\n}\r\n","<w-body-container>\r\n <w-header-panel class=\"col-12\">\r\n <div class=\"main-actions\" >\r\n <p-skeleton height=\"32px\" width=\"129px\"></p-skeleton>\r\n </div>\r\n </w-header-panel>\r\n\r\n <w-panel class=\"col-12 xl:col-8\">\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\" height=\"140px\"></w-skeleton-input-generic>\r\n\r\n <w-skeleton-input-generic class=\"col-6 xl:col-3\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-6 xl:col-3\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-6 xl:col-3\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-6 xl:col-3\" label=\"''\"></w-skeleton-input-generic>\r\n\r\n <w-skeleton-input-generic class=\"col-6 xl:col-4\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-6 xl:col-4\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-6 xl:col-4\" label=\"''\"></w-skeleton-input-generic>\r\n </w-panel>\r\n <w-panel class=\"col-12 xl:col-4\">\r\n <w-panel-grid class=\"col-12\">\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\"></w-skeleton-input-generic>\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\"></w-skeleton-input-generic>\r\n </w-panel-grid>\r\n </w-panel>\r\n <w-panel class=\"col-12 xl:col-12\">\r\n <w-skeleton-input-generic class=\"col-4\" label=\"''\"></w-skeleton-input-generic>\r\n </w-panel>\r\n <w-panel class=\"col-12 xl:col-12\">\r\n <w-skeleton-input-generic class=\"col-12\" label=\"''\" height=\"140px\"></w-skeleton-input-generic>\r\n </w-panel>\r\n</w-body-container>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-powerbi-report',\r\n templateUrl: './w-skeleton-powerbi-report.component.html',\r\n styleUrls: ['./w-skeleton-powerbi-report.component.css'],\r\n standalone: false\r\n})\r\nexport class WSkeletonPowerbiReportComponent {\r\n\r\n}\r\n","<div class=\"flex justify-content-between flex-wrap mb-3\">\r\n <div class=\"flex align-items-center justify-content-center\">\r\n <p-skeleton width=\"15rem\" height=\"3rem\"></p-skeleton>\r\n </div>\r\n <div class=\"flex align-items-center justify-content-center\">\r\n <p-skeleton shape=\"circle\" size=\"3rem\" styleClass=\"mr-2\"></p-skeleton>\r\n <p-skeleton shape=\"circle\" size=\"3rem\" styleClass=\"mr-2\"></p-skeleton>\r\n </div>\r\n</div>\r\n<p-skeleton width=\"100%\" height=\"100vh\" styleClass=\"mb-2\"></p-skeleton>\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-query-builder',\r\n templateUrl: './w-skeleton-query-builder.component.html',\r\n styleUrls: ['./w-skeleton-query-builder.component.scss'],\r\n standalone: false\r\n})\r\nexport class WSkeletonQueryBuilderComponent {\r\n @Input('rule') rule: string = \"Rule\";\r\n @Input('ruleSet') ruleSet: string = \"Rule set\";\r\n\r\n stateOptions: any[] = [{label: 'And', value: 'and'}, {label: 'Or', value: 'or'}];\r\n}\r\n","<w-panel-grid>\r\n <div class=\"col-12\">\r\n <div class=\"flex justify-content-between flex-wrap card-container\">\r\n <div class=\"flex align-items-center justify-content-center mx-2\">\r\n <button pButton pRipple type=\"button\" icon=\"pi pi-chevron-down\" class=\"p-button-rounded p-button-text\"></button>\r\n <w-select-button [stateOptions]=\"stateOptions\" optionLabel=\"label\" optionValue=\"value\"></w-select-button> \r\n </div>\r\n <div class=\"flex align-items-center justify-content-center mx-2\"></div>\r\n <div class=\"flex align-items-center justify-content-center mx-2 gap-3\">\r\n <w-button [label]=\"rule\" type=\"secondary\" icon=\"pi-plus\"></w-button>\r\n <w-button [label]=\"ruleSet\" type=\"secondary\" icon=\"pi-plus\"></w-button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 pl-6\">\r\n <div class=\"flex justify-content-between flex-wrap card-container wapp-query-builder-skeleton-rule pl-3\">\r\n <div class=\"flex align-items-center justify-content-center gap-3\">\r\n <div class=\"w-skeleton-query-builder-input\"><p-skeleton width=\"8rem\" height=\"14px\"></p-skeleton></div>\r\n <div class=\"w-skeleton-query-builder-input\"><p-skeleton width=\"8rem\" height=\"14px\"></p-skeleton></div>\r\n <div class=\"w-skeleton-query-builder-input\"><p-skeleton width=\"4rem\" height=\"14px\"></p-skeleton></div>\r\n </div>\r\n <div class=\"flex align-items-center justify-content-center mx-2\"></div>\r\n <div class=\"flex align-items-center justify-content-center mx-2\">\r\n <w-button type=\"tertiary\" icon=\"pi-times\"></w-button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-12 pl-6\">\r\n <div class=\"flex justify-content-between flex-wrap card-container wapp-query-builder-skeleton-rule pl-3\">\r\n <div class=\"flex align-items-center justify-content-center gap-3\">\r\n <div class=\"w-skeleton-query-builder-input\"><p-skeleton width=\"8rem\" height=\"14px\"></p-skeleton></div>\r\n <div class=\"w-skeleton-query-builder-input\"><p-skeleton width=\"8rem\" height=\"14px\"></p-skeleton></div>\r\n <div class=\"w-skeleton-query-builder-input\"><p-skeleton width=\"4rem\" height=\"14px\"></p-skeleton></div>\r\n </div>\r\n <div class=\"flex align-items-center justify-content-center mx-2\"></div>\r\n <div class=\"flex align-items-center justify-content-center mx-2\">\r\n <w-button type=\"tertiary\" icon=\"pi-times\"></w-button>\r\n </div>\r\n </div>\r\n </div>\r\n</w-panel-grid>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-tree',\r\n templateUrl: './w-skeleton-tree.component.html',\r\n styleUrls: ['./w-skeleton-tree.component.css'],\r\n standalone: false\r\n})\r\nexport class WSkeletonTreeComponent implements OnInit {\r\n @Input('rowsToShow') rowsToShow: number = 4;\r\n @Input('rowHeight') rowHeight: string = '24px';\r\n rowsArray: any = [];\r\n\r\n constructor(){}\r\n\r\n ngOnInit(): void{\r\n this.rowsArray.length = this.rowsToShow-1;\r\n }\r\n}\r\n","<div class=\"border-round border-1 surface-border p-4 surface-card\">\r\n <ul class=\"m-0 p-0 list-none\">\r\n @for (row of rowsArray; track row) {\r\n <li>\r\n <p-skeleton width=\"100%\" height=\"{{rowHeight}}\" styleClass=\"mb-4\"></p-skeleton>\r\n </li>\r\n }\r\n <li>\r\n <p-skeleton width=\"100%\" height=\"{{rowHeight}}\"></p-skeleton>\r\n </li>\r\n </ul>\r\n</div>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-profile-sidebar',\r\n templateUrl: './w-skeleton-profile-sidebar.component.html',\r\n styleUrls: ['./w-skeleton-profile-sidebar.component.css'],\r\n standalone: false\r\n})\r\nexport class WSkeletonProfileSidebarComponent {\r\n\r\n}\r\n","<div class=\"flex justify-content-center flex-wrap\">\r\n <p-skeleton shape=\"circle\" size=\"4rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"flex justify-content-center flex-wrap\">\r\n <p-skeleton width=\"10rem\" styleClass=\"mb-3\"></p-skeleton>\r\n <p-skeleton width=\"20rem\" styleClass=\"mb-5\"></p-skeleton>\r\n </div>\r\n <div class=\"flex justify-content-center flex-wrap mb-3\">\r\n <p-skeleton width=\"20rem\" height=\"5rem\"></p-skeleton>\r\n </div>\r\n <div class=\"flex justify-content-center flex-wrap mb-3\">\r\n <p-skeleton width=\"20rem\" height=\"4rem\"></p-skeleton>\r\n </div>\r\n ","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-user-profile-info-sidebar',\r\n templateUrl: './w-skeleton-user-profile-info-sidebar.component.html',\r\n styleUrls: ['./w-skeleton-user-profile-info-sidebar.component.css'],\r\n standalone: false\r\n})\r\nexport class WSkeletonUserProfileInfoSidebarComponent {\r\n\r\n}\r\n","<div class=\"flex mb-3\">\r\n <div class=\"mb-2 justify-content-center\">\r\n <div class=\"inline-block w-2rem h-8rem p-4 mx-5\">\r\n <p-skeleton shape=\"circle\" size=\"4rem\" styleClass=\"mr-2\"></p-skeleton>\r\n </div>\r\n <div class=\"inline-block w-25rem h-8rem p-4 ml-3\">\r\n <p-skeleton width=\"20rem\" styleClass=\"mb-2\"></p-skeleton>\r\n <p-skeleton width=\"15rem\" styleClass=\"mb-4\"></p-skeleton>\r\n <p-skeleton width=\"10rem\"></p-skeleton>\r\n </div>\r\n <div class=\"px-5 pb-2\">\r\n <div class=\"grid\">\r\n <div class=\"col-4\">\r\n <p-skeleton width=\"8rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-8\">\r\n <p-skeleton width=\"16rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-4\">\r\n <p-skeleton width=\"8rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-8\">\r\n <p-skeleton width=\"16rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-4\">\r\n <p-skeleton width=\"8rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-8\">\r\n <p-skeleton width=\"16rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-4\">\r\n <p-skeleton width=\"8rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-8\">\r\n <p-skeleton width=\"16rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-4\">\r\n <p-skeleton width=\"8rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-8\">\r\n <p-skeleton width=\"16rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-4\">\r\n <p-skeleton width=\"8rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n <div class=\"col-8\">\r\n <p-skeleton width=\"16rem\" styleClass=\"mb-3\"></p-skeleton>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n </div>\r\n </div>\r\n ","import { Injectable, Pipe, PipeTransform } from '@angular/core';\r\n \r\n@Pipe({\r\n name: 'wappSummary',\r\n standalone: false\r\n})\r\n@Injectable({ \r\n providedIn: 'root' \r\n})\r\nexport class WSummaryPipe implements PipeTransform {\r\n \r\n transform(value: string, maxLength: number) {\r\n if (!value) {\r\n return value; \r\n }\r\n \r\n if (value.length > maxLength) {\r\n return value.substring(0, maxLength) + ' ... ';\r\n } else {\r\n return value; \r\n }\r\n }\r\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-chip',\r\n templateUrl: './w-chip.component.html',\r\n styleUrls: ['./w-chip.component.scss'],\r\n standalone: false\r\n})\r\nexport class WChipComponent implements OnInit {\r\n\r\n @Input('image') image!: string;\r\n @Input('icon') icon!: string;\r\n\r\n @Input('iconColor') iconColor: string = \"#1e293b\";\r\n @Input('iconHeight') iconHeight: number = 12;\r\n @Input('iconWidth') iconWidth: number = 12;\r\n @Input('backgroundColor') backgroundColor: string = \"#e2e8f0\";\r\n @Input('labelColor') labelColor: string = \"#1e293b\";\r\n \r\n @Input('wappIcon') wappIcon!: string;\r\n @Input('label') label!: string;\r\n @Input('tooltip') tooltip!: string;\r\n @Input('tooltipPosition') tooltipPosition: string = 'bottom';\r\n \r\n @Output('click') click: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n constructor(private elementRef: ElementRef) {}\r\n\r\n ngOnInit(): void {\r\n this.elementRef.nativeElement.style.setProperty(\"--bgcolor\", this.backgroundColor)\r\n }\r\n\r\n chipClick() {\r\n this.click.emit(true);\r\n }\r\n}\r\n","@if (icon || image) {\r\n <p-chip\r\n class=\"w-chip\"\r\n [pTooltip]=\"tooltip\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n (click)=\"chipClick()\">\r\n @if (icon) {\r\n <i class=\"p-chip-icon\" [class]=\"'pi ' + icon\" [style]=\"'color: '+iconColor\"></i>\r\n } @else {\r\n <img [src]=\"image\">\r\n }\r\n <span class=\"p-chip-text\" [style]=\"'color:'+ labelColor\"> {{label}} </span>\r\n </p-chip>\r\n} @else {\r\n <p-chip class=\"w-chip\"\r\n [pTooltip]=\"tooltip\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n (click)=\"chipClick()\">\r\n @if (wappIcon) {\r\n <w-icons\r\n [name]=\"wappIcon\"\r\n [color]=\"iconColor\"\r\n [height]=\"iconHeight\"\r\n [width]=\"iconWidth\"\r\n class=\"wapp-chip-icon\">\r\n </w-icons>\r\n }\r\n <span class=\"p-chip-text\" [style]=\"'color:'+ labelColor\"> {{label}} </span>\r\n </p-chip>\r\n}\r\n\r\n\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { IconType } from '../../shared/enums/enum';\r\n\r\n@Component({\r\n selector: 'w-view-boolean',\r\n templateUrl: './w-view-boolean.component.html',\r\n styleUrls: ['./w-view-boolean.component.scss'],\r\n standalone: false\r\n})\r\nexport class WViewBooleanComponent implements OnInit {\r\n @Input('label') label!: string;\r\n @Input('value') value!: boolean | null;\r\n @Input('tooltip') tooltip!: string;\r\n @Input() tooltipPosition?: string;\r\n @Input('trueIcon') trueIcon: string = \"pi pi-circle-fill\";\r\n @Input('trueIconColor') trueIconColor: string = \"var(--w-success-main-color)\";\r\n @Input('falseIcon') falseIcon: string = \"pi pi-circle-fill\"; \r\n @Input('falseIconColor') falseIconColor: string = \"var(--w-error-main-color)\"; \r\n @Input('nullIcon') nullIcon: string = \"pi pi-minus-circle\"; \r\n @Input('nullIconColor') nullIconColor: string = \"var(--w-text-500)\"; \r\n @Input('layout') layout: string = 'horizontal';\r\n\r\n iconType: typeof IconType = IconType;\r\n\r\n ngOnInit(): void {}\r\n\r\n getIconType(icon: string){\r\n if(icon.includes(\"pi pi-\")){\r\n return IconType.pIcon;\r\n }else {\r\n return IconType.wIcon;\r\n }\r\n }\r\n}\r\n","@if (layout == 'horizontal') {\r\n <div class=\"w-view-text-content grid flex align-content-center\">\r\n <div class=\"col-4 w-view-text-label\">\r\n <w-input-label class=\"flex\" [label]=\"label\" [tooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition\"></w-input-label>\r\n </div>\r\n <div class=\"col-8 w-view-text-value\">\r\n <ng-container *ngTemplateOutlet=\"icons\"></ng-container>\r\n </div>\r\n </div>\r\n} @else {\r\n <div class=\"flex flex-column\">\r\n <w-input-label class=\"flex\" [label]=\"label\" [tooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition\"></w-input-label>\r\n <div class=\"flex input-label-gap-divider\"></div>\r\n <div class=\"flex w-view-text-value-vertical\">\r\n <ng-container *ngTemplateOutlet=\"icons\"></ng-container>\r\n </div>\r\n <div class=\"flex spacingXSMDivider\"></div>\r\n </div>\r\n}\r\n\r\n<ng-template #icons>\r\n @if (value == true && getIconType(trueIcon) == iconType.pIcon) {\r\n <span [class]=\"trueIcon\" [style.color]=\"trueIconColor\"></span>\r\n }\r\n @if (value == false && getIconType(falseIcon) == iconType.pIcon) {\r\n <span [class]=\"falseIcon\" [style.color]=\"falseIconColor\"></span>\r\n }\r\n @if (value == null && getIconType(nullIcon) == iconType.pIcon) {\r\n <span [class]=\"nullIcon\" [style.color]=\"nullIconColor\"></span>\r\n }\r\n @if (value == true && getIconType(trueIcon) == iconType.wIcon) {\r\n <w-icons class=\"w-sidebar-icon\" [name]=\"trueIcon\" [color]=\"trueIconColor\" [width]=\"12\" [height]=\"12\"></w-icons>\r\n }\r\n @if (value == false && getIconType(falseIcon) == iconType.wIcon) {\r\n <w-icons class=\"w-sidebar-icon\" [name]=\"falseIcon\" [color]=\"falseIconColor\" [width]=\"12\" [height]=\"12\"></w-icons>\r\n }\r\n @if (value == null && getIconType(nullIcon) == iconType.wIcon) {\r\n <w-icons class=\"w-sidebar-icon\" [name]=\"nullIcon\" [color]=\"nullIconColor\" [width]=\"12\" [height]=\"12\"></w-icons>\r\n }\r\n</ng-template>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-skeleton-form',\r\n templateUrl: './w-skeleton-form.component.html',\r\n styleUrls: ['./w-skeleton-form.component.css'],\r\n standalone: false\r\n})\r\nexport class WSkeletonFormComponent implements OnInit {\r\n @Input('rowsToShow') rowsToShow: number = 3;\r\n rowsArray: any = [];\r\n\r\n constructor(){}\r\n\r\n ngOnInit(): void{\r\n this.rowsArray.length = this.rowsToShow;\r\n }\r\n}\r\n","<w-panel-grid>\r\n @for (row of rowsArray; track row) {\r\n <w-skeleton-input-generic class=\"col-12\" [label]=\"'Label'\"></w-skeleton-input-generic>\r\n }\r\n</w-panel-grid>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-panel-section-gap-divider',\r\n templateUrl: './w-panel-section-gap-divider.component.html',\r\n styleUrls: ['./w-panel-section-gap-divider.component.scss'],\r\n standalone: false\r\n})\r\nexport class WPanelSectionGapDividerComponent {\r\n @Input('inGrid') inGrid: boolean = true;\r\n}\r\n","<div [ngClass]=\"{'w-panel-section-gap-divider-no-grid': inGrid == false, 'w-panel-section-gap-divider-grid': inGrid == true}\"></div>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-input-vertical-gap-divider',\r\n templateUrl: './w-input-vertical-gap-divider.component.html',\r\n styleUrls: ['./w-input-vertical-gap-divider.component.scss'],\r\n standalone: false\r\n})\r\nexport class WInputVerticalGapDividerComponent {\r\n @Input('inGrid') inGrid: boolean = true;\r\n}\r\n","<div [ngClass]=\"{'w-input-vertical-gap-divider-no-grid': inGrid == false, 'w-input-vertical-gap-divider-grid': inGrid == true}\"></div>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-view-badge',\r\n templateUrl: './w-view-badge.component.html',\r\n styleUrls: ['./w-view-badge.component.scss'],\r\n standalone: false\r\n})\r\nexport class WViewBadgeComponent {\r\n @Input('label') label!: string; \r\n @Input('tooltip') tooltip!: string; \r\n @Input() tooltipPosition?: string;\r\n @Input('badgeLabel') badgeLabel!: string; \r\n @Input('badgeColor') badgeColor: string = \"default\";\r\n @Input('badgeTooltip') badgeTooltip!: string;\r\n @Input('badgeMaxWidthOverflow') badgeMaxWidthOverflow!: string;\r\n}\r\n","<div class=\"flex flex-column\">\r\n <w-input-label class=\"flex\" [label]=\"label\" [tooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition\"></w-input-label>\r\n @if ((label != undefined) || (label != '')) {\r\n <div class=\"flex w-view-badge-space\"></div>\r\n }\r\n <div class=\"flex w-view-badge-badge align-items-center\">\r\n <w-badge [label]=\"badgeLabel\" [color]=\"badgeColor\" [tooltip]=\"badgeTooltip\" [maxWidthOverflow]=\"badgeMaxWidthOverflow\"></w-badge>\r\n </div>\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'w-edit-calendar-month',\r\n templateUrl: './w-edit-calendar-month.component.html',\r\n styleUrls: ['./w-edit-calendar-month.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditCalendarMonthComponent),\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class WEditCalendarMonthComponent implements OnInit, ControlValueAccessor {\r\n @Input('label') label!: string; \r\n @Input('showLabel') showLabel: boolean = true; \r\n @Input('placeholder') placeholder: string = \"\";\r\n @Input('tooltip') tooltip!: string;\r\n @Input() tooltipPosition?: string;\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Input('required') required: boolean = false;\r\n @Input('requiredErrorDescription') requiredErrorDescription : string = \"Mensaje default required\";\r\n @Input('dataType') dataType: string = 'date';\r\n @Input('minDate') minDate!: Date;\r\n @Input('maxDate') maxDate!: Date;\r\n @Input('showIcon') showIcon: boolean = true;\r\n\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter(); \r\n\r\n ngModelValue: any;\r\n isTouched : boolean = false;\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n\r\n constructor(){} \r\n \r\n ngOnInit(): void {}\r\n\r\n writeValue(value: any) {\r\n this.ngModelValue = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onValue(value: any){\r\n this.onChangeEvent.emit(value);\r\n }\r\n\r\n onDateChanged(){\r\n this.onChange(this.ngModelValue);\r\n this.onTouch();\r\n\r\n this.onChangeEvent.emit(this.ngModelValue);\r\n }\r\n\r\n isRequiredValid(): boolean {\r\n return !(this.required && this.formControl && this.formControl?.hasError('required'));\r\n }\r\n\r\n isRequiredValidNgModel(): boolean {\r\n return !(this.required && this.ngModelValue == null);\r\n }\r\n}\r\n","<div class=\"w-edit-calendar-month-styles p-fluid field\">\r\n @if (showLabel) {\r\n <w-input-label [label]=\"label\" [tooltip]=\"tooltip\" [tooltipPosition]=\"tooltipPosition\" [required]=\"required\" [disabled]=\"disabled\" [validated]=\"formControl ? isRequiredValid() : isRequiredValidNgModel()\"></w-input-label>\r\n }\r\n @if (formControl) {\r\n <p-datepicker class=\"w-edit-calendar-month\" panelStyleClass=\"w-edit-calendar-month-panel\"\r\n [ngClass]=\"{'disabled': disabled, \r\n 'ng-invalid ng-dirty': formControl.hasError('required') && formControl.touched, \r\n 'w-edit-calendar-no-icon' : !showIcon}\"\r\n [formControl]=\"formControl\"\r\n [required]=\"required\"\r\n [placeholder]=\"placeholder\"\r\n (onSelect)=\"onValue($event)\"\r\n dateFormat=\"dd/MM\"\r\n [dataType]=\"dataType\"\r\n [minDate]=\"minDate\"\r\n [maxDate]=\"maxDate\"\r\n [showIcon]=\"showIcon\"\r\n [icon]=\"'pi pi-calendar'\"\r\n appendTo=\"body\">\r\n </p-datepicker>\r\n @if (formControl.hasError('required') && formControl.touched) {\r\n <small class=\"p-error block\">{{requiredErrorDescription}}</small>\r\n }\r\n } @else {\r\n <p-datepicker class=\"w-edit-calendar-month\" panelStyleClass=\"w-edit-calendar-month-panel\" \r\n [ngClass]=\"{'disabled': disabled, \r\n 'w-edit-calendar-no-icon' : !showIcon}\"\r\n [(ngModel)]=\"ngModelValue\"\r\n (ngModelChange)=\"onDateChanged()\"\r\n [placeholder]=\"placeholder\" \r\n [disabled]=\"disabled\"\r\n dateFormat=\"dd/MM\"\r\n [dataType]=\"dataType\"\r\n [minDate]=\"minDate\"\r\n [maxDate]=\"maxDate\"\r\n [showIcon]=\"showIcon\"\r\n [icon]=\"'pi pi-calendar'\"\r\n appendTo=\"body\">\r\n </p-datepicker>\r\n }\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ParameterSelector } from '../../shared/models/parameter-selector.model';\r\nimport { Clipboard } from '@angular/cdk/clipboard';\r\nimport { MessageService } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'w-parameter-selector',\r\n templateUrl: './w-parameter-selector.component.html',\r\n styleUrls: ['./w-parameter-selector.component.scss'],\r\n standalone: false\r\n})\r\nexport class WParameterSelectorComponent implements OnInit {\r\n @Input('parameters') parameters!: ParameterSelector; \r\n @Input('title') title!: string; \r\n @Input('subtitle') subtitle!: string;\r\n @Input('popupSummary') popupSummary!: string;\r\n @Input('popupDetail') popupDetail!: string;\r\n @Input('sortAlphabetically') sortAlphabetically: boolean = false;\r\n @Input('activeIndex') activeIndex!: any;\r\n @Input('multiple') multiple: boolean = false;\r\n\r\n constructor(private clipboard: Clipboard, private messageService: MessageService) { }\r\n\r\n ngOnInit() {\r\n if(!this.activeIndex && this.multiple) this.activeIndex = [0];\r\n if(!this.activeIndex && !this.multiple) this.activeIndex = 0;\r\n\r\n if (this.parameters && this.parameters.groups) {\r\n this.parameters.groups = this.parameters.groups.map(group => {\r\n return {\r\n ...group,\r\n parameters: group.parameters.map(param => {\r\n return {\r\n ...param,\r\n icon: \"pi pi-copy\"\r\n };\r\n })\r\n };\r\n });\r\n \r\n if (this.sortAlphabetically == true) {\r\n this.sortParametersAlphabetically();\r\n }\r\n }\r\n }\r\n\r\n removeIndex(index:number) {\r\n const indices = Array.isArray(this.activeIndex) ? this.activeIndex : [this.activeIndex];\r\n this.activeIndex = indices.filter(i => i !== null);\r\n }\r\n\r\n onParameterSelected(event: any) {\r\n const clipboardCopied = this.clipboard.copy(`{${event.option.value}}`);\r\n const originalParametersMapped = this.parameters.groups; \r\n\r\n this.messageService.add({\r\n severity: 'info', \r\n summary: this.popupSummary ?? 'Texto copiado', \r\n detail: this.popupDetail ?? 'Código del parámetro copiado al portapapeles'\r\n });\r\n\r\n if (clipboardCopied) {\r\n this.parameters.groups = this.parameters.groups.map(group => {\r\n return {\r\n ...group,\r\n parameters: group.parameters.map(param => {\r\n if (param.value == event.option.value) {\r\n return { ...param, icon: \"pi pi-check\" };\r\n }\r\n return param;\r\n })\r\n };\r\n });\r\n\r\n setTimeout(() => {\r\n this.parameters.groups = originalParametersMapped; \r\n }, 1500);\r\n }\r\n }\r\n \r\n sortParametersAlphabetically() {\r\n this.parameters.groups.sort((a, b) => a.name.localeCompare(b.name));\r\n this.parameters.groups.forEach(group => {\r\n group.parameters.sort((a, b) => a.name.localeCompare(b.name));\r\n });\r\n }\r\n}\r\n\r\n\r\n","<w-panel-grid>\r\n @if (title) {\r\n <w-panel-title class=\"col-12\" [title]=\"title\" [activePaddingBottom]=\"false\"></w-panel-title>\r\n }\r\n @if (subtitle) {\r\n <div class=\"col-12 subtitle2\">{{subtitle}}</div>\r\n }\r\n <p-accordion class=\"col-12 w-param-selector\"\r\n [multiple]=\"multiple\"\r\n [value]=\"[activeIndex]\"\r\n (onOpen)=\"multiple ? activeIndex.push($event.index) : activeIndex = $event.index\"\r\n (onClose)=\"removeIndex($event.index)\">\r\n @for (group of parameters.groups; track $index) {\r\n <p-accordion-panel [value]=\"$index\">\r\n <p-accordion-header>\r\n <ng-template #toggleicon let-active=\"active\">\r\n <i class=\"pi\" [ngClass]=\"active ? 'pi-chevron-down' : 'pi-chevron-right'\"></i>\r\n </ng-template>\r\n <span class=\"header-title\">{{group.name}}</span>\r\n </p-accordion-header>\r\n <p-accordion-content>\r\n <p-listbox\r\n [options]=\"group.parameters\"\r\n [group]=\"false\" optionLabel=\"name\" optionValue=\"value\" optionGroupLabel=\"name\" optionGroupChildren=\"parameters\"\r\n (onClick)=\"onParameterSelected($event)\"\r\n styleClass=\"w-parameter-tags-listbox-container\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"w-parameter-tags-listbox-item flex align-items-center\">\r\n <span [class]=\"item.icon\"></span>\r\n <span>{{ item.name }}</span>\r\n </div>\r\n </ng-template>\r\n </p-listbox>\r\n </p-accordion-content>\r\n </p-accordion-panel>\r\n }\r\n </p-accordion>\r\n</w-panel-grid>\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild, forwardRef } from '@angular/core';\r\nimport { ChartConfig } from '../../shared/models/w-chart-config.model';\r\nimport { UIChart } from 'primeng/chart'; \r\nimport ChartDataLabels from 'chartjs-plugin-datalabels';\r\nimport { Chart } from 'chart.js';\r\nimport { WSummaryPipe } from '../../shared/pipes/w-summary.pipe';\r\nChart.register(ChartDataLabels);\r\n\r\n@Component({\r\n selector: 'w-chart-bar',\r\n templateUrl: './w-chart-bar.component.html',\r\n styleUrls: ['./w-chart-bar.component.scss'],\r\n providers: [WSummaryPipe],\r\n standalone: false\r\n})\r\nexport class WChartBarComponent implements OnInit, OnChanges{\r\n @Input('title') title!: string;\r\n private _chartConfig!: ChartConfig;\r\n @Input()\r\n set config(value: ChartConfig) {\r\n this._chartConfig = value;\r\n }\r\n\r\n get config(): ChartConfig {\r\n return this._chartConfig;\r\n }\r\n\r\n @Input('isHorizontal') isHorizontal: boolean = true; \r\n @Input('width') width!: string; \r\n @Input('height') height!: string; \r\n @Input('setAutoHeight') setAutoHeight: boolean = false; \r\n @Input('maxLabelLength') maxLabelLength?: number; \r\n @Input('labelConfig') labelConfig!: { indicator?: string, maxbreakline?: number, makeUppercase?: boolean, fontSize?: number, dataLabelFont?: { size: number, weight: any }, titleFont?: { size: number } };\r\n @Output('onDataSelected') onDataSelectedEvent: EventEmitter<any> = new EventEmitter(); \r\n @ViewChild('wChartBar') wChartBar!: UIChart; \r\n\r\n style: any; \r\n data: any;\r\n options: any;\r\n textColorTitle: any; \r\n textColorLegend: any; \r\n textColorAxis: any; \r\n gridColor: any; \r\n textInverseColor: any; \r\n font: any; \r\n dataLabelFont = {\r\n size: 16, \r\n weight: 500\r\n };\r\n titleFont = {\r\n size: 14, weight: 700\r\n }\r\n widthBars = 14; \r\n baseHeight: number = 200; \r\n baseHeightPx: string = \"200px\";\r\n barPadding: number = 8;\r\n\r\n constructor(private wappSummary: WSummaryPipe){}\r\n\r\n ngOnInit(): void {\r\n this.style = getComputedStyle(document.documentElement);\r\n this.textColorTitle = this.style.getPropertyValue('--w-text-main-color');\r\n this.textColorLegend = this.style.getPropertyValue('--w-text-main-color');\r\n this.textColorAxis = this.style.getPropertyValue('--w-text-main-color');\r\n this.gridColor = this.style.getPropertyValue('--w-text-softest-color');\r\n this.textInverseColor = this.style.getPropertyValue('--w-text-inverse-color'); \r\n\r\n this.font = {\r\n family: 'Segoe UI',\r\n size: 12,\r\n weight: 600,\r\n };\r\n\r\n this._chartConfig.labels = this._chartConfig.labels.map(l => {return this.processLabelForDisplay(l)});\r\n\r\n this.data = {\r\n labels: this._chartConfig.labels, \r\n datasets: [],\r\n plugins: [ChartDataLabels]\r\n };\r\n\r\n this.fillData(); \r\n\r\n this.options = {\r\n indexAxis: this.isHorizontal ? 'y' : 'x',\r\n maintainAspectRatio: false,\r\n aspectRatio: 0.6,\r\n layout: {\r\n padding: { \r\n top: 12,\r\n right: 12,\r\n left: 12, \r\n bottom: 12\r\n }\r\n },\r\n plugins: {\r\n title: {\r\n display: this.title ? true : false,\r\n color: this.textColorTitle, \r\n text: this.title,\r\n font: this.titleFont,\r\n padding: 24,\r\n }, \r\n tooltip: {\r\n mode: 'nearest',\r\n intersect: true,\r\n callbacks: {\r\n label: (context: any) => {\r\n const dataset = context.dataset;\r\n const dataIndex = context.dataIndex;\r\n \r\n const dataValue = dataset.data?.[dataIndex] ?? 0;\r\n\r\n if (this.hasValidExtraData(dataset, dataIndex)) {\r\n return [\r\n `${dataset.label}: ${dataValue}`,\r\n `${dataset.extraLegend}: ${dataset.extraData[dataIndex]}`\r\n ];\r\n }\r\n \r\n return `${dataset.label}: ${dataValue}`;\r\n }\r\n }\r\n },\r\n legend: {\r\n padding: 24,\r\n labels: {\r\n color: this.textColorLegend,\r\n font: this.font,\r\n padding: 32\r\n }, \r\n position: 'bottom'\r\n },\r\n datalabels: {\r\n display: this._chartConfig.showDataLabels,\r\n color: (ctx: any) => {\r\n const backgroundColor = ctx.dataset?.backgroundColor as string;\r\n const baseFont = this._chartConfig.textColor ?? this.textInverseColor; \r\n \r\n if(backgroundColor){\r\n return this.idealTextColorFor(backgroundColor, baseFont, ctx);\r\n }\r\n \r\n return baseFont;\r\n },\r\n anchor: 'end', \r\n align: (ctx:any) => {\r\n const isHorizontal = (ctx.chart?.options as any)?.indexAxis === 'y';\r\n const barWidth = this.getBarLengthPx(ctx);\r\n const textWidth = this.measureDatalabelTextWidthPx(ctx);\r\n const fitsInside = textWidth + this.barPadding <= barWidth;\r\n\r\n if (barWidth < (this._chartConfig.widthBars ?? this.widthBars) || !fitsInside) {\r\n return isHorizontal ? 'end' : 'top';\r\n }\r\n return 'start';\r\n },\r\n font: this.dataLabelFont, \r\n formatter: function (value:any, index:any, values:any) { return value || null; }\r\n }\r\n },\r\n scales: this.fillScales()\r\n };\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(changes['config']?.previousValue !== undefined){\r\n this.data.datasets = [];\r\n this.fillData();\r\n this.wChartBar.refresh(); \r\n }\r\n\r\n if(changes['title']?.previousValue !== undefined || changes['title']?.previousValue == undefined){\r\n if(this.options){\r\n this.options.plugins!.title.text = this.title; \r\n this.wChartBar.refresh(); \r\n }\r\n }\r\n\r\n if(changes['isHorizontal']?.previousValue !== undefined){\r\n if(this.options){\r\n this.options.indexAxis = this.isHorizontal ? 'y' : 'x'; \r\n this.options.scales = {}; \r\n this.options.scales = this.fillScales(); \r\n this.wChartBar.refresh(); \r\n }\r\n }\r\n\r\n if(changes['labelConfig'] && changes['labelConfig'].currentValue){\r\n this.labelConfig = changes['labelConfig'].currentValue;\r\n if(this.labelConfig.dataLabelFont!){\r\n this.dataLabelFont = {\r\n size: this.labelConfig.dataLabelFont.size,\r\n weight: this.labelConfig.dataLabelFont.weight,\r\n }\r\n }\r\n\r\n if(this.labelConfig.titleFont!){\r\n this.titleFont.size = this.labelConfig.titleFont.size;\r\n } \r\n }\r\n }\r\n\r\n fillScales(){\r\n if(this.labelConfig && this.labelConfig.fontSize){\r\n this.font.size = this.labelConfig.fontSize;\r\n }\r\n\r\n return {\r\n x: {\r\n stacked: this._chartConfig.stacked,\r\n ticks: {\r\n color: this.textColorLegend,\r\n font: this.font, \r\n callback: (value: any, index: number) => {\r\n if(this.isHorizontal == false){\r\n return this.maxLabelLength ? (this.wappSummary.transform( this._chartConfig.labels[value], this.maxLabelLength)) : this._chartConfig.labels[value];\r\n } else {\r\n return value;\r\n }\r\n }\r\n },\r\n grid: {\r\n color: this.gridColor,\r\n display: this.isHorizontal ? true : false,\r\n }\r\n },\r\n y: { \r\n position: 'left', \r\n stacked: this._chartConfig.stacked,\r\n ticks: {\r\n color: this.textColorLegend,\r\n align: 'start', \r\n crossAlign: 'center', \r\n font: this.font, \r\n callback: (value: any, index: number) => {\r\n if(this.isHorizontal == true){\r\n return this.maxLabelLength ? (this.wappSummary.transform( this._chartConfig.labels[value], this.maxLabelLength)) : this._chartConfig.labels[value];\r\n } else {\r\n return value;\r\n }\r\n }\r\n },\r\n grid: {\r\n color: this.gridColor,\r\n display: this.isHorizontal ? false : true,\r\n }\r\n }\r\n }\r\n }\r\n\r\n fillData(){\r\n let lengths : any[] = [];\r\n this._chartConfig.data.forEach((element: any, index) => {\r\n this.data.datasets.push(\r\n {\r\n type: 'bar',\r\n label: element.legend,\r\n backgroundColor: element.color || this.style.getPropertyValue( index == 0 ? '--w-primary-800' : '--w-primary-100'),\r\n data: element.data,\r\n borderRadius: 4,\r\n barThickness: this._chartConfig.widthBars ?? this.widthBars, \r\n extraLegend: element.extraLegend,\r\n extraData: element.extraData || [], \r\n }); \r\n lengths.push(element.data.length); \r\n });\r\n\r\n if(this.setAutoHeight == true && this.isHorizontal == true){\r\n let barHeights = ((this._chartConfig.widthBars ?? this.widthBars) * 2.5) * this.getMaxNumber(lengths);\r\n this.baseHeight = this.baseHeight + barHeights;\r\n this.baseHeightPx = this.baseHeight + 'px'; \r\n }\r\n }\r\n\r\n onDataSelected(event: any){\r\n this.onDataSelectedEvent.emit(event); \r\n }\r\n\r\n getMaxNumber(numbers: number[]): number {\r\n if (numbers.length === 0) {\r\n return Number.NEGATIVE_INFINITY;\r\n }\r\n return Math.max(...numbers);\r\n }\r\n\r\n private hasValidExtraData(dataset: any, dataIndex: number): boolean {\r\n return dataset.extraData && \r\n Array.isArray(dataset.extraData) &&\r\n dataIndex < dataset.extraData.length &&\r\n dataset.extraData[dataIndex] !== undefined && \r\n dataset.extraData[dataIndex] !== null &&\r\n dataset.extraLegend;\r\n }\r\n\r\n private processLabelForDisplay(label: string): string | string[] {\r\n if(this.labelConfig?.makeUppercase != undefined){\r\n if(this.labelConfig.makeUppercase == true){\r\n label = label.toUpperCase();\r\n }\r\n else{\r\n label = label.charAt(0).toUpperCase() + label.slice(1).toLowerCase();\r\n }\r\n }\r\n\r\n if (!this.labelConfig || !this.labelConfig.indicator) {\r\n return label;\r\n }\r\n \r\n if (label.includes(this.labelConfig.indicator)) {\r\n const lines = label.split(this.labelConfig.indicator);\r\n \r\n if (this.labelConfig.maxbreakline && lines.length > this.labelConfig.maxbreakline) {\r\n return lines.slice(0, this.labelConfig.maxbreakline);\r\n }\r\n return lines;\r\n \r\n }\r\n return label;\r\n }\r\n\r\n idealTextColorFor(bgHex: string, textColor?: string, ctx?: any) {\r\n let isBarSmall = this.getBarLengthPx(ctx) < (this._chartConfig.widthBars ?? this.widthBars);\r\n\r\n switch(bgHex){\r\n case '#b5dced': \r\n if(textColor){\r\n if(textColor.toLowerCase() == '#e46d3d'){\r\n return '#ad300d';\r\n }\r\n }\r\n return '#10485d';\r\n case '#10485d': \r\n if(textColor){\r\n if(textColor.toLowerCase() == '#e46d3d'){\r\n return '#e46d3d';\r\n }\r\n }\r\n if(isBarSmall){\r\n return '#10485d';\r\n }else{\r\n return '#fff';\r\n }\r\n default: \r\n if(isBarSmall){\r\n return '#10485d';\r\n }else{\r\n return '#fff';\r\n };\r\n }\r\n }\r\n\r\n idealTextStrokeColorFor(bgHex: string, textColor?: string) {\r\n switch(bgHex){\r\n case '#b5dced': \r\n if(textColor){\r\n if(textColor.toLowerCase() == '#e46d3d'){\r\n return 'rgba(146, 199, 234, 0.89)';\r\n }\r\n }\r\n return 'rgba(98, 141, 165, 0.6)';\r\n case '#10485d': \r\n if(textColor){\r\n if(textColor.toLowerCase() == '#e46d3d'){\r\n return 'rgba(93, 57, 44, 0.6)';\r\n }\r\n }\r\n return 'rgba(26, 26, 26, 0.9)';\r\n default: \r\n return 'rgba(26, 26, 26, 0.9)';\r\n }\r\n }\r\n\r\n getBarLengthPx(ctx: any): number {\r\n const chart = ctx?.chart;\r\n const di = ctx?.datasetIndex;\r\n const i = ctx?.dataIndex;\r\n if (!chart || di == null || i == null) return 0;\r\n const el = chart.getDatasetMeta(di)?.data?.[i];\r\n\r\n if (!el) return 0;\r\n \r\n const props = typeof el.getProps === 'function'\r\n ? el.getProps(['x', 'y', 'base', 'xBase', 'yBase', 'width', 'height'], true)\r\n : el;\r\n\r\n const isHorizontal = (ctx.chart?.options as any)?.indexAxis === 'y';\r\n const valueScale = chart?.scales?.[isHorizontal ? 'x' : 'y'];\r\n const basePixelFromScale = valueScale?.getBasePixel?.();\r\n const basePixel =\r\n basePixelFromScale ??\r\n (props.base ?? (isHorizontal ? props.xBase : props.yBase));\r\n\r\n if (isHorizontal) {\r\n const x = props.x ?? el.x;\r\n if (x == null || basePixel == null) return Math.abs(props.width ?? 0);\r\n return Math.abs(x - basePixel);\r\n } else {\r\n const y = props.y ?? el.y;\r\n if (y == null || basePixel == null) return Math.abs(props.height ?? 0);\r\n return Math.abs(y - basePixel);\r\n }\r\n }\r\n\r\n getDatalabelText(context: any): string {\r\n const fv = (context as any).formattedValue;\r\n if (fv != null) return String(fv);\r\n const raw = context?.dataset?.data?.[context?.dataIndex];\r\n return raw == null ? '' : String(raw);\r\n }\r\n\r\n resolveDatalabelFont(context: any): { font: string; size: number } {\r\n const size = this.dataLabelFont.size;\r\n const weight = this.dataLabelFont.weight;\r\n const family = 'Segoe UI'; \r\n const style = 'normal';\r\n return { font: `${style} ${weight} ${size}px ${family}`, size };\r\n }\r\n\r\n measureDatalabelTextWidthPx(context: any): number {\r\n const text = this.getDatalabelText(context);\r\n const { font } = this.resolveDatalabelFont(context);\r\n const ctx2d = context.chart?.ctx;\r\n if (!ctx2d || !text) return 0;\r\n\r\n const prevFont = ctx2d.font;\r\n ctx2d.font = font;\r\n const width = ctx2d.measureText(text).width;\r\n ctx2d.font = prevFont;\r\n return width;\r\n }\r\n} \r\n","<p-chart #wChartBar type=\"bar\" [data]=\"data\" [options]=\"options\" [width]=\"width\" [height]=\"setAutoHeight == true ? baseHeightPx : height\" (onDataSelect)=\"onDataSelected($event)\"></p-chart>","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { FileUpload } from 'primeng/fileupload';\r\nimport * as XLSX from 'xlsx';\r\nimport { WFileUploaderDataSheetResponse } from '../../shared/models/w-file-uploader-data-sheet-response.model';\r\nimport { WFileUploaderConfig } from '../../shared/models/w-file-uploader-config.model';\r\nimport { WFileB64 } from './../../shared/models/w-file-b64.model';\r\nimport { FileSizeService } from '../../shared/services/file-size.service';\r\n\r\n@Component({\r\n selector: 'w-file-uploader',\r\n templateUrl: './w-file-uploader.component.html',\r\n styleUrls: ['./w-file-uploader.component.scss'],\r\n standalone: false\r\n})\r\nexport class WFileUploaderComponent implements OnInit, OnChanges {\r\n @Input('activeFieldVersion') activeFieldVersion: boolean = false;\r\n @Input('activeFieldVersionBorders') activeFieldVersionBorders: boolean = false;\r\n @Input('label') label!: string;\r\n @Input('tooltip') tooltip!: string;\r\n @Input('required') required: boolean = false;\r\n @Input('accept') accept: string = '*';\r\n @Input('fileUploadConfig') fileUploadConfig: WFileUploaderConfig = {\r\n maxSize: 1000000, \r\n headerLabel: \"Upload files\", \r\n subHeaderLabel: \"Click to select or drag directly.\", \r\n invalidFileSizeMessageSummary: \"File size error\",\r\n invalidFileSizeMessageDetail: \"The maximum allowed file size is\",\r\n invalidFileTypeMessageSummary: \"\",\r\n invalidFileTypeMessageDetail: \"\"\r\n };\r\n actualMaxSize!: number;\r\n @Input('fileSingleMode') fileSingleMode: any;\r\n @Input('loading') loading: boolean = false;\r\n fileSelected: any = null; \r\n sheetFileData: WFileUploaderDataSheetResponse = { headers: [], data: [] };\r\n base64FileData: WFileB64 = {name: \"\", type: \"\",fileBase64: \"\", base64: \"\"};\r\n timelife: number = 5000; \r\n\r\n @Output('onFileData') onFileData: EventEmitter<WFileUploaderDataSheetResponse | WFileB64 | any> = new EventEmitter(); \r\n @Output('onErrorHandler') onErrorHandler: EventEmitter<any> = new EventEmitter<any>(); \r\n\r\n @ViewChild('fileUpload') fileUpload!: FileUpload;\r\n\r\n constructor(public fileSizeService: FileSizeService){}\r\n\r\n ngOnInit(): void {\r\n this.fileSizeService.init(this.fileUploadConfig.maxSize);\r\n this.actualMaxSize = this.fileSizeService.formatSize();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(changes['fileUploadConfig'] && changes['fileUploadConfig'].currentValue){\r\n this.fileUploadConfig = changes['fileUploadConfig'].currentValue;\r\n this.fileSizeService.init(this.fileUploadConfig.maxSize);\r\n this.actualMaxSize = this.fileSizeService.formatSize();\r\n }\r\n }\r\n\r\n onCustomUpload(event: any){\r\n if(this.fileUpload.msgs && this.fileUpload.msgs.length > 0){\r\n setTimeout(() => {\r\n this.fileUpload.msgs = [];\r\n }, this.timelife);\r\n }\r\n\r\n if(event.currentFiles[0]){\r\n this.fileSelected = event.currentFiles[0]; \r\n if (this.fileSelected.name.endsWith('.xlsx') || this.fileSelected.name.endsWith('.xls')) {\r\n this.readSheet();\r\n }else if(this.fileSelected.name.endsWith('.pdf')){\r\n this.readPDF();\r\n }\r\n }\r\n }\r\n\r\n onMessagesClosed(event: any){\r\n this.fileUpload.msgs = [];\r\n }\r\n\r\n openFileSelector(){\r\n this.fileUpload.choose(); \r\n }\r\n\r\n removeFile(event: any, file: any){\r\n event.stopPropagation();\r\n this.fileUpload.clear();\r\n this.fileSelected = null;\r\n this.fileSingleMode = null;\r\n this.onFileData.emit(null);\r\n }\r\n\r\n readSheet(){\r\n const reader: FileReader = new FileReader();\r\n\r\n reader.onload = (e: any) => {\r\n const arrayBuffer = e.target.result;\r\n const data = new Uint8Array(arrayBuffer);\r\n const workbook: XLSX.WorkBook = XLSX.read(data, { type: 'array' });\r\n const sheetName: string = workbook.SheetNames[0];\r\n const sheet: XLSX.WorkSheet = workbook.Sheets[sheetName];\r\n\r\n const jsonData = XLSX.utils.sheet_to_json(sheet, { header: 1 }); \r\n if (jsonData.length) {\r\n this.sheetFileData.headers = jsonData[0] as string[];\r\n this.sheetFileData.data = jsonData.slice(1) as string[]; \r\n this.onFileData.emit(this.sheetFileData); \r\n }\r\n };\r\n\r\n reader.onerror = () => {\r\n this.onErrorHandler.emit(reader.error);\r\n };\r\n\r\n reader.readAsArrayBuffer(this.fileSelected);\r\n }\r\n\r\n readPDF(){\r\n this.fileToBase64(this.fileSelected).then(b64 => {\r\n this.base64FileData.name = this.sanitizeFileName(this.fileSelected.name); \r\n this.base64FileData.base64 = b64; \r\n this.base64FileData.type = this.fileSelected.type.split('/')[1];\r\n this.onFileData.emit(this.base64FileData)\r\n }).catch(err => {\r\n this.onErrorHandler.emit(err);\r\n });\r\n }\r\n\r\n sanitizeFileName(name: string){\r\n name = name\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '');\r\n\r\n return name.replace(/[^a-zA-Z0-9\\-\\_\\.]/g, '_');\r\n }\r\n\r\n fileToBase64(file: File, includePrefix = false): Promise<string> {\r\n return new Promise<string>((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n let result = reader.result as string; \r\n if (!includePrefix) {\r\n const commaIndex = result.indexOf(',');\r\n result = result.substring(commaIndex + 1);\r\n }\r\n resolve(result);\r\n };\r\n reader.onerror = error => reject(error);\r\n reader.readAsDataURL(file);\r\n });\r\n }\r\n\r\n getListboxClass(){\r\n var listboxClass = 'w-file-listbox';\r\n if(this.activeFieldVersion == true){\r\n listboxClass = listboxClass + ' w-file-listbox-field';\r\n }\r\n return listboxClass; \r\n } \r\n\r\n getFileName(file: any){\r\n if(this.fileSelected != null || this.fileSelected != undefined){\r\n return this.sanitizeFileName(file.name);\r\n }else{\r\n return this.sanitizeFileName(file.split('/').pop());\r\n }\r\n }\r\n\r\n downloadFile(file: any): void {\r\n const url = file;\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.target = '_blank';\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n isValid(){\r\n if(this.required == true){\r\n return (this.fileSelected != null || this.fileSelected != undefined) || (this.fileSingleMode != null || this.fileSingleMode != undefined);\r\n }else{\r\n return true;\r\n }\r\n }\r\n}\r\n","@if (activeFieldVersion == true) {\r\n <w-input-label [label]=\"label\" [tooltip]=\"tooltip\" [required]=\"required\" [validated]=\"isValid()\"></w-input-label>\r\n}\r\n@if (activeFieldVersion == true && (label != undefined && label.length > 0)) {\r\n <div class=\"input-label-gap-divider\"></div>\r\n}\r\n@if(loading){\r\n <div class=\"w-full flex justify-content-center\">\r\n <w-button [loading]=\"loading\" type=\"text\"></w-button>\r\n </div>\r\n}\r\n<p-fileupload #fileUpload class=\"w-file-button\"\r\n [ngClass]=\"{'w-file-uploader' : activeFieldVersion == false,\r\n 'w-file-uploader-field' : activeFieldVersion == true}\"\r\n mode=\"advanced\"\r\n [accept]=\"accept\"\r\n chooseLabel=\"Choose\"\r\n [customUpload]=\"true\" \r\n [maxFileSize]=\"actualMaxSize\" \r\n [invalidFileSizeMessageSummary]=\"fileUploadConfig.invalidFileSizeMessageSummary + ':'\"\r\n [invalidFileSizeMessageDetail]=\"fileUploadConfig.invalidFileSizeMessageDetail + ' ' + fileSizeService.formatSizeMessage() + '.'\"\r\n [invalidFileTypeMessageSummary]=\"fileUploadConfig.invalidFileTypeMessageSummary + ':'\"\r\n [invalidFileTypeMessageDetail]=\"fileUploadConfig.invalidFileTypeMessageDetail + ': {0}.'\"\r\n (onSelect)=\"onCustomUpload($event)\">\r\n <ng-template let-file let-i=\"index\" pTemplate='file'>\r\n @if (false) {\r\n <div></div>\r\n }\r\n </ng-template>\r\n <ng-template #content let-messages=\"messages\">\r\n @if (false) {\r\n <p-progressBar></p-progressBar>\r\n }\r\n @for (message of messages; track message) {\r\n <p-message [severity]=\"message.severity\" closable [life]=\"timelife\" (onClose)=\"onMessagesClosed($event)\">{{message.text}}</p-message>\r\n }\r\n @if ((fileSelected != null || fileSelected != undefined) || (fileSingleMode != null || fileSingleMode != undefined)) {\r\n <p-listbox listStyleClass=\"w-file-listbox-list\"\r\n [ngClass]=\"getListboxClass()\"\r\n [options]=\"(fileSelected == null && (fileSingleMode != null || fileSingleMode != undefined)) ? [fileSingleMode] : [fileSelected]\"\r\n optionLabel=\"name\"\r\n [listStyle]=\"{ 'max-width': '100%', 'max-height':'100%' }\">\r\n <ng-template let-file pTemplate=\"item\">\r\n @if ((fileSingleMode != null || undefined) || (fileSelected != null || undefined)) {\r\n <div class=\"w-file-uploader-delete-button flex align-content-center justify-content-center\" style=\"width: 100%;\">\r\n <w-button buttonClass=\"w-file-uploader-delete-button-icon\" icon=\"pi pi-trash\" type=\"text\" (click)=\"removeFile($event, fileSelected)\"></w-button>\r\n </div>\r\n }\r\n <div class=\"w-file-listbox-item\">\r\n <span class=\"w-icon document\"[ngStyle]=\"{'font-size': '32px', 'color': 'gray'}\"></span>\r\n <div class=\"subtitle2 m-0\">{{ getFileName(file) | wappSummary : 20 }}</div>\r\n </div>\r\n @if (fileSingleMode) {\r\n <div class=\"w-file-uploader-download-button flex align-content-center justify-content-center\" style=\"width: 100%;\">\r\n <w-button buttonClass=\"w-file-uploader-download-button-icon\" icon=\"pi pi-arrow-circle-down\" type=\"text\" (onClick)=\"downloadFile(file)\"></w-button>\r\n </div>\r\n }\r\n </ng-template>\r\n </p-listbox>\r\n }\r\n <div (click)=\"loading ? null : openFileSelector()\"\r\n class=\"w-file-uploader-space-container flex flex-column justify-content-center align-items-center\" [style.cursor]=\"loading ? 'default' : 'pointer'\"\r\n [ngClass]=\"{ 'w-file-uploader-container-height' : (fileSelected == null || undefined ) && activeFieldVersion == false, 'w-file-uploader-field-container-height' : activeFieldVersion == true && (fileSelected == null || undefined ), \r\n 'borders': activeFieldVersionBorders, 'w-file-uploader-loading': loading }\">\r\n <span class=\"pi pi-upload subtitle1 textMainColor m-0\"></span>\r\n <span class=\"subtitle1 textMainColor m-0\"> {{ fileUploadConfig.headerLabel }} </span>\r\n <span class=\"body textMainColor m-0\"> {{ fileUploadConfig.subHeaderLabel }} </span>\r\n </div>\r\n </ng-template>\r\n</p-fileupload>\r\n","\r\nexport enum CronPeriodicityType{\r\n RepeatEveryXMinutes = 1,\r\n RepeatEveryMinute = 2,\r\n RepeatEveryXHours = 3,\r\n RepeatEveryHour = 4,\r\n RepeatEveryXDays = 5,\r\n RepeatEveryWeek = 6,\r\n RepeatEveryXMonths = 7,\r\n RepeatEveryMonth = 8\r\n }\r\n \r\n export enum CronFieldType{\r\n Second = 0, \r\n Minute = 1, \r\n Hour = 2, \r\n MonthDay = 3, //1-31\r\n Month = 4, //1-12\r\n WeekDay = 5, //Domingo 0 - Sabado 6 \r\n Year = 6 // De momento no se usa\r\n }\r\n \r\n export enum CronCharactersType{\r\n Asterisk = '*', \r\n Dash = '-', \r\n Comma = ',', \r\n Slash = '/'\r\n }","import { Injectable } from '@angular/core';\r\nimport { AbstractControl, FormControl } from '@angular/forms';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FormControlService {\r\n\r\n constructor() { }\r\n\r\n convertToFormControl(absCtrl: AbstractControl | null): FormControl {\r\n const ctrl = absCtrl as FormControl;\r\n return ctrl;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MultiSelectOption } from '../../shared/models/multiselect-option.model';\r\nimport { CronFieldType, CronPeriodicityType } from '../../shared/enums/cron-expressions/enum.model';\r\nimport { CronComponentTranslations } from '../../shared/models/cron-expressions/cron-component-translations.model';\r\nimport { FormControlService } from '../../shared/services/form-control.service';\r\nimport cronstrue from 'cronstrue/i18n';\r\nimport { CronExpressionParser } from 'cron-parser';\r\nimport { WDatePipe } from '../../shared/pipes/w-date.pipe';\r\nimport { WDatePipeFormatType } from '../../shared/models/enums.model';\r\n\r\n@Component({\r\n selector: 'w-cron-expressions',\r\n templateUrl: './w-cron-expressions.component.html',\r\n styleUrls: ['./w-cron-expressions.component.css'],\r\n standalone: false\r\n})\r\nexport class WCronExpressionsComponent {\r\n formGroup!: FormGroup;\r\n\r\n periodicities!: MultiSelectOption[];\r\n months!: MultiSelectOption[];\r\n weekDays!: MultiSelectOption[];\r\n\r\n monthDays = Array.from({ length: 31 }, (_, i) => ({ value: i + 1 }));\r\n minutes = Array.from({ length: 60 }, (_, i) => i);\r\n hours = Array.from({ length: 24 }, (_, i) => i);\r\n\r\n expression: any[] = ['*','*','*','*','*','*'];\r\n description: string = '';\r\n occurrences: string= '';\r\n\r\n @Input('initialValue') initialValue!: string;\r\n @Input('hiddeHoursAndMinutes') hiddeHoursAndMinutes: boolean = false;\r\n\r\n private _startDate: Date = new Date();\r\n\r\n @Input('startDate') set startDate(value: Date) {\r\n this._startDate = value;\r\n setTimeout(() => {\r\n this.cronToHuman();\r\n });\r\n }\r\n\r\n get startDate() {\r\n return this._startDate;\r\n }\r\n\r\n private _endDate: Date = new Date(new Date().setMonth(new Date().getMonth() + 1));\r\n\r\n @Input('endDate') set endDate(value: Date) {\r\n this._endDate = value;\r\n setTimeout(() => {\r\n this.cronToHuman();\r\n });\r\n }\r\n\r\n get endDate() {\r\n return this._endDate;\r\n }\r\n\r\n @Input('periodicitiesDisplayed') periodicitiesDisplayed!: CronPeriodicityType[];\r\n @Input('hasContainer') hasContainer: boolean = true;\r\n @Input('occurrencesNumber') occurrencesNumber: number = 5;\r\n @Input('translationsObject') translationsObject: CronComponentTranslations = {\r\n periodicities: {\r\n everyXMinutes: \"Repetir cada X minutos\",\r\n everyMinute: \"Repetir cada minuto\",\r\n everyXHours: \"Repetir cada X horas\",\r\n everyHour: \"Repetir cada hora\",\r\n everyXDays: \"Repetir cada X días\",\r\n everyWeek: \"Repetir cada semana\",\r\n everyXMonths: \"Repetir X meses\",\r\n everyMonth: \"Repetir cada mes\",\r\n },\r\n months: {\r\n january: \"Enero (1)\",\r\n february: \"Febrero (2)\",\r\n march: \"Marzo (3)\",\r\n april: \"Abril (4)\",\r\n may: \"Mayo (5)\",\r\n june: \"Junio (6)\",\r\n july: \"Julio (7)\",\r\n august: \"Agosto (8)\",\r\n september: \"Septiembre (9)\",\r\n october: \"Octubre (10)\",\r\n november: \"Noviembre (11)\",\r\n december: \"Diciembre (12)\"\r\n },\r\n weekDays: {\r\n sunday: \"Domingo (0)\",\r\n monday: \"Lunes (1)\",\r\n tuesday: \"Martes (2)\",\r\n wednesday: \"Miercoles (3)\",\r\n thursday: \"Jueves (4)\",\r\n friday: \"Viernes (5)\",\r\n saturday: \"Sabado (6)\"\r\n },\r\n periodicityLabel: \"Periodicidad\",\r\n minuteLabel: \"Minuto\",\r\n hourLabel: \"Hora\",\r\n daysLabel: \"Día\",\r\n weekDaysLabel: \"Días de la semana\",\r\n monthsLabel: \"Meses\",\r\n descriptionLabel: \"Descripción\",\r\n occurrencesLabel: \"Siguientes ejecuciones: \"\r\n };\r\n\r\n @Output('cronExpression') cronExpression: EventEmitter<string> = new EventEmitter();\r\n @Output('firstExecutionDate') firstExecutionDate: EventEmitter<Date> = new EventEmitter();\r\n \r\n constructor(\r\n private formBuilder: FormBuilder,\r\n public formControlService: FormControlService,\r\n private wappDate: WDatePipe\r\n ) { }\r\n \r\n ngOnInit(): void {\r\n this.initFormGroup();\r\n this.initPeriodicities();\r\n this.initMonths();\r\n this.initWeekDays();\r\n\r\n if(this.initialValue) {\r\n this.initParsedValues();\r\n }\r\n }\r\n\r\n initFormGroup() {\r\n if(this.initialValue) {\r\n this.initialValue = this.localUTCCronToUserLocaleCron(this.initialValue);\r\n\r\n const parts = this.initialValue.split(\" \");\r\n\r\n this.formGroup = this.formBuilder.group({\r\n periodicity: new FormControl(),\r\n minutes: new FormControl(\r\n this.hasInitialValue(\r\n parts[CronFieldType.Minute]) ? \r\n this.formatCronNumber(parts[CronFieldType.Minute])\r\n : 0),\r\n hours: new FormControl(\r\n this.hasInitialValue(\r\n parts[CronFieldType.Hour]) ? \r\n this.formatCronNumber(parts[CronFieldType.Hour])\r\n : 0),\r\n weekDays: new FormControl(\r\n this.hasInitialValue(\r\n parts[CronFieldType.WeekDay]) ? \r\n parts[CronFieldType.WeekDay].replace(/\\//g, '').split(',').map(Number)\r\n : []),\r\n monthDay: new FormControl(\r\n this.hasInitialValue(\r\n parts[CronFieldType.MonthDay]) ? \r\n this.formatCronNumber(parts[CronFieldType.MonthDay])\r\n : 1),\r\n monthDays: new FormControl(\r\n this.hasInitialValue(parts[CronFieldType.MonthDay]) ? \r\n parts[CronFieldType.MonthDay].replace(/[/*]/g, '').split(',').map(Number)\r\n : []),\r\n months: new FormControl(\r\n this.hasInitialValue(parts[CronFieldType.Month]) ? \r\n parts[CronFieldType.Month].replace(/\\//g, '').split(',').map(Number)\r\n : 0),\r\n });\r\n } else {\r\n this.formGroup = this.formBuilder.group({\r\n periodicity: new FormControl(0),\r\n minutes: new FormControl(0),\r\n hours: new FormControl(0),\r\n weekDays: new FormControl([]),\r\n monthDay: new FormControl(1),\r\n monthDays: new FormControl([]),\r\n months: new FormControl(0),\r\n });\r\n }\r\n }\r\n\r\n hasInitialValue(part: string) {\r\n if(part == '*' || part == '0') {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n formatCronNumber(cronValue: string) {\r\n return +cronValue.replace(/[/*]/g, '');\r\n }\r\n\r\n initPeriodicities() {\r\n const translationsMap = {\r\n [CronPeriodicityType.RepeatEveryXMinutes]: this.translationsObject.periodicities.everyXMinutes,\r\n [CronPeriodicityType.RepeatEveryMinute]: this.translationsObject.periodicities.everyMinute,\r\n [CronPeriodicityType.RepeatEveryXHours]: this.translationsObject.periodicities.everyXHours,\r\n [CronPeriodicityType.RepeatEveryHour]: this.translationsObject.periodicities.everyHour,\r\n [CronPeriodicityType.RepeatEveryXDays]: this.translationsObject.periodicities.everyXDays,\r\n [CronPeriodicityType.RepeatEveryWeek]: this.translationsObject.periodicities.everyWeek,\r\n [CronPeriodicityType.RepeatEveryXMonths]: this.translationsObject.periodicities.everyXMonths,\r\n [CronPeriodicityType.RepeatEveryMonth]: this.translationsObject.periodicities.everyMonth,\r\n };\r\n\r\n if (this.periodicitiesDisplayed) {\r\n this.periodicities = this.periodicitiesDisplayed.map(periodicity => ({\r\n value: periodicity,\r\n name: translationsMap[periodicity]\r\n }));\r\n } else {\r\n this.periodicities = Object.entries(translationsMap).map(([key, value]) => ({\r\n value: Number(key), \r\n name: value\r\n }));\r\n }\r\n if(!this.initialValue) {\r\n this.periodicitySelected = this.periodicities[0]?.value;\r\n }\r\n }\r\n\r\n initParsedValues() {\r\n if(this.hiddeHoursAndMinutes) {\r\n this.hourSelected = 0;\r\n this.minuteSelected = 0;\r\n const parts = this.initialValue.split(' ');\r\n parts[CronFieldType.Hour] = '0';\r\n parts[CronFieldType.Minute] = '0';\r\n this.initialValue = parts.join(' ');\r\n }\r\n this.expression = this.parseCronExpression(this.initialValue);\r\n \r\n this.periodicitySelected = this.getCronPeriodicityType(this.initialValue)!;\r\n this.handleZeroHoursArray();\r\n this.cronToHuman();\r\n }\r\n\r\n parseCronExpression(cron: string): any[] {\r\n const parts = cron.split(\" \");\r\n \r\n while (parts.length < 6) {\r\n parts.push('*');\r\n }\r\n \r\n return parts;\r\n }\r\n\r\n initMonths() {\r\n this.months = [\r\n { value: 1, name: this.translationsObject.months.january }, \r\n { value: 2, name: this.translationsObject.months.february }, \r\n { value: 3, name: this.translationsObject.months.march }, \r\n { value: 4, name: this.translationsObject.months.april }, \r\n { value: 5, name: this.translationsObject.months.may }, \r\n { value: 6, name: this.translationsObject.months.june }, \r\n { value: 7, name: this.translationsObject.months.july }, \r\n { value: 8, name: this.translationsObject.months.august }, \r\n { value: 9, name: this.translationsObject.months.september }, \r\n { value: 10, name:this.translationsObject.months.october }, \r\n { value: 11, name:this.translationsObject.months.november }, \r\n { value: 12, name:this.translationsObject.months.december }, \r\n ];\r\n }\r\n\r\n initWeekDays() {\r\n this.weekDays = [\r\n { value: 0, name: this.translationsObject.weekDays.sunday }, \r\n { value: 1, name: this.translationsObject.weekDays.monday }, \r\n { value: 2, name: this.translationsObject.weekDays.tuesday }, \r\n { value: 3, name: this.translationsObject.weekDays.wednesday }, \r\n { value: 4, name: this.translationsObject.weekDays.thursday }, \r\n { value: 5, name: this.translationsObject.weekDays.friday }, \r\n { value: 6, name: this.translationsObject.weekDays.saturday }, \r\n ];\r\n }\r\n\r\n allowSeconds() {\r\n return false; \r\n }\r\n\r\n allowMinutes() {\r\n switch(this.periodicitySelected){\r\n case CronPeriodicityType.RepeatEveryXMinutes:\r\n case CronPeriodicityType.RepeatEveryMinute:\r\n case CronPeriodicityType.RepeatEveryXHours:\r\n case CronPeriodicityType.RepeatEveryHour:\r\n return true;\r\n case CronPeriodicityType.RepeatEveryXDays:\r\n case CronPeriodicityType.RepeatEveryWeek:\r\n case CronPeriodicityType.RepeatEveryMonth:\r\n case CronPeriodicityType.RepeatEveryXMonths: \r\n return !this.hiddeHoursAndMinutes;\r\n default: \r\n return false;\r\n }\r\n }\r\n\r\n allowHours() {\r\n switch(this.periodicitySelected){\r\n case CronPeriodicityType.RepeatEveryXHours:\r\n case CronPeriodicityType.RepeatEveryHour:\r\n return true;\r\n case CronPeriodicityType.RepeatEveryXDays:\r\n case CronPeriodicityType.RepeatEveryWeek:\r\n case CronPeriodicityType.RepeatEveryMonth:\r\n case CronPeriodicityType.RepeatEveryXMonths: \r\n return !this.hiddeHoursAndMinutes;\r\n default: \r\n return false;\r\n }\r\n }\r\n\r\n allowWeekDays() {\r\n switch(this.periodicitySelected){\r\n case CronPeriodicityType.RepeatEveryWeek:\r\n return true;\r\n default: \r\n return false;\r\n }\r\n }\r\n\r\n allowMonthDay() {\r\n switch(this.periodicitySelected){\r\n case CronPeriodicityType.RepeatEveryXDays: \r\n return true;\r\n default: \r\n return false;\r\n }\r\n }\r\n\r\n allowMonthDays() {\r\n switch(this.periodicitySelected){\r\n case CronPeriodicityType.RepeatEveryXMonths: \r\n case CronPeriodicityType.RepeatEveryMonth:\r\n return true;\r\n default: \r\n return false;\r\n }\r\n }\r\n\r\n allowMonths() {\r\n switch(this.periodicitySelected){\r\n case CronPeriodicityType.RepeatEveryXMonths: \r\n return true;\r\n default: \r\n return false;\r\n }\r\n }\r\n\r\n isMonthDaysRequired() {\r\n if(this.periodicitySelected == CronPeriodicityType.RepeatEveryXMonths) {\r\n return false;\r\n } else { \r\n return true;\r\n }\r\n }\r\n\r\n onPeriodicitySelected() {\r\n this.restartExpression();\r\n this.handleZeroHoursArray();\r\n this.updateMonthDaysRequirement();\r\n this.onHoursSelected(this.hourSelected);\r\n this.onWeekDaysSelected(this.weekDaySelected);\r\n this.onMonthsSelected(this.monthSelected);\r\n this.onMonthDaysSelected(this.monthDaysSelected);\r\n this.onMonthDaySelected(this.monthDaySelected);\r\n this.onMinuteSelected(this.minuteSelected);\r\n }\r\n\r\n handleZeroHoursArray() {\r\n if (this.periodicitySelected == CronPeriodicityType.RepeatEveryXHours) {\r\n this.hours = Array.from({ length: 23 }, (_, i) => i + 1);\r\n if(this.hourSelected == 0) {\r\n this.hourSelected = 1;\r\n }\r\n } else {\r\n this.hours = Array.from({ length: 24 }, (_, i) => i);\r\n }\r\n }\r\n\r\n onMinuteSelected(minuteSelected: number) {\r\n switch(this.periodicitySelected){\r\n case CronPeriodicityType.RepeatEveryXMinutes: {\r\n this.expression[CronFieldType.Second] = `0`;\r\n this.expression[CronFieldType.Minute] = `*/${minuteSelected}`;\r\n break;\r\n }\r\n case CronPeriodicityType.RepeatEveryMinute:\r\n case CronPeriodicityType.RepeatEveryHour:\r\n case CronPeriodicityType.RepeatEveryXHours:\r\n case CronPeriodicityType.RepeatEveryXDays:\r\n case CronPeriodicityType.RepeatEveryWeek:\r\n case CronPeriodicityType.RepeatEveryMonth:\r\n case CronPeriodicityType.RepeatEveryXMonths: {\r\n this.expression[CronFieldType.Second] = `0`;\r\n this.expression[CronFieldType.Minute] = `${minuteSelected}`;\r\n break;\r\n }\r\n }\r\n this.cronToHuman();\r\n }\r\n\r\n onHoursSelected(hoursSelected: number) {\r\n this.expression[CronFieldType.Minute] = `${this.minuteSelected}`;\r\n switch(this.periodicitySelected){\r\n case CronPeriodicityType.RepeatEveryXHours:\r\n this.expression[CronFieldType.Hour] = `*/${hoursSelected}`;\r\n break;\r\n case CronPeriodicityType.RepeatEveryHour:\r\n case CronPeriodicityType.RepeatEveryXDays:\r\n case CronPeriodicityType.RepeatEveryWeek:\r\n case CronPeriodicityType.RepeatEveryMonth:\r\n case CronPeriodicityType.RepeatEveryXMonths: \r\n this.expression[CronFieldType.Second] = `${0}`;\r\n this.expression[CronFieldType.Hour] = `${hoursSelected}`;\r\n break;\r\n }\r\n this.cronToHuman();\r\n }\r\n\r\n onWeekDaysSelected(weekDaysSelected: number[]) {\r\n switch(this.periodicitySelected){\r\n case CronPeriodicityType.RepeatEveryWeek: {\r\n this.expression[CronFieldType.Second] = `${0}`;\r\n this.expression[CronFieldType.WeekDay] = `${weekDaysSelected}`;\r\n }\r\n }\r\n this.cronToHuman();\r\n }\r\n\r\n onMonthDaysSelected(monthDaysSelected: any) {\r\n switch(this.periodicitySelected){\r\n case CronPeriodicityType.RepeatEveryXDays:\r\n this.expression[CronFieldType.MonthDay] = `*/${this.monthDaySelected}`;\r\n break;\r\n case CronPeriodicityType.RepeatEveryMonth:\r\n case CronPeriodicityType.RepeatEveryXMonths: \r\n if(monthDaysSelected instanceof Array && monthDaysSelected.length == 0) {\r\n this.expression[CronFieldType.MonthDay] = `*`;\r\n } else {\r\n this.expression[CronFieldType.MonthDay] = `${monthDaysSelected}`;\r\n }\r\n break;\r\n }\r\n this.cronToHuman();\r\n }\r\n\r\n onMonthDaySelected(monthDaysSelected: any) {\r\n switch(this.periodicitySelected){\r\n case CronPeriodicityType.RepeatEveryXDays:\r\n this.expression[CronFieldType.MonthDay] = `*/${monthDaysSelected}`;\r\n break;\r\n }\r\n this.cronToHuman();\r\n }\r\n\r\n onMonthsSelected(monthsSelected: number[]) {\r\n switch(this.periodicitySelected){\r\n case CronPeriodicityType.RepeatEveryXMonths: {\r\n this.expression[CronFieldType.Second] = `0`;\r\n this.expression[CronFieldType.Month] = `${monthsSelected}`;\r\n }\r\n }\r\n this.cronToHuman();\r\n }\r\n\r\n cronToHuman() {\r\n const expressionForParsing = [...this.expression];\r\n\r\n if (this.shouldHiddeHoursAndMinutes()) {\r\n expressionForParsing[CronFieldType.Minute] = '0';\r\n expressionForParsing[CronFieldType.Hour] = '0';\r\n }\r\n\r\n this.description = cronstrue.toString(expressionForParsing.join(' '), {locale: window.navigator.language.slice(0,2) });\r\n\r\n if(this.startDate && this.endDate) {\r\n const adjustedStartDate = new Date(this.startDate.getTime() - 60000);\r\n\r\n const options = {\r\n currentDate: adjustedStartDate,\r\n endDate: this.endDate,\r\n iterator: true,\r\n };\r\n\r\n const firstExecOptions = {\r\n currentDate: adjustedStartDate\r\n };\r\n \r\n const interval = CronExpressionParser.parse(expressionForParsing.join(' '), options);\r\n const intervalForFirstExecution = CronExpressionParser.parse(expressionForParsing.join(' '), firstExecOptions);\r\n\r\n\r\n const dates: (Date | string)[] = [];\r\n let maxOccurrences = 5;\r\n let count = 0;\r\n\r\n try {\r\n while (count < maxOccurrences + 1) {\r\n const value = interval.next();\r\n const date = new Date(value.toString());\r\n\r\n if (date.getTime() > this.endDate.getTime()) break;\r\n \r\n if(count < maxOccurrences) {\r\n dates.push(date);\r\n } else {\r\n dates.push('...');\r\n }\r\n count++;\r\n }\r\n } catch (err) {\r\n // console.log(err);\r\n }\r\n\r\n this.occurrences = dates\r\n .map(d => d instanceof Date ? this.wappDate.transform(d, WDatePipeFormatType.G) : d)\r\n .join(\", \");\r\n\r\n let cronExpression: string = this.expression.join(' ');\r\n\r\n if(![CronPeriodicityType.RepeatEveryXMinutes, CronPeriodicityType.RepeatEveryMinute, CronPeriodicityType.RepeatEveryXHours].includes(this.periodicitySelected)) {\r\n cronExpression = this.localUserCronToUTCCron(this.expression.join(' '));\r\n }\r\n\r\n this.firstExecutionDate.emit(new Date(intervalForFirstExecution.take(1).toString()));\r\n\r\n this.cronExpression.emit(cronExpression);\r\n }\r\n }\r\n\r\n shouldHiddeHoursAndMinutes() {\r\n return this.hiddeHoursAndMinutes && \r\n (this.periodicitySelected === CronPeriodicityType.RepeatEveryXMonths || \r\n this.periodicitySelected === CronPeriodicityType.RepeatEveryMonth ||\r\n this.periodicitySelected === CronPeriodicityType.RepeatEveryXDays ||\r\n this.periodicitySelected === CronPeriodicityType.RepeatEveryWeek);\r\n }\r\n\r\n localUserCronToUTCCron(cronExpression: string) {\r\n \r\n const cronParts = cronExpression.trim().split(' ');\r\n const userOffset = -(new Date().getTimezoneOffset() / 60);\r\n\r\n let localHour = parseInt(cronParts[2], 10);\r\n\r\n if(cronParts[CronFieldType.Hour].startsWith('*/')){\r\n localHour = +(cronParts[CronFieldType.Hour].split('/')[1]);\r\n }\r\n\r\n let utcHour = localHour - userOffset;\r\n let dayAdjustment = 0;\r\n \r\n if (utcHour >= 24) {\r\n utcHour -= 24;\r\n dayAdjustment = 1;\r\n } else if (utcHour < 0) {\r\n utcHour += 24;\r\n dayAdjustment = -1;\r\n }\r\n\r\n let utcHourString = utcHour.toString();\r\n\r\n if(cronParts[CronFieldType.Hour].startsWith('*/')){\r\n utcHourString = \"*/\" + utcHourString;\r\n }\r\n \r\n cronParts[2] = utcHourString;\r\n \r\n return cronParts.join(' ');\r\n }\r\n\r\n localUTCCronToUserLocaleCron(cronExpression: string) {\r\n const cronParts = cronExpression.trim().split(' ');\r\n const userOffset = -(new Date().getTimezoneOffset() / 60);\r\n\r\n if(cronParts[CronFieldType.Hour] != '*' && !cronParts[CronFieldType.Hour].startsWith(\"*/\")){\r\n const utcHour = parseInt(cronParts[CronFieldType.Hour], 10);\r\n \r\n let localHour = utcHour + userOffset;\r\n let dayAdjustment = 0;\r\n \r\n if (localHour >= 24) {\r\n localHour -= 24;\r\n dayAdjustment = 1;\r\n } else if (localHour < 0) {\r\n localHour += 24;\r\n dayAdjustment = -1;\r\n }\r\n \r\n cronParts[CronFieldType.Hour] = localHour.toString();\r\n }\r\n return cronParts.join(' ');\r\n }\r\n\r\n formatArrayValues(array: any[]) {\r\n return array?.map(a => a.value).join(',');\r\n }\r\n\r\n restartExpression() {\r\n this.expression = ['*','*','*','*','*','*'];\r\n }\r\n\r\n getCronPeriodicityType(cron: string): CronPeriodicityType | null {\r\n const parts = cron.split(\" \");\r\n \r\n if (parts.length !== 6) {\r\n return null;\r\n }\r\n \r\n const [second, minute, hour, dayOfMonth, month, dayOfWeek] = parts;\r\n\r\n if (minute.startsWith(\"*/\") && hour === \"*\" && dayOfMonth === \"*\" && month === \"*\" && dayOfWeek === \"*\") {\r\n return CronPeriodicityType.RepeatEveryXMinutes;\r\n }\r\n\r\n if (minute !== \"*\" && hour === \"*\" && dayOfMonth === \"*\" && month === \"*\" && dayOfWeek === \"*\") {\r\n return CronPeriodicityType.RepeatEveryMinute;\r\n }\r\n\r\n if (hour.startsWith(\"*/\") && dayOfMonth === \"*\" && month === \"*\" && dayOfWeek === \"*\") {\r\n return CronPeriodicityType.RepeatEveryXHours;\r\n }\r\n\r\n if (minute !== \"*\" && hour !== \"*\" && dayOfMonth === \"*\" && month === \"*\" && dayOfWeek === \"*\") {\r\n return CronPeriodicityType.RepeatEveryHour;\r\n }\r\n\r\n if (dayOfMonth.startsWith(\"*/\") && month === \"*\" && dayOfWeek === \"*\") {\r\n return CronPeriodicityType.RepeatEveryXDays;\r\n }\r\n\r\n if (dayOfWeek !== \"*\" && dayOfMonth === \"*\" && month === \"*\") {\r\n return CronPeriodicityType.RepeatEveryWeek;\r\n }\r\n\r\n if (dayOfMonth !== \"*\" && month == \"*\") {\r\n return CronPeriodicityType.RepeatEveryMonth;\r\n }\r\n \r\n if (month !== \"*\") {\r\n return CronPeriodicityType.RepeatEveryXMonths;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n updateMonthDaysRequirement() {\r\n if(this.periodicitySelected == CronPeriodicityType.RepeatEveryXMonths) {\r\n this.formGroup?.controls['monthDays'].removeValidators([Validators.required]);\r\n this.formGroup?.controls['monthDays'].updateValueAndValidity();\r\n } else { \r\n this.formGroup?.controls['monthDays'].addValidators([Validators.required]);\r\n this.formGroup?.controls['monthDays'].updateValueAndValidity();\r\n }\r\n }\r\n\r\n set periodicitySelected(value: number) {\r\n this.formGroup?.patchValue({periodicity: value});\r\n }\r\n\r\n get periodicitySelected() {\r\n return this.formGroup?.get('periodicity')!.value;\r\n }\r\n\r\n set minuteSelected(value: number) {\r\n this.formGroup?.patchValue({minutes: value});\r\n }\r\n\r\n get minuteSelected() {\r\n return this.formGroup?.get('minutes')!.value;\r\n }\r\n\r\n set hourSelected(value: number) {\r\n this.formGroup?.patchValue({hours: value});\r\n }\r\n\r\n get hourSelected() {\r\n return this.formGroup?.get('hours')!.value;\r\n }\r\n\r\n get weekDaySelected() {\r\n return this.formGroup?.get('weekDays')!.value;\r\n }\r\n\r\n get monthDaySelected() {\r\n return this.formGroup?.get('monthDay')!.value;\r\n }\r\n\r\n get monthDaysSelected() {\r\n return this.formGroup?.get('monthDays')!.value;\r\n }\r\n\r\n get monthSelected() {\r\n return this.formGroup?.get('months')!.value;\r\n }\r\n}\r\n","@if (hasContainer) {\r\n <w-panel>\r\n <ng-container *ngTemplateOutlet=\"cronComponent\"></ng-container>\r\n </w-panel>\r\n} @else {\r\n <form [formGroup]=\"formGroup\" class=\"col-12\">\r\n <w-panel-grid class=\"col-12\">\r\n <w-edit-select class=\"col-12\"\r\n [label]=\"translationsObject.periodicityLabel\"\r\n [required]=\"true\"\r\n [options]=\"periodicities\"\r\n [optionValue]=\"'value'\"\r\n [optionLabel]=\"'name'\"\r\n [formControl]=\"formControlService.convertToFormControl(formGroup.get('periodicity'))\"\r\n (onChange)=\"onPeriodicitySelected()\">\r\n </w-edit-select>\r\n @if (allowMonths()) {\r\n <w-edit-multiselect\r\n class=\"col-12\"\r\n [label]=\"translationsObject.monthsLabel\"\r\n [required]=\"true\"\r\n [options]=\"months\"\r\n [optionValue]=\"'value'\"\r\n [optionLabel]=\"'name'\"\r\n [formControl]=\"formControlService.convertToFormControl(formGroup.get('months'))\"\r\n (onChange)=\"onMonthsSelected($event)\">\r\n </w-edit-multiselect>\r\n }\r\n @if (allowMonthDays()) {\r\n <w-edit-multiselect\r\n class=\"col-12\"\r\n [label]=\"translationsObject.daysLabel\"\r\n [required]=\"isMonthDaysRequired()\"\r\n [options]=\"monthDays\"\r\n [optionValue]=\"'value'\"\r\n [optionLabel]=\"'value'\"\r\n [formControl]=\"formControlService.convertToFormControl(formGroup.get('monthDays'))\"\r\n (onChange)=\"onMonthDaysSelected($event)\">\r\n </w-edit-multiselect>\r\n }\r\n @if (allowMonthDay()) {\r\n <w-edit-select\r\n class=\"col-12\"\r\n [label]=\"translationsObject.daysLabel\"\r\n [required]=\"true\"\r\n [options]=\"monthDays\"\r\n [optionValue]=\"'value'\"\r\n [optionLabel]=\"'value'\"\r\n [formControl]=\"formControlService.convertToFormControl(formGroup.get('monthDay'))\"\r\n (onChange)=\"onMonthDaysSelected($event)\">\r\n </w-edit-select>\r\n }\r\n @if (allowWeekDays()) {\r\n <w-edit-multiselect\r\n class=\"col-12\"\r\n [label]=\"translationsObject.weekDaysLabel\"\r\n [required]=\"true\"\r\n [options]=\"weekDays\"\r\n [optionValue]=\"'value'\"\r\n [optionLabel]=\"'name'\"\r\n [formControl]=\"formControlService.convertToFormControl(formGroup.get('weekDays'))\"\r\n (onChange)=\"onWeekDaysSelected($event)\">\r\n </w-edit-multiselect>\r\n }\r\n @if (allowHours()) {\r\n <w-edit-select\r\n class=\"col-6\"\r\n [label]=\"translationsObject.hourLabel\"\r\n [required]=\"true\"\r\n [options]=\"hours\"\r\n [formControl]=\"formControlService.convertToFormControl(formGroup.get('hours'))\"\r\n (onChange)=\"onHoursSelected($event)\">\r\n </w-edit-select>\r\n }\r\n @if (allowMinutes()) {\r\n <w-edit-select\r\n [ngClass]=\"{'col-6': allowHours(), 'col-12': !allowHours()}\"\r\n [label]=\"translationsObject.minuteLabel\"\r\n [required]=\"true\"\r\n [options]=\"minutes\"\r\n [formControl]=\"formControlService.convertToFormControl(formGroup.get('minutes'))\"\r\n (onChange)=\"onMinuteSelected($event)\">\r\n </w-edit-select>\r\n }\r\n @if (allowSeconds()) {\r\n <w-edit-input-number\r\n class=\"col-6\"\r\n [label]=\"'Segundos'\"\r\n [required]=\"true\"\r\n [min]=\"0\"\r\n [max]=\"59\">\r\n </w-edit-input-number>\r\n }\r\n <w-view-text class=\"col-12\"\r\n [label]=\"translationsObject.descriptionLabel\"\r\n [value]=\"description\"\r\n [layout]=\"'vertical'\">\r\n </w-view-text>\r\n <w-view-text class=\"col-12\"\r\n [label]=\"translationsObject.occurrencesLabel\"\r\n [value]=\"occurrences\"\r\n [layout]=\"'vertical'\">\r\n </w-view-text>\r\n </w-panel-grid>\r\n </form>\r\n}\r\n\r\n<ng-template #cronComponent>\r\n <form [formGroup]=\"formGroup\" class=\"col-12\">\r\n <w-panel-grid class=\"col-12\">\r\n <w-edit-select class=\"col-12\"\r\n [label]=\"translationsObject.periodicityLabel\"\r\n [required]=\"true\"\r\n [options]=\"periodicities\"\r\n [optionValue]=\"'value'\"\r\n [optionLabel]=\"'name'\"\r\n [formControl]=\"formControlService.convertToFormControl(formGroup.get('periodicity'))\"\r\n (onChange)=\"onPeriodicitySelected()\">\r\n </w-edit-select>\r\n @if (allowMonths()) {\r\n <w-edit-multiselect\r\n class=\"col-12\"\r\n [label]=\"translationsObject.monthsLabel\"\r\n [required]=\"true\"\r\n [options]=\"months\"\r\n [optionValue]=\"'value'\"\r\n [optionLabel]=\"'name'\"\r\n [formControl]=\"formControlService.convertToFormControl(formGroup.get('months'))\"\r\n (onChange)=\"onMonthsSelected($event)\">\r\n </w-edit-multiselect>\r\n }\r\n @if (allowMonthDays()) {\r\n <w-edit-multiselect\r\n class=\"col-12\"\r\n [label]=\"translationsObject.daysLabel\"\r\n [required]=\"isMonthDaysRequired()\"\r\n [options]=\"monthDays\"\r\n [optionValue]=\"'value'\"\r\n [optionLabel]=\"'value'\"\r\n [formControl]=\"formControlService.convertToFormControl(formGroup.get('monthDays'))\"\r\n (onChange)=\"onMonthDaysSelected($event)\">\r\n </w-edit-multiselect>\r\n }\r\n @if (allowMonthDay()) {\r\n <w-edit-select\r\n class=\"col-12\"\r\n [label]=\"translationsObject.daysLabel\"\r\n [required]=\"true\"\r\n [options]=\"monthDays\"\r\n [optionValue]=\"'value'\"\r\n [optionLabel]=\"'value'\"\r\n [formControl]=\"formControlService.convertToFormControl(formGroup.get('monthDay'))\"\r\n (onChange)=\"onMonthDaysSelected($event)\">\r\n </w-edit-select>\r\n }\r\n @if (allowWeekDays()) {\r\n <w-edit-multiselect\r\n class=\"col-12\"\r\n [label]=\"translationsObject.weekDaysLabel\"\r\n [required]=\"true\"\r\n [options]=\"weekDays\"\r\n [optionValue]=\"'value'\"\r\n [optionLabel]=\"'name'\"\r\n [formControl]=\"formControlService.convertToFormControl(formGroup.get('weekDays'))\"\r\n (onChange)=\"onWeekDaysSelected($event)\">\r\n </w-edit-multiselect>\r\n }\r\n @if (allowHours()) {\r\n <w-edit-select\r\n class=\"col-6\"\r\n [label]=\"translationsObject.hourLabel\"\r\n [required]=\"true\"\r\n [options]=\"hours\"\r\n [formControl]=\"formControlService.convertToFormControl(formGroup.get('hours'))\"\r\n (onChange)=\"onHoursSelected($event)\">\r\n </w-edit-select>\r\n }\r\n @if (allowMinutes()) {\r\n <w-edit-select\r\n [ngClass]=\"{'col-6': allowHours(), 'col-12': !allowHours()}\"\r\n [label]=\"translationsObject.minuteLabel\"\r\n [required]=\"true\"\r\n [options]=\"minutes\"\r\n [formControl]=\"formControlService.convertToFormControl(formGroup.get('minutes'))\"\r\n (onChange)=\"onMinuteSelected($event)\">\r\n </w-edit-select>\r\n }\r\n @if (allowSeconds()) {\r\n <w-edit-input-number\r\n class=\"col-6\"\r\n [label]=\"'Segundos'\"\r\n [required]=\"true\"\r\n [min]=\"0\"\r\n [max]=\"59\">\r\n </w-edit-input-number>\r\n }\r\n <w-view-text class=\"col-12\"\r\n [label]=\"translationsObject.descriptionLabel\"\r\n [value]=\"description\"\r\n [layout]=\"'vertical'\">\r\n </w-view-text>\r\n <w-view-text class=\"col-12\"\r\n [label]=\"translationsObject.occurrencesLabel\"\r\n [value]=\"occurrences\"\r\n [layout]=\"'vertical'\">\r\n </w-view-text>\r\n </w-panel-grid>\r\n </form>\r\n</ng-template>","import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\r\nimport { ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'w-edit-input-colorpicker',\r\n templateUrl: './w-edit-input-colorpicker.component.html',\r\n styleUrls: ['./w-edit-input-colorpicker.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => WEditInputColorpickerComponent),\r\n multi: true\r\n }\r\n ],\r\n standalone: false\r\n})\r\nexport class WEditInputColorpickerComponent implements OnInit, ControlValueAccessor {\r\n @Input('label') label!: string; \r\n value: string = \"#ffffff\";\r\n @Input('formControl') formControl!: FormControl | null;\r\n @Output('onChange') onChangeEvent: EventEmitter<any> = new EventEmitter();\r\n @Input('format') format: 'hex' | 'rgb' | 'hsb' = \"hex\"; \r\n @Input('placeholder') placeholder: string = \"\";\r\n @Input('required') required: boolean = false;\r\n @Input('requiredErrorDescription') requiredErrorDescription: string = \"Data is required\";\r\n @Input('disabled') disabled: boolean = false;\r\n @Input('tooltip') tooltip!: string;\r\n @Input() tooltipPosition?: string;\r\n\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n \r\n ngOnInit(): void {\r\n if(this.formControl){\r\n this.setValue();\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouch = fn; \r\n }\r\n \r\n onValue(){\r\n this.onChange(this.value); \r\n this.onTouch(); \r\n\r\n this.onChangeEvent.emit(this.value);\r\n }\r\n\r\n onValueChange(value: any){\r\n this.onChangeEvent.emit(value); \r\n }\r\n\r\n onTextValue(){\r\n if(this.value){ \r\n this.onChange(this.value)\r\n }else{\r\n this.onChange(null);\r\n }\r\n }\r\n\r\n setValue(){\r\n this.formControl?.valueChanges.subscribe(value => {\r\n this.value = value;\r\n })\r\n }\r\n\r\n test(value: any){\r\n this.formControl?.setValue(value);\r\n }\r\n}\r\n","@if (formControl) {\r\n <div class=\"w-edit-input-colorpicker\">\r\n <w-edit-input-text class=\"flex\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"test($event)\"\r\n [label]=\"label\"\r\n [required]=\"required\"\r\n [requiredErrorDescription]=\"requiredErrorDescription\"\r\n [disabled]=\"disabled\"\r\n [tooltip]=\"tooltip\"\r\n [tooltipPosition]=\"tooltipPosition\" >\r\n </w-edit-input-text>\r\n <p-colorpicker class=\"w-colorpicker flex\"\r\n [formControl]=\"formControl\"\r\n (onChange)=\"onValueChange($event)\"\r\n [format]=\"format\"\r\n [appendTo]=\"'body'\">\r\n </p-colorpicker>\r\n </div>\r\n} @else {\r\n <div class=\"w-edit-input-colorpicker\">\r\n <w-edit-input-text class=\"flex\" [label]=\"label\"\r\n [required]=\"required\"\r\n [requiredErrorDescription]=\"requiredErrorDescription\"\r\n [disabled]=\"disabled\"\r\n [tooltip]=\"tooltip\"\r\n [tooltipPosition]=\"tooltipPosition\"\r\n [(ngModel)]=\"value\"\r\n (ngModelChange)=\"onTextValue()\" >\r\n </w-edit-input-text>\r\n <p-colorpicker class=\"w-colorpicker flex\"\r\n [(ngModel)]=\"value\"\r\n (onChange)=\"onValue()\"\r\n [format]=\"format\"\r\n [appendTo]=\"'body'\">\r\n </p-colorpicker>\r\n </div>\r\n}\r\n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport * as XLSX from 'xlsx';\r\n\r\nenum FileType {\r\n TXT = 'txt',\r\n PDF = 'pdf',\r\n DOCX = 'docx',\r\n XLSX = 'xlsx',\r\n}\r\n\r\n@Component({\r\n selector: 'w-file-generator',\r\n templateUrl: './w-file-generator.component.html',\r\n styleUrls: ['./w-file-generator.component.css'],\r\n standalone: false\r\n})\r\n\r\nexport class WFileGeneratorComponent implements OnInit {\r\n @Input() label: string = 'Generate File'; \r\n @Input() icon: string = \"\"; \r\n @Input() fileType: FileType = FileType.XLSX;\r\n @Input() fileData: any;\r\n @Input() fileName: string = 'file';\r\n\r\n generating: boolean = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void { }\r\n\r\n generateFile(): void {\r\n if(this.fileData) { \r\n this.generating = true;\r\n switch(this.fileType){\r\n case FileType.TXT:\r\n break;\r\n case FileType.PDF:\r\n break;\r\n case FileType.DOCX:\r\n break;\r\n case FileType.XLSX:\r\n this.generateXLSXFile();\r\n break;\r\n }\r\n }\r\n }\r\n\r\n generateXLSXFile(): void {\r\n if(Array.isArray(this.fileData)){\r\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(this.fileData);\r\n const workbook: XLSX.WorkBook = {\r\n Sheets: { 'Datos': worksheet },\r\n SheetNames: ['Datos']\r\n };\r\n XLSX.writeFile(workbook, `${this.getExcelFileName()}`);\r\n this.generating = false;\r\n }\r\n }\r\n\r\n allowFileGeneration(): boolean {\r\n return this.fileData && (Array.isArray(this.fileData) ? this.fileData.length > 0 : true);\r\n }\r\n\r\n getExcelFileName(): string {\r\n return `${this.getDate()}_${this.fileName}.xlsx`;\r\n }\r\n \r\n getDate(): string {\r\n const date = new Date();\r\n const year = date.getFullYear().toString();\r\n const month = String(date.getMonth() + 1).padStart(2, '0');\r\n const day = String(date.getDate()).padStart(2, '0');\r\n\r\n return `${year}${month}${day}`;\r\n }\r\n}\r\n","<w-button [label]=\"label\" [icon]=\"icon\" (onClick)=\"generateFile()\" [loading]=\"generating\" [disabled]=\"!allowFileGeneration()\"></w-button>","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'w-dataview',\r\n templateUrl: './w-dataview.component.html',\r\n styleUrls: ['./w-dataview.component.scss'],\r\n standalone: false\r\n})\r\nexport class WDataviewComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","<p>\r\n w-dataview works! yeeei\r\n</p>\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const NGX_MONACO_EDITOR_CONFIG = new InjectionToken('NGX_MONACO_EDITOR_CONFIG');\r\n\r\nexport interface NgxMonacoEditorConfig {\r\n baseUrl?: string;\r\n requireConfig?: { [key: string]: any; };\r\n defaultOptions?: { [key: string]: any; };\r\n monacoRequire?: Function;\r\n onMonacoLoad?: Function;\r\n}\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n ViewChild,\r\n inject\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { NGX_MONACO_EDITOR_CONFIG, NgxMonacoEditorConfig } from './config';\r\n\r\nlet loadedMonaco = false;\r\nlet loadPromise: Promise<void>;\r\n\r\n@Component({\r\n template: '',\r\n standalone: false\r\n})\r\nexport abstract class BaseEditor implements AfterViewInit, OnDestroy {\r\n config = inject<NgxMonacoEditorConfig>(NGX_MONACO_EDITOR_CONFIG);\r\n\r\n @Input('insideNg')\r\n set insideNg(insideNg: boolean) {\r\n this._insideNg = insideNg;\r\n if (this._editor) {\r\n this._editor.dispose();\r\n this.initMonaco(this._options, this.insideNg);\r\n }\r\n }\r\n\r\n get insideNg(): boolean {\r\n return this._insideNg;\r\n }\r\n\r\n @ViewChild('editorContainer', { static: true }) _editorContainer!: ElementRef;\r\n @Output() onInit = new EventEmitter<any>();\r\n protected _editor: any;\r\n protected _options: any;\r\n protected _windowResizeSubscription!: Subscription;\r\n private _insideNg: boolean = false;\r\n\r\n ngAfterViewInit(): void {\r\n if (loadedMonaco) {\r\n // Wait until monaco editor is available\r\n loadPromise.then(() => {\r\n this.initMonaco(this._options, this.insideNg);\r\n });\r\n } else {\r\n loadedMonaco = true;\r\n loadPromise = new Promise<void>((resolve: any) => {\r\n let baseUrl = this.config.baseUrl;\r\n // ensure backward compatibility\r\n if (baseUrl === \"assets\" || !baseUrl) {\r\n baseUrl = \"./assets/monaco/min/vs\";\r\n }\r\n if (typeof ((<any>window).monaco) === 'object') {\r\n this.initMonaco(this._options, this.insideNg);\r\n resolve();\r\n return;\r\n }\r\n const onGotAmdLoader: any = (require?: any) => {\r\n let usedRequire = require || (<any>window).require;\r\n let requireConfig = { paths: { vs: `${baseUrl}` } };\r\n Object.assign(requireConfig, this.config.requireConfig || {});\r\n\r\n // Load monaco\r\n usedRequire.config(requireConfig);\r\n usedRequire([`vs/editor/editor.main`], () => {\r\n if (typeof this.config.onMonacoLoad === 'function') {\r\n this.config.onMonacoLoad();\r\n }\r\n this.initMonaco(this._options, this.insideNg);\r\n resolve();\r\n });\r\n };\r\n\r\n if (this.config.monacoRequire) {\r\n onGotAmdLoader(this.config.monacoRequire);\r\n // Load AMD loader if necessary\r\n } else if (!(<any>window).require) {\r\n const loaderScript: HTMLScriptElement = document.createElement('script');\r\n loaderScript.type = 'text/javascript';\r\n loaderScript.src = `${baseUrl}/loader.js`;\r\n loaderScript.addEventListener('load', () => { onGotAmdLoader(); });\r\n document.body.appendChild(loaderScript);\r\n // Load AMD loader without over-riding node's require\r\n } else if (!(<any>window).require.config) {\r\n var src = `${baseUrl}/loader.js`;\r\n\r\n var loaderRequest = new XMLHttpRequest();\r\n loaderRequest.addEventListener(\"load\", () => {\r\n let scriptElem = document.createElement('script');\r\n scriptElem.type = 'text/javascript';\r\n scriptElem.text = [\r\n // Monaco uses a custom amd loader that over-rides node's require.\r\n // Keep a reference to node's require so we can restore it after executing the amd loader file.\r\n 'var nodeRequire = require;',\r\n loaderRequest.responseText.replace('\"use strict\";', ''),\r\n // Save Monaco's amd require and restore Node's require\r\n 'var monacoAmdRequire = require;',\r\n 'require = nodeRequire;',\r\n 'require.nodeRequire = require;'\r\n ].join('\\n');\r\n document.body.appendChild(scriptElem);\r\n onGotAmdLoader((<any>window).monacoAmdRequire);\r\n });\r\n loaderRequest.open(\"GET\", src);\r\n loaderRequest.send();\r\n } else {\r\n onGotAmdLoader();\r\n }\r\n });\r\n }\r\n }\r\n\r\n protected abstract initMonaco(options: any, insideNg: boolean): void;\r\n\r\n ngOnDestroy() {\r\n if (this._windowResizeSubscription) {\r\n this._windowResizeSubscription.unsubscribe();\r\n }\r\n if (this._editor) {\r\n this._editor.dispose();\r\n this._editor = undefined;\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, NgZone, inject } from '@angular/core';\r\nimport { fromEvent } from 'rxjs';\r\n\r\nimport { BaseEditor } from './base-editor';\r\nimport { DiffEditorModel } from './types';\r\n\r\ndeclare var monaco: any;\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'ngx-monaco-diff-editor',\r\n template: '<div class=\"editor-container\" #editorContainer></div>',\r\n styles: [`\r\n :host {\r\n display: block;\r\n height: 200px;\r\n }\r\n\r\n .editor-container {\r\n width: 100%;\r\n height: 98%;\r\n }\r\n `],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DiffEditorComponent extends BaseEditor {\r\n private zone = inject(NgZone);\r\n\r\n _originalModel!: DiffEditorModel;\r\n _modifiedModel!: DiffEditorModel;\r\n\r\n @Input('options')\r\n set options(options: any) {\r\n this._options = Object.assign({}, this.config.defaultOptions, options);\r\n if (this._editor) {\r\n this._editor.dispose();\r\n this.initMonaco(this._options, this.insideNg);\r\n }\r\n }\r\n\r\n get options(): any {\r\n return this._options;\r\n }\r\n\r\n @Input('originalModel')\r\n set originalModel(model: DiffEditorModel) {\r\n this._originalModel = model;\r\n if (this._editor) {\r\n this._editor.dispose();\r\n this.initMonaco(this.options, this.insideNg);\r\n }\r\n }\r\n\r\n @Input('modifiedModel')\r\n set modifiedModel(model: DiffEditorModel) {\r\n this._modifiedModel = model;\r\n if (this._editor) {\r\n this._editor.dispose();\r\n this.initMonaco(this.options, this.insideNg);\r\n }\r\n }\r\n\r\n protected initMonaco(options: any, insideNg: boolean): void {\r\n\r\n if (!this._originalModel || !this._modifiedModel) {\r\n throw new Error('originalModel or modifiedModel not found for ngx-monaco-diff-editor');\r\n }\r\n\r\n this._originalModel.language = this._originalModel.language || options.language;\r\n this._modifiedModel.language = this._modifiedModel.language || options.language;\r\n\r\n let originalModel = monaco.editor.createModel(this._originalModel.code, this._originalModel.language);\r\n let modifiedModel = monaco.editor.createModel(this._modifiedModel.code, this._modifiedModel.language);\r\n\r\n this._editorContainer.nativeElement.innerHTML = '';\r\n const theme = options.theme;\r\n\r\n if (insideNg) {\r\n this._editor = monaco.editor.createDiffEditor(this._editorContainer.nativeElement, options);\r\n } else {\r\n this.zone.runOutsideAngular(() => {\r\n this._editor = monaco.editor.createDiffEditor(this._editorContainer.nativeElement, options);\r\n })\r\n }\r\n\r\n options.theme = theme;\r\n this._editor.setModel({\r\n original: originalModel,\r\n modified: modifiedModel\r\n });\r\n\r\n // refresh layout on resize event.\r\n if (this._windowResizeSubscription) {\r\n this._windowResizeSubscription.unsubscribe();\r\n }\r\n this._windowResizeSubscription = fromEvent(window, 'resize').subscribe(() => this._editor.layout());\r\n this.onInit.emit(this._editor);\r\n }\r\n\r\n}\r\n","import { ChangeDetectionStrategy, Component, forwardRef, inject, Input, NgZone } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { fromEvent } from 'rxjs';\r\n\r\nimport { BaseEditor } from './base-editor';\r\nimport { NgxEditorModel } from './types';\r\n\r\ndeclare var monaco: any;\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'w-monaco-editor',\r\n template: '<div class=\"editor-container\" #editorContainer></div>',\r\n styles: [`\r\n :host {\r\n display: block;\r\n height: 200px;\r\n }\r\n\r\n .editor-container {\r\n width: 100%;\r\n height: 98%;\r\n }\r\n `],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => EditorComponent),\r\n multi: true\r\n }]\r\n})\r\nexport class EditorComponent extends BaseEditor implements ControlValueAccessor {\r\n private zone = inject(NgZone);\r\n private _value: string = '';\r\n\r\n propagateChange = (_: any) => {};\r\n onTouched = () => {};\r\n\r\n @Input('options')\r\n set options(options: any) {\r\n this._options = Object.assign({}, this.config.defaultOptions, options);\r\n if (this._editor) {\r\n this._editor.dispose();\r\n this.initMonaco(this._options, this.insideNg);\r\n }\r\n }\r\n\r\n get options(): any {\r\n return this._options;\r\n }\r\n\r\n @Input('model')\r\n set model(model: NgxEditorModel) {\r\n this.options.model = model;\r\n if (this._editor) {\r\n this._editor.dispose();\r\n this.initMonaco(this.options, this.insideNg);\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n this._value = value || '';\r\n // Fix for value change while dispose in process.\r\n setTimeout(() => {\r\n if (this._editor && !this.options.model) {\r\n this._editor.setValue(this._value);\r\n }\r\n });\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.propagateChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(disabled: boolean): void {\r\n this.options.readOnly = disabled || this._options.readOnly;\r\n }\r\n\r\n protected initMonaco(options: any, insideNg: boolean): void {\r\n\r\n const hasModel = !!options.model;\r\n\r\n if (hasModel) {\r\n const model = monaco.editor.getModel(options.model.uri || '');\r\n if (model) {\r\n options.model = model;\r\n options.model.setValue(this._value);\r\n } else {\r\n options.model = monaco.editor.createModel(options.model.value, options.model.language, options.model.uri);\r\n }\r\n }\r\n\r\n if (insideNg) {\r\n this._editor = monaco.editor.create(this._editorContainer.nativeElement, options);\r\n } else {\r\n this.zone.runOutsideAngular(() => {\r\n this._editor = monaco.editor.create(this._editorContainer.nativeElement, options);\r\n })\r\n }\r\n\r\n if (!hasModel) {\r\n this._editor.setValue(this._value);\r\n }\r\n\r\n this._editor.onDidChangeModelContent((e: any) => {\r\n const value = this._editor.getValue();\r\n\r\n // value is not propagated to parent when executing outside zone.\r\n this.zone.run(() => {\r\n this.propagateChange(value);\r\n this._value = value;\r\n });\r\n });\r\n\r\n this._editor.onDidBlurEditorWidget(() => {\r\n this.onTouched();\r\n });\r\n\r\n this._editor.setTheme = (themeName: string): void => {\r\n this.options.theme = themeName;\r\n monaco.editor.setTheme(themeName);\r\n };\r\n\r\n // refresh layout on resize event.\r\n if (this._windowResizeSubscription) {\r\n this._windowResizeSubscription.unsubscribe();\r\n }\r\n this._windowResizeSubscription = fromEvent(window, 'resize').subscribe(() => this._editor.layout());\r\n this.onInit.emit(this._editor);\r\n }\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule, makeEnvironmentProviders } from '@angular/core';\r\n\r\nimport { NGX_MONACO_EDITOR_CONFIG, NgxMonacoEditorConfig } from './config';\r\nimport { DiffEditorComponent } from './diff-editor.component';\r\nimport { EditorComponent } from './editor.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n EditorComponent,\r\n DiffEditorComponent\r\n ],\r\n exports: [\r\n EditorComponent,\r\n DiffEditorComponent\r\n ]\r\n})\r\nexport class MonacoEditorModule {\r\n public static forRoot(config: NgxMonacoEditorConfig = {}): ModuleWithProviders<MonacoEditorModule> {\r\n return {\r\n ngModule: MonacoEditorModule,\r\n providers: [\r\n { provide: NGX_MONACO_EDITOR_CONFIG, useValue: config }\r\n ]\r\n };\r\n }\r\n}\r\n\r\nexport function provideMonacoEditor(config: NgxMonacoEditorConfig = {}) {\r\n return makeEnvironmentProviders([\r\n { provide: NGX_MONACO_EDITOR_CONFIG, useValue: config }\r\n ]);\r\n}\r\n","export enum WappingServiceType {\r\n Identity = 1,\r\n Loyalty = 2,\r\n Money = 3,\r\n Promotion = 4,\r\n Cuponing = 5,\r\n Post = 6,\r\n Draws = 7\r\n}\r\n\r\nexport enum WappingServiceSubtype {\r\n GiftCard = 1,\r\n VoucherCard = 2,\r\n LoyaltyClassicCard = 3,\r\n LoyaltyStoreCard = 4,\r\n DiscountCard = 5,\r\n ArticlePointsCard = 6,\r\n PromoPercent = 7,\r\n PromoFixedDiscount = 8,\r\n PromoPoints = 9,\r\n PromoArticleFree = 10,\r\n PromoArticleDiscount = 11,\r\n CouponToSale = 12,\r\n Post = 13,\r\n DiscountCoupon = 14,\r\n Identity = 15,\r\n PromoFixedPrice = 16,\r\n}\r\n\r\nexport enum SendingStatus\r\n{\r\n ScheduledToSend = 1,\r\n Cancelled = 2,\r\n Sent = 3,\r\n PendingRegistration = 4\r\n}\r\n\r\nexport enum CardStatus {\r\n generated = 1,\r\n activated = 2,\r\n exhausted = 3,\r\n blocked = 4,\r\n preAuthor = 5,\r\n sent = 6,\r\n expirated = 7,\r\n model = 8\r\n}\r\n\r\nexport enum WappingServiceAppViewType {\r\n Carousel = 1,\r\n View = 2,\r\n ViewDetail = 3\r\n}","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'wapp-modal-close-button',\r\n templateUrl: './wapp-modal-close-button.component.html',\r\n styleUrls: ['./wapp-modal-close-button.component.css'],\r\n standalone: false\r\n})\r\nexport class WappModalCloseButtonComponent implements OnInit {\r\n @Input(\"overImageButton\") overImageButton: boolean = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","<a class=\"modal-close-button\"\r\n [ngClass]=\"{ 'modal-close-button-over-image' : overImageButton }\"\r\n mat-dialog-close>\r\n <mat-icon svgIcon=\"close\"></mat-icon>\r\n</a>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'wapp-modal-title',\r\n templateUrl: './wapp-modal-title.component.html',\r\n styleUrls: ['./wapp-modal-title.component.css'],\r\n standalone: false\r\n})\r\nexport class WappModalTitleComponent implements OnInit {\r\n @Input('title') public title!: string;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","<h5 class=\"modal-title mat-subheading-2\">{{title}}</h5>\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-wapp-service-description',\r\n templateUrl: './wapp-service-description.component.html',\r\n styleUrls: ['./wapp-service-description.component.css'],\r\n standalone: false\r\n})\r\nexport class WappServiceDescriptionComponent implements OnInit {\r\n description!: string;\r\n title!: string;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) dialogData: any) {\r\n this.description = dialogData.description;\r\n this.title = dialogData.title;\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n\r\n}\r\n","<wapp-modal-close-button></wapp-modal-close-button>\r\n<wapp-modal-title [title]=\"title\"></wapp-modal-title>\r\n<div class=\"wapping-service-description mat-body-1\">\r\n {{description}} \r\n</div>\r\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\r\nimport { NoopScrollStrategy } from '@angular/cdk/overlay';\r\nimport { ComponentType } from '@angular/cdk/portal';\r\nimport { Inject, Injectable, TemplateRef } from '@angular/core';\r\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\r\nimport { ModalSize } from '../models/modal-size.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MaterialModalService {\r\nconstructor(private dialog: MatDialog, private breakpointObserver: BreakpointObserver,\r\n @Inject('IS_IFRAME') public isIframe: boolean) { }\r\n\r\n matDialogRef: any;\r\n smallDialogSubscription: any;\r\n private _modalProfileMissingRequiredFieldsShown: boolean = false;\r\n\r\n open(componentOrTemplateRef: ComponentType<any> | TemplateRef<any>, modalSize?: ModalSize, dialogConfig?: MatDialogConfig): MatDialogRef<any> {\r\n if (!dialogConfig) {\r\n dialogConfig = new MatDialogConfig;\r\n }\r\n\r\n dialogConfig.maxWidth = '100vw';\r\n dialogConfig.panelClass = ['animate__animated', 'animate__fadeInUp', 'animate__faster'];\r\n \r\n if (this.isIframe) {\r\n dialogConfig.scrollStrategy = new NoopScrollStrategy();\r\n window.top!.postMessage(\"modal-open\", \"*\");\r\n window.top!.postMessage(\"1200\", \"*\");\r\n window.scrollTo(0, 0);\r\n } \r\n\r\n this.matDialogRef = this.dialog.open(componentOrTemplateRef, dialogConfig);\r\n\r\n this.smallDialogSubscription = this.breakpointObserver.observe([Breakpoints.XSmall])\r\n .subscribe(size => {\r\n if (size.matches) {\r\n this.matDialogRef.updateSize('100%', '100%');\r\n this.matDialogRef.hasBackdrop = false;\r\n } else {\r\n if (!modalSize) {\r\n this.matDialogRef.updateSize('auto', 'auto');\r\n }\r\n else {\r\n this.matDialogRef.updateSize(modalSize.width, modalSize.height);\r\n }\r\n }\r\n });\r\n\r\n return this.matDialogRef;\r\n }\r\n\r\n close(): void {\r\n this.smallDialogSubscription.unsubscribe();\r\n this.matDialogRef.close();\r\n }\r\n\r\n get modalProfileMissingRequiredFieldsShown(): boolean {\r\n return this._modalProfileMissingRequiredFieldsShown;\r\n }\r\n\r\n setModalProfileMissingRequiredFieldsShown(status: boolean) {\r\n this._modalProfileMissingRequiredFieldsShown = status;\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { SafeHtml } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'wapp-main-title',\r\n templateUrl: './main-title.component.html',\r\n styleUrls: ['./main-title.component.css'],\r\n host: { class: 'main-title-host-container' },\r\n standalone: false\r\n})\r\nexport class MainTitleComponent implements OnInit {\r\n\r\n \r\n @Input('title') public title!: string | SafeHtml;\r\n @Input() extraClassToApply = \"\";\r\n \r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","<div fxLayout=\"row\" class=\"main-title-container\" fxLayoutAlign=\"center center\">\r\n <div class=\"main-title-large-container\" fxFlex fxHide.xs>\r\n <div class=\"main-title-line\" fxFlex></div>\r\n <div class=\"main-title\" [innerHTML]=\"title\"></div>\r\n <div class=\"main-title-line\" fxFlex></div>\r\n </div>\r\n <div class=\"main-title-small-container\" [ngClass]=\"extraClassToApply\" fxFlex fxHide fxShow.xs>\r\n <div [innerHTML]=\"title\"></div>\r\n </div>\r\n</div>\r\n\r\n","import { Component, OnInit, Input, ViewChild, ElementRef, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { fromEvent, Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport {\r\n animation,\r\n trigger,\r\n transition,\r\n query,\r\n style,\r\n animate,\r\n group,\r\n state,\r\n} from '@angular/animations';\r\nimport { DeviceDetectorService } from 'ngx-device-detector';\r\n\r\nconst animationCarousel = [\r\n state('outright', style({ transform: `translateX(100%)` })),\r\n state('outleft', style({ transform: `translateX(-100%)` })),\r\n transition('void=>inleft', [style({ transform: `translateX(0)` })]),\r\n transition('void=>outleft', [style({ transform: `translateX(-100%)` })]),\r\n\r\n transition('*=>inright', [\r\n style({ transform: `translateX(-100%)` }),\r\n animate('260ms ease-in', style({ transform: `translateX(0)` })),\r\n ]),\r\n transition('*=>inleft', [\r\n style({ transform: `translateX(100%)` }),\r\n animate('260ms ease-in', style({ transform: `translateX(0)` })),\r\n ]),\r\n transition('*=>outleft', [\r\n animate('260ms ease-in', style({ transform: `translateX(-100%)` })),\r\n ]),\r\n transition('*=>outright', [\r\n animate('260ms ease-in', style({ transform: `translateX(100%)` })),\r\n ]),\r\n];\r\n\r\nconst animationCarouselTranslateY = [\r\n state('outright', style({ transform: `translateY(100%)` })),\r\n state('outleft', style({ transform: `translateY(-100%)` })),\r\n transition('void=>inleft', [style({ transform: `translateY(0)` })]),\r\n transition('void=>outleft', [style({ transform: `translateY(-100%)` })]),\r\n\r\n transition('*=>inright', [\r\n style({ transform: `translateY(-100%)` }),\r\n animate('260ms ease-in', style({ transform: `translateY(0)` })),\r\n ]),\r\n transition('*=>inleft', [\r\n style({ transform: `translateY(100%)` }),\r\n animate('260ms ease-in', style({ transform: `translateY(0)` })),\r\n ]),\r\n transition('*=>outleft', [\r\n animate('260ms ease-in', style({ transform: `translateY(-100%)` })),\r\n ]),\r\n transition('*=>outright', [\r\n animate('260ms ease-in', style({ transform: `translateY(100%)` })),\r\n ]),\r\n];\r\n\r\nconst animationCarouselFade = [\r\n state('outright', style({ opacity: 0 })),\r\n state('outleft', style({ opacity: 0 })),\r\n transition('void=>inleft', [style({ opacity: 1 })]),\r\n transition('void=>outleft', [style({ opacity: 0 })]),\r\n\r\n transition('*=>inright', [\r\n style({ opacity: 0 }),\r\n animate('160ms ease-in', style({ opacity: 1 })),\r\n ]),\r\n transition('*=>inleft', [\r\n style({ opacity: 0 }),\r\n animate('160ms ease-in', style({ opacity: 1 })),\r\n ]),\r\n transition('*=>outleft', [\r\n animate('160ms ease-in', style({ opacity: 0 })),\r\n ]),\r\n transition('*=>outright', [\r\n animate('160ms ease-in', style({ opacity: 0 })),\r\n ]),\r\n];\r\n\r\nconst animationThumbnail = [\r\n state('true', style({ transform: `translateX({{margin}})` }), {\r\n params: { margin: 0 },\r\n }),\r\n state('false', style({ transform: `translateX({{margin}})` }), {\r\n params: { margin: 0 },\r\n }),\r\n transition('true<=>false', [animate('260ms ease-in')]),\r\n];\r\n\r\n@Component({\r\n selector: 'wapp-carousel',\r\n templateUrl: './carousel.component.html',\r\n styleUrls: ['./carousel.component.scss'],\r\n animations: [\r\n trigger('animImageSlider', animationCarouselFade),\r\n trigger('animationThumbnail', animationThumbnail),\r\n ],\r\n standalone: false, \r\n \r\n})\r\nexport class CarouselComponent implements OnInit, OnChanges {\r\n@ViewChild('thumbnail', { static: true }) thumbnail!: ElementRef;\r\n @Input() set images(value: any[]) {\r\n this._images = value;\r\n this.slideControl = value.map((x:any, index:any) => (index ? 'outleft' : 'inleft'));\r\n }\r\n // TODO properly implement allow thumbnail functionality\r\n @Input(\"allowThumbnail\") allowThumbnail: boolean = false;\r\n @Input(\"infiniteCarousel\") infiniteCarousel: boolean = false;\r\n @Input(\"forceMobile\") forceMobile: boolean = false;\r\n\r\n get images() {\r\n return this._images\r\n }\r\n\r\n @Input() height = 0;\r\n counter: number = 0;\r\n _images: any;\r\n slideControl!: any[];\r\n width: number = 0;\r\n counterThumb: number = 0;\r\n thumbnailMargin: number = 0;\r\n thumbnailMarginRigth: number = 2;\r\n thumbnailWidth: number = 60;\r\n thumbnailAnimation: boolean | null = null;\r\n\r\n resizeSub!: Subscription;\r\n posIni: any;\r\n showNavigation: boolean = false;\r\n showIndicators: boolean = false;\r\n isDesktop: boolean = false;\r\n hasMultipleImages: boolean = false;\r\n\r\n @Input() isDevModeActive: boolean = false; \r\n @Input() isNoImage: boolean = false;\r\n @Output() onSetImageEvent = new EventEmitter<boolean>();\r\n @Input() onHoverImageTooltip!: any;\r\n\r\n constructor(private deviceDetector: DeviceDetectorService,) { }\r\n\r\n ngOnInit() {\r\n if (this.deviceDetector.isDesktop() != null)\r\n this.isDesktop = this.deviceDetector.isDesktop();\r\n\r\n if (this.allowThumbnail) {\r\n this.resizeSub = fromEvent(window, 'resize')\r\n .pipe(debounceTime(200))\r\n .subscribe((_) => this.posThumbnail(this.counter));\r\n }\r\n\r\n if (this.images.length > 1) {\r\n this.showNavigation = true;\r\n this.showIndicators = true;\r\n this.hasMultipleImages = true;\r\n }\r\n\r\n if (this.isDesktop == false)\r\n this.showNavigation = false;\r\n\r\n if(this.isDevModeActive == false){\r\n this.onHoverImageTooltip = null;\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.allowThumbnail) {\r\n this.resizeSub.unsubscribe();\r\n }\r\n }\r\n\r\n move(pos: any) {\r\n if (this.hasMultipleImages) {\r\n const offset = this.posIni - pos;\r\n if (offset < -100) this.change('right');\r\n\r\n if (offset > 100) this.change('left');\r\n }\r\n }\r\n\r\n // call this instead of onNext/onPrevious for infinite carousel\r\n change(direction: string) {\r\n const incr = direction == 'right' ? -1 : +1;\r\n const prev = this.counter;\r\n this.counter = (this.counter + this.images.length + incr) % this.images.length;\r\n this.onSlide(this.counter, prev, direction);\r\n this.slideControl[prev] = 'out' + direction\r\n }\r\n\r\n setIndex(index: number) {\r\n if (index != this.counter) {\r\n const prev = this.counter;\r\n this.counter = index;\r\n const direction = prev > index ? 'right' : 'left';\r\n this.onSlide(this.counter, prev, direction);\r\n }\r\n }\r\n\r\n onLoad(el: any) {\r\n this.width = el.getBoundingClientRect().width;\r\n }\r\n\r\n onNext() {\r\n if (this.counter != this.images.length - 1) {\r\n this.counter++;\r\n this.onSlide(this.counter, this.counter - 1, 'left')\r\n }\r\n }\r\n\r\n onPrevious() {\r\n if (this.counter > 0) {\r\n this.counter--;\r\n this.onSlide(this.counter, this.counter + 1, 'right')\r\n }\r\n }\r\n\r\n onSlide(current: any, prev: any, direction: any) {\r\n if (this.hasMultipleImages) {\r\n this.slideControl[current] = 'in' + direction;\r\n this.slideControl[prev] = 'out' + direction;\r\n\r\n if (this.allowThumbnail) {\r\n this.posThumbnail(current);\r\n }\r\n }\r\n }\r\n\r\n // TODO old method\r\n onSlideOld(current: any, prev: any, direction: any) {\r\n this.slideControl = this.slideControl.map((x, index) => {\r\n return (index == current) ? 'in' + direction :\r\n (index == prev) ? 'out' + direction : x\r\n })\r\n }\r\n\r\n onLoadThumbnail() {\r\n this.counterThumb++;\r\n if (this.counterThumb == this.images.length) this.posThumbnail(0);\r\n }\r\n\r\n posThumbnail(current: number) {\r\n const width = this.thumbnailWidth + this.thumbnailMarginRigth;\r\n const widthWrapper =\r\n this.thumbnail.nativeElement.getBoundingClientRect().width;\r\n\r\n let newMargin: number = 0;\r\n if (widthWrapper > width * this.images.length)\r\n newMargin = (widthWrapper - width * this.images.length) / 2;\r\n else {\r\n const middle = widthWrapper / 2 - width * current;\r\n const min = widthWrapper - width * this.images.length;\r\n\r\n newMargin = Math.floor(middle > 0 ? 0 : middle < min ? min : middle);\r\n }\r\n if (newMargin != this.thumbnailMargin) {\r\n this.thumbnailMargin = newMargin;\r\n this.thumbnailAnimation = !this.thumbnailAnimation;\r\n }\r\n }\r\n\r\n onSetImage(){\r\n this.onSetImageEvent.emit(true);\r\n }\r\n}\r\n","<div class=\"carousel-container\"\r\n [style.height.px]=\"height?height:null\"\r\n [style.margin-bottom]=\"height?'.25rem':null\"\r\n (touchstart)=\"posIni = $event.changedTouches[0].pageX\"\r\n (touchend)=\"move($event.changedTouches[0].pageX)\" \r\n [ngClass]=\"{'mobile': forceMobile}\">\r\n @if(forceMobile){\r\n <div class=\"carousel-top-left-icon\">\r\n <svg width=\"30\" height=\"30\" viewBox=\"0 0 30 30\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect width=\"30\" height=\"30\" rx=\"15\" fill=\"white\" fill-opacity=\"0.63\"/>\r\n <path d=\"M20.8337 15H9.16699\" stroke=\"#1F2224\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M13.2503 19.0807L9.16699 14.9974L13.2503 10.9141\" stroke=\"#1F2224\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n }\r\n <!--carousel image container-->\r\n @for(img of images; track img; let i = $index; let first = $first){\r\n <div class=\"carousel-image-container\"\r\n [ngClass]=\"height ? 'fixed-height' : null\"\r\n [@animImageSlider]=\"slideControl[i]\" (click)=\"isDevModeActive ? onSetImage() : ''\" [pTooltip]=\"onHoverImageTooltip\" tooltipPosition=\"top\">\r\n <!--carousel image-->\r\n <img #slide (load)=\"first && onLoad(slide)\" \r\n [ngClass]=\"{'default-image' : isNoImage, 'edit-image' : isDevModeActive}\"\r\n [src]=\"img.path\"/>\r\n </div>\r\n }\r\n <!--previous button-->\r\n @if(showNavigation){\r\n <button type=\"button\"\r\n class=\"carousel-previous-button\"\r\n (click)=\"change('right')\">\r\n <span class=\"carousel-previous-icon\"></span>\r\n </button>\r\n }\r\n <!--next button-->\r\n @if(showNavigation){\r\n <button type=\"button\"\r\n class=\"carousel-next-button\"\r\n (click)=\"change('left')\">\r\n <span class=\"carousel-next-icon\"></span>\r\n </button>\r\n }\r\n <!--button indicators-->\r\n @if(showIndicators){\r\n <div class=\"carousel-indicator-container\">\r\n <div class=\"carousel-indicator-buttons\">\r\n @for(img of images; track img; let i = $index){\r\n <button \r\n [style.opacity]=\"i == counter ? 1 : 0.5\"\r\n (click)=\"setIndex(i)\"></button>\r\n }\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n<!--thumbnail indicators-->\r\n@if(allowThumbnail){\r\n <div #thumbnail class=\"carousel-thumbnail-container\">\r\n <div class=\"carousel-thumbnails\"\r\n [@animationThumbnail]=\"{\r\n value: thumbnailAnimation,\r\n params: { margin: thumbnailMargin + 'px' }}\">\r\n @for(img of images; track img; let i = $index){\r\n <img \r\n [style.width.px]=\"thumbnailWidth\"\r\n [style.margin-right.px]=\"thumbnailMarginRigth\"\r\n [style.opacity]=\"i == counter ? 1 : 0.5\"\r\n (load)=\"onLoadThumbnail()\"\r\n (click)=\"setIndex(i)\"\r\n [src]=\"img.path\" />\r\n }\r\n </div>\r\n </div>\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { WappingService } from '../shared/models/wapping-service';\r\nimport { WappingServiceImage } from '../shared/models/wapping-service-image';\r\nimport { CardStatus, SendingStatus, WappingServiceAppViewType, WappingServiceType } from '../shared/models/enums.model';\r\nimport { WappingServiceTranslations } from '../shared/models/wapping-service-translations.model';\r\nimport { WappingServiceItemView } from '../shared/models/wapping-service-item-view';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { MatDialogConfig } from '@angular/material/dialog';\r\nimport { ModalSize } from '../shared/models/modal-size.model';\r\nimport { MaterialModalService } from '../shared/services/material-modal.service';\r\nimport { WappServiceDescriptionComponent } from '../shared/components/wapp-service-description/wapp-service-description.component';\r\n\r\n@Component({\r\n selector: 'wapp-material-service-view',\r\n templateUrl: './wapp-material-service-view.component.html',\r\n styleUrls: ['./wapp-material-service-view.component.css'],\r\n standalone: false\r\n})\r\nexport class WappMaterialServiceViewComponent implements OnInit {\r\n\r\n serviceId!: number;\r\n wappingServiceImages!: WappingServiceImage[];\r\n serviceStatus!: string;\r\n isSendGiftCard: boolean = false;\r\n disabledToggle: boolean = false;\r\n allowSelectSendGiftCard: boolean = true;\r\n enumSendingStatus: typeof SendingStatus = SendingStatus;\r\n ecardStatus: typeof CardStatus = CardStatus\r\n translations: any;\r\n isDrawService: boolean = false;\r\n\r\n @Input('wappingServicesTranslations') wappingServicesTranslations: WappingServiceTranslations = {\r\n activedService: 'Activada',\r\n disabledService: 'Desactivada',\r\n scheduledLabel: 'Programada para enviar a {{name}}',\r\n sendLabel: 'Enviada a {{name}}',\r\n cardGenerated: 'Tu tarjeta estará disponible para el envío en breves instantes',\r\n receivedLabel: \"Enviada por {{name}}\",\r\n showMore: \"Mostrar más\",\r\n title: \"Descripción\",\r\n participate: \"Participate\"\r\n };\r\n @Input('canParticipateDraw') canParticipateDraw: boolean = false;\r\n private _wappingService!: WappingService;\r\n\r\n @Input() set wappingService(value: WappingService) {\r\n this._wappingService = value;\r\n if(value) {\r\n this.initWappingService();\r\n }\r\n }\r\n\r\n get wappingService() {\r\n return this._wappingService;\r\n }\r\n \r\n @Output('wappingServiceSelected') wappingServiceSelected = new EventEmitter<boolean>();\r\n @Output('participateDraw') participateDraw = new EventEmitter<void>();\r\n\r\n constructor(\r\n private matIconRegistry: MatIconRegistry,\r\n private domSanitizer: DomSanitizer,\r\n private materialModal: MaterialModalService\r\n ) {\r\n this.matIconRegistry.addSvgIcon(\"calendar\", this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/wappIcons/mat-calendar.svg\"));\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n initWappingService() {\r\n this.isSendGiftCard = false\r\n if (this.wappingService.active)\r\n this.serviceStatus = this.wappingServicesTranslations.activedService.toUpperCase();\r\n else\r\n this.serviceStatus = this.wappingServicesTranslations.disabledService.toUpperCase();\r\n if (this.wappingService.dataReqToSendCard && this.wappingService.dataReqToSendCard.dataReqToSendCardId != 0) {\r\n this.isSendGiftCard = true\r\n if (this.wappingService.enumTypeStatusECardID == this.ecardStatus.sent) {\r\n this.allowSelectSendGiftCard = false;\r\n }\r\n }\r\n if (this.wappingService.enumTypeStatusECardID == this.ecardStatus.generated)\r\n this.allowSelectSendGiftCard = false;\r\n\r\n if(this.wappingService.type == WappingServiceType.Draws) {\r\n this.isDrawService = true;\r\n }\r\n \r\n this.getWappingServiceTiles();\r\n this.getWappingServiceImages();\r\n }\r\n\r\n getWappingServiceTiles() {\r\n if (this.wappingService.wappingServiceTiles != null) {\r\n let viewTiles: WappingServiceItemView[] = this.wappingService.wappingServiceTiles.filter(w => w.appViewType == WappingServiceAppViewType.View);\r\n\r\n if (viewTiles != null) {\r\n viewTiles.forEach((wappingServiceTile: WappingServiceItemView) => {\r\n if (wappingServiceTile.position == 1) {\r\n this.wappingService.tile1 = wappingServiceTile.value;\r\n this.wappingService.tile1Label = wappingServiceTile.label;\r\n this.wappingService.showTile1Label = wappingServiceTile.showLabel;\r\n this.wappingService.tile1BackgroundColor = wappingServiceTile.labelBackgroundColor;\r\n this.wappingService.tile1ForegroundColor = wappingServiceTile.labelForegroundColor;\r\n }\r\n if (wappingServiceTile.position == 2) {\r\n this.wappingService.tile2 = wappingServiceTile.value;\r\n this.wappingService.tile2Label = wappingServiceTile.label;\r\n this.wappingService.showTile2Label = wappingServiceTile.showLabel;\r\n this.wappingService.tile2BackgroundColor = wappingServiceTile.labelBackgroundColor;\r\n this.wappingService.tile2ForegroundColor = wappingServiceTile.labelForegroundColor;\r\n }\r\n if (wappingServiceTile.position == 3) {\r\n this.wappingService.tile3 = wappingServiceTile.value;\r\n this.wappingService.tile3Label = wappingServiceTile.label;\r\n this.wappingService.showTile3Label = wappingServiceTile.showLabel;\r\n this.wappingService.tile3BackgroundColor = wappingServiceTile.labelBackgroundColor;\r\n this.wappingService.tile3ForegroundColor = wappingServiceTile.labelForegroundColor;\r\n }\r\n if (wappingServiceTile.position == 4) {\r\n this.wappingService.tile4 = wappingServiceTile.value;\r\n this.wappingService.tile4Label = wappingServiceTile.label;\r\n this.wappingService.showTile4Label = wappingServiceTile.showLabel;\r\n this.wappingService.tile4BackgroundColor = wappingServiceTile.labelBackgroundColor;\r\n this.wappingService.tile4ForegroundColor = wappingServiceTile.labelForegroundColor;\r\n }\r\n });\r\n }\r\n let detailTiles: WappingServiceItemView[] = this.wappingService.wappingServiceTiles.filter(w => w.appViewType == WappingServiceAppViewType.ViewDetail);\r\n if (detailTiles != null) {\r\n detailTiles.forEach((wappingServiceTile: WappingServiceItemView) => {\r\n if (wappingServiceTile.position == 1) {\r\n this.wappingService.tileDetail1 = wappingServiceTile.value;\r\n }\r\n if (wappingServiceTile.position == 2) {\r\n this.wappingService.tileDetail2 = wappingServiceTile.value;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n getWappingServiceImages() {\r\n this.wappingServiceImages = this.wappingService.wappingServiceImages;\r\n\r\n if (this.wappingServiceImages.length == 0) {\r\n let wappingServiceImage: WappingServiceImage = {\r\n path: this.wappingService.imageUrl!,\r\n };\r\n this.wappingServiceImages.unshift(wappingServiceImage);\r\n }\r\n }\r\n\r\n selectWappingService() {\r\n this.disabledToggle = true;\r\n this.wappingServiceSelected.emit(this.wappingService.active);\r\n if (this.wappingService.active)\r\n this.serviceStatus = this.wappingServicesTranslations.activedService.toUpperCase();\r\n else\r\n this.serviceStatus = this.wappingServicesTranslations.disabledService.toUpperCase();\r\n\r\n this.disabledToggle = false\r\n this.initWappingService();\r\n }\r\n\r\n openModalShowMoreDescription() {\r\n const dialogConfig = new MatDialogConfig();\r\n dialogConfig.data = {\r\n description: this.wappingService.tile4,\r\n title: this.wappingServicesTranslations.title\r\n };\r\n\r\n let modalSize: ModalSize = {\r\n width: \"850px\",\r\n height: \"60%\"\r\n };\r\n this.materialModal.open(WappServiceDescriptionComponent, modalSize, dialogConfig);\r\n }\r\n\r\n triggerParticipate(){\r\n this.participateDraw.emit()\r\n }\r\n\r\n public isOverflown() {\r\n var element = document.getElementById(\"serviceDescription\");\r\n\r\n return element != null ? element.scrollHeight > element.clientHeight || element.scrollWidth > element.clientWidth : false;\r\n }\r\n}\r\n","@if (wappingService) {\r\n <wapp-main-title title=\"{{wappingService.tile3}}\" fxHide.xs></wapp-main-title>\r\n}\r\n@if (wappingService) {\r\n <div class=\"service-detail-center\"\r\n fxLayout=\"row\" fxLayout.xs=\"column\" fxLayout.sm=\"column\">\r\n <!--service image-->\r\n <div class=\"service-view\" fxLayout=\"column\">\r\n <!--tile 1-->\r\n @if (wappingService.tile1) {\r\n <div class=\"service-image-title\"\r\n [style.background-color]=\"wappingService.tile1BackgroundColor\"\r\n [style.color]=\"wappingService.tile1ForegroundColor\"\r\n fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div>{{wappingService.tile1}}</div>\r\n @if (wappingService.showTile1Label) {\r\n <div>{{wappingService.tile1Label}}</div>\r\n }\r\n </div>\r\n }\r\n <!--slideshow-->\r\n <wapp-carousel [images]=\"wappingServiceImages\"></wapp-carousel>\r\n <!--tile 2-->\r\n @if (wappingService.tile2) {\r\n <div fxFlex fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"5px\"\r\n class=\"service-tile\"\r\n [ngClass]=\"{'service-tile-border-bottom-radius': !wappingService.tile4}\"\r\n [style.background-color]=\"wappingService.tile2BackgroundColor\"\r\n [style.color]=\"wappingService.tile2ForegroundColor\"\r\n >\r\n <div>{{wappingService.tile2}}</div>\r\n @if (wappingService.showTile2Label) {\r\n <div>{{wappingService.tile2Label}}</div>\r\n }\r\n </div>\r\n }\r\n @if (isSendGiftCard && (wappingService?.dataReqToSendCard!.enumSendingStatusId == enumSendingStatus.ScheduledToSend) && wappingService?.enumTypeStatusECardID == ecardStatus.sent! ) {\r\n <div class=\"card-header-status-container sendLabel-container\" fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div class=\"sendLabel\" >\r\n {{ wappingServicesTranslations.scheduledLabel }}\r\n </div>\r\n </div>\r\n }\r\n @if (isSendGiftCard && (wappingService?.dataReqToSendCard!.enumSendingStatusId == enumSendingStatus.Sent || wappingService?.dataReqToSendCard!.enumSendingStatusId == enumSendingStatus.PendingRegistration) && wappingService?.enumTypeStatusECardID == ecardStatus.sent) {\r\n <div class=\"card-header-status-container sendLabel-container\" fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div class=\"sendLabel\" >\r\n {{ wappingServicesTranslations.sendLabel }}\r\n </div>\r\n </div>\r\n }\r\n @if (isSendGiftCard && wappingService?.dataReqToSendCard!.enumSendingStatusId == enumSendingStatus.Sent && wappingService?.enumTypeStatusECardID == ecardStatus.activated) {\r\n <div class=\"card-header-status-container sendLabel-container\" fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div class=\"sendLabel\" >\r\n {{ wappingServicesTranslations.receivedLabel }}\r\n </div>\r\n </div>\r\n }\r\n <!--activate toggle-->\r\n @if (wappingService.allowSelect && allowSelectSendGiftCard && !isDrawService) {\r\n <mat-slide-toggle class=\"service-select-toggle\" color=\"accent\"\r\n [disabled]=\"disabledToggle\"\r\n [(ngModel)]=\"wappingService.active\"\r\n (change)=\"selectWappingService()\">{{ serviceStatus }}</mat-slide-toggle>\r\n }\r\n\r\n @if(isDrawService) {\r\n <button mat-flat-button class=\"service-select-toggle\" color=\"accent\" \r\n [disabled]=\"!canParticipateDraw\"\r\n (click)=\"triggerParticipate()\">\r\n <span>{{ wappingServicesTranslations?.participate }}</span>\r\n </button>\r\n }\r\n </div>\r\n <!--service info-->\r\n @if (wappingService.tile3 || wappingService.tile4) {\r\n <div class=\"service-info-container\" fxLayout=\"column\">\r\n <div class=\"service-description-container\">\r\n <!--tile 3-->\r\n @if (wappingService.tile3) {\r\n <div class=\"service-name mat-title\" fxHide fxShow.xs>\r\n {{wappingService.tile3}}\r\n </div>\r\n }\r\n <!--tile 4-->\r\n @if (wappingService.tile4 && wappingService.enumTypeStatusECardID != ecardStatus.generated) {\r\n <div class=\"service-description\" id=\"serviceDescription\">\r\n {{wappingService.tile4}}\r\n </div>\r\n }\r\n @if (wappingService.enumTypeStatusECardID == ecardStatus.generated) {\r\n <div class=\"service-description\">\r\n {{ wappingServicesTranslations.cardGenerated }}\r\n </div>\r\n }\r\n <!--show more-->\r\n @if (isOverflown()) {\r\n <div class=\"service-show-more-container\" (click)=\"openModalShowMoreDescription();\">\r\n <span>{{wappingServicesTranslations.showMore }}</span><mat-icon class=\"service-show-more-vector\" svgIcon=\"vector_right\"></mat-icon>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"service-tile-detail-container\" fxLayout=\"column\">\r\n <!--tileDetail 1-->\r\n @if (wappingService.tileDetail1) {\r\n <div class=\"service-tile-detail\" fxLayout=\"row\">\r\n <mat-icon class=\"service-tile-detail-icon\" svgIcon=\"calendar\"></mat-icon>\r\n <span>{{wappingService.tileDetail1}}</span>\r\n </div>\r\n }\r\n <!--tileDetail 2-->\r\n @if (wappingService.tileDetail2) {\r\n <div class=\"service-tile-detail\" fxLayout=\"row\">\r\n <mat-icon class=\"service-tile-detail-icon\" svgIcon=\"tickets\"></mat-icon>\r\n <span>{{wappingService.tileDetail2}}</span>\r\n </div>\r\n }\r\n </div>\r\n <!--link-->\r\n @if (wappingService.titleLinkUrl && wappingService.linkUrl) {\r\n <div class=\"service-link-container\">\r\n <a class=\"service-link\" href=\"{{wappingService.linkUrl}}\" target=\"_blank\">\r\n <mat-icon class=\"service-link-icon\" svgIcon=\"share_square\"></mat-icon><span>{{wappingService.titleLinkUrl}}</span>\r\n </a>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n}","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { CardStatus, SendingStatus, WappingServiceAppViewType } from '../shared/models/enums.model';\r\nimport { WappingService } from '../shared/models/wapping-service';\r\nimport { WappingServiceTranslations } from '../shared/models/wapping-service-translations.model';\r\nimport { Router } from '@angular/router';\r\nimport { WappingServiceItemView } from '../shared/models/wapping-service-item-view';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { WappingServiceTemplate } from '../shared/models/wapping-service-template.model';\r\nimport { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { WImageCropperComponent } from '../../file/w-image-cropper/w-image-cropper.component';\r\nimport { WFileB64 } from '../../shared/models/w-file-b64.model';\r\nimport { WImageCropperData } from '../../shared/models/w-image-cropper-data.model';\r\n\r\n@Component({\r\n selector: 'w-material-service-card',\r\n templateUrl: './w-material-service-card.component.html',\r\n styleUrls: ['./w-material-service-card.component.scss'],\r\n standalone: false, \r\n providers: [DialogService]\r\n})\r\nexport class WMaterialServiceCardComponent implements OnChanges {\r\n @Input() isDevModeActive: boolean = false;\r\n isSendGiftCard: boolean = false;\r\n allowSelectSendGiftCard: boolean = true;\r\n \r\n enumSendingStatus: typeof SendingStatus = SendingStatus;\r\n ecardStatus: typeof CardStatus = CardStatus;\r\n\r\n wappingServiceReady: boolean = false;\r\n emptyTile: boolean = false;\r\n\r\n private _wappingTranslations: WappingServiceTranslations = {\r\n activedService: 'Activada',\r\n disabledService: 'Desactivada',\r\n scheduledLabel: 'Programada para enviar a {{name}}',\r\n sendLabel: 'Enviada a {{name}}',\r\n cardGenerated: 'Tu tarjeta estará disponible para el envío en breves instantes',\r\n receivedLabel: \"Enviada por {{name}}\",\r\n showMore: \"Mostrar más\",\r\n };\r\n \r\n @Input() set wappingServicesTranslations(value: WappingServiceTranslations) {\r\n if(value) this._wappingTranslations = value;\r\n }\r\n \r\n get wappingTranslations() {\r\n return this._wappingTranslations;\r\n }\r\n\r\n private _wappingService!: WappingService;\r\n\r\n @Input() set wappingService(value: WappingService) {\r\n this._wappingService = value;\r\n if(value) this.getWappingServiceTitles(value);\r\n }\r\n\r\n get wappingService() {\r\n return this._wappingService;\r\n }\r\n\r\n @Output('cardClicked') cardClicked = new EventEmitter<WappingService>();\r\n\r\n @Input() defaultImage!: WFileB64 | string;\r\n @Input() croppedImageConfiguration: WImageCropperData = {\r\n roundedCropper: false, \r\n configuredAspectRatio: 4/3, \r\n viewPortHeihtPx: 600, \r\n viewPortWidthPx: 800, \r\n maxFileSize: 2000\r\n };\r\n\r\n @Input() croppedDialogTranslations: any;\r\n @Output() onDefaultImageEvent = new EventEmitter<WFileB64>();\r\n isNoImage: boolean = false;\r\n @Input() onHoverImageTooltip: any = 'Upload image';\r\n\r\n ref!: DynamicDialogRef<WImageCropperComponent> | null;\r\n \r\n constructor(\r\n private route: Router,\r\n private matIconRegistry: MatIconRegistry,\r\n private domSanitizer: DomSanitizer, \r\n private dialogService: DialogService\r\n ) {\r\n this.matIconRegistry.addSvgIcon(\"activated\", this.domSanitizer.bypassSecurityTrustResourceUrl(\"assets/wappIcons/activated.svg\"));\r\n this.matIconRegistry.addSvgIcon(\"deactivated\", this.domSanitizer.bypassSecurityTrustResourceUrl(\"assets/wappIcons/deactivated.svg\"));\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(changes['wappingService'] && changes['wappingService'].currentValue){\r\n this.wappingService = changes['wappingService'].currentValue\r\n }\r\n\r\n if(changes['defaultImage'] && changes['defaultImage'].currentValue){\r\n this.defaultImage = changes['defaultImage'].currentValue;\r\n }\r\n }\r\n\r\n getWappingServiceTitles(service: WappingService) {\r\n if (service.wappingServiceTemplates != null) {\r\n service.wappingServiceTemplates.forEach((wappingServiceTemplate: WappingServiceTemplate) => {\r\n if (wappingServiceTemplate.summaryHeader && wappingServiceTemplate.summaryHeader.trim() !== ''){\r\n service.tile1 = this.domSanitizer.bypassSecurityTrustHtml(wappingServiceTemplate.summaryHeader);\r\n } else {\r\n service.tile1 = '';\r\n }\r\n\r\n if(wappingServiceTemplate.summaryFoot && wappingServiceTemplate.summaryFoot.trim() !== ''){\r\n service.tile2 = this.domSanitizer.bypassSecurityTrustHtml(wappingServiceTemplate.summaryFoot);\r\n } else {\r\n service.tile2 = '';\r\n }\r\n\r\n if (wappingServiceTemplate.summaryBody && wappingServiceTemplate.summaryBody.trim() !== ''){\r\n service.tile3 = this.domSanitizer.bypassSecurityTrustHtml(wappingServiceTemplate.summaryBody);\r\n } else {\r\n service.tile3 = '';\r\n }\r\n\r\n });\r\n this.wappingServiceReady = true;\r\n }\r\n }\r\n\r\n cardOnClick(service: WappingService) {\r\n this.cardClicked.emit(service);\r\n }\r\n\r\n hasHtml(value: any): boolean {\r\n return /<\\/?[a-z][\\s\\S]*>/i.test(value);\r\n }\r\n\r\n setImage(){\r\n this.ref = this.dialogService.open(WImageCropperComponent, {\r\n header: this.croppedDialogTranslations?.modal.header,\r\n width: '70rem',\r\n contentStyle: {\"overflow\": \"auto\", \"height\": \"auto\", \"padding-bottom\": \"8px\"},\r\n data: {dataModal: this.croppedImageConfiguration, translations: this.croppedDialogTranslations},\r\n resizable: true\r\n });\r\n\r\n if(this.ref){\r\n this.ref.onClose.subscribe((imageCropped: WFileB64) => {\r\n if(imageCropped){\r\n this.defaultImage = imageCropped;\r\n this.onDefaultImageEvent.emit(this.defaultImage);\r\n }\r\n })\r\n }\r\n }\r\n\r\n getImage(){\r\n this.isNoImage = false;\r\n if(this.isDevModeActive == true){\r\n if(this.defaultImage){\r\n if(this.isWFileImage(this.defaultImage)){\r\n return (this.defaultImage as WFileB64).fileBase64;\r\n }else{\r\n return this.defaultImage;\r\n }\r\n }else{\r\n this.isNoImage = true;\r\n return './assets/wappIcons/image.svg';\r\n }\r\n }else{\r\n if(this.wappingService && this.wappingService.imageUrl){\r\n this.onHoverImageTooltip = null;\r\n return this.wappingService.imageUrl;\r\n }else{\r\n this.isNoImage = true;\r\n return './assets/wappIcons/image.svg';\r\n }\r\n }\r\n }\r\n\r\n isWFileImage(obj: WFileB64 | string){\r\n return (obj as WFileB64).base64 !== undefined;\r\n }\r\n}\r\n","@if(wappingServiceReady){\r\n<mat-card class=\"service-card\" (click)=\"isDevModeActive ? setImage() : cardOnClick(wappingService)\" [pTooltip]=\"onHoverImageTooltip\" tooltipPosition=\"top\">\r\n <div class=\"service-card-header\" fxLayout=\"column\" fxLayoutAlign=\"center center\">\r\n <!-- @if(wappingService.tile1 && wappingService.tile1 != ''){\r\n <div class=\"service-card-image-title\"\r\n fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n tile1\r\n <div [ngClass]=\"{'tile-no-html': !hasHtml(wappingService.tile1)}\" class=\"service-card-tile1\"\r\n [innerHtml]=\"wappingService.tile1\"></div>\r\n </div>\r\n } -->\r\n @if(!hasHtml(wappingService.tile1) && wappingService.tile1 && wappingService.tile1 != ''){\r\n <div class=\"service-image-title\">\r\n <div class=\"tile-no-html\" \r\n [innerHtml]=\"wappingService.tile1\"></div>\r\n </div>\r\n }\r\n @if(hasHtml(wappingService.tile1) && wappingService.tile1 && wappingService.tile1 != ''){\r\n <div class=\"service-card-image-title service-card-image-title-html\">\r\n <div class=\"service-card-tile1\"\r\n [innerHtml]=\"wappingService.tile1\"></div>\r\n </div>\r\n }\r\n <div class=\"service-card-image\">\r\n <img mat-card-image \r\n [ngClass]=\"{'default-image' : isNoImage}\" \r\n [src]=\"getImage()\">\r\n </div>\r\n </div>\r\n <mat-card-header fxLayout=\"column\">\r\n <div fxLayout=\"row\" class=\"card-header\">\r\n <div class=\"card-header-benefits\" fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div class=\"service-card-tile2\" [innerHTML]=\"wappingService.tile2\"></div>\r\n </div>\r\n <div fxflex=\"\" style=\"flex: 1 1 0%; box-sizing: border-box;\"></div>\r\n <!--status-->\r\n @if(wappingService.allowSelect && allowSelectSendGiftCard){\r\n <div class=\"card-header-status-container\" fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n @if(wappingService.active){\r\n <div class=\"card-header-status\">\r\n <mat-icon class=\"card-header-status-icon\" svgIcon=\"activated\"></mat-icon>\r\n <span class=\"status\">{{ wappingTranslations.activedService }}</span>\r\n </div>\r\n }\r\n @if(!wappingService.active){\r\n <div class=\"card-header-status\">\r\n <mat-icon class=\"card-header-status-icon\" svgIcon=\"deactivated\"></mat-icon>\r\n <span class=\"status\">{{ wappingTranslations.disabledService }}</span>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <!--tile3-->\r\n @if(wappingService.tile3){\r\n <div class=\"card-header-description\">\r\n <div [innerHtml]=\"wappingService.tile3\"></div>\r\n </div>\r\n }\r\n </mat-card-header>\r\n</mat-card>\r\n}\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { CardStatus, SendingStatus, WappingServiceAppViewType } from '../shared/models/enums.model';\r\nimport { WappingService } from '../shared/models/wapping-service';\r\nimport { WappingServiceTranslations } from '../shared/models/wapping-service-translations.model';\r\nimport { Router } from '@angular/router';\r\nimport { WappingServiceItemView } from '../shared/models/wapping-service-item-view';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'wapp-material-service-card',\r\n templateUrl: './wapp-material-service-card.component.html',\r\n styleUrls: ['./wapp-material-service-card.component.scss'],\r\n standalone: false\r\n})\r\nexport class WappMaterialServiceCardComponent {\r\n isSendGiftCard: boolean = false;\r\n allowSelectSendGiftCard: boolean = true;\r\n \r\n enumSendingStatus: typeof SendingStatus = SendingStatus;\r\n ecardStatus: typeof CardStatus = CardStatus;\r\n\r\n wappingServiceReady: boolean = false;\r\n \r\n private _wappingTranslations: WappingServiceTranslations = {\r\n activedService: 'Activada',\r\n disabledService: 'Desactivada',\r\n scheduledLabel: 'Programada para enviar a {{name}}',\r\n sendLabel: 'Enviada a {{name}}',\r\n cardGenerated: 'Tu tarjeta estará disponible para el envío en breves instantes',\r\n receivedLabel: \"Enviada por {{name}}\",\r\n showMore: \"Mostrar más\",\r\n };\r\n \r\n @Input() set wappingServicesTranslations(value: WappingServiceTranslations) {\r\n if(value) this._wappingTranslations = value;\r\n }\r\n \r\n get wappingTranslations() {\r\n return this._wappingTranslations;\r\n }\r\n private _wappingService!: WappingService;\r\n\r\n @Input() set wappingService(value: WappingService) {\r\n this._wappingService = value;\r\n if(value) this.getWappingServiceTitles(value);\r\n }\r\n\r\n get wappingService() {\r\n return this._wappingService;\r\n }\r\n\r\n @Output('cardClicked') cardClicked = new EventEmitter<WappingService>();\r\n \r\n constructor(\r\n private route: Router,\r\n private matIconRegistry: MatIconRegistry,\r\n private domSanitizer: DomSanitizer\r\n ) {\r\n this.matIconRegistry.addSvgIcon(\"activated\", this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/wappIcons/activated.svg\"));\r\n this.matIconRegistry.addSvgIcon(\"deactivated\", this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/wappIcons/deactivated.svg\"));\r\n }\r\n\r\n getWappingServiceTitles(service: WappingService) {\r\n if(service.dataReqToSendCard && service.dataReqToSendCard.dataReqToSendCardId != 0){\r\n this.isSendGiftCard = true;\r\n if(service.enumTypeStatusECardID == this.ecardStatus.sent){\r\n this.allowSelectSendGiftCard = false;\r\n }\r\n }\r\n if (service.wappingServiceTiles != null) {\r\n service.wappingServiceTiles.forEach((wappingServiceTile: WappingServiceItemView) => {\r\n if (wappingServiceTile.position == 1) {\r\n service.tile1 = wappingServiceTile.value;\r\n service.tile1Label = wappingServiceTile.label;\r\n service.showTile1Label = wappingServiceTile.showLabel;\r\n service.tile1BackgroundColor = wappingServiceTile.labelBackgroundColor;\r\n service.tile1ForegroundColor = wappingServiceTile.labelForegroundColor;\r\n }\r\n if (wappingServiceTile.position == 2) {\r\n service.tile2 = wappingServiceTile.value;\r\n service.tile2Label = wappingServiceTile.label;\r\n service.showTile2Label = wappingServiceTile.showLabel;\r\n service.tile2BackgroundColor = wappingServiceTile.labelBackgroundColor;\r\n service.tile2ForegroundColor = wappingServiceTile.labelForegroundColor;\r\n }\r\n if (wappingServiceTile.position == 3) {\r\n service.tile3 = wappingServiceTile.value;\r\n service.tile3Label = wappingServiceTile.label;\r\n service.showTile3Label = wappingServiceTile.showLabel;\r\n service.tile3BackgroundColor = wappingServiceTile.labelBackgroundColor;\r\n service.tile3ForegroundColor = wappingServiceTile.labelForegroundColor;\r\n }\r\n if (wappingServiceTile.position == 4) {\r\n service.tile4 = wappingServiceTile.value;\r\n service.tile4Label = wappingServiceTile.label;\r\n service.showTile4Label = wappingServiceTile.showLabel;\r\n service.tile4BackgroundColor = wappingServiceTile.labelBackgroundColor;\r\n service.tile4ForegroundColor = wappingServiceTile.labelForegroundColor;\r\n }\r\n });\r\n this.wappingServiceReady = true;\r\n }\r\n }\r\n\r\n cardOnClick(service: WappingService) {\r\n this.cardClicked.emit(service);\r\n }\r\n}\r\n","@if (wappingServiceReady) {\r\n <mat-card class=\"service-card\" (click)=\"cardOnClick(wappingService)\">\r\n <div fxLayout=\"column\" fxLayoutAlign=\"center center\">\r\n @if (wappingService.tile1) {\r\n <div class=\"service-card-image-title\"\r\n [style.background-color]=\"wappingService.tile1BackgroundColor\"\r\n [style.color]=\"wappingService.tile1ForegroundColor\"\r\n fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <!--tile1-->\r\n <div>{{wappingService.tile1}}</div>\r\n @if (wappingService.showTile1Label) {\r\n <div>{{wappingService.tile1Label}}</div>\r\n }\r\n </div>\r\n }\r\n <div class=\"service-card-image\">\r\n <img mat-card-image [src]=\"wappingService.imageUrl\">\r\n </div>\r\n </div>\r\n <mat-card-header fxLayout=\"column\">\r\n <div fxLayout=\"row\">\r\n <!--tile2-->\r\n <div class=\"card-header-benefits\" fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div>{{wappingService.tile2}}</div>\r\n @if (wappingService.showTile2Label) {\r\n <div>{{wappingService.tile2Label}}</div>\r\n }\r\n </div>\r\n <div fxFlex></div>\r\n <!--status-->\r\n @if (wappingService.allowSelect && allowSelectSendGiftCard) {\r\n <div class=\"card-header-status-container\" fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n @if (!wappingService.allowSelect && wappingService.type != 6) {\r\n <div class=\"card-header-status\">\r\n <mat-icon class=\"card-header-status-icon\" svgIcon=\"activated\"></mat-icon>\r\n <div class=\"status\">{{ wappingTranslations.activedService }}</div>\r\n </div>\r\n }\r\n @if (wappingService.active) {\r\n <div class=\"card-header-status\">\r\n <mat-icon class=\"card-header-status-icon\" svgIcon=\"activated\"></mat-icon>\r\n <span class=\"status\">{{ wappingTranslations.activedService }}</span>\r\n </div>\r\n }\r\n @if (!wappingService.active) {\r\n <div class=\"card-header-status\">\r\n <mat-icon class=\"card-header-status-icon\" svgIcon=\"deactivated\"></mat-icon>\r\n <span class=\"status\">{{ wappingTranslations.disabledService }}</span>\r\n </div>\r\n }\r\n </div>\r\n }\r\n @if (!allowSelectSendGiftCard) {\r\n <div class=\"card-header-status-container\" fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n @if (wappingService.dataReqToSendCard!.enumSendingStatusId == enumSendingStatus.ScheduledToSend) {\r\n <div class=\"card-header-status\">\r\n <div class=\"sendLabel\" >\r\n {{ wappingTranslations.scheduledLabel }}\r\n </div>\r\n </div>\r\n }\r\n @if (wappingService.dataReqToSendCard!.enumSendingStatusId == enumSendingStatus.Sent || wappingService.dataReqToSendCard!.enumSendingStatusId == enumSendingStatus.PendingRegistration) {\r\n <div class=\"card-header-status\">\r\n <div class=\"sendLabel\" >\r\n {{ wappingTranslations.sendLabel }}\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <!--tile3-->\r\n <div class=\"card-header-description\">\r\n {{wappingService.tile3}}\r\n </div>\r\n <!--tile4-->\r\n @if (wappingService.enumTypeStatusECardID != ecardStatus.generated) {\r\n <div class=\"card-header-detail\">\r\n {{wappingService.tile4}}\r\n </div>\r\n }\r\n @if (wappingService.enumTypeStatusECardID == ecardStatus.generated) {\r\n <div class=\"card-header-detail\">\r\n {{ wappingTranslations.cardGenerated }}\r\n </div>\r\n }\r\n </mat-card-header>\r\n </mat-card>\r\n}","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { WappingService } from '../shared/models/wapping-service';\r\nimport { WappingServiceImage } from '../shared/models/wapping-service-image';\r\nimport { CardStatus, SendingStatus, WappingServiceType } from '../shared/models/enums.model';\r\nimport { WappingServiceTranslations } from '../shared/models/wapping-service-translations.model';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { WappingServiceTemplate } from '../shared/models/wapping-service-template.model';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { DialogService, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { WFileB64 } from '../../shared/models/w-file-b64.model';\r\nimport { WImageCropperData } from '../../shared/models/w-image-cropper-data.model';\r\nimport { WImageCropperComponent } from '../../file/w-image-cropper/w-image-cropper.component';\r\n\r\n@Component({\r\n selector: 'w-material-service-view',\r\n templateUrl: './w-material-service-view.component.html',\r\n styleUrls: ['./w-material-service-view.component.scss'],\r\n standalone: false\r\n})\r\nexport class WMaterialServiceViewComponent implements OnInit, OnChanges {\r\n\r\n serviceId!: number;\r\n wappingServiceImages!: WappingServiceImage[];\r\n serviceStatus!: string;\r\n isSendGiftCard: boolean = false;\r\n disabledToggle: boolean = false;\r\n allowSelectSendGiftCard: boolean = true;\r\n enumSendingStatus: typeof SendingStatus = SendingStatus;\r\n ecardStatus: typeof CardStatus = CardStatus\r\n translations: any;\r\n isDrawService: boolean = false;\r\n \r\n @Input() forceMobile = false;\r\n\r\n @Input('wappingServicesTranslations') wappingServicesTranslations: WappingServiceTranslations = {\r\n activedService: 'Activada',\r\n disabledService: 'Desactivada',\r\n scheduledLabel: 'Programada para enviar a {{name}}',\r\n sendLabel: 'Enviada a {{name}}',\r\n cardGenerated: 'Tu tarjeta estará disponible para el envío en breves instantes',\r\n receivedLabel: \"Enviada por {{name}}\",\r\n showMore: \"Mostrar más\",\r\n participate: \"Participar\"\r\n };\r\n \r\n @Input('canParticipateDraw') canParticipateDraw: boolean = false;\r\n private _wappingService!: WappingService;\r\n\r\n @Input() set wappingService(value: WappingService) {\r\n this._wappingService = value;\r\n if(value) this.getWappingService(value);\r\n }\r\n\r\n get wappingService() {\r\n return this._wappingService;\r\n }\r\n\r\n @Output('wappingServiceSelected') wappingServiceSelected = new EventEmitter<boolean>();\r\n @Output('participateDraw') participateDraw = new EventEmitter<void>();\r\n\r\n @Input() isDevModeActive: boolean = false;\r\n @Input() defaultImage!: WFileB64 | string;\r\n\r\n @Input() croppedImageConfiguration: WImageCropperData = {\r\n roundedCropper: false, \r\n configuredAspectRatio: 4/3, \r\n viewPortHeihtPx: 600, \r\n viewPortWidthPx: 800, \r\n maxFileSize: 2000\r\n };\r\n \r\n @Input() croppedDialogTranslations: any;\r\n images: any[] = [];\r\n @Output() onDefaultImageEvent = new EventEmitter<WFileB64>();\r\n @Input() isNoImage: boolean = false;\r\n @Input() onHoverImageTooltip: string = 'Upload image';\r\n\r\n ref!: DynamicDialogRef<WImageCropperComponent> | null;\r\n \r\n constructor(\r\n private matIconRegistry: MatIconRegistry,\r\n private domSanitizer: DomSanitizer, \r\n private dialogService: DialogService) {\r\n this.matIconRegistry.addSvgIcon(\"calendar\", this.domSanitizer.bypassSecurityTrustResourceUrl(\"/assets/wappIcons/mat-calendar.svg\"));\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(changes['defaultImage'] && changes['defaultImage'].currentValue){\r\n this.defaultImage = changes['defaultImage'].currentValue;\r\n\r\n this.isNoImage = false;\r\n if(this.isDevModeActive == true){\r\n if(this.defaultImage){\r\n if(this.isWFileImage(this.defaultImage)){\r\n this.wappingServiceImages = [{ path: (this.defaultImage as WFileB64).fileBase64 }];\r\n }else{\r\n this.wappingServiceImages = [{ path: (this.defaultImage as string)}];\r\n }\r\n }\r\n }\r\n }\r\n\r\n if(changes['defaultImage'] && !changes['defaultImage'].currentValue){\r\n if(this.isDevModeActive){\r\n this.isNoImage = true;\r\n this.wappingServiceImages = [{ path: './assets/wappIcons/image.svg' }]\r\n }\r\n }\r\n }\r\n\r\n getWappingService(wappService: WappingService) {\r\n this.isSendGiftCard = false\r\n if (wappService.active)\r\n this.serviceStatus = this.wappingServicesTranslations.activedService.toUpperCase();\r\n else\r\n this.serviceStatus = this.wappingServicesTranslations.disabledService.toUpperCase();\r\n if (wappService.dataReqToSendCard && wappService.dataReqToSendCard.dataReqToSendCardId != 0) {\r\n this.isSendGiftCard = true\r\n if (wappService.enumTypeStatusECardID == this.ecardStatus.sent) {\r\n this.allowSelectSendGiftCard = false;\r\n }\r\n }\r\n if (wappService.enumTypeStatusECardID == this.ecardStatus.generated)\r\n this.allowSelectSendGiftCard = false;\r\n\r\n if(wappService.type == WappingServiceType.Draws) {\r\n this.isDrawService = true;\r\n }\r\n\r\n this.getWappingServiceTiles(this.wappingService);\r\n\r\n if(this.isDevModeActive == false){\r\n this.getWappingServiceImages();\r\n }\r\n }\r\n\r\n getWappingServiceTiles(service: WappingService) {\r\n if (service.wappingServiceTemplates != null) {\r\n service.wappingServiceTemplates.forEach((wappingServiceTile: WappingServiceTemplate) => {\r\n if(wappingServiceTile.detailTitle){\r\n this.wappingService.tile3 = this.domSanitizer.bypassSecurityTrustHtml(wappingServiceTile.detailTitle);\r\n } else {\r\n this.wappingService.tile3 = '';\r\n }\r\n if(wappingServiceTile.detailHeader){\r\n this.wappingService.tile1 = this.domSanitizer.bypassSecurityTrustHtml(wappingServiceTile.detailHeader);\r\n } else {\r\n this.wappingService.tile1 = '';\r\n }\r\n if(wappingServiceTile.detailFoot){\r\n this.wappingService.tile2 = this.domSanitizer.bypassSecurityTrustHtml(wappingServiceTile.detailFoot);\r\n } else {\r\n this.wappingService.tile2 = '';\r\n }\r\n if(wappingServiceTile.detailBody){\r\n this.wappingService.tileDetail1 = this.domSanitizer.bypassSecurityTrustHtml(wappingServiceTile.detailBody);\r\n } else {\r\n this.wappingService.tileDetail1 = '';\r\n }\r\n });\r\n }\r\n }\r\n\r\n getWappingServiceImages() {\r\n this.wappingServiceImages = this.wappingService.wappingServiceImages;\r\n\r\n if (this.wappingServiceImages.length == 0) {\r\n let wappingServiceImage: WappingServiceImage = {\r\n path: this.wappingService.imageUrl!,\r\n };\r\n this.wappingServiceImages.unshift(wappingServiceImage);\r\n }\r\n }\r\n\r\n selectWappingService() {\r\n this.disabledToggle = true;\r\n this.wappingServiceSelected.emit(this.wappingService.active);\r\n if (this.wappingService.active)\r\n this.serviceStatus = this.wappingServicesTranslations.activedService.toUpperCase();\r\n else\r\n this.serviceStatus = this.wappingServicesTranslations.disabledService.toUpperCase();\r\n\r\n this.disabledToggle = false\r\n this.getWappingService(this.wappingService);\r\n }\r\n\r\n hasHtml(value: any): boolean {\r\n return /<\\/?[a-z][\\s\\S]*>/i.test(value);\r\n }\r\n\r\n triggerParticipate(){\r\n this.participateDraw.emit()\r\n }\r\n\r\n setImage(){\r\n this.ref = this.dialogService.open(WImageCropperComponent, {\r\n header: this.croppedDialogTranslations?.modal.header,\r\n width: '70rem',\r\n contentStyle: {\"overflow\": \"auto\", \"height\": \"auto\", \"padding-bottom\": \"8px\"},\r\n data: {dataModal: this.croppedImageConfiguration, translations: this.croppedDialogTranslations},\r\n resizable: true\r\n });\r\n \r\n if(this.ref){\r\n this.ref.onClose.subscribe((imageCropped: WFileB64) => {\r\n if(imageCropped){\r\n this.defaultImage = imageCropped;\r\n this.images.push({path: this.defaultImage.fileBase64});\r\n this.onDefaultImageEvent.emit(this.defaultImage);\r\n }\r\n })\r\n }\r\n }\r\n\r\n getImage(){\r\n this.isNoImage = false;\r\n if(this.isDevModeActive == true){\r\n if(this.defaultImage){\r\n if(this.isWFileImage(this.defaultImage)){\r\n return [{ path: (this.defaultImage as WFileB64).fileBase64 }];\r\n }else{\r\n return [{ path: this.defaultImage}];\r\n }\r\n }else{\r\n this.isNoImage = true;\r\n return [{ path: './assets/wappIcons/image.svg' }];\r\n }\r\n }else{\r\n if(this.wappingServiceImages.length > 0){\r\n return this.wappingServiceImages;\r\n }else{\r\n this.isNoImage = true;\r\n return [{ path: './assets/wappIcons/image.svg' }];\r\n }\r\n }\r\n }\r\n\r\n isWFileImage(obj: WFileB64 | string){\r\n return (obj as WFileB64).base64 !== undefined;\r\n }\r\n}\r\n","@if(wappingService && (!forceMobile)){\r\n <wapp-main-title [title]=\"wappingService.tile3\" fxHide.xs></wapp-main-title>\r\n}\r\n@if(wappingService){\r\n<div class=\"service-detail-center\" \r\n [ngClass]=\"{'force-mobile': forceMobile}\"\r\n [fxLayout]=\"forceMobile ? 'column' : 'row'\"\r\n [fxLayout.xs]=\"'column'\"\r\n [fxLayout.sm]=\"'column'\">\r\n <!--service image-->\r\n <div [ngClass]=\"{'service-view-no-margin': forceMobile, 'service-view': !forceMobile}\" fxLayout=\"column\">\r\n <!--tile 1-->\r\n @if(!hasHtml(wappingService.tile1) && wappingService.tile1 && wappingService.tile1 != ''){\r\n <div class=\"service-image-title\">\r\n <div class=\"service-view-tile1-no-html\" [innerHTML]=\"wappingService.tile1\"></div>\r\n </div>\r\n }\r\n\r\n @if(hasHtml(wappingService.tile1) && wappingService.tile1 && wappingService.tile1 != ''){\r\n <div class=\"template-service-image-tile service-card-image-title\">\r\n <div class=\"service-view-tile1\" [innerHTML]=\"wappingService.tile1\"></div>\r\n </div>\r\n }\r\n <!--slideshow-->\r\n <wapp-carousel [isDevModeActive]=\"isDevModeActive\" [forceMobile]=\"forceMobile\" [images]=\"wappingServiceImages\" [isNoImage]=\"isNoImage\" (onSetImageEvent)=\"setImage()\" [onHoverImageTooltip]=\"onHoverImageTooltip\"></wapp-carousel>\r\n <!--tile 2-->\r\n @if(wappingService.tile2){\r\n <div fxFlex fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"5px\"\r\n [ngClass]=\"{'template-service-tile': hasHtml(wappingService.tile2),\r\n 'service-tile' : !hasHtml(wappingService.tile2)}\">\r\n <div class=\"service-view-tile2\" [innerHtml]=\"wappingService.tile2\"></div>\r\n </div>\r\n }\r\n <!--activate toggle-->\r\n @if(wappingService.allowSelect && allowSelectSendGiftCard && !isDrawService){\r\n <mat-slide-toggle class=\"service-select-toggle\" color=\"accent\"\r\n [disabled]=\"disabledToggle\"\r\n [(ngModel)]=\"wappingService.active\"\r\n (change)=\"selectWappingService()\">{{ serviceStatus }}</mat-slide-toggle>\r\n }\r\n @if(isDrawService){\r\n <button mat-flat-button \r\n class=\"service-select-toggle\"\r\n color=\"accent\"\r\n [disabled]=\"!canParticipateDraw\"\r\n (click)=\"triggerParticipate()\">\r\n <span>{{ wappingServicesTranslations?.participate }}</span>\r\n </button>\r\n }\r\n \r\n </div>\r\n <!--service info-->\r\n <div class=\"service-info-container\" [ngClass]=\"{'service-info-container-padding': forceMobile}\" fxLayout=\"column\">\r\n <div class=\"service-tile-detail-container\" fxLayout=\"column\">\r\n <!--tile 3-->\r\n @if(!forceMobile){\r\n <div \r\n [innerHtml]=\"wappingService.tile3\" fxHide fxShow.xs\r\n class=\"service-name mat-title\">\r\n </div>\r\n }\r\n @if(forceMobile){\r\n <div \r\n [innerHtml]=\"wappingService.tile3\"\r\n class=\"service-name mat-title\">\r\n </div>\r\n }\r\n <!--tileDetail 1-->\r\n <div class=\"service-tile-detail\" fxLayout=\"row\">\r\n <span [innerHtml]=\"wappingService.tileDetail1\"></span>\r\n </div>\r\n </div>\r\n <!--link-->\r\n @if(wappingService.titleLinkUrl && wappingService.linkUrl){\r\n <div class=\"service-link-container\">\r\n <a class=\"service-link\" href=\"{{wappingService.linkUrl}}\" target=\"_blank\">\r\n <mat-icon class=\"service-link-icon\" svgIcon=\"share_square\"></mat-icon><span>{{wappingService.titleLinkUrl}}</span>\r\n </a>\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport type * as monacoTypes from 'monaco-editor';\r\n\r\n@Component({\r\n selector: 'w-code-block',\r\n templateUrl: './w-code-block.component.html',\r\n styleUrls: ['./w-code-block.component.scss'],\r\n standalone: false\r\n})\r\nexport class WCodeBlockComponent implements OnInit {\r\n\r\n @Input('editorOptions') editorOptions = {theme: 'vs-light', language: 'html'};\r\n @Input('languages') languages: string[] = ['html'];\r\n @Input('codeText') codeText: string = '';\r\n @Input('height') height: string= '70vh';\r\n \r\n @Output('codeTextOutput') codeTextOutput: EventEmitter<string> = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n onValueChange(value: string) {\r\n this.codeTextOutput.emit(value);\r\n }\r\n\r\n onEditorInit(editor: monacoTypes.editor.IStandaloneCodeEditor) {\r\n if (editor) {\r\n setTimeout(() => {\r\n editor.getAction('editor.action.formatDocument')!.run();\r\n }, 100); \r\n }\r\n }\r\n}\r\n","@if (height) {\r\n <div [style.height]=\"height\">\r\n <ng-container *ngTemplateOutlet=\"editor\"></ng-container>\r\n </div>\r\n} @else {\r\n <div class=\"page-wrapper\">\r\n <div class=\"editor-wrapper\">\r\n <ng-container *ngTemplateOutlet=\"editor\"></ng-container>\r\n </div>\r\n </div>\r\n}\r\n\r\n<ng-template #editor>\r\n <w-monaco-editor style=\"height: 100%;\"\r\n class=\"w-code-block-container\"\r\n [options]=\"editorOptions\"\r\n [(ngModel)]=\"codeText\"\r\n (ngModelChange)=\"onValueChange($event)\" \r\n (onInit)=\"onEditorInit($event)\">\r\n </w-monaco-editor>\r\n</ng-template>","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n// PRIMENG\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { DrawerModule } from 'primeng/drawer';\r\nimport { BadgeModule } from 'primeng/badge';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { ToggleSwitchModule } from 'primeng/toggleswitch';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { RippleModule } from 'primeng/ripple';\r\nimport { SkeletonModule } from 'primeng/skeleton';\r\nimport { SelectModule } from 'primeng/select';\r\nimport { AvatarModule } from 'primeng/avatar';\r\nimport { AvatarGroupModule } from 'primeng/avatargroup';\r\nimport { TreeSelectModule } from 'primeng/treeselect';\r\nimport { InputNumberModule } from 'primeng/inputnumber';\r\nimport { TextareaModule } from 'primeng/textarea';\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { TableModule } from 'primeng/table';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { PaginatorModule } from 'primeng/paginator';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { DatePickerModule } from 'primeng/datepicker';\r\nimport { ToggleButtonModule } from 'primeng/togglebutton';\r\nimport { SelectButtonModule } from 'primeng/selectbutton';\r\nimport { ImageModule } from 'primeng/image';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { SliderModule } from 'primeng/slider';\r\nimport { CarouselModule as CarouselModulePG } from 'primeng/carousel';\r\nimport { DividerModule } from 'primeng/divider';\r\nimport { TreeTableModule } from 'primeng/treetable';\r\nimport { MessageModule } from 'primeng/message';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { StepsModule } from 'primeng/steps';\r\nimport { TabsModule } from 'primeng/tabs';\r\nimport { TimelineModule } from 'primeng/timeline';\r\nimport { CardModule } from 'primeng/card';\r\nimport { ChipModule } from 'primeng/chip';\r\nimport { TieredMenuModule } from 'primeng/tieredmenu';\r\nimport { GalleriaModule } from 'primeng/galleria';\r\nimport { BlockUIModule } from 'primeng/blockui';\r\nimport { ListboxModule } from 'primeng/listbox';\r\nimport { ChartModule } from 'primeng/chart'; \r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { ProgressBarModule } from 'primeng/progressbar';\r\nimport { TreeModule } from 'primeng/tree';\r\nimport { IconFieldModule } from 'primeng/iconfield';\r\nimport { InputIconModule } from 'primeng/inputicon';\r\nimport { InputGroupModule } from 'primeng/inputgroup';\r\nimport { DataViewModule } from 'primeng/dataview';\r\n\r\n//EXTERNAL\r\nimport { PowerBIEmbedModule } from 'powerbi-client-angular';\r\nimport { HighlightModule, HIGHLIGHT_OPTIONS } from 'ngx-highlightjs';\r\nimport { GoogleMapsModule } from '@angular/google-maps';\r\nimport { FlexLayoutModule } from 'ng-flex-layout';\r\nimport { ImageCropperComponent } from 'ngx-image-cropper';\r\n\r\n// WAPPING\r\nimport { WappComponentsComponent } from './wapp-components.component';\r\nimport { WEditInputTextComponent } from './edit/w-edit-input-text/w-edit-input-text.component';\r\nimport { WClipboardComponent } from './w-clipboard/w-clipboard.component';\r\nimport { WIconsComponent } from './icons/wapping-icons/w-icons.component';\r\nimport { WLogosComponent } from './logos/wapping-logos/w-logos.component';\r\nimport { WEditInputTextareaComponent } from './edit/w-edit-input-textarea/w-edit-input-textarea.component';\r\nimport { WEditSelectComponent } from './edit/w-edit-select/w-edit-select.component';\r\nimport { WButtonComponent } from './button/w-button/w-button.component';\r\nimport { WTableComponent } from './tables/w-table/w-table.component';\r\nimport { WTableLazyComponent } from './tables/w-table-lazy/w-table-lazy.component';\r\nimport { WContainerComponent } from './layout/w-container/w-container.component';\r\nimport { WNavbarComponent } from './layout/w-navbar/w-navbar.component';\r\nimport { WBodyComponent } from './layout/w-body/w-body.component';\r\nimport { WFooterComponent } from './layout/w-footer/w-footer.component';\r\nimport { ColorTextPipe } from './shared/pipes/color-text.pipe';\r\nimport { WEditMultiselectComponent } from './edit/w-edit-multiselect/w-edit-multiselect.component';\r\nimport { WEditTreeselectComponent } from './edit/w-edit-treeselect/w-edit-treeselect.component';\r\nimport { WPanelComponent } from './layout/w-panel/w-panel.component';\r\nimport { WBodyContainerComponent } from './layout/w-body-container/w-body-container.component';\r\nimport { WHeaderPanelComponent } from './layout/w-header-panel/w-header-panel.component';\r\nimport { WPanelTitleComponent } from './layout/w-panel-title/w-panel-title.component';\r\nimport { WEditInputNumberComponent } from './edit/w-edit-input-number/w-edit-input-number.component';\r\nimport { WInputSearchComponent } from './search/w-input-search/w-input-search.component';\r\nimport { WFilterPanelComponent } from './misc/w-filter-panel/w-filter-panel.component';\r\nimport { WListFieldComponent } from './misc/w-filter-panel/w-list-field/w-list-field.component';\r\nimport { WImageFileUploaderComponent } from './file/w-image-file-uploader/w-image-file-uploader.component';\r\nimport { WImageCropperComponent } from './file/w-image-cropper/w-image-cropper.component';\r\nimport { WPreviewImageComponent } from './file/w-preview-image/w-preview-image.component';\r\nimport { WPowerbiReportComponent } from './report/w-powerbi-report/w-powerbi-report.component';\r\nimport { WSidebarComponent } from './sidebar/w-sidebar/w-sidebar.component';\r\nimport { WButtonsFooterComponent } from './button/w-buttons-footer/w-buttons-footer.component';\r\nimport { WTreeTableComponent } from './tables/w-tree-table/w-tree-table.component';\r\nimport { WBodyGridComponent } from './layout/w-body-grid/w-body-grid.component';\r\nimport { WEditToggleComponent } from './edit/w-edit-toggle/w-edit-toggle.component';\r\nimport { WPanelGridComponent } from './layout/w-panel-grid/w-panel-grid.component';\r\nimport { WViewCardTitleTextComponent } from './view/w-view-card-title-text/w-view-card-title-text.component';\r\nimport { WCardComponent } from './card/w-card/w-card.component';\r\nimport { WAutocompleteSearchComponent } from './search/w-autocomplete-search/w-autocomplete-search.component';\r\nimport { WToggleButtonComponent } from './button/w-toggle-button/w-toggle-button.component';\r\nimport { WEditCheckboxComponent } from './edit/w-edit-checkbox/w-edit-checkbox.component';\r\nimport { WSelectButtonComponent } from './button/w-select-button/w-select-button.component';\r\nimport { WMapsComponent } from './maps/w-maps/w-maps.component';\r\nimport { WEditCalendarComponent } from './edit/w-edit-calendar/w-edit-calendar.component';\r\nimport { WRadioButtonComponent } from './button/w-radio-button/w-radio-button.component';\r\nimport { WWizardComponent } from './misc/w-wizard/w-wizard.component';\r\nimport { WTabviewComponent } from './tabview/w-tabview/w-tabview.component';\r\nimport { WButtonTabviewComponent } from './tabview/w-button-tabview/w-button-tabview.component';\r\nimport { WTreeComponent } from './tree/w-tree/w-tree.component';\r\nimport { WBadgeComponent } from './misc/w-badge/w-badge.component';\r\nimport { WTimelineComponent } from './misc/w-timeline/w-timeline.component';\r\nimport { WPanelSubtitleComponent } from './layout/w-panel-subtitle/w-panel-subtitle.component';\r\nimport { WViewTextComponent } from './view/w-view-text/w-view-text.component';\r\nimport { WSkeletonTimelineComponent } from './shared/skeletons/w-skeleton-timeline/w-skeleton-timeline.component';\r\nimport { WSkeletonSidebarComponent } from './shared/skeletons/w-skeleton-sidebar/w-skeleton-sidebar.component';\r\nimport { WSkeletonListComponent } from './shared/skeletons/w-skeleton-list/w-skeleton-list.component';\r\nimport { WSkeletonInputGenericComponent } from './shared/skeletons/w-skeleton-input-generic/w-skeleton-input-generic.component';\r\nimport { WSkeletonIframeComponent } from './shared/skeletons/w-skeleton-iframe/w-skeleton-iframe.component';\r\nimport { WSkeletonEditComponent } from './shared/skeletons/w-skeleton-edit/w-skeleton-edit.component';\r\nimport { WSkeletonEditProductComponent } from './shared/skeletons/w-skeleton-edit-product/w-skeleton-edit-product.component';\r\nimport { WSkeletonPowerbiReportComponent } from './shared/skeletons/w-skeleton-powerbi-report/w-skeleton-powerbi-report.component';\r\nimport { WSkeletonQueryBuilderComponent } from './shared/skeletons/w-skeleton-query-builder/w-skeleton-query-builder.component';\r\nimport { WSkeletonTreeComponent } from './shared/skeletons/w-skeleton-tree/w-skeleton-tree.component';\r\nimport { WSkeletonProfileSidebarComponent } from './shared/skeletons/w-skeleton-profile-sidebar/w-skeleton-profile-sidebar.component';\r\nimport { WSkeletonUserProfileInfoSidebarComponent } from './shared/skeletons/w-skeleton-user-profile-info-sidebar/w-skeleton-user-profile-info-sidebar.component';\r\nimport { WDatePipe } from './shared/pipes/w-date.pipe';\r\nimport { WSummaryPipe } from './shared/pipes/w-summary.pipe';\r\nimport { WChipComponent } from './misc/w-chip/w-chip.component';\r\nimport { WViewBooleanComponent } from './view/w-view-boolean/w-view-boolean.component';\r\nimport { WSkeletonFormComponent } from './shared/skeletons/w-skeleton-form/w-skeleton-form.component';\r\nimport { WAddressFieldComponent } from './shared/components/w-address-field/w-address-field.component';\r\nimport { WSkeletonGenericComponent } from './shared/skeletons/w-skeleton-generic/w-skeleton-generic.component';\r\nimport { WInputLabelComponent } from './view/w-input-label/w-input-label.component';\r\nimport { WPanelSectionGapDividerComponent } from './layout/gap-divider/w-panel-section-gap-divider/w-panel-section-gap-divider.component';\r\nimport { WInputVerticalGapDividerComponent } from './layout/gap-divider/w-input-vertical-gap-divider/w-input-vertical-gap-divider.component';\r\nimport { WButtonWeekComponent } from './button/w-button-week/w-button-week.component';\r\nimport { WViewBadgeComponent } from './view/w-view-badge/w-view-badge.component';\r\nimport { WEditCalendarMonthComponent } from './edit/w-edit-calendar-month/w-edit-calendar-month.component';\r\nimport { WParameterSelectorComponent } from './misc/w-parameter-selector/w-parameter-selector.component';\r\nimport { WChartBarComponent } from './chart/w-chart-bar/w-chart-bar.component';\r\nimport { WPercentagePipe } from './shared/pipes/w-percentage.pipe';\r\nimport { WCurrencyPipe } from './shared/pipes/w-currency.pipe';\r\nimport { WFileUploaderComponent } from './file/w-file-uploader/w-file-uploader.component';\r\nimport { WCronExpressionsComponent } from './misc/w-cron-expressions/w-cron-expressions.component';\r\nimport { WTreeFieldComponent } from './shared/components/w-tree-field/w-tree-field.component';\r\nimport { WNotificationsEventFieldComponent } from './shared/components/w-notifications-event-field/w-notifications-event-field.component';\r\nimport { WEditInputColorpickerComponent } from './edit/w-edit-input-colorpicker/w-edit-input-colorpicker.component'; \r\nimport { ColorPickerModule } from 'primeng/colorpicker';\r\nimport { WPeriodSelectFieldComponent } from './shared/components/w-period-select-field/w-period-select-field.component';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { WFileGeneratorComponent } from './file/w-file-generator/w-file-generator.component';\r\nimport { WDataviewComponent } from './dataview/w-dataview/w-dataview.component';\r\nimport { MonacoEditorModule } from './misc/w-code-block/monaco-editor-v2/editor.module';\r\n//QUERY BUILDER\r\n\r\n\r\n//METERIAL\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { WappMaterialServiceViewComponent } from './material/wapp-material-service-view/wapp-material-service-view.component';\r\nimport { MainTitleComponent } from './material/wapp-material-service-view/main-title/main-title.component';\r\nimport { CarouselComponent } from './material/wapp-material-service-view/carousel/carousel.component';\r\nimport { WMaterialServiceCardComponent } from './material/w-material-service-card/w-material-service-card.component';\r\nimport { WappMaterialServiceCardComponent } from './material/wapp-material-service-card/wapp-material-service-card.component';\r\nimport { WMaterialServiceViewComponent } from './material/w-material-service-view/w-material-service-view.component';\r\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\r\nimport { WappServiceDescriptionComponent } from './material/shared/components/wapp-service-description/wapp-service-description.component';\r\nimport { WappModalCloseButtonComponent } from './material/shared/components/wapp-modal-close-button/wapp-modal-close-button.component';\r\nimport { WappModalTitleComponent } from './material/shared/components/wapp-modal-title/wapp-modal-title.component';\r\nimport { WCodeBlockComponent } from './misc/w-code-block/w-code-block.component';\r\nimport { QueryInputDirective } from './misc/w-filter-panel/query-builder/query-input.directive';\r\nimport { QueryOperatorDirective } from './misc/w-filter-panel/query-builder/query-operator.directive';\r\nimport { QueryFieldDirective } from './misc/w-filter-panel/query-builder/query-field.directive';\r\nimport { QueryEntityDirective } from './misc/w-filter-panel/query-builder/query-entity.directive';\r\nimport { QueryButtonGroupDirective } from './misc/w-filter-panel/query-builder/query-button-group.directive';\r\nimport { QuerySwitchGroupDirective } from './misc/w-filter-panel/query-builder/query-switch-group.directive';\r\nimport { QueryRemoveButtonDirective } from './misc/w-filter-panel/query-builder/query-remove-button.directive';\r\nimport { QueryEmptyWarningDirective } from './misc/w-filter-panel/query-builder/query-empty-warning.directive';\r\nimport { QueryArrowIconDirective } from './misc/w-filter-panel/query-builder/query-arrow-icon.directive';\r\nimport { QueryBuilderComponent } from './misc/w-filter-panel/query-builder/query-builder.component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\n\r\n@NgModule({ declarations: [\r\n WappComponentsComponent,\r\n WEditInputTextComponent,\r\n WClipboardComponent,\r\n WIconsComponent,\r\n WLogosComponent,\r\n WEditInputTextareaComponent,\r\n WEditInputNumberComponent,\r\n WEditSelectComponent,\r\n WEditMultiselectComponent,\r\n WButtonComponent, WCardComponent, WTableComponent,\r\n WTableLazyComponent,\r\n WContainerComponent,\r\n WNavbarComponent,\r\n WBodyComponent,\r\n WFooterComponent,\r\n ColorTextPipe,\r\n WDatePipe,\r\n WPercentagePipe,\r\n WSummaryPipe,\r\n WCurrencyPipe,\r\n WEditTreeselectComponent,\r\n WPanelComponent,\r\n WBodyContainerComponent,\r\n WHeaderPanelComponent,\r\n WPanelTitleComponent,\r\n WInputSearchComponent,\r\n WFilterPanelComponent,\r\n WListFieldComponent,\r\n WViewCardTitleTextComponent,\r\n WImageFileUploaderComponent,\r\n WImageCropperComponent,\r\n WPreviewImageComponent,\r\n WPowerbiReportComponent,\r\n WSidebarComponent,\r\n WButtonsFooterComponent,\r\n WTreeTableComponent,\r\n WBodyGridComponent,\r\n WEditToggleComponent,\r\n WPanelGridComponent,\r\n WAutocompleteSearchComponent,\r\n WToggleButtonComponent,\r\n WEditCheckboxComponent,\r\n WSelectButtonComponent,\r\n WMapsComponent,\r\n WEditCalendarComponent,\r\n WRadioButtonComponent,\r\n WWizardComponent,\r\n WTabviewComponent,\r\n WButtonTabviewComponent,\r\n WTreeComponent,\r\n WBadgeComponent,\r\n WTimelineComponent,\r\n WPanelSubtitleComponent,\r\n WViewTextComponent,\r\n WViewBooleanComponent,\r\n WChipComponent,\r\n WSkeletonTimelineComponent,\r\n WSkeletonSidebarComponent,\r\n WSkeletonListComponent,\r\n WSkeletonEditComponent,\r\n WSkeletonInputGenericComponent,\r\n WSkeletonIframeComponent,\r\n WSkeletonEditProductComponent,\r\n WSkeletonPowerbiReportComponent,\r\n WSkeletonQueryBuilderComponent,\r\n WSkeletonTreeComponent,\r\n WSkeletonProfileSidebarComponent,\r\n WSkeletonUserProfileInfoSidebarComponent,\r\n WSkeletonFormComponent,\r\n WAddressFieldComponent,\r\n WSkeletonGenericComponent,\r\n WInputLabelComponent,\r\n WPanelSectionGapDividerComponent,\r\n WInputVerticalGapDividerComponent,\r\n WButtonWeekComponent,\r\n WViewBadgeComponent,\r\n WEditCalendarMonthComponent,\r\n WParameterSelectorComponent,\r\n WChartBarComponent,\r\n WFileUploaderComponent,\r\n WCronExpressionsComponent,\r\n WTreeFieldComponent,\r\n WNotificationsEventFieldComponent,\r\n WEditInputColorpickerComponent,\r\n WPeriodSelectFieldComponent,\r\n WMaterialServiceCardComponent,\r\n WMaterialServiceViewComponent,\r\n WappMaterialServiceCardComponent,\r\n WappMaterialServiceViewComponent,\r\n MainTitleComponent,\r\n WFileGeneratorComponent,\r\n WappServiceDescriptionComponent,\r\n WappModalCloseButtonComponent,\r\n WappModalTitleComponent,\r\n WCodeBlockComponent,\r\n QueryBuilderComponent,\r\n QueryInputDirective,\r\n QueryOperatorDirective,\r\n QueryFieldDirective,\r\n QueryEntityDirective,\r\n QueryButtonGroupDirective,\r\n QuerySwitchGroupDirective,\r\n QueryRemoveButtonDirective,\r\n QueryEmptyWarningDirective,\r\n QueryArrowIconDirective,\r\n WDataviewComponent, \r\n CarouselComponent\r\n ],\r\n exports: [\r\n WappComponentsComponent,\r\n WEditInputTextComponent,\r\n WClipboardComponent,\r\n HighlightModule,\r\n WIconsComponent,\r\n WLogosComponent,\r\n WEditInputTextareaComponent,\r\n WEditInputNumberComponent,\r\n WEditSelectComponent,\r\n WEditMultiselectComponent,\r\n WButtonComponent,\r\n WCardComponent,\r\n WTableComponent,\r\n WTableLazyComponent,\r\n WContainerComponent,\r\n WNavbarComponent,\r\n WBodyComponent,\r\n WFooterComponent,\r\n ColorTextPipe,\r\n WDatePipe,\r\n WPercentagePipe,\r\n WSummaryPipe,\r\n WCurrencyPipe,\r\n WEditTreeselectComponent,\r\n WPanelComponent,\r\n WBodyContainerComponent,\r\n WHeaderPanelComponent,\r\n WPanelTitleComponent,\r\n WPanelSubtitleComponent,\r\n WInputSearchComponent,\r\n QueryBuilderComponent,\r\n QueryInputDirective,\r\n QueryOperatorDirective,\r\n QueryFieldDirective,\r\n QueryEntityDirective,\r\n QueryButtonGroupDirective,\r\n QuerySwitchGroupDirective,\r\n QueryRemoveButtonDirective,\r\n QueryEmptyWarningDirective,\r\n QueryArrowIconDirective,\r\n WFilterPanelComponent,\r\n ImageModule,\r\n FileUploadModule,\r\n SliderModule,\r\n WImageFileUploaderComponent,\r\n WImageCropperComponent,\r\n ImageCropperComponent,\r\n WPowerbiReportComponent,\r\n WSidebarComponent,\r\n WButtonsFooterComponent,\r\n WTreeTableComponent,\r\n WBodyGridComponent,\r\n WEditToggleComponent,\r\n WPanelGridComponent,\r\n WAutocompleteSearchComponent,\r\n WToggleButtonComponent,\r\n WEditCheckboxComponent,\r\n WSelectButtonComponent,\r\n SelectButtonModule,\r\n WMapsComponent,\r\n WEditCalendarComponent,\r\n WRadioButtonComponent,\r\n WWizardComponent,\r\n StepsModule,\r\n WTabviewComponent,\r\n WButtonTabviewComponent,\r\n WTreeComponent,\r\n TabsModule,\r\n WBadgeComponent,\r\n WTimelineComponent,\r\n TimelineModule,\r\n CardModule,\r\n WViewTextComponent,\r\n WViewBooleanComponent,\r\n ChipModule,\r\n WChipComponent,\r\n WSkeletonTimelineComponent,\r\n WSkeletonSidebarComponent,\r\n WSkeletonListComponent,\r\n WSkeletonEditComponent,\r\n WSkeletonInputGenericComponent,\r\n WSkeletonIframeComponent,\r\n WSkeletonEditProductComponent,\r\n WSkeletonPowerbiReportComponent,\r\n WSkeletonQueryBuilderComponent,\r\n WSkeletonTreeComponent,\r\n WSkeletonProfileSidebarComponent,\r\n WSkeletonUserProfileInfoSidebarComponent,\r\n WSkeletonFormComponent,\r\n WAddressFieldComponent,\r\n TieredMenuModule,\r\n WSkeletonGenericComponent,\r\n GalleriaModule,\r\n BlockUIModule,\r\n WInputLabelComponent,\r\n WPanelSectionGapDividerComponent,\r\n WInputVerticalGapDividerComponent,\r\n WButtonWeekComponent,\r\n WViewBadgeComponent,\r\n WEditCalendarMonthComponent,\r\n WParameterSelectorComponent,\r\n WChartBarComponent,\r\n WFileUploaderComponent,\r\n WCronExpressionsComponent,\r\n WTreeFieldComponent,\r\n WEditInputColorpickerComponent,\r\n WMaterialServiceCardComponent,\r\n WMaterialServiceViewComponent,\r\n WappMaterialServiceCardComponent,\r\n WappMaterialServiceViewComponent,\r\n WFileGeneratorComponent,\r\n MainTitleComponent,\r\n MatDialogModule,\r\n WappServiceDescriptionComponent,\r\n WappModalCloseButtonComponent,\r\n WappModalTitleComponent,\r\n // MonacoEditorModule,\r\n WCodeBlockComponent,\r\n TreeModule,\r\n ProgressBarModule,\r\n ButtonModule,\r\n IconFieldModule,\r\n InputIconModule, \r\n InputGroupModule,\r\n DataViewModule,\r\n WDataviewComponent\r\n ],\r\n imports: [\r\n InputTextModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CommonModule,\r\n RouterModule,\r\n ButtonModule,\r\n HighlightModule,\r\n DrawerModule,\r\n BadgeModule,\r\n RadioButtonModule,\r\n ToggleSwitchModule,\r\n TooltipModule,\r\n RippleModule,\r\n SkeletonModule,\r\n SelectModule, \r\n MultiSelectModule,\r\n AvatarModule,\r\n AvatarGroupModule,\r\n TreeSelectModule,\r\n InputNumberModule,\r\n TextareaModule,\r\n AutoCompleteModule,\r\n TableModule,\r\n MultiSelectModule,\r\n PaginatorModule,\r\n ConfirmPopupModule,\r\n DatePickerModule,\r\n ToggleButtonModule,\r\n SelectButtonModule,\r\n InputGroupModule, \r\n ImageModule,\r\n FileUploadModule,\r\n SliderModule,\r\n CarouselModulePG,\r\n DividerModule,\r\n PowerBIEmbedModule,\r\n TreeTableModule,\r\n MessageModule,\r\n CheckboxModule,\r\n StepsModule,\r\n TabsModule,\r\n TimelineModule,\r\n CardModule,\r\n ChipModule,\r\n TieredMenuModule,\r\n GalleriaModule,\r\n BlockUIModule,\r\n ListboxModule,\r\n ChartModule,\r\n AccordionModule,\r\n ProgressBarModule,\r\n TreeModule,\r\n IconFieldModule,\r\n InputIconModule,\r\n ColorPickerModule,\r\n MatSlideToggleModule, \r\n ImageCropperComponent,\r\n MonacoEditorModule.forRoot(),\r\n //MATERIAL\r\n MatCardModule,\r\n MatIconModule,\r\n FlexLayoutModule,\r\n MatDialogModule, \r\n MatButtonModule, \r\n ], providers: [\r\n {\r\n provide: HIGHLIGHT_OPTIONS,\r\n useValue: {\r\n fullLibraryLoader: () => import('highlight.js')\r\n }\r\n },\r\n { provide: MAT_DIALOG_DATA, useValue: {} },\r\n provideHttpClient(withInterceptorsFromDi()),\r\n ] })\r\nexport class WappComponentsModule { }\r\n","import { Injectable } from \"@angular/core\";\r\nimport { TreeNode } from \"primeng/api\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TreeService {\r\n\r\n constructor() { }\r\n\r\n elementToTreeNodeMap<T>(elements: T[], getChildFn: (element: T) => T[] | null, parent?: TreeNode): TreeNode[] {\r\n return elements.map((element:any) => {\r\n let treeNode: TreeNode = {\r\n label: element.name,\r\n data: element,\r\n children: [],\r\n expanded: false,\r\n parent: parent\r\n };\r\n\r\n const childElements = getChildFn(element);\r\n\r\n if (childElements) {\r\n treeNode.children = this.elementToTreeNodeMap(childElements, getChildFn, treeNode);\r\n }\r\n\r\n return treeNode;\r\n });\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { WFileAttachment } from '../models/w-file-attachment.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FileService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n private arrayBufferToBase64(buffer: ArrayBuffer): Promise<string> {\r\n return new Promise((resolve, reject) => {\r\n const blob = new Blob([buffer], { type: 'application/octet-stream' });\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n const base64String = (reader.result as string).split(',')[1];\r\n resolve(base64String);\r\n };\r\n reader.onerror = error => reject(error);\r\n reader.readAsDataURL(blob);\r\n });\r\n }\r\n\r\n downloadFile(url: string): Promise<any> {\r\n return this.http.get(url, { responseType: 'arraybuffer' }).toPromise().then((response: any) => {\r\n return this.arrayBufferToBase64(response);\r\n });\r\n }\r\n\r\n async processDownloadFile(url: string){\r\n const fileName = url.split('/').pop() || 'file';\r\n const content = (await this.downloadFile(url)).toString();\r\n const attachment: WFileAttachment = {fileName: fileName, content: content};\r\n return attachment;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ClipboardService {\r\n\r\n constructor() { }\r\n\r\n copyToClipboard(text: string) {\r\n if (navigator.clipboard) {\r\n navigator.clipboard.writeText(text)\r\n .then(() => {})\r\n .catch(() => {console.log(\"copy to clipboard error\")});\r\n } else {\r\n console.log(\"not supported\")\r\n }\r\n }\r\n}\r\n","/*\r\n * Public API Surface of wapp-components\r\n */\r\n\r\nexport * from './lib/wapp-components.service';\r\nexport * from './lib/wapp-components.component';\r\nexport * from './lib/wapp-components.module';\r\n\r\n//Components\r\nexport * from './lib/edit/w-edit-input-text/w-edit-input-text.component';\r\nexport * from './lib/edit/w-edit-input-textarea/w-edit-input-textarea.component';\r\nexport * from './lib/edit/w-edit-input-number/w-edit-input-number.component';\r\nexport * from './lib/search/w-input-search/w-input-search.component';\r\nexport * from './lib/search/w-autocomplete-search/w-autocomplete-search.component';\r\nexport * from './lib/edit/w-edit-select/w-edit-select.component';\r\nexport * from './lib/edit/w-edit-multiselect/w-edit-multiselect.component';\r\nexport * from './lib/edit/w-edit-treeselect/w-edit-treeselect.component'\r\nexport * from './lib/edit/w-edit-toggle/w-edit-toggle.component';\r\nexport * from './lib/edit/w-edit-checkbox/w-edit-checkbox.component';\r\nexport * from './lib/edit/w-edit-calendar/w-edit-calendar.component';\r\nexport * from './lib/button/w-button/w-button.component';\r\nexport * from './lib/button/w-radio-button/w-radio-button.component';\r\nexport * from './lib/button/w-select-button/w-select-button.component';\r\nexport * from './lib/tables/w-table/w-table.component';\r\nexport * from './lib/tables/w-table-lazy/w-table-lazy.component';\r\nexport * from './lib/misc/w-filter-panel/w-filter-panel.component';\r\nexport * from './lib/w-clipboard/w-clipboard.component';\r\nexport * from './lib/icons/wapping-icons/w-icons.component';\r\nexport * from './lib/logos/wapping-logos/w-logos.component';\r\nexport * from './lib/layout/w-container/w-container.component';\r\nexport * from './lib/layout/w-navbar/w-navbar.component';\r\nexport * from './lib/layout/w-body/w-body.component';\r\nexport * from './lib/layout/w-footer/w-footer.component';\r\nexport * from './lib/layout/w-panel/w-panel.component';\r\nexport * from './lib/layout/w-body-container/w-body-container.component';\r\nexport * from './lib/layout/w-header-panel/w-header-panel.component';\r\nexport * from './lib/layout/w-panel-title/w-panel-title.component';\r\nexport * from './lib/layout/w-panel-subtitle/w-panel-subtitle.component';\r\nexport * from './lib/file/w-image-cropper/w-image-cropper.component';\r\nexport * from './lib/file/w-preview-image/w-preview-image.component';\r\nexport * from './lib/file/w-image-file-uploader/w-image-file-uploader.component';\r\nexport * from './lib/file/w-file-generator/w-file-generator.component';\r\nexport * from './lib/report/w-powerbi-report/w-powerbi-report.component';\r\nexport * from './lib/sidebar/w-sidebar/w-sidebar.component';\r\nexport * from './lib/button/w-buttons-footer/w-buttons-footer.component';\r\nexport * from './lib/tables/w-tree-table/w-tree-table.component';\r\nexport * from './lib/layout/w-body-grid/w-body-grid.component';\r\nexport * from './lib/layout/w-panel-grid/w-panel-grid.component';\r\nexport * from './lib/button/w-toggle-button/w-toggle-button.component';\r\nexport * from './lib/misc/w-wizard/w-wizard.component';\r\nexport * from './lib/maps/w-maps/w-maps.component';\r\nexport * from './lib/tabview/w-tabview/w-tabview.component';\r\nexport * from './lib/tabview/w-button-tabview/w-button-tabview.component';\r\nexport * from './lib/tree/w-tree/w-tree.component';\r\nexport * from './lib/misc/w-badge/w-badge.component';\r\nexport * from './lib/misc/w-timeline/w-timeline.component';\r\nexport * from './lib/misc/w-chip/w-chip.component';\r\nexport * from './lib/view/w-view-text/w-view-text.component';\r\nexport * from './lib/view/w-view-boolean/w-view-boolean.component';\r\nexport * from './lib/shared/components/w-address-field/w-address-field.component';\r\nexport * from './lib/view/w-input-label/w-input-label.component'; \r\nexport * from './lib/layout/gap-divider/w-input-vertical-gap-divider/w-input-vertical-gap-divider.component'; \r\nexport * from './lib/layout/gap-divider/w-panel-section-gap-divider/w-panel-section-gap-divider.component'; \r\nexport * from './lib/button/w-button-week/w-button-week.component'; \r\nexport * from './lib/view/w-view-badge/w-view-badge.component'; \r\nexport * from './lib/edit/w-edit-calendar-month/w-edit-calendar-month.component'; \r\nexport * from './lib/misc/w-parameter-selector/w-parameter-selector.component';\r\nexport * from './lib/chart/w-chart-bar/w-chart-bar.component'; \r\nexport * from './lib/file/w-file-uploader/w-file-uploader.component'; \r\nexport * from './lib/misc/w-cron-expressions/w-cron-expressions.component'; \r\nexport * from './lib/shared/components/w-notifications-event-field/w-notifications-event-field.component';\r\nexport * from './lib/shared/components/w-tree-field/w-tree-field.component';\r\nexport * from './lib/edit/w-edit-input-colorpicker/w-edit-input-colorpicker.component';\r\nexport * from './lib/misc/w-code-block/w-code-block.component';\r\nexport * from './lib/dataview/w-dataview/w-dataview.component';\r\nexport * from './lib/card/w-card/w-card.component';\r\n\r\n// Material Components\r\nexport * from './lib/material/w-material-service-card/w-material-service-card.component'; \r\nexport * from './lib/material/wapp-material-service-card/wapp-material-service-card.component'; \r\nexport * from './lib/material/wapp-material-service-view/wapp-material-service-view.component';\r\nexport * from './lib/material/w-material-service-view/w-material-service-view.component'; \r\nexport * from './lib/material/wapp-material-service-view/main-title/main-title.component'; \r\nexport * from './lib/material/wapp-material-service-view/carousel/carousel.component'; \r\nexport * from './lib/material/shared/components/wapp-service-description/wapp-service-description.component'; \r\nexport * from './lib/material/shared/components/wapp-modal-close-button/wapp-modal-close-button.component'; \r\nexport * from './lib/material/shared/components/wapp-modal-title/wapp-modal-title.component'; \r\n\r\n//Skeletons \r\nexport * from './lib/shared/skeletons/w-skeleton-timeline/w-skeleton-timeline.component'; \r\nexport * from './lib/shared/skeletons/w-skeleton-sidebar/w-skeleton-sidebar.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-input-generic/w-skeleton-input-generic.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-list/w-skeleton-list.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-edit/w-skeleton-edit.component'; \r\nexport * from './lib/shared/skeletons/w-skeleton-iframe/w-skeleton-iframe.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-edit-product/w-skeleton-edit-product.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-powerbi-report/w-skeleton-powerbi-report.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-query-builder/w-skeleton-query-builder.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-tree/w-skeleton-tree.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-profile-sidebar/w-skeleton-profile-sidebar.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-user-profile-info-sidebar/w-skeleton-user-profile-info-sidebar.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-form/w-skeleton-form.component';\r\nexport * from './lib/shared/skeletons/w-skeleton-generic/w-skeleton-generic.component'; \r\n\r\n//Pipes\r\nexport * from './lib/shared/pipes/color-text.pipe';\r\nexport * from './lib/shared/pipes/w-date.pipe';\r\nexport * from './lib/shared/pipes/w-summary.pipe';\r\nexport * from './lib/shared/pipes/w-percentage.pipe';\r\nexport * from './lib/shared/pipes/w-currency.pipe';\r\n\r\n//Services\r\nexport * from './lib/shared/services/form-control.service';\r\nexport * from './lib/shared/services/modal.service';\r\nexport * from './lib/shared/services/tree.service';\r\nexport * from './lib/shared/services/session-storage.service'; \r\nexport * from './lib/shared/services/date-conversion.service'; \r\nexport * from './lib/shared/services/number-conversion.service'; \r\nexport * from './lib/shared/services/file.service';\r\nexport * from './lib/shared/services/clipboard.service';\r\n\r\n///models\r\nexport * from './lib/shared/models/enums.model';\r\nexport * from './lib/shared/models/filter.model';\r\nexport * from './lib/shared/models/lazy-element-query-request.model';\r\nexport * from './lib/shared/models/wapp-table-lazy-loading.model';\r\nexport * from './lib/shared/models/wapp-table.model';\r\nexport * from './lib/shared/models/filter-panel/filter-panel-translations.model';\r\nexport * from './lib/shared/models/image-b64.model';\r\nexport * from './lib/shared/models/w-file-b64.model';\r\nexport * from './lib/shared/models/w-image-file-uploader-config.model';\r\nexport * from './lib/shared/models/w-image-cropper-data.model';\r\nexport * from './lib/shared/models/w-address.model'\r\nexport * from './lib/shared/models/filter-panel/query-results.model';\r\nexport * from './lib/shared/models/parameter-selector.model'; \r\nexport * from './lib/shared/models/w-chart-config.model'; \r\nexport * from './lib/shared/models/w-file-uploader-data-sheet-response.model'; \r\nexport * from './lib/shared/models/wapp-table-action-button-response.model'; \r\nexport * from './lib/shared/models/cron-expressions/cron-component-translations.model'; \r\nexport * from './lib/shared/enums/cron-expressions/enum.model'; \r\nexport * from './lib/shared/models/w-file-attachment.model';\r\nexport * from './lib/material/shared/models/enums.model';\r\nexport * from './lib/material/shared/models/wapping-service';\r\nexport * from './lib/material/shared/models/wapping-service-item-view';\r\nexport * from './lib/shared/models/address-maps.model';\r\nexport * from './lib/shared/models/w-select-button-state.model';\r\nexport * from './lib/material/shared/models/wapping-service';\r\nexport * from './lib/shared/models/w-file-uploader-config.model';\r\nexport * from './lib/shared/models/filter-panel/platform-events-group.model';\r\nexport * from './lib/shared/models/w-tree-table.model';\r\nexport * from './lib/shared/models/embed-config.model';\r\n\r\n///Query Builder\r\nexport * from './lib/misc/w-filter-panel/query-builder/query-builder.interfaces';\r\n\r\nexport * from './lib/misc/w-filter-panel/query-builder/query-builder.component';\r\n\r\nexport * from './lib/misc/w-filter-panel/query-builder/query-button-group.directive';\r\nexport * from './lib/misc/w-filter-panel/query-builder/query-entity.directive';\r\nexport * from './lib/misc/w-filter-panel/query-builder/query-field.directive';\r\nexport * from './lib/misc/w-filter-panel/query-builder/query-input.directive';\r\nexport * from './lib/misc/w-filter-panel/query-builder/query-operator.directive';\r\nexport * from './lib/misc/w-filter-panel/query-builder/query-switch-group.directive';\r\nexport * from './lib/misc/w-filter-panel/query-builder/query-remove-button.directive';\r\nexport * from './lib/misc/w-filter-panel/query-builder/query-empty-warning.directive';\r\nexport * from './lib/misc/w-filter-panel/query-builder/query-arrow-icon.directive';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i3","i1","i2","i5.WInputLabelComponent","i3.WButtonComponent","i1.DateConversionService","i1.SessionStorageService","i2.DateConversionService","i4","i5","i6","i13","i14.WButtonComponent","i15.WBadgeComponent","i16.WButtonWeekComponent","i17.WDatePipe","i18.WPercentagePipe","i19.WCurrencyPipe","i3.SessionStorageService","i4.LocalStorageService","i7","i8","i9","i10","i11","i12","i14","i15","i16","i17","i18.WButtonComponent","i19.WBadgeComponent","i20.WButtonWeekComponent","i21.WDatePipe","i22.WPercentagePipe","i23.WCurrencyPipe","i4.WContainerComponent","i2.WIconsComponent","i3.WLogosComponent","i5.WPanelTitleComponent","i6.WPanelSubtitleComponent","i6.WButtonComponent","i1.NumberConversionService","i6.WInputLabelComponent","i7.WInputLabelComponent","i2.WEditSelectComponent","i3.WEditMultiselectComponent","i1.ApiService","i3.WEditSelectComponent","i4.WEditMultiselectComponent","i3.WEditTreeselectComponent","i1.LocalStorageService","i2.SessionStorageService","i6.WEditSelectComponent","i7.WEditCalendarComponent","i2.ApiService","i12.WEditInputTextComponent","i13.WEditInputNumberComponent","i14.WEditSelectComponent","i15.WEditMultiselectComponent","i16.WButtonComponent","i17.WListFieldComponent","i18.WViewCardTitleTextComponent","i19.WToggleButtonComponent","i20.WSelectButtonComponent","i21.WEditCalendarComponent","i22.WAddressFieldComponent","i23.WTreeFieldComponent","i24.WNotificationsEventFieldComponent","i25.WPeriodSelectFieldComponent","i26.QueryBuilderComponent","i27.QueryInputDirective","i28.QueryOperatorDirective","i29.QueryFieldDirective","i30.QueryEntityDirective","i31.QueryButtonGroupDirective","i32.QuerySwitchGroupDirective","i33.QueryRemoveButtonDirective","i34.QueryArrowIconDirective","i2.ModalService","i8.WButtonComponent","i4.FileSizeService","i12.WIconsComponent","i13.WButtonComponent","i14.WInputLabelComponent","i4.WIconsComponent","i14.WBadgeComponent","i15.WDatePipe","i16.WPercentagePipe","i17.WCurrencyPipe","i3.WInputLabelComponent","i3.WIconsComponent","i5.WButtonComponent","i6.WPanelComponent","i7.WBodyGridComponent","i4.WButtonComponent","i1.WPanelGridComponent","i2.WSkeletonInputGenericComponent","i4.WPanelComponent","i5.WSkeletonGenericComponent","i5.WPanelComponent","i6.WSkeletonTimelineComponent","i2.WPanelComponent","i3.WBodyContainerComponent","i4.WHeaderPanelComponent","i5.WSkeletonInputGenericComponent","i5.WPanelGridComponent","i6.WSkeletonInputGenericComponent","i6.WSelectButtonComponent","i1.WBadgeComponent","i2.WInputLabelComponent","i7.WPanelTitleComponent","i8.WPanelGridComponent","i1.WSummaryPipe","i1.FileSizeService","i9.WButtonComponent","i10.WInputLabelComponent","i11.WSummaryPipe","i2.FormControlService","i3.WDatePipe","i6.WEditInputNumberComponent","i7.WEditSelectComponent","i8.WEditMultiselectComponent","i9.WPanelComponent","i10.WPanelGridComponent","i11.WViewTextComponent","i3.WEditInputTextComponent","i1.WButtonComponent","i1.WappModalCloseButtonComponent","i2.WappModalTitleComponent","i3.MaterialModalService","i10.MainTitleComponent","i11.CarouselComponent","i3.EditorComponent","CarouselModulePG","i1.MonacoEditorModule"],"mappings":"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"}