@wizishop/angular-components 15.1.114 → 18.2.0-beta

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 (344) hide show
  1. package/README.md +87 -87
  2. package/angular-components.scss +1679 -1681
  3. package/assets/images/upload/icon_picture.svg +11 -11
  4. package/{esm2020 → esm2022}/lib/animations/in-out/in-out-x.animation.mjs +1 -1
  5. package/{esm2020 → esm2022}/lib/animations/in-out/in-out-y.animation.mjs +1 -1
  6. package/{esm2020 → esm2022}/lib/animations/list/animate-list-from-bottom.animation.mjs +1 -1
  7. package/{esm2020 → esm2022}/lib/animations/list/animate-list-from-left.animation.mjs +1 -1
  8. package/{esm2020 → esm2022}/lib/animations/list/animate-list-from-right.animation.mjs +1 -1
  9. package/{esm2020 → esm2022}/lib/animations/list/animate-list-from-top.animation.mjs +1 -1
  10. package/{esm2020 → esm2022}/lib/animations/show/show-from-bottom.animation.mjs +1 -1
  11. package/{esm2020 → esm2022}/lib/animations/show/show-from-left.animation.mjs +1 -1
  12. package/{esm2020 → esm2022}/lib/animations/show/show-from-right.animation.mjs +1 -1
  13. package/{esm2020 → esm2022}/lib/animations/show/show-from-top.animation.mjs +1 -1
  14. package/{esm2020 → esm2022}/lib/animations/switch/switch-in-out.animation.mjs +1 -1
  15. package/{esm2020 → esm2022}/lib/components/ai-express/ai-express.component.mjs +5 -5
  16. package/{esm2020 → esm2022}/lib/components/alert/alert.component.mjs +5 -5
  17. package/esm2022/lib/components/alert-popup/alert-popup-module.mjs +20 -0
  18. package/esm2022/lib/components/alert-popup/alert-popup.component.mjs +41 -0
  19. package/{esm2020 → esm2022}/lib/components/alert-popup/alert-popup.service.mjs +5 -5
  20. package/esm2022/lib/components/back/back.component.mjs +12 -0
  21. package/{esm2020 → esm2022}/lib/components/block/block-title-legacy/block-title-legacy.component.mjs +5 -5
  22. package/esm2022/lib/components/block/block.component.mjs +124 -0
  23. package/{esm2020 → esm2022}/lib/components/block/separator/block-separator.component.mjs +5 -5
  24. package/esm2022/lib/components/block-with-checkbox/block-with-checkbox.component.mjs +46 -0
  25. package/{esm2020 → esm2022}/lib/components/breadcrumbs/breadcrumbs.component.mjs +5 -5
  26. package/esm2022/lib/components/button/button.component.mjs +200 -0
  27. package/esm2022/lib/components/calendar/calendar.component.mjs +237 -0
  28. package/{esm2020 → esm2022}/lib/components/card-price/card-price.component.mjs +5 -5
  29. package/{esm2020 → esm2022}/lib/components/charging-bar/charging-bar.component.mjs +5 -5
  30. package/{esm2020 → esm2022}/lib/components/checkbox/checkbox.component.mjs +5 -5
  31. package/{esm2020 → esm2022}/lib/components/checkbox/checkbox.module.mjs +7 -7
  32. package/{esm2020 → esm2022}/lib/components/column/column.component.mjs +4 -4
  33. package/{esm2020 → esm2022}/lib/components/common/label/label.component.mjs +5 -5
  34. package/{esm2020 → esm2022}/lib/components/common/placeholder/placeholder.component.mjs +5 -5
  35. package/esm2022/lib/components/confirm-delete/confirm-delete.component.mjs +64 -0
  36. package/{esm2020 → esm2022}/lib/components/content-with-buttons/content-with-buttons.component.mjs +4 -4
  37. package/esm2022/lib/components/delete/delete.component.mjs +12 -0
  38. package/esm2022/lib/components/draganddrop-list/draganddrop-list.component.mjs +61 -0
  39. package/esm2022/lib/components/dropdown/dropdown.component.mjs +26 -0
  40. package/esm2022/lib/components/edit-in-place/edit-in-place.component.mjs +202 -0
  41. package/{esm2020 → esm2022}/lib/components/expanded-panel/expanded-panel.component.mjs +5 -5
  42. package/esm2022/lib/components/expansion/accordion/accordion.component.mjs +74 -0
  43. package/{esm2020 → esm2022}/lib/components/expansion/expansion-panel/expansion-panel.component.mjs +5 -5
  44. package/esm2022/lib/components/expansion/expansion-panel/expansion-panel.directive.mjs +88 -0
  45. package/{esm2020 → esm2022}/lib/components/expansion/expansion-panel-header/expansion-panel-header.component.mjs +5 -5
  46. package/esm2022/lib/components/expansion/expansion-panel-header/expansion-panel-header.directive.mjs +49 -0
  47. package/{esm2020 → esm2022}/lib/components/expansion/expansion.module.mjs +11 -11
  48. package/{esm2020 → esm2022}/lib/components/filters/filter-item.dto.mjs +1 -1
  49. package/esm2022/lib/components/filters/filters.component.mjs +41 -0
  50. package/esm2022/lib/components/free-popin/free-popin.component.mjs +66 -0
  51. package/{esm2020 → esm2022}/lib/components/google-preview/google-preview.component.mjs +5 -5
  52. package/esm2022/lib/components/header-page/header-page.component.mjs +42 -0
  53. package/{esm2020 → esm2022}/lib/components/hn/h1/h1.component.mjs +5 -5
  54. package/esm2022/lib/components/hn/h2/h2.component.mjs +13 -0
  55. package/esm2022/lib/components/hn/h3/h3.component.mjs +18 -0
  56. package/esm2022/lib/components/hn/h4/h4.component.mjs +18 -0
  57. package/esm2022/lib/components/image/image.component.mjs +17 -0
  58. package/esm2022/lib/components/info/info.component.mjs +12 -0
  59. package/esm2022/lib/components/inputs/input/input.component.mjs +184 -0
  60. package/esm2022/lib/components/inputs/input-search/input-search.component.mjs +65 -0
  61. package/{esm2020 → esm2022}/lib/components/inputs/input-with-select/input-with-select.component.mjs +4 -4
  62. package/esm2022/lib/components/link/link.component.mjs +57 -0
  63. package/{esm2020 → esm2022}/lib/components/loader/loader.component.mjs +4 -4
  64. package/esm2022/lib/components/logo/logo.component.mjs +20 -0
  65. package/esm2022/lib/components/mosaic/mosaic.component.mjs +81 -0
  66. package/esm2022/lib/components/multiple-search/multiple-search.component.mjs +115 -0
  67. package/esm2022/lib/components/multiple-search-plus/multiple-search-plus.component.mjs +97 -0
  68. package/{esm2020 → esm2022}/lib/components/multiple-search-plus/shared/multiple-search-plus-option.model.mjs +1 -1
  69. package/{esm2020 → esm2022}/lib/components/multiple-search-plus/shared/multiple-search-plus-results.model.mjs +1 -1
  70. package/{esm2020 → esm2022}/lib/components/optional-disable-container/optional-disable-container.component.mjs +5 -5
  71. package/esm2022/lib/components/pagination/pagination.component.mjs +50 -0
  72. package/esm2022/lib/components/pagination/pagination.module.mjs +33 -0
  73. package/esm2022/lib/components/pagination/pipes/array-pages.pipe.mjs +28 -0
  74. package/esm2022/lib/components/pagination/pipes/custom-text.pipe.mjs +34 -0
  75. package/esm2022/lib/components/pagination/pipes/is-last-page.pipe.mjs +25 -0
  76. package/esm2022/lib/components/popin/popin.component.mjs +73 -0
  77. package/esm2022/lib/components/progress-bar/progress-bar.component.mjs +75 -0
  78. package/{esm2020 → esm2022}/lib/components/radio/option/option.component.mjs +5 -5
  79. package/{esm2020 → esm2022}/lib/components/radio/radio-group.directive.mjs +8 -8
  80. package/esm2022/lib/components/radio/radio.component.mjs +38 -0
  81. package/{esm2020 → esm2022}/lib/components/radio-legacy/radio-directive.mjs +5 -5
  82. package/{esm2020 → esm2022}/lib/components/radio-legacy/radio-group.directive.mjs +8 -8
  83. package/esm2022/lib/components/radio-legacy/radio.component.mjs +58 -0
  84. package/esm2022/lib/components/row/row.component.mjs +144 -0
  85. package/esm2022/lib/components/search/search.component.mjs +86 -0
  86. package/{esm2020 → esm2022}/lib/components/search/shared/search-option.model.mjs +1 -1
  87. package/{esm2020 → esm2022}/lib/components/select/option/option.component.mjs +5 -5
  88. package/esm2022/lib/components/select/option/select-option.directive.mjs +98 -0
  89. package/{esm2020 → esm2022}/lib/components/select/option-call-to-action/option-call-to-action.component.mjs +5 -5
  90. package/esm2022/lib/components/select/select/select.component.mjs +198 -0
  91. package/esm2022/lib/components/select/select/select.directive.mjs +175 -0
  92. package/esm2022/lib/components/select/select/value-change.service.mjs +190 -0
  93. package/{esm2020 → esm2022}/lib/components/select/select-search-trigger/select-search-trigger.component.mjs +5 -5
  94. package/esm2022/lib/components/select-in-text/select-in-text.component.mjs +103 -0
  95. package/esm2022/lib/components/selected-list/selected-list.component.mjs +62 -0
  96. package/{esm2020 → esm2022}/lib/components/selected-list/shared/selected-list-option.model.mjs +1 -1
  97. package/esm2022/lib/components/separator/separator.component.mjs +17 -0
  98. package/esm2022/lib/components/settings/settings.component.mjs +12 -0
  99. package/esm2022/lib/components/shared-components.module.mjs +443 -0
  100. package/esm2022/lib/components/snackbar/snackbar.component.mjs +85 -0
  101. package/esm2022/lib/components/state/state.component.mjs +16 -0
  102. package/esm2022/lib/components/summary/summary.component.mjs +41 -0
  103. package/esm2022/lib/components/switch/switch.component.mjs +89 -0
  104. package/esm2022/lib/components/table/directives/checkBoxRow.directive.mjs +92 -0
  105. package/esm2022/lib/components/table/directives/column.directive.mjs +42 -0
  106. package/esm2022/lib/components/table/directives/columnHeader.directive.mjs +199 -0
  107. package/{esm2020 → esm2022}/lib/components/table/directives/raw.directive.mjs +6 -6
  108. package/esm2022/lib/components/table/shared/filters-table.service.mjs +68 -0
  109. package/esm2022/lib/components/table/shared/table-checkbox-id.service.mjs +20 -0
  110. package/{esm2020 → esm2022}/lib/components/table/shared/table-filters-group.model.mjs +1 -1
  111. package/{esm2020 → esm2022}/lib/components/table/shared/table-filters.model.mjs +1 -1
  112. package/esm2022/lib/components/table/table.component.mjs +146 -0
  113. package/{esm2020 → esm2022}/lib/components/table/table.module.mjs +15 -15
  114. package/{esm2020 → esm2022}/lib/components/tabs/tab/tab.component.mjs +5 -5
  115. package/{esm2020 → esm2022}/lib/components/tabs/tab-body/tab-body.component.mjs +4 -4
  116. package/{esm2020 → esm2022}/lib/components/tabs/tab-body/tab-body.directive.mjs +6 -6
  117. package/esm2022/lib/components/tabs/tabs.component.mjs +99 -0
  118. package/{esm2020 → esm2022}/lib/components/tag/tag.component.mjs +5 -5
  119. package/{esm2020 → esm2022}/lib/components/tag-dropdown/tag-dropdown.component.mjs +5 -5
  120. package/{esm2020 → esm2022}/lib/components/tag-label/tag-label.component.mjs +5 -5
  121. package/{esm2020 → esm2022}/lib/components/text/text.component.mjs +5 -5
  122. package/esm2022/lib/components/text-area/text-area.component.mjs +99 -0
  123. package/{esm2020 → esm2022}/lib/components/token-check/token-check.component.mjs +5 -5
  124. package/esm2022/lib/components/tooltip/tooltip.component.mjs +30 -0
  125. package/{esm2020 → esm2022}/lib/components/tooltip/tooltip.module.mjs +7 -7
  126. package/{esm2020 → esm2022}/lib/components/tree/tree.component.mjs +5 -5
  127. package/{esm2020 → esm2022}/lib/components/tree/tree.module.mjs +9 -9
  128. package/esm2022/lib/components/upload/upload.component.mjs +36 -0
  129. package/esm2022/lib/components/wrapper/wrapper.component.mjs +18 -0
  130. package/esm2022/lib/components/wrapper-blocs/wrapper-blocs.component.mjs +19 -0
  131. package/{esm2020 → esm2022}/lib/components/wrapper-multiple-block/wrapper-multiple-block.component.mjs +5 -5
  132. package/{esm2020 → esm2022}/lib/components/wrapper-sidebar/wrapper-sidebar.component.mjs +5 -5
  133. package/{esm2020 → esm2022}/lib/directives/abstract-debounce/abstract-debounce.directive.mjs +5 -5
  134. package/{esm2020 → esm2022}/lib/directives/abstract-debounce/debounce-keyup.directive.mjs +5 -5
  135. package/esm2022/lib/directives/auto-hide/auto-hide.directive.mjs +50 -0
  136. package/{esm2020 → esm2022}/lib/directives/copy-to-clipboard/copy-to-clipboard.directive.mjs +5 -5
  137. package/esm2022/lib/directives/keyboard-events/keypress-enter.directive.mjs +25 -0
  138. package/esm2022/lib/directives/keyboard-events/only-numbers.directive.mjs +45 -0
  139. package/esm2022/lib/directives/keyboard-events/two-digital-decimal-number.directive.mjs +36 -0
  140. package/esm2022/lib/directives/ng-var.directive.mjs +32 -0
  141. package/{esm2020 → esm2022}/lib/directives/scroll-to/scroll-to.directive.mjs +4 -4
  142. package/{esm2020 → esm2022}/lib/directives/shared-directives.module.mjs +27 -27
  143. package/{esm2020 → esm2022}/lib/directives/watch-dom-tree/watch-dom-tree.directive.mjs +5 -5
  144. package/esm2022/lib/directives/zindex-toggle/zindex-toggle.directive.mjs +44 -0
  145. package/{esm2020 → esm2022}/lib/pipes/call-component-function.pipe.mjs +4 -4
  146. package/esm2022/lib/pipes/find-option-selected-field.pipe.mjs +29 -0
  147. package/{esm2020 → esm2022}/lib/pipes/select/filter-options.pipe.mjs +4 -4
  148. package/{esm2020 → esm2022}/lib/pipes/select/select-filters.pipe.mjs +4 -4
  149. package/{esm2020 → esm2022}/lib/pipes/selected-list/are-all-options-selected.pipe.mjs +4 -4
  150. package/{esm2020 → esm2022}/lib/pipes/shared-pipes.module.mjs +13 -13
  151. package/esm2022/lib/pipes/tree/format-object-to-recursif-tree.pipe.mjs +41 -0
  152. package/esm2022/lib/pipes/tree/format-object-to-simple-tree.pipe.mjs +49 -0
  153. package/esm2022/lib/services/dom.service.mjs +59 -0
  154. package/esm2022/lib/services/history.service.mjs +53 -0
  155. package/esm2022/lib/services/multiple-selection.service.mjs +62 -0
  156. package/esm2022/lib/utils/html-container.class.mjs +30 -0
  157. package/{esm2020 → esm2022}/lib/utils/slection-item.interface.mjs +1 -1
  158. package/esm2022/lib/utils/uuid.mjs +8 -0
  159. package/esm2022/lib/wizi-components.module.mjs +34 -0
  160. package/{fesm2020 → fesm2022}/wizishop-angular-components.mjs +900 -903
  161. package/fesm2022/wizishop-angular-components.mjs.map +1 -0
  162. package/lib/components/ai-express/ai-express.component.d.ts +1 -1
  163. package/lib/components/alert/alert.component.d.ts +1 -1
  164. package/lib/components/block/block-title-legacy/block-title-legacy.component.d.ts +1 -1
  165. package/lib/components/block/block.component.d.ts +1 -1
  166. package/lib/components/block-with-checkbox/block-with-checkbox.component.d.ts +1 -1
  167. package/lib/components/breadcrumbs/breadcrumbs.component.d.ts +1 -1
  168. package/lib/components/button/button.component.d.ts +1 -1
  169. package/lib/components/calendar/calendar.component.d.ts +1 -1
  170. package/lib/components/card-price/card-price.component.d.ts +1 -1
  171. package/lib/components/charging-bar/charging-bar.component.d.ts +1 -1
  172. package/lib/components/checkbox/checkbox.component.d.ts +1 -1
  173. package/lib/components/confirm-delete/confirm-delete.component.d.ts +1 -1
  174. package/lib/components/content-with-buttons/content-with-buttons.component.d.ts +1 -1
  175. package/lib/components/draganddrop-list/draganddrop-list.component.d.ts +1 -1
  176. package/lib/components/dropdown/dropdown.component.d.ts +1 -1
  177. package/lib/components/edit-in-place/edit-in-place.component.d.ts +1 -1
  178. package/lib/components/expanded-panel/expanded-panel.component.d.ts +1 -1
  179. package/lib/components/expansion/accordion/accordion.component.d.ts +1 -1
  180. package/lib/components/expansion/expansion-panel/expansion-panel.directive.d.ts +1 -1
  181. package/lib/components/expansion/expansion-panel-header/expansion-panel-header.directive.d.ts +1 -1
  182. package/lib/components/filters/filters.component.d.ts +1 -1
  183. package/lib/components/free-popin/free-popin.component.d.ts +1 -1
  184. package/lib/components/google-preview/google-preview.component.d.ts +1 -1
  185. package/lib/components/header-page/header-page.component.d.ts +1 -1
  186. package/lib/components/hn/h1/h1.component.d.ts +1 -1
  187. package/lib/components/hn/h3/h3.component.d.ts +1 -1
  188. package/lib/components/hn/h4/h4.component.d.ts +1 -1
  189. package/lib/components/image/image.component.d.ts +1 -1
  190. package/lib/components/inputs/input/input.component.d.ts +1 -1
  191. package/lib/components/inputs/input-search/input-search.component.d.ts +1 -1
  192. package/lib/components/link/link.component.d.ts +1 -1
  193. package/lib/components/loader/loader.component.d.ts +1 -1
  194. package/lib/components/logo/logo.component.d.ts +1 -1
  195. package/lib/components/mosaic/mosaic.component.d.ts +3 -3
  196. package/lib/components/multiple-search/multiple-search.component.d.ts +1 -1
  197. package/lib/components/multiple-search-plus/multiple-search-plus.component.d.ts +1 -2
  198. package/lib/components/optional-disable-container/optional-disable-container.component.d.ts +1 -1
  199. package/lib/components/pagination/pagination.component.d.ts +1 -1
  200. package/lib/components/popin/popin.component.d.ts +1 -1
  201. package/lib/components/progress-bar/progress-bar.component.d.ts +1 -1
  202. package/lib/components/radio-legacy/radio.component.d.ts +1 -1
  203. package/lib/components/row/row.component.d.ts +1 -1
  204. package/lib/components/search/search.component.d.ts +1 -1
  205. package/lib/components/select/option/select-option.directive.d.ts +1 -1
  206. package/lib/components/select/select/select.component.d.ts +1 -1
  207. package/lib/components/select/select/select.directive.d.ts +1 -1
  208. package/lib/components/select/select-search-trigger/select-search-trigger.component.d.ts +1 -1
  209. package/lib/components/select-in-text/select-in-text.component.d.ts +1 -1
  210. package/lib/components/selected-list/selected-list.component.d.ts +1 -1
  211. package/lib/components/separator/separator.component.d.ts +1 -1
  212. package/lib/components/shared-components.module.d.ts +34 -35
  213. package/lib/components/snackbar/snackbar.component.d.ts +1 -1
  214. package/lib/components/state/state.component.d.ts +1 -1
  215. package/lib/components/summary/summary.component.d.ts +1 -1
  216. package/lib/components/switch/switch.component.d.ts +1 -1
  217. package/lib/components/table/directives/checkBoxRow.directive.d.ts +1 -1
  218. package/lib/components/table/directives/column.directive.d.ts +1 -1
  219. package/lib/components/table/directives/columnHeader.directive.d.ts +1 -1
  220. package/lib/components/table/table.component.d.ts +1 -1
  221. package/lib/components/tabs/tab/tab.component.d.ts +1 -1
  222. package/lib/components/tabs/tab-body/tab-body.component.d.ts +1 -1
  223. package/lib/components/tabs/tabs.component.d.ts +1 -1
  224. package/lib/components/tag/tag.component.d.ts +1 -1
  225. package/lib/components/tag-dropdown/tag-dropdown.component.d.ts +1 -1
  226. package/lib/components/tag-label/tag-label.component.d.ts +1 -1
  227. package/lib/components/text/text.component.d.ts +1 -1
  228. package/lib/components/text-area/text-area.component.d.ts +1 -1
  229. package/lib/components/token-check/token-check.component.d.ts +1 -1
  230. package/lib/components/tooltip/tooltip.component.d.ts +1 -1
  231. package/lib/components/tree/tree.component.d.ts +1 -1
  232. package/lib/components/upload/upload.component.d.ts +1 -1
  233. package/lib/components/wrapper/wrapper.component.d.ts +1 -1
  234. package/lib/components/wrapper-blocs/wrapper-blocs.component.d.ts +1 -1
  235. package/lib/components/wrapper-sidebar/wrapper-sidebar.component.d.ts +1 -1
  236. package/lib/directives/abstract-debounce/abstract-debounce.directive.d.ts +1 -1
  237. package/lib/directives/auto-hide/auto-hide.directive.d.ts +1 -1
  238. package/lib/directives/keyboard-events/only-numbers.directive.d.ts +1 -1
  239. package/lib/directives/keyboard-events/two-digital-decimal-number.directive.d.ts +1 -1
  240. package/lib/directives/ng-var.directive.d.ts +1 -1
  241. package/lib/directives/scroll-to/scroll-to.directive.d.ts +1 -1
  242. package/lib/directives/zindex-toggle/zindex-toggle.directive.d.ts +1 -1
  243. package/package.json +31 -35
  244. package/esm2020/lib/components/alert-popup/alert-popup-module.mjs +0 -21
  245. package/esm2020/lib/components/alert-popup/alert-popup.component.mjs +0 -41
  246. package/esm2020/lib/components/back/back.component.mjs +0 -12
  247. package/esm2020/lib/components/block/block.component.mjs +0 -124
  248. package/esm2020/lib/components/block-with-checkbox/block-with-checkbox.component.mjs +0 -46
  249. package/esm2020/lib/components/button/button.component.mjs +0 -200
  250. package/esm2020/lib/components/calendar/calendar.component.mjs +0 -237
  251. package/esm2020/lib/components/confirm-delete/confirm-delete.component.mjs +0 -64
  252. package/esm2020/lib/components/delete/delete.component.mjs +0 -12
  253. package/esm2020/lib/components/draganddrop-list/draganddrop-list.component.mjs +0 -61
  254. package/esm2020/lib/components/dropdown/dropdown.component.mjs +0 -26
  255. package/esm2020/lib/components/edit-in-place/edit-in-place.component.mjs +0 -202
  256. package/esm2020/lib/components/expansion/accordion/accordion.component.mjs +0 -74
  257. package/esm2020/lib/components/expansion/expansion-panel/expansion-panel.directive.mjs +0 -88
  258. package/esm2020/lib/components/expansion/expansion-panel-header/expansion-panel-header.directive.mjs +0 -49
  259. package/esm2020/lib/components/filters/filters.component.mjs +0 -41
  260. package/esm2020/lib/components/free-popin/free-popin.component.mjs +0 -66
  261. package/esm2020/lib/components/header-page/header-page.component.mjs +0 -42
  262. package/esm2020/lib/components/hn/h2/h2.component.mjs +0 -13
  263. package/esm2020/lib/components/hn/h3/h3.component.mjs +0 -18
  264. package/esm2020/lib/components/hn/h4/h4.component.mjs +0 -18
  265. package/esm2020/lib/components/image/image.component.mjs +0 -17
  266. package/esm2020/lib/components/info/info.component.mjs +0 -12
  267. package/esm2020/lib/components/inputs/input/input.component.mjs +0 -184
  268. package/esm2020/lib/components/inputs/input-search/input-search.component.mjs +0 -65
  269. package/esm2020/lib/components/link/link.component.mjs +0 -57
  270. package/esm2020/lib/components/logo/logo.component.mjs +0 -20
  271. package/esm2020/lib/components/mosaic/mosaic.component.mjs +0 -84
  272. package/esm2020/lib/components/multiple-search/multiple-search.component.mjs +0 -115
  273. package/esm2020/lib/components/multiple-search-plus/multiple-search-plus.component.mjs +0 -100
  274. package/esm2020/lib/components/pagination/pagination.component.mjs +0 -50
  275. package/esm2020/lib/components/pagination/pagination.module.mjs +0 -33
  276. package/esm2020/lib/components/pagination/pipes/array-pages.pipe.mjs +0 -28
  277. package/esm2020/lib/components/pagination/pipes/custom-text.pipe.mjs +0 -34
  278. package/esm2020/lib/components/pagination/pipes/is-last-page.pipe.mjs +0 -25
  279. package/esm2020/lib/components/popin/popin.component.mjs +0 -73
  280. package/esm2020/lib/components/progress-bar/progress-bar.component.mjs +0 -75
  281. package/esm2020/lib/components/radio/radio.component.mjs +0 -38
  282. package/esm2020/lib/components/radio-legacy/radio.component.mjs +0 -58
  283. package/esm2020/lib/components/row/row.component.mjs +0 -144
  284. package/esm2020/lib/components/search/search.component.mjs +0 -86
  285. package/esm2020/lib/components/select/option/select-option.directive.mjs +0 -98
  286. package/esm2020/lib/components/select/select/select.component.mjs +0 -198
  287. package/esm2020/lib/components/select/select/select.directive.mjs +0 -175
  288. package/esm2020/lib/components/select/select/value-change.service.mjs +0 -190
  289. package/esm2020/lib/components/select-in-text/select-in-text.component.mjs +0 -103
  290. package/esm2020/lib/components/selected-list/selected-list.component.mjs +0 -62
  291. package/esm2020/lib/components/separator/separator.component.mjs +0 -17
  292. package/esm2020/lib/components/settings/settings.component.mjs +0 -12
  293. package/esm2020/lib/components/shared-components.module.mjs +0 -438
  294. package/esm2020/lib/components/snackbar/snackbar.component.mjs +0 -85
  295. package/esm2020/lib/components/state/state.component.mjs +0 -16
  296. package/esm2020/lib/components/summary/summary.component.mjs +0 -41
  297. package/esm2020/lib/components/switch/switch.component.mjs +0 -89
  298. package/esm2020/lib/components/table/directives/checkBoxRow.directive.mjs +0 -92
  299. package/esm2020/lib/components/table/directives/column.directive.mjs +0 -42
  300. package/esm2020/lib/components/table/directives/columnHeader.directive.mjs +0 -199
  301. package/esm2020/lib/components/table/shared/filters-table.service.mjs +0 -68
  302. package/esm2020/lib/components/table/shared/table-checkbox-id.service.mjs +0 -20
  303. package/esm2020/lib/components/table/table.component.mjs +0 -146
  304. package/esm2020/lib/components/tabs/tabs.component.mjs +0 -99
  305. package/esm2020/lib/components/text-area/text-area.component.mjs +0 -99
  306. package/esm2020/lib/components/tooltip/tooltip.component.mjs +0 -30
  307. package/esm2020/lib/components/upload/upload.component.mjs +0 -36
  308. package/esm2020/lib/components/wrapper/wrapper.component.mjs +0 -18
  309. package/esm2020/lib/components/wrapper-blocs/wrapper-blocs.component.mjs +0 -19
  310. package/esm2020/lib/directives/auto-hide/auto-hide.directive.mjs +0 -50
  311. package/esm2020/lib/directives/keyboard-events/keypress-enter.directive.mjs +0 -25
  312. package/esm2020/lib/directives/keyboard-events/only-numbers.directive.mjs +0 -45
  313. package/esm2020/lib/directives/keyboard-events/two-digital-decimal-number.directive.mjs +0 -36
  314. package/esm2020/lib/directives/ng-var.directive.mjs +0 -32
  315. package/esm2020/lib/directives/zindex-toggle/zindex-toggle.directive.mjs +0 -44
  316. package/esm2020/lib/pipes/find-option-selected-field.pipe.mjs +0 -29
  317. package/esm2020/lib/pipes/tree/format-object-to-recursif-tree.pipe.mjs +0 -41
  318. package/esm2020/lib/pipes/tree/format-object-to-simple-tree.pipe.mjs +0 -49
  319. package/esm2020/lib/services/dom.service.mjs +0 -59
  320. package/esm2020/lib/services/history.service.mjs +0 -53
  321. package/esm2020/lib/services/multiple-selection.service.mjs +0 -62
  322. package/esm2020/lib/utils/html-container.class.mjs +0 -30
  323. package/esm2020/lib/utils/uuid.mjs +0 -8
  324. package/esm2020/lib/wizi-components.module.mjs +0 -34
  325. package/fesm2015/wizishop-angular-components.mjs +0 -7029
  326. package/fesm2015/wizishop-angular-components.mjs.map +0 -1
  327. package/fesm2020/wizishop-angular-components.mjs.map +0 -1
  328. package/wizishop-angular-components-15.1.114.tgz +0 -0
  329. /package/{esm2020 → esm2022}/lib/animations/show/opacity.animation.mjs +0 -0
  330. /package/{esm2020 → esm2022}/lib/components/breadcrumbs/breadcrumbs.dto.mjs +0 -0
  331. /package/{esm2020 → esm2022}/lib/components/expansion/accordion/accordion-item.interface.mjs +0 -0
  332. /package/{esm2020 → esm2022}/lib/components/expansion/accordion/accordion-item.token.mjs +0 -0
  333. /package/{esm2020 → esm2022}/lib/components/expansion/expansion-panel-header/expansion-panel-header.interface.mjs +0 -0
  334. /package/{esm2020 → esm2022}/lib/components/expansion/expansion-panel-header/expansion-panel-header.token.mjs +0 -0
  335. /package/{esm2020 → esm2022}/lib/components/inputs/input-with-select/option-item.dto.mjs +0 -0
  336. /package/{esm2020 → esm2022}/lib/components/select/call-to-action.model.mjs +0 -0
  337. /package/{esm2020 → esm2022}/lib/components/select/option/option-selection-handler.interface.mjs +0 -0
  338. /package/{esm2020 → esm2022}/lib/components/select/option/option-selection-handler.token.mjs +0 -0
  339. /package/{esm2020 → esm2022}/lib/components/select/select-items.dto.mjs +0 -0
  340. /package/{esm2020 → esm2022}/lib/components/table/shared/distinct-until-table-filters-changed.mjs +0 -0
  341. /package/{esm2020 → esm2022}/lib/components/tree/tree.dto.mjs +0 -0
  342. /package/{esm2020 → esm2022}/lib/utils/array.mjs +0 -0
  343. /package/{esm2020 → esm2022}/public-api.mjs +0 -0
  344. /package/{esm2020 → esm2022}/wizishop-angular-components.mjs +0 -0
