@ethlete/cdk 2.6.2 → 2.7.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 (311) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/esm2022/lib/components/accordion/components/accordion/accordion.component.mjs +5 -6
  3. package/esm2022/lib/components/accordion/components/accordion-group/accordion-group.component.mjs +5 -6
  4. package/esm2022/lib/components/accordion/partials/accordion-hint/accordion-hint.directive.mjs +5 -6
  5. package/esm2022/lib/components/accordion/partials/accordion-hint-wrapper/accordion-hint-wrapper.directive.mjs +5 -6
  6. package/esm2022/lib/components/accordion/partials/accordion-label/accordion-label.directive.mjs +5 -6
  7. package/esm2022/lib/components/accordion/partials/accordion-label-wrapper/accordion-label-wrapper.directive.mjs +5 -6
  8. package/esm2022/lib/components/bracket/components/bracket/bracket.component.mjs +5 -6
  9. package/esm2022/lib/components/bracket/directives/bracket-match/bracket-match.directive.mjs +5 -6
  10. package/esm2022/lib/components/bracket/directives/bracket-round/bracket-round.directive.mjs +5 -6
  11. package/esm2022/lib/components/bracket/partials/bracket-match/bracket-match.component.mjs +5 -6
  12. package/esm2022/lib/components/bracket/partials/bracket-round-header/bracket-round-header.component.mjs +5 -6
  13. package/esm2022/lib/components/button/components/button/button.component.mjs +5 -6
  14. package/esm2022/lib/components/button/components/query-button/query-button.component.mjs +5 -6
  15. package/esm2022/lib/components/button/directives/button/button.directive.mjs +5 -6
  16. package/esm2022/lib/components/button/directives/query-button/query-button.directive.mjs +5 -6
  17. package/esm2022/lib/components/forms/components/checkbox/components/checkbox/checkbox.component.mjs +5 -6
  18. package/esm2022/lib/components/forms/components/checkbox/components/checkbox-field/checkbox-field.component.mjs +5 -6
  19. package/esm2022/lib/components/forms/components/checkbox/components/checkbox-group/checkbox-group.component.mjs +5 -6
  20. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox/checkbox.directive.mjs +5 -6
  21. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-field/checkbox-field.directive.mjs +5 -6
  22. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group/checkbox-group.directive.mjs +5 -6
  23. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group-control/checkbox-group-control.directive.mjs +5 -6
  24. package/esm2022/lib/components/forms/components/error/components/error/error.component.mjs +5 -6
  25. package/esm2022/lib/components/forms/components/input/components/email-input/email-input.component.mjs +5 -6
  26. package/esm2022/lib/components/forms/components/input/components/input-field/input-field.component.mjs +5 -6
  27. package/esm2022/lib/components/forms/components/input/components/number-input/number-input.component.mjs +5 -6
  28. package/esm2022/lib/components/forms/components/input/components/password-input/password-input.component.mjs +5 -6
  29. package/esm2022/lib/components/forms/components/input/components/search-input/search-input.component.mjs +5 -6
  30. package/esm2022/lib/components/forms/components/input/components/text-input/text-input.component.mjs +5 -6
  31. package/esm2022/lib/components/forms/components/input/components/textarea-input/textarea-input.component.mjs +5 -6
  32. package/esm2022/lib/components/forms/components/input/directives/autosize-textarea/autosize-textarea.directive.mjs +5 -6
  33. package/esm2022/lib/components/forms/components/input/directives/email-input/email-input.directive.mjs +5 -6
  34. package/esm2022/lib/components/forms/components/input/directives/number-input/number-input.directive.mjs +5 -6
  35. package/esm2022/lib/components/forms/components/input/directives/password-input/password-input.directive.mjs +5 -6
  36. package/esm2022/lib/components/forms/components/input/directives/search-input/search-input.directive.mjs +5 -6
  37. package/esm2022/lib/components/forms/components/input/directives/text-input/text-input.directive.mjs +5 -6
  38. package/esm2022/lib/components/forms/components/input/directives/textarea-input/textarea-input.directive.mjs +5 -6
  39. package/esm2022/lib/components/forms/components/input/partials/password-input-toggle/password-input-toggle.component.mjs +5 -6
  40. package/esm2022/lib/components/forms/components/input/partials/search-input-clear/search-input-clear.component.mjs +5 -6
  41. package/esm2022/lib/components/forms/components/label/components/label/label.component.mjs +5 -6
  42. package/esm2022/lib/components/forms/components/label/directives/label-suffix/label-suffix.directive.mjs +5 -6
  43. package/esm2022/lib/components/forms/components/radio/components/radio/radio.component.mjs +5 -6
  44. package/esm2022/lib/components/forms/components/radio/components/radio-field/radio-field.component.mjs +5 -6
  45. package/esm2022/lib/components/forms/components/radio/components/radio-group/radio-group.component.mjs +5 -6
  46. package/esm2022/lib/components/forms/components/radio/directives/radio/radio.directive.mjs +5 -6
  47. package/esm2022/lib/components/forms/components/radio/directives/radio-field/radio-field.directive.mjs +5 -6
  48. package/esm2022/lib/components/forms/components/radio/directives/radio-group/radio-group.directive.mjs +5 -6
  49. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button/segmented-button.component.mjs +5 -6
  50. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-field/segmented-button-field.component.mjs +5 -6
  51. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-group/segmented-button-group.component.mjs +5 -6
  52. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.mjs +5 -6
  53. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-field/segmented-button-field.directive.mjs +5 -6
  54. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-group/segmented-button-group.directive.mjs +5 -6
  55. package/esm2022/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.mjs +5 -6
  56. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.mjs +5 -6
  57. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.mjs +5 -6
  58. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.mjs +5 -6
  59. package/esm2022/lib/components/forms/components/select/components/native-select/components/native-select/native-select.component.mjs +5 -6
  60. package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-input/native-select-input.directive.mjs +5 -6
  61. package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-option/native-select-option.directive.mjs +5 -6
  62. package/esm2022/lib/components/forms/components/select/components/native-select/partials/native-select-option/native-select-option.component.mjs +5 -6
  63. package/esm2022/lib/components/forms/components/select/components/select/components/select/select.component.mjs +5 -6
  64. package/esm2022/lib/components/forms/components/select/components/select/directives/select/select.directive.mjs +5 -6
  65. package/esm2022/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.mjs +5 -6
  66. package/esm2022/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.mjs +5 -6
  67. package/esm2022/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.mjs +5 -6
  68. package/esm2022/lib/components/forms/components/select/components/select/partials/select-option/select-option.component.mjs +5 -6
  69. package/esm2022/lib/components/forms/components/select/components/select-field/select-field.component.mjs +5 -6
  70. package/esm2022/lib/components/forms/components/select/directives/select-field/select-field.directive.mjs +5 -6
  71. package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle/slide-toggle.component.mjs +5 -6
  72. package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle-field/slide-toggle-field.component.mjs +5 -6
  73. package/esm2022/lib/components/forms/components/slide-toggle/directives/slide-toggle/slide-toggle.directive.mjs +5 -6
  74. package/esm2022/lib/components/forms/components/slider/components/slider/slider.component.mjs +5 -6
  75. package/esm2022/lib/components/forms/components/slider/components/slider-field/slider-field.component.mjs +5 -6
  76. package/esm2022/lib/components/forms/directives/dynamic-form-field/dynamic-form-field.directive.mjs +5 -6
  77. package/esm2022/lib/components/forms/directives/dynamic-form-group/dynamic-form-group.directive.mjs +5 -6
  78. package/esm2022/lib/components/forms/directives/if-input-empty/if-input-empty.directive.mjs +5 -6
  79. package/esm2022/lib/components/forms/directives/if-input-filled/if-input-filled.directive.mjs +5 -6
  80. package/esm2022/lib/components/forms/directives/input/input.directive.mjs +5 -6
  81. package/esm2022/lib/components/forms/directives/input-prefix/input-prefix.directive.mjs +5 -6
  82. package/esm2022/lib/components/forms/directives/input-suffix/input-suffix.directive.mjs +5 -6
  83. package/esm2022/lib/components/forms/directives/native-input-ref/native-input-ref.directive.mjs +5 -6
  84. package/esm2022/lib/components/forms/directives/static-form-field/static-form-field.directive.mjs +5 -6
  85. package/esm2022/lib/components/forms/directives/static-form-group/static-form-group.directive.mjs +5 -6
  86. package/esm2022/lib/components/forms/directives/writeable-input/writeable-input.directive.mjs +5 -6
  87. package/esm2022/lib/components/forms/services/default-validator-errors.service.mjs +5 -6
  88. package/esm2022/lib/components/forms/services/form-field-state.service.mjs +5 -6
  89. package/esm2022/lib/components/forms/services/form-group-state.service.mjs +5 -6
  90. package/esm2022/lib/components/forms/services/input-state.service.mjs +5 -6
  91. package/esm2022/lib/components/forms/utils/decorated-form-field.base.mjs +5 -6
  92. package/esm2022/lib/components/forms/utils/decorated-input.base.mjs +5 -6
  93. package/esm2022/lib/components/forms/utils/input.base.mjs +5 -6
  94. package/esm2022/lib/components/icons/chevron-icon/chevron-icon.component.mjs +5 -6
  95. package/esm2022/lib/components/masonry/components/masonry/masonry.component.mjs +5 -6
  96. package/esm2022/lib/components/masonry/partials/masonry-item/masonry-item.component.mjs +5 -6
  97. package/esm2022/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/bottom-sheet-container.component.mjs +5 -6
  98. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/bottom-sheet-container-base.component.mjs +5 -6
  99. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/bottom-sheet-drag-handle.component.mjs +5 -6
  100. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-title/bottom-sheet-title.directive.mjs +5 -6
  101. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-base.service.mjs +5 -6
  102. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-swipe-handler.service.mjs +5 -6
  103. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet.service.mjs +5 -6
  104. package/esm2022/lib/components/overlay/components/dialog/components/dialog-container/dialog-container.component.mjs +5 -6
  105. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-close/dialog-close.directive.mjs +5 -6
  106. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-container-base/dialog-container-base.component.mjs +5 -6
  107. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-title/dialog-title.directive.mjs +5 -6
  108. package/esm2022/lib/components/overlay/components/dialog/services/dialog-base.service.mjs +5 -6
  109. package/esm2022/lib/components/overlay/components/dialog/services/dialog.service.mjs +5 -6
  110. package/esm2022/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.mjs +5 -6
  111. package/esm2022/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.mjs +5 -6
  112. package/esm2022/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.mjs +5 -6
  113. package/esm2022/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.mjs +5 -6
  114. package/esm2022/lib/components/overlay/services/dynamic-overlay.service.mjs +5 -6
  115. package/esm2022/lib/components/pagination/components/pagination/pagination.component.mjs +5 -6
  116. package/esm2022/lib/components/pagination/partials/pagination-link/pagination-link.directive.mjs +5 -6
  117. package/esm2022/lib/components/pagination/services/pagination-head.service.mjs +5 -6
  118. package/esm2022/lib/components/picture/picture-data.directive.mjs +5 -6
  119. package/esm2022/lib/components/picture/picture.component.mjs +5 -6
  120. package/esm2022/lib/components/progress-spinner/progress-spinner.component.mjs +5 -6
  121. package/esm2022/lib/components/scrollable/components/scrollable/scrollable.component.mjs +161 -93
  122. package/esm2022/lib/components/scrollable/types/scrollable.types.mjs +1 -1
  123. package/esm2022/lib/components/skeleton/components/skeleton/skeleton.component.mjs +5 -6
  124. package/esm2022/lib/components/skeleton/partials/skeleton-item/skeleton-item.component.mjs +5 -6
  125. package/esm2022/lib/components/sort/components/sort-header/sort-header.component.mjs +5 -6
  126. package/esm2022/lib/components/sort/partials/sort/sort.directive.mjs +5 -6
  127. package/esm2022/lib/components/sort/services/sort-header-intl.mjs +5 -6
  128. package/esm2022/lib/components/table/components/table/table.component.mjs +5 -6
  129. package/esm2022/lib/components/table/partials/cells/cell/cell.directive.mjs +5 -6
  130. package/esm2022/lib/components/table/partials/cells/cell-def/cell-def.directive.mjs +5 -6
  131. package/esm2022/lib/components/table/partials/cells/column-def/column-def.directive.mjs +5 -6
  132. package/esm2022/lib/components/table/partials/cells/footer-cell/footer-cell.directive.mjs +5 -6
  133. package/esm2022/lib/components/table/partials/cells/footer-cell-def/footer-cell-def.directive.mjs +5 -6
  134. package/esm2022/lib/components/table/partials/cells/header-cell/header-cell.directive.mjs +5 -6
  135. package/esm2022/lib/components/table/partials/cells/header-cell-def/header-cell-def.directive.mjs +5 -6
  136. package/esm2022/lib/components/table/partials/cells/text-column/text-column.component.mjs +5 -6
  137. package/esm2022/lib/components/table/partials/rows/footer-row/footer-row.component.mjs +5 -6
  138. package/esm2022/lib/components/table/partials/rows/footer-row-def/footer-row-def.directive.mjs +5 -6
  139. package/esm2022/lib/components/table/partials/rows/header-row/header-row.component.mjs +5 -6
  140. package/esm2022/lib/components/table/partials/rows/header-row-def/header-row-def.directive.mjs +5 -6
  141. package/esm2022/lib/components/table/partials/rows/no-data-row/no-data-row.directive.mjs +5 -6
  142. package/esm2022/lib/components/table/partials/rows/recycle-rows/recycle-rows.directive.mjs +5 -6
  143. package/esm2022/lib/components/table/partials/rows/row/row.component.mjs +5 -6
  144. package/esm2022/lib/components/table/partials/rows/row-def/row-def.directive.mjs +5 -6
  145. package/esm2022/lib/components/table/partials/table-busy/table-busy.directive.mjs +5 -6
  146. package/esm2022/lib/components/table/partials/table-busy-outlet/table-busy-outlet.directive.mjs +5 -6
  147. package/esm2022/lib/components/tabs/components/inline-tabs/inline-tabs.component.mjs +5 -6
  148. package/esm2022/lib/components/tabs/components/nav-tabs/nav-tabs.component.mjs +5 -6
  149. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab/inline-tab.component.mjs +5 -6
  150. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body/inline-tab-body.component.mjs +5 -6
  151. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body-host/inline-tab-body-host.directive.mjs +5 -6
  152. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-content/inline-tab-content.directive.mjs +5 -6
  153. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-header/inline-tab-header.component.mjs +5 -6
  154. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label/inline-tab-label.directive.mjs +5 -6
  155. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/inline-tab-label-wrapper.directive.mjs +5 -6
  156. package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tab-link/nav-tab-link.directive.mjs +5 -6
  157. package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/nav-tabs-outlet.component.mjs +5 -6
  158. package/esm2022/lib/components/tabs/utils/active-tab-underline.util.mjs +5 -6
  159. package/esm2022/lib/components/tabs/utils/paginated-tab-header.directive.mjs +5 -6
  160. package/esm2022/lib/services/swipe-handler.service.mjs +5 -6
  161. package/fesm2022/ethlete-cdk.mjs +629 -559
  162. package/fesm2022/ethlete-cdk.mjs.map +1 -1
  163. package/lib/components/accordion/components/accordion/accordion.component.d.ts +1 -1
  164. package/lib/components/accordion/components/accordion-group/accordion-group.component.d.ts +1 -1
  165. package/lib/components/accordion/partials/accordion-hint/accordion-hint.directive.d.ts +1 -1
  166. package/lib/components/accordion/partials/accordion-hint-wrapper/accordion-hint-wrapper.directive.d.ts +1 -1
  167. package/lib/components/accordion/partials/accordion-label/accordion-label.directive.d.ts +1 -1
  168. package/lib/components/accordion/partials/accordion-label-wrapper/accordion-label-wrapper.directive.d.ts +1 -1
  169. package/lib/components/bracket/components/bracket/bracket.component.d.ts +1 -1
  170. package/lib/components/bracket/directives/bracket-match/bracket-match.directive.d.ts +1 -1
  171. package/lib/components/bracket/directives/bracket-round/bracket-round.directive.d.ts +1 -1
  172. package/lib/components/bracket/partials/bracket-match/bracket-match.component.d.ts +1 -1
  173. package/lib/components/bracket/partials/bracket-round-header/bracket-round-header.component.d.ts +1 -1
  174. package/lib/components/button/components/button/button.component.d.ts +1 -1
  175. package/lib/components/button/components/query-button/query-button.component.d.ts +1 -1
  176. package/lib/components/button/directives/button/button.directive.d.ts +1 -1
  177. package/lib/components/button/directives/query-button/query-button.directive.d.ts +1 -1
  178. package/lib/components/forms/components/checkbox/components/checkbox/checkbox.component.d.ts +1 -1
  179. package/lib/components/forms/components/checkbox/components/checkbox-field/checkbox-field.component.d.ts +1 -1
  180. package/lib/components/forms/components/checkbox/components/checkbox-group/checkbox-group.component.d.ts +1 -1
  181. package/lib/components/forms/components/checkbox/directives/checkbox/checkbox.directive.d.ts +1 -1
  182. package/lib/components/forms/components/checkbox/directives/checkbox-field/checkbox-field.directive.d.ts +1 -1
  183. package/lib/components/forms/components/checkbox/directives/checkbox-group/checkbox-group.directive.d.ts +1 -1
  184. package/lib/components/forms/components/checkbox/directives/checkbox-group-control/checkbox-group-control.directive.d.ts +1 -1
  185. package/lib/components/forms/components/error/components/error/error.component.d.ts +1 -1
  186. package/lib/components/forms/components/input/components/email-input/email-input.component.d.ts +1 -1
  187. package/lib/components/forms/components/input/components/input-field/input-field.component.d.ts +1 -1
  188. package/lib/components/forms/components/input/components/number-input/number-input.component.d.ts +1 -1
  189. package/lib/components/forms/components/input/components/password-input/password-input.component.d.ts +1 -1
  190. package/lib/components/forms/components/input/components/search-input/search-input.component.d.ts +1 -1
  191. package/lib/components/forms/components/input/components/text-input/text-input.component.d.ts +1 -1
  192. package/lib/components/forms/components/input/components/textarea-input/textarea-input.component.d.ts +1 -1
  193. package/lib/components/forms/components/input/directives/autosize-textarea/autosize-textarea.directive.d.ts +1 -1
  194. package/lib/components/forms/components/input/directives/email-input/email-input.directive.d.ts +1 -1
  195. package/lib/components/forms/components/input/directives/number-input/number-input.directive.d.ts +1 -1
  196. package/lib/components/forms/components/input/directives/password-input/password-input.directive.d.ts +1 -1
  197. package/lib/components/forms/components/input/directives/search-input/search-input.directive.d.ts +1 -1
  198. package/lib/components/forms/components/input/directives/text-input/text-input.directive.d.ts +1 -1
  199. package/lib/components/forms/components/input/directives/textarea-input/textarea-input.directive.d.ts +1 -1
  200. package/lib/components/forms/components/input/partials/password-input-toggle/password-input-toggle.component.d.ts +1 -1
  201. package/lib/components/forms/components/input/partials/search-input-clear/search-input-clear.component.d.ts +1 -1
  202. package/lib/components/forms/components/label/components/label/label.component.d.ts +1 -1
  203. package/lib/components/forms/components/label/directives/label-suffix/label-suffix.directive.d.ts +1 -1
  204. package/lib/components/forms/components/radio/components/radio/radio.component.d.ts +1 -1
  205. package/lib/components/forms/components/radio/components/radio-field/radio-field.component.d.ts +1 -1
  206. package/lib/components/forms/components/radio/components/radio-group/radio-group.component.d.ts +1 -1
  207. package/lib/components/forms/components/radio/directives/radio/radio.directive.d.ts +1 -1
  208. package/lib/components/forms/components/radio/directives/radio-field/radio-field.directive.d.ts +1 -1
  209. package/lib/components/forms/components/radio/directives/radio-group/radio-group.directive.d.ts +1 -1
  210. package/lib/components/forms/components/segmented-button/components/segmented-button/segmented-button.component.d.ts +1 -1
  211. package/lib/components/forms/components/segmented-button/components/segmented-button-field/segmented-button-field.component.d.ts +1 -1
  212. package/lib/components/forms/components/segmented-button/components/segmented-button-group/segmented-button-group.component.d.ts +1 -1
  213. package/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.d.ts +1 -1
  214. package/lib/components/forms/components/segmented-button/directives/segmented-button-field/segmented-button-field.directive.d.ts +1 -1
  215. package/lib/components/forms/components/segmented-button/directives/segmented-button-group/segmented-button-group.directive.d.ts +1 -1
  216. package/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.d.ts +1 -1
  217. package/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.d.ts +1 -1
  218. package/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.d.ts +1 -1
  219. package/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.d.ts +1 -1
  220. package/lib/components/forms/components/select/components/native-select/components/native-select/native-select.component.d.ts +1 -1
  221. package/lib/components/forms/components/select/components/native-select/directives/native-select-input/native-select-input.directive.d.ts +1 -1
  222. package/lib/components/forms/components/select/components/native-select/directives/native-select-option/native-select-option.directive.d.ts +1 -1
  223. package/lib/components/forms/components/select/components/native-select/partials/native-select-option/native-select-option.component.d.ts +1 -1
  224. package/lib/components/forms/components/select/components/select/components/select/select.component.d.ts +1 -1
  225. package/lib/components/forms/components/select/components/select/directives/select/select.directive.d.ts +1 -1
  226. package/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.d.ts +1 -1
  227. package/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.d.ts +1 -1
  228. package/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.d.ts +1 -1
  229. package/lib/components/forms/components/select/components/select/partials/select-option/select-option.component.d.ts +1 -1
  230. package/lib/components/forms/components/select/components/select-field/select-field.component.d.ts +1 -1
  231. package/lib/components/forms/components/select/directives/select-field/select-field.directive.d.ts +1 -1
  232. package/lib/components/forms/components/slide-toggle/components/slide-toggle/slide-toggle.component.d.ts +1 -1
  233. package/lib/components/forms/components/slide-toggle/components/slide-toggle-field/slide-toggle-field.component.d.ts +1 -1
  234. package/lib/components/forms/components/slide-toggle/directives/slide-toggle/slide-toggle.directive.d.ts +1 -1
  235. package/lib/components/forms/components/slider/components/slider/slider.component.d.ts +1 -1
  236. package/lib/components/forms/components/slider/components/slider-field/slider-field.component.d.ts +1 -1
  237. package/lib/components/forms/directives/dynamic-form-field/dynamic-form-field.directive.d.ts +1 -1
  238. package/lib/components/forms/directives/dynamic-form-group/dynamic-form-group.directive.d.ts +1 -1
  239. package/lib/components/forms/directives/if-input-empty/if-input-empty.directive.d.ts +1 -1
  240. package/lib/components/forms/directives/if-input-filled/if-input-filled.directive.d.ts +1 -1
  241. package/lib/components/forms/directives/input/input.directive.d.ts +1 -1
  242. package/lib/components/forms/directives/input-prefix/input-prefix.directive.d.ts +1 -1
  243. package/lib/components/forms/directives/input-suffix/input-suffix.directive.d.ts +1 -1
  244. package/lib/components/forms/directives/native-input-ref/native-input-ref.directive.d.ts +1 -1
  245. package/lib/components/forms/directives/static-form-field/static-form-field.directive.d.ts +1 -1
  246. package/lib/components/forms/directives/static-form-group/static-form-group.directive.d.ts +1 -1
  247. package/lib/components/forms/directives/writeable-input/writeable-input.directive.d.ts +1 -1
  248. package/lib/components/forms/utils/decorated-form-field.base.d.ts +1 -1
  249. package/lib/components/forms/utils/decorated-input.base.d.ts +1 -1
  250. package/lib/components/forms/utils/input.base.d.ts +1 -1
  251. package/lib/components/icons/chevron-icon/chevron-icon.component.d.ts +1 -1
  252. package/lib/components/masonry/components/masonry/masonry.component.d.ts +1 -1
  253. package/lib/components/masonry/partials/masonry-item/masonry-item.component.d.ts +1 -1
  254. package/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/bottom-sheet-container.component.d.ts +1 -1
  255. package/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/bottom-sheet-container-base.component.d.ts +1 -1
  256. package/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/bottom-sheet-drag-handle.component.d.ts +1 -1
  257. package/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-title/bottom-sheet-title.directive.d.ts +1 -1
  258. package/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-base.service.d.ts +1 -1
  259. package/lib/components/overlay/components/dialog/components/dialog-container/dialog-container.component.d.ts +1 -1
  260. package/lib/components/overlay/components/dialog/partials/dialog-close/dialog-close.directive.d.ts +1 -1
  261. package/lib/components/overlay/components/dialog/partials/dialog-container-base/dialog-container-base.component.d.ts +1 -1
  262. package/lib/components/overlay/components/dialog/partials/dialog-title/dialog-title.directive.d.ts +1 -1
  263. package/lib/components/overlay/components/dialog/services/dialog-base.service.d.ts +1 -1
  264. package/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.d.ts +1 -1
  265. package/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.d.ts +1 -1
  266. package/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.d.ts +1 -1
  267. package/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.d.ts +1 -1
  268. package/lib/components/pagination/components/pagination/pagination.component.d.ts +1 -1
  269. package/lib/components/pagination/partials/pagination-link/pagination-link.directive.d.ts +1 -1
  270. package/lib/components/picture/picture-data.directive.d.ts +1 -1
  271. package/lib/components/picture/picture.component.d.ts +1 -1
  272. package/lib/components/progress-spinner/progress-spinner.component.d.ts +1 -1
  273. package/lib/components/scrollable/components/scrollable/scrollable.component.d.ts +29 -27
  274. package/lib/components/scrollable/types/scrollable.types.d.ts +6 -0
  275. package/lib/components/skeleton/components/skeleton/skeleton.component.d.ts +1 -1
  276. package/lib/components/skeleton/partials/skeleton-item/skeleton-item.component.d.ts +1 -1
  277. package/lib/components/sort/components/sort-header/sort-header.component.d.ts +1 -1
  278. package/lib/components/sort/partials/sort/sort.directive.d.ts +1 -1
  279. package/lib/components/table/components/table/table.component.d.ts +1 -1
  280. package/lib/components/table/partials/cells/cell/cell.directive.d.ts +1 -1
  281. package/lib/components/table/partials/cells/cell-def/cell-def.directive.d.ts +1 -1
  282. package/lib/components/table/partials/cells/column-def/column-def.directive.d.ts +1 -1
  283. package/lib/components/table/partials/cells/footer-cell/footer-cell.directive.d.ts +1 -1
  284. package/lib/components/table/partials/cells/footer-cell-def/footer-cell-def.directive.d.ts +1 -1
  285. package/lib/components/table/partials/cells/header-cell/header-cell.directive.d.ts +1 -1
  286. package/lib/components/table/partials/cells/header-cell-def/header-cell-def.directive.d.ts +1 -1
  287. package/lib/components/table/partials/cells/text-column/text-column.component.d.ts +1 -1
  288. package/lib/components/table/partials/rows/footer-row/footer-row.component.d.ts +1 -1
  289. package/lib/components/table/partials/rows/footer-row-def/footer-row-def.directive.d.ts +1 -1
  290. package/lib/components/table/partials/rows/header-row/header-row.component.d.ts +1 -1
  291. package/lib/components/table/partials/rows/header-row-def/header-row-def.directive.d.ts +1 -1
  292. package/lib/components/table/partials/rows/no-data-row/no-data-row.directive.d.ts +1 -1
  293. package/lib/components/table/partials/rows/recycle-rows/recycle-rows.directive.d.ts +1 -1
  294. package/lib/components/table/partials/rows/row/row.component.d.ts +1 -1
  295. package/lib/components/table/partials/rows/row-def/row-def.directive.d.ts +1 -1
  296. package/lib/components/table/partials/table-busy/table-busy.directive.d.ts +1 -1
  297. package/lib/components/table/partials/table-busy-outlet/table-busy-outlet.directive.d.ts +1 -1
  298. package/lib/components/tabs/components/inline-tabs/inline-tabs.component.d.ts +1 -1
  299. package/lib/components/tabs/components/nav-tabs/nav-tabs.component.d.ts +1 -1
  300. package/lib/components/tabs/partials/inline-tabs/inline-tab/inline-tab.component.d.ts +1 -1
  301. package/lib/components/tabs/partials/inline-tabs/inline-tab-body/inline-tab-body.component.d.ts +1 -1
  302. package/lib/components/tabs/partials/inline-tabs/inline-tab-body-host/inline-tab-body-host.directive.d.ts +1 -1
  303. package/lib/components/tabs/partials/inline-tabs/inline-tab-content/inline-tab-content.directive.d.ts +1 -1
  304. package/lib/components/tabs/partials/inline-tabs/inline-tab-header/inline-tab-header.component.d.ts +1 -1
  305. package/lib/components/tabs/partials/inline-tabs/inline-tab-label/inline-tab-label.directive.d.ts +1 -1
  306. package/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/inline-tab-label-wrapper.directive.d.ts +1 -1
  307. package/lib/components/tabs/partials/nav-tabs/nav-tab-link/nav-tab-link.directive.d.ts +1 -1
  308. package/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/nav-tabs-outlet.component.d.ts +1 -1
  309. package/lib/components/tabs/utils/active-tab-underline.util.d.ts +1 -1
  310. package/lib/components/tabs/utils/paginated-tab-header.directive.d.ts +1 -1
  311. package/package.json +4 -4
