@ethlete/cdk 4.9.1 → 4.10.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 (1611) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/esm2022/index.mjs +22 -2
  3. package/esm2022/lib/components/accordion/accordion.imports.mjs +7 -3
  4. package/esm2022/lib/components/accordion/components/accordion/accordion.component.mjs +8 -6
  5. package/esm2022/lib/components/accordion/components/accordion/index.mjs +4 -2
  6. package/esm2022/lib/components/accordion/components/accordion-group/accordion-group.component.mjs +3 -3
  7. package/esm2022/lib/components/accordion/components/accordion-group/index.mjs +2 -0
  8. package/esm2022/lib/components/accordion/partials/accordion-hint/accordion-hint.directive.mjs +3 -3
  9. package/esm2022/lib/components/accordion/partials/accordion-hint/index.mjs +2 -0
  10. package/esm2022/lib/components/accordion/partials/accordion-hint-wrapper/accordion-hint-wrapper.directive.mjs +3 -3
  11. package/esm2022/lib/components/accordion/partials/accordion-hint-wrapper/index.mjs +3 -0
  12. package/esm2022/lib/components/accordion/partials/accordion-label/accordion-label.directive.mjs +3 -3
  13. package/esm2022/lib/components/accordion/partials/accordion-label/index.mjs +2 -0
  14. package/esm2022/lib/components/accordion/partials/accordion-label-wrapper/accordion-label-wrapper.directive.mjs +3 -3
  15. package/esm2022/lib/components/accordion/partials/accordion-label-wrapper/index.mjs +3 -0
  16. package/esm2022/lib/components/accordion/public-api/index.mjs +8 -0
  17. package/esm2022/lib/components/bracket/bracket.imports.mjs +4 -3
  18. package/esm2022/lib/components/bracket/components/bracket/bracket.component.mjs +3 -3
  19. package/esm2022/lib/components/bracket/components/bracket/index.mjs +3 -0
  20. package/esm2022/lib/components/bracket/constants/bracket.constants.mjs +1 -1
  21. package/esm2022/lib/components/bracket/constants/index.mjs +2 -2
  22. package/esm2022/lib/components/bracket/directives/bracket-match/bracket-match.directive.mjs +3 -3
  23. package/esm2022/lib/components/bracket/directives/bracket-match/index.mjs +2 -2
  24. package/esm2022/lib/components/bracket/directives/bracket-round/bracket-round.directive.mjs +3 -3
  25. package/esm2022/lib/components/bracket/directives/bracket-round/index.mjs +2 -2
  26. package/esm2022/lib/components/bracket/partials/bracket-match/bracket-match.component.mjs +5 -5
  27. package/esm2022/lib/components/bracket/partials/bracket-match/index.mjs +2 -2
  28. package/esm2022/lib/components/bracket/partials/bracket-round-header/bracket-round-header.component.mjs +5 -5
  29. package/esm2022/lib/components/bracket/partials/bracket-round-header/index.mjs +2 -2
  30. package/esm2022/lib/components/bracket/public-api/index.mjs +10 -0
  31. package/esm2022/lib/components/bracket/types/index.mjs +3 -2
  32. package/esm2022/lib/components/bracket/utils/index.mjs +3 -2
  33. package/esm2022/lib/components/button/button.imports.mjs +3 -2
  34. package/esm2022/lib/components/button/components/button/button.component.mjs +5 -5
  35. package/esm2022/lib/components/button/components/button/index.mjs +2 -0
  36. package/esm2022/lib/components/button/components/query-button/index.mjs +2 -0
  37. package/esm2022/lib/components/button/components/query-button/query-button.component.mjs +6 -5
  38. package/esm2022/lib/components/button/directives/button/button.directive.mjs +3 -3
  39. package/esm2022/lib/components/button/directives/button/index.mjs +2 -2
  40. package/esm2022/lib/components/button/directives/query-button/index.mjs +2 -0
  41. package/esm2022/lib/components/button/directives/query-button/query-button.directive.mjs +3 -3
  42. package/esm2022/lib/components/button/public-api/index.mjs +6 -0
  43. package/esm2022/lib/components/filter/filter-overlay/components/filter-overlay-page-outlet/filter-overlay-page-outlet.component.mjs +3 -3
  44. package/esm2022/lib/components/filter/filter-overlay/components/filter-overlay-page-outlet/index.mjs +2 -0
  45. package/esm2022/lib/components/filter/filter-overlay/constants/index.mjs +2 -2
  46. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-back-or-close/filter-overlay-back-or-close.directive.mjs +3 -3
  47. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-back-or-close/index.mjs +2 -0
  48. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-link/filter-overlay-link.directive.mjs +3 -3
  49. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-link/index.mjs +2 -0
  50. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-reset/filter-overlay-reset.directive.mjs +3 -3
  51. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-reset/index.mjs +2 -0
  52. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-submit/filter-overlay-submit.directive.mjs +3 -3
  53. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-submit/index.mjs +2 -0
  54. package/esm2022/lib/components/filter/filter-overlay/filter-overlay.imports.mjs +6 -3
  55. package/esm2022/lib/components/filter/filter-overlay/services/filter-overlay.service.mjs +5 -5
  56. package/esm2022/lib/components/filter/filter-overlay/services/index.mjs +2 -2
  57. package/esm2022/lib/components/filter/filter-overlay/types/filter-overlay-config.types.mjs +1 -1
  58. package/esm2022/lib/components/filter/filter-overlay/types/index.mjs +2 -2
  59. package/esm2022/lib/components/filter/filter-overlay/utils/filter-overlay-ref.mjs +1 -1
  60. package/esm2022/lib/components/filter/filter-overlay/utils/index.mjs +2 -2
  61. package/esm2022/lib/components/filter/public-api/index.mjs +17 -0
  62. package/esm2022/lib/components/filter/rich-filter/components/rich-filter-host/index.mjs +2 -0
  63. package/esm2022/lib/components/filter/rich-filter/components/rich-filter-host/rich-filter-host.component.mjs +8 -5
  64. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button/index.mjs +2 -0
  65. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button/rich-filter-button.directive.mjs +3 -3
  66. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button-slot/index.mjs +2 -0
  67. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button-slot/rich-filter-button-slot.directive.mjs +3 -3
  68. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-content/index.mjs +2 -0
  69. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-content/rich-filter-content.directive.mjs +3 -3
  70. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-top/index.mjs +2 -0
  71. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-top/rich-filter-top.directive.mjs +3 -3
  72. package/esm2022/lib/components/filter/rich-filter/rich-filter.imports.mjs +6 -3
  73. package/esm2022/lib/components/forms/components/checkbox/checkbox.imports.mjs +6 -4
  74. package/esm2022/lib/components/forms/components/checkbox/components/checkbox/checkbox.component.mjs +8 -7
  75. package/esm2022/lib/components/forms/components/checkbox/components/checkbox/index.mjs +2 -0
  76. package/esm2022/lib/components/forms/components/checkbox/components/checkbox-field/checkbox-field.component.mjs +9 -7
  77. package/esm2022/lib/components/forms/components/checkbox/components/checkbox-field/index.mjs +2 -0
  78. package/esm2022/lib/components/forms/components/checkbox/components/checkbox-group/checkbox-group.component.mjs +6 -6
  79. package/esm2022/lib/components/forms/components/checkbox/components/checkbox-group/index.mjs +2 -0
  80. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox/checkbox.directive.mjs +5 -5
  81. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox/index.mjs +2 -2
  82. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-field/checkbox-field.directive.mjs +3 -3
  83. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-field/index.mjs +2 -0
  84. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group/checkbox-group.directive.mjs +3 -3
  85. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group/index.mjs +2 -2
  86. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group-control/checkbox-group-control.directive.mjs +5 -5
  87. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group-control/index.mjs +2 -0
  88. package/esm2022/lib/components/forms/components/error/components/error/error.component.mjs +6 -5
  89. package/esm2022/lib/components/forms/components/error/components/error/index.mjs +2 -0
  90. package/esm2022/lib/components/forms/components/input/components/date-input/date-input.component.mjs +7 -6
  91. package/esm2022/lib/components/forms/components/input/components/date-input/index.mjs +2 -0
  92. package/esm2022/lib/components/forms/components/input/components/date-time-input/date-time-input.component.mjs +7 -6
  93. package/esm2022/lib/components/forms/components/input/components/date-time-input/index.mjs +2 -0
  94. package/esm2022/lib/components/forms/components/input/components/email-input/email-input.component.mjs +7 -6
  95. package/esm2022/lib/components/forms/components/input/components/email-input/index.mjs +2 -0
  96. package/esm2022/lib/components/forms/components/input/components/input-field/index.mjs +2 -0
  97. package/esm2022/lib/components/forms/components/input/components/input-field/input-field.component.mjs +8 -6
  98. package/esm2022/lib/components/forms/components/input/components/number-input/index.mjs +2 -0
  99. package/esm2022/lib/components/forms/components/input/components/number-input/number-input.component.mjs +7 -6
  100. package/esm2022/lib/components/forms/components/input/components/password-input/index.mjs +2 -0
  101. package/esm2022/lib/components/forms/components/input/components/password-input/password-input.component.mjs +7 -6
  102. package/esm2022/lib/components/forms/components/input/components/search-input/index.mjs +2 -0
  103. package/esm2022/lib/components/forms/components/input/components/search-input/search-input.component.mjs +7 -6
  104. package/esm2022/lib/components/forms/components/input/components/text-input/index.mjs +2 -0
  105. package/esm2022/lib/components/forms/components/input/components/text-input/text-input.component.mjs +7 -6
  106. package/esm2022/lib/components/forms/components/input/components/textarea-input/index.mjs +2 -0
  107. package/esm2022/lib/components/forms/components/input/components/textarea-input/textarea-input.component.mjs +6 -5
  108. package/esm2022/lib/components/forms/components/input/directives/autosize-textarea/autosize-textarea.directive.mjs +5 -5
  109. package/esm2022/lib/components/forms/components/input/directives/autosize-textarea/index.mjs +2 -0
  110. package/esm2022/lib/components/forms/components/input/directives/date-input/date-input.directive.mjs +5 -5
  111. package/esm2022/lib/components/forms/components/input/directives/date-input/index.mjs +2 -0
  112. package/esm2022/lib/components/forms/components/input/directives/date-time-input/date-time-input.directive.mjs +5 -5
  113. package/esm2022/lib/components/forms/components/input/directives/date-time-input/index.mjs +2 -0
  114. package/esm2022/lib/components/forms/components/input/directives/email-input/email-input.directive.mjs +5 -5
  115. package/esm2022/lib/components/forms/components/input/directives/email-input/index.mjs +2 -0
  116. package/esm2022/lib/components/forms/components/input/directives/if-supports-show-picker/if-supports-show-picker.directive.mjs +5 -5
  117. package/esm2022/lib/components/forms/components/input/directives/if-supports-show-picker/index.mjs +2 -0
  118. package/esm2022/lib/components/forms/components/input/directives/number-input/index.mjs +2 -0
  119. package/esm2022/lib/components/forms/components/input/directives/number-input/number-input.directive.mjs +5 -5
  120. package/esm2022/lib/components/forms/components/input/directives/password-input/index.mjs +2 -0
  121. package/esm2022/lib/components/forms/components/input/directives/password-input/password-input.directive.mjs +5 -5
  122. package/esm2022/lib/components/forms/components/input/directives/search-input/index.mjs +2 -0
  123. package/esm2022/lib/components/forms/components/input/directives/search-input/search-input.directive.mjs +5 -5
  124. package/esm2022/lib/components/forms/components/input/directives/show-picker-trigger/index.mjs +2 -0
  125. package/esm2022/lib/components/forms/components/input/directives/show-picker-trigger/show-picker-trigger.directive.mjs +5 -5
  126. package/esm2022/lib/components/forms/components/input/directives/text-input/index.mjs +2 -0
  127. package/esm2022/lib/components/forms/components/input/directives/text-input/text-input.directive.mjs +5 -5
  128. package/esm2022/lib/components/forms/components/input/directives/textarea-input/index.mjs +2 -2
  129. package/esm2022/lib/components/forms/components/input/directives/textarea-input/textarea-input.directive.mjs +5 -5
  130. package/esm2022/lib/components/forms/components/input/input.imports.mjs +19 -6
  131. package/esm2022/lib/components/forms/components/input/partials/password-input-toggle/index.mjs +2 -0
  132. package/esm2022/lib/components/forms/components/input/partials/password-input-toggle/password-input-toggle.component.mjs +6 -6
  133. package/esm2022/lib/components/forms/components/input/partials/search-input-clear/index.mjs +2 -0
  134. package/esm2022/lib/components/forms/components/input/partials/search-input-clear/search-input-clear.component.mjs +6 -6
  135. package/esm2022/lib/components/forms/components/label/components/label/index.mjs +2 -0
  136. package/esm2022/lib/components/forms/components/label/components/label/label.component.mjs +3 -3
  137. package/esm2022/lib/components/forms/components/label/directives/label-suffix/index.mjs +2 -0
  138. package/esm2022/lib/components/forms/components/label/directives/label-suffix/label-suffix.directive.mjs +3 -3
  139. package/esm2022/lib/components/forms/components/label/label.imports.mjs +3 -3
  140. package/esm2022/lib/components/forms/components/radio/components/radio/index.mjs +2 -0
  141. package/esm2022/lib/components/forms/components/radio/components/radio/radio.component.mjs +9 -7
  142. package/esm2022/lib/components/forms/components/radio/components/radio-field/index.mjs +2 -0
  143. package/esm2022/lib/components/forms/components/radio/components/radio-field/radio-field.component.mjs +6 -6
  144. package/esm2022/lib/components/forms/components/radio/components/radio-group/index.mjs +2 -0
  145. package/esm2022/lib/components/forms/components/radio/components/radio-group/radio-group.component.mjs +9 -7
  146. package/esm2022/lib/components/forms/components/radio/directives/radio/index.mjs +2 -2
  147. package/esm2022/lib/components/forms/components/radio/directives/radio/radio.directive.mjs +5 -5
  148. package/esm2022/lib/components/forms/components/radio/directives/radio-field/index.mjs +2 -0
  149. package/esm2022/lib/components/forms/components/radio/directives/radio-field/radio-field.directive.mjs +3 -3
  150. package/esm2022/lib/components/forms/components/radio/directives/radio-group/index.mjs +2 -0
  151. package/esm2022/lib/components/forms/components/radio/directives/radio-group/radio-group.directive.mjs +3 -3
  152. package/esm2022/lib/components/forms/components/radio/radio.imports.mjs +5 -3
  153. package/esm2022/lib/components/forms/components/radio/types/index.mjs +2 -2
  154. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button/index.mjs +2 -2
  155. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button/segmented-button.component.mjs +8 -6
  156. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-field/index.mjs +2 -2
  157. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-field/segmented-button-field.component.mjs +6 -6
  158. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-group/index.mjs +2 -2
  159. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-group/segmented-button-group.component.mjs +9 -7
  160. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button/index.mjs +2 -2
  161. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.mjs +5 -5
  162. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-field/index.mjs +2 -0
  163. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-field/segmented-button-field.directive.mjs +3 -3
  164. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-group/index.mjs +2 -0
  165. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-group/segmented-button-group.directive.mjs +3 -3
  166. package/esm2022/lib/components/forms/components/segmented-button/segmented-button.imports.mjs +4 -2
  167. package/esm2022/lib/components/forms/components/select/components/combobox/combobox.imports.mjs +10 -5
  168. package/esm2022/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.mjs +10 -9
  169. package/esm2022/lib/components/forms/components/select/components/combobox/components/combobox/index.mjs +2 -0
  170. package/esm2022/lib/components/forms/components/select/components/combobox/constants/index.mjs +2 -2
  171. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.mjs +6 -6
  172. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox/index.mjs +2 -0
  173. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-empty-template/combobox-body-empty-template.directive.mjs +3 -3
  174. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-empty-template/index.mjs +2 -2
  175. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-error-template/combobox-body-error-template.directive.mjs +3 -3
  176. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-error-template/index.mjs +2 -2
  177. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-loading-template/combobox-body-loading-template.directive.mjs +3 -3
  178. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-loading-template/index.mjs +2 -2
  179. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/combobox-body-more-items-hint-template.directive.mjs +3 -3
  180. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/index.mjs +2 -2
  181. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-option-template/combobox-option-template.directive.mjs +3 -3
  182. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-option-template/index.mjs +2 -2
  183. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-selected-option-template/combobox-selected-option-template.directive.mjs +3 -3
  184. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-selected-option-template/index.mjs +2 -2
  185. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.mjs +5 -5
  186. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-body/index.mjs +2 -0
  187. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.mjs +5 -5
  188. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-option/index.mjs +2 -2
  189. package/esm2022/lib/components/forms/components/select/components/combobox/types/index.mjs +2 -2
  190. package/esm2022/lib/components/forms/components/select/components/combobox/utils/index.mjs +2 -0
  191. package/esm2022/lib/components/forms/components/select/components/native-select/components/native-select/index.mjs +2 -0
  192. package/esm2022/lib/components/forms/components/select/components/native-select/components/native-select/native-select.component.mjs +7 -6
  193. package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-input/index.mjs +2 -0
  194. package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-input/native-select-input.directive.mjs +5 -5
  195. package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-option/index.mjs +2 -2
  196. package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-option/native-select-option.directive.mjs +3 -3
  197. package/esm2022/lib/components/forms/components/select/components/native-select/native-select.imports.mjs +8 -6
  198. package/esm2022/lib/components/forms/components/select/components/native-select/partials/native-select-option/index.mjs +2 -0
  199. package/esm2022/lib/components/forms/components/select/components/native-select/partials/native-select-option/native-select-option.component.mjs +5 -5
  200. package/esm2022/lib/components/forms/components/select/components/native-select/types/index.mjs +2 -2
  201. package/esm2022/lib/components/forms/components/select/components/select/components/select/index.mjs +2 -0
  202. package/esm2022/lib/components/forms/components/select/components/select/components/select/select.component.mjs +9 -8
  203. package/esm2022/lib/components/forms/components/select/components/select/directives/select/index.mjs +2 -2
  204. package/esm2022/lib/components/forms/components/select/components/select/directives/select/select.directive.mjs +7 -7
  205. package/esm2022/lib/components/forms/components/select/components/select/directives/select-body/index.mjs +2 -2
  206. package/esm2022/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.mjs +3 -3
  207. package/esm2022/lib/components/forms/components/select/components/select/directives/select-option/index.mjs +2 -2
  208. package/esm2022/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.mjs +3 -3
  209. package/esm2022/lib/components/forms/components/select/components/select/partials/select-body/index.mjs +2 -0
  210. package/esm2022/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.mjs +5 -5
  211. package/esm2022/lib/components/forms/components/select/components/select/partials/select-option/index.mjs +2 -0
  212. package/esm2022/lib/components/forms/components/select/components/select/partials/select-option/select-option.component.mjs +5 -5
  213. package/esm2022/lib/components/forms/components/select/components/select/select.imports.mjs +6 -5
  214. package/esm2022/lib/components/forms/components/select/components/select-field/index.mjs +2 -2
  215. package/esm2022/lib/components/forms/components/select/components/select-field/select-field.component.mjs +9 -7
  216. package/esm2022/lib/components/forms/components/select/directives/select-field/index.mjs +2 -0
  217. package/esm2022/lib/components/forms/components/select/directives/select-field/select-field.directive.mjs +3 -3
  218. package/esm2022/lib/components/forms/components/selection-list/components/selection-list-field/index.mjs +2 -0
  219. package/esm2022/lib/components/forms/components/selection-list/components/selection-list-field/selection-list-field.component.mjs +9 -6
  220. package/esm2022/lib/components/forms/components/selection-list/components/selection-list-option/index.mjs +2 -0
  221. package/esm2022/lib/components/forms/components/selection-list/components/selection-list-option/selection-list-option.component.mjs +5 -5
  222. package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-field/index.mjs +2 -2
  223. package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-field/selection-list-field.directive.mjs +5 -5
  224. package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-option/index.mjs +2 -2
  225. package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-option/selection-list-option.directive.mjs +5 -5
  226. package/esm2022/lib/components/forms/components/selection-list/selection-list.imports.mjs +3 -2
  227. package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle/index.mjs +2 -0
  228. package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle/slide-toggle.component.mjs +8 -7
  229. package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle-field/index.mjs +2 -0
  230. package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle-field/slide-toggle-field.component.mjs +8 -6
  231. package/esm2022/lib/components/forms/components/slide-toggle/directives/slide-toggle/index.mjs +2 -0
  232. package/esm2022/lib/components/forms/components/slide-toggle/directives/slide-toggle/slide-toggle.directive.mjs +5 -5
  233. package/esm2022/lib/components/forms/components/slide-toggle/slide-toggle.imports.mjs +4 -3
  234. package/esm2022/lib/components/forms/components/slider/components/slider/index.mjs +2 -0
  235. package/esm2022/lib/components/forms/components/slider/components/slider/slider.component.mjs +5 -5
  236. package/esm2022/lib/components/forms/components/slider/components/slider-field/index.mjs +2 -0
  237. package/esm2022/lib/components/forms/components/slider/components/slider-field/slider-field.component.mjs +8 -6
  238. package/esm2022/lib/components/forms/components/slider/slider.imports.mjs +4 -3
  239. package/esm2022/lib/components/forms/directives/dynamic-form-field/dynamic-form-field.directive.mjs +3 -3
  240. package/esm2022/lib/components/forms/directives/dynamic-form-field/index.mjs +2 -0
  241. package/esm2022/lib/components/forms/directives/dynamic-form-group/dynamic-form-group.directive.mjs +3 -3
  242. package/esm2022/lib/components/forms/directives/dynamic-form-group/index.mjs +2 -0
  243. package/esm2022/lib/components/forms/directives/expose-input-vars/expose-input-vars.directive.mjs +3 -3
  244. package/esm2022/lib/components/forms/directives/expose-input-vars/index.mjs +2 -2
  245. package/esm2022/lib/components/forms/directives/if-input-empty/if-input-empty.directive.mjs +3 -3
  246. package/esm2022/lib/components/forms/directives/if-input-empty/index.mjs +2 -0
  247. package/esm2022/lib/components/forms/directives/if-input-filled/if-input-filled.directive.mjs +3 -3
  248. package/esm2022/lib/components/forms/directives/if-input-filled/index.mjs +2 -0
  249. package/esm2022/lib/components/forms/directives/input/index.mjs +2 -2
  250. package/esm2022/lib/components/forms/directives/input/input.directive.mjs +3 -3
  251. package/esm2022/lib/components/forms/directives/input-prefix/index.mjs +2 -0
  252. package/esm2022/lib/components/forms/directives/input-prefix/input-prefix.directive.mjs +3 -3
  253. package/esm2022/lib/components/forms/directives/input-suffix/index.mjs +2 -0
  254. package/esm2022/lib/components/forms/directives/input-suffix/input-suffix.directive.mjs +3 -3
  255. package/esm2022/lib/components/forms/directives/native-input-ref/index.mjs +2 -2
  256. package/esm2022/lib/components/forms/directives/native-input-ref/native-input-ref.directive.mjs +3 -3
  257. package/esm2022/lib/components/forms/directives/static-form-field/index.mjs +2 -0
  258. package/esm2022/lib/components/forms/directives/static-form-field/static-form-field.directive.mjs +5 -5
  259. package/esm2022/lib/components/forms/directives/static-form-group/index.mjs +2 -0
  260. package/esm2022/lib/components/forms/directives/static-form-group/static-form-group.directive.mjs +3 -3
  261. package/esm2022/lib/components/forms/directives/writeable-input/index.mjs +2 -0
  262. package/esm2022/lib/components/forms/directives/writeable-input/writeable-input.directive.mjs +3 -3
  263. package/esm2022/lib/components/forms/public-api/index.mjs +107 -0
  264. package/esm2022/lib/components/forms/services/default-validator-errors.service.mjs +3 -3
  265. package/esm2022/lib/components/forms/services/form-field-state.service.mjs +3 -3
  266. package/esm2022/lib/components/forms/services/form-group-state.service.mjs +3 -3
  267. package/esm2022/lib/components/forms/services/index.mjs +5 -2
  268. package/esm2022/lib/components/forms/services/input-state.service.mjs +4 -4
  269. package/esm2022/lib/components/forms/types/index.mjs +2 -2
  270. package/esm2022/lib/components/forms/utils/decorated-form-field.base.mjs +3 -3
  271. package/esm2022/lib/components/forms/utils/decorated-input.base.mjs +6 -5
  272. package/esm2022/lib/components/forms/utils/index.mjs +4 -2
  273. package/esm2022/lib/components/forms/utils/input.base.mjs +6 -5
  274. package/esm2022/lib/components/icons/chevron-icon/chevron-icon.component.mjs +3 -3
  275. package/esm2022/lib/components/icons/chevron-icon/index.mjs +2 -2
  276. package/esm2022/lib/components/icons/public-api/index.mjs +3 -0
  277. package/esm2022/lib/components/masonry/components/masonry/index.mjs +2 -0
  278. package/esm2022/lib/components/masonry/components/masonry/masonry.component.mjs +10 -7
  279. package/esm2022/lib/components/masonry/masonry.imports.mjs +3 -3
  280. package/esm2022/lib/components/masonry/partials/masonry-item/index.mjs +2 -0
  281. package/esm2022/lib/components/masonry/partials/masonry-item/masonry-item.component.mjs +3 -3
  282. package/esm2022/lib/components/masonry/public-api/index.mjs +5 -0
  283. package/esm2022/lib/components/masonry/types/index.mjs +2 -0
  284. package/esm2022/lib/components/overlay/components/bottom-sheet/bottom-sheet.imports.mjs +4 -3
  285. package/esm2022/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/bottom-sheet-container.component.mjs +5 -5
  286. package/esm2022/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/index.mjs +2 -0
  287. package/esm2022/lib/components/overlay/components/bottom-sheet/constants/index.mjs +2 -2
  288. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/bottom-sheet-container-base.component.mjs +3 -3
  289. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/index.mjs +2 -0
  290. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/bottom-sheet-drag-handle.component.mjs +3 -3
  291. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/index.mjs +2 -0
  292. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-title/bottom-sheet-title.directive.mjs +3 -3
  293. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-title/index.mjs +2 -0
  294. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-base.service.mjs +4 -4
  295. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-swipe-handler.service.mjs +3 -3
  296. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet.service.mjs +5 -5
  297. package/esm2022/lib/components/overlay/components/bottom-sheet/services/index.mjs +4 -2
  298. package/esm2022/lib/components/overlay/components/bottom-sheet/types/index.mjs +2 -2
  299. package/esm2022/lib/components/overlay/components/bottom-sheet/utils/bottom-sheet-ref.mjs +1 -1
  300. package/esm2022/lib/components/overlay/components/bottom-sheet/utils/index.mjs +4 -2
  301. package/esm2022/lib/components/overlay/components/dialog/components/dialog-container/dialog-container.component.mjs +5 -5
  302. package/esm2022/lib/components/overlay/components/dialog/components/dialog-container/index.mjs +2 -0
  303. package/esm2022/lib/components/overlay/components/dialog/constants/index.mjs +2 -2
  304. package/esm2022/lib/components/overlay/components/dialog/dialog.imports.mjs +4 -3
  305. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-close/dialog-close.directive.mjs +3 -3
  306. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-close/index.mjs +2 -0
  307. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-container-base/dialog-container-base.component.mjs +3 -3
  308. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-container-base/index.mjs +2 -0
  309. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-title/dialog-title.directive.mjs +3 -3
  310. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-title/index.mjs +2 -0
  311. package/esm2022/lib/components/overlay/components/dialog/services/dialog-base.service.mjs +4 -4
  312. package/esm2022/lib/components/overlay/components/dialog/services/dialog.service.mjs +5 -5
  313. package/esm2022/lib/components/overlay/components/dialog/services/index.mjs +3 -2
  314. package/esm2022/lib/components/overlay/components/dialog/types/index.mjs +2 -2
  315. package/esm2022/lib/components/overlay/components/dialog/utils/dialog-ref.mjs +1 -1
  316. package/esm2022/lib/components/overlay/components/dialog/utils/index.mjs +4 -2
  317. package/esm2022/lib/components/overlay/components/menu/components/menu/index.mjs +2 -0
  318. package/esm2022/lib/components/overlay/components/menu/components/menu/menu.component.mjs +7 -6
  319. package/esm2022/lib/components/overlay/components/menu/components/menu-checkbox-item/index.mjs +2 -0
  320. package/esm2022/lib/components/overlay/components/menu/components/menu-checkbox-item/menu-checkbox-item.component.mjs +75 -0
  321. package/esm2022/lib/components/overlay/components/menu/components/menu-container/index.mjs +2 -0
  322. package/esm2022/lib/components/overlay/components/menu/components/menu-container/menu-container.component.mjs +5 -5
  323. package/esm2022/lib/components/overlay/components/menu/components/menu-radio-item/index.mjs +2 -0
  324. package/esm2022/lib/components/overlay/components/menu/components/menu-radio-item/menu-radio-item.component.mjs +66 -0
  325. package/esm2022/lib/components/overlay/components/menu/directives/menu-checkbox-group/index.mjs +2 -0
  326. package/esm2022/lib/components/overlay/components/menu/directives/menu-checkbox-group/menu-checkbox-group.directive.mjs +31 -0
  327. package/esm2022/lib/components/overlay/components/menu/directives/menu-group/index.mjs +2 -2
  328. package/esm2022/lib/components/overlay/components/menu/directives/menu-group/menu-group.directive.mjs +3 -3
  329. package/esm2022/lib/components/overlay/components/menu/directives/menu-group-title/index.mjs +2 -2
  330. package/esm2022/lib/components/overlay/components/menu/directives/menu-group-title/menu-group-title.directive.mjs +3 -3
  331. package/esm2022/lib/components/overlay/components/menu/directives/menu-item/index.mjs +2 -0
  332. package/esm2022/lib/components/overlay/components/menu/directives/menu-item/menu-item.directive.mjs +3 -3
  333. package/esm2022/lib/components/overlay/components/menu/directives/menu-radio-group/index.mjs +2 -0
  334. package/esm2022/lib/components/overlay/components/menu/directives/menu-radio-group/menu-radio-group.directive.mjs +45 -0
  335. package/esm2022/lib/components/overlay/components/menu/directives/menu-trigger/index.mjs +2 -2
  336. package/esm2022/lib/components/overlay/components/menu/directives/menu-trigger/menu-trigger.directive.mjs +5 -5
  337. package/esm2022/lib/components/overlay/components/menu/menu.imports.mjs +14 -3
  338. package/esm2022/lib/components/overlay/components/menu-deprecated/context-menu-trigger.mjs +6 -6
  339. package/esm2022/lib/components/overlay/components/menu-deprecated/index.mjs +17 -0
  340. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-aim.mjs +6 -6
  341. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-bar.mjs +3 -3
  342. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-base.mjs +3 -3
  343. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-group.mjs +3 -3
  344. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-item-checkbox.mjs +3 -3
  345. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-item-radio.mjs +3 -3
  346. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-item-selectable.mjs +3 -3
  347. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-item.mjs +3 -3
  348. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-module.mjs +4 -4
  349. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-stack.mjs +3 -3
  350. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-trigger-base.mjs +3 -3
  351. package/esm2022/lib/components/overlay/components/menu-deprecated/menu-trigger.mjs +3 -3
  352. package/esm2022/lib/components/overlay/components/menu-deprecated/menu.mjs +3 -3
  353. package/esm2022/lib/components/overlay/components/overlay/components/overlay-container/index.mjs +2 -0
  354. package/esm2022/lib/components/overlay/components/overlay/components/overlay-container/overlay-container.component.mjs +3 -3
  355. package/esm2022/lib/components/overlay/components/overlay/constants/index.mjs +2 -2
  356. package/esm2022/lib/components/overlay/components/overlay/overlay.imports.mjs +6 -2
  357. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-body/index.mjs +2 -0
  358. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-body/overlay-body.component.mjs +3 -3
  359. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-close/index.mjs +2 -0
  360. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-close/overlay-close.directive.mjs +3 -3
  361. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-footer/index.mjs +2 -0
  362. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-footer/overlay-footer.directive.mjs +3 -3
  363. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-header/index.mjs +2 -0
  364. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-header/overlay-header.directive.mjs +3 -3
  365. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-title/index.mjs +2 -0
  366. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-title/overlay-title.directive.mjs +3 -3
  367. package/esm2022/lib/components/overlay/components/overlay/services/index.mjs +2 -2
  368. package/esm2022/lib/components/overlay/components/overlay/services/overlay.service.mjs +5 -5
  369. package/esm2022/lib/components/overlay/components/overlay/types/index.mjs +2 -2
  370. package/esm2022/lib/components/overlay/components/overlay/utils/index.mjs +5 -2
  371. package/esm2022/lib/components/overlay/components/overlay/utils/overlay-ref.mjs +1 -1
  372. package/esm2022/lib/components/overlay/components/toggletip/components/toggletip/index.mjs +2 -0
  373. package/esm2022/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.mjs +5 -5
  374. package/esm2022/lib/components/overlay/components/toggletip/constants/index.mjs +2 -2
  375. package/esm2022/lib/components/overlay/components/toggletip/directives/toggletip/index.mjs +2 -0
  376. package/esm2022/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.mjs +5 -5
  377. package/esm2022/lib/components/overlay/components/toggletip/partials/toggletip-close/index.mjs +2 -0
  378. package/esm2022/lib/components/overlay/components/toggletip/partials/toggletip-close/toggletip-close.directive.mjs +25 -0
  379. package/esm2022/lib/components/overlay/components/toggletip/toggletip.imports.mjs +2 -2
  380. package/esm2022/lib/components/overlay/components/toggletip/types/index.mjs +2 -2
  381. package/esm2022/lib/components/overlay/components/toggletip/utils/index.mjs +3 -2
  382. package/esm2022/lib/components/overlay/components/tooltip/components/tooltip/index.mjs +2 -0
  383. package/esm2022/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.mjs +5 -5
  384. package/esm2022/lib/components/overlay/components/tooltip/constants/index.mjs +2 -2
  385. package/esm2022/lib/components/overlay/components/tooltip/directives/tooltip/index.mjs +2 -0
  386. package/esm2022/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.mjs +5 -5
  387. package/esm2022/lib/components/overlay/components/tooltip/tooltip.imports.mjs +2 -2
  388. package/esm2022/lib/components/overlay/components/tooltip/types/index.mjs +2 -2
  389. package/esm2022/lib/components/overlay/components/tooltip/utils/index.mjs +3 -2
  390. package/esm2022/lib/components/overlay/directives/dynamic-overlay-title/dynamic-overlay-title.directive.mjs +8 -5
  391. package/esm2022/lib/components/overlay/directives/dynamic-overlay-title/index.mjs +2 -0
  392. package/esm2022/lib/components/overlay/directives/overlay-close-auto-blocker/index.mjs +2 -2
  393. package/esm2022/lib/components/overlay/directives/overlay-close-auto-blocker/overlay-close-auto-blocker.directive.mjs +3 -3
  394. package/esm2022/lib/components/overlay/public-api/index.mjs +60 -0
  395. package/esm2022/lib/components/overlay/services/dynamic-overlay.service.mjs +6 -5
  396. package/esm2022/lib/components/overlay/services/index.mjs +2 -0
  397. package/esm2022/lib/components/overlay/types/dynamic-overlay.types.mjs +1 -1
  398. package/esm2022/lib/components/overlay/types/index.mjs +2 -2
  399. package/esm2022/lib/components/overlay/utils/index.mjs +2 -0
  400. package/esm2022/lib/components/overlay/utils/overlay-dismiss-checker.util.mjs +2 -2
  401. package/esm2022/lib/components/pagination/components/pagination/index.mjs +2 -0
  402. package/esm2022/lib/components/pagination/components/pagination/pagination.component.mjs +5 -5
  403. package/esm2022/lib/components/pagination/pagination.imports.mjs +2 -2
  404. package/esm2022/lib/components/pagination/partials/pagination-link/index.mjs +2 -0
  405. package/esm2022/lib/components/pagination/partials/pagination-link/pagination-link.directive.mjs +3 -3
  406. package/esm2022/lib/components/pagination/public-api/index.mjs +7 -0
  407. package/esm2022/lib/components/pagination/services/index.mjs +2 -2
  408. package/esm2022/lib/components/pagination/services/pagination-head.service.mjs +3 -3
  409. package/esm2022/lib/components/pagination/types/index.mjs +2 -2
  410. package/esm2022/lib/components/pagination/utils/index.mjs +2 -2
  411. package/esm2022/lib/components/picture/index.mjs +5 -0
  412. package/esm2022/lib/components/picture/picture-data.directive.mjs +3 -3
  413. package/esm2022/lib/components/picture/picture.component.mjs +5 -5
  414. package/esm2022/lib/components/picture/pipes/normalize-source/normalize-source.pipe.mjs +3 -3
  415. package/esm2022/lib/components/picture/public-api/index.mjs +3 -0
  416. package/esm2022/lib/components/progress-spinner/index.mjs +2 -0
  417. package/esm2022/lib/components/progress-spinner/progress-spinner.component.mjs +3 -3
  418. package/esm2022/lib/components/query-error/components/query-error/index.mjs +2 -0
  419. package/esm2022/lib/components/query-error/components/query-error/query-error.component.mjs +5 -5
  420. package/esm2022/lib/components/query-error/directives/query-error/index.mjs +2 -0
  421. package/esm2022/lib/components/query-error/directives/query-error/query-error.directive.mjs +10 -5
  422. package/esm2022/lib/components/query-error/public-api/index.mjs +4 -0
  423. package/esm2022/lib/components/query-error/types/index.mjs +2 -2
  424. package/esm2022/lib/components/scrollable/components/scrollable/index.mjs +2 -0
  425. package/esm2022/lib/components/scrollable/components/scrollable/scrollable.component.mjs +30 -13
  426. package/esm2022/lib/components/scrollable/directives/scrollable-ignore-child/index.mjs +2 -0
  427. package/esm2022/lib/components/scrollable/directives/scrollable-ignore-child/scrollable-ignore-child.directive.mjs +3 -3
  428. package/esm2022/lib/components/scrollable/directives/scrollable-is-active-child/index.mjs +2 -0
  429. package/esm2022/lib/components/scrollable/directives/scrollable-is-active-child/scrollable-is-active-child.directive.mjs +3 -3
  430. package/esm2022/lib/components/scrollable/public-api/index.mjs +6 -0
  431. package/esm2022/lib/components/scrollable/scrollable.imports.mjs +4 -3
  432. package/esm2022/lib/components/scrollable/types/index.mjs +2 -2
  433. package/esm2022/lib/components/skeleton/components/skeleton/index.mjs +2 -0
  434. package/esm2022/lib/components/skeleton/components/skeleton/skeleton.component.mjs +3 -3
  435. package/esm2022/lib/components/skeleton/partials/skeleton-item/index.mjs +2 -0
  436. package/esm2022/lib/components/skeleton/partials/skeleton-item/skeleton-item.component.mjs +3 -3
  437. package/esm2022/lib/components/skeleton/public-api/index.mjs +4 -0
  438. package/esm2022/lib/components/skeleton/skeleton.imports.mjs +3 -3
  439. package/esm2022/lib/components/sort/components/sort-header/index.mjs +3 -0
  440. package/esm2022/lib/components/sort/components/sort-header/sort-header.component.mjs +7 -7
  441. package/esm2022/lib/components/sort/partials/sort/index.mjs +3 -0
  442. package/esm2022/lib/components/sort/partials/sort/sort.directive.mjs +3 -3
  443. package/esm2022/lib/components/sort/public-api/index.mjs +6 -0
  444. package/esm2022/lib/components/sort/services/index.mjs +2 -2
  445. package/esm2022/lib/components/sort/services/sort-header-intl.mjs +3 -3
  446. package/esm2022/lib/components/sort/sort.imports.mjs +3 -3
  447. package/esm2022/lib/components/sort/types/index.mjs +2 -2
  448. package/esm2022/lib/components/table/components/table/index.mjs +2 -0
  449. package/esm2022/lib/components/table/components/table/table.component.mjs +6 -5
  450. package/esm2022/lib/components/table/constants/index.mjs +2 -2
  451. package/esm2022/lib/components/table/partials/cells/cell/cell.directive.mjs +3 -3
  452. package/esm2022/lib/components/table/partials/cells/cell/index.mjs +2 -2
  453. package/esm2022/lib/components/table/partials/cells/cell-def/cell-def.directive.mjs +3 -3
  454. package/esm2022/lib/components/table/partials/cells/cell-def/index.mjs +2 -2
  455. package/esm2022/lib/components/table/partials/cells/column-def/column-def.directive.mjs +3 -3
  456. package/esm2022/lib/components/table/partials/cells/column-def/index.mjs +2 -2
  457. package/esm2022/lib/components/table/partials/cells/footer-cell/footer-cell.directive.mjs +3 -3
  458. package/esm2022/lib/components/table/partials/cells/footer-cell/index.mjs +2 -0
  459. package/esm2022/lib/components/table/partials/cells/footer-cell-def/footer-cell-def.directive.mjs +3 -3
  460. package/esm2022/lib/components/table/partials/cells/footer-cell-def/index.mjs +2 -0
  461. package/esm2022/lib/components/table/partials/cells/header-cell/header-cell.directive.mjs +3 -3
  462. package/esm2022/lib/components/table/partials/cells/header-cell/index.mjs +2 -2
  463. package/esm2022/lib/components/table/partials/cells/header-cell-def/header-cell-def.directive.mjs +3 -3
  464. package/esm2022/lib/components/table/partials/cells/header-cell-def/index.mjs +2 -2
  465. package/esm2022/lib/components/table/partials/cells/text-column/index.mjs +2 -0
  466. package/esm2022/lib/components/table/partials/cells/text-column/text-column.component.mjs +3 -3
  467. package/esm2022/lib/components/table/partials/rows/footer-row/footer-row.component.mjs +3 -3
  468. package/esm2022/lib/components/table/partials/rows/footer-row/index.mjs +2 -0
  469. package/esm2022/lib/components/table/partials/rows/footer-row-def/footer-row-def.directive.mjs +3 -3
  470. package/esm2022/lib/components/table/partials/rows/footer-row-def/index.mjs +2 -0
  471. package/esm2022/lib/components/table/partials/rows/header-row/header-row.component.mjs +3 -3
  472. package/esm2022/lib/components/table/partials/rows/header-row/index.mjs +2 -0
  473. package/esm2022/lib/components/table/partials/rows/header-row-def/header-row-def.directive.mjs +3 -3
  474. package/esm2022/lib/components/table/partials/rows/header-row-def/index.mjs +2 -0
  475. package/esm2022/lib/components/table/partials/rows/no-data-row/index.mjs +2 -0
  476. package/esm2022/lib/components/table/partials/rows/no-data-row/no-data-row.directive.mjs +3 -3
  477. package/esm2022/lib/components/table/partials/rows/recycle-rows/index.mjs +2 -0
  478. package/esm2022/lib/components/table/partials/rows/recycle-rows/recycle-rows.directive.mjs +3 -3
  479. package/esm2022/lib/components/table/partials/rows/row/index.mjs +2 -0
  480. package/esm2022/lib/components/table/partials/rows/row/row.component.mjs +3 -3
  481. package/esm2022/lib/components/table/partials/rows/row-def/index.mjs +2 -0
  482. package/esm2022/lib/components/table/partials/rows/row-def/row-def.directive.mjs +3 -3
  483. package/esm2022/lib/components/table/partials/table-busy/index.mjs +2 -0
  484. package/esm2022/lib/components/table/partials/table-busy/table-busy.directive.mjs +3 -3
  485. package/esm2022/lib/components/table/partials/table-busy-outlet/index.mjs +2 -0
  486. package/esm2022/lib/components/table/partials/table-busy-outlet/table-busy-outlet.directive.mjs +3 -3
  487. package/esm2022/lib/components/table/public-api/index.mjs +24 -0
  488. package/esm2022/lib/components/table/table.imports.mjs +19 -3
  489. package/esm2022/lib/components/table/types/index.mjs +2 -2
  490. package/esm2022/lib/components/table/utils/index.mjs +2 -0
  491. package/esm2022/lib/components/table/utils/table-data-source.mjs +3 -3
  492. package/esm2022/lib/components/tabs/animations/index.mjs +2 -2
  493. package/esm2022/lib/components/tabs/components/inline-tabs/index.mjs +2 -0
  494. package/esm2022/lib/components/tabs/components/inline-tabs/inline-tabs.component.mjs +8 -5
  495. package/esm2022/lib/components/tabs/components/nav-tabs/index.mjs +2 -0
  496. package/esm2022/lib/components/tabs/components/nav-tabs/nav-tabs.component.mjs +5 -5
  497. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab/index.mjs +2 -0
  498. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab/inline-tab.component.mjs +3 -3
  499. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body/index.mjs +2 -0
  500. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body/inline-tab-body.component.mjs +3 -3
  501. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body-host/index.mjs +2 -2
  502. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body-host/inline-tab-body-host.directive.mjs +3 -3
  503. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-content/index.mjs +2 -2
  504. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-content/inline-tab-content.directive.mjs +3 -3
  505. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-header/index.mjs +2 -0
  506. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-header/inline-tab-header.component.mjs +5 -5
  507. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label/index.mjs +2 -2
  508. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label/inline-tab-label.directive.mjs +3 -3
  509. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/index.mjs +2 -2
  510. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/inline-tab-label-wrapper.directive.mjs +3 -3
  511. package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tab-link/index.mjs +2 -2
  512. package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tab-link/nav-tab-link.directive.mjs +3 -3
  513. package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/index.mjs +2 -2
  514. package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/nav-tabs-outlet.component.mjs +3 -3
  515. package/esm2022/lib/components/tabs/public-api/index.mjs +16 -0
  516. package/esm2022/lib/components/tabs/tab.imports.mjs +12 -3
  517. package/esm2022/lib/components/tabs/types/index.mjs +2 -0
  518. package/esm2022/lib/components/tabs/utils/active-tab-underline.util.mjs +3 -3
  519. package/esm2022/lib/components/tabs/utils/index.mjs +3 -2
  520. package/esm2022/lib/components/tabs/utils/paginated-tab-header.directive.mjs +4 -4
  521. package/esm2022/lib/services/index.mjs +2 -2
  522. package/esm2022/lib/services/swipe-handler.service.mjs +3 -3
  523. package/esm2022/lib/types/index.mjs +2 -2
  524. package/esm2022/lib/utils/index.mjs +2 -0
  525. package/fesm2022/ethlete-cdk.mjs +11978 -11773
  526. package/fesm2022/ethlete-cdk.mjs.map +1 -1
  527. package/index.d.ts +20 -1
  528. package/lib/components/accordion/accordion.imports.d.ts +6 -2
  529. package/lib/components/accordion/components/accordion/accordion.component.d.ts +2 -1
  530. package/lib/components/accordion/components/accordion/index.d.ts +3 -1
  531. package/lib/components/accordion/public-api/index.d.ts +7 -0
  532. package/lib/components/bracket/bracket.imports.d.ts +3 -2
  533. package/lib/components/bracket/constants/bracket.constants.d.ts +1 -1
  534. package/lib/components/bracket/constants/index.d.ts +1 -1
  535. package/lib/components/bracket/directives/bracket-match/index.d.ts +1 -1
  536. package/lib/components/bracket/directives/bracket-round/index.d.ts +1 -1
  537. package/lib/components/bracket/partials/bracket-match/bracket-match.component.d.ts +1 -1
  538. package/lib/components/bracket/partials/bracket-match/index.d.ts +1 -1
  539. package/lib/components/bracket/partials/bracket-round-header/bracket-round-header.component.d.ts +1 -1
  540. package/lib/components/bracket/partials/bracket-round-header/index.d.ts +1 -1
  541. package/lib/components/bracket/public-api/index.d.ts +9 -0
  542. package/lib/components/bracket/types/index.d.ts +2 -1
  543. package/lib/components/bracket/utils/index.d.ts +2 -1
  544. package/lib/components/button/button.imports.d.ts +2 -1
  545. package/lib/components/button/components/button/button.component.d.ts +1 -1
  546. package/lib/components/button/components/query-button/query-button.component.d.ts +1 -1
  547. package/lib/components/button/directives/button/index.d.ts +1 -1
  548. package/lib/components/button/public-api/index.d.ts +5 -0
  549. package/lib/components/filter/filter-overlay/constants/index.d.ts +1 -1
  550. package/lib/components/filter/filter-overlay/filter-overlay.imports.d.ts +5 -2
  551. package/lib/components/filter/filter-overlay/services/filter-overlay.service.d.ts +1 -1
  552. package/lib/components/filter/filter-overlay/services/index.d.ts +1 -1
  553. package/lib/components/filter/filter-overlay/types/filter-overlay-config.types.d.ts +1 -1
  554. package/lib/components/filter/filter-overlay/types/index.d.ts +1 -1
  555. package/lib/components/filter/filter-overlay/utils/filter-overlay-ref.d.ts +1 -1
  556. package/lib/components/filter/filter-overlay/utils/index.d.ts +1 -1
  557. package/lib/components/filter/public-api/index.d.ts +16 -0
  558. package/lib/components/filter/rich-filter/components/rich-filter-host/rich-filter-host.component.d.ts +4 -1
  559. package/lib/components/filter/rich-filter/rich-filter.imports.d.ts +5 -2
  560. package/lib/components/forms/components/checkbox/checkbox.imports.d.ts +5 -3
  561. package/lib/components/forms/components/checkbox/components/checkbox/checkbox.component.d.ts +1 -1
  562. package/lib/components/forms/components/checkbox/directives/checkbox/checkbox.directive.d.ts +1 -1
  563. package/lib/components/forms/components/checkbox/directives/checkbox/index.d.ts +1 -1
  564. package/lib/components/forms/components/checkbox/directives/checkbox-group/index.d.ts +1 -1
  565. package/lib/components/forms/components/checkbox/directives/checkbox-group-control/checkbox-group-control.directive.d.ts +1 -1
  566. package/lib/components/forms/components/input/components/date-input/date-input.component.d.ts +1 -1
  567. package/lib/components/forms/components/input/components/date-time-input/date-time-input.component.d.ts +1 -1
  568. package/lib/components/forms/components/input/components/email-input/email-input.component.d.ts +1 -1
  569. package/lib/components/forms/components/input/components/number-input/number-input.component.d.ts +1 -1
  570. package/lib/components/forms/components/input/components/password-input/password-input.component.d.ts +1 -1
  571. package/lib/components/forms/components/input/components/search-input/search-input.component.d.ts +1 -1
  572. package/lib/components/forms/components/input/components/text-input/text-input.component.d.ts +1 -1
  573. package/lib/components/forms/components/input/directives/date-input/date-input.directive.d.ts +1 -1
  574. package/lib/components/forms/components/input/directives/date-time-input/date-time-input.directive.d.ts +1 -1
  575. package/lib/components/forms/components/input/directives/email-input/email-input.directive.d.ts +1 -1
  576. package/lib/components/forms/components/input/directives/if-supports-show-picker/if-supports-show-picker.directive.d.ts +1 -1
  577. package/lib/components/forms/components/input/directives/number-input/number-input.directive.d.ts +1 -1
  578. package/lib/components/forms/components/input/directives/password-input/password-input.directive.d.ts +1 -1
  579. package/lib/components/forms/components/input/directives/search-input/search-input.directive.d.ts +1 -1
  580. package/lib/components/forms/components/input/directives/show-picker-trigger/show-picker-trigger.directive.d.ts +1 -1
  581. package/lib/components/forms/components/input/directives/text-input/text-input.directive.d.ts +1 -1
  582. package/lib/components/forms/components/input/directives/textarea-input/index.d.ts +1 -1
  583. package/lib/components/forms/components/input/directives/textarea-input/textarea-input.directive.d.ts +1 -1
  584. package/lib/components/forms/components/input/input.imports.d.ts +18 -5
  585. package/lib/components/forms/components/input/partials/password-input-toggle/password-input-toggle.component.d.ts +2 -2
  586. package/lib/components/forms/components/input/partials/search-input-clear/search-input-clear.component.d.ts +2 -2
  587. package/lib/components/forms/components/label/label.imports.d.ts +2 -2
  588. package/lib/components/forms/components/radio/components/radio/radio.component.d.ts +2 -2
  589. package/lib/components/forms/components/radio/directives/radio/index.d.ts +1 -1
  590. package/lib/components/forms/components/radio/directives/radio/radio.directive.d.ts +1 -1
  591. package/lib/components/forms/components/radio/radio.imports.d.ts +4 -2
  592. package/lib/components/forms/components/radio/types/index.d.ts +1 -1
  593. package/lib/components/forms/components/segmented-button/components/segmented-button/index.d.ts +1 -1
  594. package/lib/components/forms/components/segmented-button/components/segmented-button/segmented-button.component.d.ts +2 -2
  595. package/lib/components/forms/components/segmented-button/components/segmented-button-field/index.d.ts +1 -1
  596. package/lib/components/forms/components/segmented-button/components/segmented-button-group/index.d.ts +1 -1
  597. package/lib/components/forms/components/segmented-button/directives/segmented-button/index.d.ts +1 -1
  598. package/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.d.ts +1 -1
  599. package/lib/components/forms/components/segmented-button/segmented-button.imports.d.ts +3 -1
  600. package/lib/components/forms/components/select/components/combobox/combobox.imports.d.ts +9 -4
  601. package/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.d.ts +1 -1
  602. package/lib/components/forms/components/select/components/combobox/constants/index.d.ts +1 -1
  603. package/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.d.ts +1 -1
  604. package/lib/components/forms/components/select/components/combobox/directives/combobox-body-empty-template/index.d.ts +1 -1
  605. package/lib/components/forms/components/select/components/combobox/directives/combobox-body-error-template/index.d.ts +1 -1
  606. package/lib/components/forms/components/select/components/combobox/directives/combobox-body-loading-template/index.d.ts +1 -1
  607. package/lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/index.d.ts +1 -1
  608. package/lib/components/forms/components/select/components/combobox/directives/combobox-option-template/index.d.ts +1 -1
  609. package/lib/components/forms/components/select/components/combobox/directives/combobox-selected-option-template/index.d.ts +1 -1
  610. package/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.d.ts +2 -2
  611. package/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.d.ts +2 -2
  612. package/lib/components/forms/components/select/components/combobox/partials/combobox-option/index.d.ts +1 -1
  613. package/lib/components/forms/components/select/components/combobox/types/index.d.ts +1 -1
  614. package/lib/components/forms/components/select/components/native-select/components/native-select/native-select.component.d.ts +1 -1
  615. package/lib/components/forms/components/select/components/native-select/directives/native-select-input/native-select-input.directive.d.ts +2 -2
  616. package/lib/components/forms/components/select/components/native-select/directives/native-select-option/index.d.ts +1 -1
  617. package/lib/components/forms/components/select/components/native-select/native-select.imports.d.ts +7 -5
  618. package/lib/components/forms/components/select/components/native-select/partials/native-select-option/native-select-option.component.d.ts +1 -1
  619. package/lib/components/forms/components/select/components/native-select/types/index.d.ts +1 -1
  620. package/lib/components/forms/components/select/components/select/components/select/select.component.d.ts +2 -2
  621. package/lib/components/forms/components/select/components/select/directives/select/index.d.ts +1 -1
  622. package/lib/components/forms/components/select/components/select/directives/select/select.directive.d.ts +1 -1
  623. package/lib/components/forms/components/select/components/select/directives/select-body/index.d.ts +1 -1
  624. package/lib/components/forms/components/select/components/select/directives/select-option/index.d.ts +1 -1
  625. package/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.d.ts +1 -1
  626. package/lib/components/forms/components/select/components/select/partials/select-option/select-option.component.d.ts +1 -1
  627. package/lib/components/forms/components/select/components/select/select.imports.d.ts +5 -4
  628. package/lib/components/forms/components/select/components/select-field/index.d.ts +1 -1
  629. package/lib/components/forms/components/selection-list/directives/selection-list-field/index.d.ts +1 -1
  630. package/lib/components/forms/components/selection-list/directives/selection-list-field/selection-list-field.directive.d.ts +1 -1
  631. package/lib/components/forms/components/selection-list/directives/selection-list-option/index.d.ts +1 -1
  632. package/lib/components/forms/components/selection-list/directives/selection-list-option/selection-list-option.directive.d.ts +1 -1
  633. package/lib/components/forms/components/selection-list/selection-list.imports.d.ts +2 -1
  634. package/lib/components/forms/components/slide-toggle/components/slide-toggle/slide-toggle.component.d.ts +1 -1
  635. package/lib/components/forms/components/slide-toggle/directives/slide-toggle/slide-toggle.directive.d.ts +1 -1
  636. package/lib/components/forms/components/slide-toggle/slide-toggle.imports.d.ts +3 -2
  637. package/lib/components/forms/components/slider/components/slider/slider.component.d.ts +1 -1
  638. package/lib/components/forms/components/slider/slider.imports.d.ts +3 -2
  639. package/lib/components/forms/directives/expose-input-vars/index.d.ts +1 -1
  640. package/lib/components/forms/directives/input/index.d.ts +1 -1
  641. package/lib/components/forms/directives/input/input.directive.d.ts +6 -6
  642. package/lib/components/forms/directives/native-input-ref/index.d.ts +1 -1
  643. package/lib/components/forms/public-api/index.d.ts +106 -0
  644. package/lib/components/forms/services/index.d.ts +4 -1
  645. package/lib/components/forms/services/input-state.service.d.ts +1 -1
  646. package/lib/components/forms/types/index.d.ts +1 -1
  647. package/lib/components/forms/utils/decorated-input.base.d.ts +2 -1
  648. package/lib/components/forms/utils/index.d.ts +3 -1
  649. package/lib/components/forms/utils/input.base.d.ts +2 -2
  650. package/lib/components/icons/chevron-icon/index.d.ts +1 -1
  651. package/lib/components/icons/public-api/index.d.ts +2 -0
  652. package/lib/components/masonry/masonry.imports.d.ts +2 -2
  653. package/lib/components/masonry/public-api/index.d.ts +4 -0
  654. package/lib/components/overlay/components/bottom-sheet/bottom-sheet.imports.d.ts +5 -4
  655. package/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/bottom-sheet-container.component.d.ts +1 -1
  656. package/lib/components/overlay/components/bottom-sheet/constants/index.d.ts +1 -1
  657. package/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-base.service.d.ts +1 -1
  658. package/lib/components/overlay/components/bottom-sheet/services/bottom-sheet.service.d.ts +1 -1
  659. package/lib/components/overlay/components/bottom-sheet/services/index.d.ts +3 -1
  660. package/lib/components/overlay/components/bottom-sheet/types/index.d.ts +1 -1
  661. package/lib/components/overlay/components/bottom-sheet/utils/bottom-sheet-ref.d.ts +1 -1
  662. package/lib/components/overlay/components/bottom-sheet/utils/index.d.ts +3 -1
  663. package/lib/components/overlay/components/dialog/components/dialog-container/dialog-container.component.d.ts +1 -1
  664. package/lib/components/overlay/components/dialog/constants/index.d.ts +1 -1
  665. package/lib/components/overlay/components/dialog/dialog.imports.d.ts +3 -2
  666. package/lib/components/overlay/components/dialog/services/dialog-base.service.d.ts +1 -1
  667. package/lib/components/overlay/components/dialog/services/dialog.service.d.ts +1 -1
  668. package/lib/components/overlay/components/dialog/services/index.d.ts +2 -1
  669. package/lib/components/overlay/components/dialog/types/index.d.ts +1 -1
  670. package/lib/components/overlay/components/dialog/utils/dialog-ref.d.ts +1 -1
  671. package/lib/components/overlay/components/dialog/utils/index.d.ts +3 -1
  672. package/lib/components/overlay/components/menu/components/menu/menu.component.d.ts +1 -1
  673. package/lib/components/overlay/components/menu/components/menu-checkbox-item/index.d.ts +1 -0
  674. package/lib/components/overlay/components/menu/components/menu-checkbox-item/menu-checkbox-item.component.d.ts +27 -0
  675. package/lib/components/overlay/components/menu/components/menu-container/menu-container.component.d.ts +1 -1
  676. package/lib/components/overlay/components/menu/components/menu-radio-item/index.d.ts +1 -0
  677. package/lib/components/overlay/components/menu/components/menu-radio-item/menu-radio-item.component.d.ts +25 -0
  678. package/lib/components/overlay/components/menu/directives/menu-checkbox-group/index.d.ts +1 -0
  679. package/lib/components/overlay/components/menu/directives/menu-checkbox-group/menu-checkbox-group.directive.d.ts +9 -0
  680. package/lib/components/overlay/components/menu/directives/menu-group/index.d.ts +1 -1
  681. package/lib/components/overlay/components/menu/directives/menu-group-title/index.d.ts +1 -1
  682. package/lib/components/overlay/components/menu/directives/menu-radio-group/index.d.ts +1 -0
  683. package/lib/components/overlay/components/menu/directives/menu-radio-group/menu-radio-group.directive.d.ts +12 -0
  684. package/lib/components/overlay/components/menu/directives/menu-trigger/index.d.ts +1 -1
  685. package/lib/components/overlay/components/menu/directives/menu-trigger/menu-trigger.directive.d.ts +2 -1
  686. package/lib/components/overlay/components/menu/menu.imports.d.ts +10 -3
  687. package/lib/components/overlay/components/overlay/constants/index.d.ts +1 -1
  688. package/lib/components/overlay/components/overlay/overlay.imports.d.ts +11 -7
  689. package/lib/components/overlay/components/overlay/services/index.d.ts +1 -1
  690. package/lib/components/overlay/components/overlay/types/index.d.ts +1 -1
  691. package/lib/components/overlay/components/overlay/utils/index.d.ts +4 -1
  692. package/lib/components/overlay/components/overlay/utils/overlay-ref.d.ts +1 -1
  693. package/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.d.ts +1 -1
  694. package/lib/components/overlay/components/toggletip/constants/index.d.ts +1 -1
  695. package/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.d.ts +1 -1
  696. package/lib/components/overlay/components/toggletip/partials/toggletip-close/index.d.ts +1 -0
  697. package/lib/components/overlay/components/toggletip/partials/toggletip-close/toggletip-close.directive.d.ts +7 -0
  698. package/lib/components/overlay/components/toggletip/toggletip.imports.d.ts +1 -1
  699. package/lib/components/overlay/components/toggletip/types/index.d.ts +1 -1
  700. package/lib/components/overlay/components/toggletip/utils/index.d.ts +2 -1
  701. package/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.d.ts +1 -1
  702. package/lib/components/overlay/components/tooltip/constants/index.d.ts +1 -1
  703. package/lib/components/overlay/components/tooltip/tooltip.imports.d.ts +1 -1
  704. package/lib/components/overlay/components/tooltip/types/index.d.ts +1 -1
  705. package/lib/components/overlay/components/tooltip/utils/index.d.ts +2 -1
  706. package/lib/components/overlay/directives/overlay-close-auto-blocker/index.d.ts +1 -1
  707. package/lib/components/overlay/public-api/index.d.ts +59 -0
  708. package/lib/components/overlay/types/dynamic-overlay.types.d.ts +4 -1
  709. package/lib/components/overlay/types/index.d.ts +1 -1
  710. package/lib/components/pagination/pagination.imports.d.ts +1 -1
  711. package/lib/components/pagination/public-api/index.d.ts +6 -0
  712. package/lib/components/pagination/services/index.d.ts +1 -1
  713. package/lib/components/pagination/types/index.d.ts +1 -1
  714. package/lib/components/pagination/utils/index.d.ts +1 -1
  715. package/lib/components/picture/public-api/index.d.ts +2 -0
  716. package/lib/components/query-error/components/query-error/query-error.component.d.ts +1 -1
  717. package/lib/components/query-error/public-api/index.d.ts +3 -0
  718. package/lib/components/query-error/types/index.d.ts +1 -1
  719. package/lib/components/scrollable/components/scrollable/scrollable.component.d.ts +10 -1
  720. package/lib/components/scrollable/public-api/index.d.ts +5 -0
  721. package/lib/components/scrollable/scrollable.imports.d.ts +3 -2
  722. package/lib/components/scrollable/types/index.d.ts +1 -1
  723. package/lib/components/skeleton/public-api/index.d.ts +3 -0
  724. package/lib/components/skeleton/skeleton.imports.d.ts +2 -2
  725. package/lib/components/sort/components/sort-header/sort-header.component.d.ts +1 -1
  726. package/lib/components/sort/public-api/index.d.ts +5 -0
  727. package/lib/components/sort/services/index.d.ts +1 -1
  728. package/lib/components/sort/sort.imports.d.ts +2 -2
  729. package/lib/components/sort/types/index.d.ts +1 -1
  730. package/lib/components/table/components/table/table.component.d.ts +2 -1
  731. package/lib/components/table/constants/index.d.ts +1 -1
  732. package/lib/components/table/partials/cells/cell/index.d.ts +1 -1
  733. package/lib/components/table/partials/cells/cell-def/index.d.ts +1 -1
  734. package/lib/components/table/partials/cells/column-def/index.d.ts +1 -1
  735. package/lib/components/table/partials/cells/header-cell/index.d.ts +1 -1
  736. package/lib/components/table/partials/cells/header-cell-def/index.d.ts +1 -1
  737. package/lib/components/table/public-api/index.d.ts +23 -0
  738. package/lib/components/table/table.imports.d.ts +18 -2
  739. package/lib/components/table/types/index.d.ts +1 -1
  740. package/lib/components/table/utils/table-data-source.d.ts +2 -2
  741. package/lib/components/tabs/animations/index.d.ts +1 -1
  742. package/lib/components/tabs/components/inline-tabs/inline-tabs.component.d.ts +1 -1
  743. package/lib/components/tabs/components/nav-tabs/nav-tabs.component.d.ts +1 -1
  744. package/lib/components/tabs/partials/inline-tabs/inline-tab-body-host/index.d.ts +1 -1
  745. package/lib/components/tabs/partials/inline-tabs/inline-tab-content/index.d.ts +1 -1
  746. package/lib/components/tabs/partials/inline-tabs/inline-tab-header/inline-tab-header.component.d.ts +1 -1
  747. package/lib/components/tabs/partials/inline-tabs/inline-tab-label/index.d.ts +1 -1
  748. package/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/index.d.ts +1 -1
  749. package/lib/components/tabs/partials/nav-tabs/nav-tab-link/index.d.ts +1 -1
  750. package/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/index.d.ts +1 -1
  751. package/lib/components/tabs/public-api/index.d.ts +15 -0
  752. package/lib/components/tabs/tab.imports.d.ts +11 -2
  753. package/lib/components/tabs/utils/index.d.ts +2 -1
  754. package/lib/components/tabs/utils/paginated-tab-header.directive.d.ts +1 -1
  755. package/lib/services/index.d.ts +1 -1
  756. package/lib/types/index.d.ts +1 -1
  757. package/package.json +7 -7
  758. package/esm2022/lib/components/accordion/components/accordion/public-api.mjs +0 -4
  759. package/esm2022/lib/components/accordion/components/accordion-group/public-api.mjs +0 -2
  760. package/esm2022/lib/components/accordion/components/index.mjs +0 -2
  761. package/esm2022/lib/components/accordion/components/public-api.mjs +0 -3
  762. package/esm2022/lib/components/accordion/partials/accordion-hint/public-api.mjs +0 -2
  763. package/esm2022/lib/components/accordion/partials/accordion-hint-wrapper/public-api.mjs +0 -3
  764. package/esm2022/lib/components/accordion/partials/accordion-label/public-api.mjs +0 -2
  765. package/esm2022/lib/components/accordion/partials/accordion-label-wrapper/public-api.mjs +0 -3
  766. package/esm2022/lib/components/accordion/partials/index.mjs +0 -2
  767. package/esm2022/lib/components/accordion/partials/public-api.mjs +0 -5
  768. package/esm2022/lib/components/accordion/public-api.mjs +0 -4
  769. package/esm2022/lib/components/bracket/components/bracket/public-api.mjs +0 -3
  770. package/esm2022/lib/components/bracket/components/index.mjs +0 -2
  771. package/esm2022/lib/components/bracket/components/public-api.mjs +0 -2
  772. package/esm2022/lib/components/bracket/constants/public-api.mjs +0 -2
  773. package/esm2022/lib/components/bracket/directives/bracket-match/public-api.mjs +0 -2
  774. package/esm2022/lib/components/bracket/directives/bracket-round/public-api.mjs +0 -2
  775. package/esm2022/lib/components/bracket/directives/index.mjs +0 -2
  776. package/esm2022/lib/components/bracket/directives/public-api.mjs +0 -3
  777. package/esm2022/lib/components/bracket/partials/bracket-match/public-api.mjs +0 -2
  778. package/esm2022/lib/components/bracket/partials/bracket-round-header/public-api.mjs +0 -2
  779. package/esm2022/lib/components/bracket/partials/index.mjs +0 -2
  780. package/esm2022/lib/components/bracket/partials/public-api.mjs +0 -3
  781. package/esm2022/lib/components/bracket/public-api.mjs +0 -8
  782. package/esm2022/lib/components/bracket/types/public-api.mjs +0 -3
  783. package/esm2022/lib/components/bracket/utils/public-api.mjs +0 -3
  784. package/esm2022/lib/components/button/components/button/public-api.mjs +0 -2
  785. package/esm2022/lib/components/button/components/index.mjs +0 -2
  786. package/esm2022/lib/components/button/components/public-api.mjs +0 -3
  787. package/esm2022/lib/components/button/components/query-button/public-api.mjs +0 -2
  788. package/esm2022/lib/components/button/directives/button/public-api.mjs +0 -2
  789. package/esm2022/lib/components/button/directives/index.mjs +0 -2
  790. package/esm2022/lib/components/button/directives/public-api.mjs +0 -3
  791. package/esm2022/lib/components/button/directives/query-button/public-api.mjs +0 -2
  792. package/esm2022/lib/components/button/public-api.mjs +0 -4
  793. package/esm2022/lib/components/filter/filter-overlay/components/filter-overlay-page-outlet/public-api.mjs +0 -2
  794. package/esm2022/lib/components/filter/filter-overlay/components/index.mjs +0 -2
  795. package/esm2022/lib/components/filter/filter-overlay/components/public-api.mjs +0 -2
  796. package/esm2022/lib/components/filter/filter-overlay/constants/public-api.mjs +0 -2
  797. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-back-or-close/public-api.mjs +0 -2
  798. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-link/public-api.mjs +0 -2
  799. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-reset/public-api.mjs +0 -2
  800. package/esm2022/lib/components/filter/filter-overlay/directives/filter-overlay-submit/public-api.mjs +0 -2
  801. package/esm2022/lib/components/filter/filter-overlay/directives/index.mjs +0 -2
  802. package/esm2022/lib/components/filter/filter-overlay/directives/public-api.mjs +0 -5
  803. package/esm2022/lib/components/filter/filter-overlay/public-api.mjs +0 -8
  804. package/esm2022/lib/components/filter/filter-overlay/services/public-api.mjs +0 -2
  805. package/esm2022/lib/components/filter/filter-overlay/types/public-api.mjs +0 -2
  806. package/esm2022/lib/components/filter/filter-overlay/utils/public-api.mjs +0 -2
  807. package/esm2022/lib/components/filter/public-api.mjs +0 -3
  808. package/esm2022/lib/components/filter/rich-filter/components/index.mjs +0 -2
  809. package/esm2022/lib/components/filter/rich-filter/components/public-api.mjs +0 -2
  810. package/esm2022/lib/components/filter/rich-filter/components/rich-filter-host/public-api.mjs +0 -2
  811. package/esm2022/lib/components/filter/rich-filter/directives/index.mjs +0 -2
  812. package/esm2022/lib/components/filter/rich-filter/directives/public-api.mjs +0 -5
  813. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button/public-api.mjs +0 -2
  814. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-button-slot/public-api.mjs +0 -2
  815. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-content/public-api.mjs +0 -2
  816. package/esm2022/lib/components/filter/rich-filter/directives/rich-filter-top/public-api.mjs +0 -2
  817. package/esm2022/lib/components/filter/rich-filter/public-api.mjs +0 -4
  818. package/esm2022/lib/components/forms/components/checkbox/components/checkbox/public-api.mjs +0 -2
  819. package/esm2022/lib/components/forms/components/checkbox/components/checkbox-field/public-api.mjs +0 -2
  820. package/esm2022/lib/components/forms/components/checkbox/components/checkbox-group/public-api.mjs +0 -2
  821. package/esm2022/lib/components/forms/components/checkbox/components/index.mjs +0 -2
  822. package/esm2022/lib/components/forms/components/checkbox/components/public-api.mjs +0 -4
  823. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox/public-api.mjs +0 -2
  824. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-field/public-api.mjs +0 -2
  825. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group/public-api.mjs +0 -2
  826. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group-control/public-api.mjs +0 -2
  827. package/esm2022/lib/components/forms/components/checkbox/directives/index.mjs +0 -2
  828. package/esm2022/lib/components/forms/components/checkbox/directives/public-api.mjs +0 -5
  829. package/esm2022/lib/components/forms/components/checkbox/public-api.mjs +0 -4
  830. package/esm2022/lib/components/forms/components/error/components/error/public-api.mjs +0 -2
  831. package/esm2022/lib/components/forms/components/error/components/public-api.mjs +0 -2
  832. package/esm2022/lib/components/forms/components/error/index.mjs +0 -2
  833. package/esm2022/lib/components/forms/components/error/public-api.mjs +0 -2
  834. package/esm2022/lib/components/forms/components/index.mjs +0 -2
  835. package/esm2022/lib/components/forms/components/input/components/date-input/public-api.mjs +0 -2
  836. package/esm2022/lib/components/forms/components/input/components/date-time-input/public-api.mjs +0 -2
  837. package/esm2022/lib/components/forms/components/input/components/email-input/public-api.mjs +0 -2
  838. package/esm2022/lib/components/forms/components/input/components/index.mjs +0 -2
  839. package/esm2022/lib/components/forms/components/input/components/input-field/public-api.mjs +0 -2
  840. package/esm2022/lib/components/forms/components/input/components/number-input/public-api.mjs +0 -2
  841. package/esm2022/lib/components/forms/components/input/components/password-input/public-api.mjs +0 -2
  842. package/esm2022/lib/components/forms/components/input/components/public-api.mjs +0 -10
  843. package/esm2022/lib/components/forms/components/input/components/search-input/public-api.mjs +0 -2
  844. package/esm2022/lib/components/forms/components/input/components/text-input/public-api.mjs +0 -2
  845. package/esm2022/lib/components/forms/components/input/components/textarea-input/public-api.mjs +0 -2
  846. package/esm2022/lib/components/forms/components/input/directives/autosize-textarea/public-api.mjs +0 -2
  847. package/esm2022/lib/components/forms/components/input/directives/date-input/public-api.mjs +0 -2
  848. package/esm2022/lib/components/forms/components/input/directives/date-time-input/public-api.mjs +0 -2
  849. package/esm2022/lib/components/forms/components/input/directives/email-input/public-api.mjs +0 -2
  850. package/esm2022/lib/components/forms/components/input/directives/if-supports-show-picker/public-api.mjs +0 -2
  851. package/esm2022/lib/components/forms/components/input/directives/index.mjs +0 -2
  852. package/esm2022/lib/components/forms/components/input/directives/number-input/public-api.mjs +0 -2
  853. package/esm2022/lib/components/forms/components/input/directives/password-input/public-api.mjs +0 -2
  854. package/esm2022/lib/components/forms/components/input/directives/public-api.mjs +0 -12
  855. package/esm2022/lib/components/forms/components/input/directives/search-input/public-api.mjs +0 -2
  856. package/esm2022/lib/components/forms/components/input/directives/show-picker-trigger/public-api.mjs +0 -2
  857. package/esm2022/lib/components/forms/components/input/directives/text-input/public-api.mjs +0 -2
  858. package/esm2022/lib/components/forms/components/input/directives/textarea-input/public-api.mjs +0 -2
  859. package/esm2022/lib/components/forms/components/input/partials/index.mjs +0 -2
  860. package/esm2022/lib/components/forms/components/input/partials/password-input-toggle/public-api.mjs +0 -2
  861. package/esm2022/lib/components/forms/components/input/partials/public-api.mjs +0 -3
  862. package/esm2022/lib/components/forms/components/input/partials/search-input-clear/public-api.mjs +0 -2
  863. package/esm2022/lib/components/forms/components/input/public-api.mjs +0 -5
  864. package/esm2022/lib/components/forms/components/label/components/index.mjs +0 -2
  865. package/esm2022/lib/components/forms/components/label/components/label/public-api.mjs +0 -2
  866. package/esm2022/lib/components/forms/components/label/components/public-api.mjs +0 -2
  867. package/esm2022/lib/components/forms/components/label/directives/index.mjs +0 -2
  868. package/esm2022/lib/components/forms/components/label/directives/label-suffix/public-api.mjs +0 -2
  869. package/esm2022/lib/components/forms/components/label/directives/public-api.mjs +0 -2
  870. package/esm2022/lib/components/forms/components/label/index.mjs +0 -2
  871. package/esm2022/lib/components/forms/components/label/public-api.mjs +0 -4
  872. package/esm2022/lib/components/forms/components/public-api.mjs +0 -11
  873. package/esm2022/lib/components/forms/components/radio/components/index.mjs +0 -2
  874. package/esm2022/lib/components/forms/components/radio/components/public-api.mjs +0 -4
  875. package/esm2022/lib/components/forms/components/radio/components/radio/public-api.mjs +0 -2
  876. package/esm2022/lib/components/forms/components/radio/components/radio-field/public-api.mjs +0 -2
  877. package/esm2022/lib/components/forms/components/radio/components/radio-group/public-api.mjs +0 -2
  878. package/esm2022/lib/components/forms/components/radio/directives/index.mjs +0 -2
  879. package/esm2022/lib/components/forms/components/radio/directives/public-api.mjs +0 -4
  880. package/esm2022/lib/components/forms/components/radio/directives/radio/public-api.mjs +0 -2
  881. package/esm2022/lib/components/forms/components/radio/directives/radio-field/public-api.mjs +0 -2
  882. package/esm2022/lib/components/forms/components/radio/directives/radio-group/public-api.mjs +0 -2
  883. package/esm2022/lib/components/forms/components/radio/public-api.mjs +0 -5
  884. package/esm2022/lib/components/forms/components/radio/types/public-api.mjs +0 -2
  885. package/esm2022/lib/components/forms/components/segmented-button/components/index.mjs +0 -2
  886. package/esm2022/lib/components/forms/components/segmented-button/components/public-api.mjs +0 -4
  887. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button/public-api.mjs +0 -2
  888. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-field/public-api.mjs +0 -2
  889. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-group/public-api.mjs +0 -2
  890. package/esm2022/lib/components/forms/components/segmented-button/directives/index.mjs +0 -2
  891. package/esm2022/lib/components/forms/components/segmented-button/directives/public-api.mjs +0 -4
  892. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button/public-api.mjs +0 -2
  893. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-field/public-api.mjs +0 -2
  894. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-group/public-api.mjs +0 -2
  895. package/esm2022/lib/components/forms/components/segmented-button/public-api.mjs +0 -4
  896. package/esm2022/lib/components/forms/components/select/components/combobox/components/combobox/public-api.mjs +0 -2
  897. package/esm2022/lib/components/forms/components/select/components/combobox/components/index.mjs +0 -2
  898. package/esm2022/lib/components/forms/components/select/components/combobox/components/public-api.mjs +0 -2
  899. package/esm2022/lib/components/forms/components/select/components/combobox/constants/public-api.mjs +0 -2
  900. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox/public-api.mjs +0 -2
  901. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-empty-template/public-api.mjs +0 -2
  902. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-error-template/public-api.mjs +0 -2
  903. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-loading-template/public-api.mjs +0 -2
  904. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/public-api.mjs +0 -2
  905. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-option-template/public-api.mjs +0 -2
  906. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox-selected-option-template/public-api.mjs +0 -2
  907. package/esm2022/lib/components/forms/components/select/components/combobox/directives/index.mjs +0 -2
  908. package/esm2022/lib/components/forms/components/select/components/combobox/directives/public-api.mjs +0 -8
  909. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-body/public-api.mjs +0 -2
  910. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-option/public-api.mjs +0 -2
  911. package/esm2022/lib/components/forms/components/select/components/combobox/partials/index.mjs +0 -2
  912. package/esm2022/lib/components/forms/components/select/components/combobox/partials/public-api.mjs +0 -3
  913. package/esm2022/lib/components/forms/components/select/components/combobox/public-api.mjs +0 -7
  914. package/esm2022/lib/components/forms/components/select/components/combobox/types/public-api.mjs +0 -2
  915. package/esm2022/lib/components/forms/components/select/components/combobox/utils/public-api.mjs +0 -2
  916. package/esm2022/lib/components/forms/components/select/components/index.mjs +0 -2
  917. package/esm2022/lib/components/forms/components/select/components/native-select/components/index.mjs +0 -2
  918. package/esm2022/lib/components/forms/components/select/components/native-select/components/native-select/public-api.mjs +0 -2
  919. package/esm2022/lib/components/forms/components/select/components/native-select/components/public-api.mjs +0 -2
  920. package/esm2022/lib/components/forms/components/select/components/native-select/directives/index.mjs +0 -2
  921. package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-input/public-api.mjs +0 -2
  922. package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-option/public-api.mjs +0 -2
  923. package/esm2022/lib/components/forms/components/select/components/native-select/directives/public-api.mjs +0 -3
  924. package/esm2022/lib/components/forms/components/select/components/native-select/partials/index.mjs +0 -2
  925. package/esm2022/lib/components/forms/components/select/components/native-select/partials/native-select-option/public-api.mjs +0 -2
  926. package/esm2022/lib/components/forms/components/select/components/native-select/partials/public-api.mjs +0 -2
  927. package/esm2022/lib/components/forms/components/select/components/native-select/public-api.mjs +0 -6
  928. package/esm2022/lib/components/forms/components/select/components/native-select/types/public-api.mjs +0 -2
  929. package/esm2022/lib/components/forms/components/select/components/public-api.mjs +0 -5
  930. package/esm2022/lib/components/forms/components/select/components/select/components/index.mjs +0 -2
  931. package/esm2022/lib/components/forms/components/select/components/select/components/public-api.mjs +0 -2
  932. package/esm2022/lib/components/forms/components/select/components/select/components/select/public-api.mjs +0 -2
  933. package/esm2022/lib/components/forms/components/select/components/select/directives/index.mjs +0 -2
  934. package/esm2022/lib/components/forms/components/select/components/select/directives/public-api.mjs +0 -4
  935. package/esm2022/lib/components/forms/components/select/components/select/directives/select/public-api.mjs +0 -2
  936. package/esm2022/lib/components/forms/components/select/components/select/directives/select-body/public-api.mjs +0 -2
  937. package/esm2022/lib/components/forms/components/select/components/select/directives/select-option/public-api.mjs +0 -2
  938. package/esm2022/lib/components/forms/components/select/components/select/partials/index.mjs +0 -2
  939. package/esm2022/lib/components/forms/components/select/components/select/partials/public-api.mjs +0 -3
  940. package/esm2022/lib/components/forms/components/select/components/select/partials/select-body/public-api.mjs +0 -2
  941. package/esm2022/lib/components/forms/components/select/components/select/partials/select-option/public-api.mjs +0 -2
  942. package/esm2022/lib/components/forms/components/select/components/select/public-api.mjs +0 -5
  943. package/esm2022/lib/components/forms/components/select/components/select-field/public-api.mjs +0 -2
  944. package/esm2022/lib/components/forms/components/select/directives/index.mjs +0 -2
  945. package/esm2022/lib/components/forms/components/select/directives/public-api.mjs +0 -2
  946. package/esm2022/lib/components/forms/components/select/directives/select-field/public-api.mjs +0 -2
  947. package/esm2022/lib/components/forms/components/select/public-api.mjs +0 -3
  948. package/esm2022/lib/components/forms/components/selection-list/components/index.mjs +0 -2
  949. package/esm2022/lib/components/forms/components/selection-list/components/public-api.mjs +0 -3
  950. package/esm2022/lib/components/forms/components/selection-list/components/selection-list-field/public-api.mjs +0 -2
  951. package/esm2022/lib/components/forms/components/selection-list/components/selection-list-option/public-api.mjs +0 -2
  952. package/esm2022/lib/components/forms/components/selection-list/directives/index.mjs +0 -2
  953. package/esm2022/lib/components/forms/components/selection-list/directives/public-api.mjs +0 -3
  954. package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-field/public-api.mjs +0 -2
  955. package/esm2022/lib/components/forms/components/selection-list/directives/selection-list-option/public-api.mjs +0 -2
  956. package/esm2022/lib/components/forms/components/selection-list/public-api.mjs +0 -4
  957. package/esm2022/lib/components/forms/components/slide-toggle/components/index.mjs +0 -2
  958. package/esm2022/lib/components/forms/components/slide-toggle/components/public-api.mjs +0 -3
  959. package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle/public-api.mjs +0 -2
  960. package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle-field/public-api.mjs +0 -2
  961. package/esm2022/lib/components/forms/components/slide-toggle/directives/index.mjs +0 -2
  962. package/esm2022/lib/components/forms/components/slide-toggle/directives/public-api.mjs +0 -2
  963. package/esm2022/lib/components/forms/components/slide-toggle/directives/slide-toggle/public-api.mjs +0 -2
  964. package/esm2022/lib/components/forms/components/slide-toggle/public-api.mjs +0 -4
  965. package/esm2022/lib/components/forms/components/slider/components/index.mjs +0 -2
  966. package/esm2022/lib/components/forms/components/slider/components/public-api.mjs +0 -3
  967. package/esm2022/lib/components/forms/components/slider/components/slider/public-api.mjs +0 -2
  968. package/esm2022/lib/components/forms/components/slider/components/slider-field/public-api.mjs +0 -2
  969. package/esm2022/lib/components/forms/components/slider/public-api.mjs +0 -3
  970. package/esm2022/lib/components/forms/directives/dynamic-form-field/public-api.mjs +0 -2
  971. package/esm2022/lib/components/forms/directives/dynamic-form-group/public-api.mjs +0 -2
  972. package/esm2022/lib/components/forms/directives/expose-input-vars/public-api.mjs +0 -2
  973. package/esm2022/lib/components/forms/directives/if-input-empty/public-api.mjs +0 -2
  974. package/esm2022/lib/components/forms/directives/if-input-filled/public-api.mjs +0 -2
  975. package/esm2022/lib/components/forms/directives/index.mjs +0 -2
  976. package/esm2022/lib/components/forms/directives/input/public-api.mjs +0 -2
  977. package/esm2022/lib/components/forms/directives/input-prefix/public-api.mjs +0 -2
  978. package/esm2022/lib/components/forms/directives/input-suffix/public-api.mjs +0 -2
  979. package/esm2022/lib/components/forms/directives/native-input-ref/public-api.mjs +0 -2
  980. package/esm2022/lib/components/forms/directives/public-api.mjs +0 -13
  981. package/esm2022/lib/components/forms/directives/static-form-field/public-api.mjs +0 -2
  982. package/esm2022/lib/components/forms/directives/static-form-group/public-api.mjs +0 -2
  983. package/esm2022/lib/components/forms/directives/writeable-input/public-api.mjs +0 -2
  984. package/esm2022/lib/components/forms/public-api.mjs +0 -5
  985. package/esm2022/lib/components/forms/services/public-api.mjs +0 -5
  986. package/esm2022/lib/components/forms/types/public-api.mjs +0 -2
  987. package/esm2022/lib/components/forms/utils/public-api.mjs +0 -4
  988. package/esm2022/lib/components/icons/chevron-icon/public-api.mjs +0 -2
  989. package/esm2022/lib/components/icons/index.mjs +0 -2
  990. package/esm2022/lib/components/icons/public-api.mjs +0 -3
  991. package/esm2022/lib/components/masonry/components/index.mjs +0 -2
  992. package/esm2022/lib/components/masonry/components/masonry/public-api.mjs +0 -2
  993. package/esm2022/lib/components/masonry/components/public-api.mjs +0 -2
  994. package/esm2022/lib/components/masonry/partials/index.mjs +0 -2
  995. package/esm2022/lib/components/masonry/partials/masonry-item/public-api.mjs +0 -2
  996. package/esm2022/lib/components/masonry/partials/public-api.mjs +0 -2
  997. package/esm2022/lib/components/masonry/public-api.mjs +0 -5
  998. package/esm2022/lib/components/masonry/types/public-api.mjs +0 -2
  999. package/esm2022/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/public-api.mjs +0 -2
  1000. package/esm2022/lib/components/overlay/components/bottom-sheet/components/index.mjs +0 -2
  1001. package/esm2022/lib/components/overlay/components/bottom-sheet/components/public-api.mjs +0 -2
  1002. package/esm2022/lib/components/overlay/components/bottom-sheet/constants/public-api.mjs +0 -2
  1003. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/public-api.mjs +0 -2
  1004. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/public-api.mjs +0 -2
  1005. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-title/public-api.mjs +0 -2
  1006. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/index.mjs +0 -2
  1007. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/public-api.mjs +0 -4
  1008. package/esm2022/lib/components/overlay/components/bottom-sheet/public-api.mjs +0 -8
  1009. package/esm2022/lib/components/overlay/components/bottom-sheet/services/public-api.mjs +0 -4
  1010. package/esm2022/lib/components/overlay/components/bottom-sheet/types/public-api.mjs +0 -2
  1011. package/esm2022/lib/components/overlay/components/bottom-sheet/utils/public-api.mjs +0 -4
  1012. package/esm2022/lib/components/overlay/components/dialog/components/dialog-container/public-api.mjs +0 -2
  1013. package/esm2022/lib/components/overlay/components/dialog/components/index.mjs +0 -2
  1014. package/esm2022/lib/components/overlay/components/dialog/components/public-api.mjs +0 -2
  1015. package/esm2022/lib/components/overlay/components/dialog/constants/public-api.mjs +0 -2
  1016. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-close/public-api.mjs +0 -2
  1017. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-container-base/public-api.mjs +0 -2
  1018. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-title/public-api.mjs +0 -2
  1019. package/esm2022/lib/components/overlay/components/dialog/partials/index.mjs +0 -2
  1020. package/esm2022/lib/components/overlay/components/dialog/partials/public-api.mjs +0 -4
  1021. package/esm2022/lib/components/overlay/components/dialog/public-api.mjs +0 -8
  1022. package/esm2022/lib/components/overlay/components/dialog/services/public-api.mjs +0 -3
  1023. package/esm2022/lib/components/overlay/components/dialog/types/public-api.mjs +0 -2
  1024. package/esm2022/lib/components/overlay/components/dialog/utils/public-api.mjs +0 -4
  1025. package/esm2022/lib/components/overlay/components/index.mjs +0 -2
  1026. package/esm2022/lib/components/overlay/components/menu/components/index.mjs +0 -2
  1027. package/esm2022/lib/components/overlay/components/menu/components/menu/public-api.mjs +0 -2
  1028. package/esm2022/lib/components/overlay/components/menu/components/menu-container/public-api.mjs +0 -2
  1029. package/esm2022/lib/components/overlay/components/menu/components/public-api.mjs +0 -5
  1030. package/esm2022/lib/components/overlay/components/menu/directives/index.mjs +0 -2
  1031. package/esm2022/lib/components/overlay/components/menu/directives/menu-group/public-api.mjs +0 -2
  1032. package/esm2022/lib/components/overlay/components/menu/directives/menu-group-title/public-api.mjs +0 -2
  1033. package/esm2022/lib/components/overlay/components/menu/directives/menu-item/public-api.mjs +0 -2
  1034. package/esm2022/lib/components/overlay/components/menu/directives/menu-trigger/public-api.mjs +0 -2
  1035. package/esm2022/lib/components/overlay/components/menu/directives/public-api.mjs +0 -7
  1036. package/esm2022/lib/components/overlay/components/menu/public-api.mjs +0 -4
  1037. package/esm2022/lib/components/overlay/components/menu-deprecated/public-api.mjs +0 -17
  1038. package/esm2022/lib/components/overlay/components/overlay/components/index.mjs +0 -2
  1039. package/esm2022/lib/components/overlay/components/overlay/components/overlay-container/public-api.mjs +0 -2
  1040. package/esm2022/lib/components/overlay/components/overlay/components/public-api.mjs +0 -2
  1041. package/esm2022/lib/components/overlay/components/overlay/constants/public-api.mjs +0 -2
  1042. package/esm2022/lib/components/overlay/components/overlay/partials/index.mjs +0 -2
  1043. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-body/public-api.mjs +0 -2
  1044. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-close/public-api.mjs +0 -2
  1045. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-footer/public-api.mjs +0 -2
  1046. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-header/public-api.mjs +0 -2
  1047. package/esm2022/lib/components/overlay/components/overlay/partials/overlay-title/public-api.mjs +0 -2
  1048. package/esm2022/lib/components/overlay/components/overlay/partials/public-api.mjs +0 -6
  1049. package/esm2022/lib/components/overlay/components/overlay/public-api.mjs +0 -8
  1050. package/esm2022/lib/components/overlay/components/overlay/services/public-api.mjs +0 -2
  1051. package/esm2022/lib/components/overlay/components/overlay/types/public-api.mjs +0 -2
  1052. package/esm2022/lib/components/overlay/components/overlay/utils/public-api.mjs +0 -5
  1053. package/esm2022/lib/components/overlay/components/public-api.mjs +0 -8
  1054. package/esm2022/lib/components/overlay/components/toggletip/components/index.mjs +0 -2
  1055. package/esm2022/lib/components/overlay/components/toggletip/components/public-api.mjs +0 -2
  1056. package/esm2022/lib/components/overlay/components/toggletip/components/toggletip/public-api.mjs +0 -2
  1057. package/esm2022/lib/components/overlay/components/toggletip/constants/public-api.mjs +0 -2
  1058. package/esm2022/lib/components/overlay/components/toggletip/directives/index.mjs +0 -2
  1059. package/esm2022/lib/components/overlay/components/toggletip/directives/public-api.mjs +0 -2
  1060. package/esm2022/lib/components/overlay/components/toggletip/directives/toggletip/public-api.mjs +0 -2
  1061. package/esm2022/lib/components/overlay/components/toggletip/public-api.mjs +0 -7
  1062. package/esm2022/lib/components/overlay/components/toggletip/types/public-api.mjs +0 -2
  1063. package/esm2022/lib/components/overlay/components/toggletip/utils/public-api.mjs +0 -3
  1064. package/esm2022/lib/components/overlay/components/tooltip/components/index.mjs +0 -2
  1065. package/esm2022/lib/components/overlay/components/tooltip/components/public-api.mjs +0 -2
  1066. package/esm2022/lib/components/overlay/components/tooltip/components/tooltip/public-api.mjs +0 -2
  1067. package/esm2022/lib/components/overlay/components/tooltip/constants/public-api.mjs +0 -2
  1068. package/esm2022/lib/components/overlay/components/tooltip/directives/index.mjs +0 -2
  1069. package/esm2022/lib/components/overlay/components/tooltip/directives/public-api.mjs +0 -2
  1070. package/esm2022/lib/components/overlay/components/tooltip/directives/tooltip/public-api.mjs +0 -2
  1071. package/esm2022/lib/components/overlay/components/tooltip/public-api.mjs +0 -7
  1072. package/esm2022/lib/components/overlay/components/tooltip/types/public-api.mjs +0 -2
  1073. package/esm2022/lib/components/overlay/components/tooltip/utils/public-api.mjs +0 -3
  1074. package/esm2022/lib/components/overlay/directives/dynamic-overlay-title/public-api.mjs +0 -2
  1075. package/esm2022/lib/components/overlay/directives/overlay-close-auto-blocker/public-api.mjs +0 -2
  1076. package/esm2022/lib/components/overlay/directives/public-api.mjs +0 -3
  1077. package/esm2022/lib/components/overlay/index.mjs +0 -2
  1078. package/esm2022/lib/components/overlay/public-api.mjs +0 -6
  1079. package/esm2022/lib/components/overlay/services/public-api.mjs +0 -2
  1080. package/esm2022/lib/components/overlay/types/public-api.mjs +0 -2
  1081. package/esm2022/lib/components/overlay/utils/public-api.mjs +0 -2
  1082. package/esm2022/lib/components/pagination/components/index.mjs +0 -2
  1083. package/esm2022/lib/components/pagination/components/pagination/public-api.mjs +0 -2
  1084. package/esm2022/lib/components/pagination/components/public-api.mjs +0 -2
  1085. package/esm2022/lib/components/pagination/partials/index.mjs +0 -2
  1086. package/esm2022/lib/components/pagination/partials/pagination-link/public-api.mjs +0 -2
  1087. package/esm2022/lib/components/pagination/partials/public-api.mjs +0 -2
  1088. package/esm2022/lib/components/pagination/public-api.mjs +0 -5
  1089. package/esm2022/lib/components/pagination/services/public-api.mjs +0 -2
  1090. package/esm2022/lib/components/pagination/types/public-api.mjs +0 -2
  1091. package/esm2022/lib/components/pagination/utils/public-api.mjs +0 -2
  1092. package/esm2022/lib/components/picture/pipes/index.mjs +0 -2
  1093. package/esm2022/lib/components/picture/public-api.mjs +0 -5
  1094. package/esm2022/lib/components/progress-spinner/public-api.mjs +0 -2
  1095. package/esm2022/lib/components/public-api.mjs +0 -18
  1096. package/esm2022/lib/components/query-error/components/public-api.mjs +0 -2
  1097. package/esm2022/lib/components/query-error/components/query-error/public-api.mjs +0 -2
  1098. package/esm2022/lib/components/query-error/directives/index.mjs +0 -2
  1099. package/esm2022/lib/components/query-error/directives/public-api.mjs +0 -2
  1100. package/esm2022/lib/components/query-error/directives/query-error/public-api.mjs +0 -2
  1101. package/esm2022/lib/components/query-error/public-api.mjs +0 -4
  1102. package/esm2022/lib/components/query-error/types/public-api.mjs +0 -2
  1103. package/esm2022/lib/components/scrollable/components/index.mjs +0 -2
  1104. package/esm2022/lib/components/scrollable/components/public-api.mjs +0 -2
  1105. package/esm2022/lib/components/scrollable/components/scrollable/public-api.mjs +0 -2
  1106. package/esm2022/lib/components/scrollable/directives/index.mjs +0 -2
  1107. package/esm2022/lib/components/scrollable/directives/public-api.mjs +0 -3
  1108. package/esm2022/lib/components/scrollable/directives/scrollable-ignore-child/public-api.mjs +0 -2
  1109. package/esm2022/lib/components/scrollable/directives/scrollable-is-active-child/public-api.mjs +0 -2
  1110. package/esm2022/lib/components/scrollable/index.mjs +0 -2
  1111. package/esm2022/lib/components/scrollable/public-api.mjs +0 -5
  1112. package/esm2022/lib/components/scrollable/types/public-api.mjs +0 -2
  1113. package/esm2022/lib/components/skeleton/components/index.mjs +0 -2
  1114. package/esm2022/lib/components/skeleton/components/public-api.mjs +0 -2
  1115. package/esm2022/lib/components/skeleton/components/skeleton/public-api.mjs +0 -2
  1116. package/esm2022/lib/components/skeleton/partials/index.mjs +0 -2
  1117. package/esm2022/lib/components/skeleton/partials/public-api.mjs +0 -2
  1118. package/esm2022/lib/components/skeleton/partials/skeleton-item/public-api.mjs +0 -2
  1119. package/esm2022/lib/components/skeleton/public-api.mjs +0 -4
  1120. package/esm2022/lib/components/sort/components/index.mjs +0 -2
  1121. package/esm2022/lib/components/sort/components/public-api.mjs +0 -2
  1122. package/esm2022/lib/components/sort/components/sort-header/public-api.mjs +0 -3
  1123. package/esm2022/lib/components/sort/index.mjs +0 -2
  1124. package/esm2022/lib/components/sort/partials/index.mjs +0 -2
  1125. package/esm2022/lib/components/sort/partials/public-api.mjs +0 -2
  1126. package/esm2022/lib/components/sort/partials/sort/public-api.mjs +0 -3
  1127. package/esm2022/lib/components/sort/public-api.mjs +0 -6
  1128. package/esm2022/lib/components/sort/services/public-api.mjs +0 -2
  1129. package/esm2022/lib/components/sort/types/public-api.mjs +0 -2
  1130. package/esm2022/lib/components/table/components/index.mjs +0 -2
  1131. package/esm2022/lib/components/table/components/public-api.mjs +0 -2
  1132. package/esm2022/lib/components/table/components/table/public-api.mjs +0 -2
  1133. package/esm2022/lib/components/table/constants/public-api.mjs +0 -2
  1134. package/esm2022/lib/components/table/index.mjs +0 -2
  1135. package/esm2022/lib/components/table/partials/cells/cell/public-api.mjs +0 -2
  1136. package/esm2022/lib/components/table/partials/cells/cell-def/public-api.mjs +0 -2
  1137. package/esm2022/lib/components/table/partials/cells/column-def/public-api.mjs +0 -2
  1138. package/esm2022/lib/components/table/partials/cells/footer-cell/public-api.mjs +0 -2
  1139. package/esm2022/lib/components/table/partials/cells/footer-cell-def/public-api.mjs +0 -2
  1140. package/esm2022/lib/components/table/partials/cells/header-cell/public-api.mjs +0 -2
  1141. package/esm2022/lib/components/table/partials/cells/header-cell-def/public-api.mjs +0 -2
  1142. package/esm2022/lib/components/table/partials/cells/public-api.mjs +0 -9
  1143. package/esm2022/lib/components/table/partials/cells/text-column/public-api.mjs +0 -2
  1144. package/esm2022/lib/components/table/partials/index.mjs +0 -2
  1145. package/esm2022/lib/components/table/partials/public-api.mjs +0 -5
  1146. package/esm2022/lib/components/table/partials/rows/footer-row/public-api.mjs +0 -2
  1147. package/esm2022/lib/components/table/partials/rows/footer-row-def/public-api.mjs +0 -2
  1148. package/esm2022/lib/components/table/partials/rows/header-row/public-api.mjs +0 -2
  1149. package/esm2022/lib/components/table/partials/rows/header-row-def/public-api.mjs +0 -2
  1150. package/esm2022/lib/components/table/partials/rows/no-data-row/public-api.mjs +0 -2
  1151. package/esm2022/lib/components/table/partials/rows/public-api.mjs +0 -9
  1152. package/esm2022/lib/components/table/partials/rows/recycle-rows/public-api.mjs +0 -2
  1153. package/esm2022/lib/components/table/partials/rows/row/public-api.mjs +0 -2
  1154. package/esm2022/lib/components/table/partials/rows/row-def/public-api.mjs +0 -2
  1155. package/esm2022/lib/components/table/partials/table-busy/public-api.mjs +0 -2
  1156. package/esm2022/lib/components/table/partials/table-busy-outlet/public-api.mjs +0 -2
  1157. package/esm2022/lib/components/table/public-api.mjs +0 -7
  1158. package/esm2022/lib/components/table/types/public-api.mjs +0 -2
  1159. package/esm2022/lib/components/table/utils/public-api.mjs +0 -2
  1160. package/esm2022/lib/components/tabs/animations/public-api.mjs +0 -2
  1161. package/esm2022/lib/components/tabs/components/index.mjs +0 -2
  1162. package/esm2022/lib/components/tabs/components/inline-tabs/public-api.mjs +0 -2
  1163. package/esm2022/lib/components/tabs/components/nav-tabs/public-api.mjs +0 -2
  1164. package/esm2022/lib/components/tabs/components/public-api.mjs +0 -3
  1165. package/esm2022/lib/components/tabs/partials/index.mjs +0 -2
  1166. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab/public-api.mjs +0 -2
  1167. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body/public-api.mjs +0 -2
  1168. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body-host/public-api.mjs +0 -2
  1169. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-content/public-api.mjs +0 -2
  1170. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-header/public-api.mjs +0 -2
  1171. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label/public-api.mjs +0 -2
  1172. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/public-api.mjs +0 -2
  1173. package/esm2022/lib/components/tabs/partials/inline-tabs/public-api.mjs +0 -8
  1174. package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tab-link/public-api.mjs +0 -2
  1175. package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/public-api.mjs +0 -2
  1176. package/esm2022/lib/components/tabs/partials/nav-tabs/public-api.mjs +0 -3
  1177. package/esm2022/lib/components/tabs/partials/public-api.mjs +0 -3
  1178. package/esm2022/lib/components/tabs/public-api.mjs +0 -7
  1179. package/esm2022/lib/components/tabs/types/public-api.mjs +0 -2
  1180. package/esm2022/lib/components/tabs/utils/public-api.mjs +0 -3
  1181. package/esm2022/lib/public-api.mjs +0 -5
  1182. package/esm2022/lib/services/public-api.mjs +0 -2
  1183. package/esm2022/lib/types/public-api.mjs +0 -2
  1184. package/esm2022/lib/utils/public-api.mjs +0 -2
  1185. package/lib/components/accordion/components/accordion/public-api.d.ts +0 -3
  1186. package/lib/components/accordion/components/index.d.ts +0 -1
  1187. package/lib/components/accordion/components/public-api.d.ts +0 -2
  1188. package/lib/components/accordion/partials/index.d.ts +0 -1
  1189. package/lib/components/accordion/partials/public-api.d.ts +0 -4
  1190. package/lib/components/accordion/public-api.d.ts +0 -3
  1191. package/lib/components/bracket/components/index.d.ts +0 -1
  1192. package/lib/components/bracket/components/public-api.d.ts +0 -1
  1193. package/lib/components/bracket/constants/public-api.d.ts +0 -1
  1194. package/lib/components/bracket/directives/bracket-match/public-api.d.ts +0 -1
  1195. package/lib/components/bracket/directives/bracket-round/public-api.d.ts +0 -1
  1196. package/lib/components/bracket/directives/index.d.ts +0 -1
  1197. package/lib/components/bracket/directives/public-api.d.ts +0 -2
  1198. package/lib/components/bracket/partials/bracket-match/public-api.d.ts +0 -1
  1199. package/lib/components/bracket/partials/bracket-round-header/public-api.d.ts +0 -1
  1200. package/lib/components/bracket/partials/index.d.ts +0 -1
  1201. package/lib/components/bracket/partials/public-api.d.ts +0 -2
  1202. package/lib/components/bracket/public-api.d.ts +0 -7
  1203. package/lib/components/bracket/types/public-api.d.ts +0 -2
  1204. package/lib/components/bracket/utils/public-api.d.ts +0 -2
  1205. package/lib/components/button/components/index.d.ts +0 -1
  1206. package/lib/components/button/components/public-api.d.ts +0 -2
  1207. package/lib/components/button/directives/button/public-api.d.ts +0 -1
  1208. package/lib/components/button/directives/index.d.ts +0 -1
  1209. package/lib/components/button/directives/public-api.d.ts +0 -2
  1210. package/lib/components/button/public-api.d.ts +0 -3
  1211. package/lib/components/filter/filter-overlay/components/index.d.ts +0 -1
  1212. package/lib/components/filter/filter-overlay/components/public-api.d.ts +0 -1
  1213. package/lib/components/filter/filter-overlay/constants/public-api.d.ts +0 -1
  1214. package/lib/components/filter/filter-overlay/directives/index.d.ts +0 -1
  1215. package/lib/components/filter/filter-overlay/directives/public-api.d.ts +0 -4
  1216. package/lib/components/filter/filter-overlay/public-api.d.ts +0 -7
  1217. package/lib/components/filter/filter-overlay/services/public-api.d.ts +0 -1
  1218. package/lib/components/filter/filter-overlay/types/public-api.d.ts +0 -1
  1219. package/lib/components/filter/filter-overlay/utils/public-api.d.ts +0 -1
  1220. package/lib/components/filter/public-api.d.ts +0 -2
  1221. package/lib/components/filter/rich-filter/components/index.d.ts +0 -1
  1222. package/lib/components/filter/rich-filter/components/public-api.d.ts +0 -1
  1223. package/lib/components/filter/rich-filter/directives/index.d.ts +0 -1
  1224. package/lib/components/filter/rich-filter/directives/public-api.d.ts +0 -4
  1225. package/lib/components/filter/rich-filter/public-api.d.ts +0 -3
  1226. package/lib/components/forms/components/checkbox/components/index.d.ts +0 -1
  1227. package/lib/components/forms/components/checkbox/components/public-api.d.ts +0 -3
  1228. package/lib/components/forms/components/checkbox/directives/checkbox/public-api.d.ts +0 -1
  1229. package/lib/components/forms/components/checkbox/directives/checkbox-group/public-api.d.ts +0 -1
  1230. package/lib/components/forms/components/checkbox/directives/index.d.ts +0 -1
  1231. package/lib/components/forms/components/checkbox/directives/public-api.d.ts +0 -4
  1232. package/lib/components/forms/components/checkbox/public-api.d.ts +0 -3
  1233. package/lib/components/forms/components/error/components/public-api.d.ts +0 -1
  1234. package/lib/components/forms/components/error/index.d.ts +0 -1
  1235. package/lib/components/forms/components/error/public-api.d.ts +0 -1
  1236. package/lib/components/forms/components/index.d.ts +0 -1
  1237. package/lib/components/forms/components/input/components/index.d.ts +0 -1
  1238. package/lib/components/forms/components/input/components/public-api.d.ts +0 -9
  1239. package/lib/components/forms/components/input/directives/index.d.ts +0 -1
  1240. package/lib/components/forms/components/input/directives/public-api.d.ts +0 -11
  1241. package/lib/components/forms/components/input/directives/textarea-input/public-api.d.ts +0 -1
  1242. package/lib/components/forms/components/input/partials/index.d.ts +0 -1
  1243. package/lib/components/forms/components/input/partials/public-api.d.ts +0 -2
  1244. package/lib/components/forms/components/input/public-api.d.ts +0 -4
  1245. package/lib/components/forms/components/label/components/index.d.ts +0 -1
  1246. package/lib/components/forms/components/label/components/public-api.d.ts +0 -1
  1247. package/lib/components/forms/components/label/directives/index.d.ts +0 -1
  1248. package/lib/components/forms/components/label/directives/public-api.d.ts +0 -1
  1249. package/lib/components/forms/components/label/index.d.ts +0 -1
  1250. package/lib/components/forms/components/label/public-api.d.ts +0 -3
  1251. package/lib/components/forms/components/public-api.d.ts +0 -10
  1252. package/lib/components/forms/components/radio/components/index.d.ts +0 -1
  1253. package/lib/components/forms/components/radio/components/public-api.d.ts +0 -3
  1254. package/lib/components/forms/components/radio/directives/index.d.ts +0 -1
  1255. package/lib/components/forms/components/radio/directives/public-api.d.ts +0 -3
  1256. package/lib/components/forms/components/radio/directives/radio/public-api.d.ts +0 -1
  1257. package/lib/components/forms/components/radio/public-api.d.ts +0 -4
  1258. package/lib/components/forms/components/radio/types/public-api.d.ts +0 -1
  1259. package/lib/components/forms/components/segmented-button/components/index.d.ts +0 -1
  1260. package/lib/components/forms/components/segmented-button/components/public-api.d.ts +0 -3
  1261. package/lib/components/forms/components/segmented-button/components/segmented-button/public-api.d.ts +0 -1
  1262. package/lib/components/forms/components/segmented-button/components/segmented-button-field/public-api.d.ts +0 -1
  1263. package/lib/components/forms/components/segmented-button/components/segmented-button-group/public-api.d.ts +0 -1
  1264. package/lib/components/forms/components/segmented-button/directives/index.d.ts +0 -1
  1265. package/lib/components/forms/components/segmented-button/directives/public-api.d.ts +0 -3
  1266. package/lib/components/forms/components/segmented-button/directives/segmented-button/public-api.d.ts +0 -1
  1267. package/lib/components/forms/components/segmented-button/public-api.d.ts +0 -3
  1268. package/lib/components/forms/components/select/components/combobox/components/index.d.ts +0 -1
  1269. package/lib/components/forms/components/select/components/combobox/components/public-api.d.ts +0 -1
  1270. package/lib/components/forms/components/select/components/combobox/constants/public-api.d.ts +0 -1
  1271. package/lib/components/forms/components/select/components/combobox/directives/combobox-body-empty-template/public-api.d.ts +0 -1
  1272. package/lib/components/forms/components/select/components/combobox/directives/combobox-body-error-template/public-api.d.ts +0 -1
  1273. package/lib/components/forms/components/select/components/combobox/directives/combobox-body-loading-template/public-api.d.ts +0 -1
  1274. package/lib/components/forms/components/select/components/combobox/directives/combobox-body-more-items-hint-template/public-api.d.ts +0 -1
  1275. package/lib/components/forms/components/select/components/combobox/directives/combobox-option-template/public-api.d.ts +0 -1
  1276. package/lib/components/forms/components/select/components/combobox/directives/combobox-selected-option-template/public-api.d.ts +0 -1
  1277. package/lib/components/forms/components/select/components/combobox/directives/index.d.ts +0 -1
  1278. package/lib/components/forms/components/select/components/combobox/directives/public-api.d.ts +0 -7
  1279. package/lib/components/forms/components/select/components/combobox/partials/combobox-option/public-api.d.ts +0 -1
  1280. package/lib/components/forms/components/select/components/combobox/partials/index.d.ts +0 -1
  1281. package/lib/components/forms/components/select/components/combobox/partials/public-api.d.ts +0 -2
  1282. package/lib/components/forms/components/select/components/combobox/public-api.d.ts +0 -6
  1283. package/lib/components/forms/components/select/components/combobox/types/public-api.d.ts +0 -1
  1284. package/lib/components/forms/components/select/components/index.d.ts +0 -1
  1285. package/lib/components/forms/components/select/components/native-select/components/index.d.ts +0 -1
  1286. package/lib/components/forms/components/select/components/native-select/components/public-api.d.ts +0 -1
  1287. package/lib/components/forms/components/select/components/native-select/directives/index.d.ts +0 -1
  1288. package/lib/components/forms/components/select/components/native-select/directives/native-select-option/public-api.d.ts +0 -1
  1289. package/lib/components/forms/components/select/components/native-select/directives/public-api.d.ts +0 -2
  1290. package/lib/components/forms/components/select/components/native-select/partials/index.d.ts +0 -1
  1291. package/lib/components/forms/components/select/components/native-select/partials/public-api.d.ts +0 -1
  1292. package/lib/components/forms/components/select/components/native-select/public-api.d.ts +0 -5
  1293. package/lib/components/forms/components/select/components/native-select/types/public-api.d.ts +0 -1
  1294. package/lib/components/forms/components/select/components/public-api.d.ts +0 -4
  1295. package/lib/components/forms/components/select/components/select/components/index.d.ts +0 -1
  1296. package/lib/components/forms/components/select/components/select/components/public-api.d.ts +0 -1
  1297. package/lib/components/forms/components/select/components/select/directives/index.d.ts +0 -1
  1298. package/lib/components/forms/components/select/components/select/directives/public-api.d.ts +0 -3
  1299. package/lib/components/forms/components/select/components/select/directives/select/public-api.d.ts +0 -1
  1300. package/lib/components/forms/components/select/components/select/directives/select-body/public-api.d.ts +0 -1
  1301. package/lib/components/forms/components/select/components/select/directives/select-option/public-api.d.ts +0 -1
  1302. package/lib/components/forms/components/select/components/select/partials/index.d.ts +0 -1
  1303. package/lib/components/forms/components/select/components/select/partials/public-api.d.ts +0 -2
  1304. package/lib/components/forms/components/select/components/select/public-api.d.ts +0 -4
  1305. package/lib/components/forms/components/select/components/select-field/public-api.d.ts +0 -1
  1306. package/lib/components/forms/components/select/directives/index.d.ts +0 -1
  1307. package/lib/components/forms/components/select/directives/public-api.d.ts +0 -1
  1308. package/lib/components/forms/components/select/public-api.d.ts +0 -2
  1309. package/lib/components/forms/components/selection-list/components/index.d.ts +0 -1
  1310. package/lib/components/forms/components/selection-list/components/public-api.d.ts +0 -2
  1311. package/lib/components/forms/components/selection-list/directives/index.d.ts +0 -1
  1312. package/lib/components/forms/components/selection-list/directives/public-api.d.ts +0 -2
  1313. package/lib/components/forms/components/selection-list/directives/selection-list-field/public-api.d.ts +0 -1
  1314. package/lib/components/forms/components/selection-list/directives/selection-list-option/public-api.d.ts +0 -1
  1315. package/lib/components/forms/components/selection-list/public-api.d.ts +0 -3
  1316. package/lib/components/forms/components/slide-toggle/components/index.d.ts +0 -1
  1317. package/lib/components/forms/components/slide-toggle/components/public-api.d.ts +0 -2
  1318. package/lib/components/forms/components/slide-toggle/directives/index.d.ts +0 -1
  1319. package/lib/components/forms/components/slide-toggle/directives/public-api.d.ts +0 -1
  1320. package/lib/components/forms/components/slide-toggle/public-api.d.ts +0 -3
  1321. package/lib/components/forms/components/slider/components/index.d.ts +0 -1
  1322. package/lib/components/forms/components/slider/components/public-api.d.ts +0 -2
  1323. package/lib/components/forms/components/slider/public-api.d.ts +0 -2
  1324. package/lib/components/forms/directives/expose-input-vars/public-api.d.ts +0 -1
  1325. package/lib/components/forms/directives/index.d.ts +0 -1
  1326. package/lib/components/forms/directives/input/public-api.d.ts +0 -1
  1327. package/lib/components/forms/directives/native-input-ref/public-api.d.ts +0 -1
  1328. package/lib/components/forms/directives/public-api.d.ts +0 -12
  1329. package/lib/components/forms/public-api.d.ts +0 -4
  1330. package/lib/components/forms/services/public-api.d.ts +0 -4
  1331. package/lib/components/forms/types/public-api.d.ts +0 -1
  1332. package/lib/components/forms/utils/public-api.d.ts +0 -3
  1333. package/lib/components/icons/chevron-icon/public-api.d.ts +0 -1
  1334. package/lib/components/icons/index.d.ts +0 -1
  1335. package/lib/components/icons/public-api.d.ts +0 -2
  1336. package/lib/components/masonry/components/index.d.ts +0 -1
  1337. package/lib/components/masonry/components/public-api.d.ts +0 -1
  1338. package/lib/components/masonry/partials/index.d.ts +0 -1
  1339. package/lib/components/masonry/partials/public-api.d.ts +0 -1
  1340. package/lib/components/masonry/public-api.d.ts +0 -4
  1341. package/lib/components/overlay/components/bottom-sheet/components/index.d.ts +0 -1
  1342. package/lib/components/overlay/components/bottom-sheet/components/public-api.d.ts +0 -1
  1343. package/lib/components/overlay/components/bottom-sheet/constants/public-api.d.ts +0 -1
  1344. package/lib/components/overlay/components/bottom-sheet/partials/index.d.ts +0 -1
  1345. package/lib/components/overlay/components/bottom-sheet/partials/public-api.d.ts +0 -3
  1346. package/lib/components/overlay/components/bottom-sheet/public-api.d.ts +0 -7
  1347. package/lib/components/overlay/components/bottom-sheet/services/public-api.d.ts +0 -3
  1348. package/lib/components/overlay/components/bottom-sheet/types/public-api.d.ts +0 -1
  1349. package/lib/components/overlay/components/bottom-sheet/utils/public-api.d.ts +0 -3
  1350. package/lib/components/overlay/components/dialog/components/index.d.ts +0 -1
  1351. package/lib/components/overlay/components/dialog/components/public-api.d.ts +0 -1
  1352. package/lib/components/overlay/components/dialog/constants/public-api.d.ts +0 -1
  1353. package/lib/components/overlay/components/dialog/partials/index.d.ts +0 -1
  1354. package/lib/components/overlay/components/dialog/partials/public-api.d.ts +0 -3
  1355. package/lib/components/overlay/components/dialog/public-api.d.ts +0 -7
  1356. package/lib/components/overlay/components/dialog/services/public-api.d.ts +0 -2
  1357. package/lib/components/overlay/components/dialog/types/public-api.d.ts +0 -1
  1358. package/lib/components/overlay/components/dialog/utils/public-api.d.ts +0 -3
  1359. package/lib/components/overlay/components/index.d.ts +0 -1
  1360. package/lib/components/overlay/components/menu/components/index.d.ts +0 -1
  1361. package/lib/components/overlay/components/menu/components/public-api.d.ts +0 -2
  1362. package/lib/components/overlay/components/menu/directives/index.d.ts +0 -1
  1363. package/lib/components/overlay/components/menu/directives/menu-group/public-api.d.ts +0 -1
  1364. package/lib/components/overlay/components/menu/directives/menu-group-title/public-api.d.ts +0 -1
  1365. package/lib/components/overlay/components/menu/directives/menu-trigger/public-api.d.ts +0 -1
  1366. package/lib/components/overlay/components/menu/directives/public-api.d.ts +0 -4
  1367. package/lib/components/overlay/components/menu/public-api.d.ts +0 -3
  1368. package/lib/components/overlay/components/overlay/components/index.d.ts +0 -1
  1369. package/lib/components/overlay/components/overlay/components/public-api.d.ts +0 -1
  1370. package/lib/components/overlay/components/overlay/constants/public-api.d.ts +0 -1
  1371. package/lib/components/overlay/components/overlay/partials/index.d.ts +0 -1
  1372. package/lib/components/overlay/components/overlay/partials/public-api.d.ts +0 -5
  1373. package/lib/components/overlay/components/overlay/public-api.d.ts +0 -7
  1374. package/lib/components/overlay/components/overlay/services/public-api.d.ts +0 -1
  1375. package/lib/components/overlay/components/overlay/types/public-api.d.ts +0 -1
  1376. package/lib/components/overlay/components/overlay/utils/public-api.d.ts +0 -4
  1377. package/lib/components/overlay/components/public-api.d.ts +0 -7
  1378. package/lib/components/overlay/components/toggletip/components/index.d.ts +0 -1
  1379. package/lib/components/overlay/components/toggletip/components/public-api.d.ts +0 -1
  1380. package/lib/components/overlay/components/toggletip/constants/public-api.d.ts +0 -1
  1381. package/lib/components/overlay/components/toggletip/directives/index.d.ts +0 -1
  1382. package/lib/components/overlay/components/toggletip/directives/public-api.d.ts +0 -1
  1383. package/lib/components/overlay/components/toggletip/public-api.d.ts +0 -6
  1384. package/lib/components/overlay/components/toggletip/types/public-api.d.ts +0 -1
  1385. package/lib/components/overlay/components/toggletip/utils/public-api.d.ts +0 -2
  1386. package/lib/components/overlay/components/tooltip/components/index.d.ts +0 -1
  1387. package/lib/components/overlay/components/tooltip/components/public-api.d.ts +0 -1
  1388. package/lib/components/overlay/components/tooltip/constants/public-api.d.ts +0 -1
  1389. package/lib/components/overlay/components/tooltip/directives/index.d.ts +0 -1
  1390. package/lib/components/overlay/components/tooltip/directives/public-api.d.ts +0 -1
  1391. package/lib/components/overlay/components/tooltip/public-api.d.ts +0 -6
  1392. package/lib/components/overlay/components/tooltip/types/public-api.d.ts +0 -1
  1393. package/lib/components/overlay/components/tooltip/utils/public-api.d.ts +0 -2
  1394. package/lib/components/overlay/directives/overlay-close-auto-blocker/public-api.d.ts +0 -1
  1395. package/lib/components/overlay/directives/public-api.d.ts +0 -2
  1396. package/lib/components/overlay/index.d.ts +0 -1
  1397. package/lib/components/overlay/public-api.d.ts +0 -5
  1398. package/lib/components/overlay/types/public-api.d.ts +0 -1
  1399. package/lib/components/pagination/components/index.d.ts +0 -1
  1400. package/lib/components/pagination/components/public-api.d.ts +0 -1
  1401. package/lib/components/pagination/partials/index.d.ts +0 -1
  1402. package/lib/components/pagination/partials/public-api.d.ts +0 -1
  1403. package/lib/components/pagination/public-api.d.ts +0 -4
  1404. package/lib/components/pagination/services/public-api.d.ts +0 -1
  1405. package/lib/components/pagination/types/public-api.d.ts +0 -1
  1406. package/lib/components/pagination/utils/public-api.d.ts +0 -1
  1407. package/lib/components/picture/pipes/index.d.ts +0 -1
  1408. package/lib/components/public-api.d.ts +0 -17
  1409. package/lib/components/query-error/components/public-api.d.ts +0 -1
  1410. package/lib/components/query-error/directives/index.d.ts +0 -1
  1411. package/lib/components/query-error/directives/public-api.d.ts +0 -1
  1412. package/lib/components/query-error/public-api.d.ts +0 -3
  1413. package/lib/components/query-error/types/public-api.d.ts +0 -1
  1414. package/lib/components/scrollable/components/index.d.ts +0 -1
  1415. package/lib/components/scrollable/components/public-api.d.ts +0 -1
  1416. package/lib/components/scrollable/directives/index.d.ts +0 -1
  1417. package/lib/components/scrollable/directives/public-api.d.ts +0 -2
  1418. package/lib/components/scrollable/index.d.ts +0 -1
  1419. package/lib/components/scrollable/public-api.d.ts +0 -4
  1420. package/lib/components/scrollable/types/public-api.d.ts +0 -1
  1421. package/lib/components/skeleton/components/index.d.ts +0 -1
  1422. package/lib/components/skeleton/components/public-api.d.ts +0 -1
  1423. package/lib/components/skeleton/partials/index.d.ts +0 -1
  1424. package/lib/components/skeleton/partials/public-api.d.ts +0 -1
  1425. package/lib/components/skeleton/public-api.d.ts +0 -3
  1426. package/lib/components/sort/components/index.d.ts +0 -1
  1427. package/lib/components/sort/components/public-api.d.ts +0 -1
  1428. package/lib/components/sort/index.d.ts +0 -1
  1429. package/lib/components/sort/partials/index.d.ts +0 -1
  1430. package/lib/components/sort/partials/public-api.d.ts +0 -1
  1431. package/lib/components/sort/public-api.d.ts +0 -5
  1432. package/lib/components/sort/services/public-api.d.ts +0 -1
  1433. package/lib/components/sort/types/public-api.d.ts +0 -1
  1434. package/lib/components/table/components/index.d.ts +0 -1
  1435. package/lib/components/table/components/public-api.d.ts +0 -1
  1436. package/lib/components/table/constants/public-api.d.ts +0 -1
  1437. package/lib/components/table/index.d.ts +0 -1
  1438. package/lib/components/table/partials/cells/cell/public-api.d.ts +0 -1
  1439. package/lib/components/table/partials/cells/cell-def/public-api.d.ts +0 -1
  1440. package/lib/components/table/partials/cells/column-def/public-api.d.ts +0 -1
  1441. package/lib/components/table/partials/cells/header-cell/public-api.d.ts +0 -1
  1442. package/lib/components/table/partials/cells/header-cell-def/public-api.d.ts +0 -1
  1443. package/lib/components/table/partials/cells/public-api.d.ts +0 -8
  1444. package/lib/components/table/partials/index.d.ts +0 -1
  1445. package/lib/components/table/partials/public-api.d.ts +0 -4
  1446. package/lib/components/table/partials/rows/public-api.d.ts +0 -8
  1447. package/lib/components/table/public-api.d.ts +0 -6
  1448. package/lib/components/table/types/public-api.d.ts +0 -1
  1449. package/lib/components/tabs/animations/public-api.d.ts +0 -1
  1450. package/lib/components/tabs/components/index.d.ts +0 -1
  1451. package/lib/components/tabs/components/public-api.d.ts +0 -2
  1452. package/lib/components/tabs/partials/index.d.ts +0 -1
  1453. package/lib/components/tabs/partials/inline-tabs/inline-tab-body-host/public-api.d.ts +0 -1
  1454. package/lib/components/tabs/partials/inline-tabs/inline-tab-content/public-api.d.ts +0 -1
  1455. package/lib/components/tabs/partials/inline-tabs/inline-tab-label/public-api.d.ts +0 -1
  1456. package/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/public-api.d.ts +0 -1
  1457. package/lib/components/tabs/partials/inline-tabs/public-api.d.ts +0 -7
  1458. package/lib/components/tabs/partials/nav-tabs/nav-tab-link/public-api.d.ts +0 -1
  1459. package/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/public-api.d.ts +0 -1
  1460. package/lib/components/tabs/partials/nav-tabs/public-api.d.ts +0 -2
  1461. package/lib/components/tabs/partials/public-api.d.ts +0 -2
  1462. package/lib/components/tabs/public-api.d.ts +0 -6
  1463. package/lib/components/tabs/utils/public-api.d.ts +0 -2
  1464. package/lib/public-api.d.ts +0 -4
  1465. package/lib/services/public-api.d.ts +0 -1
  1466. package/lib/types/public-api.d.ts +0 -1
  1467. /package/lib/components/accordion/components/accordion-group/{public-api.d.ts → index.d.ts} +0 -0
  1468. /package/lib/components/accordion/partials/accordion-hint/{public-api.d.ts → index.d.ts} +0 -0
  1469. /package/lib/components/accordion/partials/accordion-hint-wrapper/{public-api.d.ts → index.d.ts} +0 -0
  1470. /package/lib/components/accordion/partials/accordion-label/{public-api.d.ts → index.d.ts} +0 -0
  1471. /package/lib/components/accordion/partials/accordion-label-wrapper/{public-api.d.ts → index.d.ts} +0 -0
  1472. /package/lib/components/bracket/components/bracket/{public-api.d.ts → index.d.ts} +0 -0
  1473. /package/lib/components/button/components/button/{public-api.d.ts → index.d.ts} +0 -0
  1474. /package/lib/components/button/components/query-button/{public-api.d.ts → index.d.ts} +0 -0
  1475. /package/lib/components/button/directives/query-button/{public-api.d.ts → index.d.ts} +0 -0
  1476. /package/lib/components/filter/filter-overlay/components/filter-overlay-page-outlet/{public-api.d.ts → index.d.ts} +0 -0
  1477. /package/lib/components/filter/filter-overlay/directives/filter-overlay-back-or-close/{public-api.d.ts → index.d.ts} +0 -0
  1478. /package/lib/components/filter/filter-overlay/directives/filter-overlay-link/{public-api.d.ts → index.d.ts} +0 -0
  1479. /package/lib/components/filter/filter-overlay/directives/filter-overlay-reset/{public-api.d.ts → index.d.ts} +0 -0
  1480. /package/lib/components/filter/filter-overlay/directives/filter-overlay-submit/{public-api.d.ts → index.d.ts} +0 -0
  1481. /package/lib/components/filter/rich-filter/components/rich-filter-host/{public-api.d.ts → index.d.ts} +0 -0
  1482. /package/lib/components/filter/rich-filter/directives/rich-filter-button/{public-api.d.ts → index.d.ts} +0 -0
  1483. /package/lib/components/filter/rich-filter/directives/rich-filter-button-slot/{public-api.d.ts → index.d.ts} +0 -0
  1484. /package/lib/components/filter/rich-filter/directives/rich-filter-content/{public-api.d.ts → index.d.ts} +0 -0
  1485. /package/lib/components/filter/rich-filter/directives/rich-filter-top/{public-api.d.ts → index.d.ts} +0 -0
  1486. /package/lib/components/forms/components/checkbox/components/checkbox/{public-api.d.ts → index.d.ts} +0 -0
  1487. /package/lib/components/forms/components/checkbox/components/checkbox-field/{public-api.d.ts → index.d.ts} +0 -0
  1488. /package/lib/components/forms/components/checkbox/components/checkbox-group/{public-api.d.ts → index.d.ts} +0 -0
  1489. /package/lib/components/forms/components/checkbox/directives/checkbox-field/{public-api.d.ts → index.d.ts} +0 -0
  1490. /package/lib/components/forms/components/checkbox/directives/checkbox-group-control/{public-api.d.ts → index.d.ts} +0 -0
  1491. /package/lib/components/forms/components/error/components/error/{public-api.d.ts → index.d.ts} +0 -0
  1492. /package/lib/components/forms/components/input/components/date-input/{public-api.d.ts → index.d.ts} +0 -0
  1493. /package/lib/components/forms/components/input/components/date-time-input/{public-api.d.ts → index.d.ts} +0 -0
  1494. /package/lib/components/forms/components/input/components/email-input/{public-api.d.ts → index.d.ts} +0 -0
  1495. /package/lib/components/forms/components/input/components/input-field/{public-api.d.ts → index.d.ts} +0 -0
  1496. /package/lib/components/forms/components/input/components/number-input/{public-api.d.ts → index.d.ts} +0 -0
  1497. /package/lib/components/forms/components/input/components/password-input/{public-api.d.ts → index.d.ts} +0 -0
  1498. /package/lib/components/forms/components/input/components/search-input/{public-api.d.ts → index.d.ts} +0 -0
  1499. /package/lib/components/forms/components/input/components/text-input/{public-api.d.ts → index.d.ts} +0 -0
  1500. /package/lib/components/forms/components/input/components/textarea-input/{public-api.d.ts → index.d.ts} +0 -0
  1501. /package/lib/components/forms/components/input/directives/autosize-textarea/{public-api.d.ts → index.d.ts} +0 -0
  1502. /package/lib/components/forms/components/input/directives/date-input/{public-api.d.ts → index.d.ts} +0 -0
  1503. /package/lib/components/forms/components/input/directives/date-time-input/{public-api.d.ts → index.d.ts} +0 -0
  1504. /package/lib/components/forms/components/input/directives/email-input/{public-api.d.ts → index.d.ts} +0 -0
  1505. /package/lib/components/forms/components/input/directives/if-supports-show-picker/{public-api.d.ts → index.d.ts} +0 -0
  1506. /package/lib/components/forms/components/input/directives/number-input/{public-api.d.ts → index.d.ts} +0 -0
  1507. /package/lib/components/forms/components/input/directives/password-input/{public-api.d.ts → index.d.ts} +0 -0
  1508. /package/lib/components/forms/components/input/directives/search-input/{public-api.d.ts → index.d.ts} +0 -0
  1509. /package/lib/components/forms/components/input/directives/show-picker-trigger/{public-api.d.ts → index.d.ts} +0 -0
  1510. /package/lib/components/forms/components/input/directives/text-input/{public-api.d.ts → index.d.ts} +0 -0
  1511. /package/lib/components/forms/components/input/partials/password-input-toggle/{public-api.d.ts → index.d.ts} +0 -0
  1512. /package/lib/components/forms/components/input/partials/search-input-clear/{public-api.d.ts → index.d.ts} +0 -0
  1513. /package/lib/components/forms/components/label/components/label/{public-api.d.ts → index.d.ts} +0 -0
  1514. /package/lib/components/forms/components/label/directives/label-suffix/{public-api.d.ts → index.d.ts} +0 -0
  1515. /package/lib/components/forms/components/radio/components/radio/{public-api.d.ts → index.d.ts} +0 -0
  1516. /package/lib/components/forms/components/radio/components/radio-field/{public-api.d.ts → index.d.ts} +0 -0
  1517. /package/lib/components/forms/components/radio/components/radio-group/{public-api.d.ts → index.d.ts} +0 -0
  1518. /package/lib/components/forms/components/radio/directives/radio-field/{public-api.d.ts → index.d.ts} +0 -0
  1519. /package/lib/components/forms/components/radio/directives/radio-group/{public-api.d.ts → index.d.ts} +0 -0
  1520. /package/lib/components/forms/components/segmented-button/directives/segmented-button-field/{public-api.d.ts → index.d.ts} +0 -0
  1521. /package/lib/components/forms/components/segmented-button/directives/segmented-button-group/{public-api.d.ts → index.d.ts} +0 -0
  1522. /package/lib/components/forms/components/select/components/combobox/components/combobox/{public-api.d.ts → index.d.ts} +0 -0
  1523. /package/lib/components/forms/components/select/components/combobox/directives/combobox/{public-api.d.ts → index.d.ts} +0 -0
  1524. /package/lib/components/forms/components/select/components/combobox/partials/combobox-body/{public-api.d.ts → index.d.ts} +0 -0
  1525. /package/lib/components/forms/components/select/components/combobox/utils/{public-api.d.ts → index.d.ts} +0 -0
  1526. /package/lib/components/forms/components/select/components/native-select/components/native-select/{public-api.d.ts → index.d.ts} +0 -0
  1527. /package/lib/components/forms/components/select/components/native-select/directives/native-select-input/{public-api.d.ts → index.d.ts} +0 -0
  1528. /package/lib/components/forms/components/select/components/native-select/partials/native-select-option/{public-api.d.ts → index.d.ts} +0 -0
  1529. /package/lib/components/forms/components/select/components/select/components/select/{public-api.d.ts → index.d.ts} +0 -0
  1530. /package/lib/components/forms/components/select/components/select/partials/select-body/{public-api.d.ts → index.d.ts} +0 -0
  1531. /package/lib/components/forms/components/select/components/select/partials/select-option/{public-api.d.ts → index.d.ts} +0 -0
  1532. /package/lib/components/forms/components/select/directives/select-field/{public-api.d.ts → index.d.ts} +0 -0
  1533. /package/lib/components/forms/components/selection-list/components/selection-list-field/{public-api.d.ts → index.d.ts} +0 -0
  1534. /package/lib/components/forms/components/selection-list/components/selection-list-option/{public-api.d.ts → index.d.ts} +0 -0
  1535. /package/lib/components/forms/components/slide-toggle/components/slide-toggle/{public-api.d.ts → index.d.ts} +0 -0
  1536. /package/lib/components/forms/components/slide-toggle/components/slide-toggle-field/{public-api.d.ts → index.d.ts} +0 -0
  1537. /package/lib/components/forms/components/slide-toggle/directives/slide-toggle/{public-api.d.ts → index.d.ts} +0 -0
  1538. /package/lib/components/forms/components/slider/components/slider/{public-api.d.ts → index.d.ts} +0 -0
  1539. /package/lib/components/forms/components/slider/components/slider-field/{public-api.d.ts → index.d.ts} +0 -0
  1540. /package/lib/components/forms/directives/dynamic-form-field/{public-api.d.ts → index.d.ts} +0 -0
  1541. /package/lib/components/forms/directives/dynamic-form-group/{public-api.d.ts → index.d.ts} +0 -0
  1542. /package/lib/components/forms/directives/if-input-empty/{public-api.d.ts → index.d.ts} +0 -0
  1543. /package/lib/components/forms/directives/if-input-filled/{public-api.d.ts → index.d.ts} +0 -0
  1544. /package/lib/components/forms/directives/input-prefix/{public-api.d.ts → index.d.ts} +0 -0
  1545. /package/lib/components/forms/directives/input-suffix/{public-api.d.ts → index.d.ts} +0 -0
  1546. /package/lib/components/forms/directives/static-form-field/{public-api.d.ts → index.d.ts} +0 -0
  1547. /package/lib/components/forms/directives/static-form-group/{public-api.d.ts → index.d.ts} +0 -0
  1548. /package/lib/components/forms/directives/writeable-input/{public-api.d.ts → index.d.ts} +0 -0
  1549. /package/lib/components/masonry/components/masonry/{public-api.d.ts → index.d.ts} +0 -0
  1550. /package/lib/components/masonry/partials/masonry-item/{public-api.d.ts → index.d.ts} +0 -0
  1551. /package/lib/components/masonry/types/{public-api.d.ts → index.d.ts} +0 -0
  1552. /package/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/{public-api.d.ts → index.d.ts} +0 -0
  1553. /package/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/{public-api.d.ts → index.d.ts} +0 -0
  1554. /package/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/{public-api.d.ts → index.d.ts} +0 -0
  1555. /package/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-title/{public-api.d.ts → index.d.ts} +0 -0
  1556. /package/lib/components/overlay/components/dialog/components/dialog-container/{public-api.d.ts → index.d.ts} +0 -0
  1557. /package/lib/components/overlay/components/dialog/partials/dialog-close/{public-api.d.ts → index.d.ts} +0 -0
  1558. /package/lib/components/overlay/components/dialog/partials/dialog-container-base/{public-api.d.ts → index.d.ts} +0 -0
  1559. /package/lib/components/overlay/components/dialog/partials/dialog-title/{public-api.d.ts → index.d.ts} +0 -0
  1560. /package/lib/components/overlay/components/menu/components/menu/{public-api.d.ts → index.d.ts} +0 -0
  1561. /package/lib/components/overlay/components/menu/components/menu-container/{public-api.d.ts → index.d.ts} +0 -0
  1562. /package/lib/components/overlay/components/menu/directives/menu-item/{public-api.d.ts → index.d.ts} +0 -0
  1563. /package/lib/components/overlay/components/menu-deprecated/{public-api.d.ts → index.d.ts} +0 -0
  1564. /package/lib/components/overlay/components/overlay/components/overlay-container/{public-api.d.ts → index.d.ts} +0 -0
  1565. /package/lib/components/overlay/components/overlay/partials/overlay-body/{public-api.d.ts → index.d.ts} +0 -0
  1566. /package/lib/components/overlay/components/overlay/partials/overlay-close/{public-api.d.ts → index.d.ts} +0 -0
  1567. /package/lib/components/overlay/components/overlay/partials/overlay-footer/{public-api.d.ts → index.d.ts} +0 -0
  1568. /package/lib/components/overlay/components/overlay/partials/overlay-header/{public-api.d.ts → index.d.ts} +0 -0
  1569. /package/lib/components/overlay/components/overlay/partials/overlay-title/{public-api.d.ts → index.d.ts} +0 -0
  1570. /package/lib/components/overlay/components/toggletip/components/toggletip/{public-api.d.ts → index.d.ts} +0 -0
  1571. /package/lib/components/overlay/components/toggletip/directives/toggletip/{public-api.d.ts → index.d.ts} +0 -0
  1572. /package/lib/components/overlay/components/tooltip/components/tooltip/{public-api.d.ts → index.d.ts} +0 -0
  1573. /package/lib/components/overlay/components/tooltip/directives/tooltip/{public-api.d.ts → index.d.ts} +0 -0
  1574. /package/lib/components/overlay/directives/dynamic-overlay-title/{public-api.d.ts → index.d.ts} +0 -0
  1575. /package/lib/components/overlay/services/{public-api.d.ts → index.d.ts} +0 -0
  1576. /package/lib/components/overlay/utils/{public-api.d.ts → index.d.ts} +0 -0
  1577. /package/lib/components/pagination/components/pagination/{public-api.d.ts → index.d.ts} +0 -0
  1578. /package/lib/components/pagination/partials/pagination-link/{public-api.d.ts → index.d.ts} +0 -0
  1579. /package/lib/components/picture/{public-api.d.ts → index.d.ts} +0 -0
  1580. /package/lib/components/progress-spinner/{public-api.d.ts → index.d.ts} +0 -0
  1581. /package/lib/components/query-error/components/query-error/{public-api.d.ts → index.d.ts} +0 -0
  1582. /package/lib/components/query-error/directives/query-error/{public-api.d.ts → index.d.ts} +0 -0
  1583. /package/lib/components/scrollable/components/scrollable/{public-api.d.ts → index.d.ts} +0 -0
  1584. /package/lib/components/scrollable/directives/scrollable-ignore-child/{public-api.d.ts → index.d.ts} +0 -0
  1585. /package/lib/components/scrollable/directives/scrollable-is-active-child/{public-api.d.ts → index.d.ts} +0 -0
  1586. /package/lib/components/skeleton/components/skeleton/{public-api.d.ts → index.d.ts} +0 -0
  1587. /package/lib/components/skeleton/partials/skeleton-item/{public-api.d.ts → index.d.ts} +0 -0
  1588. /package/lib/components/sort/components/sort-header/{public-api.d.ts → index.d.ts} +0 -0
  1589. /package/lib/components/sort/partials/sort/{public-api.d.ts → index.d.ts} +0 -0
  1590. /package/lib/components/table/components/table/{public-api.d.ts → index.d.ts} +0 -0
  1591. /package/lib/components/table/partials/cells/footer-cell/{public-api.d.ts → index.d.ts} +0 -0
  1592. /package/lib/components/table/partials/cells/footer-cell-def/{public-api.d.ts → index.d.ts} +0 -0
  1593. /package/lib/components/table/partials/cells/text-column/{public-api.d.ts → index.d.ts} +0 -0
  1594. /package/lib/components/table/partials/rows/footer-row/{public-api.d.ts → index.d.ts} +0 -0
  1595. /package/lib/components/table/partials/rows/footer-row-def/{public-api.d.ts → index.d.ts} +0 -0
  1596. /package/lib/components/table/partials/rows/header-row/{public-api.d.ts → index.d.ts} +0 -0
  1597. /package/lib/components/table/partials/rows/header-row-def/{public-api.d.ts → index.d.ts} +0 -0
  1598. /package/lib/components/table/partials/rows/no-data-row/{public-api.d.ts → index.d.ts} +0 -0
  1599. /package/lib/components/table/partials/rows/recycle-rows/{public-api.d.ts → index.d.ts} +0 -0
  1600. /package/lib/components/table/partials/rows/row/{public-api.d.ts → index.d.ts} +0 -0
  1601. /package/lib/components/table/partials/rows/row-def/{public-api.d.ts → index.d.ts} +0 -0
  1602. /package/lib/components/table/partials/table-busy/{public-api.d.ts → index.d.ts} +0 -0
  1603. /package/lib/components/table/partials/table-busy-outlet/{public-api.d.ts → index.d.ts} +0 -0
  1604. /package/lib/components/table/utils/{public-api.d.ts → index.d.ts} +0 -0
  1605. /package/lib/components/tabs/components/inline-tabs/{public-api.d.ts → index.d.ts} +0 -0
  1606. /package/lib/components/tabs/components/nav-tabs/{public-api.d.ts → index.d.ts} +0 -0
  1607. /package/lib/components/tabs/partials/inline-tabs/inline-tab/{public-api.d.ts → index.d.ts} +0 -0
  1608. /package/lib/components/tabs/partials/inline-tabs/inline-tab-body/{public-api.d.ts → index.d.ts} +0 -0
  1609. /package/lib/components/tabs/partials/inline-tabs/inline-tab-header/{public-api.d.ts → index.d.ts} +0 -0
  1610. /package/lib/components/tabs/types/{public-api.d.ts → index.d.ts} +0 -0
  1611. /package/lib/utils/{public-api.d.ts → index.d.ts} +0 -0
