@wizishop/angular-components 15.1.5 → 15.1.6

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 (257) hide show
  1. package/angular-components.scss +154 -139
  2. package/esm2020/lib/components/alert/alert.component.mjs +3 -3
  3. package/esm2020/lib/components/alert-popup/alert-popup-module.mjs +4 -4
  4. package/esm2020/lib/components/alert-popup/alert-popup.component.mjs +5 -5
  5. package/esm2020/lib/components/alert-popup/alert-popup.service.mjs +3 -3
  6. package/esm2020/lib/components/back/back.component.mjs +3 -3
  7. package/esm2020/lib/components/block/block-title-legacy/block-title-legacy.component.mjs +3 -3
  8. package/esm2020/lib/components/block/block.component.mjs +7 -7
  9. package/esm2020/lib/components/block/separator/block-separator.component.mjs +3 -3
  10. package/esm2020/lib/components/block-with-checkbox/block-with-checkbox.component.mjs +3 -3
  11. package/esm2020/lib/components/breadcrumbs/breadcrumbs.component.mjs +3 -3
  12. package/esm2020/lib/components/button/button.component.mjs +12 -12
  13. package/esm2020/lib/components/calendar/calendar.component.mjs +26 -26
  14. package/esm2020/lib/components/card-price/card-price.component.mjs +3 -3
  15. package/esm2020/lib/components/charging-bar/charging-bar.component.mjs +3 -3
  16. package/esm2020/lib/components/checkbox/checkbox.component.mjs +12 -12
  17. package/esm2020/lib/components/checkbox/checkbox.module.mjs +4 -4
  18. package/esm2020/lib/components/common/label/label.component.mjs +3 -3
  19. package/esm2020/lib/components/common/placeholder/placeholder.component.mjs +3 -3
  20. package/esm2020/lib/components/confirm-delete/confirm-delete.component.mjs +3 -3
  21. package/esm2020/lib/components/content-with-buttons/content-with-buttons.component.mjs +3 -3
  22. package/esm2020/lib/components/delete/delete.component.mjs +3 -3
  23. package/esm2020/lib/components/draganddrop-list/draganddrop-list.component.mjs +3 -3
  24. package/esm2020/lib/components/dropdown/dropdown.component.mjs +3 -3
  25. package/esm2020/lib/components/edit-in-place/edit-in-place.component.mjs +3 -3
  26. package/esm2020/lib/components/expanded-panel/expanded-panel.component.mjs +3 -3
  27. package/esm2020/lib/components/expansion/accordion/accordion.component.mjs +3 -3
  28. package/esm2020/lib/components/expansion/expansion-panel/expansion-panel.component.mjs +7 -7
  29. package/esm2020/lib/components/expansion/expansion-panel/expansion-panel.directive.mjs +12 -12
  30. package/esm2020/lib/components/expansion/expansion-panel-header/expansion-panel-header.component.mjs +7 -7
  31. package/esm2020/lib/components/expansion/expansion-panel-header/expansion-panel-header.directive.mjs +7 -8
  32. package/esm2020/lib/components/expansion/expansion.module.mjs +4 -4
  33. package/esm2020/lib/components/filters/filters.component.mjs +3 -3
  34. package/esm2020/lib/components/free-popin/free-popin.component.mjs +3 -3
  35. package/esm2020/lib/components/google-preview/google-preview.component.mjs +3 -3
  36. package/esm2020/lib/components/header-page/header-page.component.mjs +3 -3
  37. package/esm2020/lib/components/hn/h1/h1.component.mjs +3 -3
  38. package/esm2020/lib/components/hn/h2/h2.component.mjs +3 -3
  39. package/esm2020/lib/components/hn/h3/h3.component.mjs +3 -3
  40. package/esm2020/lib/components/hn/h4/h4.component.mjs +3 -3
  41. package/esm2020/lib/components/image/image.component.mjs +3 -3
  42. package/esm2020/lib/components/info/info.component.mjs +3 -3
  43. package/esm2020/lib/components/inputs/input/input.component.mjs +3 -3
  44. package/esm2020/lib/components/inputs/input/input.module.mjs +4 -4
  45. package/esm2020/lib/components/inputs/input-search/input-search.component.mjs +4 -4
  46. package/esm2020/lib/components/inputs/input-search/input-search.module.mjs +4 -4
  47. package/esm2020/lib/components/inputs/input-with-select/input-with-select.component.mjs +3 -3
  48. package/esm2020/lib/components/link/link.component.mjs +9 -9
  49. package/esm2020/lib/components/loader/loader.component.mjs +3 -3
  50. package/esm2020/lib/components/loader/loader.module.mjs +4 -4
  51. package/esm2020/lib/components/logo/logo.component.mjs +3 -3
  52. package/esm2020/lib/components/mosaic/mosaic.component.mjs +3 -3
  53. package/esm2020/lib/components/multiple-search/multiple-search.component.mjs +3 -3
  54. package/esm2020/lib/components/multiple-search-plus/multiple-search-plus.component.mjs +3 -3
  55. package/esm2020/lib/components/optional-disable-container/optional-disable-container.component.mjs +3 -3
  56. package/esm2020/lib/components/pagination/pagination.component.mjs +7 -7
  57. package/esm2020/lib/components/pagination/pagination.module.mjs +4 -4
  58. package/esm2020/lib/components/pagination/pipes/array-pages.pipe.mjs +3 -3
  59. package/esm2020/lib/components/pagination/pipes/custom-text.pipe.mjs +3 -3
  60. package/esm2020/lib/components/pagination/pipes/is-last-page.pipe.mjs +3 -3
  61. package/esm2020/lib/components/popin/popin.component.mjs +3 -3
  62. package/esm2020/lib/components/progress-bar/progress-bar.component.mjs +3 -3
  63. package/esm2020/lib/components/progress-bar/progress-bar.module.mjs +4 -4
  64. package/esm2020/lib/components/radio/radio-directive.mjs +6 -6
  65. package/esm2020/lib/components/radio/radio-group.directive.mjs +11 -11
  66. package/esm2020/lib/components/radio/radio.component.mjs +3 -3
  67. package/esm2020/lib/components/search/search.component.mjs +4 -4
  68. package/esm2020/lib/components/select/call-to-action.model.mjs +2 -0
  69. package/esm2020/lib/components/select/option/option-selection-handler.interface.mjs +2 -0
  70. package/esm2020/lib/components/select/option/option-selection-handler.token.mjs +3 -0
  71. package/esm2020/lib/components/select/option/option.component.mjs +28 -0
  72. package/esm2020/lib/components/select/option/select-option.directive.mjs +97 -0
  73. package/esm2020/lib/components/select/option-call-to-action/option-call-to-action.component.mjs +12 -0
  74. package/esm2020/lib/components/select/select/select.component.mjs +194 -0
  75. package/esm2020/lib/components/select/select/select.directive.mjs +164 -0
  76. package/esm2020/lib/components/select/select/value-change.service.mjs +190 -0
  77. package/esm2020/lib/components/select/select-items.dto.mjs +2 -0
  78. package/esm2020/lib/components/{selects → select}/select-search-trigger/select-search-trigger.component.mjs +4 -4
  79. package/esm2020/lib/components/select-in-text/select-in-text.component.mjs +103 -0
  80. package/esm2020/lib/components/selected-list/selected-list.component.mjs +3 -3
  81. package/esm2020/lib/components/separator/separator.component.mjs +3 -3
  82. package/esm2020/lib/components/settings/settings.component.mjs +3 -3
  83. package/esm2020/lib/components/shared-components.module.mjs +19 -18
  84. package/esm2020/lib/components/snackbar/snackbar.component.mjs +3 -3
  85. package/esm2020/lib/components/state/state.component.mjs +3 -3
  86. package/esm2020/lib/components/summary/summary.component.mjs +8 -8
  87. package/esm2020/lib/components/switch/switch.component.mjs +3 -3
  88. package/esm2020/lib/components/tab/tab.component.mjs +6 -5
  89. package/esm2020/lib/components/table/directives/checkBoxRow.directive.mjs +16 -19
  90. package/esm2020/lib/components/table/directives/column.directive.mjs +6 -8
  91. package/esm2020/lib/components/table/directives/columnHeader.directive.mjs +17 -23
  92. package/esm2020/lib/components/table/directives/raw.directive.mjs +3 -3
  93. package/esm2020/lib/components/table/shared/filters-table.service.mjs +3 -3
  94. package/esm2020/lib/components/table/shared/table-checkbox-id.service.mjs +3 -3
  95. package/esm2020/lib/components/table/table.component.mjs +3 -3
  96. package/esm2020/lib/components/table/table.module.mjs +4 -4
  97. package/esm2020/lib/components/tag/tag.component.mjs +3 -3
  98. package/esm2020/lib/components/tag-label/tag-label.component.mjs +3 -3
  99. package/esm2020/lib/components/text/text.component.mjs +3 -3
  100. package/esm2020/lib/components/text-area/text-area.component.mjs +3 -3
  101. package/esm2020/lib/components/token-check/token-check.component.mjs +3 -3
  102. package/esm2020/lib/components/tooltip/tooltip.component.mjs +3 -3
  103. package/esm2020/lib/components/tooltip/tooltip.module.mjs +4 -4
  104. package/esm2020/lib/components/tree/tree.component.mjs +3 -3
  105. package/esm2020/lib/components/tree/tree.module.mjs +4 -4
  106. package/esm2020/lib/components/upload/upload.component.mjs +3 -3
  107. package/esm2020/lib/components/wrapper/wrapper.component.mjs +3 -3
  108. package/esm2020/lib/components/wrapper-blocs/wrapper-blocs.component.mjs +3 -3
  109. package/esm2020/lib/components/wrapper-multiple-block/wrapper-multiple-block.component.mjs +3 -3
  110. package/esm2020/lib/components/wrapper-sidebar/wrapper-sidebar.component.mjs +3 -3
  111. package/esm2020/lib/directives/abstract-debounce/abstract-debounce.directive.mjs +3 -3
  112. package/esm2020/lib/directives/abstract-debounce/debounce-keyup.directive.mjs +3 -3
  113. package/esm2020/lib/directives/auto-hide/auto-hide.directive.mjs +3 -3
  114. package/esm2020/lib/directives/copy-to-clipboard/copy-to-clipboard.directive.mjs +32 -0
  115. package/esm2020/lib/directives/keyboard-events/keypress-enter.directive.mjs +8 -8
  116. package/esm2020/lib/directives/keyboard-events/only-numbers.directive.mjs +3 -3
  117. package/esm2020/lib/directives/keyboard-events/two-digital-decimal-number.directive.mjs +3 -3
  118. package/esm2020/lib/directives/ng-var.directive.mjs +12 -12
  119. package/esm2020/lib/directives/shared-directives.module.mjs +13 -12
  120. package/esm2020/lib/directives/zindex-toggle/zindex-toggle.directive.mjs +9 -9
  121. package/esm2020/lib/pipes/call-component-function.pipe.mjs +3 -3
  122. package/esm2020/lib/pipes/find-option-selected-field.pipe.mjs +3 -3
  123. package/esm2020/lib/pipes/select/filter-options.pipe.mjs +3 -3
  124. package/esm2020/lib/pipes/select/select-filters.pipe.mjs +4 -4
  125. package/esm2020/lib/pipes/selected-list/are-all-options-selected.pipe.mjs +3 -3
  126. package/esm2020/lib/pipes/shared-pipes.module.mjs +4 -4
  127. package/esm2020/lib/pipes/tree/format-object-to-recursif-tree.pipe.mjs +3 -3
  128. package/esm2020/lib/pipes/tree/format-object-to-simple-tree.pipe.mjs +3 -3
  129. package/esm2020/lib/services/dom.service.mjs +3 -3
  130. package/esm2020/lib/services/history.service.mjs +3 -3
  131. package/esm2020/lib/services/multiple-selection.service.mjs +3 -3
  132. package/esm2020/lib/wizi-components.module.mjs +4 -4
  133. package/esm2020/public-api.mjs +12 -11
  134. package/fesm2015/wizishop-angular-components.mjs +614 -598
  135. package/fesm2015/wizishop-angular-components.mjs.map +1 -1
  136. package/fesm2020/wizishop-angular-components.mjs +614 -598
  137. package/fesm2020/wizishop-angular-components.mjs.map +1 -1
  138. package/lib/components/alert/alert.component.d.ts +1 -1
  139. package/lib/components/alert-popup/alert-popup.component.d.ts +1 -1
  140. package/lib/components/back/back.component.d.ts +1 -1
  141. package/lib/components/block/block-title-legacy/block-title-legacy.component.d.ts +1 -1
  142. package/lib/components/block/block.component.d.ts +2 -2
  143. package/lib/components/block/separator/block-separator.component.d.ts +1 -1
  144. package/lib/components/block-with-checkbox/block-with-checkbox.component.d.ts +1 -1
  145. package/lib/components/breadcrumbs/breadcrumbs.component.d.ts +1 -1
  146. package/lib/components/button/button.component.d.ts +1 -1
  147. package/lib/components/calendar/calendar.component.d.ts +1 -1
  148. package/lib/components/card-price/card-price.component.d.ts +1 -1
  149. package/lib/components/charging-bar/charging-bar.component.d.ts +1 -1
  150. package/lib/components/checkbox/checkbox.component.d.ts +1 -1
  151. package/lib/components/common/label/label.component.d.ts +1 -1
  152. package/lib/components/common/placeholder/placeholder.component.d.ts +1 -1
  153. package/lib/components/confirm-delete/confirm-delete.component.d.ts +1 -1
  154. package/lib/components/content-with-buttons/content-with-buttons.component.d.ts +1 -1
  155. package/lib/components/delete/delete.component.d.ts +1 -1
  156. package/lib/components/draganddrop-list/draganddrop-list.component.d.ts +1 -1
  157. package/lib/components/dropdown/dropdown.component.d.ts +1 -1
  158. package/lib/components/edit-in-place/edit-in-place.component.d.ts +1 -1
  159. package/lib/components/expanded-panel/expanded-panel.component.d.ts +1 -1
  160. package/lib/components/expansion/accordion/accordion.component.d.ts +1 -1
  161. package/lib/components/expansion/expansion-panel/expansion-panel.component.d.ts +1 -1
  162. package/lib/components/expansion/expansion-panel/expansion-panel.directive.d.ts +1 -1
  163. package/lib/components/expansion/expansion-panel-header/expansion-panel-header.component.d.ts +1 -1
  164. package/lib/components/expansion/expansion-panel-header/expansion-panel-header.directive.d.ts +1 -1
  165. package/lib/components/filters/filters.component.d.ts +1 -1
  166. package/lib/components/free-popin/free-popin.component.d.ts +1 -1
  167. package/lib/components/google-preview/google-preview.component.d.ts +1 -1
  168. package/lib/components/header-page/header-page.component.d.ts +1 -1
  169. package/lib/components/hn/h1/h1.component.d.ts +1 -1
  170. package/lib/components/hn/h2/h2.component.d.ts +1 -1
  171. package/lib/components/hn/h3/h3.component.d.ts +1 -1
  172. package/lib/components/hn/h4/h4.component.d.ts +1 -1
  173. package/lib/components/image/image.component.d.ts +1 -1
  174. package/lib/components/info/info.component.d.ts +1 -1
  175. package/lib/components/inputs/input/input.component.d.ts +1 -1
  176. package/lib/components/inputs/input-search/input-search.component.d.ts +1 -1
  177. package/lib/components/inputs/input-with-select/input-with-select.component.d.ts +1 -1
  178. package/lib/components/inputs/input-with-select/option-item.dto.d.ts +1 -1
  179. package/lib/components/link/link.component.d.ts +1 -1
  180. package/lib/components/loader/loader.component.d.ts +1 -1
  181. package/lib/components/logo/logo.component.d.ts +1 -1
  182. package/lib/components/mosaic/mosaic.component.d.ts +5 -5
  183. package/lib/components/multiple-search/multiple-search.component.d.ts +1 -1
  184. package/lib/components/multiple-search-plus/multiple-search-plus.component.d.ts +1 -1
  185. package/lib/components/optional-disable-container/optional-disable-container.component.d.ts +1 -1
  186. package/lib/components/pagination/pagination.component.d.ts +1 -1
  187. package/lib/components/popin/popin.component.d.ts +1 -1
  188. package/lib/components/progress-bar/progress-bar.component.d.ts +1 -1
  189. package/lib/components/radio/radio-directive.d.ts +2 -2
  190. package/lib/components/radio/radio-group.directive.d.ts +3 -3
  191. package/lib/components/radio/radio.component.d.ts +1 -1
  192. package/lib/components/search/search.component.d.ts +1 -1
  193. package/lib/components/{selects → select}/call-to-action.model.d.ts +0 -0
  194. package/lib/components/{selects → select}/option/option-selection-handler.interface.d.ts +0 -0
  195. package/lib/components/{selects → select}/option/option-selection-handler.token.d.ts +0 -0
  196. package/lib/components/{selects → select}/option/option.component.d.ts +1 -1
  197. package/lib/components/{selects → select}/option/select-option.directive.d.ts +1 -1
  198. package/lib/components/{selects → select}/option-call-to-action/option-call-to-action.component.d.ts +1 -1
  199. package/lib/components/{selects → select}/select/select.component.d.ts +1 -2
  200. package/lib/components/{selects → select}/select/select.directive.d.ts +1 -1
  201. package/lib/components/{selects → select}/select/value-change.service.d.ts +0 -0
  202. package/lib/components/{selects → select}/select-items.dto.d.ts +0 -0
  203. package/lib/components/{selects → select}/select-search-trigger/select-search-trigger.component.d.ts +1 -1
  204. package/lib/components/{selects/select-in-text → select-in-text}/select-in-text.component.d.ts +3 -3
  205. package/lib/components/selected-list/selected-list.component.d.ts +1 -1
  206. package/lib/components/separator/separator.component.d.ts +1 -1
  207. package/lib/components/settings/settings.component.d.ts +1 -1
  208. package/lib/components/shared-components.module.d.ts +88 -88
  209. package/lib/components/snackbar/snackbar.component.d.ts +1 -1
  210. package/lib/components/state/state.component.d.ts +1 -1
  211. package/lib/components/summary/summary.component.d.ts +1 -1
  212. package/lib/components/switch/switch.component.d.ts +1 -1
  213. package/lib/components/tab/tab.component.d.ts +2 -2
  214. package/lib/components/table/directives/checkBoxRow.directive.d.ts +1 -1
  215. package/lib/components/table/directives/column.directive.d.ts +1 -1
  216. package/lib/components/table/directives/columnHeader.directive.d.ts +1 -1
  217. package/lib/components/table/directives/raw.directive.d.ts +1 -1
  218. package/lib/components/table/table.component.d.ts +1 -1
  219. package/lib/components/tag/tag.component.d.ts +1 -1
  220. package/lib/components/tag-label/tag-label.component.d.ts +1 -1
  221. package/lib/components/text/text.component.d.ts +1 -1
  222. package/lib/components/text-area/text-area.component.d.ts +1 -1
  223. package/lib/components/token-check/token-check.component.d.ts +1 -1
  224. package/lib/components/tooltip/tooltip.component.d.ts +1 -1
  225. package/lib/components/tree/tree.component.d.ts +1 -1
  226. package/lib/components/upload/upload.component.d.ts +1 -1
  227. package/lib/components/wrapper/wrapper.component.d.ts +1 -1
  228. package/lib/components/wrapper-blocs/wrapper-blocs.component.d.ts +1 -1
  229. package/lib/components/wrapper-multiple-block/wrapper-multiple-block.component.d.ts +1 -1
  230. package/lib/components/wrapper-sidebar/wrapper-sidebar.component.d.ts +1 -1
  231. package/lib/directives/abstract-debounce/abstract-debounce.directive.d.ts +1 -1
  232. package/lib/directives/abstract-debounce/debounce-keyup.directive.d.ts +1 -1
  233. package/lib/directives/auto-hide/auto-hide.directive.d.ts +1 -1
  234. package/lib/directives/copy-to-clipboard/copy-to-clipboard.directive.d.ts +12 -0
  235. package/lib/directives/keyboard-events/keypress-enter.directive.d.ts +1 -1
  236. package/lib/directives/keyboard-events/only-numbers.directive.d.ts +1 -1
  237. package/lib/directives/keyboard-events/two-digital-decimal-number.directive.d.ts +1 -1
  238. package/lib/directives/ng-var.directive.d.ts +1 -1
  239. package/lib/directives/shared-directives.module.d.ts +4 -3
  240. package/lib/directives/zindex-toggle/zindex-toggle.directive.d.ts +1 -1
  241. package/lib/pipes/call-component-function.pipe.d.ts +1 -1
  242. package/lib/pipes/select/select-filters.pipe.d.ts +1 -1
  243. package/package.json +1 -1
  244. package/public-api.d.ts +11 -10
  245. package/wizishop-angular-components-15.1.6.tgz +0 -0
  246. package/esm2020/lib/components/selects/call-to-action.model.mjs +0 -2
  247. package/esm2020/lib/components/selects/option/option-selection-handler.interface.mjs +0 -2
  248. package/esm2020/lib/components/selects/option/option-selection-handler.token.mjs +0 -3
  249. package/esm2020/lib/components/selects/option/option.component.mjs +0 -28
  250. package/esm2020/lib/components/selects/option/select-option.directive.mjs +0 -97
  251. package/esm2020/lib/components/selects/option-call-to-action/option-call-to-action.component.mjs +0 -12
  252. package/esm2020/lib/components/selects/select/select.component.mjs +0 -197
  253. package/esm2020/lib/components/selects/select/select.directive.mjs +0 -164
  254. package/esm2020/lib/components/selects/select/value-change.service.mjs +0 -190
  255. package/esm2020/lib/components/selects/select-in-text/select-in-text.component.mjs +0 -103
  256. package/esm2020/lib/components/selects/select-items.dto.mjs +0 -2
  257. package/wizishop-angular-components-15.1.5.tgz +0 -0