@@ -1,72 +1,32 @@
1
- import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
2
1
  import { NgClass, NgIf } from '@angular/common';
3
- import { ChangeDetectionStrategy, Component, ContentChildren, ElementRef, EventEmitter, HostBinding, Input, Output, Renderer2, ViewChild, ViewEncapsulation, inject, isDevMode, } from '@angular/core';
4
- import { CursorDragScrollDirective, IS_ACTIVE_ELEMENT, IS_ELEMENT, LetDirective, ObserveScrollStateDirective, createDestroy, equal, scrollToElement, } from '@ethlete/core';
5
- import { BehaviorSubject, startWith, takeUntil, tap } from 'rxjs';
2
+ import { ChangeDetectionStrategy, Component, ContentChildren, ElementRef, EventEmitter, HostBinding, Input, Output, Renderer2, ViewChild, ViewEncapsulation, booleanAttribute, inject, isDevMode, numberAttribute, } from '@angular/core';
3
+ import { CursorDragScrollDirective, IS_ACTIVE_ELEMENT, IS_ELEMENT, LetDirective, ObserveScrollStateDirective, createDestroy, equal, getElementVisibleStates, scrollToElement, } from '@ethlete/core';
4
+ import { BehaviorSubject, debounceTime, fromEvent, merge, startWith, takeUntil, tap } from 'rxjs';
6
5
  import { ChevronIconComponent } from '../../../icons';
7
6
  import * as i0 from "@angular/core";
