@odx/angular 1.0.0-rc.11 → 1.0.0-rc.13

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 (376) hide show
  1. package/cdk/a11y/lib/directives/list-focus-manager-option.directive.d.ts +1 -2
  2. package/cdk/active-indicator/lib/models/active-indicator-direction.d.ts +1 -1
  3. package/cdk/active-indicator/lib/models/active-indicator-position.d.ts +1 -1
  4. package/cdk/dynamic-view/lib/facade/dynamic-content.d.ts +3 -3
  5. package/cdk/dynamic-view/lib/models/dynamic-component-ref.d.ts +1 -0
  6. package/components/action-group/action-group.component.d.ts +1 -1
  7. package/components/area-header/models/area-header-size.d.ts +1 -1
  8. package/components/avatar/lib/models/avatar-size.d.ts +1 -1
  9. package/components/avatar/lib/models/avatar-variant.d.ts +1 -1
  10. package/components/badge/lib/models/badge-variant.d.ts +1 -1
  11. package/components/bar/lib/models/bar-button-variant.d.ts +1 -1
  12. package/components/button/lib/models/button-size.d.ts +1 -1
  13. package/components/button/lib/models/button-variant.d.ts +1 -1
  14. package/components/chip/lib/models/chip-size.d.ts +1 -1
  15. package/components/chip/lib/models/chip-variant.d.ts +1 -1
  16. package/components/circular-progress/lib/models/circular-progress-size.d.ts +1 -1
  17. package/components/dropdown/lib/models/dropdown-options.d.ts +1 -1
  18. package/components/form-field/lib/models/form-field-error-resolver.d.ts +1 -1
  19. package/components/header/lib/header.component.d.ts +1 -1
  20. package/components/icon/lib/models/icon-size.d.ts +1 -1
  21. package/components/inline-message/lib/models/inline-message-variant.d.ts +1 -1
  22. package/components/loading-spinner/lib/loading-spinner.directive.d.ts +3 -1
  23. package/components/logo/models/logo-size.d.ts +1 -1
  24. package/components/logo/models/logo-variant.d.ts +1 -1
  25. package/components/main-menu/lib/directives/main-menu-item.directive.d.ts +2 -0
  26. package/components/menu/lib/directives/menu-item.directive.d.ts +1 -2
  27. package/components/modal/lib/modal.config.d.ts +1 -1
  28. package/components/modal/lib/models/basic-modal-options.d.ts +1 -1
  29. package/components/modal/lib/models/modal-hero-variant.d.ts +1 -1
  30. package/components/modal/lib/models/modal-options.d.ts +1 -1
  31. package/components/modal/lib/models/modal-size.d.ts +1 -1
  32. package/components/modal/lib/models/modal-type.d.ts +1 -1
  33. package/components/modal/lib/models/modal-variant.d.ts +1 -1
  34. package/components/select/lib/abstract/select-control-option.d.ts +2 -0
  35. package/components/select/lib/abstract/select-control.d.ts +1 -0
  36. package/components/select/lib/components/option/option.component.d.ts +6 -1
  37. package/components/select/lib/select.component.d.ts +7 -5
  38. package/components/toast/lib/components/toast-item/toast-item.component.d.ts +1 -1
  39. package/components/toast/lib/models/toast-variant.d.ts +1 -1
  40. package/components/toast/lib/toast.config.d.ts +1 -1
  41. package/components/tooltip/lib/models/tooltip-size.d.ts +1 -1
  42. package/components/tooltip/lib/models/tooltip-trigger.d.ts +1 -1
  43. package/esm2020/cdk/a11y/lib/a11y.module.mjs +4 -4
  44. package/esm2020/cdk/a11y/lib/directives/interactive.directive.mjs +3 -3
  45. package/esm2020/cdk/a11y/lib/directives/list-focus-manager-option.directive.mjs +5 -7
  46. package/esm2020/cdk/a11y/lib/directives/list-focus-manager.directive.mjs +3 -3
  47. package/esm2020/cdk/active-indicator/lib/active-indicator.directive.mjs +3 -3
  48. package/esm2020/cdk/checkbox-control/lib/checkbox-control.directive.mjs +11 -11
  49. package/esm2020/cdk/connected-overlay/lib/connected-overlay.component.mjs +3 -3
  50. package/esm2020/cdk/connected-overlay/lib/connected-overlay.service.mjs +3 -3
  51. package/esm2020/cdk/custom-form-control/lib/control.directive.mjs +3 -3
  52. package/esm2020/cdk/custom-form-control/lib/custom-form-control.mjs +18 -18
  53. package/esm2020/cdk/dynamic-view/lib/dynamic-view.component.mjs +3 -3
  54. package/esm2020/cdk/dynamic-view/lib/dynamic-view.directive.mjs +3 -3
  55. package/esm2020/cdk/dynamic-view/lib/dynamic-view.service.mjs +3 -3
  56. package/esm2020/cdk/dynamic-view/lib/models/dynamic-component-ref.mjs +14 -3
  57. package/esm2020/cdk/expandable/lib/directives/expandable-item.directive.mjs +3 -3
  58. package/esm2020/cdk/expandable/lib/directives/extandable-container.directive.mjs +3 -3
  59. package/esm2020/cdk/expandable/lib/expandable.module.mjs +4 -4
  60. package/esm2020/cdk/radio-group-control/lib/radio-control.directive.mjs +10 -10
  61. package/esm2020/cdk/radio-group-control/lib/radio-group-control.directive.mjs +7 -7
  62. package/esm2020/cdk/radio-group-control/lib/radio-group-control.module.mjs +4 -4
  63. package/esm2020/components/accordion/lib/accordion.component.mjs +6 -6
  64. package/esm2020/components/accordion/lib/accordion.module.mjs +4 -4
  65. package/esm2020/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +3 -3
  66. package/esm2020/components/accordion/lib/directives/accordion-item-title.mjs +3 -3
  67. package/esm2020/components/action-group/action-group.component.mjs +5 -5
  68. package/esm2020/components/area-header/area-header.component.mjs +6 -5
  69. package/esm2020/components/area-header/area-header.module.mjs +4 -4
  70. package/esm2020/components/area-header/directives/area-header-content.directive.mjs +3 -3
  71. package/esm2020/components/area-header/directives/area-header-subtitle.directive.mjs +3 -3
  72. package/esm2020/components/avatar/lib/avatar.component.mjs +8 -10
  73. package/esm2020/components/badge/lib/badge.component.mjs +6 -5
  74. package/esm2020/components/badge/lib/badge.directive.mjs +3 -3
  75. package/esm2020/components/bar/lib/bar.component.mjs +3 -3
  76. package/esm2020/components/bar/lib/bar.module.mjs +4 -4
  77. package/esm2020/components/bar/lib/directives/bar-button.directive.mjs +6 -7
  78. package/esm2020/components/bar/lib/directives/bar-label.directive.mjs +3 -3
  79. package/esm2020/components/breadcrumbs/lib/breadcrumbs.component.mjs +3 -3
  80. package/esm2020/components/button/lib/button.component.mjs +8 -10
  81. package/esm2020/components/button-group/lib/button-group.component.mjs +3 -3
  82. package/esm2020/components/checkbox/lib/checkbox.component.mjs +3 -3
  83. package/esm2020/components/checkbox/lib/checkbox.module.mjs +4 -4
  84. package/esm2020/components/checkbox/lib/checkbox.validator.mjs +3 -3
  85. package/esm2020/components/chip/lib/chip.component.mjs +3 -3
  86. package/esm2020/components/circular-progress/lib/circular-progress.component.mjs +3 -3
  87. package/esm2020/components/content-box/lib/content-box.component.mjs +3 -3
  88. package/esm2020/components/content-box/lib/content-box.module.mjs +4 -4
  89. package/esm2020/components/content-box/lib/directives/content-box-footer-directive.mjs +3 -3
  90. package/esm2020/components/content-box/lib/directives/content-box-header-directive.mjs +3 -3
  91. package/esm2020/components/dropdown/lib/dropdown.component.mjs +3 -3
  92. package/esm2020/components/dropdown/lib/dropdown.directive.mjs +3 -3
  93. package/esm2020/components/dropdown/lib/dropdown.module.mjs +4 -4
  94. package/esm2020/components/dropdown/lib/models/dropdown-options.mjs +2 -2
  95. package/esm2020/components/form-field/lib/components/form-field-info/form-field-info.component.mjs +3 -3
  96. package/esm2020/components/form-field/lib/components/form-group/form-group.component.mjs +3 -3
  97. package/esm2020/components/form-field/lib/directives/form-field-control.directive.mjs +3 -3
  98. package/esm2020/components/form-field/lib/directives/form-field-error.directive.mjs +3 -3
  99. package/esm2020/components/form-field/lib/directives/form-field-hint.directive.mjs +3 -3
  100. package/esm2020/components/form-field/lib/directives/form-field-label.directive.mjs +3 -3
  101. package/esm2020/components/form-field/lib/directives/form.directive.mjs +3 -3
  102. package/esm2020/components/form-field/lib/form-field.component.mjs +10 -10
  103. package/esm2020/components/form-field/lib/form-field.module.mjs +4 -4
  104. package/esm2020/components/form-field/lib/form-field.service.mjs +3 -3
  105. package/esm2020/components/form-field/lib/services/form-field-error.service.mjs +3 -3
  106. package/esm2020/components/header/lib/directives/header-avatar.directive.mjs +3 -3
  107. package/esm2020/components/header/lib/directives/header-title.directive.mjs +3 -3
  108. package/esm2020/components/header/lib/header.component.mjs +5 -5
  109. package/esm2020/components/header/lib/header.module.mjs +4 -4
  110. package/esm2020/components/icon/lib/icon.component.mjs +3 -3
  111. package/esm2020/components/inline-message/lib/inline-message.component.mjs +6 -7
  112. package/esm2020/components/launch-tile/lib/components/launch-tile-footer/launch-tile-footer.component.mjs +3 -3
  113. package/esm2020/components/launch-tile/lib/components/launch-tile-subtitle/launch-tile-subtitle.component.mjs +3 -3
  114. package/esm2020/components/launch-tile/lib/launch-tile.component.mjs +5 -5
  115. package/esm2020/components/launch-tile/lib/launch-tile.module.mjs +4 -4
  116. package/esm2020/components/link/link.directive.mjs +3 -3
  117. package/esm2020/components/list/lib/components/list-item/list-item.component.mjs +3 -3
  118. package/esm2020/components/list/lib/list.component.mjs +3 -3
  119. package/esm2020/components/list/lib/list.module.mjs +4 -4
  120. package/esm2020/components/loading-spinner/lib/loading-spinner.component.mjs +3 -3
  121. package/esm2020/components/loading-spinner/lib/loading-spinner.directive.mjs +10 -6
  122. package/esm2020/components/loading-spinner/lib/loading-spinner.module.mjs +4 -4
  123. package/esm2020/components/logo/logo.directive.mjs +8 -6
  124. package/esm2020/components/main-menu/lib/directives/main-menu-button.directive.mjs +3 -3
  125. package/esm2020/components/main-menu/lib/directives/main-menu-item.directive.mjs +13 -5
  126. package/esm2020/components/main-menu/lib/main-menu.component.mjs +5 -5
  127. package/esm2020/components/main-menu/lib/main-menu.module.mjs +4 -4
  128. package/esm2020/components/main-menu/lib/main-menu.service.mjs +3 -3
  129. package/esm2020/components/menu/lib/directives/menu-item.directive.mjs +5 -7
  130. package/esm2020/components/menu/lib/menu.component.mjs +3 -3
  131. package/esm2020/components/menu/lib/menu.directive.mjs +3 -3
  132. package/esm2020/components/menu/lib/menu.module.mjs +4 -4
  133. package/esm2020/components/modal/lib/components/basic-modal/basic-modal.component.mjs +3 -3
  134. package/esm2020/components/modal/lib/components/modal-footer/modal-footer.component.mjs +3 -3
  135. package/esm2020/components/modal/lib/components/modal-header/modal-header.component.mjs +3 -3
  136. package/esm2020/components/modal/lib/components/modal-hero/modal-hero.component.mjs +3 -3
  137. package/esm2020/components/modal/lib/directives/modal-close.directive.mjs +3 -3
  138. package/esm2020/components/modal/lib/directives/modal-content.directive.mjs +3 -3
  139. package/esm2020/components/modal/lib/directives/modal-dismiss.directive.mjs +3 -3
  140. package/esm2020/components/modal/lib/modal.component.mjs +5 -5
  141. package/esm2020/components/modal/lib/modal.directive.mjs +3 -3
  142. package/esm2020/components/modal/lib/modal.module.mjs +4 -4
  143. package/esm2020/components/modal/lib/modal.service.mjs +3 -3
  144. package/esm2020/components/modal/lib/models/modal-ref.mjs +11 -11
  145. package/esm2020/components/progress/lib/progress.component.mjs +3 -3
  146. package/esm2020/components/radio-group/lib/components/radio-button/radio-button.component.mjs +3 -3
  147. package/esm2020/components/radio-group/lib/radio-group.component.mjs +7 -7
  148. package/esm2020/components/radio-group/lib/radio-group.module.mjs +4 -4
  149. package/esm2020/components/rail-navigation/lib/components/rail-navigation-item.component.mjs +3 -3
  150. package/esm2020/components/rail-navigation/lib/rail-navigation.component.mjs +3 -3
  151. package/esm2020/components/rail-navigation/lib/rail-navigation.module.mjs +4 -4
  152. package/esm2020/components/select/lib/abstract/select-control-option.mjs +1 -1
  153. package/esm2020/components/select/lib/abstract/select-control.mjs +1 -1
  154. package/esm2020/components/select/lib/components/option/option.component.mjs +36 -17
  155. package/esm2020/components/select/lib/directives/select-search-field.directive.mjs +3 -3
  156. package/esm2020/components/select/lib/pipes/select-search-filter.pipe.mjs +3 -3
  157. package/esm2020/components/select/lib/select.component.mjs +52 -27
  158. package/esm2020/components/select/lib/select.module.mjs +4 -4
  159. package/esm2020/components/slider/lib/slider.directive.mjs +3 -3
  160. package/esm2020/components/spinbox/lib/spinbox.component.mjs +7 -7
  161. package/esm2020/components/switch/lib/switch.component.mjs +3 -3
  162. package/esm2020/components/switch/lib/switch.module.mjs +4 -4
  163. package/esm2020/components/switch/lib/switch.validator.mjs +3 -3
  164. package/esm2020/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.mjs +3 -3
  165. package/esm2020/components/tab-bar/lib/tab-bar.component.mjs +6 -6
  166. package/esm2020/components/tab-bar/lib/tab-bar.module.mjs +4 -4
  167. package/esm2020/components/toast/lib/components/toast-container/toast-container.component.mjs +3 -3
  168. package/esm2020/components/toast/lib/components/toast-item/toast-item.component.mjs +7 -6
  169. package/esm2020/components/toast/lib/toast.module.mjs +4 -4
  170. package/esm2020/components/toast/lib/toast.service.mjs +3 -3
  171. package/esm2020/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.mjs +3 -3
  172. package/esm2020/components/toggle-button-group/lib/toggle-button-group.component.mjs +7 -7
  173. package/esm2020/components/toggle-button-group/lib/toggle-button-group.module.mjs +4 -4
  174. package/esm2020/components/tooltip/lib/tooltip.component.mjs +3 -3
  175. package/esm2020/components/tooltip/lib/tooltip.directive.mjs +10 -10
  176. package/esm2020/internal/decorators/css-component.mjs +3 -6
  177. package/esm2020/internal/decorators/css-modifier.mjs +14 -16
  178. package/esm2020/internal/helpers/decorator-property-name.mjs +4 -0
  179. package/esm2020/internal/helpers/index.mjs +2 -1
  180. package/esm2020/internal/helpers/with-mutiple-descriptors.mjs +10 -8
  181. package/esm2020/lib/controllers/controller.mjs +3 -3
  182. package/esm2020/lib/controllers/disabled.controller.mjs +3 -3
  183. package/esm2020/lib/controllers/readonly.controller.mjs +11 -11
  184. package/esm2020/lib/core.module.mjs +9 -8
  185. package/esm2020/lib/directives/click-outside.directive.mjs +3 -3
  186. package/esm2020/lib/directives/index.mjs +1 -2
  187. package/esm2020/lib/directives/with-disabled-state.directive.mjs +9 -9
  188. package/esm2020/lib/directives/with-tabindex.directive.mjs +3 -3
  189. package/esm2020/lib/services/window-ref.mjs +13 -6
  190. package/esm2020/utils/lib/decorators/transform.mjs +3 -3
  191. package/esm2020/utils/lib/helpers/build-url.mjs +4 -0
  192. package/esm2020/utils/lib/helpers/event-manager.mjs +3 -3
  193. package/esm2020/utils/lib/helpers/index.mjs +2 -1
  194. package/fesm2015/odx-angular-cdk-a11y.mjs +13 -14
  195. package/fesm2015/odx-angular-cdk-a11y.mjs.map +1 -1
  196. package/fesm2015/odx-angular-cdk-active-indicator.mjs +3 -3
  197. package/fesm2015/odx-angular-cdk-checkbox-control.mjs +11 -11
  198. package/fesm2015/odx-angular-cdk-checkbox-control.mjs.map +1 -1
  199. package/fesm2015/odx-angular-cdk-connected-overlay.mjs +6 -6
  200. package/fesm2015/odx-angular-cdk-custom-form-control.mjs +21 -21
  201. package/fesm2015/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  202. package/fesm2015/odx-angular-cdk-dynamic-view.mjs +22 -10
  203. package/fesm2015/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  204. package/fesm2015/odx-angular-cdk-expandable.mjs +10 -10
  205. package/fesm2015/odx-angular-cdk-radio-group-control.mjs +19 -19
  206. package/fesm2015/odx-angular-cdk-radio-group-control.mjs.map +1 -1
  207. package/fesm2015/odx-angular-components-accordion.mjs +15 -15
  208. package/fesm2015/odx-angular-components-accordion.mjs.map +1 -1
  209. package/fesm2015/odx-angular-components-action-group.mjs +4 -4
  210. package/fesm2015/odx-angular-components-action-group.mjs.map +1 -1
  211. package/fesm2015/odx-angular-components-area-header.mjs +15 -14
  212. package/fesm2015/odx-angular-components-area-header.mjs.map +1 -1
  213. package/fesm2015/odx-angular-components-avatar.mjs +7 -9
  214. package/fesm2015/odx-angular-components-avatar.mjs.map +1 -1
  215. package/fesm2015/odx-angular-components-badge.mjs +8 -7
  216. package/fesm2015/odx-angular-components-badge.mjs.map +1 -1
  217. package/fesm2015/odx-angular-components-bar.mjs +15 -16
  218. package/fesm2015/odx-angular-components-bar.mjs.map +1 -1
  219. package/fesm2015/odx-angular-components-breadcrumbs.mjs +3 -3
  220. package/fesm2015/odx-angular-components-button-group.mjs +3 -3
  221. package/fesm2015/odx-angular-components-button.mjs +7 -9
  222. package/fesm2015/odx-angular-components-button.mjs.map +1 -1
  223. package/fesm2015/odx-angular-components-checkbox.mjs +10 -10
  224. package/fesm2015/odx-angular-components-chip.mjs +3 -3
  225. package/fesm2015/odx-angular-components-circular-progress.mjs +3 -3
  226. package/fesm2015/odx-angular-components-content-box.mjs +13 -13
  227. package/fesm2015/odx-angular-components-dropdown.mjs +11 -11
  228. package/fesm2015/odx-angular-components-dropdown.mjs.map +1 -1
  229. package/fesm2015/odx-angular-components-form-field.mjs +40 -40
  230. package/fesm2015/odx-angular-components-form-field.mjs.map +1 -1
  231. package/fesm2015/odx-angular-components-header.mjs +14 -14
  232. package/fesm2015/odx-angular-components-header.mjs.map +1 -1
  233. package/fesm2015/odx-angular-components-icon.mjs +3 -3
  234. package/fesm2015/odx-angular-components-inline-message.mjs +5 -6
  235. package/fesm2015/odx-angular-components-inline-message.mjs.map +1 -1
  236. package/fesm2015/odx-angular-components-launch-tile.mjs +14 -14
  237. package/fesm2015/odx-angular-components-launch-tile.mjs.map +1 -1
  238. package/fesm2015/odx-angular-components-link.mjs +3 -3
  239. package/fesm2015/odx-angular-components-list.mjs +10 -10
  240. package/fesm2015/odx-angular-components-loading-spinner.mjs +17 -12
  241. package/fesm2015/odx-angular-components-loading-spinner.mjs.map +1 -1
  242. package/fesm2015/odx-angular-components-logo.mjs +7 -5
  243. package/fesm2015/odx-angular-components-logo.mjs.map +1 -1
  244. package/fesm2015/odx-angular-components-main-menu.mjs +57 -49
  245. package/fesm2015/odx-angular-components-main-menu.mjs.map +1 -1
  246. package/fesm2015/odx-angular-components-menu.mjs +16 -17
  247. package/fesm2015/odx-angular-components-menu.mjs.map +1 -1
  248. package/fesm2015/odx-angular-components-modal.mjs +45 -45
  249. package/fesm2015/odx-angular-components-modal.mjs.map +1 -1
  250. package/fesm2015/odx-angular-components-progress.mjs +3 -3
  251. package/fesm2015/odx-angular-components-radio-group.mjs +13 -13
  252. package/fesm2015/odx-angular-components-radio-group.mjs.map +1 -1
  253. package/fesm2015/odx-angular-components-rail-navigation.mjs +10 -10
  254. package/fesm2015/odx-angular-components-select.mjs +92 -56
  255. package/fesm2015/odx-angular-components-select.mjs.map +1 -1
  256. package/fesm2015/odx-angular-components-slider.mjs +3 -3
  257. package/fesm2015/odx-angular-components-spinbox.mjs +7 -7
  258. package/fesm2015/odx-angular-components-spinbox.mjs.map +1 -1
  259. package/fesm2015/odx-angular-components-switch.mjs +10 -10
  260. package/fesm2015/odx-angular-components-tab-bar.mjs +12 -12
  261. package/fesm2015/odx-angular-components-tab-bar.mjs.map +1 -1
  262. package/fesm2015/odx-angular-components-toast.mjs +16 -15
  263. package/fesm2015/odx-angular-components-toast.mjs.map +1 -1
  264. package/fesm2015/odx-angular-components-toggle-button-group.mjs +13 -13
  265. package/fesm2015/odx-angular-components-toggle-button-group.mjs.map +1 -1
  266. package/fesm2015/odx-angular-components-tooltip.mjs +12 -12
  267. package/fesm2015/odx-angular-components-tooltip.mjs.map +1 -1
  268. package/fesm2015/odx-angular-internal.mjs +45 -47
  269. package/fesm2015/odx-angular-internal.mjs.map +1 -1
  270. package/fesm2015/odx-angular-utils.mjs +10 -6
  271. package/fesm2015/odx-angular-utils.mjs.map +1 -1
  272. package/fesm2015/odx-angular.mjs +53 -79
  273. package/fesm2015/odx-angular.mjs.map +1 -1
  274. package/fesm2020/odx-angular-cdk-a11y.mjs +13 -14
  275. package/fesm2020/odx-angular-cdk-a11y.mjs.map +1 -1
  276. package/fesm2020/odx-angular-cdk-active-indicator.mjs +3 -3
  277. package/fesm2020/odx-angular-cdk-checkbox-control.mjs +11 -11
  278. package/fesm2020/odx-angular-cdk-checkbox-control.mjs.map +1 -1
  279. package/fesm2020/odx-angular-cdk-connected-overlay.mjs +6 -6
  280. package/fesm2020/odx-angular-cdk-custom-form-control.mjs +21 -21
  281. package/fesm2020/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  282. package/fesm2020/odx-angular-cdk-dynamic-view.mjs +21 -10
  283. package/fesm2020/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  284. package/fesm2020/odx-angular-cdk-expandable.mjs +10 -10
  285. package/fesm2020/odx-angular-cdk-radio-group-control.mjs +19 -19
  286. package/fesm2020/odx-angular-cdk-radio-group-control.mjs.map +1 -1
  287. package/fesm2020/odx-angular-components-accordion.mjs +15 -15
  288. package/fesm2020/odx-angular-components-accordion.mjs.map +1 -1
  289. package/fesm2020/odx-angular-components-action-group.mjs +4 -4
  290. package/fesm2020/odx-angular-components-action-group.mjs.map +1 -1
  291. package/fesm2020/odx-angular-components-area-header.mjs +15 -14
  292. package/fesm2020/odx-angular-components-area-header.mjs.map +1 -1
  293. package/fesm2020/odx-angular-components-avatar.mjs +7 -9
  294. package/fesm2020/odx-angular-components-avatar.mjs.map +1 -1
  295. package/fesm2020/odx-angular-components-badge.mjs +8 -7
  296. package/fesm2020/odx-angular-components-badge.mjs.map +1 -1
  297. package/fesm2020/odx-angular-components-bar.mjs +15 -16
  298. package/fesm2020/odx-angular-components-bar.mjs.map +1 -1
  299. package/fesm2020/odx-angular-components-breadcrumbs.mjs +3 -3
  300. package/fesm2020/odx-angular-components-button-group.mjs +3 -3
  301. package/fesm2020/odx-angular-components-button.mjs +7 -9
  302. package/fesm2020/odx-angular-components-button.mjs.map +1 -1
  303. package/fesm2020/odx-angular-components-checkbox.mjs +10 -10
  304. package/fesm2020/odx-angular-components-chip.mjs +3 -3
  305. package/fesm2020/odx-angular-components-circular-progress.mjs +3 -3
  306. package/fesm2020/odx-angular-components-content-box.mjs +13 -13
  307. package/fesm2020/odx-angular-components-dropdown.mjs +11 -11
  308. package/fesm2020/odx-angular-components-dropdown.mjs.map +1 -1
  309. package/fesm2020/odx-angular-components-form-field.mjs +40 -40
  310. package/fesm2020/odx-angular-components-form-field.mjs.map +1 -1
  311. package/fesm2020/odx-angular-components-header.mjs +14 -14
  312. package/fesm2020/odx-angular-components-header.mjs.map +1 -1
  313. package/fesm2020/odx-angular-components-icon.mjs +3 -3
  314. package/fesm2020/odx-angular-components-inline-message.mjs +5 -6
  315. package/fesm2020/odx-angular-components-inline-message.mjs.map +1 -1
  316. package/fesm2020/odx-angular-components-launch-tile.mjs +14 -14
  317. package/fesm2020/odx-angular-components-launch-tile.mjs.map +1 -1
  318. package/fesm2020/odx-angular-components-link.mjs +3 -3
  319. package/fesm2020/odx-angular-components-list.mjs +10 -10
  320. package/fesm2020/odx-angular-components-loading-spinner.mjs +16 -12
  321. package/fesm2020/odx-angular-components-loading-spinner.mjs.map +1 -1
  322. package/fesm2020/odx-angular-components-logo.mjs +7 -5
  323. package/fesm2020/odx-angular-components-logo.mjs.map +1 -1
  324. package/fesm2020/odx-angular-components-main-menu.mjs +56 -49
  325. package/fesm2020/odx-angular-components-main-menu.mjs.map +1 -1
  326. package/fesm2020/odx-angular-components-menu.mjs +16 -17
  327. package/fesm2020/odx-angular-components-menu.mjs.map +1 -1
  328. package/fesm2020/odx-angular-components-modal.mjs +45 -45
  329. package/fesm2020/odx-angular-components-modal.mjs.map +1 -1
  330. package/fesm2020/odx-angular-components-progress.mjs +3 -3
  331. package/fesm2020/odx-angular-components-radio-group.mjs +13 -13
  332. package/fesm2020/odx-angular-components-radio-group.mjs.map +1 -1
  333. package/fesm2020/odx-angular-components-rail-navigation.mjs +10 -10
  334. package/fesm2020/odx-angular-components-select.mjs +95 -53
  335. package/fesm2020/odx-angular-components-select.mjs.map +1 -1
  336. package/fesm2020/odx-angular-components-slider.mjs +3 -3
  337. package/fesm2020/odx-angular-components-spinbox.mjs +6 -6
  338. package/fesm2020/odx-angular-components-spinbox.mjs.map +1 -1
  339. package/fesm2020/odx-angular-components-switch.mjs +10 -10
  340. package/fesm2020/odx-angular-components-tab-bar.mjs +12 -12
  341. package/fesm2020/odx-angular-components-tab-bar.mjs.map +1 -1
  342. package/fesm2020/odx-angular-components-toast.mjs +16 -15
  343. package/fesm2020/odx-angular-components-toast.mjs.map +1 -1
  344. package/fesm2020/odx-angular-components-toggle-button-group.mjs +13 -13
  345. package/fesm2020/odx-angular-components-toggle-button-group.mjs.map +1 -1
  346. package/fesm2020/odx-angular-components-tooltip.mjs +12 -12
  347. package/fesm2020/odx-angular-components-tooltip.mjs.map +1 -1
  348. package/fesm2020/odx-angular-internal.mjs +42 -43
  349. package/fesm2020/odx-angular-internal.mjs.map +1 -1
  350. package/fesm2020/odx-angular-utils.mjs +10 -6
  351. package/fesm2020/odx-angular-utils.mjs.map +1 -1
  352. package/fesm2020/odx-angular.mjs +50 -76
  353. package/fesm2020/odx-angular.mjs.map +1 -1
  354. package/internal/decorators/css-component.d.ts +1 -2
  355. package/internal/decorators/css-modifier.d.ts +0 -1
  356. package/internal/helpers/decorator-property-name.d.ts +1 -0
  357. package/internal/helpers/index.d.ts +1 -0
  358. package/lib/core.module.d.ts +3 -3
  359. package/lib/directives/index.d.ts +0 -1
  360. package/lib/services/window-ref.d.ts +3 -0
  361. package/lib/tokens/identity-matcher.d.ts +1 -1
  362. package/lib/tokens/string-search-handler.d.ts +1 -1
  363. package/lib/tokens/stringify.d.ts +1 -1
  364. package/package.json +3 -2
  365. package/utils/lib/decorators/transform.d.ts +1 -1
  366. package/utils/lib/helpers/build-url.d.ts +1 -0
  367. package/utils/lib/helpers/index.d.ts +1 -0
  368. package/utils/lib/helpers/ng-changes.d.ts +1 -1
  369. package/utils/lib/helpers/provide-module-config.d.ts +2 -2
  370. package/utils/lib/helpers/queue.d.ts +2 -2
  371. package/utils/lib/types/axis.d.ts +1 -1
  372. package/utils/lib/types/get-properties.d.ts +2 -2
  373. package/utils/lib/types/position.d.ts +1 -1
  374. package/utils/lib/types/side.d.ts +1 -1
  375. package/esm2020/lib/directives/let.directive.mjs +0 -36
  376. package/lib/directives/let.directive.d.ts +0 -17
