@ethlete/cdk 2.7.0 → 2.8.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 (310) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/esm2022/lib/components/accordion/components/accordion/accordion.component.mjs +12 -23
  3. package/esm2022/lib/components/accordion/components/accordion-group/accordion-group.component.mjs +8 -14
  4. package/esm2022/lib/components/accordion/partials/accordion-hint/accordion-hint.directive.mjs +3 -3
  5. package/esm2022/lib/components/accordion/partials/accordion-hint-wrapper/accordion-hint-wrapper.directive.mjs +3 -3
  6. package/esm2022/lib/components/accordion/partials/accordion-label/accordion-label.directive.mjs +3 -3
  7. package/esm2022/lib/components/accordion/partials/accordion-label-wrapper/accordion-label-wrapper.directive.mjs +3 -3
  8. package/esm2022/lib/components/bracket/components/bracket/bracket.component.mjs +3 -3
  9. package/esm2022/lib/components/bracket/directives/bracket-match/bracket-match.directive.mjs +3 -3
  10. package/esm2022/lib/components/bracket/directives/bracket-round/bracket-round.directive.mjs +3 -3
  11. package/esm2022/lib/components/bracket/partials/bracket-match/bracket-match.component.mjs +3 -3
  12. package/esm2022/lib/components/bracket/partials/bracket-round-header/bracket-round-header.component.mjs +3 -3
  13. package/esm2022/lib/components/button/components/button/button.component.mjs +3 -3
  14. package/esm2022/lib/components/button/components/query-button/query-button.component.mjs +3 -3
  15. package/esm2022/lib/components/button/directives/button/button.directive.mjs +7 -8
  16. package/esm2022/lib/components/button/directives/query-button/query-button.directive.mjs +3 -3
  17. package/esm2022/lib/components/forms/components/checkbox/components/checkbox/checkbox.component.mjs +3 -3
  18. package/esm2022/lib/components/forms/components/checkbox/components/checkbox-field/checkbox-field.component.mjs +3 -3
  19. package/esm2022/lib/components/forms/components/checkbox/components/checkbox-group/checkbox-group.component.mjs +3 -3
  20. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox/checkbox.directive.mjs +3 -3
  21. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-field/checkbox-field.directive.mjs +3 -3
  22. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group/checkbox-group.directive.mjs +3 -3
  23. package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group-control/checkbox-group-control.directive.mjs +3 -3
  24. package/esm2022/lib/components/forms/components/error/components/error/error.component.mjs +3 -3
  25. package/esm2022/lib/components/forms/components/input/components/email-input/email-input.component.mjs +3 -3
  26. package/esm2022/lib/components/forms/components/input/components/input-field/input-field.component.mjs +3 -3
  27. package/esm2022/lib/components/forms/components/input/components/number-input/number-input.component.mjs +3 -3
  28. package/esm2022/lib/components/forms/components/input/components/password-input/password-input.component.mjs +3 -3
  29. package/esm2022/lib/components/forms/components/input/components/search-input/search-input.component.mjs +3 -3
  30. package/esm2022/lib/components/forms/components/input/components/text-input/text-input.component.mjs +3 -3
  31. package/esm2022/lib/components/forms/components/input/components/textarea-input/textarea-input.component.mjs +11 -22
  32. package/esm2022/lib/components/forms/components/input/directives/autosize-textarea/autosize-textarea.directive.mjs +3 -3
  33. package/esm2022/lib/components/forms/components/input/directives/email-input/email-input.directive.mjs +3 -3
  34. package/esm2022/lib/components/forms/components/input/directives/number-input/number-input.directive.mjs +3 -3
  35. package/esm2022/lib/components/forms/components/input/directives/password-input/password-input.directive.mjs +3 -3
  36. package/esm2022/lib/components/forms/components/input/directives/search-input/search-input.directive.mjs +3 -3
  37. package/esm2022/lib/components/forms/components/input/directives/text-input/text-input.directive.mjs +3 -3
  38. package/esm2022/lib/components/forms/components/input/directives/textarea-input/textarea-input.directive.mjs +3 -3
  39. package/esm2022/lib/components/forms/components/input/partials/password-input-toggle/password-input-toggle.component.mjs +3 -3
  40. package/esm2022/lib/components/forms/components/input/partials/search-input-clear/search-input-clear.component.mjs +3 -3
  41. package/esm2022/lib/components/forms/components/label/components/label/label.component.mjs +3 -3
  42. package/esm2022/lib/components/forms/components/label/directives/label-suffix/label-suffix.directive.mjs +8 -14
  43. package/esm2022/lib/components/forms/components/radio/components/radio/radio.component.mjs +3 -3
  44. package/esm2022/lib/components/forms/components/radio/components/radio-field/radio-field.component.mjs +3 -3
  45. package/esm2022/lib/components/forms/components/radio/components/radio-group/radio-group.component.mjs +3 -3
  46. package/esm2022/lib/components/forms/components/radio/directives/radio/radio.directive.mjs +6 -7
  47. package/esm2022/lib/components/forms/components/radio/directives/radio-field/radio-field.directive.mjs +3 -3
  48. package/esm2022/lib/components/forms/components/radio/directives/radio-group/radio-group.directive.mjs +3 -3
  49. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button/segmented-button.component.mjs +3 -3
  50. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-field/segmented-button-field.component.mjs +3 -3
  51. package/esm2022/lib/components/forms/components/segmented-button/components/segmented-button-group/segmented-button-group.component.mjs +3 -3
  52. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.mjs +6 -7
  53. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-field/segmented-button-field.directive.mjs +3 -3
  54. package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-group/segmented-button-group.directive.mjs +3 -3
  55. package/esm2022/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.mjs +9 -10
  56. package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.mjs +3 -3
  57. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.mjs +3 -3
  58. package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.mjs +3 -3
  59. package/esm2022/lib/components/forms/components/select/components/native-select/components/native-select/native-select.component.mjs +3 -3
  60. package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-input/native-select-input.directive.mjs +3 -3
  61. package/esm2022/lib/components/forms/components/select/components/native-select/directives/native-select-option/native-select-option.directive.mjs +11 -22
  62. package/esm2022/lib/components/forms/components/select/components/native-select/partials/native-select-option/native-select-option.component.mjs +3 -3
  63. package/esm2022/lib/components/forms/components/select/components/select/components/select/select.component.mjs +3 -3
  64. package/esm2022/lib/components/forms/components/select/components/select/directives/select/select.directive.mjs +6 -7
  65. package/esm2022/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.mjs +3 -3
  66. package/esm2022/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.mjs +6 -7
  67. package/esm2022/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.mjs +3 -3
  68. package/esm2022/lib/components/forms/components/select/components/select/partials/select-option/select-option.component.mjs +3 -3
  69. package/esm2022/lib/components/forms/components/select/components/select-field/select-field.component.mjs +3 -3
  70. package/esm2022/lib/components/forms/components/select/directives/select-field/select-field.directive.mjs +3 -3
  71. package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle/slide-toggle.component.mjs +3 -3
  72. package/esm2022/lib/components/forms/components/slide-toggle/components/slide-toggle-field/slide-toggle-field.component.mjs +3 -3
  73. package/esm2022/lib/components/forms/components/slide-toggle/directives/slide-toggle/slide-toggle.directive.mjs +3 -3
  74. package/esm2022/lib/components/forms/components/slider/components/slider/slider.component.mjs +11 -12
  75. package/esm2022/lib/components/forms/components/slider/components/slider-field/slider-field.component.mjs +3 -3
  76. package/esm2022/lib/components/forms/directives/dynamic-form-field/dynamic-form-field.directive.mjs +6 -7
  77. package/esm2022/lib/components/forms/directives/dynamic-form-group/dynamic-form-group.directive.mjs +6 -7
  78. package/esm2022/lib/components/forms/directives/if-input-empty/if-input-empty.directive.mjs +3 -3
  79. package/esm2022/lib/components/forms/directives/if-input-filled/if-input-filled.directive.mjs +3 -3
  80. package/esm2022/lib/components/forms/directives/input/input.directive.mjs +3 -3
  81. package/esm2022/lib/components/forms/directives/input-prefix/input-prefix.directive.mjs +3 -3
  82. package/esm2022/lib/components/forms/directives/input-suffix/input-suffix.directive.mjs +3 -3
  83. package/esm2022/lib/components/forms/directives/native-input-ref/native-input-ref.directive.mjs +3 -3
  84. package/esm2022/lib/components/forms/directives/static-form-field/static-form-field.directive.mjs +3 -3
  85. package/esm2022/lib/components/forms/directives/static-form-group/static-form-group.directive.mjs +3 -3
  86. package/esm2022/lib/components/forms/directives/writeable-input/writeable-input.directive.mjs +3 -3
  87. package/esm2022/lib/components/forms/services/default-validator-errors.service.mjs +3 -3
  88. package/esm2022/lib/components/forms/services/form-field-state.service.mjs +3 -3
  89. package/esm2022/lib/components/forms/services/form-group-state.service.mjs +3 -3
  90. package/esm2022/lib/components/forms/services/input-state.service.mjs +3 -3
  91. package/esm2022/lib/components/forms/utils/decorated-form-field.base.mjs +3 -3
  92. package/esm2022/lib/components/forms/utils/decorated-input.base.mjs +3 -3
  93. package/esm2022/lib/components/forms/utils/input.base.mjs +3 -3
  94. package/esm2022/lib/components/icons/chevron-icon/chevron-icon.component.mjs +3 -3
  95. package/esm2022/lib/components/masonry/components/masonry/masonry.component.mjs +8 -9
  96. package/esm2022/lib/components/masonry/partials/masonry-item/masonry-item.component.mjs +3 -3
  97. package/esm2022/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/bottom-sheet-container.component.mjs +3 -3
  98. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/bottom-sheet-container-base.component.mjs +3 -3
  99. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/bottom-sheet-drag-handle.component.mjs +3 -3
  100. package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-title/bottom-sheet-title.directive.mjs +3 -3
  101. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-base.service.mjs +3 -3
  102. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-swipe-handler.service.mjs +3 -3
  103. package/esm2022/lib/components/overlay/components/bottom-sheet/services/bottom-sheet.service.mjs +3 -3
  104. package/esm2022/lib/components/overlay/components/dialog/components/dialog-container/dialog-container.component.mjs +3 -3
  105. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-close/dialog-close.directive.mjs +3 -3
  106. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-container-base/dialog-container-base.component.mjs +3 -3
  107. package/esm2022/lib/components/overlay/components/dialog/partials/dialog-title/dialog-title.directive.mjs +3 -3
  108. package/esm2022/lib/components/overlay/components/dialog/services/dialog-base.service.mjs +3 -3
  109. package/esm2022/lib/components/overlay/components/dialog/services/dialog.service.mjs +3 -3
  110. package/esm2022/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.mjs +3 -3
  111. package/esm2022/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.mjs +6 -7
  112. package/esm2022/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.mjs +3 -3
  113. package/esm2022/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.mjs +3 -3
  114. package/esm2022/lib/components/overlay/services/dynamic-overlay.service.mjs +10 -12
  115. package/esm2022/lib/components/pagination/components/pagination/pagination.component.mjs +9 -9
  116. package/esm2022/lib/components/pagination/partials/pagination-link/pagination-link.directive.mjs +3 -3
  117. package/esm2022/lib/components/pagination/services/pagination-head.service.mjs +3 -3
  118. package/esm2022/lib/components/picture/picture-data.directive.mjs +8 -14
  119. package/esm2022/lib/components/picture/picture.component.mjs +3 -3
  120. package/esm2022/lib/components/progress-spinner/progress-spinner.component.mjs +13 -24
  121. package/esm2022/lib/components/scrollable/components/scrollable/scrollable.component.mjs +92 -51
  122. package/esm2022/lib/components/skeleton/components/skeleton/skeleton.component.mjs +8 -14
  123. package/esm2022/lib/components/skeleton/partials/skeleton-item/skeleton-item.component.mjs +3 -3
  124. package/esm2022/lib/components/sort/components/sort-header/sort-header.component.mjs +24 -49
  125. package/esm2022/lib/components/sort/partials/sort/sort.directive.mjs +18 -36
  126. package/esm2022/lib/components/sort/services/sort-header-intl.mjs +3 -3
  127. package/esm2022/lib/components/table/components/table/table.component.mjs +7 -8
  128. package/esm2022/lib/components/table/partials/cells/cell/cell.directive.mjs +3 -3
  129. package/esm2022/lib/components/table/partials/cells/cell-def/cell-def.directive.mjs +3 -3
  130. package/esm2022/lib/components/table/partials/cells/column-def/column-def.directive.mjs +3 -3
  131. package/esm2022/lib/components/table/partials/cells/footer-cell/footer-cell.directive.mjs +3 -3
  132. package/esm2022/lib/components/table/partials/cells/footer-cell-def/footer-cell-def.directive.mjs +3 -3
  133. package/esm2022/lib/components/table/partials/cells/header-cell/header-cell.directive.mjs +3 -3
  134. package/esm2022/lib/components/table/partials/cells/header-cell-def/header-cell-def.directive.mjs +3 -3
  135. package/esm2022/lib/components/table/partials/cells/text-column/text-column.component.mjs +3 -3
  136. package/esm2022/lib/components/table/partials/rows/footer-row/footer-row.component.mjs +3 -3
  137. package/esm2022/lib/components/table/partials/rows/footer-row-def/footer-row-def.directive.mjs +3 -3
  138. package/esm2022/lib/components/table/partials/rows/header-row/header-row.component.mjs +3 -3
  139. package/esm2022/lib/components/table/partials/rows/header-row-def/header-row-def.directive.mjs +3 -3
  140. package/esm2022/lib/components/table/partials/rows/no-data-row/no-data-row.directive.mjs +3 -3
  141. package/esm2022/lib/components/table/partials/rows/recycle-rows/recycle-rows.directive.mjs +3 -3
  142. package/esm2022/lib/components/table/partials/rows/row/row.component.mjs +3 -3
  143. package/esm2022/lib/components/table/partials/rows/row-def/row-def.directive.mjs +3 -3
  144. package/esm2022/lib/components/table/partials/table-busy/table-busy.directive.mjs +8 -8
  145. package/esm2022/lib/components/table/partials/table-busy-outlet/table-busy-outlet.directive.mjs +9 -9
  146. package/esm2022/lib/components/tabs/components/inline-tabs/inline-tabs.component.mjs +41 -70
  147. package/esm2022/lib/components/tabs/components/nav-tabs/nav-tabs.component.mjs +10 -18
  148. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab/inline-tab.component.mjs +11 -22
  149. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body/inline-tab-body.component.mjs +15 -17
  150. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-body-host/inline-tab-body-host.directive.mjs +3 -3
  151. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-content/inline-tab-content.directive.mjs +8 -8
  152. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-header/inline-tab-header.component.mjs +6 -15
  153. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label/inline-tab-label.directive.mjs +3 -3
  154. package/esm2022/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/inline-tab-label-wrapper.directive.mjs +11 -17
  155. package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tab-link/nav-tab-link.directive.mjs +24 -43
  156. package/esm2022/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/nav-tabs-outlet.component.mjs +3 -3
  157. package/esm2022/lib/components/tabs/utils/active-tab-underline.util.mjs +6 -7
  158. package/esm2022/lib/components/tabs/utils/paginated-tab-header.directive.mjs +25 -45
  159. package/esm2022/lib/services/swipe-handler.service.mjs +3 -3
  160. package/fesm2022/ethlete-cdk.mjs +780 -921
  161. package/fesm2022/ethlete-cdk.mjs.map +1 -1
  162. package/lib/components/accordion/components/accordion/accordion.component.d.ts +5 -8
  163. package/lib/components/accordion/components/accordion-group/accordion-group.component.d.ts +3 -5
  164. package/lib/components/accordion/partials/accordion-hint/accordion-hint.directive.d.ts +1 -1
  165. package/lib/components/accordion/partials/accordion-hint-wrapper/accordion-hint-wrapper.directive.d.ts +1 -1
  166. package/lib/components/accordion/partials/accordion-label/accordion-label.directive.d.ts +1 -1
  167. package/lib/components/accordion/partials/accordion-label-wrapper/accordion-label-wrapper.directive.d.ts +1 -1
  168. package/lib/components/bracket/components/bracket/bracket.component.d.ts +1 -1
  169. package/lib/components/bracket/directives/bracket-match/bracket-match.directive.d.ts +1 -1
  170. package/lib/components/bracket/directives/bracket-round/bracket-round.directive.d.ts +1 -1
  171. package/lib/components/bracket/partials/bracket-match/bracket-match.component.d.ts +1 -1
  172. package/lib/components/bracket/partials/bracket-round-header/bracket-round-header.component.d.ts +1 -1
  173. package/lib/components/button/components/button/button.component.d.ts +1 -1
  174. package/lib/components/button/components/query-button/query-button.component.d.ts +1 -1
  175. package/lib/components/button/directives/button/button.directive.d.ts +3 -4
  176. package/lib/components/button/directives/query-button/query-button.directive.d.ts +1 -1
  177. package/lib/components/forms/components/checkbox/components/checkbox/checkbox.component.d.ts +1 -1
  178. package/lib/components/forms/components/checkbox/components/checkbox-field/checkbox-field.component.d.ts +1 -1
  179. package/lib/components/forms/components/checkbox/components/checkbox-group/checkbox-group.component.d.ts +1 -1
  180. package/lib/components/forms/components/checkbox/directives/checkbox/checkbox.directive.d.ts +1 -1
  181. package/lib/components/forms/components/checkbox/directives/checkbox-field/checkbox-field.directive.d.ts +1 -1
  182. package/lib/components/forms/components/checkbox/directives/checkbox-group/checkbox-group.directive.d.ts +1 -1
  183. package/lib/components/forms/components/checkbox/directives/checkbox-group-control/checkbox-group-control.directive.d.ts +1 -1
  184. package/lib/components/forms/components/error/components/error/error.component.d.ts +1 -1
  185. package/lib/components/forms/components/input/components/email-input/email-input.component.d.ts +1 -1
  186. package/lib/components/forms/components/input/components/input-field/input-field.component.d.ts +1 -1
  187. package/lib/components/forms/components/input/components/number-input/number-input.component.d.ts +1 -1
  188. package/lib/components/forms/components/input/components/password-input/password-input.component.d.ts +1 -1
  189. package/lib/components/forms/components/input/components/search-input/search-input.component.d.ts +1 -1
  190. package/lib/components/forms/components/input/components/text-input/text-input.component.d.ts +1 -1
  191. package/lib/components/forms/components/input/components/textarea-input/textarea-input.component.d.ts +5 -8
  192. package/lib/components/forms/components/input/directives/autosize-textarea/autosize-textarea.directive.d.ts +1 -1
  193. package/lib/components/forms/components/input/directives/email-input/email-input.directive.d.ts +1 -1
  194. package/lib/components/forms/components/input/directives/number-input/number-input.directive.d.ts +1 -1
  195. package/lib/components/forms/components/input/directives/password-input/password-input.directive.d.ts +1 -1
  196. package/lib/components/forms/components/input/directives/search-input/search-input.directive.d.ts +1 -1
  197. package/lib/components/forms/components/input/directives/text-input/text-input.directive.d.ts +1 -1
  198. package/lib/components/forms/components/input/directives/textarea-input/textarea-input.directive.d.ts +1 -1
  199. package/lib/components/forms/components/input/partials/password-input-toggle/password-input-toggle.component.d.ts +1 -1
  200. package/lib/components/forms/components/input/partials/search-input-clear/search-input-clear.component.d.ts +1 -1
  201. package/lib/components/forms/components/label/components/label/label.component.d.ts +1 -1
  202. package/lib/components/forms/components/label/directives/label-suffix/label-suffix.directive.d.ts +3 -5
  203. package/lib/components/forms/components/radio/components/radio/radio.component.d.ts +1 -1
  204. package/lib/components/forms/components/radio/components/radio-field/radio-field.component.d.ts +1 -1
  205. package/lib/components/forms/components/radio/components/radio-group/radio-group.component.d.ts +1 -1
  206. package/lib/components/forms/components/radio/directives/radio/radio.directive.d.ts +2 -3
  207. package/lib/components/forms/components/radio/directives/radio-field/radio-field.directive.d.ts +1 -1
  208. package/lib/components/forms/components/radio/directives/radio-group/radio-group.directive.d.ts +1 -1
  209. package/lib/components/forms/components/segmented-button/components/segmented-button/segmented-button.component.d.ts +1 -1
  210. package/lib/components/forms/components/segmented-button/components/segmented-button-field/segmented-button-field.component.d.ts +1 -1
  211. package/lib/components/forms/components/segmented-button/components/segmented-button-group/segmented-button-group.component.d.ts +1 -1
  212. package/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.d.ts +2 -3
  213. package/lib/components/forms/components/segmented-button/directives/segmented-button-field/segmented-button-field.directive.d.ts +1 -1
  214. package/lib/components/forms/components/segmented-button/directives/segmented-button-group/segmented-button-group.directive.d.ts +1 -1
  215. package/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.d.ts +5 -6
  216. package/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.d.ts +1 -1
  217. package/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.d.ts +1 -1
  218. package/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.d.ts +1 -1
  219. package/lib/components/forms/components/select/components/native-select/components/native-select/native-select.component.d.ts +1 -1
  220. package/lib/components/forms/components/select/components/native-select/directives/native-select-input/native-select-input.directive.d.ts +1 -1
  221. package/lib/components/forms/components/select/components/native-select/directives/native-select-option/native-select-option.directive.d.ts +5 -8
  222. package/lib/components/forms/components/select/components/native-select/partials/native-select-option/native-select-option.component.d.ts +1 -1
  223. package/lib/components/forms/components/select/components/select/components/select/select.component.d.ts +1 -1
  224. package/lib/components/forms/components/select/components/select/directives/select/select.directive.d.ts +2 -3
  225. package/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.d.ts +1 -1
  226. package/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.d.ts +2 -3
  227. package/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.d.ts +1 -1
  228. package/lib/components/forms/components/select/components/select/partials/select-option/select-option.component.d.ts +1 -1
  229. package/lib/components/forms/components/select/components/select-field/select-field.component.d.ts +1 -1
  230. package/lib/components/forms/components/select/directives/select-field/select-field.directive.d.ts +1 -1
  231. package/lib/components/forms/components/slide-toggle/components/slide-toggle/slide-toggle.component.d.ts +1 -1
  232. package/lib/components/forms/components/slide-toggle/components/slide-toggle-field/slide-toggle-field.component.d.ts +1 -1
  233. package/lib/components/forms/components/slide-toggle/directives/slide-toggle/slide-toggle.directive.d.ts +1 -1
  234. package/lib/components/forms/components/slider/components/slider/slider.component.d.ts +6 -7
  235. package/lib/components/forms/components/slider/components/slider-field/slider-field.component.d.ts +1 -1
  236. package/lib/components/forms/directives/dynamic-form-field/dynamic-form-field.directive.d.ts +2 -3
  237. package/lib/components/forms/directives/dynamic-form-group/dynamic-form-group.directive.d.ts +2 -3
  238. package/lib/components/forms/directives/if-input-empty/if-input-empty.directive.d.ts +1 -1
  239. package/lib/components/forms/directives/if-input-filled/if-input-filled.directive.d.ts +1 -1
  240. package/lib/components/forms/directives/input/input.directive.d.ts +1 -1
  241. package/lib/components/forms/directives/input-prefix/input-prefix.directive.d.ts +1 -1
  242. package/lib/components/forms/directives/input-suffix/input-suffix.directive.d.ts +1 -1
  243. package/lib/components/forms/directives/native-input-ref/native-input-ref.directive.d.ts +1 -1
  244. package/lib/components/forms/directives/static-form-field/static-form-field.directive.d.ts +1 -1
  245. package/lib/components/forms/directives/static-form-group/static-form-group.directive.d.ts +1 -1
  246. package/lib/components/forms/directives/writeable-input/writeable-input.directive.d.ts +1 -1
  247. package/lib/components/forms/utils/decorated-form-field.base.d.ts +1 -1
  248. package/lib/components/forms/utils/decorated-input.base.d.ts +1 -1
  249. package/lib/components/forms/utils/input.base.d.ts +1 -1
  250. package/lib/components/icons/chevron-icon/chevron-icon.component.d.ts +1 -1
  251. package/lib/components/masonry/components/masonry/masonry.component.d.ts +3 -4
  252. package/lib/components/masonry/partials/masonry-item/masonry-item.component.d.ts +1 -1
  253. package/lib/components/overlay/components/bottom-sheet/components/bottom-sheet-container/bottom-sheet-container.component.d.ts +1 -1
  254. package/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/bottom-sheet-container-base.component.d.ts +1 -1
  255. package/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-drag-handle/bottom-sheet-drag-handle.component.d.ts +1 -1
  256. package/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-title/bottom-sheet-title.directive.d.ts +1 -1
  257. package/lib/components/overlay/components/bottom-sheet/services/bottom-sheet-base.service.d.ts +1 -1
  258. package/lib/components/overlay/components/dialog/components/dialog-container/dialog-container.component.d.ts +1 -1
  259. package/lib/components/overlay/components/dialog/partials/dialog-close/dialog-close.directive.d.ts +1 -1
  260. package/lib/components/overlay/components/dialog/partials/dialog-container-base/dialog-container-base.component.d.ts +1 -1
  261. package/lib/components/overlay/components/dialog/partials/dialog-title/dialog-title.directive.d.ts +1 -1
  262. package/lib/components/overlay/components/dialog/services/dialog-base.service.d.ts +1 -1
  263. package/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.d.ts +1 -1
  264. package/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.d.ts +2 -3
  265. package/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.d.ts +1 -1
  266. package/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.d.ts +1 -1
  267. package/lib/components/overlay/services/dynamic-overlay.service.d.ts +3 -6
  268. package/lib/components/pagination/components/pagination/pagination.component.d.ts +4 -4
  269. package/lib/components/pagination/partials/pagination-link/pagination-link.directive.d.ts +1 -1
  270. package/lib/components/picture/picture-data.directive.d.ts +3 -5
  271. package/lib/components/picture/picture.component.d.ts +1 -1
  272. package/lib/components/progress-spinner/progress-spinner.component.d.ts +7 -10
  273. package/lib/components/scrollable/components/scrollable/scrollable.component.d.ts +7 -3
  274. package/lib/components/skeleton/components/skeleton/skeleton.component.d.ts +3 -5
  275. package/lib/components/skeleton/partials/skeleton-item/skeleton-item.component.d.ts +1 -1
  276. package/lib/components/sort/components/sort-header/sort-header.component.d.ts +18 -22
  277. package/lib/components/sort/partials/sort/sort.directive.d.ts +8 -12
  278. package/lib/components/table/components/table/table.component.d.ts +2 -3
  279. package/lib/components/table/partials/cells/cell/cell.directive.d.ts +1 -1
  280. package/lib/components/table/partials/cells/cell-def/cell-def.directive.d.ts +1 -1
  281. package/lib/components/table/partials/cells/column-def/column-def.directive.d.ts +1 -1
  282. package/lib/components/table/partials/cells/footer-cell/footer-cell.directive.d.ts +1 -1
  283. package/lib/components/table/partials/cells/footer-cell-def/footer-cell-def.directive.d.ts +1 -1
  284. package/lib/components/table/partials/cells/header-cell/header-cell.directive.d.ts +1 -1
  285. package/lib/components/table/partials/cells/header-cell-def/header-cell-def.directive.d.ts +1 -1
  286. package/lib/components/table/partials/cells/text-column/text-column.component.d.ts +1 -1
  287. package/lib/components/table/partials/rows/footer-row/footer-row.component.d.ts +1 -1
  288. package/lib/components/table/partials/rows/footer-row-def/footer-row-def.directive.d.ts +1 -1
  289. package/lib/components/table/partials/rows/header-row/header-row.component.d.ts +1 -1
  290. package/lib/components/table/partials/rows/header-row-def/header-row-def.directive.d.ts +1 -1
  291. package/lib/components/table/partials/rows/no-data-row/no-data-row.directive.d.ts +1 -1
  292. package/lib/components/table/partials/rows/recycle-rows/recycle-rows.directive.d.ts +1 -1
  293. package/lib/components/table/partials/rows/row/row.component.d.ts +1 -1
  294. package/lib/components/table/partials/rows/row-def/row-def.directive.d.ts +1 -1
  295. package/lib/components/table/partials/table-busy/table-busy.directive.d.ts +2 -3
  296. package/lib/components/table/partials/table-busy-outlet/table-busy-outlet.directive.d.ts +2 -3
  297. package/lib/components/tabs/components/inline-tabs/inline-tabs.component.d.ts +15 -24
  298. package/lib/components/tabs/components/nav-tabs/nav-tabs.component.d.ts +3 -8
  299. package/lib/components/tabs/partials/inline-tabs/inline-tab/inline-tab.component.d.ts +5 -8
  300. package/lib/components/tabs/partials/inline-tabs/inline-tab-body/inline-tab-body.component.d.ts +6 -5
  301. package/lib/components/tabs/partials/inline-tabs/inline-tab-body-host/inline-tab-body-host.directive.d.ts +1 -1
  302. package/lib/components/tabs/partials/inline-tabs/inline-tab-content/inline-tab-content.directive.d.ts +2 -3
  303. package/lib/components/tabs/partials/inline-tabs/inline-tab-header/inline-tab-header.component.d.ts +3 -6
  304. package/lib/components/tabs/partials/inline-tabs/inline-tab-label/inline-tab-label.directive.d.ts +1 -1
  305. package/lib/components/tabs/partials/inline-tabs/inline-tab-label-wrapper/inline-tab-label-wrapper.directive.d.ts +4 -7
  306. package/lib/components/tabs/partials/nav-tabs/nav-tab-link/nav-tab-link.directive.d.ts +14 -18
  307. package/lib/components/tabs/partials/nav-tabs/nav-tabs-outlet/nav-tabs-outlet.component.d.ts +1 -1
  308. package/lib/components/tabs/utils/active-tab-underline.util.d.ts +2 -3
  309. package/lib/components/tabs/utils/paginated-tab-header.directive.d.ts +12 -17
  310. package/package.json +4 -5
@@ -2,10 +2,10 @@ import { CdkHeaderCell } from '@angular/cdk/table';
2
2
  import { Directive } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
4
  export class HeaderCellDirective extends CdkHeaderCell {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: HeaderCellDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
6
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: HeaderCellDirective, isStandalone: true, selector: "et-header-cell, th[et-header-cell]", host: { attributes: { "role": "columnheader" }, classAttribute: "et-header-cell et-data-table__header-cell" }, usesInheritance: true, ngImport: i0 }); }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: HeaderCellDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
6
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.1", type: HeaderCellDirective, isStandalone: true, selector: "et-header-cell, th[et-header-cell]", host: { attributes: { "role": "columnheader" }, classAttribute: "et-header-cell et-data-table__header-cell" }, usesInheritance: true, ngImport: i0 }); }
7
7
  }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: HeaderCellDirective, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: HeaderCellDirective, decorators: [{
9
9
  type: Directive,
10
10
  args: [{
11
11
  selector: 'et-header-cell, th[et-header-cell]',
@@ -2,10 +2,10 @@ import { CdkHeaderCellDef } from '@angular/cdk/table';
2
2
  import { Directive } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
4
  export class HeaderCellDefDirective extends CdkHeaderCellDef {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: HeaderCellDefDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
6
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: HeaderCellDefDirective, isStandalone: true, selector: "[etHeaderCellDef]", providers: [{ provide: CdkHeaderCellDef, useExisting: HeaderCellDefDirective }], usesInheritance: true, ngImport: i0 }); }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: HeaderCellDefDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
6
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.1", type: HeaderCellDefDirective, isStandalone: true, selector: "[etHeaderCellDef]", providers: [{ provide: CdkHeaderCellDef, useExisting: HeaderCellDefDirective }], usesInheritance: true, ngImport: i0 }); }
7
7
  }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: HeaderCellDefDirective, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: HeaderCellDefDirective, decorators: [{
9
9
  type: Directive,
10
10
  args: [{
11
11
  selector: '[etHeaderCellDef]',
@@ -11,8 +11,8 @@ export class TextColumnComponent extends CdkTextColumn {
11
11
  constructor(_table, _options) {
12
12
  super(_table, _options);
13
13
  }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: TextColumnComponent, deps: [{ token: i1.CdkTable, optional: true }, { token: TEXT_COLUMN_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: TextColumnComponent, isStandalone: true, selector: "et-text-column", usesInheritance: true, ngImport: i0, template: `
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: TextColumnComponent, deps: [{ token: i1.CdkTable, optional: true }, { token: TEXT_COLUMN_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.1", type: TextColumnComponent, isStandalone: true, selector: "et-text-column", usesInheritance: true, ngImport: i0, template: `
16
16
  <ng-container etColumnDef>
17
17
  <th *etHeaderCellDef [style.text-align]="justify" et-header-cell>
18
18
  {{ headerText }}
@@ -24,7 +24,7 @@ export class TextColumnComponent extends CdkTextColumn {
24
24
  </ng-container>
25
25
  `, isInline: true, dependencies: [{ kind: "directive", type: ColumnDefDirective, selector: "[etColumnDef]", inputs: ["etColumnDef"] }, { kind: "directive", type: HeaderCellDefDirective, selector: "[etHeaderCellDef]" }, { kind: "directive", type: HeaderCellDirective, selector: "et-header-cell, th[et-header-cell]" }, { kind: "directive", type: CellDefDirective, selector: "[etCellDef]" }, { kind: "directive", type: CellDirective, selector: "et-cell, td[et-cell]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: TextColumnComponent, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: TextColumnComponent, decorators: [{
28
28
  type: Component,
29
29
  args: [{
30
30
  selector: 'et-text-column',
@@ -3,10 +3,10 @@ import { Component, ChangeDetectionStrategy, ViewEncapsulation } from '@angular/
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/cdk/table";
5
5
  export class FooterRowComponent extends CdkFooterRow {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: FooterRowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: FooterRowComponent, isStandalone: true, selector: "et-footer-row, tr[et-footer-row]", host: { attributes: { "role": "row" }, classAttribute: "et-footer-row et-data-table__row" }, providers: [{ provide: CdkFooterRow, useExisting: FooterRowComponent }], exportAs: ["etFooterRow"], usesInheritance: true, ngImport: i0, template: "<ng-container cdkCellOutlet></ng-container>", isInline: true, dependencies: [{ kind: "ngmodule", type: CdkTableModule }, { kind: "directive", type: i1.CdkCellOutlet, selector: "[cdkCellOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: FooterRowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
7
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.1", type: FooterRowComponent, isStandalone: true, selector: "et-footer-row, tr[et-footer-row]", host: { attributes: { "role": "row" }, classAttribute: "et-footer-row et-data-table__row" }, providers: [{ provide: CdkFooterRow, useExisting: FooterRowComponent }], exportAs: ["etFooterRow"], usesInheritance: true, ngImport: i0, template: "<ng-container cdkCellOutlet></ng-container>", isInline: true, dependencies: [{ kind: "ngmodule", type: CdkTableModule }, { kind: "directive", type: i1.CdkCellOutlet, selector: "[cdkCellOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: FooterRowComponent, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: FooterRowComponent, decorators: [{
10
10
  type: Component,
11
11
  args: [{
12
12
  selector: 'et-footer-row, tr[et-footer-row]',
@@ -5,10 +5,10 @@ export class FooterRowDefDirective extends CdkFooterRowDef {
5
5
  constructor(template, _differs, _table) {
6
6
  super(template, _differs, _table);
7
7
  }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: FooterRowDefDirective, deps: [{ token: i0.TemplateRef }, { token: i0.IterableDiffers }, { token: CDK_TABLE, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
9
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: FooterRowDefDirective, isStandalone: true, selector: "[etFooterRowDef]", inputs: { columns: ["etFooterRowDef", "columns"], sticky: ["etFooterRowDefSticky", "sticky"] }, providers: [{ provide: CdkFooterRowDef, useExisting: FooterRowDefDirective }], usesInheritance: true, ngImport: i0 }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: FooterRowDefDirective, deps: [{ token: i0.TemplateRef }, { token: i0.IterableDiffers }, { token: CDK_TABLE, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
9
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.1", type: FooterRowDefDirective, isStandalone: true, selector: "[etFooterRowDef]", inputs: { columns: ["etFooterRowDef", "columns"], sticky: ["etFooterRowDefSticky", "sticky"] }, providers: [{ provide: CdkFooterRowDef, useExisting: FooterRowDefDirective }], usesInheritance: true, ngImport: i0 }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: FooterRowDefDirective, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: FooterRowDefDirective, decorators: [{
12
12
  type: Directive,
13
13
  args: [{
14
14
  selector: '[etFooterRowDef]',
@@ -3,10 +3,10 @@ import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/cdk/table";
5
5
  export class HeaderRowComponent extends CdkHeaderRow {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: HeaderRowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: HeaderRowComponent, isStandalone: true, selector: "et-header-row, tr[et-header-row]", host: { attributes: { "role": "row" }, classAttribute: "et-header-row et-data-table__header-row" }, providers: [{ provide: CdkHeaderRow, useExisting: HeaderRowComponent }], exportAs: ["etHeaderRow"], usesInheritance: true, ngImport: i0, template: "<ng-container cdkCellOutlet></ng-container>", isInline: true, dependencies: [{ kind: "ngmodule", type: CdkTableModule }, { kind: "directive", type: i1.CdkCellOutlet, selector: "[cdkCellOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: HeaderRowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
7
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.1", type: HeaderRowComponent, isStandalone: true, selector: "et-header-row, tr[et-header-row]", host: { attributes: { "role": "row" }, classAttribute: "et-header-row et-data-table__header-row" }, providers: [{ provide: CdkHeaderRow, useExisting: HeaderRowComponent }], exportAs: ["etHeaderRow"], usesInheritance: true, ngImport: i0, template: "<ng-container cdkCellOutlet></ng-container>", isInline: true, dependencies: [{ kind: "ngmodule", type: CdkTableModule }, { kind: "directive", type: i1.CdkCellOutlet, selector: "[cdkCellOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: HeaderRowComponent, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: HeaderRowComponent, decorators: [{
10
10
  type: Component,
11
11
  args: [{
12
12
  selector: 'et-header-row, tr[et-header-row]',
@@ -5,10 +5,10 @@ export class HeaderRowDefDirective extends CdkHeaderRowDef {
5
5
  constructor(template, _differs, _table) {
6
6
  super(template, _differs, _table);
7
7
  }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: HeaderRowDefDirective, deps: [{ token: i0.TemplateRef }, { token: i0.IterableDiffers }, { token: CDK_TABLE, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
9
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: HeaderRowDefDirective, isStandalone: true, selector: "[etHeaderRowDef]", inputs: { columns: ["etHeaderRowDef", "columns"], sticky: ["etHeaderRowDefSticky", "sticky"] }, providers: [{ provide: CdkHeaderRowDef, useExisting: HeaderRowDefDirective }], usesInheritance: true, ngImport: i0 }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: HeaderRowDefDirective, deps: [{ token: i0.TemplateRef }, { token: i0.IterableDiffers }, { token: CDK_TABLE, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
9
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.1", type: HeaderRowDefDirective, isStandalone: true, selector: "[etHeaderRowDef]", inputs: { columns: ["etHeaderRowDef", "columns"], sticky: ["etHeaderRowDefSticky", "sticky"] }, providers: [{ provide: CdkHeaderRowDef, useExisting: HeaderRowDefDirective }], usesInheritance: true, ngImport: i0 }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: HeaderRowDefDirective, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: HeaderRowDefDirective, decorators: [{
12
12
  type: Directive,
13
13
  args: [{
14
14
  selector: '[etHeaderRowDef]',
@@ -6,10 +6,10 @@ export class NoDataRowDirective extends CdkNoDataRow {
6
6
  super(...arguments);
7
7
  this._contentClassName = 'et-no-data-row';
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: NoDataRowDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
10
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: NoDataRowDirective, isStandalone: true, selector: "ng-template[etNoDataRow]", providers: [{ provide: CdkNoDataRow, useExisting: NoDataRowDirective }], usesInheritance: true, ngImport: i0 }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: NoDataRowDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
10
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.1", type: NoDataRowDirective, isStandalone: true, selector: "ng-template[etNoDataRow]", providers: [{ provide: CdkNoDataRow, useExisting: NoDataRowDirective }], usesInheritance: true, ngImport: i0 }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: NoDataRowDirective, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: NoDataRowDirective, decorators: [{
13
13
  type: Directive,
14
14
  args: [{
15
15
  selector: 'ng-template[etNoDataRow]',
@@ -2,10 +2,10 @@ import { _RecycleViewRepeaterStrategy, _VIEW_REPEATER_STRATEGY } from '@angular/
2
2
  import { Directive } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
4
  export class RecycleRowsDirective {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: RecycleRowsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: RecycleRowsDirective, isStandalone: true, selector: "et-table[recycleRows], table[et-table][recycleRows]", providers: [{ provide: _VIEW_REPEATER_STRATEGY, useClass: _RecycleViewRepeaterStrategy }], ngImport: i0 }); }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: RecycleRowsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.1", type: RecycleRowsDirective, isStandalone: true, selector: "et-table[recycleRows], table[et-table][recycleRows]", providers: [{ provide: _VIEW_REPEATER_STRATEGY, useClass: _RecycleViewRepeaterStrategy }], ngImport: i0 }); }
7
7
  }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: RecycleRowsDirective, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: RecycleRowsDirective, decorators: [{
9
9
  type: Directive,
10
10
  args: [{
11
11
  selector: 'et-table[recycleRows], table[et-table][recycleRows]',
@@ -3,10 +3,10 @@ import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/cdk/table";
5
5
  export class RowComponent extends CdkRow {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: RowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: RowComponent, isStandalone: true, selector: "et-row, [et-row], [et-row]", host: { attributes: { "role": "row" }, classAttribute: "et-row et-data-table__row" }, providers: [{ provide: CdkRow, useExisting: RowComponent }], exportAs: ["etRow"], usesInheritance: true, ngImport: i0, template: "<ng-container cdkCellOutlet></ng-container>", isInline: true, dependencies: [{ kind: "ngmodule", type: CdkTableModule }, { kind: "directive", type: i1.CdkCellOutlet, selector: "[cdkCellOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: RowComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
7
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.1", type: RowComponent, isStandalone: true, selector: "et-row, [et-row], [et-row]", host: { attributes: { "role": "row" }, classAttribute: "et-row et-data-table__row" }, providers: [{ provide: CdkRow, useExisting: RowComponent }], exportAs: ["etRow"], usesInheritance: true, ngImport: i0, template: "<ng-container cdkCellOutlet></ng-container>", isInline: true, dependencies: [{ kind: "ngmodule", type: CdkTableModule }, { kind: "directive", type: i1.CdkCellOutlet, selector: "[cdkCellOutlet]" }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: RowComponent, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: RowComponent, decorators: [{
10
10
  type: Component,
11
11
  args: [{
12
12
  selector: 'et-row, [et-row], [et-row]',
@@ -5,10 +5,10 @@ export class RowDefDirective extends CdkRowDef {
5
5
  constructor(template, _differs, _table) {
6
6
  super(template, _differs, _table);
7
7
  }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: RowDefDirective, deps: [{ token: i0.TemplateRef }, { token: i0.IterableDiffers }, { token: CDK_TABLE, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
9
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: RowDefDirective, isStandalone: true, selector: "[etRowDef]", inputs: { columns: ["etRowDefColumns", "columns"], when: ["etRowDefWhen", "when"] }, providers: [{ provide: CdkRowDef, useExisting: RowDefDirective }], usesInheritance: true, ngImport: i0 }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: RowDefDirective, deps: [{ token: i0.TemplateRef }, { token: i0.IterableDiffers }, { token: CDK_TABLE, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
9
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.1", type: RowDefDirective, isStandalone: true, selector: "[etRowDef]", inputs: { columns: ["etRowDefColumns", "columns"], when: ["etRowDefWhen", "when"] }, providers: [{ provide: CdkRowDef, useExisting: RowDefDirective }], usesInheritance: true, ngImport: i0 }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: RowDefDirective, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: RowDefDirective, decorators: [{
12
12
  type: Directive,
13
13
  args: [{
14
14
  selector: '[etRowDef]',
@@ -1,18 +1,18 @@
1
- import { Directive, TemplateRef } from '@angular/core';
1
+ import { Directive, TemplateRef, inject } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class TableBusyDirective {
4
- constructor(templateRef) {
5
- this.templateRef = templateRef;
4
+ constructor() {
5
+ this.templateRef = inject(TemplateRef);
6
6
  this._contentClassName = 'et-table-busy';
7
7
  }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: TableBusyDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
9
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: TableBusyDirective, isStandalone: true, selector: "ng-template[etTableBusy]", ngImport: i0 }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: TableBusyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.1", type: TableBusyDirective, isStandalone: true, selector: "ng-template[etTableBusy]", ngImport: i0 }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: TableBusyDirective, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: TableBusyDirective, decorators: [{
12
12
  type: Directive,
13
13
  args: [{
14
14
  selector: 'ng-template[etTableBusy]',
15
15
  standalone: true,
16
16
  }]
17
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYnVzeS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvcGFydGlhbHMvdGFibGUtYnVzeS90YWJsZS1idXN5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNdkQsTUFBTSxPQUFPLGtCQUFrQjtJQUc3QixZQUFtQixXQUFpQztRQUFqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBc0I7UUFGcEQsc0JBQWlCLEdBQUcsZUFBZSxDQUFDO0lBRW1CLENBQUM7OEdBSDdDLGtCQUFrQjtrR0FBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUo5QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbZXRUYWJsZUJ1c3ldJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVCdXN5RGlyZWN0aXZlIHtcbiAgX2NvbnRlbnRDbGFzc05hbWUgPSAnZXQtdGFibGUtYnVzeSc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPikge31cbn1cbiJdfQ==
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYnVzeS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvcGFydGlhbHMvdGFibGUtYnVzeS90YWJsZS1idXN5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTS9ELE1BQU0sT0FBTyxrQkFBa0I7SUFKL0I7UUFLRSxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVsQyxzQkFBaUIsR0FBRyxlQUFlLENBQUM7S0FDckM7OEdBSlksa0JBQWtCO2tHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBSjlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW2V0VGFibGVCdXN5XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQnVzeURpcmVjdGl2ZSB7XG4gIHRlbXBsYXRlUmVmID0gaW5qZWN0KFRlbXBsYXRlUmVmKTtcblxuICBfY29udGVudENsYXNzTmFtZSA9ICdldC10YWJsZS1idXN5Jztcbn1cbiJdfQ==
@@ -1,15 +1,15 @@
1
- import { Directive, ElementRef, ViewContainerRef } from '@angular/core';
1
+ import { Directive, ElementRef, ViewContainerRef, inject } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class TableBusyOutletDirective {
4
- constructor(viewContainer, elementRef) {
5
- this.viewContainer = viewContainer;
6
- this.elementRef = elementRef;
4
+ constructor() {
5
+ this.viewContainer = inject(ViewContainerRef);
6
+ this.elementRef = inject(ElementRef);
7
7
  }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: TableBusyOutletDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
9
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: TableBusyOutletDirective, isStandalone: true, selector: "[tableBusyOutlet]", ngImport: i0 }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: TableBusyOutletDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.1", type: TableBusyOutletDirective, isStandalone: true, selector: "[tableBusyOutlet]", ngImport: i0 }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: TableBusyOutletDirective, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: TableBusyOutletDirective, decorators: [{
12
12
  type: Directive,
13
13
  args: [{ selector: '[tableBusyOutlet]', standalone: true }]
14
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.ElementRef }]; } });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYnVzeS1vdXRsZXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3BhcnRpYWxzL3RhYmxlLWJ1c3ktb3V0bGV0L3RhYmxlLWJ1c3ktb3V0bGV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHeEUsTUFBTSxPQUFPLHdCQUF3QjtJQUNuQyxZQUFtQixhQUErQixFQUFTLFVBQXNCO1FBQTlELGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUFTLGVBQVUsR0FBVixVQUFVLENBQVk7SUFBRyxDQUFDOzhHQUQxRSx3QkFBd0I7a0dBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFEcEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm93T3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RhYmxlJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbdGFibGVCdXN5T3V0bGV0XScsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBUYWJsZUJ1c3lPdXRsZXREaXJlY3RpdmUgaW1wbGVtZW50cyBSb3dPdXRsZXQge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZiwgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG59XG4iXX0=
14
+ }] });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYnVzeS1vdXRsZXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3BhcnRpYWxzL3RhYmxlLWJ1c3ktb3V0bGV0L3RhYmxlLWJ1c3ktb3V0bGV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR2hGLE1BQU0sT0FBTyx3QkFBd0I7SUFEckM7UUFFRSxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pDLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0FDakM7OEdBSFksd0JBQXdCO2tHQUF4Qix3QkFBd0I7OzJGQUF4Qix3QkFBd0I7a0JBRHBDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvd091dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90YWJsZSc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIFZpZXdDb250YWluZXJSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbdGFibGVCdXN5T3V0bGV0XScsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBUYWJsZUJ1c3lPdXRsZXREaXJlY3RpdmUgaW1wbGVtZW50cyBSb3dPdXRsZXQge1xuICB2aWV3Q29udGFpbmVyID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xufVxuIl19
@@ -1,8 +1,7 @@
1
1
  import { A11yModule } from '@angular/cdk/a11y';
2
- import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
3
2
  import { PortalModule } from '@angular/cdk/portal';
4
3
  import { NgClass, NgForOf, NgIf } from '@angular/common';
5
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, Input, Output, ViewChild, ViewEncapsulation, } from '@angular/core';
4
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, EventEmitter, Input, Output, ViewChild, ViewEncapsulation, booleanAttribute, inject, numberAttribute, } from '@angular/core';
6
5
  import { TypedQueryList } from '@ethlete/core';
7
6
  import { Subscription, merge, startWith } from 'rxjs';
8
7
  import { InlineTabBodyComponent, InlineTabComponent, InlineTabHeaderComponent, InlineTabLabelWrapperDirective, TAB_GROUP, } from '../../partials';
@@ -13,57 +12,21 @@ let nextId = 0;
13
12
  export class InlineTabChangeEvent {
14
13
  }
15
14
  export class InlineTabsComponent {
16
- get selectedIndex() {
17
- return this._selectedIndex;
18
- }
19
- set selectedIndex(value) {
20
- this._indexToSelect = coerceNumberProperty(value, null);
21
- }
22
- get contentTabIndex() {
23
- return this._contentTabIndex;
24
- }
25
- set contentTabIndex(value) {
26
- this._contentTabIndex = coerceNumberProperty(value, null);
27
- }
28
- get preserveContent() {
29
- return this._preserveContent;
30
- }
31
- set preserveContent(value) {
32
- this._preserveContent = coerceBooleanProperty(value);
33
- }
34
- get renderMasks() {
35
- return this._renderMasks;
36
- }
37
- set renderMasks(value) {
38
- this._renderMasks = coerceBooleanProperty(value);
39
- }
40
- get renderButtons() {
41
- return this._renderButtons;
42
- }
43
- set renderButtons(value) {
44
- this._renderButtons = coerceBooleanProperty(value);
45
- }
46
- get renderScrollbars() {
47
- return this._renderScrollbars;
48
- }
49
- set renderScrollbars(value) {
50
- this._renderScrollbars = coerceBooleanProperty(value);
51
- }
52
- constructor(_cdr) {
53
- this._cdr = _cdr;
54
- this._selectedIndex = null;
55
- this._contentTabIndex = null;
56
- this._preserveContent = false;
15
+ constructor() {
16
+ this._cdr = inject(ChangeDetectorRef);
17
+ this.selectedIndex = null;
18
+ this.contentTabIndex = null;
19
+ this.preserveContent = false;
57
20
  this.itemSize = 'auto';
58
- this._renderMasks = true;
59
- this._renderButtons = true;
60
- this._renderScrollbars = false;
21
+ this.renderMasks = true;
22
+ this.renderButtons = true;
23
+ this.renderScrollbars = false;
61
24
  this.selectedIndexChange = new EventEmitter();
62
25
  this.focusChange = new EventEmitter();
63
26
  this.selectedTabChange = new EventEmitter(true);
27
+ this._tabBodyWrapper = null;
64
28
  this._tabs = new TypedQueryList();
65
29
  this._groupId = nextId++;
66
- this._indexToSelect = 0;
67
30
  this._lastFocusedTabIndex = null;
68
31
  this._tabsSubscription = Subscription.EMPTY;
69
32
  this._tabLabelSubscription = Subscription.EMPTY;
@@ -73,13 +36,13 @@ export class InlineTabsComponent {
73
36
  this._subscribeToAllTabChanges();
74
37
  this._subscribeToTabLabels();
75
38
  this._tabsSubscription = this._tabs.changes.subscribe(() => {
76
- const indexToSelect = this._clampTabIndex(this._indexToSelect);
77
- if (indexToSelect === this._selectedIndex) {
39
+ const indexToSelect = this._clampTabIndex(this.selectedIndex);
40
+ if (indexToSelect === this.selectedIndex) {
78
41
  const tabs = this._tabs.toArray();
79
42
  let selectedTab;
80
43
  for (let i = 0; i < tabs.length; i++) {
81
44
  if (tabs[i]?.isActive) {
82
- this._indexToSelect = this._selectedIndex = i;
45
+ this.selectedIndex = i;
83
46
  this._lastFocusedTabIndex = null;
84
47
  selectedTab = tabs[i];
85
48
  break;
@@ -99,12 +62,12 @@ export class InlineTabsComponent {
99
62
  });
100
63
  }
101
64
  ngAfterContentChecked() {
102
- const indexToSelect = (this._indexToSelect = this._clampTabIndex(this._indexToSelect));
103
- if (this._selectedIndex != indexToSelect) {
104
- const isFirstRun = this._selectedIndex == null;
65
+ const indexToSelect = (this.selectedIndex = this._clampTabIndex(this.selectedIndex));
66
+ if (this.selectedIndex != indexToSelect && this._tabBodyWrapper) {
67
+ const isFirstRun = this.selectedIndex == null;
105
68
  if (!isFirstRun) {
106
69
  this.selectedTabChange.emit(this._createChangeEvent(indexToSelect));
107
- const wrapper = this._tabBodyWrapper.nativeElement;
70
+ const wrapper = this._tabBodyWrapper?.nativeElement;
108
71
  wrapper.style.minHeight = wrapper.clientHeight + 'px';
109
72
  }
110
73
  Promise.resolve().then(() => {
@@ -113,7 +76,9 @@ export class InlineTabsComponent {
113
76
  .forEach((tab, index) => (tab.isActive = index === indexToSelect));
114
77
  if (!isFirstRun) {
115
78
  this.selectedIndexChange.emit(indexToSelect);
116
- this._tabBodyWrapper.nativeElement.style.minHeight = '';
79
+ if (this._tabBodyWrapper) {
80
+ this._tabBodyWrapper.nativeElement.style.minHeight = '';
81
+ }
117
82
  }
118
83
  });
119
84
  }
@@ -121,12 +86,12 @@ export class InlineTabsComponent {
121
86
  if (!tab)
122
87
  return;
123
88
  tab.position = index - indexToSelect;
124
- if (this._selectedIndex != null && tab.position == 0 && !tab.origin) {
125
- tab.origin = indexToSelect - this._selectedIndex;
89
+ if (this.selectedIndex != null && tab.position == 0 && !tab.origin) {
90
+ tab.origin = indexToSelect - this.selectedIndex;
126
91
  }
127
92
  });
128
- if (this._selectedIndex !== indexToSelect) {
129
- this._selectedIndex = indexToSelect;
93
+ if (this.selectedIndex !== indexToSelect) {
94
+ this.selectedIndex = indexToSelect;
130
95
  this._lastFocusedTabIndex = null;
131
96
  this._cdr.markForCheck();
132
97
  }
@@ -209,15 +174,15 @@ export class InlineTabsComponent {
209
174
  }
210
175
  return event;
211
176
  }
212
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: InlineTabsComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
213
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: InlineTabsComponent, isStandalone: true, selector: "et-inline-tabs", inputs: { selectedIndex: "selectedIndex", contentTabIndex: "contentTabIndex", preserveContent: "preserveContent", tabHeaderClasses: "tabHeaderClasses", itemSize: "itemSize", scrollableClass: "scrollableClass", renderMasks: "renderMasks", renderButtons: "renderButtons", renderScrollbars: "renderScrollbars" }, outputs: { selectedIndexChange: "selectedIndexChange", focusChange: "focusChange", selectedTabChange: "selectedTabChange" }, host: { classAttribute: "et-inline-tabs" }, providers: [
177
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: InlineTabsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
178
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.1", type: InlineTabsComponent, isStandalone: true, selector: "et-inline-tabs", inputs: { selectedIndex: ["selectedIndex", "selectedIndex", numberAttribute], contentTabIndex: ["contentTabIndex", "contentTabIndex", numberAttribute], preserveContent: ["preserveContent", "preserveContent", booleanAttribute], tabHeaderClasses: "tabHeaderClasses", itemSize: "itemSize", scrollableClass: "scrollableClass", renderMasks: ["renderMasks", "renderMasks", booleanAttribute], renderButtons: ["renderButtons", "renderButtons", booleanAttribute], renderScrollbars: ["renderScrollbars", "renderScrollbars", booleanAttribute] }, outputs: { selectedIndexChange: "selectedIndexChange", focusChange: "focusChange", selectedTabChange: "selectedTabChange" }, host: { classAttribute: "et-inline-tabs" }, providers: [
214
179
  {
215
180
  provide: TAB_GROUP,
216
181
  useExisting: InlineTabsComponent,
217
182
  },
218
183
  ], queries: [{ propertyName: "_allTabs", predicate: InlineTabComponent, descendants: true }], viewQueries: [{ propertyName: "_tabBodyWrapper", first: true, predicate: ["tabBodyWrapper"], descendants: true }, { propertyName: "_tabHeader", first: true, predicate: ["tabHeader"], descendants: true }], ngImport: i0, template: "<et-inline-tab-header\n #tabHeader\n [selectedIndex]=\"selectedIndex || 0\"\n [ngClass]=\"tabHeaderClasses\"\n [itemSize]=\"itemSize\"\n [renderButtons]=\"renderButtons\"\n [scrollableClass]=\"scrollableClass\"\n [renderMasks]=\"renderMasks\"\n [renderScrollbars]=\"renderScrollbars\"\n (indexFocused)=\"_focusChanged($event)\"\n (selectFocusedIndex)=\"selectedIndex = $event\"\n>\n <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events -->\n <div\n *ngFor=\"let tab of _tabs; let i = index; trackBy: trackByTabFn\"\n [id]=\"_getTabLabelId(i)\"\n [attr.tabIndex]=\"_getTabIndex(tab, i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"_tabs.length\"\n [attr.aria-controls]=\"_getTabContentId(i)\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-label]=\"tab.ariaLabel || null\"\n [attr.aria-labelledby]=\"!tab.ariaLabel && tab.ariaLabelledby ? tab.ariaLabelledby : null\"\n [disabled]=\"tab.disabled\"\n [class.et-inline-tab-label--active]=\"selectedIndex === i\"\n [class.et-inline-tab-label--is-text]=\"!!tab.textLabel\"\n [fitUnderlineToContent]=\"tab.fitUnderlineToContent\"\n (click)=\"_handleClick(tab, tabHeader, i)\"\n (cdkFocusChange)=\"_tabFocusChanged($event, i)\"\n role=\"tab\"\n etInlineTabLabelWrapper\n cdkMonitorElementFocus\n >\n <span class=\"et-tab-content\">\n <ng-template [ngIf]=\"tab.templateLabel\" [ngIfElse]=\"tabTextLabel\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\" />\n </ng-template>\n\n <ng-template #tabTextLabel>{{ tab.textLabel }}</ng-template>\n </span>\n </div>\n</et-inline-tab-header>\n\n<div #tabBodyWrapper>\n <et-inline-tab-body\n *ngFor=\"let tab of _tabs; let i = index; trackBy: trackByTabFn\"\n [id]=\"_getTabContentId(i)\"\n [attr.tabindex]=\"contentTabIndex !== null && selectedIndex === i ? contentTabIndex : null\"\n [attr.aria-labelledby]=\"_getTabLabelId(i)\"\n [class.cdk-visually-hidden]=\"selectedIndex !== i\"\n [ngClass]=\"tab.bodyClass\"\n [class.sr-only]=\"selectedIndex !== i\"\n [content]=\"tab.content!\"\n [position]=\"tab.position!\"\n [origin]=\"tab.origin\"\n [preserveContent]=\"preserveContent\"\n role=\"tabpanel\"\n animationDuration=\"0ms\"\n />\n</div>\n", styles: [".et-inline-tabs{display:block}.et-inline-tabs .et-inline-tab-label--is-text{white-space:nowrap}.et-inline-tabs .et-inline-tab-label-wrapper:not([aria-disabled=true]){cursor:pointer}.et-inline-tabs .et-scrollable-container{position:relative}\n"], dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: InlineTabHeaderComponent, selector: "et-inline-tab-header" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: InlineTabLabelWrapperDirective, selector: "[etInlineTabLabelWrapper]", inputs: ["disabled"] }, { kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "component", type: InlineTabBodyComponent, selector: "et-inline-tab-body", inputs: ["content", "origin", "animationDuration", "preserveContent", "position"], outputs: ["_onCentering", "_beforeCentering", "_afterLeavingCenter", "_onCentered"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None }); }
219
184
  }
220
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: InlineTabsComponent, decorators: [{
185
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: InlineTabsComponent, decorators: [{
221
186
  type: Component,
222
187
  args: [{ selector: 'et-inline-tabs', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Default, providers: [
223
188
  {
@@ -236,12 +201,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
236
201
  ], host: {
237
202
  class: 'et-inline-tabs',
238
203
  }, template: "<et-inline-tab-header\n #tabHeader\n [selectedIndex]=\"selectedIndex || 0\"\n [ngClass]=\"tabHeaderClasses\"\n [itemSize]=\"itemSize\"\n [renderButtons]=\"renderButtons\"\n [scrollableClass]=\"scrollableClass\"\n [renderMasks]=\"renderMasks\"\n [renderScrollbars]=\"renderScrollbars\"\n (indexFocused)=\"_focusChanged($event)\"\n (selectFocusedIndex)=\"selectedIndex = $event\"\n>\n <!-- eslint-disable-next-line @angular-eslint/template/click-events-have-key-events -->\n <div\n *ngFor=\"let tab of _tabs; let i = index; trackBy: trackByTabFn\"\n [id]=\"_getTabLabelId(i)\"\n [attr.tabIndex]=\"_getTabIndex(tab, i)\"\n [attr.aria-posinset]=\"i + 1\"\n [attr.aria-setsize]=\"_tabs.length\"\n [attr.aria-controls]=\"_getTabContentId(i)\"\n [attr.aria-selected]=\"selectedIndex === i\"\n [attr.aria-label]=\"tab.ariaLabel || null\"\n [attr.aria-labelledby]=\"!tab.ariaLabel && tab.ariaLabelledby ? tab.ariaLabelledby : null\"\n [disabled]=\"tab.disabled\"\n [class.et-inline-tab-label--active]=\"selectedIndex === i\"\n [class.et-inline-tab-label--is-text]=\"!!tab.textLabel\"\n [fitUnderlineToContent]=\"tab.fitUnderlineToContent\"\n (click)=\"_handleClick(tab, tabHeader, i)\"\n (cdkFocusChange)=\"_tabFocusChanged($event, i)\"\n role=\"tab\"\n etInlineTabLabelWrapper\n cdkMonitorElementFocus\n >\n <span class=\"et-tab-content\">\n <ng-template [ngIf]=\"tab.templateLabel\" [ngIfElse]=\"tabTextLabel\">\n <ng-template [cdkPortalOutlet]=\"tab.templateLabel\" />\n </ng-template>\n\n <ng-template #tabTextLabel>{{ tab.textLabel }}</ng-template>\n </span>\n </div>\n</et-inline-tab-header>\n\n<div #tabBodyWrapper>\n <et-inline-tab-body\n *ngFor=\"let tab of _tabs; let i = index; trackBy: trackByTabFn\"\n [id]=\"_getTabContentId(i)\"\n [attr.tabindex]=\"contentTabIndex !== null && selectedIndex === i ? contentTabIndex : null\"\n [attr.aria-labelledby]=\"_getTabLabelId(i)\"\n [class.cdk-visually-hidden]=\"selectedIndex !== i\"\n [ngClass]=\"tab.bodyClass\"\n [class.sr-only]=\"selectedIndex !== i\"\n [content]=\"tab.content!\"\n [position]=\"tab.position!\"\n [origin]=\"tab.origin\"\n [preserveContent]=\"preserveContent\"\n role=\"tabpanel\"\n animationDuration=\"0ms\"\n />\n</div>\n", styles: [".et-inline-tabs{display:block}.et-inline-tabs .et-inline-tab-label--is-text{white-space:nowrap}.et-inline-tabs .et-inline-tab-label-wrapper:not([aria-disabled=true]){cursor:pointer}.et-inline-tabs .et-scrollable-container{position:relative}\n"] }]
239
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { selectedIndex: [{
240
- type: Input
204
+ }], propDecorators: { selectedIndex: [{
205
+ type: Input,
206
+ args: [{ transform: numberAttribute }]
241
207
  }], contentTabIndex: [{
242
- type: Input
208
+ type: Input,
209
+ args: [{ transform: numberAttribute }]
243
210
  }], preserveContent: [{
244
- type: Input
211
+ type: Input,
212
+ args: [{ transform: booleanAttribute }]
245
213
  }], tabHeaderClasses: [{
246
214
  type: Input
247
215
  }], itemSize: [{
@@ -249,11 +217,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
249
217
  }], scrollableClass: [{
250
218
  type: Input
251
219
  }], renderMasks: [{
252
- type: Input
220
+ type: Input,
221
+ args: [{ transform: booleanAttribute }]
253
222
  }], renderButtons: [{
254
- type: Input
223
+ type: Input,
224
+ args: [{ transform: booleanAttribute }]
255
225
  }], renderScrollbars: [{
256
- type: Input
226
+ type: Input,
227
+ args: [{ transform: booleanAttribute }]
257
228
  }], selectedIndexChange: [{
258
229
  type: Output
259
230
  }], focusChange: [{
@@ -270,4 +241,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
270
241
  type: ViewChild,
271
242
  args: ['tabHeader']
272
243
  }] } });
273
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL3RhYnMvY29tcG9uZW50cy9pbmxpbmUtdGFicy9pbmxpbmUtdGFicy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvdGFicy9jb21wb25lbnRzL2lubGluZS10YWJzL2lubGluZS10YWJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQTZCLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDL0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFlLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEQsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsd0JBQXdCLEVBQ3hCLDhCQUE4QixFQUM5QixTQUFTLEdBQ1YsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUV4QixJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFF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RGxCLEtBQUs7Z0JBVU4sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJRixXQUFXO3NCQURkLEtBQUs7Z0JBVUYsYUFBYTtzQkFEaEIsS0FBSztnQkFVRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBVUcsbUJBQW1CO3NCQUQzQixNQUFNO2dCQUlFLFdBQVc7c0JBRG5CLE1BQU07Z0JBSUUsaUJBQWlCO3NCQUR6QixNQUFNO2dCQUlQLFFBQVE7c0JBRFAsZUFBZTt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBSTFELGVBQWU7c0JBRGQsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBSTNCLFVBQVU7c0JBRFQsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQTExeU1vZHVsZSwgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIE51bWJlcklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHksIGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdGb3JPZiwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVHJhY2tCeUZ1bmN0aW9uLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ2xhc3NUeXBlLCBUeXBlZFF1ZXJ5TGlzdCB9IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBtZXJnZSwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBJbmxpbmVUYWJCb2R5Q29tcG9uZW50LFxuICBJbmxpbmVUYWJDb21wb25lbnQsXG4gIElubGluZVRhYkhlYWRlckNvbXBvbmVudCxcbiAgSW5saW5lVGFiTGFiZWxXcmFwcGVyRGlyZWN0aXZlLFxuICBUQUJfR1JPVVAsXG59IGZyb20gJy4uLy4uL3BhcnRpYWxzJztcblxubGV0IG5leHRJZCA9IDA7XG5cbmV4cG9ydCBjbGFzcyBJbmxpbmVUYWJDaGFuZ2VFdmVudCB7XG4gIGluZGV4ITogbnVtYmVyO1xuICB0YWIhOiBJbmxpbmVUYWJDb21wb25lbnQ7XG59XG5cbmludGVyZmFjZSBJbmxpbmVUYWJzQmFzZUhlYWRlciB7XG4gIF9hbGlnbklua0JhclRvU2VsZWN0ZWRUYWIoKTogdm9pZDtcbiAgdXBkYXRlUGFnaW5hdGlvbigpOiB2b2lkO1xuICBmb2N1c0luZGV4OiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2V0LWlubGluZS10YWJzJyxcbiAgdGVtcGxhdGVVcmw6ICdpbmxpbmUtdGFicy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydpbmxpbmUtdGFicy5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFRBQl9HUk9VUCxcbiAgICAgIHVzZUV4aXN0aW5nOiBJbmxpbmVUYWJzQ29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0Zvck9mLFxuICAgIE5nSWYsXG4gICAgSW5saW5lVGFiSGVhZGVyQ29tcG9uZW50LFxuICAgIE5nQ2xhc3MsXG4gICAgSW5saW5lVGFiTGFiZWxXcmFwcGVyRGlyZWN0aXZlLFxuICAgIEExMXlNb2R1bGUsXG4gICAgSW5saW5lVGFiQm9keUNvbXBvbmVudCxcbiAgICBQb3J0YWxNb2R1bGUsXG4gIF0sXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LWlubGluZS10YWJzJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgSW5saW5lVGFic0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyQ29udGVudENoZWNrZWQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpXG4gIGdldCBzZWxlY3RlZEluZGV4KCk6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZEluZGV4O1xuICB9XG4gIHNldCBzZWxlY3RlZEluZGV4KHZhbHVlOiBOdW1iZXJJbnB1dCkge1xuICAgIHRoaXMuX2luZGV4VG9TZWxlY3QgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSwgbnVsbCk7XG4gIH1cbiAgcHJpdmF0ZSBfc2VsZWN0ZWRJbmRleDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgZ2V0IGNvbnRlbnRUYWJJbmRleCgpOiBudW1iZXIgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGVudFRhYkluZGV4O1xuICB9XG4gIHNldCBjb250ZW50VGFiSW5kZXgodmFsdWU6IE51bWJlcklucHV0KSB7XG4gICAgdGhpcy5fY29udGVudFRhYkluZGV4ID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUsIG51bGwpO1xuICB9XG4gIHByaXZhdGUgX2NvbnRlbnRUYWJJbmRleDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgZ2V0IHByZXNlcnZlQ29udGVudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcHJlc2VydmVDb250ZW50O1xuICB9XG4gIHNldCBwcmVzZXJ2ZUNvbnRlbnQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX3ByZXNlcnZlQ29udGVudCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBfcHJlc2VydmVDb250ZW50ID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgdGFiSGVhZGVyQ2xhc3NlczogTmdDbGFzc1R5cGU7XG5cbiAgQElucHV0KClcbiAgaXRlbVNpemU6ICdhdXRvJyB8ICdzYW1lJyA9ICdhdXRvJztcblxuICBASW5wdXQoKVxuICBzY3JvbGxhYmxlQ2xhc3M/OiBOZ0NsYXNzVHlwZTtcblxuICBASW5wdXQoKVxuICBnZXQgcmVuZGVyTWFza3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlbmRlck1hc2tzO1xuICB9XG4gIHNldCByZW5kZXJNYXNrcyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fcmVuZGVyTWFza3MgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIHByaXZhdGUgX3JlbmRlck1hc2tzID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBnZXQgcmVuZGVyQnV0dG9ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVuZGVyQnV0dG9ucztcbiAgfVxuICBzZXQgcmVuZGVyQnV0dG9ucyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fcmVuZGVyQnV0dG9ucyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cbiAgcHJpdmF0ZSBfcmVuZGVyQnV0dG9ucyA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgZ2V0IHJlbmRlclNjcm9sbGJhcnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlbmRlclNjcm9sbGJhcnM7XG4gIH1cbiAgc2V0IHJlbmRlclNjcm9sbGJhcnModmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX3JlbmRlclNjcm9sbGJhcnMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIHByaXZhdGUgX3JlbmRlclNjcm9sbGJhcnMgPSBmYWxzZTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgc2VsZWN0ZWRJbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBmb2N1c0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SW5saW5lVGFiQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IHNlbGVjdGVkVGFiQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJbmxpbmVUYWJDaGFuZ2VFdmVudD4odHJ1ZSk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihJbmxpbmVUYWJDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgX2FsbFRhYnMhOiBUeXBlZFF1ZXJ5TGlzdDxJbmxpbmVUYWJDb21wb25lbnQ+O1xuXG4gIEBWaWV3Q2hpbGQoJ3RhYkJvZHlXcmFwcGVyJylcbiAgX3RhYkJvZHlXcmFwcGVyITogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCd0YWJIZWFkZXInKVxuICBfdGFiSGVhZGVyITogSW5saW5lVGFic0Jhc2VIZWFkZXI7XG5cbiAgX3RhYnM6IFR5cGVkUXVlcnlMaXN0PElubGluZVRhYkNvbXBvbmVudD4gPSBuZXcgVHlwZWRRdWVyeUxpc3Q8SW5saW5lVGFiQ29tcG9uZW50PigpO1xuXG4gIHByaXZhdGUgX2dyb3VwSWQgPSBuZXh0SWQrKztcbiAgcHJpdmF0ZSBfaW5kZXhUb1NlbGVjdDogbnVtYmVyIHwgbnVsbCA9IDA7XG4gIHByaXZhdGUgX2xhc3RGb2N1c2VkVGFiSW5kZXg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF90YWJzU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuICBwcml2YXRlIF90YWJMYWJlbFN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLl9zdWJzY3JpYmVUb0FsbFRhYkNoYW5nZXMoKTtcbiAgICB0aGlzLl9zdWJzY3JpYmVUb1RhYkxhYmVscygpO1xuXG4gICAgdGhpcy5fdGFic1N1YnNjcmlwdGlvbiA9IHRoaXMuX3RhYnMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgaW5kZXhUb1NlbGVjdCA9IHRoaXMuX2NsYW1wVGFiSW5kZXgodGhpcy5faW5kZXhUb1NlbGVjdCk7XG5cbiAgICAgIGlmIChpbmRleFRvU2VsZWN0ID09PSB0aGlzLl9zZWxlY3RlZEluZGV4KSB7XG4gICAgICAgIGNvbnN0IHRhYnMgPSB0aGlzLl90YWJzLnRvQXJyYXkoKTtcbiAgICAgICAgbGV0IHNlbGVjdGVkVGFiOiBJbmxpbmVUYWJDb21wb25lbnQgfCB1bmRlZmluZWQ7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0YWJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgaWYgKHRhYnNbaV0/LmlzQWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLl9pbmRleFRvU2VsZWN0ID0gdGhpcy5fc2VsZWN0ZWRJbmRleCA9IGk7XG4gICAgICAgICAgICB0aGlzLl9sYXN0Rm9jdXNlZFRhYkluZGV4ID0gbnVsbDtcbiAgICAgICAgICAgIHNlbGVjdGVkVGFiID0gdGFic1tpXTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghc2VsZWN0ZWRUYWIgJiYgdGFic1tpbmRleFRvU2VsZWN0XSkge1xuICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdCA9IHRhYnNbaW5kZXhUb1NlbGVjdF07XG5cbiAgICAgICAgICAgIGlmICghdCkgcmV0dXJuO1xuXG4gICAgICAgICAgICB0LmlzQWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUYWJDaGFuZ2UuZW1pdCh0aGlzLl9jcmVhdGVDaGFuZ2VFdmVudChpbmRleFRvU2VsZWN0KSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCkge1xuICAgIGNvbnN0IGluZGV4VG9TZWxlY3QgPSAodGhpcy5faW5kZXhUb1NlbGVjdCA9IHRoaXMuX2NsYW1wVGFiSW5kZXgodGhpcy5faW5kZXhUb1NlbGVjdCkpO1xuXG4gICAgaWYgKHRoaXMuX3NlbGVjdGVkSW5kZXggIT0gaW5kZXhUb1NlbGVjdCkge1xuICAgICAgY29uc3QgaXNGaXJzdFJ1biA9IHRoaXMuX3NlbGVjdGVkSW5kZXggPT0gbnVsbDtcblxuICAgICAgaWYgKCFpc0ZpcnN0UnVuKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUYWJDaGFuZ2UuZW1pdCh0aGlzLl9jcmVhdGVDaGFuZ2VFdmVudChpbmRleFRvU2VsZWN0KSk7XG5cbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IHRoaXMuX3RhYkJvZHlXcmFwcGVyLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHdyYXBwZXIuc3R5bGUubWluSGVpZ2h0ID0gd3JhcHBlci5jbGllbnRIZWlnaHQgKyAncHgnO1xuICAgICAgfVxuXG4gICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5fdGFic1xuICAgICAgICAgIC5maWx0ZXIoKHQpOiB0IGlzIElubGluZVRhYkNvbXBvbmVudCA9PiAhIXQpXG4gICAgICAgICAgLmZvckVhY2goKHRhYiwgaW5kZXgpID0+ICh0YWIuaXNBY3RpdmUgPSBpbmRleCA9PT0gaW5kZXhUb1NlbGVjdCkpO1xuXG4gICAgICAgIGlmICghaXNGaXJzdFJ1bikge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleENoYW5nZS5lbWl0KGluZGV4VG9TZWxlY3QpO1xuICAgICAgICAgIHRoaXMuX3RhYkJvZHlXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuc3R5bGUubWluSGVpZ2h0ID0gJyc7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuX3RhYnMuZm9yRWFjaCgodGFiLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKCF0YWIpIHJldHVybjtcblxuICAgICAgdGFiLnBvc2l0aW9uID0gaW5kZXggLSBpbmRleFRvU2VsZWN0O1xuXG4gICAgICBpZiAodGhpcy5fc2VsZWN0ZWRJbmRleCAhPSBudWxsICYmIHRhYi5wb3NpdGlvbiA9PSAwICYmICF0YWIub3JpZ2luKSB7XG4gICAgICAgIHRhYi5vcmlnaW4gPSBpbmRleFRvU2VsZWN0IC0gdGhpcy5fc2VsZWN0ZWRJbmRleDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICh0aGlzLl9zZWxlY3RlZEluZGV4ICE9PSBpbmRleFRvU2VsZWN0KSB7XG4gICAgICB0aGlzLl9zZWxlY3RlZEluZGV4ID0gaW5kZXhUb1NlbGVjdDtcbiAgICAgIHRoaXMuX2xhc3RGb2N1c2VkVGFiSW5kZXggPSBudWxsO1xuICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3RhYnMuZGVzdHJveSgpO1xuICAgIHRoaXMuX3RhYnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl90YWJMYWJlbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgdHJhY2tCeVRhYkZuOiBUcmFja0J5RnVuY3Rpb248SW5saW5lVGFiQ29tcG9uZW50PiA9IChpbmRleCkgPT4gaW5kZXg7XG5cbiAgcmVhbGlnbklua0JhcigpIHtcbiAgICBpZiAodGhpcy5fdGFiSGVhZGVyKSB7XG4gICAgICB0aGlzLl90YWJIZWFkZXIuX2FsaWduSW5rQmFyVG9TZWxlY3RlZFRhYigpO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVBhZ2luYXRpb24oKSB7XG4gICAgaWYgKHRoaXMuX3RhYkhlYWRlcikge1xuICAgICAgdGhpcy5fdGFiSGVhZGVyLnVwZGF0ZVBhZ2luYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBmb2N1c1RhYihpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgaGVhZGVyID0gdGhpcy5fdGFiSGVhZGVyO1xuXG4gICAgaWYgKGhlYWRlcikge1xuICAgICAgaGVhZGVyLmZvY3VzSW5kZXggPSBpbmRleDtcbiAgICB9XG4gIH1cblxuICBfZm9jdXNDaGFuZ2VkKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLl9sYXN0Rm9jdXNlZFRhYkluZGV4ID0gaW5kZXg7XG4gICAgdGhpcy5mb2N1c0NoYW5nZS5lbWl0KHRoaXMuX2NyZWF0ZUNoYW5nZUV2ZW50KGluZGV4KSk7XG4gIH1cblxuICBfZ2V0VGFiTGFiZWxJZChpOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBgZXQtaW5saW5lLXRhYi1sYWJlbC0ke3RoaXMuX2dyb3VwSWR9LSR7aX1gO1xuICB9XG5cbiAgX2dldFRhYkNvbnRlbnRJZChpOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBgZXQtaW5saW5lLXRhYi1jb250ZW50LSR7dGhpcy5fZ3JvdXBJZH0tJHtpfWA7XG4gIH1cblxuICBfaGFuZGxlQ2xpY2sodGFiOiBJbmxpbmVUYWJDb21wb25lbnQsIHRhYkhlYWRlcjogSW5saW5lVGFic0Jhc2VIZWFkZXIsIGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoIXRhYi5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gdGFiSGVhZGVyLmZvY3VzSW5kZXggPSBpbmRleDtcbiAgICB9XG4gIH1cblxuICBfZ2V0VGFiSW5kZXgodGFiOiBJbmxpbmVUYWJDb21wb25lbnQsIGluZGV4OiBudW1iZXIpOiBudW1iZXIgfCBudWxsIHtcbiAgICBpZiAodGFiLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgdGFyZ2V0SW5kZXggPSB0aGlzLl9sYXN0Rm9jdXNlZFRhYkluZGV4ID8/IHRoaXMuc2VsZWN0ZWRJbmRleDtcbiAgICByZXR1cm4gaW5kZXggPT09IHRhcmdldEluZGV4ID8gMCA6IC0xO1xuICB9XG5cbiAgX3RhYkZvY3VzQ2hhbmdlZChmb2N1c09yaWdpbjogRm9jdXNPcmlnaW4sIGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoZm9jdXNPcmlnaW4gJiYgZm9jdXNPcmlnaW4gIT09ICdtb3VzZScgJiYgZm9jdXNPcmlnaW4gIT09ICd0b3VjaCcpIHtcbiAgICAgIHRoaXMuX3RhYkhlYWRlci5mb2N1c0luZGV4ID0gaW5kZXg7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaWJlVG9BbGxUYWJDaGFuZ2VzKCkge1xuICAgIHRoaXMuX2FsbFRhYnMuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLl9hbGxUYWJzKSkuc3Vic2NyaWJlKCh0YWJzKSA9PiB7XG4gICAgICB0aGlzLl90YWJzLnJlc2V0KFxuICAgICAgICB0YWJzXG4gICAgICAgICAgLmZpbHRlcigodCk6IHQgaXMgSW5saW5lVGFiQ29tcG9uZW50ID0+ICEhdClcbiAgICAgICAgICAuZmlsdGVyKCh0YWIpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0YWIuX2Nsb3Nlc3RUYWJHcm91cCA9PT0gdGhpcyB8fCAhdGFiLl9jbG9zZXN0VGFiR3JvdXA7XG4gICAgICAgICAgfSksXG4gICAgICApO1xuICAgICAgdGhpcy5fdGFicy5ub3RpZnlPbkNoYW5nZXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2NsYW1wVGFiSW5kZXgoaW5kZXg6IG51bWJlciB8IG51bGwpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLm1pbih0aGlzLl90YWJzLmxlbmd0aCAtIDEsIE1hdGgubWF4KGluZGV4IHx8IDAsIDApKTtcbiAgfVxuXG4gIHByaXZhdGUgX3N1YnNjcmliZVRvVGFiTGFiZWxzKCkge1xuICAgIGlmICh0aGlzLl90YWJMYWJlbFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5fdGFiTGFiZWxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICB0aGlzLl90YWJMYWJlbFN1YnNjcmlwdGlvbiA9IG1lcmdlKFxuICAgICAgLi4udGhpcy5fdGFicy5maWx0ZXIoKHQpOiB0IGlzIElubGluZVRhYkNvbXBvbmVudCA9PiAhIXQpLm1hcCgodGFiKSA9PiB0YWIuX3N0YXRlQ2hhbmdlcyksXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZUNoYW5nZUV2ZW50KGluZGV4OiBudW1iZXIpOiBJbmxpbmVUYWJDaGFuZ2VFdmVudCB7XG4gICAgY29uc3QgZXZlbnQgPSBuZXcgSW5saW5lVGFiQ2hhbmdlRXZlbnQoKTtcbiAgICBldmVudC5pbmRleCA9IGluZGV4O1xuICAgIGlmICh0aGlzLl90YWJzICYmIHRoaXMuX3RhYnMubGVuZ3RoKSB7XG4gICAgICBjb25zdCB0YWIgPSB0aGlzLl90YWJzLnRvQXJyYXkoKVtpbmRleF07XG5cbiAgICAgIGlmICh0YWIpIHtcbiAgICAgICAgZXZlbnQudGFiID0gdGFiO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZXZlbnQ7XG4gIH1cbn1cbiIsIjxldC1pbmxpbmUtdGFiLWhlYWRlclxuICAjdGFiSGVhZGVyXG4gIFtzZWxlY3RlZEluZGV4XT1cInNlbGVjdGVkSW5kZXggfHwgMFwiXG4gIFtuZ0NsYXNzXT1cInRhYkhlYWRlckNsYXNzZXNcIlxuICBbaXRlbVNpemVdPVwiaXRlbVNpemVcIlxuICBbcmVuZGVyQnV0dG9uc109XCJyZW5kZXJCdXR0b25zXCJcbiAgW3Njcm9sbGFibGVDbGFzc109XCJzY3JvbGxhYmxlQ2xhc3NcIlxuICBbcmVuZGVyTWFza3NdPVwicmVuZGVyTWFza3NcIlxuICBbcmVuZGVyU2Nyb2xsYmFyc109XCJyZW5kZXJTY3JvbGxiYXJzXCJcbiAgKGluZGV4Rm9jdXNlZCk9XCJfZm9jdXNDaGFuZ2VkKCRldmVudClcIlxuICAoc2VsZWN0Rm9jdXNlZEluZGV4KT1cInNlbGVjdGVkSW5kZXggPSAkZXZlbnRcIlxuPlxuICA8IS0tIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvdGVtcGxhdGUvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAtLT5cbiAgPGRpdlxuICAgICpuZ0Zvcj1cImxldCB0YWIgb2YgX3RhYnM7IGxldCBpID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlUYWJGblwiXG4gICAgW2lkXT1cIl9nZXRUYWJMYWJlbElkKGkpXCJcbiAgICBbYXR0ci50YWJJbmRleF09XCJfZ2V0VGFiSW5kZXgodGFiLCBpKVwiXG4gICAgW2F0dHIuYXJpYS1wb3NpbnNldF09XCJpICsgMVwiXG4gICAgW2F0dHIuYXJpYS1zZXRzaXplXT1cIl90YWJzLmxlbmd0aFwiXG4gICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJfZ2V0VGFiQ29udGVudElkKGkpXCJcbiAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cInNlbGVjdGVkSW5kZXggPT09IGlcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidGFiLmFyaWFMYWJlbCB8fCBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiIXRhYi5hcmlhTGFiZWwgJiYgdGFiLmFyaWFMYWJlbGxlZGJ5ID8gdGFiLmFyaWFMYWJlbGxlZGJ5IDogbnVsbFwiXG4gICAgW2Rpc2FibGVkXT1cInRhYi5kaXNhYmxlZFwiXG4gICAgW2NsYXNzLmV0LWlubGluZS10YWItbGFiZWwtLWFjdGl2ZV09XCJzZWxlY3RlZEluZGV4ID09PSBpXCJcbiAgICBbY2xhc3MuZXQtaW5saW5lLXRhYi1sYWJlbC0taXMtdGV4dF09XCIhIXRhYi50ZXh0TGFiZWxcIlxuICAgIFtmaXRVbmRlcmxpbmVUb0NvbnRlbnRdPVwidGFiLmZpdFVuZGVybGluZVRvQ29udGVudFwiXG4gICAgKGNsaWNrKT1cIl9oYW5kbGVDbGljayh0YWIsIHRhYkhlYWRlciwgaSlcIlxuICAgIChjZGtGb2N1c0NoYW5nZSk9XCJfdGFiRm9jdXNDaGFuZ2VkKCRldmVudCwgaSlcIlxuICAgIHJvbGU9XCJ0YWJcIlxuICAgIGV0SW5saW5lVGFiTGFiZWxXcmFwcGVyXG4gICAgY2RrTW9uaXRvckVsZW1lbnRGb2N1c1xuICA+XG4gICAgPHNwYW4gY2xhc3M9XCJldC10YWItY29udGVudFwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInRhYi50ZW1wbGF0ZUxhYmVsXCIgW25nSWZFbHNlXT1cInRhYlRleHRMYWJlbFwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJ0YWIudGVtcGxhdGVMYWJlbFwiIC8+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8bmctdGVtcGxhdGUgI3RhYlRleHRMYWJlbD57eyB0YWIudGV4dExhYmVsIH19PC9uZy10ZW1wbGF0ZT5cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuPC9ldC1pbmxpbmUtdGFiLWhlYWRlcj5cblxuPGRpdiAjdGFiQm9keVdyYXBwZXI+XG4gIDxldC1pbmxpbmUtdGFiLWJvZHlcbiAgICAqbmdGb3I9XCJsZXQgdGFiIG9mIF90YWJzOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5VGFiRm5cIlxuICAgIFtpZF09XCJfZ2V0VGFiQ29udGVudElkKGkpXCJcbiAgICBbYXR0ci50YWJpbmRleF09XCJjb250ZW50VGFiSW5kZXggIT09IG51bGwgJiYgc2VsZWN0ZWRJbmRleCA9PT0gaSA/IGNvbnRlbnRUYWJJbmRleCA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJfZ2V0VGFiTGFiZWxJZChpKVwiXG4gICAgW2NsYXNzLmNkay12aXN1YWxseS1oaWRkZW5dPVwic2VsZWN0ZWRJbmRleCAhPT0gaVwiXG4gICAgW25nQ2xhc3NdPVwidGFiLmJvZHlDbGFzc1wiXG4gICAgW2NsYXNzLnNyLW9ubHldPVwic2VsZWN0ZWRJbmRleCAhPT0gaVwiXG4gICAgW2NvbnRlbnRdPVwidGFiLmNvbnRlbnQhXCJcbiAgICBbcG9zaXRpb25dPVwidGFiLnBvc2l0aW9uIVwiXG4gICAgW29yaWdpbl09XCJ0YWIub3JpZ2luXCJcbiAgICBbcHJlc2VydmVDb250ZW50XT1cInByZXNlcnZlQ29udGVudFwiXG4gICAgcm9sZT1cInRhYnBhbmVsXCJcbiAgICBhbmltYXRpb25EdXJhdGlvbj1cIjBtc1wiXG4gIC8+XG48L2Rpdj5cbiJdfQ==
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL3RhYnMvY29tcG9uZW50cy9pbmxpbmUtdGFicy9pbmxpbmUtdGFicy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvdGFicy9jb21wb25lbnRzL2lubGluZS10YWJzL2lubGluZS10YWJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUdMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sZUFBZSxHQUNoQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLGtCQUFrQixFQUNsQix3QkFBd0IsRUFDeEIsOEJBQThCLEVBQzlCLFNBQVMsR0FDVixNQUFNLGdCQUFnQixDQUFDOzs7O0FBRXhCLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztBQUVmLE1BQU0sT0FBTyxvQkFBb0I7Q0FHaEM7QUFtQ0QsTUFB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OzhCQU1ELGFBQWE7c0JBRFosS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBSXJDLGVBQWU7c0JBRGQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBSXJDLGVBQWU7c0JBRGQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFJdEMsZ0JBQWdCO3NCQURmLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSXRDLGFBQWE7c0JBRFosS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFJdEMsZ0JBQWdCO3NCQURmLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSTdCLG1CQUFtQjtzQkFEM0IsTUFBTTtnQkFJRSxXQUFXO3NCQURuQixNQUFNO2dCQUlFLGlCQUFpQjtzQkFEekIsTUFBTTtnQkFJUCxRQUFRO3NCQURQLGVBQWU7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUkxRCxlQUFlO3NCQURkLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQUkzQixVQUFVO3NCQURULFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEExMXlNb2R1bGUsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgUG9ydGFsTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0Zvck9mLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyQ29udGVudENoZWNrZWQsXG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBUcmFja0J5RnVuY3Rpb24sXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGluamVjdCxcbiAgbnVtYmVyQXR0cmlidXRlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ2xhc3NUeXBlLCBUeXBlZFF1ZXJ5TGlzdCB9IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBtZXJnZSwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBJbmxpbmVUYWJCb2R5Q29tcG9uZW50LFxuICBJbmxpbmVUYWJDb21wb25lbnQsXG4gIElubGluZVRhYkhlYWRlckNvbXBvbmVudCxcbiAgSW5saW5lVGFiTGFiZWxXcmFwcGVyRGlyZWN0aXZlLFxuICBUQUJfR1JPVVAsXG59IGZyb20gJy4uLy4uL3BhcnRpYWxzJztcblxubGV0IG5leHRJZCA9IDA7XG5cbmV4cG9ydCBjbGFzcyBJbmxpbmVUYWJDaGFuZ2VFdmVudCB7XG4gIGluZGV4ITogbnVtYmVyO1xuICB0YWIhOiBJbmxpbmVUYWJDb21wb25lbnQ7XG59XG5cbmludGVyZmFjZSBJbmxpbmVUYWJzQmFzZUhlYWRlciB7XG4gIF9hbGlnbklua0JhclRvU2VsZWN0ZWRUYWIoKTogdm9pZDtcbiAgdXBkYXRlUGFnaW5hdGlvbigpOiB2b2lkO1xuICBmb2N1c0luZGV4OiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2V0LWlubGluZS10YWJzJyxcbiAgdGVtcGxhdGVVcmw6ICdpbmxpbmUtdGFicy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydpbmxpbmUtdGFicy5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFRBQl9HUk9VUCxcbiAgICAgIHVzZUV4aXN0aW5nOiBJbmxpbmVUYWJzQ29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBOZ0Zvck9mLFxuICAgIE5nSWYsXG4gICAgSW5saW5lVGFiSGVhZGVyQ29tcG9uZW50LFxuICAgIE5nQ2xhc3MsXG4gICAgSW5saW5lVGFiTGFiZWxXcmFwcGVyRGlyZWN0aXZlLFxuICAgIEExMXlNb2R1bGUsXG4gICAgSW5saW5lVGFiQm9keUNvbXBvbmVudCxcbiAgICBQb3J0YWxNb2R1bGUsXG4gIF0sXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LWlubGluZS10YWJzJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgSW5saW5lVGFic0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIEFmdGVyQ29udGVudENoZWNrZWQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2NkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgc2VsZWN0ZWRJbmRleDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgY29udGVudFRhYkluZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHJlc2VydmVDb250ZW50ID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgdGFiSGVhZGVyQ2xhc3NlczogTmdDbGFzc1R5cGU7XG5cbiAgQElucHV0KClcbiAgaXRlbVNpemU6ICdhdXRvJyB8ICdzYW1lJyA9ICdhdXRvJztcblxuICBASW5wdXQoKVxuICBzY3JvbGxhYmxlQ2xhc3M/OiBOZ0NsYXNzVHlwZTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcmVuZGVyTWFza3MgPSB0cnVlO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICByZW5kZXJCdXR0b25zID0gdHJ1ZTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcmVuZGVyU2Nyb2xsYmFycyA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBzZWxlY3RlZEluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlYWRvbmx5IGZvY3VzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxJbmxpbmVUYWJDaGFuZ2VFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcmVhZG9ubHkgc2VsZWN0ZWRUYWJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPElubGluZVRhYkNoYW5nZUV2ZW50Pih0cnVlKTtcblxuICBAQ29udGVudENoaWxkcmVuKElubGluZVRhYkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBfYWxsVGFicyE6IFR5cGVkUXVlcnlMaXN0PElubGluZVRhYkNvbXBvbmVudD47XG5cbiAgQFZpZXdDaGlsZCgndGFiQm9keVdyYXBwZXInKVxuICBfdGFiQm9keVdyYXBwZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgQFZpZXdDaGlsZCgndGFiSGVhZGVyJylcbiAgX3RhYkhlYWRlciE6IElubGluZVRhYnNCYXNlSGVhZGVyO1xuXG4gIF90YWJzOiBUeXBlZFF1ZXJ5TGlzdDxJbmxpbmVUYWJDb21wb25lbnQ+ID0gbmV3IFR5cGVkUXVlcnlMaXN0PElubGluZVRhYkNvbXBvbmVudD4oKTtcblxuICBwcml2YXRlIF9ncm91cElkID0gbmV4dElkKys7XG4gIHByaXZhdGUgX2xhc3RGb2N1c2VkVGFiSW5kZXg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF90YWJzU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLkVNUFRZO1xuICBwcml2YXRlIF90YWJMYWJlbFN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWTtcblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5fc3Vic2NyaWJlVG9BbGxUYWJDaGFuZ2VzKCk7XG4gICAgdGhpcy5fc3Vic2NyaWJlVG9UYWJMYWJlbHMoKTtcblxuICAgIHRoaXMuX3RhYnNTdWJzY3JpcHRpb24gPSB0aGlzLl90YWJzLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGNvbnN0IGluZGV4VG9TZWxlY3QgPSB0aGlzLl9jbGFtcFRhYkluZGV4KHRoaXMuc2VsZWN0ZWRJbmRleCk7XG5cbiAgICAgIGlmIChpbmRleFRvU2VsZWN0ID09PSB0aGlzLnNlbGVjdGVkSW5kZXgpIHtcbiAgICAgICAgY29uc3QgdGFicyA9IHRoaXMuX3RhYnMudG9BcnJheSgpO1xuICAgICAgICBsZXQgc2VsZWN0ZWRUYWI6IElubGluZVRhYkNvbXBvbmVudCB8IHVuZGVmaW5lZDtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRhYnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBpZiAodGFic1tpXT8uaXNBY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IGk7XG4gICAgICAgICAgICB0aGlzLl9sYXN0Rm9jdXNlZFRhYkluZGV4ID0gbnVsbDtcbiAgICAgICAgICAgIHNlbGVjdGVkVGFiID0gdGFic1tpXTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghc2VsZWN0ZWRUYWIgJiYgdGFic1tpbmRleFRvU2VsZWN0XSkge1xuICAgICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdCA9IHRhYnNbaW5kZXhUb1NlbGVjdF07XG5cbiAgICAgICAgICAgIGlmICghdCkgcmV0dXJuO1xuXG4gICAgICAgICAgICB0LmlzQWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUYWJDaGFuZ2UuZW1pdCh0aGlzLl9jcmVhdGVDaGFuZ2VFdmVudChpbmRleFRvU2VsZWN0KSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCkge1xuICAgIGNvbnN0IGluZGV4VG9TZWxlY3QgPSAodGhpcy5zZWxlY3RlZEluZGV4ID0gdGhpcy5fY2xhbXBUYWJJbmRleCh0aGlzLnNlbGVjdGVkSW5kZXgpKTtcblxuICAgIGlmICh0aGlzLnNlbGVjdGVkSW5kZXggIT0gaW5kZXhUb1NlbGVjdCAmJiB0aGlzLl90YWJCb2R5V3JhcHBlcikge1xuICAgICAgY29uc3QgaXNGaXJzdFJ1biA9IHRoaXMuc2VsZWN0ZWRJbmRleCA9PSBudWxsO1xuXG4gICAgICBpZiAoIWlzRmlyc3RSdW4pIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhYkNoYW5nZS5lbWl0KHRoaXMuX2NyZWF0ZUNoYW5nZUV2ZW50KGluZGV4VG9TZWxlY3QpKTtcblxuICAgICAgICBjb25zdCB3cmFwcGVyID0gdGhpcy5fdGFiQm9keVdyYXBwZXI/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHdyYXBwZXIuc3R5bGUubWluSGVpZ2h0ID0gd3JhcHBlci5jbGllbnRIZWlnaHQgKyAncHgnO1xuICAgICAgfVxuXG4gICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5fdGFic1xuICAgICAgICAgIC5maWx0ZXIoKHQpOiB0IGlzIElubGluZVRhYkNvbXBvbmVudCA9PiAhIXQpXG4gICAgICAgICAgLmZvckVhY2goKHRhYiwgaW5kZXgpID0+ICh0YWIuaXNBY3RpdmUgPSBpbmRleCA9PT0gaW5kZXhUb1NlbGVjdCkpO1xuXG4gICAgICAgIGlmICghaXNGaXJzdFJ1bikge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleENoYW5nZS5lbWl0KGluZGV4VG9TZWxlY3QpO1xuXG4gICAgICAgICAgaWYgKHRoaXMuX3RhYkJvZHlXcmFwcGVyKSB7XG4gICAgICAgICAgICB0aGlzLl90YWJCb2R5V3JhcHBlci5uYXRpdmVFbGVtZW50LnN0eWxlLm1pbkhlaWdodCA9ICcnO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5fdGFicy5mb3JFYWNoKCh0YWIsIGluZGV4KSA9PiB7XG4gICAgICBpZiAoIXRhYikgcmV0dXJuO1xuXG4gICAgICB0YWIucG9zaXRpb24gPSBpbmRleCAtIGluZGV4VG9TZWxlY3Q7XG5cbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkSW5kZXggIT0gbnVsbCAmJiB0YWIucG9zaXRpb24gPT0gMCAmJiAhdGFiLm9yaWdpbikge1xuICAgICAgICB0YWIub3JpZ2luID0gaW5kZXhUb1NlbGVjdCAtIHRoaXMuc2VsZWN0ZWRJbmRleDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICh0aGlzLnNlbGVjdGVkSW5kZXggIT09IGluZGV4VG9TZWxlY3QpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IGluZGV4VG9TZWxlY3Q7XG4gICAgICB0aGlzLl9sYXN0Rm9jdXNlZFRhYkluZGV4ID0gbnVsbDtcbiAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl90YWJzLmRlc3Ryb3koKTtcbiAgICB0aGlzLl90YWJzU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fdGFiTGFiZWxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHRyYWNrQnlUYWJGbjogVHJhY2tCeUZ1bmN0aW9uPElubGluZVRhYkNvbXBvbmVudD4gPSAoaW5kZXgpID0+IGluZGV4O1xuXG4gIHJlYWxpZ25JbmtCYXIoKSB7XG4gICAgaWYgKHRoaXMuX3RhYkhlYWRlcikge1xuICAgICAgdGhpcy5fdGFiSGVhZGVyLl9hbGlnbklua0JhclRvU2VsZWN0ZWRUYWIoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVQYWdpbmF0aW9uKCkge1xuICAgIGlmICh0aGlzLl90YWJIZWFkZXIpIHtcbiAgICAgIHRoaXMuX3RhYkhlYWRlci51cGRhdGVQYWdpbmF0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgZm9jdXNUYWIoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IGhlYWRlciA9IHRoaXMuX3RhYkhlYWRlcjtcblxuICAgIGlmIChoZWFkZXIpIHtcbiAgICAgIGhlYWRlci5mb2N1c0luZGV4ID0gaW5kZXg7XG4gICAgfVxuICB9XG5cbiAgX2ZvY3VzQ2hhbmdlZChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5fbGFzdEZvY3VzZWRUYWJJbmRleCA9IGluZGV4O1xuICAgIHRoaXMuZm9jdXNDaGFuZ2UuZW1pdCh0aGlzLl9jcmVhdGVDaGFuZ2VFdmVudChpbmRleCkpO1xuICB9XG5cbiAgX2dldFRhYkxhYmVsSWQoaTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGV0LWlubGluZS10YWItbGFiZWwtJHt0aGlzLl9ncm91cElkfS0ke2l9YDtcbiAgfVxuXG4gIF9nZXRUYWJDb250ZW50SWQoaTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGV0LWlubGluZS10YWItY29udGVudC0ke3RoaXMuX2dyb3VwSWR9LSR7aX1gO1xuICB9XG5cbiAgX2hhbmRsZUNsaWNrKHRhYjogSW5saW5lVGFiQ29tcG9uZW50LCB0YWJIZWFkZXI6IElubGluZVRhYnNCYXNlSGVhZGVyLCBpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKCF0YWIuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IHRhYkhlYWRlci5mb2N1c0luZGV4ID0gaW5kZXg7XG4gICAgfVxuICB9XG5cbiAgX2dldFRhYkluZGV4KHRhYjogSW5saW5lVGFiQ29tcG9uZW50LCBpbmRleDogbnVtYmVyKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgaWYgKHRhYi5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHRhcmdldEluZGV4ID0gdGhpcy5fbGFzdEZvY3VzZWRUYWJJbmRleCA/PyB0aGlzLnNlbGVjdGVkSW5kZXg7XG4gICAgcmV0dXJuIGluZGV4ID09PSB0YXJnZXRJbmRleCA/IDAgOiAtMTtcbiAgfVxuXG4gIF90YWJGb2N1c0NoYW5nZWQoZm9jdXNPcmlnaW46IEZvY3VzT3JpZ2luLCBpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKGZvY3VzT3JpZ2luICYmIGZvY3VzT3JpZ2luICE9PSAnbW91c2UnICYmIGZvY3VzT3JpZ2luICE9PSAndG91Y2gnKSB7XG4gICAgICB0aGlzLl90YWJIZWFkZXIuZm9jdXNJbmRleCA9IGluZGV4O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3N1YnNjcmliZVRvQWxsVGFiQ2hhbmdlcygpIHtcbiAgICB0aGlzLl9hbGxUYWJzLmNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5fYWxsVGFicykpLnN1YnNjcmliZSgodGFicykgPT4ge1xuICAgICAgdGhpcy5fdGFicy5yZXNldChcbiAgICAgICAgdGFic1xuICAgICAgICAgIC5maWx0ZXIoKHQpOiB0IGlzIElubGluZVRhYkNvbXBvbmVudCA9PiAhIXQpXG4gICAgICAgICAgLmZpbHRlcigodGFiKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGFiLl9jbG9zZXN0VGFiR3JvdXAgPT09IHRoaXMgfHwgIXRhYi5fY2xvc2VzdFRhYkdyb3VwO1xuICAgICAgICAgIH0pLFxuICAgICAgKTtcbiAgICAgIHRoaXMuX3RhYnMubm90aWZ5T25DaGFuZ2VzKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jbGFtcFRhYkluZGV4KGluZGV4OiBudW1iZXIgfCBudWxsKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5taW4odGhpcy5fdGFicy5sZW5ndGggLSAxLCBNYXRoLm1heChpbmRleCB8fCAwLCAwKSk7XG4gIH1cblxuICBwcml2YXRlIF9zdWJzY3JpYmVUb1RhYkxhYmVscygpIHtcbiAgICBpZiAodGhpcy5fdGFiTGFiZWxTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuX3RhYkxhYmVsU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgdGhpcy5fdGFiTGFiZWxTdWJzY3JpcHRpb24gPSBtZXJnZShcbiAgICAgIC4uLnRoaXMuX3RhYnMuZmlsdGVyKCh0KTogdCBpcyBJbmxpbmVUYWJDb21wb25lbnQgPT4gISF0KS5tYXAoKHRhYikgPT4gdGFiLl9zdGF0ZUNoYW5nZXMpLFxuICAgICkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKSk7XG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGVDaGFuZ2VFdmVudChpbmRleDogbnVtYmVyKTogSW5saW5lVGFiQ2hhbmdlRXZlbnQge1xuICAgIGNvbnN0IGV2ZW50ID0gbmV3IElubGluZVRhYkNoYW5nZUV2ZW50KCk7XG4gICAgZXZlbnQuaW5kZXggPSBpbmRleDtcbiAgICBpZiAodGhpcy5fdGFicyAmJiB0aGlzLl90YWJzLmxlbmd0aCkge1xuICAgICAgY29uc3QgdGFiID0gdGhpcy5fdGFicy50b0FycmF5KClbaW5kZXhdO1xuXG4gICAgICBpZiAodGFiKSB7XG4gICAgICAgIGV2ZW50LnRhYiA9IHRhYjtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGV2ZW50O1xuICB9XG59XG4iLCI8ZXQtaW5saW5lLXRhYi1oZWFkZXJcbiAgI3RhYkhlYWRlclxuICBbc2VsZWN0ZWRJbmRleF09XCJzZWxlY3RlZEluZGV4IHx8IDBcIlxuICBbbmdDbGFzc109XCJ0YWJIZWFkZXJDbGFzc2VzXCJcbiAgW2l0ZW1TaXplXT1cIml0ZW1TaXplXCJcbiAgW3JlbmRlckJ1dHRvbnNdPVwicmVuZGVyQnV0dG9uc1wiXG4gIFtzY3JvbGxhYmxlQ2xhc3NdPVwic2Nyb2xsYWJsZUNsYXNzXCJcbiAgW3JlbmRlck1hc2tzXT1cInJlbmRlck1hc2tzXCJcbiAgW3JlbmRlclNjcm9sbGJhcnNdPVwicmVuZGVyU2Nyb2xsYmFyc1wiXG4gIChpbmRleEZvY3VzZWQpPVwiX2ZvY3VzQ2hhbmdlZCgkZXZlbnQpXCJcbiAgKHNlbGVjdEZvY3VzZWRJbmRleCk9XCJzZWxlY3RlZEluZGV4ID0gJGV2ZW50XCJcbj5cbiAgPCEtLSBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L3RlbXBsYXRlL2NsaWNrLWV2ZW50cy1oYXZlLWtleS1ldmVudHMgLS0+XG4gIDxkaXZcbiAgICAqbmdGb3I9XCJsZXQgdGFiIG9mIF90YWJzOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5VGFiRm5cIlxuICAgIFtpZF09XCJfZ2V0VGFiTGFiZWxJZChpKVwiXG4gICAgW2F0dHIudGFiSW5kZXhdPVwiX2dldFRhYkluZGV4KHRhYiwgaSlcIlxuICAgIFthdHRyLmFyaWEtcG9zaW5zZXRdPVwiaSArIDFcIlxuICAgIFthdHRyLmFyaWEtc2V0c2l6ZV09XCJfdGFicy5sZW5ndGhcIlxuICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiX2dldFRhYkNvbnRlbnRJZChpKVwiXG4gICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJzZWxlY3RlZEluZGV4ID09PSBpXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRhYi5hcmlhTGFiZWwgfHwgbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIiF0YWIuYXJpYUxhYmVsICYmIHRhYi5hcmlhTGFiZWxsZWRieSA/IHRhYi5hcmlhTGFiZWxsZWRieSA6IG51bGxcIlxuICAgIFtkaXNhYmxlZF09XCJ0YWIuZGlzYWJsZWRcIlxuICAgIFtjbGFzcy5ldC1pbmxpbmUtdGFiLWxhYmVsLS1hY3RpdmVdPVwic2VsZWN0ZWRJbmRleCA9PT0gaVwiXG4gICAgW2NsYXNzLmV0LWlubGluZS10YWItbGFiZWwtLWlzLXRleHRdPVwiISF0YWIudGV4dExhYmVsXCJcbiAgICBbZml0VW5kZXJsaW5lVG9Db250ZW50XT1cInRhYi5maXRVbmRlcmxpbmVUb0NvbnRlbnRcIlxuICAgIChjbGljayk9XCJfaGFuZGxlQ2xpY2sodGFiLCB0YWJIZWFkZXIsIGkpXCJcbiAgICAoY2RrRm9jdXNDaGFuZ2UpPVwiX3RhYkZvY3VzQ2hhbmdlZCgkZXZlbnQsIGkpXCJcbiAgICByb2xlPVwidGFiXCJcbiAgICBldElubGluZVRhYkxhYmVsV3JhcHBlclxuICAgIGNka01vbml0b3JFbGVtZW50Rm9jdXNcbiAgPlxuICAgIDxzcGFuIGNsYXNzPVwiZXQtdGFiLWNvbnRlbnRcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJ0YWIudGVtcGxhdGVMYWJlbFwiIFtuZ0lmRWxzZV09XCJ0YWJUZXh0TGFiZWxcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwidGFiLnRlbXBsYXRlTGFiZWxcIiAvPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPG5nLXRlbXBsYXRlICN0YWJUZXh0TGFiZWw+e3sgdGFiLnRleHRMYWJlbCB9fTwvbmctdGVtcGxhdGU+XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvZXQtaW5saW5lLXRhYi1oZWFkZXI+XG5cbjxkaXYgI3RhYkJvZHlXcmFwcGVyPlxuICA8ZXQtaW5saW5lLXRhYi1ib2R5XG4gICAgKm5nRm9yPVwibGV0IHRhYiBvZiBfdGFiczsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeVRhYkZuXCJcbiAgICBbaWRdPVwiX2dldFRhYkNvbnRlbnRJZChpKVwiXG4gICAgW2F0dHIudGFiaW5kZXhdPVwiY29udGVudFRhYkluZGV4ICE9PSBudWxsICYmIHNlbGVjdGVkSW5kZXggPT09IGkgPyBjb250ZW50VGFiSW5kZXggOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiX2dldFRhYkxhYmVsSWQoaSlcIlxuICAgIFtjbGFzcy5jZGstdmlzdWFsbHktaGlkZGVuXT1cInNlbGVjdGVkSW5kZXggIT09IGlcIlxuICAgIFtuZ0NsYXNzXT1cInRhYi5ib2R5Q2xhc3NcIlxuICAgIFtjbGFzcy5zci1vbmx5XT1cInNlbGVjdGVkSW5kZXggIT09IGlcIlxuICAgIFtjb250ZW50XT1cInRhYi5jb250ZW50IVwiXG4gICAgW3Bvc2l0aW9uXT1cInRhYi5wb3NpdGlvbiFcIlxuICAgIFtvcmlnaW5dPVwidGFiLm9yaWdpblwiXG4gICAgW3ByZXNlcnZlQ29udGVudF09XCJwcmVzZXJ2ZUNvbnRlbnRcIlxuICAgIHJvbGU9XCJ0YWJwYW5lbFwiXG4gICAgYW5pbWF0aW9uRHVyYXRpb249XCIwbXNcIlxuICAvPlxuPC9kaXY+XG4iXX0=