@@ -1,10 +1,11 @@
1
1
  import { NgClass } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, Component, ContentChildren, ElementRef, EventEmitter, Input, Output, ViewChild, ViewEncapsulation, booleanAttribute, computed, effect, inject, isDevMode, numberAttribute, signal, } from '@angular/core';
3
3
  import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
4
- import { CursorDragScrollDirective, LetDirective, ObserveScrollStateDirective, TypedQueryList, getFirstAndLastPartialIntersection, isElementVisible, nextFrame, scrollToElement, signalElementChildren, signalElementIntersection, signalElementScrollState, signalHostAttributes, signalHostClasses, } from '@ethlete/core';
4
+ import { CursorDragScrollDirective, LetDirective, ObserveScrollStateDirective, TypedQueryList, getFirstAndLastPartialIntersection, isElementVisible, nextFrame, scrollToElement, signalElementChildren, signalElementIntersection, signalElementScrollState, signalHostAttributes, signalHostClasses, signalHostElementDimensions, signalHostStyles, } from '@ethlete/core';
5
5
  import { BehaviorSubject, Subject, combineLatest, debounceTime, filter, fromEvent, map, take, takeUntil, tap, } from 'rxjs';
6
- import { ChevronIconComponent } from '../../../icons';
7
- import { SCROLLABLE_IS_ACTIVE_CHILD_TOKEN, ScrollableIgnoreChildDirective, ScrollableIsActiveChildDirective, isScrollableChildIgnored, } from '../../directives';
6
+ import { ChevronIconComponent } from '../../../icons/chevron-icon';
7
+ import { ScrollableIgnoreChildDirective, isScrollableChildIgnored } from '../../directives/scrollable-ignore-child';
8
+ import { SCROLLABLE_IS_ACTIVE_CHILD_TOKEN, ScrollableIsActiveChildDirective, } from '../../directives/scrollable-is-active-child';
8
9
  import * as i0 from "@angular/core";
9
10
  // Thresholds for the intersection observer.
10
11
  const ELEMENT_INTERSECTION_THRESHOLD = [
@@ -106,6 +107,7 @@ export class ScrollableComponent {
106
107
  this.lastElementIntersection = signalElementIntersection(this.lastElement, { root: this.scrollable });
107
108
  this.lastElementVisibility = signal(null);
108
109
  this.allScrollableChildren = signalElementChildren(this.scrollableContainer);
110
+ this.scrollableDimensions = signalHostElementDimensions();
109
111
  this.scrollableChildren = computed(() => this.allScrollableChildren().filter((c) => !isScrollableChildIgnored(c)));
110
112
  this._disableSnapping$ = new Subject();
111
113
  this.scrollableContentIntersections = signalElementIntersection(this.scrollableChildren, {
@@ -141,6 +143,17 @@ export class ScrollableComponent {
141
143
  }
142
144
  return intersection.isIntersecting;
143
145
  });
146
+ this._actualItemSize = computed(() => {
147
+ if (this.itemSize() !== 'full')
148
+ return null;
149
+ const dimensions = this.scrollableDimensions();
150
+ if (this.direction() === 'horizontal') {
151
+ return dimensions.rect?.width ?? null;
152
+ }
153
+ else {
154
+ return dimensions.rect?.height ?? null;
155
+ }
156
+ });
144
157
  this.enableOverlayAnimations = signal(false);
145
158
  this._initialScrollableNavigation = signal([]);
146
159
  this.scrollableNavigation = computed(() => {
@@ -168,6 +181,7 @@ export class ScrollableComponent {
168
181
  });
169
182
  this.hostAttributeBindings = signalHostAttributes({
170
183
  'item-size': this.itemSize,
184
+ 'actual-item-size': this._actualItemSize,
171
185
  direction: this.direction,
172
186
  'render-scrollbars': this.renderScrollbars,
173
187
  'sticky-buttons': this.stickyButtons,
@@ -178,6 +192,9 @@ export class ScrollableComponent {
178
192
  'et-scrollable--is-at-end': this.isAtEnd,
179
193
  'et-scrollable--enable-overlay-animations': this.enableOverlayAnimations,
180
194
  });
195
+ this.hostStyleBindings = signalHostStyles({
196
+ '--actual-item-size': computed(() => (this._actualItemSize() !== null ? `${this._actualItemSize()}px` : null)),
197
+ });
181
198
  effect(() => {
182
199
  const scrollable = this.scrollable()?.nativeElement;
183
200
  const firstElement = this.firstElement()?.nativeElement;
@@ -307,11 +324,11 @@ export class ScrollableComponent {
307
324
  if (isFirstAndLastIntersectionEqual) {
308
325
  const intersection = intersections.first.intersection.target.getBoundingClientRect();
309
326
  const isStartOfElementVisible = this.direction() === 'horizontal'
310
- ? intersection.left >= scrollableRect.left
311
- : intersection.top >= scrollableRect.top;
327
+ ? Math.round(intersection.left) >= Math.round(scrollableRect.left)
328
+ : Math.round(intersection.top) >= Math.round(scrollableRect.top);
312
329
  const isEndOfElementVisible = this.direction() === 'horizontal'
313
- ? intersection.right <= scrollableRect.right
314
- : intersection.bottom <= scrollableRect.bottom;
330
+ ? Math.round(intersection.right) <= Math.round(scrollableRect.right)
331
+ : Math.round(intersection.bottom) <= Math.round(scrollableRect.bottom);
315
332
  if (!isStartOfElementVisible || !isEndOfElementVisible) {
316
333
  if (direction === 'start') {
317
334
  if (isStartOfElementVisible) {
@@ -358,7 +375,7 @@ export class ScrollableComponent {
358
375
  }
359
376
  const data = direction === 'start' ? intersections.first : intersections.last;
360
377
  let elementToScrollTo = data.intersection.target;
361
- if (data.intersection.intersectionRatio === 1) {
378
+ if (Math.round(data.intersection.intersectionRatio) === 1) {
362
379
  if (direction === 'start' && data.index === 0) {
363
380
  return;
364
381
  }
@@ -500,10 +517,10 @@ export class ScrollableComponent {
500
517
  _disableSnapping() {
501
518
  this._disableSnapping$.next();
502
519
  }
503
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ScrollableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
504
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.4", type: ScrollableComponent, isStandalone: true, selector: "et-scrollable", inputs: { _itemSize: ["itemSize", "_itemSize"], _direction: ["direction", "_direction"], _scrollableRole: ["scrollableRole", "_scrollableRole"], _scrollableClass: ["scrollableClass", "_scrollableClass"], _renderNavigation: ["renderNavigation", "_renderNavigation", booleanAttribute], _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", "_scrollMode"], _snap: ["snap", "_snap", booleanAttribute], _scrollMargin: ["scrollMargin", "_scrollMargin", numberAttribute] }, outputs: { scrollStateChange: "scrollStateChange", intersectionChange: "intersectionChange" }, host: { classAttribute: "et-scrollable" }, queries: [{ propertyName: "_activeElementList", predicate: SCROLLABLE_IS_ACTIVE_CHILD_TOKEN, descendants: true }], viewQueries: [{ propertyName: "_scrollable", first: true, predicate: ["scrollable"], descendants: true, static: true }, { propertyName: "_scrollableContainer", first: true, predicate: ["scrollableContainer"], descendants: true, static: true }, { propertyName: "_firstElement", first: true, predicate: ["firstElement"], descendants: true, static: true }, { propertyName: "_lastElement", first: true, predicate: ["lastElement"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"et-scrollable-wrapper\">\n <div\n #scrollable\n [attr.role]=\"scrollableRole() ?? undefined\"\n [etCursorDragScroll]=\"cursorDragScroll()\"\n [allowedDirection]=\"direction()\"\n (cursorDragStart)=\"setIsCursorDragging(true)\"\n (cursorDragEnd)=\"setIsCursorDragging(false)\"\n class=\"et-scrollable-container-outer\"\n >\n <div #scrollableContainer [ngClass]=\"scrollableClass()\" class=\"et-scrollable-container\">\n <div #firstElement class=\"et-scroll-observer-first-element\" etScrollableIgnoreChild></div>\n <ng-content />\n <div #lastElement class=\"et-scroll-observer-last-element\" etScrollableIgnoreChild></div>\n </div>\n </div>\n\n @if (renderMasks()) {\n <div 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\n @if (renderButtons()) {\n <div 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)=\"scrollToEndDirection()\"\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 }\n</div>\n\n@if (renderNavigation()) {\n <div class=\"et-scrollable-navigation\" aria-hidden=\"true\">\n @for (item of scrollableNavigation(); track i; let i = $index) {\n <button\n [class.et-scrollable-navigation-item--active]=\"item.isActive\"\n (click)=\"scrollToElementViaNavigation(i, item.element)\"\n class=\"et-scrollable-navigation-item\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n ></button>\n }\n </div>\n}\n", styles: [".et-scrollable{--mask: #121212 0, transparent 100%;--mask-size: 25px;--_auto-size: min-content;--_flow: column;display:block}.et-scrollable .et-scrollable-wrapper{display:grid;position:relative}.et-scrollable[item-size=same]{--_auto-size: 1fr}.et-scrollable[item-size=full]{--_auto-size: 100%}.et-scrollable[render-scrollbars=false] .et-scrollable-container-outer{scrollbar-width:none}.et-scrollable[render-scrollbars=false] .et-scrollable-container-outer::-webkit-scrollbar{display:none}.et-scrollable[direction=horizontal] .et-scrollable-container-outer{overflow-x:auto;overflow-y:hidden}.et-scrollable[direction=horizontal] .et-scrollable-container{grid-auto-columns:var(--_auto-size)}.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=horizontal] .et-scroll-observer-first-element,.et-scrollable[direction=horizontal] .et-scroll-observer-last-element{block-size:100%;inline-size:1px}.et-scrollable[direction=horizontal] .et-scroll-observer-first-element{inset-inline-start:1px}.et-scrollable[direction=horizontal] .et-scroll-observer-last-element{inset-inline-end:1px}.et-scrollable[direction=vertical]{--_flow: row}.et-scrollable[direction=vertical] .et-scrollable-container-outer{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[direction=vertical] .et-scrollable-button--start{inset-inline-start:calc(50% - 20px);transform:rotate(0)}.et-scrollable[direction=vertical] .et-scrollable-button--end{inset-inline-start:calc(50% - 20px);transform:rotate(180deg)}.et-scrollable[direction=vertical] .et-scroll-observer-first-element,.et-scrollable[direction=vertical] .et-scroll-observer-last-element{inline-size:100%;block-size:1px}.et-scrollable[direction=vertical] .et-scroll-observer-first-element{inset-block-start:1px}.et-scrollable[direction=vertical] .et-scroll-observer-last-element{inset-block-end:1px}.et-scrollable:not(.et-scrollable--is-at-start) .et-scrollable-masks .et-scrollable-mask--start,.et-scrollable:not(.et-scrollable--is-at-start) .et-scrollable-buttons .et-scrollable-button--start{opacity:1}.et-scrollable:not(.et-scrollable--is-at-start) .et-scrollable-buttons .et-scrollable-button--start{pointer-events:all}.et-scrollable:not(.et-scrollable--is-at-end) .et-scrollable-masks .et-scrollable-mask--end,.et-scrollable:not(.et-scrollable--is-at-end) .et-scrollable-buttons .et-scrollable-button--end{opacity:1}.et-scrollable:not(.et-scrollable--is-at-end) .et-scrollable-buttons .et-scrollable-button--end{pointer-events:all}.et-scrollable .et-scrollable-container-outer{overflow:auto;display:grid;position:relative;grid-row:1/1;grid-column:1/1}.et-scrollable .et-scroll-observer-first-element,.et-scrollable .et-scroll-observer-last-element{position:absolute;pointer-events:none}.et-scrollable .et-scrollable-container{display:grid;grid-auto-flow:var(--_flow);position:relative}.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}.et-scrollable.et-scrollable--can-scroll.et-scrollable--enable-overlay-animations .et-scrollable-mask,.et-scrollable.et-scrollable--can-scroll.et-scrollable--enable-overlay-animations .et-scrollable-button{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]{--_sticky-margin: 10%}.et-scrollable[sticky-buttons=true] .et-scrollable-button{position:sticky}.et-scrollable[sticky-buttons=true][direction=horizontal] .et-scrollable-buttons{margin-block:var(--_sticky-margin)}.et-scrollable[sticky-buttons=true][direction=vertical] .et-scrollable-buttons{margin-inline:var(--_sticky-margin)}.et-scrollable[sticky-buttons=true][direction=vertical] .et-scrollable-buttons .et-scrollable-button--end{inset-block-start:100%}.et-scrollable .et-scrollable-navigation{display:flex;justify-content:center;gap:10px;margin-block-start:10px}.et-scrollable .et-scrollable-navigation .et-scrollable-navigation-item{all:unset;inline-size:10px;block-size:10px;display:block;background-color:#4b4b4b;border-radius:50%;cursor:pointer}.et-scrollable .et-scrollable-navigation .et-scrollable-navigation-item.et-scrollable-navigation-item--active{background-color:#c6c6c6}\n"], dependencies: [{ kind: "directive", type: CursorDragScrollDirective, selector: "[etCursorDragScroll]", inputs: ["etCursorDragScroll", "allowedDirection"], outputs: ["cursorDragStart", "cursorDragMove", "cursorDragEnd"], exportAs: ["etCursorDragScroll"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ChevronIconComponent, selector: "et-chevron-icon" }, { kind: "directive", type: ScrollableIgnoreChildDirective, selector: "[etScrollableIgnoreChild]", inputs: ["etScrollableIgnoreChild"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
520
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ScrollableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
521
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.0", type: ScrollableComponent, isStandalone: true, selector: "et-scrollable", inputs: { _itemSize: ["itemSize", "_itemSize"], _direction: ["direction", "_direction"], _scrollableRole: ["scrollableRole", "_scrollableRole"], _scrollableClass: ["scrollableClass", "_scrollableClass"], _renderNavigation: ["renderNavigation", "_renderNavigation", booleanAttribute], _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", "_scrollMode"], _snap: ["snap", "_snap", booleanAttribute], _scrollMargin: ["scrollMargin", "_scrollMargin", numberAttribute] }, outputs: { scrollStateChange: "scrollStateChange", intersectionChange: "intersectionChange" }, host: { classAttribute: "et-scrollable" }, queries: [{ propertyName: "_activeElementList", predicate: SCROLLABLE_IS_ACTIVE_CHILD_TOKEN, descendants: true }], viewQueries: [{ propertyName: "_scrollable", first: true, predicate: ["scrollable"], descendants: true, static: true }, { propertyName: "_scrollableContainer", first: true, predicate: ["scrollableContainer"], descendants: true, static: true }, { propertyName: "_firstElement", first: true, predicate: ["firstElement"], descendants: true, static: true }, { propertyName: "_lastElement", first: true, predicate: ["lastElement"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"et-scrollable-wrapper\">\n <div\n #scrollable\n [attr.role]=\"scrollableRole() ?? undefined\"\n [etCursorDragScroll]=\"cursorDragScroll()\"\n [allowedDirection]=\"direction()\"\n (cursorDragStart)=\"setIsCursorDragging(true)\"\n (cursorDragEnd)=\"setIsCursorDragging(false)\"\n class=\"et-scrollable-container-outer\"\n >\n <div #scrollableContainer [ngClass]=\"scrollableClass()\" class=\"et-scrollable-container\">\n <div #firstElement class=\"et-scroll-observer-first-element\" etScrollableIgnoreChild></div>\n <ng-content />\n <div #lastElement class=\"et-scroll-observer-last-element\" etScrollableIgnoreChild></div>\n </div>\n </div>\n\n @if (renderMasks()) {\n <div 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\n @if (renderButtons()) {\n <div 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)=\"scrollToEndDirection()\"\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 }\n</div>\n\n@if (renderNavigation()) {\n <div class=\"et-scrollable-navigation\" aria-hidden=\"true\">\n @for (item of scrollableNavigation(); track i; let i = $index) {\n <button\n [class.et-scrollable-navigation-item--active]=\"item.isActive\"\n (click)=\"scrollToElementViaNavigation(i, item.element)\"\n class=\"et-scrollable-navigation-item\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n ></button>\n }\n </div>\n}\n", styles: [".et-scrollable{--mask: #121212 0, transparent 100%;--mask-size: 25px;--_auto-size: min-content;--_flow: column;display:block}.et-scrollable .et-scrollable-wrapper{display:grid;position:relative}.et-scrollable[item-size=same]{--_auto-size: 1fr}.et-scrollable[item-size=full]{--_auto-size: var(--actual-item-size)}.et-scrollable[render-scrollbars=false] .et-scrollable-container-outer{scrollbar-width:none}.et-scrollable[render-scrollbars=false] .et-scrollable-container-outer::-webkit-scrollbar{display:none}.et-scrollable[direction=horizontal] .et-scrollable-container-outer{overflow-x:auto;overflow-y:hidden}.et-scrollable[direction=horizontal] .et-scrollable-container{grid-auto-columns:var(--_auto-size)}.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=horizontal] .et-scroll-observer-first-element,.et-scrollable[direction=horizontal] .et-scroll-observer-last-element{block-size:100%;inline-size:1px}.et-scrollable[direction=horizontal] .et-scroll-observer-first-element{inset-inline-start:1px}.et-scrollable[direction=horizontal] .et-scroll-observer-last-element{inset-inline-end:1px}.et-scrollable[direction=vertical]{--_flow: row}.et-scrollable[direction=vertical] .et-scrollable-container-outer{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[direction=vertical] .et-scrollable-button--start{inset-inline-start:calc(50% - 20px);transform:rotate(0)}.et-scrollable[direction=vertical] .et-scrollable-button--end{inset-inline-start:calc(50% - 20px);transform:rotate(180deg)}.et-scrollable[direction=vertical] .et-scroll-observer-first-element,.et-scrollable[direction=vertical] .et-scroll-observer-last-element{inline-size:100%;block-size:1px}.et-scrollable[direction=vertical] .et-scroll-observer-first-element{inset-block-start:1px}.et-scrollable[direction=vertical] .et-scroll-observer-last-element{inset-block-end:1px}.et-scrollable:not(.et-scrollable--is-at-start) .et-scrollable-masks .et-scrollable-mask--start,.et-scrollable:not(.et-scrollable--is-at-start) .et-scrollable-buttons .et-scrollable-button--start{opacity:1}.et-scrollable:not(.et-scrollable--is-at-start) .et-scrollable-buttons .et-scrollable-button--start{pointer-events:all}.et-scrollable:not(.et-scrollable--is-at-end) .et-scrollable-masks .et-scrollable-mask--end,.et-scrollable:not(.et-scrollable--is-at-end) .et-scrollable-buttons .et-scrollable-button--end{opacity:1}.et-scrollable:not(.et-scrollable--is-at-end) .et-scrollable-buttons .et-scrollable-button--end{pointer-events:all}.et-scrollable .et-scrollable-container-outer{overflow:auto;display:grid;position:relative;grid-row:1/1;grid-column:1/1}.et-scrollable .et-scroll-observer-first-element,.et-scrollable .et-scroll-observer-last-element{position:absolute;pointer-events:none}.et-scrollable .et-scrollable-container{display:grid;grid-auto-flow:var(--_flow);position:relative}.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}.et-scrollable.et-scrollable--can-scroll.et-scrollable--enable-overlay-animations .et-scrollable-mask,.et-scrollable.et-scrollable--can-scroll.et-scrollable--enable-overlay-animations .et-scrollable-button{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]{--_sticky-margin: 10%}.et-scrollable[sticky-buttons=true] .et-scrollable-button{position:sticky}.et-scrollable[sticky-buttons=true][direction=horizontal] .et-scrollable-buttons{margin-block:var(--_sticky-margin)}.et-scrollable[sticky-buttons=true][direction=vertical] .et-scrollable-buttons{margin-inline:var(--_sticky-margin)}.et-scrollable[sticky-buttons=true][direction=vertical] .et-scrollable-buttons .et-scrollable-button--end{inset-block-start:100%}.et-scrollable .et-scrollable-navigation{display:flex;justify-content:center;gap:10px;margin-block-start:10px}.et-scrollable .et-scrollable-navigation .et-scrollable-navigation-item{all:unset;inline-size:10px;block-size:10px;display:block;background-color:#4b4b4b;border-radius:50%;cursor:pointer}.et-scrollable .et-scrollable-navigation .et-scrollable-navigation-item.et-scrollable-navigation-item--active{background-color:#c6c6c6}\n"], dependencies: [{ kind: "directive", type: CursorDragScrollDirective, selector: "[etCursorDragScroll]", inputs: ["etCursorDragScroll", "allowedDirection"], outputs: ["cursorDragStart", "cursorDragMove", "cursorDragEnd"], exportAs: ["etCursorDragScroll"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ChevronIconComponent, selector: "et-chevron-icon" }, { kind: "directive", type: ScrollableIgnoreChildDirective, selector: "[etScrollableIgnoreChild]", inputs: ["etScrollableIgnoreChild"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
505
522
  }
506
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ScrollableComponent, decorators: [{
523
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ScrollableComponent, decorators: [{
507
524
  type: Component,
508
525
  args: [{ selector: 'et-scrollable', standalone: true, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
509
526
  CursorDragScrollDirective,
@@ -515,7 +532,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
515
532
  ScrollableIgnoreChildDirective,
516
533
  ], host: {
517
534
  class: 'et-scrollable',
518
- }, template: "<div class=\"et-scrollable-wrapper\">\n <div\n #scrollable\n [attr.role]=\"scrollableRole() ?? undefined\"\n [etCursorDragScroll]=\"cursorDragScroll()\"\n [allowedDirection]=\"direction()\"\n (cursorDragStart)=\"setIsCursorDragging(true)\"\n (cursorDragEnd)=\"setIsCursorDragging(false)\"\n class=\"et-scrollable-container-outer\"\n >\n <div #scrollableContainer [ngClass]=\"scrollableClass()\" class=\"et-scrollable-container\">\n <div #firstElement class=\"et-scroll-observer-first-element\" etScrollableIgnoreChild></div>\n <ng-content />\n <div #lastElement class=\"et-scroll-observer-last-element\" etScrollableIgnoreChild></div>\n </div>\n </div>\n\n @if (renderMasks()) {\n <div 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\n @if (renderButtons()) {\n <div 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)=\"scrollToEndDirection()\"\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 }\n</div>\n\n@if (renderNavigation()) {\n <div class=\"et-scrollable-navigation\" aria-hidden=\"true\">\n @for (item of scrollableNavigation(); track i; let i = $index) {\n <button\n [class.et-scrollable-navigation-item--active]=\"item.isActive\"\n (click)=\"scrollToElementViaNavigation(i, item.element)\"\n class=\"et-scrollable-navigation-item\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n ></button>\n }\n </div>\n}\n", styles: [".et-scrollable{--mask: #121212 0, transparent 100%;--mask-size: 25px;--_auto-size: min-content;--_flow: column;display:block}.et-scrollable .et-scrollable-wrapper{display:grid;position:relative}.et-scrollable[item-size=same]{--_auto-size: 1fr}.et-scrollable[item-size=full]{--_auto-size: 100%}.et-scrollable[render-scrollbars=false] .et-scrollable-container-outer{scrollbar-width:none}.et-scrollable[render-scrollbars=false] .et-scrollable-container-outer::-webkit-scrollbar{display:none}.et-scrollable[direction=horizontal] .et-scrollable-container-outer{overflow-x:auto;overflow-y:hidden}.et-scrollable[direction=horizontal] .et-scrollable-container{grid-auto-columns:var(--_auto-size)}.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=horizontal] .et-scroll-observer-first-element,.et-scrollable[direction=horizontal] .et-scroll-observer-last-element{block-size:100%;inline-size:1px}.et-scrollable[direction=horizontal] .et-scroll-observer-first-element{inset-inline-start:1px}.et-scrollable[direction=horizontal] .et-scroll-observer-last-element{inset-inline-end:1px}.et-scrollable[direction=vertical]{--_flow: row}.et-scrollable[direction=vertical] .et-scrollable-container-outer{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[direction=vertical] .et-scrollable-button--start{inset-inline-start:calc(50% - 20px);transform:rotate(0)}.et-scrollable[direction=vertical] .et-scrollable-button--end{inset-inline-start:calc(50% - 20px);transform:rotate(180deg)}.et-scrollable[direction=vertical] .et-scroll-observer-first-element,.et-scrollable[direction=vertical] .et-scroll-observer-last-element{inline-size:100%;block-size:1px}.et-scrollable[direction=vertical] .et-scroll-observer-first-element{inset-block-start:1px}.et-scrollable[direction=vertical] .et-scroll-observer-last-element{inset-block-end:1px}.et-scrollable:not(.et-scrollable--is-at-start) .et-scrollable-masks .et-scrollable-mask--start,.et-scrollable:not(.et-scrollable--is-at-start) .et-scrollable-buttons .et-scrollable-button--start{opacity:1}.et-scrollable:not(.et-scrollable--is-at-start) .et-scrollable-buttons .et-scrollable-button--start{pointer-events:all}.et-scrollable:not(.et-scrollable--is-at-end) .et-scrollable-masks .et-scrollable-mask--end,.et-scrollable:not(.et-scrollable--is-at-end) .et-scrollable-buttons .et-scrollable-button--end{opacity:1}.et-scrollable:not(.et-scrollable--is-at-end) .et-scrollable-buttons .et-scrollable-button--end{pointer-events:all}.et-scrollable .et-scrollable-container-outer{overflow:auto;display:grid;position:relative;grid-row:1/1;grid-column:1/1}.et-scrollable .et-scroll-observer-first-element,.et-scrollable .et-scroll-observer-last-element{position:absolute;pointer-events:none}.et-scrollable .et-scrollable-container{display:grid;grid-auto-flow:var(--_flow);position:relative}.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}.et-scrollable.et-scrollable--can-scroll.et-scrollable--enable-overlay-animations .et-scrollable-mask,.et-scrollable.et-scrollable--can-scroll.et-scrollable--enable-overlay-animations .et-scrollable-button{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]{--_sticky-margin: 10%}.et-scrollable[sticky-buttons=true] .et-scrollable-button{position:sticky}.et-scrollable[sticky-buttons=true][direction=horizontal] .et-scrollable-buttons{margin-block:var(--_sticky-margin)}.et-scrollable[sticky-buttons=true][direction=vertical] .et-scrollable-buttons{margin-inline:var(--_sticky-margin)}.et-scrollable[sticky-buttons=true][direction=vertical] .et-scrollable-buttons .et-scrollable-button--end{inset-block-start:100%}.et-scrollable .et-scrollable-navigation{display:flex;justify-content:center;gap:10px;margin-block-start:10px}.et-scrollable .et-scrollable-navigation .et-scrollable-navigation-item{all:unset;inline-size:10px;block-size:10px;display:block;background-color:#4b4b4b;border-radius:50%;cursor:pointer}.et-scrollable .et-scrollable-navigation .et-scrollable-navigation-item.et-scrollable-navigation-item--active{background-color:#c6c6c6}\n"] }]
535
+ }, template: "<div class=\"et-scrollable-wrapper\">\n <div\n #scrollable\n [attr.role]=\"scrollableRole() ?? undefined\"\n [etCursorDragScroll]=\"cursorDragScroll()\"\n [allowedDirection]=\"direction()\"\n (cursorDragStart)=\"setIsCursorDragging(true)\"\n (cursorDragEnd)=\"setIsCursorDragging(false)\"\n class=\"et-scrollable-container-outer\"\n >\n <div #scrollableContainer [ngClass]=\"scrollableClass()\" class=\"et-scrollable-container\">\n <div #firstElement class=\"et-scroll-observer-first-element\" etScrollableIgnoreChild></div>\n <ng-content />\n <div #lastElement class=\"et-scroll-observer-last-element\" etScrollableIgnoreChild></div>\n </div>\n </div>\n\n @if (renderMasks()) {\n <div 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\n @if (renderButtons()) {\n <div 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)=\"scrollToEndDirection()\"\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 }\n</div>\n\n@if (renderNavigation()) {\n <div class=\"et-scrollable-navigation\" aria-hidden=\"true\">\n @for (item of scrollableNavigation(); track i; let i = $index) {\n <button\n [class.et-scrollable-navigation-item--active]=\"item.isActive\"\n (click)=\"scrollToElementViaNavigation(i, item.element)\"\n class=\"et-scrollable-navigation-item\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n ></button>\n }\n </div>\n}\n", styles: [".et-scrollable{--mask: #121212 0, transparent 100%;--mask-size: 25px;--_auto-size: min-content;--_flow: column;display:block}.et-scrollable .et-scrollable-wrapper{display:grid;position:relative}.et-scrollable[item-size=same]{--_auto-size: 1fr}.et-scrollable[item-size=full]{--_auto-size: var(--actual-item-size)}.et-scrollable[render-scrollbars=false] .et-scrollable-container-outer{scrollbar-width:none}.et-scrollable[render-scrollbars=false] .et-scrollable-container-outer::-webkit-scrollbar{display:none}.et-scrollable[direction=horizontal] .et-scrollable-container-outer{overflow-x:auto;overflow-y:hidden}.et-scrollable[direction=horizontal] .et-scrollable-container{grid-auto-columns:var(--_auto-size)}.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=horizontal] .et-scroll-observer-first-element,.et-scrollable[direction=horizontal] .et-scroll-observer-last-element{block-size:100%;inline-size:1px}.et-scrollable[direction=horizontal] .et-scroll-observer-first-element{inset-inline-start:1px}.et-scrollable[direction=horizontal] .et-scroll-observer-last-element{inset-inline-end:1px}.et-scrollable[direction=vertical]{--_flow: row}.et-scrollable[direction=vertical] .et-scrollable-container-outer{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[direction=vertical] .et-scrollable-button--start{inset-inline-start:calc(50% - 20px);transform:rotate(0)}.et-scrollable[direction=vertical] .et-scrollable-button--end{inset-inline-start:calc(50% - 20px);transform:rotate(180deg)}.et-scrollable[direction=vertical] .et-scroll-observer-first-element,.et-scrollable[direction=vertical] .et-scroll-observer-last-element{inline-size:100%;block-size:1px}.et-scrollable[direction=vertical] .et-scroll-observer-first-element{inset-block-start:1px}.et-scrollable[direction=vertical] .et-scroll-observer-last-element{inset-block-end:1px}.et-scrollable:not(.et-scrollable--is-at-start) .et-scrollable-masks .et-scrollable-mask--start,.et-scrollable:not(.et-scrollable--is-at-start) .et-scrollable-buttons .et-scrollable-button--start{opacity:1}.et-scrollable:not(.et-scrollable--is-at-start) .et-scrollable-buttons .et-scrollable-button--start{pointer-events:all}.et-scrollable:not(.et-scrollable--is-at-end) .et-scrollable-masks .et-scrollable-mask--end,.et-scrollable:not(.et-scrollable--is-at-end) .et-scrollable-buttons .et-scrollable-button--end{opacity:1}.et-scrollable:not(.et-scrollable--is-at-end) .et-scrollable-buttons .et-scrollable-button--end{pointer-events:all}.et-scrollable .et-scrollable-container-outer{overflow:auto;display:grid;position:relative;grid-row:1/1;grid-column:1/1}.et-scrollable .et-scroll-observer-first-element,.et-scrollable .et-scroll-observer-last-element{position:absolute;pointer-events:none}.et-scrollable .et-scrollable-container{display:grid;grid-auto-flow:var(--_flow);position:relative}.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}.et-scrollable.et-scrollable--can-scroll.et-scrollable--enable-overlay-animations .et-scrollable-mask,.et-scrollable.et-scrollable--can-scroll.et-scrollable--enable-overlay-animations .et-scrollable-button{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]{--_sticky-margin: 10%}.et-scrollable[sticky-buttons=true] .et-scrollable-button{position:sticky}.et-scrollable[sticky-buttons=true][direction=horizontal] .et-scrollable-buttons{margin-block:var(--_sticky-margin)}.et-scrollable[sticky-buttons=true][direction=vertical] .et-scrollable-buttons{margin-inline:var(--_sticky-margin)}.et-scrollable[sticky-buttons=true][direction=vertical] .et-scrollable-buttons .et-scrollable-button--end{inset-block-start:100%}.et-scrollable .et-scrollable-navigation{display:flex;justify-content:center;gap:10px;margin-block-start:10px}.et-scrollable .et-scrollable-navigation .et-scrollable-navigation-item{all:unset;inline-size:10px;block-size:10px;display:block;background-color:#4b4b4b;border-radius:50%;cursor:pointer}.et-scrollable .et-scrollable-navigation .et-scrollable-navigation-item.et-scrollable-navigation-item--active{background-color:#c6c6c6}\n"] }]
519
536
  }], ctorParameters: () => [], propDecorators: { _itemSize: [{
520
537
  type: Input,
521
538
  args: [{ alias: 'itemSize' }]
@@ -578,4 +595,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
578
595
  type: ContentChildren,
579
596
  args: [SCROLLABLE_IS_ACTIVE_CHILD_TOKEN, { descendants: true }]
580
597
  }] } });
581
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvc2Nyb2xsYWJsZS9jb21wb25lbnRzL3Njcm9sbGFibGUvc2Nyb2xsYWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvc2Nyb2xsYWJsZS9jb21wb25lbnRzL3Njcm9sbGFibGUvc2Nyb2xsYWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsZUFBZSxFQUNmLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUUsT0FBTyxFQUVMLHlCQUF5QixFQUN6QixZQUFZLEVBRVosMkJBQTJCLEVBRzNCLGNBQWMsRUFDZCxrQ0FBa0MsRUFDbEMsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxlQUFlLEVBQ2YscUJBQXFCLEVBQ3JCLHlCQUF5QixFQUN6Qix3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3BCLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsZUFBZSxFQUNmLE9BQU8sRUFDUCxhQUFhLEVBQ2IsWUFBWSxFQUNaLE1BQU0sRUFDTixTQUFTLEVBQ1QsR0FBRyxFQUNILElB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QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQU83QixvQkFBb0I7c0JBRC9CLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQU90QyxhQUFhO3NCQUR4QixTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBTy9CLFlBQVk7c0JBRHZCLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFPOUIsa0JBQWtCO3NCQUQ3QixlQUFlO3VCQUFDLGdDQUFnQyxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgaXNEZXZNb2RlLFxuICBudW1iZXJBdHRyaWJ1dGUsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQsIHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIEN1cnJlbnRFbGVtZW50VmlzaWJpbGl0eSxcbiAgQ3Vyc29yRHJhZ1Njcm9sbERpcmVjdGl2ZSxcbiAgTGV0RGlyZWN0aXZlLFxuICBOZ0NsYXNzVHlwZSxcbiAgT2JzZXJ2ZVNjcm9sbFN0YXRlRGlyZWN0aXZlLFxuICBTY3JvbGxPYnNlcnZlclNjcm9sbFN0YXRlLFxuICBTY3JvbGxUb0VsZW1lbnRPcHRpb25zLFxuICBUeXBlZFF1ZXJ5TGlzdCxcbiAgZ2V0Rmlyc3RBbmRMYXN0UGFydGlhbEludGVyc2VjdGlvbixcbiAgaXNFbGVtZW50VmlzaWJsZSxcbiAgbmV4dEZyYW1lLFxuICBzY3JvbGxUb0VsZW1lbnQsXG4gIHNpZ25hbEVsZW1lbnRDaGlsZHJlbixcbiAgc2lnbmFsRWxlbWVudEludGVyc2VjdGlvbixcbiAgc2lnbmFsRWxlbWVudFNjcm9sbFN0YXRlLFxuICBzaWduYWxIb3N0QXR0cmlidXRlcyxcbiAgc2lnbmFsSG9zdENsYXNzZXMsXG59IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBkZWJvdW5jZVRpbWUsXG4gIGZpbHRlcixcbiAgZnJvbUV2ZW50LFxuICBtYXAsXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENoZXZyb25JY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vaWNvbnMnO1xuaW1wb3J0IHtcbiAgU0NST0xMQUJMRV9JU19BQ1RJVkVfQ0hJTERfVE9LRU4sXG4gIFNjcm9sbGFibGVJZ25vcmVDaGlsZERpcmVjdGl2ZSxcbiAgU2Nyb2xsYWJsZUlzQWN0aXZlQ2hpbGREaXJlY3RpdmUsXG4gIGlzU2Nyb2xsYWJsZUNoaWxkSWdub3JlZCxcbn0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBTY3JvbGxhYmxlSW50ZXJzZWN0aW9uQ2hhbmdlLCBTY3JvbGxhYmxlU2Nyb2xsTW9kZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuLy8gVGhyZXNob2xkcyBmb3IgdGhlIGludGVyc2VjdGlvbiBvYnNlcnZlci5cbmNvbnN0IEVMRU1FTlRfSU5URVJTRUNUSU9OX1RIUkVTSE9MRCA9IFtcbiAgLy8gV2UgdXNlIDUxIHN0ZXBzIHRvIGdldCBhIDIlIHN0ZXAgc2l6ZS5cbiAgLi4uQXJyYXkuZnJvbSh7IGxlbmd0aDogNTEgfSwgKF8sIGkpID0+IGkgLyA1MCksXG5cbiAgLy8gQWRkaXRpb25hbCBzdGVwcyBuZWVkZWQgc2luY2UgZGlzcGxheSBzY2FsaW5nIGNhbiBjYXVzZSB0aGUgaW50ZXJzZWN0aW9uIHJhdGlvIHRvIGJlIHNsaWdodGx5IG9mZi5cbiAgMC4wMSxcbiAgMC4wMDUsXG4gIDAuMDAxLFxuICAwLjk5LFxuICAwLjk5NSxcbiAgMC45OTksXG5dO1xuXG5pbnRlcmZhY2UgU2Nyb2xsYWJsZU5hdmlnYXRpb25JdGVtIHtcbiAgaXNBY3RpdmU6IGJvb2xlYW47XG4gIGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdldC1zY3JvbGxhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Njcm9sbGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zY3JvbGxhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgQ3Vyc29yRHJhZ1Njcm9sbERpcmVjdGl2ZSxcbiAgICBPYnNlcnZlU2Nyb2xsU3RhdGVEaXJlY3RpdmUsXG4gICAgTmdDbGFzcyxcbiAgICBMZXREaXJlY3RpdmUsXG4gICAgQ2hldnJvbkljb25Db21wb25lbnQsXG4gICAgU2Nyb2xsYWJsZUlzQWN0aXZlQ2hpbGREaXJlY3RpdmUsXG4gICAgU2Nyb2xsYWJsZUlnbm9yZUNoaWxkRGlyZWN0aXZlLFxuICBdLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdldC1zY3JvbGxhYmxlJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU2Nyb2xsYWJsZUNvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pc0N1cnNvckRyYWdnaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIEBJbnB1dCh7IGFsaWFzOiAnaXRlbVNpemUnIH0pXG4gIHNldCBfaXRlbVNpemUodjogJ2F1dG8nIHwgJ3NhbWUnIHwgJ2Z1bGwnKSB7XG4gICAgdGhpcy5pdGVtU2l6ZS5zZXQodik7XG4gIH1cbiAgcmVhZG9ubHkgaXRlbVNpemUgPSBzaWduYWw8J2F1dG8nIHwgJ3NhbWUnIHwgJ2Z1bGwnPignYXV0bycpO1xuXG4gIEBJbnB1dCh7IGFsaWFzOiAnZGlyZWN0aW9uJyB9KVxuICBzZXQgX2RpcmVjdGlvbih2OiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnKSB7XG4gICAgdGhpcy5kaXJlY3Rpb24uc2V0KHYpO1xuICB9XG4gIHJlYWRvbmx5IGRpcmVjdGlvbiA9IHNpZ25hbDwnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnPignaG9yaXpvbnRhbCcpO1xuXG4gIEBJbnB1dCh7IGFsaWFzOiAnc2Nyb2xsYWJsZVJvbGUnIH0pXG4gIHNldCBfc2Nyb2xsYWJsZVJvbGUodjogc3RyaW5nIHwgbnVsbCkge1xuICAgIHRoaXMuc2Nyb2xsYWJsZVJvbGUuc2V0KHYpO1xuICB9XG4gIHJlYWRvbmx5IHNjcm9sbGFibGVSb2xlID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gIEBJbnB1dCh7IGFsaWFzOiAnc2Nyb2xsYWJsZUNsYXNzJyB9KVxuICBzZXQgX3Njcm9sbGFibGVDbGFzcyh2OiBOZ0NsYXNzVHlwZSB8IG51bGwpIHtcbiAgICB0aGlzLnNjcm9sbGFibGVDbGFzcy5zZXQodik7XG4gIH1cbiAgcmVhZG9ubHkgc2Nyb2xsYWJsZUNsYXNzID0gc2lnbmFsPE5nQ2xhc3NUeXBlIHwgbnVsbD4obnVsbCk7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLCBhbGlhczogJ3JlbmRlck5hdmlnYXRpb24nIH0pXG4gIHNldCBfcmVuZGVyTmF2aWdhdGlvbih2OiBib29sZWFuKSB7XG4gICAgdGhpcy5yZW5kZXJOYXZpZ2F0aW9uLnNldCh2KTtcbiAgfVxuICByZWFkb25seSByZW5kZXJOYXZpZ2F0aW9uID0gc2lnbmFsKGZhbHNlKTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsIGFsaWFzOiAncmVuZGVyTWFza3MnIH0pXG4gIHNldCBfcmVuZGVyTWFza3ModjogYm9vbGVhbikge1xuICAgIHRoaXMucmVuZGVyTWFza3Muc2V0KHYpO1xuICB9XG4gIHJlYWRvbmx5IHJlbmRlck1hc2tzID0gc2lnbmFsKHRydWUpO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSwgYWxpYXM6ICdyZW5kZXJCdXR0b25zJyB9KVxuICBzZXQgX3JlbmRlckJ1dHRvbnModjogYm9vbGVhbikge1xuICAgIHRoaXMucmVuZGVyQnV0dG9ucy5zZXQodik7XG4gIH1cbiAgcmVhZG9ubHkgcmVuZGVyQnV0dG9ucyA9IHNpZ25hbCh0cnVlKTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsIGFsaWFzOiAncmVuZGVyU2Nyb2xsYmFycycgfSlcbiAgc2V0IF9yZW5kZXJTY3JvbGxiYXJzKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnJlbmRlclNjcm9sbGJhcnMuc2V0KHYpO1xuICB9XG4gIHJlYWRvbmx5IHJlbmRlclNjcm9sbGJhcnMgPSBzaWduYWwoZmFsc2UpO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSwgYWxpYXM6ICdzdGlja3lCdXR0b25zJyB9KVxuICBzZXQgX3N0aWNreUJ1dHRvbnModjogYm9vbGVhbikge1xuICAgIHRoaXMuc3RpY2t5QnV0dG9ucy5zZXQodik7XG4gIH1cbiAgcmVhZG9ubHkgc3RpY2t5QnV0dG9ucyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLCBhbGlhczogJ2N1cnNvckRyYWdTY3JvbGwnIH0pXG4gIHNldCBfY3Vyc29yRHJhZ1Njcm9sbCh2OiBib29sZWFuKSB7XG4gICAgdGhpcy5jdXJzb3JEcmFnU2Nyb2xsLnNldCh2KTtcbiAgfVxuICByZWFkb25seSBjdXJzb3JEcmFnU2Nyb2xsID0gc2lnbmFsKHRydWUpO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSwgYWxpYXM6ICdkaXNhYmxlQWN0aXZlRWxlbWVudFNjcm9sbGluZycgfSlcbiAgc2V0IF9kaXNhYmxlQWN0aXZlRWxlbWVudFNjcm9sbGluZyh2OiBib29sZWFuKSB7XG4gICAgdGhpcy5kaXNhYmxlQWN0aXZlRWxlbWVudFNjcm9sbGluZy5zZXQodik7XG4gIH1cbiAgcmVhZG9ubHkgZGlzYWJsZUFjdGl2ZUVsZW1lbnRTY3JvbGxpbmcgPSBzaWduYWwoZmFsc2UpO1xuXG4gIEBJbnB1dCh7IGFsaWFzOiAnc2Nyb2xsTW9kZScgfSlcbiAgc2V0IF9zY3JvbGxNb2RlKHY6IFNjcm9sbGFibGVTY3JvbGxNb2RlKSB7XG4gICAgdGhpcy5zY3JvbGxNb2RlLnNldCh2KTtcbiAgfVxuICByZWFkb25seSBzY3JvbGxNb2RlID0gc2lnbmFsPFNjcm9sbGFibGVTY3JvbGxNb2RlPignY29udGFpbmVyJyk7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLCBhbGlhczogJ3NuYXAnIH0pXG4gIHNldCBfc25hcCh2OiBib29sZWFuKSB7XG4gICAgdGhpcy5zbmFwLnNldCh2KTtcbiAgfVxuICByZWFkb25seSBzbmFwID0gc2lnbmFsKGZhbHNlKTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSwgYWxpYXM6ICdzY3JvbGxNYXJnaW4nIH0pXG4gIHNldCBfc2Nyb2xsTWFyZ2luKHY6IG51bWJlcikge1xuICAgIHRoaXMuc2Nyb2xsTWFyZ2luLnNldCh2KTtcbiAgfVxuICByZWFkb25seSBzY3JvbGxNYXJnaW4gPSBzaWduYWwoMCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IHNjcm9sbFN0YXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTY3JvbGxPYnNlcnZlclNjcm9sbFN0YXRlPigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBpbnRlcnNlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNjcm9sbGFibGVJbnRlcnNlY3Rpb25DaGFuZ2VbXT4oKTtcblxuICBAVmlld0NoaWxkKCdzY3JvbGxhYmxlJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJpdmF0ZSBzZXQgX3Njcm9sbGFibGUoZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICB0aGlzLnNjcm9sbGFibGUuc2V0KGUpO1xuICB9XG4gIHJlYWRvbmx5IHNjcm9sbGFibGUgPSBzaWduYWw8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCBudWxsPihudWxsKTtcblxuICBAVmlld0NoaWxkKCdzY3JvbGxhYmxlQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJpdmF0ZSBzZXQgX3Njcm9sbGFibGVDb250YWluZXIoZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICB0aGlzLnNjcm9sbGFibGVDb250YWluZXIuc2V0KGUpO1xuICB9XG4gIHJlYWRvbmx5IHNjcm9sbGFibGVDb250YWluZXIgPSBzaWduYWw8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCBudWxsPihudWxsKTtcblxuICBAVmlld0NoaWxkKCdmaXJzdEVsZW1lbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcml2YXRlIHNldCBfZmlyc3RFbGVtZW50KGU6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7XG4gICAgdGhpcy5maXJzdEVsZW1lbnQuc2V0KGUpO1xuICB9XG4gIHJlYWRvbmx5IGZpcnN0RWxlbWVudCA9IHNpZ25hbDxFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB8IG51bGw+KG51bGwpO1xuXG4gIEBWaWV3Q2hpbGQoJ2xhc3RFbGVtZW50JywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJpdmF0ZSBzZXQgX2xhc3RFbGVtZW50KGU6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7XG4gICAgdGhpcy5sYXN0RWxlbWVudC5zZXQoZSk7XG4gIH1cbiAgcmVhZG9ubHkgbGFzdEVsZW1lbnQgPSBzaWduYWw8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCBudWxsPihudWxsKTtcblxuICBAQ29udGVudENoaWxkcmVuKFNDUk9MTEFCTEVfSVNfQUNUSVZFX0NISUxEX1RPS0VOLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHByaXZhdGUgc2V0IF9hY3RpdmVFbGVtZW50TGlzdChlOiBUeXBlZFF1ZXJ5TGlzdDxTY3JvbGxhYmxlSXNBY3RpdmVDaGlsZERpcmVjdGl2ZT4pIHtcbiAgICB0aGlzLmFjdGl2ZUVsZW1lbnRMaXN0LnNldChlKTtcbiAgfVxuICByZWFkb25seSBhY3RpdmVFbGVtZW50TGlzdCA9IHNpZ25hbDxUeXBlZFF1ZXJ5TGlzdDxTY3JvbGxhYmxlSXNBY3RpdmVDaGlsZERpcmVjdGl2ZT4gfCBudWxsPihudWxsKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGNvbnRhaW5lclNjcm9sbFN0YXRlID0gc2lnbmFsRWxlbWVudFNjcm9sbFN0YXRlKHRoaXMuc2Nyb2xsYWJsZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlyc3RFbGVtZW50SW50ZXJzZWN0aW9uID0gc2lnbmFsRWxlbWVudEludGVyc2VjdGlvbih0aGlzLmZpcnN0RWxlbWVudCwgeyByb290OiB0aGlzLnNjcm9sbGFibGUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlyc3RFbGVtZW50VmlzaWJpbGl0eSA9IHNpZ25hbDxDdXJyZW50RWxlbWVudFZpc2liaWxpdHkgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBsYXN0RWxlbWVudEludGVyc2VjdGlvbiA9IHNpZ25hbEVsZW1lbnRJbnRlcnNlY3Rpb24odGhpcy5sYXN0RWxlbWVudCwgeyByb290OiB0aGlzLnNjcm9sbGFibGUgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbGFzdEVsZW1lbnRWaXNpYmlsaXR5ID0gc2lnbmFsPEN1cnJlbnRFbGVtZW50VmlzaWJpbGl0eSB8IG51bGw+KG51bGwpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYWxsU2Nyb2xsYWJsZUNoaWxkcmVuID0gc2lnbmFsRWxlbWVudENoaWxkcmVuKHRoaXMuc2Nyb2xsYWJsZUNvbnRhaW5lcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2Nyb2xsYWJsZUNoaWxkcmVuID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLmFsbFNjcm9sbGFibGVDaGlsZHJlbigpLmZpbHRlcigoYykgPT4gIWlzU2Nyb2xsYWJsZUNoaWxkSWdub3JlZChjKSksXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZGlzYWJsZVNuYXBwaW5nJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzY3JvbGxhYmxlQ29udGVudEludGVyc2VjdGlvbnMgPSBzaWduYWxFbGVtZW50SW50ZXJzZWN0aW9uKHRoaXMuc2Nyb2xsYWJsZUNoaWxkcmVuLCB7XG4gICAgcm9vdDogdGhpcy5zY3JvbGxhYmxlLFxuICAgIHRocmVzaG9sZDogRUxFTUVOVF9JTlRFUlNFQ1RJT05fVEhSRVNIT0xELFxuICB9KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNjcm9sbGFibGVDb250ZW50SW50ZXJzZWN0aW9ucyQgPSB0b09ic2VydmFibGUodGhpcy5zY3JvbGxhYmxlQ29udGVudEludGVyc2VjdGlvbnMpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbWFudWFsQWN0aXZlTmF2aWdhdGlvbkluZGV4ID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2FuU2Nyb2xsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGRpciA9IHRoaXMuZGlyZWN0aW9uKCk7XG5cbiAgICBpZiAoZGlyID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbnRhaW5lclNjcm9sbFN0YXRlKCkuY2FuU2Nyb2xsSG9yaXpvbnRhbGx5O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNvbnRhaW5lclNjcm9sbFN0YXRlKCkuY2FuU2Nyb2xsVmVydGljYWxseTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpc0F0U3RhcnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKCF0aGlzLmNhblNjcm9sbCgpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBpbnRlcnNlY3Rpb24gPSB0aGlzLmZpcnN0RWxlbWVudEludGVyc2VjdGlvbigpWzBdO1xuXG4gICAgaWYgKCFpbnRlcnNlY3Rpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLmZpcnN0RWxlbWVudFZpc2liaWxpdHkoKT8uaW5saW5lID8/IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGludGVyc2VjdGlvbi5pc0ludGVyc2VjdGluZztcbiAgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaXNBdEVuZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAoIXRoaXMuY2FuU2Nyb2xsKCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGludGVyc2VjdGlvbiA9IHRoaXMubGFzdEVsZW1lbnRJbnRlcnNlY3Rpb24oKVswXTtcblxuICAgIGlmICghaW50ZXJzZWN0aW9uKSB7XG4gICAgICByZXR1cm4gdGhpcy5sYXN0RWxlbWVudFZpc2liaWxpdHkoKT8uaW5saW5lID8/IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGludGVyc2VjdGlvbi5pc0ludGVyc2VjdGluZztcbiAgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBlbmFibGVPdmVybGF5QW5pbWF0aW9ucyA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfaW5pdGlhbFNjcm9sbGFibGVOYXZpZ2F0aW9uID0gc2lnbmFsPFNjcm9sbGFibGVOYXZpZ2F0aW9uSXRlbVtdPihbXSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNjcm9sbGFibGVOYXZpZ2F0aW9uID0gY29tcHV0ZWQ8U2Nyb2xsYWJsZU5hdmlnYXRpb25JdGVtW10+KCgpID0+IHtcbiAgICBjb25zdCBhbGxJbnRlcnNlY3Rpb25zID0gdGhpcy5zY3JvbGxhYmxlQ29udGVudEludGVyc2VjdGlvbnMoKTtcbiAgICBjb25zdCBtYW51YWxBY3RpdmVOYXZpZ2F0aW9uSW5kZXggPSB0aGlzLm1hbnVhbEFjdGl2ZU5hdmlnYXRpb25JbmRleCgpO1xuICAgIGNvbnN0IGluaXRpYWxTY3JvbGxhYmxlTmF2aWdhdGlvbiA9IHRoaXMuX2luaXRpYWxTY3JvbGxhYmxlTmF2aWdhdGlvbigpO1xuXG4gICAgaWYgKCFhbGxJbnRlcnNlY3Rpb25zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGluaXRpYWxTY3JvbGxhYmxlTmF2aWdhdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBoaWdoZXN0SW50ZXJzZWN0aW9uID0gYWxsSW50ZXJzZWN0aW9ucy5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IHtcbiAgICAgIGlmIChwcmV2ICYmIHByZXYuaW50ZXJzZWN0aW9uUmF0aW8gPiBjdXJyLmludGVyc2VjdGlvblJhdGlvKSB7XG4gICAgICAgIHJldHVybiBwcmV2O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY3VycjtcbiAgICB9LCBhbGxJbnRlcnNlY3Rpb25zWzBdKTtcblxuICAgIGlmICghaGlnaGVzdEludGVyc2VjdGlvbikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiBhbGxJbnRlcnNlY3Rpb25zLm1hcCgoaSwgaW5kZXgpID0+ICh7XG4gICAgICBpc0FjdGl2ZTpcbiAgICAgICAgbWFudWFsQWN0aXZlTmF2aWdhdGlvbkluZGV4ICE9PSBudWxsXG4gICAgICAgICAgPyBtYW51YWxBY3RpdmVOYXZpZ2F0aW9uSW5kZXggPT09IGluZGV4XG4gICAgICAgICAgOiBpID09PSBoaWdoZXN0SW50ZXJzZWN0aW9uICYmIGhpZ2hlc3RJbnRlcnNlY3Rpb24uaW50ZXJzZWN0aW9uUmF0aW8gPiAwLFxuICAgICAgZWxlbWVudDogaS50YXJnZXQgYXMgSFRNTEVsZW1lbnQsXG4gICAgfSkpO1xuICB9KTtcblxuICByZWFkb25seSBob3N0QXR0cmlidXRlQmluZGluZ3MgPSBzaWduYWxIb3N0QXR0cmlidXRlcyh7XG4gICAgJ2l0ZW0tc2l6ZSc6IHRoaXMuaXRlbVNpemUsXG4gICAgZGlyZWN0aW9uOiB0aGlzLmRpcmVjdGlvbixcbiAgICAncmVuZGVyLXNjcm9sbGJhcnMnOiB0aGlzLnJlbmRlclNjcm9sbGJhcnMsXG4gICAgJ3N0aWNreS1idXR0b25zJzogdGhpcy5zdGlja3lCdXR0b25zLFxuICB9KTtcblxuICByZWFkb25seSBob3N0Q2xhc3NCaW5kaW5ncyA9IHNpZ25hbEhvc3RDbGFzc2VzKHtcbiAgICAnZXQtc2Nyb2xsYWJsZS0tY2FuLXNjcm9sbCc6IHRoaXMuY2FuU2Nyb2xsLFxuICAgICdldC1zY3JvbGxhYmxlLS1pcy1hdC1zdGFydCc6IHRoaXMuaXNBdFN0YXJ0LFxuICAgICdldC1zY3JvbGxhYmxlLS1pcy1hdC1lbmQnOiB0aGlzLmlzQXRFbmQsXG4gICAgJ2V0LXNjcm9sbGFibGUtLWVuYWJsZS1vdmVybGF5LWFuaW1hdGlvbnMnOiB0aGlzLmVuYWJsZU92ZXJsYXlBbmltYXRpb25zLFxuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNjcm9sbGFibGUgPSB0aGlzLnNjcm9sbGFibGUoKT8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgZmlyc3RFbGVtZW50ID0gdGhpcy5maXJzdEVsZW1lbnQoKT8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgbGFzdEVsZW1lbnQgPSB0aGlzLmxhc3RFbGVtZW50KCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnRMaXN0ID0gdGhpcy5hY3RpdmVFbGVtZW50TGlzdCgpPy50b0FycmF5KCk7XG5cbiAgICAgICAgaWYgKCFzY3JvbGxhYmxlIHx8ICFmaXJzdEVsZW1lbnQgfHwgIWxhc3RFbGVtZW50IHx8ICFhY3RpdmVFbGVtZW50TGlzdCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpcnN0QWN0aXZlID0gYWN0aXZlRWxlbWVudExpc3QuZmluZCgoYSkgPT4gYS5pc0FjdGl2ZUNoaWxkRW5hYmxlZCgpKTtcblxuICAgICAgICBpZiAoZmlyc3RBY3RpdmUgJiYgIXRoaXMuZGlzYWJsZUFjdGl2ZUVsZW1lbnRTY3JvbGxpbmcoKSkge1xuICAgICAgICAgIGNvbnN0IG9mZnNldFRvcCA9IGZpcnN0QWN0aXZlLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRUb3AgLSBzY3JvbGxhYmxlLm9mZnNldFRvcDtcbiAgICAgICAgICBjb25zdCBvZmZzZXRMZWZ0ID0gZmlyc3RBY3RpdmUuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQgLSBzY3JvbGxhYmxlLm9mZnNldExlZnQ7XG4gICAgICAgICAgc2Nyb2xsYWJsZS5zY3JvbGxMZWZ0ID0gb2Zmc2V0TGVmdCAtIHRoaXMuc2Nyb2xsTWFyZ2luKCk7XG4gICAgICAgICAgc2Nyb2xsYWJsZS5zY3JvbGxUb3AgPSBvZmZzZXRUb3AgLSB0aGlzLnNjcm9sbE1hcmdpbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5maXJzdEVsZW1lbnRWaXNpYmlsaXR5LnNldChcbiAgICAgICAgICBpc0VsZW1lbnRWaXNpYmxlKHtcbiAgICAgICAgICAgIGNvbnRhaW5lcjogc2Nyb2xsYWJsZSxcbiAgICAgICAgICAgIGVsZW1lbnQ6IGZpcnN0RWxlbWVudCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmxhc3RFbGVtZW50VmlzaWJpbGl0eS5zZXQoXG4gICAgICAgICAgaXNFbGVtZW50VmlzaWJsZSh7XG4gICAgICAgICAgICBjb250YWluZXI6IHNjcm9sbGFibGUsXG4gICAgICAgICAgICBlbGVtZW50OiBsYXN0RWxlbWVudCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBXZSBuZWVkIHRvIHdhaXQgb25lIGZyYW1lIGJlZm9yZSBlbmFibGluZyBhbmltYXRpb25zIHRvIHByZXZlbnQgYSBhbmltYXRpb24gZnJvbSBwbGF5aW5nIGR1cmluZyBpbml0aWFsIHJlbmRlci5cbiAgICAgICAgbmV4dEZyYW1lKCgpID0+IHRoaXMuZW5hYmxlT3ZlcmxheUFuaW1hdGlvbnMuc2V0KHRydWUpKTtcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXG4gICAgKTtcblxuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudExpc3QgPSB0aGlzLnNjcm9sbGFibGVDaGlsZHJlbigpO1xuICAgICAgICBjb25zdCBzY3JvbGxhYmxlID0gdGhpcy5zY3JvbGxhYmxlKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHJlbmRlck5hdmlnYXRpb24gPSB0aGlzLnJlbmRlck5hdmlnYXRpb24oKTtcblxuICAgICAgICBpZiAoIWVsZW1lbnRMaXN0IHx8ICFzY3JvbGxhYmxlIHx8ICFyZW5kZXJOYXZpZ2F0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlyc3RWaXNpYmxlRWxlbWVudCA9IGVsZW1lbnRMaXN0LmZpbmQoKGUpID0+IGlzRWxlbWVudFZpc2libGUoeyBjb250YWluZXI6IHNjcm9sbGFibGUsIGVsZW1lbnQ6IGUgfSkpO1xuXG4gICAgICAgIGlmICghZmlyc3RWaXNpYmxlRWxlbWVudCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluaXRpYWxOYXZpZ2F0aW9uSXRlbXM6IFNjcm9sbGFibGVOYXZpZ2F0aW9uSXRlbVtdID0gZWxlbWVudExpc3QubWFwKChlKSA9PiAoe1xuICAgICAgICAgIGlzQWN0aXZlOiBlID09PSBmaXJzdFZpc2libGVFbGVtZW50LFxuICAgICAgICAgIGVsZW1lbnQ6IGUsXG4gICAgICAgIH0pKTtcblxuICAgICAgICB0aGlzLl9pbml0aWFsU2Nyb2xsYWJsZU5hdmlnYXRpb24uc2V0KGluaXRpYWxOYXZpZ2F0aW9uSXRlbXMpO1xuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcbiAgICApO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGlzQXRTdGFydCA9IHRoaXMuaXNBdFN0YXJ0KCk7XG4gICAgICBjb25zdCBpc0F0RW5kID0gdGhpcy5pc0F0RW5kKCk7XG4gICAgICBjb25zdCBjYW5TY3JvbGwgPSB0aGlzLmNhblNjcm9sbCgpO1xuXG4gICAgICB0aGlzLnNjcm9sbFN0YXRlQ2hhbmdlLmVtaXQoe1xuICAgICAgICBjYW5TY3JvbGwsXG4gICAgICAgIGlzQXRFbmQ6ICEhaXNBdEVuZCxcbiAgICAgICAgaXNBdFN0YXJ0OiAhIWlzQXRTdGFydCxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGVuYWJsZVNuYXBwaW5nID0gdGhpcy5zbmFwKCk7XG5cbiAgICAgIGlmIChlbmFibGVTbmFwcGluZykge1xuICAgICAgICB0aGlzLl9lbmFibGVTbmFwcGluZygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZVNuYXBwaW5nKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnNjcm9sbGFibGVDb250ZW50SW50ZXJzZWN0aW9ucyRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgICAgZGVib3VuY2VUaW1lKDEwKSxcbiAgICAgICAgdGFwKChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgdGhpcy5pbnRlcnNlY3Rpb25DaGFuZ2UuZW1pdChcbiAgICAgICAgICAgIGVudHJpZXMubWFwKChpLCBpbmRleCkgPT4gKHtcbiAgICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICAgIGVsZW1lbnQ6IGkudGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgICBpbnRlcnNlY3Rpb25SYXRpbzogaS5pbnRlcnNlY3Rpb25SYXRpbyxcbiAgICAgICAgICAgICAgaXNJbnRlcnNlY3Rpbmc6IGkuaXNJbnRlcnNlY3RpbmcsXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBzY3JvbGxPbmVDb250YWluZXJTaXplKGRpcmVjdGlvbjogJ3N0YXJ0JyB8ICdlbmQnKSB7XG4gICAgY29uc3Qgc2Nyb2xsRWxlbWVudCA9IHRoaXMuc2Nyb2xsYWJsZSgpPy5uYXRpdmVFbGVtZW50O1xuXG4gICAgaWYgKCFzY3JvbGxFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgY29uc3QgaXNTbmFwcGluZ0VuYWJsZWQgPSB0aGlzLnNuYXAoKTtcblxuICAgIGlmIChpc1NuYXBwaW5nRW5hYmxlZCkge1xuICAgICAgLy8gSWYgc25hcHBpbmcgaXMgZW5hYmxlZCB3ZSB3YW50IHRvIHNjcm9sbCB0byBhIHBvc2l0aW9uIHdoZXJlIG5vIGZ1cnRoZXIgc25hcHBpbmcgd2lsbCBoYXBwZW4gYWZ0ZXIgdGhlIHNjcm9sbC5cbiAgICAgIGNvbnN0IGFsbEludGVyc2VjdGlvbnMgPSB0aGlzLnNjcm9sbGFibGVDb250ZW50SW50ZXJzZWN0aW9ucygpO1xuICAgICAgY29uc3QgaW50ZXJzZWN0aW9ucyA9IGdldEZpcnN0QW5kTGFzdFBhcnRpYWxJbnRlcnNlY3Rpb24oYWxsSW50ZXJzZWN0aW9ucyk7XG4gICAgICBjb25zdCByZWxldmFudEludGVyc2VjdGlvbiA9IGRpcmVjdGlvbiA9PT0gJ3N0YXJ0JyA/IGludGVyc2VjdGlvbnM/LmZpcnN0IDogaW50ZXJzZWN0aW9ucz8ubGFzdDtcblxuICAgICAgaWYgKCFyZWxldmFudEludGVyc2VjdGlvbikgcmV0dXJuO1xuXG4gICAgICBjb25zdCBuZXh0SW5kZXggPVxuICAgICAgICByZWxldmFudEludGVyc2VjdGlvbi5pbnRlcnNlY3Rpb24uaW50ZXJzZWN0aW9uUmF0aW8gIT09IDFcbiAgICAgICAgICA/IHJlbGV2YW50SW50ZXJzZWN0aW9uLmluZGV4XG4gICAgICAgICAgOiBkaXJlY3Rpb24gPT09ICdzdGFydCdcbiAgICAgICAgICAgID8gcmVsZXZhbnRJbnRlcnNlY3Rpb24uaW5kZXggLSAxXG4gICAgICAgICAgICA6IHJlbGV2YW50SW50ZXJzZWN0aW9uLmluZGV4ICsgMTtcblxuICAgICAgY29uc3QgZWxlbWVudCA9XG4gICAgICAgIChhbGxJbnRlcnNlY3Rpb25zW25leHRJbmRleF0/LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgfHxcbiAgICAgICAgKHJlbGV2YW50SW50ZXJzZWN0aW9uLmludGVyc2VjdGlvbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuXG4gICAgICB0aGlzLnNjcm9sbFRvRWxlbWVudCh7XG4gICAgICAgIGVsZW1lbnQ6IGVsZW1lbnQsXG4gICAgICAgIG9yaWdpbjogZGlyZWN0aW9uID09PSAnZW5kJyA/ICdzdGFydCcgOiAnZW5kJyxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBKdXN0IHNjcm9sbCBvbmUgc2l6ZSBvZiB0aGUgc2Nyb2xsYWJsZSBjb250YWluZXIuXG4gICAgICBjb25zdCBzY3JvbGxhYmxlU2l6ZSA9IHRoaXMuZGlyZWN0aW9uKCkgPT09ICdob3Jpem9udGFsJyA/IHBhcmVudC5jbGllbnRXaWR0aCA6IHBhcmVudC5jbGllbnRIZWlnaHQ7XG4gICAgICBjb25zdCBjdXJyZW50U2Nyb2xsID0gdGhpcy5kaXJlY3Rpb24oKSA9PT0gJ2hvcml6b250YWwnID8gc2Nyb2xsRWxlbWVudC5zY3JvbGxMZWZ0IDogc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3A7XG5cbiAgICAgIHNjcm9sbEVsZW1lbnQuc2Nyb2xsVG8oe1xuICAgICAgICBbdGhpcy5kaXJlY3Rpb24oKSA9PT0gJ2hvcml6b250YWwnID8gJ2xlZnQnIDogJ3RvcCddOlxuICAgICAgICAgIGN1cnJlbnRTY3JvbGwgKyAoZGlyZWN0aW9uID09PSAnc3RhcnQnID8gLXNjcm9sbGFibGVTaXplIDogc2Nyb2xsYWJsZVNpemUpLFxuICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzY3JvbGxPbmVJdGVtU2l6ZShkaXJlY3Rpb246ICdzdGFydCcgfCAnZW5kJykge1xuICAgIGNvbnN0IGFsbEludGVyc2VjdGlvbnMgPSB0aGlzLnNjcm9sbGFibGVDb250ZW50SW50ZXJzZWN0aW9ucygpO1xuICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSB0aGlzLnNjcm9sbGFibGUoKT8ubmF0aXZlRWxlbWVudDtcblxuICAgIGlmICghYWxsSW50ZXJzZWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ05vIGVsZW1lbnRzIGZvdW5kIHRvIHNjcm9sbCB0by4gTWFrZSBzdXJlIHRvIGFwcGx5IHRoZSBpc0VsZW1lbnQgZGlyZWN0aXZlIHRvIHRoZSBlbGVtZW50cyB5b3Ugd2FudCB0byBzY3JvbGwgdG8uJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpbnRlcnNlY3Rpb25zID0gZ2V0Rmlyc3RBbmRMYXN0UGFydGlhbEludGVyc2VjdGlvbihhbGxJbnRlcnNlY3Rpb25zKTtcblxuICAgIGlmICghaW50ZXJzZWN0aW9ucyB8fCAhc2Nyb2xsRWxlbWVudCkgcmV0dXJuO1xuXG4gICAgLy8gTWVhbnMgdGhlIGN1cnJlbnQgZWxlbWVudCBpcyBiaWdnZXIgdGhhbiB0aGUgc2Nyb2xsYWJsZSBjb250YWluZXIuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIHNob3VsZCBzY3JvbGwgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50IGVsZW1lbnQuIElmIHdlIGFyZSBhbHJlYWR5IHRoZXJlIHdlIHNob3VsZCBzY3JvbGwgdG8gdGhlIGVuZCBvZiB0aGUgcHJldmlvdXMgZWxlbWVudC5cbiAgICAvLyBUaGlzIGFwcGxpZXMgdG8gdGhlIG90aGVyIGRpcmVjdGlvbiBhcyB3ZWxsLlxuICAgIGNvbnN0IGlzRmlyc3RBbmRMYXN0SW50ZXJzZWN0aW9uRXF1YWwgPSBpbnRlcnNlY3Rpb25zLmZpcnN0LmludGVyc2VjdGlvbiA9PT0gaW50ZXJzZWN0aW9ucy5sYXN0LmludGVyc2VjdGlvbjtcbiAgICBjb25zdCBzY3JvbGxhYmxlUmVjdCA9IHNjcm9sbEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBpZiAoaXNGaXJzdEFuZExhc3RJbnRlcnNlY3Rpb25FcXVhbCkge1xuICAgICAgY29uc3QgaW50ZXJzZWN0aW9uID0gaW50ZXJzZWN0aW9ucy5maXJzdC5pbnRlcnNlY3Rpb24udGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgaXNTdGFydE9mRWxlbWVudFZpc2libGUgPVxuICAgICAgICB0aGlzLmRpcmVjdGlvbigpID09PSAnaG9yaXpvbnRhbCdcbiAgICAgICAgICA/IGludGVyc2VjdGlvbi5sZWZ0ID49IHNjcm9sbGFibGVSZWN0LmxlZnRcbiAgICAgICAgICA6IGludGVyc2VjdGlvbi50b3AgPj0gc2Nyb2xsYWJsZVJlY3QudG9wO1xuXG4gICAgICBjb25zdCBpc0VuZE9mRWxlbWVudFZpc2libGUgPVxuICAgICAgICB0aGlzLmRpcmVjdGlvbigpID09PSAnaG9yaXpvbnRhbCdcbiAgICAgICAgICA/IGludGVyc2VjdGlvbi5yaWdodCA8PSBzY3JvbGxhYmxlUmVjdC5yaWdodFxuICAgICAgICAgIDogaW50ZXJzZWN0aW9uLmJvdHRvbSA8PSBzY3JvbGxhYmxlUmVjdC5ib3R0b207XG5cbiAgICAgIGlmICghaXNTdGFydE9mRWxlbWVudFZpc2libGUgfHwgIWlzRW5kT2ZFbGVtZW50VmlzaWJsZSkge1xuICAgICAgICBpZiAoZGlyZWN0aW9uID09PSAnc3RhcnQnKSB7XG4gICAgICAgICAgaWYgKGlzU3RhcnRPZkVsZW1lbnRWaXNpYmxlKSB7XG4gICAgICAgICAgICAvLyB0byB0aGUgZW5kIG9mIHRoZSBwcmV2aW91cyBlbGVtZW50XG4gICAgICAgICAgICBjb25zdCBwcmV2aW91c0luZGV4ID0gaW50ZXJzZWN0aW9ucy5maXJzdC5pbmRleCAtIDE7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50VG9TY3JvbGxUbyA9IGFsbEludGVyc2VjdGlvbnNbcHJldmlvdXNJbmRleF0/LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICAgICAgaWYgKCFlbGVtZW50VG9TY3JvbGxUbykgcmV0dXJuO1xuXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvRWxlbWVudCh7XG4gICAgICAgICAgICAgIGVsZW1lbnQ6IGVsZW1lbnRUb1Njcm9sbFRvLFxuICAgICAgICAgICAgICBvcmlnaW46ICdlbmQnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHRvIHRoZSBzdGFydCBvZiB0aGUgY3VycmVudCBlbGVtZW50XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvRWxlbWVudCh7XG4gICAgICAgICAgICAgIGVsZW1lbnQ6IGludGVyc2VjdGlvbnMuZmlyc3QuaW50ZXJzZWN0aW9uLnRhcmdldCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgICAgb3JpZ2luOiAnc3RhcnQnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChpc0VuZE9mRWxlbWVudFZpc2libGUpIHtcbiAgICAgICAgICAgIC8vIHRvIHRoZSBzdGFydCBvZiB0aGUgbmV4dCBlbGVtZW50XG4gICAgICAgICAgICBjb25zdCBuZXh0SW5kZXggPSBpbnRlcnNlY3Rpb25zLmxhc3QuaW5kZXggKyAxO1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvU2Nyb2xsVG8gPSBhbGxJbnRlcnNlY3Rpb25zW25leHRJbmRleF0/LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICAgICAgaWYgKCFlbGVtZW50VG9TY3JvbGxUbykgcmV0dXJuO1xuXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvRWxlbWVudCh7XG4gICAgICAgICAgICAgIGVsZW1lbnQ6IGVsZW1lbnRUb1Njcm9sbFRvLFxuICAgICAgICAgICAgICBvcmlnaW46ICdzdGFydCcsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdG8gdGhlIGVuZCBvZiB0aGUgY3VycmVudCBlbGVtZW50XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvRWxlbWVudCh7XG4gICAgICAgICAgICAgIGVsZW1lbnQ6IGludGVyc2VjdGlvbnMubGFzdC5pbnRlcnNlY3Rpb24udGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgICBvcmlnaW46ICdlbmQnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGRhdGEgPSBkaXJlY3Rpb24gPT09ICdzdGFydCcgPyBpbnRlcnNlY3Rpb25zLmZpcnN0IDogaW50ZXJzZWN0aW9ucy5sYXN0O1xuICAgIGxldCBlbGVtZW50VG9TY3JvbGxUbyA9IGRhdGEuaW50ZXJzZWN0aW9uLnRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgIGlmIChkYXRhLmludGVyc2VjdGlvbi5pbnRlcnNlY3Rpb25SYXRpbyA9PT0gMSkge1xuICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gJ3N0YXJ0JyAmJiBkYXRhLmluZGV4ID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gJ2VuZCcgJiYgZGF0YS5pbmRleCA9PT0gYWxsSW50ZXJzZWN0aW9ucy5sZW5ndGggLSAxKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmV4dEluZGV4ID0gZGlyZWN0aW9uID09PSAnc3RhcnQnID8gZGF0YS5pbmRleCAtIDEgOiBkYXRhLmluZGV4ICsgMTtcblxuICAgICAgZWxlbWVudFRvU2Nyb2xsVG8gPSBhbGxJbnRlcnNlY3Rpb25zW25leHRJbmRleF0/LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG5cbiAgICBpZiAoIWVsZW1lbnRUb1Njcm9sbFRvKSByZXR1cm47XG5cbiAgICB0aGlzLnNjcm9sbFRvRWxlbWVudCh7XG4gICAgICBlbGVtZW50OiBlbGVtZW50VG9TY3JvbGxUbyxcbiAgICAgIG9yaWdpbjogZGlyZWN0aW9uLFxuICAgIH0pO1xuICB9XG5cbiAgc2Nyb2xsVG9FbGVtZW50KG9wdGlvbnM6IE9taXQ8U2Nyb2xsVG9FbGVtZW50T3B0aW9ucywgJ2NvbnRhaW5lcic+KSB7XG4gICAgY29uc3Qgc2Nyb2xsRWxlbWVudCA9IHRoaXMuc2Nyb2xsYWJsZSgpPy5uYXRpdmVFbGVtZW50O1xuXG4gICAgc2Nyb2xsVG9FbGVtZW50KHtcbiAgICAgIGNvbnRhaW5lcjogc2Nyb2xsRWxlbWVudCxcbiAgICAgIGRpcmVjdGlvbjogdGhpcy5kaXJlY3Rpb24oKSA9PT0gJ2hvcml6b250YWwnID8gJ2lubGluZScgOiAnYmxvY2snLFxuICAgICAgLi4uKHRoaXMuZGlyZWN0aW9uKCkgPT09ICdob3Jpem9udGFsJ1xuICAgICAgICA/IHsgc2Nyb2xsSW5saW5lTWFyZ2luOiB0aGlzLnNjcm9sbE1hcmdpbigpIH1cbiAgICAgICAgOiB7IHNjcm9sbEJsb2NrTWFyZ2luOiB0aGlzLnNjcm9sbE1hcmdpbigpIH0pLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIHNjcm9sbFRvRWxlbWVudEJ5SW5kZXgob3B0aW9uczogT21pdDxTY3JvbGxUb0VsZW1lbnRPcHRpb25zLCAnY29udGFpbmVyJz4gJiB7IGluZGV4OiBudW1iZXIgfSkge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5zY3JvbGxhYmxlQ2hpbGRyZW4oKTtcblxuICAgIGlmICghZWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdObyBlbGVtZW50cyBmb3VuZCB0byBzY3JvbGwgdG8uIE1ha2Ugc3VyZSB0byBhcHBseSB0aGUgaXNFbGVtZW50IGRpcmVjdGl2ZSB0byB0aGUgZWxlbWVudHMgeW91IHdhbnQgdG8gc2Nyb2xsIHRvLicsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2Nyb2xsRWxlbWVudCA9IHRoaXMuc2Nyb2xsYWJsZSgpPy5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGVsZW1lbnQgPSBlbGVtZW50c1tvcHRpb25zLmluZGV4XTtcblxuICAgIHNjcm9sbFRvRWxlbWVudCh7XG4gICAgICBjb250YWluZXI6IHNjcm9sbEVsZW1lbnQsXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4uKHRoaXMuZGlyZWN0aW9uKCkgPT09ICdob3Jpem9udGFsJ1xuICAgICAgICA/IHsgc2Nyb2xsSW5saW5lTWFyZ2luOiB0aGlzLnNjcm9sbE1hcmdpbigpIH1cbiAgICAgICAgOiB7IHNjcm9sbEJsb2NrTWFyZ2luOiB0aGlzLnNjcm9sbE1hcmdpbigpIH0pLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzY3JvbGxUb0VsZW1lbnRWaWFOYXZpZ2F0aW9uKGVsZW1lbnRJbmRleDogbnVtYmVyLCBlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgIHRoaXMubWFudWFsQWN0aXZlTmF2aWdhdGlvbkluZGV4LnNldChlbGVtZW50SW5kZXgpO1xuXG4gICAgdGhpcy5zY3JvbGxUb0VsZW1lbnQoe1xuICAgICAgZWxlbWVudCxcbiAgICB9KTtcblxuICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSB0aGlzLnNjcm9sbGFibGUoKT8ubmF0aXZlRWxlbWVudDtcblxuICAgIGlmICghc2Nyb2xsRWxlbWVudCkgcmV0dXJuO1xuXG4gICAgZnJvbUV2ZW50KHNjcm9sbEVsZW1lbnQsICdzY3JvbGwnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSg1MCksXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLm1hbnVhbEFjdGl2ZU5hdmlnYXRpb25JbmRleC5zZXQobnVsbCkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldElzQ3Vyc29yRHJhZ2dpbmcoaXNEcmFnZ2luZzogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzQ3Vyc29yRHJhZ2dpbmckLm5leHQoaXNEcmFnZ2luZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2Nyb2xsVG9TdGFydERpcmVjdGlvbigpIHtcbiAgICBpZiAodGhpcy5zY3JvbGxNb2RlKCkgPT09ICdjb250YWluZXInKSB7XG4gICAgICB0aGlzLnNjcm9sbE9uZUNvbnRhaW5lclNpemUoJ3N0YXJ0Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2Nyb2xsT25lSXRlbVNpemUoJ3N0YXJ0Jyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNjcm9sbFRvRW5kRGlyZWN0aW9uKCkge1xuICAgIGlmICh0aGlzLnNjcm9sbE1vZGUoKSA9PT0gJ2NvbnRhaW5lcicpIHtcbiAgICAgIHRoaXMuc2Nyb2xsT25lQ29udGFpbmVyU2l6ZSgnZW5kJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2Nyb2xsT25lSXRlbVNpemUoJ2VuZCcpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2VuYWJsZVNuYXBwaW5nKCkge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuc2Nyb2xsYWJsZUNvbnRlbnRJbnRlcnNlY3Rpb25zJCwgdGhpcy5faXNDdXJzb3JEcmFnZ2luZyRdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoWywgaXNEcmFnZ2luZ10pID0+ICFpc0RyYWdnaW5nKSxcbiAgICAgICAgbWFwKChbaW50ZXJzZWN0aW9uc10pID0+IGludGVyc2VjdGlvbnMpLFxuICAgICAgICBkZWJvdW5jZVRpbWUoMTUwKSxcbiAgICAgICAgdGFwKChhbGxJbnRlcnNlY3Rpb25zKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc2Nyb2xsRWxlbWVudCA9IHRoaXMuc2Nyb2xsYWJsZSgpPy5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgICAgaWYgKCFzY3JvbGxFbGVtZW50KSByZXR1cm47XG5cbiAgICAgICAgICBjb25zdCBpbnRlcnNlY3Rpb25zID0gZ2V0Rmlyc3RBbmRMYXN0UGFydGlhbEludGVyc2VjdGlvbihhbGxJbnRlcnNlY3Rpb25zKTtcblxuICAgICAgICAgIGlmICghaW50ZXJzZWN0aW9ucykgcmV0dXJuO1xuXG4gICAgICAgICAgY29uc3QgaXNGaXJzdEFuZExhc3RJbnRlcnNlY3Rpb25FcXVhbCA9IGludGVyc2VjdGlvbnMuZmlyc3QuaW50ZXJzZWN0aW9uID09PSBpbnRlcnNlY3Rpb25zLmxhc3QuaW50ZXJzZWN0aW9uO1xuICAgICAgICAgIGNvbnN0IHNjcm9sbGFibGVSZWN0ID0gc2Nyb2xsRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgIGlmIChpc0ZpcnN0QW5kTGFzdEludGVyc2VjdGlvbkVxdWFsKSB7XG4gICAgICAgICAgICBjb25zdCBpbnRlcnNlY3Rpb24gPSBpbnRlcnNlY3Rpb25zLmZpcnN0LmludGVyc2VjdGlvbi50YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICBjb25zdCBpc1N0YXJ0T2ZFbGVtZW50VmlzaWJsZSA9XG4gICAgICAgICAgICAgIHRoaXMuZGlyZWN0aW9uKCkgPT09ICdob3Jpem9udGFsJ1xuICAgICAgICAgICAgICAgID8gaW50ZXJzZWN0aW9uLmxlZnQgPj0gc2Nyb2xsYWJsZVJlY3QubGVmdFxuICAgICAgICAgICAgICAgIDogaW50ZXJzZWN0aW9uLnRvcCA+PSBzY3JvbGxhYmxlUmVjdC50b3A7XG5cbiAgICAgICAgICAgIGNvbnN0IGlzRW5kT2ZFbGVtZW50VmlzaWJsZSA9XG4gICAgICAgICAgICAgIHRoaXMuZGlyZWN0aW9uKCkgPT09ICdob3Jpem9udGFsJ1xuICAgICAgICAgICAgICAgID8gaW50ZXJzZWN0aW9uLnJpZ2h0IDw9IHNjcm9sbGFibGVSZWN0LnJpZ2h0XG4gICAgICAgICAgICAgICAgOiBpbnRlcnNlY3Rpb24uYm90dG9tIDw9IHNjcm9sbGFibGVSZWN0LmJvdHRvbTtcblxuICAgICAgICAgICAgLy8gRG9uJ3Qgc25hcCBpZiBuZWl0aGVyIHRoZSBzdGFydCBub3IgdGhlIGVuZCBvZiB0aGUgY3VycmVudCBlbGVtZW50IGlzIHZpc2libGUuXG4gICAgICAgICAgICAvLyBPdGhlcndpc2UgdGhpcyB3b3VsZCByZXN1bHQgaW4gcGFydHMgb2YgdGhlIGVsZW1lbnQgYmVpbmcgaW5hY2Nlc3NpYmxlLlxuICAgICAgICAgICAgaWYgKCFpc1N0YXJ0T2ZFbGVtZW50VmlzaWJsZSAmJiAhaXNFbmRPZkVsZW1lbnRWaXNpYmxlKSByZXR1cm47XG5cbiAgICAgICAgICAgIC8vIElmIHRoZSBzdGFydCBvZiB0aGUgZWxlbWVudCBpcyB2aXNpYmxlIHdlIHNob3VsZCBzbmFwIHRvIHRoZSBzdGFydC5cbiAgICAgICAgICAgIGlmIChpc1N0YXJ0T2ZFbGVtZW50VmlzaWJsZSkge1xuICAgICAgICAgICAgICB0aGlzLnNjcm9sbFRvRWxlbWVudCh7XG4gICAgICAgICAgICAgICAgZWxlbWVudDogaW50ZXJzZWN0aW9ucy5maXJzdC5pbnRlcnNlY3Rpb24udGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgICAgIG9yaWdpbjogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSWYgdGhlIGVuZCBvZiB0aGUgZWxlbWVudCBpcyB2aXNpYmxlIHdlIHNob3VsZCBzbmFwIHRvIHRoZSBlbmQuXG4gICAgICAgICAgICBpZiAoaXNFbmRPZkVsZW1lbnRWaXNpYmxlKSB7XG4gICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9FbGVtZW50KHtcbiAgICAgICAgICAgICAgICBlbGVtZW50OiBpbnRlcnNlY3Rpb25zLmxhc3QuaW50ZXJzZWN0aW9uLnRhcmdldCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgICAgICBvcmlnaW46ICdlbmQnLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAodGhpcy5kaXJlY3Rpb24oKSA9PT0gJ2hvcml6b250YWwnICYmXG4gICAgICAgICAgICAgIGludGVyc2VjdGlvbnMuYmlnZ2VzdC5pbnRlcnNlY3Rpb24uYm91bmRpbmdDbGllbnRSZWN0LndpZHRoID4gc2Nyb2xsYWJsZVJlY3Qud2lkdGgpIHx8XG4gICAgICAgICAgICAodGhpcy5kaXJlY3Rpb24oKSA9PT0gJ3ZlcnRpY2FsJyAmJlxuICAgICAgICAgICAgICBpbnRlcnNlY3Rpb25zLmJpZ2dlc3QuaW50ZXJzZWN0aW9uLmJvdW5kaW5nQ2xpZW50UmVjdC5oZWlnaHQgPiBzY3JvbGxhYmxlUmVjdC5oZWlnaHQpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBlbGVtZW50IGlzIGJpZ2dlciB0aGFuIHRoZSBzY3JvbGxhYmxlIGNvbnRhaW5lciB3ZSBzaG91bGQgc25hcCB0byB0aGUgc3RhcnQgb2YgdGhlIGN1cnJlbnQgZWxlbWVudCBpZiB0aGUgc2Nyb2xsIGRpcmVjdGlvbiBpcyBmb3J3YXJkXG4gICAgICAgICAgICAvLyBhbmQgdG8gdGhlIGVuZCBvZiB0aGUgY3VycmVudCBlbGVtZW50IGlmIHRoZSBzY3JvbGwgZGlyZWN0aW9uIGlzIGJhY2t3YXJkcy5cbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbiA9IGludGVyc2VjdGlvbnMuYmlnZ2VzdC5pbmRleCA9PT0gaW50ZXJzZWN0aW9ucy5maXJzdC5pbmRleCA/ICdlbmQnIDogJ3N0YXJ0JztcblxuICAgICAgICAgICAgdGhpcy5zY3JvbGxUb0VsZW1lbnQoe1xuICAgICAgICAgICAgICBlbGVtZW50OiBpbnRlcnNlY3Rpb25zLmJpZ2dlc3QuaW50ZXJzZWN0aW9uLnRhcmdldCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgICAgb3JpZ2luLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIE5vIHNwZWNpYWwgY2FzZS4gSnVzdCBzbmFwIHRvIHRoZSBiaWdnZXN0IGludGVyc2VjdGlvbi5cbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9FbGVtZW50KHtcbiAgICAgICAgICAgICAgZWxlbWVudDogaW50ZXJzZWN0aW9ucy5iaWdnZXN0LmludGVyc2VjdGlvbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGlzYWJsZVNuYXBwaW5nJCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIF9kaXNhYmxlU25hcHBpbmcoKSB7XG4gICAgdGhpcy5fZGlzYWJsZVNuYXBwaW5nJC5uZXh0KCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJldC1zY3JvbGxhYmxlLXdyYXBwZXJcIj5cbiAgPGRpdlxuICAgICNzY3JvbGxhYmxlXG4gICAgW2F0dHIucm9sZV09XCJzY3JvbGxhYmxlUm9sZSgpID8/IHVuZGVmaW5lZFwiXG4gICAgW2V0Q3Vyc29yRHJhZ1Njcm9sbF09XCJjdXJzb3JEcmFnU2Nyb2xsKClcIlxuICAgIFthbGxvd2VkRGlyZWN0aW9uXT1cImRpcmVjdGlvbigpXCJcbiAgICAoY3Vyc29yRHJhZ1N0YXJ0KT1cInNldElzQ3Vyc29yRHJhZ2dpbmcodHJ1ZSlcIlxuICAgIChjdXJzb3JEcmFnRW5kKT1cInNldElzQ3Vyc29yRHJhZ2dpbmcoZmFsc2UpXCJcbiAgICBjbGFzcz1cImV0LXNjcm9sbGFibGUtY29udGFpbmVyLW91dGVyXCJcbiAgPlxuICAgIDxkaXYgI3Njcm9sbGFibGVDb250YWluZXIgW25nQ2xhc3NdPVwic2Nyb2xsYWJsZUNsYXNzKClcIiBjbGFzcz1cImV0LXNjcm9sbGFibGUtY29udGFpbmVyXCI+XG4gICAgICA8ZGl2ICNmaXJzdEVsZW1lbnQgY2xhc3M9XCJldC1zY3JvbGwtb2JzZXJ2ZXItZmlyc3QtZWxlbWVudFwiIGV0U2Nyb2xsYWJsZUlnbm9yZUNoaWxkPjwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgIDxkaXYgI2xhc3RFbGVtZW50IGNsYXNzPVwiZXQtc2Nyb2xsLW9ic2VydmVyLWxhc3QtZWxlbWVudFwiIGV0U2Nyb2xsYWJsZUlnbm9yZUNoaWxkPjwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICBAaWYgKHJlbmRlck1hc2tzKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZXQtc2Nyb2xsYWJsZS1tYXNrc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImV0LXNjcm9sbGFibGUtbWFzayBldC1zY3JvbGxhYmxlLW1hc2stLXN0YXJ0XCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZXQtc2Nyb2xsYWJsZS1tYXNrIGV0LXNjcm9sbGFibGUtbWFzay0tZW5kXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cblxuICBAaWYgKHJlbmRlckJ1dHRvbnMoKSkge1xuICAgIDxkaXYgY2xhc3M9XCJldC1zY3JvbGxhYmxlLWJ1dHRvbnNcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKGNsaWNrKT1cInNjcm9sbFRvU3RhcnREaXJlY3Rpb24oKVwiXG4gICAgICAgIGNsYXNzPVwiZXQtc2Nyb2xsYWJsZS1idXR0b24gZXQtc2Nyb2xsYWJsZS1idXR0b24tLXN0YXJ0XCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgPlxuICAgICAgICA8ZXQtY2hldnJvbi1pY29uIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKGNsaWNrKT1cInNjcm9sbFRvRW5kRGlyZWN0aW9uKClcIlxuICAgICAgICBjbGFzcz1cImV0LXNjcm9sbGFibGUtYnV0dG9uIGV0LXNjcm9sbGFibGUtYnV0dG9uLS1lbmRcIlxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICA+XG4gICAgICAgIDxldC1jaGV2cm9uLWljb24gLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cblxuQGlmIChyZW5kZXJOYXZpZ2F0aW9uKCkpIHtcbiAgPGRpdiBjbGFzcz1cImV0LXNjcm9sbGFibGUtbmF2aWdhdGlvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgIEBmb3IgKGl0ZW0gb2Ygc2Nyb2xsYWJsZU5hdmlnYXRpb24oKTsgdHJhY2sgaTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgIDxidXR0b25cbiAgICAgICAgW2NsYXNzLmV0LXNjcm9sbGFibGUtbmF2aWdhdGlvbi1pdGVtLS1hY3RpdmVdPVwiaXRlbS5pc0FjdGl2ZVwiXG4gICAgICAgIChjbGljayk9XCJzY3JvbGxUb0VsZW1lbnRWaWFOYXZpZ2F0aW9uKGksIGl0ZW0uZWxlbWVudClcIlxuICAgICAgICBjbGFzcz1cImV0LXNjcm9sbGFibGUtbmF2aWdhdGlvbi1pdGVtXCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICA+PC9idXR0b24+XG4gICAgfVxuICA8L2Rpdj5cbn1cbiJdfQ==
598
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvc2Nyb2xsYWJsZS9jb21wb25lbnRzL3Njcm9sbGFibGUvc2Nyb2xsYWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvc2Nyb2xsYWJsZS9jb21wb25lbnRzL3Njcm9sbGFibGUvc2Nyb2xsYWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsZUFBZSxFQUNmLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUUsT0FBTyxFQUVMLHlCQUF5QixFQUN6QixZQUFZLEVBRVosMkJBQTJCLEVBRzNCLGNBQWMsRUFDZCxrQ0FBa0MsRUFDbEMsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxlQUFlLEVBQ2YscUJBQXFCLEVBQ3JCLHlCQUF5QixFQUN6Qix3QkFBd0IsRUFDeEIsb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNqQiwyQkFBMkIsRUFDM0IsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsT0FBTyxFQUNQLGFBQWEsRUFDYixZQUFZLEVBQ1osTUFBTSxF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dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFPN0Isb0JBQW9CO3NCQUQvQixTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFPdEMsYUFBYTtzQkFEeEIsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQU8vQixZQUFZO3NCQUR2QixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBTzlCLGtCQUFrQjtzQkFEN0IsZUFBZTt1QkFBQyxnQ0FBZ0MsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBjb21wdXRlZCxcbiAgZWZmZWN0LFxuICBpbmplY3QsXG4gIGlzRGV2TW9kZSxcbiAgbnVtYmVyQXR0cmlidXRlLFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkLCB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge1xuICBDdXJyZW50RWxlbWVudFZpc2liaWxpdHksXG4gIEN1cnNvckRyYWdTY3JvbGxEaXJlY3RpdmUsXG4gIExldERpcmVjdGl2ZSxcbiAgTmdDbGFzc1R5cGUsXG4gIE9ic2VydmVTY3JvbGxTdGF0ZURpcmVjdGl2ZSxcbiAgU2Nyb2xsT2JzZXJ2ZXJTY3JvbGxTdGF0ZSxcbiAgU2Nyb2xsVG9FbGVtZW50T3B0aW9ucyxcbiAgVHlwZWRRdWVyeUxpc3QsXG4gIGdldEZpcnN0QW5kTGFzdFBhcnRpYWxJbnRlcnNlY3Rpb24sXG4gIGlzRWxlbWVudFZpc2libGUsXG4gIG5leHRGcmFtZSxcbiAgc2Nyb2xsVG9FbGVtZW50LFxuICBzaWduYWxFbGVtZW50Q2hpbGRyZW4sXG4gIHNpZ25hbEVsZW1lbnRJbnRlcnNlY3Rpb24sXG4gIHNpZ25hbEVsZW1lbnRTY3JvbGxTdGF0ZSxcbiAgc2lnbmFsSG9zdEF0dHJpYnV0ZXMsXG4gIHNpZ25hbEhvc3RDbGFzc2VzLFxuICBzaWduYWxIb3N0RWxlbWVudERpbWVuc2lvbnMsXG4gIHNpZ25hbEhvc3RTdHlsZXMsXG59IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBTdWJqZWN0LFxuICBjb21iaW5lTGF0ZXN0LFxuICBkZWJvdW5jZVRpbWUsXG4gIGZpbHRlcixcbiAgZnJvbUV2ZW50LFxuICBtYXAsXG4gIHRha2UsXG4gIHRha2VVbnRpbCxcbiAgdGFwLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENoZXZyb25JY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vaWNvbnMvY2hldnJvbi1pY29uJztcbmltcG9ydCB7IFNjcm9sbGFibGVJZ25vcmVDaGlsZERpcmVjdGl2ZSwgaXNTY3JvbGxhYmxlQ2hpbGRJZ25vcmVkIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9zY3JvbGxhYmxlLWlnbm9yZS1jaGlsZCc7XG5pbXBvcnQge1xuICBTQ1JPTExBQkxFX0lTX0FDVElWRV9DSElMRF9UT0tFTixcbiAgU2Nyb2xsYWJsZUlzQWN0aXZlQ2hpbGREaXJlY3RpdmUsXG59IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvc2Nyb2xsYWJsZS1pcy1hY3RpdmUtY2hpbGQnO1xuaW1wb3J0IHsgU2Nyb2xsYWJsZUludGVyc2VjdGlvbkNoYW5nZSwgU2Nyb2xsYWJsZVNjcm9sbE1vZGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbi8vIFRocmVzaG9sZHMgZm9yIHRoZSBpbnRlcnNlY3Rpb24gb2JzZXJ2ZXIuXG5jb25zdCBFTEVNRU5UX0lOVEVSU0VDVElPTl9USFJFU0hPTEQgPSBbXG4gIC8vIFdlIHVzZSA1MSBzdGVwcyB0byBnZXQgYSAyJSBzdGVwIHNpemUuXG4gIC4uLkFycmF5LmZyb20oeyBsZW5ndGg6IDUxIH0sIChfLCBpKSA9PiBpIC8gNTApLFxuXG4gIC8vIEFkZGl0aW9uYWwgc3RlcHMgbmVlZGVkIHNpbmNlIGRpc3BsYXkgc2NhbGluZyBjYW4gY2F1c2UgdGhlIGludGVyc2VjdGlvbiByYXRpbyB0byBiZSBzbGlnaHRseSBvZmYuXG4gIDAuMDEsXG4gIDAuMDA1LFxuICAwLjAwMSxcbiAgMC45OSxcbiAgMC45OTUsXG4gIDAuOTk5LFxuXTtcblxuaW50ZXJmYWNlIFNjcm9sbGFibGVOYXZpZ2F0aW9uSXRlbSB7XG4gIGlzQWN0aXZlOiBib29sZWFuO1xuICBlbGVtZW50OiBIVE1MRWxlbWVudDtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXQtc2Nyb2xsYWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zY3JvbGxhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2Nyb2xsYWJsZS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIEN1cnNvckRyYWdTY3JvbGxEaXJlY3RpdmUsXG4gICAgT2JzZXJ2ZVNjcm9sbFN0YXRlRGlyZWN0aXZlLFxuICAgIE5nQ2xhc3MsXG4gICAgTGV0RGlyZWN0aXZlLFxuICAgIENoZXZyb25JY29uQ29tcG9uZW50LFxuICAgIFNjcm9sbGFibGVJc0FjdGl2ZUNoaWxkRGlyZWN0aXZlLFxuICAgIFNjcm9sbGFibGVJZ25vcmVDaGlsZERpcmVjdGl2ZSxcbiAgXSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZXQtc2Nyb2xsYWJsZScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIFNjcm9sbGFibGVDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaXNDdXJzb3JEcmFnZ2luZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBASW5wdXQoeyBhbGlhczogJ2l0ZW1TaXplJyB9KVxuICBzZXQgX2l0ZW1TaXplKHY6ICdhdXRvJyB8ICdzYW1lJyB8ICdmdWxsJykge1xuICAgIHRoaXMuaXRlbVNpemUuc2V0KHYpO1xuICB9XG4gIHJlYWRvbmx5IGl0ZW1TaXplID0gc2lnbmFsPCdhdXRvJyB8ICdzYW1lJyB8ICdmdWxsJz4oJ2F1dG8nKTtcblxuICBASW5wdXQoeyBhbGlhczogJ2RpcmVjdGlvbicgfSlcbiAgc2V0IF9kaXJlY3Rpb24odjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJykge1xuICAgIHRoaXMuZGlyZWN0aW9uLnNldCh2KTtcbiAgfVxuICByZWFkb25seSBkaXJlY3Rpb24gPSBzaWduYWw8J2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJz4oJ2hvcml6b250YWwnKTtcblxuICBASW5wdXQoeyBhbGlhczogJ3Njcm9sbGFibGVSb2xlJyB9KVxuICBzZXQgX3Njcm9sbGFibGVSb2xlKHY6IHN0cmluZyB8IG51bGwpIHtcbiAgICB0aGlzLnNjcm9sbGFibGVSb2xlLnNldCh2KTtcbiAgfVxuICByZWFkb25seSBzY3JvbGxhYmxlUm9sZSA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBASW5wdXQoeyBhbGlhczogJ3Njcm9sbGFibGVDbGFzcycgfSlcbiAgc2V0IF9zY3JvbGxhYmxlQ2xhc3ModjogTmdDbGFzc1R5cGUgfCBudWxsKSB7XG4gICAgdGhpcy5zY3JvbGxhYmxlQ2xhc3Muc2V0KHYpO1xuICB9XG4gIHJlYWRvbmx5IHNjcm9sbGFibGVDbGFzcyA9IHNpZ25hbDxOZ0NsYXNzVHlwZSB8IG51bGw+KG51bGwpO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSwgYWxpYXM6ICdyZW5kZXJOYXZpZ2F0aW9uJyB9KVxuICBzZXQgX3JlbmRlck5hdmlnYXRpb24odjogYm9vbGVhbikge1xuICAgIHRoaXMucmVuZGVyTmF2aWdhdGlvbi5zZXQodik7XG4gIH1cbiAgcmVhZG9ubHkgcmVuZGVyTmF2aWdhdGlvbiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLCBhbGlhczogJ3JlbmRlck1hc2tzJyB9KVxuICBzZXQgX3JlbmRlck1hc2tzKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnJlbmRlck1hc2tzLnNldCh2KTtcbiAgfVxuICByZWFkb25seSByZW5kZXJNYXNrcyA9IHNpZ25hbCh0cnVlKTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsIGFsaWFzOiAncmVuZGVyQnV0dG9ucycgfSlcbiAgc2V0IF9yZW5kZXJCdXR0b25zKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnJlbmRlckJ1dHRvbnMuc2V0KHYpO1xuICB9XG4gIHJlYWRvbmx5IHJlbmRlckJ1dHRvbnMgPSBzaWduYWwodHJ1ZSk7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLCBhbGlhczogJ3JlbmRlclNjcm9sbGJhcnMnIH0pXG4gIHNldCBfcmVuZGVyU2Nyb2xsYmFycyh2OiBib29sZWFuKSB7XG4gICAgdGhpcy5yZW5kZXJTY3JvbGxiYXJzLnNldCh2KTtcbiAgfVxuICByZWFkb25seSByZW5kZXJTY3JvbGxiYXJzID0gc2lnbmFsKGZhbHNlKTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsIGFsaWFzOiAnc3RpY2t5QnV0dG9ucycgfSlcbiAgc2V0IF9zdGlja3lCdXR0b25zKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnN0aWNreUJ1dHRvbnMuc2V0KHYpO1xuICB9XG4gIHJlYWRvbmx5IHN0aWNreUJ1dHRvbnMgPSBzaWduYWwoZmFsc2UpO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSwgYWxpYXM6ICdjdXJzb3JEcmFnU2Nyb2xsJyB9KVxuICBzZXQgX2N1cnNvckRyYWdTY3JvbGwodjogYm9vbGVhbikge1xuICAgIHRoaXMuY3Vyc29yRHJhZ1Njcm9sbC5zZXQodik7XG4gIH1cbiAgcmVhZG9ubHkgY3Vyc29yRHJhZ1Njcm9sbCA9IHNpZ25hbCh0cnVlKTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsIGFsaWFzOiAnZGlzYWJsZUFjdGl2ZUVsZW1lbnRTY3JvbGxpbmcnIH0pXG4gIHNldCBfZGlzYWJsZUFjdGl2ZUVsZW1lbnRTY3JvbGxpbmcodjogYm9vbGVhbikge1xuICAgIHRoaXMuZGlzYWJsZUFjdGl2ZUVsZW1lbnRTY3JvbGxpbmcuc2V0KHYpO1xuICB9XG4gIHJlYWRvbmx5IGRpc2FibGVBY3RpdmVFbGVtZW50U2Nyb2xsaW5nID0gc2lnbmFsKGZhbHNlKTtcblxuICBASW5wdXQoeyBhbGlhczogJ3Njcm9sbE1vZGUnIH0pXG4gIHNldCBfc2Nyb2xsTW9kZSh2OiBTY3JvbGxhYmxlU2Nyb2xsTW9kZSkge1xuICAgIHRoaXMuc2Nyb2xsTW9kZS5zZXQodik7XG4gIH1cbiAgcmVhZG9ubHkgc2Nyb2xsTW9kZSA9IHNpZ25hbDxTY3JvbGxhYmxlU2Nyb2xsTW9kZT4oJ2NvbnRhaW5lcicpO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSwgYWxpYXM6ICdzbmFwJyB9KVxuICBzZXQgX3NuYXAodjogYm9vbGVhbikge1xuICAgIHRoaXMuc25hcC5zZXQodik7XG4gIH1cbiAgcmVhZG9ubHkgc25hcCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUsIGFsaWFzOiAnc2Nyb2xsTWFyZ2luJyB9KVxuICBzZXQgX3Njcm9sbE1hcmdpbih2OiBudW1iZXIpIHtcbiAgICB0aGlzLnNjcm9sbE1hcmdpbi5zZXQodik7XG4gIH1cbiAgcmVhZG9ubHkgc2Nyb2xsTWFyZ2luID0gc2lnbmFsKDApO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBzY3JvbGxTdGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2Nyb2xsT2JzZXJ2ZXJTY3JvbGxTdGF0ZT4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgaW50ZXJzZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTY3JvbGxhYmxlSW50ZXJzZWN0aW9uQ2hhbmdlW10+KCk7XG5cbiAgQFZpZXdDaGlsZCgnc2Nyb2xsYWJsZScsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgc2V0IF9zY3JvbGxhYmxlKGU6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7XG4gICAgdGhpcy5zY3JvbGxhYmxlLnNldChlKTtcbiAgfVxuICByZWFkb25seSBzY3JvbGxhYmxlID0gc2lnbmFsPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgbnVsbD4obnVsbCk7XG5cbiAgQFZpZXdDaGlsZCgnc2Nyb2xsYWJsZUNvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgc2V0IF9zY3JvbGxhYmxlQ29udGFpbmVyKGU6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7XG4gICAgdGhpcy5zY3JvbGxhYmxlQ29udGFpbmVyLnNldChlKTtcbiAgfVxuICByZWFkb25seSBzY3JvbGxhYmxlQ29udGFpbmVyID0gc2lnbmFsPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgbnVsbD4obnVsbCk7XG5cbiAgQFZpZXdDaGlsZCgnZmlyc3RFbGVtZW50JywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJpdmF0ZSBzZXQgX2ZpcnN0RWxlbWVudChlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgIHRoaXMuZmlyc3RFbGVtZW50LnNldChlKTtcbiAgfVxuICByZWFkb25seSBmaXJzdEVsZW1lbnQgPSBzaWduYWw8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCBudWxsPihudWxsKTtcblxuICBAVmlld0NoaWxkKCdsYXN0RWxlbWVudCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgc2V0IF9sYXN0RWxlbWVudChlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICAgIHRoaXMubGFzdEVsZW1lbnQuc2V0KGUpO1xuICB9XG4gIHJlYWRvbmx5IGxhc3RFbGVtZW50ID0gc2lnbmFsPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgbnVsbD4obnVsbCk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihTQ1JPTExBQkxFX0lTX0FDVElWRV9DSElMRF9UT0tFTiwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBwcml2YXRlIHNldCBfYWN0aXZlRWxlbWVudExpc3QoZTogVHlwZWRRdWVyeUxpc3Q8U2Nyb2xsYWJsZUlzQWN0aXZlQ2hpbGREaXJlY3RpdmU+KSB7XG4gICAgdGhpcy5hY3RpdmVFbGVtZW50TGlzdC5zZXQoZSk7XG4gIH1cbiAgcmVhZG9ubHkgYWN0aXZlRWxlbWVudExpc3QgPSBzaWduYWw8VHlwZWRRdWVyeUxpc3Q8U2Nyb2xsYWJsZUlzQWN0aXZlQ2hpbGREaXJlY3RpdmU+IHwgbnVsbD4obnVsbCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjb250YWluZXJTY3JvbGxTdGF0ZSA9IHNpZ25hbEVsZW1lbnRTY3JvbGxTdGF0ZSh0aGlzLnNjcm9sbGFibGUpO1xuICBwcml2YXRlIHJlYWRvbmx5IGZpcnN0RWxlbWVudEludGVyc2VjdGlvbiA9IHNpZ25hbEVsZW1lbnRJbnRlcnNlY3Rpb24odGhpcy5maXJzdEVsZW1lbnQsIHsgcm9vdDogdGhpcy5zY3JvbGxhYmxlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IGZpcnN0RWxlbWVudFZpc2liaWxpdHkgPSBzaWduYWw8Q3VycmVudEVsZW1lbnRWaXNpYmlsaXR5IHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbGFzdEVsZW1lbnRJbnRlcnNlY3Rpb24gPSBzaWduYWxFbGVtZW50SW50ZXJzZWN0aW9uKHRoaXMubGFzdEVsZW1lbnQsIHsgcm9vdDogdGhpcy5zY3JvbGxhYmxlIH0pO1xuICBwcml2YXRlIHJlYWRvbmx5IGxhc3RFbGVtZW50VmlzaWJpbGl0eSA9IHNpZ25hbDxDdXJyZW50RWxlbWVudFZpc2liaWxpdHkgfCBudWxsPihudWxsKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGFsbFNjcm9sbGFibGVDaGlsZHJlbiA9IHNpZ25hbEVsZW1lbnRDaGlsZHJlbih0aGlzLnNjcm9sbGFibGVDb250YWluZXIpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNjcm9sbGFibGVEaW1lbnNpb25zID0gc2lnbmFsSG9zdEVsZW1lbnREaW1lbnNpb25zKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2Nyb2xsYWJsZUNoaWxkcmVuID0gY29tcHV0ZWQoKCkgPT5cbiAgICB0aGlzLmFsbFNjcm9sbGFibGVDaGlsZHJlbigpLmZpbHRlcigoYykgPT4gIWlzU2Nyb2xsYWJsZUNoaWxkSWdub3JlZChjKSksXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZGlzYWJsZVNuYXBwaW5nJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBzY3JvbGxhYmxlQ29udGVudEludGVyc2VjdGlvbnMgPSBzaWduYWxFbGVtZW50SW50ZXJzZWN0aW9uKHRoaXMuc2Nyb2xsYWJsZUNoaWxkcmVuLCB7XG4gICAgcm9vdDogdGhpcy5zY3JvbGxhYmxlLFxuICAgIHRocmVzaG9sZDogRUxFTUVOVF9JTlRFUlNFQ1RJT05fVEhSRVNIT0xELFxuICB9KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNjcm9sbGFibGVDb250ZW50SW50ZXJzZWN0aW9ucyQgPSB0b09ic2VydmFibGUodGhpcy5zY3JvbGxhYmxlQ29udGVudEludGVyc2VjdGlvbnMpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbWFudWFsQWN0aXZlTmF2aWdhdGlvbkluZGV4ID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2FuU2Nyb2xsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGRpciA9IHRoaXMuZGlyZWN0aW9uKCk7XG5cbiAgICBpZiAoZGlyID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbnRhaW5lclNjcm9sbFN0YXRlKCkuY2FuU2Nyb2xsSG9yaXpvbnRhbGx5O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNvbnRhaW5lclNjcm9sbFN0YXRlKCkuY2FuU2Nyb2xsVmVydGljYWxseTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpc0F0U3RhcnQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKCF0aGlzLmNhblNjcm9sbCgpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBpbnRlcnNlY3Rpb24gPSB0aGlzLmZpcnN0RWxlbWVudEludGVyc2VjdGlvbigpWzBdO1xuXG4gICAgaWYgKCFpbnRlcnNlY3Rpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLmZpcnN0RWxlbWVudFZpc2liaWxpdHkoKT8uaW5saW5lID8/IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGludGVyc2VjdGlvbi5pc0ludGVyc2VjdGluZztcbiAgfSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaXNBdEVuZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAoIXRoaXMuY2FuU2Nyb2xsKCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IGludGVyc2VjdGlvbiA9IHRoaXMubGFzdEVsZW1lbnRJbnRlcnNlY3Rpb24oKVswXTtcblxuICAgIGlmICghaW50ZXJzZWN0aW9uKSB7XG4gICAgICByZXR1cm4gdGhpcy5sYXN0RWxlbWVudFZpc2liaWxpdHkoKT8uaW5saW5lID8/IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGludGVyc2VjdGlvbi5pc0ludGVyc2VjdGluZztcbiAgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0dWFsSXRlbVNpemUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuaXRlbVNpemUoKSAhPT0gJ2Z1bGwnKSByZXR1cm4gbnVsbDtcblxuICAgIGNvbnN0IGRpbWVuc2lvbnMgPSB0aGlzLnNjcm9sbGFibGVEaW1lbnNpb25zKCk7XG5cbiAgICBpZiAodGhpcy5kaXJlY3Rpb24oKSA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICByZXR1cm4gZGltZW5zaW9ucy5yZWN0Py53aWR0aCA/PyBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZGltZW5zaW9ucy5yZWN0Py5oZWlnaHQgPz8gbnVsbDtcbiAgICB9XG4gIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZW5hYmxlT3ZlcmxheUFuaW1hdGlvbnMgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2luaXRpYWxTY3JvbGxhYmxlTmF2aWdhdGlvbiA9IHNpZ25hbDxTY3JvbGxhYmxlTmF2aWdhdGlvbkl0ZW1bXT4oW10pO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBzY3JvbGxhYmxlTmF2aWdhdGlvbiA9IGNvbXB1dGVkPFNjcm9sbGFibGVOYXZpZ2F0aW9uSXRlbVtdPigoKSA9PiB7XG4gICAgY29uc3QgYWxsSW50ZXJzZWN0aW9ucyA9IHRoaXMuc2Nyb2xsYWJsZUNvbnRlbnRJbnRlcnNlY3Rpb25zKCk7XG4gICAgY29uc3QgbWFudWFsQWN0aXZlTmF2aWdhdGlvbkluZGV4ID0gdGhpcy5tYW51YWxBY3RpdmVOYXZpZ2F0aW9uSW5kZXgoKTtcbiAgICBjb25zdCBpbml0aWFsU2Nyb2xsYWJsZU5hdmlnYXRpb24gPSB0aGlzLl9pbml0aWFsU2Nyb2xsYWJsZU5hdmlnYXRpb24oKTtcblxuICAgIGlmICghYWxsSW50ZXJzZWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBpbml0aWFsU2Nyb2xsYWJsZU5hdmlnYXRpb247XG4gICAgfVxuXG4gICAgY29uc3QgaGlnaGVzdEludGVyc2VjdGlvbiA9IGFsbEludGVyc2VjdGlvbnMucmVkdWNlKChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICBpZiAocHJldiAmJiBwcmV2LmludGVyc2VjdGlvblJhdGlvID4gY3Vyci5pbnRlcnNlY3Rpb25SYXRpbykge1xuICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGN1cnI7XG4gICAgfSwgYWxsSW50ZXJzZWN0aW9uc1swXSk7XG5cbiAgICBpZiAoIWhpZ2hlc3RJbnRlcnNlY3Rpb24pIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWxsSW50ZXJzZWN0aW9ucy5tYXAoKGksIGluZGV4KSA9PiAoe1xuICAgICAgaXNBY3RpdmU6XG4gICAgICAgIG1hbnVhbEFjdGl2ZU5hdmlnYXRpb25JbmRleCAhPT0gbnVsbFxuICAgICAgICAgID8gbWFudWFsQWN0aXZlTmF2aWdhdGlvbkluZGV4ID09PSBpbmRleFxuICAgICAgICAgIDogaSA9PT0gaGlnaGVzdEludGVyc2VjdGlvbiAmJiBoaWdoZXN0SW50ZXJzZWN0aW9uLmludGVyc2VjdGlvblJhdGlvID4gMCxcbiAgICAgIGVsZW1lbnQ6IGkudGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgIH0pKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgaG9zdEF0dHJpYnV0ZUJpbmRpbmdzID0gc2lnbmFsSG9zdEF0dHJpYnV0ZXMoe1xuICAgICdpdGVtLXNpemUnOiB0aGlzLml0ZW1TaXplLFxuICAgICdhY3R1YWwtaXRlbS1zaXplJzogdGhpcy5fYWN0dWFsSXRlbVNpemUsXG4gICAgZGlyZWN0aW9uOiB0aGlzLmRpcmVjdGlvbixcbiAgICAncmVuZGVyLXNjcm9sbGJhcnMnOiB0aGlzLnJlbmRlclNjcm9sbGJhcnMsXG4gICAgJ3N0aWNreS1idXR0b25zJzogdGhpcy5zdGlja3lCdXR0b25zLFxuICB9KTtcblxuICByZWFkb25seSBob3N0Q2xhc3NCaW5kaW5ncyA9IHNpZ25hbEhvc3RDbGFzc2VzKHtcbiAgICAnZXQtc2Nyb2xsYWJsZS0tY2FuLXNjcm9sbCc6IHRoaXMuY2FuU2Nyb2xsLFxuICAgICdldC1zY3JvbGxhYmxlLS1pcy1hdC1zdGFydCc6IHRoaXMuaXNBdFN0YXJ0LFxuICAgICdldC1zY3JvbGxhYmxlLS1pcy1hdC1lbmQnOiB0aGlzLmlzQXRFbmQsXG4gICAgJ2V0LXNjcm9sbGFibGUtLWVuYWJsZS1vdmVybGF5LWFuaW1hdGlvbnMnOiB0aGlzLmVuYWJsZU92ZXJsYXlBbmltYXRpb25zLFxuICB9KTtcblxuICByZWFkb25seSBob3N0U3R5bGVCaW5kaW5ncyA9IHNpZ25hbEhvc3RTdHlsZXMoe1xuICAgICctLWFjdHVhbC1pdGVtLXNpemUnOiBjb21wdXRlZCgoKSA9PiAodGhpcy5fYWN0dWFsSXRlbVNpemUoKSAhPT0gbnVsbCA/IGAke3RoaXMuX2FjdHVhbEl0ZW1TaXplKCl9cHhgIDogbnVsbCkpLFxuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNjcm9sbGFibGUgPSB0aGlzLnNjcm9sbGFibGUoKT8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgZmlyc3RFbGVtZW50ID0gdGhpcy5maXJzdEVsZW1lbnQoKT8ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgbGFzdEVsZW1lbnQgPSB0aGlzLmxhc3RFbGVtZW50KCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUVsZW1lbnRMaXN0ID0gdGhpcy5hY3RpdmVFbGVtZW50TGlzdCgpPy50b0FycmF5KCk7XG5cbiAgICAgICAgaWYgKCFzY3JvbGxhYmxlIHx8ICFmaXJzdEVsZW1lbnQgfHwgIWxhc3RFbGVtZW50IHx8ICFhY3RpdmVFbGVtZW50TGlzdCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpcnN0QWN0aXZlID0gYWN0aXZlRWxlbWVudExpc3QuZmluZCgoYSkgPT4gYS5pc0FjdGl2ZUNoaWxkRW5hYmxlZCgpKTtcblxuICAgICAgICBpZiAoZmlyc3RBY3RpdmUgJiYgIXRoaXMuZGlzYWJsZUFjdGl2ZUVsZW1lbnRTY3JvbGxpbmcoKSkge1xuICAgICAgICAgIGNvbnN0IG9mZnNldFRvcCA9IGZpcnN0QWN0aXZlLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRUb3AgLSBzY3JvbGxhYmxlLm9mZnNldFRvcDtcbiAgICAgICAgICBjb25zdCBvZmZzZXRMZWZ0ID0gZmlyc3RBY3RpdmUuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldExlZnQgLSBzY3JvbGxhYmxlLm9mZnNldExlZnQ7XG4gICAgICAgICAgc2Nyb2xsYWJsZS5zY3JvbGxMZWZ0ID0gb2Zmc2V0TGVmdCAtIHRoaXMuc2Nyb2xsTWFyZ2luKCk7XG4gICAgICAgICAgc2Nyb2xsYWJsZS5zY3JvbGxUb3AgPSBvZmZzZXRUb3AgLSB0aGlzLnNjcm9sbE1hcmdpbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5maXJzdEVsZW1lbnRWaXNpYmlsaXR5LnNldChcbiAgICAgICAgICBpc0VsZW1lbnRWaXNpYmxlKHtcbiAgICAgICAgICAgIGNvbnRhaW5lcjogc2Nyb2xsYWJsZSxcbiAgICAgICAgICAgIGVsZW1lbnQ6IGZpcnN0RWxlbWVudCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmxhc3RFbGVtZW50VmlzaWJpbGl0eS5zZXQoXG4gICAgICAgICAgaXNFbGVtZW50VmlzaWJsZSh7XG4gICAgICAgICAgICBjb250YWluZXI6IHNjcm9sbGFibGUsXG4gICAgICAgICAgICBlbGVtZW50OiBsYXN0RWxlbWVudCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBXZSBuZWVkIHRvIHdhaXQgb25lIGZyYW1lIGJlZm9yZSBlbmFibGluZyBhbmltYXRpb25zIHRvIHByZXZlbnQgYSBhbmltYXRpb24gZnJvbSBwbGF5aW5nIGR1cmluZyBpbml0aWFsIHJlbmRlci5cbiAgICAgICAgbmV4dEZyYW1lKCgpID0+IHRoaXMuZW5hYmxlT3ZlcmxheUFuaW1hdGlvbnMuc2V0KHRydWUpKTtcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXG4gICAgKTtcblxuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudExpc3QgPSB0aGlzLnNjcm9sbGFibGVDaGlsZHJlbigpO1xuICAgICAgICBjb25zdCBzY3JvbGxhYmxlID0gdGhpcy5zY3JvbGxhYmxlKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHJlbmRlck5hdmlnYXRpb24gPSB0aGlzLnJlbmRlck5hdmlnYXRpb24oKTtcblxuICAgICAgICBpZiAoIWVsZW1lbnRMaXN0IHx8ICFzY3JvbGxhYmxlIHx8ICFyZW5kZXJOYXZpZ2F0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlyc3RWaXNpYmxlRWxlbWVudCA9IGVsZW1lbnRMaXN0LmZpbmQoKGUpID0+IGlzRWxlbWVudFZpc2libGUoeyBjb250YWluZXI6IHNjcm9sbGFibGUsIGVsZW1lbnQ6IGUgfSkpO1xuXG4gICAgICAgIGlmICghZmlyc3RWaXNpYmxlRWxlbWVudCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGluaXRpYWxOYXZpZ2F0aW9uSXRlbXM6IFNjcm9sbGFibGVOYXZpZ2F0aW9uSXRlbVtdID0gZWxlbWVudExpc3QubWFwKChlKSA9PiAoe1xuICAgICAgICAgIGlzQWN0aXZlOiBlID09PSBmaXJzdFZpc2libGVFbGVtZW50LFxuICAgICAgICAgIGVsZW1lbnQ6IGUsXG4gICAgICAgIH0pKTtcblxuICAgICAgICB0aGlzLl9pbml0aWFsU2Nyb2xsYWJsZU5hdmlnYXRpb24uc2V0KGluaXRpYWxOYXZpZ2F0aW9uSXRlbXMpO1xuICAgICAgfSxcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcbiAgICApO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGlzQXRTdGFydCA9IHRoaXMuaXNBdFN0YXJ0KCk7XG4gICAgICBjb25zdCBpc0F0RW5kID0gdGhpcy5pc0F0RW5kKCk7XG4gICAgICBjb25zdCBjYW5TY3JvbGwgPSB0aGlzLmNhblNjcm9sbCgpO1xuXG4gICAgICB0aGlzLnNjcm9sbFN0YXRlQ2hhbmdlLmVtaXQoe1xuICAgICAgICBjYW5TY3JvbGwsXG4gICAgICAgIGlzQXRFbmQ6ICEhaXNBdEVuZCxcbiAgICAgICAgaXNBdFN0YXJ0OiAhIWlzQXRTdGFydCxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGVuYWJsZVNuYXBwaW5nID0gdGhpcy5zbmFwKCk7XG5cbiAgICAgIGlmIChlbmFibGVTbmFwcGluZykge1xuICAgICAgICB0aGlzLl9lbmFibGVTbmFwcGluZygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fZGlzYWJsZVNuYXBwaW5nKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnNjcm9sbGFibGVDb250ZW50SW50ZXJzZWN0aW9ucyRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgICAgZGVib3VuY2VUaW1lKDEwKSxcbiAgICAgICAgdGFwKChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgdGhpcy5pbnRlcnNlY3Rpb25DaGFuZ2UuZW1pdChcbiAgICAgICAgICAgIGVudHJpZXMubWFwKChpLCBpbmRleCkgPT4gKHtcbiAgICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgICAgIGVsZW1lbnQ6IGkudGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgICBpbnRlcnNlY3Rpb25SYXRpbzogaS5pbnRlcnNlY3Rpb25SYXRpbyxcbiAgICAgICAgICAgICAgaXNJbnRlcnNlY3Rpbmc6IGkuaXNJbnRlcnNlY3RpbmcsXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBzY3JvbGxPbmVDb250YWluZXJTaXplKGRpcmVjdGlvbjogJ3N0YXJ0JyB8ICdlbmQnKSB7XG4gICAgY29uc3Qgc2Nyb2xsRWxlbWVudCA9IHRoaXMuc2Nyb2xsYWJsZSgpPy5uYXRpdmVFbGVtZW50O1xuXG4gICAgaWYgKCFzY3JvbGxFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgY29uc3QgaXNTbmFwcGluZ0VuYWJsZWQgPSB0aGlzLnNuYXAoKTtcblxuICAgIGlmIChpc1NuYXBwaW5nRW5hYmxlZCkge1xuICAgICAgLy8gSWYgc25hcHBpbmcgaXMgZW5hYmxlZCB3ZSB3YW50IHRvIHNjcm9sbCB0byBhIHBvc2l0aW9uIHdoZXJlIG5vIGZ1cnRoZXIgc25hcHBpbmcgd2lsbCBoYXBwZW4gYWZ0ZXIgdGhlIHNjcm9sbC5cbiAgICAgIGNvbnN0IGFsbEludGVyc2VjdGlvbnMgPSB0aGlzLnNjcm9sbGFibGVDb250ZW50SW50ZXJzZWN0aW9ucygpO1xuICAgICAgY29uc3QgaW50ZXJzZWN0aW9ucyA9IGdldEZpcnN0QW5kTGFzdFBhcnRpYWxJbnRlcnNlY3Rpb24oYWxsSW50ZXJzZWN0aW9ucyk7XG4gICAgICBjb25zdCByZWxldmFudEludGVyc2VjdGlvbiA9IGRpcmVjdGlvbiA9PT0gJ3N0YXJ0JyA/IGludGVyc2VjdGlvbnM/LmZpcnN0IDogaW50ZXJzZWN0aW9ucz8ubGFzdDtcblxuICAgICAgaWYgKCFyZWxldmFudEludGVyc2VjdGlvbikgcmV0dXJuO1xuXG4gICAgICBjb25zdCBuZXh0SW5kZXggPVxuICAgICAgICByZWxldmFudEludGVyc2VjdGlvbi5pbnRlcnNlY3Rpb24uaW50ZXJzZWN0aW9uUmF0aW8gIT09IDFcbiAgICAgICAgICA/IHJlbGV2YW50SW50ZXJzZWN0aW9uLmluZGV4XG4gICAgICAgICAgOiBkaXJlY3Rpb24gPT09ICdzdGFydCdcbiAgICAgICAgICAgID8gcmVsZXZhbnRJbnRlcnNlY3Rpb24uaW5kZXggLSAxXG4gICAgICAgICAgICA6IHJlbGV2YW50SW50ZXJzZWN0aW9uLmluZGV4ICsgMTtcblxuICAgICAgY29uc3QgZWxlbWVudCA9XG4gICAgICAgIChhbGxJbnRlcnNlY3Rpb25zW25leHRJbmRleF0/LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgfHxcbiAgICAgICAgKHJlbGV2YW50SW50ZXJzZWN0aW9uLmludGVyc2VjdGlvbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQpO1xuXG4gICAgICB0aGlzLnNjcm9sbFRvRWxlbWVudCh7XG4gICAgICAgIGVsZW1lbnQ6IGVsZW1lbnQsXG4gICAgICAgIG9yaWdpbjogZGlyZWN0aW9uID09PSAnZW5kJyA/ICdzdGFydCcgOiAnZW5kJyxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBKdXN0IHNjcm9sbCBvbmUgc2l6ZSBvZiB0aGUgc2Nyb2xsYWJsZSBjb250YWluZXIuXG4gICAgICBjb25zdCBzY3JvbGxhYmxlU2l6ZSA9IHRoaXMuZGlyZWN0aW9uKCkgPT09ICdob3Jpem9udGFsJyA/IHBhcmVudC5jbGllbnRXaWR0aCA6IHBhcmVudC5jbGllbnRIZWlnaHQ7XG4gICAgICBjb25zdCBjdXJyZW50U2Nyb2xsID0gdGhpcy5kaXJlY3Rpb24oKSA9PT0gJ2hvcml6b250YWwnID8gc2Nyb2xsRWxlbWVudC5zY3JvbGxMZWZ0IDogc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3A7XG5cbiAgICAgIHNjcm9sbEVsZW1lbnQuc2Nyb2xsVG8oe1xuICAgICAgICBbdGhpcy5kaXJlY3Rpb24oKSA9PT0gJ2hvcml6b250YWwnID8gJ2xlZnQnIDogJ3RvcCddOlxuICAgICAgICAgIGN1cnJlbnRTY3JvbGwgKyAoZGlyZWN0aW9uID09PSAnc3RhcnQnID8gLXNjcm9sbGFibGVTaXplIDogc2Nyb2xsYWJsZVNpemUpLFxuICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzY3JvbGxPbmVJdGVtU2l6ZShkaXJlY3Rpb246ICdzdGFydCcgfCAnZW5kJykge1xuICAgIGNvbnN0IGFsbEludGVyc2VjdGlvbnMgPSB0aGlzLnNjcm9sbGFibGVDb250ZW50SW50ZXJzZWN0aW9ucygpO1xuICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSB0aGlzLnNjcm9sbGFibGUoKT8ubmF0aXZlRWxlbWVudDtcblxuICAgIGlmICghYWxsSW50ZXJzZWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ05vIGVsZW1lbnRzIGZvdW5kIHRvIHNjcm9sbCB0by4gTWFrZSBzdXJlIHRvIGFwcGx5IHRoZSBpc0VsZW1lbnQgZGlyZWN0aXZlIHRvIHRoZSBlbGVtZW50cyB5b3Ugd2FudCB0byBzY3JvbGwgdG8uJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpbnRlcnNlY3Rpb25zID0gZ2V0Rmlyc3RBbmRMYXN0UGFydGlhbEludGVyc2VjdGlvbihhbGxJbnRlcnNlY3Rpb25zKTtcblxuICAgIGlmICghaW50ZXJzZWN0aW9ucyB8fCAhc2Nyb2xsRWxlbWVudCkgcmV0dXJuO1xuXG4gICAgLy8gTWVhbnMgdGhlIGN1cnJlbnQgZWxlbWVudCBpcyBiaWdnZXIgdGhhbiB0aGUgc2Nyb2xsYWJsZSBjb250YWluZXIuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIHNob3VsZCBzY3JvbGwgdG8gdGhlIHN0YXJ0IG9mIHRoZSBjdXJyZW50IGVsZW1lbnQuIElmIHdlIGFyZSBhbHJlYWR5IHRoZXJlIHdlIHNob3VsZCBzY3JvbGwgdG8gdGhlIGVuZCBvZiB0aGUgcHJldmlvdXMgZWxlbWVudC5cbiAgICAvLyBUaGlzIGFwcGxpZXMgdG8gdGhlIG90aGVyIGRpcmVjdGlvbiBhcyB3ZWxsLlxuICAgIGNvbnN0IGlzRmlyc3RBbmRMYXN0SW50ZXJzZWN0aW9uRXF1YWwgPSBpbnRlcnNlY3Rpb25zLmZpcnN0LmludGVyc2VjdGlvbiA9PT0gaW50ZXJzZWN0aW9ucy5sYXN0LmludGVyc2VjdGlvbjtcbiAgICBjb25zdCBzY3JvbGxhYmxlUmVjdCA9IHNjcm9sbEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICBpZiAoaXNGaXJzdEFuZExhc3RJbnRlcnNlY3Rpb25FcXVhbCkge1xuICAgICAgY29uc3QgaW50ZXJzZWN0aW9uID0gaW50ZXJzZWN0aW9ucy5maXJzdC5pbnRlcnNlY3Rpb24udGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgaXNTdGFydE9mRWxlbWVudFZpc2libGUgPVxuICAgICAgICB0aGlzLmRpcmVjdGlvbigpID09PSAnaG9yaXpvbnRhbCdcbiAgICAgICAgICA/IE1hdGgucm91bmQoaW50ZXJzZWN0aW9uLmxlZnQpID49IE1hdGgucm91bmQoc2Nyb2xsYWJsZVJlY3QubGVmdClcbiAgICAgICAgICA6IE1hdGgucm91bmQoaW50ZXJzZWN0aW9uLnRvcCkgPj0gTWF0aC5yb3VuZChzY3JvbGxhYmxlUmVjdC50b3ApO1xuXG4gICAgICBjb25zdCBpc0VuZE9mRWxlbWVudFZpc2libGUgPVxuICAgICAgICB0aGlzLmRpcmVjdGlvbigpID09PSAnaG9yaXpvbnRhbCdcbiAgICAgICAgICA/IE1hdGgucm91bmQoaW50ZXJzZWN0aW9uLnJpZ2h0KSA8PSBNYXRoLnJvdW5kKHNjcm9sbGFibGVSZWN0LnJpZ2h0KVxuICAgICAgICAgIDogTWF0aC5yb3VuZChpbnRlcnNlY3Rpb24uYm90dG9tKSA8PSBNYXRoLnJvdW5kKHNjcm9sbGFibGVSZWN0LmJvdHRvbSk7XG5cbiAgICAgIGlmICghaXNTdGFydE9mRWxlbWVudFZpc2libGUgfHwgIWlzRW5kT2ZFbGVtZW50VmlzaWJsZSkge1xuICAgICAgICBpZiAoZGlyZWN0aW9uID09PSAnc3RhcnQnKSB7XG4gICAgICAgICAgaWYgKGlzU3RhcnRPZkVsZW1lbnRWaXNpYmxlKSB7XG4gICAgICAgICAgICAvLyB0byB0aGUgZW5kIG9mIHRoZSBwcmV2aW91cyBlbGVtZW50XG4gICAgICAgICAgICBjb25zdCBwcmV2aW91c0luZGV4ID0gaW50ZXJzZWN0aW9ucy5maXJzdC5pbmRleCAtIDE7XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50VG9TY3JvbGxUbyA9IGFsbEludGVyc2VjdGlvbnNbcHJldmlvdXNJbmRleF0/LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICAgICAgaWYgKCFlbGVtZW50VG9TY3JvbGxUbykgcmV0dXJuO1xuXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvRWxlbWVudCh7XG4gICAgICAgICAgICAgIGVsZW1lbnQ6IGVsZW1lbnRUb1Njcm9sbFRvLFxuICAgICAgICAgICAgICBvcmlnaW46ICdlbmQnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHRvIHRoZSBzdGFydCBvZiB0aGUgY3VycmVudCBlbGVtZW50XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvRWxlbWVudCh7XG4gICAgICAgICAgICAgIGVsZW1lbnQ6IGludGVyc2VjdGlvbnMuZmlyc3QuaW50ZXJzZWN0aW9uLnRhcmdldCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgICAgb3JpZ2luOiAnc3RhcnQnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChpc0VuZE9mRWxlbWVudFZpc2libGUpIHtcbiAgICAgICAgICAgIC8vIHRvIHRoZSBzdGFydCBvZiB0aGUgbmV4dCBlbGVtZW50XG4gICAgICAgICAgICBjb25zdCBuZXh0SW5kZXggPSBpbnRlcnNlY3Rpb25zLmxhc3QuaW5kZXggKyAxO1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudFRvU2Nyb2xsVG8gPSBhbGxJbnRlcnNlY3Rpb25zW25leHRJbmRleF0/LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICAgICAgaWYgKCFlbGVtZW50VG9TY3JvbGxUbykgcmV0dXJuO1xuXG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvRWxlbWVudCh7XG4gICAgICAgICAgICAgIGVsZW1lbnQ6IGVsZW1lbnRUb1Njcm9sbFRvLFxuICAgICAgICAgICAgICBvcmlnaW46ICdzdGFydCcsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdG8gdGhlIGVuZCBvZiB0aGUgY3VycmVudCBlbGVtZW50XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvRWxlbWVudCh7XG4gICAgICAgICAgICAgIGVsZW1lbnQ6IGludGVyc2VjdGlvbnMubGFzdC5pbnRlcnNlY3Rpb24udGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgICBvcmlnaW46ICdlbmQnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGRhdGEgPSBkaXJlY3Rpb24gPT09ICdzdGFydCcgPyBpbnRlcnNlY3Rpb25zLmZpcnN0IDogaW50ZXJzZWN0aW9ucy5sYXN0O1xuICAgIGxldCBlbGVtZW50VG9TY3JvbGxUbyA9IGRhdGEuaW50ZXJzZWN0aW9uLnRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgIGlmIChNYXRoLnJvdW5kKGRhdGEuaW50ZXJzZWN0aW9uLmludGVyc2VjdGlvblJhdGlvKSA9PT0gMSkge1xuICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gJ3N0YXJ0JyAmJiBkYXRhLmluZGV4ID09PSAwKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gJ2VuZCcgJiYgZGF0YS5pbmRleCA9PT0gYWxsSW50ZXJzZWN0aW9ucy5sZW5ndGggLSAxKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbmV4dEluZGV4ID0gZGlyZWN0aW9uID09PSAnc3RhcnQnID8gZGF0YS5pbmRleCAtIDEgOiBkYXRhLmluZGV4ICsgMTtcblxuICAgICAgZWxlbWVudFRvU2Nyb2xsVG8gPSBhbGxJbnRlcnNlY3Rpb25zW25leHRJbmRleF0/LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG5cbiAgICBpZiAoIWVsZW1lbnRUb1Njcm9sbFRvKSByZXR1cm47XG5cbiAgICB0aGlzLnNjcm9sbFRvRWxlbWVudCh7XG4gICAgICBlbGVtZW50OiBlbGVtZW50VG9TY3JvbGxUbyxcbiAgICAgIG9yaWdpbjogZGlyZWN0aW9uLFxuICAgIH0pO1xuICB9XG5cbiAgc2Nyb2xsVG9FbGVtZW50KG9wdGlvbnM6IE9taXQ8U2Nyb2xsVG9FbGVtZW50T3B0aW9ucywgJ2NvbnRhaW5lcic+KSB7XG4gICAgY29uc3Qgc2Nyb2xsRWxlbWVudCA9IHRoaXMuc2Nyb2xsYWJsZSgpPy5uYXRpdmVFbGVtZW50O1xuXG4gICAgc2Nyb2xsVG9FbGVtZW50KHtcbiAgICAgIGNvbnRhaW5lcjogc2Nyb2xsRWxlbWVudCxcbiAgICAgIGRpcmVjdGlvbjogdGhpcy5kaXJlY3Rpb24oKSA9PT0gJ2hvcml6b250YWwnID8gJ2lubGluZScgOiAnYmxvY2snLFxuICAgICAgLi4uKHRoaXMuZGlyZWN0aW9uKCkgPT09ICdob3Jpem9udGFsJ1xuICAgICAgICA/IHsgc2Nyb2xsSW5saW5lTWFyZ2luOiB0aGlzLnNjcm9sbE1hcmdpbigpIH1cbiAgICAgICAgOiB7IHNjcm9sbEJsb2NrTWFyZ2luOiB0aGlzLnNjcm9sbE1hcmdpbigpIH0pLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIHNjcm9sbFRvRWxlbWVudEJ5SW5kZXgob3B0aW9uczogT21pdDxTY3JvbGxUb0VsZW1lbnRPcHRpb25zLCAnY29udGFpbmVyJz4gJiB7IGluZGV4OiBudW1iZXIgfSkge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5zY3JvbGxhYmxlQ2hpbGRyZW4oKTtcblxuICAgIGlmICghZWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdObyBlbGVtZW50cyBmb3VuZCB0byBzY3JvbGwgdG8uIE1ha2Ugc3VyZSB0byBhcHBseSB0aGUgaXNFbGVtZW50IGRpcmVjdGl2ZSB0byB0aGUgZWxlbWVudHMgeW91IHdhbnQgdG8gc2Nyb2xsIHRvLicsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2Nyb2xsRWxlbWVudCA9IHRoaXMuc2Nyb2xsYWJsZSgpPy5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGVsZW1lbnQgPSBlbGVtZW50c1tvcHRpb25zLmluZGV4XTtcblxuICAgIHNjcm9sbFRvRWxlbWVudCh7XG4gICAgICBjb250YWluZXI6IHNjcm9sbEVsZW1lbnQsXG4gICAgICBlbGVtZW50LFxuICAgICAgLi4uKHRoaXMuZGlyZWN0aW9uKCkgPT09ICdob3Jpem9udGFsJ1xuICAgICAgICA/IHsgc2Nyb2xsSW5saW5lTWFyZ2luOiB0aGlzLnNjcm9sbE1hcmdpbigpIH1cbiAgICAgICAgOiB7IHNjcm9sbEJsb2NrTWFyZ2luOiB0aGlzLnNjcm9sbE1hcmdpbigpIH0pLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzY3JvbGxUb0VsZW1lbnRWaWFOYXZpZ2F0aW9uKGVsZW1lbnRJbmRleDogbnVtYmVyLCBlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgIHRoaXMubWFudWFsQWN0aXZlTmF2aWdhdGlvbkluZGV4LnNldChlbGVtZW50SW5kZXgpO1xuXG4gICAgdGhpcy5zY3JvbGxUb0VsZW1lbnQoe1xuICAgICAgZWxlbWVudCxcbiAgICB9KTtcblxuICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSB0aGlzLnNjcm9sbGFibGUoKT8ubmF0aXZlRWxlbWVudDtcblxuICAgIGlmICghc2Nyb2xsRWxlbWVudCkgcmV0dXJuO1xuXG4gICAgZnJvbUV2ZW50KHNjcm9sbEVsZW1lbnQsICdzY3JvbGwnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSg1MCksXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLm1hbnVhbEFjdGl2ZU5hdmlnYXRpb25JbmRleC5zZXQobnVsbCkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldElzQ3Vyc29yRHJhZ2dpbmcoaXNEcmFnZ2luZzogYm9vbGVhbikge1xuICAgIHRoaXMuX2lzQ3Vyc29yRHJhZ2dpbmckLm5leHQoaXNEcmFnZ2luZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2Nyb2xsVG9TdGFydERpcmVjdGlvbigpIHtcbiAgICBpZiAodGhpcy5zY3JvbGxNb2RlKCkgPT09ICdjb250YWluZXInKSB7XG4gICAgICB0aGlzLnNjcm9sbE9uZUNvbnRhaW5lclNpemUoJ3N0YXJ0Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2Nyb2xsT25lSXRlbVNpemUoJ3N0YXJ0Jyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHNjcm9sbFRvRW5kRGlyZWN0aW9uKCkge1xuICAgIGlmICh0aGlzLnNjcm9sbE1vZGUoKSA9PT0gJ2NvbnRhaW5lcicpIHtcbiAgICAgIHRoaXMuc2Nyb2xsT25lQ29udGFpbmVyU2l6ZSgnZW5kJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2Nyb2xsT25lSXRlbVNpemUoJ2VuZCcpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2VuYWJsZVNuYXBwaW5nKCkge1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuc2Nyb2xsYWJsZUNvbnRlbnRJbnRlcnNlY3Rpb25zJCwgdGhpcy5faXNDdXJzb3JEcmFnZ2luZyRdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoWywgaXNEcmFnZ2luZ10pID0+ICFpc0RyYWdnaW5nKSxcbiAgICAgICAgbWFwKChbaW50ZXJzZWN0aW9uc10pID0+IGludGVyc2VjdGlvbnMpLFxuICAgICAgICBkZWJvdW5jZVRpbWUoMTUwKSxcbiAgICAgICAgdGFwKChhbGxJbnRlcnNlY3Rpb25zKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc2Nyb2xsRWxlbWVudCA9IHRoaXMuc2Nyb2xsYWJsZSgpPy5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgICAgaWYgKCFzY3JvbGxFbGVtZW50KSByZXR1cm47XG5cbiAgICAgICAgICBjb25zdCBpbnRlcnNlY3Rpb25zID0gZ2V0Rmlyc3RBbmRMYXN0UGFydGlhbEludGVyc2VjdGlvbihhbGxJbnRlcnNlY3Rpb25zKTtcblxuICAgICAgICAgIGlmICghaW50ZXJzZWN0aW9ucykgcmV0dXJuO1xuXG4gICAgICAgICAgY29uc3QgaXNGaXJzdEFuZExhc3RJbnRlcnNlY3Rpb25FcXVhbCA9IGludGVyc2VjdGlvbnMuZmlyc3QuaW50ZXJzZWN0aW9uID09PSBpbnRlcnNlY3Rpb25zLmxhc3QuaW50ZXJzZWN0aW9uO1xuICAgICAgICAgIGNvbnN0IHNjcm9sbGFibGVSZWN0ID0gc2Nyb2xsRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgIGlmIChpc0ZpcnN0QW5kTGFzdEludGVyc2VjdGlvbkVxdWFsKSB7XG4gICAgICAgICAgICBjb25zdCBpbnRlcnNlY3Rpb24gPSBpbnRlcnNlY3Rpb25zLmZpcnN0LmludGVyc2VjdGlvbi50YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICBjb25zdCBpc1N0YXJ0T2ZFbGVtZW50VmlzaWJsZSA9XG4gICAgICAgICAgICAgIHRoaXMuZGlyZWN0aW9uKCkgPT09ICdob3Jpem9udGFsJ1xuICAgICAgICAgICAgICAgID8gaW50ZXJzZWN0aW9uLmxlZnQgPj0gc2Nyb2xsYWJsZVJlY3QubGVmdFxuICAgICAgICAgICAgICAgIDogaW50ZXJzZWN0aW9uLnRvcCA+PSBzY3JvbGxhYmxlUmVjdC50b3A7XG5cbiAgICAgICAgICAgIGNvbnN0IGlzRW5kT2ZFbGVtZW50VmlzaWJsZSA9XG4gICAgICAgICAgICAgIHRoaXMuZGlyZWN0aW9uKCkgPT09ICdob3Jpem9udGFsJ1xuICAgICAgICAgICAgICAgID8gaW50ZXJzZWN0aW9uLnJpZ2h0IDw9IHNjcm9sbGFibGVSZWN0LnJpZ2h0XG4gICAgICAgICAgICAgICAgOiBpbnRlcnNlY3Rpb24uYm90dG9tIDw9IHNjcm9sbGFibGVSZWN0LmJvdHRvbTtcblxuICAgICAgICAgICAgLy8gRG9uJ3Qgc25hcCBpZiBuZWl0aGVyIHRoZSBzdGFydCBub3IgdGhlIGVuZCBvZiB0aGUgY3VycmVudCBlbGVtZW50IGlzIHZpc2libGUuXG4gICAgICAgICAgICAvLyBPdGhlcndpc2UgdGhpcyB3b3VsZCByZXN1bHQgaW4gcGFydHMgb2YgdGhlIGVsZW1lbnQgYmVpbmcgaW5hY2Nlc3NpYmxlLlxuICAgICAgICAgICAgaWYgKCFpc1N0YXJ0T2ZFbGVtZW50VmlzaWJsZSAmJiAhaXNFbmRPZkVsZW1lbnRWaXNpYmxlKSByZXR1cm47XG5cbiAgICAgICAgICAgIC8vIElmIHRoZSBzdGFydCBvZiB0aGUgZWxlbWVudCBpcyB2aXNpYmxlIHdlIHNob3VsZCBzbmFwIHRvIHRoZSBzdGFydC5cbiAgICAgICAgICAgIGlmIChpc1N0YXJ0T2ZFbGVtZW50VmlzaWJsZSkge1xuICAgICAgICAgICAgICB0aGlzLnNjcm9sbFRvRWxlbWVudCh7XG4gICAgICAgICAgICAgICAgZWxlbWVudDogaW50ZXJzZWN0aW9ucy5maXJzdC5pbnRlcnNlY3Rpb24udGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgICAgIG9yaWdpbjogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSWYgdGhlIGVuZCBvZiB0aGUgZWxlbWVudCBpcyB2aXNpYmxlIHdlIHNob3VsZCBzbmFwIHRvIHRoZSBlbmQuXG4gICAgICAgICAgICBpZiAoaXNFbmRPZkVsZW1lbnRWaXNpYmxlKSB7XG4gICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9FbGVtZW50KHtcbiAgICAgICAgICAgICAgICBlbGVtZW50OiBpbnRlcnNlY3Rpb25zLmxhc3QuaW50ZXJzZWN0aW9uLnRhcmdldCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgICAgICBvcmlnaW46ICdlbmQnLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAodGhpcy5kaXJlY3Rpb24oKSA9PT0gJ2hvcml6b250YWwnICYmXG4gICAgICAgICAgICAgIGludGVyc2VjdGlvbnMuYmlnZ2VzdC5pbnRlcnNlY3Rpb24uYm91bmRpbmdDbGllbnRSZWN0LndpZHRoID4gc2Nyb2xsYWJsZVJlY3Qud2lkdGgpIHx8XG4gICAgICAgICAgICAodGhpcy5kaXJlY3Rpb24oKSA9PT0gJ3ZlcnRpY2FsJyAmJlxuICAgICAgICAgICAgICBpbnRlcnNlY3Rpb25zLmJpZ2dlc3QuaW50ZXJzZWN0aW9uLmJvdW5kaW5nQ2xpZW50UmVjdC5oZWlnaHQgPiBzY3JvbGxhYmxlUmVjdC5oZWlnaHQpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBlbGVtZW50IGlzIGJpZ2dlciB0aGFuIHRoZSBzY3JvbGxhYmxlIGNvbnRhaW5lciB3ZSBzaG91bGQgc25hcCB0byB0aGUgc3RhcnQgb2YgdGhlIGN1cnJlbnQgZWxlbWVudCBpZiB0aGUgc2Nyb2xsIGRpcmVjdGlvbiBpcyBmb3J3YXJkXG4gICAgICAgICAgICAvLyBhbmQgdG8gdGhlIGVuZCBvZiB0aGUgY3VycmVudCBlbGVtZW50IGlmIHRoZSBzY3JvbGwgZGlyZWN0aW9uIGlzIGJhY2t3YXJkcy5cbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbiA9IGludGVyc2VjdGlvbnMuYmlnZ2VzdC5pbmRleCA9PT0gaW50ZXJzZWN0aW9ucy5maXJzdC5pbmRleCA/ICdlbmQnIDogJ3N0YXJ0JztcblxuICAgICAgICAgICAgdGhpcy5zY3JvbGxUb0VsZW1lbnQoe1xuICAgICAgICAgICAgICBlbGVtZW50OiBpbnRlcnNlY3Rpb25zLmJpZ2dlc3QuaW50ZXJzZWN0aW9uLnRhcmdldCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgICAgb3JpZ2luLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIE5vIHNwZWNpYWwgY2FzZS4gSnVzdCBzbmFwIHRvIHRoZSBiaWdnZXN0IGludGVyc2VjdGlvbi5cbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9FbGVtZW50KHtcbiAgICAgICAgICAgICAgZWxlbWVudDogaW50ZXJzZWN0aW9ucy5iaWdnZXN0LmludGVyc2VjdGlvbi50YXJnZXQgYXMgSFRNTEVsZW1lbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGlzYWJsZVNuYXBwaW5nJCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIF9kaXNhYmxlU25hcHBpbmcoKSB7XG4gICAgdGhpcy5fZGlzYWJsZVNuYXBwaW5nJC5uZXh0KCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJldC1zY3JvbGxhYmxlLXdyYXBwZXJcIj5cbiAgPGRpdlxuICAgICNzY3JvbGxhYmxlXG4gICAgW2F0dHIucm9sZV09XCJzY3JvbGxhYmxlUm9sZSgpID8/IHVuZGVmaW5lZFwiXG4gICAgW2V0Q3Vyc29yRHJhZ1Njcm9sbF09XCJjdXJzb3JEcmFnU2Nyb2xsKClcIlxuICAgIFthbGxvd2VkRGlyZWN0aW9uXT1cImRpcmVjdGlvbigpXCJcbiAgICAoY3Vyc29yRHJhZ1N0YXJ0KT1cInNldElzQ3Vyc29yRHJhZ2dpbmcodHJ1ZSlcIlxuICAgIChjdXJzb3JEcmFnRW5kKT1cInNldElzQ3Vyc29yRHJhZ2dpbmcoZmFsc2UpXCJcbiAgICBjbGFzcz1cImV0LXNjcm9sbGFibGUtY29udGFpbmVyLW91dGVyXCJcbiAgPlxuICAgIDxkaXYgI3Njcm9sbGFibGVDb250YWluZXIgW25nQ2xhc3NdPVwic2Nyb2xsYWJsZUNsYXNzKClcIiBjbGFzcz1cImV0LXNjcm9sbGFibGUtY29udGFpbmVyXCI+XG4gICAgICA8ZGl2ICNmaXJzdEVsZW1lbnQgY2xhc3M9XCJldC1zY3JvbGwtb2JzZXJ2ZXItZmlyc3QtZWxlbWVudFwiIGV0U2Nyb2xsYWJsZUlnbm9yZUNoaWxkPjwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgIDxkaXYgI2xhc3RFbGVtZW50IGNsYXNzPVwiZXQtc2Nyb2xsLW9ic2VydmVyLWxhc3QtZWxlbWVudFwiIGV0U2Nyb2xsYWJsZUlnbm9yZUNoaWxkPjwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICBAaWYgKHJlbmRlck1hc2tzKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZXQtc2Nyb2xsYWJsZS1tYXNrc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImV0LXNjcm9sbGFibGUtbWFzayBldC1zY3JvbGxhYmxlLW1hc2stLXN0YXJ0XCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZXQtc2Nyb2xsYWJsZS1tYXNrIGV0LXNjcm9sbGFibGUtbWFzay0tZW5kXCI+PC9kaXY+XG4gICAgPC9kaXY+XG4gIH1cblxuICBAaWYgKHJlbmRlckJ1dHRvbnMoKSkge1xuICAgIDxkaXYgY2xhc3M9XCJldC1zY3JvbGxhYmxlLWJ1dHRvbnNcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKGNsaWNrKT1cInNjcm9sbFRvU3RhcnREaXJlY3Rpb24oKVwiXG4gICAgICAgIGNsYXNzPVwiZXQtc2Nyb2xsYWJsZS1idXR0b24gZXQtc2Nyb2xsYWJsZS1idXR0b24tLXN0YXJ0XCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgPlxuICAgICAgICA8ZXQtY2hldnJvbi1pY29uIC8+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKGNsaWNrKT1cInNjcm9sbFRvRW5kRGlyZWN0aW9uKClcIlxuICAgICAgICBjbGFzcz1cImV0LXNjcm9sbGFibGUtYnV0dG9uIGV0LXNjcm9sbGFibGUtYnV0dG9uLS1lbmRcIlxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICA+XG4gICAgICAgIDxldC1jaGV2cm9uLWljb24gLz5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cblxuQGlmIChyZW5kZXJOYXZpZ2F0aW9uKCkpIHtcbiAgPGRpdiBjbGFzcz1cImV0LXNjcm9sbGFibGUtbmF2aWdhdGlvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgIEBmb3IgKGl0ZW0gb2Ygc2Nyb2xsYWJsZU5hdmlnYXRpb24oKTsgdHJhY2sgaTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgIDxidXR0b25cbiAgICAgICAgW2NsYXNzLmV0LXNjcm9sbGFibGUtbmF2aWdhdGlvbi1pdGVtLS1hY3RpdmVdPVwiaXRlbS5pc0FjdGl2ZVwiXG4gICAgICAgIChjbGljayk9XCJzY3JvbGxUb0VsZW1lbnRWaWFOYXZpZ2F0aW9uKGksIGl0ZW0uZWxlbWVudClcIlxuICAgICAgICBjbGFzcz1cImV0LXNjcm9sbGFibGUtbmF2aWdhdGlvbi1pdGVtXCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICA+PC9idXR0b24+XG4gICAgfVxuICA8L2Rpdj5cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './scrollable-ignore-child.directive';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvc2Nyb2xsYWJsZS9kaXJlY3RpdmVzL3Njcm9sbGFibGUtaWdub3JlLWNoaWxkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Njcm9sbGFibGUtaWdub3JlLWNoaWxkLmRpcmVjdGl2ZSc7XG4iXX0=
@@ -17,15 +17,15 @@ export class ScrollableIgnoreChildDirective {
17
17
  set _ignoreChildEnabled(v) {
18
18
  this.ignoreChildEnabled.set(v);
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ScrollableIgnoreChildDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
21
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.2.4", type: ScrollableIgnoreChildDirective, isStandalone: true, selector: "[etScrollableIgnoreChild]", inputs: { _ignoreChildEnabled: ["etScrollableIgnoreChild", "_ignoreChildEnabled", booleanAttribute] }, providers: [
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ScrollableIgnoreChildDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
21
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.0", type: ScrollableIgnoreChildDirective, isStandalone: true, selector: "[etScrollableIgnoreChild]", inputs: { _ignoreChildEnabled: ["etScrollableIgnoreChild", "_ignoreChildEnabled", booleanAttribute] }, providers: [
22
22
  {
23
23
  provide: SCROLLABLE_IGNORE_CHILD_TOKEN,
24
24
  useExisting: ScrollableIgnoreChildDirective,
25
25
  },
26
26
  ], ngImport: i0 }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ScrollableIgnoreChildDirective, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ScrollableIgnoreChildDirective, decorators: [{
29
29
  type: Directive,
30
30
  args: [{
31
31
  selector: `[${SCROLLABLE_IGNORE_CHILD_ATTRIBUTE}]`,
@@ -0,0 +1,2 @@
1
+ export * from './scrollable-is-active-child.directive';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvc2Nyb2xsYWJsZS9kaXJlY3RpdmVzL3Njcm9sbGFibGUtaXMtYWN0aXZlLWNoaWxkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0NBQXdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Njcm9sbGFibGUtaXMtYWN0aXZlLWNoaWxkLmRpcmVjdGl2ZSc7XG4iXX0=
@@ -18,15 +18,15 @@ export class ScrollableIsActiveChildDirective {
18
18
  set _isActiveChildEnabled(v) {
19
19
  this.isActiveChildEnabled.set(v);
20
20
  }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ScrollableIsActiveChildDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
22
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.2.4", type: ScrollableIsActiveChildDirective, isStandalone: true, selector: "[etScrollableIsActiveChild]", inputs: { _isActiveChildEnabled: ["etScrollableIsActiveChild", "_isActiveChildEnabled", booleanAttribute] }, providers: [
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ScrollableIsActiveChildDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
22
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.0", type: ScrollableIsActiveChildDirective, isStandalone: true, selector: "[etScrollableIsActiveChild]", inputs: { _isActiveChildEnabled: ["etScrollableIsActiveChild", "_isActiveChildEnabled", booleanAttribute] }, providers: [
23
23
  {
24
24
  provide: SCROLLABLE_IS_ACTIVE_CHILD_TOKEN,
25
25
  useExisting: ScrollableIsActiveChildDirective,
26
26
  },
27
27
  ], ngImport: i0 }); }
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: ScrollableIsActiveChildDirective, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: ScrollableIsActiveChildDirective, decorators: [{
30
30
  type: Directive,
31
31
  args: [{
32
32
  selector: `[${SCROLLABLE_IS_ACTIVE_CHILD_ATTRIBUTE}]`,
@@ -0,0 +1,6 @@
1
+ export * from '../components/scrollable';
2
+ export * from '../directives/scrollable-ignore-child';
3
+ export * from '../directives/scrollable-is-active-child';
4
+ export * from '../scrollable.imports';
5
+ export * from '../types';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvc2Nyb2xsYWJsZS9wdWJsaWMtYXBpL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuLi9jb21wb25lbnRzL3Njcm9sbGFibGUnO1xuZXhwb3J0ICogZnJvbSAnLi4vZGlyZWN0aXZlcy9zY3JvbGxhYmxlLWlnbm9yZS1jaGlsZCc7XG5leHBvcnQgKiBmcm9tICcuLi9kaXJlY3RpdmVzL3Njcm9sbGFibGUtaXMtYWN0aXZlLWNoaWxkJztcbmV4cG9ydCAqIGZyb20gJy4uL3Njcm9sbGFibGUuaW1wb3J0cyc7XG5leHBvcnQgKiBmcm9tICcuLi90eXBlcyc7XG4iXX0=
@@ -1,8 +1,9 @@
1
- import { ScrollableComponent } from './components';
2
- import { ScrollableIgnoreChildDirective, ScrollableIsActiveChildDirective } from './directives';
1
+ import { ScrollableComponent } from './components/scrollable';
2
+ import { ScrollableIgnoreChildDirective } from './directives/scrollable-ignore-child';
3
+ import { ScrollableIsActiveChildDirective } from './directives/scrollable-is-active-child';
3
4
  export const ScrollableImports = [
4
5
  ScrollableComponent,
5
6
  ScrollableIsActiveChildDirective,
6
7
  ScrollableIgnoreChildDirective,
7
8
  ];
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS5pbXBvcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL3Njcm9sbGFibGUvc2Nyb2xsYWJsZS5pbXBvcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFaEcsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDL0IsbUJBQW1CO0lBQ25CLGdDQUFnQztJQUNoQyw4QkFBOEI7Q0FDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjcm9sbGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgU2Nyb2xsYWJsZUlnbm9yZUNoaWxkRGlyZWN0aXZlLCBTY3JvbGxhYmxlSXNBY3RpdmVDaGlsZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5cbmV4cG9ydCBjb25zdCBTY3JvbGxhYmxlSW1wb3J0cyA9IFtcbiAgU2Nyb2xsYWJsZUNvbXBvbmVudCxcbiAgU2Nyb2xsYWJsZUlzQWN0aXZlQ2hpbGREaXJlY3RpdmUsXG4gIFNjcm9sbGFibGVJZ25vcmVDaGlsZERpcmVjdGl2ZSxcbl0gYXMgY29uc3Q7XG4iXX0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS5pbXBvcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL3Njcm9sbGFibGUvc2Nyb2xsYWJsZS5pbXBvcnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRTNGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLG1CQUFtQjtJQUNuQixnQ0FBZ0M7SUFDaEMsOEJBQThCO0NBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY3JvbGxhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Njcm9sbGFibGUnO1xuaW1wb3J0IHsgU2Nyb2xsYWJsZUlnbm9yZUNoaWxkRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3Njcm9sbGFibGUtaWdub3JlLWNoaWxkJztcbmltcG9ydCB7IFNjcm9sbGFibGVJc0FjdGl2ZUNoaWxkRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3Njcm9sbGFibGUtaXMtYWN0aXZlLWNoaWxkJztcblxuZXhwb3J0IGNvbnN0IFNjcm9sbGFibGVJbXBvcnRzID0gW1xuICBTY3JvbGxhYmxlQ29tcG9uZW50LFxuICBTY3JvbGxhYmxlSXNBY3RpdmVDaGlsZERpcmVjdGl2ZSxcbiAgU2Nyb2xsYWJsZUlnbm9yZUNoaWxkRGlyZWN0aXZlLFxuXSBhcyBjb25zdDtcbiJdfQ==
@@ -1,2 +1,2 @@
1
- export * from './public-api';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvc2Nyb2xsYWJsZS90eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
1
+ export * from './scrollable.types';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvc2Nyb2xsYWJsZS90eXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zY3JvbGxhYmxlLnR5cGVzJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './skeleton.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvc2tlbGV0b24vY29tcG9uZW50cy9za2VsZXRvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9za2VsZXRvbi5jb21wb25lbnQnO1xuIl19