8
- class ScrollableComponent {
7
+ export class ScrollableComponent {
9
8
  constructor() {
10
9
  this._destroy$ = createDestroy();
11
10
  this._renderer = inject(Renderer2);
12
11
  this._elementRef = inject(ElementRef);
12
+ this._isCursorDragging$ = new BehaviorSubject(false);
13
13
  this.itemSize = 'auto';
14
14
  this.direction = 'horizontal';
15
- this._renderMasks = true;
16
- this._renderButtons = true;
17
- this._renderScrollbars = false;
18
- this._stickyButtons = false;
19
- this._cursorDragScroll = true;
20
- this._activeElementScrollMargin = 40;
21
- this._disableActiveElementScrolling = false;
15
+ this.renderMasks = true;
16
+ this.renderButtons = true;
17
+ this.renderScrollbars = false;
18
+ this.stickyButtons = false;
19
+ this.cursorDragScroll = true;
20
+ this.disableActiveElementScrolling = false;
22
21
  this.scrollMode = 'container';
22
+ this.snap = false;
23
+ this.scrollMargin = 0;
23
24
  this.scrollStateChange = new EventEmitter();
25
+ this.intersectionChange = new EventEmitter();
24
26
  this.activeElements = null;
25
27
  this.elements = null;
26
28
  this.scrollState$ = new BehaviorSubject(null);
27
29
  }
28
- get renderMasks() {
29
- return this._renderMasks;
30
- }
31
- set renderMasks(value) {
32
- this._renderMasks = coerceBooleanProperty(value);
33
- }
34
- get renderButtons() {
35
- return this._renderButtons;
36
- }
37
- set renderButtons(value) {
38
- this._renderButtons = coerceBooleanProperty(value);
39
- }
40
- get renderScrollbars() {
41
- return this._renderScrollbars;
42
- }
43
- set renderScrollbars(value) {
44
- this._renderScrollbars = coerceBooleanProperty(value);
45
- }
46
- get stickyButtons() {
47
- return this._stickyButtons;
48
- }
49
- set stickyButtons(value) {
50
- this._stickyButtons = coerceBooleanProperty(value);
51
- }
52
- get cursorDragScroll() {
53
- return this._cursorDragScroll;
54
- }
55
- set cursorDragScroll(value) {
56
- this._cursorDragScroll = coerceBooleanProperty(value);
57
- }
58
- get activeElementScrollMargin() {
59
- return this._activeElementScrollMargin;
60
- }
61
- set activeElementScrollMargin(value) {
62
- this._activeElementScrollMargin = coerceNumberProperty(value);
63
- }
64
- get disableActiveElementScrolling() {
65
- return this._disableActiveElementScrolling;
66
- }
67
- set disableActiveElementScrolling(value) {
68
- this._disableActiveElementScrolling = coerceBooleanProperty(value);
69
- }
70
30
  ngOnInit() {
71
31
  this.scrollState$
72
32
  .pipe(tap((state) => {
@@ -79,6 +39,7 @@ class ScrollableComponent {
79
39
  this._renderer.setAttribute(element, 'can-scroll', state.canScroll.toString());
80
40
  }), takeUntil(this._destroy$))
81
41
  .subscribe();
42
+ this._setupScrollListening();
82
43
  }
83
44
  ngAfterContentInit() {
84
45
  if (!this.activeElements || !this.elements) {
@@ -99,35 +60,12 @@ class ScrollableComponent {
99
60
  behavior: 'auto',
100
61
  container: this.scrollable.nativeElement,
101
62
  element: firstActive.elementRef.nativeElement,
102
- scrollInlineMargin: this.direction === 'horizontal' ? this.activeElementScrollMargin : 0,
103
- scrollBlockMargin: this.direction === 'horizontal' ? 0 : this.activeElementScrollMargin,
63
+ scrollInlineMargin: this.direction === 'horizontal' ? this.scrollMargin : 0,
64
+ scrollBlockMargin: this.direction === 'horizontal' ? 0 : this.scrollMargin,
104
65
  });
105
66
  }), takeUntil(this._destroy$))
106
67
  .subscribe();
107
68
  }
108
- _scrollStateChanged(scrollState) {
109
- if (equal(this.scrollState$.value, scrollState)) {
110
- return;
111
- }
112
- this.scrollState$.next(scrollState);
113
- this.scrollStateChange.emit(scrollState);
114
- }
115
- scrollToStartDirection() {
116
- if (this.scrollMode === 'container') {
117
- this.scrollOneContainerSize('start');
118
- }
119
- else {
120
- this.scrollOneItemSize('start');
121
- }
122
- }
123
- scrollToStartEnd() {
124
- if (this.scrollMode === 'container') {
125
- this.scrollOneContainerSize('end');
126
- }
127
- else {
128
- this.scrollOneItemSize('end');
129
- }
130
- }
131
69
  scrollOneContainerSize(direction) {
132
70
  const scrollElement = this.scrollable.nativeElement;
133
71
  const parent = this._elementRef.nativeElement;
@@ -179,15 +117,133 @@ class ScrollableComponent {
179
117
  behavior: 'smooth',
180
118
  });
181
119
  }
182
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ScrollableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
183
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.5", type: ScrollableComponent, isStandalone: true, selector: "et-scrollable", inputs: { itemSize: "itemSize", direction: "direction", scrollableRole: "scrollableRole", scrollableClass: "scrollableClass", renderMasks: "renderMasks", renderButtons: "renderButtons", renderScrollbars: "renderScrollbars", stickyButtons: "stickyButtons", cursorDragScroll: "cursorDragScroll", activeElementScrollMargin: "activeElementScrollMargin", disableActiveElementScrolling: "disableActiveElementScrolling", scrollMode: "scrollMode" }, outputs: { scrollStateChange: "scrollStateChange" }, host: { properties: { "attr.item-size": "this.itemSize", "attr.direction": "this.direction", "attr.render-scrollbars": "this.renderScrollbars", "attr.sticky-buttons": "this.stickyButtons" }, classAttribute: "et-scrollable" }, queries: [{ propertyName: "activeElements", predicate: IS_ACTIVE_ELEMENT, descendants: true }, { propertyName: "elements", predicate: IS_ELEMENT, descendants: true }], viewQueries: [{ propertyName: "scrollable", first: true, predicate: ["scrollable"], descendants: true, static: true }], ngImport: i0, template: "<div\n #scrollable\n [attr.role]=\"scrollableRole ?? undefined\"\n [ngClass]=\"scrollableClass\"\n [etCursorDragScroll]=\"cursorDragScroll\"\n [allowedDirection]=\"direction\"\n (etObserveScrollState)=\"_scrollStateChanged($event)\"\n class=\"et-scrollable-container\"\n>\n <ng-content />\n</div>\n\n<div *ngIf=\"renderMasks\" class=\"et-scrollable-masks\">\n <div class=\"et-scrollable-mask et-scrollable-mask--start\"></div>\n <div class=\"et-scrollable-mask et-scrollable-mask--end\"></div>\n</div>\n\n<div *ngIf=\"renderButtons\" class=\"et-scrollable-buttons\">\n <button\n (click)=\"scrollToStartDirection()\"\n class=\"et-scrollable-button et-scrollable-button--start\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n >\n <et-chevron-icon />\n </button>\n <button\n (click)=\"scrollToStartEnd()\"\n class=\"et-scrollable-button et-scrollable-button--end\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n >\n <et-chevron-icon />\n </button>\n</div>\n", styles: [".et-scrollable{--mask: #121212 0, transparent 100%;--mask-size: 25px;--_auto-size: min-content;--_flow: column;display:grid;position:relative}.et-scrollable[item-size=same]{--auto-size: 1fr}.et-scrollable[render-scrollbars=false] .et-scrollable-container{scrollbar-width:none}.et-scrollable[render-scrollbars=false] .et-scrollable-container::-webkit-scrollbar{display:none}.et-scrollable[direction=horizontal] .et-scrollable-container{grid-auto-columns:var(--_auto-size);overflow-x:auto;overflow-y:hidden}.et-scrollable[direction=horizontal] .et-scrollable-mask,.et-scrollable[direction=horizontal] .et-scrollable-button{inline-size:var(--mask-size);block-size:100%}.et-scrollable[direction=horizontal] .et-scrollable-mask--start,.et-scrollable[direction=horizontal] .et-scrollable-button--start{inset-block-start:0;inset-inline:0 0}.et-scrollable[direction=horizontal] .et-scrollable-mask--end,.et-scrollable[direction=horizontal] .et-scrollable-button--end{inset-block-start:0;inset-inline:calc(100% - 40px) 0}.et-scrollable[direction=horizontal] .et-scrollable-mask--start{background:linear-gradient(to right,var(--mask))}.et-scrollable[direction=horizontal] .et-scrollable-mask--end{background:linear-gradient(to left,var(--mask));inset-inline:calc(100% - var(--mask-size)) 100%}.et-scrollable[direction=horizontal] .et-scrollable-button--start{inset-block-start:calc(50% - 20px);transform:rotate(-90deg)}.et-scrollable[direction=horizontal] .et-scrollable-button--end{inset-block-start:calc(50% - 20px);transform:rotate(90deg)}.et-scrollable[direction=vertical]{--_flow: row;overflow-x:hidden;overflow-y:auto}.et-scrollable[direction=vertical] .et-scrollable-container{grid-auto-rows:var(--_auto-size)}.et-scrollable[direction=vertical] .et-scrollable-mask,.et-scrollable[direction=vertical] .et-scrollable-button{block-size:var(--mask-size);inline-size:100%}.et-scrollable[direction=vertical] .et-scrollable-mask--start,.et-scrollable[direction=vertical] .et-scrollable-button--start{inset-block-start:0;inset-inline-start:0}.et-scrollable[direction=vertical] .et-scrollable-mask--end,.et-scrollable[direction=vertical] .et-scrollable-button--end{inset-block-end:0;inset-inline-start:0}.et-scrollable[direction=vertical] .et-scrollable-mask--start{background:linear-gradient(to bottom,var(--mask))}.et-scrollable[direction=vertical] .et-scrollable-mask--end{background:linear-gradient(to top,var(--mask))}.et-scrollable[at-start=false] .et-scrollable-masks .et-scrollable-mask--start,.et-scrollable[at-start=false] .et-scrollable-buttons .et-scrollable-button--start{opacity:1}.et-scrollable[at-start=false] .et-scrollable-buttons .et-scrollable-button--start{pointer-events:all}.et-scrollable[at-end=false] .et-scrollable-masks .et-scrollable-mask--end,.et-scrollable[at-end=false] .et-scrollable-buttons .et-scrollable-button--end{opacity:1}.et-scrollable[at-end=false] .et-scrollable-buttons .et-scrollable-button--end{pointer-events:all}.et-scrollable .et-scrollable-container{display:grid;grid-auto-flow:var(--_flow);grid-row:1/1;grid-column:1/1}.et-scrollable .et-scrollable-masks,.et-scrollable .et-scrollable-buttons{grid-row:1/1;grid-column:1/1;pointer-events:none}.et-scrollable .et-scrollable-masks .et-scrollable-mask,.et-scrollable .et-scrollable-masks .et-scrollable-button,.et-scrollable .et-scrollable-buttons .et-scrollable-mask,.et-scrollable .et-scrollable-buttons .et-scrollable-button{position:absolute;opacity:0;transition:opacity .3s var(--ease-5)}.et-scrollable .et-scrollable-buttons .et-scrollable-button{background:transparent;border:none;padding:12px;inline-size:40px;block-size:40px;border-radius:4px;cursor:pointer}.et-scrollable .et-scrollable-buttons .et-scrollable-button .et-chevron-icon{pointer-events:none}.et-scrollable .et-scrollable-buttons .et-scrollable-button .et-scrollable-button--start{inset-inline:0 0}.et-scrollable .et-scrollable-buttons .et-scrollable-button .et-scrollable-button--end{inset-inline:calc(100% - 40px) 0}.et-scrollable[sticky-buttons=true] .et-scrollable-buttons{margin-block:10%}.et-scrollable[sticky-buttons=true] .et-scrollable-buttons .et-scrollable-button{position:sticky}\n"], dependencies: [{ kind: "directive", type: CursorDragScrollDirective, selector: "[etCursorDragScroll]", inputs: ["etCursorDragScroll", "allowedDirection"], exportAs: ["etCursorDragScroll"] }, { kind: "directive", type: ObserveScrollStateDirective, selector: "[etObserveScrollState]", inputs: ["observerRootMargin", "observerThreshold"], outputs: ["etObserveScrollState"], exportAs: ["etObserveScrollState"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ChevronIconComponent, selector: "et-chevron-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
120
+ scrollToElement(options) {
121
+ const scrollElement = this.scrollable.nativeElement;
122
+ scrollToElement({
123
+ container: scrollElement,
124
+ ...options,
125
+ });
126
+ }
127
+ scrollToElementByIndex(options) {
128
+ const elements = this.elements?.toArray() ?? [];
129
+ if (!elements.length) {
130
+ if (isDevMode()) {
131
+ console.warn('No elements found to scroll to. Make sure to apply the isElement directive to the elements you want to scroll to.');
132
+ }
133
+ return;
134
+ }
135
+ const scrollElement = this.scrollable.nativeElement;
136
+ const element = elements[options.index]?.elementRef.nativeElement;
137
+ scrollToElement({
138
+ container: scrollElement,
139
+ element,
140
+ ...options,
141
+ });
142
+ }
143
+ setIsCursorDragging(isDragging) {
144
+ this._isCursorDragging$.next(isDragging);
145
+ }
146
+ _scrollStateChanged(scrollState) {
147
+ if (equal(this.scrollState$.value, scrollState)) {
148
+ return;
149
+ }
150
+ this.scrollState$.next(scrollState);
151
+ this.scrollStateChange.emit(scrollState);
152
+ }
153
+ scrollToStartDirection() {
154
+ if (this.scrollMode === 'container') {
155
+ this.scrollOneContainerSize('start');
156
+ }
157
+ else {
158
+ this.scrollOneItemSize('start');
159
+ }
160
+ }
161
+ scrollToStartEnd() {
162
+ if (this.scrollMode === 'container') {
163
+ this.scrollOneContainerSize('end');
164
+ }
165
+ else {
166
+ this.scrollOneItemSize('end');
167
+ }
168
+ }
169
+ _setupScrollListening() {
170
+ const scrollElement = this.scrollable.nativeElement;
171
+ let isSnapping = false;
172
+ let snapTimeout = 0;
173
+ merge(fromEvent(scrollElement, 'wheel'), fromEvent(scrollElement, 'touchstart'))
174
+ .pipe(takeUntil(this._destroy$), tap(() => {
175
+ isSnapping = false;
176
+ }))
177
+ .subscribe();
178
+ merge(fromEvent(scrollElement, 'scroll'), this._isCursorDragging$)
179
+ .pipe(debounceTime(25), takeUntil(this._destroy$), tap(() => {
180
+ const elements = this.elements
181
+ ?.toArray()
182
+ .map((e) => e?.elementRef.nativeElement)
183
+ .filter((e) => !!e) ?? [];
184
+ const states = getElementVisibleStates({
185
+ elements,
186
+ container: scrollElement,
187
+ });
188
+ const prop = this.direction === 'horizontal' ? 'inlineIntersection' : 'blockIntersection';
189
+ const stateClass = `et-element--is-intersecting`;
190
+ for (const state of states) {
191
+ if (state[prop] === 100) {
192
+ state.element.classList.add(stateClass);
193
+ }
194
+ else {
195
+ state.element.classList.remove(stateClass);
196
+ }
197
+ }
198
+ this.intersectionChange.emit(states.map((s, i) => {
199
+ const state = {
200
+ element: s.element,
201
+ intersectionRatio: s[prop] / 100,
202
+ isIntersecting: s[prop] === 100,
203
+ index: i,
204
+ };
205
+ return state;
206
+ }));
207
+ if (isSnapping || this._isCursorDragging$.value)
208
+ return;
209
+ const isOnlyOnePartialIntersection = states.filter((s) => s[prop] < 100 && s[prop] > 0).length === 1;
210
+ if (isOnlyOnePartialIntersection)
211
+ return;
212
+ const highestIntersecting = states.reduce((prev, current) => {
213
+ if (current[prop] > prev[prop] && current[prop] < 100) {
214
+ return current;
215
+ }
216
+ return prev;
217
+ });
218
+ const fullIntersectionIndex = states.findIndex((s) => s[prop] === 100);
219
+ const highestIntersectingIndex = states.findIndex((s) => s === highestIntersecting);
220
+ const origin = highestIntersectingIndex > fullIntersectionIndex ? 'end' : 'start';
221
+ if (!highestIntersecting || highestIntersecting[prop] === 100)
222
+ return;
223
+ scrollToElement({
224
+ container: scrollElement,
225
+ element: highestIntersecting.element,
226
+ direction: this.direction === 'horizontal' ? 'inline' : 'block',
227
+ origin,
228
+ scrollBlockMargin: this.direction === 'horizontal' ? 0 : this.scrollMargin,
229
+ scrollInlineMargin: this.direction === 'horizontal' ? this.scrollMargin : 0,
230
+ });
231
+ isSnapping = true;
232
+ window.clearTimeout(snapTimeout);
233
+ snapTimeout = window.setTimeout(() => {
234
+ isSnapping = false;
235
+ }, 1000);
236
+ }))
237
+ .subscribe();
238
+ }
239
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ScrollableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
240
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: ScrollableComponent, isStandalone: true, selector: "et-scrollable", inputs: { itemSize: "itemSize", direction: "direction", scrollableRole: "scrollableRole", scrollableClass: "scrollableClass", renderMasks: ["renderMasks", "renderMasks", booleanAttribute], renderButtons: ["renderButtons", "renderButtons", booleanAttribute], renderScrollbars: ["renderScrollbars", "renderScrollbars", booleanAttribute], stickyButtons: ["stickyButtons", "stickyButtons", booleanAttribute], cursorDragScroll: ["cursorDragScroll", "cursorDragScroll", booleanAttribute], disableActiveElementScrolling: ["disableActiveElementScrolling", "disableActiveElementScrolling", booleanAttribute], scrollMode: "scrollMode", snap: ["snap", "snap", booleanAttribute], scrollMargin: ["scrollMargin", "scrollMargin", numberAttribute] }, outputs: { scrollStateChange: "scrollStateChange", intersectionChange: "intersectionChange" }, host: { properties: { "attr.item-size": "this.itemSize", "attr.direction": "this.direction", "attr.render-scrollbars": "this.renderScrollbars", "attr.sticky-buttons": "this.stickyButtons" }, classAttribute: "et-scrollable" }, queries: [{ propertyName: "activeElements", predicate: IS_ACTIVE_ELEMENT, descendants: true }, { propertyName: "elements", predicate: IS_ELEMENT, descendants: true }], viewQueries: [{ propertyName: "scrollable", first: true, predicate: ["scrollable"], descendants: true, static: true }], ngImport: i0, template: "<div\n #scrollable\n [attr.role]=\"scrollableRole ?? undefined\"\n [ngClass]=\"scrollableClass\"\n [etCursorDragScroll]=\"cursorDragScroll\"\n [allowedDirection]=\"direction\"\n (etObserveScrollState)=\"_scrollStateChanged($event)\"\n (cursorDragStart)=\"setIsCursorDragging(true)\"\n (cursorDragEnd)=\"setIsCursorDragging(false)\"\n class=\"et-scrollable-container\"\n>\n <ng-content />\n</div>\n\n<div *ngIf=\"renderMasks\" class=\"et-scrollable-masks\">\n <div class=\"et-scrollable-mask et-scrollable-mask--start\"></div>\n <div class=\"et-scrollable-mask et-scrollable-mask--end\"></div>\n</div>\n\n<div *ngIf=\"renderButtons\" class=\"et-scrollable-buttons\">\n <button\n (click)=\"scrollToStartDirection()\"\n class=\"et-scrollable-button et-scrollable-button--start\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n >\n <et-chevron-icon />\n </button>\n <button\n (click)=\"scrollToStartEnd()\"\n class=\"et-scrollable-button et-scrollable-button--end\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n >\n <et-chevron-icon />\n </button>\n</div>\n", styles: [".et-scrollable{--mask: #121212 0, transparent 100%;--mask-size: 25px;--_auto-size: min-content;--_flow: column;display:grid;position:relative}.et-scrollable[item-size=same]{--auto-size: 1fr}.et-scrollable[render-scrollbars=false] .et-scrollable-container{scrollbar-width:none}.et-scrollable[render-scrollbars=false] .et-scrollable-container::-webkit-scrollbar{display:none}.et-scrollable[direction=horizontal] .et-scrollable-container{grid-auto-columns:var(--_auto-size);overflow-x:auto;overflow-y:hidden}.et-scrollable[direction=horizontal] .et-scrollable-mask,.et-scrollable[direction=horizontal] .et-scrollable-button{inline-size:var(--mask-size);block-size:100%}.et-scrollable[direction=horizontal] .et-scrollable-mask--start,.et-scrollable[direction=horizontal] .et-scrollable-button--start{inset-block-start:0;inset-inline:0 0}.et-scrollable[direction=horizontal] .et-scrollable-mask--end,.et-scrollable[direction=horizontal] .et-scrollable-button--end{inset-block-start:0;inset-inline:calc(100% - 40px) 0}.et-scrollable[direction=horizontal] .et-scrollable-mask--start{background:linear-gradient(to right,var(--mask))}.et-scrollable[direction=horizontal] .et-scrollable-mask--end{background:linear-gradient(to left,var(--mask));inset-inline:calc(100% - var(--mask-size)) 100%}.et-scrollable[direction=horizontal] .et-scrollable-button--start{inset-block-start:calc(50% - 20px);transform:rotate(-90deg)}.et-scrollable[direction=horizontal] .et-scrollable-button--end{inset-block-start:calc(50% - 20px);transform:rotate(90deg)}.et-scrollable[direction=vertical]{--_flow: row}.et-scrollable[direction=vertical] .et-scrollable-container{grid-auto-rows:var(--_auto-size);overflow-x:hidden;overflow-y:auto}.et-scrollable[direction=vertical] .et-scrollable-mask,.et-scrollable[direction=vertical] .et-scrollable-button{block-size:var(--mask-size);inline-size:100%}.et-scrollable[direction=vertical] .et-scrollable-mask--start,.et-scrollable[direction=vertical] .et-scrollable-button--start{inset-block-start:0;inset-inline-start:0}.et-scrollable[direction=vertical] .et-scrollable-mask--end,.et-scrollable[direction=vertical] .et-scrollable-button--end{inset-block-end:0;inset-inline-start:0}.et-scrollable[direction=vertical] .et-scrollable-mask--start{background:linear-gradient(to bottom,var(--mask))}.et-scrollable[direction=vertical] .et-scrollable-mask--end{background:linear-gradient(to top,var(--mask))}.et-scrollable[at-start=false] .et-scrollable-masks .et-scrollable-mask--start,.et-scrollable[at-start=false] .et-scrollable-buttons .et-scrollable-button--start{opacity:1}.et-scrollable[at-start=false] .et-scrollable-buttons .et-scrollable-button--start{pointer-events:all}.et-scrollable[at-end=false] .et-scrollable-masks .et-scrollable-mask--end,.et-scrollable[at-end=false] .et-scrollable-buttons .et-scrollable-button--end{opacity:1}.et-scrollable[at-end=false] .et-scrollable-buttons .et-scrollable-button--end{pointer-events:all}.et-scrollable .et-scrollable-container{display:grid;grid-auto-flow:var(--_flow);overflow:auto;grid-row:1/1;grid-column:1/1}.et-scrollable .et-scrollable-masks,.et-scrollable .et-scrollable-buttons{grid-row:1/1;grid-column:1/1;pointer-events:none}.et-scrollable .et-scrollable-masks .et-scrollable-mask,.et-scrollable .et-scrollable-masks .et-scrollable-button,.et-scrollable .et-scrollable-buttons .et-scrollable-mask,.et-scrollable .et-scrollable-buttons .et-scrollable-button{position:absolute;opacity:0;transition:opacity .3s var(--ease-5)}.et-scrollable .et-scrollable-buttons .et-scrollable-button{background:transparent;border:none;padding:12px;inline-size:40px;block-size:40px;border-radius:4px;cursor:pointer}.et-scrollable .et-scrollable-buttons .et-scrollable-button .et-chevron-icon{pointer-events:none}.et-scrollable .et-scrollable-buttons .et-scrollable-button .et-scrollable-button--start{inset-inline:0 0}.et-scrollable .et-scrollable-buttons .et-scrollable-button .et-scrollable-button--end{inset-inline:calc(100% - 40px) 0}.et-scrollable[sticky-buttons=true] .et-scrollable-buttons{margin-block:10%}.et-scrollable[sticky-buttons=true] .et-scrollable-buttons .et-scrollable-button{position:sticky}\n"], dependencies: [{ kind: "directive", type: CursorDragScrollDirective, selector: "[etCursorDragScroll]", inputs: ["etCursorDragScroll", "allowedDirection"], outputs: ["cursorDragStart", "cursorDragMove", "cursorDragEnd"], exportAs: ["etCursorDragScroll"] }, { kind: "directive", type: ObserveScrollStateDirective, selector: "[etObserveScrollState]", inputs: ["observerRootMargin", "observerThreshold"], outputs: ["etObserveScrollState"], exportAs: ["etObserveScrollState"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ChevronIconComponent, selector: "et-chevron-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
184
241
  }
185
- export { ScrollableComponent };
186
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: ScrollableComponent, decorators: [{
242
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ScrollableComponent, decorators: [{
187
243
  type: Component,
188
244
  args: [{ selector: 'et-scrollable', standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CursorDragScrollDirective, ObserveScrollStateDirective, NgClass, NgIf, LetDirective, ChevronIconComponent], host: {
189
245
  class: 'et-scrollable',
190
- }, template: "<div\n #scrollable\n [attr.role]=\"scrollableRole ?? undefined\"\n [ngClass]=\"scrollableClass\"\n [etCursorDragScroll]=\"cursorDragScroll\"\n [allowedDirection]=\"direction\"\n (etObserveScrollState)=\"_scrollStateChanged($event)\"\n class=\"et-scrollable-container\"\n>\n <ng-content />\n</div>\n\n<div *ngIf=\"renderMasks\" class=\"et-scrollable-masks\">\n <div class=\"et-scrollable-mask et-scrollable-mask--start\"></div>\n <div class=\"et-scrollable-mask et-scrollable-mask--end\"></div>\n</div>\n\n<div *ngIf=\"renderButtons\" class=\"et-scrollable-buttons\">\n <button\n (click)=\"scrollToStartDirection()\"\n class=\"et-scrollable-button et-scrollable-button--start\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n >\n <et-chevron-icon />\n </button>\n <button\n (click)=\"scrollToStartEnd()\"\n class=\"et-scrollable-button et-scrollable-button--end\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n >\n <et-chevron-icon />\n </button>\n</div>\n", styles: [".et-scrollable{--mask: #121212 0, transparent 100%;--mask-size: 25px;--_auto-size: min-content;--_flow: column;display:grid;position:relative}.et-scrollable[item-size=same]{--auto-size: 1fr}.et-scrollable[render-scrollbars=false] .et-scrollable-container{scrollbar-width:none}.et-scrollable[render-scrollbars=false] .et-scrollable-container::-webkit-scrollbar{display:none}.et-scrollable[direction=horizontal] .et-scrollable-container{grid-auto-columns:var(--_auto-size);overflow-x:auto;overflow-y:hidden}.et-scrollable[direction=horizontal] .et-scrollable-mask,.et-scrollable[direction=horizontal] .et-scrollable-button{inline-size:var(--mask-size);block-size:100%}.et-scrollable[direction=horizontal] .et-scrollable-mask--start,.et-scrollable[direction=horizontal] .et-scrollable-button--start{inset-block-start:0;inset-inline:0 0}.et-scrollable[direction=horizontal] .et-scrollable-mask--end,.et-scrollable[direction=horizontal] .et-scrollable-button--end{inset-block-start:0;inset-inline:calc(100% - 40px) 0}.et-scrollable[direction=horizontal] .et-scrollable-mask--start{background:linear-gradient(to right,var(--mask))}.et-scrollable[direction=horizontal] .et-scrollable-mask--end{background:linear-gradient(to left,var(--mask));inset-inline:calc(100% - var(--mask-size)) 100%}.et-scrollable[direction=horizontal] .et-scrollable-button--start{inset-block-start:calc(50% - 20px);transform:rotate(-90deg)}.et-scrollable[direction=horizontal] .et-scrollable-button--end{inset-block-start:calc(50% - 20px);transform:rotate(90deg)}.et-scrollable[direction=vertical]{--_flow: row;overflow-x:hidden;overflow-y:auto}.et-scrollable[direction=vertical] .et-scrollable-container{grid-auto-rows:var(--_auto-size)}.et-scrollable[direction=vertical] .et-scrollable-mask,.et-scrollable[direction=vertical] .et-scrollable-button{block-size:var(--mask-size);inline-size:100%}.et-scrollable[direction=vertical] .et-scrollable-mask--start,.et-scrollable[direction=vertical] .et-scrollable-button--start{inset-block-start:0;inset-inline-start:0}.et-scrollable[direction=vertical] .et-scrollable-mask--end,.et-scrollable[direction=vertical] .et-scrollable-button--end{inset-block-end:0;inset-inline-start:0}.et-scrollable[direction=vertical] .et-scrollable-mask--start{background:linear-gradient(to bottom,var(--mask))}.et-scrollable[direction=vertical] .et-scrollable-mask--end{background:linear-gradient(to top,var(--mask))}.et-scrollable[at-start=false] .et-scrollable-masks .et-scrollable-mask--start,.et-scrollable[at-start=false] .et-scrollable-buttons .et-scrollable-button--start{opacity:1}.et-scrollable[at-start=false] .et-scrollable-buttons .et-scrollable-button--start{pointer-events:all}.et-scrollable[at-end=false] .et-scrollable-masks .et-scrollable-mask--end,.et-scrollable[at-end=false] .et-scrollable-buttons .et-scrollable-button--end{opacity:1}.et-scrollable[at-end=false] .et-scrollable-buttons .et-scrollable-button--end{pointer-events:all}.et-scrollable .et-scrollable-container{display:grid;grid-auto-flow:var(--_flow);grid-row:1/1;grid-column:1/1}.et-scrollable .et-scrollable-masks,.et-scrollable .et-scrollable-buttons{grid-row:1/1;grid-column:1/1;pointer-events:none}.et-scrollable .et-scrollable-masks .et-scrollable-mask,.et-scrollable .et-scrollable-masks .et-scrollable-button,.et-scrollable .et-scrollable-buttons .et-scrollable-mask,.et-scrollable .et-scrollable-buttons .et-scrollable-button{position:absolute;opacity:0;transition:opacity .3s var(--ease-5)}.et-scrollable .et-scrollable-buttons .et-scrollable-button{background:transparent;border:none;padding:12px;inline-size:40px;block-size:40px;border-radius:4px;cursor:pointer}.et-scrollable .et-scrollable-buttons .et-scrollable-button .et-chevron-icon{pointer-events:none}.et-scrollable .et-scrollable-buttons .et-scrollable-button .et-scrollable-button--start{inset-inline:0 0}.et-scrollable .et-scrollable-buttons .et-scrollable-button .et-scrollable-button--end{inset-inline:calc(100% - 40px) 0}.et-scrollable[sticky-buttons=true] .et-scrollable-buttons{margin-block:10%}.et-scrollable[sticky-buttons=true] .et-scrollable-buttons .et-scrollable-button{position:sticky}\n"] }]
246
+ }, template: "<div\n #scrollable\n [attr.role]=\"scrollableRole ?? undefined\"\n [ngClass]=\"scrollableClass\"\n [etCursorDragScroll]=\"cursorDragScroll\"\n [allowedDirection]=\"direction\"\n (etObserveScrollState)=\"_scrollStateChanged($event)\"\n (cursorDragStart)=\"setIsCursorDragging(true)\"\n (cursorDragEnd)=\"setIsCursorDragging(false)\"\n class=\"et-scrollable-container\"\n>\n <ng-content />\n</div>\n\n<div *ngIf=\"renderMasks\" class=\"et-scrollable-masks\">\n <div class=\"et-scrollable-mask et-scrollable-mask--start\"></div>\n <div class=\"et-scrollable-mask et-scrollable-mask--end\"></div>\n</div>\n\n<div *ngIf=\"renderButtons\" class=\"et-scrollable-buttons\">\n <button\n (click)=\"scrollToStartDirection()\"\n class=\"et-scrollable-button et-scrollable-button--start\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n >\n <et-chevron-icon />\n </button>\n <button\n (click)=\"scrollToStartEnd()\"\n class=\"et-scrollable-button et-scrollable-button--end\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n >\n <et-chevron-icon />\n </button>\n</div>\n", styles: [".et-scrollable{--mask: #121212 0, transparent 100%;--mask-size: 25px;--_auto-size: min-content;--_flow: column;display:grid;position:relative}.et-scrollable[item-size=same]{--auto-size: 1fr}.et-scrollable[render-scrollbars=false] .et-scrollable-container{scrollbar-width:none}.et-scrollable[render-scrollbars=false] .et-scrollable-container::-webkit-scrollbar{display:none}.et-scrollable[direction=horizontal] .et-scrollable-container{grid-auto-columns:var(--_auto-size);overflow-x:auto;overflow-y:hidden}.et-scrollable[direction=horizontal] .et-scrollable-mask,.et-scrollable[direction=horizontal] .et-scrollable-button{inline-size:var(--mask-size);block-size:100%}.et-scrollable[direction=horizontal] .et-scrollable-mask--start,.et-scrollable[direction=horizontal] .et-scrollable-button--start{inset-block-start:0;inset-inline:0 0}.et-scrollable[direction=horizontal] .et-scrollable-mask--end,.et-scrollable[direction=horizontal] .et-scrollable-button--end{inset-block-start:0;inset-inline:calc(100% - 40px) 0}.et-scrollable[direction=horizontal] .et-scrollable-mask--start{background:linear-gradient(to right,var(--mask))}.et-scrollable[direction=horizontal] .et-scrollable-mask--end{background:linear-gradient(to left,var(--mask));inset-inline:calc(100% - var(--mask-size)) 100%}.et-scrollable[direction=horizontal] .et-scrollable-button--start{inset-block-start:calc(50% - 20px);transform:rotate(-90deg)}.et-scrollable[direction=horizontal] .et-scrollable-button--end{inset-block-start:calc(50% - 20px);transform:rotate(90deg)}.et-scrollable[direction=vertical]{--_flow: row}.et-scrollable[direction=vertical] .et-scrollable-container{grid-auto-rows:var(--_auto-size);overflow-x:hidden;overflow-y:auto}.et-scrollable[direction=vertical] .et-scrollable-mask,.et-scrollable[direction=vertical] .et-scrollable-button{block-size:var(--mask-size);inline-size:100%}.et-scrollable[direction=vertical] .et-scrollable-mask--start,.et-scrollable[direction=vertical] .et-scrollable-button--start{inset-block-start:0;inset-inline-start:0}.et-scrollable[direction=vertical] .et-scrollable-mask--end,.et-scrollable[direction=vertical] .et-scrollable-button--end{inset-block-end:0;inset-inline-start:0}.et-scrollable[direction=vertical] .et-scrollable-mask--start{background:linear-gradient(to bottom,var(--mask))}.et-scrollable[direction=vertical] .et-scrollable-mask--end{background:linear-gradient(to top,var(--mask))}.et-scrollable[at-start=false] .et-scrollable-masks .et-scrollable-mask--start,.et-scrollable[at-start=false] .et-scrollable-buttons .et-scrollable-button--start{opacity:1}.et-scrollable[at-start=false] .et-scrollable-buttons .et-scrollable-button--start{pointer-events:all}.et-scrollable[at-end=false] .et-scrollable-masks .et-scrollable-mask--end,.et-scrollable[at-end=false] .et-scrollable-buttons .et-scrollable-button--end{opacity:1}.et-scrollable[at-end=false] .et-scrollable-buttons .et-scrollable-button--end{pointer-events:all}.et-scrollable .et-scrollable-container{display:grid;grid-auto-flow:var(--_flow);overflow:auto;grid-row:1/1;grid-column:1/1}.et-scrollable .et-scrollable-masks,.et-scrollable .et-scrollable-buttons{grid-row:1/1;grid-column:1/1;pointer-events:none}.et-scrollable .et-scrollable-masks .et-scrollable-mask,.et-scrollable .et-scrollable-masks .et-scrollable-button,.et-scrollable .et-scrollable-buttons .et-scrollable-mask,.et-scrollable .et-scrollable-buttons .et-scrollable-button{position:absolute;opacity:0;transition:opacity .3s var(--ease-5)}.et-scrollable .et-scrollable-buttons .et-scrollable-button{background:transparent;border:none;padding:12px;inline-size:40px;block-size:40px;border-radius:4px;cursor:pointer}.et-scrollable .et-scrollable-buttons .et-scrollable-button .et-chevron-icon{pointer-events:none}.et-scrollable .et-scrollable-buttons .et-scrollable-button .et-scrollable-button--start{inset-inline:0 0}.et-scrollable .et-scrollable-buttons .et-scrollable-button .et-scrollable-button--end{inset-inline:calc(100% - 40px) 0}.et-scrollable[sticky-buttons=true] .et-scrollable-buttons{margin-block:10%}.et-scrollable[sticky-buttons=true] .et-scrollable-buttons .et-scrollable-button{position:sticky}\n"] }]
191
247
  }], propDecorators: { itemSize: [{
192
248
  type: Input
193
249
  }, {
@@ -203,29 +259,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
203
259
  }], scrollableClass: [{
204
260
  type: Input
205
261
  }], renderMasks: [{
206
- type: Input
262
+ type: Input,
263
+ args: [{ transform: booleanAttribute }]
207
264
  }], renderButtons: [{
208
- type: Input
265
+ type: Input,
266
+ args: [{ transform: booleanAttribute }]
209
267
  }], renderScrollbars: [{
210
- type: Input
268
+ type: Input,
269
+ args: [{ transform: booleanAttribute }]
211
270
  }, {
212
271
  type: HostBinding,
213
272
  args: ['attr.render-scrollbars']
214
273
  }], stickyButtons: [{
215
- type: Input
274
+ type: Input,
275
+ args: [{ transform: booleanAttribute }]
216
276
  }, {
217
277
  type: HostBinding,
218
278
  args: ['attr.sticky-buttons']
219
279
  }], cursorDragScroll: [{
220
- type: Input
221
- }], activeElementScrollMargin: [{
222
- type: Input
280
+ type: Input,
281
+ args: [{ transform: booleanAttribute }]
223
282
  }], disableActiveElementScrolling: [{
224
- type: Input
283
+ type: Input,
284
+ args: [{ transform: booleanAttribute }]
225
285
  }], scrollMode: [{
226
286
  type: Input
287
+ }], snap: [{
288
+ type: Input,
289
+ args: [{ transform: booleanAttribute }]
290
+ }], scrollMargin: [{
291
+ type: Input,
292
+ args: [{ transform: numberAttribute }]
227
293
  }], scrollStateChange: [{
228
294
  type: Output
295
+ }], intersectionChange: [{
296
+ type: Output
229
297
  }], scrollable: [{
230
298
  type: ViewChild,
231
299
  args: ['scrollable', { static: true }]
@@ -236,4 +304,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
236
304
  type: ContentChildren,
237
305
  args: [IS_ELEMENT, { descendants: true }]
238
306
  }] } });
239
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvc2Nyb2xsYWJsZS9jb21wb25lbnRzL3Njcm9sbGFibGUvc2Nyb2xsYWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvc2Nyb2xsYWJsZS9jb21wb25lbnRzL3Njcm9sbGFibGUvc2Nyb2xsYWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTZCLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0csT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFHVixZQUFZLEVBRVosMkJBQTJCLEVBRzNCLGFBQWEsRUFDYixLQUFLLEVBQ0wsZUFBZSxHQUNoQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUd0RCxNQVlhLG1CQUFtQjtJQVpoQztRQWFtQixjQUFTLEdBQUcsYUFBYSxFQUFFLENBQUM7UUFD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QW9CLENBQUMsUUFDOUc7d0JBQ0osS0FBSyxFQUFFLGVBQWU7cUJBQ3ZCOzhCQVNELFFBQVE7c0JBRlAsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBSzdCLFNBQVM7c0JBRlIsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBSTdCLGNBQWM7c0JBRGIsS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBSUYsV0FBVztzQkFEZCxLQUFLO2dCQVVGLGFBQWE7c0JBRGhCLEtBQUs7Z0JBV0YsZ0JBQWdCO3NCQUZuQixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLHdCQUF3QjtnQkFXakMsYUFBYTtzQkFGaEIsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyxxQkFBcUI7Z0JBVTlCLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFVRix5QkFBeUI7c0JBRDVCLEtBQUs7Z0JBVUYsNkJBQTZCO3NCQURoQyxLQUFLO2dCQVVOLFVBQVU7c0JBRFQsS0FBSztnQkFJRyxpQkFBaUI7c0JBRHpCLE1BQU07Z0JBSVAsVUFBVTtzQkFEVCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSXpDLGNBQWM7c0JBRGIsZUFBZTt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBSXpELFFBQVE7c0JBRFAsZUFBZTt1QkFBQyxVQUFVLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm9vbGVhbklucHV0LCBOdW1iZXJJbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5LCBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGluamVjdCxcbiAgaXNEZXZNb2RlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEN1cnNvckRyYWdTY3JvbGxEaXJlY3RpdmUsXG4gIElTX0FDVElWRV9FTEVNRU5ULFxuICBJU19FTEVNRU5ULFxuICBJc0FjdGl2ZUVsZW1lbnREaXJlY3RpdmUsXG4gIElzRWxlbWVudERpcmVjdGl2ZSxcbiAgTGV0RGlyZWN0aXZlLFxuICBOZ0NsYXNzVHlwZSxcbiAgT2JzZXJ2ZVNjcm9sbFN0YXRlRGlyZWN0aXZlLFxuICBTY3JvbGxPYnNlcnZlclNjcm9sbFN0YXRlLFxuICBUeXBlZFF1ZXJ5TGlzdCxcbiAgY3JlYXRlRGVzdHJveSxcbiAgZXF1YWwsXG4gIHNjcm9sbFRvRWxlbWVudCxcbn0gZnJvbSAnQGV0aGxldGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIHN0YXJ0V2l0aCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENoZXZyb25JY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vaWNvbnMnO1xuaW1wb3J0IHsgU2Nyb2xsYWJsZVNjcm9sbE1vZGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2V0LXNjcm9sbGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2Nyb2xsYWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Njcm9sbGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDdXJzb3JEcmFnU2Nyb2xsRGlyZWN0aXZlLCBPYnNlcnZlU2Nyb2xsU3RhdGVEaXJlY3RpdmUsIE5nQ2xhc3MsIE5nSWYsIExldERpcmVjdGl2ZSwgQ2hldnJvbkljb25Db21wb25lbnRdLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdldC1zY3JvbGxhYmxlJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU2Nyb2xsYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kkID0gY3JlYXRlRGVzdHJveSgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2F0dHIuaXRlbS1zaXplJylcbiAgaXRlbVNpemU6ICdhdXRvJyB8ICdzYW1lJyA9ICdhdXRvJztcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGlyZWN0aW9uJylcbiAgZGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnID0gJ2hvcml6b250YWwnO1xuXG4gIEBJbnB1dCgpXG4gIHNjcm9sbGFibGVSb2xlPzogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHNjcm9sbGFibGVDbGFzcz86IE5nQ2xhc3NUeXBlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCByZW5kZXJNYXNrcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVuZGVyTWFza3M7XG4gIH1cbiAgc2V0IHJlbmRlck1hc2tzKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9yZW5kZXJNYXNrcyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBfcmVuZGVyTWFza3MgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCByZW5kZXJCdXR0b25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZW5kZXJCdXR0b25zO1xuICB9XG4gIHNldCByZW5kZXJCdXR0b25zKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9yZW5kZXJCdXR0b25zID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF9yZW5kZXJCdXR0b25zID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2F0dHIucmVuZGVyLXNjcm9sbGJhcnMnKVxuICBnZXQgcmVuZGVyU2Nyb2xsYmFycygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVuZGVyU2Nyb2xsYmFycztcbiAgfVxuICBzZXQgcmVuZGVyU2Nyb2xsYmFycyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fcmVuZGVyU2Nyb2xsYmFycyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBfcmVuZGVyU2Nyb2xsYmFycyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnYXR0ci5zdGlja3ktYnV0dG9ucycpXG4gIGdldCBzdGlja3lCdXR0b25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zdGlja3lCdXR0b25zO1xuICB9XG4gIHNldCBzdGlja3lCdXR0b25zKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9zdGlja3lCdXR0b25zID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF9zdGlja3lCdXR0b25zID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZ2V0IGN1cnNvckRyYWdTY3JvbGwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnNvckRyYWdTY3JvbGw7XG4gIH1cbiAgc2V0IGN1cnNvckRyYWdTY3JvbGwodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX2N1cnNvckRyYWdTY3JvbGwgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIHByaXZhdGUgX2N1cnNvckRyYWdTY3JvbGwgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBhY3RpdmVFbGVtZW50U2Nyb2xsTWFyZ2luKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUVsZW1lbnRTY3JvbGxNYXJnaW47XG4gIH1cbiAgc2V0IGFjdGl2ZUVsZW1lbnRTY3JvbGxNYXJnaW4odmFsdWU6IE51bWJlcklucHV0KSB7XG4gICAgdGhpcy5fYWN0aXZlRWxlbWVudFNjcm9sbE1hcmdpbiA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF9hY3RpdmVFbGVtZW50U2Nyb2xsTWFyZ2luID0gNDA7XG5cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVBY3RpdmVFbGVtZW50U2Nyb2xsaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlQWN0aXZlRWxlbWVudFNjcm9sbGluZztcbiAgfVxuICBzZXQgZGlzYWJsZUFjdGl2ZUVsZW1lbnRTY3JvbGxpbmcodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX2Rpc2FibGVBY3RpdmVFbGVtZW50U2Nyb2xsaW5nID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF9kaXNhYmxlQWN0aXZlRWxlbWVudFNjcm9sbGluZyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHNjcm9sbE1vZGU6IFNjcm9sbGFibGVTY3JvbGxNb2RlID0gJ2NvbnRhaW5lcic7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IHNjcm9sbFN0YXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTY3JvbGxPYnNlcnZlclNjcm9sbFN0YXRlPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3Njcm9sbGFibGUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBzY3JvbGxhYmxlITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihJU19BQ1RJVkVfRUxFTUVOVCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBhY3RpdmVFbGVtZW50czogVHlwZWRRdWVyeUxpc3Q8SXNBY3RpdmVFbGVtZW50RGlyZWN0aXZlPiB8IG51bGwgPSBudWxsO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oSVNfRUxFTUVOVCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBlbGVtZW50czogVHlwZWRRdWVyeUxpc3Q8SXNFbGVtZW50RGlyZWN0aXZlPiB8IG51bGwgPSBudWxsO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBzY3JvbGxTdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNjcm9sbE9ic2VydmVyU2Nyb2xsU3RhdGUgfCBudWxsPihudWxsKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNjcm9sbFN0YXRlJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoc3RhdGUpID0+IHtcbiAgICAgICAgICBpZiAoIXN0YXRlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZShlbGVtZW50LCAnYXQtc3RhcnQnLCBzdGF0ZS5pc0F0U3RhcnQudG9TdHJpbmcoKSk7XG4gICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsZW1lbnQsICdhdC1lbmQnLCBzdGF0ZS5pc0F0RW5kLnRvU3RyaW5nKCkpO1xuICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZShlbGVtZW50LCAnY2FuLXNjcm9sbCcsIHN0YXRlLmNhblNjcm9sbC50b1N0cmluZygpKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFjdGl2ZUVsZW1lbnRzIHx8ICF0aGlzLmVsZW1lbnRzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hY3RpdmVFbGVtZW50cy5jaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKHRoaXMuYWN0aXZlRWxlbWVudHMpLFxuICAgICAgICB0YXAoKGFjdGl2ZUVsZW1lbnRzKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuZGlzYWJsZUFjdGl2ZUVsZW1lbnRTY3JvbGxpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBmaXJzdEFjdGl2ZSA9IGFjdGl2ZUVsZW1lbnRzXG4gICAgICAgICAgICAuZmlsdGVyKChhKTogYSBpcyBJc0FjdGl2ZUVsZW1lbnREaXJlY3RpdmUgPT4gISFhKVxuICAgICAgICAgICAgLmZpbmQoKGEpID0+IGEuaXNBY3RpdmVFbGVtZW50KTtcblxuICAgICAgICAgIGlmICghZmlyc3RBY3RpdmUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzY3JvbGxUb0VsZW1lbnQoe1xuICAgICAgICAgICAgYmVoYXZpb3I6ICdhdXRvJyxcbiAgICAgICAgICAgIGNvbnRhaW5lcjogdGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBlbGVtZW50OiBmaXJzdEFjdGl2ZS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBzY3JvbGxJbmxpbmVNYXJnaW46IHRoaXMuZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcgPyB0aGlzLmFjdGl2ZUVsZW1lbnRTY3JvbGxNYXJnaW4gOiAwLFxuICAgICAgICAgICAgc2Nyb2xsQmxvY2tNYXJnaW46IHRoaXMuZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcgPyAwIDogdGhpcy5hY3RpdmVFbGVtZW50U2Nyb2xsTWFyZ2luLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfc2Nyb2xsU3RhdGVDaGFuZ2VkKHNjcm9sbFN0YXRlOiBTY3JvbGxPYnNlcnZlclNjcm9sbFN0YXRlKSB7XG4gICAgaWYgKGVxdWFsKHRoaXMuc2Nyb2xsU3RhdGUkLnZhbHVlLCBzY3JvbGxTdGF0ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNjcm9sbFN0YXRlJC5uZXh0KHNjcm9sbFN0YXRlKTtcbiAgICB0aGlzLnNjcm9sbFN0YXRlQ2hhbmdlLmVtaXQoc2Nyb2xsU3RhdGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNjcm9sbFRvU3RhcnREaXJlY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuc2Nyb2xsTW9kZSA9PT0gJ2NvbnRhaW5lcicpIHtcbiAgICAgIHRoaXMuc2Nyb2xsT25lQ29udGFpbmVyU2l6ZSgnc3RhcnQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zY3JvbGxPbmVJdGVtU2l6ZSgnc3RhcnQnKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2Nyb2xsVG9TdGFydEVuZCgpIHtcbiAgICBpZiAodGhpcy5zY3JvbGxNb2RlID09PSAnY29udGFpbmVyJykge1xuICAgICAgdGhpcy5zY3JvbGxPbmVDb250YWluZXJTaXplKCdlbmQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zY3JvbGxPbmVJdGVtU2l6ZSgnZW5kJyk7XG4gICAgfVxuICB9XG5cbiAgc2Nyb2xsT25lQ29udGFpbmVyU2l6ZShkaXJlY3Rpb246ICdzdGFydCcgfCAnZW5kJykge1xuICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSB0aGlzLnNjcm9sbGFibGUubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBjb25zdCBzY3JvbGxhYmxlU2l6ZSA9IHRoaXMuZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcgPyBwYXJlbnQuY2xpZW50V2lkdGggOiBwYXJlbnQuY2xpZW50SGVpZ2h0O1xuICAgIGNvbnN0IGN1cnJlbnRTY3JvbGwgPSB0aGlzLmRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnID8gc2Nyb2xsRWxlbWVudC5zY3JvbGxMZWZ0IDogc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3A7XG5cbiAgICBzY3JvbGxFbGVtZW50LnNjcm9sbFRvKHtcbiAgICAgIFt0aGlzLmRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnID8gJ2xlZnQnIDogJ3RvcCddOlxuICAgICAgICBjdXJyZW50U2Nyb2xsICsgKGRpcmVjdGlvbiA9PT0gJ3N0YXJ0JyA/IC1zY3JvbGxhYmxlU2l6ZSA6IHNjcm9sbGFibGVTaXplKSxcbiAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICB9KTtcbiAgfVxuXG4gIHNjcm9sbE9uZUl0ZW1TaXplKGRpcmVjdGlvbjogJ3N0YXJ0JyB8ICdlbmQnKSB7XG4gICAgY29uc3QgZWxlbWVudHMgPSB0aGlzLmVsZW1lbnRzPy50b0FycmF5KCkgPz8gW107XG5cbiAgICBpZiAoIWVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAnTm8gZWxlbWVudHMgZm91bmQgdG8gc2Nyb2xsIHRvLiBNYWtlIHN1cmUgdG8gYXBwbHkgdGhlIGlzRWxlbWVudCBkaXJlY3RpdmUgdG8gdGhlIGVsZW1lbnRzIHlvdSB3YW50IHRvIHNjcm9sbCB0by4nLFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSB0aGlzLnNjcm9sbGFibGUubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBjb25zdCBjdXJyZW50U2Nyb2xsID0gdGhpcy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyA/IHNjcm9sbEVsZW1lbnQuc2Nyb2xsTGVmdCA6IHNjcm9sbEVsZW1lbnQuc2Nyb2xsVG9wO1xuXG4gICAgY29uc3Qgc2Nyb2xsYWJsZUVsZW1lbnRzID0gZWxlbWVudHMuZmlsdGVyKChlKSA9PiB7XG4gICAgICBpZiAoIWUpIHJldHVybiBmYWxzZTtcblxuICAgICAgY29uc3QgcmVjdCA9IGUuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICBpZiAodGhpcy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJykge1xuICAgICAgICByZXR1cm4gZGlyZWN0aW9uID09PSAnc3RhcnQnID8gcmVjdC5sZWZ0IDwgMCA6IHJlY3QucmlnaHQgPiBwYXJlbnQuY2xpZW50V2lkdGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZGlyZWN0aW9uID09PSAnc3RhcnQnID8gcmVjdC50b3AgPCAwIDogcmVjdC5ib3R0b20gPiBwYXJlbnQuY2xpZW50SGVpZ2h0O1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKCFzY3JvbGxhYmxlRWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2Nyb2xsYWJsZUVsZW1lbnRSZWYgPVxuICAgICAgZGlyZWN0aW9uID09PSAnc3RhcnQnID8gc2Nyb2xsYWJsZUVsZW1lbnRzW3Njcm9sbGFibGVFbGVtZW50cy5sZW5ndGggLSAxXSA6IHNjcm9sbGFibGVFbGVtZW50c1swXTtcblxuICAgIGlmICghc2Nyb2xsYWJsZUVsZW1lbnRSZWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzY3JvbGxhYmxlRWxlbWVudCA9IHNjcm9sbGFibGVFbGVtZW50UmVmLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBzY3JvbGxhYmxlRWxlbWVudFJlY3QgPSBzY3JvbGxhYmxlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIGNvbnN0IHNjcm9sbENvbnRhaW5lclNpemUgPSB0aGlzLmRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnID8gcGFyZW50LmNsaWVudFdpZHRoIDogcGFyZW50LmNsaWVudEhlaWdodDtcbiAgICBjb25zdCBkb2NTaXplID0gdGhpcy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyA/IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGggOiBkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodDtcblxuICAgIGNvbnN0IG9mZnNldFNpemUgPSBkb2NTaXplIC0gc2Nyb2xsQ29udGFpbmVyU2l6ZTtcbiAgICBjb25zdCBvZmZzZXQgPSBvZmZzZXRTaXplID8gb2Zmc2V0U2l6ZSAvIDIgOiAwO1xuICAgIGNvbnN0IHNjcm9sbEZvciA9IE1hdGgucm91bmQoY3VycmVudFNjcm9sbCArIHNjcm9sbGFibGVFbGVtZW50UmVjdC5sZWZ0IC0gb2Zmc2V0KTtcblxuICAgIHNjcm9sbEVsZW1lbnQuc2Nyb2xsVG8oe1xuICAgICAgW3RoaXMuZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcgPyAnbGVmdCcgOiAndG9wJ106IHNjcm9sbEZvcixcbiAgICAgIGJlaGF2aW9yOiAnc21vb3RoJyxcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdlxuICAjc2Nyb2xsYWJsZVxuICBbYXR0ci5yb2xlXT1cInNjcm9sbGFibGVSb2xlID8/IHVuZGVmaW5lZFwiXG4gIFtuZ0NsYXNzXT1cInNjcm9sbGFibGVDbGFzc1wiXG4gIFtldEN1cnNvckRyYWdTY3JvbGxdPVwiY3Vyc29yRHJhZ1Njcm9sbFwiXG4gIFthbGxvd2VkRGlyZWN0aW9uXT1cImRpcmVjdGlvblwiXG4gIChldE9ic2VydmVTY3JvbGxTdGF0ZSk9XCJfc2Nyb2xsU3RhdGVDaGFuZ2VkKCRldmVudClcIlxuICBjbGFzcz1cImV0LXNjcm9sbGFibGUtY29udGFpbmVyXCJcbj5cbiAgPG5nLWNvbnRlbnQgLz5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwicmVuZGVyTWFza3NcIiBjbGFzcz1cImV0LXNjcm9sbGFibGUtbWFza3NcIj5cbiAgPGRpdiBjbGFzcz1cImV0LXNjcm9sbGFibGUtbWFzayBldC1zY3JvbGxhYmxlLW1hc2stLXN0YXJ0XCI+PC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJldC1zY3JvbGxhYmxlLW1hc2sgZXQtc2Nyb2xsYWJsZS1tYXNrLS1lbmRcIj48L2Rpdj5cbjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwicmVuZGVyQnV0dG9uc1wiIGNsYXNzPVwiZXQtc2Nyb2xsYWJsZS1idXR0b25zXCI+XG4gIDxidXR0b25cbiAgICAoY2xpY2spPVwic2Nyb2xsVG9TdGFydERpcmVjdGlvbigpXCJcbiAgICBjbGFzcz1cImV0LXNjcm9sbGFibGUtYnV0dG9uIGV0LXNjcm9sbGFibGUtYnV0dG9uLS1zdGFydFwiXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgPlxuICAgIDxldC1jaGV2cm9uLWljb24gLz5cbiAgPC9idXR0b24+XG4gIDxidXR0b25cbiAgICAoY2xpY2spPVwic2Nyb2xsVG9TdGFydEVuZCgpXCJcbiAgICBjbGFzcz1cImV0LXNjcm9sbGFibGUtYnV0dG9uIGV0LXNjcm9sbGFibGUtYnV0dG9uLS1lbmRcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gID5cbiAgICA8ZXQtY2hldnJvbi1pY29uIC8+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
307
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvc2Nyb2xsYWJsZS9jb21wb25lbnRzL3Njcm9sbGFibGUvc2Nyb2xsYWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvc2Nyb2xsYWJsZS9jb21wb25lbnRzL3Njcm9sbGFibGUvc2Nyb2xsYWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sU0FBUyxFQUNULGVBQWUsR0FDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixpQkFBaUIsRUFDakIsVUFBVSxFQUdWLFlBQVksRUFFWiwyQkFBMkIsRUFJM0IsYUFBYSxFQUNiLEtBQUssRUFDTCx1QkFBdUIsRUFDdkIsZUFBZSxHQUNoQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQWV0RCxNQUFNLE9BQU8sbUJBQW1CO0lBWmhDO1FBYW1CLGNBQVMsR0FBRyxhQUFh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QyxjQUFjO3NCQURiLGVBQWU7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUl6RCxRQUFRO3NCQURQLGVBQWU7dUJBQUMsVUFBVSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0LFxuICBpc0Rldk1vZGUsXG4gIG51bWJlckF0dHJpYnV0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDdXJzb3JEcmFnU2Nyb2xsRGlyZWN0aXZlLFxuICBJU19BQ1RJVkVfRUxFTUVOVCxcbiAgSVNfRUxFTUVOVCxcbiAgSXNBY3RpdmVFbGVtZW50RGlyZWN0aXZlLFxuICBJc0VsZW1lbnREaXJlY3RpdmUsXG4gIExldERpcmVjdGl2ZSxcbiAgTmdDbGFzc1R5cGUsXG4gIE9ic2VydmVTY3JvbGxTdGF0ZURpcmVjdGl2ZSxcbiAgU2Nyb2xsT2JzZXJ2ZXJTY3JvbGxTdGF0ZSxcbiAgU2Nyb2xsVG9FbGVtZW50T3B0aW9ucyxcbiAgVHlwZWRRdWVyeUxpc3QsXG4gIGNyZWF0ZURlc3Ryb3ksXG4gIGVxdWFsLFxuICBnZXRFbGVtZW50VmlzaWJsZVN0YXRlcyxcbiAgc2Nyb2xsVG9FbGVtZW50LFxufSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZGVib3VuY2VUaW1lLCBmcm9tRXZlbnQsIG1lcmdlLCBzdGFydFdpdGgsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDaGV2cm9uSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2ljb25zJztcbmltcG9ydCB7IFNjcm9sbGFibGVJbnRlcnNlY3Rpb25DaGFuZ2UsIFNjcm9sbGFibGVTY3JvbGxNb2RlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdldC1zY3JvbGxhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Njcm9sbGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zY3JvbGxhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQ3Vyc29yRHJhZ1Njcm9sbERpcmVjdGl2ZSwgT2JzZXJ2ZVNjcm9sbFN0YXRlRGlyZWN0aXZlLCBOZ0NsYXNzLCBOZ0lmLCBMZXREaXJlY3RpdmUsIENoZXZyb25JY29uQ29tcG9uZW50XSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZXQtc2Nyb2xsYWJsZScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFNjcm9sbGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IGNyZWF0ZURlc3Ryb3koKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG5cbiAgcHJpdmF0ZSBfaXNDdXJzb3JEcmFnZ2luZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2F0dHIuaXRlbS1zaXplJylcbiAgaXRlbVNpemU6ICdhdXRvJyB8ICdzYW1lJyA9ICdhdXRvJztcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGlyZWN0aW9uJylcbiAgZGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnID0gJ2hvcml6b250YWwnO1xuXG4gIEBJbnB1dCgpXG4gIHNjcm9sbGFibGVSb2xlPzogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHNjcm9sbGFibGVDbGFzcz86IE5nQ2xhc3NUeXBlO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICByZW5kZXJNYXNrcyA9IHRydWU7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHJlbmRlckJ1dHRvbnMgPSB0cnVlO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBASG9zdEJpbmRpbmcoJ2F0dHIucmVuZGVyLXNjcm9sbGJhcnMnKVxuICByZW5kZXJTY3JvbGxiYXJzID0gZmFsc2U7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIEBIb3N0QmluZGluZygnYXR0ci5zdGlja3ktYnV0dG9ucycpXG4gIHN0aWNreUJ1dHRvbnMgPSBmYWxzZTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgY3Vyc29yRHJhZ1Njcm9sbCA9IHRydWU7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIGRpc2FibGVBY3RpdmVFbGVtZW50U2Nyb2xsaW5nID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2Nyb2xsTW9kZTogU2Nyb2xsYWJsZVNjcm9sbE1vZGUgPSAnY29udGFpbmVyJztcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgc25hcCA9IGZhbHNlO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHNjcm9sbE1hcmdpbiA9IDA7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IHNjcm9sbFN0YXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTY3JvbGxPYnNlcnZlclNjcm9sbFN0YXRlPigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBpbnRlcnNlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNjcm9sbGFibGVJbnRlcnNlY3Rpb25DaGFuZ2VbXT4oKTtcblxuICBAVmlld0NoaWxkKCdzY3JvbGxhYmxlJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgc2Nyb2xsYWJsZSE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oSVNfQUNUSVZFX0VMRU1FTlQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgYWN0aXZlRWxlbWVudHM6IFR5cGVkUXVlcnlMaXN0PElzQWN0aXZlRWxlbWVudERpcmVjdGl2ZT4gfCBudWxsID0gbnVsbDtcblxuICBAQ29udGVudENoaWxkcmVuKElTX0VMRU1FTlQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgZWxlbWVudHM6IFR5cGVkUXVlcnlMaXN0PElzRWxlbWVudERpcmVjdGl2ZT4gfCBudWxsID0gbnVsbDtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2Nyb2xsU3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTY3JvbGxPYnNlcnZlclNjcm9sbFN0YXRlIHwgbnVsbD4obnVsbCk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zY3JvbGxTdGF0ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKHN0YXRlKSA9PiB7XG4gICAgICAgICAgaWYgKCFzdGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWxlbWVudCwgJ2F0LXN0YXJ0Jywgc3RhdGUuaXNBdFN0YXJ0LnRvU3RyaW5nKCkpO1xuICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZShlbGVtZW50LCAnYXQtZW5kJywgc3RhdGUuaXNBdEVuZC50b1N0cmluZygpKTtcbiAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWxlbWVudCwgJ2Nhbi1zY3JvbGwnLCBzdGF0ZS5jYW5TY3JvbGwudG9TdHJpbmcoKSk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5fc2V0dXBTY3JvbGxMaXN0ZW5pbmcoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYWN0aXZlRWxlbWVudHMgfHwgIXRoaXMuZWxlbWVudHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmFjdGl2ZUVsZW1lbnRzLmNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBzdGFydFdpdGgodGhpcy5hY3RpdmVFbGVtZW50cyksXG4gICAgICAgIHRhcCgoYWN0aXZlRWxlbWVudHMpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5kaXNhYmxlQWN0aXZlRWxlbWVudFNjcm9sbGluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGZpcnN0QWN0aXZlID0gYWN0aXZlRWxlbWVudHNcbiAgICAgICAgICAgIC5maWx0ZXIoKGEpOiBhIGlzIElzQWN0aXZlRWxlbWVudERpcmVjdGl2ZSA9PiAhIWEpXG4gICAgICAgICAgICAuZmluZCgoYSkgPT4gYS5pc0FjdGl2ZUVsZW1lbnQpO1xuXG4gICAgICAgICAgaWYgKCFmaXJzdEFjdGl2ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNjcm9sbFRvRWxlbWVudCh7XG4gICAgICAgICAgICBiZWhhdmlvcjogJ2F1dG8nLFxuICAgICAgICAgICAgY29udGFpbmVyOiB0aGlzLnNjcm9sbGFibGUubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIGVsZW1lbnQ6IGZpcnN0QWN0aXZlLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIHNjcm9sbElubGluZU1hcmdpbjogdGhpcy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyA/IHRoaXMuc2Nyb2xsTWFyZ2luIDogMCxcbiAgICAgICAgICAgIHNjcm9sbEJsb2NrTWFyZ2luOiB0aGlzLmRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnID8gMCA6IHRoaXMuc2Nyb2xsTWFyZ2luLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHNjcm9sbE9uZUNvbnRhaW5lclNpemUoZGlyZWN0aW9uOiAnc3RhcnQnIHwgJ2VuZCcpIHtcbiAgICBjb25zdCBzY3JvbGxFbGVtZW50ID0gdGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgY29uc3Qgc2Nyb2xsYWJsZVNpemUgPSB0aGlzLmRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnID8gcGFyZW50LmNsaWVudFdpZHRoIDogcGFyZW50LmNsaWVudEhlaWdodDtcbiAgICBjb25zdCBjdXJyZW50U2Nyb2xsID0gdGhpcy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyA/IHNjcm9sbEVsZW1lbnQuc2Nyb2xsTGVmdCA6IHNjcm9sbEVsZW1lbnQuc2Nyb2xsVG9wO1xuXG4gICAgc2Nyb2xsRWxlbWVudC5zY3JvbGxUbyh7XG4gICAgICBbdGhpcy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyA/ICdsZWZ0JyA6ICd0b3AnXTpcbiAgICAgICAgY3VycmVudFNjcm9sbCArIChkaXJlY3Rpb24gPT09ICdzdGFydCcgPyAtc2Nyb2xsYWJsZVNpemUgOiBzY3JvbGxhYmxlU2l6ZSksXG4gICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgfSk7XG4gIH1cblxuICBzY3JvbGxPbmVJdGVtU2l6ZShkaXJlY3Rpb246ICdzdGFydCcgfCAnZW5kJykge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5lbGVtZW50cz8udG9BcnJheSgpID8/IFtdO1xuXG4gICAgaWYgKCFlbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ05vIGVsZW1lbnRzIGZvdW5kIHRvIHNjcm9sbCB0by4gTWFrZSBzdXJlIHRvIGFwcGx5IHRoZSBpc0VsZW1lbnQgZGlyZWN0aXZlIHRvIHRoZSBlbGVtZW50cyB5b3Ugd2FudCB0byBzY3JvbGwgdG8uJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzY3JvbGxFbGVtZW50ID0gdGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgY29uc3QgY3VycmVudFNjcm9sbCA9IHRoaXMuZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcgPyBzY3JvbGxFbGVtZW50LnNjcm9sbExlZnQgOiBzY3JvbGxFbGVtZW50LnNjcm9sbFRvcDtcblxuICAgIGNvbnN0IHNjcm9sbGFibGVFbGVtZW50cyA9IGVsZW1lbnRzLmZpbHRlcigoZSkgPT4ge1xuICAgICAgaWYgKCFlKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgIGNvbnN0IHJlY3QgPSBlLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgaWYgKHRoaXMuZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PT0gJ3N0YXJ0JyA/IHJlY3QubGVmdCA8IDAgOiByZWN0LnJpZ2h0ID4gcGFyZW50LmNsaWVudFdpZHRoO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PT0gJ3N0YXJ0JyA/IHJlY3QudG9wIDwgMCA6IHJlY3QuYm90dG9tID4gcGFyZW50LmNsaWVudEhlaWdodDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghc2Nyb2xsYWJsZUVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNjcm9sbGFibGVFbGVtZW50UmVmID1cbiAgICAgIGRpcmVjdGlvbiA9PT0gJ3N0YXJ0JyA/IHNjcm9sbGFibGVFbGVtZW50c1tzY3JvbGxhYmxlRWxlbWVudHMubGVuZ3RoIC0gMV0gOiBzY3JvbGxhYmxlRWxlbWVudHNbMF07XG5cbiAgICBpZiAoIXNjcm9sbGFibGVFbGVtZW50UmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2Nyb2xsYWJsZUVsZW1lbnQgPSBzY3JvbGxhYmxlRWxlbWVudFJlZi5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3Qgc2Nyb2xsYWJsZUVsZW1lbnRSZWN0ID0gc2Nyb2xsYWJsZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBjb25zdCBzY3JvbGxDb250YWluZXJTaXplID0gdGhpcy5kaXJlY3Rpb24gPT09ICdob3Jpem9udGFsJyA/IHBhcmVudC5jbGllbnRXaWR0aCA6IHBhcmVudC5jbGllbnRIZWlnaHQ7XG4gICAgY29uc3QgZG9jU2l6ZSA9IHRoaXMuZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcgPyBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoIDogZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQ7XG5cbiAgICBjb25zdCBvZmZzZXRTaXplID0gZG9jU2l6ZSAtIHNjcm9sbENvbnRhaW5lclNpemU7XG4gICAgY29uc3Qgb2Zmc2V0ID0gb2Zmc2V0U2l6ZSA/IG9mZnNldFNpemUgLyAyIDogMDtcbiAgICBjb25zdCBzY3JvbGxGb3IgPSBNYXRoLnJvdW5kKGN1cnJlbnRTY3JvbGwgKyBzY3JvbGxhYmxlRWxlbWVudFJlY3QubGVmdCAtIG9mZnNldCk7XG5cbiAgICBzY3JvbGxFbGVtZW50LnNjcm9sbFRvKHtcbiAgICAgIFt0aGlzLmRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnID8gJ2xlZnQnIDogJ3RvcCddOiBzY3JvbGxGb3IsXG4gICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgfSk7XG4gIH1cblxuICBzY3JvbGxUb0VsZW1lbnQob3B0aW9uczogT21pdDxTY3JvbGxUb0VsZW1lbnRPcHRpb25zLCAnY29udGFpbmVyJz4pIHtcbiAgICBjb25zdCBzY3JvbGxFbGVtZW50ID0gdGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBzY3JvbGxUb0VsZW1lbnQoe1xuICAgICAgY29udGFpbmVyOiBzY3JvbGxFbGVtZW50LFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIHNjcm9sbFRvRWxlbWVudEJ5SW5kZXgob3B0aW9uczogT21pdDxTY3JvbGxUb0VsZW1lbnRPcHRpb25zLCAnY29udGFpbmVyJz4gJiB7IGluZGV4OiBudW1iZXIgfSkge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5lbGVtZW50cz8udG9BcnJheSgpID8/IFtdO1xuXG4gICAgaWYgKCFlbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ05vIGVsZW1lbnRzIGZvdW5kIHRvIHNjcm9sbCB0by4gTWFrZSBzdXJlIHRvIGFwcGx5IHRoZSBpc0VsZW1lbnQgZGlyZWN0aXZlIHRvIHRoZSBlbGVtZW50cyB5b3Ugd2FudCB0byBzY3JvbGwgdG8uJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzY3JvbGxFbGVtZW50ID0gdGhpcy5zY3JvbGxhYmxlLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRzW29wdGlvbnMuaW5kZXhdPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBzY3JvbGxUb0VsZW1lbnQoe1xuICAgICAgY29udGFpbmVyOiBzY3JvbGxFbGVtZW50LFxuICAgICAgZWxlbWVudCxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0SXNDdXJzb3JEcmFnZ2luZyhpc0RyYWdnaW5nOiBib29sZWFuKSB7XG4gICAgdGhpcy5faXNDdXJzb3JEcmFnZ2luZyQubmV4dChpc0RyYWdnaW5nKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfc2Nyb2xsU3RhdGVDaGFuZ2VkKHNjcm9sbFN0YXRlOiBTY3JvbGxPYnNlcnZlclNjcm9sbFN0YXRlKSB7XG4gICAgaWYgKGVxdWFsKHRoaXMuc2Nyb2xsU3RhdGUkLnZhbHVlLCBzY3JvbGxTdGF0ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNjcm9sbFN0YXRlJC5uZXh0KHNjcm9sbFN0YXRlKTtcbiAgICB0aGlzLnNjcm9sbFN0YXRlQ2hhbmdlLmVtaXQoc2Nyb2xsU3RhdGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNjcm9sbFRvU3RhcnREaXJlY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuc2Nyb2xsTW9kZSA9PT0gJ2NvbnRhaW5lcicpIHtcbiAgICAgIHRoaXMuc2Nyb2xsT25lQ29udGFpbmVyU2l6ZSgnc3RhcnQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zY3JvbGxPbmVJdGVtU2l6ZSgnc3RhcnQnKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2Nyb2xsVG9TdGFydEVuZCgpIHtcbiAgICBpZiAodGhpcy5zY3JvbGxNb2RlID09PSAnY29udGFpbmVyJykge1xuICAgICAgdGhpcy5zY3JvbGxPbmVDb250YWluZXJTaXplKCdlbmQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zY3JvbGxPbmVJdGVtU2l6ZSgnZW5kJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0dXBTY3JvbGxMaXN0ZW5pbmcoKSB7XG4gICAgY29uc3Qgc2Nyb2xsRWxlbWVudCA9IHRoaXMuc2Nyb2xsYWJsZS5uYXRpdmVFbGVtZW50O1xuICAgIGxldCBpc1NuYXBwaW5nID0gZmFsc2U7XG4gICAgbGV0IHNuYXBUaW1lb3V0ID0gMDtcblxuICAgIG1lcmdlKGZyb21FdmVudDxXaGVlbEV2ZW50PihzY3JvbGxFbGVtZW50LCAnd2hlZWwnKSwgZnJvbUV2ZW50PFRvdWNoRXZlbnQ+KHNjcm9sbEVsZW1lbnQsICd0b3VjaHN0YXJ0JykpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICBpc1NuYXBwaW5nID0gZmFsc2U7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgbWVyZ2UoZnJvbUV2ZW50KHNjcm9sbEVsZW1lbnQsICdzY3JvbGwnKSwgdGhpcy5faXNDdXJzb3JEcmFnZ2luZyQpXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDI1KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBlbGVtZW50cyA9XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRzXG4gICAgICAgICAgICAgID8udG9BcnJheSgpXG4gICAgICAgICAgICAgIC5tYXAoKGUpID0+IGU/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudClcbiAgICAgICAgICAgICAgLmZpbHRlcigoZSk6IGUgaXMgSFRNTEVsZW1lbnQgPT4gISFlKSA/PyBbXTtcblxuICAgICAgICAgIGNvbnN0IHN0YXRlcyA9IGdldEVsZW1lbnRWaXNpYmxlU3RhdGVzKHtcbiAgICAgICAgICAgIGVsZW1lbnRzLFxuICAgICAgICAgICAgY29udGFpbmVyOiBzY3JvbGxFbGVtZW50LFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgY29uc3QgcHJvcCA9IHRoaXMuZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcgPyAnaW5saW5lSW50ZXJzZWN0aW9uJyA6ICdibG9ja0ludGVyc2VjdGlvbic7XG4gICAgICAgICAgY29uc3Qgc3RhdGVDbGFzcyA9IGBldC1lbGVtZW50LS1pcy1pbnRlcnNlY3RpbmdgO1xuXG4gICAgICAgICAgZm9yIChjb25zdCBzdGF0ZSBvZiBzdGF0ZXMpIHtcbiAgICAgICAgICAgIGlmIChzdGF0ZVtwcm9wXSA9PT0gMTAwKSB7XG4gICAgICAgICAgICAgIHN0YXRlLmVsZW1lbnQuY2xhc3NMaXN0LmFkZChzdGF0ZUNsYXNzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHN0YXRlLmVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShzdGF0ZUNsYXNzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLmludGVyc2VjdGlvbkNoYW5nZS5lbWl0KFxuICAgICAgICAgICAgc3RhdGVzLm1hcCgocywgaSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBzdGF0ZTogU2Nyb2xsYWJsZUludGVyc2VjdGlvbkNoYW5nZSA9IHtcbiAgICAgICAgICAgICAgICBlbGVtZW50OiBzLmVsZW1lbnQsXG4gICAgICAgICAgICAgICAgaW50ZXJzZWN0aW9uUmF0aW86IHNbcHJvcF0gLyAxMDAsXG4gICAgICAgICAgICAgICAgaXNJbnRlcnNlY3Rpbmc6IHNbcHJvcF0gPT09IDEwMCxcbiAgICAgICAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICByZXR1cm4gc3RhdGU7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKGlzU25hcHBpbmcgfHwgdGhpcy5faXNDdXJzb3JEcmFnZ2luZyQudmFsdWUpIHJldHVybjtcblxuICAgICAgICAgIGNvbnN0IGlzT25seU9uZVBhcnRpYWxJbnRlcnNlY3Rpb24gPSBzdGF0ZXMuZmlsdGVyKChzKSA9PiBzW3Byb3BdIDwgMTAwICYmIHNbcHJvcF0gPiAwKS5sZW5ndGggPT09IDE7XG5cbiAgICAgICAgICBpZiAoaXNPbmx5T25lUGFydGlhbEludGVyc2VjdGlvbikgcmV0dXJuO1xuXG4gICAgICAgICAgY29uc3QgaGlnaGVzdEludGVyc2VjdGluZyA9IHN0YXRlcy5yZWR1Y2UoKHByZXYsIGN1cnJlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50W3Byb3BdID4gcHJldltwcm9wXSAmJiBjdXJyZW50W3Byb3BdIDwgMTAwKSB7XG4gICAgICAgICAgICAgIHJldHVybiBjdXJyZW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNvbnN0IGZ1bGxJbnRlcnNlY3Rpb25JbmRleCA9IHN0YXRlcy5maW5kSW5kZXgoKHMpID0+IHNbcHJvcF0gPT09IDEwMCk7XG4gICAgICAgICAgY29uc3QgaGlnaGVzdEludGVyc2VjdGluZ0luZGV4ID0gc3RhdGVzLmZpbmRJbmRleCgocykgPT4gcyA9PT0gaGlnaGVzdEludGVyc2VjdGluZyk7XG5cbiAgICAgICAgICBjb25zdCBvcmlnaW4gPSBoaWdoZXN0SW50ZXJzZWN0aW5nSW5kZXggPiBmdWxsSW50ZXJzZWN0aW9uSW5kZXggPyAnZW5kJyA6ICdzdGFydCc7XG5cbiAgICAgICAgICBpZiAoIWhpZ2hlc3RJbnRlcnNlY3RpbmcgfHwgaGlnaGVzdEludGVyc2VjdGluZ1twcm9wXSA9PT0gMTAwKSByZXR1cm47XG5cbiAgICAgICAgICBzY3JvbGxUb0VsZW1lbnQoe1xuICAgICAgICAgICAgY29udGFpbmVyOiBzY3JvbGxFbGVtZW50LFxuICAgICAgICAgICAgZWxlbWVudDogaGlnaGVzdEludGVyc2VjdGluZy5lbGVtZW50LFxuICAgICAgICAgICAgZGlyZWN0aW9uOiB0aGlzLmRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnID8gJ2lubGluZScgOiAnYmxvY2snLFxuICAgICAgICAgICAgb3JpZ2luLFxuICAgICAgICAgICAgc2Nyb2xsQmxvY2tNYXJnaW46IHRoaXMuZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcgPyAwIDogdGhpcy5zY3JvbGxNYXJnaW4sXG4gICAgICAgICAgICBzY3JvbGxJbmxpbmVNYXJnaW46IHRoaXMuZGlyZWN0aW9uID09PSAnaG9yaXpvbnRhbCcgPyB0aGlzLnNjcm9sbE1hcmdpbiA6IDAsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICBpc1NuYXBwaW5nID0gdHJ1ZTtcblxuICAgICAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQoc25hcFRpbWVvdXQpO1xuXG4gICAgICAgICAgc25hcFRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBpc1NuYXBwaW5nID0gZmFsc2U7XG4gICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8ZGl2XG4gICNzY3JvbGxhYmxlXG4gIFthdHRyLnJvbGVdPVwic2Nyb2xsYWJsZVJvbGUgPz8gdW5kZWZpbmVkXCJcbiAgW25nQ2xhc3NdPVwic2Nyb2xsYWJsZUNsYXNzXCJcbiAgW2V0Q3Vyc29yRHJhZ1Njcm9sbF09XCJjdXJzb3JEcmFnU2Nyb2xsXCJcbiAgW2FsbG93ZWREaXJlY3Rpb25dPVwiZGlyZWN0aW9uXCJcbiAgKGV0T2JzZXJ2ZVNjcm9sbFN0YXRlKT1cIl9zY3JvbGxTdGF0ZUNoYW5nZWQoJGV2ZW50KVwiXG4gIChjdXJzb3JEcmFnU3RhcnQpPVwic2V0SXNDdXJzb3JEcmFnZ2luZyh0cnVlKVwiXG4gIChjdXJzb3JEcmFnRW5kKT1cInNldElzQ3Vyc29yRHJhZ2dpbmcoZmFsc2UpXCJcbiAgY2xhc3M9XCJldC1zY3JvbGxhYmxlLWNvbnRhaW5lclwiXG4+XG4gIDxuZy1jb250ZW50IC8+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cInJlbmRlck1hc2tzXCIgY2xhc3M9XCJldC1zY3JvbGxhYmxlLW1hc2tzXCI+XG4gIDxkaXYgY2xhc3M9XCJldC1zY3JvbGxhYmxlLW1hc2sgZXQtc2Nyb2xsYWJsZS1tYXNrLS1zdGFydFwiPjwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZXQtc2Nyb2xsYWJsZS1tYXNrIGV0LXNjcm9sbGFibGUtbWFzay0tZW5kXCI+PC9kaXY+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cInJlbmRlckJ1dHRvbnNcIiBjbGFzcz1cImV0LXNjcm9sbGFibGUtYnV0dG9uc1wiPlxuICA8YnV0dG9uXG4gICAgKGNsaWNrKT1cInNjcm9sbFRvU3RhcnREaXJlY3Rpb24oKVwiXG4gICAgY2xhc3M9XCJldC1zY3JvbGxhYmxlLWJ1dHRvbiBldC1zY3JvbGxhYmxlLWJ1dHRvbi0tc3RhcnRcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gID5cbiAgICA8ZXQtY2hldnJvbi1pY29uIC8+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uXG4gICAgKGNsaWNrKT1cInNjcm9sbFRvU3RhcnRFbmQoKVwiXG4gICAgY2xhc3M9XCJldC1zY3JvbGxhYmxlLWJ1dHRvbiBldC1zY3JvbGxhYmxlLWJ1dHRvbi0tZW5kXCJcbiAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICA+XG4gICAgPGV0LWNoZXZyb24taWNvbiAvPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9zY3JvbGxhYmxlL3R5cGVzL3Njcm9sbGFibGUudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFNjcm9sbGFibGVTY3JvbGxNb2RlID0gJ2NvbnRhaW5lcicgfCAnZWxlbWVudCc7XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9zY3JvbGxhYmxlL3R5cGVzL3Njcm9sbGFibGUudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFNjcm9sbGFibGVTY3JvbGxNb2RlID0gJ2NvbnRhaW5lcicgfCAnZWxlbWVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2Nyb2xsYWJsZUludGVyc2VjdGlvbkNoYW5nZSB7XG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBpbnRlcnNlY3Rpb25SYXRpbzogbnVtYmVyO1xuICBpc0ludGVyc2VjdGluZzogYm9vbGVhbjtcbiAgaW5kZXg6IG51bWJlcjtcbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
2
2
  import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