@@ -1,199 +0,0 @@
1
- import { DOCUMENT } from '@angular/common';
2
- import { EventEmitter, Inject, Output } from '@angular/core';
3
- import { Directive, Input } from '@angular/core';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../shared/filters-table.service";
6
- export class TableColumnHeader {
7
- set headerName(value) {
8
- this._headerName = value;
9
- this.setHeaderName();
10
- }
11
- get headerName() {
12
- return this._headerName;
13
- }
14
- constructor(currentCell, renderer, document, filtersTableService) {
15
- this.currentCell = currentCell;
16
- this.renderer = renderer;
17
- this.document = document;
18
- this.filtersTableService = filtersTableService;
19
- this._headerName = '';
20
- this.filterRouting = false; // Optional. Set to true to use Filter Routing.
21
- this.onSortChange = new EventEmitter(); // Emit the sort value (true, false, undefuned) of the current sort icon when clicking
22
- this.tableFiltersChange = new EventEmitter();
23
- this.centerCellValue = ['left', 'center', 'right'];
24
- this.subscriptions = [];
25
- }
26
- ngOnInit() {
27
- if (this.tableName && this.sortName) {
28
- if (this.filterRouting) {
29
- this.handleSortRouting();
30
- }
31
- else {
32
- this.handleSortBasic();
33
- }
34
- }
35
- }
36
- ngAfterViewInit() {
37
- this.applyCustomStylesOnCell();
38
- this.renderHeaderColumn();
39
- }
40
- handleSortRouting() {
41
- this.filterGroup = this.filtersTableService.getTableFilterGroup(this.tableName);
42
- const filterGroupChangeSub = this.filterGroup.valuesChange$.subscribe((filters) => {
43
- if (!filters || !filters.length) {
44
- return;
45
- }
46
- const filterSort = filters.filter(filter => filter.key === 'sort')[0];
47
- if (this.sortName !== filterSort.value) {
48
- this.resetSortIcon();
49
- }
50
- });
51
- this.subscriptions.push(filterGroupChangeSub);
52
- }
53
- handleSortBasic() {
54
- const sortChangeSub = this.filtersTableService.getSortChangeListner().subscribe(sort => {
55
- if (this.tableName === sort.dataTableName && this.sortName !== sort.sortName) {
56
- // Reset the current sort icon
57
- this.resetSortIcon();
58
- }
59
- });
60
- this.subscriptions.push(sortChangeSub);
61
- }
62
- resetSortIcon() {
63
- // Replace current icon with default icon
64
- this.contentHeader.className = this.contentHeader.className.replace(this.getCurrentSortIcon(), 'idle');
65
- }
66
- applyCustomStylesOnCell() {
67
- this.currentCell.nativeElement.style.flexGrow = typeof this.columnSize !== 'undefined' ? this.columnSize : '1';
68
- this.renderer.addClass(this.currentCell.nativeElement, 'wac-table__head__cell');
69
- if (this.centerCell) {
70
- if (this.centerCellValue.indexOf(this.centerCell) === -1) {
71
- throw 'Error : The centerCell directive has no matched value. The value must be one of the following : left, center, right.';
72
- }
73
- let className = 'wac-table__head__cell--center' + '--' + this.centerCell;
74
- this.renderer.addClass(this.currentCell.nativeElement, className);
75
- }
76
- }
77
- renderHeaderColumn() {
78
- this.createHeaderContent();
79
- this.renderer.appendChild(this.currentCell.nativeElement, this.contentHeader);
80
- }
81
- createHeaderContent() {
82
- this.contentHeader = document.createElement('a');
83
- this.contentHeader.className = 'wac-table__head__cell__search';
84
- this.setHeaderName();
85
- if (this.tableName && this.sortName) {
86
- this.handleSort();
87
- }
88
- }
89
- setHeaderName() {
90
- if (!this.contentHeader) {
91
- return;
92
- }
93
- this.contentHeader.innerHTML = this.headerName;
94
- }
95
- handleSort() {
96
- // Set icon in the header column cell
97
- this.contentHeader.className += ' wac-table__head__cell__search--' + this.getInitialSortIcon();
98
- // On click on the content header, change the icon and emit event
99
- this.renderer.listen(this.contentHeader, 'click', () => {
100
- const currentIcon = this.getCurrentSortIcon();
101
- let newIcon;
102
- let newSort, newOrder;
103
- switch (currentIcon) {
104
- case 'idle':
105
- newIcon = 'up';
106
- newSort = this.sortName;
107
- newOrder = true;
108
- break;
109
- case 'up':
110
- newIcon = 'down';
111
- newSort = this.sortName;
112
- newOrder = false;
113
- break;
114
- case 'down':
115
- newIcon = 'idle';
116
- break;
117
- default:
118
- newIcon = 'idle';
119
- break;
120
- }
121
- // Replace the icon
122
- this.contentHeader.className = this.contentHeader.className.replace(currentIcon, newIcon);
123
- this.emitEvents(newSort, newOrder);
124
- });
125
- }
126
- getInitialSortIcon() {
127
- if (!this.filterRouting) {
128
- return 'idle';
129
- }
130
- // Get Initial Sort Icon for Routing Filter
131
- let initialSortIcon = 'idle';
132
- if (this.filterGroup.get('sort') === this.sortName) {
133
- initialSortIcon = this.filterGroup.get('order') == 'true' ? 'up' : 'down';
134
- }
135
- return initialSortIcon;
136
- }
137
- getCurrentSortIcon() {
138
- const regexp = /wac-table__head__cell__search--(?<icon>\w+)/;
139
- const { groups } = regexp.exec(this.contentHeader.className);
140
- return groups.icon;
141
- }
142
- emitEvents(newSort, newOrder) {
143
- if (this.filterRouting) {
144
- // Will send the filter routing value has changes event
145
- this.filterGroup.setValues({
146
- sort: newSort,
147
- order: newOrder,
148
- currentPage: 1
149
- });
150
- }
151
- else {
152
- // Send the event sort change
153
- this.filtersTableService.emitSortChange(this.tableName, this.sortName, newOrder);
154
- }
155
- if (this.tableFilters) {
156
- this.tableFilters.sort = this.sortName;
157
- this.tableFilters.order = newOrder;
158
- this.tableFilters.currentPage = 1;
159
- this.tableFiltersChange.emit(this.tableFilters);
160
- }
161
- this.onSortChange.emit(newOrder);
162
- }
163
- ngOnDestroy() {
164
- this.subscriptions.forEach(subscription => {
165
- subscription.unsubscribe();
166
- });
167
- }
168
- }
169
- TableColumnHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: TableColumnHeader, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: DOCUMENT }, { token: i1.FiltersTableService }], target: i0.ɵɵFactoryTarget.Directive });
170
- TableColumnHeader.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.5", type: TableColumnHeader, selector: "[headerCell]", inputs: { headerName: "headerName", columnSize: "columnSize", filterRouting: "filterRouting", tableName: "tableName", sortName: "sortName", centerCell: "centerCell", tableFilters: "tableFilters" }, outputs: { onSortChange: "onSortChange", tableFiltersChange: "tableFiltersChange" }, ngImport: i0 });
171
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: TableColumnHeader, decorators: [{
172
- type: Directive,
173
- args: [{
174
- // The selector has the same name as the headerCell selector in table.component.html
175
- selector: '[headerCell]'
176
- }]
177
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
178
- type: Inject,
179
- args: [DOCUMENT]
180
- }] }, { type: i1.FiltersTableService }]; }, propDecorators: { headerName: [{
181
- type: Input
182
- }], columnSize: [{
183
- type: Input
184
- }], filterRouting: [{
185
- type: Input
186
- }], tableName: [{
187
- type: Input
188
- }], sortName: [{
189
- type: Input
190
- }], centerCell: [{
191
- type: Input
192
- }], onSortChange: [{
193
- type: Output
194
- }], tableFilters: [{
195
- type: Input
196
- }], tableFiltersChange: [{
197
- type: Output
198
- }] } });
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uSGVhZGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvZGlyZWN0aXZlcy9jb2x1bW5IZWFkZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVU3RCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLElBQ0ksVUFBVSxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQWlCRCxZQUNVLFdBQXVCLEVBQ3ZCLFFBQW1CLEVBQ0QsUUFBUSxFQUMxQixtQkFBd0M7UUFIeEMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNELGFBQVEsR0FBUixRQUFRLENBQUE7UUFDMUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQXhCbEQsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFLaEIsa0JBQWEsR0FBWSxLQUFLLENBQUMsQ0FBQywrQ0FBK0M7UUFJOUUsaUJBQVksR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQyxDQUFDLHNGQUFzRjtRQUVoSix1QkFBa0IsR0FBK0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV0RSxvQkFBZSxHQUFhLENBQUMsTUFBTSxF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OzhHQWxNVSxpQkFBaUIscUVBNkJsQixRQUFRO2tHQTdCUCxpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFKN0IsU0FBUzttQkFBQztvQkFDVCxvRkFBb0Y7b0JBQ3BGLFFBQVEsRUFBRSxjQUFjO2lCQUN6Qjs7MEJBOEJJLE1BQU07MkJBQUMsUUFBUTs4RUEzQmQsVUFBVTtzQkFEYixLQUFLO2dCQVNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNFLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE53YkZpbHRlciwgTndiRmlsdGVyR3JvdXAgfSBmcm9tICdAd2l6aXNob3Avbmctd2l6aS1idWxtYSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBGaWx0ZXJzVGFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2ZpbHRlcnMtdGFibGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFRhYmxlRmlsdGVycyB9IGZyb20gJy4uL3NoYXJlZC90YWJsZS1maWx0ZXJzLm1vZGVsJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIC8vIFRoZSBzZWxlY3RvciBoYXMgdGhlIHNhbWUgbmFtZSBhcyB0aGUgaGVhZGVyQ2VsbCBzZWxlY3RvciBpbiB0YWJsZS5jb21wb25lbnQuaHRtbFxyXG4gIHNlbGVjdG9yOiAnW2hlYWRlckNlbGxdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5IZWFkZXIge1xyXG4gIEBJbnB1dCgpIC8vIE9wdGlvbmFsLlxyXG4gIHNldCBoZWFkZXJOYW1lKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2hlYWRlck5hbWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc2V0SGVhZGVyTmFtZSgpO1xyXG4gIH1cclxuICBfaGVhZGVyTmFtZTogc3RyaW5nID0gJyc7XHJcbiAgZ2V0IGhlYWRlck5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9oZWFkZXJOYW1lO1xyXG4gIH1cclxuICBASW5wdXQoKSBjb2x1bW5TaXplOiBzdHJpbmc7IC8vIE9wdGlvbmFsLlxyXG4gIEBJbnB1dCgpIGZpbHRlclJvdXRpbmc6IGJvb2xlYW4gPSBmYWxzZTsgLy8gT3B0aW9uYWwuIFNldCB0byB0cnVlIHRvIHVzZSBGaWx0ZXIgUm91dGluZy5cclxuICBASW5wdXQoKSB0YWJsZU5hbWU6IHN0cmluZzsgLy8gT3B0aW9uYWwsIGJ1dCBtYW5kYXRvcnkgdG8gaGFuZGxlIHNvcnRpbmdcclxuICBASW5wdXQoKSBzb3J0TmFtZTogc3RyaW5nOyAvLyBPcHRpb25hbCwgYnV0IG1hbmRhdG9yeSB0byBoYW5kbGUgc29ydGluZ1xyXG4gIEBJbnB1dCgpIGNlbnRlckNlbGw6ICdsZWZ0J3wnY2VudGVyJ3wncmlnaHQnOyAvLyBPcHRpb25hbC4gbGVmdHxjZW50ZXJ8cmlnaHRcclxuICBAT3V0cHV0KCkgb25Tb3J0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7IC8vIEVtaXQgdGhlIHNvcnQgdmFsdWUgKHRydWUsIGZhbHNlLCB1bmRlZnVuZWQpIG9mIHRoZSBjdXJyZW50IHNvcnQgaWNvbiB3aGVuIGNsaWNraW5nXHJcbiAgQElucHV0KCkgdGFibGVGaWx0ZXJzOiBUYWJsZUZpbHRlcnM7XHJcbiAgQE91dHB1dCgpIHRhYmxlRmlsdGVyc0NoYW5nZTogRXZlbnRFbWl0dGVyPFRhYmxlRmlsdGVycz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHByaXZhdGUgY2VudGVyQ2VsbFZhbHVlOiBzdHJpbmdbXSA9IFsnbGVmdCcsICdjZW50ZXInLCAncmlnaHQnXTtcclxuXHJcbiAgcHJpdmF0ZSBjb250ZW50SGVhZGVyOiBIVE1MQW5jaG9yRWxlbWVudDtcclxuICBwcml2YXRlIGZpbHRlckdyb3VwOiBOd2JGaWx0ZXJHcm91cDtcclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY3VycmVudENlbGw6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50LFxyXG4gICAgcHJpdmF0ZSBmaWx0ZXJzVGFibGVTZXJ2aWNlOiBGaWx0ZXJzVGFibGVTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLnRhYmxlTmFtZSAmJiB0aGlzLnNvcnROYW1lKSB7XHJcbiAgICAgIGlmICh0aGlzLmZpbHRlclJvdXRpbmcpIHtcclxuICAgICAgICB0aGlzLmhhbmRsZVNvcnRSb3V0aW5nKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVTb3J0QmFzaWMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5hcHBseUN1c3RvbVN0eWxlc09uQ2VsbCgpO1xyXG4gICAgdGhpcy5yZW5kZXJIZWFkZXJDb2x1bW4oKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVNvcnRSb3V0aW5nKCkge1xyXG4gICAgdGhpcy5maWx0ZXJHcm91cCA9IHRoaXMuZmlsdGVyc1RhYmxlU2VydmljZS5nZXRUYWJsZUZpbHRlckdyb3VwKHRoaXMudGFibGVOYW1lKTtcclxuXHJcbiAgICBjb25zdCBmaWx0ZXJHcm91cENoYW5nZVN1YiA9IHRoaXMuZmlsdGVyR3JvdXAudmFsdWVzQ2hhbmdlJC5zdWJzY3JpYmUoKGZpbHRlcnM6TndiRmlsdGVyW10pID0+IHtcclxuICAgICAgaWYgKCFmaWx0ZXJzIHx8ICFmaWx0ZXJzLmxlbmd0aCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBmaWx0ZXJTb3J0ID0gZmlsdGVycy5maWx0ZXIoZmlsdGVyID0+IGZpbHRlci5rZXkgPT09ICdzb3J0JylbMF07XHJcbiAgICAgIGlmICh0aGlzLnNvcnROYW1lICE9PSBmaWx0ZXJTb3J0LnZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5yZXNldFNvcnRJY29uKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goZmlsdGVyR3JvdXBDaGFuZ2VTdWIpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlU29ydEJhc2ljKCkge1xyXG4gICAgY29uc3Qgc29ydENoYW5nZVN1YiA9IHRoaXMuZmlsdGVyc1RhYmxlU2VydmljZS5nZXRTb3J0Q2hhbmdlTGlzdG5lcigpLnN1YnNjcmliZShzb3J0ID0+IHtcclxuICAgICAgaWYgKHRoaXMudGFibGVOYW1lID09PSBzb3J0LmRhdGFUYWJsZU5hbWUgJiYgdGhpcy5zb3J0TmFtZSAhPT0gc29ydC5zb3J0TmFtZSkge1xyXG4gICAgICAgIC8vIFJlc2V0IHRoZSBjdXJyZW50IHNvcnQgaWNvblxyXG4gICAgICAgIHRoaXMucmVzZXRTb3J0SWNvbigpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHNvcnRDaGFuZ2VTdWIpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRTb3J0SWNvbigpIHtcclxuICAgIC8vIFJlcGxhY2UgY3VycmVudCBpY29uIHdpdGggZGVmYXVsdCBpY29uXHJcbiAgICB0aGlzLmNvbnRlbnRIZWFkZXIuY2xhc3NOYW1lID0gdGhpcy5jb250ZW50SGVhZGVyLmNsYXNzTmFtZS5yZXBsYWNlKHRoaXMuZ2V0Q3VycmVudFNvcnRJY29uKCksICdpZGxlJyk7XHJcbiAgfVxyXG5cclxuICBhcHBseUN1c3RvbVN0eWxlc09uQ2VsbCgpIHtcclxuICAgIHRoaXMuY3VycmVudENlbGwubmF0aXZlRWxlbWVudC5zdHlsZS5mbGV4R3JvdyA9IHR5cGVvZiB0aGlzLmNvbHVtblNpemUgIT09ICd1bmRlZmluZWQnID8gdGhpcy5jb2x1bW5TaXplIDogJzEnO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmN1cnJlbnRDZWxsLm5hdGl2ZUVsZW1lbnQsICd3YWMtdGFibGVfX2hlYWRfX2NlbGwnKTtcclxuXHJcbiAgICBpZiAodGhpcy5jZW50ZXJDZWxsKSB7XHJcbiAgICAgIGlmICh0aGlzLmNlbnRlckNlbGxWYWx1ZS5pbmRleE9mKHRoaXMuY2VudGVyQ2VsbCkgPT09IC0xKSB7XHJcbiAgICAgICAgdGhyb3cgJ0Vycm9yIDogVGhlIGNlbnRlckNlbGwgZGlyZWN0aXZlIGhhcyBubyBtYXRjaGVkIHZhbHVlLiBUaGUgdmFsdWUgbXVzdCBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZyA6IGxlZnQsIGNlbnRlciwgcmlnaHQuJztcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IGNsYXNzTmFtZSA9ICd3YWMtdGFibGVfX2hlYWRfX2NlbGwtLWNlbnRlcicgKyAnLS0nICsgdGhpcy5jZW50ZXJDZWxsO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuY3VycmVudENlbGwubmF0aXZlRWxlbWVudCwgY2xhc3NOYW1lKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbmRlckhlYWRlckNvbHVtbigpIHtcclxuICAgIHRoaXMuY3JlYXRlSGVhZGVyQ29udGVudCgpO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmN1cnJlbnRDZWxsLm5hdGl2ZUVsZW1lbnQsIHRoaXMuY29udGVudEhlYWRlcik7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVIZWFkZXJDb250ZW50KCkge1xyXG4gICAgdGhpcy5jb250ZW50SGVhZGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgdGhpcy5jb250ZW50SGVhZGVyLmNsYXNzTmFtZSA9ICd3YWMtdGFibGVfX2hlYWRfX2NlbGxfX3NlYXJjaCc7XHJcbiAgICB0aGlzLnNldEhlYWRlck5hbWUoKTtcclxuICAgIGlmICh0aGlzLnRhYmxlTmFtZSAmJiB0aGlzLnNvcnROYW1lKSB7XHJcbiAgICAgIHRoaXMuaGFuZGxlU29ydCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRIZWFkZXJOYW1lKCkge1xyXG4gICAgaWYgKCF0aGlzLmNvbnRlbnRIZWFkZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb250ZW50SGVhZGVyLmlubmVySFRNTCA9IHRoaXMuaGVhZGVyTmFtZTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVNvcnQoKSB7XHJcbiAgICAvLyBTZXQgaWNvbiBpbiB0aGUgaGVhZGVyIGNvbHVtbiBjZWxsXHJcbiAgICB0aGlzLmNvbnRlbnRIZWFkZXIuY2xhc3NOYW1lICs9ICcgd2FjLXRhYmxlX19oZWFkX19jZWxsX19zZWFyY2gtLScgKyB0aGlzLmdldEluaXRpYWxTb3J0SWNvbigpO1xyXG5cclxuICAgIC8vIE9uIGNsaWNrIG9uIHRoZSBjb250ZW50IGhlYWRlciwgY2hhbmdlIHRoZSBpY29uIGFuZCBlbWl0IGV2ZW50XHJcbiAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmNvbnRlbnRIZWFkZXIsICdjbGljaycsICgpID0+IHtcclxuICAgICAgY29uc3QgY3VycmVudEljb24gPSB0aGlzLmdldEN1cnJlbnRTb3J0SWNvbigpO1xyXG4gICAgICBsZXQgbmV3SWNvbjogc3RyaW5nO1xyXG4gICAgICBsZXQgbmV3U29ydDogc3RyaW5nLCBuZXdPcmRlcjogYm9vbGVhbjtcclxuXHJcbiAgICAgIHN3aXRjaCAoY3VycmVudEljb24pIHtcclxuICAgICAgICBjYXNlICdpZGxlJzpcclxuICAgICAgICAgIG5ld0ljb24gPSAndXAnO1xyXG4gICAgICAgICAgbmV3U29ydCA9IHRoaXMuc29ydE5hbWU7XHJcbiAgICAgICAgICBuZXdPcmRlciA9IHRydWU7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgY2FzZSAndXAnOlxyXG4gICAgICAgICAgbmV3SWNvbiA9ICdkb3duJztcclxuICAgICAgICAgIG5ld1NvcnQgPSB0aGlzLnNvcnROYW1lO1xyXG4gICAgICAgICAgbmV3T3JkZXIgPSBmYWxzZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlICdkb3duJzpcclxuICAgICAgICAgIG5ld0ljb24gPSAnaWRsZSc7XHJcbiAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIG5ld0ljb24gPSAnaWRsZSc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICAvLyBSZXBsYWNlIHRoZSBpY29uXHJcbiAgICAgIHRoaXMuY29udGVudEhlYWRlci5jbGFzc05hbWUgPSB0aGlzLmNvbnRlbnRIZWFkZXIuY2xhc3NOYW1lLnJlcGxhY2UoY3VycmVudEljb24sIG5ld0ljb24pO1xyXG5cclxuICAgICAgdGhpcy5lbWl0RXZlbnRzKG5ld1NvcnQsIG5ld09yZGVyKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW5pdGlhbFNvcnRJY29uKCkge1xyXG4gICAgaWYgKCF0aGlzLmZpbHRlclJvdXRpbmcpIHtcclxuICAgICAgcmV0dXJuICdpZGxlJztcclxuICAgIH1cclxuICAgIC8vIEdldCBJbml0aWFsIFNvcnQgSWNvbiBmb3IgUm91dGluZyBGaWx0ZXJcclxuICAgIGxldCBpbml0aWFsU29ydEljb24gPSAnaWRsZSc7XHJcbiAgICBpZiAodGhpcy5maWx0ZXJHcm91cC5nZXQoJ3NvcnQnKSA9PT0gdGhpcy5zb3J0TmFtZSkge1xyXG4gICAgICBpbml0aWFsU29ydEljb24gPSB0aGlzLmZpbHRlckdyb3VwLmdldCgnb3JkZXInKSA9PSAndHJ1ZScgPyAndXAnIDogJ2Rvd24nO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGluaXRpYWxTb3J0SWNvbjtcclxuICB9XHJcblxyXG4gIGdldEN1cnJlbnRTb3J0SWNvbigpIHtcclxuICAgIGNvbnN0IHJlZ2V4cCA9IC93YWMtdGFibGVfX2hlYWRfX2NlbGxfX3NlYXJjaC0tKD88aWNvbj5cXHcrKS87XHJcbiAgICBjb25zdCB7IGdyb3VwcyB9ID0gcmVnZXhwLmV4ZWModGhpcy5jb250ZW50SGVhZGVyLmNsYXNzTmFtZSk7XHJcbiAgICByZXR1cm4gZ3JvdXBzLmljb247XHJcbiAgfVxyXG5cclxuICBlbWl0RXZlbnRzKG5ld1NvcnQsIG5ld09yZGVyKSB7XHJcbiAgICBpZiAodGhpcy5maWx0ZXJSb3V0aW5nKSB7XHJcbiAgICAgIC8vIFdpbGwgc2VuZCB0aGUgZmlsdGVyIHJvdXRpbmcgdmFsdWUgaGFzIGNoYW5nZXMgZXZlbnRcclxuICAgICAgdGhpcy5maWx0ZXJHcm91cC5zZXRWYWx1ZXMoe1xyXG4gICAgICAgIHNvcnQ6IG5ld1NvcnQsXHJcbiAgICAgICAgb3JkZXI6IG5ld09yZGVyLFxyXG4gICAgICAgIGN1cnJlbnRQYWdlOiAxXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gU2VuZCB0aGUgZXZlbnQgc29ydCBjaGFuZ2VcclxuICAgICAgdGhpcy5maWx0ZXJzVGFibGVTZXJ2aWNlLmVtaXRTb3J0Q2hhbmdlKHRoaXMudGFibGVOYW1lLCB0aGlzLnNvcnROYW1lLCBuZXdPcmRlcik7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50YWJsZUZpbHRlcnMpIHtcclxuICAgICAgdGhpcy50YWJsZUZpbHRlcnMuc29ydCA9IHRoaXMuc29ydE5hbWU7XHJcbiAgICAgIHRoaXMudGFibGVGaWx0ZXJzLm9yZGVyID0gbmV3T3JkZXI7XHJcbiAgICAgIHRoaXMudGFibGVGaWx0ZXJzLmN1cnJlbnRQYWdlID0gMTtcclxuICAgICAgdGhpcy50YWJsZUZpbHRlcnNDaGFuZ2UuZW1pdCh0aGlzLnRhYmxlRmlsdGVycyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9uU29ydENoYW5nZS5lbWl0KG5ld09yZGVyKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goc3Vic2NyaXB0aW9uID0+IHtcclxuICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,68 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { ReplaySubject, Subject } from 'rxjs';
3
- import { debounceTime } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@wizishop/ng-wizi-bulma";
6
- export class FiltersTableService {
7
- constructor(filterRoutingBuilder) {
8
- this.filterRoutingBuilder = filterRoutingBuilder;
9
- this.filterGroups = new Map();
10
- this.sortSubject = new Subject();
11
- }
12
- getTableFilterGroup(dataTableName) {
13
- if (this.filterGroups.has(dataTableName)) {
14
- return this.filterGroups.get(dataTableName);
15
- }
16
- const dataTableFilters = {
17
- sort: undefined,
18
- order: undefined,
19
- searchValue: undefined,
20
- totalItems: 0,
21
- itemsPerPage: 0,
22
- currentPage: 0
23
- };
24
- const filterGroup = this.filterRoutingBuilder.group(dataTableFilters, dataTableName);
25
- filterGroup.tableFiltersValuesChange$ = new ReplaySubject(1);
26
- filterGroup.tableFiltersValuesDebouncedChange$ = filterGroup.tableFiltersValuesChange$.pipe(debounceTime(300));
27
- this.filterGroups.set(dataTableName, filterGroup);
28
- return filterGroup;
29
- }
30
- /**
31
- * Use to reset the others sorts of the table
32
- * @param dataTableName
33
- * @param sortName
34
- * @param order
35
- */
36
- emitSortChange(dataTableName, sortName, order) {
37
- this.sortSubject.next({ dataTableName, sortName, order });
38
- }
39
- getSortChangeListner() {
40
- return this.sortSubject.asObservable();
41
- }
42
- setPaginationFilters(dataTableName, totalItems, itemsPerPage, currentPage) {
43
- const filterGroup = this.getTableFilterGroup(dataTableName);
44
- filterGroup.setValues({
45
- itemsPerPage,
46
- currentPage
47
- });
48
- }
49
- /*
50
- Add defaults filters in the URL if they not exists.
51
- */
52
- setInitialPaginationFiltersIfNotExist(dataTableName, itemsPerPage, currentPage) {
53
- const filterGroup = this.getTableFilterGroup(dataTableName);
54
- filterGroup.setValues({
55
- itemsPerPage: filterGroup.get('itemsPerPage') ? parseInt(filterGroup.get('itemsPerPage')) : itemsPerPage,
56
- currentPage: filterGroup.get('currentPage') ? parseInt(filterGroup.get('currentPage')) : currentPage
57
- });
58
- }
59
- }
60
- FiltersTableService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: FiltersTableService, deps: [{ token: i1.NwbFilterRoutingBuilder }], target: i0.ɵɵFactoryTarget.Injectable });
61
- FiltersTableService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: FiltersTableService, providedIn: 'root' });
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: FiltersTableService, decorators: [{
63
- type: Injectable,
64
- args: [{
65
- providedIn: 'root'
66
- }]
67
- }], ctorParameters: function () { return [{ type: i1.NwbFilterRoutingBuilder }]; } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy10YWJsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS9zaGFyZWQvZmlsdGVycy10YWJsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFPOUMsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QixZQUFvQixvQkFBNkM7UUFBN0MseUJBQW9CLEdBQXBCLG9CQUFvQixDQUF5QjtRQUpqRSxpQkFBWSxHQUFHLElBQUksR0FBRyxFQUEwQixDQUFDO1FBRXpDLGdCQUFXLEdBQWlCLElBQUksT0FBTyxFQUFPLENBQUM7SUFFYSxDQUFDO0lBRXJFLG1CQUFtQixDQUFDLGFBQXFCO1FBQ3ZDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDeEMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQXNCLENBQUM7U0FDbEU7UUFFRCxNQUFNLGdCQUFnQixHQUFpQjtZQUNyQyxJQUFJLEVBQUUsU0FBUztZQUNmLEtBQUssRUFBRSxTQUFTO1lBQ2hCLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLFVBQVUsRUFBRSxDQUFDO1lBQ2IsWUFBWSxFQUFFLENBQUM7WUFDZixXQUFXLEVBQUUsQ0FBQztTQUNmLENBQUM7UUFFRixNQUFNLFdBQVcsR0FBc0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLENBQXNCLENBQUM7UUFDN0gsV0FBVyxDQUFDLHlCQUF5QixHQUFHLElBQUksYUFBYSxDQUFlLENBQUMsQ0FBQyxDQUFDO1FBQzNFLFdBQVcsQ0FBQyxrQ0FBa0MsR0FBRyxXQUFXLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRS9HLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNsRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxjQUFjLENBQUMsYUFBcUIsRUFBRSxRQUFnQixFQUFFLEtBQWM7UUFDcEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELG9CQUFvQixDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFdBQVc7UUFDdkUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzVELFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDcEIsWUFBWTtZQUNaLFdBQVc7U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O01BRUU7SUFDRixxQ0FBcUMsQ0FBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLFdBQVc7UUFDNUUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzVELFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDcEIsWUFBWSxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVk7WUFDeEcsV0FBVyxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVc7U0FDckcsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Z0hBNURVLG1CQUFtQjtvSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTndiRmlsdGVyR3JvdXAsIE53YkZpbHRlclJvdXRpbmdCdWlsZGVyIH0gZnJvbSAnQHdpemlzaG9wL25nLXdpemktYnVsbWEnO1xyXG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVGFibGVGaWx0ZXJzR3JvdXAgfSBmcm9tICcuL3RhYmxlLWZpbHRlcnMtZ3JvdXAubW9kZWwnO1xyXG5pbXBvcnQgeyBUYWJsZUZpbHRlcnMgfSBmcm9tICcuL3RhYmxlLWZpbHRlcnMubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyc1RhYmxlU2VydmljZSB7XHJcbiAgZmlsdGVyR3JvdXBzID0gbmV3IE1hcDxzdHJpbmcsIE53YkZpbHRlckdyb3VwPigpO1xyXG5cclxuICBwcml2YXRlIHNvcnRTdWJqZWN0OiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmlsdGVyUm91dGluZ0J1aWxkZXI6IE53YkZpbHRlclJvdXRpbmdCdWlsZGVyKSB7fVxyXG5cclxuICBnZXRUYWJsZUZpbHRlckdyb3VwKGRhdGFUYWJsZU5hbWU6IHN0cmluZyk6IFRhYmxlRmlsdGVyc0dyb3VwIHtcclxuICAgIGlmICh0aGlzLmZpbHRlckdyb3Vwcy5oYXMoZGF0YVRhYmxlTmFtZSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyR3JvdXBzLmdldChkYXRhVGFibGVOYW1lKSBhcyBUYWJsZUZpbHRlcnNHcm91cDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBkYXRhVGFibGVGaWx0ZXJzOiBUYWJsZUZpbHRlcnMgPSB7XHJcbiAgICAgIHNvcnQ6IHVuZGVmaW5lZCxcclxuICAgICAgb3JkZXI6IHVuZGVmaW5lZCxcclxuICAgICAgc2VhcmNoVmFsdWU6IHVuZGVmaW5lZCxcclxuICAgICAgdG90YWxJdGVtczogMCxcclxuICAgICAgaXRlbXNQZXJQYWdlOiAwLFxyXG4gICAgICBjdXJyZW50UGFnZTogMFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBmaWx0ZXJHcm91cDogVGFibGVGaWx0ZXJzR3JvdXAgPSB0aGlzLmZpbHRlclJvdXRpbmdCdWlsZGVyLmdyb3VwKGRhdGFUYWJsZUZpbHRlcnMsIGRhdGFUYWJsZU5hbWUpIGFzIFRhYmxlRmlsdGVyc0dyb3VwO1xyXG4gICAgZmlsdGVyR3JvdXAudGFibGVGaWx0ZXJzVmFsdWVzQ2hhbmdlJCA9IG5ldyBSZXBsYXlTdWJqZWN0PFRhYmxlRmlsdGVycz4oMSk7XHJcbiAgICBmaWx0ZXJHcm91cC50YWJsZUZpbHRlcnNWYWx1ZXNEZWJvdW5jZWRDaGFuZ2UkID0gZmlsdGVyR3JvdXAudGFibGVGaWx0ZXJzVmFsdWVzQ2hhbmdlJC5waXBlKGRlYm91bmNlVGltZSgzMDApKTtcclxuXHJcbiAgICB0aGlzLmZpbHRlckdyb3Vwcy5zZXQoZGF0YVRhYmxlTmFtZSwgZmlsdGVyR3JvdXApO1xyXG4gICAgcmV0dXJuIGZpbHRlckdyb3VwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXNlIHRvIHJlc2V0IHRoZSBvdGhlcnMgc29ydHMgb2YgdGhlIHRhYmxlXHJcbiAgICogQHBhcmFtIGRhdGFUYWJsZU5hbWVcclxuICAgKiBAcGFyYW0gc29ydE5hbWVcclxuICAgKiBAcGFyYW0gb3JkZXJcclxuICAgKi9cclxuICBlbWl0U29ydENoYW5nZShkYXRhVGFibGVOYW1lOiBzdHJpbmcsIHNvcnROYW1lOiBzdHJpbmcsIG9yZGVyOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNvcnRTdWJqZWN0Lm5leHQoeyBkYXRhVGFibGVOYW1lLCBzb3J0TmFtZSwgb3JkZXIgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRTb3J0Q2hhbmdlTGlzdG5lcigpIHtcclxuICAgIHJldHVybiB0aGlzLnNvcnRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0UGFnaW5hdGlvbkZpbHRlcnMoZGF0YVRhYmxlTmFtZSwgdG90YWxJdGVtcywgaXRlbXNQZXJQYWdlLCBjdXJyZW50UGFnZSkge1xyXG4gICAgY29uc3QgZmlsdGVyR3JvdXAgPSB0aGlzLmdldFRhYmxlRmlsdGVyR3JvdXAoZGF0YVRhYmxlTmFtZSk7XHJcbiAgICBmaWx0ZXJHcm91cC5zZXRWYWx1ZXMoe1xyXG4gICAgICBpdGVtc1BlclBhZ2UsXHJcbiAgICAgIGN1cnJlbnRQYWdlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICBBZGQgZGVmYXVsdHMgZmlsdGVycyBpbiB0aGUgVVJMIGlmIHRoZXkgbm90IGV4aXN0cy5cclxuICAqL1xyXG4gIHNldEluaXRpYWxQYWdpbmF0aW9uRmlsdGVyc0lmTm90RXhpc3QoZGF0YVRhYmxlTmFtZSwgaXRlbXNQZXJQYWdlLCBjdXJyZW50UGFnZSkge1xyXG4gICAgY29uc3QgZmlsdGVyR3JvdXAgPSB0aGlzLmdldFRhYmxlRmlsdGVyR3JvdXAoZGF0YVRhYmxlTmFtZSk7XHJcbiAgICBmaWx0ZXJHcm91cC5zZXRWYWx1ZXMoe1xyXG4gICAgICBpdGVtc1BlclBhZ2U6IGZpbHRlckdyb3VwLmdldCgnaXRlbXNQZXJQYWdlJykgPyBwYXJzZUludChmaWx0ZXJHcm91cC5nZXQoJ2l0ZW1zUGVyUGFnZScpKSA6IGl0ZW1zUGVyUGFnZSxcclxuICAgICAgY3VycmVudFBhZ2U6IGZpbHRlckdyb3VwLmdldCgnY3VycmVudFBhZ2UnKSA/IHBhcnNlSW50KGZpbHRlckdyb3VwLmdldCgnY3VycmVudFBhZ2UnKSkgOiBjdXJyZW50UGFnZVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,20 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class TableCheckboxIdService {
4
- constructor() {
5
- this.nbCheckboxInstances = 0;
6
- TableCheckboxIdService.tableInstance++;
7
- this.currentTableInstance = TableCheckboxIdService.tableInstance;
8
- }
9
- getUniqueId() {
10
- this.nbCheckboxInstances++;
11
- return `wac-table-${this.currentTableInstance}-${this.nbCheckboxInstances}`;
12
- }
13
- }
14
- TableCheckboxIdService.tableInstance = 0;
15
- TableCheckboxIdService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: TableCheckboxIdService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16
- TableCheckboxIdService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: TableCheckboxIdService });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: TableCheckboxIdService, decorators: [{
18
- type: Injectable
19
- }], ctorParameters: function () { return []; } });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY2hlY2tib3gtaWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvc2hhcmVkL3RhYmxlLWNoZWNrYm94LWlkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFJM0MsTUFBTSxPQUFPLHNCQUFzQjtJQU8vQjtRQUZBLHdCQUFtQixHQUFXLENBQUMsQ0FBQztRQUc1QixzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsc0JBQXNCLENBQUMsYUFBYSxDQUFDO0lBQ3JFLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsT0FBTyxhQUFhLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUNoRixDQUFDOztBQWJNLG9DQUFhLEdBQUcsQ0FBQyxDQUFDO21IQUZoQixzQkFBc0I7dUhBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ2hlY2tib3hJZFNlcnZpY2Uge1xyXG5cclxuICAgIHN0YXRpYyB0YWJsZUluc3RhbmNlID0gMDtcclxuXHJcbiAgICBjdXJyZW50VGFibGVJbnN0YW5jZTpudW1iZXI7XHJcbiAgICBuYkNoZWNrYm94SW5zdGFuY2VzOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIFRhYmxlQ2hlY2tib3hJZFNlcnZpY2UudGFibGVJbnN0YW5jZSsrO1xyXG4gICAgICAgIHRoaXMuY3VycmVudFRhYmxlSW5zdGFuY2UgPSBUYWJsZUNoZWNrYm94SWRTZXJ2aWNlLnRhYmxlSW5zdGFuY2U7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VW5pcXVlSWQoKSB7XHJcbiAgICAgICAgdGhpcy5uYkNoZWNrYm94SW5zdGFuY2VzKys7XHJcbiAgICAgICAgcmV0dXJuIGB3YWMtdGFibGUtJHt0aGlzLmN1cnJlbnRUYWJsZUluc3RhbmNlfS0ke3RoaXMubmJDaGVja2JveEluc3RhbmNlc31gO1xyXG4gICAgfVxyXG59Il19
@@ -1,146 +0,0 @@
1
- import { Component, ContentChildren, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
2
- import { CheckBoxRow } from './directives/checkBoxRow.directive';
3
- import { MultiSelectionService } from '../../services/multiple-selection.service';
4
- import { TableCheckboxIdService } from './shared/table-checkbox-id.service';
5
- import { TableRow } from './directives/raw.directive';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "./shared/filters-table.service";
8
- import * as i2 from "./shared/table-checkbox-id.service";
9
- import * as i3 from "../../services/multiple-selection.service";
10
- import * as i4 from "@angular/common";
11
- import * as i5 from "@angular/forms";
12
- import * as i6 from "../inputs/input-search/input-search.component";
13
- import * as i7 from "../loader/loader.component";
14
- import * as i8 from "../checkbox/checkbox.component";
15
- import * as i9 from "../pagination/pagination.component";
16
- export class TableComponent {
17
- constructor(filtersTableService, tableCheckboxIdService, multiSelectionService) {
18
- this.filtersTableService = filtersTableService;
19
- this.tableCheckboxIdService = tableCheckboxIdService;
20
- this.multiSelectionService = multiSelectionService;
21
- this.tableFiltersChange = new EventEmitter();
22
- this.placeholder = '';
23
- /// Input/Output of checkbox ///
24
- /** Pass to true to display checkbox in the header table */
25
- this.checkbox = false;
26
- this.toggleAllCheckBox = new EventEmitter(); // todo replace by checkBoxSelectionChange
27
- this.checkBoxSelectionChange = new EventEmitter(); // todo add to doc
28
- /// Input to disable section ///
29
- /** Pass to true to hide search input */
30
- this.disableSearch = false;
31
- /** Pass to true to hide the pagniator */
32
- this.disablePagniation = false;
33
- /// Input for loader on table body ///
34
- this.isLoading = false;
35
- }
36
- ngOnInit() {
37
- this.headerCheckBoxId = this.tableCheckboxIdService.getUniqueId(); // Create checkbox unique id
38
- /* Handle routing filters */
39
- if (this.tableRoutingName) {
40
- this.filtersTableService.setInitialPaginationFiltersIfNotExist(this.tableRoutingName, this.tableFilters.itemsPerPage, this.tableFilters.currentPage);
41
- this._tableFiltersGroup = this.filtersTableService.getTableFilterGroup(this.tableRoutingName);
42
- this.setTablesFilters();
43
- // Listen to filters changes with debounced time to limit multiple api calls
44
- this.filterGroupChangeSub = this._tableFiltersGroup.valuesChange$.subscribe(() => {
45
- this.setTablesFilters();
46
- });
47
- }
48
- this.multiSelectionService.activeChanges$.subscribe(selectionIndexRawCheckChange => {
49
- this.checkBoxSelectionChange.emit(selectionIndexRawCheckChange);
50
- });
51
- }
52
- ngAfterViewInit() {
53
- this.multiSelectionService.handle(this.checkBoxRows);
54
- this.checkBoxRows.changes.subscribe(() => {
55
- this.multiSelectionService.handle(this.checkBoxRows);
56
- });
57
- }
58
- onToggleAllCheckBox(event) {
59
- this.toggleAllCheckBox.emit(event.target.checked);
60
- }
61
- searchChange() {
62
- // Reset table filters
63
- this.tableFilters.sort = undefined;
64
- this.tableFilters.order = undefined;
65
- this.tableFilters.currentPage = 1;
66
- this.tableFiltersChange.emit(this.tableFilters);
67
- // Reset routing filters
68
- if (this._tableFiltersGroup) {
69
- this._tableFiltersGroup.setValues({
70
- searchValue: this.tableFilters.searchValue,
71
- sort: undefined,
72
- order: undefined,
73
- currentPage: 1
74
- });
75
- }
76
- }
77
- pageChange() {
78
- this.tableFiltersChange.emit(this.tableFilters);
79
- if (this._tableFiltersGroup) {
80
- this._tableFiltersGroup.setValues({
81
- itemsPerPage: this.tableFilters.itemsPerPage,
82
- currentPage: this.tableFilters.currentPage
83
- });
84
- }
85
- }
86
- /**
87
- * Set tableFilters from routing data existing in the url
88
- * */
89
- setTablesFilters() {
90
- this.tableFilters = {
91
- sort: this._tableFiltersGroup.get('sort'),
92
- order: this._tableFiltersGroup.get('order') ? this._tableFiltersGroup.get('order') === 'true' : undefined,
93
- searchValue: this._tableFiltersGroup.get('searchValue'),
94
- itemsPerPage: this._tableFiltersGroup.get('itemsPerPage') ? parseInt(this._tableFiltersGroup.get('itemsPerPage')) : 0,
95
- currentPage: this._tableFiltersGroup.get('currentPage') ? parseInt(this._tableFiltersGroup.get('currentPage')) : 0,
96
- totalItems: this.tableFilters.totalItems
97
- };
98
- this.tableFiltersChange.emit(this.tableFilters);
99
- this._tableFiltersGroup.tableFiltersValuesChange$.next(this.tableFilters);
100
- }
101
- ngOnDestroy() {
102
- if (this.filterGroupChangeSub) {
103
- this.filterGroupChangeSub.unsubscribe();
104
- }
105
- this.multiSelectionService.destroy();
106
- }
107
- }
108
- TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: TableComponent, deps: [{ token: i1.FiltersTableService }, { token: i2.TableCheckboxIdService }, { token: i3.MultiSelectionService }], target: i0.ɵɵFactoryTarget.Component });
109
- TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: TableComponent, selector: "wac-table", inputs: { tableFilters: "tableFilters", tableRoutingName: "tableRoutingName", placeholder: "placeholder", checkbox: "checkbox", disableSearch: "disableSearch", disablePagniation: "disablePagniation", isLoading: "isLoading" }, outputs: { tableFiltersChange: "tableFiltersChange", toggleAllCheckBox: "toggleAllCheckBox", checkBoxSelectionChange: "checkBoxSelectionChange" }, providers: [
110
- TableCheckboxIdService,
111
- MultiSelectionService
112
- ], queries: [{ propertyName: "checkBoxRows", predicate: CheckBoxRow }, { propertyName: "tableRows", predicate: TableRow }], ngImport: i0, template: "<div class=\"wac-table\">\r\n <!-- Header section -->\r\n <div class=\"wac-table__head\" id=\"headerTable\">\r\n <div *ngIf=\"checkbox\" class=\"wac-table__head__cell wac-table__head__cell--checkbox\">\r\n <wac-checkbox [id]=\"headerCheckBoxId\" (change)=\"onToggleAllCheckBox($event)\" [alone]=\"true\"></wac-checkbox>\r\n </div>\r\n\r\n <!-- Header contents are added with the headerCell directive -->\r\n <ng-content select=\"[headerCell]\"></ng-content>\r\n </div>\r\n\r\n <!-- Search section -->\r\n <div *ngIf=\"!disableSearch\" class=\"wac-table__search\">\r\n <wac-input-search\r\n [(ngModel)]=\"tableFilters.searchValue\"\r\n (changeDebounced)=\"searchChange()\"\r\n [placeholder]=\"placeholder\"\r\n [smallPadding]=\"true\"\r\n ></wac-input-search>\r\n </div>\r\n\r\n <!-- Body section -->\r\n <div class=\"wac-table__body\">\r\n <!-- Loader on body -->\r\n <div class=\"wac-table__body__loader\" *ngIf=\"isLoading\">\r\n <wac-loader [small]=\"true\"></wac-loader>\r\n </div>\r\n <!-- Body contents are added with the tableRow directive -->\r\n <ng-content select=\".complex-table\" *ngIf=\"!isLoading\"></ng-content>\r\n <ng-content select=\"[tableRow]\" *ngIf=\"!isLoading\"></ng-content>\r\n </div>\r\n\r\n <!-- Pagination section -->\r\n <wac-pagination *ngIf=\"!disablePagniation\" [pagination]=\"tableFilters\" (pageChange)=\"pageChange()\"></wac-pagination>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.InputSearchComponent, selector: "wac-input-search", inputs: ["placeholder", "withoutgrey", "smallPadding", "id"], outputs: ["changeDebounced"] }, { kind: "component", type: i7.LoaderComponent, selector: "wac-loader", inputs: ["text", "small"] }, { kind: "component", type: i8.CheckboxComponent, selector: "wac-checkbox", inputs: ["label", "value", "type", "alone", "checked", "hasInput", "inputPlaceholder", "id", "name", "whiteSpace", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: i9.PaginationComponent, selector: "wac-pagination", inputs: ["pagination"], outputs: ["pageChange"] }], encapsulation: i0.ViewEncapsulation.None });
113
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: TableComponent, decorators: [{
114
- type: Component,
115
- args: [{ selector: 'wac-table', encapsulation: ViewEncapsulation.None, providers: [
116
- TableCheckboxIdService,
117
- MultiSelectionService
118
- ], template: "<div class=\"wac-table\">\r\n <!-- Header section -->\r\n <div class=\"wac-table__head\" id=\"headerTable\">\r\n <div *ngIf=\"checkbox\" class=\"wac-table__head__cell wac-table__head__cell--checkbox\">\r\n <wac-checkbox [id]=\"headerCheckBoxId\" (change)=\"onToggleAllCheckBox($event)\" [alone]=\"true\"></wac-checkbox>\r\n </div>\r\n\r\n <!-- Header contents are added with the headerCell directive -->\r\n <ng-content select=\"[headerCell]\"></ng-content>\r\n </div>\r\n\r\n <!-- Search section -->\r\n <div *ngIf=\"!disableSearch\" class=\"wac-table__search\">\r\n <wac-input-search\r\n [(ngModel)]=\"tableFilters.searchValue\"\r\n (changeDebounced)=\"searchChange()\"\r\n [placeholder]=\"placeholder\"\r\n [smallPadding]=\"true\"\r\n ></wac-input-search>\r\n </div>\r\n\r\n <!-- Body section -->\r\n <div class=\"wac-table__body\">\r\n <!-- Loader on body -->\r\n <div class=\"wac-table__body__loader\" *ngIf=\"isLoading\">\r\n <wac-loader [small]=\"true\"></wac-loader>\r\n </div>\r\n <!-- Body contents are added with the tableRow directive -->\r\n <ng-content select=\".complex-table\" *ngIf=\"!isLoading\"></ng-content>\r\n <ng-content select=\"[tableRow]\" *ngIf=\"!isLoading\"></ng-content>\r\n </div>\r\n\r\n <!-- Pagination section -->\r\n <wac-pagination *ngIf=\"!disablePagniation\" [pagination]=\"tableFilters\" (pageChange)=\"pageChange()\"></wac-pagination>\r\n</div>\r\n" }]
119
- }], ctorParameters: function () { return [{ type: i1.FiltersTableService }, { type: i2.TableCheckboxIdService }, { type: i3.MultiSelectionService }]; }, propDecorators: { checkBoxRows: [{
120
- type: ContentChildren,
121
- args: [CheckBoxRow]
122
- }], tableRows: [{
123
- type: ContentChildren,
124
- args: [TableRow]
125
- }], tableFilters: [{
126
- type: Input
127
- }], tableFiltersChange: [{
128
- type: Output
129
- }], tableRoutingName: [{
130
- type: Input
131
- }], placeholder: [{
132
- type: Input
133
- }], checkbox: [{
134
- type: Input
135
- }], toggleAllCheckBox: [{
136
- type: Output
137
- }], checkBoxSelectionChange: [{
138
- type: Output
139
- }], disableSearch: [{
140
- type: Input
141
- }], disablePagniation: [{
142
- type: Input
143
- }], isLoading: [{
144
- type: Input
145
- }] } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUEyQixpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUs1SSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7OztBQVd0RCxNQUFNLE9BQU8sY0FBYztJQXlDekIsWUFBb0IsbUJBQXdDLEVBQVUsc0JBQThDLEVBQVUscUJBQTRDO1FBQXRKLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFBVSwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQVUsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQS9CaEssdUJBQWtCLEdBQStCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHckUsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFJbEMsZ0NBQWdDO1FBRWhDLDJEQUEyRDtRQUNsRCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWhCLHNCQUFpQixHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDLENBQUMsMENBQTBDO1FBRXpHLDRC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QUFDO0lBQzVFLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDN0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZDLENBQUM7OzJHQWhJVSxjQUFjOytGQUFkLGNBQWMseVpBTGQ7UUFDVCxzQkFBc0I7UUFDdEIscUJBQXFCO0tBQ3RCLHVEQUlnQixXQUFXLDRDQUNYLFFBQVEsNkJDdEIzQiwyN0NBbUNBOzJGRGhCYSxjQUFjO2tCQVQxQixTQUFTOytCQUNFLFdBQVcsaUJBRU4saUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDVCxzQkFBc0I7d0JBQ3RCLHFCQUFxQjtxQkFDdEI7bUxBSTZCLFlBQVk7c0JBQXpDLGVBQWU7dUJBQUMsV0FBVztnQkFDRCxTQUFTO3NCQUFuQyxlQUFlO3VCQUFDLFFBQVE7Z0JBTWhCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNO2dCQUVFLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQU9HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksaUJBQWlCO3NCQUExQixNQUFNO2dCQUVHLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFLRSxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFJRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmlsdGVyc1RhYmxlU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL2ZpbHRlcnMtdGFibGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUYWJsZUZpbHRlcnMgfSBmcm9tICcuL3NoYXJlZC90YWJsZS1maWx0ZXJzLm1vZGVsJztcclxuaW1wb3J0IHsgVGFibGVGaWx0ZXJzR3JvdXAgfSBmcm9tICcuL3NoYXJlZC90YWJsZS1maWx0ZXJzLWdyb3VwLm1vZGVsJztcclxuaW1wb3J0IHsgQ2hlY2tCb3hSb3cgfSBmcm9tICcuL2RpcmVjdGl2ZXMvY2hlY2tCb3hSb3cuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTXVsdGlTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbXVsdGlwbGUtc2VsZWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUYWJsZUNoZWNrYm94SWRTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvdGFibGUtY2hlY2tib3gtaWQuc2VydmljZSc7XHJcbmltcG9ydCB7IFRhYmxlUm93IH0gZnJvbSAnLi9kaXJlY3RpdmVzL3Jhdy5kaXJlY3RpdmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd3YWMtdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIFRhYmxlQ2hlY2tib3hJZFNlcnZpY2UsXHJcbiAgICBNdWx0aVNlbGVjdGlvblNlcnZpY2VcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBDb250ZW50Q2hpbGRyZW4oQ2hlY2tCb3hSb3cpIGNoZWNrQm94Um93czogUXVlcnlMaXN0PENoZWNrQm94Um93PjtcclxuICBAQ29udGVudENoaWxkcmVuKFRhYmxlUm93KSB0YWJsZVJvd3M6IFF1ZXJ5TGlzdDxUYWJsZVJvdz47XHJcblxyXG4gIC8vIHRvZG8gZmluZCBhIHdheSB0byBzcG90bGlnaHQgdGhlIHdhYy10YWJsZSBkb2Mgd2hlbiB1c2VkIG9uIHdpemktYWRtaW4gb25seSBpbiBkZXZcclxuICAvLyB0b2RvIHRyeSB0byB1c2UgYnJpZGdlIHBhdHRlcm5lIGluIG9yZGVyIHRvIGFkZCBjaGVja2JveCBhbmQgcmVtb3ZlIGNoZWNrYm93cm94IGRpcmVjdGl2ZS5cclxuICAvLy8gSW5wdXQvT3V0cHV0IG9mIHRhYmxlIGZpbHRlcnMgLy8vXHJcblxyXG4gIEBJbnB1dCgpIHRhYmxlRmlsdGVyczogVGFibGVGaWx0ZXJzO1xyXG4gIEBPdXRwdXQoKSB0YWJsZUZpbHRlcnNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxUYWJsZUZpbHRlcnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBASW5wdXQoKSB0YWJsZVJvdXRpbmdOYW1lOiBzdHJpbmc7IC8vIE5hbWUgb2YgdGhlIHRhYmxlXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICcnO1xyXG5cclxuICBwcml2YXRlIF90YWJsZUZpbHRlcnNHcm91cDogVGFibGVGaWx0ZXJzR3JvdXA7XHJcblxyXG4gIC8vLyBJbnB1dC9PdXRwdXQgb2YgY2hlY2tib3ggLy8vXHJcblxyXG4gIC8qKiBQYXNzIHRvIHRydWUgdG8gZGlzcGxheSBjaGVja2JveCBpbiB0aGUgaGVhZGVyIHRhYmxlICovXHJcbiAgQElucHV0KCkgY2hlY2tib3ggPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIHRvZ2dsZUFsbENoZWNrQm94OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7IC8vIHRvZG8gcmVwbGFjZSBieSBjaGVja0JveFNlbGVjdGlvbkNoYW5nZVxyXG5cclxuICBAT3V0cHV0KCkgY2hlY2tCb3hTZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXJbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7IC8vIHRvZG8gYWRkIHRvIGRvY1xyXG5cclxuICAvLy8gSW5wdXQgdG8gZGlzYWJsZSBzZWN0aW9uIC8vL1xyXG5cclxuICAvKiogUGFzcyB0byB0cnVlIHRvIGhpZGUgc2VhcmNoIGlucHV0ICovXHJcbiAgQElucHV0KCkgZGlzYWJsZVNlYXJjaDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKiBQYXNzIHRvIHRydWUgdG8gaGlkZSB0aGUgcGFnbmlhdG9yICovXHJcbiAgQElucHV0KCkgZGlzYWJsZVBhZ25pYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8vIElucHV0IGZvciBsb2FkZXIgb24gdGFibGUgYm9keSAvLy9cclxuXHJcbiAgQElucHV0KCkgaXNMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gIC8vLyBQcml2YXRlIHZhcmlhYmxlcyAvLy9cclxuICBoZWFkZXJDaGVja0JveElkOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBmaWx0ZXJHcm91cENoYW5nZVN1YjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZpbHRlcnNUYWJsZVNlcnZpY2U6IEZpbHRlcnNUYWJsZVNlcnZpY2UsIHByaXZhdGUgdGFibGVDaGVja2JveElkU2VydmljZTogVGFibGVDaGVja2JveElkU2VydmljZSwgcHJpdmF0ZSBtdWx0aVNlbGVjdGlvblNlcnZpY2U6IE11bHRpU2VsZWN0aW9uU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmhlYWRlckNoZWNrQm94SWQgPSB0aGlzLnRhYmxlQ2hlY2tib3hJZFNlcnZpY2UuZ2V0VW5pcXVlSWQoKTsgLy8gQ3JlYXRlIGNoZWNrYm94IHVuaXF1ZSBpZFxyXG5cclxuICAgIC8qIEhhbmRsZSByb3V0aW5nIGZpbHRlcnMgKi9cclxuICAgIGlmICh0aGlzLnRhYmxlUm91dGluZ05hbWUpIHtcclxuXHJcbiAgICAgIHRoaXMuZmlsdGVyc1RhYmxlU2VydmljZS5zZXRJbml0aWFsUGFnaW5hdGlvbkZpbHRlcnNJZk5vdEV4aXN0KFxyXG4gICAgICAgIHRoaXMudGFibGVSb3V0aW5nTmFtZSxcclxuICAgICAgICB0aGlzLnRhYmxlRmlsdGVycy5pdGVtc1BlclBhZ2UsXHJcbiAgICAgICAgdGhpcy50YWJsZUZpbHRlcnMuY3VycmVudFBhZ2VcclxuICAgICAgKTtcclxuXHJcbiAgICAgIHRoaXMuX3RhYmxlRmlsdGVyc0dyb3VwID0gdGhpcy5maWx0ZXJzVGFibGVTZXJ2aWNlLmdldFRhYmxlRmlsdGVyR3JvdXAodGhpcy50YWJsZVJvdXRpbmdOYW1lKTtcclxuICAgICAgdGhpcy5zZXRUYWJsZXNGaWx0ZXJzKCk7XHJcbiAgICAgIC8vIExpc3RlbiB0byBmaWx0ZXJzIGNoYW5nZXMgd2l0aCBkZWJvdW5jZWQgdGltZSB0byBsaW1pdCBtdWx0aXBsZSBhcGkgY2FsbHNcclxuICAgICAgdGhpcy5maWx0ZXJHcm91cENoYW5nZVN1YiA9IHRoaXMuX3RhYmxlRmlsdGVyc0dyb3VwLnZhbHVlc0NoYW5nZSQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLnNldFRhYmxlc0ZpbHRlcnMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5tdWx0aVNlbGVjdGlvblNlcnZpY2UuYWN0aXZlQ2hhbmdlcyQuc3Vic2NyaWJlKHNlbGVjdGlvbkluZGV4UmF3Q2hlY2tDaGFuZ2UgPT4ge1xyXG4gICAgICB0aGlzLmNoZWNrQm94U2VsZWN0aW9uQ2hhbmdlLmVtaXQoc2VsZWN0aW9uSW5kZXhSYXdDaGVja0NoYW5nZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMubXVsdGlTZWxlY3Rpb25TZXJ2aWNlLmhhbmRsZSh0aGlzLmNoZWNrQm94Um93cyk7XHJcbiAgICB0aGlzLmNoZWNrQm94Um93cy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMubXVsdGlTZWxlY3Rpb25TZXJ2aWNlLmhhbmRsZSh0aGlzLmNoZWNrQm94Um93cyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uVG9nZ2xlQWxsQ2hlY2tCb3goZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy50b2dnbGVBbGxDaGVja0JveC5lbWl0KGV2ZW50LnRhcmdldC5jaGVja2VkKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaENoYW5nZSgpIHtcclxuICAgIC8vIFJlc2V0IHRhYmxlIGZpbHRlcnNcclxuICAgIHRoaXMudGFibGVGaWx0ZXJzLnNvcnQgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnRhYmxlRmlsdGVycy5vcmRlciA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMudGFibGVGaWx0ZXJzLmN1cnJlbnRQYWdlID0gMTtcclxuICAgIHRoaXMudGFibGVGaWx0ZXJzQ2hhbmdlLmVtaXQodGhpcy50YWJsZUZpbHRlcnMpO1xyXG5cclxuICAgIC8vIFJlc2V0IHJvdXRpbmcgZmlsdGVyc1xyXG4gICAgaWYgKHRoaXMuX3RhYmxlRmlsdGVyc0dyb3VwKSB7XHJcbiAgICAgIHRoaXMuX3RhYmxlRmlsdGVyc0dyb3VwLnNldFZhbHVlcyh7XHJcbiAgICAgICAgc2VhcmNoVmFsdWU6IHRoaXMudGFibGVGaWx0ZXJzLnNlYXJjaFZhbHVlLFxyXG4gICAgICAgIHNvcnQ6IHVuZGVmaW5lZCxcclxuICAgICAgICBvcmRlcjogdW5kZWZpbmVkLFxyXG4gICAgICAgIGN1cnJlbnRQYWdlOiAxXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcGFnZUNoYW5nZSgpIHtcclxuICAgIHRoaXMudGFibGVGaWx0ZXJzQ2hhbmdlLmVtaXQodGhpcy50YWJsZUZpbHRlcnMpO1xyXG4gICAgaWYgKHRoaXMuX3RhYmxlRmlsdGVyc0dyb3VwKSB7XHJcbiAgICAgIHRoaXMuX3RhYmxlRmlsdGVyc0dyb3VwLnNldFZhbHVlcyh7XHJcbiAgICAgICAgaXRlbXNQZXJQYWdlOiB0aGlzLnRhYmxlRmlsdGVycy5pdGVtc1BlclBhZ2UsXHJcbiAgICAgICAgY3VycmVudFBhZ2U6IHRoaXMudGFibGVGaWx0ZXJzLmN1cnJlbnRQYWdlXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogIFNldCB0YWJsZUZpbHRlcnMgZnJvbSByb3V0aW5nIGRhdGEgZXhpc3RpbmcgaW4gdGhlIHVybFxyXG4gICAqICovXHJcbiAgcHJpdmF0ZSBzZXRUYWJsZXNGaWx0ZXJzKCkge1xyXG4gICAgdGhpcy50YWJsZUZpbHRlcnMgPSB7XHJcbiAgICAgIHNvcnQ6IHRoaXMuX3RhYmxlRmlsdGVyc0dyb3VwLmdldCgnc29ydCcpLFxyXG4gICAgICBvcmRlcjogdGhpcy5fdGFibGVGaWx0ZXJzR3JvdXAuZ2V0KCdvcmRlcicpID8gdGhpcy5fdGFibGVGaWx0ZXJzR3JvdXAuZ2V0KCdvcmRlcicpID09PSAndHJ1ZScgOiB1bmRlZmluZWQsXHJcbiAgICAgIHNlYXJjaFZhbHVlOiB0aGlzLl90YWJsZUZpbHRlcnNHcm91cC5nZXQoJ3NlYXJjaFZhbHVlJyksXHJcbiAgICAgIGl0ZW1zUGVyUGFnZTogdGhpcy5fdGFibGVGaWx0ZXJzR3JvdXAuZ2V0KCdpdGVtc1BlclBhZ2UnKSA/IHBhcnNlSW50KHRoaXMuX3RhYmxlRmlsdGVyc0dyb3VwLmdldCgnaXRlbXNQZXJQYWdlJykpIDogMCxcclxuICAgICAgY3VycmVudFBhZ2U6IHRoaXMuX3RhYmxlRmlsdGVyc0dyb3VwLmdldCgnY3VycmVudFBhZ2UnKSA/IHBhcnNlSW50KHRoaXMuX3RhYmxlRmlsdGVyc0dyb3VwLmdldCgnY3VycmVudFBhZ2UnKSkgOiAwLFxyXG4gICAgICB0b3RhbEl0ZW1zOiB0aGlzLnRhYmxlRmlsdGVycy50b3RhbEl0ZW1zXHJcbiAgICB9O1xyXG4gICAgdGhpcy50YWJsZUZpbHRlcnNDaGFuZ2UuZW1pdCh0aGlzLnRhYmxlRmlsdGVycyk7XHJcbiAgICB0aGlzLl90YWJsZUZpbHRlcnNHcm91cC50YWJsZUZpbHRlcnNWYWx1ZXNDaGFuZ2UkLm5leHQodGhpcy50YWJsZUZpbHRlcnMpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy5maWx0ZXJHcm91cENoYW5nZVN1Yikge1xyXG4gICAgICB0aGlzLmZpbHRlckdyb3VwQ2hhbmdlU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm11bHRpU2VsZWN0aW9uU2VydmljZS5kZXN0cm95KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ3YWMtdGFibGVcIj5cclxuICA8IS0tIEhlYWRlciBzZWN0aW9uIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJ3YWMtdGFibGVfX2hlYWRcIiBpZD1cImhlYWRlclRhYmxlXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiY2hlY2tib3hcIiBjbGFzcz1cIndhYy10YWJsZV9faGVhZF9fY2VsbCB3YWMtdGFibGVfX2hlYWRfX2NlbGwtLWNoZWNrYm94XCI+XHJcbiAgICAgIDx3YWMtY2hlY2tib3ggW2lkXT1cImhlYWRlckNoZWNrQm94SWRcIiAoY2hhbmdlKT1cIm9uVG9nZ2xlQWxsQ2hlY2tCb3goJGV2ZW50KVwiIFthbG9uZV09XCJ0cnVlXCI+PC93YWMtY2hlY2tib3g+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIEhlYWRlciBjb250ZW50cyBhcmUgYWRkZWQgd2l0aCB0aGUgaGVhZGVyQ2VsbCBkaXJlY3RpdmUgLS0+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaGVhZGVyQ2VsbF1cIj48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gU2VhcmNoIHNlY3Rpb24gLS0+XHJcbiAgPGRpdiAqbmdJZj1cIiFkaXNhYmxlU2VhcmNoXCIgY2xhc3M9XCJ3YWMtdGFibGVfX3NlYXJjaFwiPlxyXG4gICAgPHdhYy1pbnB1dC1zZWFyY2hcclxuICAgICAgWyhuZ01vZGVsKV09XCJ0YWJsZUZpbHRlcnMuc2VhcmNoVmFsdWVcIlxyXG4gICAgICAoY2hhbmdlRGVib3VuY2VkKT1cInNlYXJjaENoYW5nZSgpXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgW3NtYWxsUGFkZGluZ109XCJ0cnVlXCJcclxuICAgID48L3dhYy1pbnB1dC1zZWFyY2g+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gQm9keSBzZWN0aW9uIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJ3YWMtdGFibGVfX2JvZHlcIj5cclxuICAgIDwhLS0gTG9hZGVyIG9uIGJvZHkgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwid2FjLXRhYmxlX19ib2R5X19sb2FkZXJcIiAqbmdJZj1cImlzTG9hZGluZ1wiPlxyXG4gICAgICA8d2FjLWxvYWRlciBbc21hbGxdPVwidHJ1ZVwiPjwvd2FjLWxvYWRlcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBCb2R5IGNvbnRlbnRzIGFyZSBhZGRlZCB3aXRoIHRoZSB0YWJsZVJvdyBkaXJlY3RpdmUgLS0+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCIuY29tcGxleC10YWJsZVwiICpuZ0lmPVwiIWlzTG9hZGluZ1wiPjwvbmctY29udGVudD5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt0YWJsZVJvd11cIiAqbmdJZj1cIiFpc0xvYWRpbmdcIj48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS0gUGFnaW5hdGlvbiBzZWN0aW9uIC0tPlxyXG4gIDx3YWMtcGFnaW5hdGlvbiAqbmdJZj1cIiFkaXNhYmxlUGFnbmlhdGlvblwiIFtwYWdpbmF0aW9uXT1cInRhYmxlRmlsdGVyc1wiIChwYWdlQ2hhbmdlKT1cInBhZ2VDaGFuZ2UoKVwiPjwvd2FjLXBhZ2luYXRpb24+XHJcbjwvZGl2PlxyXG4iXX0=