@ethlete/cdk 3.9.1 → 3.11.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 (321) hide show
  1. package/CHANGELOG.md +20 -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/filter-overlay/components/filter-overlay-page-outlet/filter-overlay-page-outlet.component.mjs +36 -0
  18. package/esm2022/lib/components/filter-overlay/components/filter-overlay-page-outlet/public-api.mjs +2 -0
  19. package/esm2022/lib/components/filter-overlay/components/index.mjs +2 -0
  20. package/esm2022/lib/components/filter-overlay/components/public-api.mjs +2 -0
  21. package/esm2022/lib/components/filter-overlay/constants/filter-overlay.constants.mjs +3 -0
  22. package/esm2022/lib/components/filter-overlay/constants/index.mjs +2 -0
  23. package/esm2022/lib/components/filter-overlay/constants/public-api.mjs +2 -0
  24. package/esm2022/lib/components/filter-overlay/directives/filter-overlay-link/filter-overlay-link.directive.mjs +46 -0
  25. package/esm2022/lib/components/filter-overlay/directives/filter-overlay-link/public-api.mjs +2 -0
  26. package/esm2022/lib/components/filter-overlay/directives/filter-overlay-reset/filter-overlay-reset.directive.mjs +45 -0
  27. package/esm2022/lib/components/filter-overlay/directives/filter-overlay-reset/public-api.mjs +2 -0
  28. package/esm2022/lib/components/filter-overlay/directives/filter-overlay-submit/filter-overlay-submit.directive.mjs +45 -0
  29. package/esm2022/lib/components/filter-overlay/directives/filter-overlay-submit/public-api.mjs +2 -0
  30. package/esm2022/lib/components/filter-overlay/directives/index.mjs +2 -0
  31. package/esm2022/lib/components/filter-overlay/directives/public-api.mjs +4 -0
  32. package/esm2022/lib/components/filter-overlay/filter-overlay.imports.mjs +9 -0
  33. package/esm2022/lib/components/filter-overlay/public-api.mjs +5 -0
  34. package/esm2022/lib/components/filter-overlay/services/filter-overlay.service.mjs +37 -0
  35. package/esm2022/lib/components/filter-overlay/services/public-api.mjs +2 -0
  36. package/esm2022/lib/components/filter-overlay/types/filter-overlay-config.types.mjs +2 -0
  37. package/esm2022/lib/components/filter-overlay/types/index.mjs +2 -0
  38. package/esm2022/lib/components/filter-overlay/types/public-api.mjs +2 -0
  39. package/esm2022/lib/components/filter-overlay/utils/filter-overlay-ref.mjs +50 -0
  40. package/esm2022/lib/components/filter-overlay/utils/index.mjs +2 -0
  41. package/esm2022/lib/components/filter-overlay/utils/public-api.mjs +2 -0
  42. package/esm2022/lib/components/forms/components/checkbox/components/checkbox/checkbox.component.mjs +3 -3
  43. package/esm2022/lib/components/forms/components/checkbox/components/checkbox-field/checkbox-field.component.mjs +3 -3
  44. package/esm2022/lib/components/forms/components/checkbox/components/checkbox-group/checkbox-group.component.mjs +3 -3
  45. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox/checkbox.directive.mjs +3 -3
  46. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-field/checkbox-field.directive.mjs +3 -3
  47. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group/checkbox-group.directive.mjs +3 -3
  48. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group-control/checkbox-group-control.directive.mjs +3 -3
  49. package/esm2022/lib/components/forms/components/error/components/error/error.component.mjs +3 -3
  50. package/esm2022/lib/components/forms/components/input/components/date-input/date-input.component.mjs +3 -3
  51. package/esm2022/lib/components/forms/components/input/components/email-input/email-input.component.mjs +3 -3
  52. package/esm2022/lib/components/forms/components/input/components/input-field/input-field.component.mjs +3 -3
  53. package/esm2022/lib/components/forms/components/input/components/number-input/number-input.component.mjs +3 -3
  54. package/esm2022/lib/components/forms/components/input/components/password-input/password-input.component.mjs +3 -3
  55. package/esm2022/lib/components/forms/components/input/components/search-input/search-input.component.mjs +3 -3
  56. package/esm2022/lib/components/forms/components/input/components/text-input/text-input.component.mjs +3 -3
  57. package/esm2022/lib/components/forms/components/input/components/textarea-input/textarea-input.component.mjs +3 -3
  58. package/esm2022/lib/components/forms/components/input/directives/autosize-textarea/autosize-textarea.directive.mjs +3 -3
  59. package/esm2022/lib/components/forms/components/input/directives/date-input/date-input.directive.mjs +3 -3
  60. package/esm2022/lib/components/forms/components/input/directives/email-input/email-input.directive.mjs +3 -3
  61. package/esm2022/lib/components/forms/components/input/directives/number-input/number-input.directive.mjs +3 -3
  62. package/esm2022/lib/components/forms/components/input/directives/password-input/password-input.directive.mjs +3 -3
  63. package/esm2022/lib/components/forms/components/input/directives/search-input/search-input.directive.mjs +3 -3
  64. package/esm2022/lib/components/forms/components/input/directives/text-input/text-input.directive.mjs +3 -3
  65. package/esm2022/lib/components/forms/components/input/directives/textarea-input/textarea-input.directive.mjs +3 -3
  66. package/esm2022/lib/components/forms/components/input/partials/password-input-toggle/password-input-toggle.component.mjs +3 -3
  67. package/esm2022/lib/components/forms/components/input/partials/search-input-clear/search-input-clear.component.mjs +3 -3
  68. package/esm2022/lib/components/forms/components/label/components/label/label.component.mjs +3 -3
  69. package/esm2022/lib/components/forms/components/label/directives/label-suffix/label-suffix.directive.mjs +3 -3
  70. package/esm2022/lib/components/forms/components/radio/components/radio/radio.component.mjs +3 -3
  71. package/esm2022/lib/components/forms/components/radio/components/radio-field/radio-field.component.mjs +3 -3
  72. package/esm2022/lib/components/forms/components/radio/components/radio-group/radio-group.component.mjs +3 -3
  73. package/esm2022/lib/components/forms/components/radio/directives/radio/radio.directive.mjs +3 -3
  74. package/esm2022/lib/components/forms/components/radio/directives/radio-field/radio-field.directive.mjs +3 -3
  75. package/esm2022/lib/components/forms/components/radio/directives/radio-group/radio-group.directive.mjs +3 -3
  76. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button/segmented-button.component.mjs +3 -3
  77. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-field/segmented-button-field.component.mjs +3 -3
  78. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-group/segmented-button-group.component.mjs +3 -3
  79. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.mjs +3 -3
  80. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-field/segmented-button-field.directive.mjs +3 -3
  81. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-group/segmented-button-group.directive.mjs +3 -3
  82. package/esm2022/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.mjs +8 -4
  83. package/esm2022/lib/components/forms/components/select/components/combobox/constants/combobox.constants.mjs +2 -2
  84. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.mjs +48 -6
  85. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-empty-template/combobox-body-empty-template.directive.mjs +3 -3
  86. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-error-template/combobox-body-error-template.directive.mjs +3 -3
  87. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-loading-template/combobox-body-loading-template.directive.mjs +3 -3
  88. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/combobox-body-more-items-hint-template.directive.mjs +30 -0
  89. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/index.mjs +2 -0
  90. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/public-api.mjs +2 -0
  91. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-option-template/combobox-option-template.directive.mjs +3 -3
  92. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-selected-option-template/combobox-selected-option-template.directive.mjs +3 -3
  93. package/esm2022/lib/components/forms/components/select/components/combobox/directives/public-api.mjs +2 -1
  94. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.mjs +6 -6
  95. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.mjs +3 -3
  96. package/esm2022/lib/components/forms/components/select/components/combobox/types/combobox.types.mjs +1 -1
  97. package/esm2022/lib/components/forms/components/select/components/native-select/components/native-select/native-select.component.mjs +3 -3
  98. package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-input/native-select-input.directive.mjs +3 -3
  99. package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-option/native-select-option.directive.mjs +3 -3
  100. package/esm2022/lib/components/forms/components/select/components/native-select/partials/native-select-option/native-select-option.component.mjs +3 -3
  101. package/esm2022/lib/components/forms/components/select/components/select/components/select/select.component.mjs +3 -3
  102. package/esm2022/lib/components/forms/components/select/components/select/directives/select/select.directive.mjs +3 -3
  103. package/esm2022/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.mjs +3 -3
  104. package/esm2022/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.mjs +3 -3
  105. package/esm2022/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.mjs +3 -3
  106. package/esm2022/lib/components/forms/components/select/components/select/partials/select-option/select-option.component.mjs +3 -3
  107. package/esm2022/lib/components/forms/components/select/components/select-field/select-field.component.mjs +3 -3
  108. package/esm2022/lib/components/forms/components/select/directives/select-field/select-field.directive.mjs +3 -3
  109. package/esm2022/lib/components/forms/components/selection-list/components/selection-list-field/selection-list-field.component.mjs +3 -3
  110. package/esm2022/lib/components/forms/components/selection-list/components/selection-list-option/selection-list-option.component.mjs +3 -3
  111. package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-field/selection-list-field.directive.mjs +3 -3
  112. package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-option/selection-list-option.directive.mjs +3 -3
  113. package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle/slide-toggle.component.mjs +3 -3
  114. package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle-field/slide-toggle-field.component.mjs +3 -3
  115. package/esm2022/lib/components/forms/components/slide-toggle/directives/slide-toggle/slide-toggle.directive.mjs +3 -3
  116. package/esm2022/lib/components/forms/components/slider/components/slider/slider.component.mjs +3 -3
  117. package/esm2022/lib/components/forms/components/slider/components/slider-field/slider-field.component.mjs +3 -3
  118. package/esm2022/lib/components/forms/directives/dynamic-form-field/dynamic-form-field.directive.mjs +3 -3
  119. package/esm2022/lib/components/forms/directives/dynamic-form-group/dynamic-form-group.directive.mjs +3 -3
  120. package/esm2022/lib/components/forms/directives/expose-input-vars/expose-input-vars.directive.mjs +3 -3
  121. package/esm2022/lib/components/forms/directives/if-input-empty/if-input-empty.directive.mjs +3 -3
  122. package/esm2022/lib/components/forms/directives/if-input-filled/if-input-filled.directive.mjs +3 -3
  123. package/esm2022/lib/components/forms/directives/input/input.directive.mjs +3 -3
  124. package/esm2022/lib/components/forms/directives/input-prefix/input-prefix.directive.mjs +3 -3
  125. package/esm2022/lib/components/forms/directives/input-suffix/input-suffix.directive.mjs +3 -3
  126. package/esm2022/lib/components/forms/directives/native-input-ref/native-input-ref.directive.mjs +3 -3
  127. package/esm2022/lib/components/forms/directives/static-form-field/static-form-field.directive.mjs +3 -3
  128. package/esm2022/lib/components/forms/directives/static-form-group/static-form-group.directive.mjs +3 -3
  129. package/esm2022/lib/components/forms/directives/writeable-input/writeable-input.directive.mjs +3 -3
  130. package/esm2022/lib/components/forms/services/default-validator-errors.service.mjs +3 -3
  131. package/esm2022/lib/components/forms/services/form-field-state.service.mjs +3 -3
  132. package/esm2022/lib/components/forms/services/form-group-state.service.mjs +3 -3
  133. package/esm2022/lib/components/forms/services/input-state.service.mjs +3 -3
  134. package/esm2022/lib/components/forms/utils/decorated-form-field.base.mjs +3 -3
  135. package/esm2022/lib/components/forms/utils/decorated-input.base.mjs +3 -3
  136. package/esm2022/lib/components/forms/utils/input.base.mjs +3 -3
  137. package/esm2022/lib/components/icons/chevron-icon/chevron-icon.component.mjs +3 -3
  138. package/esm2022/lib/components/masonry/components/masonry/masonry.component.mjs +3 -3
  139. package/esm2022/lib/components/masonry/partials/masonry-item/masonry-item.component.mjs +3 -3
  140. package/esm2022/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/bottom-sheet-container.component.mjs +3 -3
  141. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/bottom-sheet-container-base.component.mjs +3 -3
  142. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/bottom-sheet-drag-handle.component.mjs +3 -3
  143. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-title/bottom-sheet-title.directive.mjs +3 -3
  144. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-base.service.mjs +3 -3
  145. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-swipe-handler.service.mjs +12 -6
  146. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet.service.mjs +7 -4
  147. package/esm2022/lib/components/overlay/components/dialog/components/dialog-container/dialog-container.component.mjs +3 -3
  148. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-close/dialog-close.directive.mjs +3 -3
  149. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-container-base/dialog-container-base.component.mjs +3 -3
  150. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-title/dialog-title.directive.mjs +3 -3
  151. package/esm2022/lib/components/overlay/components/dialog/services/dialog-base.service.mjs +3 -3
  152. package/esm2022/lib/components/overlay/components/dialog/services/dialog.service.mjs +7 -4
  153. package/esm2022/lib/components/overlay/components/menu/context-menu-trigger.mjs +6 -6
  154. package/esm2022/lib/components/overlay/components/menu/menu-aim.mjs +6 -6
  155. package/esm2022/lib/components/overlay/components/menu/menu-bar.mjs +3 -3
  156. package/esm2022/lib/components/overlay/components/menu/menu-base.mjs +3 -3
  157. package/esm2022/lib/components/overlay/components/menu/menu-group.mjs +3 -3
  158. package/esm2022/lib/components/overlay/components/menu/menu-item-checkbox.mjs +3 -3
  159. package/esm2022/lib/components/overlay/components/menu/menu-item-radio.mjs +3 -3
  160. package/esm2022/lib/components/overlay/components/menu/menu-item-selectable.mjs +3 -3
  161. package/esm2022/lib/components/overlay/components/menu/menu-item.mjs +3 -3
  162. package/esm2022/lib/components/overlay/components/menu/menu-module.mjs +4 -4
  163. package/esm2022/lib/components/overlay/components/menu/menu-stack.mjs +3 -3
  164. package/esm2022/lib/components/overlay/components/menu/menu-trigger-base.mjs +3 -3
  165. package/esm2022/lib/components/overlay/components/menu/menu-trigger.mjs +3 -3
  166. package/esm2022/lib/components/overlay/components/menu/menu.mjs +3 -3
  167. package/esm2022/lib/components/overlay/components/overlay/components/index.mjs +2 -0
  168. package/esm2022/lib/components/overlay/components/overlay/components/overlay-container/overlay-container.component.mjs +272 -0
  169. package/esm2022/lib/components/overlay/components/overlay/components/overlay-container/public-api.mjs +2 -0
  170. package/esm2022/lib/components/overlay/components/overlay/components/public-api.mjs +2 -0
  171. package/esm2022/lib/components/overlay/components/overlay/constants/index.mjs +2 -0
  172. package/esm2022/lib/components/overlay/components/overlay/constants/overlay.constants.mjs +36 -0
  173. package/esm2022/lib/components/overlay/components/overlay/constants/public-api.mjs +2 -0
  174. package/esm2022/lib/components/overlay/components/overlay/overlay.imports.mjs +10 -0
  175. package/esm2022/lib/components/overlay/components/overlay/partials/index.mjs +2 -0
  176. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-close/overlay-close.directive.mjs +61 -0
  177. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-close/public-api.mjs +2 -0
  178. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-title/overlay-title.directive.mjs +39 -0
  179. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-title/public-api.mjs +2 -0
  180. package/esm2022/lib/components/overlay/components/overlay/partials/public-api.mjs +3 -0
  181. package/esm2022/lib/components/overlay/components/overlay/public-api.mjs +8 -0
  182. package/esm2022/lib/components/overlay/components/overlay/services/index.mjs +2 -0
  183. package/esm2022/lib/components/overlay/components/overlay/services/overlay.service.mjs +244 -0
  184. package/esm2022/lib/components/overlay/components/overlay/services/public-api.mjs +2 -0
  185. package/esm2022/lib/components/overlay/components/overlay/types/index.mjs +2 -0
  186. package/esm2022/lib/components/overlay/components/overlay/types/overlay.types.mjs +6 -0
  187. package/esm2022/lib/components/overlay/components/overlay/types/public-api.mjs +2 -0
  188. package/esm2022/lib/components/overlay/components/overlay/utils/index.mjs +2 -0
  189. package/esm2022/lib/components/overlay/components/overlay/utils/overlay-config.mjs +7 -0
  190. package/esm2022/lib/components/overlay/components/overlay/utils/overlay-position-builder.mjs +170 -0
  191. package/esm2022/lib/components/overlay/components/overlay/utils/overlay-ref.mjs +119 -0
  192. package/esm2022/lib/components/overlay/components/overlay/utils/overlay.utils.mjs +13 -0
  193. package/esm2022/lib/components/overlay/components/overlay/utils/public-api.mjs +5 -0
  194. package/esm2022/lib/components/overlay/components/public-api.mjs +2 -1
  195. package/esm2022/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.mjs +3 -3
  196. package/esm2022/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.mjs +3 -3
  197. package/esm2022/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.mjs +3 -3
  198. package/esm2022/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.mjs +3 -3
  199. package/esm2022/lib/components/overlay/directives/dynamic-overlay-title/dynamic-overlay-title.directive.mjs +3 -3
  200. package/esm2022/lib/components/overlay/index.mjs +2 -0
  201. package/esm2022/lib/components/overlay/services/dynamic-overlay.service.mjs +3 -3
  202. package/esm2022/lib/components/pagination/components/pagination/pagination.component.mjs +5 -5
  203. package/esm2022/lib/components/pagination/partials/pagination-link/pagination-link.directive.mjs +3 -3
  204. package/esm2022/lib/components/pagination/services/pagination-head.service.mjs +3 -3
  205. package/esm2022/lib/components/picture/picture-data.directive.mjs +3 -3
  206. package/esm2022/lib/components/picture/picture.component.mjs +3 -3
  207. package/esm2022/lib/components/progress-spinner/progress-spinner.component.mjs +3 -3
  208. package/esm2022/lib/components/public-api.mjs +2 -1
  209. package/esm2022/lib/components/query-error/components/query-error/query-error.component.mjs +3 -3
  210. package/esm2022/lib/components/query-error/directives/query-error/query-error.directive.mjs +3 -3
  211. package/esm2022/lib/components/scrollable/components/scrollable/scrollable.component.mjs +3 -3
  212. package/esm2022/lib/components/skeleton/components/skeleton/skeleton.component.mjs +3 -3
  213. package/esm2022/lib/components/skeleton/partials/skeleton-item/skeleton-item.component.mjs +3 -3
  214. package/esm2022/lib/components/sort/components/sort-header/sort-header.component.mjs +3 -3
  215. package/esm2022/lib/components/sort/partials/sort/sort.directive.mjs +3 -3
  216. package/esm2022/lib/components/sort/services/sort-header-intl.mjs +3 -3
  217. package/esm2022/lib/components/table/components/table/table.component.mjs +3 -3
  218. package/esm2022/lib/components/table/partials/cells/cell/cell.directive.mjs +3 -3
  219. package/esm2022/lib/components/table/partials/cells/cell-def/cell-def.directive.mjs +3 -3
  220. package/esm2022/lib/components/table/partials/cells/column-def/column-def.directive.mjs +3 -3
  221. package/esm2022/lib/components/table/partials/cells/footer-cell/footer-cell.directive.mjs +3 -3
  222. package/esm2022/lib/components/table/partials/cells/footer-cell-def/footer-cell-def.directive.mjs +3 -3
  223. package/esm2022/lib/components/table/partials/cells/header-cell/header-cell.directive.mjs +3 -3
  224. package/esm2022/lib/components/table/partials/cells/header-cell-def/header-cell-def.directive.mjs +3 -3
  225. package/esm2022/lib/components/table/partials/cells/text-column/text-column.component.mjs +3 -3
  226. package/esm2022/lib/components/table/partials/rows/footer-row/footer-row.component.mjs +3 -3
  227. package/esm2022/lib/components/table/partials/rows/footer-row-def/footer-row-def.directive.mjs +3 -3
  228. package/esm2022/lib/components/table/partials/rows/header-row/header-row.component.mjs +3 -3
  229. package/esm2022/lib/components/table/partials/rows/header-row-def/header-row-def.directive.mjs +3 -3
  230. package/esm2022/lib/components/table/partials/rows/no-data-row/no-data-row.directive.mjs +3 -3
  231. package/esm2022/lib/components/table/partials/rows/recycle-rows/recycle-rows.directive.mjs +3 -3
  232. package/esm2022/lib/components/table/partials/rows/row/row.component.mjs +3 -3
  233. package/esm2022/lib/components/table/partials/rows/row-def/row-def.directive.mjs +3 -3
  234. package/esm2022/lib/components/table/partials/table-busy/table-busy.directive.mjs +3 -3
  235. package/esm2022/lib/components/table/partials/table-busy-outlet/table-busy-outlet.directive.mjs +3 -3
  236. package/esm2022/lib/components/tabs/components/inline-tabs/inline-tabs.component.mjs +3 -3
  237. package/esm2022/lib/components/tabs/components/nav-tabs/nav-tabs.component.mjs +3 -3
  238. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab/inline-tab.component.mjs +3 -3
  239. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body/inline-tab-body.component.mjs +3 -3
  240. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body-host/inline-tab-body-host.directive.mjs +3 -3
  241. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-content/inline-tab-content.directive.mjs +3 -3
  242. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-header/inline-tab-header.component.mjs +3 -3
  243. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label/inline-tab-label.directive.mjs +3 -3
  244. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/inline-tab-label-wrapper.directive.mjs +3 -3
  245. package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tab-link/nav-tab-link.directive.mjs +3 -3
  246. package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/nav-tabs-outlet.component.mjs +3 -3
  247. package/esm2022/lib/components/tabs/utils/active-tab-underline.util.mjs +3 -3
  248. package/esm2022/lib/components/tabs/utils/paginated-tab-header.directive.mjs +3 -3
  249. package/esm2022/lib/services/swipe-handler.service.mjs +28 -14
  250. package/esm2022/lib/types/swipe.types.mjs +1 -1
  251. package/fesm2022/ethlete-cdk.mjs +8574 -7297
  252. package/fesm2022/ethlete-cdk.mjs.map +1 -1
  253. package/lib/components/filter-overlay/components/filter-overlay-page-outlet/filter-overlay-page-outlet.component.d.ts +9 -0
  254. package/lib/components/filter-overlay/components/filter-overlay-page-outlet/public-api.d.ts +1 -0
  255. package/lib/components/filter-overlay/components/index.d.ts +1 -0
  256. package/lib/components/filter-overlay/components/public-api.d.ts +1 -0
  257. package/lib/components/filter-overlay/constants/filter-overlay.constants.d.ts +3 -0
  258. package/lib/components/filter-overlay/constants/index.d.ts +1 -0
  259. package/lib/components/filter-overlay/constants/public-api.d.ts +1 -0
  260. package/lib/components/filter-overlay/directives/filter-overlay-link/filter-overlay-link.directive.d.ts +11 -0
  261. package/lib/components/filter-overlay/directives/filter-overlay-link/public-api.d.ts +1 -0
  262. package/lib/components/filter-overlay/directives/filter-overlay-reset/filter-overlay-reset.directive.d.ts +11 -0
  263. package/lib/components/filter-overlay/directives/filter-overlay-reset/public-api.d.ts +1 -0
  264. package/lib/components/filter-overlay/directives/filter-overlay-submit/filter-overlay-submit.directive.d.ts +11 -0
  265. package/lib/components/filter-overlay/directives/filter-overlay-submit/public-api.d.ts +1 -0
  266. package/lib/components/filter-overlay/directives/index.d.ts +1 -0
  267. package/lib/components/filter-overlay/directives/public-api.d.ts +3 -0
  268. package/lib/components/filter-overlay/filter-overlay.imports.d.ts +3 -0
  269. package/lib/components/filter-overlay/public-api.d.ts +4 -0
  270. package/lib/components/filter-overlay/services/filter-overlay.service.d.ts +13 -0
  271. package/lib/components/filter-overlay/services/public-api.d.ts +1 -0
  272. package/lib/components/filter-overlay/types/filter-overlay-config.types.d.ts +26 -0
  273. package/lib/components/filter-overlay/types/index.d.ts +1 -0
  274. package/lib/components/filter-overlay/types/public-api.d.ts +1 -0
  275. package/lib/components/filter-overlay/utils/filter-overlay-ref.d.ts +16 -0
  276. package/lib/components/filter-overlay/utils/index.d.ts +1 -0
  277. package/lib/components/filter-overlay/utils/public-api.d.ts +1 -0
  278. package/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.d.ts +1 -1
  279. package/lib/components/forms/components/select/components/combobox/constants/combobox.constants.d.ts +1 -1
  280. package/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.d.ts +22 -2
  281. package/lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/combobox-body-more-items-hint-template.directive.d.ts +8 -0
  282. package/lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/index.d.ts +1 -0
  283. package/lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/public-api.d.ts +1 -0
  284. package/lib/components/forms/components/select/components/combobox/directives/public-api.d.ts +1 -0
  285. package/lib/components/forms/components/select/components/combobox/types/combobox.types.d.ts +9 -1
  286. package/lib/components/overlay/components/bottom-sheet/services/bottom-sheet.service.d.ts +3 -0
  287. package/lib/components/overlay/components/dialog/services/dialog.service.d.ts +3 -0
  288. package/lib/components/overlay/components/overlay/components/index.d.ts +1 -0
  289. package/lib/components/overlay/components/overlay/components/overlay-container/overlay-container.component.d.ts +26 -0
  290. package/lib/components/overlay/components/overlay/components/overlay-container/public-api.d.ts +1 -0
  291. package/lib/components/overlay/components/overlay/components/public-api.d.ts +1 -0
  292. package/lib/components/overlay/components/overlay/constants/index.d.ts +1 -0
  293. package/lib/components/overlay/components/overlay/constants/overlay.constants.d.ts +15 -0
  294. package/lib/components/overlay/components/overlay/constants/public-api.d.ts +1 -0
  295. package/lib/components/overlay/components/overlay/overlay.imports.d.ts +14 -0
  296. package/lib/components/overlay/components/overlay/partials/index.d.ts +1 -0
  297. package/lib/components/overlay/components/overlay/partials/overlay-close/overlay-close.directive.d.ts +15 -0
  298. package/lib/components/overlay/components/overlay/partials/overlay-close/public-api.d.ts +1 -0
  299. package/lib/components/overlay/components/overlay/partials/overlay-title/overlay-title.directive.d.ts +11 -0
  300. package/lib/components/overlay/components/overlay/partials/overlay-title/public-api.d.ts +1 -0
  301. package/lib/components/overlay/components/overlay/partials/public-api.d.ts +2 -0
  302. package/lib/components/overlay/components/overlay/public-api.d.ts +7 -0
  303. package/lib/components/overlay/components/overlay/services/index.d.ts +1 -0
  304. package/lib/components/overlay/components/overlay/services/overlay.service.d.ts +31 -0
  305. package/lib/components/overlay/components/overlay/services/public-api.d.ts +1 -0
  306. package/lib/components/overlay/components/overlay/types/index.d.ts +1 -0
  307. package/lib/components/overlay/components/overlay/types/overlay.types.d.ts +183 -0
  308. package/lib/components/overlay/components/overlay/types/public-api.d.ts +1 -0
  309. package/lib/components/overlay/components/overlay/utils/index.d.ts +1 -0
  310. package/lib/components/overlay/components/overlay/utils/overlay-config.d.ts +2 -0
  311. package/lib/components/overlay/components/overlay/utils/overlay-position-builder.d.ts +100 -0
  312. package/lib/components/overlay/components/overlay/utils/overlay-ref.d.ts +34 -0
  313. package/lib/components/overlay/components/overlay/utils/overlay.utils.d.ts +8 -0
  314. package/lib/components/overlay/components/overlay/utils/public-api.d.ts +4 -0
  315. package/lib/components/overlay/components/public-api.d.ts +1 -0
  316. package/lib/components/overlay/index.d.ts +1 -0
  317. package/lib/components/public-api.d.ts +1 -0
  318. package/lib/services/swipe-handler.service.d.ts +4 -4
  319. package/lib/types/swipe.types.d.ts +6 -2
  320. package/package.json +4 -4
  321. package/src/lib/styles/cdk.css +7 -0