@@ -8,5 +8,5 @@ export declare class VarDirective {
8
8
  private hasView;
9
9
  constructor(templateRef: TemplateRef<any>, vcRef: ViewContainerRef);
10
10
  static ɵfac: i0.ɵɵFactoryDeclaration<VarDirective, never>;
11
- static ɵdir: i0.ɵɵDirectiveDeclaration<VarDirective, "[ngVar]", never, { "ngVar": "ngVar"; }, {}, never, never, false, never>;
11
+ static ɵdir: i0.ɵɵDirectiveDeclaration<VarDirective, "[ngVar]", never, { "ngVar": "ngVar"; }, {}, never, never, false>;
12
12
  }
@@ -5,16 +5,17 @@ import * as i3 from "./auto-hide/auto-hide.directive";
5
5
  import * as i4 from "./zindex-toggle/zindex-toggle.directive";
6
6
  import * as i5 from "./ng-var.directive";
7
7
  import * as i6 from "./keyboard-events/keypress-enter.directive";
8
- import * as i7 from "../components/selects/option/select-option.directive";
9
- import * as i8 from "../components/selects/select/select.directive";
8
+ import * as i7 from "../components/select/option/select-option.directive";
9
+ import * as i8 from "../components/select/select/select.directive";
10
10
  import * as i9 from "./keyboard-events/only-numbers.directive";