@@ -2,14 +2,14 @@ var SelectComponent_1;
2
2
  import { __decorate, __metadata } from "tslib";
3
3
  import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
4
4
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
5
- import { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, EventEmitter, HostListener, inject, Input, Output, QueryList, ViewChild, ViewEncapsulation, } from '@angular/core';
5
+ import { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, EventEmitter, forwardRef, HostListener, inject, Input, Output, QueryList, ViewChild, ViewEncapsulation, } from '@angular/core';
6
6
  import { CoreModule, detectControllerChanges, ODX_IDENTITY_MATCHER } from '@odx/angular';
7
7
  import { CustomFormControl } from '@odx/angular/cdk/custom-form-control';
8
8
  import { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';
9
9
  import { DropdownDirective } from '@odx/angular/components/dropdown';
10
10
  import { IconComponent } from '@odx/angular/components/icon';
11
11
  import { LoadingSpinnerModule } from '@odx/angular/components/loading-spinner';
12
- import { CSSComponent } from '@odx/angular/internal';
12
+ import { CSSComponent, CSSModifier } from '@odx/angular/internal';
13
13
  import { deferFn, injectElement, Transform } from '@odx/angular/utils';
14
14
  import { filter } from 'rxjs';
15
15
  import { OptionComponent } from './components';
@@ -19,6 +19,15 @@ import * as i0 from "@angular/core";
19
19
  import * as i1 from "@angular/common";
20
20
  import * as i2 from "@odx/angular";
21
21
  let SelectComponent = SelectComponent_1 = class SelectComponent extends CustomFormControl {
22
+ get hasOptions() {
23
+ return !!this.options && this.options.length > 0;
24
+ }
25
+ get isOpen() {
26
+ return !!this.dropdown?.isOpen;
27
+ }
28
+ get selectedOptionContent() {
29
+ return this.selectedOption ? this.selectedOptionTemplate ?? this.selectedOptionText : null;
30
+ }
22
31
  constructor() {
23
32
  super(null);
24
33
  this.searchFieldEnabled = false;
@@ -28,20 +37,12 @@ let SelectComponent = SelectComponent_1 = class SelectComponent extends CustomFo
28
37
  this.element = injectElement();
29
38
  this.placeholder = '';
30
39
  this.isLoading = false;
40
+ this.multiple = false;
31
41
  this.selectedOptionTemplate = null;
32
42
  this.identityMatcher = inject(ODX_IDENTITY_MATCHER);
33
43
  this.change = new EventEmitter();
34
44
  detectControllerChanges(this).subscribe();
35
45
  }
36
- get hasOptions() {
37
- return !!this.options && this.options.length > 0;
38
- }
39
- get isOpen() {
40
- return !!this.dropdown?.isOpen;
41
- }
42
- get selectedOptionContent() {
43
- return this.selectedOption ? this.selectedOptionTemplate ?? this.selectedOptionText : null;
44
- }
45
46
  ngAfterViewInit() {
46
47
  if (!this.options)
47
48
  return;
@@ -61,12 +62,22 @@ let SelectComponent = SelectComponent_1 = class SelectComponent extends CustomFo
61
62
  }
62
63
  selectOption(option) {
63
64
  if (option && !option.disabled) {
64
- this.updateValue(option.value ?? null);
65
+ option.switchCheckbox();
66
+ const value = this.multiple
67
+ ? this.options
68
+ ?.toArray()
69
+ .filter(({ isSelected }) => isSelected)
70
+ .map(({ value }) => value)
71
+ : option.value;
72
+ this.updateValue(value ?? null);
65
73
  }
66
- this.dropdown?.close();
74
+ !this.multiple && this.dropdown?.close();
67
75
  }
68
76
  isOptionSelected(option) {
69
77
  if (option && !option.disabled) {
78
+ if (this.multiple && Array.isArray(this.value)) {
79
+ return this.value.includes(option.value);
80
+ }
70
81
  return this.identityMatcher(option.value, this.value);
71
82
  }
72
83
  return false;
@@ -89,6 +100,8 @@ let SelectComponent = SelectComponent_1 = class SelectComponent extends CustomFo
89
100
  this.keyManager?.onKeydown(event);
90
101
  }
91
102
  activateSelectedOption() {
103
+ if (this.multiple)
104
+ return;
92
105
  let activeIndex = this.options?.toArray().findIndex((option) => option.isSelected && !option.disabled);
93
106
  if (!activeIndex || activeIndex === -1) {
94
107
  activeIndex = this.options?.toArray().findIndex((option) => !option.disabled) ?? -1;
@@ -119,43 +132,53 @@ let SelectComponent = SelectComponent_1 = class SelectComponent extends CustomFo
119
132
  this.smoothScrollEnabled = true;
120
133
  }
121
134
  updateSelectedOption() {
122
- this.selectedOption = this.options?.toArray()?.find((option) => option.isSelected) ?? null;
123
- if (this.selectedOption) {
124
- this.selectedOptionText = this.stringify?.(this.selectedOption?.value) ?? this.selectedOption.getLabel();
125
- }
126
- else {
127
- this.selectedOptionText = null;
135
+ const options = this.options?.toArray();
136
+ this.selectedOption = options?.find((option) => option.isSelected) ?? null;
137
+ if (this.multiple) {
138
+ this.selectedOptionText =
139
+ options
140
+ ?.filter(({ isSelected }) => isSelected)
141
+ .map((option) => this.stringify?.(option.value) ?? option.getLabel())
142
+ .join(', ') ?? null;
143
+ return;
128
144
  }
145
+ this.selectedOptionText = this.selectedOption ? this.stringify?.(this.selectedOption?.value) ?? this.selectedOption.getLabel() : null;
129
146
  }
130
147
  };
131
- SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
132
- SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: SelectComponent, isStandalone: true, selector: "odx-select", inputs: { placeholder: "placeholder", isLoading: "isLoading", selectedOptionTemplate: "selectedOptionTemplate", stringify: "stringify", identityMatcher: "identityMatcher" }, outputs: { change: "change" }, host: { listeners: { "click": "openDropdown($event)", "keydown": "openDropdown($event)" }, properties: { "attr.aria-disabled": "isDisabled || null", "class.is-open": "isOpen", "tabindex": "searchFieldEnabled || isDisabled ? -1 : 0" } }, providers: [
148
+ SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
149
+ SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: SelectComponent, isStandalone: true, selector: "odx-select", inputs: { placeholder: "placeholder", isLoading: "isLoading", multiple: "multiple", selectedOptionTemplate: "selectedOptionTemplate", stringify: "stringify", identityMatcher: "identityMatcher" }, outputs: { change: "change" }, host: { listeners: { "click": "openDropdown($event)", "keydown": "openDropdown($event)" }, properties: { "attr.aria-disabled": "isDisabled || null", "class.is-open": "isOpen", "tabindex": "searchFieldEnabled || isDisabled ? -1 : 0", "attr.aria-multiselectable": "multiple" } }, providers: [
133
150
  {
134
151
  provide: SELECT_CONTROL,
135
- useExisting: SelectComponent_1,
152
+ useExisting: forwardRef(() => SelectComponent_1),
136
153
  },
137
- ], queries: [{ propertyName: "searchField", first: true, predicate: SelectSearchFieldDirective, descendants: true }, { propertyName: "options", predicate: OptionComponent, descendants: true }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: DropdownDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4 }\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n (odxDropdownAfterOpen)=\"enableSmoothScroll()\"\n>\n <ng-template [ngIf]=\"!searchFieldEnabled\" [ngIfElse]=\"searchFieldTemplate\">\n <div class=\"odx-select__value\" *ngIf=\"selectedOptionContent; else placeholderTemplate\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\"></ng-template>\n </div>\n </ng-template>\n <ng-template #placeholderTemplate>\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n </ng-template>\n <ng-template #searchFieldTemplate>\n <ng-content select=\"[odxSelectSearchField]\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\"></odx-icon>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-select-dropdown\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\" [ngIfElse]=\"noOptionsTemplate\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template #noOptionsTemplate>\n <odx-option disabled>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\"></ng-template>\n </odx-option>\n </ng-template>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }, { kind: "component", type: OptionComponent, selector: "odx-option", inputs: ["value"] }, { kind: "ngmodule", type: LoadingSpinnerModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
154
+ ], queries: [{ propertyName: "searchField", first: true, predicate: SelectSearchFieldDirective, descendants: true }, { propertyName: "options", predicate: OptionComponent, descendants: true }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: DropdownDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4 }\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n (odxDropdownAfterOpen)=\"enableSmoothScroll()\"\n>\n <ng-template [ngIf]=\"!searchFieldEnabled\" [ngIfElse]=\"searchFieldTemplate\">\n <div class=\"odx-select__value\" *ngIf=\"selectedOptionContent; else placeholderTemplate\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\"></ng-template>\n </div>\n </ng-template>\n <ng-template #placeholderTemplate>\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n </ng-template>\n <ng-template #searchFieldTemplate>\n <ng-content select=\"[odxSelectSearchField]\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\"></odx-icon>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-select-dropdown\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\" [ngIfElse]=\"noOptionsTemplate\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template #noOptionsTemplate>\n <odx-option disabled notFoundMessage>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\"></ng-template>\n </odx-option>\n </ng-template>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }, { kind: "component", type: OptionComponent, selector: "odx-option", inputs: ["value", "notFoundMessage"] }, { kind: "ngmodule", type: LoadingSpinnerModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
138
155
  __decorate([
139
156
  Transform(coerceBooleanProperty),
140
157
  __metadata("design:type", Object)
141
158
  ], SelectComponent.prototype, "isLoading", void 0);
159
+ __decorate([
160
+ CSSModifier(),
161
+ Transform(coerceBooleanProperty),
162
+ __metadata("design:type", Object)
163
+ ], SelectComponent.prototype, "multiple", void 0);
142
164
  SelectComponent = SelectComponent_1 = __decorate([
143
165
  CSSComponent('select'),
144
166
  __metadata("design:paramtypes", [])
145
167
  ], SelectComponent);
146
168
  export { SelectComponent };
147
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SelectComponent, decorators: [{
169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SelectComponent, decorators: [{
148
170
  type: Component,
149
171
  args: [{ standalone: true, selector: 'odx-select', imports: [CoreModule, DropdownDirective, IconComponent, DynamicViewDirective, OptionComponent, LoadingSpinnerModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
150
172
  {
151
173
  provide: SELECT_CONTROL,
152
- useExisting: SelectComponent,
174
+ useExisting: forwardRef(() => SelectComponent),
153
175
  },
154
176
  ], host: {
155
177
  '[attr.aria-disabled]': 'isDisabled || null',
156
178
  '[class.is-open]': 'isOpen',
157
179
  '[tabindex]': 'searchFieldEnabled || isDisabled ? -1 : 0',
158
- }, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4 }\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n (odxDropdownAfterOpen)=\"enableSmoothScroll()\"\n>\n <ng-template [ngIf]=\"!searchFieldEnabled\" [ngIfElse]=\"searchFieldTemplate\">\n <div class=\"odx-select__value\" *ngIf=\"selectedOptionContent; else placeholderTemplate\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\"></ng-template>\n </div>\n </ng-template>\n <ng-template #placeholderTemplate>\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n </ng-template>\n <ng-template #searchFieldTemplate>\n <ng-content select=\"[odxSelectSearchField]\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\"></odx-icon>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-select-dropdown\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\" [ngIfElse]=\"noOptionsTemplate\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template #noOptionsTemplate>\n <odx-option disabled>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\"></ng-template>\n </odx-option>\n </ng-template>\n </div>\n</ng-template>\n" }]
180
+ '[attr.aria-multiselectable]': 'multiple',
181
+ }, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4 }\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n (odxDropdownAfterOpen)=\"enableSmoothScroll()\"\n>\n <ng-template [ngIf]=\"!searchFieldEnabled\" [ngIfElse]=\"searchFieldTemplate\">\n <div class=\"odx-select__value\" *ngIf=\"selectedOptionContent; else placeholderTemplate\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\"></ng-template>\n </div>\n </ng-template>\n <ng-template #placeholderTemplate>\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n </ng-template>\n <ng-template #searchFieldTemplate>\n <ng-content select=\"[odxSelectSearchField]\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\"></odx-icon>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-select-dropdown\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\" [ngIfElse]=\"noOptionsTemplate\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template #noOptionsTemplate>\n <odx-option disabled notFoundMessage>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\"></ng-template>\n </odx-option>\n </ng-template>\n </div>\n</ng-template>\n" }]
159
182
  }], ctorParameters: function () { return []; }, propDecorators: { options: [{
160
183
  type: ContentChildren,
161
184
  args: [OptionComponent, { descendants: true, emitDistinctChangesOnly: true }]
@@ -166,6 +189,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
166
189
  type: Input
167
190
  }], isLoading: [{
168
191
  type: Input
192
+ }], multiple: [{
193
+ type: Input
169
194
  }], selectedOptionTemplate: [{
170
195
  type: Input
171
196
  }], stringify: [{
@@ -184,4 +209,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
184
209
  type: HostListener,
185
210
  args: ['keydown', ['$event']]
186
211
  }] } });
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3NlbGVjdC9zcmMvbGliL3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9zZWxlY3Qvc3JjL2xpYi9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRCxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFFVCxTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsdUJBQXVCLEVBQW1CLG9CQUFvQixFQUFlLE1BQU0sY0FBYyxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENB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VDs0QkFDRSxPQUFPLEVBQUUsY0FBYzs0QkFDdkIsV0FBVyxpQkFBaUI7eUJBQzdCO3FCQUNGLFFBQ0s7d0JBQ0osc0JBQXNCLEVBQUUsb0JBQW9CO3dCQUM1QyxpQkFBaUIsRUFBRSxRQUFRO3dCQUMzQixZQUFZLEVBQUUsMkNBQTJDO3FCQUMxRDswRUFpQlMsT0FBTztzQkFEaEIsZUFBZTt1QkFBQyxlQUFlLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRTtnQkFJNUUsUUFBUTtzQkFEakIsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBY3JCLFdBQVc7c0JBRGpCLEtBQUs7Z0JBS0MsU0FBUztzQkFEZixLQUFLO2dCQUlDLHNCQUFzQjtzQkFENUIsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsZUFBZTtzQkFEckIsS0FBSztnQkFLQyxNQUFNO3NCQUZaLE1BQU07Z0JBS0EsV0FBVztzQkFEakIsWUFBWTt1QkFBQywwQkFBMEI7Z0JBZ0Q5QixZQUFZO3NCQUZyQixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ2hDLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlLCBkZXRlY3RDb250cm9sbGVyQ2hhbmdlcywgSWRlbnRpdHlNYXRjaGVyLCBPRFhfSURFTlRJVFlfTUFUQ0hFUiwgU3RyaW5naWZ5Rm4gfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQ3VzdG9tRm9ybUNvbnRyb2wgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2N1c3RvbS1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgRHluYW1pY1ZpZXdEaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldyc7XG5pbXBvcnQgeyBEcm9wZG93bkRpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IExvYWRpbmdTcGlubmVyTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvbG9hZGluZy1zcGlubmVyJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBkZWZlckZuLCBpbmplY3RFbGVtZW50LCBUcmFuc2Zvcm0gfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTZWxlY3RDb250cm9sLCBTZWxlY3RDb250cm9sT3B0aW9uIH0gZnJvbSAnLi9hYnN0cmFjdCc7XG5pbXBvcnQgeyBPcHRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgU2VsZWN0U2VhcmNoRmllbGREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgU0VMRUNUX0NPTlRST0wgfSBmcm9tICcuL3NlbGVjdC50b2tlbnMnO1xuXG5AQ1NTQ29tcG9uZW50KCdzZWxlY3QnKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LXNlbGVjdCcsXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBEcm9wZG93bkRpcmVjdGl2ZSwgSWNvbkNvbXBvbmVudCwgRHluYW1pY1ZpZXdEaXJlY3RpdmUsIE9wdGlvbkNvbXBvbmVudCwgTG9hZGluZ1NwaW5uZXJNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNFTEVDVF9DT05UUk9MLFxuICAgICAgdXNlRXhpc3Rpbmc6IFNlbGVjdENvbXBvbmVudCxcbiAgICB9LFxuICBdLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2lzRGlzYWJsZWQgfHwgbnVsbCcsXG4gICAgJ1tjbGFzcy5pcy1vcGVuXSc6ICdpc09wZW4nLFxuICAgICdbdGFiaW5kZXhdJzogJ3NlYXJjaEZpZWxkRW5hYmxlZCB8fCBpc0Rpc2FibGVkID8gLTEgOiAwJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50PFQgPSB1bmtub3duPiBleHRlbmRzIEN1c3RvbUZvcm1Db250cm9sPFQgfCBudWxsPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIFNlbGVjdENvbnRyb2w8VD4ge1xuICBwdWJsaWMgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2lzTG9hZGluZzogQm9vbGVhbklucHV0O1xuXG4gIHByaXZhdGUga2V5TWFuYWdlcj86IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPE9wdGlvbkNvbXBvbmVudDxUPj47XG5cbiAgcHJvdGVjdGVkIHNlYXJjaEZpZWxkRW5hYmxlZCA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc21vb3RoU2Nyb2xsRW5hYmxlZCA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRPcHRpb246IE9wdGlvbkNvbXBvbmVudDxUPiB8IG51bGwgPSBudWxsO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRPcHRpb25UZXh0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBwcm90ZWN0ZWQgZ2V0IGhhc09wdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5sZW5ndGggPiAwO1xuICB9XG5cbiAgQENvbnRlbnRDaGlsZHJlbihPcHRpb25Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUsIGVtaXREaXN0aW5jdENoYW5nZXNPbmx5OiB0cnVlIH0pXG4gIHByb3RlY3RlZCBvcHRpb25zPzogUXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudDxUPj47XG5cbiAgQFZpZXdDaGlsZChEcm9wZG93bkRpcmVjdGl2ZSlcbiAgcHJvdGVjdGVkIGRyb3Bkb3duPzogRHJvcGRvd25EaXJlY3RpdmU7XG5cbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG5cbiAgcHVibGljIGdldCBpc09wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5kcm9wZG93bj8uaXNPcGVuO1xuICB9XG5cbiAgcHVibGljIGdldCBzZWxlY3RlZE9wdGlvbkNvbnRlbnQoKTogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFQgfCBudWxsIH0+IHwgc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb24gPyB0aGlzLnNlbGVjdGVkT3B0aW9uVGVtcGxhdGUgPz8gdGhpcy5zZWxlY3RlZE9wdGlvblRleHQgOiBudWxsO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBsYWNlaG9sZGVyID0gJyc7XG5cbiAgQFRyYW5zZm9ybShjb2VyY2VCb29sZWFuUHJvcGVydHkpXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpc0xvYWRpbmcgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWRPcHRpb25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHsgJGltcGxpY2l0OiBUIH0+IHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHN0cmluZ2lmeT86IFN0cmluZ2lmeUZuPFQgfCBudWxsPjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaWRlbnRpdHlNYXRjaGVyOiBJZGVudGl0eU1hdGNoZXI8VCB8IG51bGw+ID0gaW5qZWN0KE9EWF9JREVOVElUWV9NQVRDSEVSKTtcblxuICBAT3V0cHV0KClcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIHB1YmxpYyBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQENvbnRlbnRDaGlsZChTZWxlY3RTZWFyY2hGaWVsZERpcmVjdGl2ZSlcbiAgcHVibGljIHNlYXJjaEZpZWxkPzogU2VsZWN0U2VhcmNoRmllbGREaXJlY3RpdmU7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIobnVsbCk7XG5cbiAgICBkZXRlY3RDb250cm9sbGVyQ2hhbmdlcyh0aGlzKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMpIHJldHVybjtcbiAgICB0aGlzLmtleU1hbmFnZXIgPSBuZXcgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIodGhpcy5vcHRpb25zKS53aXRoSG9tZUFuZEVuZCgpLnNraXBQcmVkaWNhdGUoKGl0ZW0pID0+IGl0ZW0uZGlzYWJsZWQpO1xuICAgIHRoaXMub3B0aW9ucy5jaGFuZ2VzLnBpcGUoZmlsdGVyKCgpID0+IHRoaXMuaXNPcGVuKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGRlZmVyRm4oKCkgPT4gdGhpcy5hY3RpdmF0ZVNlbGVjdGVkT3B0aW9uKCkpO1xuICAgICAgdGhpcy50cmlnZ2VyQ29udHJvbGxlckNoYW5nZSgpO1xuICAgIH0pO1xuICAgIHRoaXMuc2VhcmNoRmllbGQ/LnZhbHVlQ2hhbmdlJC5zdWJzY3JpYmUoKCkgPT4gdGhpcy50cmlnZ2VyQ29udHJvbGxlckNoYW5nZSgpKTtcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBUIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHN1cGVyLnJlZ2lzdGVyT25DaGFuZ2UoKHZhbHVlKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9uKCk7XG4gICAgICBmbih2YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0T3B0aW9uKG9wdGlvbj86IFNlbGVjdENvbnRyb2xPcHRpb248VD4gfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKG9wdGlvbiAmJiAhb3B0aW9uLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKG9wdGlvbi52YWx1ZSA/PyBudWxsKTtcbiAgICB9XG4gICAgdGhpcy5kcm9wZG93bj8uY2xvc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBpc09wdGlvblNlbGVjdGVkKG9wdGlvbjogU2VsZWN0Q29udHJvbE9wdGlvbjxUPik6IGJvb2xlYW4ge1xuICAgIGlmIChvcHRpb24gJiYgIW9wdGlvbi5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIHRoaXMuaWRlbnRpdHlNYXRjaGVyKG9wdGlvbi52YWx1ZSwgdGhpcy52YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBzY3JvbGxPcHRpb25JbnRvVmlldyh7IGVsZW1lbnQgfTogU2VsZWN0Q29udHJvbE9wdGlvbjxUPik6IHZvaWQge1xuICAgIGNvbnN0IGJlaGF2aW9yID0gdGhpcy5zbW9vdGhTY3JvbGxFbmFibGVkID8gJ3Ntb290aCcgOiB1bmRlZmluZWQ7XG4gICAgZWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmxvY2s6ICdjZW50ZXInLCBiZWhhdmlvciB9KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIHByb3RlY3RlZCBvcGVuRHJvcGRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAodGhpcy5pc0xvYWRpbmcpIHJldHVybjtcbiAgICBpZiAodGhpcy5pc09wZW4gJiYgdGhpcy5oYXNPcHRpb25zKSB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0T3B0aW9uKHRoaXMua2V5TWFuYWdlcj8uYWN0aXZlSXRlbSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5rZXlNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFjdGl2YXRlU2VsZWN0ZWRPcHRpb24oKTogdm9pZCB7XG4gICAgbGV0IGFjdGl2ZUluZGV4ID0gdGhpcy5vcHRpb25zPy50b0FycmF5KCkuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi5pc1NlbGVjdGVkICYmICFvcHRpb24uZGlzYWJsZWQpO1xuICAgIGlmICghYWN0aXZlSW5kZXggfHwgYWN0aXZlSW5kZXggPT09IC0xKSB7XG4gICAgICBhY3RpdmVJbmRleCA9IHRoaXMub3B0aW9ucz8udG9BcnJheSgpLmZpbmRJbmRleCgob3B0aW9uKSA9PiAhb3B0aW9uLmRpc2FibGVkKSA/PyAtMTtcbiAgICB9XG4gICAgdGhpcy5rZXlNYW5hZ2VyPy5zZXRBY3RpdmVJdGVtKGFjdGl2ZUluZGV4KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkRyb3Bkb3duT3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2YXRlU2VsZWN0ZWRPcHRpb24oKTtcbiAgICBpZiAoIXRoaXMuc2VhcmNoRmllbGRFbmFibGVkKSB7XG4gICAgICB0aGlzLnNlYXJjaEZpZWxkRW5hYmxlZCA9ICEhdGhpcy5zZWFyY2hGaWVsZDtcbiAgICAgIGRlZmVyRm4oKCkgPT4gdGhpcy5zZWFyY2hGaWVsZD8uZm9jdXMoKSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uRHJvcGRvd25DbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVTbW9vdGhTY3JvbGwoKTtcbiAgICBpZiAodGhpcy5zZWFyY2hGaWVsZEVuYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VhcmNoRmllbGRFbmFibGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Ecm9wZG93bkNsb3NlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaEZpZWxkPy5yZXNldCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRpc2FibGVTbW9vdGhTY3JvbGwoKTogdm9pZCB7XG4gICAgdGhpcy5zbW9vdGhTY3JvbGxFbmFibGVkID0gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgZW5hYmxlU21vb3RoU2Nyb2xsKCk6IHZvaWQge1xuICAgIHRoaXMuc21vb3RoU2Nyb2xsRW5hYmxlZCA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVNlbGVjdGVkT3B0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSB0aGlzLm9wdGlvbnM/LnRvQXJyYXkoKT8uZmluZCgob3B0aW9uKSA9PiBvcHRpb24uaXNTZWxlY3RlZCkgPz8gbnVsbDtcbiAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvbikge1xuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvblRleHQgPSB0aGlzLnN0cmluZ2lmeT8uKHRoaXMuc2VsZWN0ZWRPcHRpb24/LnZhbHVlKSA/PyB0aGlzLnNlbGVjdGVkT3B0aW9uLmdldExhYmVsKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25UZXh0ID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICBjbGFzcz1cIm9keC1zZWxlY3RfX3RyaWdnZXJcIlxuICBbb2R4RHJvcGRvd25dPVwiZHJvcGRvd25Db250ZW50XCJcbiAgW29keERyb3Bkb3duRGlzYWJsZWRdPVwiaXNEaXNhYmxlZCB8fCBpc1JlYWRvbmx5XCJcbiAgW29keERyb3Bkb3duT3B0aW9uc109XCJ7IG1hdGNoUmVmZXJlbmNlV2lkdGg6IHRydWUsIG9mZnNldDogNCB9XCJcbiAgW29keERyb3Bkb3duUmVmZXJlbmNlRWxlbWVudF09XCJlbGVtZW50Lm5hdGl2ZUVsZW1lbnRcIlxuICBbb2R4RHJvcGRvd25TaG93TG9hZGVyXT1cImlzTG9hZGluZ1wiXG4gIChvZHhEcm9wZG93bkJlZm9yZU9wZW4pPVwib25Ecm9wZG93bk9wZW4oKVwiXG4gIChvZHhEcm9wZG93bkJlZm9yZUNsb3NlKT1cIm9uRHJvcGRvd25DbG9zZSgpXCJcbiAgKG9keERyb3Bkb3duQWZ0ZXJDbG9zZSk9XCJvbkRyb3Bkb3duQ2xvc2VkKClcIlxuICAob2R4RHJvcGRvd25BZnRlck9wZW4pPVwiZW5hYmxlU21vb3RoU2Nyb2xsKClcIlxuPlxuICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIXNlYXJjaEZpZWxkRW5hYmxlZFwiIFtuZ0lmRWxzZV09XCJzZWFyY2hGaWVsZFRlbXBsYXRlXCI+XG4gICAgPGRpdiBjbGFzcz1cIm9keC1zZWxlY3RfX3ZhbHVlXCIgKm5nSWY9XCJzZWxlY3RlZE9wdGlvbkNvbnRlbnQ7IGVsc2UgcGxhY2Vob2xkZXJUZW1wbGF0ZVwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtvZHhEeW5hbWljVmlld109XCJzZWxlY3RlZE9wdGlvbkNvbnRlbnRcIiBbb2R4RHluYW1pY1ZpZXdDb250ZXh0XT1cInsgJGltcGxpY2l0OiB2YWx1ZSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNwbGFjZWhvbGRlclRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJvZHgtc2VsZWN0X19wbGFjZWhvbGRlclwiPlxuICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNzZWFyY2hGaWVsZFRlbXBsYXRlPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltvZHhTZWxlY3RTZWFyY2hGaWVsZF1cIj48L25nLWNvbnRlbnQ+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxvZHgtaWNvbiBjbGFzcz1cIm9keC1zZWxlY3RfX2luZGljYXRvclwiIG5hbWU9XCJjaGV2cm9uLWRvd25cIj48L29keC1pY29uPlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duQ29udGVudD5cbiAgPGRpdiBjbGFzcz1cIm9keC1zZWxlY3QtZHJvcGRvd25cIiByb2xlPVwibGlzdGJveFwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJoYXNPcHRpb25zXCIgW25nSWZFbHNlXT1cIm5vT3B0aW9uc1RlbXBsYXRlXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI25vT3B0aW9uc1RlbXBsYXRlPlxuICAgICAgPG9keC1vcHRpb24gZGlzYWJsZWQ+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbb2R4RHluYW1pY1ZpZXddPVwic2VhcmNoRmllbGQ/Lm5vdEZvdW5kQ29udGVudFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L29keC1vcHRpb24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3NlbGVjdC9zcmMvbGliL3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9zZWxlY3Qvc3JjL2xpYi9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRCxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBRVQsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLHVCQUF1QixFQUFtQixvQkFBb0IsRUFBZSxNQUFNLGNBQWMsQ0FBQztBQUN2SCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQXVCMUMsSUFBTSxlQUFlLHVCQUFyQixNQUFNLGVBQXlDLFNBQVEsaUJBQTJCO0lBaUJ2RixJQUFXLFVBQVU7UUFDbkIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUlELElBQVcsTUFBTTtRQUNmLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFXLHFCQUFxQjtRQUM5QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM3RixDQUFDO0lBOEJEO1FBQ0UsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBdERKLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUMzQix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDNUIsbUJBQWMsR0FBOEIsSUFBSSxDQUFDO1FBQ2pELHVCQUFrQixHQUFrQixJQUFJLENBQUM7UUFZbkMsWUFBTyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBV25DLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBSWpCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFLbEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUdqQiwyQkFBc0IsR0FBMEMsSUFBSSxDQUFDO1FBTXJFLG9CQUFlLEdBQThCLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBSTFFLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBT3ZDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFTSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLDBCQUEwQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2SCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbEUsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRWUsZ0JBQWdCLENBQUMsRUFBNkI7UUFDNUQsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDL0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDNUIsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sWUFBWSxDQUFDLE1BQTRDO1FBQzlELElBQUksTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUM5QixNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVE7Z0JBQ3pCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTztvQkFDVixFQUFFLE9BQU8sRUFBRTtxQkFDVixNQUFNLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUM7cUJBQ3RDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQztnQkFDOUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FBRSxLQUFXLElBQUksSUFBSSxDQUFDLENBQUM7U0FDeEM7UUFFRCxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsTUFBb0M7UUFDMUQsSUFBSSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQzlCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDOUMsT0FBUSxJQUFJLENBQUMsS0FBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBVSxDQUFDLENBQUM7YUFDeEQ7WUFDRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEtBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUQ7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxFQUFFLE9BQU8sRUFBMEI7UUFDN0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNqRSxPQUFPLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBSVMsWUFBWSxDQUFDLEtBQW9CO1FBQ3pDLElBQUksSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBQzNCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2xDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUU7Z0JBQ2hELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsS0FBSyxDQUFDLHdCQUF3QixFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDL0MsT0FBTzthQUNSO1NBQ0Y7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRVMsc0JBQXNCO1FBQzlCLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzFCLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZHLElBQUksQ0FBQyxXQUFXLElBQUksV0FBVyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3RDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDckY7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRVMsY0FBYztRQUN0QixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQzVCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUM3QyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQUVTLGVBQWU7UUFDdkIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztZQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztTQUNyQztJQUNILENBQUM7SUFFUyxnQkFBZ0I7UUFDeEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRVMsbUJBQW1CO1FBQzNCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFDbkMsQ0FBQztJQUVTLGtCQUFrQjtRQUMxQixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDM0UsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxrQkFBa0I7Z0JBQ3JCLE9BQU87b0JBQ0wsRUFBRSxNQUFNLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUM7cUJBQ3ZDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7cUJBQ3BFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUM7WUFDeEIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN4SSxDQUFDOzs0R0FoTFUsZUFBZTtnR0FBZixlQUFlLGtqQkFiZjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGNBQWM7WUFDdkIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBZSxDQUFDO1NBQy9DO0tBQ0YsbUVBZ0VhLDBCQUEwQiw2REE3Q3ZCLGVBQWUsMEZBR3JCLGlCQUFpQix1RUNwRTlCLG1vREF3Q0EsMkNESFksVUFBVSxxT0FBRSxpQkFBaUIsdWFBQUUsYUFBYSx5RkFBRSxvQkFBb0IsdUpBQUUsZUFBZSw0RkFBRSxvQkFBb0I7QUFtRG5IO0lBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDOztrREFFUjtBQUV6QjtJQUFDLFdBQVcsRUFBRTtJQUNiLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQzs7aURBRVQ7QUF6Q2IsZUFBZTtJQXJCM0IsWUFBWSxDQUFDLFFBQVEsQ0FBQzs7R0FxQlYsZUFBZSxDQWlMM0I7U0FqTFksZUFBZTsyRkFBZixlQUFlO2tCQXBCM0IsU0FBUztpQ0FDSSxJQUFJLFlBQ04sWUFBWSxXQUNiLENBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsb0JBQW9CLENBQUMsaUJBRXJHLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGNBQWM7NEJBQ3ZCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDO3lCQUMvQztxQkFDRixRQUNLO3dCQUNKLHNCQUFzQixFQUFFLG9CQUFvQjt3QkFDNUMsaUJBQWlCLEVBQUUsUUFBUTt3QkFDM0IsWUFBWSxFQUFFLDJDQUEyQzt3QkFDekQsNkJBQTZCLEVBQUUsVUFBVTtxQkFDMUM7MEVBY1MsT0FBTztzQkFEaEIsZUFBZTt1QkFBQyxlQUFlLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRTtnQkFJNUUsUUFBUTtzQkFEakIsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBa0JyQixXQUFXO3NCQURqQixLQUFLO2dCQUtDLFNBQVM7c0JBRGYsS0FBSztnQkFNQyxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsc0JBQXNCO3NCQUQ1QixLQUFLO2dCQUlDLFNBQVM7c0JBRGYsS0FBSztnQkFJQyxlQUFlO3NCQURyQixLQUFLO2dCQUtDLE1BQU07c0JBRlosTUFBTTtnQkFLQSxXQUFXO3NCQURqQixZQUFZO3VCQUFDLDBCQUEwQjtnQkEwRDlCLFlBQVk7c0JBRnJCLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDaEMsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmVNb2R1bGUsIGRldGVjdENvbnRyb2xsZXJDaGFuZ2VzLCBJZGVudGl0eU1hdGNoZXIsIE9EWF9JREVOVElUWV9NQVRDSEVSLCBTdHJpbmdpZnlGbiB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBDdXN0b21Gb3JtQ29udHJvbCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvY3VzdG9tLWZvcm0tY29udHJvbCc7XG5pbXBvcnQgeyBEeW5hbWljVmlld0RpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvZHluYW1pYy12aWV3JztcbmltcG9ydCB7IERyb3Bkb3duRGlyZWN0aXZlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgTG9hZGluZ1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9sb2FkaW5nLXNwaW5uZXInO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50LCBDU1NNb2RpZmllciB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBkZWZlckZuLCBpbmplY3RFbGVtZW50LCBUcmFuc2Zvcm0gfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTZWxlY3RDb250cm9sLCBTZWxlY3RDb250cm9sT3B0aW9uIH0gZnJvbSAnLi9hYnN0cmFjdCc7XG5pbXBvcnQgeyBPcHRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgU2VsZWN0U2VhcmNoRmllbGREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgU0VMRUNUX0NPTlRST0wgfSBmcm9tICcuL3NlbGVjdC50b2tlbnMnO1xuXG5AQ1NTQ29tcG9uZW50KCdzZWxlY3QnKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LXNlbGVjdCcsXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBEcm9wZG93bkRpcmVjdGl2ZSwgSWNvbkNvbXBvbmVudCwgRHluYW1pY1ZpZXdEaXJlY3RpdmUsIE9wdGlvbkNvbXBvbmVudCwgTG9hZGluZ1NwaW5uZXJNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNFTEVDVF9DT05UUk9MLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0Q29tcG9uZW50KSxcbiAgICB9LFxuICBdLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2lzRGlzYWJsZWQgfHwgbnVsbCcsXG4gICAgJ1tjbGFzcy5pcy1vcGVuXSc6ICdpc09wZW4nLFxuICAgICdbdGFiaW5kZXhdJzogJ3NlYXJjaEZpZWxkRW5hYmxlZCB8fCBpc0Rpc2FibGVkID8gLTEgOiAwJyxcbiAgICAnW2F0dHIuYXJpYS1tdWx0aXNlbGVjdGFibGVdJzogJ211bHRpcGxlJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50PFQgPSB1bmtub3duIHwgdW5rbm93bltdPiBleHRlbmRzIEN1c3RvbUZvcm1Db250cm9sPFQgfCBudWxsPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIFNlbGVjdENvbnRyb2w8VD4ge1xuICBwdWJsaWMgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2lzTG9hZGluZzogQm9vbGVhbklucHV0O1xuICBwdWJsaWMgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX211bHRpcGxlOiBCb29sZWFuSW5wdXQ7XG5cbiAgcHJpdmF0ZSBrZXlNYW5hZ2VyPzogQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8T3B0aW9uQ29tcG9uZW50PFQ+PjtcblxuICBwcm90ZWN0ZWQgc2VhcmNoRmllbGRFbmFibGVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzbW9vdGhTY3JvbGxFbmFibGVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzZWxlY3RlZE9wdGlvbjogT3B0aW9uQ29tcG9uZW50PFQ+IHwgbnVsbCA9IG51bGw7XG4gIHByb3RlY3RlZCBzZWxlY3RlZE9wdGlvblRleHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oT3B0aW9uQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlLCBlbWl0RGlzdGluY3RDaGFuZ2VzT25seTogdHJ1ZSB9KVxuICBwcm90ZWN0ZWQgb3B0aW9ucz86IFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ8VD4+O1xuXG4gIEBWaWV3Q2hpbGQoRHJvcGRvd25EaXJlY3RpdmUpXG4gIHByb3RlY3RlZCBkcm9wZG93bj86IERyb3Bkb3duRGlyZWN0aXZlO1xuXG4gIHB1YmxpYyBnZXQgaGFzT3B0aW9ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcblxuICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmRyb3Bkb3duPy5pc09wZW47XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkT3B0aW9uQ29udGVudCgpOiBUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogVCB8IG51bGwgfT4gfCBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbiA/IHRoaXMuc2VsZWN0ZWRPcHRpb25UZW1wbGF0ZSA/PyB0aGlzLnNlbGVjdGVkT3B0aW9uVGV4dCA6IG51bGw7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgcGxhY2Vob2xkZXIgPSAnJztcblxuICBAVHJhbnNmb3JtKGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSlcbiAgQElucHV0KClcbiAgcHVibGljIGlzTG9hZGluZyA9IGZhbHNlO1xuXG4gIEBDU1NNb2RpZmllcigpXG4gIEBUcmFuc2Zvcm0oY29lcmNlQm9vbGVhblByb3BlcnR5KVxuICBASW5wdXQoKVxuICBwdWJsaWMgbXVsdGlwbGUgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWRPcHRpb25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHsgJGltcGxpY2l0OiBUIH0+IHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHN0cmluZ2lmeT86IFN0cmluZ2lmeUZuPFQgfCBudWxsPjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaWRlbnRpdHlNYXRjaGVyOiBJZGVudGl0eU1hdGNoZXI8VCB8IG51bGw+ID0gaW5qZWN0KE9EWF9JREVOVElUWV9NQVRDSEVSKTtcblxuICBAT3V0cHV0KClcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIHB1YmxpYyBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQENvbnRlbnRDaGlsZChTZWxlY3RTZWFyY2hGaWVsZERpcmVjdGl2ZSlcbiAgcHVibGljIHNlYXJjaEZpZWxkPzogU2VsZWN0U2VhcmNoRmllbGREaXJlY3RpdmU7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIobnVsbCk7XG4gICAgZGV0ZWN0Q29udHJvbGxlckNoYW5nZXModGhpcykuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vcHRpb25zKSByZXR1cm47XG4gICAgdGhpcy5rZXlNYW5hZ2VyID0gbmV3IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyKHRoaXMub3B0aW9ucykud2l0aEhvbWVBbmRFbmQoKS5za2lwUHJlZGljYXRlKChpdGVtKSA9PiBpdGVtLmRpc2FibGVkKTtcbiAgICB0aGlzLm9wdGlvbnMuY2hhbmdlcy5waXBlKGZpbHRlcigoKSA9PiB0aGlzLmlzT3BlbikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBkZWZlckZuKCgpID0+IHRoaXMuYWN0aXZhdGVTZWxlY3RlZE9wdGlvbigpKTtcbiAgICAgIHRoaXMudHJpZ2dlckNvbnRyb2xsZXJDaGFuZ2UoKTtcbiAgICB9KTtcbiAgICB0aGlzLnNlYXJjaEZpZWxkPy52YWx1ZUNoYW5nZSQuc3Vic2NyaWJlKCgpID0+IHRoaXMudHJpZ2dlckNvbnRyb2xsZXJDaGFuZ2UoKSk7XG4gICAgdGhpcy51cGRhdGVTZWxlY3RlZE9wdGlvbigpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogVCB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBzdXBlci5yZWdpc3Rlck9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZE9wdGlvbigpO1xuICAgICAgZm4odmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdE9wdGlvbihvcHRpb24/OiBTZWxlY3RDb250cm9sT3B0aW9uPFQgfCBUW10+IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChvcHRpb24gJiYgIW9wdGlvbi5kaXNhYmxlZCkge1xuICAgICAgb3B0aW9uLnN3aXRjaENoZWNrYm94KCk7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMubXVsdGlwbGVcbiAgICAgICAgPyB0aGlzLm9wdGlvbnNcbiAgICAgICAgICAgID8udG9BcnJheSgpXG4gICAgICAgICAgICAuZmlsdGVyKCh7IGlzU2VsZWN0ZWQgfSkgPT4gaXNTZWxlY3RlZClcbiAgICAgICAgICAgIC5tYXAoKHsgdmFsdWUgfSkgPT4gdmFsdWUpXG4gICAgICAgIDogb3B0aW9uLnZhbHVlO1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZSgodmFsdWUgYXMgVCkgPz8gbnVsbCk7XG4gICAgfVxuXG4gICAgIXRoaXMubXVsdGlwbGUgJiYgdGhpcy5kcm9wZG93bj8uY2xvc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBpc09wdGlvblNlbGVjdGVkKG9wdGlvbjogU2VsZWN0Q29udHJvbE9wdGlvbjxUIHwgVFtdPik6IGJvb2xlYW4ge1xuICAgIGlmIChvcHRpb24gJiYgIW9wdGlvbi5kaXNhYmxlZCkge1xuICAgICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKHRoaXMudmFsdWUgYXMgVFtdKS5pbmNsdWRlcyhvcHRpb24udmFsdWUgYXMgVCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5pZGVudGl0eU1hdGNoZXIob3B0aW9uLnZhbHVlIGFzIFQsIHRoaXMudmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgc2Nyb2xsT3B0aW9uSW50b1ZpZXcoeyBlbGVtZW50IH06IFNlbGVjdENvbnRyb2xPcHRpb248VD4pOiB2b2lkIHtcbiAgICBjb25zdCBiZWhhdmlvciA9IHRoaXMuc21vb3RoU2Nyb2xsRW5hYmxlZCA/ICdzbW9vdGgnIDogdW5kZWZpbmVkO1xuICAgIGVsZW1lbnQubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnY2VudGVyJywgYmVoYXZpb3IgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgb3BlbkRyb3Bkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nKSByZXR1cm47XG4gICAgaWYgKHRoaXMuaXNPcGVuICYmIHRoaXMuaGFzT3B0aW9ucykge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdUYWInKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbih0aGlzLmtleU1hbmFnZXI/LmFjdGl2ZUl0ZW0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMua2V5TWFuYWdlcj8ub25LZXlkb3duKGV2ZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhY3RpdmF0ZVNlbGVjdGVkT3B0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSByZXR1cm47XG4gICAgbGV0IGFjdGl2ZUluZGV4ID0gdGhpcy5vcHRpb25zPy50b0FycmF5KCkuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi5pc1NlbGVjdGVkICYmICFvcHRpb24uZGlzYWJsZWQpO1xuICAgIGlmICghYWN0aXZlSW5kZXggfHwgYWN0aXZlSW5kZXggPT09IC0xKSB7XG4gICAgICBhY3RpdmVJbmRleCA9IHRoaXMub3B0aW9ucz8udG9BcnJheSgpLmZpbmRJbmRleCgob3B0aW9uKSA9PiAhb3B0aW9uLmRpc2FibGVkKSA/PyAtMTtcbiAgICB9XG4gICAgdGhpcy5rZXlNYW5hZ2VyPy5zZXRBY3RpdmVJdGVtKGFjdGl2ZUluZGV4KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkRyb3Bkb3duT3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2YXRlU2VsZWN0ZWRPcHRpb24oKTtcbiAgICBpZiAoIXRoaXMuc2VhcmNoRmllbGRFbmFibGVkKSB7XG4gICAgICB0aGlzLnNlYXJjaEZpZWxkRW5hYmxlZCA9ICEhdGhpcy5zZWFyY2hGaWVsZDtcbiAgICAgIGRlZmVyRm4oKCkgPT4gdGhpcy5zZWFyY2hGaWVsZD8uZm9jdXMoKSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uRHJvcGRvd25DbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVTbW9vdGhTY3JvbGwoKTtcbiAgICBpZiAodGhpcy5zZWFyY2hGaWVsZEVuYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VhcmNoRmllbGRFbmFibGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Ecm9wZG93bkNsb3NlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaEZpZWxkPy5yZXNldCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRpc2FibGVTbW9vdGhTY3JvbGwoKTogdm9pZCB7XG4gICAgdGhpcy5zbW9vdGhTY3JvbGxFbmFibGVkID0gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgZW5hYmxlU21vb3RoU2Nyb2xsKCk6IHZvaWQge1xuICAgIHRoaXMuc21vb3RoU2Nyb2xsRW5hYmxlZCA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVNlbGVjdGVkT3B0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM/LnRvQXJyYXkoKTtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gb3B0aW9ucz8uZmluZCgob3B0aW9uKSA9PiBvcHRpb24uaXNTZWxlY3RlZCkgPz8gbnVsbDtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvblRleHQgPVxuICAgICAgICBvcHRpb25zXG4gICAgICAgICAgPy5maWx0ZXIoKHsgaXNTZWxlY3RlZCB9KSA9PiBpc1NlbGVjdGVkKVxuICAgICAgICAgIC5tYXAoKG9wdGlvbikgPT4gdGhpcy5zdHJpbmdpZnk/LihvcHRpb24udmFsdWUpID8/IG9wdGlvbi5nZXRMYWJlbCgpKVxuICAgICAgICAgIC5qb2luKCcsICcpID8/IG51bGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25UZXh0ID0gdGhpcy5zZWxlY3RlZE9wdGlvbiA/IHRoaXMuc3RyaW5naWZ5Py4odGhpcy5zZWxlY3RlZE9wdGlvbj8udmFsdWUpID8/IHRoaXMuc2VsZWN0ZWRPcHRpb24uZ2V0TGFiZWwoKSA6IG51bGw7XG4gIH1cbn1cbiIsIjxkaXZcbiAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICBjbGFzcz1cIm9keC1zZWxlY3RfX3RyaWdnZXJcIlxuICBbb2R4RHJvcGRvd25dPVwiZHJvcGRvd25Db250ZW50XCJcbiAgW29keERyb3Bkb3duRGlzYWJsZWRdPVwiaXNEaXNhYmxlZCB8fCBpc1JlYWRvbmx5XCJcbiAgW29keERyb3Bkb3duT3B0aW9uc109XCJ7IG1hdGNoUmVmZXJlbmNlV2lkdGg6IHRydWUsIG9mZnNldDogNCB9XCJcbiAgW29keERyb3Bkb3duUmVmZXJlbmNlRWxlbWVudF09XCJlbGVtZW50Lm5hdGl2ZUVsZW1lbnRcIlxuICBbb2R4RHJvcGRvd25TaG93TG9hZGVyXT1cImlzTG9hZGluZ1wiXG4gIChvZHhEcm9wZG93bkJlZm9yZU9wZW4pPVwib25Ecm9wZG93bk9wZW4oKVwiXG4gIChvZHhEcm9wZG93bkJlZm9yZUNsb3NlKT1cIm9uRHJvcGRvd25DbG9zZSgpXCJcbiAgKG9keERyb3Bkb3duQWZ0ZXJDbG9zZSk9XCJvbkRyb3Bkb3duQ2xvc2VkKClcIlxuICAob2R4RHJvcGRvd25BZnRlck9wZW4pPVwiZW5hYmxlU21vb3RoU2Nyb2xsKClcIlxuPlxuICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIXNlYXJjaEZpZWxkRW5hYmxlZFwiIFtuZ0lmRWxzZV09XCJzZWFyY2hGaWVsZFRlbXBsYXRlXCI+XG4gICAgPGRpdiBjbGFzcz1cIm9keC1zZWxlY3RfX3ZhbHVlXCIgKm5nSWY9XCJzZWxlY3RlZE9wdGlvbkNvbnRlbnQ7IGVsc2UgcGxhY2Vob2xkZXJUZW1wbGF0ZVwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtvZHhEeW5hbWljVmlld109XCJzZWxlY3RlZE9wdGlvbkNvbnRlbnRcIiBbb2R4RHluYW1pY1ZpZXdDb250ZXh0XT1cInsgJGltcGxpY2l0OiB2YWx1ZSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNwbGFjZWhvbGRlclRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJvZHgtc2VsZWN0X19wbGFjZWhvbGRlclwiPlxuICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNzZWFyY2hGaWVsZFRlbXBsYXRlPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltvZHhTZWxlY3RTZWFyY2hGaWVsZF1cIj48L25nLWNvbnRlbnQ+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxvZHgtaWNvbiBjbGFzcz1cIm9keC1zZWxlY3RfX2luZGljYXRvclwiIG5hbWU9XCJjaGV2cm9uLWRvd25cIj48L29keC1pY29uPlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duQ29udGVudD5cbiAgPGRpdiBjbGFzcz1cIm9keC1zZWxlY3QtZHJvcGRvd25cIiByb2xlPVwibGlzdGJveFwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJoYXNPcHRpb25zXCIgW25nSWZFbHNlXT1cIm5vT3B0aW9uc1RlbXBsYXRlXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI25vT3B0aW9uc1RlbXBsYXRlPlxuICAgICAgPG9keC1vcHRpb24gZGlzYWJsZWQgbm90Rm91bmRNZXNzYWdlPlxuICAgICAgICA8bmctdGVtcGxhdGUgW29keER5bmFtaWNWaWV3XT1cInNlYXJjaEZpZWxkPy5ub3RGb3VuZENvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxuICAgICAgPC9vZHgtb3B0aW9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -8,10 +8,10 @@ import * as i0 from "@angular/core";
8
8
  const modules = [SelectComponent, SelectSearchFieldDirective, SelectSearchFilterPipe, OptionComponent];