@@ -0,0 +1,39 @@
1
+ import { Directive, ElementRef, HostBinding, inject, Input } from '@angular/core';
2
+ import { OverlayService } from '../../services';
3
+ import { getClosestOverlay, OverlayRef } from '../../utils';
4
+ import * as i0 from "@angular/core";
5
+ let uniqueId = 0;
6
+ export class OverlayTitleDirective {
7
+ constructor() {
8
+ this._overlayRef = inject(OverlayRef, { optional: true });
9
+ this._elementRef = inject(ElementRef);
10
+ this._overlayService = inject(OverlayService);
11
+ this.id = `et-overlay-title-${uniqueId++}`;
12
+ }
13
+ ngOnInit() {
14
+ if (!this._overlayRef) {
15
+ const closestRef = getClosestOverlay(this._elementRef, this._overlayService.openOverlays);
16
+ if (!closestRef) {
17
+ throw Error('No closest ref found');
18
+ }
19
+ this._overlayRef = closestRef;
20
+ }
21
+ Promise.resolve().then(() => this._overlayRef?._containerInstance?._ariaLabelledByQueue?.push(this.id));
22
+ }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: OverlayTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
24
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: OverlayTitleDirective, isStandalone: true, selector: "[et-overlay-title], [etOverlayTitle]", inputs: { id: "id" }, host: { properties: { "attr.id": "this.id" } }, exportAs: ["etOverlayTitle"], ngImport: i0 }); }
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: OverlayTitleDirective, decorators: [{
27
+ type: Directive,
28
+ args: [{
29
+ selector: '[et-overlay-title], [etOverlayTitle]',
30
+ exportAs: 'etOverlayTitle',
31
+ standalone: true,
32
+ }]
33
+ }], propDecorators: { id: [{
34
+ type: Input
35
+ }, {
36
+ type: HostBinding,
37
+ args: ['attr.id']
38
+ }] } });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS10aXRsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9jb21wb25lbnRzL292ZXJsYXkvcGFydGlhbHMvb3ZlcmxheS10aXRsZS9vdmVybGF5LXRpdGxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFFNUQsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBT2pCLE1BQU0sT0FBTyxxQkFBcUI7SUFMbEM7UUFNVSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1QyxnQkFBVyxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFDMUQsb0JBQWUsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFJMUQsT0FBRSxHQUFHLG9CQUFvQixRQUFRLEVBQUUsRUFBRSxDQUFDO0tBZXZDO0lBYkMsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLE1BQU0sVUFBVSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUUxRixJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNmLE1BQU0sS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7YUFDckM7WUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztTQUMvQjtRQUVELE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUcsQ0FBQzs4R0FyQlUscUJBQXFCO2tHQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBTGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNDQUFzQztvQkFDaEQsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQVFDLEVBQUU7c0JBRkQsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgaW5qZWN0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPdmVybGF5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IGdldENsb3Nlc3RPdmVybGF5LCBPdmVybGF5UmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5sZXQgdW5pcXVlSWQgPSAwO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZXQtb3ZlcmxheS10aXRsZV0sIFtldE92ZXJsYXlUaXRsZV0nLFxuICBleHBvcnRBczogJ2V0T3ZlcmxheVRpdGxlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgT3ZlcmxheVRpdGxlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBfb3ZlcmxheVJlZiA9IGluamVjdChPdmVybGF5UmVmLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfb3ZlcmxheVNlcnZpY2UgPSBpbmplY3QoT3ZlcmxheVNlcnZpY2UpO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gIGlkID0gYGV0LW92ZXJsYXktdGl0bGUtJHt1bmlxdWVJZCsrfWA7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLl9vdmVybGF5UmVmKSB7XG4gICAgICBjb25zdCBjbG9zZXN0UmVmID0gZ2V0Q2xvc2VzdE92ZXJsYXkodGhpcy5fZWxlbWVudFJlZiwgdGhpcy5fb3ZlcmxheVNlcnZpY2Uub3Blbk92ZXJsYXlzKTtcblxuICAgICAgaWYgKCFjbG9zZXN0UmVmKSB7XG4gICAgICAgIHRocm93IEVycm9yKCdObyBjbG9zZXN0IHJlZiBmb3VuZCcpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9vdmVybGF5UmVmID0gY2xvc2VzdFJlZjtcbiAgICB9XG5cbiAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHRoaXMuX292ZXJsYXlSZWY/Ll9jb250YWluZXJJbnN0YW5jZT8uX2FyaWFMYWJlbGxlZEJ5UXVldWU/LnB1c2godGhpcy5pZCkpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './overlay-title.directive';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9vdmVybGF5L2NvbXBvbmVudHMvb3ZlcmxheS9wYXJ0aWFscy9vdmVybGF5LXRpdGxlL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vb3ZlcmxheS10aXRsZS5kaXJlY3RpdmUnO1xuIl19
@@ -0,0 +1,3 @@
1
+ export * from './overlay-close/public-api';
2
+ export * from './overlay-title/public-api';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9vdmVybGF5L2NvbXBvbmVudHMvb3ZlcmxheS9wYXJ0aWFscy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vb3ZlcmxheS1jbG9zZS9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vb3ZlcmxheS10aXRsZS9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,8 @@
1
+ export * from './components/public-api';
2
+ export * from './constants/public-api';
3
+ export * from './overlay.imports';
4
+ export * from './partials/public-api';
5
+ export * from './services/public-api';
6
+ export * from './types/public-api';
7
+ export * from './utils/public-api';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9vdmVybGF5L2NvbXBvbmVudHMvb3ZlcmxheS9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cy9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vb3ZlcmxheS5pbXBvcnRzJztcbmV4cG9ydCAqIGZyb20gJy4vcGFydGlhbHMvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMvcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9jb21wb25lbnRzL292ZXJsYXkvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,244 @@
1
+ import { coerceCssPixelValue } from '@angular/cdk/coercion';
2
+ import { Dialog as CdkDialog, DialogConfig as CdkDialogConfig } from '@angular/cdk/dialog';
3
+ import { Injectable, inject } from '@angular/core';
4
+ import { ViewportService, createDestroy, equal } from '@ethlete/core';
5
+ import { Subject, combineLatest, defer, map, of, pairwise, startWith, takeUntil, tap } from 'rxjs';
6
+ import { OverlayContainerComponent } from '../components';
7
+ import { OVERLAY_CONFIG, OVERLAY_DATA, OVERLAY_DEFAULT_OPTIONS, OVERLAY_SCROLL_STRATEGY } from '../constants';
8
+ import { ET_OVERLAY_BOTTOM_SHEET_CLASS, ET_OVERLAY_LEFT_SHEET_CLASS, ET_OVERLAY_RIGHT_SHEET_CLASS, ET_OVERLAY_TOP_SHEET_CLASS, OverlayPositionBuilder, OverlayRef, createOverlayConfig, } from '../utils';
9
+ import * as i0 from "@angular/core";
10
+ let uniqueId = 0;
11
+ const ID_PREFIX = 'et-overlay-';
12
+ const setStyle = (el, style, value) => {
13
+ if (value === null || value === undefined) {
14
+ el.style.removeProperty(style);
15
+ }
16
+ else {
17
+ el.style.setProperty(style, coerceCssPixelValue(value));
18
+ }
19
+ };
20
+ const setClass = (el, prevClass, currClass) => {
21
+ if (!equal(prevClass, currClass)) {
22
+ if (prevClass) {
23
+ if (Array.isArray(prevClass)) {
24
+ el.classList.remove(...prevClass);
25
+ }
26
+ else {
27
+ el.classList.remove(prevClass);
28
+ }
29
+ }
30
+ if (currClass) {
31
+ if (Array.isArray(currClass)) {
32
+ el.classList.add(...currClass);
33
+ }
34
+ else {
35
+ el.classList.add(currClass);
36
+ }
37
+ }
38
+ }
39
+ };
40
+ export class OverlayService {
41
+ constructor() {
42
+ this._destroy$ = createDestroy();
43
+ this._defaultOptions = inject(OVERLAY_DEFAULT_OPTIONS, { optional: true });
44
+ this._scrollStrategy = inject(OVERLAY_SCROLL_STRATEGY);
45
+ this._parentOverlayService = inject(OverlayService, { optional: true, skipSelf: true });
46
+ this._dialog = inject(CdkDialog);
47
+ this._viewportService = inject(ViewportService);
48
+ this._openOverlaysAtThisLevel = [];
49
+ this._afterAllClosedAtThisLevel = new Subject();
50
+ this._afterOpenedAtThisLevel = new Subject();
51
+ this.positions = new OverlayPositionBuilder();
52
+ this.afterAllClosed = defer(() => this.openOverlays.length ? this._getAfterAllClosed() : this._getAfterAllClosed().pipe(startWith(undefined)));
53
+ }
54
+ get openOverlays() {
55
+ return this._parentOverlayService ? this._parentOverlayService.openOverlays : this._openOverlaysAtThisLevel;
56
+ }
57
+ get afterOpened() {
58
+ return this._parentOverlayService ? this._parentOverlayService.afterOpened : this._afterOpenedAtThisLevel;
59
+ }
60
+ ngOnDestroy() {
61
+ this._closeOverlays(this._openOverlaysAtThisLevel);
62
+ this._afterAllClosedAtThisLevel.complete();
63
+ this._afterOpenedAtThisLevel.complete();
64
+ }
65
+ open(componentOrTemplateRef, config) {
66
+ let overlayRef;
67
+ const composedConfig = createOverlayConfig(this._defaultOptions, config);
68
+ composedConfig.id = composedConfig.id || `${ID_PREFIX}${uniqueId++}`;
69
+ composedConfig.scrollStrategy = composedConfig.scrollStrategy || this._scrollStrategy();
70
+ const cdkRef = this._dialog.open(componentOrTemplateRef, {
71
+ ...composedConfig,
72
+ disableClose: true,
73
+ closeOnDestroy: false,
74
+ panelClass: 'et-overlay-pane',
75
+ container: {
76
+ type: OverlayContainerComponent,
77
+ providers: () => [
78
+ { provide: OVERLAY_CONFIG, useValue: composedConfig },
79
+ { provide: CdkDialogConfig, useValue: composedConfig },
80
+ ],
81
+ },
82
+ templateContext: () => ({ dialogRef: overlayRef }),
83
+ providers: (ref, cdkConfig, overlayContainer) => {
84
+ overlayRef = new OverlayRef(ref, composedConfig, overlayContainer);
85
+ return [
86
+ { provide: OverlayContainerComponent, useValue: overlayContainer },
87
+ { provide: OVERLAY_DATA, useValue: cdkConfig.data },
88
+ { provide: OverlayRef, useValue: overlayRef },
89
+ ...(composedConfig.providers ?? []),
90
+ ];
91
+ },
92
+ });
93
+ /* eslint-disable @typescript-eslint/no-non-null-assertion*/
94
+ overlayRef.componentRef = cdkRef.componentRef;
95
+ overlayRef.componentInstance = cdkRef.componentInstance;
96
+ cdkRef.containerInstance.overlayRef = overlayRef;
97
+ combineLatest(composedConfig.positions.map((breakpoint) => (breakpoint.breakpoint ? this._viewportService.observe({ min: breakpoint.breakpoint }) : of(true)).pipe(map((isActive) => ({
98
+ isActive,
99
+ config: breakpoint.config,
100
+ size: typeof breakpoint.breakpoint === 'number'
101
+ ? breakpoint.breakpoint
102
+ : breakpoint.breakpoint === undefined
103
+ ? 0
104
+ : this._viewportService.getBreakpointSize(breakpoint.breakpoint, 'min'),
105
+ })))))
106
+ .pipe(takeUntil(overlayRef.afterClosed()), takeUntil(this._destroy$), map((entries) => {
107
+ const activeBreakpoints = entries.filter((entry) => entry.isActive);
108
+ const highestBreakpoint = activeBreakpoints.reduce((prev, curr) => (prev.size > curr.size ? prev : curr));
109
+ return highestBreakpoint.config;
110
+ }), startWith(null), pairwise(), tap(([prevConfig, currConfig]) => {
111
+ if (!currConfig)
112
+ return;
113
+ const overlayPaneEl = cdkRef.overlayRef.overlayElement;
114
+ const containerEl = overlayRef._containerInstance.elementRef.nativeElement;
115
+ const backdropEl = cdkRef.overlayRef.backdropElement;
116
+ const overlayWrapper = cdkRef.overlayRef.hostElement;
117
+ const defaultAnimationBuffer = 50; // 50px since the default animation uses spring physics and thus will overshoot.
118
+ const useDefaultAnimation = composedConfig.customAnimated !== true;
119
+ const containerClass = currConfig.containerClass;
120
+ const applyDefaultMaxWidths = () => {
121
+ setStyle(overlayPaneEl, 'max-width', currConfig.maxWidth);
122
+ setStyle(overlayPaneEl, 'max-height', currConfig.maxHeight);
123
+ };
124
+ const combineOrMakeCalc = (value, append) => {
125
+ if (!value)
126
+ return append;
127
+ if (typeof value === 'number') {
128
+ return `calc(${value}px + ${append})`;
129
+ }
130
+ else if (value.startsWith('calc(')) {
131
+ return `${value.slice(0, value.length - 1)} + ${append})`;
132
+ }
133
+ return `calc(${value} + ${append})`;
134
+ };
135
+ if (useDefaultAnimation && containerClass?.length) {
136
+ if (containerClass?.includes(ET_OVERLAY_LEFT_SHEET_CLASS) ||
137
+ containerClass?.includes(ET_OVERLAY_RIGHT_SHEET_CLASS)) {
138
+ setStyle(overlayPaneEl, 'max-width', combineOrMakeCalc(currConfig.maxWidth, `${defaultAnimationBuffer}px`));
139
+ setStyle(overlayPaneEl, 'max-height', currConfig.maxHeight);
140
+ }
141
+ else if (containerClass?.includes(ET_OVERLAY_TOP_SHEET_CLASS) ||
142
+ containerClass?.includes(ET_OVERLAY_BOTTOM_SHEET_CLASS)) {
143
+ setStyle(overlayPaneEl, 'max-height', combineOrMakeCalc(currConfig.maxHeight, `${defaultAnimationBuffer}px`));
144
+ setStyle(overlayPaneEl, 'max-width', currConfig.maxWidth);
145
+ }
146
+ else {
147
+ applyDefaultMaxWidths();
148
+ }
149
+ }
150
+ else {
151
+ applyDefaultMaxWidths();
152
+ }
153
+ setStyle(overlayPaneEl, 'min-width', currConfig.minWidth);
154
+ setStyle(overlayPaneEl, 'min-height', currConfig.minHeight);
155
+ setStyle(overlayPaneEl, 'width', currConfig.width);
156
+ setStyle(overlayPaneEl, 'height', currConfig.height);
157
+ setClass(containerEl, prevConfig?.containerClass, currConfig?.containerClass);
158
+ setClass(overlayPaneEl, prevConfig?.paneClass, currConfig?.paneClass);
159
+ setClass(overlayWrapper, prevConfig?.overlayClass, currConfig?.overlayClass);
160
+ // FIXME: These classes should only be removed if no open overlays require them inside their config.
161
+ setClass(document.documentElement, prevConfig?.documentClass, currConfig?.documentClass);
162
+ setClass(document.body, prevConfig?.bodyClass, currConfig?.bodyClass);
163
+ if (backdropEl) {
164
+ setClass(backdropEl, prevConfig?.backdropClass, currConfig?.backdropClass);
165
+ }
166
+ if (!equal(prevConfig?.position, currConfig?.position)) {
167
+ overlayRef.updatePosition(currConfig.position);
168
+ }
169
+ if (currConfig.positionStrategy) {
170
+ cdkRef.overlayRef.updatePositionStrategy(currConfig.positionStrategy);
171
+ }
172
+ else {
173
+ cdkRef.overlayRef.updatePosition();
174
+ }
175
+ if (currConfig.dragToDismiss) {
176
+ overlayRef._containerInstance._enableDragToDismiss(currConfig.dragToDismiss);
177
+ }
178
+ else {
179
+ overlayRef._containerInstance._disableDragToDismiss();
180
+ }
181
+ }))
182
+ .subscribe();
183
+ this.openOverlays.push(overlayRef);
184
+ this.afterOpened.next(overlayRef);
185
+ overlayRef.beforeClosed().subscribe(() => {
186
+ // FIXME: These classes should only be removed if no open overlays require them inside their config.
187
+ const documentClasses = composedConfig.positions.map((position) => position.config.documentClass);
188
+ for (const klass of documentClasses) {
189
+ if (!klass)
190
+ continue;
191
+ if (Array.isArray(klass)) {
192
+ document.documentElement.classList.remove(...klass);
193
+ }
194
+ else {
195
+ document.documentElement.classList.remove(klass);
196
+ }
197
+ }
198
+ const bodyClasses = composedConfig.positions.map((position) => position.config.bodyClass);
199
+ for (const klass of bodyClasses) {
200
+ if (!klass)
201
+ continue;
202
+ if (Array.isArray(klass)) {
203
+ document.body.classList.remove(...klass);
204
+ }
205
+ else {
206
+ document.body.classList.remove(klass);
207
+ }
208
+ }
209
+ });
210
+ overlayRef.afterClosed().subscribe(() => {
211
+ const index = this.openOverlays.indexOf(overlayRef);
212
+ if (index === -1)
213
+ return;
214
+ this.openOverlays.splice(index, 1);
215
+ if (!this.openOverlays.length) {
216
+ this._getAfterAllClosed().next();
217
+ }
218
+ });
219
+ return overlayRef;
220
+ /* eslint-enable @typescript-eslint/no-non-null-assertion*/
221
+ }
222
+ closeAll() {
223
+ this._closeOverlays(this.openOverlays);
224
+ }
225
+ getOverlayById(id) {
226
+ return this.openOverlays.find((overlay) => overlay.id === id);
227
+ }
228
+ _closeOverlays(overlays) {
229
+ let i = overlays.length;
230
+ while (i--) {
231
+ overlays[i].close();
232
+ }
233
+ }
234
+ _getAfterAllClosed() {
235
+ const parent = this._parentOverlayService;
236
+ return parent ? parent._getAfterAllClosed() : this._afterAllClosedAtThisLevel;
237
+ }
238
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: OverlayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
239
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: OverlayService }); }
240
+ }
241
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: OverlayService, decorators: [{
242
+ type: Injectable
243
+ }] });
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXkvY29tcG9uZW50cy9vdmVybGF5L3NlcnZpY2VzL292ZXJsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsTUFBTSxJQUFJLFNBQVMsRUFBRSxZQUFZLElBQUksZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFM0YsT0FBTyxFQUFnQixVQUFVLEVBQTBCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFjLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9HLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5RyxPQUFPLEVBQ0wsNkJBQTZCLEVBQzdCLDJCQUEyQixFQUMzQiw0QkFBNEIsRUFDNUIsMEJBQTBCLEVBQzFCLHNCQUFzQixFQUN0QixVQUFVLEVBQ1YsbUJBQW1CLEdBQ3BCLE1BQU0sVUFBVSxDQUFDOztBQUVsQixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFDakIsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDO0FBRWhDLE1BQU0sUUFBUSxHQUFHLENBQUMsRUFBZSxFQUFFLEtBQWEs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ekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRW5DLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTtnQkFDN0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDbEM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sVUFBVyxDQUFDO1FBRW5CLDJEQUEyRDtJQUM3RCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxjQUFjLENBQUMsRUFBVTtRQUN2QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFTyxjQUFjLENBQUMsUUFBc0I7UUFDM0MsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUV4QixPQUFPLENBQUMsRUFBRSxFQUFFO1lBQ1YsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUM7UUFDMUMsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUM7SUFDaEYsQ0FBQzs4R0ExUVUsY0FBYztrSEFBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQ3NzUGl4ZWxWYWx1ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBEaWFsb2cgYXMgQ2RrRGlhbG9nLCBEaWFsb2dDb25maWcgYXMgQ2RrRGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RpYWxvZyc7XG5pbXBvcnQgeyBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIFRlbXBsYXRlUmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZpZXdwb3J0U2VydmljZSwgY3JlYXRlRGVzdHJveSwgZXF1YWwgfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRlZmVyLCBtYXAsIG9mLCBwYWlyd2lzZSwgc3RhcnRXaXRoLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT3ZlcmxheUNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgT1ZFUkxBWV9DT05GSUcsIE9WRVJMQVlfREFUQSwgT1ZFUkxBWV9ERUZBVUxUX09QVElPTlMsIE9WRVJMQVlfU0NST0xMX1NUUkFURUdZIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IE92ZXJsYXlDb25maWcgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge1xuICBFVF9PVkVSTEFZX0JPVFRPTV9TSEVFVF9DTEFTUyxcbiAgRVRfT1ZFUkxBWV9MRUZUX1NIRUVUX0NMQVNTLFxuICBFVF9PVkVSTEFZX1JJR0hUX1NIRUVUX0NMQVNTLFxuICBFVF9PVkVSTEFZX1RPUF9TSEVFVF9DTEFTUyxcbiAgT3ZlcmxheVBvc2l0aW9uQnVpbGRlcixcbiAgT3ZlcmxheVJlZixcbiAgY3JlYXRlT3ZlcmxheUNvbmZpZyxcbn0gZnJvbSAnLi4vdXRpbHMnO1xuXG5sZXQgdW5pcXVlSWQgPSAwO1xuY29uc3QgSURfUFJFRklYID0gJ2V0LW92ZXJsYXktJztcblxuY29uc3Qgc2V0U3R5bGUgPSAoZWw6IEhUTUxFbGVtZW50LCBzdHlsZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCkgPT4ge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIGVsLnN0eWxlLnJlbW92ZVByb3BlcnR5KHN0eWxlKTtcbiAgfSBlbHNlIHtcbiAgICBlbC5zdHlsZS5zZXRQcm9wZXJ0eShzdHlsZSwgY29lcmNlQ3NzUGl4ZWxWYWx1ZSh2YWx1ZSkpO1xuICB9XG59O1xuXG5jb25zdCBzZXRDbGFzcyA9IChlbDogSFRNTEVsZW1lbnQsIHByZXZDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdLCBjdXJyQ2xhc3M/OiBzdHJpbmcgfCBzdHJpbmdbXSkgPT4ge1xuICBpZiAoIWVxdWFsKHByZXZDbGFzcywgY3VyckNsYXNzKSkge1xuICAgIGlmIChwcmV2Q2xhc3MpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHByZXZDbGFzcykpIHtcbiAgICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZSguLi5wcmV2Q2xhc3MpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWwuY2xhc3NMaXN0LnJlbW92ZShwcmV2Q2xhc3MpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjdXJyQ2xhc3MpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGN1cnJDbGFzcykpIHtcbiAgICAgICAgZWwuY2xhc3NMaXN0LmFkZCguLi5jdXJyQ2xhc3MpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZWwuY2xhc3NMaXN0LmFkZChjdXJyQ2xhc3MpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE92ZXJsYXlTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBjcmVhdGVEZXN0cm95KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlZmF1bHRPcHRpb25zID0gaW5qZWN0KE9WRVJMQVlfREVGQVVMVF9PUFRJT05TLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zY3JvbGxTdHJhdGVneSA9IGluamVjdChPVkVSTEFZX1NDUk9MTF9TVFJBVEVHWSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3BhcmVudE92ZXJsYXlTZXJ2aWNlID0gaW5qZWN0KE92ZXJsYXlTZXJ2aWNlLCB7IG9wdGlvbmFsOiB0cnVlLCBza2lwU2VsZjogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGlhbG9nID0gaW5qZWN0KENka0RpYWxvZyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdwb3J0U2VydmljZSA9IGluamVjdChWaWV3cG9ydFNlcnZpY2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX29wZW5PdmVybGF5c0F0VGhpc0xldmVsOiBPdmVybGF5UmVmW10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWZ0ZXJBbGxDbG9zZWRBdFRoaXNMZXZlbCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FmdGVyT3BlbmVkQXRUaGlzTGV2ZWwgPSBuZXcgU3ViamVjdDxPdmVybGF5UmVmPigpO1xuXG4gIHJlYWRvbmx5IHBvc2l0aW9ucyA9IG5ldyBPdmVybGF5UG9zaXRpb25CdWlsZGVyKCk7XG5cbiAgcmVhZG9ubHkgYWZ0ZXJBbGxDbG9zZWQgPSBkZWZlcigoKSA9PlxuICAgIHRoaXMub3Blbk92ZXJsYXlzLmxlbmd0aCA/IHRoaXMuX2dldEFmdGVyQWxsQ2xvc2VkKCkgOiB0aGlzLl9nZXRBZnRlckFsbENsb3NlZCgpLnBpcGUoc3RhcnRXaXRoKHVuZGVmaW5lZCkpLFxuICApIGFzIE9ic2VydmFibGU8dm9pZD47XG5cbiAgZ2V0IG9wZW5PdmVybGF5cygpOiBPdmVybGF5UmVmW10ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRPdmVybGF5U2VydmljZSA/IHRoaXMuX3BhcmVudE92ZXJsYXlTZXJ2aWNlLm9wZW5PdmVybGF5cyA6IHRoaXMuX29wZW5PdmVybGF5c0F0VGhpc0xldmVsO1xuICB9XG5cbiAgZ2V0IGFmdGVyT3BlbmVkKCk6IFN1YmplY3Q8T3ZlcmxheVJlZj4ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRPdmVybGF5U2VydmljZSA/IHRoaXMuX3BhcmVudE92ZXJsYXlTZXJ2aWNlLmFmdGVyT3BlbmVkIDogdGhpcy5fYWZ0ZXJPcGVuZWRBdFRoaXNMZXZlbDtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Nsb3NlT3ZlcmxheXModGhpcy5fb3Blbk92ZXJsYXlzQXRUaGlzTGV2ZWwpO1xuICAgIHRoaXMuX2FmdGVyQWxsQ2xvc2VkQXRUaGlzTGV2ZWwuY29tcGxldGUoKTtcbiAgICB0aGlzLl9hZnRlck9wZW5lZEF0VGhpc0xldmVsLmNvbXBsZXRlKCk7XG4gIH1cblxuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4oY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+LCBjb25maWc6IE92ZXJsYXlDb25maWc8RD4pOiBPdmVybGF5UmVmPFQsIFI+O1xuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4odGVtcGxhdGU6IFRlbXBsYXRlUmVmPFQ+LCBjb25maWc6IE92ZXJsYXlDb25maWc8RD4pOiBPdmVybGF5UmVmPFQsIFI+O1xuICBvcGVuPFQsIEQgPSB1bmtub3duLCBSID0gdW5rbm93bj4oXG4gICAgdGVtcGxhdGU6IENvbXBvbmVudFR5cGU8VD4gfCBUZW1wbGF0ZVJlZjxUPixcbiAgICBjb25maWc6IE92ZXJsYXlDb25maWc8RD4sXG4gICk6IE92ZXJsYXlSZWY8VCwgUj47XG4gIG9wZW48VCwgRCA9IHVua25vd24sIFIgPSB1bmtub3duPihcbiAgICBjb21wb25lbnRPclRlbXBsYXRlUmVmOiBDb21wb25lbnRUeXBlPFQ+IHwgVGVtcGxhdGVSZWY8VD4sXG4gICAgY29uZmlnOiBPdmVybGF5Q29uZmlnPEQ+LFxuICApOiBPdmVybGF5UmVmPFQsIFI+IHtcbiAgICBsZXQgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjxULCBSPjtcblxuICAgIGNvbnN0IGNvbXBvc2VkQ29uZmlnID0gY3JlYXRlT3ZlcmxheUNvbmZpZzxEPih0aGlzLl9kZWZhdWx0T3B0aW9ucyBhcyBPdmVybGF5Q29uZmlnPEQ+LCBjb25maWcpO1xuICAgIGNvbXBvc2VkQ29uZmlnLmlkID0gY29tcG9zZWRDb25maWcuaWQgfHwgYCR7SURfUFJFRklYfSR7dW5pcXVlSWQrK31gO1xuICAgIGNvbXBvc2VkQ29uZmlnLnNjcm9sbFN0cmF0ZWd5ID0gY29tcG9zZWRDb25maWcuc2Nyb2xsU3RyYXRlZ3kgfHwgdGhpcy5fc2Nyb2xsU3RyYXRlZ3koKTtcblxuICAgIGNvbnN0IGNka1JlZiA9IHRoaXMuX2RpYWxvZy5vcGVuPFIsIEQsIFQ+KGNvbXBvbmVudE9yVGVtcGxhdGVSZWYsIHtcbiAgICAgIC4uLmNvbXBvc2VkQ29uZmlnLFxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxuICAgICAgY2xvc2VPbkRlc3Ryb3k6IGZhbHNlLFxuICAgICAgcGFuZWxDbGFzczogJ2V0LW92ZXJsYXktcGFuZScsXG4gICAgICBjb250YWluZXI6IHtcbiAgICAgICAgdHlwZTogT3ZlcmxheUNvbnRhaW5lckNvbXBvbmVudCxcbiAgICAgICAgcHJvdmlkZXJzOiAoKSA9PiBbXG4gICAgICAgICAgeyBwcm92aWRlOiBPVkVSTEFZX0NPTkZJRywgdXNlVmFsdWU6IGNvbXBvc2VkQ29uZmlnIH0sXG4gICAgICAgICAgeyBwcm92aWRlOiBDZGtEaWFsb2dDb25maWcsIHVzZVZhbHVlOiBjb21wb3NlZENvbmZpZyB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICAgIHRlbXBsYXRlQ29udGV4dDogKCkgPT4gKHsgZGlhbG9nUmVmOiBvdmVybGF5UmVmIH0pLFxuICAgICAgcHJvdmlkZXJzOiAocmVmLCBjZGtDb25maWcsIG92ZXJsYXlDb250YWluZXIpID0+IHtcbiAgICAgICAgb3ZlcmxheVJlZiA9IG5ldyBPdmVybGF5UmVmKHJlZiwgY29tcG9zZWRDb25maWcsIG92ZXJsYXlDb250YWluZXIgYXMgT3ZlcmxheUNvbnRhaW5lckNvbXBvbmVudCk7XG5cbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICB7IHByb3ZpZGU6IE92ZXJsYXlDb250YWluZXJDb21wb25lbnQsIHVzZVZhbHVlOiBvdmVybGF5Q29udGFpbmVyIH0sXG4gICAgICAgICAgeyBwcm92aWRlOiBPVkVSTEFZX0RBVEEsIHVzZVZhbHVlOiBjZGtDb25maWcuZGF0YSB9LFxuICAgICAgICAgIHsgcHJvdmlkZTogT3ZlcmxheVJlZiwgdXNlVmFsdWU6IG92ZXJsYXlSZWYgfSxcbiAgICAgICAgICAuLi4oY29tcG9zZWRDb25maWcucHJvdmlkZXJzID8/IFtdKSxcbiAgICAgICAgXTtcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uKi9cbiAgICAob3ZlcmxheVJlZiEgYXMgeyBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUPiB9KS5jb21wb25lbnRSZWYgPSBjZGtSZWYuY29tcG9uZW50UmVmITtcbiAgICBvdmVybGF5UmVmIS5jb21wb25lbnRJbnN0YW5jZSA9IGNka1JlZi5jb21wb25lbnRJbnN0YW5jZSE7XG5cbiAgICAoY2RrUmVmLmNvbnRhaW5lckluc3RhbmNlIGFzIE92ZXJsYXlDb250YWluZXJDb21wb25lbnQpLm92ZXJsYXlSZWYgPSBvdmVybGF5UmVmITtcblxuICAgIGNvbWJpbmVMYXRlc3QoXG4gICAgICBjb21wb3NlZENvbmZpZy5wb3NpdGlvbnMubWFwKChicmVha3BvaW50KSA9PlxuICAgICAgICAoYnJlYWtwb2ludC5icmVha3BvaW50ID8gdGhpcy5fdmlld3BvcnRTZXJ2aWNlLm9ic2VydmUoeyBtaW46IGJyZWFrcG9pbnQuYnJlYWtwb2ludCB9KSA6IG9mKHRydWUpKS5waXBlKFxuICAgICAgICAgIG1hcCgoaXNBY3RpdmUpID0+ICh7XG4gICAgICAgICAgICBpc0FjdGl2ZSxcbiAgICAgICAgICAgIGNvbmZpZzogYnJlYWtwb2ludC5jb25maWcsXG4gICAgICAgICAgICBzaXplOlxuICAgICAgICAgICAgICB0eXBlb2YgYnJlYWtwb2ludC5icmVha3BvaW50ID09PSAnbnVtYmVyJ1xuICAgICAgICAgICAgICAgID8gYnJlYWtwb2ludC5icmVha3BvaW50XG4gICAgICAgICAgICAgICAgOiBicmVha3BvaW50LmJyZWFrcG9pbnQgPT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgICAgIDogdGhpcy5fdmlld3BvcnRTZXJ2aWNlLmdldEJyZWFrcG9pbnRTaXplKGJyZWFrcG9pbnQuYnJlYWtwb2ludCwgJ21pbicpLFxuICAgICAgICAgIH0pKSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbChvdmVybGF5UmVmIS5hZnRlckNsb3NlZCgpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgbWFwKChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgY29uc3QgYWN0aXZlQnJlYWtwb2ludHMgPSBlbnRyaWVzLmZpbHRlcigoZW50cnkpID0+IGVudHJ5LmlzQWN0aXZlKTtcbiAgICAgICAgICBjb25zdCBoaWdoZXN0QnJlYWtwb2ludCA9IGFjdGl2ZUJyZWFrcG9pbnRzLnJlZHVjZSgocHJldiwgY3VycikgPT4gKHByZXYuc2l6ZSA+IGN1cnIuc2l6ZSA/IHByZXYgOiBjdXJyKSk7XG5cbiAgICAgICAgICByZXR1cm4gaGlnaGVzdEJyZWFrcG9pbnQuY29uZmlnO1xuICAgICAgICB9KSxcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICBwYWlyd2lzZSgpLFxuICAgICAgICB0YXAoKFtwcmV2Q29uZmlnLCBjdXJyQ29uZmlnXSkgPT4ge1xuICAgICAgICAgIGlmICghY3VyckNvbmZpZykgcmV0dXJuO1xuXG4gICAgICAgICAgY29uc3Qgb3ZlcmxheVBhbmVFbCA9IGNka1JlZi5vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50O1xuICAgICAgICAgIGNvbnN0IGNvbnRhaW5lckVsID0gb3ZlcmxheVJlZi5fY29udGFpbmVySW5zdGFuY2UuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgIGNvbnN0IGJhY2tkcm9wRWwgPSBjZGtSZWYub3ZlcmxheVJlZi5iYWNrZHJvcEVsZW1lbnQ7XG4gICAgICAgICAgY29uc3Qgb3ZlcmxheVdyYXBwZXIgPSBjZGtSZWYub3ZlcmxheVJlZi5ob3N0RWxlbWVudDtcbiAgICAgICAgICBjb25zdCBkZWZhdWx0QW5pbWF0aW9uQnVmZmVyID0gNTA7IC8vIDUwcHggc2luY2UgdGhlIGRlZmF1bHQgYW5pbWF0aW9uIHVzZXMgc3ByaW5nIHBoeXNpY3MgYW5kIHRodXMgd2lsbCBvdmVyc2hvb3QuXG4gICAgICAgICAgY29uc3QgdXNlRGVmYXVsdEFuaW1hdGlvbiA9IGNvbXBvc2VkQ29uZmlnLmN1c3RvbUFuaW1hdGVkICE9PSB0cnVlO1xuICAgICAgICAgIGNvbnN0IGNvbnRhaW5lckNsYXNzID0gY3VyckNvbmZpZy5jb250YWluZXJDbGFzcztcblxuICAgICAgICAgIGNvbnN0IGFwcGx5RGVmYXVsdE1heFdpZHRocyA9ICgpID0+IHtcbiAgICAgICAgICAgIHNldFN0eWxlKG92ZXJsYXlQYW5lRWwsICdtYXgtd2lkdGgnLCBjdXJyQ29uZmlnLm1heFdpZHRoKTtcbiAgICAgICAgICAgIHNldFN0eWxlKG92ZXJsYXlQYW5lRWwsICdtYXgtaGVpZ2h0JywgY3VyckNvbmZpZy5tYXhIZWlnaHQpO1xuICAgICAgICAgIH07XG5cbiAgICAgICAgICBjb25zdCBjb21iaW5lT3JNYWtlQ2FsYyA9ICh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgYXBwZW5kOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGlmICghdmFsdWUpIHJldHVybiBhcHBlbmQ7XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgIHJldHVybiBgY2FsYygke3ZhbHVlfXB4ICsgJHthcHBlbmR9KWA7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoJ2NhbGMoJykpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGAke3ZhbHVlLnNsaWNlKDAsIHZhbHVlLmxlbmd0aCAtIDEpfSArICR7YXBwZW5kfSlgO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYGNhbGMoJHt2YWx1ZX0gKyAke2FwcGVuZH0pYDtcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgaWYgKHVzZURlZmF1bHRBbmltYXRpb24gJiYgY29udGFpbmVyQ2xhc3M/Lmxlbmd0aCkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBjb250YWluZXJDbGFzcz8uaW5jbHVkZXMoRVRfT1ZFUkxBWV9MRUZUX1NIRUVUX0NMQVNTKSB8fFxuICAgICAgICAgICAgICBjb250YWluZXJDbGFzcz8uaW5jbHVkZXMoRVRfT1ZFUkxBWV9SSUdIVF9TSEVFVF9DTEFTUylcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBzZXRTdHlsZShcbiAgICAgICAgICAgICAgICBvdmVybGF5UGFuZUVsLFxuICAgICAgICAgICAgICAgICdtYXgtd2lkdGgnLFxuICAgICAgICAgICAgICAgIGNvbWJpbmVPck1ha2VDYWxjKGN1cnJDb25maWcubWF4V2lkdGgsIGAke2RlZmF1bHRBbmltYXRpb25CdWZmZXJ9cHhgKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ21heC1oZWlnaHQnLCBjdXJyQ29uZmlnLm1heEhlaWdodCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICBjb250YWluZXJDbGFzcz8uaW5jbHVkZXMoRVRfT1ZFUkxBWV9UT1BfU0hFRVRfQ0xBU1MpIHx8XG4gICAgICAgICAgICAgIGNvbnRhaW5lckNsYXNzPy5pbmNsdWRlcyhFVF9PVkVSTEFZX0JPVFRPTV9TSEVFVF9DTEFTUylcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBzZXRTdHlsZShcbiAgICAgICAgICAgICAgICBvdmVybGF5UGFuZUVsLFxuICAgICAgICAgICAgICAgICdtYXgtaGVpZ2h0JyxcbiAgICAgICAgICAgICAgICBjb21iaW5lT3JNYWtlQ2FsYyhjdXJyQ29uZmlnLm1heEhlaWdodCwgYCR7ZGVmYXVsdEFuaW1hdGlvbkJ1ZmZlcn1weGApLFxuICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgIHNldFN0eWxlKG92ZXJsYXlQYW5lRWwsICdtYXgtd2lkdGgnLCBjdXJyQ29uZmlnLm1heFdpZHRoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGFwcGx5RGVmYXVsdE1heFdpZHRocygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhcHBseURlZmF1bHRNYXhXaWR0aHMoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzZXRTdHlsZShvdmVybGF5UGFuZUVsLCAnbWluLXdpZHRoJywgY3VyckNvbmZpZy5taW5XaWR0aCk7XG4gICAgICAgICAgc2V0U3R5bGUob3ZlcmxheVBhbmVFbCwgJ21pbi1oZWlnaHQnLCBjdXJyQ29uZmlnLm1pbkhlaWdodCk7XG5cbiAgICAgICAgICBzZXRTdHlsZShvdmVybGF5UGFuZUVsLCAnd2lkdGgnLCBjdXJyQ29uZmlnLndpZHRoKTtcbiAgICAgICAgICBzZXRTdHlsZShvdmVybGF5UGFuZUVsLCAnaGVpZ2h0JywgY3VyckNvbmZpZy5oZWlnaHQpO1xuXG4gICAgICAgICAgc2V0Q2xhc3MoY29udGFpbmVyRWwsIHByZXZDb25maWc/LmNvbnRhaW5lckNsYXNzLCBjdXJyQ29uZmlnPy5jb250YWluZXJDbGFzcyk7XG4gICAgICAgICAgc2V0Q2xhc3Mob3ZlcmxheVBhbmVFbCwgcHJldkNvbmZpZz8ucGFuZUNsYXNzLCBjdXJyQ29uZmlnPy5wYW5lQ2xhc3MpO1xuICAgICAgICAgIHNldENsYXNzKG92ZXJsYXlXcmFwcGVyLCBwcmV2Q29uZmlnPy5vdmVybGF5Q2xhc3MsIGN1cnJDb25maWc/Lm92ZXJsYXlDbGFzcyk7XG5cbiAgICAgICAgICAvLyBGSVhNRTogVGhlc2UgY2xhc3NlcyBzaG91bGQgb25seSBiZSByZW1vdmVkIGlmIG5vIG9wZW4gb3ZlcmxheXMgcmVxdWlyZSB0aGVtIGluc2lkZSB0aGVpciBjb25maWcuXG4gICAgICAgICAgc2V0Q2xhc3MoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBwcmV2Q29uZmlnPy5kb2N1bWVudENsYXNzLCBjdXJyQ29uZmlnPy5kb2N1bWVudENsYXNzKTtcbiAgICAgICAgICBzZXRDbGFzcyhkb2N1bWVudC5ib2R5LCBwcmV2Q29uZmlnPy5ib2R5Q2xhc3MsIGN1cnJDb25maWc/LmJvZHlDbGFzcyk7XG5cbiAgICAgICAgICBpZiAoYmFja2Ryb3BFbCkge1xuICAgICAgICAgICAgc2V0Q2xhc3MoYmFja2Ryb3BFbCwgcHJldkNvbmZpZz8uYmFja2Ryb3BDbGFzcywgY3VyckNvbmZpZz8uYmFja2Ryb3BDbGFzcyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKCFlcXVhbChwcmV2Q29uZmlnPy5wb3NpdGlvbiwgY3VyckNvbmZpZz8ucG9zaXRpb24pKSB7XG4gICAgICAgICAgICBvdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKGN1cnJDb25maWcucG9zaXRpb24pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChjdXJyQ29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kpIHtcbiAgICAgICAgICAgIGNka1JlZi5vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3koY3VyckNvbmZpZy5wb3NpdGlvblN0cmF0ZWd5KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2RrUmVmLm92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoY3VyckNvbmZpZy5kcmFnVG9EaXNtaXNzKSB7XG4gICAgICAgICAgICBvdmVybGF5UmVmLl9jb250YWluZXJJbnN0YW5jZS5fZW5hYmxlRHJhZ1RvRGlzbWlzcyhjdXJyQ29uZmlnLmRyYWdUb0Rpc21pc3MpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvdmVybGF5UmVmLl9jb250YWluZXJJbnN0YW5jZS5fZGlzYWJsZURyYWdUb0Rpc21pc3MoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5vcGVuT3ZlcmxheXMucHVzaChvdmVybGF5UmVmISk7XG4gICAgdGhpcy5hZnRlck9wZW5lZC5uZXh0KG92ZXJsYXlSZWYhKTtcblxuICAgIG92ZXJsYXlSZWYhLmJlZm9yZUNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAvLyBGSVhNRTogVGhlc2UgY2xhc3NlcyBzaG91bGQgb25seSBiZSByZW1vdmVkIGlmIG5vIG9wZW4gb3ZlcmxheXMgcmVxdWlyZSB0aGVtIGluc2lkZSB0aGVpciBjb25maWcuXG4gICAgICBjb25zdCBkb2N1bWVudENsYXNzZXMgPSBjb21wb3NlZENvbmZpZy5wb3NpdGlvbnMubWFwKChwb3NpdGlvbikgPT4gcG9zaXRpb24uY29uZmlnLmRvY3VtZW50Q2xhc3MpO1xuXG4gICAgICBmb3IgKGNvbnN0IGtsYXNzIG9mIGRvY3VtZW50Q2xhc3Nlcykge1xuICAgICAgICBpZiAoIWtsYXNzKSBjb250aW51ZTtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShrbGFzcykpIHtcbiAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSguLi5rbGFzcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoa2xhc3MpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJvZHlDbGFzc2VzID0gY29tcG9zZWRDb25maWcucG9zaXRpb25zLm1hcCgocG9zaXRpb24pID0+IHBvc2l0aW9uLmNvbmZpZy5ib2R5Q2xhc3MpO1xuXG4gICAgICBmb3IgKGNvbnN0IGtsYXNzIG9mIGJvZHlDbGFzc2VzKSB7XG4gICAgICAgIGlmICgha2xhc3MpIGNvbnRpbnVlO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGtsYXNzKSkge1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSguLi5rbGFzcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKGtsYXNzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgb3ZlcmxheVJlZiEuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm9wZW5PdmVybGF5cy5pbmRleE9mKG92ZXJsYXlSZWYpO1xuXG4gICAgICBpZiAoaW5kZXggPT09IC0xKSByZXR1cm47XG5cbiAgICAgIHRoaXMub3Blbk92ZXJsYXlzLnNwbGljZShpbmRleCwgMSk7XG5cbiAgICAgIGlmICghdGhpcy5vcGVuT3ZlcmxheXMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuX2dldEFmdGVyQWxsQ2xvc2VkKCkubmV4dCgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG92ZXJsYXlSZWYhO1xuXG4gICAgLyogZXNsaW50LWVuYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uKi9cbiAgfVxuXG4gIGNsb3NlQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuX2Nsb3NlT3ZlcmxheXModGhpcy5vcGVuT3ZlcmxheXMpO1xuICB9XG5cbiAgZ2V0T3ZlcmxheUJ5SWQoaWQ6IHN0cmluZyk6IE92ZXJsYXlSZWYgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm9wZW5PdmVybGF5cy5maW5kKChvdmVybGF5KSA9PiBvdmVybGF5LmlkID09PSBpZCk7XG4gIH1cblxuICBwcml2YXRlIF9jbG9zZU92ZXJsYXlzKG92ZXJsYXlzOiBPdmVybGF5UmVmW10pIHtcbiAgICBsZXQgaSA9IG92ZXJsYXlzLmxlbmd0aDtcblxuICAgIHdoaWxlIChpLS0pIHtcbiAgICAgIG92ZXJsYXlzW2ldLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QWZ0ZXJBbGxDbG9zZWQoKTogU3ViamVjdDx2b2lkPiB7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5fcGFyZW50T3ZlcmxheVNlcnZpY2U7XG4gICAgcmV0dXJuIHBhcmVudCA/IHBhcmVudC5fZ2V0QWZ0ZXJBbGxDbG9zZWQoKSA6IHRoaXMuX2FmdGVyQWxsQ2xvc2VkQXRUaGlzTGV2ZWw7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './overlay.service';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9vdmVybGF5L2NvbXBvbmVudHMvb3ZlcmxheS9zZXJ2aWNlcy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL292ZXJsYXkuc2VydmljZSc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9jb21wb25lbnRzL292ZXJsYXkvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,6 @@
1
+ export const OVERLAY_STATE = {
2
+ OPEN: 'open',
3
+ CLOSING: 'closing',
4
+ CLOSED: 'closed',
5
+ };
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9vdmVybGF5L2NvbXBvbmVudHMvb3ZlcmxheS90eXBlcy9vdmVybGF5LnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBCQSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUc7SUFDM0IsSUFBSSxFQUFFLE1BQU07SUFDWixPQUFPLEVBQUUsU0FBUztJQUNsQixNQUFNLEVBQUUsUUFBUTtDQUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5pbXBvcnQgeyBQb3NpdGlvblN0cmF0ZWd5LCBTY3JvbGxTdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IEluamVjdG9yLCBTdGF0aWNQcm92aWRlciwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJlYWtwb2ludCB9IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuXG4vKiogT3B0aW9ucyBmb3Igd2hlcmUgdG8gc2V0IGZvY3VzIHRvIGF1dG9tYXRpY2FsbHkgb24gb3ZlcmxheSBvcGVuICovXG5leHBvcnQgdHlwZSBPdmVybGF5QXV0b0ZvY3VzVGFyZ2V0ID0gJ2RpYWxvZycgfCAnZmlyc3QtdGFiYmFibGUnIHwgJ2ZpcnN0LWhlYWRpbmcnO1xuXG4vKiogVmFsaWQgQVJJQSByb2xlcyBmb3IgYSBvdmVybGF5IGVsZW1lbnQuICovXG5leHBvcnQgdHlwZSBPdmVybGF5Um9sZSA9ICdkaWFsb2cnIHwgJ2FsZXJ0ZGlhbG9nJztcblxuLyoqIFBvc3NpYmxlIG92ZXJyaWRlcyBmb3IgYSBvdmVybGF5J3MgcG9zaXRpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIE92ZXJsYXlQb3NpdGlvbiB7XG4gIC8qKiBPdmVycmlkZSBmb3IgdGhlIG92ZXJsYXkncyB0b3AgcG9zaXRpb24uICovXG4gIHRvcD86IHN0cmluZztcblxuICAvKiogT3ZlcnJpZGUgZm9yIHRoZSBvdmVybGF5J3MgYm90dG9tIHBvc2l0aW9uLiAqL1xuICBib3R0b20/OiBzdHJpbmc7XG5cbiAgLyoqIE92ZXJyaWRlIGZvciB0aGUgb3ZlcmxheSdzIGxlZnQgcG9zaXRpb24uICovXG4gIGxlZnQ/OiBzdHJpbmc7XG5cbiAgLyoqIE92ZXJyaWRlIGZvciB0aGUgb3ZlcmxheSdzIHJpZ2h0IHBvc2l0aW9uLiAqL1xuICByaWdodD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IE9WRVJMQVlfU1RBVEUgPSB7XG4gIE9QRU46ICdvcGVuJyxcbiAgQ0xPU0lORzogJ2Nsb3NpbmcnLFxuICBDTE9TRUQ6ICdjbG9zZWQnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgT3ZlcmxheVN0YXRlID0gKHR5cGVvZiBPVkVSTEFZX1NUQVRFKVtrZXlvZiB0eXBlb2YgT1ZFUkxBWV9TVEFURV07XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3ZlcmxheURyYWdUb0Rpc21pc3NDb25maWcge1xuICAvKiogRGlyZWN0aW9uIGluIHdoaWNoIHRoZSBvdmVybGF5IGNhbiBiZSBkcmFnZ2VkLiAqL1xuICBkaXJlY3Rpb246ICd0by10b3AnIHwgJ3RvLWJvdHRvbScgfCAndG8tbGVmdCcgfCAndG8tcmlnaHQnO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBkaXN0YW5jZSBpbiBwaXhlbHMgdGhhdCB0aGUgdXNlciBtdXN0IHN3aXBlIHRvIGRpc21pc3MgdGhlIG92ZXJsYXkuXG4gICAqXG4gICAqIEBkZWZhdWx0IDE1MCAvLyAxNTBweFxuICAgKi9cbiAgbWluRGlzdGFuY2VUb0Rpc21pc3M/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIHZlbG9jaXR5IGluIHBpeGVscyBwZXIgc2Vjb25kIHRoYXQgdGhlIHVzZXIgbXVzdCBzd2lwZSB0byBkaXNtaXNzIHRoZSBvdmVybGF5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAxNTAgLy8gMTUwcHgvc1xuICAgKi9cbiAgbWluVmVsb2NpdHlUb0Rpc21pc3M/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3ZlcmxheUJyZWFrcG9pbnRDb25maWcge1xuICAvKiogTWluLXdpZHRoIG9mIHRoZSBvdmVybGF5LiBJZiBhIG51bWJlciBpcyBwcm92aWRlZCwgYXNzdW1lcyBwaXhlbCB1bml0cy4gKi9cbiAgbWluV2lkdGg/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgLyoqIE1heC13aWR0aCBvZiB0aGUgb3ZlcmxheS4gSWYgYSBudW1iZXIgaXMgcHJvdmlkZWQsIGFzc3VtZXMgcGl4ZWwgdW5pdHMuICovXG4gIG1heFdpZHRoPzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gIC8qKiBNaW4taGVpZ2h0IG9mIHRoZSBvdmVybGF5LiBJZiBhIG51bWJlciBpcyBwcm92aWRlZCwgYXNzdW1lcyBwaXhlbCB1bml0cy4gKi9cbiAgbWluSGVpZ2h0PzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gIC8qKiBNYXgtaGVpZ2h0IG9mIHRoZSBvdmVybGF5LiBJZiBhIG51bWJlciBpcyBwcm92aWRlZCwgYXNzdW1lcyBwaXhlbCB1bml0cy4gKi9cbiAgbWF4SGVpZ2h0PzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gIC8qKiBXaWR0aCBvZiB0aGUgb3ZlcmxheS4gKi9cbiAgd2lkdGg/OiBudW1iZXIgfCBzdHJpbmc7XG5cbiAgLyoqIEhlaWdodCBvZiB0aGUgb3ZlcmxheS4gKi9cbiAgaGVpZ2h0PzogbnVtYmVyIHwgc3RyaW5nO1xuXG4gIC8qKiBQb3NpdGlvbiBzdHJhdGVneSB0byBiZSB1c2VkIGZvciB0aGUgb3ZlcmxheS4gKi9cbiAgcG9zaXRpb25TdHJhdGVneT86IFBvc2l0aW9uU3RyYXRlZ3k7XG5cbiAgLyoqIEN1c3RvbSBjbGFzcyBmb3IgdGhlIG92ZXJsYXkgY29udGFpbmVyLiAqL1xuICBjb250YWluZXJDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIC8qKiBDdXN0b20gY2xhc3MgZm9yIHRoZSBvdmVybGF5IHBhbmUuICovXG4gIHBhbmVDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIC8qKiBFeHRyYSBDU1MgY2xhc3NlcyB0byBiZSBhZGRlZCB0byB0aGUgb3ZlcmxheSBvdmVybGF5IGNvbnRhaW5lci4gKi9cbiAgb3ZlcmxheUNsYXNzPzogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgLyoqIEN1c3RvbSBjbGFzcyBmb3IgdGhlIGJhY2tkcm9wLiAqL1xuICBiYWNrZHJvcENsYXNzPzogc3RyaW5nIHwgc3RyaW5nW107XG5cbiAgLyoqIEN1c3RvbSBjbGFzcyBmb3IgdGhlIGRvY3VtZW50IChgPGh0bWw+YCBlbGVtZW50KS4gKi9cbiAgZG9jdW1lbnRDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIC8qKiBDdXN0b20gY2xhc3MgZm9yIHRoZSBgPGJvZHk+YCBlbGVtZW50ICovXG4gIGJvZHlDbGFzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xuXG4gIC8qKiBQb3NpdGlvbiBvdmVycmlkZXMuICovXG4gIHBvc2l0aW9uPzogT3ZlcmxheVBvc2l0aW9uO1xuXG4gIC8qKiBEZXRlcm1pbmUgaWYgYW5kIGluIHdoYXQgZGlyZWN0aW9uIHRoZSBvdmVybGF5IHNob3VsZCBiZSBhYmxlIHRvIGJlIGRyYWdnZWQgdG8gZGlzbWlzcyBpdC4gKi9cbiAgZHJhZ1RvRGlzbWlzcz86IE92ZXJsYXlEcmFnVG9EaXNtaXNzQ29uZmlnO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE92ZXJsYXlCcmVha3BvaW50Q29uZmlnRW50cnkge1xuICAvKipcbiAgICogQnJlYWtwb2ludCB0byBhcHBseSB0aGUgY29uZmlnIGZvci4gSWYgYSBudW1iZXIgaXMgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdXNlZCBhcyBhIHBpeGVsIHZhbHVlLlxuICAgKiBBbHdheXMgdXNlcyB0aGUgbWluLXdpZHRoIG1lZGlhIHF1ZXJ5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAneHMnIC8vIDBweFxuICAgKi9cbiAgYnJlYWtwb2ludD86IEJyZWFrcG9pbnQgfCBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE92ZXJsYXkgY29uZmlndXJhdGlvbiB0byBiZSBhcHBsaWVkIHdoZW4gdGhlIGJyZWFrcG9pbnQgaXMgYWN0aXZlLlxuICAgKi9cbiAgY29uZmlnOiBPdmVybGF5QnJlYWtwb2ludENvbmZpZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPdmVybGF5Q29uZmlnPEQgPSB1bmtub3duPiB7XG4gIC8qKlxuICAgKiBDb25kaXRpb25hbGx5IGFwcGxpZWQgb3ZlcmxheSBjb25maWd1cmF0aW9ucyBiYXNlZCBvbiBicmVha3BvaW50cy5cbiAgICovXG4gIHBvc2l0aW9uczogT3ZlcmxheUJyZWFrcG9pbnRDb25maWdFbnRyeVtdO1xuXG4gIC8qKlxuICAgKiBXaGVyZSB0aGUgYXR0YWNoZWQgY29tcG9uZW50IHNob3VsZCBsaXZlIGluIEFuZ3VsYXIncyAqbG9naWNhbCogY29tcG9uZW50IHRyZWUuXG4gICAqIFRoaXMgYWZmZWN0cyB3aGF0IGlzIGF2YWlsYWJsZSBmb3IgaW5qZWN0aW9uIGFuZCB0aGUgY2hhbmdlIGRldGVjdGlvbiBvcmRlciBmb3IgdGhlXG4gICAqIGNvbXBvbmVudCBpbnN0YW50aWF0ZWQgaW5zaWRlIG9mIHRoZSBvdmVybGF5LiBUaGlzIGRvZXMgbm90IGFmZmVjdCB3aGVyZSB0aGUgb3ZlcmxheVxuICAgKiBjb250ZW50IHdpbGwgYmUgcmVuZGVyZWQuXG4gICAqL1xuICB2aWV3Q29udGFpbmVyUmVmPzogVmlld0NvbnRhaW5lclJlZjtcblxuICAvKipcbiAgICogSW5qZWN0b3IgdXNlZCBmb3IgdGhlIGluc3RhbnRpYXRpb24gb2YgdGhlIGNvbXBvbmVudCB0byBiZSBhdHRhY2hlZC4gSWYgcHJvdmlkZWQsXG4gICAqIHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGUgaW5qZWN0b3IgaW5kaXJlY3RseSBwcm92aWRlZCBieSBgVmlld0NvbnRhaW5lclJlZmAuXG4gICAqL1xuICBpbmplY3Rvcj86IEluamVjdG9yO1xuXG4gIC8qKiBJRCBmb3IgdGhlIG92ZXJsYXkuIElmIG9taXR0ZWQsIGEgdW5pcXVlIG9uZSB3aWxsIGJlIGdlbmVyYXRlZC4gKi9cbiAgaWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUklBIHJvbGUgb2YgdGhlIG92ZXJsYXkgZWxlbWVudC5cbiAgICogQGRlZmF1bHQgJ2RpYWxvZydcbiAgICovXG4gIHJvbGU/OiBPdmVybGF5Um9sZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgb3ZlcmxheSBoYXMgYSBiYWNrZHJvcC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgaGFzQmFja2Ryb3A/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSB1c2VyIGNhbiB1c2UgZXNjYXBlIG9yIGNsaWNraW5nIG9uIHRoZSBiYWNrZHJvcCB0byBjbG9zZSB0aGUgbW9kYWwuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBkaXNhYmxlQ2xvc2U/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEYXRhIGJlaW5nIGluamVjdGVkIGludG8gdGhlIGNoaWxkIGNvbXBvbmVudC5cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgZGF0YT86IEQgfCBudWxsO1xuXG4gIC8qKiBMYXlvdXQgZGlyZWN0aW9uIGZvciB0aGUgb3ZlcmxheSdzIGNvbnRlbnQuICovXG4gIGRpcmVjdGlvbj86IERpcmVjdGlvbjtcblxuICAvKipcbiAgICogSUQgb2YgdGhlIGVsZW1lbnQgdGhhdCBkZXNjcmliZXMgdGhlIG92ZXJsYXkuXG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICovXG4gIGFyaWFEZXNjcmliZWRCeT86IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIElEIG9mIHRoZSBlbGVtZW50IHRoYXQgbGFiZWxzIHRoZSBvdmVybGF5LlxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBhcmlhTGFiZWxsZWRCeT86IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIEFyaWEgbGFiZWwgdG8gYXNzaWduIHRvIHRoZSBvdmVybGF5IGVsZW1lbnQuXG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICovXG4gIGFyaWFMYWJlbD86IHN0cmluZyB8IG51bGw7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBpcyBhIG1vZGFsIG92ZXJsYXkuIFVzZWQgdG8gc2V0IHRoZSBgYXJpYS1tb2RhbGAgYXR0cmlidXRlLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBhcmlhTW9kYWw/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBvdmVybGF5IHVzZXMgYSBjdXN0b20gYW5pbWF0aW9uLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgY3VzdG9tQW5pbWF0ZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGVyZSB0aGUgb3ZlcmxheSBzaG91bGQgZm9jdXMgb24gb3Blbi5cbiAgICogQ2FuIGJlIG9uZSBvZiBBdXRvRm9jdXNUYXJnZXQsIG9yIGEgY3NzIHNlbGVjdG9yIHN0cmluZy5cbiAgICogQGRlZmF1bHQgJ2ZpcnN0LXRhYmJhYmxlJ1xuICAgKi9cbiAgYXV0b0ZvY3VzPzogT3ZlcmxheUF1dG9Gb2N1c1RhcmdldCB8IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgb3ZlcmxheSBzaG91bGQgcmVzdG9yZSBmb2N1cyB0byB0aGVcbiAgICogcHJldmlvdXNseS1mb2N1c2VkIGVsZW1lbnQsIGFmdGVyIGl0J3MgY2xvc2VkLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZXN0b3JlRm9jdXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHdhaXQgZm9yIHRoZSBvcGVuaW5nIGFuaW1hdGlvbiB0byBmaW5pc2ggYmVmb3JlIHRyYXBwaW5nIGZvY3VzLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBkZWxheUZvY3VzVHJhcD86IGJvb2xlYW47XG5cbiAgLyoqIFNjcm9sbCBzdHJhdGVneSB0byBiZSB1c2VkIGZvciB0aGUgb3ZlcmxheS4gKi9cbiAgc2Nyb2xsU3RyYXRlZ3k/OiBTY3JvbGxTdHJhdGVneTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgb3ZlcmxheSBzaG91bGQgY2xvc2Ugd2hlbiB0aGUgdXNlciBnb2VzIGJhY2t3YXJkcy9mb3J3YXJkcyBpbiBoaXN0b3J5LlxuICAgKiBOb3RlIHRoYXQgdGhpcyB1c3VhbGx5IGRvZXNuJ3QgaW5jbHVkZSBjbGlja2luZyBvbiBsaW5rcyAodW5sZXNzIHRoZSB1c2VyIGlzIHVzaW5nXG4gICAqIHRoZSBgSGFzaExvY2F0aW9uU3RyYXRlZ3lgKS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgY2xvc2VPbk5hdmlnYXRpb24/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFeHRyYSBwcm92aWRlcnMgdG8gYmUgbWFkZSBhdmFpbGFibGUgdG8gdGhlIG92ZXJsYXkuXG4gICAqL1xuICBwcm92aWRlcnM/OiBTdGF0aWNQcm92aWRlcltdO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './overlay.types';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9vdmVybGF5L2NvbXBvbmVudHMvb3ZlcmxheS90eXBlcy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL292ZXJsYXkudHlwZXMnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9jb21wb25lbnRzL292ZXJsYXkvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,7 @@
1
+ import { OVERLAY_DEFAULT_CONFIG } from '../constants';
2
+ export const createOverlayConfig = (globalConfig, localConfig) => ({
3
+ ...OVERLAY_DEFAULT_CONFIG,
4
+ ...(globalConfig || {}),
5
+ ...(localConfig || {}),
6
+ });
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvb3ZlcmxheS9jb21wb25lbnRzL292ZXJsYXkvdXRpbHMvb3ZlcmxheS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBR3RELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQ2pDLFlBQTJELEVBQzNELFdBQTBELEVBQ3hDLEVBQUUsQ0FBQyxDQUFDO0lBQ3RCLEdBQUksc0JBQTJDO0lBQy9DLEdBQUcsQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDO0lBQ3ZCLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO0NBQ3ZCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9WRVJMQVlfREVGQVVMVF9DT05GSUcgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgT3ZlcmxheUNvbmZpZyB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU92ZXJsYXlDb25maWcgPSA8RCA9IHVua25vd24+KFxuICBnbG9iYWxDb25maWc/OiBQYXJ0aWFsPE92ZXJsYXlDb25maWc8RD4+IHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgbG9jYWxDb25maWc/OiBQYXJ0aWFsPE92ZXJsYXlDb25maWc8RD4+IHwgbnVsbCB8IHVuZGVmaW5lZCxcbik6IE92ZXJsYXlDb25maWc8RD4gPT4gKHtcbiAgLi4uKE9WRVJMQVlfREVGQVVMVF9DT05GSUcgYXMgT3ZlcmxheUNvbmZpZzxEPiksXG4gIC4uLihnbG9iYWxDb25maWcgfHwge30pLFxuICAuLi4obG9jYWxDb25maWcgfHwge30pLFxufSk7XG4iXX0=
@@ -0,0 +1,170 @@
1
+ import { Overlay } from '@angular/cdk/overlay';
2
+ import { inject } from '@angular/core';
3
+ export const ET_OVERLAY_LEFT_SHEET_CLASS = 'et-overlay--left-sheet';
4
+ export const ET_OVERLAY_RIGHT_SHEET_CLASS = 'et-overlay--right-sheet';
5
+ export const ET_OVERLAY_TOP_SHEET_CLASS = 'et-overlay--top-sheet';
6
+ export const ET_OVERLAY_BOTTOM_SHEET_CLASS = 'et-overlay--bottom-sheet';
7
+ export const ET_OVERLAY_DIALOG_CLASS = 'et-overlay--dialog';
8
+ export const ET_OVERLAY_FULL_SCREEN_DIALOG_CLASS = 'et-overlay--full-screen-dialog';
9
+ export class OverlayPositionBuilder {
10
+ constructor() {
11
+ this._overlay = inject(Overlay);
12
+ this.DEFAULTS = {
13
+ dialog: {
14
+ width: undefined,
15
+ height: undefined,
16
+ maxHeight: '80vh',
17
+ maxWidth: '80vw',
18
+ minHeight: undefined,
19
+ minWidth: undefined,
20
+ containerClass: ET_OVERLAY_DIALOG_CLASS,
21
+ positionStrategy: this._overlay.position().global().centerHorizontally().centerVertically(),
22
+ },
23
+ fullScreenDialog: {
24
+ width: '100%',
25
+ height: '100%',
26
+ maxHeight: undefined,
27
+ maxWidth: undefined,
28
+ minHeight: undefined,
29
+ minWidth: undefined,
30
+ containerClass: ET_OVERLAY_FULL_SCREEN_DIALOG_CLASS,
31
+ positionStrategy: this._overlay.position().global().left('0').top('0').bottom('0').right('0'),
32
+ documentClass: 'et-overlay--full-screen-dialog-document',
33
+ },
34
+ bottomSheet: {
35
+ width: '100%',
36
+ height: undefined,
37
+ maxHeight: 'calc(100% - 72px)',
38
+ maxWidth: '640px',
39
+ minHeight: undefined,
40
+ minWidth: undefined,
41
+ containerClass: ET_OVERLAY_BOTTOM_SHEET_CLASS,
42
+ positionStrategy: this._overlay.position().global().centerHorizontally().bottom('0'),
43
+ dragToDismiss: {
44
+ direction: 'to-bottom',
45
+ },
46
+ },
47
+ topSheet: {
48
+ width: '100%',
49
+ height: undefined,
50
+ maxHeight: 'calc(100% - 72px)',
51
+ maxWidth: '640px',
52
+ minHeight: undefined,
53
+ minWidth: undefined,
54
+ containerClass: ET_OVERLAY_TOP_SHEET_CLASS,
55
+ positionStrategy: this._overlay.position().global().centerHorizontally().top('0'),
56
+ dragToDismiss: {
57
+ direction: 'to-top',
58
+ },
59
+ },
60
+ leftSheet: {
61
+ width: '100%',
62
+ height: '100%',
63
+ maxHeight: undefined,
64
+ maxWidth: '640px',
65
+ minHeight: undefined,
66
+ minWidth: undefined,
67
+ containerClass: ET_OVERLAY_LEFT_SHEET_CLASS,
68
+ positionStrategy: this._overlay.position().global().left('0').centerVertically(),
69
+ dragToDismiss: {
70
+ direction: 'to-left',
71
+ },
72
+ },
73
+ rightSheet: {
74
+ width: '100%',
75
+ height: '100%',
76
+ maxHeight: undefined,
77
+ maxWidth: '640px',
78
+ minHeight: undefined,
79
+ minWidth: undefined,
80
+ containerClass: ET_OVERLAY_RIGHT_SHEET_CLASS,
81
+ positionStrategy: this._overlay.position().global().right('0').centerVertically(),
82
+ dragToDismiss: {
83
+ direction: 'to-right',
84
+ },
85
+ },
86
+ };
87
+ }
88
+ transformingBottomSheetToDialog(customConfig) {
89
+ const data = [
90
+ {
91
+ config: this.mergeConfigs(this.DEFAULTS.bottomSheet, customConfig?.bottomSheet ?? {}),
92
+ },
93
+ {
94
+ breakpoint: 'md',
95
+ config: this.mergeConfigs(this.DEFAULTS.dialog, customConfig?.dialog ?? {}),
96
+ },
97
+ ];
98
+ return data;
99
+ }
100
+ transformingFullScreenDialogToRightSheet(customConfig) {
101
+ const data = [
102
+ {
103
+ config: this.mergeConfigs(this.DEFAULTS.fullScreenDialog, customConfig?.fullScreenDialog ?? {}),
104
+ },
105
+ {
106
+ breakpoint: 'md',
107
+ config: this.mergeConfigs(this.DEFAULTS.rightSheet, customConfig?.rightSheet ?? {}),
108
+ },
109
+ ];
110
+ return data;
111
+ }
112
+ dialog(customConfig) {
113
+ const data = [
114
+ {
115
+ config: this.mergeConfigs(this.DEFAULTS.dialog, customConfig ?? {}),
116
+ },
117
+ ];
118
+ return data;
119
+ }
120
+ fullScreenDialog(customConfig) {
121
+ const data = [
122
+ {
123
+ config: this.mergeConfigs(this.DEFAULTS.fullScreenDialog, customConfig ?? {}),
124
+ },
125
+ ];
126
+ return data;
127
+ }
128
+ bottomSheet(customConfig) {
129
+ const data = [
130
+ {
131
+ config: this.mergeConfigs(this.DEFAULTS.bottomSheet, customConfig ?? {}),
132
+ },
133
+ ];
134
+ return data;
135
+ }
136
+ topSheet(customConfig) {
137
+ const data = [
138
+ {
139
+ config: this.mergeConfigs(this.DEFAULTS.topSheet, customConfig ?? {}),
140
+ },
141
+ ];
142
+ return data;
143
+ }
144
+ leftSheet(customConfig) {
145
+ const data = [
146
+ {
147
+ config: this.mergeConfigs(this.DEFAULTS.leftSheet, customConfig ?? {}),
148
+ },
149
+ ];
150
+ return data;
151
+ }
152
+ rightSheet(customConfig) {
153
+ const data = [
154
+ {
155
+ config: this.mergeConfigs(this.DEFAULTS.rightSheet, customConfig ?? {}),
156
+ },
157
+ ];
158
+ return data;
159
+ }
160
+ mergeConfigs(...configs) {
161
+ const config = configs.reduce((acc, curr) => {
162
+ return {
163
+ ...acc,
164
+ ...curr,
165
+ };
166
+ }, {});
167
+ return config;
168
+ }
169
+ }
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1wb3NpdGlvbi1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL292ZXJsYXkvY29tcG9uZW50cy9vdmVybGF5L3V0aWxzL292ZXJsYXktcG9zaXRpb24tYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2QyxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyx3QkFBd0IsQ0FBQztBQUNwRSxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyx5QkFBeUIsQ0FBQztBQUN0RSxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyx1QkFBdUIsQ0FBQztBQUNsRSxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRywwQkFBMEIsQ0FBQztBQUN4RSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxvQkFBb0IsQ0FBQztBQUM1RCxNQUFNLENBQUMsTUFBTSxtQ0FBbUMsR0FBRyxnQ0FBZ0MsQ0FBQztBQUVwRixNQUFNLE9BQU8sc0JBQXNCO0lBQW5DO1FBQ21CLGFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbkMsYUFBUSxHQUFHO1lBQ2xCLE1BQU0sRUFBRTtnQkFDTixLQUFLLEVBQUUsU0FBUztnQkFDaEIsTUFBTSxFQUFFLFNBQVM7Z0JBQ2pCLFNBQVMsRUFBRSxNQUFNO2dCQUNqQixRQUFRLEVBQUUsTUFBTTtnQkFDaEIsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLFFBQVEsRUFBRSxTQUFTO2dCQUNuQixjQUFjLEVBQUUsdUJBQXVCO2dCQUN2QyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFD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QUk7YUFDUixDQUFDO1FBQ0osQ0FBQyxFQUFFLEVBQTZCLENBQUMsQ0FBQztRQUVsQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPdmVybGF5QnJlYWtwb2ludENvbmZpZywgT3ZlcmxheUJyZWFrcG9pbnRDb25maWdFbnRyeSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IEVUX09WRVJMQVlfTEVGVF9TSEVFVF9DTEFTUyA9ICdldC1vdmVybGF5LS1sZWZ0LXNoZWV0JztcbmV4cG9ydCBjb25zdCBFVF9PVkVSTEFZX1JJR0hUX1NIRUVUX0NMQVNTID0gJ2V0LW92ZXJsYXktLXJpZ2h0LXNoZWV0JztcbmV4cG9ydCBjb25zdCBFVF9PVkVSTEFZX1RPUF9TSEVFVF9DTEFTUyA9ICdldC1vdmVybGF5LS10b3Atc2hlZXQnO1xuZXhwb3J0IGNvbnN0IEVUX09WRVJMQVlfQk9UVE9NX1NIRUVUX0NMQVNTID0gJ2V0LW92ZXJsYXktLWJvdHRvbS1zaGVldCc7XG5leHBvcnQgY29uc3QgRVRfT1ZFUkxBWV9ESUFMT0dfQ0xBU1MgPSAnZXQtb3ZlcmxheS0tZGlhbG9nJztcbmV4cG9ydCBjb25zdCBFVF9PVkVSTEFZX0ZVTExfU0NSRUVOX0RJQUxPR19DTEFTUyA9ICdldC1vdmVybGF5LS1mdWxsLXNjcmVlbi1kaWFsb2cnO1xuXG5leHBvcnQgY2xhc3MgT3ZlcmxheVBvc2l0aW9uQnVpbGRlciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX292ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XG5cbiAgcmVhZG9ubHkgREVGQVVMVFMgPSB7XG4gICAgZGlhbG9nOiB7XG4gICAgICB3aWR0aDogdW5kZWZpbmVkLFxuICAgICAgaGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICBtYXhIZWlnaHQ6ICc4MHZoJyxcbiAgICAgIG1heFdpZHRoOiAnODB2dycsXG4gICAgICBtaW5IZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgIG1pbldpZHRoOiB1bmRlZmluZWQsXG4gICAgICBjb250YWluZXJDbGFzczogRVRfT1ZFUkxBWV9ESUFMT0dfQ0xBU1MsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkuY2VudGVyVmVydGljYWxseSgpLFxuICAgIH0sXG4gICAgZnVsbFNjcmVlbkRpYWxvZzoge1xuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgbWF4SGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICBtYXhXaWR0aDogdW5kZWZpbmVkLFxuICAgICAgbWluSGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICBtaW5XaWR0aDogdW5kZWZpbmVkLFxuICAgICAgY29udGFpbmVyQ2xhc3M6IEVUX09WRVJMQVlfRlVMTF9TQ1JFRU5fRElBTE9HX0NMQVNTLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmxlZnQoJzAnKS50b3AoJzAnKS5ib3R0b20oJzAnKS5yaWdodCgnMCcpLFxuICAgICAgZG9jdW1lbnRDbGFzczogJ2V0LW92ZXJsYXktLWZ1bGwtc2NyZWVuLWRpYWxvZy1kb2N1bWVudCcsXG4gICAgfSxcbiAgICBib3R0b21TaGVldDoge1xuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIGhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgbWF4SGVpZ2h0OiAnY2FsYygxMDAlIC0gNzJweCknLFxuICAgICAgbWF4V2lkdGg6ICc2NDBweCcsXG4gICAgICBtaW5IZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgIG1pbldpZHRoOiB1bmRlZmluZWQsXG4gICAgICBjb250YWluZXJDbGFzczogRVRfT1ZFUkxBWV9CT1RUT01fU0hFRVRfQ0xBU1MsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkuY2VudGVySG9yaXpvbnRhbGx5KCkuYm90dG9tKCcwJyksXG4gICAgICBkcmFnVG9EaXNtaXNzOiB7XG4gICAgICAgIGRpcmVjdGlvbjogJ3RvLWJvdHRvbScsXG4gICAgICB9LFxuICAgIH0sXG4gICAgdG9wU2hlZXQ6IHtcbiAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICBoZWlnaHQ6IHVuZGVmaW5lZCxcbiAgICAgIG1heEhlaWdodDogJ2NhbGMoMTAwJSAtIDcycHgpJyxcbiAgICAgIG1heFdpZHRoOiAnNjQwcHgnLFxuICAgICAgbWluSGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICBtaW5XaWR0aDogdW5kZWZpbmVkLFxuICAgICAgY29udGFpbmVyQ2xhc3M6IEVUX09WRVJMQVlfVE9QX1NIRUVUX0NMQVNTLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmNlbnRlckhvcml6b250YWxseSgpLnRvcCgnMCcpLFxuICAgICAgZHJhZ1RvRGlzbWlzczoge1xuICAgICAgICBkaXJlY3Rpb246ICd0by10b3AnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGxlZnRTaGVldDoge1xuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgbWF4SGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICBtYXhXaWR0aDogJzY0MHB4JyxcbiAgICAgIG1pbkhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgbWluV2lkdGg6IHVuZGVmaW5lZCxcbiAgICAgIGNvbnRhaW5lckNsYXNzOiBFVF9PVkVSTEFZX0xFRlRfU0hFRVRfQ0xBU1MsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkubGVmdCgnMCcpLmNlbnRlclZlcnRpY2FsbHkoKSxcbiAgICAgIGRyYWdUb0Rpc21pc3M6IHtcbiAgICAgICAgZGlyZWN0aW9uOiAndG8tbGVmdCcsXG4gICAgICB9LFxuICAgIH0sXG4gICAgcmlnaHRTaGVldDoge1xuICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgbWF4SGVpZ2h0OiB1bmRlZmluZWQsXG4gICAgICBtYXhXaWR0aDogJzY0MHB4JyxcbiAgICAgIG1pbkhlaWdodDogdW5kZWZpbmVkLFxuICAgICAgbWluV2lkdGg6IHVuZGVmaW5lZCxcbiAgICAgIGNvbnRhaW5lckNsYXNzOiBFVF9PVkVSTEFZX1JJR0hUX1NIRUVUX0NMQVNTLFxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5fb3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLnJpZ2h0KCcwJykuY2VudGVyVmVydGljYWxseSgpLFxuICAgICAgZHJhZ1RvRGlzbWlzczoge1xuICAgICAgICBkaXJlY3Rpb246ICd0by1yaWdodCcsXG4gICAgICB9LFxuICAgIH0sXG4gIH0gc2F0aXNmaWVzIFJlY29yZDxzdHJpbmcsIE92ZXJsYXlCcmVha3BvaW50Q29uZmlnPjtcblxuICB0cmFuc2Zvcm1pbmdCb3R0b21TaGVldFRvRGlhbG9nKGN1c3RvbUNvbmZpZz86IHtcbiAgICBib3R0b21TaGVldD86IE92ZXJsYXlCcmVha3BvaW50Q29uZmlnO1xuICAgIGRpYWxvZz86IE92ZXJsYXlCcmVha3BvaW50Q29uZmlnO1xuICB9KSB7XG4gICAgY29uc3QgZGF0YTogT3ZlcmxheUJyZWFrcG9pbnRDb25maWdFbnRyeVtdID0gW1xuICAgICAge1xuICAgICAgICBjb25maWc6IHRoaXMubWVyZ2VDb25maWdzKHRoaXMuREVGQVVMVFMuYm90dG9tU2hlZXQsIGN1c3RvbUNvbmZpZz8uYm90dG9tU2hlZXQgPz8ge30pLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgYnJlYWtwb2ludDogJ21kJyxcbiAgICAgICAgY29uZmlnOiB0aGlzLm1lcmdlQ29uZmlncyh0aGlzLkRFRkFVTFRTLmRpYWxvZywgY3VzdG9tQ29uZmlnPy5kaWFsb2cgPz8ge30pLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICB0cmFuc2Zvcm1pbmdGdWxsU2NyZWVuRGlhbG9nVG9SaWdodFNoZWV0KGN1c3RvbUNvbmZpZz86IHtcbiAgICBmdWxsU2NyZWVuRGlhbG9nPzogT3ZlcmxheUJyZWFrcG9pbnRDb25maWc7XG4gICAgcmlnaHRTaGVldD86IE92ZXJsYXlCcmVha3BvaW50Q29uZmlnO1xuICB9KSB7XG4gICAgY29uc3QgZGF0YTogT3ZlcmxheUJyZWFrcG9pbnRDb25maWdFbnRyeVtdID0gW1xuICAgICAge1xuICAgICAgICBjb25maWc6IHRoaXMubWVyZ2VDb25maWdzKHRoaXMuREVGQVVMVFMuZnVsbFNjcmVlbkRpYWxvZywgY3VzdG9tQ29uZmlnPy5mdWxsU2NyZWVuRGlhbG9nID8/IHt9KSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGJyZWFrcG9pbnQ6ICdtZCcsXG4gICAgICAgIGNvbmZpZzogdGhpcy5tZXJnZUNvbmZpZ3ModGhpcy5ERUZBVUxUUy5yaWdodFNoZWV0LCBjdXN0b21Db25maWc/LnJpZ2h0U2hlZXQgPz8ge30pLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBkaWFsb2coY3VzdG9tQ29uZmlnPzogT3ZlcmxheUJyZWFrcG9pbnRDb25maWcpIHtcbiAgICBjb25zdCBkYXRhOiBPdmVybGF5QnJlYWtwb2ludENvbmZpZ0VudHJ5W10gPSBbXG4gICAgICB7XG4gICAgICAgIGNvbmZpZzogdGhpcy5tZXJnZUNvbmZpZ3ModGhpcy5ERUZBVUxUUy5kaWFsb2csIGN1c3RvbUNvbmZpZyA/PyB7fSksXG4gICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGZ1bGxTY3JlZW5EaWFsb2coY3VzdG9tQ29uZmlnPzogT3ZlcmxheUJyZWFrcG9pbnRDb25maWcpIHtcbiAgICBjb25zdCBkYXRhOiBPdmVybGF5QnJlYWtwb2ludENvbmZpZ0VudHJ5W10gPSBbXG4gICAgICB7XG4gICAgICAgIGNvbmZpZzogdGhpcy5tZXJnZUNvbmZpZ3ModGhpcy5ERUZBVUxUUy5mdWxsU2NyZWVuRGlhbG9nLCBjdXN0b21Db25maWcgPz8ge30pLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBib3R0b21TaGVldChjdXN0b21Db25maWc/OiBPdmVybGF5QnJlYWtwb2ludENvbmZpZykge1xuICAgIGNvbnN0IGRhdGE6IE92ZXJsYXlCcmVha3BvaW50Q29uZmlnRW50cnlbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgY29uZmlnOiB0aGlzLm1lcmdlQ29uZmlncyh0aGlzLkRFRkFVTFRTLmJvdHRvbVNoZWV0LCBjdXN0b21Db25maWcgPz8ge30pLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICB0b3BTaGVldChjdXN0b21Db25maWc/OiBPdmVybGF5QnJlYWtwb2ludENvbmZpZykge1xuICAgIGNvbnN0IGRhdGE6IE92ZXJsYXlCcmVha3BvaW50Q29uZmlnRW50cnlbXSA9IFtcbiAgICAgIHtcbiAgICAgICAgY29uZmlnOiB0aGlzLm1lcmdlQ29uZmlncyh0aGlzLkRFRkFVTFRTLnRvcFNoZWV0LCBjdXN0b21Db25maWcgPz8ge30pLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBsZWZ0U2hlZXQoY3VzdG9tQ29uZmlnPzogT3ZlcmxheUJyZWFrcG9pbnRDb25maWcpIHtcbiAgICBjb25zdCBkYXRhOiBPdmVybGF5QnJlYWtwb2ludENvbmZpZ0VudHJ5W10gPSBbXG4gICAgICB7XG4gICAgICAgIGNvbmZpZzogdGhpcy5tZXJnZUNvbmZpZ3ModGhpcy5ERUZBVUxUUy5sZWZ0U2hlZXQsIGN1c3RvbUNvbmZpZyA/PyB7fSksXG4gICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHJpZ2h0U2hlZXQoY3VzdG9tQ29uZmlnPzogT3ZlcmxheUJyZWFrcG9pbnRDb25maWcpIHtcbiAgICBjb25zdCBkYXRhOiBPdmVybGF5QnJlYWtwb2ludENvbmZpZ0VudHJ5W10gPSBbXG4gICAgICB7XG4gICAgICAgIGNvbmZpZzogdGhpcy5tZXJnZUNvbmZpZ3ModGhpcy5ERUZBVUxUUy5yaWdodFNoZWV0LCBjdXN0b21Db25maWcgPz8ge30pLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBtZXJnZUNvbmZpZ3MoLi4uY29uZmlnczogT3ZlcmxheUJyZWFrcG9pbnRDb25maWdbXSkge1xuICAgIGNvbnN0IGNvbmZpZyA9IGNvbmZpZ3MucmVkdWNlKChhY2MsIGN1cnIpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmFjYyxcbiAgICAgICAgLi4uY3VycixcbiAgICAgIH07XG4gICAgfSwge30gYXMgT3ZlcmxheUJyZWFrcG9pbnRDb25maWcpO1xuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxufVxuIl19