@ethlete/cdk 2.15.1 → 3.0.0

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 (199) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/esm2022/lib/components/accordion/components/accordion/accordion.component.mjs +3 -3
  3. package/esm2022/lib/components/accordion/components/accordion-group/accordion-group.component.mjs +3 -3
  4. package/esm2022/lib/components/accordion/partials/accordion-hint/accordion-hint.directive.mjs +3 -3
  5. package/esm2022/lib/components/accordion/partials/accordion-hint-wrapper/accordion-hint-wrapper.directive.mjs +3 -3
  6. package/esm2022/lib/components/accordion/partials/accordion-label/accordion-label.directive.mjs +3 -3
  7. package/esm2022/lib/components/accordion/partials/accordion-label-wrapper/accordion-label-wrapper.directive.mjs +3 -3
  8. package/esm2022/lib/components/bracket/components/bracket/bracket.component.mjs +3 -3
  9. package/esm2022/lib/components/bracket/directives/bracket-match/bracket-match.directive.mjs +3 -3
  10. package/esm2022/lib/components/bracket/directives/bracket-round/bracket-round.directive.mjs +3 -3
  11. package/esm2022/lib/components/bracket/partials/bracket-match/bracket-match.component.mjs +3 -3
  12. package/esm2022/lib/components/bracket/partials/bracket-round-header/bracket-round-header.component.mjs +3 -3
  13. package/esm2022/lib/components/button/components/button/button.component.mjs +3 -3
  14. package/esm2022/lib/components/button/components/query-button/query-button.component.mjs +3 -3
  15. package/esm2022/lib/components/button/directives/button/button.directive.mjs +3 -3
  16. package/esm2022/lib/components/button/directives/query-button/query-button.directive.mjs +3 -3
  17. package/esm2022/lib/components/forms/components/checkbox/components/checkbox/checkbox.component.mjs +3 -3
  18. package/esm2022/lib/components/forms/components/checkbox/components/checkbox-field/checkbox-field.component.mjs +3 -3
  19. package/esm2022/lib/components/forms/components/checkbox/components/checkbox-group/checkbox-group.component.mjs +3 -3
  20. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox/checkbox.directive.mjs +3 -3
  21. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-field/checkbox-field.directive.mjs +3 -3
  22. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group/checkbox-group.directive.mjs +3 -3
  23. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group-control/checkbox-group-control.directive.mjs +3 -3
  24. package/esm2022/lib/components/forms/components/error/components/error/error.component.mjs +3 -3
  25. package/esm2022/lib/components/forms/components/input/components/date-input/date-input.component.mjs +3 -3
  26. package/esm2022/lib/components/forms/components/input/components/email-input/email-input.component.mjs +3 -3
  27. package/esm2022/lib/components/forms/components/input/components/input-field/input-field.component.mjs +3 -3
  28. package/esm2022/lib/components/forms/components/input/components/number-input/number-input.component.mjs +3 -3
  29. package/esm2022/lib/components/forms/components/input/components/password-input/password-input.component.mjs +3 -3
  30. package/esm2022/lib/components/forms/components/input/components/search-input/search-input.component.mjs +3 -3
  31. package/esm2022/lib/components/forms/components/input/components/text-input/text-input.component.mjs +3 -3
  32. package/esm2022/lib/components/forms/components/input/components/textarea-input/textarea-input.component.mjs +3 -3
  33. package/esm2022/lib/components/forms/components/input/directives/autosize-textarea/autosize-textarea.directive.mjs +3 -3
  34. package/esm2022/lib/components/forms/components/input/directives/date-input/date-input.directive.mjs +3 -3
  35. package/esm2022/lib/components/forms/components/input/directives/email-input/email-input.directive.mjs +3 -3
  36. package/esm2022/lib/components/forms/components/input/directives/number-input/number-input.directive.mjs +3 -3
  37. package/esm2022/lib/components/forms/components/input/directives/password-input/password-input.directive.mjs +3 -3
  38. package/esm2022/lib/components/forms/components/input/directives/search-input/search-input.directive.mjs +3 -3
  39. package/esm2022/lib/components/forms/components/input/directives/text-input/text-input.directive.mjs +3 -3
  40. package/esm2022/lib/components/forms/components/input/directives/textarea-input/textarea-input.directive.mjs +3 -3
  41. package/esm2022/lib/components/forms/components/input/partials/password-input-toggle/password-input-toggle.component.mjs +3 -3
  42. package/esm2022/lib/components/forms/components/input/partials/search-input-clear/search-input-clear.component.mjs +3 -3
  43. package/esm2022/lib/components/forms/components/label/components/label/label.component.mjs +3 -3
  44. package/esm2022/lib/components/forms/components/label/directives/label-suffix/label-suffix.directive.mjs +3 -3
  45. package/esm2022/lib/components/forms/components/radio/components/radio/radio.component.mjs +3 -3
  46. package/esm2022/lib/components/forms/components/radio/components/radio-field/radio-field.component.mjs +3 -3
  47. package/esm2022/lib/components/forms/components/radio/components/radio-group/radio-group.component.mjs +3 -3
  48. package/esm2022/lib/components/forms/components/radio/directives/radio/radio.directive.mjs +3 -3
  49. package/esm2022/lib/components/forms/components/radio/directives/radio-field/radio-field.directive.mjs +3 -3
  50. package/esm2022/lib/components/forms/components/radio/directives/radio-group/radio-group.directive.mjs +3 -3
  51. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button/segmented-button.component.mjs +3 -3
  52. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-field/segmented-button-field.component.mjs +3 -3
  53. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-group/segmented-button-group.component.mjs +3 -3
  54. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.mjs +3 -3
  55. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-field/segmented-button-field.directive.mjs +3 -3
  56. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-group/segmented-button-group.directive.mjs +3 -3
  57. package/esm2022/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.mjs +8 -13
  58. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.mjs +3 -3
  59. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-option-template/combobox-option-template.directive.mjs +3 -3
  60. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-selected-option-template/combobox-selected-option-template.directive.mjs +3 -3
  61. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.mjs +3 -3
  62. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.mjs +3 -3
  63. package/esm2022/lib/components/forms/components/select/components/native-select/components/native-select/native-select.component.mjs +3 -3
  64. package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-input/native-select-input.directive.mjs +3 -3
  65. package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-option/native-select-option.directive.mjs +3 -3
  66. package/esm2022/lib/components/forms/components/select/components/native-select/partials/native-select-option/native-select-option.component.mjs +3 -3
  67. package/esm2022/lib/components/forms/components/select/components/select/components/select/select.component.mjs +3 -3
  68. package/esm2022/lib/components/forms/components/select/components/select/directives/select/select.directive.mjs +6 -5
  69. package/esm2022/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.mjs +3 -3
  70. package/esm2022/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.mjs +3 -3
  71. package/esm2022/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.mjs +6 -6
  72. package/esm2022/lib/components/forms/components/select/components/select/partials/select-option/select-option.component.mjs +3 -3
  73. package/esm2022/lib/components/forms/components/select/components/select-field/select-field.component.mjs +3 -3
  74. package/esm2022/lib/components/forms/components/select/directives/select-field/select-field.directive.mjs +3 -3
  75. package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle/slide-toggle.component.mjs +3 -3
  76. package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle-field/slide-toggle-field.component.mjs +3 -3
  77. package/esm2022/lib/components/forms/components/slide-toggle/directives/slide-toggle/slide-toggle.directive.mjs +3 -3
  78. package/esm2022/lib/components/forms/components/slider/components/slider/slider.component.mjs +3 -3
  79. package/esm2022/lib/components/forms/components/slider/components/slider-field/slider-field.component.mjs +3 -3
  80. package/esm2022/lib/components/forms/directives/dynamic-form-field/dynamic-form-field.directive.mjs +3 -3
  81. package/esm2022/lib/components/forms/directives/dynamic-form-group/dynamic-form-group.directive.mjs +3 -3
  82. package/esm2022/lib/components/forms/directives/if-input-empty/if-input-empty.directive.mjs +3 -3
  83. package/esm2022/lib/components/forms/directives/if-input-filled/if-input-filled.directive.mjs +3 -3
  84. package/esm2022/lib/components/forms/directives/input/input.directive.mjs +3 -3
  85. package/esm2022/lib/components/forms/directives/input-prefix/input-prefix.directive.mjs +3 -3
  86. package/esm2022/lib/components/forms/directives/input-suffix/input-suffix.directive.mjs +3 -3
  87. package/esm2022/lib/components/forms/directives/native-input-ref/native-input-ref.directive.mjs +3 -3
  88. package/esm2022/lib/components/forms/directives/static-form-field/static-form-field.directive.mjs +3 -3
  89. package/esm2022/lib/components/forms/directives/static-form-group/static-form-group.directive.mjs +3 -3
  90. package/esm2022/lib/components/forms/directives/writeable-input/writeable-input.directive.mjs +3 -3
  91. package/esm2022/lib/components/forms/services/default-validator-errors.service.mjs +3 -3
  92. package/esm2022/lib/components/forms/services/form-field-state.service.mjs +3 -3
  93. package/esm2022/lib/components/forms/services/form-group-state.service.mjs +3 -3
  94. package/esm2022/lib/components/forms/services/input-state.service.mjs +3 -3
  95. package/esm2022/lib/components/forms/utils/decorated-form-field.base.mjs +3 -3
  96. package/esm2022/lib/components/forms/utils/decorated-input.base.mjs +3 -3
  97. package/esm2022/lib/components/forms/utils/input.base.mjs +3 -3
  98. package/esm2022/lib/components/icons/chevron-icon/chevron-icon.component.mjs +3 -3
  99. package/esm2022/lib/components/masonry/components/masonry/masonry.component.mjs +3 -3
  100. package/esm2022/lib/components/masonry/partials/masonry-item/masonry-item.component.mjs +3 -3
  101. package/esm2022/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/bottom-sheet-container.component.mjs +3 -3
  102. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/bottom-sheet-container-base.component.mjs +3 -3
  103. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/bottom-sheet-drag-handle.component.mjs +3 -3
  104. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-title/bottom-sheet-title.directive.mjs +3 -3
  105. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-base.service.mjs +3 -3
  106. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-swipe-handler.service.mjs +3 -3
  107. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet.service.mjs +3 -3
  108. package/esm2022/lib/components/overlay/components/dialog/components/dialog-container/dialog-container.component.mjs +3 -3
  109. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-close/dialog-close.directive.mjs +3 -3
  110. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-container-base/dialog-container-base.component.mjs +3 -3
  111. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-title/dialog-title.directive.mjs +3 -3
  112. package/esm2022/lib/components/overlay/components/dialog/services/dialog-base.service.mjs +3 -3
  113. package/esm2022/lib/components/overlay/components/dialog/services/dialog.service.mjs +3 -3
  114. package/esm2022/lib/components/overlay/components/menu/context-menu-trigger.mjs +6 -6
  115. package/esm2022/lib/components/overlay/components/menu/menu-aim.mjs +6 -6
  116. package/esm2022/lib/components/overlay/components/menu/menu-bar.mjs +3 -3
  117. package/esm2022/lib/components/overlay/components/menu/menu-base.mjs +3 -3
  118. package/esm2022/lib/components/overlay/components/menu/menu-group.mjs +3 -3
  119. package/esm2022/lib/components/overlay/components/menu/menu-item-checkbox.mjs +3 -3
  120. package/esm2022/lib/components/overlay/components/menu/menu-item-radio.mjs +3 -3
  121. package/esm2022/lib/components/overlay/components/menu/menu-item-selectable.mjs +3 -3
  122. package/esm2022/lib/components/overlay/components/menu/menu-item.mjs +3 -3
  123. package/esm2022/lib/components/overlay/components/menu/menu-module.mjs +4 -4
  124. package/esm2022/lib/components/overlay/components/menu/menu-stack.mjs +3 -3
  125. package/esm2022/lib/components/overlay/components/menu/menu-trigger-base.mjs +3 -3
  126. package/esm2022/lib/components/overlay/components/menu/menu-trigger.mjs +3 -3
  127. package/esm2022/lib/components/overlay/components/menu/menu.mjs +3 -3
  128. package/esm2022/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.mjs +9 -8
  129. package/esm2022/lib/components/overlay/components/toggletip/constants/toggletip.constants.mjs +5 -4
  130. package/esm2022/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.mjs +6 -4
  131. package/esm2022/lib/components/overlay/components/toggletip/types/toggletip.types.mjs +1 -1
  132. package/esm2022/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.mjs +9 -8
  133. package/esm2022/lib/components/overlay/components/tooltip/constants/tooltip.constants.mjs +5 -4
  134. package/esm2022/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.mjs +6 -4
  135. package/esm2022/lib/components/overlay/components/tooltip/types/tooltip.types.mjs +1 -1
  136. package/esm2022/lib/components/overlay/services/dynamic-overlay.service.mjs +3 -3
  137. package/esm2022/lib/components/pagination/components/pagination/pagination.component.mjs +3 -3
  138. package/esm2022/lib/components/pagination/partials/pagination-link/pagination-link.directive.mjs +3 -3
  139. package/esm2022/lib/components/pagination/services/pagination-head.service.mjs +3 -3
  140. package/esm2022/lib/components/picture/picture-data.directive.mjs +3 -3
  141. package/esm2022/lib/components/picture/picture.component.mjs +3 -3
  142. package/esm2022/lib/components/progress-spinner/progress-spinner.component.mjs +3 -3
  143. package/esm2022/lib/components/query-error/components/query-error/query-error.component.mjs +3 -3
  144. package/esm2022/lib/components/query-error/directives/query-error/query-error.directive.mjs +3 -3
  145. package/esm2022/lib/components/scrollable/components/scrollable/scrollable.component.mjs +3 -3
  146. package/esm2022/lib/components/skeleton/components/skeleton/skeleton.component.mjs +3 -3
  147. package/esm2022/lib/components/skeleton/partials/skeleton-item/skeleton-item.component.mjs +3 -3
  148. package/esm2022/lib/components/sort/components/sort-header/sort-header.component.mjs +3 -3
  149. package/esm2022/lib/components/sort/partials/sort/sort.directive.mjs +3 -3
  150. package/esm2022/lib/components/sort/services/sort-header-intl.mjs +3 -3
  151. package/esm2022/lib/components/table/components/table/table.component.mjs +3 -3
  152. package/esm2022/lib/components/table/partials/cells/cell/cell.directive.mjs +3 -3
  153. package/esm2022/lib/components/table/partials/cells/cell-def/cell-def.directive.mjs +3 -3
  154. package/esm2022/lib/components/table/partials/cells/column-def/column-def.directive.mjs +3 -3
  155. package/esm2022/lib/components/table/partials/cells/footer-cell/footer-cell.directive.mjs +3 -3
  156. package/esm2022/lib/components/table/partials/cells/footer-cell-def/footer-cell-def.directive.mjs +3 -3
  157. package/esm2022/lib/components/table/partials/cells/header-cell/header-cell.directive.mjs +3 -3
  158. package/esm2022/lib/components/table/partials/cells/header-cell-def/header-cell-def.directive.mjs +3 -3
  159. package/esm2022/lib/components/table/partials/cells/text-column/text-column.component.mjs +3 -3
  160. package/esm2022/lib/components/table/partials/rows/footer-row/footer-row.component.mjs +3 -3
  161. package/esm2022/lib/components/table/partials/rows/footer-row-def/footer-row-def.directive.mjs +3 -3
  162. package/esm2022/lib/components/table/partials/rows/header-row/header-row.component.mjs +3 -3
  163. package/esm2022/lib/components/table/partials/rows/header-row-def/header-row-def.directive.mjs +3 -3
  164. package/esm2022/lib/components/table/partials/rows/no-data-row/no-data-row.directive.mjs +3 -3
  165. package/esm2022/lib/components/table/partials/rows/recycle-rows/recycle-rows.directive.mjs +3 -3
  166. package/esm2022/lib/components/table/partials/rows/row/row.component.mjs +3 -3
  167. package/esm2022/lib/components/table/partials/rows/row-def/row-def.directive.mjs +3 -3
  168. package/esm2022/lib/components/table/partials/table-busy/table-busy.directive.mjs +3 -3
  169. package/esm2022/lib/components/table/partials/table-busy-outlet/table-busy-outlet.directive.mjs +3 -3
  170. package/esm2022/lib/components/tabs/components/inline-tabs/inline-tabs.component.mjs +3 -3
  171. package/esm2022/lib/components/tabs/components/nav-tabs/nav-tabs.component.mjs +3 -3
  172. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab/inline-tab.component.mjs +3 -3
  173. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body/inline-tab-body.component.mjs +3 -3
  174. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body-host/inline-tab-body-host.directive.mjs +3 -3
  175. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-content/inline-tab-content.directive.mjs +3 -3
  176. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-header/inline-tab-header.component.mjs +3 -3
  177. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label/inline-tab-label.directive.mjs +3 -3
  178. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/inline-tab-label-wrapper.directive.mjs +3 -3
  179. package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tab-link/nav-tab-link.directive.mjs +3 -3
  180. package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/nav-tabs-outlet.component.mjs +3 -3
  181. package/esm2022/lib/components/tabs/utils/active-tab-underline.util.mjs +3 -3
  182. package/esm2022/lib/components/tabs/utils/paginated-tab-header.directive.mjs +3 -3
  183. package/esm2022/lib/public-api.mjs +2 -1
  184. package/esm2022/lib/services/swipe-handler.service.mjs +3 -3
  185. package/esm2022/lib/utils/floating-ui.utils.mjs +15 -0
  186. package/esm2022/lib/utils/public-api.mjs +2 -0
  187. package/fesm2022/ethlete-cdk.mjs +583 -564
  188. package/fesm2022/ethlete-cdk.mjs.map +1 -1
  189. package/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.d.ts +0 -1
  190. package/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.d.ts +2 -1
  191. package/lib/components/overlay/components/toggletip/types/toggletip.types.d.ts +12 -9
  192. package/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.d.ts +2 -1
  193. package/lib/components/overlay/components/tooltip/types/tooltip.types.d.ts +12 -9
  194. package/lib/public-api.d.ts +1 -0
  195. package/lib/utils/floating-ui.utils.d.ts +2 -0
  196. package/lib/utils/public-api.d.ts +1 -0
  197. package/package.json +4 -4
  198. package/src/lib/styles/floating-element.css +10 -0
  199. package/src/lib/styles/index.css +1 -0