9
9
  export class SelectModule {
10
10
  }
11
- SelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- SelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.5", ngImport: i0, type: SelectModule, imports: [SelectComponent, SelectSearchFieldDirective, SelectSearchFilterPipe, OptionComponent], exports: [CoreModule, SelectComponent, SelectSearchFieldDirective, SelectSearchFilterPipe, OptionComponent] });
13
- SelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SelectModule, imports: [SelectComponent, OptionComponent, CoreModule] });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SelectModule, decorators: [{
11
+ SelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ SelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: SelectModule, imports: [SelectComponent, SelectSearchFieldDirective, SelectSearchFilterPipe, OptionComponent], exports: [CoreModule, SelectComponent, SelectSearchFieldDirective, SelectSearchFilterPipe, OptionComponent] });
13
+ SelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SelectModule, imports: [SelectComponent, OptionComponent, CoreModule] });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SelectModule, decorators: [{
15
15
  type: NgModule,
16
16
  args: [{
17
17
  imports: modules,
@@ -22,13 +22,13 @@ let SliderDirective = class SliderDirective {
22
22
  return (100 * (this.value - this.min)) / (this.max - this.min) || 0;
23
23
  }
24
24
  };
25
- SliderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SliderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
26
- SliderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.5", type: SliderDirective, isStandalone: true, selector: "input[type=range][odxSlider]", host: { properties: { "style.--odx-slider-filled.%": "this.valuePercentage" } }, hostDirectives: [{ directive: i1.WithDisabledState }], ngImport: i0 });
25
+ SliderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SliderDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
26
+ SliderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.1", type: SliderDirective, isStandalone: true, selector: "input[type=range][odxSlider]", host: { properties: { "style.--odx-slider-filled.%": "this.valuePercentage" } }, hostDirectives: [{ directive: i1.WithDisabledState }], ngImport: i0 });
27
27
  SliderDirective = __decorate([
28
28
  CSSComponent('slider')
29
29
  ], SliderDirective);
30
30
  export { SliderDirective };
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SliderDirective, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SliderDirective, decorators: [{
32
32
  type: Directive,
33
33
  args: [{
34
34
  standalone: true,
@@ -9,6 +9,9 @@ import { injectElement, Transform, untilDestroyed } from '@odx/angular/utils';
9
9
  import { filter, NEVER, startWith, switchMap, tap, timer } from 'rxjs';
10
10
  import * as i0 from "@angular/core";
11
11
  let SpinboxComponent = class SpinboxComponent extends CustomFormControl {
12
+ get inputElement() {
13
+ return this.control?.element.nativeElement;
14
+ }
12
15
  constructor() {
13
16
  super(0);
14
17
  this.takeUntilDestroyed = untilDestroyed();
@@ -18,9 +21,6 @@ let SpinboxComponent = class SpinboxComponent extends CustomFormControl {
18
21
  this.step = 1;
19
22
  detectControllerChanges(this).subscribe();
20
23
  }
21
- get inputElement() {
22
- return this.control?.element.nativeElement;
23
- }
24
24
  ngAfterViewInit() {
25
25
  this.registerPressHold(this.decrementButton).subscribe(() => {
26
26
  this.inputElement?.stepDown();
@@ -53,8 +53,8 @@ let SpinboxComponent = class SpinboxComponent extends CustomFormControl {
53
53
  }), switchMap(({ type }) => (['mouseup', 'keyup'].includes(type) ? NEVER : timer(500, 100).pipe(startWith(undefined)))), this.takeUntilDestroyed());
54
54
  }
55
55
  };
56
- SpinboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SpinboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
57
- SpinboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: SpinboxComponent, isStandalone: true, selector: "odx-spinbox", inputs: { max: "max", min: "min", step: "step" }, providers: [DisabledController.connect(), ReadonlyController.connect()], viewQueries: [{ propertyName: "decrementButton", first: true, predicate: ["decrementButton"], descendants: true }, { propertyName: "incrementButton", first: true, predicate: ["incrementButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action odx-icon odx-icon-minus\" #decrementButton></button>\n<input\n odxControl\n class=\"odx-spinbox__input\"\n [disabled]=\"isDisabled\"\n [readonly]=\"isReadonly\"\n type=\"number\"\n [value]=\"value\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n (keydown)=\"maxSteps($event)\"\n (change)=\"onInputChange()\"\n (blur)=\"checkValue()\"\n/>\n<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action odx-icon odx-icon-plus\" #incrementButton></button>\n", dependencies: [{ kind: "directive", type: ControlDirective, selector: "[odxControl]", exportAs: ["odxControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
56
+ SpinboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SpinboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
57
+ SpinboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: SpinboxComponent, isStandalone: true, selector: "odx-spinbox", inputs: { max: "max", min: "min", step: "step" }, providers: [DisabledController.connect(), ReadonlyController.connect()], viewQueries: [{ propertyName: "decrementButton", first: true, predicate: ["decrementButton"], descendants: true }, { propertyName: "incrementButton", first: true, predicate: ["incrementButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action odx-icon odx-icon-minus\" #decrementButton></button>\n<input\n odxControl\n class=\"odx-spinbox__input\"\n [disabled]=\"isDisabled\"\n [readonly]=\"isReadonly\"\n type=\"number\"\n [value]=\"value\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n (keydown)=\"maxSteps($event)\"\n (change)=\"onInputChange()\"\n (blur)=\"checkValue()\"\n/>\n<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action odx-icon odx-icon-plus\" #incrementButton></button>\n", dependencies: [{ kind: "directive", type: ControlDirective, selector: "[odxControl]", exportAs: ["odxControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
58
58
  __decorate([
59
59
  Transform(coerceNumberProperty),
60
60
  __metadata("design:type", Object)
@@ -72,7 +72,7 @@ SpinboxComponent = __decorate([
72
72
  __metadata("design:paramtypes", [])
73
73
  ], SpinboxComponent);
74
74
  export { SpinboxComponent };
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SpinboxComponent, decorators: [{
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SpinboxComponent, decorators: [{
76
76
  type: Component,
77
77
  args: [{ standalone: true, selector: 'odx-spinbox', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [ControlDirective], providers: [DisabledController.connect(), ReadonlyController.connect()], template: "<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action odx-icon odx-icon-minus\" #decrementButton></button>\n<input\n odxControl\n class=\"odx-spinbox__input\"\n [disabled]=\"isDisabled\"\n [readonly]=\"isReadonly\"\n type=\"number\"\n [value]=\"value\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n (keydown)=\"maxSteps($event)\"\n (change)=\"onInputChange()\"\n (blur)=\"checkValue()\"\n/>\n<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action odx-icon odx-icon-plus\" #incrementButton></button>\n" }]
78
78
  }], ctorParameters: function () { return []; }, propDecorators: { decrementButton: [{
@@ -88,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImpor
88
88
  }], step: [{
89
89
  type: Input
90
90
  }] } });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpbmJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9zcGluYm94L3NyYy9saWIvc3BpbmJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9zcGluYm94L3NyYy9saWIvc3BpbmJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFlLE1BQU0sdUJBQXVCLENBQUM7QUFDMUUsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkksT0FBTyxFQUFFLHVCQUF1QixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWMsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQVk1RSxJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFpQixTQUFRLGlCQUF5QjtJQStCN0Q7UUFDRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUEzQk0sdUJBQWtCLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFZdkMsWUFBTyxH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QUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDbkgsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQzFCLENBQUM7SUFDSixDQUFDOzs2R0ExRVUsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsNEdBRmhCLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLEVBQUUsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUMsMFFDakJ6RSxtbEJBZ0JBLDRDREFZLGdCQUFnQjtBQXNCMUI7SUFBQyxTQUFTLENBQUMsb0JBQW9CLENBQUM7OzZDQUVWO0FBRXRCO0lBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDOzs2Q0FFVDtBQUV2QjtJQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQzs7OENBRWhCO0FBN0JMLGdCQUFnQjtJQVY1QixZQUFZLENBQUMsU0FBUyxDQUFDOztHQVVYLGdCQUFnQixDQTJFNUI7U0EzRVksZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBVDVCLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLGFBQWEsbUJBRU4sdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxXQUM1QixDQUFDLGdCQUFnQixDQUFDLGFBQ2hCLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLEVBQUUsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUM7MEVBYzdELGVBQWU7c0JBRHhCLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUlsQixlQUFlO3NCQUR4QixTQUFTO3VCQUFDLGlCQUFpQjtnQkFPckIsR0FBRztzQkFEVCxLQUFLO2dCQUtDLEdBQUc7c0JBRFQsS0FBSztnQkFLQyxJQUFJO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSwgTnVtYmVySW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRldGVjdENvbnRyb2xsZXJDaGFuZ2VzLCBEaXNhYmxlZENvbnRyb2xsZXIsIFJlYWRvbmx5Q29udHJvbGxlciB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBDb250cm9sRGlyZWN0aXZlLCBDdXN0b21Gb3JtQ29udHJvbCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvY3VzdG9tLWZvcm0tY29udHJvbCc7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgZnJvbUV2ZW50cyB9IGZyb20gJ0BvZHgvYW5ndWxhci9yeGpzJztcbmltcG9ydCB7IGluamVjdEVsZW1lbnQsIFRyYW5zZm9ybSwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgZmlsdGVyLCBORVZFUiwgT2JzZXJ2YWJsZSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRhcCwgdGltZXIgfSBmcm9tICdyeGpzJztcblxuQENTU0NvbXBvbmVudCgnc3BpbmJveCcpXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdvZHgtc3BpbmJveCcsXG4gIHRlbXBsYXRlVXJsOiAnc3BpbmJveC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbXBvcnRzOiBbQ29udHJvbERpcmVjdGl2ZV0sXG4gIHByb3ZpZGVyczogW0Rpc2FibGVkQ29udHJvbGxlci5jb25uZWN0KCksIFJlYWRvbmx5Q29udHJvbGxlci5jb25uZWN0KCldLFxufSlcbmV4cG9ydCBjbGFzcyBTcGluYm94Q29tcG9uZW50IGV4dGVuZHMgQ3VzdG9tRm9ybUNvbnRyb2w8bnVtYmVyPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwdWJsaWMgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX21heDogTnVtYmVySW5wdXQ7XG4gIHB1YmxpYyBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbWluOiBOdW1iZXJJbnB1dDtcbiAgcHVibGljIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zdGVwOiBOdW1iZXJJbnB1dDtcblxuICBwcml2YXRlIHJlYWRvbmx5IHRha2VVbnRpbERlc3Ryb3llZCA9IHVudGlsRGVzdHJveWVkKCk7XG5cbiAgcHJpdmF0ZSBnZXQgaW5wdXRFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmNvbnRyb2w/LmVsZW1lbnQubmF0aXZlRWxlbWVudCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnZGVjcmVtZW50QnV0dG9uJylcbiAgcHJvdGVjdGVkIGRlY3JlbWVudEJ1dHRvbiE6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ2luY3JlbWVudEJ1dHRvbicpXG4gIHByb3RlY3RlZCBpbmNyZW1lbnRCdXR0b24hOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcblxuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcblxuICBAVHJhbnNmb3JtKGNvZXJjZU51bWJlclByb3BlcnR5KVxuICBASW5wdXQoKVxuICBwdWJsaWMgbWF4ID0gSW5maW5pdHk7XG5cbiAgQFRyYW5zZm9ybShjb2VyY2VOdW1iZXJQcm9wZXJ0eSlcbiAgQElucHV0KClcbiAgcHVibGljIG1pbiA9IC1JbmZpbml0eTtcblxuICBAVHJhbnNmb3JtKGNvZXJjZU51bWJlclByb3BlcnR5KVxuICBASW5wdXQoKVxuICBwdWJsaWMgc3RlcCA9IDE7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoMCk7XG4gICAgZGV0ZWN0Q29udHJvbGxlckNoYW5nZXModGhpcykuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0ZXJQcmVzc0hvbGQodGhpcy5kZWNyZW1lbnRCdXR0b24pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmlucHV0RWxlbWVudD8uc3RlcERvd24oKTtcbiAgICAgIHRoaXMub25JbnB1dENoYW5nZSgpO1xuICAgIH0pO1xuICAgIHRoaXMucmVnaXN0ZXJQcmVzc0hvbGQodGhpcy5pbmNyZW1lbnRCdXR0b24pLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmlucHV0RWxlbWVudD8uc3RlcFVwKCk7XG4gICAgICB0aGlzLm9uSW5wdXRDaGFuZ2UoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBtYXhTdGVwcyh7IGNvZGUgfTogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChjb2RlID09PSAnRW5kJyAmJiB0aGlzLm1pbiAhPT0gLUluZmluaXR5KSB7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMubWluKTtcbiAgICB9IGVsc2UgaWYgKGNvZGUgPT09ICdIb21lJyAmJiB0aGlzLm1heCAhPT0gSW5maW5pdHkpIHtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy5tYXgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjaGVja1ZhbHVlKCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gY29lcmNlTnVtYmVyUHJvcGVydHkodGhpcy5pbnB1dEVsZW1lbnQudmFsdWUpO1xuICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUgPCB0aGlzLm1pbiA/IHRoaXMubWluIDogdmFsdWUgPiB0aGlzLm1heCA/IHRoaXMubWF4IDogdmFsdWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uSW5wdXRDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVWYWx1ZShjb2VyY2VOdW1iZXJQcm9wZXJ0eSh0aGlzLmlucHV0RWxlbWVudC52YWx1ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlclByZXNzSG9sZCh0YXJnZXQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTogT2JzZXJ2YWJsZTx1bmtub3duPiB7XG4gICAgcmV0dXJuIGZyb21FdmVudHModGFyZ2V0Lm5hdGl2ZUVsZW1lbnQsICdrZXlkb3duJywgJ21vdXNlZG93bicsICdtb3VzZXVwJywgJ2tleXVwJykucGlwZShcbiAgICAgIGZpbHRlcigoZXZlbnQpID0+IGV2ZW50Py50eXBlICE9PSAna2V5ZG93bicgfHwgWydTcGFjZScsICdFbnRlciddLmluY2x1ZGVzKChldmVudCBhcyBLZXlib2FyZEV2ZW50KS5jb2RlKSksXG4gICAgICB0YXAoKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAoKHsgdHlwZSB9KSA9PiAoWydtb3VzZXVwJywgJ2tleXVwJ10uaW5jbHVkZXModHlwZSkgPyBORVZFUiA6IHRpbWVyKDUwMCwgMTAwKS5waXBlKHN0YXJ0V2l0aCh1bmRlZmluZWQpKSkpLFxuICAgICAgdGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKVxuICAgICk7XG4gIH1cbn1cbiIsIjxidXR0b24gW2Rpc2FibGVkXT1cImlzRGlzYWJsZWQgfHwgaXNSZWFkb25seVwiIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cIm9keC1zcGluYm94X19hY3Rpb24gb2R4LWljb24gb2R4LWljb24tbWludXNcIiAjZGVjcmVtZW50QnV0dG9uPjwvYnV0dG9uPlxuPGlucHV0XG4gIG9keENvbnRyb2xcbiAgY2xhc3M9XCJvZHgtc3BpbmJveF9faW5wdXRcIlxuICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gIFtyZWFkb25seV09XCJpc1JlYWRvbmx5XCJcbiAgdHlwZT1cIm51bWJlclwiXG4gIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gIFttaW5dPVwibWluXCJcbiAgW21heF09XCJtYXhcIlxuICBbc3RlcF09XCJzdGVwXCJcbiAgKGtleWRvd24pPVwibWF4U3RlcHMoJGV2ZW50KVwiXG4gIChjaGFuZ2UpPVwib25JbnB1dENoYW5nZSgpXCJcbiAgKGJsdXIpPVwiY2hlY2tWYWx1ZSgpXCJcbi8+XG48YnV0dG9uIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkIHx8IGlzUmVhZG9ubHlcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJvZHgtc3BpbmJveF9fYWN0aW9uIG9keC1pY29uIG9keC1pY29uLXBsdXNcIiAjaW5jcmVtZW50QnV0dG9uPjwvYnV0dG9uPlxuIl19
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpbmJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9zcGluYm94L3NyYy9saWIvc3BpbmJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9zcGluYm94L3NyYy9saWIvc3BpbmJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFlLE1BQU0sdUJBQXVCLENBQUM7QUFDMUUsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkksT0FBTyxFQUFFLHVCQUF1QixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWMsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQVk1RSxJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFpQixTQUFRLGlCQUF5QjtJQU83RCxJQUFZLFlBQVk7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxhQUFpQyxDQUFDO0lBQ2pFLENBQUM7SUFzQkQ7UUFDRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUEzQk0sdUJBQWtCLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFZdkMsWUFBTyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBSW5DLFFBQUcsR0FBRyxRQUFRLENBQUM7UUFJZixRQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUM7UUFJaEIsU0FBSSxHQUFHLENBQUMsQ0FBQztRQUlkLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFTSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMxRCxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMxRCxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQWlCO1FBQ3hDLElBQUksSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzVCO2FBQU0sSUFBSSxJQUFJLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssUUFBUSxFQUFFO1lBQ25ELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVTLFVBQVU7UUFDbEIsTUFBTSxLQUFLLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVTLGFBQWE7UUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVPLGlCQUFpQixDQUFDLE1BQStCO1FBQ3ZELE9BQU8sVUFBVSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUN0RixNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLEtBQUssU0FBUyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBRSxLQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLEVBQzFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1osS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ25ILElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUMxQixDQUFDO0lBQ0osQ0FBQzs7NkdBMUVVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLDRHQUZoQixDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxFQUFFLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDLDBRQ2pCekUsbWxCQWdCQSw0Q0RBWSxnQkFBZ0I7QUFzQjFCO0lBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDOzs2Q0FFVjtBQUV0QjtJQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQzs7NkNBRVQ7QUFFdkI7SUFBQyxTQUFTLENBQUMsb0JBQW9CLENBQUM7OzhDQUVoQjtBQTdCTCxnQkFBZ0I7SUFWNUIsWUFBWSxDQUFDLFNBQVMsQ0FBQzs7R0FVWCxnQkFBZ0IsQ0EyRTVCO1NBM0VZLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQVQ1QixTQUFTO2lDQUNJLElBQUksWUFDTixhQUFhLG1CQUVOLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUNoQixDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxFQUFFLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDOzBFQWM3RCxlQUFlO3NCQUR4QixTQUFTO3VCQUFDLGlCQUFpQjtnQkFJbEIsZUFBZTtzQkFEeEIsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBT3JCLEdBQUc7c0JBRFQsS0FBSztnQkFLQyxHQUFHO3NCQURULEtBQUs7Z0JBS0MsSUFBSTtzQkFEVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlTnVtYmVyUHJvcGVydHksIE51bWJlcklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZXRlY3RDb250cm9sbGVyQ2hhbmdlcywgRGlzYWJsZWRDb250cm9sbGVyLCBSZWFkb25seUNvbnRyb2xsZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQ29udHJvbERpcmVjdGl2ZSwgQ3VzdG9tRm9ybUNvbnRyb2wgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2N1c3RvbS1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGZyb21FdmVudHMgfSBmcm9tICdAb2R4L2FuZ3VsYXIvcnhqcyc7XG5pbXBvcnQgeyBpbmplY3RFbGVtZW50LCBUcmFuc2Zvcm0sIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGZpbHRlciwgTkVWRVIsIE9ic2VydmFibGUsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YXAsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5cbkBDU1NDb21wb25lbnQoJ3NwaW5ib3gnKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LXNwaW5ib3gnLFxuICB0ZW1wbGF0ZVVybDogJ3NwaW5ib3guY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW0NvbnRyb2xEaXJlY3RpdmVdLFxuICBwcm92aWRlcnM6IFtEaXNhYmxlZENvbnRyb2xsZXIuY29ubmVjdCgpLCBSZWFkb25seUNvbnRyb2xsZXIuY29ubmVjdCgpXSxcbn0pXG5leHBvcnQgY2xhc3MgU3BpbmJveENvbXBvbmVudCBleHRlbmRzIEN1c3RvbUZvcm1Db250cm9sPG51bWJlcj4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHVibGljIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9tYXg6IE51bWJlcklucHV0O1xuICBwdWJsaWMgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX21pbjogTnVtYmVySW5wdXQ7XG4gIHB1YmxpYyBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfc3RlcDogTnVtYmVySW5wdXQ7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ZWQgPSB1bnRpbERlc3Ryb3llZCgpO1xuXG4gIHByaXZhdGUgZ2V0IGlucHV0RWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sPy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2RlY3JlbWVudEJ1dHRvbicpXG4gIHByb3RlY3RlZCBkZWNyZW1lbnRCdXR0b24hOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdpbmNyZW1lbnRCdXR0b24nKVxuICBwcm90ZWN0ZWQgaW5jcmVtZW50QnV0dG9uITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG5cbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG5cbiAgQFRyYW5zZm9ybShjb2VyY2VOdW1iZXJQcm9wZXJ0eSlcbiAgQElucHV0KClcbiAgcHVibGljIG1heCA9IEluZmluaXR5O1xuXG4gIEBUcmFuc2Zvcm0oY29lcmNlTnVtYmVyUHJvcGVydHkpXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtaW4gPSAtSW5maW5pdHk7XG5cbiAgQFRyYW5zZm9ybShjb2VyY2VOdW1iZXJQcm9wZXJ0eSlcbiAgQElucHV0KClcbiAgcHVibGljIHN0ZXAgPSAxO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKDApO1xuICAgIGRldGVjdENvbnRyb2xsZXJDaGFuZ2VzKHRoaXMpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2lzdGVyUHJlc3NIb2xkKHRoaXMuZGVjcmVtZW50QnV0dG9uKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5pbnB1dEVsZW1lbnQ/LnN0ZXBEb3duKCk7XG4gICAgICB0aGlzLm9uSW5wdXRDaGFuZ2UoKTtcbiAgICB9KTtcbiAgICB0aGlzLnJlZ2lzdGVyUHJlc3NIb2xkKHRoaXMuaW5jcmVtZW50QnV0dG9uKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5pbnB1dEVsZW1lbnQ/LnN0ZXBVcCgpO1xuICAgICAgdGhpcy5vbklucHV0Q2hhbmdlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWF4U3RlcHMoeyBjb2RlIH06IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoY29kZSA9PT0gJ0VuZCcgJiYgdGhpcy5taW4gIT09IC1JbmZpbml0eSkge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLm1pbik7XG4gICAgfSBlbHNlIGlmIChjb2RlID09PSAnSG9tZScgJiYgdGhpcy5tYXggIT09IEluZmluaXR5KSB7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMubWF4KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tWYWx1ZSgpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IGNvZXJjZU51bWJlclByb3BlcnR5KHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlKTtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlIDwgdGhpcy5taW4gPyB0aGlzLm1pbiA6IHZhbHVlID4gdGhpcy5tYXggPyB0aGlzLm1heCA6IHZhbHVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbklucHV0Q2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlVmFsdWUoY29lcmNlTnVtYmVyUHJvcGVydHkodGhpcy5pbnB1dEVsZW1lbnQudmFsdWUpKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJQcmVzc0hvbGQodGFyZ2V0OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIHJldHVybiBmcm9tRXZlbnRzKHRhcmdldC5uYXRpdmVFbGVtZW50LCAna2V5ZG93bicsICdtb3VzZWRvd24nLCAnbW91c2V1cCcsICdrZXl1cCcpLnBpcGUoXG4gICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudD8udHlwZSAhPT0gJ2tleWRvd24nIHx8IFsnU3BhY2UnLCAnRW50ZXInXS5pbmNsdWRlcygoZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCkuY29kZSkpLFxuICAgICAgdGFwKChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKCh7IHR5cGUgfSkgPT4gKFsnbW91c2V1cCcsICdrZXl1cCddLmluY2x1ZGVzKHR5cGUpID8gTkVWRVIgOiB0aW1lcig1MDAsIDEwMCkucGlwZShzdGFydFdpdGgodW5kZWZpbmVkKSkpKSxcbiAgICAgIHRoaXMudGFrZVVudGlsRGVzdHJveWVkKClcbiAgICApO1xuICB9XG59XG4iLCI8YnV0dG9uIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkIHx8IGlzUmVhZG9ubHlcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJvZHgtc3BpbmJveF9fYWN0aW9uIG9keC1pY29uIG9keC1pY29uLW1pbnVzXCIgI2RlY3JlbWVudEJ1dHRvbj48L2J1dHRvbj5cbjxpbnB1dFxuICBvZHhDb250cm9sXG4gIGNsYXNzPVwib2R4LXNwaW5ib3hfX2lucHV0XCJcbiAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICBbcmVhZG9ubHldPVwiaXNSZWFkb25seVwiXG4gIHR5cGU9XCJudW1iZXJcIlxuICBbdmFsdWVdPVwidmFsdWVcIlxuICBbbWluXT1cIm1pblwiXG4gIFttYXhdPVwibWF4XCJcbiAgW3N0ZXBdPVwic3RlcFwiXG4gIChrZXlkb3duKT1cIm1heFN0ZXBzKCRldmVudClcIlxuICAoY2hhbmdlKT1cIm9uSW5wdXRDaGFuZ2UoKVwiXG4gIChibHVyKT1cImNoZWNrVmFsdWUoKVwiXG4vPlxuPGJ1dHRvbiBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCB8fCBpc1JlYWRvbmx5XCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwib2R4LXNwaW5ib3hfX2FjdGlvbiBvZHgtaWNvbiBvZHgtaWNvbi1wbHVzXCIgI2luY3JlbWVudEJ1dHRvbj48L2J1dHRvbj5cbiJdfQ==
@@ -8,13 +8,13 @@ import * as i0 from "@angular/core";
8
8
  import * as i1 from "@odx/angular";
9
9
  let SwitchComponent = class SwitchComponent extends CheckBoxControl {
10
10
  };
11
- SwitchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SwitchComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
12
- SwitchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: SwitchComponent, isStandalone: true, selector: "odx-switch", host: { properties: { "class.is-active": "checked" } }, providers: [ReadonlyController.connect()], usesInheritance: true, hostDirectives: [{ directive: i1.WithDisabledState }], ngImport: i0, template: "<label class=\"odx-switch__label\">\n <input\n odxControl\n class=\"odx-switch__input\"\n [attr.aria-checked]=\"ariaChecked\"\n [attr.aria-invalid]=\"hasError || null\"\n [attr.aria-readonly]=\"isReadonly || null\"\n [attr.aria-required]=\"isRequired || null\"\n [checked]=\"checked\"\n [disabled]=\"isDisabled || isReadonly\"\n [name]=\"name\"\n [readonly]=\"isReadonly\"\n [value]=\"value\"\n type=\"checkbox\"\n (blur)=\"onTouched()\"\n (change)=\"onChanged($event)\"\n />\n <div class=\"odx-switch__indicator\"></div>\n <div class=\"odx-switch__content\">\n <ng-content></ng-content>\n </div>\n</label>\n", dependencies: [{ kind: "directive", type: ControlDirective, selector: "[odxControl]", exportAs: ["odxControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
11
+ SwitchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SwitchComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
12
+ SwitchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: SwitchComponent, isStandalone: true, selector: "odx-switch", host: { properties: { "class.is-active": "checked" } }, providers: [ReadonlyController.connect()], usesInheritance: true, hostDirectives: [{ directive: i1.WithDisabledState }], ngImport: i0, template: "<label class=\"odx-switch__label\">\n <input\n odxControl\n class=\"odx-switch__input\"\n [attr.aria-checked]=\"ariaChecked\"\n [attr.aria-invalid]=\"hasError || null\"\n [attr.aria-readonly]=\"isReadonly || null\"\n [attr.aria-required]=\"isRequired || null\"\n [checked]=\"checked\"\n [disabled]=\"isDisabled || isReadonly\"\n [name]=\"name\"\n [readonly]=\"isReadonly\"\n [value]=\"value\"\n type=\"checkbox\"\n (blur)=\"onTouched()\"\n (change)=\"onChanged($event)\"\n />\n <div class=\"odx-switch__indicator\"></div>\n <div class=\"odx-switch__content\">\n <ng-content></ng-content>\n </div>\n</label>\n", dependencies: [{ kind: "directive", type: ControlDirective, selector: "[odxControl]", exportAs: ["odxControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
13
13
  SwitchComponent = __decorate([
14
14
  CSSComponent('switch')
15
15
  ], SwitchComponent);
16
16
  export { SwitchComponent };
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SwitchComponent, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SwitchComponent, decorators: [{
18
18
  type: Component,
19
19
  args: [{ standalone: true, selector: 'odx-switch', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [ControlDirective], providers: [ReadonlyController.connect()], hostDirectives: [WithDisabledState], host: {
20
20
  '[class.is-active]': 'checked',
@@ -6,10 +6,10 @@ import * as i0 from "@angular/core";
6
6
  const modules = [SwitchComponent, SwitchValidator];
7
7
  export class SwitchModule {
8
8
  }
9
- SwitchModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SwitchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- SwitchModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.5", ngImport: i0, type: SwitchModule, imports: [SwitchComponent, SwitchValidator], exports: [CoreModule, SwitchComponent, SwitchValidator] });
11
- SwitchModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SwitchModule, imports: [SwitchComponent, CoreModule] });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SwitchModule, decorators: [{
9
+ SwitchModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SwitchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ SwitchModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: SwitchModule, imports: [SwitchComponent, SwitchValidator], exports: [CoreModule, SwitchComponent, SwitchValidator] });
11
+ SwitchModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SwitchModule, imports: [SwitchComponent, CoreModule] });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SwitchModule, decorators: [{
13
13
  type: NgModule,
14
14
  args: [{
15
15
  imports: modules,
@@ -3,15 +3,15 @@ import { CheckboxRequiredValidator, NG_VALIDATORS } from '@angular/forms';
3
3
  import * as i0 from "@angular/core";
4
4
  export class SwitchValidator extends CheckboxRequiredValidator {
5
5
  }
6
- SwitchValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SwitchValidator, deps: null, target: i0.ɵɵFactoryTarget.Directive });
7
- SwitchValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.5", type: SwitchValidator, isStandalone: true, selector: "odx-switch[required][formControlName], odx-switch[required][formControl], odx-switch[required][ngModel]", providers: [
6
+ SwitchValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SwitchValidator, deps: null, target: i0.ɵɵFactoryTarget.Directive });
7
+ SwitchValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.1", type: SwitchValidator, isStandalone: true, selector: "odx-switch[required][formControlName], odx-switch[required][formControl], odx-switch[required][ngModel]", providers: [
8
8
  {
9
9
  provide: NG_VALIDATORS,
10
10
  useExisting: forwardRef(() => SwitchValidator),
11
11
  multi: true,
12
12
  },
13
13
  ], usesInheritance: true, ngImport: i0 });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: SwitchValidator, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SwitchValidator, decorators: [{
15
15
  type: Directive,
16
16
  args: [{
17
17
  standalone: true,
@@ -40,8 +40,8 @@ let TabBarItemComponent = class TabBarItemComponent {
40
40
  this.tabClose.emit(this);
41
41
  }
42
42
  };
43
- TabBarItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: TabBarItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
44
- TabBarItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: TabBarItemComponent, isStandalone: true, selector: "odx-tab-bar-item", inputs: { closable: "closable" }, outputs: { tabClose: "tabClose" }, host: { attributes: { "role": "tab" }, listeners: { "click": "onClick()" }, properties: { "class.is-disabled": "disabled", "class.is-active": "isActive", "attr.aria-selected": "isActive", "class.is-closable": "closable" } }, providers: [DisabledController.connect()], ngImport: i0, template: "<ng-content select=\"odx-icon\"></ng-content>\n<ng-content></ng-content>\n<odx-icon name=\"close\" size=\"small\" *ngIf=\"closable\" (click)=\"handleClose($event)\"></odx-icon>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
43
+ TabBarItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TabBarItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
44
+ TabBarItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: TabBarItemComponent, isStandalone: true, selector: "odx-tab-bar-item", inputs: { closable: "closable" }, outputs: { tabClose: "tabClose" }, host: { attributes: { "role": "tab" }, listeners: { "click": "onClick()" }, properties: { "class.is-disabled": "disabled", "class.is-active": "isActive", "attr.aria-selected": "isActive", "class.is-closable": "closable" } }, providers: [DisabledController.connect()], ngImport: i0, template: "<ng-content select=\"odx-icon\"></ng-content>\n<ng-content></ng-content>\n<odx-icon name=\"close\" size=\"small\" *ngIf=\"closable\" (click)=\"handleClose($event)\"></odx-icon>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
45
45
  __decorate([
46
46
  Transform(coerceBooleanProperty),
47
47
  __metadata("design:type", Object)
@@ -50,7 +50,7 @@ TabBarItemComponent = __decorate([
50
50
  CSSComponent('tab-bar-item')
51
51
  ], TabBarItemComponent);
52
52
  export { TabBarItemComponent };
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: TabBarItemComponent, decorators: [{
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: TabBarItemComponent, decorators: [{
54
54
  type: Component,
55
55
  args: [{ selector: 'odx-tab-bar-item', standalone: true, imports: [CommonModule, IconComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DisabledController.connect()], host: {
56
56
  '[class.is-disabled]': 'disabled',