@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,86 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "../../directives/auto-hide/auto-hide.directive";
5
- import * as i3 from "../../directives/zindex-toggle/zindex-toggle.directive";
6
- import * as i4 from "ngx-perfect-scrollbar";
7
- export class SearchComponent {
8
- constructor() {
9
- this.alwaysOpen = false;
10
- this.disableSearchIn = false;
11
- this.emptyResult = '';
12
- this.search = '';
13
- this.openSelect = false;
14
- this.selectValue = new EventEmitter();
15
- this.searchKeyUp = new EventEmitter();
16
- this.searchFocusOut = new EventEmitter();
17
- }
18
- ngOnInit() {
19
- this.triggerOptions = this.options;
20
- }
21
- onClose() {
22
- this.openSelect = false;
23
- }
24
- setSearchValueToQuery(value) {
25
- this.search = value.target.value;
26
- if (this.disableSearchIn) {
27
- this.triggerOptions = this.options;
28
- }
29
- else {
30
- if (this.search.length > 0) {
31
- this.openSelect = true;
32
- this.triggerOptions = this.options.filter(element => element.label.toLowerCase().indexOf(this.search.toLowerCase()) !== -1);
33
- }
34
- else {
35
- this.triggerOptions = this.options;
36
- }
37
- }
38
- this.searchKeyUp.emit(this.search);
39
- }
40
- sendEventFocusOut() {
41
- this.searchFocusOut.emit(this.search);
42
- }
43
- closeSelect() {
44
- this.openSelect = false;
45
- }
46
- onSelectItem(index, value, label) {
47
- this.search = '';
48
- this.openSelect = false;
49
- if (this.disableSearchIn) {
50
- this.selectValue.emit(index);
51
- }
52
- else {
53
- const findInOption = this.options.findIndex(element => element.label === label && element.id === value);
54
- this.selectValue.emit(findInOption);
55
- }
56
- }
57
- resetAllVue() {
58
- this.search = '';
59
- this.closeSelect();
60
- }
61
- }
62
- SearchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
63
- SearchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: SearchComponent, selector: "wac-search", inputs: { placeholder: "placeholder", alwaysOpen: "alwaysOpen", label: "label", options: "options", disableSearchIn: "disableSearchIn", emptyResult: "emptyResult" }, outputs: { selectValue: "selectValue", searchKeyUp: "searchKeyUp", searchFocusOut: "searchFocusOut" }, ngImport: i0, template: "<div class=\"wac-search\" [ngClass]=\"{ open: openSelect || alwaysOpen }\" [zIndexToggle]=\"openSelect\" wzAutoHide (clickOutside)=\"closeSelect()\">\r\n <div class=\"wac-search__wrapper\">\r\n <button><i class=\"fal fa-search\"></i></button>\r\n <input [value]=\"search\" type=\"text\" required [placeholder]=\"placeholder\" (focus)=\"openSelect = true;\" (focusout)=\"sendEventFocusOut()\" (keyup)=\"setSearchValueToQuery($event)\" />\r\n </div>\r\n <div class=\"wac-search__absolute\" *ngIf=\"triggerOptions\" [ngClass]=\"{'hidden': !openSelect}\">\r\n <perfect-scrollbar [config]=\"{ suppressScrollX: true }\" *ngIf=\"triggerOptions.length > 0\">\r\n <div (click)=\"onClose()\" class=\"wac-select__content__item\" *ngFor=\"let item of triggerOptions; let index = index;\">\r\n <div [ngClass]=\"{ selected: item.checked }\" (click)=\"onSelectItem(index, item.id, item.label)\">\r\n {{ item.label }}\r\n </div>\r\n </div>\r\n </perfect-scrollbar>\r\n <div class=\"wac-select__content__empty\" *ngIf=\"triggerOptions.length === 0\">\r\n <span *ngIf=\"emptyResult\">{{emptyResult}}</span>\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.AutoHideDirective, selector: "[wzAutoHide]", inputs: ["triggerElement", "forceOn"], outputs: ["clickOutside"] }, { kind: "directive", type: i3.ZindexToggleDirective, selector: "[zIndexToggle]", inputs: ["zIndexToggle"], outputs: ["onEventChange"] }, { kind: "component", type: i4.PerfectScrollbarComponent, selector: "perfect-scrollbar", inputs: ["disabled", "usePSClass", "autoPropagation", "scrollIndicators", "config"], outputs: ["psScrollY", "psScrollX", "psScrollUp", "psScrollDown", "psScrollLeft", "psScrollRight", "psYReachEnd", "psYReachStart", "psXReachEnd", "psXReachStart"], exportAs: ["ngxPerfectScrollbar"] }] });
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SearchComponent, decorators: [{
65
- type: Component,
66
- args: [{ selector: 'wac-search', template: "<div class=\"wac-search\" [ngClass]=\"{ open: openSelect || alwaysOpen }\" [zIndexToggle]=\"openSelect\" wzAutoHide (clickOutside)=\"closeSelect()\">\r\n <div class=\"wac-search__wrapper\">\r\n <button><i class=\"fal fa-search\"></i></button>\r\n <input [value]=\"search\" type=\"text\" required [placeholder]=\"placeholder\" (focus)=\"openSelect = true;\" (focusout)=\"sendEventFocusOut()\" (keyup)=\"setSearchValueToQuery($event)\" />\r\n </div>\r\n <div class=\"wac-search__absolute\" *ngIf=\"triggerOptions\" [ngClass]=\"{'hidden': !openSelect}\">\r\n <perfect-scrollbar [config]=\"{ suppressScrollX: true }\" *ngIf=\"triggerOptions.length > 0\">\r\n <div (click)=\"onClose()\" class=\"wac-select__content__item\" *ngFor=\"let item of triggerOptions; let index = index;\">\r\n <div [ngClass]=\"{ selected: item.checked }\" (click)=\"onSelectItem(index, item.id, item.label)\">\r\n {{ item.label }}\r\n </div>\r\n </div>\r\n </perfect-scrollbar>\r\n <div class=\"wac-select__content__empty\" *ngIf=\"triggerOptions.length === 0\">\r\n <span *ngIf=\"emptyResult\">{{emptyResult}}</span>\r\n </div>\r\n </div>\r\n</div>\r\n" }]
67
- }], ctorParameters: function () { return []; }, propDecorators: { placeholder: [{
68
- type: Input
69
- }], alwaysOpen: [{
70
- type: Input
71
- }], label: [{
72
- type: Input
73
- }], options: [{
74
- type: Input
75
- }], disableSearchIn: [{
76
- type: Input
77
- }], emptyResult: [{
78
- type: Input
79
- }], selectValue: [{
80
- type: Output
81
- }], searchKeyUp: [{
82
- type: Output
83
- }], searchFocusOut: [{
84
- type: Output
85
- }] } });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoL3NlYXJjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlYXJjaC9zZWFyY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBUTdFLE1BQU0sT0FBTyxlQUFlO0lBYzFCO1FBWFMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUduQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUMxQixXQUFNLEdBQVEsRUFBRSxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFVCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDekMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3pDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUN2QyxDQUFDO0lBRWhCLFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDckMsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBSztRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2pDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDcEM7YUFBTTtZQUNMLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztnQkFDdkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzdIO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUNwQztTQUNGO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQWEsRUFBRSxLQUFhLEVBQUUsS0FBYTtRQUN0RCxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDOUI7YUFBTTtZQUNMLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxLQUFLLElBQUksT0FBTyxDQUFDLEVBQUUsS0FBSyxLQUFLLENBQUMsQ0FBQztZQUN4RyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNyQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7OzRHQTdEVSxlQUFlO2dHQUFmLGVBQWUsK1RDUjVCLGtxQ0FrQkE7MkZEVmEsZUFBZTtrQkFKM0IsU0FBUzsrQkFDRSxZQUFZOzBFQUtiLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFJSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7U2VhcmNoT3B0aW9ufSBmcm9tICcuL3NoYXJlZC9zZWFyY2gtb3B0aW9uLm1vZGVsJztcclxuaW1wb3J0IHtTZWxlY3RJdGVtfSBmcm9tICcuLi9zZWxlY3Qvc2VsZWN0LWl0ZW1zLmR0byc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3dhYy1zZWFyY2gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2guY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGFsd2F5c09wZW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG9wdGlvbnM6IFNlYXJjaE9wdGlvbltdO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVTZWFyY2hJbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGVtcHR5UmVzdWx0ID0gJyc7XHJcbiAgc2VhcmNoOiBhbnkgPSAnJztcclxuICBvcGVuU2VsZWN0ID0gZmFsc2U7XHJcbiAgdHJpZ2dlck9wdGlvbnM6IFNlYXJjaE9wdGlvbltdO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RWYWx1ZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIEBPdXRwdXQoKSBzZWFyY2hLZXlVcCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBzZWFyY2hGb2N1c091dCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnRyaWdnZXJPcHRpb25zID0gdGhpcy5vcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgb25DbG9zZSgpIHtcclxuICAgIHRoaXMub3BlblNlbGVjdCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2V0U2VhcmNoVmFsdWVUb1F1ZXJ5KHZhbHVlKSB7XHJcbiAgICB0aGlzLnNlYXJjaCA9IHZhbHVlLnRhcmdldC52YWx1ZTtcclxuICAgIGlmICh0aGlzLmRpc2FibGVTZWFyY2hJbikge1xyXG4gICAgICB0aGlzLnRyaWdnZXJPcHRpb25zID0gdGhpcy5vcHRpb25zO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuc2VhcmNoLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLm9wZW5TZWxlY3QgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMudHJpZ2dlck9wdGlvbnMgPSB0aGlzLm9wdGlvbnMuZmlsdGVyKGVsZW1lbnQgPT4gZWxlbWVudC5sYWJlbC50b0xvd2VyQ2FzZSgpLmluZGV4T2YodGhpcy5zZWFyY2gudG9Mb3dlckNhc2UoKSkgIT09IC0xKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRyaWdnZXJPcHRpb25zID0gdGhpcy5vcHRpb25zO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlYXJjaEtleVVwLmVtaXQodGhpcy5zZWFyY2gpO1xyXG4gIH1cclxuXHJcbiAgc2VuZEV2ZW50Rm9jdXNPdXQoKSB7XHJcbiAgICB0aGlzLnNlYXJjaEZvY3VzT3V0LmVtaXQodGhpcy5zZWFyY2gpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VTZWxlY3QoKSB7XHJcbiAgICB0aGlzLm9wZW5TZWxlY3QgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0SXRlbShpbmRleDogbnVtYmVyLCB2YWx1ZTogbnVtYmVyLCBsYWJlbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNlYXJjaCA9ICcnO1xyXG4gICAgdGhpcy5vcGVuU2VsZWN0ID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlU2VhcmNoSW4pIHtcclxuICAgICAgdGhpcy5zZWxlY3RWYWx1ZS5lbWl0KGluZGV4KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGZpbmRJbk9wdGlvbiA9IHRoaXMub3B0aW9ucy5maW5kSW5kZXgoZWxlbWVudCA9PiBlbGVtZW50LmxhYmVsID09PSBsYWJlbCAmJiBlbGVtZW50LmlkID09PSB2YWx1ZSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0VmFsdWUuZW1pdChmaW5kSW5PcHRpb24pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXRBbGxWdWUoKSB7XHJcbiAgICB0aGlzLnNlYXJjaCA9ICcnO1xyXG4gICAgdGhpcy5jbG9zZVNlbGVjdCgpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIndhYy1zZWFyY2hcIiBbbmdDbGFzc109XCJ7IG9wZW46IG9wZW5TZWxlY3QgfHwgYWx3YXlzT3BlbiB9XCIgW3pJbmRleFRvZ2dsZV09XCJvcGVuU2VsZWN0XCIgd3pBdXRvSGlkZSAoY2xpY2tPdXRzaWRlKT1cImNsb3NlU2VsZWN0KClcIj5cclxuICA8ZGl2IGNsYXNzPVwid2FjLXNlYXJjaF9fd3JhcHBlclwiPlxyXG4gICAgPGJ1dHRvbj48aSBjbGFzcz1cImZhbCBmYS1zZWFyY2hcIj48L2k+PC9idXR0b24+XHJcbiAgICA8aW5wdXQgW3ZhbHVlXT1cInNlYXJjaFwiIHR5cGU9XCJ0ZXh0XCIgcmVxdWlyZWQgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgKGZvY3VzKT1cIm9wZW5TZWxlY3QgPSB0cnVlO1wiIChmb2N1c291dCk9XCJzZW5kRXZlbnRGb2N1c091dCgpXCIgKGtleXVwKT1cInNldFNlYXJjaFZhbHVlVG9RdWVyeSgkZXZlbnQpXCIgLz5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwid2FjLXNlYXJjaF9fYWJzb2x1dGVcIiAqbmdJZj1cInRyaWdnZXJPcHRpb25zXCIgW25nQ2xhc3NdPVwieydoaWRkZW4nOiAhb3BlblNlbGVjdH1cIj5cclxuICAgIDxwZXJmZWN0LXNjcm9sbGJhciBbY29uZmlnXT1cInsgc3VwcHJlc3NTY3JvbGxYOiB0cnVlIH1cIiAqbmdJZj1cInRyaWdnZXJPcHRpb25zLmxlbmd0aCA+IDBcIj5cclxuICAgICAgPGRpdiAoY2xpY2spPVwib25DbG9zZSgpXCIgY2xhc3M9XCJ3YWMtc2VsZWN0X19jb250ZW50X19pdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdHJpZ2dlck9wdGlvbnM7IGxldCBpbmRleCA9IGluZGV4O1wiPlxyXG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwieyBzZWxlY3RlZDogaXRlbS5jaGVja2VkIH1cIiAoY2xpY2spPVwib25TZWxlY3RJdGVtKGluZGV4LCBpdGVtLmlkLCBpdGVtLmxhYmVsKVwiPlxyXG4gICAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvcGVyZmVjdC1zY3JvbGxiYXI+XHJcbiAgICA8ZGl2IGNsYXNzPVwid2FjLXNlbGVjdF9fY29udGVudF9fZW1wdHlcIiAqbmdJZj1cInRyaWdnZXJPcHRpb25zLmxlbmd0aCA9PT0gMFwiPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cImVtcHR5UmVzdWx0XCI+e3tlbXB0eVJlc3VsdH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,98 +0,0 @@
1
- import { Directive, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core';
2
- import { OPTION_SELECTION_HANDLER } from './option-selection-handler.token';
3
- import * as i0 from "@angular/core";
4
- // todo create a select module and in the select-option.directive.ts
5
- export class SelectOptionDirective {
6
- onClick(event) {
7
- this.onSelectOption();
8
- if (this.onClickEventPreventDefault) {
9
- event.preventDefault();
10
- }
11
- }
12
- get isOptionSelected() {
13
- return this.selected;
14
- }
15
- get isOptionDisabled() {
16
- return this.disabled || this.disabledByParent;
17
- }
18
- get cursor() {
19
- return this.disabled || this.disabledByParent ? 'not-allowed' : 'pointer';
20
- }
21
- constructor(contentRef, changeDetectorRef) {
22
- this.contentRef = contentRef;
23
- this.changeDetectorRef = changeDetectorRef;
24
- this.disabled = false;
25
- this.disabledByParent = false;
26
- this.selected = false;
27
- this.onClickEventPreventDefault = true;
28
- this.selectedChange = new EventEmitter();
29
- this.multiple = false;
30
- }
31
- setSelected(selected) {
32
- this.selected = selected;
33
- this.changeDetectorRef.markForCheck();
34
- }
35
- onSelectOption() {
36
- if (this.disabled || this.disabledByParent) {
37
- return;
38
- }
39
- this.selected = this.multiple ? !this.selected : true; // If not multiple mode -> can not be unselected
40
- this.selectedChange.emit(this.selected);
41
- this.changeDetectorRef.markForCheck();
42
- }
43
- getValue() {
44
- return this.value;
45
- }
46
- setValue(value) {
47
- this.value = value;
48
- this.changeDetectorRef.markForCheck();
49
- }
50
- isSelected() {
51
- return this.selected;
52
- }
53
- getContentRef() {
54
- return this.contentRef;
55
- }
56
- setDisabledState(isDisabled) {
57
- this.disabledByParent = isDisabled;
58
- this.changeDetectorRef.markForCheck();
59
- }
60
- setMultiple(multiple) {
61
- this.multiple = multiple;
62
- this.changeDetectorRef.markForCheck();
63
- }
64
- }
65
- SelectOptionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SelectOptionDirective, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
66
- SelectOptionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.5", type: SelectOptionDirective, isStandalone: true, selector: "[wacOption]", inputs: { disabled: "disabled", value: "value", selected: "selected", onClickEventPreventDefault: "onClickEventPreventDefault" }, outputs: { selectedChange: "selectedChange" }, host: { listeners: { "click": "onClick($event)" }, properties: { "class.wac-option-selected": "this.isOptionSelected", "class.wac-option-disabled": "this.isOptionDisabled", "style.cursor": "this.cursor" } }, providers: [{ provide: OPTION_SELECTION_HANDLER, useExisting: SelectOptionDirective }], exportAs: ["wacOption"], ngImport: i0 });
67
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SelectOptionDirective, decorators: [{
68
- type: Directive,
69
- args: [{
70
- selector: '[wacOption]',
71
- providers: [{ provide: OPTION_SELECTION_HANDLER, useExisting: SelectOptionDirective }],
72
- exportAs: 'wacOption',
73
- standalone: true
74
- }]
75
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { onClick: [{
76
- type: HostListener,
77
- args: ['click', ['$event']]
78
- }], isOptionSelected: [{
79
- type: HostBinding,
80
- args: ['class.wac-option-selected']
81
- }], isOptionDisabled: [{
82
- type: HostBinding,
83
- args: ['class.wac-option-disabled']
84
- }], cursor: [{
85
- type: HostBinding,
86
- args: ['style.cursor']
87
- }], disabled: [{
88
- type: Input
89
- }], value: [{
90
- type: Input
91
- }], selected: [{
92
- type: Input
93
- }], onClickEventPreventDefault: [{
94
- type: Input
95
- }], selectedChange: [{
96
- type: Output
97
- }] } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW9wdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9vcHRpb24vc2VsZWN0LW9wdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQWMsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqSSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFFNUUsb0VBQW9FO0FBT3BFLE1BQU0sT0FBTyxxQkFBcUI7SUFFRyxPQUFPLENBQUMsS0FBbUI7UUFDNUQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksSUFBSSxDQUFDLDBCQUEwQixFQUFFO1lBQ25DLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRCxJQUE4QyxnQkFBZ0I7UUFDNUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUE4QyxnQkFBZ0I7UUFDNUQsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBaUMsTUFBTTtRQUNyQyxPQUFPLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUM1RSxDQUFDO0lBb0JELFlBQXNCLFVBQXNCLEVBQVksaUJBQW9DO1FBQXRFLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBWSxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBakI1RixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRVAscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBTW5DLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFakIsK0JBQTBCLEdBQUcsSUFBSSxDQUFDO1FBRzNDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUU3QyxhQUFRLEdBQUcsS0FBSyxDQUFDO0lBRThFLENBQUM7SUFFaEcsV0FBVyxDQUFDLFFBQWlCO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUMsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLGdEQUFnRDtRQUN2RyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBbUI7UUFDMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsVUFBVSxDQUFDO1FBQ25DLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWlCO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDOztrSEFoRlUscUJBQXFCO3NHQUFyQixxQkFBcUIsMmJBSnJCLENBQUMsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLENBQUM7MkZBSTNFLHFCQUFxQjtrQkFOakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsV0FBVyx1QkFBdUIsRUFBRSxDQUFDO29CQUN0RixRQUFRLEVBQUUsV0FBVztvQkFDckIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCO2lJQUdvQyxPQUFPO3NCQUF6QyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFPYSxnQkFBZ0I7c0JBQTdELFdBQVc7dUJBQUMsMkJBQTJCO2dCQUlNLGdCQUFnQjtzQkFBN0QsV0FBVzt1QkFBQywyQkFBMkI7Z0JBSVAsTUFBTTtzQkFBdEMsV0FBVzt1QkFBQyxjQUFjO2dCQUszQixRQUFRO3NCQURQLEtBQUs7Z0JBTU4sS0FBSztzQkFESixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFHRywwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBR04sY0FBYztzQkFEYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9wdGlvblNlbGVjdGlvbkhhbmRsZXIgfSBmcm9tICcuL29wdGlvbi1zZWxlY3Rpb24taGFuZGxlci5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBPUFRJT05fU0VMRUNUSU9OX0hBTkRMRVIgfSBmcm9tICcuL29wdGlvbi1zZWxlY3Rpb24taGFuZGxlci50b2tlbic7XHJcblxyXG4vLyB0b2RvIGNyZWF0ZSBhIHNlbGVjdCBtb2R1bGUgYW5kIGluIHRoZSBzZWxlY3Qtb3B0aW9uLmRpcmVjdGl2ZS50c1xyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1t3YWNPcHRpb25dJyxcclxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE9QVElPTl9TRUxFQ1RJT05fSEFORExFUiwgdXNlRXhpc3Rpbmc6IFNlbGVjdE9wdGlvbkRpcmVjdGl2ZSB9XSxcclxuICBleHBvcnRBczogJ3dhY09wdGlvbicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0T3B0aW9uRGlyZWN0aXZlPFRPcHRpb25WYWx1ZT4gaW1wbGVtZW50cyBPcHRpb25TZWxlY3Rpb25IYW5kbGVyPFRPcHRpb25WYWx1ZT4ge1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pIG9uQ2xpY2soZXZlbnQ6IFBvaW50ZXJFdmVudCkge1xyXG4gICAgdGhpcy5vblNlbGVjdE9wdGlvbigpO1xyXG4gICAgaWYgKHRoaXMub25DbGlja0V2ZW50UHJldmVudERlZmF1bHQpIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3Mud2FjLW9wdGlvbi1zZWxlY3RlZCcpIGdldCBpc09wdGlvblNlbGVjdGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQ7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLndhYy1vcHRpb24tZGlzYWJsZWQnKSBnZXQgaXNPcHRpb25EaXNhYmxlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWRCeVBhcmVudDtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnc3R5bGUuY3Vyc29yJykgZ2V0IGN1cnNvciAoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkQnlQYXJlbnQgPyAnbm90LWFsbG93ZWQnIDogJ3BvaW50ZXInO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBkaXNhYmxlZCA9IGZhbHNlO1xyXG5cclxuICBwcm90ZWN0ZWQgZGlzYWJsZWRCeVBhcmVudCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHZhbHVlOiBUT3B0aW9uVmFsdWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgb25DbGlja0V2ZW50UHJldmVudERlZmF1bHQgPSB0cnVlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBzZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgbXVsdGlwbGUgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNvbnRlbnRSZWY6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XHJcblxyXG4gIHNldFNlbGVjdGVkKHNlbGVjdGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkID0gc2VsZWN0ZWQ7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RPcHRpb24oKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkQnlQYXJlbnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZCA9IHRoaXMubXVsdGlwbGUgPyAhdGhpcy5zZWxlY3RlZCA6IHRydWU7IC8vIElmIG5vdCBtdWx0aXBsZSBtb2RlIC0+IGNhbiBub3QgYmUgdW5zZWxlY3RlZFxyXG4gICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWQpO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIGdldFZhbHVlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XHJcbiAgfVxyXG5cclxuICBzZXRWYWx1ZSh2YWx1ZTogVE9wdGlvblZhbHVlKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgaXNTZWxlY3RlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29udGVudFJlZigpOiBFbGVtZW50UmVmPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGVudFJlZjtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZEJ5UGFyZW50ID0gaXNEaXNhYmxlZDtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBzZXRNdWx0aXBsZShtdWx0aXBsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5tdWx0aXBsZSA9IG11bHRpcGxlO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcbn0iXX0=
@@ -1,198 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, HostBinding, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { filter, takeUntil } from 'rxjs/operators';
4
- import { ValueChangeService } from './value-change.service';
5
- import { Subject } from 'rxjs';
6
- import { SelectSearchTriggerComponent } from '../select-search-trigger/select-search-trigger.component';
7
- import { DOWN_ARROW, ENTER, ESCAPE, hasModifierKey, LEFT_ARROW, RIGHT_ARROW, TAB, UP_ARROW, } from '@angular/cdk/keycodes';
8
- import { LabelComponent } from '../../common/label/label.component';
9
- import { SelectDirective } from './select.directive';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "./value-change.service";
12
- import * as i2 from "@angular/common";
13
- import * as i3 from "../../../directives/auto-hide/auto-hide.directive";
14
- import * as i4 from "../../../directives/zindex-toggle/zindex-toggle.directive";
15
- import * as i5 from "ngx-perfect-scrollbar";
16
- import * as i6 from "@ngx-translate/core";
17
- export class SelectComponent extends SelectDirective {
18
- /** Whether the component is required. */
19
- get required() {
20
- return this._required ?? false;
21
- }
22
- set required(value) {
23
- this._required = value;
24
- }
25
- get selectedOptionContent() {
26
- return this.valueChangeService.selectedOptionContent;
27
- }
28
- ;
29
- set keepPanelOpen(keepPanelOpen) {
30
- this.openPanel = keepPanelOpen;
31
- this._keepPanelOpen = keepPanelOpen;
32
- }
33
- get keepPanelOpen() {
34
- return this._keepPanelOpen;
35
- }
36
- set openPanel(openPanel) {
37
- const wasOpen = this._openPanel;
38
- this._openPanel = this.keepPanelOpen || openPanel;
39
- if (openPanel) {
40
- this.customSearchTrigger?.setFocus();
41
- }
42
- if (wasOpen) {
43
- this.onSelectTouch(this.value);
44
- }
45
- }
46
- get openPanel() {
47
- return this._openPanel;
48
- }
49
- constructor(valueChangeService) {
50
- super(valueChangeService);
51
- this.valueChangeService = valueChangeService;
52
- //! Refacto improve sroll on mobile, see with Pauline
53
- // angular material select https://github.com/angular/components/blob/main/src/material/select/select.ts
54
- this.role = 'combobox';
55
- this.small = false;
56
- this._openPanel = false;
57
- this.openPanelChange = new EventEmitter();
58
- this.tabIndex = -1;
59
- this._searchByTyping = true;
60
- this.isDestroyed$ = new Subject();
61
- this.isKeyBoardAction = false;
62
- this.skipIfTriggeredByKeyboardAction = () => {
63
- if (!this.isKeyBoardAction) {
64
- return true;
65
- }
66
- this.isKeyBoardAction = false;
67
- return false;
68
- };
69
- this.onSelectTouch = () => { };
70
- }
71
- ngOnInit() {
72
- super.ngOnInit();
73
- this.closeTabOnValueChange();
74
- }
75
- closeTabOnValueChange() {
76
- this.valueChangeService.valueChange$.pipe(takeUntil(this.isDestroyed$), filter(this.skipIfTriggeredByKeyboardAction)).subscribe(() => {
77
- this.onClosePanel();
78
- });
79
- }
80
- onTogglePanel() {
81
- this.openPanel = !this.openPanel;
82
- this.openPanelChange.emit(this.openPanel);
83
- }
84
- onClosePanel() {
85
- this.openPanel = false;
86
- this.openPanelChange.emit(this.openPanel);
87
- }
88
- onKeydown(event) {
89
- const keyCode = event.keyCode;
90
- if (event.keyCode === TAB) {
91
- // go to the next element with tabindex
92
- if (this.openPanel) {
93
- this.openPanel = false;
94
- }
95
- return;
96
- }
97
- if (this.disabled) {
98
- return;
99
- }
100
- const actionTriggered = this.openPanel ? this._handleOpenKeydown(event) : this._handleClosedKeydown(event);
101
- if (actionTriggered) {
102
- return;
103
- }
104
- this.isKeyBoardAction = true;
105
- super.onKeydown(event);
106
- }
107
- handleKeyboardActionWithSearch(event) {
108
- const keyCode = event.keyCode;
109
- if (keyCode === DOWN_ARROW) {
110
- this.isKeyBoardAction = true;
111
- this.valueChangeService.selectNextOption();
112
- return true;
113
- }
114
- if (keyCode === UP_ARROW) {
115
- this.isKeyBoardAction = true;
116
- this.valueChangeService.selectPreviousOption();
117
- return true;
118
- }
119
- return false;
120
- }
121
- /** Handles keyboard events while the select is closed. */
122
- _handleClosedKeydown(event) {
123
- const keyCode = event.keyCode;
124
- const isArrowKey = keyCode === DOWN_ARROW ||
125
- keyCode === UP_ARROW ||
126
- keyCode === LEFT_ARROW ||
127
- keyCode === RIGHT_ARROW;
128
- const isOpenKey = keyCode === ENTER;
129
- // Open the select on ALT + arrow key to match the native <select>
130
- if ((isOpenKey && !hasModifierKey(event)) ||
131
- (event.altKey && isArrowKey)) {
132
- this.openPanel = true;
133
- return true;
134
- }
135
- return false;
136
- }
137
- /** Handles keyboard events when the selected is open. */
138
- _handleOpenKeydown(event) {
139
- const keyCode = event.keyCode;
140
- const isArrowKey = keyCode === DOWN_ARROW ||
141
- keyCode === UP_ARROW ||
142
- keyCode === LEFT_ARROW ||
143
- keyCode === RIGHT_ARROW;
144
- const isEscapeKey = keyCode === ESCAPE || keyCode === ENTER || keyCode === TAB;
145
- if ((isArrowKey && event.altKey) || isEscapeKey) {
146
- // Close the select on ALT + arrow key to match the native <select>
147
- this.openPanel = false;
148
- if (this.customSearchTrigger && keyCode !== TAB) {
149
- // If a escape key is used with the search, the focus on the select is loosed. And we can not interact with the select anymore.
150
- this.selectHeader.nativeElement.focus();
151
- }
152
- return true;
153
- }
154
- return false;
155
- }
156
- registerOnTouched(fn) {
157
- this.onSelectTouch = fn;
158
- }
159
- ngOnDestroy() {
160
- this.isDestroyed$.next();
161
- this.isDestroyed$.complete();
162
- }
163
- }
164
- SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SelectComponent, deps: [{ token: i1.ValueChangeService }], target: i0.ɵɵFactoryTarget.Component });
165
- SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: SelectComponent, selector: "wac-select", inputs: { required: "required", small: "small", keepPanelOpen: "keepPanelOpen", openPanel: "openPanel" }, outputs: { openPanelChange: "openPanelChange" }, host: { properties: { "attr.role": "this.role" } }, providers: [
166
- { provide: NG_VALUE_ACCESSOR, useExisting: SelectComponent, multi: true },
167
- ValueChangeService
168
- ], queries: [{ propertyName: "customSearchTrigger", first: true, predicate: SelectSearchTriggerComponent, descendants: true }, { propertyName: "label", first: true, predicate: LabelComponent, descendants: true }], viewQueries: [{ propertyName: "selectHeader", first: true, predicate: ["selectHeader"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<p *ngIf=\"!!label\" class=\"wac-select__label\">\r\n <ng-content select=\"wac-label, .wac-label\" ></ng-content>\r\n</p>\r\n\r\n<div\r\n class=\"wac-select\"\r\n wzAutoHide\r\n (clickOutside)=\"onClosePanel()\"\r\n [triggerElement]=\"'wac-select__header__selection'\"\r\n [zIndexToggle]=\"openPanel\"\r\n [ngClass]=\"{'small': small}\"\r\n >\r\n\r\n <div #selectHeader class=\"wac-select__header\" [ngClass]=\"{ 'select-disabled' : disabled }\" (click)=\"!disabled && onTogglePanel()\" tabindex=\"0\">\r\n\r\n <ng-container [ngTemplateOutlet]=\"openPanel ? openPanelTrigger : closePanelTrigger\" >\r\n\r\n <ng-template #closePanelTrigger>\r\n <ng-container [ngTemplateOutlet]=\"defaultTrigger\"></ng-container>\r\n </ng-template>\r\n\r\n <ng-template #openPanelTrigger>\r\n <ng-content *ngIf=\"!!customSearchTrigger; else defaultTrigger\" select=\"wac-select-search-trigger\" ></ng-content>\r\n </ng-template>\r\n\r\n <ng-template #defaultTrigger>\r\n <ng-content *ngIf=\"!selectedOptionContent\" select=\"wac-placeholder,[role=placeholder]\"></ng-content>\r\n <div\r\n class=\"wac-select__header__selection wac-option__placeholder\"\r\n *ngIf=\"!!selectedOptionContent\"\r\n [innerHtml]=\"selectedOptionContent\">\r\n </div>\r\n </ng-template>\r\n\r\n </ng-container>\r\n\r\n <span class=\"wac-select__header__chevron\"><i class=\"fas fa-chevron-down\"></i></span>\r\n\r\n </div>\r\n\r\n\r\n <div class=\"wac-select__content\" *ngIf=\"!disabled\" [ngClass]=\"{ hidden: !openPanel, open: openPanel }\">\r\n\r\n <perfect-scrollbar [config]=\"{ suppressScrollX: true }\">\r\n <ng-content\r\n select=\"wac-option-call-to-action, wac-option, option, .option, [selectOption]\">\r\n </ng-content>\r\n </perfect-scrollbar>\r\n\r\n <div *ngIf=\"!optionChildren?.length\" class=\"wac-select__content__empty\">\r\n <span>{{'wac.datatable.noresult' | translate}}</span>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.AutoHideDirective, selector: "[wzAutoHide]", inputs: ["triggerElement", "forceOn"], outputs: ["clickOutside"] }, { kind: "directive", type: i4.ZindexToggleDirective, selector: "[zIndexToggle]", inputs: ["zIndexToggle"], outputs: ["onEventChange"] }, { kind: "component", type: i5.PerfectScrollbarComponent, selector: "perfect-scrollbar", inputs: ["disabled", "usePSClass", "autoPropagation", "scrollIndicators", "config"], outputs: ["psScrollY", "psScrollX", "psScrollUp", "psScrollDown", "psScrollLeft", "psScrollRight", "psYReachEnd", "psYReachStart", "psXReachEnd", "psXReachStart"], exportAs: ["ngxPerfectScrollbar"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
169
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SelectComponent, decorators: [{
170
- type: Component,
171
- args: [{ selector: 'wac-select', providers: [
172
- { provide: NG_VALUE_ACCESSOR, useExisting: SelectComponent, multi: true },
173
- ValueChangeService
174
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, template: "<p *ngIf=\"!!label\" class=\"wac-select__label\">\r\n <ng-content select=\"wac-label, .wac-label\" ></ng-content>\r\n</p>\r\n\r\n<div\r\n class=\"wac-select\"\r\n wzAutoHide\r\n (clickOutside)=\"onClosePanel()\"\r\n [triggerElement]=\"'wac-select__header__selection'\"\r\n [zIndexToggle]=\"openPanel\"\r\n [ngClass]=\"{'small': small}\"\r\n >\r\n\r\n <div #selectHeader class=\"wac-select__header\" [ngClass]=\"{ 'select-disabled' : disabled }\" (click)=\"!disabled && onTogglePanel()\" tabindex=\"0\">\r\n\r\n <ng-container [ngTemplateOutlet]=\"openPanel ? openPanelTrigger : closePanelTrigger\" >\r\n\r\n <ng-template #closePanelTrigger>\r\n <ng-container [ngTemplateOutlet]=\"defaultTrigger\"></ng-container>\r\n </ng-template>\r\n\r\n <ng-template #openPanelTrigger>\r\n <ng-content *ngIf=\"!!customSearchTrigger; else defaultTrigger\" select=\"wac-select-search-trigger\" ></ng-content>\r\n </ng-template>\r\n\r\n <ng-template #defaultTrigger>\r\n <ng-content *ngIf=\"!selectedOptionContent\" select=\"wac-placeholder,[role=placeholder]\"></ng-content>\r\n <div\r\n class=\"wac-select__header__selection wac-option__placeholder\"\r\n *ngIf=\"!!selectedOptionContent\"\r\n [innerHtml]=\"selectedOptionContent\">\r\n </div>\r\n </ng-template>\r\n\r\n </ng-container>\r\n\r\n <span class=\"wac-select__header__chevron\"><i class=\"fas fa-chevron-down\"></i></span>\r\n\r\n </div>\r\n\r\n\r\n <div class=\"wac-select__content\" *ngIf=\"!disabled\" [ngClass]=\"{ hidden: !openPanel, open: openPanel }\">\r\n\r\n <perfect-scrollbar [config]=\"{ suppressScrollX: true }\">\r\n <ng-content\r\n select=\"wac-option-call-to-action, wac-option, option, .option, [selectOption]\">\r\n </ng-content>\r\n </perfect-scrollbar>\r\n\r\n <div *ngIf=\"!optionChildren?.length\" class=\"wac-select__content__empty\">\r\n <span>{{'wac.datatable.noresult' | translate}}</span>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n" }]
175
- }], ctorParameters: function () { return [{ type: i1.ValueChangeService }]; }, propDecorators: { role: [{
176
- type: HostBinding,
177
- args: ['attr.role']
178
- }], customSearchTrigger: [{
179
- type: ContentChild,
180
- args: [SelectSearchTriggerComponent]
181
- }], label: [{
182
- type: ContentChild,
183
- args: [LabelComponent]
184
- }], selectHeader: [{
185
- type: ViewChild,
186
- args: ['selectHeader']
187
- }], required: [{
188
- type: Input
189
- }], small: [{
190
- type: Input
191
- }], keepPanelOpen: [{
192
- type: Input
193
- }], openPanel: [{
194
- type: Input
195
- }], openPanelChange: [{
196
- type: Output
197
- }] } });
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBYyxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2TCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDeEcsT0FBTyxFQUNMLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLGNBQWMsRUFDZCxVQUFVLEVBQ1YsV0FBVyxFQUNYLEdBQUcsRUFDSCxRQUFRLEdBQ1QsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7OztBQWFyRCxNQUFNLE9BQU8sZUFBOEIsU0FBUSxlQUE2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c0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVmFsdWVDaGFuZ2VTZXJ2aWNlIH0gZnJvbSAnLi92YWx1ZS1jaGFuZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2VsZWN0U2VhcmNoVHJpZ2dlckNvbXBvbmVudCB9IGZyb20gJy4uL3NlbGVjdC1zZWFyY2gtdHJpZ2dlci9zZWxlY3Qtc2VhcmNoLXRyaWdnZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBET1dOX0FSUk9XLFxyXG4gIEVOVEVSLFxyXG4gIEVTQ0FQRSxcclxuICBoYXNNb2RpZmllcktleSxcclxuICBMRUZUX0FSUk9XLFxyXG4gIFJJR0hUX0FSUk9XLFxyXG4gIFRBQixcclxuICBVUF9BUlJPVyxcclxufSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xyXG5pbXBvcnQgeyBMYWJlbENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbW1vbi9sYWJlbC9sYWJlbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWxlY3REaXJlY3RpdmUgfSBmcm9tICcuL3NlbGVjdC5kaXJlY3RpdmUnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnd2FjLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogU2VsZWN0Q29tcG9uZW50LCBtdWx0aTogdHJ1ZSB9LFxyXG4gICAgVmFsdWVDaGFuZ2VTZXJ2aWNlXHJcbiAgXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbXBvbmVudDxUT3B0aW9uVmFsdWU+IGV4dGVuZHMgU2VsZWN0RGlyZWN0aXZlPFRPcHRpb25WYWx1ZT4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgLy8hIFJlZmFjdG8gaW1wcm92ZSBzcm9sbCBvbiBtb2JpbGUsIHNlZSB3aXRoIFBhdWxpbmVcclxuICAvLyBhbmd1bGFyIG1hdGVyaWFsIHNlbGVjdCBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2Jsb2IvbWFpbi9zcmMvbWF0ZXJpYWwvc2VsZWN0L3NlbGVjdC50c1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpIHJvbGUgPSAnY29tYm9ib3gnO1xyXG5cclxuICBAQ29udGVudENoaWxkKFNlbGVjdFNlYXJjaFRyaWdnZXJDb21wb25lbnQpIGN1c3RvbVNlYXJjaFRyaWdnZXI6IFNlbGVjdFNlYXJjaFRyaWdnZXJDb21wb25lbnQ7XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoTGFiZWxDb21wb25lbnQpIGxhYmVsOiBMYWJlbENvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnc2VsZWN0SGVhZGVyJykgc2VsZWN0SGVhZGVyOiBFbGVtZW50UmVmO1xyXG5cclxuICAvKiogV2hldGhlciB0aGUgY29tcG9uZW50IGlzIHJlcXVpcmVkLiAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkID8/IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9yZXF1aXJlZCA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVxdWlyZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcblxyXG4gIGdldCBzZWxlY3RlZE9wdGlvbkNvbnRlbnQoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLnZhbHVlQ2hhbmdlU2VydmljZS5zZWxlY3RlZE9wdGlvbkNvbnRlbnQ7XHJcbiAgfTtcclxuXHJcbiAgQElucHV0KCkgc21hbGwgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQga2VlcFBhbmVsT3BlbihrZWVwUGFuZWxPcGVuOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLm9wZW5QYW5lbCA9IGtlZXBQYW5lbE9wZW47XHJcbiAgICB0aGlzLl9rZWVwUGFuZWxPcGVuID0ga2VlcFBhbmVsT3BlbjtcclxuICB9XHJcblxyXG4gIGdldCBrZWVwUGFuZWxPcGVuKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2tlZXBQYW5lbE9wZW4gO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfa2VlcFBhbmVsT3BlbjogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgb3BlblBhbmVsKG9wZW5QYW5lbDogYm9vbGVhbikge1xyXG4gICAgY29uc3Qgd2FzT3BlbiA9IHRoaXMuX29wZW5QYW5lbDtcclxuICAgIHRoaXMuX29wZW5QYW5lbCA9IHRoaXMua2VlcFBhbmVsT3BlbiB8fCBvcGVuUGFuZWw7XHJcblxyXG4gICAgaWYgKG9wZW5QYW5lbCkge1xyXG4gICAgICB0aGlzLmN1c3RvbVNlYXJjaFRyaWdnZXI/LnNldEZvY3VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHdhc09wZW4pIHtcclxuICAgICAgdGhpcy5vblNlbGVjdFRvdWNoKHRoaXMudmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IG9wZW5QYW5lbCgpIDogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fb3BlblBhbmVsO1xyXG4gIH1cclxuICBfb3BlblBhbmVsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKSBvcGVuUGFuZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIG92ZXJyaWRlIHRhYkluZGV4OiBudW1iZXIgPSAtMTtcclxuXHJcbiAgb3ZlcnJpZGUgX3NlYXJjaEJ5VHlwaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgaXNEZXN0cm95ZWQkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgcHJpdmF0ZSBpc0tleUJvYXJkQWN0aW9uID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIHZhbHVlQ2hhbmdlU2VydmljZTogVmFsdWVDaGFuZ2VTZXJ2aWNlPFRPcHRpb25WYWx1ZT4sXHJcbiAgICApIHtcclxuICAgICAgc3VwZXIodmFsdWVDaGFuZ2VTZXJ2aWNlKTtcclxuICAgIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5jbG9zZVRhYk9uVmFsdWVDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xvc2VUYWJPblZhbHVlQ2hhbmdlKCkge1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZVNlcnZpY2UudmFsdWVDaGFuZ2UkLnBpcGUodGFrZVVudGlsKHRoaXMuaXNEZXN0cm95ZWQkKSwgZmlsdGVyKHRoaXMuc2tpcElmVHJpZ2dlcmVkQnlLZXlib2FyZEFjdGlvbikpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMub25DbG9zZVBhbmVsKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2tpcElmVHJpZ2dlcmVkQnlLZXlib2FyZEFjdGlvbiA9ICgpID0+IHtcclxuICAgIGlmKCF0aGlzLmlzS2V5Qm9hcmRBY3Rpb24pIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzS2V5Qm9hcmRBY3Rpb24gPSBmYWxzZTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uVG9nZ2xlUGFuZWwoKSB7XHJcbiAgICB0aGlzLm9wZW5QYW5lbCA9ICF0aGlzLm9wZW5QYW5lbDtcclxuICAgIHRoaXMub3BlblBhbmVsQ2hhbmdlLmVtaXQodGhpcy5vcGVuUGFuZWwpO1xyXG4gIH1cclxuXHJcbiAgb25DbG9zZVBhbmVsKCkge1xyXG4gICAgdGhpcy5vcGVuUGFuZWwgPSBmYWxzZTtcclxuICAgIHRoaXMub3BlblBhbmVsQ2hhbmdlLmVtaXQodGhpcy5vcGVuUGFuZWwpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBrZXlDb2RlID0gZXZlbnQua2V5Q29kZTtcclxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSBUQUIpIHtcclxuICAgICAgLy8gZ28gdG8gdGhlIG5leHQgZWxlbWVudCB3aXRoIHRhYmluZGV4XHJcbiAgICAgIGlmICh0aGlzLm9wZW5QYW5lbCkge1xyXG4gICAgICAgIHRoaXMub3BlblBhbmVsID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGFjdGlvblRyaWdnZXJlZCA9IHRoaXMub3BlblBhbmVsID8gdGhpcy5faGFuZGxlT3BlbktleWRvd24oZXZlbnQpIDogdGhpcy5faGFuZGxlQ2xvc2VkS2V5ZG93bihldmVudCk7XHJcblxyXG4gICAgaWYgKGFjdGlvblRyaWdnZXJlZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzS2V5Qm9hcmRBY3Rpb24gPSB0cnVlO1xyXG4gICAgc3VwZXIub25LZXlkb3duKGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUtleWJvYXJkQWN0aW9uV2l0aFNlYXJjaChldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qga2V5Q29kZSA9IGV2ZW50LmtleUNvZGU7XHJcblxyXG4gICAgaWYgKGtleUNvZGUgPT09IERPV05fQVJST1cpIHtcclxuICAgICAgdGhpcy5pc0tleUJvYXJkQWN0aW9uID0gdHJ1ZTtcclxuICAgICAgdGhpcy52YWx1ZUNoYW5nZVNlcnZpY2Uuc2VsZWN0TmV4dE9wdGlvbigpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmIChrZXlDb2RlID09PSBVUF9BUlJPVykge1xyXG4gICAgICB0aGlzLmlzS2V5Qm9hcmRBY3Rpb24gPSB0cnVlO1xyXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlU2VydmljZS5zZWxlY3RQcmV2aW91c09wdGlvbigpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKiBIYW5kbGVzIGtleWJvYXJkIGV2ZW50cyB3aGlsZSB0aGUgc2VsZWN0IGlzIGNsb3NlZC4gKi9cclxuICBwcml2YXRlIF9oYW5kbGVDbG9zZWRLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBrZXlDb2RlID0gZXZlbnQua2V5Q29kZTtcclxuICAgIGNvbnN0IGlzQXJyb3dLZXkgPVxyXG4gICAgICBrZXlDb2RlID09PSBET1dOX0FSUk9XIHx8XHJcbiAgICAgIGtleUNvZGUgPT09IFVQX0FSUk9XIHx8XHJcbiAgICAgIGtleUNvZGUgPT09IExFRlRfQVJST1cgfHxcclxuICAgICAga2V5Q29kZSA9PT0gUklHSFRfQVJST1c7XHJcbiAgICBjb25zdCBpc09wZW5LZXkgPSBrZXlDb2RlID09PSBFTlRFUjtcclxuICAgIC8vIE9wZW4gdGhlIHNlbGVjdCBvbiBBTFQgKyBhcnJvdyBrZXkgdG8gbWF0Y2ggdGhlIG5hdGl2ZSA8c2VsZWN0PlxyXG4gICAgaWYgKFxyXG4gICAgICAoaXNPcGVuS2V5ICYmICFoYXNNb2RpZmllcktleShldmVudCkpIHx8XHJcbiAgICAgIChldmVudC5hbHRLZXkgJiYgaXNBcnJvd0tleSlcclxuICAgICkge1xyXG4gICAgICB0aGlzLm9wZW5QYW5lbCA9IHRydWU7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIC8qKiBIYW5kbGVzIGtleWJvYXJkIGV2ZW50cyB3aGVuIHRoZSBzZWxlY3RlZCBpcyBvcGVuLiAqL1xyXG4gIHByaXZhdGUgX2hhbmRsZU9wZW5LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBrZXlDb2RlID0gZXZlbnQua2V5Q29kZTtcclxuICAgIGNvbnN0IGlzQXJyb3dLZXkgPVxyXG4gICAgICBrZXlDb2RlID09PSBET1dOX0FSUk9XIHx8XHJcbiAgICAgIGtleUNvZGUgPT09IFVQX0FSUk9XIHx8XHJcbiAgICAgIGtleUNvZGUgPT09IExFRlRfQVJST1cgfHxcclxuICAgICAga2V5Q29kZSA9PT0gUklHSFRfQVJST1c7XHJcbiAgICBjb25zdCBpc0VzY2FwZUtleSA9IGtleUNvZGUgPT09IEVTQ0FQRSB8fCBrZXlDb2RlID09PSBFTlRFUiB8fCBrZXlDb2RlID09PSBUQUI7XHJcblxyXG4gICAgaWYgKChpc0Fycm93S2V5ICYmIGV2ZW50LmFsdEtleSkgfHwgaXNFc2NhcGVLZXkpIHtcclxuICAgICAgLy8gQ2xvc2UgdGhlIHNlbGVjdCBvbiBBTFQgKyBhcnJvdyBrZXkgdG8gbWF0Y2ggdGhlIG5hdGl2ZSA8c2VsZWN0PlxyXG4gICAgICB0aGlzLm9wZW5QYW5lbCA9IGZhbHNlO1xyXG5cclxuICAgICAgaWYgKHRoaXMuY3VzdG9tU2VhcmNoVHJpZ2dlciAmJiBrZXlDb2RlICE9PSBUQUIpIHtcclxuICAgICAgICAvLyBJZiBhIGVzY2FwZSBrZXkgaXMgdXNlZCB3aXRoIHRoZSBzZWFyY2gsIHRoZSBmb2N1cyBvbiB0aGUgc2VsZWN0IGlzIGxvb3NlZC4gQW5kIHdlIGNhbiBub3QgaW50ZXJhY3Qgd2l0aCB0aGUgc2VsZWN0IGFueW1vcmUuXHJcbiAgICAgICAgdGhpcy5zZWxlY3RIZWFkZXIubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0VG91Y2g6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4ge307XHJcblxyXG4gIG92ZXJyaWRlIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpe1xyXG4gICAgdGhpcy5vblNlbGVjdFRvdWNoID0gZm47XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuaXNEZXN0cm95ZWQkLm5leHQoKTtcclxuICAgIHRoaXMuaXNEZXN0cm95ZWQkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxwICpuZ0lmPVwiISFsYWJlbFwiIGNsYXNzPVwid2FjLXNlbGVjdF9fbGFiZWxcIj5cclxuICA8bmctY29udGVudCBzZWxlY3Q9XCJ3YWMtbGFiZWwsIC53YWMtbGFiZWxcIiA+PC9uZy1jb250ZW50PlxyXG48L3A+XHJcblxyXG48ZGl2XHJcbiAgY2xhc3M9XCJ3YWMtc2VsZWN0XCJcclxuICB3ekF1dG9IaWRlXHJcbiAgKGNsaWNrT3V0c2lkZSk9XCJvbkNsb3NlUGFuZWwoKVwiXHJcbiAgW3RyaWdnZXJFbGVtZW50XT1cIid3YWMtc2VsZWN0X19oZWFkZXJfX3NlbGVjdGlvbidcIlxyXG4gIFt6SW5kZXhUb2dnbGVdPVwib3BlblBhbmVsXCJcclxuICBbbmdDbGFzc109XCJ7J3NtYWxsJzogc21hbGx9XCJcclxuICA+XHJcblxyXG4gICAgPGRpdiAjc2VsZWN0SGVhZGVyIGNsYXNzPVwid2FjLXNlbGVjdF9faGVhZGVyXCIgW25nQ2xhc3NdPVwieyAnc2VsZWN0LWRpc2FibGVkJyA6IGRpc2FibGVkIH1cIiAoY2xpY2spPVwiIWRpc2FibGVkICYmIG9uVG9nZ2xlUGFuZWwoKVwiIHRhYmluZGV4PVwiMFwiPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJvcGVuUGFuZWwgPyBvcGVuUGFuZWxUcmlnZ2VyIDogY2xvc2VQYW5lbFRyaWdnZXJcIiA+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY2xvc2VQYW5lbFRyaWdnZXI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRlZmF1bHRUcmlnZ2VyXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNvcGVuUGFuZWxUcmlnZ2VyPlxyXG4gICAgICAgICAgPG5nLWNvbnRlbnQgKm5nSWY9XCIhIWN1c3RvbVNlYXJjaFRyaWdnZXI7IGVsc2UgZGVmYXVsdFRyaWdnZXJcIiBzZWxlY3Q9XCJ3YWMtc2VsZWN0LXNlYXJjaC10cmlnZ2VyXCIgPjwvbmctY29udGVudD5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUcmlnZ2VyPlxyXG4gICAgICAgICAgPG5nLWNvbnRlbnQgKm5nSWY9XCIhc2VsZWN0ZWRPcHRpb25Db250ZW50XCIgc2VsZWN0PVwid2FjLXBsYWNlaG9sZGVyLFtyb2xlPXBsYWNlaG9sZGVyXVwiPjwvbmctY29udGVudD5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJ3YWMtc2VsZWN0X19oZWFkZXJfX3NlbGVjdGlvbiB3YWMtb3B0aW9uX19wbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwiISFzZWxlY3RlZE9wdGlvbkNvbnRlbnRcIlxyXG4gICAgICAgICAgICBbaW5uZXJIdG1sXT1cInNlbGVjdGVkT3B0aW9uQ29udGVudFwiPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJ3YWMtc2VsZWN0X19oZWFkZXJfX2NoZXZyb25cIj48aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLWRvd25cIj48L2k+PC9zcGFuPlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwid2FjLXNlbGVjdF9fY29udGVudFwiICpuZ0lmPVwiIWRpc2FibGVkXCIgW25nQ2xhc3NdPVwieyBoaWRkZW46ICFvcGVuUGFuZWwsIG9wZW46IG9wZW5QYW5lbCB9XCI+XHJcblxyXG4gICAgICA8cGVyZmVjdC1zY3JvbGxiYXIgW2NvbmZpZ109XCJ7IHN1cHByZXNzU2Nyb2xsWDogdHJ1ZSB9XCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnRcclxuICAgICAgICAgIHNlbGVjdD1cIndhYy1vcHRpb24tY2FsbC10by1hY3Rpb24sIHdhYy1vcHRpb24sIG9wdGlvbiwgLm9wdGlvbiwgW3NlbGVjdE9wdGlvbl1cIj5cclxuICAgICAgICA8L25nLWNvbnRlbnQ+XHJcbiAgICAgIDwvcGVyZmVjdC1zY3JvbGxiYXI+XHJcblxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiIW9wdGlvbkNoaWxkcmVuPy5sZW5ndGhcIiBjbGFzcz1cIndhYy1zZWxlY3RfX2NvbnRlbnRfX2VtcHR5XCI+XHJcbiAgICAgICAgPHNwYW4+e3snd2FjLmRhdGF0YWJsZS5ub3Jlc3VsdCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=