@@ -101,7 +101,8 @@ export class SelectDirective {
101
101
  });
102
102
  this.trackByFn = (_, item) => item.id;
103
103
  this._animatedOverlay.placement = 'bottom';
104
- this._animatedOverlay.allowedAutoPlacements = ['bottom', 'top'];
104
+ this._animatedOverlay.fallbackPlacements = ['bottom', 'top'];
105
+ this._animatedOverlay.autoResize = true;
105
106
  this._selectField._bindings.push({
106
107
  attribute: 'class.et-select-field--open',
107
108
  observable: this._isOpen$,
@@ -427,15 +428,15 @@ export class SelectDirective {
427
428
  }
428
429
  this._setActiveOption(null);
429
430
  }
430
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SelectDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
431
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.5", type: SelectDirective, isStandalone: true, inputs: { multiple: "multiple", emptyText: "emptyText" }, providers: [
431
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SelectDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
432
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: SelectDirective, isStandalone: true, inputs: { multiple: "multiple", emptyText: "emptyText" }, providers: [
432
433
  {
433
434
  provide: SELECT_TOKEN,
434
435
  useExisting: SelectDirective,
435
436
  },
436
437
  ], queries: [{ propertyName: "_selectOptionsQueryList", predicate: SELECT_OPTION_TOKEN, descendants: true }], hostDirectives: [{ directive: i1.AnimatedOverlayDirective }], ngImport: i0 }); }
437
438
  }
438
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SelectDirective, decorators: [{
439
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SelectDirective, decorators: [{
439
440
  type: Directive,
440
441
  args: [{
441
442
  standalone: true,
@@ -455,4 +456,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
455
456
  type: ContentChildren,
456
457
  args: [SELECT_OPTION_TOKEN, { descendants: true }]
457
458
  }] } });
458
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9jb21wb25lbnRzL3NlbGVjdC9jb21wb25lbnRzL3NlbGVjdC9kaXJlY3RpdmVzL3NlbGVjdC9zZWxlY3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsQ0FBQyxFQUNELFVBQVUsRUFDVixHQUFHLEVBQ0gsS0FBSyxFQUNMLE1BQU0sRUFDTixJQUFJLEVBQ0osVUFBVSxFQUNWLFNBQVMsRUFDVCxPQUFPLEVBQ1AsV0FBVyxFQUNYLEtBQUssRUFDTCxRQUFRLEVBQ1IsY0FBYyxHQUNmLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsT0FBTyxFQUVMLGVBQWUsRUFDZixTQUFTLEVBQ1QsY0FBYyxFQUNkLEtBQUssRUFJTCxnQkFBZ0IsRUFDaEIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCx3QkFBd0IsRUFDeEIsY0FBYyxFQUNkLGFBQWEsRUFDYixzQkFBc0IsR0FDdkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQXlCLE1BQU0sa0JBQWtCLENBQUM7OztBQUU5RSw4REFBOEQ7QUFDOUQsTUFBTSxD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QGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcbiAgQSxcbiAgRE9XTl9BUlJPVyxcbiAgRU5ELFxuICBFTlRFUixcbiAgRVNDQVBFLFxuICBIT01FLFxuICBMRUZUX0FSUk9XLFxuICBQQUdFX0RPV04sXG4gIFBBR0VfVVAsXG4gIFJJR0hUX0FSUk9XLFxuICBTUEFDRSxcbiAgVVBfQVJST1csXG4gIGhhc01vZGlmaWVyS2V5LFxufSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBEaXJlY3RpdmUsXG4gIEluamVjdGlvblRva2VuLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBUZW1wbGF0ZVJlZixcbiAgVHJhY2tCeUZ1bmN0aW9uLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQW5pbWF0ZWRPdmVybGF5Q29tcG9uZW50QmFzZSxcbiAgQW5pbWF0ZWRPdmVybGF5RGlyZWN0aXZlLFxuICBUeXBlZFF1ZXJ5TGlzdCxcbiAgY3JlYXRlRGVzdHJveSxcbiAgY3JlYXRlUmVhY3RpdmVCaW5kaW5ncyxcbn0gZnJvbSAnQGV0aGxldGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZpcnN0VmFsdWVGcm9tLCBtYXAsIG9mLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElOUFVUX1RPS0VOIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBTRUxFQ1RfRklFTERfVE9LRU4gfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFNlbGVjdEJvZHlEaXJlY3RpdmUgfSBmcm9tICcuLi9zZWxlY3QtYm9keSc7XG5pbXBvcnQgeyBTRUxFQ1RfT1BUSU9OX1RPS0VOLCBTZWxlY3RPcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi9zZWxlY3Qtb3B0aW9uJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBjb25zdCBTRUxFQ1RfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48U2VsZWN0RGlyZWN0aXZlPGFueT4+KCdFVF9TRUxFQ1RfSU5QVVRfVE9LRU4nKTtcblxudHlwZSBTZWxlY3REaXJlY3RpdmVCb2R5Q29tcG9uZW50QmFzZSA9IEFuaW1hdGVkT3ZlcmxheUNvbXBvbmVudEJhc2UgJiB7XG4gIF9ib2R5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbDtcbiAgc2VsZWN0Qm9keTogU2VsZWN0Qm9keURpcmVjdGl2ZTtcbn07XG5cbmxldCB1bmlxdWVJZCA9IDA7XG5cbmludGVyZmFjZSBTZWxlY3RCb2R5Q29uZmlnPFQgZXh0ZW5kcyBTZWxlY3REaXJlY3RpdmVCb2R5Q29tcG9uZW50QmFzZT4ge1xuICBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VD47XG4gIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbn1cblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3REaXJlY3RpdmVzOiBbQW5pbWF0ZWRPdmVybGF5RGlyZWN0aXZlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogU0VMRUNUX1RPS0VOLFxuICAgICAgdXNlRXhpc3Rpbmc6IFNlbGVjdERpcmVjdGl2ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3REaXJlY3RpdmU8VCBleHRlbmRzIFNlbGVjdERpcmVjdGl2ZUJvZHlDb21wb25lbnRCYXNlPiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIHByaXZhdGUgX3NlbGVjdEJvZHlDb25maWc6IFNlbGVjdEJvZHlDb25maWc8VD4gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9hbmltYXRlZE92ZXJsYXkgPSBpbmplY3Q8QW5pbWF0ZWRPdmVybGF5RGlyZWN0aXZlPFQ+PihBbmltYXRlZE92ZXJsYXlEaXJlY3RpdmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IGNyZWF0ZURlc3Ryb3koKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbGl2ZUFubm91bmNlciA9IGluamVjdChMaXZlQW5ub3VuY2VyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2VsZWN0RmllbGQgPSBpbmplY3QoU0VMRUNUX0ZJRUxEX1RPS0VOKTtcbiAgcmVhZG9ubHkgaW5wdXQgPSBpbmplY3QoSU5QVVRfVE9LRU4pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdEJvZHlJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pc09wZW4kID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgQElucHV0KClcbiAgZ2V0IG11bHRpcGxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9tdWx0aXBsZSQudmFsdWU7XG4gIH1cbiAgc2V0IG11bHRpcGxlKHZhbHVlOiB1bmtub3duKSB7XG4gICAgdGhpcy5fbXVsdGlwbGUkLm5leHQoYm9vbGVhbkF0dHJpYnV0ZSh2YWx1ZSkpO1xuXG4gICAgdGhpcy5fbWlncmF0ZVNlbGVjdFZhbHVlKCk7XG4gIH1cbiAgcHJpdmF0ZSBfbXVsdGlwbGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgQElucHV0KClcbiAgZW1wdHlUZXh0Pzogc3RyaW5nO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oU0VMRUNUX09QVElPTl9UT0tFTiwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBwcml2YXRlIHNldCBfc2VsZWN0T3B0aW9uc1F1ZXJ5TGlzdCh2YWx1ZTogVHlwZWRRdWVyeUxpc3Q8U2VsZWN0T3B0aW9uRGlyZWN0aXZlPikge1xuICAgIHRoaXMuX3NlbGVjdE9wdGlvbnNRdWVyeUxpc3QkLm5leHQodmFsdWUpO1xuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdE9wdGlvbnNRdWVyeUxpc3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUeXBlZFF1ZXJ5TGlzdDxTZWxlY3RPcHRpb25EaXJlY3RpdmU+IHwgbnVsbD4obnVsbCk7XG5cbiAgcmVhZG9ubHkgc2VsZWN0T3B0aW9ucyQgPSB0aGlzLl9zZWxlY3RPcHRpb25zUXVlcnlMaXN0JC5waXBlKFxuICAgIHN3aXRjaE1hcCgocXVlcnlMaXN0KSA9PiBxdWVyeUxpc3Q/LmNoYW5nZXMucGlwZShzdGFydFdpdGgocXVlcnlMaXN0KSkgPz8gb2YobnVsbCkpLFxuICAgIHN3aXRjaE1hcCgocXVlcnlMaXN0KSA9PiB7XG4gICAgICBpZiAoIXF1ZXJ5TGlzdCkgcmV0dXJuIG9mKG51bGwpO1xuXG4gICAgICBjb25zdCBpdGVtcyA9IHF1ZXJ5TGlzdFxuICAgICAgICAuZmlsdGVyKChpKTogaSBpcyBTZWxlY3RPcHRpb25EaXJlY3RpdmUgPT4gISFpKVxuICAgICAgICAubWFwKChvcHQpID0+XG4gICAgICAgICAgY29tYmluZUxhdGVzdChbb3B0LmlzU2VsZWN0ZWQkLCBvcHQuaXNBY3RpdmUkXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW3NlbGVjdGVkLCBhY3RpdmVdKSA9PiAoeyBvcHQsIHNlbGVjdGVkLCBhY3RpdmUgfSkpLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG5cbiAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KGl0ZW1zID8/IG9mKG51bGwpKTtcbiAgICB9KSxcbiAgKTtcblxuICByZWFkb25seSBhY3RpdmVPcHRpb24kID0gdGhpcy5zZWxlY3RPcHRpb25zJC5waXBlKFxuICAgIG1hcCgob3B0aW9ucykgPT4ge1xuICAgICAgaWYgKCFvcHRpb25zKSByZXR1cm4gbnVsbDtcblxuICAgICAgcmV0dXJuIG9wdGlvbnMuZmluZCgob3B0aW9uKSA9PiBvcHRpb24uYWN0aXZlKSA/PyBudWxsO1xuICAgIH0pLFxuICApO1xuXG4gIHJlYWRvbmx5IHNlbGVjdGVkT3B0aW9ucyQgPSB0aGlzLnNlbGVjdE9wdGlvbnMkLnBpcGUoXG4gICAgbWFwKChvcHRpb25zKSA9PiB7XG4gICAgICBpZiAoIW9wdGlvbnMpIHJldHVybiBudWxsO1xuXG4gICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSBvcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PiBvcHRpb24uc2VsZWN0ZWQpO1xuXG4gICAgICBpZiAoIXNlbGVjdGVkT3B0aW9ucy5sZW5ndGgpIHJldHVybiBudWxsO1xuXG4gICAgICBjb25zdCBpbnB1dFZhbHVlID0gdGhpcy5pbnB1dC52YWx1ZTtcblxuICAgICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgQXJyYXkuaXNBcnJheShpbnB1dFZhbHVlKSkge1xuICAgICAgICAvLyBzb3J0IHNlbGVjdGVkIG9wdGlvbnMgYnkgdGhlIG9yZGVyIG9mIHRoZSBpbnB1dCB2YWx1ZVxuICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnNNYXAgPSBuZXcgTWFwKHNlbGVjdGVkT3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gW29wdGlvbi5vcHQudmFsdWUsIG9wdGlvbl0pKTtcbiAgICAgICAgcmV0dXJuIGlucHV0VmFsdWVcbiAgICAgICAgICAubWFwKCh2YWx1ZSkgPT4gc2VsZWN0ZWRPcHRpb25zTWFwLmdldCh2YWx1ZSkpXG4gICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgb3B0aW9uLFxuICAgICAgICAgICAgKTogb3B0aW9uIGlzIHtcbiAgICAgICAgICAgICAgb3B0OiBTZWxlY3RPcHRpb25EaXJlY3RpdmU7XG4gICAgICAgICAgICAgIHNlbGVjdGVkOiBib29sZWFuO1xuICAgICAgICAgICAgICBhY3RpdmU6IGJvb2xlYW47XG4gICAgICAgICAgICB9ID0+ICEhb3B0aW9uLFxuICAgICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzZWxlY3RlZE9wdGlvbnM7XG4gICAgfSksXG4gICk7XG5cbiAgcmVhZG9ubHkgc2VsZWN0ZWRPcHRpb24kID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMkLnBpcGUobWFwKChvcHRpb25zKSA9PiBvcHRpb25zPy5bMF0gPz8gbnVsbCkpO1xuXG4gIHJlYWRvbmx5IHNlbGVjdEJvZHlJZCQgPSB0aGlzLl9zZWxlY3RCb2R5SWQkLmFzT2JzZXJ2YWJsZSgpO1xuICByZWFkb25seSBpc09wZW4kID0gdGhpcy5faXNPcGVuJC5hc09ic2VydmFibGUoKTtcbiAgcmVhZG9ubHkgbXVsdGlwbGUkID0gdGhpcy5fbXVsdGlwbGUkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHJlYWRvbmx5IHNlbGVjdEN1cnJlbnRWYWx1ZUlkID0gYGV0LXNlbGVjdC1jdXJyZW50LXZhbHVlLSR7dW5pcXVlSWQrK31gO1xuXG4gIHJlYWRvbmx5IGFyaWFWaWV3VmFsdWUkID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChvcHRpb25zKSA9PiB7XG4gICAgICBpZiAoIW9wdGlvbnM/Lmxlbmd0aCkgcmV0dXJuIG9mKG51bGwpO1xuXG4gICAgICBjb25zdCB2aWV3VmFsdWVzID0gb3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLm9wdC52aWV3VmFsdWUkKTtcblxuICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3Qodmlld1ZhbHVlcyk7XG4gICAgfSksXG4gICAgbWFwKCh2aWV3VmFsdWVzKSA9PiB7XG4gICAgICBpZiAoIXZpZXdWYWx1ZXMpIHJldHVybiBudWxsO1xuXG4gICAgICByZXR1cm4gdmlld1ZhbHVlcy5qb2luKCcsICcpO1xuICAgIH0pLFxuICApO1xuXG4gIHJlYWRvbmx5IGFjdGl2ZURlc2NlbmRhbnQkID0gY29tYmluZUxhdGVzdChbdGhpcy5pc09wZW4kLCB0aGlzLmFjdGl2ZU9wdGlvbiRdKS5waXBlKFxuICAgIG1hcCgoW2lzT3BlbiwgYWN0aXZlT3B0aW9uXSkgPT4ge1xuICAgICAgaWYgKCFpc09wZW4gfHwgIWFjdGl2ZU9wdGlvbikgcmV0dXJuIG51bGw7XG5cbiAgICAgIHJldHVybiBhY3RpdmVPcHRpb24ub3B0LmlkO1xuICAgIH0pLFxuICApO1xuXG4gIHJlYWRvbmx5IG93bnMkID0gY29tYmluZUxhdGVzdChbdGhpcy5pc09wZW4kLCB0aGlzLnNlbGVjdEJvZHlJZCRdKS5waXBlKFxuICAgIG1hcCgoW2lzT3Blbiwgc2VsZWN0Qm9keUlkXSkgPT4ge1xuICAgICAgaWYgKCFpc09wZW4gfHwgIXNlbGVjdEJvZHlJZCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHNlbGVjdEJvZHlJZDtcbiAgICB9KSxcbiAgKTtcblxuICByZWFkb25seSBsYWJlbGxlZEJ5JCA9IHRoaXMuaW5wdXQubGFiZWxJZCQucGlwZShcbiAgICBtYXAoKGxhYmVsSWQpID0+IHtcbiAgICAgIGNvbnN0IGlkcyA9IFtsYWJlbElkLCB0aGlzLnNlbGVjdEN1cnJlbnRWYWx1ZUlkXTtcblxuICAgICAgcmV0dXJuIGlkcy5maWx0ZXIoKGlkKSA9PiAhIWlkKS5qb2luKCcgJyk7XG4gICAgfSksXG4gICk7XG5cbiAgcmVhZG9ubHkgX2JpbmRpbmdzID0gY3JlYXRlUmVhY3RpdmVCaW5kaW5ncyhcbiAgICB7XG4gICAgICBhdHRyaWJ1dGU6ICdjbGFzcy5ldC1zZWxlY3QtLWlzLW9wZW4nLFxuICAgICAgb2JzZXJ2YWJsZTogdGhpcy5pc09wZW4kLFxuICAgIH0sXG4gICAge1xuICAgICAgYXR0cmlidXRlOiAnY2xhc3MuZXQtc2VsZWN0LS1kaXNhYmxlZCcsXG4gICAgICBvYnNlcnZhYmxlOiB0aGlzLmlucHV0LmRpc2FibGVkJCxcbiAgICB9LFxuICApO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5wbGFjZW1lbnQgPSAnYm90dG9tJztcbiAgICB0aGlzLl9hbmltYXRlZE92ZXJsYXkuYWxsb3dlZEF1dG9QbGFjZW1lbnRzID0gWydib3R0b20nLCAndG9wJ107XG5cbiAgICB0aGlzLl9zZWxlY3RGaWVsZC5fYmluZGluZ3MucHVzaCh7XG4gICAgICBhdHRyaWJ1dGU6ICdjbGFzcy5ldC1zZWxlY3QtZmllbGQtLW9wZW4nLFxuICAgICAgb2JzZXJ2YWJsZTogdGhpcy5faXNPcGVuJCxcbiAgICB9KTtcblxuICAgIHRoaXMuX3NlbGVjdEZpZWxkLl9iaW5kaW5ncy5wdXNoKHtcbiAgICAgIGF0dHJpYnV0ZTogJ2NsYXNzLmV0LXNlbGVjdC1maWVsZC0tbXVsdGlwbGUnLFxuICAgICAgb2JzZXJ2YWJsZTogdGhpcy5tdWx0aXBsZSQsXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl91bm1vdW50U2VsZWN0Qm9keU9uRGlzYWJsZSgpO1xuICAgIHRoaXMuX21pZ3JhdGVTZWxlY3RWYWx1ZSgpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3NldFNlbGVjdGVkT3B0aW9uQWN0aXZlKCk7XG4gIH1cblxuICB0cmFja0J5Rm46IFRyYWNrQnlGdW5jdGlvbjxTZWxlY3RPcHRpb25EaXJlY3RpdmU+ID0gKF8sIGl0ZW0pID0+IGl0ZW0uaWQ7XG5cbiAgbW91bnRTZWxlY3RCb2R5KCkge1xuICAgIGlmICghdGhpcy5fc2VsZWN0Qm9keUNvbmZpZykgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5pc01vdW50ZWQgfHwgdGhpcy5pbnB1dC5kaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgdGhpcy5fc2V0U2VsZWN0ZWRPcHRpb25BY3RpdmUoKTtcblxuICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5fYW5pbWF0ZWRPdmVybGF5Lm1vdW50KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcy5fc2VsZWN0Qm9keUNvbmZpZy5jb21wb25lbnQsXG4gICAgICBtaXJyb3JXaWR0aDogdHJ1ZSxcbiAgICAgIGRhdGE6IHsgX2JvZHlUZW1wbGF0ZTogdGhpcy5fc2VsZWN0Qm9keUNvbmZpZy50ZW1wbGF0ZSB9IGFzIFBhcnRpYWw8VD4sXG4gICAgfSk7XG5cbiAgICBpZiAoIWluc3RhbmNlKSByZXR1cm47XG5cbiAgICB0aGlzLl9zZWxlY3RCb2R5SWQkLm5leHQoaW5zdGFuY2Uuc2VsZWN0Qm9keS5pZCk7XG4gICAgdGhpcy5faXNPcGVuJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgdW5tb3VudFNlbGVjdEJvZHkoKSB7XG4gICAgaWYgKCF0aGlzLl9hbmltYXRlZE92ZXJsYXkuaXNNb3VudGVkKSByZXR1cm47XG5cbiAgICB0aGlzLl9hbmltYXRlZE92ZXJsYXkudW5tb3VudCgpO1xuXG4gICAgdGhpcy5fc2VsZWN0Qm9keUlkJC5uZXh0KG51bGwpO1xuICAgIHRoaXMuX2lzT3BlbiQubmV4dChmYWxzZSk7XG4gIH1cblxuICBzZXRWYWx1ZSh2YWx1ZTogdW5rbm93bikge1xuICAgIHRoaXMuaW5wdXQuX3VwZGF0ZVZhbHVlKHZhbHVlKTtcblxuICAgIHRoaXMuaW5wdXQuX21hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLmlucHV0Ll9zZXRTaG91bGREaXNwbGF5RXJyb3IodHJ1ZSk7XG4gIH1cblxuICBoYW5kbGVLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuX2lzT3BlbiQudmFsdWUpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUtleURvd25Jbk9wZW5TdGF0ZShldmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2hhbmRsZUtleURvd25JbkNsb3NlZFN0YXRlKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBzZXRTZWxlY3RCb2R5KGNvbmZpZzogU2VsZWN0Qm9keUNvbmZpZzxUPikge1xuICAgIHRoaXMuX3NlbGVjdEJvZHlDb25maWcgPSBjb25maWc7XG4gIH1cblxuICByZW1vdmVPcHRpb25Gcm9tU2VsZWN0aW9uKG9wdGlvbjogU2VsZWN0T3B0aW9uRGlyZWN0aXZlKSB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlIHx8ICFBcnJheS5pc0FycmF5KHRoaXMuaW5wdXQudmFsdWUpKSByZXR1cm47XG5cbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuaW5wdXQudmFsdWUuZmlsdGVyKCh2KSA9PiB2ICE9PSBvcHRpb24udmFsdWUpO1xuXG4gICAgdGhpcy5zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBfY29udHJvbFRvdWNoZWQoKSB7XG4gICAgdGhpcy5pbnB1dC5fbWFya0FzVG91Y2hlZCgpO1xuICAgIHRoaXMuaW5wdXQuX3NldFNob3VsZERpc3BsYXlFcnJvcih0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VubW91bnRTZWxlY3RCb2R5T25EaXNhYmxlKCkge1xuICAgIHRoaXMuaW5wdXQuZGlzYWJsZWQkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChkaXNhYmxlZCkgPT4ge1xuICAgICAgICAgIGlmICghZGlzYWJsZWQpIHJldHVybjtcblxuICAgICAgICAgIHRoaXMudW5tb3VudFNlbGVjdEJvZHkoKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVLZXlEb3duSW5DbG9zZWRTdGF0ZShldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGNvbnN0IGtleUNvZGUgPSBldmVudC5rZXlDb2RlO1xuICAgIGNvbnN0IGlzQXJyb3dLZXkgPVxuICAgICAga2V5Q29kZSA9PT0gRE9XTl9BUlJPVyB8fCBrZXlDb2RlID09PSBVUF9BUlJPVyB8fCBrZXlDb2RlID09PSBMRUZUX0FSUk9XIHx8IGtleUNvZGUgPT09IFJJR0hUX0FSUk9XO1xuXG4gICAgY29uc3QgaXNPcGVuS2V5ID0ga2V5Q29kZSA9PT0gRU5URVIgfHwga2V5Q29kZSA9PT0gU1BBQ0U7XG5cbiAgICBpZiAoKGlzT3BlbktleSAmJiAhaGFzTW9kaWZpZXJLZXkoZXZlbnQpKSB8fCAoKHRoaXMubXVsdGlwbGUgfHwgZXZlbnQuYWx0S2V5KSAmJiBpc0Fycm93S2V5KSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMubW91bnRTZWxlY3RCb2R5KCk7XG4gICAgfSBlbHNlIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgc3dpdGNoIChrZXlDb2RlKSB7XG4gICAgICAgIGNhc2UgRE9XTl9BUlJPVzpcbiAgICAgICAgICB0aGlzLl9zZWxlY3RPcHRpb25CeU9mZnNldCgxLCB0cnVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBVUF9BUlJPVzpcbiAgICAgICAgICB0aGlzLl9zZWxlY3RPcHRpb25CeU9mZnNldCgtMSwgdHJ1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgSE9NRTpcbiAgICAgICAgICB0aGlzLl9zZWxlY3RGaXJzdE9wdGlvbih0cnVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFTkQ6XG4gICAgICAgICAgdGhpcy5fc2VsZWN0TGFzdE9wdGlvbih0cnVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBQQUdFX1VQOlxuICAgICAgICAgIHRoaXMuX3NlbGVjdE9wdGlvbkJ5T2Zmc2V0KC0xMCwgdHJ1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgUEFHRV9ET1dOOlxuICAgICAgICAgIHRoaXMuX3NlbGVjdE9wdGlvbkJ5T2Zmc2V0KDEwLCB0cnVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMubXVsdGlwbGUgJiYgaXNBcnJvd0tleSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMubW91bnRTZWxlY3RCb2R5KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfaGFuZGxlS2V5RG93bkluT3BlblN0YXRlKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY29uc3Qga2V5Q29kZSA9IGV2ZW50LmtleUNvZGU7XG4gICAgY29uc3QgaXNBcnJvd0tleSA9IGtleUNvZGUgPT09IERPV05fQVJST1cgfHwga2V5Q29kZSA9PT0gVVBfQVJST1c7XG5cbiAgICBpZiAoaXNBcnJvd0tleSAmJiBldmVudC5hbHRLZXkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnVubW91bnRTZWxlY3RCb2R5KCk7XG4gICAgfSBlbHNlIGlmIChrZXlDb2RlID09PSBFU0NBUEUgJiYgIWhhc01vZGlmaWVyS2V5KGV2ZW50KSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMudW5tb3VudFNlbGVjdEJvZHkoKTtcbiAgICB9IGVsc2UgaWYgKGtleUNvZGUgPT09IEVOVEVSIHx8IGtleUNvZGUgPT09IFNQQUNFKSB7XG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgICB0aGlzLl90b2dnbGVBY3RpdmVPcHRpb25TZWxlY3Rpb24oKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3NldEFjdGl2ZU9wdGlvblNlbGVjdGVkKCk7XG4gICAgICB9XG5cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm11bHRpcGxlICYmIGtleUNvZGUgPT09IEEgJiYgZXZlbnQuY3RybEtleSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuX3RvZ2dsZVNlbGVjdGlvbk9mQWxsT3B0aW9ucygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzd2l0Y2ggKGtleUNvZGUpIHtcbiAgICAgICAgY2FzZSBET1dOX0FSUk9XOlxuICAgICAgICAgIHRoaXMuX2FjdGl2YXRlT3B0aW9uQnlPZmZzZXQoMSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgVVBfQVJST1c6XG4gICAgICAgICAgdGhpcy5fYWN0aXZhdGVPcHRpb25CeU9mZnNldCgtMSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgSE9NRTpcbiAgICAgICAgICB0aGlzLl9hY3RpdmF0ZUZpcnN0T3B0aW9uKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRU5EOlxuICAgICAgICAgIHRoaXMuX2FjdGl2YXRlTGFzdE9wdGlvbigpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFBBR0VfVVA6XG4gICAgICAgICAgdGhpcy5fYWN0aXZhdGVPcHRpb25CeU9mZnNldCgtMTApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFBBR0VfRE9XTjpcbiAgICAgICAgICB0aGlzLl9hY3RpdmF0ZU9wdGlvbkJ5T2Zmc2V0KDEwKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9zZXRBY3RpdmVPcHRpb24ob3B0aW9uOiBTZWxlY3RPcHRpb25EaXJlY3RpdmUgfCBudWxsKSB7XG4gICAgY29uc3QgY3VycmVudEFjdGl2ZU9wdGlvbiA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuYWN0aXZlT3B0aW9uJCk7XG5cbiAgICBpZiAoY3VycmVudEFjdGl2ZU9wdGlvbj8ub3B0ID09PSBvcHRpb24pIHJldHVybiBmYWxzZTtcblxuICAgIGN1cnJlbnRBY3RpdmVPcHRpb24/Lm9wdC5fc2V0QWN0aXZlKGZhbHNlKTtcblxuICAgIGlmIChvcHRpb24pIHtcbiAgICAgIG9wdGlvbi5fc2V0QWN0aXZlKHRydWUpO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfYWRkQWN0aXZlT3B0aW9uVG9TZWxlY3Rpb24oKSB7XG4gICAgY29uc3QgYWN0aXZlT3B0aW9uID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5hY3RpdmVPcHRpb24kKTtcblxuICAgIGlmICghYWN0aXZlT3B0aW9uIHx8IGFjdGl2ZU9wdGlvbi5vcHQuZGlzYWJsZWQgfHwgYWN0aXZlT3B0aW9uLnNlbGVjdGVkKSByZXR1cm47XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5pbnB1dC52YWx1ZSkpIHtcbiAgICAgIHRoaXMuc2V0VmFsdWUoW2FjdGl2ZU9wdGlvbi5vcHQudmFsdWVdKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNldFZhbHVlKFsuLi50aGlzLmlucHV0LnZhbHVlLCBhY3RpdmVPcHRpb24ub3B0LnZhbHVlXSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9yZW1vdmVBY3RpdmVPcHRpb25Gcm9tU2VsZWN0aW9uKCkge1xuICAgIGNvbnN0IGFjdGl2ZU9wdGlvbiA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuYWN0aXZlT3B0aW9uJCk7XG5cbiAgICBpZiAoIWFjdGl2ZU9wdGlvbiB8fCBhY3RpdmVPcHRpb24ub3B0LmRpc2FibGVkIHx8ICFhY3RpdmVPcHRpb24uc2VsZWN0ZWQpIHJldHVybjtcblxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLmlucHV0LnZhbHVlKSkge1xuICAgICAgdGhpcy5zZXRWYWx1ZShbXSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZXRWYWx1ZSh0aGlzLmlucHV0LnZhbHVlLmZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSBhY3RpdmVPcHRpb24ub3B0LnZhbHVlKSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF90b2dnbGVTZWxlY3Rpb25PZkFsbE9wdGlvbnMoKSB7XG4gICAgY29uc3QgYWxsT3B0aW9ucyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuc2VsZWN0T3B0aW9ucyQpO1xuXG4gICAgY29uc3QgaGFzRGVzZWxlY3RlZE9wdGlvbiA9IGFsbE9wdGlvbnM/LnNvbWUoKG9wdCkgPT4gIW9wdC5vcHQuZGlzYWJsZWQgJiYgIW9wdC5zZWxlY3RlZCk7XG5cbiAgICBpZiAoaGFzRGVzZWxlY3RlZE9wdGlvbikge1xuICAgICAgdGhpcy5fc2VsZWN0QWxsT3B0aW9ucygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9kZXNlbGVjdEFsbE9wdGlvbnMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9zZWxlY3RBbGxPcHRpb25zKCkge1xuICAgIGNvbnN0IGFsbE9wdGlvbnMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnNlbGVjdE9wdGlvbnMkKTtcblxuICAgIGlmICghYWxsT3B0aW9ucykgcmV0dXJuO1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zID0gYWxsT3B0aW9ucy5maWx0ZXIoKG9wdCkgPT4gIW9wdC5vcHQuZGlzYWJsZWQpLm1hcCgob3B0KSA9PiBvcHQub3B0LnZhbHVlKTtcblxuICAgIHRoaXMuc2V0VmFsdWUoc2VsZWN0ZWRPcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2Rlc2VsZWN0QWxsT3B0aW9ucygpIHtcbiAgICB0aGlzLnNldFZhbHVlKFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3RvZ2dsZUFjdGl2ZU9wdGlvblNlbGVjdGlvbigpIHtcbiAgICBjb25zdCBhY3RpdmVPcHRpb24gPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmFjdGl2ZU9wdGlvbiQpO1xuXG4gICAgaWYgKCFhY3RpdmVPcHRpb24pIHJldHVybjtcblxuICAgIGlmIChhY3RpdmVPcHRpb24uc2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuX3JlbW92ZUFjdGl2ZU9wdGlvbkZyb21TZWxlY3Rpb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fYWRkQWN0aXZlT3B0aW9uVG9TZWxlY3Rpb24oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9zZXRBY3RpdmVPcHRpb25TZWxlY3RlZCgpIHtcbiAgICBjb25zdCBhY3RpdmVPcHRpb24gPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmFjdGl2ZU9wdGlvbiQpO1xuXG4gICAgaWYgKCFhY3RpdmVPcHRpb24gfHwgYWN0aXZlT3B0aW9uLm9wdC5kaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgdGhpcy5fc2V0U2VsZWN0ZWRPcHRpb24oYWN0aXZlT3B0aW9uLm9wdCk7XG5cbiAgICB0aGlzLnVubW91bnRTZWxlY3RCb2R5KCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9zZXRTZWxlY3RlZE9wdGlvbkFjdGl2ZSgpIHtcbiAgICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuc2VsZWN0ZWRPcHRpb24kKTtcblxuICAgIGlmICghc2VsZWN0ZWRPcHRpb24pIHJldHVybjtcblxuICAgIHRoaXMuX3NldEFjdGl2ZU9wdGlvbihzZWxlY3RlZE9wdGlvbi5vcHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfc2V0U2VsZWN0ZWRPcHRpb24ob3B0aW9uOiBTZWxlY3RPcHRpb25EaXJlY3RpdmUgfCBudWxsKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnNlbGVjdGVkT3B0aW9uJCk7XG5cbiAgICBpZiAoc2VsZWN0ZWRPcHRpb24gPT09IG9wdGlvbikgcmV0dXJuIGZhbHNlO1xuXG4gICAgdGhpcy5fc2V0QWN0aXZlT3B0aW9uKG9wdGlvbik7XG5cbiAgICB0aGlzLnNldFZhbHVlKG9wdGlvbj8udmFsdWUgPz8gbnVsbCk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3NlbGVjdEZpcnN0T3B0aW9uKGFubm91bmNlOiBib29sZWFuKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuc2VsZWN0T3B0aW9ucyQpO1xuXG4gICAgaWYgKCFvcHRpb25zKSByZXR1cm47XG5cbiAgICBjb25zdCBmaXJzdE9wdGlvbiA9IG9wdGlvbnNbMF0/Lm9wdDtcblxuICAgIGlmICghZmlyc3RPcHRpb24pIHJldHVybjtcblxuICAgIGlmICghdGhpcy5fc2V0U2VsZWN0ZWRPcHRpb24oZmlyc3RPcHRpb24pKSByZXR1cm47XG5cbiAgICBpZiAoYW5ub3VuY2UpIHtcbiAgICAgIGNvbnN0IHRleHQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShmaXJzdE9wdGlvbi52aWV3VmFsdWUkKTtcbiAgICAgIHRoaXMuX2xpdmVBbm5vdW5jZXIuYW5ub3VuY2UodGV4dCwgMTAwMDApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3NlbGVjdExhc3RPcHRpb24oYW5ub3VuY2U6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBvcHRpb25zID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5zZWxlY3RPcHRpb25zJCk7XG5cbiAgICBpZiAoIW9wdGlvbnMpIHJldHVybjtcblxuICAgIGNvbnN0IGxhc3RPcHRpb24gPSBvcHRpb25zW29wdGlvbnMubGVuZ3RoIC0gMV0/Lm9wdDtcblxuICAgIGlmICghbGFzdE9wdGlvbikgcmV0dXJuO1xuXG4gICAgaWYgKCF0aGlzLl9zZXRTZWxlY3RlZE9wdGlvbihsYXN0T3B0aW9uKSkgcmV0dXJuO1xuXG4gICAgaWYgKGFubm91bmNlKSB7XG4gICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20obGFzdE9wdGlvbi52aWV3VmFsdWUkKTtcbiAgICAgIHRoaXMuX2xpdmVBbm5vdW5jZXIuYW5ub3VuY2UodGV4dCwgMTAwMDApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3NlbGVjdE9wdGlvbkJ5T2Zmc2V0KG9mZnNldDogbnVtYmVyLCBhbm5vdW5jZTogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnNlbGVjdE9wdGlvbnMkKTtcblxuICAgIGlmICghb3B0aW9ucykgcmV0dXJuO1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnNlbGVjdGVkT3B0aW9uJCk7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25JbmRleCA9IG9wdGlvbnMuZmluZEluZGV4KChvKSA9PiBvLm9wdCA9PT0gc2VsZWN0ZWRPcHRpb24/Lm9wdCk7XG4gICAgY29uc3QgbmV4dE9wdGlvbkluZGV4ID0gc2VsZWN0ZWRPcHRpb25JbmRleCArIG9mZnNldDtcbiAgICBjb25zdCBuZXh0T3B0aW9uID0gb3B0aW9uc1tuZXh0T3B0aW9uSW5kZXhdO1xuXG4gICAgaWYgKCFuZXh0T3B0aW9uKSByZXR1cm47XG5cbiAgICBpZiAobmV4dE9wdGlvbi5vcHQuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RPcHRpb25CeU9mZnNldChvZmZzZXQgKyAob2Zmc2V0IDwgMCA/IC0xIDogMSksIGFubm91bmNlKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuX3NldFNlbGVjdGVkT3B0aW9uKG5leHRPcHRpb24ub3B0KSkgcmV0dXJuO1xuXG4gICAgaWYgKGFubm91bmNlKSB7XG4gICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20obmV4dE9wdGlvbi5vcHQudmlld1ZhbHVlJCk7XG4gICAgICB0aGlzLl9saXZlQW5ub3VuY2VyLmFubm91bmNlKHRleHQsIDEwMDAwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9hY3RpdmF0ZUZpcnN0T3B0aW9uKCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnNlbGVjdE9wdGlvbnMkKTtcblxuICAgIGlmICghb3B0aW9ucykgcmV0dXJuO1xuXG4gICAgY29uc3QgZmlyc3RPcHRpb24gPSBvcHRpb25zWzBdPy5vcHQ7XG5cbiAgICBpZiAoIWZpcnN0T3B0aW9uKSByZXR1cm47XG5cbiAgICBhd2FpdCB0aGlzLl9zZXRBY3RpdmVPcHRpb24oZmlyc3RPcHRpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfYWN0aXZhdGVMYXN0T3B0aW9uKCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnNlbGVjdE9wdGlvbnMkKTtcblxuICAgIGlmICghb3B0aW9ucykgcmV0dXJuO1xuXG4gICAgY29uc3QgbGFzdE9wdGlvbiA9IG9wdGlvbnNbb3B0aW9ucy5sZW5ndGggLSAxXT8ub3B0O1xuXG4gICAgaWYgKCFsYXN0T3B0aW9uKSByZXR1cm47XG5cbiAgICBhd2FpdCB0aGlzLl9zZXRBY3RpdmVPcHRpb24obGFzdE9wdGlvbik7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9hY3RpdmF0ZU9wdGlvbkJ5T2Zmc2V0KG9mZnNldDogbnVtYmVyKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuc2VsZWN0T3B0aW9ucyQpO1xuXG4gICAgaWYgKCFvcHRpb25zKSByZXR1cm47XG5cbiAgICBjb25zdCBhY3RpdmF0ZWRPcHRpb24gPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmFjdGl2ZU9wdGlvbiQpO1xuICAgIGNvbnN0IGFjdGl2YXRlZE9wdGlvbkluZGV4ID0gb3B0aW9ucy5maW5kSW5kZXgoKG8pID0+IG8ub3B0ID09PSBhY3RpdmF0ZWRPcHRpb24/Lm9wdCk7XG4gICAgY29uc3QgbmV4dE9wdGlvbkluZGV4ID0gYWN0aXZhdGVkT3B0aW9uSW5kZXggKyBvZmZzZXQ7XG4gICAgY29uc3QgbmV4dE9wdGlvbiA9IG9wdGlvbnNbbmV4dE9wdGlvbkluZGV4XTtcblxuICAgIGlmICghbmV4dE9wdGlvbikgcmV0dXJuO1xuXG4gICAgYXdhaXQgdGhpcy5fc2V0QWN0aXZlT3B0aW9uKG5leHRPcHRpb24ub3B0KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX21pZ3JhdGVTZWxlY3RWYWx1ZSgpIHtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiAhQXJyYXkuaXNBcnJheSh0aGlzLmlucHV0LnZhbHVlKSkge1xuICAgICAgdGhpcy5zZXRWYWx1ZShbXSk7XG4gICAgfSBlbHNlIGlmICghdGhpcy5tdWx0aXBsZSAmJiBBcnJheS5pc0FycmF5KHRoaXMuaW5wdXQudmFsdWUpKSB7XG4gICAgICB0aGlzLnNldFZhbHVlKG51bGwpO1xuICAgIH1cblxuICAgIHRoaXMuX3NldEFjdGl2ZU9wdGlvbihudWxsKTtcbiAgfVxufVxuIl19
459
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9jb21wb25lbnRzL3NlbGVjdC9jb21wb25lbnRzL3NlbGVjdC9kaXJlY3RpdmVzL3NlbGVjdC9zZWxlY3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsQ0FBQyxFQUNELFVBQVUsRUFDVixHQUFHLEVBQ0gsS0FBSyxFQUNMLE1BQU0sRUFDTixJQUFJLEVBQ0osVUFBVSxFQUNWLFNBQVMsRUFDVCxPQUFPLEVBQ1AsV0FBVyxFQUNYLEtBQUssRUFDTCxRQUFRLEVBQ1IsY0FBYyxHQUNmLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsT0FBTyxFQUVMLGVBQWUsRUFDZixTQUFTLEVBQ1QsY0FBYyxFQUNkLEtBQUssRUFJTCxnQkFBZ0IsRUFDaEIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCx3QkFBd0IsRUFDeEIsY0FBYyxFQUNkLGFBQWEsRUFDYixzQkFBc0IsR0FDdkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQXlCLE1BQU0sa0JBQWtCLENBQUM7OztBQUU5RSw4REFBOEQ7QUFDOUQsTUFBTSxD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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMaXZlQW5ub3VuY2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcbiAgQSxcbiAgRE9XTl9BUlJPVyxcbiAgRU5ELFxuICBFTlRFUixcbiAgRVNDQVBFLFxuICBIT01FLFxuICBMRUZUX0FSUk9XLFxuICBQQUdFX0RPV04sXG4gIFBBR0VfVVAsXG4gIFJJR0hUX0FSUk9XLFxuICBTUEFDRSxcbiAgVVBfQVJST1csXG4gIGhhc01vZGlmaWVyS2V5LFxufSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBEaXJlY3RpdmUsXG4gIEluamVjdGlvblRva2VuLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBUZW1wbGF0ZVJlZixcbiAgVHJhY2tCeUZ1bmN0aW9uLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQW5pbWF0ZWRPdmVybGF5Q29tcG9uZW50QmFzZSxcbiAgQW5pbWF0ZWRPdmVybGF5RGlyZWN0aXZlLFxuICBUeXBlZFF1ZXJ5TGlzdCxcbiAgY3JlYXRlRGVzdHJveSxcbiAgY3JlYXRlUmVhY3RpdmVCaW5kaW5ncyxcbn0gZnJvbSAnQGV0aGxldGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZpcnN0VmFsdWVGcm9tLCBtYXAsIG9mLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElOUFVUX1RPS0VOIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBTRUxFQ1RfRklFTERfVE9LRU4gfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFNlbGVjdEJvZHlEaXJlY3RpdmUgfSBmcm9tICcuLi9zZWxlY3QtYm9keSc7XG5pbXBvcnQgeyBTRUxFQ1RfT1BUSU9OX1RPS0VOLCBTZWxlY3RPcHRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi9zZWxlY3Qtb3B0aW9uJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmV4cG9ydCBjb25zdCBTRUxFQ1RfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48U2VsZWN0RGlyZWN0aXZlPGFueT4+KCdFVF9TRUxFQ1RfSU5QVVRfVE9LRU4nKTtcblxudHlwZSBTZWxlY3REaXJlY3RpdmVCb2R5Q29tcG9uZW50QmFzZSA9IEFuaW1hdGVkT3ZlcmxheUNvbXBvbmVudEJhc2UgJiB7XG4gIF9ib2R5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbDtcbiAgc2VsZWN0Qm9keTogU2VsZWN0Qm9keURpcmVjdGl2ZTtcbn07XG5cbmxldCB1bmlxdWVJZCA9IDA7XG5cbmludGVyZmFjZSBTZWxlY3RCb2R5Q29uZmlnPFQgZXh0ZW5kcyBTZWxlY3REaXJlY3RpdmVCb2R5Q29tcG9uZW50QmFzZT4ge1xuICBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VD47XG4gIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbn1cblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3REaXJlY3RpdmVzOiBbQW5pbWF0ZWRPdmVybGF5RGlyZWN0aXZlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogU0VMRUNUX1RPS0VOLFxuICAgICAgdXNlRXhpc3Rpbmc6IFNlbGVjdERpcmVjdGl2ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3REaXJlY3RpdmU8VCBleHRlbmRzIFNlbGVjdERpcmVjdGl2ZUJvZHlDb21wb25lbnRCYXNlPiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIHByaXZhdGUgX3NlbGVjdEJvZHlDb25maWc6IFNlbGVjdEJvZHlDb25maWc8VD4gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9hbmltYXRlZE92ZXJsYXkgPSBpbmplY3Q8QW5pbWF0ZWRPdmVybGF5RGlyZWN0aXZlPFQ+PihBbmltYXRlZE92ZXJsYXlEaXJlY3RpdmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IGNyZWF0ZURlc3Ryb3koKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbGl2ZUFubm91bmNlciA9IGluamVjdChMaXZlQW5ub3VuY2VyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2VsZWN0RmllbGQgPSBpbmplY3QoU0VMRUNUX0ZJRUxEX1RPS0VOKTtcbiAgcmVhZG9ubHkgaW5wdXQgPSBpbmplY3QoSU5QVVRfVE9LRU4pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdEJvZHlJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pc09wZW4kID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgQElucHV0KClcbiAgZ2V0IG11bHRpcGxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9tdWx0aXBsZSQudmFsdWU7XG4gIH1cbiAgc2V0IG11bHRpcGxlKHZhbHVlOiB1bmtub3duKSB7XG4gICAgdGhpcy5fbXVsdGlwbGUkLm5leHQoYm9vbGVhbkF0dHJpYnV0ZSh2YWx1ZSkpO1xuXG4gICAgdGhpcy5fbWlncmF0ZVNlbGVjdFZhbHVlKCk7XG4gIH1cbiAgcHJpdmF0ZSBfbXVsdGlwbGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgQElucHV0KClcbiAgZW1wdHlUZXh0Pzogc3RyaW5nO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oU0VMRUNUX09QVElPTl9UT0tFTiwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBwcml2YXRlIHNldCBfc2VsZWN0T3B0aW9uc1F1ZXJ5TGlzdCh2YWx1ZTogVHlwZWRRdWVyeUxpc3Q8U2VsZWN0T3B0aW9uRGlyZWN0aXZlPikge1xuICAgIHRoaXMuX3NlbGVjdE9wdGlvbnNRdWVyeUxpc3QkLm5leHQodmFsdWUpO1xuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlbGVjdE9wdGlvbnNRdWVyeUxpc3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUeXBlZFF1ZXJ5TGlzdDxTZWxlY3RPcHRpb25EaXJlY3RpdmU+IHwgbnVsbD4obnVsbCk7XG5cbiAgcmVhZG9ubHkgc2VsZWN0T3B0aW9ucyQgPSB0aGlzLl9zZWxlY3RPcHRpb25zUXVlcnlMaXN0JC5waXBlKFxuICAgIHN3aXRjaE1hcCgocXVlcnlMaXN0KSA9PiBxdWVyeUxpc3Q/LmNoYW5nZXMucGlwZShzdGFydFdpdGgocXVlcnlMaXN0KSkgPz8gb2YobnVsbCkpLFxuICAgIHN3aXRjaE1hcCgocXVlcnlMaXN0KSA9PiB7XG4gICAgICBpZiAoIXF1ZXJ5TGlzdCkgcmV0dXJuIG9mKG51bGwpO1xuXG4gICAgICBjb25zdCBpdGVtcyA9IHF1ZXJ5TGlzdFxuICAgICAgICAuZmlsdGVyKChpKTogaSBpcyBTZWxlY3RPcHRpb25EaXJlY3RpdmUgPT4gISFpKVxuICAgICAgICAubWFwKChvcHQpID0+XG4gICAgICAgICAgY29tYmluZUxhdGVzdChbb3B0LmlzU2VsZWN0ZWQkLCBvcHQuaXNBY3RpdmUkXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW3NlbGVjdGVkLCBhY3RpdmVdKSA9PiAoeyBvcHQsIHNlbGVjdGVkLCBhY3RpdmUgfSkpLFxuICAgICAgICAgICksXG4gICAgICAgICk7XG5cbiAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KGl0ZW1zID8/IG9mKG51bGwpKTtcbiAgICB9KSxcbiAgKTtcblxuICByZWFkb25seSBhY3RpdmVPcHRpb24kID0gdGhpcy5zZWxlY3RPcHRpb25zJC5waXBlKFxuICAgIG1hcCgob3B0aW9ucykgPT4ge1xuICAgICAgaWYgKCFvcHRpb25zKSByZXR1cm4gbnVsbDtcblxuICAgICAgcmV0dXJuIG9wdGlvbnMuZmluZCgob3B0aW9uKSA9PiBvcHRpb24uYWN0aXZlKSA/PyBudWxsO1xuICAgIH0pLFxuICApO1xuXG4gIHJlYWRvbmx5IHNlbGVjdGVkT3B0aW9ucyQgPSB0aGlzLnNlbGVjdE9wdGlvbnMkLnBpcGUoXG4gICAgbWFwKChvcHRpb25zKSA9PiB7XG4gICAgICBpZiAoIW9wdGlvbnMpIHJldHVybiBudWxsO1xuXG4gICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSBvcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PiBvcHRpb24uc2VsZWN0ZWQpO1xuXG4gICAgICBpZiAoIXNlbGVjdGVkT3B0aW9ucy5sZW5ndGgpIHJldHVybiBudWxsO1xuXG4gICAgICBjb25zdCBpbnB1dFZhbHVlID0gdGhpcy5pbnB1dC52YWx1ZTtcblxuICAgICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgQXJyYXkuaXNBcnJheShpbnB1dFZhbHVlKSkge1xuICAgICAgICAvLyBzb3J0IHNlbGVjdGVkIG9wdGlvbnMgYnkgdGhlIG9yZGVyIG9mIHRoZSBpbnB1dCB2YWx1ZVxuICAgICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnNNYXAgPSBuZXcgTWFwKHNlbGVjdGVkT3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gW29wdGlvbi5vcHQudmFsdWUsIG9wdGlvbl0pKTtcbiAgICAgICAgcmV0dXJuIGlucHV0VmFsdWVcbiAgICAgICAgICAubWFwKCh2YWx1ZSkgPT4gc2VsZWN0ZWRPcHRpb25zTWFwLmdldCh2YWx1ZSkpXG4gICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgb3B0aW9uLFxuICAgICAgICAgICAgKTogb3B0aW9uIGlzIHtcbiAgICAgICAgICAgICAgb3B0OiBTZWxlY3RPcHRpb25EaXJlY3RpdmU7XG4gICAgICAgICAgICAgIHNlbGVjdGVkOiBib29sZWFuO1xuICAgICAgICAgICAgICBhY3RpdmU6IGJvb2xlYW47XG4gICAgICAgICAgICB9ID0+ICEhb3B0aW9uLFxuICAgICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzZWxlY3RlZE9wdGlvbnM7XG4gICAgfSksXG4gICk7XG5cbiAgcmVhZG9ubHkgc2VsZWN0ZWRPcHRpb24kID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMkLnBpcGUobWFwKChvcHRpb25zKSA9PiBvcHRpb25zPy5bMF0gPz8gbnVsbCkpO1xuXG4gIHJlYWRvbmx5IHNlbGVjdEJvZHlJZCQgPSB0aGlzLl9zZWxlY3RCb2R5SWQkLmFzT2JzZXJ2YWJsZSgpO1xuICByZWFkb25seSBpc09wZW4kID0gdGhpcy5faXNPcGVuJC5hc09ic2VydmFibGUoKTtcbiAgcmVhZG9ubHkgbXVsdGlwbGUkID0gdGhpcy5fbXVsdGlwbGUkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHJlYWRvbmx5IHNlbGVjdEN1cnJlbnRWYWx1ZUlkID0gYGV0LXNlbGVjdC1jdXJyZW50LXZhbHVlLSR7dW5pcXVlSWQrK31gO1xuXG4gIHJlYWRvbmx5IGFyaWFWaWV3VmFsdWUkID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChvcHRpb25zKSA9PiB7XG4gICAgICBpZiAoIW9wdGlvbnM/Lmxlbmd0aCkgcmV0dXJuIG9mKG51bGwpO1xuXG4gICAgICBjb25zdCB2aWV3VmFsdWVzID0gb3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLm9wdC52aWV3VmFsdWUkKTtcblxuICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3Qodmlld1ZhbHVlcyk7XG4gICAgfSksXG4gICAgbWFwKCh2aWV3VmFsdWVzKSA9PiB7XG4gICAgICBpZiAoIXZpZXdWYWx1ZXMpIHJldHVybiBudWxsO1xuXG4gICAgICByZXR1cm4gdmlld1ZhbHVlcy5qb2luKCcsICcpO1xuICAgIH0pLFxuICApO1xuXG4gIHJlYWRvbmx5IGFjdGl2ZURlc2NlbmRhbnQkID0gY29tYmluZUxhdGVzdChbdGhpcy5pc09wZW4kLCB0aGlzLmFjdGl2ZU9wdGlvbiRdKS5waXBlKFxuICAgIG1hcCgoW2lzT3BlbiwgYWN0aXZlT3B0aW9uXSkgPT4ge1xuICAgICAgaWYgKCFpc09wZW4gfHwgIWFjdGl2ZU9wdGlvbikgcmV0dXJuIG51bGw7XG5cbiAgICAgIHJldHVybiBhY3RpdmVPcHRpb24ub3B0LmlkO1xuICAgIH0pLFxuICApO1xuXG4gIHJlYWRvbmx5IG93bnMkID0gY29tYmluZUxhdGVzdChbdGhpcy5pc09wZW4kLCB0aGlzLnNlbGVjdEJvZHlJZCRdKS5waXBlKFxuICAgIG1hcCgoW2lzT3Blbiwgc2VsZWN0Qm9keUlkXSkgPT4ge1xuICAgICAgaWYgKCFpc09wZW4gfHwgIXNlbGVjdEJvZHlJZCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHNlbGVjdEJvZHlJZDtcbiAgICB9KSxcbiAgKTtcblxuICByZWFkb25seSBsYWJlbGxlZEJ5JCA9IHRoaXMuaW5wdXQubGFiZWxJZCQucGlwZShcbiAgICBtYXAoKGxhYmVsSWQpID0+IHtcbiAgICAgIGNvbnN0IGlkcyA9IFtsYWJlbElkLCB0aGlzLnNlbGVjdEN1cnJlbnRWYWx1ZUlkXTtcblxuICAgICAgcmV0dXJuIGlkcy5maWx0ZXIoKGlkKSA9PiAhIWlkKS5qb2luKCcgJyk7XG4gICAgfSksXG4gICk7XG5cbiAgcmVhZG9ubHkgX2JpbmRpbmdzID0gY3JlYXRlUmVhY3RpdmVCaW5kaW5ncyhcbiAgICB7XG4gICAgICBhdHRyaWJ1dGU6ICdjbGFzcy5ldC1zZWxlY3QtLWlzLW9wZW4nLFxuICAgICAgb2JzZXJ2YWJsZTogdGhpcy5pc09wZW4kLFxuICAgIH0sXG4gICAge1xuICAgICAgYXR0cmlidXRlOiAnY2xhc3MuZXQtc2VsZWN0LS1kaXNhYmxlZCcsXG4gICAgICBvYnNlcnZhYmxlOiB0aGlzLmlucHV0LmRpc2FibGVkJCxcbiAgICB9LFxuICApO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5wbGFjZW1lbnQgPSAnYm90dG9tJztcbiAgICB0aGlzLl9hbmltYXRlZE92ZXJsYXkuZmFsbGJhY2tQbGFjZW1lbnRzID0gWydib3R0b20nLCAndG9wJ107XG4gICAgdGhpcy5fYW5pbWF0ZWRPdmVybGF5LmF1dG9SZXNpemUgPSB0cnVlO1xuXG4gICAgdGhpcy5fc2VsZWN0RmllbGQuX2JpbmRpbmdzLnB1c2goe1xuICAgICAgYXR0cmlidXRlOiAnY2xhc3MuZXQtc2VsZWN0LWZpZWxkLS1vcGVuJyxcbiAgICAgIG9ic2VydmFibGU6IHRoaXMuX2lzT3BlbiQsXG4gICAgfSk7XG5cbiAgICB0aGlzLl9zZWxlY3RGaWVsZC5fYmluZGluZ3MucHVzaCh7XG4gICAgICBhdHRyaWJ1dGU6ICdjbGFzcy5ldC1zZWxlY3QtZmllbGQtLW11bHRpcGxlJyxcbiAgICAgIG9ic2VydmFibGU6IHRoaXMubXVsdGlwbGUkLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fdW5tb3VudFNlbGVjdEJvZHlPbkRpc2FibGUoKTtcbiAgICB0aGlzLl9taWdyYXRlU2VsZWN0VmFsdWUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zZXRTZWxlY3RlZE9wdGlvbkFjdGl2ZSgpO1xuICB9XG5cbiAgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248U2VsZWN0T3B0aW9uRGlyZWN0aXZlPiA9IChfLCBpdGVtKSA9PiBpdGVtLmlkO1xuXG4gIG1vdW50U2VsZWN0Qm9keSgpIHtcbiAgICBpZiAoIXRoaXMuX3NlbGVjdEJvZHlDb25maWcpIHJldHVybjtcblxuICAgIGlmICh0aGlzLl9hbmltYXRlZE92ZXJsYXkuaXNNb3VudGVkIHx8IHRoaXMuaW5wdXQuZGlzYWJsZWQpIHJldHVybjtcblxuICAgIHRoaXMuX3NldFNlbGVjdGVkT3B0aW9uQWN0aXZlKCk7XG5cbiAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuX2FuaW1hdGVkT3ZlcmxheS5tb3VudCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMuX3NlbGVjdEJvZHlDb25maWcuY29tcG9uZW50LFxuICAgICAgbWlycm9yV2lkdGg6IHRydWUsXG4gICAgICBkYXRhOiB7IF9ib2R5VGVtcGxhdGU6IHRoaXMuX3NlbGVjdEJvZHlDb25maWcudGVtcGxhdGUgfSBhcyBQYXJ0aWFsPFQ+LFxuICAgIH0pO1xuXG4gICAgaWYgKCFpbnN0YW5jZSkgcmV0dXJuO1xuXG4gICAgdGhpcy5fc2VsZWN0Qm9keUlkJC5uZXh0KGluc3RhbmNlLnNlbGVjdEJvZHkuaWQpO1xuICAgIHRoaXMuX2lzT3BlbiQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHVubW91bnRTZWxlY3RCb2R5KCkge1xuICAgIGlmICghdGhpcy5fYW5pbWF0ZWRPdmVybGF5LmlzTW91bnRlZCkgcmV0dXJuO1xuXG4gICAgdGhpcy5fYW5pbWF0ZWRPdmVybGF5LnVubW91bnQoKTtcblxuICAgIHRoaXMuX3NlbGVjdEJvZHlJZCQubmV4dChudWxsKTtcbiAgICB0aGlzLl9pc09wZW4kLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgc2V0VmFsdWUodmFsdWU6IHVua25vd24pIHtcbiAgICB0aGlzLmlucHV0Ll91cGRhdGVWYWx1ZSh2YWx1ZSk7XG5cbiAgICB0aGlzLmlucHV0Ll9tYXJrQXNUb3VjaGVkKCk7XG4gICAgdGhpcy5pbnB1dC5fc2V0U2hvdWxkRGlzcGxheUVycm9yKHRydWUpO1xuICB9XG5cbiAgaGFuZGxlS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLl9pc09wZW4kLnZhbHVlKSB7XG4gICAgICB0aGlzLl9oYW5kbGVLZXlEb3duSW5PcGVuU3RhdGUoZXZlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9oYW5kbGVLZXlEb3duSW5DbG9zZWRTdGF0ZShldmVudCk7XG4gICAgfVxuICB9XG5cbiAgc2V0U2VsZWN0Qm9keShjb25maWc6IFNlbGVjdEJvZHlDb25maWc8VD4pIHtcbiAgICB0aGlzLl9zZWxlY3RCb2R5Q29uZmlnID0gY29uZmlnO1xuICB9XG5cbiAgcmVtb3ZlT3B0aW9uRnJvbVNlbGVjdGlvbihvcHRpb246IFNlbGVjdE9wdGlvbkRpcmVjdGl2ZSkge1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSB8fCAhQXJyYXkuaXNBcnJheSh0aGlzLmlucHV0LnZhbHVlKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmlucHV0LnZhbHVlLmZpbHRlcigodikgPT4gdiAhPT0gb3B0aW9uLnZhbHVlKTtcblxuICAgIHRoaXMuc2V0VmFsdWUodmFsdWUpO1xuICB9XG5cbiAgX2NvbnRyb2xUb3VjaGVkKCkge1xuICAgIHRoaXMuaW5wdXQuX21hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLmlucHV0Ll9zZXRTaG91bGREaXNwbGF5RXJyb3IodHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIF91bm1vdW50U2VsZWN0Qm9keU9uRGlzYWJsZSgpIHtcbiAgICB0aGlzLmlucHV0LmRpc2FibGVkJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoZGlzYWJsZWQpID0+IHtcbiAgICAgICAgICBpZiAoIWRpc2FibGVkKSByZXR1cm47XG5cbiAgICAgICAgICB0aGlzLnVubW91bnRTZWxlY3RCb2R5KCk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlS2V5RG93bkluQ2xvc2VkU3RhdGUoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBjb25zdCBrZXlDb2RlID0gZXZlbnQua2V5Q29kZTtcbiAgICBjb25zdCBpc0Fycm93S2V5ID1cbiAgICAgIGtleUNvZGUgPT09IERPV05fQVJST1cgfHwga2V5Q29kZSA9PT0gVVBfQVJST1cgfHwga2V5Q29kZSA9PT0gTEVGVF9BUlJPVyB8fCBrZXlDb2RlID09PSBSSUdIVF9BUlJPVztcblxuICAgIGNvbnN0IGlzT3BlbktleSA9IGtleUNvZGUgPT09IEVOVEVSIHx8IGtleUNvZGUgPT09IFNQQUNFO1xuXG4gICAgaWYgKChpc09wZW5LZXkgJiYgIWhhc01vZGlmaWVyS2V5KGV2ZW50KSkgfHwgKCh0aGlzLm11bHRpcGxlIHx8IGV2ZW50LmFsdEtleSkgJiYgaXNBcnJvd0tleSkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLm1vdW50U2VsZWN0Qm9keSgpO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHN3aXRjaCAoa2V5Q29kZSkge1xuICAgICAgICBjYXNlIERPV05fQVJST1c6XG4gICAgICAgICAgdGhpcy5fc2VsZWN0T3B0aW9uQnlPZmZzZXQoMSwgdHJ1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgVVBfQVJST1c6XG4gICAgICAgICAgdGhpcy5fc2VsZWN0T3B0aW9uQnlPZmZzZXQoLTEsIHRydWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEhPTUU6XG4gICAgICAgICAgdGhpcy5fc2VsZWN0Rmlyc3RPcHRpb24odHJ1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRU5EOlxuICAgICAgICAgIHRoaXMuX3NlbGVjdExhc3RPcHRpb24odHJ1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgUEFHRV9VUDpcbiAgICAgICAgICB0aGlzLl9zZWxlY3RPcHRpb25CeU9mZnNldCgtMTAsIHRydWUpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFBBR0VfRE9XTjpcbiAgICAgICAgICB0aGlzLl9zZWxlY3RPcHRpb25CeU9mZnNldCgxMCwgdHJ1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLm11bHRpcGxlICYmIGlzQXJyb3dLZXkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLm1vdW50U2VsZWN0Qm9keSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2hhbmRsZUtleURvd25Jbk9wZW5TdGF0ZShldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGNvbnN0IGtleUNvZGUgPSBldmVudC5rZXlDb2RlO1xuICAgIGNvbnN0IGlzQXJyb3dLZXkgPSBrZXlDb2RlID09PSBET1dOX0FSUk9XIHx8IGtleUNvZGUgPT09IFVQX0FSUk9XO1xuXG4gICAgaWYgKGlzQXJyb3dLZXkgJiYgZXZlbnQuYWx0S2V5KSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy51bm1vdW50U2VsZWN0Qm9keSgpO1xuICAgIH0gZWxzZSBpZiAoa2V5Q29kZSA9PT0gRVNDQVBFICYmICFoYXNNb2RpZmllcktleShldmVudCkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnVubW91bnRTZWxlY3RCb2R5KCk7XG4gICAgfSBlbHNlIGlmIChrZXlDb2RlID09PSBFTlRFUiB8fCBrZXlDb2RlID09PSBTUEFDRSkge1xuICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgdGhpcy5fdG9nZ2xlQWN0aXZlT3B0aW9uU2VsZWN0aW9uKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9zZXRBY3RpdmVPcHRpb25TZWxlY3RlZCgpO1xuICAgICAgfVxuXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5tdWx0aXBsZSAmJiBrZXlDb2RlID09PSBBICYmIGV2ZW50LmN0cmxLZXkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLl90b2dnbGVTZWxlY3Rpb25PZkFsbE9wdGlvbnMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3dpdGNoIChrZXlDb2RlKSB7XG4gICAgICAgIGNhc2UgRE9XTl9BUlJPVzpcbiAgICAgICAgICB0aGlzLl9hY3RpdmF0ZU9wdGlvbkJ5T2Zmc2V0KDEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFVQX0FSUk9XOlxuICAgICAgICAgIHRoaXMuX2FjdGl2YXRlT3B0aW9uQnlPZmZzZXQoLTEpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEhPTUU6XG4gICAgICAgICAgdGhpcy5fYWN0aXZhdGVGaXJzdE9wdGlvbigpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEVORDpcbiAgICAgICAgICB0aGlzLl9hY3RpdmF0ZUxhc3RPcHRpb24oKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBQQUdFX1VQOlxuICAgICAgICAgIHRoaXMuX2FjdGl2YXRlT3B0aW9uQnlPZmZzZXQoLTEwKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBQQUdFX0RPV046XG4gICAgICAgICAgdGhpcy5fYWN0aXZhdGVPcHRpb25CeU9mZnNldCgxMCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfc2V0QWN0aXZlT3B0aW9uKG9wdGlvbjogU2VsZWN0T3B0aW9uRGlyZWN0aXZlIHwgbnVsbCkge1xuICAgIGNvbnN0IGN1cnJlbnRBY3RpdmVPcHRpb24gPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmFjdGl2ZU9wdGlvbiQpO1xuXG4gICAgaWYgKGN1cnJlbnRBY3RpdmVPcHRpb24/Lm9wdCA9PT0gb3B0aW9uKSByZXR1cm4gZmFsc2U7XG5cbiAgICBjdXJyZW50QWN0aXZlT3B0aW9uPy5vcHQuX3NldEFjdGl2ZShmYWxzZSk7XG5cbiAgICBpZiAob3B0aW9uKSB7XG4gICAgICBvcHRpb24uX3NldEFjdGl2ZSh0cnVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2FkZEFjdGl2ZU9wdGlvblRvU2VsZWN0aW9uKCkge1xuICAgIGNvbnN0IGFjdGl2ZU9wdGlvbiA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuYWN0aXZlT3B0aW9uJCk7XG5cbiAgICBpZiAoIWFjdGl2ZU9wdGlvbiB8fCBhY3RpdmVPcHRpb24ub3B0LmRpc2FibGVkIHx8IGFjdGl2ZU9wdGlvbi5zZWxlY3RlZCkgcmV0dXJuO1xuXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHRoaXMuaW5wdXQudmFsdWUpKSB7XG4gICAgICB0aGlzLnNldFZhbHVlKFthY3RpdmVPcHRpb24ub3B0LnZhbHVlXSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZXRWYWx1ZShbLi4udGhpcy5pbnB1dC52YWx1ZSwgYWN0aXZlT3B0aW9uLm9wdC52YWx1ZV0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfcmVtb3ZlQWN0aXZlT3B0aW9uRnJvbVNlbGVjdGlvbigpIHtcbiAgICBjb25zdCBhY3RpdmVPcHRpb24gPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmFjdGl2ZU9wdGlvbiQpO1xuXG4gICAgaWYgKCFhY3RpdmVPcHRpb24gfHwgYWN0aXZlT3B0aW9uLm9wdC5kaXNhYmxlZCB8fCAhYWN0aXZlT3B0aW9uLnNlbGVjdGVkKSByZXR1cm47XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodGhpcy5pbnB1dC52YWx1ZSkpIHtcbiAgICAgIHRoaXMuc2V0VmFsdWUoW10pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2V0VmFsdWUodGhpcy5pbnB1dC52YWx1ZS5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gYWN0aXZlT3B0aW9uLm9wdC52YWx1ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfdG9nZ2xlU2VsZWN0aW9uT2ZBbGxPcHRpb25zKCkge1xuICAgIGNvbnN0IGFsbE9wdGlvbnMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnNlbGVjdE9wdGlvbnMkKTtcblxuICAgIGNvbnN0IGhhc0Rlc2VsZWN0ZWRPcHRpb24gPSBhbGxPcHRpb25zPy5zb21lKChvcHQpID0+ICFvcHQub3B0LmRpc2FibGVkICYmICFvcHQuc2VsZWN0ZWQpO1xuXG4gICAgaWYgKGhhc0Rlc2VsZWN0ZWRPcHRpb24pIHtcbiAgICAgIHRoaXMuX3NlbGVjdEFsbE9wdGlvbnMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZGVzZWxlY3RBbGxPcHRpb25zKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfc2VsZWN0QWxsT3B0aW9ucygpIHtcbiAgICBjb25zdCBhbGxPcHRpb25zID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5zZWxlY3RPcHRpb25zJCk7XG5cbiAgICBpZiAoIWFsbE9wdGlvbnMpIHJldHVybjtcblxuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9ucyA9IGFsbE9wdGlvbnMuZmlsdGVyKChvcHQpID0+ICFvcHQub3B0LmRpc2FibGVkKS5tYXAoKG9wdCkgPT4gb3B0Lm9wdC52YWx1ZSk7XG5cbiAgICB0aGlzLnNldFZhbHVlKHNlbGVjdGVkT3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9kZXNlbGVjdEFsbE9wdGlvbnMoKSB7XG4gICAgdGhpcy5zZXRWYWx1ZShbXSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF90b2dnbGVBY3RpdmVPcHRpb25TZWxlY3Rpb24oKSB7XG4gICAgY29uc3QgYWN0aXZlT3B0aW9uID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5hY3RpdmVPcHRpb24kKTtcblxuICAgIGlmICghYWN0aXZlT3B0aW9uKSByZXR1cm47XG5cbiAgICBpZiAoYWN0aXZlT3B0aW9uLnNlbGVjdGVkKSB7XG4gICAgICB0aGlzLl9yZW1vdmVBY3RpdmVPcHRpb25Gcm9tU2VsZWN0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2FkZEFjdGl2ZU9wdGlvblRvU2VsZWN0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfc2V0QWN0aXZlT3B0aW9uU2VsZWN0ZWQoKSB7XG4gICAgY29uc3QgYWN0aXZlT3B0aW9uID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5hY3RpdmVPcHRpb24kKTtcblxuICAgIGlmICghYWN0aXZlT3B0aW9uIHx8IGFjdGl2ZU9wdGlvbi5vcHQuZGlzYWJsZWQpIHJldHVybjtcblxuICAgIHRoaXMuX3NldFNlbGVjdGVkT3B0aW9uKGFjdGl2ZU9wdGlvbi5vcHQpO1xuXG4gICAgdGhpcy51bm1vdW50U2VsZWN0Qm9keSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfc2V0U2VsZWN0ZWRPcHRpb25BY3RpdmUoKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb24gPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnNlbGVjdGVkT3B0aW9uJCk7XG5cbiAgICBpZiAoIXNlbGVjdGVkT3B0aW9uKSByZXR1cm47XG5cbiAgICB0aGlzLl9zZXRBY3RpdmVPcHRpb24oc2VsZWN0ZWRPcHRpb24ub3B0KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3NldFNlbGVjdGVkT3B0aW9uKG9wdGlvbjogU2VsZWN0T3B0aW9uRGlyZWN0aXZlIHwgbnVsbCkge1xuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5zZWxlY3RlZE9wdGlvbiQpO1xuXG4gICAgaWYgKHNlbGVjdGVkT3B0aW9uID09PSBvcHRpb24pIHJldHVybiBmYWxzZTtcblxuICAgIHRoaXMuX3NldEFjdGl2ZU9wdGlvbihvcHRpb24pO1xuXG4gICAgdGhpcy5zZXRWYWx1ZShvcHRpb24/LnZhbHVlID8/IG51bGwpO1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9zZWxlY3RGaXJzdE9wdGlvbihhbm5vdW5jZTogYm9vbGVhbikge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnNlbGVjdE9wdGlvbnMkKTtcblxuICAgIGlmICghb3B0aW9ucykgcmV0dXJuO1xuXG4gICAgY29uc3QgZmlyc3RPcHRpb24gPSBvcHRpb25zWzBdPy5vcHQ7XG5cbiAgICBpZiAoIWZpcnN0T3B0aW9uKSByZXR1cm47XG5cbiAgICBpZiAoIXRoaXMuX3NldFNlbGVjdGVkT3B0aW9uKGZpcnN0T3B0aW9uKSkgcmV0dXJuO1xuXG4gICAgaWYgKGFubm91bmNlKSB7XG4gICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oZmlyc3RPcHRpb24udmlld1ZhbHVlJCk7XG4gICAgICB0aGlzLl9saXZlQW5ub3VuY2VyLmFubm91bmNlKHRleHQsIDEwMDAwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9zZWxlY3RMYXN0T3B0aW9uKGFubm91bmNlOiBib29sZWFuKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuc2VsZWN0T3B0aW9ucyQpO1xuXG4gICAgaWYgKCFvcHRpb25zKSByZXR1cm47XG5cbiAgICBjb25zdCBsYXN0T3B0aW9uID0gb3B0aW9uc1tvcHRpb25zLmxlbmd0aCAtIDFdPy5vcHQ7XG5cbiAgICBpZiAoIWxhc3RPcHRpb24pIHJldHVybjtcblxuICAgIGlmICghdGhpcy5fc2V0U2VsZWN0ZWRPcHRpb24obGFzdE9wdGlvbikpIHJldHVybjtcblxuICAgIGlmIChhbm5vdW5jZSkge1xuICAgICAgY29uc3QgdGV4dCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKGxhc3RPcHRpb24udmlld1ZhbHVlJCk7XG4gICAgICB0aGlzLl9saXZlQW5ub3VuY2VyLmFubm91bmNlKHRleHQsIDEwMDAwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9zZWxlY3RPcHRpb25CeU9mZnNldChvZmZzZXQ6IG51bWJlciwgYW5ub3VuY2U6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBvcHRpb25zID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5zZWxlY3RPcHRpb25zJCk7XG5cbiAgICBpZiAoIW9wdGlvbnMpIHJldHVybjtcblxuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5zZWxlY3RlZE9wdGlvbiQpO1xuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uSW5kZXggPSBvcHRpb25zLmZpbmRJbmRleCgobykgPT4gby5vcHQgPT09IHNlbGVjdGVkT3B0aW9uPy5vcHQpO1xuICAgIGNvbnN0IG5leHRPcHRpb25JbmRleCA9IHNlbGVjdGVkT3B0aW9uSW5kZXggKyBvZmZzZXQ7XG4gICAgY29uc3QgbmV4dE9wdGlvbiA9IG9wdGlvbnNbbmV4dE9wdGlvbkluZGV4XTtcblxuICAgIGlmICghbmV4dE9wdGlvbikgcmV0dXJuO1xuXG4gICAgaWYgKG5leHRPcHRpb24ub3B0LmRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc2VsZWN0T3B0aW9uQnlPZmZzZXQob2Zmc2V0ICsgKG9mZnNldCA8IDAgPyAtMSA6IDEpLCBhbm5vdW5jZSk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9zZXRTZWxlY3RlZE9wdGlvbihuZXh0T3B0aW9uLm9wdCkpIHJldHVybjtcblxuICAgIGlmIChhbm5vdW5jZSkge1xuICAgICAgY29uc3QgdGV4dCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKG5leHRPcHRpb24ub3B0LnZpZXdWYWx1ZSQpO1xuICAgICAgdGhpcy5fbGl2ZUFubm91bmNlci5hbm5vdW5jZSh0ZXh0LCAxMDAwMCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfYWN0aXZhdGVGaXJzdE9wdGlvbigpIHtcbiAgICBjb25zdCBvcHRpb25zID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5zZWxlY3RPcHRpb25zJCk7XG5cbiAgICBpZiAoIW9wdGlvbnMpIHJldHVybjtcblxuICAgIGNvbnN0IGZpcnN0T3B0aW9uID0gb3B0aW9uc1swXT8ub3B0O1xuXG4gICAgaWYgKCFmaXJzdE9wdGlvbikgcmV0dXJuO1xuXG4gICAgYXdhaXQgdGhpcy5fc2V0QWN0aXZlT3B0aW9uKGZpcnN0T3B0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2FjdGl2YXRlTGFzdE9wdGlvbigpIHtcbiAgICBjb25zdCBvcHRpb25zID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5zZWxlY3RPcHRpb25zJCk7XG5cbiAgICBpZiAoIW9wdGlvbnMpIHJldHVybjtcblxuICAgIGNvbnN0IGxhc3RPcHRpb24gPSBvcHRpb25zW29wdGlvbnMubGVuZ3RoIC0gMV0/Lm9wdDtcblxuICAgIGlmICghbGFzdE9wdGlvbikgcmV0dXJuO1xuXG4gICAgYXdhaXQgdGhpcy5fc2V0QWN0aXZlT3B0aW9uKGxhc3RPcHRpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfYWN0aXZhdGVPcHRpb25CeU9mZnNldChvZmZzZXQ6IG51bWJlcikge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnNlbGVjdE9wdGlvbnMkKTtcblxuICAgIGlmICghb3B0aW9ucykgcmV0dXJuO1xuXG4gICAgY29uc3QgYWN0aXZhdGVkT3B0aW9uID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5hY3RpdmVPcHRpb24kKTtcbiAgICBjb25zdCBhY3RpdmF0ZWRPcHRpb25JbmRleCA9IG9wdGlvbnMuZmluZEluZGV4KChvKSA9PiBvLm9wdCA9PT0gYWN0aXZhdGVkT3B0aW9uPy5vcHQpO1xuICAgIGNvbnN0IG5leHRPcHRpb25JbmRleCA9IGFjdGl2YXRlZE9wdGlvbkluZGV4ICsgb2Zmc2V0O1xuICAgIGNvbnN0IG5leHRPcHRpb24gPSBvcHRpb25zW25leHRPcHRpb25JbmRleF07XG5cbiAgICBpZiAoIW5leHRPcHRpb24pIHJldHVybjtcblxuICAgIGF3YWl0IHRoaXMuX3NldEFjdGl2ZU9wdGlvbihuZXh0T3B0aW9uLm9wdCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9taWdyYXRlU2VsZWN0VmFsdWUoKSB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgIUFycmF5LmlzQXJyYXkodGhpcy5pbnB1dC52YWx1ZSkpIHtcbiAgICAgIHRoaXMuc2V0VmFsdWUoW10pO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMubXVsdGlwbGUgJiYgQXJyYXkuaXNBcnJheSh0aGlzLmlucHV0LnZhbHVlKSkge1xuICAgICAgdGhpcy5zZXRWYWx1ZShudWxsKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zZXRBY3RpdmVPcHRpb24obnVsbCk7XG4gIH1cbn1cbiJdfQ==
@@ -31,15 +31,15 @@ export class SelectBodyDirective {
31
31
  .pipe(takeUntil(this._destroy$), tap(() => this._select.unmountSelectBody()))
32
32
  .subscribe();
33
33
  }
34
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SelectBodyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
35
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.5", type: SelectBodyDirective, isStandalone: true, host: { attributes: { "tabindex": "-1", "role": "listbox" }, properties: { "attr.id": "id" } }, providers: [
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SelectBodyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
35
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: SelectBodyDirective, isStandalone: true, host: { attributes: { "tabindex": "-1", "role": "listbox" }, properties: { "attr.id": "id" } }, providers: [
36
36
  {
37
37
  provide: SELECT_BODY_TOKEN,
38
38
  useExisting: SelectBodyDirective,
39
39
  },
40
40
  ], hostDirectives: [{ directive: i1.ClickOutsideDirective }], ngImport: i0 }); }
41
41
  }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SelectBodyDirective, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SelectBodyDirective, decorators: [{
43
43
  type: Directive,
44
44
  args: [{
45
45
  standalone: true,
@@ -82,15 +82,15 @@ export class SelectOptionDirective {
82
82
  _setActive(isActive) {
83
83
  this._isActive$.next(isActive);
84
84
  }
85
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SelectOptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
86
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.5", type: SelectOptionDirective, isStandalone: true, inputs: { value: "value", disabled: "disabled" }, host: { attributes: { "role": "option" }, listeners: { "click": "setSelectValue()", "etObserveContent": "_updateViewValue()" }, properties: { "attr.id": "id", "attr.aria-disabled": "disabled", "class.et-select-option--disabled": "disabled" } }, providers: [
85
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SelectOptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
86
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: SelectOptionDirective, isStandalone: true, inputs: { value: "value", disabled: "disabled" }, host: { attributes: { "role": "option" }, listeners: { "click": "setSelectValue()", "etObserveContent": "_updateViewValue()" }, properties: { "attr.id": "id", "attr.aria-disabled": "disabled", "class.et-select-option--disabled": "disabled" } }, providers: [
87
87
  {
88
88
  provide: SELECT_OPTION_TOKEN,
89
89
  useExisting: SelectOptionDirective,
90
90
  },
91
91
  ], hostDirectives: [{ directive: i1.ObserveContentDirective }], ngImport: i0 }); }
92
92
  }
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SelectOptionDirective, decorators: [{
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SelectOptionDirective, decorators: [{
94
94
  type: Directive,
95
95
  args: [{
96
96
  standalone: true,
@@ -9,14 +9,14 @@ export class SelectBodyComponent {
9
9
  this.selectBody = inject(SELECT_BODY_TOKEN);
10
10
  this._bodyTemplate = null;
11
11
  }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SelectBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: SelectBodyComponent, isStandalone: true, selector: "et-select-body", host: { classAttribute: "et-select-body et-with-default-animation" }, viewQueries: [{ propertyName: "_animatedLifecycle", first: true, predicate: ANIMATED_LIFECYCLE_TOKEN, descendants: true, static: true }], hostDirectives: [{ directive: i1.SelectBodyDirective }], ngImport: i0, template: `
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SelectBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: SelectBodyComponent, isStandalone: true, selector: "et-select-body", host: { classAttribute: "et-select-body et-with-default-animation" }, viewQueries: [{ propertyName: "_animatedLifecycle", first: true, predicate: ANIMATED_LIFECYCLE_TOKEN, descendants: true, static: true }], hostDirectives: [{ directive: i1.SelectBodyDirective }], ngImport: i0, template: `
14
14
  <div class="et-select-body-container" etAnimatedLifecycle>
15
15
  <ng-container [ngTemplateOutlet]="_bodyTemplate" />
16
16
  </div>
17
- `, isInline: true, styles: [".et-select-body.et-with-default-animation .et-select-body-container.et-animation-enter-from,.et-select-body.et-with-default-animation .et-select-body-container.et-animation-leave-to{opacity:0;transform:scaleY(0)}.et-select-body.et-with-default-animation .et-select-body-container.et-animation-enter-active{transition:transform 125ms var(--ease-out-5),opacity 125ms var(--ease-out-5)}.et-select-body.et-with-default-animation .et-select-body-container.et-animation-leave-active{transition:transform 50ms var(--ease-in-5),opacity 50ms var(--ease-in-5)}.et-select-body.et-with-default-animation[data-popper-placement^=top] .et-select-body-container{transform-origin:bottom}.et-select-body.et-with-default-animation[data-popper-placement^=bottom] .et-select-body-container{transform-origin:top}.et-select-body-container{display:block;background-color:#3d3d3d;color:#fff;max-height:300px;overflow:auto}@supports (overflow: overlay){.et-select-body-container{overflow:overlay}}.et-select-body{width:100%;display:grid}\n"], dependencies: [{ kind: "directive", type: AnimatedLifecycleDirective, selector: "[etAnimatedLifecycle]", exportAs: ["etAnimatedLifecycle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
17
+ `, isInline: true, styles: [".et-select-body.et-with-default-animation .et-select-body-container.et-animation-enter-from,.et-select-body.et-with-default-animation .et-select-body-container.et-animation-leave-to{opacity:0;transform:scaleY(0)}.et-select-body.et-with-default-animation .et-select-body-container.et-animation-enter-active{transition:transform 125ms var(--ease-out-5),opacity 125ms var(--ease-out-5)}.et-select-body.et-with-default-animation .et-select-body-container.et-animation-leave-active{transition:transform 50ms var(--ease-in-5),opacity 50ms var(--ease-in-5)}.et-select-body.et-with-default-animation[et-floating-placement^=top] .et-select-body-container{transform-origin:bottom}.et-select-body.et-with-default-animation[et-floating-placement^=bottom] .et-select-body-container{transform-origin:top}.et-select-body{transform:var(--et-floating-translate);will-change:transform}.et-select-body-container{display:block;background-color:#3d3d3d;color:#fff;max-height:min(200px,var(--et-floating-max-height, 200px));overflow:auto}@supports (overflow: overlay){.et-select-body-container{overflow:overlay}}.et-select-body{width:100%;display:grid}\n"], dependencies: [{ kind: "directive", type: AnimatedLifecycleDirective, selector: "[etAnimatedLifecycle]", exportAs: ["etAnimatedLifecycle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SelectBodyComponent, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SelectBodyComponent, decorators: [{
20
20
  type: Component,
21
21
  args: [{ selector: 'et-select-body', template: `
22
22
  <div class="et-select-body-container" etAnimatedLifecycle>
@@ -24,9 +24,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImpor
24
24
  </div>
25
25
  `, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
26
26
  class: 'et-select-body et-with-default-animation',
27
- }, imports: [AnimatedLifecycleDirective, NgTemplateOutlet], hostDirectives: [SelectBodyDirective], styles: [".et-select-body.et-with-default-animation .et-select-body-container.et-animation-enter-from,.et-select-body.et-with-default-animation .et-select-body-container.et-animation-leave-to{opacity:0;transform:scaleY(0)}.et-select-body.et-with-default-animation .et-select-body-container.et-animation-enter-active{transition:transform 125ms var(--ease-out-5),opacity 125ms var(--ease-out-5)}.et-select-body.et-with-default-animation .et-select-body-container.et-animation-leave-active{transition:transform 50ms var(--ease-in-5),opacity 50ms var(--ease-in-5)}.et-select-body.et-with-default-animation[data-popper-placement^=top] .et-select-body-container{transform-origin:bottom}.et-select-body.et-with-default-animation[data-popper-placement^=bottom] .et-select-body-container{transform-origin:top}.et-select-body-container{display:block;background-color:#3d3d3d;color:#fff;max-height:300px;overflow:auto}@supports (overflow: overlay){.et-select-body-container{overflow:overlay}}.et-select-body{width:100%;display:grid}\n"] }]
27
+ }, imports: [AnimatedLifecycleDirective, NgTemplateOutlet], hostDirectives: [SelectBodyDirective], styles: [".et-select-body.et-with-default-animation .et-select-body-container.et-animation-enter-from,.et-select-body.et-with-default-animation .et-select-body-container.et-animation-leave-to{opacity:0;transform:scaleY(0)}.et-select-body.et-with-default-animation .et-select-body-container.et-animation-enter-active{transition:transform 125ms var(--ease-out-5),opacity 125ms var(--ease-out-5)}.et-select-body.et-with-default-animation .et-select-body-container.et-animation-leave-active{transition:transform 50ms var(--ease-in-5),opacity 50ms var(--ease-in-5)}.et-select-body.et-with-default-animation[et-floating-placement^=top] .et-select-body-container{transform-origin:bottom}.et-select-body.et-with-default-animation[et-floating-placement^=bottom] .et-select-body-container{transform-origin:top}.et-select-body{transform:var(--et-floating-translate);will-change:transform}.et-select-body-container{display:block;background-color:#3d3d3d;color:#fff;max-height:min(200px,var(--et-floating-max-height, 200px));overflow:auto}@supports (overflow: overlay){.et-select-body-container{overflow:overlay}}.et-select-body{width:100%;display:grid}\n"] }]
28
28
  }], propDecorators: { _animatedLifecycle: [{
29
29
  type: ViewChild,
30
30
  args: [ANIMATED_LIFECYCLE_TOKEN, { static: true }]
31
31
  }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWJvZHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2NvbXBvbmVudHMvc2VsZWN0L2NvbXBvbmVudHMvc2VsZWN0L3BhcnRpYWxzL3NlbGVjdC1ib2R5L3NlbGVjdC1ib2R5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFlLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLDBCQUEwQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFtQjFFLE1BQU0sT0FBTyxtQkFBbUI7SUFqQmhDO1FBa0JXLGVBQVUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUtoRCxrQkFBYSxHQUFnQyxJQUFJLENBQUM7S0FDbkQ7OEdBUFksbUJBQW1CO2tHQUFuQixtQkFBbUIsb01BR25CLHdCQUF3Qix1SEFsQnpCOzs7O0dBSVQsK2pDQVFTLDBCQUEwQixxR0FBRSxnQkFBZ0I7OzJGQUczQyxtQkFBbUI7a0JBakIvQixTQUFTOytCQUNFLGdCQUFnQixZQUNoQjs7OztHQUlULGNBRVcsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLEtBQUssRUFBRSwwQ0FBMEM7cUJBQ2xELFdBQ1EsQ0FBQywwQkFBMEIsRUFBRSxnQkFBZ0IsQ0FBQyxrQkFDdkMsQ0FBQyxtQkFBbUIsQ0FBQzs4QkFNNUIsa0JBQWtCO3NCQUQxQixTQUFTO3VCQUFDLHdCQUF3QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQU5JTUFURURfTElGRUNZQ0xFX1RPS0VOLCBBbmltYXRlZExpZmVjeWNsZURpcmVjdGl2ZSB9IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuaW1wb3J0IHsgU0VMRUNUX0JPRFlfVE9LRU4sIFNlbGVjdEJvZHlEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXQtc2VsZWN0LWJvZHknLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJldC1zZWxlY3QtYm9keS1jb250YWluZXJcIiBldEFuaW1hdGVkTGlmZWN5Y2xlPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJfYm9keVRlbXBsYXRlXCIgLz5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWJvZHkuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LXNlbGVjdC1ib2R5IGV0LXdpdGgtZGVmYXVsdC1hbmltYXRpb24nLFxuICB9LFxuICBpbXBvcnRzOiBbQW5pbWF0ZWRMaWZlY3ljbGVEaXJlY3RpdmUsIE5nVGVtcGxhdGVPdXRsZXRdLFxuICBob3N0RGlyZWN0aXZlczogW1NlbGVjdEJvZHlEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RCb2R5Q29tcG9uZW50IHtcbiAgcmVhZG9ubHkgc2VsZWN0Qm9keSA9IGluamVjdChTRUxFQ1RfQk9EWV9UT0tFTik7XG5cbiAgQFZpZXdDaGlsZChBTklNQVRFRF9MSUZFQ1lDTEVfVE9LRU4sIHsgc3RhdGljOiB0cnVlIH0pXG4gIHJlYWRvbmx5IF9hbmltYXRlZExpZmVjeWNsZT86IEFuaW1hdGVkTGlmZWN5Y2xlRGlyZWN0aXZlO1xuXG4gIF9ib2R5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG59XG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWJvZHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2NvbXBvbmVudHMvc2VsZWN0L2NvbXBvbmVudHMvc2VsZWN0L3BhcnRpYWxzL3NlbGVjdC1ib2R5L3NlbGVjdC1ib2R5LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFlLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLDBCQUEwQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFtQjFFLE1BQU0sT0FBTyxtQkFBbUI7SUFqQmhDO1FBa0JXLGVBQVUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUtoRCxrQkFBYSxHQUFnQyxJQUFJLENBQUM7S0FDbkQ7OEdBUFksbUJBQW1CO2tHQUFuQixtQkFBbUIsb01BR25CLHdCQUF3Qix1SEFsQnpCOzs7O0dBSVQsc3JDQVFTLDBCQUEwQixxR0FBRSxnQkFBZ0I7OzJGQUczQyxtQkFBbUI7a0JBakIvQixTQUFTOytCQUNFLGdCQUFnQixZQUNoQjs7OztHQUlULGNBRVcsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLEtBQUssRUFBRSwwQ0FBMEM7cUJBQ2xELFdBQ1EsQ0FBQywwQkFBMEIsRUFBRSxnQkFBZ0IsQ0FBQyxrQkFDdkMsQ0FBQyxtQkFBbUIsQ0FBQzs4QkFNNUIsa0JBQWtCO3NCQUQxQixTQUFTO3VCQUFDLHdCQUF3QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQU5JTUFURURfTElGRUNZQ0xFX1RPS0VOLCBBbmltYXRlZExpZmVjeWNsZURpcmVjdGl2ZSB9IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuaW1wb3J0IHsgU0VMRUNUX0JPRFlfVE9LRU4sIFNlbGVjdEJvZHlEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXQtc2VsZWN0LWJvZHknLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJldC1zZWxlY3QtYm9keS1jb250YWluZXJcIiBldEFuaW1hdGVkTGlmZWN5Y2xlPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJfYm9keVRlbXBsYXRlXCIgLz5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWJvZHkuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LXNlbGVjdC1ib2R5IGV0LXdpdGgtZGVmYXVsdC1hbmltYXRpb24nLFxuICB9LFxuICBpbXBvcnRzOiBbQW5pbWF0ZWRMaWZlY3ljbGVEaXJlY3RpdmUsIE5nVGVtcGxhdGVPdXRsZXRdLFxuICBob3N0RGlyZWN0aXZlczogW1NlbGVjdEJvZHlEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RCb2R5Q29tcG9uZW50IHtcbiAgcmVhZG9ubHkgc2VsZWN0Qm9keSA9IGluamVjdChTRUxFQ1RfQk9EWV9UT0tFTik7XG5cbiAgQFZpZXdDaGlsZChBTklNQVRFRF9MSUZFQ1lDTEVfVE9LRU4sIHsgc3RhdGljOiB0cnVlIH0pXG4gIHJlYWRvbmx5IF9hbmltYXRlZExpZmVjeWNsZT86IEFuaW1hdGVkTGlmZWN5Y2xlRGlyZWN0aXZlO1xuXG4gIF9ib2R5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG59XG4iXX0=
@@ -7,10 +7,10 @@ export class SelectOptionComponent {
7
7
  constructor() {
8
8
  this.selectOption = inject(SELECT_OPTION_TOKEN);
9
9
  }
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SelectOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: SelectOptionComponent, isStandalone: true, selector: "et-select-option", host: { classAttribute: "et-select-option" }, hostDirectives: [{ directive: i1.SelectOptionDirective, inputs: ["value", "value", "disabled", "disabled"] }], ngImport: i0, template: ` <ng-content /> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SelectOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: SelectOptionComponent, isStandalone: true, selector: "et-select-option", host: { classAttribute: "et-select-option" }, hostDirectives: [{ directive: i1.SelectOptionDirective, inputs: ["value", "value", "disabled", "disabled"] }], ngImport: i0, template: ` <ng-content /> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SelectOptionComponent, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SelectOptionComponent, decorators: [{
14
14
  type: Component,
15
15
  args: [{
16
16
  selector: 'et-select-option',
@@ -15,8 +15,8 @@ export class SelectFieldComponent extends DecoratedFormFieldBase {
15
15
  super(...arguments);
16
16
  this.inputState = inject(InputStateService);
17
17
  }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SelectFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: SelectFieldComponent, isStandalone: true, selector: "et-select-field", host: { classAttribute: "et-form-field et-select-field" }, usesInheritance: true, hostDirectives: [{ directive: i1.SelectFieldDirective }, { directive: i2.StaticFormFieldDirective }, { directive: i3.WriteableInputDirective }, { directive: i0.forwardRef(function () { return i4.DynamicFormFieldDirective; }), inputs: ["hideErrorMessage", "hideErrorMessage"] }], ngImport: i0, template: `
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SelectFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
19
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: SelectFieldComponent, isStandalone: true, selector: "et-select-field", host: { classAttribute: "et-form-field et-select-field" }, usesInheritance: true, hostDirectives: [{ directive: i1.SelectFieldDirective }, { directive: i2.StaticFormFieldDirective }, { directive: i3.WriteableInputDirective }, { directive: i0.forwardRef(function () { return i4.DynamicFormFieldDirective; }), inputs: ["hideErrorMessage", "hideErrorMessage"] }], ngImport: i0, template: `
20
20
  <ng-content select="et-label" />
21
21
  <div class="et-select-field-input">
22
22
  <ng-content />
@@ -24,7 +24,7 @@ export class SelectFieldComponent extends DecoratedFormFieldBase {
24
24
  <et-error [errors]="inputState.errors$ | async" />
25
25
  `, isInline: true, dependencies: [{ kind: "component", type: ErrorComponent, selector: "et-error", inputs: ["errors"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SelectFieldComponent, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SelectFieldComponent, decorators: [{
28
28
  type: Component,
29
29
  args: [{
30
30
  selector: 'et-select-field',
@@ -6,10 +6,10 @@ export class SelectFieldDirective {
6
6
  constructor() {
7
7
  this._bindings = createReactiveBindings();
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SelectFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.5", type: SelectFieldDirective, isStandalone: true, providers: [{ provide: SELECT_FIELD_TOKEN, useExisting: SelectFieldDirective }], exportAs: ["etSelectField"], ngImport: i0 }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SelectFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: SelectFieldDirective, isStandalone: true, providers: [{ provide: SELECT_FIELD_TOKEN, useExisting: SelectFieldDirective }], exportAs: ["etSelectField"], ngImport: i0 }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SelectFieldDirective, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SelectFieldDirective, decorators: [{
13
13
  type: Directive,
14
14
  args: [{
15
15
  standalone: true,
@@ -11,10 +11,10 @@ export class SlideToggleComponent extends InputBase {
11
11
  super(...arguments);
12
12
  this.slideToggle = inject(SLIDE_TOGGLE_TOKEN);
13
13
  }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SlideToggleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: SlideToggleComponent, isStandalone: true, selector: "et-slide-toggle", host: { classAttribute: "et-slide-toggle" }, usesInheritance: true, hostDirectives: [{ directive: i1.SlideToggleDirective }, { directive: i2.InputDirective }], ngImport: i0, template: "<button\n [attr.tabindex]=\"(input.disabled$ | async) ? -1 : 0\"\n [attr.aria-checked]=\"slideToggle.checked$ | async\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [attr.aria-required]=\"(input.required$ | async) || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n [disabled]=\"input.disabled$ | async\"\n [attr.id]=\"input.id\"\n (click)=\"slideToggle._onInputInteraction($event)\"\n (blur)=\"slideToggle._controlTouched()\"\n class=\"et-slide-toggle-button\"\n role=\"switch\"\n type=\"button\"\n etNativeInputRef\n>\n <div class=\"et-slide-toggle-handle\"></div>\n</button>\n", styles: [":where(.et-slide-toggle-button){--et-slide-toggle-button-inline-size: 42px;--et-slide-toggle-button-block-size: 22px;--et-slide-toggle-button-border-radius: 9999px;--et-slide-toggle-border-size: 1px;--et-slide-toggle-border-style: solid;--et-slide-toggle-track-unchecked-color: #e0e0e0;--et-slide-toggle-track-checked-color: #ff8686;--et-slide-toggle-border-unchecked-color: var(--et-slide-toggle-track-unchecked-color);--et-slide-toggle-border-checked-color: var(--et-slide-toggle-track-checked-color);--et-slide-toggle-thumb-size: calc( var(--et-slide-toggle-button-block-size) - (var(--et-slide-toggle-thumb-spacing) * 2) );--et-slide-toggle-thumb-spacing: 3px;--et-slide-toggle-border-radius: 9999px;--et-slide-toggle-thumb-unchecked-color: #525252;--et-slide-toggle-thumb-checked-color: var(--et-slide-toggle-thumb-unchecked-color)}:where(.et-slide-toggle){display:inline-block}.et-slide-toggle-button{position:relative;display:block;box-sizing:border-box;inline-size:var(--et-slide-toggle-button-inline-size);block-size:var(--et-slide-toggle-button-block-size);border-radius:var(--et-slide-toggle-button-border-radius);background-color:var(--et-slide-toggle-track-unchecked-color);border:var(--et-slide-toggle-border-size) var(--et-slide-toggle-border-style) var(--et-slide-toggle-border-unchecked-color);padding:0;transition:background-color .2s var(--ease-5),border-color .2s var(--ease-5)}.et-slide-toggle-button:not(:disabled){cursor:pointer}.et-slide-toggle-handle{position:absolute;inset-block-start:calc(var(--et-slide-toggle-thumb-spacing) - var(--et-slide-toggle-border-size));inset-inline-start:calc(var(--et-slide-toggle-thumb-spacing) - var(--et-slide-toggle-border-size));inline-size:var(--et-slide-toggle-thumb-size);block-size:var(--et-slide-toggle-thumb-size);border-radius:var(--et-slide-toggle-border-radius);background-color:var(--et-slide-toggle-thumb-unchecked-color);transition:transform .2s var(--ease-5),background-color .2s var(--ease-5)}.et-slide-toggle--checked .et-slide-toggle-button{background-color:var(--et-slide-toggle-track-checked-color);border-color:var(--et-slide-toggle-border-checked-color)}.et-slide-toggle--checked .et-slide-toggle-handle{transform:translate(calc(var(--et-slide-toggle-button-inline-size) - var(--et-slide-toggle-thumb-size) - var(--et-slide-toggle-thumb-spacing) * 2));background-color:var(--et-slide-toggle-thumb-checked-color)}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NativeInputRefDirective, selector: "input[etNativeInputRef], textarea[etNativeInputRef], select[etNativeInputRef], button[etNativeInputRef]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SlideToggleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: SlideToggleComponent, isStandalone: true, selector: "et-slide-toggle", host: { classAttribute: "et-slide-toggle" }, usesInheritance: true, hostDirectives: [{ directive: i1.SlideToggleDirective }, { directive: i2.InputDirective }], ngImport: i0, template: "<button\n [attr.tabindex]=\"(input.disabled$ | async) ? -1 : 0\"\n [attr.aria-checked]=\"slideToggle.checked$ | async\"\n [attr.aria-labelledby]=\"input.labelId$ | async\"\n [attr.aria-required]=\"(input.required$ | async) || null\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n [disabled]=\"input.disabled$ | async\"\n [attr.id]=\"input.id\"\n (click)=\"slideToggle._onInputInteraction($event)\"\n (blur)=\"slideToggle._controlTouched()\"\n class=\"et-slide-toggle-button\"\n role=\"switch\"\n type=\"button\"\n etNativeInputRef\n>\n <div class=\"et-slide-toggle-handle\"></div>\n</button>\n", styles: [":where(.et-slide-toggle-button){--et-slide-toggle-button-inline-size: 42px;--et-slide-toggle-button-block-size: 22px;--et-slide-toggle-button-border-radius: 9999px;--et-slide-toggle-border-size: 1px;--et-slide-toggle-border-style: solid;--et-slide-toggle-track-unchecked-color: #e0e0e0;--et-slide-toggle-track-checked-color: #ff8686;--et-slide-toggle-border-unchecked-color: var(--et-slide-toggle-track-unchecked-color);--et-slide-toggle-border-checked-color: var(--et-slide-toggle-track-checked-color);--et-slide-toggle-thumb-size: calc( var(--et-slide-toggle-button-block-size) - (var(--et-slide-toggle-thumb-spacing) * 2) );--et-slide-toggle-thumb-spacing: 3px;--et-slide-toggle-border-radius: 9999px;--et-slide-toggle-thumb-unchecked-color: #525252;--et-slide-toggle-thumb-checked-color: var(--et-slide-toggle-thumb-unchecked-color)}:where(.et-slide-toggle){display:inline-block}.et-slide-toggle-button{position:relative;display:block;box-sizing:border-box;inline-size:var(--et-slide-toggle-button-inline-size);block-size:var(--et-slide-toggle-button-block-size);border-radius:var(--et-slide-toggle-button-border-radius);background-color:var(--et-slide-toggle-track-unchecked-color);border:var(--et-slide-toggle-border-size) var(--et-slide-toggle-border-style) var(--et-slide-toggle-border-unchecked-color);padding:0;transition:background-color .2s var(--ease-5),border-color .2s var(--ease-5)}.et-slide-toggle-button:not(:disabled){cursor:pointer}.et-slide-toggle-handle{position:absolute;inset-block-start:calc(var(--et-slide-toggle-thumb-spacing) - var(--et-slide-toggle-border-size));inset-inline-start:calc(var(--et-slide-toggle-thumb-spacing) - var(--et-slide-toggle-border-size));inline-size:var(--et-slide-toggle-thumb-size);block-size:var(--et-slide-toggle-thumb-size);border-radius:var(--et-slide-toggle-border-radius);background-color:var(--et-slide-toggle-thumb-unchecked-color);transition:transform .2s var(--ease-5),background-color .2s var(--ease-5)}.et-slide-toggle--checked .et-slide-toggle-button{background-color:var(--et-slide-toggle-track-checked-color);border-color:var(--et-slide-toggle-border-checked-color)}.et-slide-toggle--checked .et-slide-toggle-handle{transform:translate(calc(var(--et-slide-toggle-button-inline-size) - var(--et-slide-toggle-thumb-size) - var(--et-slide-toggle-thumb-spacing) * 2));background-color:var(--et-slide-toggle-thumb-checked-color)}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NativeInputRefDirective, selector: "input[etNativeInputRef], textarea[etNativeInputRef], select[etNativeInputRef], button[etNativeInputRef]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SlideToggleComponent, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SlideToggleComponent, decorators: [{
18
18
  type: Component,
19
19
  args: [{ selector: 'et-slide-toggle', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
20
20
  class: 'et-slide-toggle',
@@ -11,8 +11,8 @@ export class SlideToggleFieldComponent {
11
11
  constructor() {
12
12
  this.inputState = inject(InputStateService);
13
13
  }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SlideToggleFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: SlideToggleFieldComponent, isStandalone: true, selector: "et-slide-toggle-field", host: { classAttribute: "et-form-field et-slide-toggle-field" }, hostDirectives: [{ directive: i1.StaticFormFieldDirective }, { directive: i2.WriteableInputDirective }, { directive: i0.forwardRef(function () { return i3.DynamicFormFieldDirective; }), inputs: ["hideErrorMessage", "hideErrorMessage"] }], ngImport: i0, template: `
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SlideToggleFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: SlideToggleFieldComponent, isStandalone: true, selector: "et-slide-toggle-field", host: { classAttribute: "et-form-field et-slide-toggle-field" }, hostDirectives: [{ directive: i1.StaticFormFieldDirective }, { directive: i2.WriteableInputDirective }, { directive: i0.forwardRef(function () { return i3.DynamicFormFieldDirective; }), inputs: ["hideErrorMessage", "hideErrorMessage"] }], ngImport: i0, template: `
16
16
  <div class="et-slide-toggle-field-container">
17
17
  <ng-content select="et-slide-toggle" />
18
18
  <ng-content select="et-label" />
@@ -20,7 +20,7 @@ export class SlideToggleFieldComponent {
20
20
  <et-error [errors]="inputState.errors$ | async" />
21
21
  `, isInline: true, dependencies: [{ kind: "component", type: ErrorComponent, selector: "et-error", inputs: ["errors"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SlideToggleFieldComponent, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SlideToggleFieldComponent, decorators: [{
24
24
  type: Component,
25
25
  args: [{
26
26
  selector: 'et-slide-toggle-field',
@@ -26,10 +26,10 @@ export class SlideToggleDirective {
26
26
  this.input._markAsTouched();
27
27
  this.input._setShouldDisplayError(true);
28
28
  }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SlideToggleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
30
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.5", type: SlideToggleDirective, isStandalone: true, providers: [{ provide: SLIDE_TOGGLE_TOKEN, useExisting: SlideToggleDirective }], exportAs: ["etSlideToggle"], ngImport: i0 }); }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SlideToggleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
30
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: SlideToggleDirective, isStandalone: true, providers: [{ provide: SLIDE_TOGGLE_TOKEN, useExisting: SlideToggleDirective }], exportAs: ["etSlideToggle"], ngImport: i0 }); }
31
31
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SlideToggleDirective, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SlideToggleDirective, decorators: [{
33
33
  type: Directive,
34
34
  args: [{
35
35
  standalone: true,
@@ -317,10 +317,10 @@ export class SliderComponent {
317
317
  this._sliderDimensions$.next(this._elementRef.nativeElement.getBoundingClientRect());
318
318
  return this._sliderDimensions$;
319
319
  }
320
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
321
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: SliderComponent, isStandalone: true, selector: "et-slider", inputs: { min: "min", max: "max", step: "step", vertical: "vertical", inverted: "inverted" }, host: { attributes: { "role": "slider" }, properties: { "id": "_input.id" }, classAttribute: "et-slider" }, hostDirectives: [{ directive: i1.InputDirective, inputs: ["autocomplete", "autocomplete"] }], ngImport: i0, template: "<div class=\"et-slider-track-container\">\n <div\n *ngIf=\"trackBackgroundStyles$ | async as trackBackgroundStyles\"\n [style.transform]=\"trackBackgroundStyles.transform\"\n class=\"et-slider-track-background\"\n ></div>\n <div\n *ngIf=\"trackFillStyles$ | async as trackFillStyles\"\n [style.transform]=\"trackFillStyles.transform\"\n [style.display]=\"trackFillStyles.display\"\n class=\"et-slider-track-fill\"\n ></div>\n</div>\n\n<div\n *ngIf=\"thumbContainerStyles$ | async as thumbContainerStyles\"\n [style.transform]=\"thumbContainerStyles.transform\"\n class=\"et-slider-thumb-container\"\n>\n <div class=\"et-slider-thumb\"></div>\n</div>\n", styles: [":where(.et-slider){--et-slider-track-block-size: 2px;--et-slider-track-border-radius: 0;--et-slider-inactive-track-color: #646464;--et-slider-active-track-color: #ffffff;--et-slider-block-size: 32px;--et-slider-min-inline-size: 112px;--et-slider-thumb-target-size: 32px;--et-slider-thumb-size: 12px;--et-slider-thumb-border-radius: 9999px;--et-slider-thumb-color: #ffffff;--et-slider-transition-duration: 80ms;outline:none}.et-slider{position:relative;display:block}.et-slider.et-slider--disable-animations{--et-slider-transition-duration: 0ms}.et-slider[aria-orientation=horizontal]{block-size:var(--et-slider-block-size);min-inline-size:var(--et-slider-min-inline-size)}.et-slider[aria-orientation=horizontal] .et-slider-track-container{inset-block-start:calc(50% - var(--et-slider-track-block-size) / 2);inset-inline-start:0;block-size:var(--et-slider-track-block-size);inline-size:100%}.et-slider[aria-orientation=horizontal] .et-slider-track-fill{block-size:var(--et-slider-track-block-size);inline-size:100%;transform-origin:0 0}.et-slider[aria-orientation=horizontal] .et-slider-track-background{block-size:var(--et-slider-track-block-size);inline-size:100%;transform-origin:100% 100%}.et-slider[aria-orientation=horizontal] .et-slider-thumb-container{inline-size:100%;block-size:0;inset-block-start:50%}.et-slider[aria-orientation=horizontal].et-slider--inverted .et-slider-track-fill{transform-origin:100% 100%}.et-slider[aria-orientation=horizontal].et-slider--inverted .et-slider-track-background{transform-origin:0 0}.et-slider[aria-orientation=vertical]{inline-size:var(--et-slider-block-size);min-block-size:var(--et-slider-min-inline-size)}.et-slider[aria-orientation=vertical] .et-slider-track-container{inset-block-start:0;inset-inline-start:calc(50% - var(--et-slider-track-block-size) / 2);block-size:100%;inline-size:var(--et-slider-track-block-size)}.et-slider[aria-orientation=vertical] .et-slider-track-fill{inline-size:var(--et-slider-track-block-size);block-size:100%;transform-origin:100% 100%}.et-slider[aria-orientation=vertical] .et-slider-track-background{inline-size:var(--et-slider-track-block-size);block-size:100%;transform-origin:0 0}.et-slider[aria-orientation=vertical] .et-slider-thumb-container{inline-size:0;block-size:100%;inset-inline-start:50%}.et-slider[aria-orientation=vertical].et-slider--inverted .et-slider-track-fill{transform-origin:0 0}.et-slider[aria-orientation=vertical].et-slider--inverted .et-slider-track-background,[dir=rtl] .et-slider[aria-orientation=horizontal] .et-slider-track-fill{transform-origin:100% 100%}[dir=rtl] .et-slider[aria-orientation=horizontal] .et-slider-track-background,[dir=rtl] .et-slider[aria-orientation=horizontal].et-slider--inverted .et-slider-track-fill{transform-origin:0 0}[dir=rtl] .et-slider[aria-orientation=horizontal].et-slider--inverted .et-slider-track-background{transform-origin:100% 100%}.et-slider .et-slider-track-container{position:absolute;overflow:hidden}.et-slider .et-slider-track-fill{position:absolute;transition:transform var(--et-slider-transition-duration);background-color:var(--et-slider-active-track-color)}.et-slider .et-slider-track-background{position:absolute;transition:transform var(--et-slider-transition-duration);background-color:var(--et-slider-inactive-track-color)}.et-slider .et-slider-thumb-container{position:absolute;z-index:1;transition:transform var(--et-slider-transition-duration)}.et-slider .et-slider-thumb{position:absolute;inset-inline-end:calc(var(--et-slider-thumb-target-size) / 2 * -1);inset-block-end:calc(var(--et-slider-thumb-target-size) / 2 * -1);inline-size:var(--et-slider-thumb-target-size);block-size:var(--et-slider-thumb-target-size);transition:transform var(--et-slider-transition-duration);display:flex;justify-content:center;align-items:center}.et-slider .et-slider-thumb:after{content:\"\";position:relative;inline-size:var(--et-slider-thumb-size);block-size:var(--et-slider-thumb-size);background-color:var(--et-slider-thumb-color);border-radius:var(--et-slider-thumb-border-radius);cursor:grab}.et-slider.et-slider--is-sliding .et-slider-thumb:after{cursor:grabbing}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
320
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
321
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: SliderComponent, isStandalone: true, selector: "et-slider", inputs: { min: "min", max: "max", step: "step", vertical: "vertical", inverted: "inverted" }, host: { attributes: { "role": "slider" }, properties: { "id": "_input.id" }, classAttribute: "et-slider" }, hostDirectives: [{ directive: i1.InputDirective, inputs: ["autocomplete", "autocomplete"] }], ngImport: i0, template: "<div class=\"et-slider-track-container\">\n <div\n *ngIf=\"trackBackgroundStyles$ | async as trackBackgroundStyles\"\n [style.transform]=\"trackBackgroundStyles.transform\"\n class=\"et-slider-track-background\"\n ></div>\n <div\n *ngIf=\"trackFillStyles$ | async as trackFillStyles\"\n [style.transform]=\"trackFillStyles.transform\"\n [style.display]=\"trackFillStyles.display\"\n class=\"et-slider-track-fill\"\n ></div>\n</div>\n\n<div\n *ngIf=\"thumbContainerStyles$ | async as thumbContainerStyles\"\n [style.transform]=\"thumbContainerStyles.transform\"\n class=\"et-slider-thumb-container\"\n>\n <div class=\"et-slider-thumb\"></div>\n</div>\n", styles: [":where(.et-slider){--et-slider-track-block-size: 2px;--et-slider-track-border-radius: 0;--et-slider-inactive-track-color: #646464;--et-slider-active-track-color: #ffffff;--et-slider-block-size: 32px;--et-slider-min-inline-size: 112px;--et-slider-thumb-target-size: 32px;--et-slider-thumb-size: 12px;--et-slider-thumb-border-radius: 9999px;--et-slider-thumb-color: #ffffff;--et-slider-transition-duration: 80ms;outline:none}.et-slider{position:relative;display:block}.et-slider.et-slider--disable-animations{--et-slider-transition-duration: 0ms}.et-slider[aria-orientation=horizontal]{block-size:var(--et-slider-block-size);min-inline-size:var(--et-slider-min-inline-size)}.et-slider[aria-orientation=horizontal] .et-slider-track-container{inset-block-start:calc(50% - var(--et-slider-track-block-size) / 2);inset-inline-start:0;block-size:var(--et-slider-track-block-size);inline-size:100%}.et-slider[aria-orientation=horizontal] .et-slider-track-fill{block-size:var(--et-slider-track-block-size);inline-size:100%;transform-origin:0 0}.et-slider[aria-orientation=horizontal] .et-slider-track-background{block-size:var(--et-slider-track-block-size);inline-size:100%;transform-origin:100% 100%}.et-slider[aria-orientation=horizontal] .et-slider-thumb-container{inline-size:100%;block-size:0;inset-block-start:50%}.et-slider[aria-orientation=horizontal].et-slider--inverted .et-slider-track-fill{transform-origin:100% 100%}.et-slider[aria-orientation=horizontal].et-slider--inverted .et-slider-track-background{transform-origin:0 0}.et-slider[aria-orientation=vertical]{inline-size:var(--et-slider-block-size);min-block-size:var(--et-slider-min-inline-size)}.et-slider[aria-orientation=vertical] .et-slider-track-container{inset-block-start:0;inset-inline-start:calc(50% - var(--et-slider-track-block-size) / 2);block-size:100%;inline-size:var(--et-slider-track-block-size)}.et-slider[aria-orientation=vertical] .et-slider-track-fill{inline-size:var(--et-slider-track-block-size);block-size:100%;transform-origin:100% 100%}.et-slider[aria-orientation=vertical] .et-slider-track-background{inline-size:var(--et-slider-track-block-size);block-size:100%;transform-origin:0 0}.et-slider[aria-orientation=vertical] .et-slider-thumb-container{inline-size:0;block-size:100%;inset-inline-start:50%}.et-slider[aria-orientation=vertical].et-slider--inverted .et-slider-track-fill{transform-origin:0 0}.et-slider[aria-orientation=vertical].et-slider--inverted .et-slider-track-background,[dir=rtl] .et-slider[aria-orientation=horizontal] .et-slider-track-fill{transform-origin:100% 100%}[dir=rtl] .et-slider[aria-orientation=horizontal] .et-slider-track-background,[dir=rtl] .et-slider[aria-orientation=horizontal].et-slider--inverted .et-slider-track-fill{transform-origin:0 0}[dir=rtl] .et-slider[aria-orientation=horizontal].et-slider--inverted .et-slider-track-background{transform-origin:100% 100%}.et-slider .et-slider-track-container{position:absolute;overflow:hidden}.et-slider .et-slider-track-fill{position:absolute;transition:transform var(--et-slider-transition-duration);background-color:var(--et-slider-active-track-color)}.et-slider .et-slider-track-background{position:absolute;transition:transform var(--et-slider-transition-duration);background-color:var(--et-slider-inactive-track-color)}.et-slider .et-slider-thumb-container{position:absolute;z-index:1;transition:transform var(--et-slider-transition-duration)}.et-slider .et-slider-thumb{position:absolute;inset-inline-end:calc(var(--et-slider-thumb-target-size) / 2 * -1);inset-block-end:calc(var(--et-slider-thumb-target-size) / 2 * -1);inline-size:var(--et-slider-thumb-target-size);block-size:var(--et-slider-thumb-target-size);transition:transform var(--et-slider-transition-duration);display:flex;justify-content:center;align-items:center}.et-slider .et-slider-thumb:after{content:\"\";position:relative;inline-size:var(--et-slider-thumb-size);block-size:var(--et-slider-thumb-size);background-color:var(--et-slider-thumb-color);border-radius:var(--et-slider-thumb-border-radius);cursor:grab}.et-slider.et-slider--is-sliding .et-slider-thumb:after{cursor:grabbing}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
322
322
  }
323
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SliderComponent, decorators: [{
323
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SliderComponent, decorators: [{
324
324
  type: Component,
325
325
  args: [{ selector: 'et-slider', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
326
326
  class: 'et-slider',
@@ -11,8 +11,8 @@ export class SliderFieldComponent {
11
11
  constructor() {
12
12
  this.inputState = inject(InputStateService);
13
13
  }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SliderFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: SliderFieldComponent, isStandalone: true, selector: "et-slider-field", host: { classAttribute: "et-form-field et-slider-field" }, hostDirectives: [{ directive: i1.StaticFormFieldDirective }, { directive: i2.WriteableInputDirective }, { directive: i0.forwardRef(function () { return i3.DynamicFormFieldDirective; }), inputs: ["hideErrorMessage", "hideErrorMessage"] }], ngImport: i0, template: `
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SliderFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: SliderFieldComponent, isStandalone: true, selector: "et-slider-field", host: { classAttribute: "et-form-field et-slider-field" }, hostDirectives: [{ directive: i1.StaticFormFieldDirective }, { directive: i2.WriteableInputDirective }, { directive: i0.forwardRef(function () { return i3.DynamicFormFieldDirective; }), inputs: ["hideErrorMessage", "hideErrorMessage"] }], ngImport: i0, template: `
16
16
  <ng-content select="et-label" />
17
17
  <div class="et-slider-field-container">
18
18
  <ng-content select="et-slider" />
@@ -20,7 +20,7 @@ export class SliderFieldComponent {
20
20
  <et-error [errors]="inputState.errors$ | async" />
21
21
  `, isInline: true, dependencies: [{ kind: "component", type: ErrorComponent, selector: "et-error", inputs: ["errors"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: SliderFieldComponent, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: SliderFieldComponent, decorators: [{
24
24
  type: Component,
25
25
  args: [{
26
26
  selector: 'et-slider-field',
@@ -15,15 +15,15 @@ export class DynamicFormFieldDirective {
15
15
  get hideErrorMessage$() {
16
16
  return this._explicitlyHideErrorMessage$.asObservable();
17
17
  }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: DynamicFormFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
19
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.5", type: DynamicFormFieldDirective, isStandalone: true, inputs: { hideErrorMessage: "hideErrorMessage" }, providers: [
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: DynamicFormFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
19
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: DynamicFormFieldDirective, isStandalone: true, inputs: { hideErrorMessage: "hideErrorMessage" }, providers: [
20
20
  {
21
21
  provide: DYNAMIC_FORM_FIELD_TOKEN,
22
22
  useExisting: DynamicFormFieldDirective,
23
23
  },
24
24
  ], exportAs: ["etDynamicFormField"], ngImport: i0 }); }
25
25
  }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: DynamicFormFieldDirective, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: DynamicFormFieldDirective, decorators: [{
27
27
  type: Directive,
28
28
  args: [{
29
29
  standalone: true,
@@ -15,15 +15,15 @@ export class DynamicFormGroupDirective {
15
15
  get hideErrorMessage$() {
16
16
  return this._explicitlyHideErrorMessage$.asObservable();
17
17
  }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: DynamicFormGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
19
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.5", type: DynamicFormGroupDirective, isStandalone: true, inputs: { hideErrorMessage: "hideErrorMessage" }, providers: [
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: DynamicFormGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
19
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: DynamicFormGroupDirective, isStandalone: true, inputs: { hideErrorMessage: "hideErrorMessage" }, providers: [
20
20
  {
21
21
  provide: DYNAMIC_FORM_GROUP_TOKEN,
22
22
  useExisting: DynamicFormGroupDirective,
23
23
  },
24
24
  ], exportAs: ["etDynamicFormGroup"], ngImport: i0 }); }
25
25
  }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: DynamicFormGroupDirective, decorators: [{
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: DynamicFormGroupDirective, decorators: [{
27
27
  type: Directive,
28
28
  args: [{
29
29
  standalone: true,
@@ -27,10 +27,10 @@ export class IfInputEmptyDirective {
27
27
  }))
28
28
  .subscribe();
29
29
  }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: IfInputEmptyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
31
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.5", type: IfInputEmptyDirective, isStandalone: true, selector: "[etIfInputEmpty]", ngImport: i0 }); }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: IfInputEmptyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
31
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: IfInputEmptyDirective, isStandalone: true, selector: "[etIfInputEmpty]", ngImport: i0 }); }
32
32
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: IfInputEmptyDirective, decorators: [{
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: IfInputEmptyDirective, decorators: [{
34
34
  type: Directive,
35
35
  args: [{
36
36
  selector: '[etIfInputEmpty]',