- class SkeletonComponent {
4
+ export class SkeletonComponent {
5
5
  constructor() {
6
6
  this.loadingAllyText = 'Loading...';
7
7
  this._animated = true;
@@ -12,11 +12,10 @@ class SkeletonComponent {
12
12
  set animated(value) {
13
13
  this._animated = coerceBooleanProperty(value);
14
14
  }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: SkeletonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.5", type: SkeletonComponent, isStandalone: true, selector: "et-skeleton", inputs: { loadingAllyText: "loadingAllyText", animated: "animated" }, host: { properties: { "class.et-skeleton--animated": "this.animated" }, classAttribute: "et-skeleton" }, ngImport: i0, template: ` <span class="cdk-visually-hidden"> {{ loadingAllyText }} </span> <ng-content />`, isInline: true, styles: [":where(.et-skeleton){--et-skeleton-gradient: linear-gradient( 90deg, rgba(190, 190, 190, 0) 15%, rgba(129, 129, 129, .5) 37%, rgba(190, 190, 190, 0) 63% );--et-skeleton-animation-duration: 3s;--et-skeleton-animation-timing-function: var(--ease-3)}.et-skeleton{display:block;cursor:progress}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SkeletonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: SkeletonComponent, isStandalone: true, selector: "et-skeleton", inputs: { loadingAllyText: "loadingAllyText", animated: "animated" }, host: { properties: { "class.et-skeleton--animated": "this.animated" }, classAttribute: "et-skeleton" }, ngImport: i0, template: ` <span class="cdk-visually-hidden"> {{ loadingAllyText }} </span> <ng-content />`, isInline: true, styles: [":where(.et-skeleton){--et-skeleton-gradient: linear-gradient( 90deg, rgba(190, 190, 190, 0) 15%, rgba(129, 129, 129, .5) 37%, rgba(190, 190, 190, 0) 63% );--et-skeleton-animation-duration: 3s;--et-skeleton-animation-timing-function: var(--ease-3)}.et-skeleton{display:block;cursor:progress}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
17
17
  }
18
- export { SkeletonComponent };
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: SkeletonComponent, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SkeletonComponent, decorators: [{
20
19
  type: Component,
21
20
  args: [{ selector: 'et-skeleton', template: ` <span class="cdk-visually-hidden"> {{ loadingAllyText }} </span> <ng-content />`, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
22
21
  class: 'et-skeleton',
@@ -29,4 +28,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
29
28
  type: HostBinding,
30
29
  args: ['class.et-skeleton--animated']
31
30
  }] } });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL3NrZWxldG9uL2NvbXBvbmVudHMvc2tlbGV0b24vc2tlbGV0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTFHLE1BV2EsaUJBQWlCO0lBWDlCO1FBYUUsb0JBQWUsR0FBRyxZQUFZLENBQUM7UUFVdkIsY0FBUyxHQUFHLElBQUksQ0FBQztLQUMxQjtJQVRDLElBRUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsS0FBbUI7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDOzhHQVhVLGlCQUFpQjtrR0FBakIsaUJBQWlCLHNQQVRsQixrRkFBa0Y7O1NBU2pGLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQVg3QixTQUFTOytCQUNFLGFBQWEsWUFDYixrRkFBa0YsY0FFaEYsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLEtBQUssRUFBRSxhQUFhO3FCQUNyQjs4QkFJRCxlQUFlO3NCQURkLEtBQUs7Z0JBS0YsUUFBUTtzQkFGWCxLQUFLOztzQkFDTCxXQUFXO3VCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXQtc2tlbGV0b24nLFxuICB0ZW1wbGF0ZTogYCA8c3BhbiBjbGFzcz1cImNkay12aXN1YWxseS1oaWRkZW5cIj4ge3sgbG9hZGluZ0FsbHlUZXh0IH19IDwvc3Bhbj4gPG5nLWNvbnRlbnQgLz5gLFxuICBzdHlsZVVybHM6IFsnc2tlbGV0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LXNrZWxldG9uJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU2tlbGV0b25Db21wb25lbnQge1xuICBASW5wdXQoKVxuICBsb2FkaW5nQWxseVRleHQgPSAnTG9hZGluZy4uLic7XG5cbiAgQElucHV0KClcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5ldC1za2VsZXRvbi0tYW5pbWF0ZWQnKVxuICBnZXQgYW5pbWF0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FuaW1hdGVkO1xuICB9XG4gIHNldCBhbmltYXRlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fYW5pbWF0ZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIHByaXZhdGUgX2FuaW1hdGVkID0gdHJ1ZTtcbn1cbiJdfQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL3NrZWxldG9uL2NvbXBvbmVudHMvc2tlbGV0b24vc2tlbGV0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBYTFHLE1BQU0sT0FBTyxpQkFBaUI7SUFYOUI7UUFhRSxvQkFBZSxHQUFHLFlBQVksQ0FBQztRQVV2QixjQUFTLEdBQUcsSUFBSSxDQUFDO0tBQzFCO0lBVEMsSUFFSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFtQjtRQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7OEdBWFUsaUJBQWlCO2tHQUFqQixpQkFBaUIsc1BBVGxCLGtGQUFrRjs7MkZBU2pGLGlCQUFpQjtrQkFYN0IsU0FBUzsrQkFDRSxhQUFhLFlBQ2Isa0ZBQWtGLGNBRWhGLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUsYUFBYTtxQkFDckI7OEJBSUQsZUFBZTtzQkFEZCxLQUFLO2dCQUtGLFFBQVE7c0JBRlgsS0FBSzs7c0JBQ0wsV0FBVzt1QkFBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2V0LXNrZWxldG9uJyxcbiAgdGVtcGxhdGU6IGAgPHNwYW4gY2xhc3M9XCJjZGstdmlzdWFsbHktaGlkZGVuXCI+IHt7IGxvYWRpbmdBbGx5VGV4dCB9fSA8L3NwYW4+IDxuZy1jb250ZW50IC8+YCxcbiAgc3R5bGVVcmxzOiBbJ3NrZWxldG9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdldC1za2VsZXRvbicsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFNrZWxldG9uQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgbG9hZGluZ0FsbHlUZXh0ID0gJ0xvYWRpbmcuLi4nO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZXQtc2tlbGV0b24tLWFuaW1hdGVkJylcbiAgZ2V0IGFuaW1hdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9hbmltYXRlZDtcbiAgfVxuICBzZXQgYW5pbWF0ZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX2FuaW1hdGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF9hbmltYXRlZCA9IHRydWU7XG59XG4iXX0=
@@ -1,14 +1,13 @@
1
1
  import { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- class SkeletonItemComponent {
3
+ export class SkeletonItemComponent {
4
4
  constructor() {
5
5
  this.ariaHidden = true;
6
6
  }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: SkeletonItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.5", type: SkeletonItemComponent, isStandalone: true, selector: "et-skeleton-item", host: { properties: { "attr.aria-hidden": "this.ariaHidden" }, classAttribute: "et-skeleton-item" }, ngImport: i0, template: ``, isInline: true, styles: [".et-skeleton-item{display:block;overflow:hidden;position:relative}.et-skeleton--animated .et-skeleton-item:before{content:\"\";height:100%;left:0;position:absolute;right:0;top:0;transform:translate(-100%);z-index:1;background:var(--et-skeleton-gradient)}@media (prefers-reduced-motion: no-preference){.et-skeleton--animated .et-skeleton-item:before{animation:skeleton-loading var(--et-skeleton-animation-duration) infinite var(--et-skeleton-animation-timing-function)}}@keyframes skeleton-loading{0%{transform:translate(-100%)}to{transform:translate(100%)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SkeletonItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: SkeletonItemComponent, isStandalone: true, selector: "et-skeleton-item", host: { properties: { "attr.aria-hidden": "this.ariaHidden" }, classAttribute: "et-skeleton-item" }, ngImport: i0, template: ``, isInline: true, styles: [".et-skeleton-item{display:block;overflow:hidden;position:relative}.et-skeleton--animated .et-skeleton-item:before{content:\"\";height:100%;left:0;position:absolute;right:0;top:0;transform:translate(-100%);z-index:1;background:var(--et-skeleton-gradient)}@media (prefers-reduced-motion: no-preference){.et-skeleton--animated .et-skeleton-item:before{animation:skeleton-loading var(--et-skeleton-animation-duration) infinite var(--et-skeleton-animation-timing-function)}}@keyframes skeleton-loading{0%{transform:translate(-100%)}to{transform:translate(100%)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
9
9
  }
10
- export { SkeletonItemComponent };
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: SkeletonItemComponent, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SkeletonItemComponent, decorators: [{
12
11
  type: Component,
13
12
  args: [{ selector: 'et-skeleton-item', template: ``, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
14
13
  class: 'et-skeleton-item',
@@ -17,4 +16,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
17
16
  type: HostBinding,
18
17
  args: ['attr.aria-hidden']
19
18
  }] } });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvc2tlbGV0b24vcGFydGlhbHMvc2tlbGV0b24taXRlbS9za2VsZXRvbi1pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFbkcsTUFXYSxxQkFBcUI7SUFYbEM7UUFhRSxlQUFVLEdBQUcsSUFBSSxDQUFDO0tBQ25COzhHQUhZLHFCQUFxQjtrR0FBckIscUJBQXFCLGlMQVR0QixFQUFFOztTQVNELHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQVhqQyxTQUFTOytCQUNFLGtCQUFrQixZQUNsQixFQUFFLGNBRUEsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLEtBQUssRUFBRSxrQkFBa0I7cUJBQzFCOzhCQUlELFVBQVU7c0JBRFQsV0FBVzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXQtc2tlbGV0b24taXRlbScsXG4gIHRlbXBsYXRlOiBgYCxcbiAgc3R5bGVVcmxzOiBbJ3NrZWxldG9uLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LXNrZWxldG9uLWl0ZW0nLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBTa2VsZXRvbkl0ZW1Db21wb25lbnQge1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1oaWRkZW4nKVxuICBhcmlhSGlkZGVuID0gdHJ1ZTtcbn1cbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvc2tlbGV0b24vcGFydGlhbHMvc2tlbGV0b24taXRlbS9za2VsZXRvbi1pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFhbkcsTUFBTSxPQUFPLHFCQUFxQjtJQVhsQztRQWFFLGVBQVUsR0FBRyxJQUFJLENBQUM7S0FDbkI7OEdBSFkscUJBQXFCO2tHQUFyQixxQkFBcUIsaUxBVHRCLEVBQUU7OzJGQVNELHFCQUFxQjtrQkFYakMsU0FBUzsrQkFDRSxrQkFBa0IsWUFDbEIsRUFBRSxjQUVBLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUsa0JBQWtCO3FCQUMxQjs4QkFJRCxVQUFVO3NCQURULFdBQVc7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2V0LXNrZWxldG9uLWl0ZW0nLFxuICB0ZW1wbGF0ZTogYGAsXG4gIHN0eWxlVXJsczogWydza2VsZXRvbi1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdldC1za2VsZXRvbi1pdGVtJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU2tlbGV0b25JdGVtQ29tcG9uZW50IHtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtaGlkZGVuJylcbiAgYXJpYUhpZGRlbiA9IHRydWU7XG59XG4iXX0=