11
11
  import * as i10 from "./keyboard-events/two-digital-decimal-number.directive";
12
12
  import * as i11 from "../components/radio/radio-directive";
13
13
  import * as i12 from "../components/radio/radio-group.directive";
14
14
  import * as i13 from "@angular/common";
15
15
  import * as i14 from "@angular/forms";
16
+ import * as i15 from "./copy-to-clipboard/copy-to-clipboard.directive";
16
17
  export declare class SharedDirectives {
17
18
  static ɵfac: i0.ɵɵFactoryDeclaration<SharedDirectives, never>;
18
- static ɵmod: i0.ɵɵNgModuleDeclaration<SharedDirectives, [typeof i1.DebounceKeyupDirective, typeof i2.AbstractDebounceDirective, typeof i3.AutoHideDirective, typeof i4.ZindexToggleDirective, typeof i5.VarDirective, typeof i6.KeypressEnterDirective, typeof i7.SelectOptionDirective, typeof i8.SelectDirective, typeof i9.OnlyNumberDirective, typeof i10.TwoDigitDecimalNumberDirective, typeof i11.RadioDirective, typeof i12.RadioGroupDirective], [typeof i13.CommonModule, typeof i14.FormsModule], [typeof i1.DebounceKeyupDirective, typeof i2.AbstractDebounceDirective, typeof i3.AutoHideDirective, typeof i4.ZindexToggleDirective, typeof i5.VarDirective, typeof i6.KeypressEnterDirective, typeof i7.SelectOptionDirective, typeof i8.SelectDirective, typeof i9.OnlyNumberDirective, typeof i10.TwoDigitDecimalNumberDirective, typeof i11.RadioDirective, typeof i12.RadioGroupDirective]>;
19
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SharedDirectives, [typeof i1.DebounceKeyupDirective, typeof i2.AbstractDebounceDirective, typeof i3.AutoHideDirective, typeof i4.ZindexToggleDirective, typeof i5.VarDirective, typeof i6.KeypressEnterDirective, typeof i7.SelectOptionDirective, typeof i8.SelectDirective, typeof i9.OnlyNumberDirective, typeof i10.TwoDigitDecimalNumberDirective, typeof i11.RadioDirective, typeof i12.RadioGroupDirective], [typeof i13.CommonModule, typeof i14.FormsModule, typeof i15.CopyToClipBoardDirective], [typeof i1.DebounceKeyupDirective, typeof i2.AbstractDebounceDirective, typeof i3.AutoHideDirective, typeof i4.ZindexToggleDirective, typeof i5.VarDirective, typeof i6.KeypressEnterDirective, typeof i7.SelectOptionDirective, typeof i8.SelectDirective, typeof i9.OnlyNumberDirective, typeof i10.TwoDigitDecimalNumberDirective, typeof i11.RadioDirective, typeof i12.RadioGroupDirective, typeof i15.CopyToClipBoardDirective]>;
19
20
  static ɵinj: i0.ɵɵInjectorDeclaration<SharedDirectives>;
20
21
  }
@@ -12,5 +12,5 @@ export declare class ZindexToggleDirective implements OnInit, OnDestroy {
12
12
  switchToggle(): void;
13
13
  ngOnDestroy(): void;
14
14
  static ɵfac: i0.ɵɵFactoryDeclaration<ZindexToggleDirective, never>;
15
- static ɵdir: i0.ɵɵDirectiveDeclaration<ZindexToggleDirective, "[zIndexToggle]", never, { "isActive": "zIndexToggle"; }, { "onEventChange": "onEventChange"; }, never, never, false, never>;
15
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ZindexToggleDirective, "[zIndexToggle]", never, { "isActive": "zIndexToggle"; }, { "onEventChange": "onEventChange"; }, never, never, false>;
16
16
  }
@@ -3,7 +3,7 @@ import * as i0 from "@angular/core";
3
3
  /**
4
4
  * Typed mapping function.
5
5
  */
6
- export type Mapper<T, G> = (item: T, ...args: any[]) => G;
6
+ export declare type Mapper<T, G> = (item: T, ...args: any[]) => G;
7
7
  export declare class CallComponentFunctionPipe implements PipeTransform {
8
8
  /**
9
9
  * Maps object to an arbitrary result through a plan-name function
@@ -1,5 +1,5 @@
1
1
  import { PipeTransform } from '@angular/core';
2
- import { SelectItem } from '../../components/selects/select-items.dto';
2
+ import { SelectItem } from '../../components/select/select-items.dto';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class SelectFiltersPipe implements PipeTransform {
5
5
  transform(items: SelectItem[], filterName: string): any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wizishop/angular-components",
3
- "version": "15.1.5",
3
+ "version": "15.1.6",
4
4
  "peerDependencies": {
5
5
  "@angular/animations": "~15.0.2",
6
6
  "@angular/cdk": "^15.0.1",
package/public-api.d.ts CHANGED
@@ -26,7 +26,7 @@ export * from './lib/components/hn/h1/h1.component';
26
26
  export * from './lib/components/hn/h2/h2.component';
27
27
  export * from './lib/components/hn/h3/h3.component';
28
28
  export * from './lib/components/hn/h4/h4.component';
29
- export * from './lib/components/selects/select-in-text/select-in-text.component';
29
+ export * from './lib/components/select-in-text/select-in-text.component';
30
30
  export * from './lib/components/text/text.component';
31
31
  export * from './lib/components/text-area/text-area.component';
32
32
  export * from './lib/components/pagination/pagination.component';
@@ -45,7 +45,7 @@ export * from './lib/components/loader/loader.component';
45
45
  export * from './lib/components/loader/loader.module';
46
46
  export * from './lib/components/progress-bar/progress-bar.component';
47
47
  export * from './lib/components/upload/upload.component';
48
- export * from './lib/components/selects/select-items.dto';
48
+ export * from './lib/components/select/select-items.dto';
49
49
  export * from './lib/components/inputs/input-with-select/input-with-select.component';
50
50
  export * from './lib/components/inputs/input-with-select/option-item.dto';
51
51
  export * from './lib/components/multiple-search/multiple-search.component';
@@ -59,7 +59,7 @@ export * from './lib/directives/keyboard-events/only-numbers.directive';
59
59
  export * from './lib/directives/ng-var.directive';
60
60
  export * from './lib/utils/html-container.class';
61
61
  export * from './lib/utils/uuid';
62
- export * from './lib/components/selects/call-to-action.model';
62
+ export * from './lib/components/select/call-to-action.model';
63
63
  export * from './lib/components/table/shared/filters-table.service';
64
64
  export * from './lib/components/table/shared/table-filters.model';
65
65
  export * from './lib/components/popin/popin.component';
@@ -105,18 +105,19 @@ export * from './lib/pipes/selected-list/are-all-options-selected.pipe';
105
105
  export * from './lib/pipes/find-option-selected-field.pipe';
106
106
  export * from './lib/pipes/call-component-function.pipe';
107
107
  export * from './lib/directives/keyboard-events/keypress-enter.directive';
108
+ export * from './lib/directives/copy-to-clipboard/copy-to-clipboard.directive';
108
109
  export * from './lib/directives/keyboard-events/two-digital-decimal-number.directive';
109
110
  export * from './lib/components/optional-disable-container/optional-disable-container.component';
110
111
  export * from './lib/components/summary/summary.component';
111
- export * from './lib/components/selects/select/select.component';
112
- export * from './lib/components/selects/select/value-change.service';
113
- export * from './lib/components/selects/select/select.directive';
114
- export * from './lib/components/selects/option/option.component';
115
- export * from './lib/components/selects/option-call-to-action/option-call-to-action.component';
112
+ export * from './lib/components/select/select/select.component';
113
+ export * from './lib/components/select/select/value-change.service';
114
+ export * from './lib/components/select/select/select.directive';
115
+ export * from './lib/components/select/option/option.component';
116
+ export * from './lib/components/select/option-call-to-action/option-call-to-action.component';
116
117
  export * from './lib/components/common/placeholder/placeholder.component';
117
118
  export * from './lib/components/common/label/label.component';
118
- export * from './lib/components/selects/option/select-option.directive';
119
- export * from './lib/components/selects/select-search-trigger/select-search-trigger.component';
119
+ export * from './lib/components/select/option/select-option.directive';
120
+ export * from './lib/components/select/select-search-trigger/select-search-trigger.component';
120
121
  export * from './lib/pipes/select/filter-options.pipe';
121
122
  export * from './lib/components/expansion/expansion.module';
122
123
  export * from './lib/components/expansion/accordion/accordion.component';
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbC10by1hY3Rpb24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdHMvY2FsbC10by1hY3Rpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ2FsbGxUb0FjdGlvbiB7XG4gICAgdmFsdWU/OiBhbnk7XG4gICAgbmFtZT86IHN0cmluZztcbiAgICBpY29uPzogc3RyaW5nO1xuICAgIGJvbGRUZXh0Pzogc3RyaW5nO1xufSJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLXNlbGVjdGlvbi1oYW5kbGVyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0cy9vcHRpb24vb3B0aW9uLXNlbGVjdGlvbi1oYW5kbGVyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBPcHRpb25TZWxlY3Rpb25IYW5kbGVyPFRPcHRpb25WYWx1ZT4ge1xuICAgIHZhbHVlOiBUT3B0aW9uVmFsdWU7XG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgc2VsZWN0ZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcbiAgICBnZXRDb250ZW50UmVmKCk6IEVsZW1lbnRSZWY8YW55PjtcbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkO1xuICAgIHNldFNlbGVjdGVkKHNlbGVjdGVkOiBib29sZWFuKTogdm9pZDtcbiAgICBzZXRNdWx0aXBsZShtdWx0aXBsZTogYm9vbGVhbik6IHZvaWQ7XG59Il19
@@ -1,3 +0,0 @@
1
- import { InjectionToken } from "@angular/core";
2
- export const OPTION_SELECTION_HANDLER = new InjectionToken('OPTION_SELECTION_HANDLER');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLXNlbGVjdGlvbi1oYW5kbGVyLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3RzL29wdGlvbi9vcHRpb24tc2VsZWN0aW9uLWhhbmRsZXIudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBOEIsMEJBQTBCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE9wdGlvblNlbGVjdGlvbkhhbmRsZXIgfSBmcm9tIFwiLi9vcHRpb24tc2VsZWN0aW9uLWhhbmRsZXIuaW50ZXJmYWNlXCI7XG5cbmV4cG9ydCBjb25zdCBPUFRJT05fU0VMRUNUSU9OX0hBTkRMRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48T3B0aW9uU2VsZWN0aW9uSGFuZGxlcjxhbnk+PignT1BUSU9OX1NFTEVDVElPTl9IQU5ETEVSJyk7Il19
@@ -1,28 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, ViewChild, ViewEncapsulation } from '@angular/core';
2
- import { uuid } from '../../../utils/uuid';
3
- import { OPTION_SELECTION_HANDLER } from './option-selection-handler.token';
4
- import { SelectOptionDirective } from './select-option.directive';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "../../checkbox/checkbox.component";
8
- export class OptionComponent extends SelectOptionDirective {
9
- constructor(contentRef, changeDetectorRef) {
10
- super(contentRef, changeDetectorRef);
11
- this.contentRef = contentRef;
12
- this.changeDetectorRef = changeDetectorRef;
13
- this.checkBoxId = `wac-option-${uuid()}`;
14
- }
15
- getContentRef() {
16
- return this.contentOption;
17
- }
18
- }
19
- OptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: OptionComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
20
- OptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: OptionComponent, selector: "wac-option", providers: [{ provide: OPTION_SELECTION_HANDLER, useExisting: OptionComponent }], viewQueries: [{ propertyName: "contentOption", first: true, predicate: ["contentWrapper"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n [ngClass]=\"{ 'disabled': disabled }\"\n class=\"wac-option\"\n >\n <div [ngClass]=\"{ 'selected': !disabled && selected, 'disabled': disabled }\" #contentWrapper>\n <wac-checkbox *ngIf=\"multiple\" [id]=\"checkBoxId\" [value]=\"selected\"></wac-checkbox>\n <ng-content></ng-content>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CheckboxComponent, selector: "wac-checkbox", inputs: ["label", "value", "type", "alone", "checked", "hasInput", "inputPlaceholder", "id", "name", "whiteSpace", "disabled"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: OptionComponent, decorators: [{
22
- type: Component,
23
- args: [{ selector: 'wac-option', encapsulation: ViewEncapsulation.None, providers: [{ provide: OPTION_SELECTION_HANDLER, useExisting: OptionComponent }], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [ngClass]=\"{ 'disabled': disabled }\"\n class=\"wac-option\"\n >\n <div [ngClass]=\"{ 'selected': !disabled && selected, 'disabled': disabled }\" #contentWrapper>\n <wac-checkbox *ngIf=\"multiple\" [id]=\"checkBoxId\" [value]=\"selected\"></wac-checkbox>\n <ng-content></ng-content>\n </div>\n</div>" }]
24
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { contentOption: [{
25
- type: ViewChild,
26
- args: ['contentWrapper']
27
- }] } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0cy9vcHRpb24vb3B0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0cy9vcHRpb24vb3B0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBcUIsU0FBUyxFQUFjLFNBQVMsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5SCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7QUFTbEUsTUFBTSxPQUFPLGVBQThCLFNBQVEscUJBQW1DO0lBTXBGLFlBQXNCLFVBQXNCLEVBQVksaUJBQW9DO1FBQzFGLEtBQUssQ0FBQyxVQUFVLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQURqQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVksc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUY1RixlQUFVLEdBQUcsY0FBYyxJQUFJLEVBQUUsRUFBRSxDQUFDO0lBSXBDLENBQUM7SUFFUSxhQUFhO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzs0R0FaVSxlQUFlO2dHQUFmLGVBQWUscUNBSGYsQ0FBQyxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLENBQUMsa0tDVGxGLDRVQVFNOzJGRElPLGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0UsWUFBWSxpQkFFUCxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsV0FBVyxpQkFBaUIsRUFBRSxDQUFDLG1CQUMvRCx1QkFBdUIsQ0FBQyxNQUFNO2lJQUlsQixhQUFhO3NCQUF6QyxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdXVpZCB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3V1aWQnO1xuaW1wb3J0IHsgT1BUSU9OX1NFTEVDVElPTl9IQU5ETEVSIH0gZnJvbSAnLi9vcHRpb24tc2VsZWN0aW9uLWhhbmRsZXIudG9rZW4nO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9zZWxlY3Qtb3B0aW9uLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dhYy1vcHRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vb3B0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBPUFRJT05fU0VMRUNUSU9OX0hBTkRMRVIsIHVzZUV4aXN0aW5nOiBPcHRpb25Db21wb25lbnQgfV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE9wdGlvbkNvbXBvbmVudDxUT3B0aW9uVmFsdWU+IGV4dGVuZHMgU2VsZWN0T3B0aW9uRGlyZWN0aXZlPFRPcHRpb25WYWx1ZT4ge1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnRXcmFwcGVyJykgY29udGVudE9wdGlvbjogRWxlbWVudFJlZjtcblxuICBjaGVja0JveElkID0gYHdhYy1vcHRpb24tJHt1dWlkKCl9YDtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY29udGVudFJlZjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKGNvbnRlbnRSZWYsIGNoYW5nZURldGVjdG9yUmVmKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldENvbnRlbnRSZWYoKTogRWxlbWVudFJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50T3B0aW9uO1xuICB9XG59XG4iLCI8ZGl2XG4gICAgW25nQ2xhc3NdPVwieyAnZGlzYWJsZWQnOiBkaXNhYmxlZCB9XCJcbiAgICBjbGFzcz1cIndhYy1vcHRpb25cIlxuICA+XG4gICAgPGRpdiBbbmdDbGFzc109XCJ7ICdzZWxlY3RlZCc6ICFkaXNhYmxlZCAmJiBzZWxlY3RlZCwgJ2Rpc2FibGVkJzogZGlzYWJsZWQgfVwiICNjb250ZW50V3JhcHBlcj5cbiAgICAgIDx3YWMtY2hlY2tib3ggKm5nSWY9XCJtdWx0aXBsZVwiIFtpZF09XCJjaGVja0JveElkXCIgW3ZhbHVlXT1cInNlbGVjdGVkXCI+PC93YWMtY2hlY2tib3g+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -1,97 +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.1", 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.1", type: SelectOptionDirective, 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.1", 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
- }]
74
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { onClick: [{
75
- type: HostListener,
76
- args: ['click', ['$event']]
77
- }], isOptionSelected: [{
78
- type: HostBinding,
79
- args: ['class.wac-option-selected']
80
- }], isOptionDisabled: [{
81
- type: HostBinding,
82
- args: ['class.wac-option-disabled']
83
- }], cursor: [{
84
- type: HostBinding,
85
- args: ['style.cursor']
86
- }], disabled: [{
87
- type: Input
88
- }], value: [{
89
- type: Input
90
- }], selected: [{
91
- type: Input
92
- }], onClickEventPreventDefault: [{
93
- type: Input
94
- }], selectedChange: [{
95
- type: Output
96
- }] } });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW9wdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdHMvb3B0aW9uL3NlbGVjdC1vcHRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFjLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakksT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBRTVFLG9FQUFvRTtBQU1wRSxNQUFNLE9BQU8scUJBQXFCO0lBRUcsT0FBTyxDQUFDLEtBQW1CO1FBQzVELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQywwQkFBMEIsRUFBRTtZQUNuQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRUQsSUFBOEMsZ0JBQWdCO1FBQzVELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBOEMsZ0JBQWdCO1FBQzVELE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQWlDLE1BQU07UUFDckMsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDNUUsQ0FBQztJQW9CRCxZQUFzQixVQUFzQixFQUFZLGlCQUFvQztRQUF0RSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVksc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQWpCNUYsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVQLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQU1uQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRWpCLCtCQUEwQixHQUFHLElBQUksQ0FBQztRQUczQyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFN0MsYUFBUSxHQUFHLEtBQUssQ0FBQztJQUU4RSxDQUFDO0lBRWhHLFdBQVcsQ0FBQyxRQUFpQjtRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQzFDLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxnREFBZ0Q7UUFDdkcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQW1CO1FBQzFCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFVBQVUsQ0FBQztRQUNuQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFpQjtRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEMsQ0FBQzs7a0hBaEZVLHFCQUFxQjtzR0FBckIscUJBQXFCLHVhQUhyQixDQUFDLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFdBQVcsRUFBRSxxQkFBcUIsRUFBRSxDQUFDOzJGQUczRSxxQkFBcUI7a0JBTGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFdBQVcsdUJBQXVCLEVBQUUsQ0FBQztvQkFDdEYsUUFBUSxFQUFFLFdBQVc7aUJBQ3RCO2lJQUdvQyxPQUFPO3NCQUF6QyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFPYSxnQkFBZ0I7c0JBQTdELFdBQVc7dUJBQUMsMkJBQTJCO2dCQUlNLGdCQUFnQjtzQkFBN0QsV0FBVzt1QkFBQywyQkFBMkI7Z0JBSVAsTUFBTTtzQkFBdEMsV0FBVzt1QkFBQyxjQUFjO2dCQUszQixRQUFRO3NCQURQLEtBQUs7Z0JBTU4sS0FBSztzQkFESixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFHRywwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBR04sY0FBYztzQkFEYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPcHRpb25TZWxlY3Rpb25IYW5kbGVyIH0gZnJvbSAnLi9vcHRpb24tc2VsZWN0aW9uLWhhbmRsZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IE9QVElPTl9TRUxFQ1RJT05fSEFORExFUiB9IGZyb20gJy4vb3B0aW9uLXNlbGVjdGlvbi1oYW5kbGVyLnRva2VuJztcblxuLy8gdG9kbyBjcmVhdGUgYSBzZWxlY3QgbW9kdWxlIGFuZCBpbiB0aGUgc2VsZWN0LW9wdGlvbi5kaXJlY3RpdmUudHNcbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t3YWNPcHRpb25dJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBPUFRJT05fU0VMRUNUSU9OX0hBTkRMRVIsIHVzZUV4aXN0aW5nOiBTZWxlY3RPcHRpb25EaXJlY3RpdmUgfV0sXG4gIGV4cG9ydEFzOiAnd2FjT3B0aW9uJ1xufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RPcHRpb25EaXJlY3RpdmU8VE9wdGlvblZhbHVlPiBpbXBsZW1lbnRzIE9wdGlvblNlbGVjdGlvbkhhbmRsZXI8VE9wdGlvblZhbHVlPiB7XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKSBvbkNsaWNrKGV2ZW50OiBQb2ludGVyRXZlbnQpIHtcbiAgICB0aGlzLm9uU2VsZWN0T3B0aW9uKCk7XG4gICAgaWYgKHRoaXMub25DbGlja0V2ZW50UHJldmVudERlZmF1bHQpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy53YWMtb3B0aW9uLXNlbGVjdGVkJykgZ2V0IGlzT3B0aW9uU2VsZWN0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQ7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLndhYy1vcHRpb24tZGlzYWJsZWQnKSBnZXQgaXNPcHRpb25EaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkQnlQYXJlbnQ7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmN1cnNvcicpIGdldCBjdXJzb3IgKCkge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWRCeVBhcmVudCA/ICdub3QtYWxsb3dlZCcgOiAncG9pbnRlcic7XG4gIH1cblxuICBASW5wdXQoKVxuICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBkaXNhYmxlZEJ5UGFyZW50ID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgdmFsdWU6IFRPcHRpb25WYWx1ZTtcblxuICBASW5wdXQoKVxuICBzZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIG9uQ2xpY2tFdmVudFByZXZlbnREZWZhdWx0ID0gdHJ1ZTtcblxuICBAT3V0cHV0KClcbiAgc2VsZWN0ZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgbXVsdGlwbGUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY29udGVudFJlZjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBzZXRTZWxlY3RlZChzZWxlY3RlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWQgPSBzZWxlY3RlZDtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb25TZWxlY3RPcHRpb24oKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZEJ5UGFyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWQgPSB0aGlzLm11bHRpcGxlID8gIXRoaXMuc2VsZWN0ZWQgOiB0cnVlOyAvLyBJZiBub3QgbXVsdGlwbGUgbW9kZSAtPiBjYW4gbm90IGJlIHVuc2VsZWN0ZWRcbiAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZCk7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGdldFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgc2V0VmFsdWUodmFsdWU6IFRPcHRpb25WYWx1ZSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgaXNTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZDtcbiAgfVxuXG4gIGdldENvbnRlbnRSZWYoKTogRWxlbWVudFJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50UmVmO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZEJ5UGFyZW50ID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgc2V0TXVsdGlwbGUobXVsdGlwbGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLm11bHRpcGxlID0gbXVsdGlwbGU7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufSJdfQ==
@@ -1,12 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class OptionCallToActionComponent {
4
- constructor() { }
5
- }
6
- OptionCallToActionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: OptionCallToActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
- OptionCallToActionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: OptionCallToActionComponent, selector: "wac-option-call-to-action", ngImport: i0, template: "\n<div class=\"wac-option-call-to-action\">\n <div>\n <ng-content></ng-content>\n </div>\n</div>\n\n" });
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: OptionCallToActionComponent, decorators: [{
9
- type: Component,
10
- args: [{ selector: 'wac-option-call-to-action', template: "\n<div class=\"wac-option-call-to-action\">\n <div>\n <ng-content></ng-content>\n </div>\n</div>\n\n" }]
11
- }], ctorParameters: function () { return []; } });
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLWNhbGwtdG8tYWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0cy9vcHRpb24tY2FsbC10by1hY3Rpb24vb3B0aW9uLWNhbGwtdG8tYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0cy9vcHRpb24tY2FsbC10by1hY3Rpb24vb3B0aW9uLWNhbGwtdG8tYWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBTXhDLE1BQU0sT0FBTywyQkFBMkI7SUFFdEMsZ0JBQWUsQ0FBQzs7d0hBRkwsMkJBQTJCOzRHQUEzQiwyQkFBMkIsaUVDTnhDLDJHQU9BOzJGRERhLDJCQUEyQjtrQkFKdkMsU0FBUzsrQkFDRSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dhYy1vcHRpb24tY2FsbC10by1hY3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vb3B0aW9uLWNhbGwtdG8tYWN0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBPcHRpb25DYWxsVG9BY3Rpb25Db21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKCkge31cbn1cbiIsIlxuPGRpdiBjbGFzcz1cIndhYy1vcHRpb24tY2FsbC10by1hY3Rpb25cIj5cbiAgPGRpdj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbiJdfQ==
@@ -1,197 +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._openPanel = false;
56
- this.openPanelChange = new EventEmitter();
57
- this.enableSearch = false;
58
- this.tabIndex = -1;
59
- this.isDestroyed$ = new Subject();
60
- this.isKeyBoardAction = false;
61
- this.skipIfTriggeredByKeyboardAction = () => {
62
- if (!this.isKeyBoardAction) {
63
- return true;
64
- }
65
- this.isKeyBoardAction = false;
66
- return false;
67
- };
68
- this.onSelectTouch = () => { };
69
- }
70
- ngOnInit() {
71
- super.ngOnInit();
72
- this.closeTabOnValueChange();
73
- }
74
- closeTabOnValueChange() {
75
- this.valueChangeService.valueChange$.pipe(takeUntil(this.isDestroyed$), filter(this.skipIfTriggeredByKeyboardAction)).subscribe(() => {
76
- this.onClosePanel();
77
- });
78
- }
79
- onTogglePanel() {
80
- this.openPanel = !this.openPanel;
81
- this.openPanelChange.emit(this.openPanel);
82
- }
83
- onClosePanel() {
84
- this.openPanel = false;
85
- this.openPanelChange.emit(this.openPanel);
86
- }
87
- onKeydown(event) {
88
- const keyCode = event.keyCode;
89
- if (event.keyCode === TAB) {
90
- // go to the next element with tabindex
91
- if (this.openPanel) {
92
- this.openPanel = false;
93
- }
94
- return;
95
- }
96
- if (this.disabled) {
97
- return;
98
- }
99
- const actionTriggered = this.openPanel ? this._handleOpenKeydown(event) : this._handleClosedKeydown(event);
100
- if (actionTriggered) {
101
- return;
102
- }
103
- this.isKeyBoardAction = true;
104
- super.onKeydown(event);
105
- }
106
- handleKeyboardActionWithSearch(event) {
107
- const keyCode = event.keyCode;
108
- if (keyCode === DOWN_ARROW) {
109
- this.isKeyBoardAction = true;
110
- this.valueChangeService.selectNextOption();
111
- return true;
112
- }
113
- if (keyCode === UP_ARROW) {
114
- this.isKeyBoardAction = true;
115
- this.valueChangeService.selectPreviousOption();
116
- return true;
117
- }
118
- return false;
119
- }
120
- /** Handles keyboard events while the select is closed. */
121
- _handleClosedKeydown(event) {
122
- const keyCode = event.keyCode;
123
- const isArrowKey = keyCode === DOWN_ARROW ||
124
- keyCode === UP_ARROW ||
125
- keyCode === LEFT_ARROW ||
126
- keyCode === RIGHT_ARROW;
127
- const isOpenKey = keyCode === ENTER;
128
- // Open the select on ALT + arrow key to match the native <select>
129
- if ((isOpenKey && !hasModifierKey(event)) ||
130
- (event.altKey && isArrowKey)) {
131
- this.openPanel = true;
132
- return true;
133
- }
134
- return false;
135
- }
136
- /** Handles keyboard events when the selected is open. */
137
- _handleOpenKeydown(event) {
138
- const keyCode = event.keyCode;
139
- const isArrowKey = keyCode === DOWN_ARROW ||
140
- keyCode === UP_ARROW ||
141
- keyCode === LEFT_ARROW ||
142
- keyCode === RIGHT_ARROW;
143
- const isEscapeKey = keyCode === ESCAPE || keyCode === ENTER || keyCode === TAB;
144
- if ((isArrowKey && event.altKey) || isEscapeKey) {
145
- // Close the select on ALT + arrow key to match the native <select>
146
- this.openPanel = false;
147
- if (this.customSearchTrigger && keyCode !== TAB) {
148
- // 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.
149
- this.selectHeader.nativeElement.focus();
150
- }
151
- return true;
152
- }
153
- return false;
154
- }
155
- registerOnTouched(fn) {
156
- this.onSelectTouch = fn;
157
- }
158
- ngOnDestroy() {
159
- this.isDestroyed$.next();
160
- this.isDestroyed$.complete();
161
- }
162
- }
163
- SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: SelectComponent, deps: [{ token: i1.ValueChangeService }], target: i0.ɵɵFactoryTarget.Component });
164
- SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: SelectComponent, selector: "wac-select", inputs: { required: "required", keepPanelOpen: "keepPanelOpen", openPanel: "openPanel", enableSearch: "enableSearch" }, outputs: { openPanelChange: "openPanelChange" }, host: { properties: { "attr.role": "this.role" } }, providers: [
165
- { provide: NG_VALUE_ACCESSOR, useExisting: SelectComponent, multi: true },
166
- ValueChangeService
167
- ], 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\">\n <ng-content select=\"wac-label, .wac-label\" ></ng-content>\n</p>\n\n<div\n class=\"wac-select\"\n wzAutoHide\n (clickOutside)=\"onClosePanel()\"\n [triggerElement]=\"'wac-select__header__selection'\"\n [zIndexToggle]=\"openPanel\"\n >\n\n <div #selectHeader class=\"wac-select__header\" [ngClass]=\"{ 'select-disabled' : disabled }\" (click)=\"!disabled && onTogglePanel()\" tabindex=\"0\">\n\n <ng-container [ngTemplateOutlet]=\"openPanel ? openPanelTrigger : closePanelTrigger\" >\n\n <ng-template #closePanelTrigger>\n <ng-container [ngTemplateOutlet]=\"defaultTrigger\"></ng-container>\n </ng-template>\n\n <ng-template #openPanelTrigger>\n <ng-content *ngIf=\"!!customSearchTrigger; else defaultTrigger\" select=\"wac-select-search-trigger\" ></ng-content>\n </ng-template>\n\n <ng-template #defaultTrigger>\n <ng-content *ngIf=\"!selectedOptionContent\" select=\"wac-placeholder,[role=placeholder]\"></ng-content>\n <div\n class=\"wac-select__header__selection wac-option__placeholder\"\n *ngIf=\"!!selectedOptionContent\"\n [innerHtml]=\"selectedOptionContent\">\n </div>\n </ng-template>\n\n </ng-container>\n\n <span class=\"wac-select__header__chevron\"><i class=\"fas fa-chevron-down\"></i></span>\n\n </div>\n\n\n <div class=\"wac-select__content\" *ngIf=\"!disabled\" [ngClass]=\"{ hidden: !openPanel, open: openPanel }\">\n\n <perfect-scrollbar [config]=\"{ suppressScrollX: true }\">\n <ng-content\n select=\"wac-option-call-to-action, wac-option, option, .option, [selectOption]\">\n </ng-content>\n </perfect-scrollbar>\n\n <div *ngIf=\"!optionChildren?.length\" class=\"wac-select__content__empty\">\n <span>{{'wac.datatable.noresult' | translate}}</span>\n </div>\n\n </div>\n</div>", 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 });
168
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: SelectComponent, decorators: [{
169
- type: Component,
170
- args: [{ selector: 'wac-select', providers: [
171
- { provide: NG_VALUE_ACCESSOR, useExisting: SelectComponent, multi: true },
172
- ValueChangeService
173
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, template: "<p *ngIf=\"!!label\" class=\"wac-select__label\">\n <ng-content select=\"wac-label, .wac-label\" ></ng-content>\n</p>\n\n<div\n class=\"wac-select\"\n wzAutoHide\n (clickOutside)=\"onClosePanel()\"\n [triggerElement]=\"'wac-select__header__selection'\"\n [zIndexToggle]=\"openPanel\"\n >\n\n <div #selectHeader class=\"wac-select__header\" [ngClass]=\"{ 'select-disabled' : disabled }\" (click)=\"!disabled && onTogglePanel()\" tabindex=\"0\">\n\n <ng-container [ngTemplateOutlet]=\"openPanel ? openPanelTrigger : closePanelTrigger\" >\n\n <ng-template #closePanelTrigger>\n <ng-container [ngTemplateOutlet]=\"defaultTrigger\"></ng-container>\n </ng-template>\n\n <ng-template #openPanelTrigger>\n <ng-content *ngIf=\"!!customSearchTrigger; else defaultTrigger\" select=\"wac-select-search-trigger\" ></ng-content>\n </ng-template>\n\n <ng-template #defaultTrigger>\n <ng-content *ngIf=\"!selectedOptionContent\" select=\"wac-placeholder,[role=placeholder]\"></ng-content>\n <div\n class=\"wac-select__header__selection wac-option__placeholder\"\n *ngIf=\"!!selectedOptionContent\"\n [innerHtml]=\"selectedOptionContent\">\n </div>\n </ng-template>\n\n </ng-container>\n\n <span class=\"wac-select__header__chevron\"><i class=\"fas fa-chevron-down\"></i></span>\n\n </div>\n\n\n <div class=\"wac-select__content\" *ngIf=\"!disabled\" [ngClass]=\"{ hidden: !openPanel, open: openPanel }\">\n\n <perfect-scrollbar [config]=\"{ suppressScrollX: true }\">\n <ng-content\n select=\"wac-option-call-to-action, wac-option, option, .option, [selectOption]\">\n </ng-content>\n </perfect-scrollbar>\n\n <div *ngIf=\"!optionChildren?.length\" class=\"wac-select__content__empty\">\n <span>{{'wac.datatable.noresult' | translate}}</span>\n </div>\n\n </div>\n</div>" }]
174
- }], ctorParameters: function () { return [{ type: i1.ValueChangeService }]; }, propDecorators: { role: [{
175
- type: HostBinding,
176
- args: ['attr.role']
177
- }], customSearchTrigger: [{
178
- type: ContentChild,
179
- args: [SelectSearchTriggerComponent]
180
- }], label: [{
181
- type: ContentChild,
182
- args: [LabelComponent]
183
- }], selectHeader: [{
184
- type: ViewChild,
185
- args: ['selectHeader']
186
- }], required: [{
187
- type: Input
188
- }], keepPanelOpen: [{
189
- type: Input
190
- }], openPanel: [{
191
- type: Input
192
- }], openPanelChange: [{
193
- type: Output
194
- }], enableSearch: [{
195
- type: Input
196
- }] } });
197
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFjLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZMLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN4RyxPQUFPLEVBQ0wsVUFBVSxFQUNWLEtBQUssRUFDTCxNQUFNLEVBQ04sY0FBYyxFQUNkLFVBQVUsRUFDVixXQUFXLEVBQ1gsR0FBRyxFQUNILFFBQVEsR0FDVCxNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7O0FBYXJELE1BQU0sT0FBTyxlQUE4QixTQUFRLGVB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YW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFZhbHVlQ2hhbmdlU2VydmljZSB9IGZyb20gJy4vdmFsdWUtY2hhbmdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2VsZWN0U2VhcmNoVHJpZ2dlckNvbXBvbmVudCB9IGZyb20gJy4uL3NlbGVjdC1zZWFyY2gtdHJpZ2dlci9zZWxlY3Qtc2VhcmNoLXRyaWdnZXIuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIERPV05fQVJST1csXG4gIEVOVEVSLFxuICBFU0NBUEUsXG4gIGhhc01vZGlmaWVyS2V5LFxuICBMRUZUX0FSUk9XLFxuICBSSUdIVF9BUlJPVyxcbiAgVEFCLFxuICBVUF9BUlJPVyxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IExhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbW9uL2xhYmVsL2xhYmVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3REaXJlY3RpdmUgfSBmcm9tICcuL3NlbGVjdC5kaXJlY3RpdmUnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dhYy1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IFNlbGVjdENvbXBvbmVudCwgbXVsdGk6IHRydWUgfSxcbiAgICBWYWx1ZUNoYW5nZVNlcnZpY2VcbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQ8VE9wdGlvblZhbHVlPiBleHRlbmRzIFNlbGVjdERpcmVjdGl2ZTxUT3B0aW9uVmFsdWU+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvLyEgUmVmYWN0byBpbXByb3ZlIHNyb2xsIG9uIG1vYmlsZSwgc2VlIHdpdGggUGF1bGluZVxuICAvLyBhbmd1bGFyIG1hdGVyaWFsIHNlbGVjdCBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2Jsb2IvbWFpbi9zcmMvbWF0ZXJpYWwvc2VsZWN0L3NlbGVjdC50c1xuXG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJykgcm9sZSA9ICdjb21ib2JveCc7XG5cbiAgQENvbnRlbnRDaGlsZChTZWxlY3RTZWFyY2hUcmlnZ2VyQ29tcG9uZW50KSBjdXN0b21TZWFyY2hUcmlnZ2VyOiBTZWxlY3RTZWFyY2hUcmlnZ2VyQ29tcG9uZW50O1xuXG4gIEBDb250ZW50Q2hpbGQoTGFiZWxDb21wb25lbnQpIGxhYmVsOiBMYWJlbENvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKCdzZWxlY3RIZWFkZXInKSBzZWxlY3RIZWFkZXI6IEVsZW1lbnRSZWY7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyByZXF1aXJlZC4gKi9cbiAgQElucHV0KClcbiAgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZCA/PyBmYWxzZTtcbiAgfVxuXG4gIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlcXVpcmVkID0gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9yZXF1aXJlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICBnZXQgc2VsZWN0ZWRPcHRpb25Db250ZW50KCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVDaGFuZ2VTZXJ2aWNlLnNlbGVjdGVkT3B0aW9uQ29udGVudDtcbiAgfTtcblxuICBASW5wdXQoKVxuICBzZXQga2VlcFBhbmVsT3BlbihrZWVwUGFuZWxPcGVuOiBib29sZWFuKSB7XG4gICAgdGhpcy5vcGVuUGFuZWwgPSBrZWVwUGFuZWxPcGVuO1xuICAgIHRoaXMuX2tlZXBQYW5lbE9wZW4gPSBrZWVwUGFuZWxPcGVuO1xuICB9XG5cbiAgZ2V0IGtlZXBQYW5lbE9wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2tlZXBQYW5lbE9wZW4gO1xuICB9XG5cbiAgcHJpdmF0ZSBfa2VlcFBhbmVsT3BlbjogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBzZXQgb3BlblBhbmVsKG9wZW5QYW5lbDogYm9vbGVhbikge1xuICAgIGNvbnN0IHdhc09wZW4gPSB0aGlzLl9vcGVuUGFuZWw7XG4gICAgdGhpcy5fb3BlblBhbmVsID0gdGhpcy5rZWVwUGFuZWxPcGVuIHx8IG9wZW5QYW5lbDtcblxuICAgIGlmIChvcGVuUGFuZWwpIHtcbiAgICAgIHRoaXMuY3VzdG9tU2VhcmNoVHJpZ2dlcj8uc2V0Rm9jdXMoKTtcbiAgICB9XG5cbiAgICBpZiAod2FzT3Blbikge1xuICAgICAgdGhpcy5vblNlbGVjdFRvdWNoKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBvcGVuUGFuZWwoKSA6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9vcGVuUGFuZWw7XG4gIH1cbiAgX29wZW5QYW5lbDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBvcGVuUGFuZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQElucHV0KCkgZW5hYmxlU2VhcmNoOiBib29sZWFuID0gZmFsc2U7XG5cbiAgb3ZlcnJpZGUgdGFiSW5kZXg6IG51bWJlciA9IC0xO1xuXG4gIGlzRGVzdHJveWVkJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHJpdmF0ZSBpc0tleUJvYXJkQWN0aW9uID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHZhbHVlQ2hhbmdlU2VydmljZTogVmFsdWVDaGFuZ2VTZXJ2aWNlPFRPcHRpb25WYWx1ZT4sXG4gICAgKSB7XG4gICAgICBzdXBlcih2YWx1ZUNoYW5nZVNlcnZpY2UpO1xuICAgIH1cblxuICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuY2xvc2VUYWJPblZhbHVlQ2hhbmdlKCk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlVGFiT25WYWx1ZUNoYW5nZSgpIHtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlU2VydmljZS52YWx1ZUNoYW5nZSQucGlwZSh0YWtlVW50aWwodGhpcy5pc0Rlc3Ryb3llZCQpLCBmaWx0ZXIodGhpcy5za2lwSWZUcmlnZ2VyZWRCeUtleWJvYXJkQWN0aW9uKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMub25DbG9zZVBhbmVsKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNraXBJZlRyaWdnZXJlZEJ5S2V5Ym9hcmRBY3Rpb24gPSAoKSA9PiB7XG4gICAgaWYoIXRoaXMuaXNLZXlCb2FyZEFjdGlvbikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHRoaXMuaXNLZXlCb2FyZEFjdGlvbiA9IGZhbHNlO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIG9uVG9nZ2xlUGFuZWwoKSB7XG4gICAgdGhpcy5vcGVuUGFuZWwgPSAhdGhpcy5vcGVuUGFuZWw7XG4gICAgdGhpcy5vcGVuUGFuZWxDaGFuZ2UuZW1pdCh0aGlzLm9wZW5QYW5lbCk7XG4gIH1cblxuICBvbkNsb3NlUGFuZWwoKSB7XG4gICAgdGhpcy5vcGVuUGFuZWwgPSBmYWxzZTtcbiAgICB0aGlzLm9wZW5QYW5lbENoYW5nZS5lbWl0KHRoaXMub3BlblBhbmVsKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGtleUNvZGUgPSBldmVudC5rZXlDb2RlO1xuICAgIGlmIChldmVudC5rZXlDb2RlID09PSBUQUIpIHtcbiAgICAgIC8vIGdvIHRvIHRoZSBuZXh0IGVsZW1lbnQgd2l0aCB0YWJpbmRleFxuICAgICAgaWYgKHRoaXMub3BlblBhbmVsKSB7XG4gICAgICAgIHRoaXMub3BlblBhbmVsID0gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYWN0aW9uVHJpZ2dlcmVkID0gdGhpcy5vcGVuUGFuZWwgPyB0aGlzLl9oYW5kbGVPcGVuS2V5ZG93bihldmVudCkgOiB0aGlzLl9oYW5kbGVDbG9zZWRLZXlkb3duKGV2ZW50KTtcblxuICAgIGlmIChhY3Rpb25UcmlnZ2VyZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc0tleUJvYXJkQWN0aW9uID0gdHJ1ZTtcbiAgICBzdXBlci5vbktleWRvd24oZXZlbnQpO1xuICB9XG5cbiAgaGFuZGxlS2V5Ym9hcmRBY3Rpb25XaXRoU2VhcmNoKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogYm9vbGVhbiB7XG4gICAgY29uc3Qga2V5Q29kZSA9IGV2ZW50LmtleUNvZGU7XG5cbiAgICBpZiAoa2V5Q29kZSA9PT0gRE9XTl9BUlJPVykge1xuICAgICAgdGhpcy5pc0tleUJvYXJkQWN0aW9uID0gdHJ1ZTtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2VTZXJ2aWNlLnNlbGVjdE5leHRPcHRpb24oKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAoa2V5Q29kZSA9PT0gVVBfQVJST1cpIHtcbiAgICAgIHRoaXMuaXNLZXlCb2FyZEFjdGlvbiA9IHRydWU7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlU2VydmljZS5zZWxlY3RQcmV2aW91c09wdGlvbigpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKiBIYW5kbGVzIGtleWJvYXJkIGV2ZW50cyB3aGlsZSB0aGUgc2VsZWN0IGlzIGNsb3NlZC4gKi9cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xvc2VkS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGtleUNvZGUgPSBldmVudC5rZXlDb2RlO1xuICAgIGNvbnN0IGlzQXJyb3dLZXkgPVxuICAgICAga2V5Q29kZSA9PT0gRE9XTl9BUlJPVyB8fFxuICAgICAga2V5Q29kZSA9PT0gVVBfQVJST1cgfHxcbiAgICAgIGtleUNvZGUgPT09IExFRlRfQVJST1cgfHxcbiAgICAgIGtleUNvZGUgPT09IFJJR0hUX0FSUk9XO1xuICAgIGNvbnN0IGlzT3BlbktleSA9IGtleUNvZGUgPT09IEVOVEVSO1xuICAgIC8vIE9wZW4gdGhlIHNlbGVjdCBvbiBBTFQgKyBhcnJvdyBrZXkgdG8gbWF0Y2ggdGhlIG5hdGl2ZSA8c2VsZWN0PlxuICAgIGlmIChcbiAgICAgIChpc09wZW5LZXkgJiYgIWhhc01vZGlmaWVyS2V5KGV2ZW50KSkgfHxcbiAgICAgIChldmVudC5hbHRLZXkgJiYgaXNBcnJvd0tleSlcbiAgICApIHtcbiAgICAgIHRoaXMub3BlblBhbmVsID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKiBIYW5kbGVzIGtleWJvYXJkIGV2ZW50cyB3aGVuIHRoZSBzZWxlY3RlZCBpcyBvcGVuLiAqL1xuICBwcml2YXRlIF9oYW5kbGVPcGVuS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGtleUNvZGUgPSBldmVudC5rZXlDb2RlO1xuICAgIGNvbnN0IGlzQXJyb3dLZXkgPVxuICAgICAga2V5Q29kZSA9PT0gRE9XTl9BUlJPVyB8fFxuICAgICAga2V5Q29kZSA9PT0gVVBfQVJST1cgfHxcbiAgICAgIGtleUNvZGUgPT09IExFRlRfQVJST1cgfHxcbiAgICAgIGtleUNvZGUgPT09IFJJR0hUX0FSUk9XO1xuICAgIGNvbnN0IGlzRXNjYXBlS2V5ID0ga2V5Q29kZSA9PT0gRVNDQVBFIHx8IGtleUNvZGUgPT09IEVOVEVSIHx8IGtleUNvZGUgPT09IFRBQjtcblxuICAgIGlmICgoaXNBcnJvd0tleSAmJiBldmVudC5hbHRLZXkpIHx8IGlzRXNjYXBlS2V5KSB7XG4gICAgICAvLyBDbG9zZSB0aGUgc2VsZWN0IG9uIEFMVCArIGFycm93IGtleSB0byBtYXRjaCB0aGUgbmF0aXZlIDxzZWxlY3Q+XG4gICAgICB0aGlzLm9wZW5QYW5lbCA9IGZhbHNlO1xuXG4gICAgICBpZiAodGhpcy5jdXN0b21TZWFyY2hUcmlnZ2VyICYmIGtleUNvZGUgIT09IFRBQikge1xuICAgICAgICAvLyBJZiBhIGVzY2FwZSBrZXkgaXMgdXNlZCB3aXRoIHRoZSBzZWFyY2gsIHRoZSBmb2N1cyBvbiB0aGUgc2VsZWN0IGlzIGxvb3NlZC4gQW5kIHdlIGNhbiBub3QgaW50ZXJhY3Qgd2l0aCB0aGUgc2VsZWN0IGFueW1vcmUuXG4gICAgICAgIHRoaXMuc2VsZWN0SGVhZGVyLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIG9uU2VsZWN0VG91Y2g6ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgb3ZlcnJpZGUgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSl7XG4gICAgdGhpcy5vblNlbGVjdFRvdWNoID0gZm47XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmlzRGVzdHJveWVkJC5uZXh0KCk7XG4gICAgdGhpcy5pc0Rlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPHAgKm5nSWY9XCIhIWxhYmVsXCIgY2xhc3M9XCJ3YWMtc2VsZWN0X19sYWJlbFwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJ3YWMtbGFiZWwsIC53YWMtbGFiZWxcIiA+PC9uZy1jb250ZW50PlxuPC9wPlxuXG48ZGl2XG4gIGNsYXNzPVwid2FjLXNlbGVjdFwiXG4gIHd6QXV0b0hpZGVcbiAgKGNsaWNrT3V0c2lkZSk9XCJvbkNsb3NlUGFuZWwoKVwiXG4gIFt0cmlnZ2VyRWxlbWVudF09XCInd2FjLXNlbGVjdF9faGVhZGVyX19zZWxlY3Rpb24nXCJcbiAgW3pJbmRleFRvZ2dsZV09XCJvcGVuUGFuZWxcIlxuICA+XG5cbiAgICA8ZGl2ICNzZWxlY3RIZWFkZXIgY2xhc3M9XCJ3YWMtc2VsZWN0X19oZWFkZXJcIiBbbmdDbGFzc109XCJ7ICdzZWxlY3QtZGlzYWJsZWQnIDogZGlzYWJsZWQgfVwiIChjbGljayk9XCIhZGlzYWJsZWQgJiYgb25Ub2dnbGVQYW5lbCgpXCIgdGFiaW5kZXg9XCIwXCI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwib3BlblBhbmVsID8gb3BlblBhbmVsVHJpZ2dlciA6IGNsb3NlUGFuZWxUcmlnZ2VyXCIgPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY2xvc2VQYW5lbFRyaWdnZXI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJkZWZhdWx0VHJpZ2dlclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjb3BlblBhbmVsVHJpZ2dlcj5cbiAgICAgICAgICA8bmctY29udGVudCAqbmdJZj1cIiEhY3VzdG9tU2VhcmNoVHJpZ2dlcjsgZWxzZSBkZWZhdWx0VHJpZ2dlclwiIHNlbGVjdD1cIndhYy1zZWxlY3Qtc2VhcmNoLXRyaWdnZXJcIiA+PC9uZy1jb250ZW50PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRyaWdnZXI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgKm5nSWY9XCIhc2VsZWN0ZWRPcHRpb25Db250ZW50XCIgc2VsZWN0PVwid2FjLXBsYWNlaG9sZGVyLFtyb2xlPXBsYWNlaG9sZGVyXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cIndhYy1zZWxlY3RfX2hlYWRlcl9fc2VsZWN0aW9uIHdhYy1vcHRpb25fX3BsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICpuZ0lmPVwiISFzZWxlY3RlZE9wdGlvbkNvbnRlbnRcIlxuICAgICAgICAgICAgW2lubmVySHRtbF09XCJzZWxlY3RlZE9wdGlvbkNvbnRlbnRcIj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxzcGFuIGNsYXNzPVwid2FjLXNlbGVjdF9faGVhZGVyX19jaGV2cm9uXCI+PGkgY2xhc3M9XCJmYXMgZmEtY2hldnJvbi1kb3duXCI+PC9pPjwvc3Bhbj5cblxuICAgIDwvZGl2PlxuXG5cbiAgICA8ZGl2IGNsYXNzPVwid2FjLXNlbGVjdF9fY29udGVudFwiICpuZ0lmPVwiIWRpc2FibGVkXCIgW25nQ2xhc3NdPVwieyBoaWRkZW46ICFvcGVuUGFuZWwsIG9wZW46IG9wZW5QYW5lbCB9XCI+XG5cbiAgICAgIDxwZXJmZWN0LXNjcm9sbGJhciBbY29uZmlnXT1cInsgc3VwcHJlc3NTY3JvbGxYOiB0cnVlIH1cIj5cbiAgICAgICAgPG5nLWNvbnRlbnRcbiAgICAgICAgICBzZWxlY3Q9XCJ3YWMtb3B0aW9uLWNhbGwtdG8tYWN0aW9uLCB3YWMtb3B0aW9uLCBvcHRpb24sIC5vcHRpb24sIFtzZWxlY3RPcHRpb25dXCI+XG4gICAgICAgIDwvbmctY29udGVudD5cbiAgICAgIDwvcGVyZmVjdC1zY3JvbGxiYXI+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCIhb3B0aW9uQ2hpbGRyZW4/Lmxlbmd0aFwiIGNsYXNzPVwid2FjLXNlbGVjdF9fY29udGVudF9fZW1wdHlcIj5cbiAgICAgICAgPHNwYW4+e3snd2FjLmRhdGF0YWJsZS5ub3Jlc3VsdCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=