@theseam/ui-common 0.4.0-beta.5 → 0.4.1

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 (720) hide show
  1. package/breadcrumbs/breadcrumb.d.ts +1 -1
  2. package/breadcrumbs/breadcrumbs/breadcrumbs.component.d.ts +1 -3
  3. package/breadcrumbs/breadcrumbs-resolver.d.ts +1 -1
  4. package/card/card-body/card-body.component.d.ts +2 -4
  5. package/card/card-footer/card-footer.component.d.ts +1 -4
  6. package/card/card-header/card-header.component.d.ts +1 -4
  7. package/card/card.component.d.ts +1 -4
  8. package/carousel/carousel-slide.directive.d.ts +8 -0
  9. package/carousel/carousel.component.d.ts +85 -0
  10. package/carousel/carousel.module.d.ts +11 -0
  11. package/carousel/index.d.ts +5 -0
  12. package/carousel/public-api.d.ts +3 -0
  13. package/checkbox/checkbox.component.d.ts +2 -4
  14. package/core/common-behaviors/active.d.ts +2 -2
  15. package/core/common-behaviors/constructor.d.ts +1 -1
  16. package/core/common-behaviors/disabled.d.ts +2 -2
  17. package/core/common-behaviors/initialized.d.ts +2 -2
  18. package/core/common-behaviors/size.d.ts +1 -1
  19. package/core/common-behaviors/tabindex.d.ts +1 -1
  20. package/core/common-behaviors/theme.d.ts +1 -1
  21. package/data-exporter/data-exporter.d.ts +1 -1
  22. package/data-filters/data-filter.d.ts +4 -4
  23. package/data-filters/filters/data-filter-search/search-filter-options.d.ts +1 -1
  24. package/datatable/datatable-column/datatable-column.component.d.ts +3 -4
  25. package/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.d.ts +1 -3
  26. package/datatable/datatable-export-button/datatable-export-button.component.d.ts +1 -3
  27. package/datatable/datatable-menu-bar/datatable-menu-bar.component.d.ts +2 -5
  28. package/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.d.ts +1 -4
  29. package/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.d.ts +1 -4
  30. package/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.d.ts +1 -4
  31. package/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.d.ts +1 -4
  32. package/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.d.ts +1 -3
  33. package/datatable/directives/datatable-action-menu-item.directive.d.ts +2 -4
  34. package/datatable/models/preferences.d.ts +1 -1
  35. package/datatable/models/table-column.d.ts +1 -1
  36. package/datatable/services/columns-manager.service.d.ts +1 -1
  37. package/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.d.ts +1 -3
  38. package/datatable-dynamic/datatable-dynamic-def.d.ts +3 -3
  39. package/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.d.ts +3 -4
  40. package/datatable-dynamic/datatable-dynamic-menu-bar-item-manifest.d.ts +1 -1
  41. package/datatable-dynamic/datatable-dynamic.component.d.ts +1 -4
  42. package/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.d.ts +3 -4
  43. package/datatable-dynamic/models/dynamic-datatable-action-menu-record.d.ts +1 -1
  44. package/dynamic/action/modal/dynamic-action-modal-def.d.ts +1 -1
  45. package/dynamic/models/dynamic-value-base-type.d.ts +1 -1
  46. package/dynamic/models/dynamic-value-evaluatable-type.d.ts +1 -1
  47. package/dynamic/models/dynamic-value-primitive.d.ts +1 -1
  48. package/dynamic/models/dynamic-value.d.ts +1 -1
  49. package/dynamic/tokens/api-config.d.ts +1 -1
  50. package/esm2020/asset-reader/asset-reader-helper.service.mjs +7 -5
  51. package/esm2020/asset-reader/asset-reader.module.mjs +4 -4
  52. package/esm2020/asset-reader/encrypted-asset-link.directive.mjs +12 -12
  53. package/esm2020/breadcrumbs/breadcrumb.mjs +1 -1
  54. package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +4 -5
  55. package/esm2020/breadcrumbs/breadcrumbs-resolver.mjs +1 -1
  56. package/esm2020/breadcrumbs/breadcrumbs.module.mjs +5 -5
  57. package/esm2020/breadcrumbs/breadcrumbs.service.mjs +7 -7
  58. package/esm2020/buttons/badge-button/badge-button.component.mjs +9 -7
  59. package/esm2020/buttons/button/button.component.mjs +12 -10
  60. package/esm2020/buttons/buttons.module.mjs +4 -4
  61. package/esm2020/buttons/progress-circle-button/progress-circle-button.component.mjs +4 -4
  62. package/esm2020/buttons/toggle-button/toggle-button.component.mjs +7 -7
  63. package/esm2020/card/card-action/card-action.component.mjs +4 -4
  64. package/esm2020/card/card-body/card-body.component.mjs +5 -6
  65. package/esm2020/card/card-footer/card-footer.component.mjs +5 -8
  66. package/esm2020/card/card-header/card-header.component.mjs +5 -7
  67. package/esm2020/card/card.component.mjs +5 -7
  68. package/esm2020/card/card.module.mjs +4 -4
  69. package/esm2020/carousel/carousel-slide.directive.mjs +16 -0
  70. package/esm2020/carousel/carousel.component.mjs +211 -0
  71. package/esm2020/carousel/carousel.module.mjs +38 -0
  72. package/esm2020/carousel/public-api.mjs +4 -0
  73. package/esm2020/carousel/theseam-ui-common-carousel.mjs +5 -0
  74. package/esm2020/checkbox/checkbox.component.mjs +44 -45
  75. package/esm2020/checkbox/checkbox.module.mjs +4 -4
  76. package/esm2020/checkbox/testing/checkbox.harness.mjs +1 -1
  77. package/esm2020/checkbox/testing/index.mjs +1 -1
  78. package/esm2020/confirm-dialog/confirm-click.directive.mjs +11 -11
  79. package/esm2020/confirm-dialog/confirm-dialog.component.mjs +3 -3
  80. package/esm2020/confirm-dialog/confirm-dialog.module.mjs +4 -4
  81. package/esm2020/confirm-dialog/confirm-dialog.service.mjs +3 -3
  82. package/esm2020/core/common-behaviors/active.mjs +4 -3
  83. package/esm2020/core/common-behaviors/disabled.mjs +4 -3
  84. package/esm2020/core/common-behaviors/initialized.mjs +2 -1
  85. package/esm2020/core/common-behaviors/size.mjs +6 -6
  86. package/esm2020/core/common-behaviors/tabindex.mjs +6 -5
  87. package/esm2020/core/common-behaviors/theme.mjs +6 -6
  88. package/esm2020/core/input-decorators/input-boolean.decorator.mjs +4 -5
  89. package/esm2020/core/input-decorators/input-number.decorator.mjs +4 -5
  90. package/esm2020/data-exporter/data-exporter.module.mjs +4 -4
  91. package/esm2020/data-exporter/exporters/csv-exporter.mjs +3 -3
  92. package/esm2020/data-exporter/exporters/xlsx-exporter.mjs +3 -3
  93. package/esm2020/data-filters/data-filter.mjs +1 -1
  94. package/esm2020/data-filters/data-filters.module.mjs +4 -4
  95. package/esm2020/data-filters/filters/data-filter-search/data-filter-search.component.mjs +11 -11
  96. package/esm2020/data-filters/filters/data-filter-text/data-filter-text.component.mjs +12 -12
  97. package/esm2020/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.mjs +18 -15
  98. package/esm2020/datatable/datatable/datatable.component.mjs +114 -109
  99. package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +3 -3
  100. package/esm2020/datatable/datatable-action-menu-item/datatable-action-menu-item.component.mjs +5 -4
  101. package/esm2020/datatable/datatable-column/datatable-column.component.mjs +7 -8
  102. package/esm2020/datatable/datatable-column-preferences/datatable-column-preferences.component.mjs +3 -3
  103. package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +4 -5
  104. package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +8 -8
  105. package/esm2020/datatable/datatable-footer/datatable-footer-tpl.directive.mjs +3 -3
  106. package/esm2020/datatable/datatable-footer/datatable-footer.directive.mjs +5 -5
  107. package/esm2020/datatable/datatable-menu-bar/datatable-menu-bar.component.mjs +5 -9
  108. package/esm2020/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.mjs +5 -8
  109. package/esm2020/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.mjs +5 -8
  110. package/esm2020/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.mjs +5 -8
  111. package/esm2020/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.mjs +5 -8
  112. package/esm2020/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.mjs +4 -5
  113. package/esm2020/datatable/datatable-row-detail/datatable-row-detail-tpl.directive.mjs +3 -3
  114. package/esm2020/datatable/datatable-row-detail/datatable-row-detail.directive.mjs +5 -5
  115. package/esm2020/datatable/datatable.module.mjs +4 -4
  116. package/esm2020/datatable/directives/datatable-action-menu-item.directive.mjs +5 -6
  117. package/esm2020/datatable/directives/datatable-action-menu-toggle.directive.mjs +11 -11
  118. package/esm2020/datatable/directives/datatable-cell-tpl.directive.mjs +3 -3
  119. package/esm2020/datatable/directives/datatable-filter.directive.mjs +3 -3
  120. package/esm2020/datatable/directives/datatable-row-action-item.directive.mjs +3 -3
  121. package/esm2020/datatable/models/columns-alteration.mjs +1 -1
  122. package/esm2020/datatable/models/columns-alterations/order.columns-alteration.mjs +3 -1
  123. package/esm2020/datatable/models/datatable-gql-data-source.mjs +1 -1
  124. package/esm2020/datatable/models/internal-column-props.mjs +1 -1
  125. package/esm2020/datatable/models/sort-item.mjs +1 -1
  126. package/esm2020/datatable/services/columns-alterations-manager.service.mjs +4 -4
  127. package/esm2020/datatable/services/columns-manager.service.mjs +5 -5
  128. package/esm2020/datatable/services/datatable-column-changes.service.mjs +3 -3
  129. package/esm2020/datatable/services/datatable-preferences.service.mjs +7 -6
  130. package/esm2020/datatable/services/datatable-scrollbar-helper.service.mjs +5 -5
  131. package/esm2020/datatable/utils/map-columns-alterations-states.mjs +4 -1
  132. package/esm2020/datatable/utils/set-column-defaults.mjs +2 -2
  133. package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +13 -14
  134. package/esm2020/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.mjs +8 -8
  135. package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.mjs +8 -9
  136. package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-item-manifest.mjs +1 -1
  137. package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +8 -10
  138. package/esm2020/datatable-dynamic/datatable-dynamic.module.mjs +4 -4
  139. package/esm2020/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.mjs +9 -9
  140. package/esm2020/datatable-dynamic/dynamic-datatable-def.service.mjs +7 -7
  141. package/esm2020/datatable-dynamic/dynamic-datatable-row-actions.service.mjs +6 -6
  142. package/esm2020/dynamic/action/api/dynamic-action-api.service.mjs +11 -8
  143. package/esm2020/dynamic/action/dynamic-action-helper.service.mjs +6 -5
  144. package/esm2020/dynamic/action/link/dynamic-action-link.service.mjs +4 -4
  145. package/esm2020/dynamic/action/modal/dynamic-action-modal-def.mjs +1 -1
  146. package/esm2020/dynamic/action/modal/dynamic-action-modal.service.mjs +4 -4
  147. package/esm2020/dynamic/dynamic-value-helper.service.mjs +5 -4
  148. package/esm2020/dynamic/evaluators/exporters-data-evaluator/exporters-data-evaluator.mjs +4 -4
  149. package/esm2020/dynamic/evaluators/jexl-evaluator/jexl-evaluator.mjs +5 -5
  150. package/esm2020/dynamic-component-loader/dynamic-component-loader.module.mjs +4 -4
  151. package/esm2020/dynamic-component-loader/dynamic-component-loader.service.mjs +9 -9
  152. package/esm2020/footer-bar/footer-bar/footer-bar.component.mjs +5 -8
  153. package/esm2020/footer-bar/footer-bar.module.mjs +5 -5
  154. package/esm2020/form-field/form-field-error.directive.mjs +6 -6
  155. package/esm2020/form-field/form-field-help-text.directive.mjs +3 -3
  156. package/esm2020/form-field/form-field-label-tpl.directive.mjs +3 -3
  157. package/esm2020/form-field/form-field-required-indicator.component.mjs +4 -4
  158. package/esm2020/form-field/form-field.component.mjs +49 -49
  159. package/esm2020/form-field/form-field.module.mjs +4 -4
  160. package/esm2020/form-field/input.directive.mjs +49 -48
  161. package/esm2020/form-field/testing/form-field-required-indicator.harness.mjs +1 -1
  162. package/esm2020/form-field/testing/index.mjs +1 -1
  163. package/esm2020/form-field-error/form-field-error/form-field-error.component.mjs +5 -7
  164. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item-tpl.directive.mjs +4 -4
  165. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item.directive.mjs +3 -3
  166. package/esm2020/form-field-error/form-field-error-list/form-field-error-list.component.mjs +96 -96
  167. package/esm2020/form-field-error/form-field-error.module.mjs +4 -4
  168. package/esm2020/framework/base-layout/base-layout.component.mjs +7 -6
  169. package/esm2020/framework/base-layout/base-layout.module.mjs +5 -5
  170. package/esm2020/framework/base-layout/directives/base-layout-content-footer.directive.mjs +3 -3
  171. package/esm2020/framework/base-layout/directives/base-layout-content-header.directive.mjs +3 -3
  172. package/esm2020/framework/base-layout/directives/base-layout-content.directive.mjs +3 -3
  173. package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +10 -10
  174. package/esm2020/framework/base-layout/directives/base-layout-side-bar-footer.directive.mjs +3 -3
  175. package/esm2020/framework/base-layout/directives/base-layout-side-bar.directive.mjs +3 -3
  176. package/esm2020/framework/base-layout/directives/base-layout-top-bar.directive.mjs +3 -3
  177. package/esm2020/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.mjs +5 -7
  178. package/esm2020/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.mjs +4 -5
  179. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.mjs +7 -7
  180. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.mjs +6 -5
  181. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.component.mjs +18 -18
  182. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.service.mjs +15 -13
  183. package/esm2020/framework/dashboard/dashboard.component.mjs +5 -5
  184. package/esm2020/framework/dashboard/dashboard.module.mjs +4 -4
  185. package/esm2020/framework/dynamic-router/dynamic-route-def.mjs +1 -1
  186. package/esm2020/framework/dynamic-router/dynamic-router.module.mjs +5 -5
  187. package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-route-animations.mjs +1 -1
  188. package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.mjs +5 -6
  189. package/esm2020/framework/dynamic-router/resolvers/hierarchy-level.resolver.mjs +5 -6
  190. package/esm2020/framework/schema-form/schema-form-framework.component.mjs +3 -3
  191. package/esm2020/framework/schema-form/schema-form-framework.mjs +3 -3
  192. package/esm2020/framework/schema-form/schema-form.module.mjs +4 -4
  193. package/esm2020/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.mjs +3 -3
  194. package/esm2020/framework/schema-form-controls/schema-form-controls.module.mjs +4 -4
  195. package/esm2020/framework/schema-form-controls/schema-form-input/schema-form-input.component.mjs +3 -3
  196. package/esm2020/framework/schema-form-controls/schema-form-number/schema-form-number.component.mjs +3 -3
  197. package/esm2020/framework/schema-form-controls/schema-form-select/schema-form-select.component.mjs +3 -3
  198. package/esm2020/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.mjs +3 -3
  199. package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +5 -4
  200. package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +25 -25
  201. package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +5 -6
  202. package/esm2020/framework/side-nav/side-nav-utils.mjs +2 -1
  203. package/esm2020/framework/side-nav/side-nav.component.mjs +19 -20
  204. package/esm2020/framework/side-nav/side-nav.module.mjs +4 -4
  205. package/esm2020/framework/side-nav/side-nav.service.mjs +3 -3
  206. package/esm2020/framework/top-bar/top-bar-item.directive.mjs +3 -3
  207. package/esm2020/framework/top-bar/top-bar-menu-btn-detail.directive.mjs +3 -3
  208. package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +4 -6
  209. package/esm2020/framework/top-bar/top-bar-menu.directive.mjs +3 -3
  210. package/esm2020/framework/top-bar/top-bar-title/top-bar-title.component.mjs +5 -7
  211. package/esm2020/framework/top-bar/top-bar.component.mjs +4 -6
  212. package/esm2020/framework/top-bar/top-bar.module.mjs +4 -4
  213. package/esm2020/google-maps/google-maps/google-maps.component.mjs +36 -39
  214. package/esm2020/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.mjs +103 -0
  215. package/esm2020/google-maps/google-maps-api-loader/noop-google-maps-api-loader.mjs +25 -0
  216. package/esm2020/google-maps/google-maps-contextmenu.mjs +9 -8
  217. package/esm2020/google-maps/google-maps-controls.service.mjs +3 -3
  218. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +24 -25
  219. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.mjs +12 -12
  220. package/esm2020/google-maps/google-maps-recenter-button-control/google-maps-recenter-button-control.component.mjs +9 -9
  221. package/esm2020/google-maps/google-maps-upload-button-control/google-maps-upload-button-control.component.mjs +9 -9
  222. package/esm2020/google-maps/google-maps.module.mjs +4 -4
  223. package/esm2020/google-maps/google-maps.service.mjs +9 -9
  224. package/esm2020/google-maps/map-control.component.mjs +9 -9
  225. package/esm2020/google-maps/map-file-drop/map-file-drop.component.mjs +4 -4
  226. package/esm2020/google-maps/map-value-manager.service.mjs +3 -3
  227. package/esm2020/google-maps/public-api.mjs +4 -1
  228. package/esm2020/graphql/datatable/datatable-graphql-query-ref.mjs +5 -31
  229. package/esm2020/graphql/datatable/datatable-graphql.service.mjs +4 -4
  230. package/esm2020/graphql/datatable/datatable-helpers.mjs +2 -2
  231. package/esm2020/graphql/datatable/map-filter-states.mjs +2 -1
  232. package/esm2020/graphql/utils/inline-variables.mjs +2 -1
  233. package/esm2020/graphql/utils/parse-hints.mjs +3 -3
  234. package/esm2020/graphql/utils/to-gql.mjs +3 -3
  235. package/esm2020/icon/icon/icon.component.mjs +5 -5
  236. package/esm2020/icon/icon-btn/icon-btn.component.mjs +24 -25
  237. package/esm2020/icon/icon-notification/icon-notification.component.mjs +3 -3
  238. package/esm2020/icon/icon.module.mjs +4 -4
  239. package/esm2020/icon/utils/get-known-icon.mjs +71 -71
  240. package/esm2020/layout/breakpoint-aliases.mjs +1 -1
  241. package/esm2020/layout/layout.module.mjs +4 -4
  242. package/esm2020/layout/layout.service.mjs +3 -3
  243. package/esm2020/layout/observe-media-query.mjs +1 -1
  244. package/esm2020/loading/loading/loading.component.mjs +5 -6
  245. package/esm2020/loading/loading-overlay.service.mjs +3 -3
  246. package/esm2020/loading/loading.module.mjs +4 -4
  247. package/esm2020/menu/menu-divider.component.mjs +3 -3
  248. package/esm2020/menu/menu-footer/menu-footer.component.mjs +3 -3
  249. package/esm2020/menu/menu-footer-action/menu-footer-action.component.mjs +7 -7
  250. package/esm2020/menu/menu-header/menu-header.component.mjs +3 -3
  251. package/esm2020/menu/menu-item.component.mjs +4 -5
  252. package/esm2020/menu/menu-toggle.directive.mjs +42 -42
  253. package/esm2020/menu/menu.component.mjs +15 -15
  254. package/esm2020/menu/menu.module.mjs +4 -4
  255. package/esm2020/modal/directives/modal-close.directive.mjs +11 -11
  256. package/esm2020/modal/directives/modal-footer-tpl.directive.mjs +3 -3
  257. package/esm2020/modal/directives/modal-header-icon-tpl.directive.mjs +3 -3
  258. package/esm2020/modal/directives/modal-header-title-tpl.directive.mjs +3 -3
  259. package/esm2020/modal/directives/modal-title.directive.mjs +3 -3
  260. package/esm2020/modal/directives/modal.directive.mjs +5 -5
  261. package/esm2020/modal/modal/modal.component.mjs +20 -21
  262. package/esm2020/modal/modal-body/modal-body.component.mjs +5 -7
  263. package/esm2020/modal/modal-config.mjs +1 -1
  264. package/esm2020/modal/modal-container/modal-container.component.mjs +12 -12
  265. package/esm2020/modal/modal-footer/modal-footer.component.mjs +5 -7
  266. package/esm2020/modal/modal-header/modal-header.component.mjs +5 -7
  267. package/esm2020/modal/modal-ref.mjs +1 -1
  268. package/esm2020/modal/modal.module.mjs +4 -4
  269. package/esm2020/modal/modal.service.mjs +38 -35
  270. package/esm2020/modal/route-modal/route-modal.component.mjs +4 -5
  271. package/esm2020/popover/popover/popover.component.mjs +18 -18
  272. package/esm2020/popover/popover.directive.mjs +32 -32
  273. package/esm2020/popover/popover.module.mjs +5 -5
  274. package/esm2020/progress/progress-circle/progress-circle.component.mjs +5 -5
  275. package/esm2020/progress/progress.module.mjs +4 -4
  276. package/esm2020/scrollbar/overlay-scrollbar.directive.mjs +10 -11
  277. package/esm2020/scrollbar/overlay-scrollbars.service.mjs +4 -4
  278. package/esm2020/scrollbar/scrollbar.module.mjs +4 -4
  279. package/esm2020/services/asset-loader.service.mjs +5 -6
  280. package/esm2020/services/font-loader.service.mjs +5 -6
  281. package/esm2020/services/router-helpers.service.mjs +3 -3
  282. package/esm2020/shared/components/password-input-reveal/password-input-reveal.component.mjs +3 -3
  283. package/esm2020/shared/directives/auto-focus.directive.mjs +3 -3
  284. package/esm2020/shared/directives/click-outside.directive.mjs +9 -9
  285. package/esm2020/shared/directives/disable-control.directive.mjs +7 -7
  286. package/esm2020/shared/directives/elem-resized.directive.mjs +5 -5
  287. package/esm2020/shared/directives/hover-class-toggle.directive.mjs +10 -10
  288. package/esm2020/shared/directives/hover-class.directive.mjs +9 -9
  289. package/esm2020/shared/directives/ng-select-extra.directive.mjs +29 -29
  290. package/esm2020/shared/directives/ngx-quill-extra.directive.mjs +11 -11
  291. package/esm2020/shared/pipes/mask-chars.pipe.mjs +3 -3
  292. package/esm2020/shared/pipes/truncate.pipe.mjs +3 -3
  293. package/esm2020/shared/shared.module.mjs +4 -4
  294. package/esm2020/storage/local-storage.service.mjs +8 -8
  295. package/esm2020/storage/localstorage-memory.mjs +4 -4
  296. package/esm2020/story-helpers/arg-type-helpers.mjs +1 -1
  297. package/esm2020/story-helpers/initial-route.service.mjs +3 -3
  298. package/esm2020/story-helpers/on-story-bootstrapped-trigger.mjs +2 -1
  299. package/esm2020/story-helpers/public-api.mjs +2 -2
  300. package/esm2020/story-helpers/story-empty-with-route.component.mjs +3 -3
  301. package/esm2020/story-helpers/story-empty.component.mjs +3 -3
  302. package/esm2020/story-helpers/story-helper-components.module.mjs +4 -4
  303. package/esm2020/story-helpers/story-initial-route.mjs +4 -4
  304. package/esm2020/story-helpers/story-modal-container.component.mjs +6 -6
  305. package/esm2020/story-helpers/story-toastr.service.mjs +3 -3
  306. package/esm2020/tabbed/directives/tabbed-tab-content.directive.mjs +5 -5
  307. package/esm2020/tabbed/directives/tabbed-tab.directive.mjs +5 -4
  308. package/esm2020/tabbed/tabbed-content/tabbed-content.component.mjs +5 -7
  309. package/esm2020/tabbed/tabbed-item/tabbed-item.component.mjs +5 -6
  310. package/esm2020/tabbed/tabbed.component.mjs +13 -13
  311. package/esm2020/tabbed/tabbed.module.mjs +4 -4
  312. package/esm2020/tabbed/tabbed.service.mjs +5 -5
  313. package/esm2020/table/table/table.component.mjs +12 -13
  314. package/esm2020/table/table.module.mjs +4 -4
  315. package/esm2020/table-cell-type/services/table-cell-types-helpers.service.mjs +5 -5
  316. package/esm2020/table-cell-type/table-cell-type-export-props.mjs +1 -1
  317. package/esm2020/table-cell-type/table-cell-type-models.mjs +1 -1
  318. package/esm2020/table-cell-type/table-cell-type-selector.component.mjs +5 -6
  319. package/esm2020/table-cell-type/table-cell-type.module.mjs +4 -4
  320. package/esm2020/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.mjs +12 -12
  321. package/esm2020/table-cell-types/table-cell-type-date/table-cell-type-date.component.mjs +8 -12
  322. package/esm2020/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.mjs +14 -14
  323. package/esm2020/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.mjs +37 -37
  324. package/esm2020/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.mjs +14 -14
  325. package/esm2020/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.mjs +8 -9
  326. package/esm2020/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.mjs +11 -10
  327. package/esm2020/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.mjs +7 -8
  328. package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +30 -27
  329. package/esm2020/table-cell-types/table-cell-types.module.mjs +4 -4
  330. package/esm2020/tel-input/intl-tel-input.mjs +2 -2
  331. package/esm2020/tel-input/phone-number.pipe.mjs +3 -3
  332. package/esm2020/tel-input/tel-input/tel-input.component.mjs +35 -36
  333. package/esm2020/tel-input/tel-input.directive.mjs +18 -18
  334. package/esm2020/tel-input/tel-input.module.mjs +4 -4
  335. package/esm2020/tel-input/utils/add-country-code.mjs +4 -4
  336. package/esm2020/tel-input/utils/process-country-codes.mjs +4 -7
  337. package/esm2020/testing/story-expect.mjs +2 -1
  338. package/esm2020/tiled-select/components/tiled-select/tiled-select.component.mjs +21 -22
  339. package/esm2020/tiled-select/components/tiled-select-tile/tiled-select-tile.component.mjs +6 -7
  340. package/esm2020/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.mjs +6 -7
  341. package/esm2020/tiled-select/directives/tiled-select-tile-icon-tpl.directive.mjs +3 -3
  342. package/esm2020/tiled-select/directives/tiled-select-tile-label-tpl.directive.mjs +3 -3
  343. package/esm2020/tiled-select/directives/tiled-select-tile-overlay.directive.mjs +3 -3
  344. package/esm2020/tiled-select/testing/index.mjs +1 -1
  345. package/esm2020/tiled-select/tiled-select.module.mjs +4 -4
  346. package/esm2020/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.mjs +5 -8
  347. package/esm2020/toggle-edit/toggle-edit-display-tpl.directive.mjs +3 -3
  348. package/esm2020/toggle-edit/toggle-edit-keyboard-listener.service.mjs +3 -3
  349. package/esm2020/toggle-edit/toggle-edit.component.mjs +19 -19
  350. package/esm2020/toggle-edit/toggle-edit.module.mjs +4 -4
  351. package/esm2020/toggle-group/toggle-group-option.directive.mjs +12 -12
  352. package/esm2020/toggle-group/toggle-group.directive.mjs +6 -6
  353. package/esm2020/toggle-group/toggle-group.module.mjs +4 -4
  354. package/esm2020/unsaved-changes-dialog/unsaved-changes-can-deactivate.mjs +5 -5
  355. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +5 -8
  356. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.guard.mjs +5 -4
  357. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +4 -4
  358. package/esm2020/utils/array-move.mjs +1 -1
  359. package/esm2020/utils/cdk/get-closest-widget-cdk-drag.mjs +3 -3
  360. package/esm2020/utils/file-utils.mjs +2 -2
  361. package/esm2020/utils/form/get-control-path.mjs +6 -5
  362. package/esm2020/utils/geo-json/geo-json-to-area.mjs +3 -3
  363. package/esm2020/utils/geo-json/is-only-geometry-types.validator.mjs +1 -1
  364. package/esm2020/utils/geo-json/min-max-points.validator.mjs +5 -5
  365. package/esm2020/utils/geo-json/read-geo-file.mjs +3 -2
  366. package/esm2020/utils/has-property.mjs +2 -2
  367. package/esm2020/utils/load-style-sheet.mjs +2 -2
  368. package/esm2020/utils/load-style.mjs +2 -2
  369. package/esm2020/utils/obj-utils.mjs +2 -2
  370. package/esm2020/utils/polling-ticker.mjs +2 -2
  371. package/esm2020/utils/router/operators/activated-routes-with-data-property.mjs +2 -2
  372. package/esm2020/utils/router/route-snapshot-path-full.mjs +2 -2
  373. package/esm2020/utils/router/route-snapshot-path-relative.mjs +2 -2
  374. package/esm2020/utils/router/will-have-data-prop.mjs +3 -3
  375. package/esm2020/utils/subscriber-count.mjs +2 -1
  376. package/esm2020/utils/toggle-attribute.mjs +6 -5
  377. package/esm2020/utils/wait-on-condition-async.mjs +5 -5
  378. package/esm2020/vertical-list-filter/public-api.mjs +3 -0
  379. package/esm2020/vertical-list-filter/testing/index.mjs +2 -0
  380. package/esm2020/vertical-list-filter/testing/vertical-list-filter.harness.mjs +28 -0
  381. package/esm2020/vertical-list-filter/theseam-ui-common-vertical-list-filter.mjs +5 -0
  382. package/esm2020/vertical-list-filter/vertical-list-filter.component.mjs +52 -0
  383. package/esm2020/viewers/html-template-viewer/html-template-viewer.component.mjs +37 -37
  384. package/esm2020/viewers/html-template-viewer/html-template-viewer.module.mjs +4 -4
  385. package/esm2020/viewers/pdf-viewer/pdf-page/pdf-page.component.mjs +11 -10
  386. package/esm2020/viewers/pdf-viewer/pdf-renderer.service.mjs +4 -4
  387. package/esm2020/viewers/pdf-viewer/pdf-viewer.component.mjs +39 -38
  388. package/esm2020/viewers/pdf-viewer/pdf-viewer.module.mjs +4 -4
  389. package/esm2020/widget/directives/widget-drag-handle.directive.mjs +15 -15
  390. package/esm2020/widget/directives/widget-icon-tpl.directive.mjs +3 -3
  391. package/esm2020/widget/directives/widget-title-tpl.directive.mjs +3 -3
  392. package/esm2020/widget/widget/widget.component.mjs +3 -3
  393. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.component.mjs +5 -8
  394. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.module.mjs +4 -4
  395. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.component.mjs +5 -8
  396. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.module.mjs +4 -4
  397. package/esm2020/widget/widget-content-components/widget-description/widget-description.component.mjs +3 -3
  398. package/esm2020/widget/widget-content-components/widget-description/widget-description.module.mjs +4 -4
  399. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.component.mjs +9 -10
  400. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.module.mjs +4 -4
  401. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.component.mjs +5 -7
  402. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.module.mjs +4 -4
  403. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.component.mjs +5 -8
  404. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.module.mjs +4 -4
  405. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.component.mjs +5 -5
  406. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.module.mjs +4 -4
  407. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item-icon-tpl.directive.mjs +3 -3
  408. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.mjs +16 -19
  409. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.component.mjs +5 -7
  410. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.module.mjs +4 -4
  411. package/esm2020/widget/widget-content-components/widget-table/widget-table.component.mjs +5 -5
  412. package/esm2020/widget/widget-content-components/widget-table/widget-table.module.mjs +4 -4
  413. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.mjs +6 -9
  414. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.mjs +9 -10
  415. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.mjs +5 -8
  416. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-secondary-icon.directive.mjs +5 -5
  417. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.component.mjs +17 -16
  418. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.module.mjs +10 -10
  419. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.component.mjs +5 -8
  420. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.module.mjs +4 -4
  421. package/esm2020/widget/widget-footer/widget-footer.component.mjs +5 -7
  422. package/esm2020/widget/widget-registry.service.mjs +6 -5
  423. package/esm2020/widget/widget.module.mjs +7 -7
  424. package/fesm2015/theseam-ui-common-asset-reader.mjs +21 -19
  425. package/fesm2015/theseam-ui-common-asset-reader.mjs.map +1 -1
  426. package/fesm2015/theseam-ui-common-breadcrumbs.mjs +13 -14
  427. package/fesm2015/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  428. package/fesm2015/theseam-ui-common-buttons.mjs +32 -28
  429. package/fesm2015/theseam-ui-common-buttons.mjs.map +1 -1
  430. package/fesm2015/theseam-ui-common-card.mjs +23 -31
  431. package/fesm2015/theseam-ui-common-card.mjs.map +1 -1
  432. package/fesm2015/theseam-ui-common-carousel.mjs +265 -0
  433. package/fesm2015/theseam-ui-common-carousel.mjs.map +1 -0
  434. package/fesm2015/theseam-ui-common-checkbox.mjs +47 -48
  435. package/fesm2015/theseam-ui-common-checkbox.mjs.map +1 -1
  436. package/fesm2015/theseam-ui-common-confirm-dialog.mjs +20 -20
  437. package/fesm2015/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  438. package/fesm2015/theseam-ui-common-core.mjs +28 -26
  439. package/fesm2015/theseam-ui-common-core.mjs.map +1 -1
  440. package/fesm2015/theseam-ui-common-data-exporter.mjs +10 -10
  441. package/fesm2015/theseam-ui-common-data-filters.mjs +42 -39
  442. package/fesm2015/theseam-ui-common-data-filters.mjs.map +1 -1
  443. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +55 -59
  444. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  445. package/fesm2015/theseam-ui-common-datatable.mjs +229 -237
  446. package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
  447. package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs +12 -12
  448. package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
  449. package/fesm2015/theseam-ui-common-dynamic.mjs +36 -26
  450. package/fesm2015/theseam-ui-common-dynamic.mjs.map +1 -1
  451. package/fesm2015/theseam-ui-common-footer-bar.mjs +8 -11
  452. package/fesm2015/theseam-ui-common-footer-bar.mjs.map +1 -1
  453. package/fesm2015/theseam-ui-common-form-field-error.mjs +109 -111
  454. package/fesm2015/theseam-ui-common-form-field-error.mjs.map +1 -1
  455. package/fesm2015/theseam-ui-common-form-field.mjs +114 -113
  456. package/fesm2015/theseam-ui-common-form-field.mjs.map +1 -1
  457. package/fesm2015/theseam-ui-common-framework.mjs +216 -223
  458. package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
  459. package/fesm2015/theseam-ui-common-google-maps.mjs +246 -126
  460. package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
  461. package/fesm2015/theseam-ui-common-graphql.mjs +14 -38
  462. package/fesm2015/theseam-ui-common-graphql.mjs.map +1 -1
  463. package/fesm2015/theseam-ui-common-icon.mjs +104 -105
  464. package/fesm2015/theseam-ui-common-icon.mjs.map +1 -1
  465. package/fesm2015/theseam-ui-common-layout.mjs +7 -7
  466. package/fesm2015/theseam-ui-common-layout.mjs.map +1 -1
  467. package/fesm2015/theseam-ui-common-loading.mjs +11 -12
  468. package/fesm2015/theseam-ui-common-loading.mjs.map +1 -1
  469. package/fesm2015/theseam-ui-common-menu.mjs +79 -80
  470. package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
  471. package/fesm2015/theseam-ui-common-modal.mjs +112 -117
  472. package/fesm2015/theseam-ui-common-modal.mjs.map +1 -1
  473. package/fesm2015/theseam-ui-common-popover.mjs +52 -52
  474. package/fesm2015/theseam-ui-common-popover.mjs.map +1 -1
  475. package/fesm2015/theseam-ui-common-progress.mjs +8 -8
  476. package/fesm2015/theseam-ui-common-progress.mjs.map +1 -1
  477. package/fesm2015/theseam-ui-common-scrollbar.mjs +16 -17
  478. package/fesm2015/theseam-ui-common-scrollbar.mjs.map +1 -1
  479. package/fesm2015/theseam-ui-common-services.mjs +11 -13
  480. package/fesm2015/theseam-ui-common-services.mjs.map +1 -1
  481. package/fesm2015/theseam-ui-common-shared.mjs +89 -89
  482. package/fesm2015/theseam-ui-common-shared.mjs.map +1 -1
  483. package/fesm2015/theseam-ui-common-storage.mjs +10 -10
  484. package/fesm2015/theseam-ui-common-storage.mjs.map +1 -1
  485. package/fesm2015/theseam-ui-common-story-helpers.mjs +27 -102
  486. package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
  487. package/fesm2015/theseam-ui-common-tabbed.mjs +36 -38
  488. package/fesm2015/theseam-ui-common-tabbed.mjs.map +1 -1
  489. package/fesm2015/theseam-ui-common-table-cell-type.mjs +12 -13
  490. package/fesm2015/theseam-ui-common-table-cell-type.mjs.map +1 -1
  491. package/fesm2015/theseam-ui-common-table-cell-types.mjs +136 -138
  492. package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
  493. package/fesm2015/theseam-ui-common-table.mjs +15 -16
  494. package/fesm2015/theseam-ui-common-table.mjs.map +1 -1
  495. package/fesm2015/theseam-ui-common-tel-input.mjs +67 -71
  496. package/fesm2015/theseam-ui-common-tel-input.mjs.map +1 -1
  497. package/fesm2015/theseam-ui-common-testing.mjs.map +1 -1
  498. package/fesm2015/theseam-ui-common-tiled-select.mjs +43 -46
  499. package/fesm2015/theseam-ui-common-tiled-select.mjs.map +1 -1
  500. package/fesm2015/theseam-ui-common-toggle-edit.mjs +32 -35
  501. package/fesm2015/theseam-ui-common-toggle-edit.mjs.map +1 -1
  502. package/fesm2015/theseam-ui-common-toggle-group.mjs +20 -20
  503. package/fesm2015/theseam-ui-common-toggle-group.mjs.map +1 -1
  504. package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs +16 -18
  505. package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
  506. package/fesm2015/theseam-ui-common-utils.mjs +36 -32
  507. package/fesm2015/theseam-ui-common-utils.mjs.map +1 -1
  508. package/fesm2015/theseam-ui-common-vertical-list-filter.mjs +96 -0
  509. package/fesm2015/theseam-ui-common-vertical-list-filter.mjs.map +1 -0
  510. package/fesm2015/theseam-ui-common-viewers.mjs +95 -93
  511. package/fesm2015/theseam-ui-common-viewers.mjs.map +1 -1
  512. package/fesm2015/theseam-ui-common-widget.mjs +182 -209
  513. package/fesm2015/theseam-ui-common-widget.mjs.map +1 -1
  514. package/fesm2020/theseam-ui-common-asset-reader.mjs +21 -19
  515. package/fesm2020/theseam-ui-common-asset-reader.mjs.map +1 -1
  516. package/fesm2020/theseam-ui-common-breadcrumbs.mjs +13 -14
  517. package/fesm2020/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  518. package/fesm2020/theseam-ui-common-buttons.mjs +32 -28
  519. package/fesm2020/theseam-ui-common-buttons.mjs.map +1 -1
  520. package/fesm2020/theseam-ui-common-card.mjs +23 -31
  521. package/fesm2020/theseam-ui-common-card.mjs.map +1 -1
  522. package/fesm2020/theseam-ui-common-carousel.mjs +265 -0
  523. package/fesm2020/theseam-ui-common-carousel.mjs.map +1 -0
  524. package/fesm2020/theseam-ui-common-checkbox.mjs +47 -48
  525. package/fesm2020/theseam-ui-common-checkbox.mjs.map +1 -1
  526. package/fesm2020/theseam-ui-common-confirm-dialog.mjs +20 -20
  527. package/fesm2020/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  528. package/fesm2020/theseam-ui-common-core.mjs +28 -26
  529. package/fesm2020/theseam-ui-common-core.mjs.map +1 -1
  530. package/fesm2020/theseam-ui-common-data-exporter.mjs +10 -10
  531. package/fesm2020/theseam-ui-common-data-filters.mjs +42 -39
  532. package/fesm2020/theseam-ui-common-data-filters.mjs.map +1 -1
  533. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +55 -59
  534. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  535. package/fesm2020/theseam-ui-common-datatable.mjs +229 -237
  536. package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
  537. package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs +12 -12
  538. package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
  539. package/fesm2020/theseam-ui-common-dynamic.mjs +36 -26
  540. package/fesm2020/theseam-ui-common-dynamic.mjs.map +1 -1
  541. package/fesm2020/theseam-ui-common-footer-bar.mjs +8 -11
  542. package/fesm2020/theseam-ui-common-footer-bar.mjs.map +1 -1
  543. package/fesm2020/theseam-ui-common-form-field-error.mjs +109 -111
  544. package/fesm2020/theseam-ui-common-form-field-error.mjs.map +1 -1
  545. package/fesm2020/theseam-ui-common-form-field.mjs +114 -113
  546. package/fesm2020/theseam-ui-common-form-field.mjs.map +1 -1
  547. package/fesm2020/theseam-ui-common-framework.mjs +216 -223
  548. package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
  549. package/fesm2020/theseam-ui-common-google-maps.mjs +243 -126
  550. package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
  551. package/fesm2020/theseam-ui-common-graphql.mjs +14 -38
  552. package/fesm2020/theseam-ui-common-graphql.mjs.map +1 -1
  553. package/fesm2020/theseam-ui-common-icon.mjs +104 -105
  554. package/fesm2020/theseam-ui-common-icon.mjs.map +1 -1
  555. package/fesm2020/theseam-ui-common-layout.mjs +16 -8
  556. package/fesm2020/theseam-ui-common-layout.mjs.map +1 -1
  557. package/fesm2020/theseam-ui-common-loading.mjs +11 -12
  558. package/fesm2020/theseam-ui-common-loading.mjs.map +1 -1
  559. package/fesm2020/theseam-ui-common-menu.mjs +77 -78
  560. package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
  561. package/fesm2020/theseam-ui-common-modal.mjs +112 -117
  562. package/fesm2020/theseam-ui-common-modal.mjs.map +1 -1
  563. package/fesm2020/theseam-ui-common-models.mjs +2 -1
  564. package/fesm2020/theseam-ui-common-models.mjs.map +1 -1
  565. package/fesm2020/theseam-ui-common-popover.mjs +52 -52
  566. package/fesm2020/theseam-ui-common-popover.mjs.map +1 -1
  567. package/fesm2020/theseam-ui-common-progress.mjs +8 -8
  568. package/fesm2020/theseam-ui-common-progress.mjs.map +1 -1
  569. package/fesm2020/theseam-ui-common-scrollbar.mjs +16 -17
  570. package/fesm2020/theseam-ui-common-scrollbar.mjs.map +1 -1
  571. package/fesm2020/theseam-ui-common-services.mjs +11 -13
  572. package/fesm2020/theseam-ui-common-services.mjs.map +1 -1
  573. package/fesm2020/theseam-ui-common-shared.mjs +89 -89
  574. package/fesm2020/theseam-ui-common-shared.mjs.map +1 -1
  575. package/fesm2020/theseam-ui-common-storage.mjs +10 -10
  576. package/fesm2020/theseam-ui-common-storage.mjs.map +1 -1
  577. package/fesm2020/theseam-ui-common-story-helpers.mjs +27 -98
  578. package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
  579. package/fesm2020/theseam-ui-common-tabbed.mjs +36 -38
  580. package/fesm2020/theseam-ui-common-tabbed.mjs.map +1 -1
  581. package/fesm2020/theseam-ui-common-table-cell-type.mjs +12 -13
  582. package/fesm2020/theseam-ui-common-table-cell-type.mjs.map +1 -1
  583. package/fesm2020/theseam-ui-common-table-cell-types.mjs +136 -138
  584. package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
  585. package/fesm2020/theseam-ui-common-table.mjs +15 -16
  586. package/fesm2020/theseam-ui-common-table.mjs.map +1 -1
  587. package/fesm2020/theseam-ui-common-tel-input.mjs +65 -69
  588. package/fesm2020/theseam-ui-common-tel-input.mjs.map +1 -1
  589. package/fesm2020/theseam-ui-common-testing.mjs +1 -0
  590. package/fesm2020/theseam-ui-common-testing.mjs.map +1 -1
  591. package/fesm2020/theseam-ui-common-tiled-select.mjs +43 -46
  592. package/fesm2020/theseam-ui-common-tiled-select.mjs.map +1 -1
  593. package/fesm2020/theseam-ui-common-toggle-edit.mjs +32 -35
  594. package/fesm2020/theseam-ui-common-toggle-edit.mjs.map +1 -1
  595. package/fesm2020/theseam-ui-common-toggle-group.mjs +20 -20
  596. package/fesm2020/theseam-ui-common-toggle-group.mjs.map +1 -1
  597. package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs +16 -18
  598. package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
  599. package/fesm2020/theseam-ui-common-utils.mjs +36 -32
  600. package/fesm2020/theseam-ui-common-utils.mjs.map +1 -1
  601. package/fesm2020/theseam-ui-common-vertical-list-filter.mjs +87 -0
  602. package/fesm2020/theseam-ui-common-vertical-list-filter.mjs.map +1 -0
  603. package/fesm2020/theseam-ui-common-viewers.mjs +95 -93
  604. package/fesm2020/theseam-ui-common-viewers.mjs.map +1 -1
  605. package/fesm2020/theseam-ui-common-widget.mjs +182 -209
  606. package/fesm2020/theseam-ui-common-widget.mjs.map +1 -1
  607. package/footer-bar/footer-bar/footer-bar.component.d.ts +1 -4
  608. package/form-field-error/form-field-error/form-field-error.component.d.ts +1 -4
  609. package/form-field-error/form-field-error-list/form-field-error-list.component.d.ts +2 -3
  610. package/framework/base-layout/base-layout-action.d.ts +1 -1
  611. package/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.d.ts +2 -4
  612. package/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.d.ts +2 -3
  613. package/framework/dashboard/dashboard.component.d.ts +0 -1
  614. package/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.d.ts +2 -3
  615. package/framework/dynamic-router/resolvers/hierarchy-level.resolver.d.ts +0 -1
  616. package/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.d.ts +1 -1
  617. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.d.ts +2 -4
  618. package/framework/side-nav/side-nav.models.d.ts +1 -1
  619. package/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.d.ts +3 -5
  620. package/framework/top-bar/top-bar-title/top-bar-title.component.d.ts +1 -4
  621. package/framework/top-bar/top-bar.component.d.ts +2 -4
  622. package/google-maps/google-maps/google-maps.component.d.ts +3 -6
  623. package/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.d.ts +73 -0
  624. package/google-maps/google-maps-api-loader/noop-google-maps-api-loader.d.ts +13 -0
  625. package/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.d.ts +2 -3
  626. package/google-maps/map-value-manager.service.d.ts +1 -1
  627. package/google-maps/public-api.d.ts +3 -0
  628. package/graphql/datatable/datatable-graphql-query-ref.d.ts +2 -3
  629. package/graphql/datatable/datatable-graphql.service.d.ts +1 -1
  630. package/graphql/datatable/datatable-helpers.d.ts +2 -2
  631. package/graphql/datatable/map-filter-states.d.ts +2 -2
  632. package/graphql/datatable/map-page-info.d.ts +1 -1
  633. package/graphql/datatable/mapper-context.d.ts +1 -1
  634. package/graphql/models/gql-datatable-accessor.d.ts +1 -1
  635. package/graphql/models/hint-transformer.d.ts +1 -1
  636. package/icon/icon/icon.component.d.ts +1 -1
  637. package/icon/icon-btn/icon-btn.component.d.ts +2 -3
  638. package/icon/icon.d.ts +1 -1
  639. package/layout/breakpoint-aliases.d.ts +1 -1
  640. package/loading/loading/loading.component.d.ts +1 -4
  641. package/loading/loading.models.d.ts +1 -1
  642. package/menu/menu-item.component.d.ts +2 -3
  643. package/modal/modal/modal.component.d.ts +3 -4
  644. package/modal/modal-body/modal-body.component.d.ts +1 -4
  645. package/modal/modal-config.d.ts +1 -1
  646. package/modal/modal-footer/modal-footer.component.d.ts +1 -4
  647. package/modal/modal-header/modal-header.component.d.ts +1 -4
  648. package/modal/route-modal/route-modal.component.d.ts +2 -3
  649. package/models/component-type.d.ts +1 -1
  650. package/models/size-prefixes.d.ts +1 -1
  651. package/models/size-types.d.ts +1 -1
  652. package/models/theme-prefixes.d.ts +1 -1
  653. package/models/theme-types.d.ts +2 -2
  654. package/package.json +17 -1
  655. package/progress/progress-circle/progress-circle.component.d.ts +0 -1
  656. package/scrollbar/overlay-scrollbar.directive.d.ts +2 -3
  657. package/scrollbar/overlay-scrollbars-config-model.d.ts +1 -1
  658. package/services/asset-loader.service.d.ts +0 -1
  659. package/services/font-loader.service.d.ts +1 -2
  660. package/story-helpers/public-api.d.ts +0 -1
  661. package/tabbed/directives/tabbed-tab-content.directive.d.ts +0 -1
  662. package/tabbed/tabbed-content/tabbed-content.component.d.ts +1 -4
  663. package/tabbed/tabbed-item/tabbed-item.component.d.ts +2 -4
  664. package/tabbed/tabbed.service.d.ts +0 -1
  665. package/table/table/table.component.d.ts +3 -4
  666. package/table-cell-type/table-cell-type-models.d.ts +4 -4
  667. package/table-cell-type/table-cell-type-name.d.ts +1 -1
  668. package/table-cell-type/table-cell-type-selector.component.d.ts +3 -4
  669. package/table-cell-types/table-cell-type-currency/table-cell-type-currency-config.d.ts +1 -1
  670. package/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.d.ts +2 -3
  671. package/table-cell-types/table-cell-type-currency/table-cell-type-currency.d.ts +1 -1
  672. package/table-cell-types/table-cell-type-date/table-cell-type-date.component.d.ts +2 -3
  673. package/table-cell-types/table-cell-type-date/table-cell-type-date.d.ts +1 -1
  674. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal-config.d.ts +1 -1
  675. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.d.ts +2 -3
  676. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.d.ts +1 -1
  677. package/table-cell-types/table-cell-type-icon/table-cell-type-icon-config.d.ts +1 -1
  678. package/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.d.ts +3 -4
  679. package/table-cell-types/table-cell-type-integer/table-cell-type-integer-config.d.ts +1 -1
  680. package/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.d.ts +2 -3
  681. package/table-cell-types/table-cell-type-integer/table-cell-type-integer.d.ts +1 -1
  682. package/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.d.ts +2 -3
  683. package/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle-config.d.ts +1 -1
  684. package/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.d.ts +2 -3
  685. package/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon-config.d.ts +1 -1
  686. package/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.d.ts +2 -3
  687. package/table-cell-types/table-cell-type-string/table-cell-type-string-config.d.ts +1 -1
  688. package/table-cell-types/table-cell-type-string/table-cell-type-string.component.d.ts +1 -1
  689. package/tel-input/utils/coerce-phone-number-format.d.ts +1 -1
  690. package/tiled-select/components/tiled-select/tiled-select.component.d.ts +3 -4
  691. package/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.d.ts +1 -4
  692. package/tiled-select/tiled-select.models.d.ts +2 -2
  693. package/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.d.ts +1 -4
  694. package/toggle-group/toggle-group.directive.d.ts +0 -1
  695. package/unsaved-changes-dialog/unsaved-changes-dialog.component.d.ts +1 -4
  696. package/utils/obj-utils.d.ts +2 -2
  697. package/utils/polling-ticker.d.ts +1 -1
  698. package/utils/subscriber-count.d.ts +1 -1
  699. package/vertical-list-filter/index.d.ts +5 -0
  700. package/vertical-list-filter/public-api.d.ts +2 -0
  701. package/vertical-list-filter/testing/index.d.ts +1 -0
  702. package/vertical-list-filter/testing/vertical-list-filter.harness.d.ts +9 -0
  703. package/vertical-list-filter/vertical-list-filter.component.d.ts +17 -0
  704. package/widget/directives/widget-drag-handle.directive.d.ts +1 -1
  705. package/widget/widget-content-components/widget-button-group/widget-button-group.component.d.ts +1 -4
  706. package/widget/widget-content-components/widget-content-header/widget-content-header.component.d.ts +1 -4
  707. package/widget/widget-content-components/widget-empty-label/widget-empty-label.component.d.ts +2 -3
  708. package/widget/widget-content-components/widget-footer-link/widget-footer-link.component.d.ts +1 -4
  709. package/widget/widget-content-components/widget-footer-text/widget-footer-text.component.d.ts +1 -4
  710. package/widget/widget-content-components/widget-header-badge/widget-header-badge.component.d.ts +2 -3
  711. package/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.d.ts +4 -7
  712. package/widget/widget-content-components/widget-list-group/widget-list-group.component.d.ts +1 -4
  713. package/widget/widget-content-components/widget-table/widget-table.component.d.ts +0 -1
  714. package/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.d.ts +1 -4
  715. package/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.d.ts +2 -3
  716. package/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.d.ts +1 -4
  717. package/widget/widget-content-components/widget-tile-list/widget-tile-list.component.d.ts +1 -4
  718. package/widget/widget-footer/widget-footer.component.d.ts +1 -4
  719. package/esm2020/story-helpers/args-to-tpl.mjs +0 -72
  720. package/story-helpers/args-to-tpl.d.ts +0 -24
@@ -0,0 +1,211 @@
1
+ import { __decorate } from "tslib";
2
+ import { animate, style, transition, trigger } from '@angular/animations';
3
+ import { Component, ContentChildren, Input } from '@angular/core';
4
+ import { BehaviorSubject, combineLatest, interval, Subject } from 'rxjs';
5
+ import { filter, map, startWith, switchMap, take, takeUntil, tap } from 'rxjs/operators';
6
+ import { faAngleLeft, faAngleRight, faPause, faPlay } from '@fortawesome/free-solid-svg-icons';
7
+ import { InputBoolean, InputNumber } from '@theseam/ui-common/core';
8
+ import { notNullOrUndefined } from '@theseam/ui-common/utils';
9
+ import { TheSeamCarouselSlideDirective } from './carousel-slide.directive';
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "@angular/common";
12
+ import * as i2 from "@theseam/ui-common/icon";
13
+ import * as i3 from "@theseam/ui-common/buttons";
14
+ export class TheSeamCarouselComponent {
15
+ get slides() {
16
+ return this._slides.value;
17
+ }
18
+ set slides(value) {
19
+ // Check if slides were added or removed that would make the active index not exist.
20
+ const count = value?.length || 0;
21
+ const maxIdx = count >= 0 ? count - 1 : 0;
22
+ const activeIdx = this._pollActiveIndex.value;
23
+ if (activeIdx > maxIdx) {
24
+ this._pollActiveIndex.next(maxIdx);
25
+ }
26
+ else if (count > 0 && activeIdx < 0) {
27
+ this._pollActiveIndex.next(0);
28
+ }
29
+ this._slides.next(value);
30
+ }
31
+ constructor() {
32
+ this.faAngleRight = faAngleRight;
33
+ this.faAngleLeft = faAngleLeft;
34
+ this.faPause = faPause;
35
+ this.faPlay = faPlay;
36
+ /**
37
+ * Duration in ms that slide is displayed before paging.
38
+ * Only applicable when `autoPlay === true`.
39
+ * Defaults to 10000ms.
40
+ */
41
+ this.slideInterval = 10000;
42
+ /**
43
+ * When `true`, carousel will page automatically.
44
+ * Defaults to `true`.
45
+ */
46
+ this.autoPlay = true;
47
+ /**
48
+ * When `true`, will pause automatic paging when user mouses over carousel.
49
+ * Timer will restart when user mouses out.
50
+ * Only applicable when `autoPlay === true`.
51
+ * Defaults to `true`.
52
+ */
53
+ this.pauseOnHover = true;
54
+ /**
55
+ * When `true`, will pause automatic paging when user focuses in on item in carousel.
56
+ * Timer will restart when user focuses out.
57
+ * Only applicable when `autoPlay === true`.
58
+ * Defaults to `true`.
59
+ */
60
+ this.pauseOnFocus = true;
61
+ /**
62
+ * When `true`, will show pager row at the bottom of the carousel with clickable buttons to navigate directly to a page.
63
+ * Defaults to `true`.
64
+ */
65
+ this.showPager = true;
66
+ /**
67
+ * When `true`, will show left and right nav button on either side of the carousel to navigate through pages.
68
+ * Defaults to `true`.
69
+ */
70
+ this.showNavButtons = true;
71
+ /**
72
+ * When `true`, will show pause/play button to stop/restart automatic paging.
73
+ * Defaults to `true`.
74
+ */
75
+ this.showPauseButton = true;
76
+ this._slides = new BehaviorSubject(undefined);
77
+ this.slides$ = this._slides.asObservable();
78
+ this._pollActiveIndex = new BehaviorSubject(0);
79
+ this.activeIndex$ = this._pollActiveIndex.asObservable();
80
+ this._carouselPaused = new BehaviorSubject(false);
81
+ this.carouselPaused$ = this._carouselPaused.asObservable();
82
+ this._carouselStopped = new BehaviorSubject(false);
83
+ this.carouselStopped$ = this._carouselStopped.asObservable();
84
+ this._resetInterval = new Subject();
85
+ this.activeSlide$ = this._pollActiveIndex.pipe(startWith(0), switchMap(i => this.slides$.pipe(map(slides => slides?.get(i)))));
86
+ }
87
+ ngOnInit() {
88
+ combineLatest([this.carouselPaused$, this.carouselStopped$]).pipe(tap(([paused, stopped]) => {
89
+ if (paused || stopped) {
90
+ this._resetInterval.next(undefined);
91
+ }
92
+ else {
93
+ this._startInterval();
94
+ }
95
+ })).subscribe();
96
+ }
97
+ ngOnDestroy() {
98
+ this._resetInterval.next(undefined);
99
+ this._resetInterval.complete();
100
+ }
101
+ _startInterval() {
102
+ if (this.autoPlay) {
103
+ interval(this.slideInterval).pipe(takeUntil(this._resetInterval), tap(() => {
104
+ this.pageCarousel(1);
105
+ })).subscribe();
106
+ }
107
+ }
108
+ focusIn() {
109
+ if (this.pauseOnFocus) {
110
+ this.pauseTimer();
111
+ }
112
+ }
113
+ focusOut() {
114
+ if (this.pauseOnFocus) {
115
+ this.startTimer();
116
+ }
117
+ }
118
+ mouseEnter() {
119
+ if (this.pauseOnHover) {
120
+ this.pauseTimer();
121
+ }
122
+ }
123
+ mouseLeave() {
124
+ if (this.pauseOnHover) {
125
+ this.startTimer();
126
+ }
127
+ }
128
+ pauseTimer() {
129
+ this._carouselPaused.next(true);
130
+ }
131
+ startTimer() {
132
+ if (!this._carouselStopped.value) {
133
+ this._carouselPaused.next(false);
134
+ }
135
+ }
136
+ setCarousel(i) {
137
+ this._pollActiveIndex.next(i);
138
+ }
139
+ pageCarousel(step) {
140
+ this.slides$.pipe(take(1), filter(slides => notNullOrUndefined(slides)), map(slides => {
141
+ const slidesLen = slides?.length || 1;
142
+ let index = this._pollActiveIndex.value;
143
+ index = index + step;
144
+ index = index < 0 ? slidesLen + index : index % slidesLen;
145
+ this._pollActiveIndex.next(index);
146
+ })).subscribe();
147
+ }
148
+ toggleCarouselStop() {
149
+ const carouselStopped = this._carouselStopped.value;
150
+ this._carouselStopped.next(!carouselStopped);
151
+ }
152
+ }
153
+ TheSeamCarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamCarouselComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
154
+ TheSeamCarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TheSeamCarouselComponent, selector: "seam-carousel", inputs: { slideInterval: "slideInterval", autoPlay: "autoPlay", pauseOnHover: "pauseOnHover", pauseOnFocus: "pauseOnFocus", showPager: "showPager", showNavButtons: "showNavButtons", showPauseButton: "showPauseButton" }, queries: [{ propertyName: "slides", predicate: TheSeamCarouselSlideDirective }], exportAs: ["seamCarousel"], ngImport: i0, template: "<ng-container *ngIf=\"slides$ | async as slides\">\n <div class=\"position-relative\"\n *ngIf=\"slides.length\"\n (focusin)=\"focusIn()\"\n (mouseenter)=\"mouseEnter()\"\n (focusout)=\"focusOut()\"\n (mouseleave)=\"mouseLeave()\">\n\n <div class=\"d-flex\" style=\"min-height: 150px;\">\n <button\n *ngIf=\"showNavButtons && slides.length > 1\"\n seamButton\n class=\"carousel-arrow px-2\"\n (click)=\"pageCarousel(-1)\"\n title=\"Go to previous slide\">\n <seam-icon [icon]=\"faAngleLeft\"></seam-icon>\n </button>\n\n <div *ngIf=\"activeSlide$ | async as slide\" [@fadeInOut]=\"slide.template\" class=\"flex-grow-1 d-flex align-items-center\">\n <div class=\"carousel-content w-100 py-1 px-2\" [attr.data-slide-index]=\"activeIndex$ | async\">\n <ng-template [ngTemplateOutlet]=\"$any(slide.template)\"></ng-template>\n </div>\n </div>\n\n <button\n *ngIf=\"showNavButtons && slides.length > 1\"\n seamButton\n class=\"carousel-arrow px-2\"\n (click)=\"pageCarousel(1)\"\n title=\"Go to next slide\">\n <seam-icon [icon]=\"faAngleRight\"></seam-icon>\n </button>\n </div>\n\n <div class=\"carousel-pages d-flex flex-wrap justify-content-center mt-3 mx-auto\" *ngIf=\"showPager && slides.length > 1\">\n <button\n *ngFor=\"let q of slides; let i = index\"\n seamButton\n theme=\"light\"\n class=\"carousel-page\"\n [class.active]=\"(activeIndex$ | async) == i\"\n (click)=\"setCarousel(i)\"\n [title]=\"'Go to slide ' + (i + 1)\"></button>\n </div>\n\n <div class=\"carousel-controls\" *ngIf=\"showPauseButton && autoPlay\">\n <button\n *ngIf=\"slides.length > 1\"\n seamButton\n (click)=\"toggleCarouselStop()\"\n [title]=\"(carouselStopped$ | async) ? 'Play' : 'Pause'\">\n <seam-icon [icon]=\"faPlay\" *ngIf=\"carouselStopped$ | async; else pauseButton\"></seam-icon>\n <ng-template #pauseButton>\n <seam-icon [icon]=\"faPause\"></seam-icon>\n </ng-template>\n </button>\n </div>\n\n </div>\n</ng-container>\n", styles: [":host{display:block}:host .carousel-arrow{color:#adb5bd}:host .carousel-pages{max-width:calc(100% - 40px)}:host .carousel-pages .carousel-page{padding:4px;border-radius:50%;margin:1px 3px}:host .carousel-controls{position:absolute;right:-5px;bottom:5px;opacity:0;transition:.3s ease}:host .carousel-controls button{font-size:12px;color:#adb5bd;width:20px;height:20px;padding:2px!important}:host:hover .carousel-controls{opacity:1}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], animations: [
155
+ trigger('fadeInOut', [
156
+ transition('* => *', [
157
+ style({ opacity: '0', height: '*' }),
158
+ animate(250, style({ opacity: '1', height: '*' })),
159
+ ]),
160
+ ])
161
+ ] });
162
+ __decorate([
163
+ InputNumber(10000)
164
+ ], TheSeamCarouselComponent.prototype, "slideInterval", void 0);
165
+ __decorate([
166
+ InputBoolean()
167
+ ], TheSeamCarouselComponent.prototype, "autoPlay", void 0);
168
+ __decorate([
169
+ InputBoolean()
170
+ ], TheSeamCarouselComponent.prototype, "pauseOnHover", void 0);
171
+ __decorate([
172
+ InputBoolean()
173
+ ], TheSeamCarouselComponent.prototype, "pauseOnFocus", void 0);
174
+ __decorate([
175
+ InputBoolean()
176
+ ], TheSeamCarouselComponent.prototype, "showPager", void 0);
177
+ __decorate([
178
+ InputBoolean()
179
+ ], TheSeamCarouselComponent.prototype, "showNavButtons", void 0);
180
+ __decorate([
181
+ InputBoolean()
182
+ ], TheSeamCarouselComponent.prototype, "showPauseButton", void 0);
183
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamCarouselComponent, decorators: [{
184
+ type: Component,
185
+ args: [{ selector: 'seam-carousel', animations: [
186
+ trigger('fadeInOut', [
187
+ transition('* => *', [
188
+ style({ opacity: '0', height: '*' }),
189
+ animate(250, style({ opacity: '1', height: '*' })),
190
+ ]),
191
+ ])
192
+ ], exportAs: 'seamCarousel', template: "<ng-container *ngIf=\"slides$ | async as slides\">\n <div class=\"position-relative\"\n *ngIf=\"slides.length\"\n (focusin)=\"focusIn()\"\n (mouseenter)=\"mouseEnter()\"\n (focusout)=\"focusOut()\"\n (mouseleave)=\"mouseLeave()\">\n\n <div class=\"d-flex\" style=\"min-height: 150px;\">\n <button\n *ngIf=\"showNavButtons && slides.length > 1\"\n seamButton\n class=\"carousel-arrow px-2\"\n (click)=\"pageCarousel(-1)\"\n title=\"Go to previous slide\">\n <seam-icon [icon]=\"faAngleLeft\"></seam-icon>\n </button>\n\n <div *ngIf=\"activeSlide$ | async as slide\" [@fadeInOut]=\"slide.template\" class=\"flex-grow-1 d-flex align-items-center\">\n <div class=\"carousel-content w-100 py-1 px-2\" [attr.data-slide-index]=\"activeIndex$ | async\">\n <ng-template [ngTemplateOutlet]=\"$any(slide.template)\"></ng-template>\n </div>\n </div>\n\n <button\n *ngIf=\"showNavButtons && slides.length > 1\"\n seamButton\n class=\"carousel-arrow px-2\"\n (click)=\"pageCarousel(1)\"\n title=\"Go to next slide\">\n <seam-icon [icon]=\"faAngleRight\"></seam-icon>\n </button>\n </div>\n\n <div class=\"carousel-pages d-flex flex-wrap justify-content-center mt-3 mx-auto\" *ngIf=\"showPager && slides.length > 1\">\n <button\n *ngFor=\"let q of slides; let i = index\"\n seamButton\n theme=\"light\"\n class=\"carousel-page\"\n [class.active]=\"(activeIndex$ | async) == i\"\n (click)=\"setCarousel(i)\"\n [title]=\"'Go to slide ' + (i + 1)\"></button>\n </div>\n\n <div class=\"carousel-controls\" *ngIf=\"showPauseButton && autoPlay\">\n <button\n *ngIf=\"slides.length > 1\"\n seamButton\n (click)=\"toggleCarouselStop()\"\n [title]=\"(carouselStopped$ | async) ? 'Play' : 'Pause'\">\n <seam-icon [icon]=\"faPlay\" *ngIf=\"carouselStopped$ | async; else pauseButton\"></seam-icon>\n <ng-template #pauseButton>\n <seam-icon [icon]=\"faPause\"></seam-icon>\n </ng-template>\n </button>\n </div>\n\n </div>\n</ng-container>\n", styles: [":host{display:block}:host .carousel-arrow{color:#adb5bd}:host .carousel-pages{max-width:calc(100% - 40px)}:host .carousel-pages .carousel-page{padding:4px;border-radius:50%;margin:1px 3px}:host .carousel-controls{position:absolute;right:-5px;bottom:5px;opacity:0;transition:.3s ease}:host .carousel-controls button{font-size:12px;color:#adb5bd;width:20px;height:20px;padding:2px!important}:host:hover .carousel-controls{opacity:1}\n"] }]
193
+ }], ctorParameters: function () { return []; }, propDecorators: { slideInterval: [{
194
+ type: Input
195
+ }], autoPlay: [{
196
+ type: Input
197
+ }], pauseOnHover: [{
198
+ type: Input
199
+ }], pauseOnFocus: [{
200
+ type: Input
201
+ }], showPager: [{
202
+ type: Input
203
+ }], showNavButtons: [{
204
+ type: Input
205
+ }], showPauseButton: [{
206
+ type: Input
207
+ }], slides: [{
208
+ type: ContentChildren,
209
+ args: [TheSeamCarouselSlideDirective]
210
+ }] } });
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2Nhcm91c2VsL2Nhcm91c2VsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9jYXJvdXNlbC9jYXJvdXNlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxlQUFlLENBQUE7QUFFL0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNwRixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFeEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQzlGLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFN0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNEJBQTRCLENBQUE7Ozs7O0FBZ0IxRSxNQUFNLE9BQU8sd0JBQXdCO0lBNkRuQyxJQUNJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFBO0lBQzNCLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxLQUEyRDtRQUNwRSxvRkFBb0Y7UUFDcEYsTUFBTSxLQUFL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cnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBOdW1iZXJJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbidcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgaW50ZXJ2YWwsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBmYUFuZ2xlTGVmdCwgZmFBbmdsZVJpZ2h0LCBmYVBhdXNlLCBmYVBsYXkgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnXG5pbXBvcnQgeyBJbnB1dEJvb2xlYW4sIElucHV0TnVtYmVyIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2NvcmUnXG5pbXBvcnQgeyBub3ROdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXG5cbmltcG9ydCB7IFRoZVNlYW1DYXJvdXNlbFNsaWRlRGlyZWN0aXZlIH0gZnJvbSAnLi9jYXJvdXNlbC1zbGlkZS5kaXJlY3RpdmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0tY2Fyb3VzZWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jYXJvdXNlbC5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignZmFkZUluT3V0JywgW1xuICAgICAgdHJhbnNpdGlvbignKiA9PiAqJywgW1xuICAgICAgICBzdHlsZSh7IG9wYWNpdHk6ICcwJywgaGVpZ2h0OiAnKicgfSksXG4gICAgICAgIGFuaW1hdGUoMjUwLCBzdHlsZSh7IG9wYWNpdHk6ICcxJywgaGVpZ2h0OiAnKicgfSkpLFxuICAgICAgXSksXG4gICAgXSlcbiAgXSxcbiAgZXhwb3J0QXM6ICdzZWFtQ2Fyb3VzZWwnLFxufSlcbmV4cG9ydCBjbGFzcyBUaGVTZWFtQ2Fyb3VzZWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zbGlkZUludGVydmFsOiBOdW1iZXJJbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfYXV0b1BsYXk6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfcGF1c2VPbkhvdmVyOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX3BhdXNlT25Gb2N1czogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zaG93UGFnZXI6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfc2hvd05hdkJ1dHRvbnM6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfc2hvd1BhdXNlQnV0dG9uOiBCb29sZWFuSW5wdXRcblxuICByZWFkb25seSBmYUFuZ2xlUmlnaHQgPSBmYUFuZ2xlUmlnaHRcbiAgcmVhZG9ubHkgZmFBbmdsZUxlZnQgPSBmYUFuZ2xlTGVmdFxuICByZWFkb25seSBmYVBhdXNlID0gZmFQYXVzZVxuICByZWFkb25seSBmYVBsYXkgPSBmYVBsYXlcblxuICAvKipcbiAgICogRHVyYXRpb24gaW4gbXMgdGhhdCBzbGlkZSBpcyBkaXNwbGF5ZWQgYmVmb3JlIHBhZ2luZy5cbiAgICogT25seSBhcHBsaWNhYmxlIHdoZW4gYGF1dG9QbGF5ID09PSB0cnVlYC5cbiAgICogRGVmYXVsdHMgdG8gMTAwMDBtcy5cbiAgICovXG4gIEBJbnB1dCgpIEBJbnB1dE51bWJlcigxMDAwMCkgc2xpZGVJbnRlcnZhbCA9IDEwMDAwXG5cbiAgLyoqXG4gICAqIFdoZW4gYHRydWVgLCBjYXJvdXNlbCB3aWxsIHBhZ2UgYXV0b21hdGljYWxseS5cbiAgICogRGVmYXVsdHMgdG8gYHRydWVgLlxuICAgKi9cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGF1dG9QbGF5ID0gdHJ1ZVxuXG4gIC8qKlxuICAgKiBXaGVuIGB0cnVlYCwgd2lsbCBwYXVzZSBhdXRvbWF0aWMgcGFnaW5nIHdoZW4gdXNlciBtb3VzZXMgb3ZlciBjYXJvdXNlbC5cbiAgICogVGltZXIgd2lsbCByZXN0YXJ0IHdoZW4gdXNlciBtb3VzZXMgb3V0LlxuICAgKiBPbmx5IGFwcGxpY2FibGUgd2hlbiBgYXV0b1BsYXkgPT09IHRydWVgLlxuICAgKiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgcGF1c2VPbkhvdmVyID0gdHJ1ZVxuXG4gIC8qKlxuICAgKiBXaGVuIGB0cnVlYCwgd2lsbCBwYXVzZSBhdXRvbWF0aWMgcGFnaW5nIHdoZW4gdXNlciBmb2N1c2VzIGluIG9uIGl0ZW0gaW4gY2Fyb3VzZWwuXG4gICAqIFRpbWVyIHdpbGwgcmVzdGFydCB3aGVuIHVzZXIgZm9jdXNlcyBvdXQuXG4gICAqIE9ubHkgYXBwbGljYWJsZSB3aGVuIGBhdXRvUGxheSA9PT0gdHJ1ZWAuXG4gICAqIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICovXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBwYXVzZU9uRm9jdXMgPSB0cnVlXG5cbiAgLyoqXG4gICAqIFdoZW4gYHRydWVgLCB3aWxsIHNob3cgcGFnZXIgcm93IGF0IHRoZSBib3R0b20gb2YgdGhlIGNhcm91c2VsIHdpdGggY2xpY2thYmxlIGJ1dHRvbnMgdG8gbmF2aWdhdGUgZGlyZWN0bHkgdG8gYSBwYWdlLlxuICAgKiBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqL1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgc2hvd1BhZ2VyID0gdHJ1ZVxuXG4gIC8qKlxuICAgKiBXaGVuIGB0cnVlYCwgd2lsbCBzaG93IGxlZnQgYW5kIHJpZ2h0IG5hdiBidXR0b24gb24gZWl0aGVyIHNpZGUgb2YgdGhlIGNhcm91c2VsIHRvIG5hdmlnYXRlIHRocm91Z2ggcGFnZXMuXG4gICAqIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICovXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBzaG93TmF2QnV0dG9ucyA9IHRydWVcblxuICAvKipcbiAgICogV2hlbiBgdHJ1ZWAsIHdpbGwgc2hvdyBwYXVzZS9wbGF5IGJ1dHRvbiB0byBzdG9wL3Jlc3RhcnQgYXV0b21hdGljIHBhZ2luZy5cbiAgICogRGVmYXVsdHMgdG8gYHRydWVgLlxuICAgKi9cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHNob3dQYXVzZUJ1dHRvbiA9IHRydWVcblxuICBAQ29udGVudENoaWxkcmVuKFRoZVNlYW1DYXJvdXNlbFNsaWRlRGlyZWN0aXZlKVxuICBnZXQgc2xpZGVzKCk6IFF1ZXJ5TGlzdDxUaGVTZWFtQ2Fyb3VzZWxTbGlkZURpcmVjdGl2ZT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9zbGlkZXMudmFsdWVcbiAgfVxuICBzZXQgc2xpZGVzKHZhbHVlOiBRdWVyeUxpc3Q8VGhlU2VhbUNhcm91c2VsU2xpZGVEaXJlY3RpdmU+IHwgdW5kZWZpbmVkKSB7XG4gICAgLy8gQ2hlY2sgaWYgc2xpZGVzIHdlcmUgYWRkZWQgb3IgcmVtb3ZlZCB0aGF0IHdvdWxkIG1ha2UgdGhlIGFjdGl2ZSBpbmRleCBub3QgZXhpc3QuXG4gICAgY29uc3QgY291bnQgPSB2YWx1ZT8ubGVuZ3RoIHx8IDBcbiAgICBjb25zdCBtYXhJZHggPSBjb3VudCA+PSAwID8gY291bnQgLSAxIDogMFxuICAgIGNvbnN0IGFjdGl2ZUlkeCA9IHRoaXMuX3BvbGxBY3RpdmVJbmRleC52YWx1ZVxuICAgIGlmIChhY3RpdmVJZHggPiBtYXhJZHgpIHtcbiAgICAgIHRoaXMuX3BvbGxBY3RpdmVJbmRleC5uZXh0KG1heElkeClcbiAgICB9IGVsc2UgaWYgKGNvdW50ID4gMCAmJiBhY3RpdmVJZHggPCAwKSB7XG4gICAgICB0aGlzLl9wb2xsQWN0aXZlSW5kZXgubmV4dCgwKVxuICAgIH1cblxuICAgIHRoaXMuX3NsaWRlcy5uZXh0KHZhbHVlKVxuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NsaWRlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UXVlcnlMaXN0PFRoZVNlYW1DYXJvdXNlbFNsaWRlRGlyZWN0aXZlPiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuICBwdWJsaWMgcmVhZG9ubHkgc2xpZGVzJCA9IHRoaXMuX3NsaWRlcy5hc09ic2VydmFibGUoKVxuXG4gIHB1YmxpYyByZWFkb25seSBhY3RpdmVTbGlkZSQ6IE9ic2VydmFibGU8YW55IHwgdW5kZWZpbmVkPlxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3BvbGxBY3RpdmVJbmRleCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKVxuICBwdWJsaWMgcmVhZG9ubHkgYWN0aXZlSW5kZXgkID0gdGhpcy5fcG9sbEFjdGl2ZUluZGV4LmFzT2JzZXJ2YWJsZSgpXG5cbiAgcHJpdmF0ZSByZWFkb25seSBfY2Fyb3VzZWxQYXVzZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKVxuICBwdWJsaWMgcmVhZG9ubHkgY2Fyb3VzZWxQYXVzZWQkID0gdGhpcy5fY2Fyb3VzZWxQYXVzZWQuYXNPYnNlcnZhYmxlKClcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jYXJvdXNlbFN0b3BwZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKVxuICBwdWJsaWMgcmVhZG9ubHkgY2Fyb3VzZWxTdG9wcGVkJCA9IHRoaXMuX2Nhcm91c2VsU3RvcHBlZC5hc09ic2VydmFibGUoKVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Jlc2V0SW50ZXJ2YWwgPSBuZXcgU3ViamVjdDx2b2lkPigpXG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5hY3RpdmVTbGlkZSQgPSB0aGlzLl9wb2xsQWN0aXZlSW5kZXgucGlwZShcbiAgICAgIHN0YXJ0V2l0aCgwKSxcbiAgICAgIHN3aXRjaE1hcChpID0+IHRoaXMuc2xpZGVzJC5waXBlKFxuICAgICAgICBtYXAoc2xpZGVzID0+IHNsaWRlcz8uZ2V0KGkpKSxcbiAgICAgICkpXG4gICAgKVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5jYXJvdXNlbFBhdXNlZCQsIHRoaXMuY2Fyb3VzZWxTdG9wcGVkJF0pLnBpcGUoXG4gICAgICB0YXAoKFtwYXVzZWQsIHN0b3BwZWRdKSA9PiB7XG4gICAgICAgIGlmIChwYXVzZWQgfHwgc3RvcHBlZCkge1xuICAgICAgICAgIHRoaXMuX3Jlc2V0SW50ZXJ2YWwubmV4dCh1bmRlZmluZWQpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fc3RhcnRJbnRlcnZhbCgpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKS5zdWJzY3JpYmUoKVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzZXRJbnRlcnZhbC5uZXh0KHVuZGVmaW5lZClcbiAgICB0aGlzLl9yZXNldEludGVydmFsLmNvbXBsZXRlKClcbiAgfVxuXG4gIHByaXZhdGUgX3N0YXJ0SW50ZXJ2YWwoKSB7XG4gICAgaWYgKHRoaXMuYXV0b1BsYXkpIHtcbiAgICAgIGludGVydmFsKHRoaXMuc2xpZGVJbnRlcnZhbCkucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX3Jlc2V0SW50ZXJ2YWwpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucGFnZUNhcm91c2VsKDEpXG4gICAgICAgIH0pXG4gICAgICApLnN1YnNjcmliZSgpXG4gICAgfVxuICB9XG5cbiAgZm9jdXNJbigpIHtcbiAgICBpZiAodGhpcy5wYXVzZU9uRm9jdXMpIHtcbiAgICAgIHRoaXMucGF1c2VUaW1lcigpXG4gICAgfVxuICB9XG5cbiAgZm9jdXNPdXQoKSB7XG4gICAgaWYgKHRoaXMucGF1c2VPbkZvY3VzKSB7XG4gICAgICB0aGlzLnN0YXJ0VGltZXIoKVxuICAgIH1cbiAgfVxuXG4gIG1vdXNlRW50ZXIoKSB7XG4gICAgaWYgKHRoaXMucGF1c2VPbkhvdmVyKSB7XG4gICAgICB0aGlzLnBhdXNlVGltZXIoKVxuICAgIH1cbiAgfVxuXG4gIG1vdXNlTGVhdmUoKSB7XG4gICAgaWYgKHRoaXMucGF1c2VPbkhvdmVyKSB7XG4gICAgICB0aGlzLnN0YXJ0VGltZXIoKVxuICAgIH1cbiAgfVxuXG4gIHBhdXNlVGltZXIoKSB7XG4gICAgdGhpcy5fY2Fyb3VzZWxQYXVzZWQubmV4dCh0cnVlKVxuICB9XG5cbiAgc3RhcnRUaW1lcigpIHtcbiAgICBpZiAoIXRoaXMuX2Nhcm91c2VsU3RvcHBlZC52YWx1ZSkge1xuICAgICAgdGhpcy5fY2Fyb3VzZWxQYXVzZWQubmV4dChmYWxzZSlcbiAgICB9XG4gIH1cblxuICBzZXRDYXJvdXNlbChpOiBudW1iZXIpIHtcbiAgICB0aGlzLl9wb2xsQWN0aXZlSW5kZXgubmV4dChpKVxuICB9XG5cbiAgcGFnZUNhcm91c2VsKHN0ZXA6IG51bWJlcikge1xuICAgIHRoaXMuc2xpZGVzJC5waXBlKFxuICAgICAgdGFrZSgxKSxcbiAgICAgIGZpbHRlcihzbGlkZXMgPT4gbm90TnVsbE9yVW5kZWZpbmVkKHNsaWRlcykpLFxuICAgICAgbWFwKHNsaWRlcyA9PiB7XG4gICAgICAgIGNvbnN0IHNsaWRlc0xlbiA9IHNsaWRlcz8ubGVuZ3RoIHx8IDFcbiAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5fcG9sbEFjdGl2ZUluZGV4LnZhbHVlXG4gICAgICAgIGluZGV4ID0gaW5kZXggKyBzdGVwXG4gICAgICAgIGluZGV4ID0gaW5kZXggPCAwID8gc2xpZGVzTGVuICsgaW5kZXggOiBpbmRleCAlIHNsaWRlc0xlblxuICAgICAgICB0aGlzLl9wb2xsQWN0aXZlSW5kZXgubmV4dChpbmRleClcbiAgICAgIH0pXG4gICAgKS5zdWJzY3JpYmUoKVxuICB9XG5cbiAgdG9nZ2xlQ2Fyb3VzZWxTdG9wKCkge1xuICAgIGNvbnN0IGNhcm91c2VsU3RvcHBlZCA9IHRoaXMuX2Nhcm91c2VsU3RvcHBlZC52YWx1ZVxuICAgIHRoaXMuX2Nhcm91c2VsU3RvcHBlZC5uZXh0KCFjYXJvdXNlbFN0b3BwZWQpXG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJzbGlkZXMkIHwgYXN5bmMgYXMgc2xpZGVzXCI+XG4gIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiXG4gICAgKm5nSWY9XCJzbGlkZXMubGVuZ3RoXCJcbiAgICAoZm9jdXNpbik9XCJmb2N1c0luKClcIlxuICAgIChtb3VzZWVudGVyKT1cIm1vdXNlRW50ZXIoKVwiXG4gICAgKGZvY3Vzb3V0KT1cImZvY3VzT3V0KClcIlxuICAgIChtb3VzZWxlYXZlKT1cIm1vdXNlTGVhdmUoKVwiPlxuXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleFwiIHN0eWxlPVwibWluLWhlaWdodDogMTUwcHg7XCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwic2hvd05hdkJ1dHRvbnMgJiYgc2xpZGVzLmxlbmd0aCA+IDFcIlxuICAgICAgICBzZWFtQnV0dG9uXG4gICAgICAgIGNsYXNzPVwiY2Fyb3VzZWwtYXJyb3cgcHgtMlwiXG4gICAgICAgIChjbGljayk9XCJwYWdlQ2Fyb3VzZWwoLTEpXCJcbiAgICAgICAgdGl0bGU9XCJHbyB0byBwcmV2aW91cyBzbGlkZVwiPlxuICAgICAgICA8c2VhbS1pY29uIFtpY29uXT1cImZhQW5nbGVMZWZ0XCI+PC9zZWFtLWljb24+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPGRpdiAqbmdJZj1cImFjdGl2ZVNsaWRlJCB8IGFzeW5jIGFzIHNsaWRlXCIgW0BmYWRlSW5PdXRdPVwic2xpZGUudGVtcGxhdGVcIiBjbGFzcz1cImZsZXgtZ3Jvdy0xIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWNvbnRlbnQgdy0xMDAgcHktMSBweC0yXCIgW2F0dHIuZGF0YS1zbGlkZS1pbmRleF09XCJhY3RpdmVJbmRleCQgfCBhc3luY1wiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KHNsaWRlLnRlbXBsYXRlKVwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJzaG93TmF2QnV0dG9ucyAmJiBzbGlkZXMubGVuZ3RoID4gMVwiXG4gICAgICAgIHNlYW1CdXR0b25cbiAgICAgICAgY2xhc3M9XCJjYXJvdXNlbC1hcnJvdyBweC0yXCJcbiAgICAgICAgKGNsaWNrKT1cInBhZ2VDYXJvdXNlbCgxKVwiXG4gICAgICAgIHRpdGxlPVwiR28gdG8gbmV4dCBzbGlkZVwiPlxuICAgICAgICA8c2VhbS1pY29uIFtpY29uXT1cImZhQW5nbGVSaWdodFwiPjwvc2VhbS1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtcGFnZXMgZC1mbGV4IGZsZXgtd3JhcCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIG10LTMgbXgtYXV0b1wiICpuZ0lmPVwic2hvd1BhZ2VyICYmIHNsaWRlcy5sZW5ndGggPiAxXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0Zvcj1cImxldCBxIG9mIHNsaWRlczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIHNlYW1CdXR0b25cbiAgICAgICAgdGhlbWU9XCJsaWdodFwiXG4gICAgICAgIGNsYXNzPVwiY2Fyb3VzZWwtcGFnZVwiXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiKGFjdGl2ZUluZGV4JCB8IGFzeW5jKSA9PSBpXCJcbiAgICAgICAgKGNsaWNrKT1cInNldENhcm91c2VsKGkpXCJcbiAgICAgICAgW3RpdGxlXT1cIidHbyB0byBzbGlkZSAnICsgKGkgKyAxKVwiPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWNvbnRyb2xzXCIgKm5nSWY9XCJzaG93UGF1c2VCdXR0b24gJiYgYXV0b1BsYXlcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJzbGlkZXMubGVuZ3RoID4gMVwiXG4gICAgICAgIHNlYW1CdXR0b25cbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNhcm91c2VsU3RvcCgpXCJcbiAgICAgICAgW3RpdGxlXT1cIihjYXJvdXNlbFN0b3BwZWQkIHwgYXN5bmMpID8gJ1BsYXknIDogJ1BhdXNlJ1wiPlxuICAgICAgICA8c2VhbS1pY29uIFtpY29uXT1cImZhUGxheVwiICpuZ0lmPVwiY2Fyb3VzZWxTdG9wcGVkJCB8IGFzeW5jOyBlbHNlIHBhdXNlQnV0dG9uXCI+PC9zZWFtLWljb24+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjcGF1c2VCdXR0b24+XG4gICAgICAgICAgPHNlYW0taWNvbiBbaWNvbl09XCJmYVBhdXNlXCI+PC9zZWFtLWljb24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -0,0 +1,38 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { TheSeamButtonsModule } from '@theseam/ui-common/buttons';
4
+ import { TheSeamIconModule } from '@theseam/ui-common/icon';
5
+ import { TheSeamCarouselSlideDirective } from './carousel-slide.directive';
6
+ import { TheSeamCarouselComponent } from './carousel.component';
7
+ import * as i0 from "@angular/core";
8
+ export class TheSeamCarouselModule {
9
+ }
10
+ TheSeamCarouselModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamCarouselModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ TheSeamCarouselModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: TheSeamCarouselModule, declarations: [TheSeamCarouselComponent,
12
+ TheSeamCarouselSlideDirective], imports: [CommonModule,
13
+ TheSeamIconModule,
14
+ TheSeamButtonsModule], exports: [TheSeamCarouselComponent,
15
+ TheSeamCarouselSlideDirective] });
16
+ TheSeamCarouselModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamCarouselModule, imports: [CommonModule,
17
+ TheSeamIconModule,
18
+ TheSeamButtonsModule] });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamCarouselModule, decorators: [{
20
+ type: NgModule,
21
+ args: [{
22
+ declarations: [
23
+ TheSeamCarouselComponent,
24
+ TheSeamCarouselSlideDirective
25
+ ],
26
+ imports: [
27
+ CommonModule,
28
+ TheSeamIconModule,
29
+ TheSeamButtonsModule,
30
+ ],
31
+ exports: [
32
+ TheSeamCarouselComponent,
33
+ TheSeamCarouselSlideDirective
34
+ ],
35
+ providers: []
36
+ }]
37
+ }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2Nhcm91c2VsL2Nhcm91c2VsLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUV4QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUUzRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQTtBQUMxRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTs7QUFrQi9ELE1BQU0sT0FBTyxxQkFBcUI7O2tIQUFyQixxQkFBcUI7bUhBQXJCLHFCQUFxQixpQkFkOUIsd0JBQXdCO1FBQ3hCLDZCQUE2QixhQUc3QixZQUFZO1FBQ1osaUJBQWlCO1FBQ2pCLG9CQUFvQixhQUdwQix3QkFBd0I7UUFDeEIsNkJBQTZCO21IQUlwQixxQkFBcUIsWUFWOUIsWUFBWTtRQUNaLGlCQUFpQjtRQUNqQixvQkFBb0I7MkZBUVgscUJBQXFCO2tCQWhCakMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osd0JBQXdCO3dCQUN4Qiw2QkFBNkI7cUJBQzlCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsb0JBQW9CO3FCQUNyQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asd0JBQXdCO3dCQUN4Qiw2QkFBNkI7cUJBQzlCO29CQUNELFNBQVMsRUFBRSxFQUFFO2lCQUNkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5pbXBvcnQgeyBUaGVTZWFtQnV0dG9uc01vZHVsZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9idXR0b25zJ1xuaW1wb3J0IHsgVGhlU2VhbUljb25Nb2R1bGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vaWNvbidcblxuaW1wb3J0IHsgVGhlU2VhbUNhcm91c2VsU2xpZGVEaXJlY3RpdmUgfSBmcm9tICcuL2Nhcm91c2VsLXNsaWRlLmRpcmVjdGl2ZSdcbmltcG9ydCB7IFRoZVNlYW1DYXJvdXNlbENvbXBvbmVudCB9IGZyb20gJy4vY2Fyb3VzZWwuY29tcG9uZW50J1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBUaGVTZWFtQ2Fyb3VzZWxDb21wb25lbnQsXG4gICAgVGhlU2VhbUNhcm91c2VsU2xpZGVEaXJlY3RpdmVcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUaGVTZWFtSWNvbk1vZHVsZSxcbiAgICBUaGVTZWFtQnV0dG9uc01vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFRoZVNlYW1DYXJvdXNlbENvbXBvbmVudCxcbiAgICBUaGVTZWFtQ2Fyb3VzZWxTbGlkZURpcmVjdGl2ZVxuICBdLFxuICBwcm92aWRlcnM6IFtdXG59KVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1DYXJvdXNlbE1vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './carousel-slide.directive';
2
+ export * from './carousel.component';
3
+ export * from './carousel.module';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9jYXJvdXNlbC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEJBQTRCLENBQUE7QUFDMUMsY0FBYyxzQkFBc0IsQ0FBQTtBQUNwQyxjQUFjLG1CQUFtQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYXJvdXNlbC1zbGlkZS5kaXJlY3RpdmUnXG5leHBvcnQgKiBmcm9tICcuL2Nhcm91c2VsLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vY2Fyb3VzZWwubW9kdWxlJ1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlc2VhbS11aS1jb21tb24tY2Fyb3VzZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vY2Fyb3VzZWwvdGhlc2VhbS11aS1jb21tb24tY2Fyb3VzZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -33,6 +33,45 @@ let _uid = 0;
33
33
  * A Checkbox.
34
34
  */
35
35
  export class TheSeamCheckboxComponent extends _TheSeamCheckboxMixinBase {
36
+ /** Returns the unique id for the input. */
37
+ get inputId() { return `${this.id || this._uid}`; }
38
+ /** Whether the checkbox is checked. */
39
+ get checked() { return this._checked; }
40
+ set checked(value) {
41
+ const newValue = coerceBooleanProperty(value);
42
+ if (newValue !== this.checked) {
43
+ this._checked = newValue;
44
+ this._changeDetectorRef.markForCheck();
45
+ }
46
+ }
47
+ /**
48
+ * Whether the checkbox is disabled.
49
+ */
50
+ // This fully overrides the implementation provided by mixinDisabled, but the
51
+ // mixin is still required because mixinTabIndex requires it.
52
+ get disabled() { return this._disabled; }
53
+ set disabled(value) {
54
+ const newValue = coerceBooleanProperty(value);
55
+ if (newValue !== this.disabled) {
56
+ this._disabled = newValue;
57
+ this._changeDetectorRef.markForCheck();
58
+ }
59
+ }
60
+ /**
61
+ * Whether the checkbox is indeterminate. This is also known as "mixed" mode and can be used to
62
+ * represent a checkbox with three states, e.g. a checkbox that represents a nested list of
63
+ * checkable items. Note that whenever checkbox is manually clicked, indeterminate is immediately
64
+ * set to false.
65
+ */
66
+ get indeterminate() { return this._indeterminate; }
67
+ set indeterminate(value) {
68
+ const changed = value !== this._indeterminate;
69
+ this._indeterminate = coerceBooleanProperty(value);
70
+ if (changed) {
71
+ this.indeterminateChange.emit(this._indeterminate);
72
+ }
73
+ this._syncIndeterminate(this._indeterminate);
74
+ }
36
75
  constructor(elementRef, _changeDetectorRef, _focusMonitor, _ngZone, tabIndex) {
37
76
  super(elementRef);
38
77
  this._changeDetectorRef = _changeDetectorRef;
@@ -62,6 +101,7 @@ export class TheSeamCheckboxComponent extends _TheSeamCheckboxMixinBase {
62
101
  /** Name value will be applied to the input element if present */
63
102
  this.name = null;
64
103
  /** Event emitted when the checkbox's `checked` value changes. */
104
+ // eslint-disable-next-line @angular-eslint/no-output-native
65
105
  this.change = new EventEmitter();
66
106
  /** Event emitted when the checkbox's `indeterminate` value changes. */
67
107
  this.indeterminateChange = new EventEmitter();
@@ -87,47 +127,6 @@ export class TheSeamCheckboxComponent extends _TheSeamCheckboxMixinBase {
87
127
  }
88
128
  });
89
129
  }
90
- /** Returns the unique id for the input. */
91
- get inputId() { return `${this.id || this._uid}`; }
92
- /** Whether the checkbox is checked. */
93
- get checked() { return this._checked; }
94
- set checked(value) {
95
- const newValue = coerceBooleanProperty(value);
96
- if (newValue !== this.checked) {
97
- this._checked = newValue;
98
- this._changeDetectorRef.markForCheck();
99
- }
100
- }
101
- /**
102
- * Whether the checkbox is disabled.
103
- */
104
- // This fully overrides the implementation provided by mixinDisabled, but the
105
- // mixin is still required because mixinTabIndex requires it.
106
- get disabled() { return this._disabled; }
107
- set disabled(value) {
108
- const newValue = coerceBooleanProperty(value);
109
- if (newValue !== this.disabled) {
110
- this._disabled = newValue;
111
- this._changeDetectorRef.markForCheck();
112
- }
113
- }
114
- /**
115
- * Whether the checkbox is indeterminate. This is also known as "mixed" mode and can be used to
116
- * represent a checkbox with three states, e.g. a checkbox that represents a nested list of
117
- * checkable items. Note that whenever checkbox is manually clicked, indeterminate is immediately
118
- * set to false.
119
- */
120
- get indeterminate() { return this._indeterminate; }
121
- set indeterminate(value) {
122
- const changed = value !== this._indeterminate;
123
- this._indeterminate = coerceBooleanProperty(value);
124
- if (changed) {
125
- this.indeterminateChange.emit(this._indeterminate);
126
- }
127
- this._syncIndeterminate(this._indeterminate);
128
- }
129
- /** @ignore */
130
- ngOnInit() { }
131
130
  /** @ignore */
132
131
  ngOnDestroy() {
133
132
  this._focusMonitor.stopMonitoring(this._elementRef);
@@ -236,12 +235,12 @@ export class TheSeamCheckboxComponent extends _TheSeamCheckboxMixinBase {
236
235
  }
237
236
  }
238
237
  }
239
- TheSeamCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: TheSeamCheckboxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.FocusMonitor }, { token: i0.NgZone }, { token: 'tabindex', attribute: true }], target: i0.ɵɵFactoryTarget.Component });
240
- TheSeamCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: TheSeamCheckboxComponent, selector: "seam-checkbox", inputs: { tabIndex: "tabIndex", id: "id", ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], required: "required", checked: "checked", disabled: "disabled", indeterminate: "indeterminate", name: "name", value: "value" }, outputs: { change: "change", indeterminateChange: "indeterminateChange" }, host: { properties: { "attr.tabindex": "null" }, classAttribute: "custom-control custom-checkbox" }, providers: [THESEAM_CHECKBOX_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "_inputElement", first: true, predicate: ["input"], descendants: true, static: true }], exportAs: ["seamCheckbox"], usesInheritance: true, ngImport: i0, template: "<input #input\n type=\"checkbox\"\n class=\"custom-control-input\"\n [id]=\"inputId\"\n [required]=\"required\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [tabIndex]=\"tabIndex\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-checked]=\"_getAriaChecked()\"\n (change)=\"_onInteractionEvent($event)\"\n (click)=\"_onInputClick($event)\">\n<label #checkboxLabel\n class=\"custom-control-label\"\n [attr.for]=\"inputId\"\n (cdkObserveContent)=\"_onLabelTextChange()\">\n <ng-content></ng-content>\n</label>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
238
+ TheSeamCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamCheckboxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.FocusMonitor }, { token: i0.NgZone }, { token: 'tabindex', attribute: true }], target: i0.ɵɵFactoryTarget.Component });
239
+ TheSeamCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TheSeamCheckboxComponent, selector: "seam-checkbox", inputs: { tabIndex: "tabIndex", id: "id", ariaLabel: ["aria-label", "ariaLabel"], ariaLabelledby: ["aria-labelledby", "ariaLabelledby"], required: "required", checked: "checked", disabled: "disabled", indeterminate: "indeterminate", name: "name", value: "value" }, outputs: { change: "change", indeterminateChange: "indeterminateChange" }, host: { properties: { "attr.tabindex": "null" }, classAttribute: "custom-control custom-checkbox" }, providers: [THESEAM_CHECKBOX_CONTROL_VALUE_ACCESSOR], viewQueries: [{ propertyName: "_inputElement", first: true, predicate: ["input"], descendants: true, static: true }], exportAs: ["seamCheckbox"], usesInheritance: true, ngImport: i0, template: "<input #input\n type=\"checkbox\"\n class=\"custom-control-input\"\n [id]=\"inputId\"\n [required]=\"required\"\n [checked]=\"checked\"\n [attr.value]=\"value\"\n [disabled]=\"disabled\"\n [attr.name]=\"name\"\n [tabIndex]=\"tabIndex\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [attr.aria-checked]=\"_getAriaChecked()\"\n (change)=\"_onInteractionEvent($event)\"\n (click)=\"_onInputClick($event)\">\n<label #checkboxLabel\n class=\"custom-control-label\"\n [attr.for]=\"inputId\"\n (cdkObserveContent)=\"_onLabelTextChange()\">\n <ng-content></ng-content>\n</label>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
241
240
  __decorate([
242
241
  InputBoolean()
243
242
  ], TheSeamCheckboxComponent.prototype, "required", void 0);
244
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: TheSeamCheckboxComponent, decorators: [{
243
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamCheckboxComponent, decorators: [{
245
244
  type: Component,
246
245
  args: [{ selector: 'seam-checkbox', exportAs: 'seamCheckbox', host: {
247
246
  '[attr.tabindex]': 'null',
@@ -278,4 +277,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImpor
278
277
  type: ViewChild,
279
278
  args: ['input', { static: true }]
280
279
  }] } });
281
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzNFLE9BQU8sRUFFTCxTQUFTLEVBQ1QsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFJTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV4RSxPQUFPLEVBQTRELFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUE7Ozs7QUFFOUksNkhBQTZIO0FBRTdILCtEQUErRDtBQUMvRCxNQUFNLE9BQU8scUJBQXFCO0lBTWhDLFlBQ21CLE9BQWlDLEVBQ2pDLFFBQWlCO1FBRGpCLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBQ2pDLGFBQVEsR0FBUixRQUFRLENBQVM7UUFFbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUE7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUE7SUFDekIsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sdUNBQXVDLEdBQVE7SUFDMUQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixrREFBa0Q7SUFDbEQsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztJQUN2RCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUE7QUFFRCxNQUFNLDRCQUE0QjtJQUNoQyxZQUFtQixX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QWtIdEIsVUFBVTt5R0FsSFosd0JBQXdCLGllQUp4QixDQUFFLHVDQUF1QyxDQUFFLG1NQ3JFeEQsMG5CQXFCQTtBRCtFMkI7SUFBZixZQUFZLEVBQUU7MERBQTBCOzJGQTNCdkMsd0JBQXdCO2tCQWJwQyxTQUFTOytCQUNFLGVBQWUsWUFHZixjQUFjLFFBQ2xCO3dCQUNKLGlCQUFpQixFQUFFLE1BQU07d0JBQ3pCLE9BQU8sRUFBRSxnQ0FBZ0M7cUJBQzFDLGFBQ1UsQ0FBRSx1Q0FBdUMsQ0FBRSxVQUM5QyxDQUFFLFVBQVUsQ0FBRSxtQkFDTCx1QkFBdUIsQ0FBQyxNQUFNOzswQkFvSDVDLFNBQVM7MkJBQUMsVUFBVTs0Q0F4R2QsRUFBRTtzQkFBVixLQUFLO2dCQVNlLFNBQVM7c0JBQTdCLEtBQUs7dUJBQUMsWUFBWTtnQkFLTyxjQUFjO3NCQUF2QyxLQUFLO3VCQUFDLGlCQUFpQjtnQkFHQyxRQUFRO3NCQUFoQyxLQUFLO2dCQUlGLE9BQU87c0JBRFYsS0FBSztnQkFtQkYsUUFBUTtzQkFEWCxLQUFLO2dCQW9CRixhQUFhO3NCQURoQixLQUFLO2dCQWdCRyxJQUFJO3NCQUFaLEtBQUs7Z0JBR2EsTUFBTTtzQkFBeEIsTUFBTTtnQkFHWSxtQkFBbUI7c0JBQXJDLE1BQU07Z0JBR0UsS0FBSztzQkFBYixLQUFLO2dCQU1nQyxhQUFhO3NCQUFsRCxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbidcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIEF0dHJpYnV0ZSxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcblxuaW1wb3J0IHsgQ2FuRGlzYWJsZSwgQ2FuRGlzYWJsZUN0b3IsIEhhc1RhYkluZGV4LCBIYXNUYWJJbmRleEN0b3IsIElucHV0Qm9vbGVhbiwgbWl4aW5EaXNhYmxlZCwgbWl4aW5UYWJJbmRleCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9jb3JlJ1xuXG4vLyBOT1RFOiBQYXJ0aWFsbHkgYmFzZWQgb24gbWF0LWNoZWNrYm94OiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2Jsb2IvbWFzdGVyL3NyYy9tYXRlcmlhbC9jaGVja2JveC9jaGVja2JveC50c1xuXG4vKiogQ2hhbmdlIGV2ZW50IG9iamVjdCBlbWl0dGVkIGJ5IFRoZVNlYW1DaGVja2JveENvbXBvbmVudC4gKi9cbmV4cG9ydCBjbGFzcyBUaGVTZWFtQ2hlY2tib3hDaGFuZ2Uge1xuICAvKiogVGhlIHNvdXJjZSBUaGVTZWFtQ2hlY2tib3hDb21wb25lbnQgb2YgdGhlIGV2ZW50LiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc291cmNlOiBUaGVTZWFtQ2hlY2tib3hDb21wb25lbnRcbiAgLyoqIFRoZSBuZXcgYGNoZWNrZWRgIHZhbHVlIG9mIHRoZSBjaGVja2JveC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGNoZWNrZWQ6IGJvb2xlYW5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zb3VyY2U6IFRoZVNlYW1DaGVja2JveENvbXBvbmVudCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGVja2VkOiBib29sZWFuXG4gICkge1xuICAgIHRoaXMuc291cmNlID0gX3NvdXJjZVxuICAgIHRoaXMuY2hlY2tlZCA9IF9jaGVja2VkXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IFRIRVNFQU1fQ0hFQ0tCT1hfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby11c2UtYmVmb3JlLWRlY2xhcmVcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGhlU2VhbUNoZWNrYm94Q29tcG9uZW50KSxcbiAgbXVsdGk6IHRydWVcbn1cblxuY2xhc3MgVGhlU2VhbUNoZWNrYm94Q29tcG9uZW50QmFzZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBfZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cbn1cblxuY29uc3QgX1RoZVNlYW1DaGVja2JveE1peGluQmFzZTogSGFzVGFiSW5kZXhDdG9yICYgQ2FuRGlzYWJsZUN0b3IgJlxuICB0eXBlb2YgVGhlU2VhbUNoZWNrYm94Q29tcG9uZW50QmFzZSA9XG4gICAgbWl4aW5UYWJJbmRleChtaXhpbkRpc2FibGVkKFRoZVNlYW1DaGVja2JveENvbXBvbmVudEJhc2UpKVxuXG5sZXQgX3VpZCA9IDBcblxuLyoqXG4gKiBBIENoZWNrYm94LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLWNoZWNrYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3guY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdzZWFtQ2hlY2tib3gnLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLnRhYmluZGV4XSc6ICdudWxsJyxcbiAgICAnY2xhc3MnOiAnY3VzdG9tLWNvbnRyb2wgY3VzdG9tLWNoZWNrYm94J1xuICB9LFxuICBwcm92aWRlcnM6IFsgVEhFU0VBTV9DSEVDS0JPWF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SIF0sXG4gIGlucHV0czogWyAndGFiSW5kZXgnIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1DaGVja2JveENvbXBvbmVudCBleHRlbmRzIF9UaGVTZWFtQ2hlY2tib3hNaXhpbkJhc2VcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIENhbkRpc2FibGUsIEhhc1RhYkluZGV4IHtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2NoZWNrZWQ6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZGlzYWJsZWQ6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfaW5kZXRlcm1pbmF0ZTogQm9vbGVhbklucHV0XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfdWlkID0gYHNlYW0tY2hrLSR7X3VpZCsrfWBcblxuICAvKiogQSB1bmlxdWUgaWQgZm9yIHRoZSBjaGVja2JveCBpbnB1dC4gSWYgbm9uZSBpcyBzdXBwbGllZCwgaXQgd2lsbCBiZSBhdXRvLWdlbmVyYXRlZC4gKi9cbiAgQElucHV0KCkgaWQ/OiBzdHJpbmcgPSB0aGlzLl91aWRcblxuICAvKiogUmV0dXJucyB0aGUgdW5pcXVlIGlkIGZvciB0aGUgaW5wdXQuICovXG4gIGdldCBpbnB1dElkKCk6IHN0cmluZyB7IHJldHVybiBgJHt0aGlzLmlkIHx8IHRoaXMuX3VpZH1gIH1cblxuICAvKipcbiAgICogQXR0YWNoZWQgdG8gdGhlIGFyaWEtbGFiZWwgYXR0cmlidXRlIG9mIHRoZSBob3N0IGVsZW1lbnQuIEluIG1vc3QgY2FzZXMsIGFyaWEtbGFiZWxsZWRieSB3aWxsXG4gICAqIHRha2UgcHJlY2VkZW5jZSBzbyB0aGlzIG1heSBiZSBvbWl0dGVkLlxuICAgKi9cbiAgQElucHV0KCdhcmlhLWxhYmVsJykgYXJpYUxhYmVsPzogc3RyaW5nID0gJydcblxuICAvKipcbiAgICogVXNlcnMgY2FuIHNwZWNpZnkgdGhlIGBhcmlhLWxhYmVsbGVkYnlgIGF0dHJpYnV0ZSB3aGljaCB3aWxsIGJlIGZvcndhcmRlZCB0byB0aGUgaW5wdXQgZWxlbWVudFxuICAgKi9cbiAgQElucHV0KCdhcmlhLWxhYmVsbGVkYnknKSBhcmlhTGFiZWxsZWRieT86IHN0cmluZyB8IG51bGwgPSBudWxsXG5cbiAgLyoqIFdoZXRoZXIgdGhlIGNoZWNrYm94IGlzIHJlcXVpcmVkLiAqL1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyBjaGVja2VkLiAqL1xuICBASW5wdXQoKVxuICBnZXQgY2hlY2tlZCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2NoZWNrZWQgfVxuICBzZXQgY2hlY2tlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKVxuXG4gICAgaWYgKG5ld1ZhbHVlICE9PSB0aGlzLmNoZWNrZWQpIHtcbiAgICAgIHRoaXMuX2NoZWNrZWQgPSBuZXdWYWx1ZVxuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKClcbiAgICB9XG4gIH1cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfY2hlY2tlZDogYm9vbGVhbiA9IGZhbHNlXG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNoZWNrYm94IGlzIGRpc2FibGVkLlxuICAgKi9cbiAgLy8gVGhpcyBmdWxseSBvdmVycmlkZXMgdGhlIGltcGxlbWVudGF0aW9uIHByb3ZpZGVkIGJ5IG1peGluRGlzYWJsZWQsIGJ1dCB0aGVcbiAgLy8gbWl4aW4gaXMgc3RpbGwgcmVxdWlyZWQgYmVjYXVzZSBtaXhpblRhYkluZGV4IHJlcXVpcmVzIGl0LlxuICBASW5wdXQoKVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9kaXNhYmxlZCB9XG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKVxuXG4gICAgaWYgKG5ld1ZhbHVlICE9PSB0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLl9kaXNhYmxlZCA9IG5ld1ZhbHVlXG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKVxuICAgIH1cbiAgfVxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9kaXNhYmxlZCA9IGZhbHNlXG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNoZWNrYm94IGlzIGluZGV0ZXJtaW5hdGUuIFRoaXMgaXMgYWxzbyBrbm93biBhcyBcIm1peGVkXCIgbW9kZSBhbmQgY2FuIGJlIHVzZWQgdG9cbiAgICogcmVwcmVzZW50IGEgY2hlY2tib3ggd2l0aCB0aHJlZSBzdGF0ZXMsIGUuZy4gYSBjaGVja2JveCB0aGF0IHJlcHJlc2VudHMgYSBuZXN0ZWQgbGlzdCBvZlxuICAgKiBjaGVja2FibGUgaXRlbXMuIE5vdGUgdGhhdCB3aGVuZXZlciBjaGVja2JveCBpcyBtYW51YWxseSBjbGlja2VkLCBpbmRldGVybWluYXRlIGlzIGltbWVkaWF0ZWx5XG4gICAqIHNldCB0byBmYWxzZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBpbmRldGVybWluYXRlKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faW5kZXRlcm1pbmF0ZSB9XG4gIHNldCBpbmRldGVybWluYXRlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgY29uc3QgY2hhbmdlZCA9IHZhbHVlICE9PSB0aGlzLl9pbmRldGVybWluYXRlXG4gICAgdGhpcy5faW5kZXRlcm1pbmF0ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSlcblxuICAgIGlmIChjaGFuZ2VkKSB7XG4gICAgICB0aGlzLmluZGV0ZXJtaW5hdGVDaGFuZ2UuZW1pdCh0aGlzLl9pbmRldGVybWluYXRlKVxuICAgIH1cblxuICAgIHRoaXMuX3N5bmNJbmRldGVybWluYXRlKHRoaXMuX2luZGV0ZXJtaW5hdGUpXG4gIH1cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfaW5kZXRlcm1pbmF0ZSA9IGZhbHNlXG5cbiAgLyoqIE5hbWUgdmFsdWUgd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBpbnB1dCBlbGVtZW50IGlmIHByZXNlbnQgKi9cbiAgQElucHV0KCkgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCA9IG51bGxcblxuICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBjaGVja2JveCdzIGBjaGVja2VkYCB2YWx1ZSBjaGFuZ2VzLiAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUaGVTZWFtQ2hlY2tib3hDaGFuZ2U+KClcblxuICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBjaGVja2JveCdzIGBpbmRldGVybWluYXRlYCB2YWx1ZSBjaGFuZ2VzLiAqL1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgaW5kZXRlcm1pbmF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpXG5cbiAgLyoqIFRoZSB2YWx1ZSBhdHRyaWJ1dGUgb2YgdGhlIG5hdGl2ZSBpbnB1dCBlbGVtZW50ICovXG4gIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgLyoqXG4gICAqIFRoZSBuYXRpdmUgYDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIj5gIGVsZW1lbnRcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBfaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+IHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgY2hlY2tib3ggaXMgYmx1cnJlZC4gTmVlZGVkIHRvIHByb3Blcmx5IGltcGxlbWVudCBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgX29uVG91Y2hlZDogKCkgPT4gYW55ID0gKCkgPT4ge31cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmUsXG4gICAgQEF0dHJpYnV0ZSgndGFiaW5kZXgnKSB0YWJJbmRleDogc3RyaW5nXG4gICkge1xuICAgIHN1cGVyKGVsZW1lbnRSZWYpXG5cbiAgICB0aGlzLnRhYkluZGV4ID0gcGFyc2VJbnQodGFiSW5kZXgsIDEwKSB8fCAwXG5cbiAgICB0aGlzLl9mb2N1c01vbml0b3IubW9uaXRvcihlbGVtZW50UmVmLCB0cnVlKS5zdWJzY3JpYmUoZm9jdXNPcmlnaW4gPT4ge1xuICAgICAgaWYgKCFmb2N1c09yaWdpbikge1xuICAgICAgICAvLyBXaGVuIGEgZm9jdXNlZCBlbGVtZW50IGJlY29tZXMgZGlzYWJsZWQsIHRoZSBicm93c2VyICppbW1lZGlhdGVseSogZmlyZXMgYSBibHVyIGV2ZW50LlxuICAgICAgICAvLyBBbmd1bGFyIGRvZXMgbm90IGV4cGVjdCBldmVudHMgdG8gYmUgcmFpc2VkIGR1cmluZyBjaGFuZ2UgZGV0ZWN0aW9uLCBzbyBhbnkgc3RhdGUgY2hhbmdlXG4gICAgICAgIC8vIChzdWNoIGFzIGEgZm9ybSBjb250cm9sJ3MgJ25nLXRvdWNoZWQnKSB3aWxsIGNhdXNlIGEgY2hhbmdlZC1hZnRlci1jaGVja2VkIGVycm9yLlxuICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvMTc3OTMuIFRvIHdvcmsgYXJvdW5kIHRoaXMsIHdlIGRlZmVyXG4gICAgICAgIC8vIHRlbGxpbmcgdGhlIGZvcm0gY29udHJvbCBpdCBoYXMgYmVlbiB0b3VjaGVkIHVudGlsIHRoZSBuZXh0IHRpY2suXG4gICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX29uVG91Y2hlZCgpXG4gICAgICAgICAgX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG5nT25Jbml0KCkgeyB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYpXG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5fc3luY0luZGV0ZXJtaW5hdGUodGhpcy5faW5kZXRlcm1pbmF0ZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgYmVpbmcgY2FsbGVkIHdoZW5ldmVyIHRoZSBsYWJlbCB0ZXh0IGNoYW5nZXMuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIF9vbkxhYmVsVGV4dENoYW5nZSgpIHtcbiAgICAvLyBTaW5jZSB0aGUgZXZlbnQgb2YgdGhlIGBjZGtPYnNlcnZlQ29udGVudGAgZGlyZWN0aXZlIHJ1bnMgb3V0c2lkZSBvZiB0aGUgem9uZSwgdGhlIGNoZWNrYm94XG4gICAgLy8gY29tcG9uZW50IHdpbGwgYmUgb25seSBtYXJrZWQgZm9yIGNoZWNrLCBidXQgbm8gYWN0dWFsIGNoYW5nZSBkZXRlY3Rpb24gcnVucyBhdXRvbWF0aWNhbGx5LlxuICAgIC8vIEluc3RlYWQgb2YgZ29pbmcgYmFjayBpbnRvIHRoZSB6b25lIGluIG9yZGVyIHRvIHRyaWdnZXIgYSBjaGFuZ2UgZGV0ZWN0aW9uIHdoaWNoIGNhdXNlc1xuICAgIC8vICphbGwqIGNvbXBvbmVudHMgdG8gYmUgY2hlY2tlZCAoaWYgZXhwbGljaXRseSBtYXJrZWQgb3Igbm90IHVzaW5nIE9uUHVzaCksIHdlIG9ubHkgdHJpZ2dlclxuICAgIC8vIGFuIGV4cGxpY2l0IGNoYW5nZSBkZXRlY3Rpb24gZm9yIHRoZSBjaGVja2JveCB2aWV3IGFuZCBpdHMgY2hpbGRyZW4uXG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICAvLyBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAvKiogQGlnbm9yZSAqL1xuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmNoZWNrZWQgPSAhIXZhbHVlXG4gIH1cblxuICAvLyBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAvKiogQGlnbm9yZSAqL1xuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCkge1xuICAgIHRoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4gPSBmblxuICB9XG5cbiAgLy8gSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuXG4gIH1cblxuICAvLyBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAvKiogQGlnbm9yZSAqL1xuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZFxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgX2dldEFyaWFDaGVja2VkKCk6ICd0cnVlJyB8ICdmYWxzZScgfCAnbWl4ZWQnIHtcbiAgICByZXR1cm4gdGhpcy5jaGVja2VkID8gJ3RydWUnIDogKHRoaXMuaW5kZXRlcm1pbmF0ZSA/ICdtaXhlZCcgOiAnZmFsc2UnKVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfZW1pdENoYW5nZUV2ZW50KCkge1xuICAgIGNvbnN0IGV2ZW50ID0gbmV3IFRoZVNlYW1DaGVja2JveENoYW5nZSh0aGlzLCB0aGlzLmNoZWNrZWQpXG5cbiAgICB0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuKHRoaXMuY2hlY2tlZClcbiAgICB0aGlzLmNoYW5nZS5lbWl0KGV2ZW50KVxuICB9XG5cbiAgLyoqIFRvZ2dsZXMgdGhlIGBjaGVja2VkYCBzdGF0ZSBvZiB0aGUgY2hlY2tib3guICovXG4gIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrZWQgPSAhdGhpcy5jaGVja2VkXG4gIH1cblxuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBmb3IgY2hlY2tib3ggaW5wdXQgZWxlbWVudC5cbiAgICogVG9nZ2xlcyBjaGVja2VkIHN0YXRlIGlmIGVsZW1lbnQgaXMgbm90IGRpc2FibGVkLlxuICAgKiBEbyBub3QgdG9nZ2xlIG9uIChjaGFuZ2UpIGV2ZW50IHNpbmNlIElFIGRvZXNuJ3QgZmlyZSBjaGFuZ2UgZXZlbnQgd2hlblxuICAgKiAgIGluZGV0ZXJtaW5hdGUgY2hlY2tib3ggaXMgY2xpY2tlZC5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgX29uSW5wdXRDbGljayhldmVudDogRXZlbnQpIHtcbiAgICAvLyBJZiByZXNldEluZGV0ZXJtaW5hdGUgaXMgZmFsc2UsIGFuZCB0aGUgY3VycmVudCBzdGF0ZSBpcyBpbmRldGVybWluYXRlLCBkbyBub3RoaW5nIG9uIGNsaWNrXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAvLyBXaGVuIHVzZXIgbWFudWFsbHkgY2xpY2sgb24gdGhlIGNoZWNrYm94LCBgaW5kZXRlcm1pbmF0ZWAgaXMgc2V0IHRvIGZhbHNlLlxuICAgICAgaWYgKHRoaXMuaW5kZXRlcm1pbmF0ZSkge1xuXG4gICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2luZGV0ZXJtaW5hdGUgPSBmYWxzZVxuICAgICAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZUNoYW5nZS5lbWl0KHRoaXMuX2luZGV0ZXJtaW5hdGUpXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHRoaXMudG9nZ2xlKClcblxuICAgICAgLy8gRW1pdCBvdXIgY3VzdG9tIGNoYW5nZSBldmVudCBpZiB0aGUgbmF0aXZlIGlucHV0IGVtaXR0ZWQgb25lLlxuICAgICAgLy8gSXQgaXMgaW1wb3J0YW50IHRvIG9ubHkgZW1pdCBpdCwgaWYgdGhlIG5hdGl2ZSBpbnB1dCB0cmlnZ2VyZWQgb25lLCBiZWNhdXNlXG4gICAgICAvLyB3ZSBkb24ndCB3YW50IHRvIHRyaWdnZXIgYSBjaGFuZ2UgZXZlbnQsIHdoZW4gdGhlIGBjaGVja2VkYCB2YXJpYWJsZSBjaGFuZ2VzIGZvciBleGFtcGxlLlxuICAgICAgdGhpcy5fZW1pdENoYW5nZUV2ZW50KClcbiAgICB9XG4gIH1cblxuICAvKiogRm9jdXNlcyB0aGUgY2hlY2tib3guICovXG4gIGZvY3VzKG9yaWdpbjogRm9jdXNPcmlnaW4gPSAna2V5Ym9hcmQnLCBvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pbnB1dEVsZW1lbnQpIHsgcmV0dXJuIH1cbiAgICB0aGlzLl9mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5faW5wdXRFbGVtZW50LCBvcmlnaW4sIG9wdGlvbnMpXG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBfb25JbnRlcmFjdGlvbkV2ZW50KGV2ZW50OiBFdmVudCkge1xuICAgIC8vIFdlIGFsd2F5cyBoYXZlIHRvIHN0b3AgcHJvcGFnYXRpb24gb24gdGhlIGNoYW5nZSBldmVudC5cbiAgICAvLyBPdGhlcndpc2UgdGhlIGNoYW5nZSBldmVudCwgZnJvbSB0aGUgaW5wdXQgZWxlbWVudCwgd2lsbCBidWJibGUgdXAgYW5kXG4gICAgLy8gZW1pdCBpdHMgZXZlbnQgb2JqZWN0IHRvIHRoZSBgY2hhbmdlYCBvdXRwdXQuXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgfVxuXG4gIC8qKlxuICAgKiBTeW5jcyB0aGUgaW5kZXRlcm1pbmF0ZSB2YWx1ZSB3aXRoIHRoZSBjaGVja2JveCBET00gbm9kZS5cbiAgICpcbiAgICogV2Ugc3luYyBgaW5kZXRlcm1pbmF0ZWAgZGlyZWN0bHkgb24gdGhlIERPTSBub2RlLCBiZWNhdXNlIGluIEl2eSB0aGUgY2hlY2sgZm9yIHdoZXRoZXIgYVxuICAgKiBwcm9wZXJ0eSBpcyBzdXBwb3J0ZWQgb24gYW4gZWxlbWVudCBib2lscyBkb3duIHRvIGBpZiAocHJvcE5hbWUgaW4gZWxlbWVudClgLiBEb21pbm8nc1xuICAgKiBIVE1MSW5wdXRFbGVtZW50IGRvZXNuJ3QgaGF2ZSBhbiBgaW5kZXRlcm1pbmF0ZWAgcHJvcGVydHkgc28gSXZ5IHdpbGwgd2FybiBkdXJpbmdcbiAgICogc2VydmVyLXNpZGUgcmVuZGVyaW5nLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIF9zeW5jSW5kZXRlcm1pbmF0ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IG5hdGl2ZUNoZWNrYm94ID0gdGhpcy5faW5wdXRFbGVtZW50XG5cbiAgICBpZiAobmF0aXZlQ2hlY2tib3gpIHtcbiAgICAgIG5hdGl2ZUNoZWNrYm94Lm5hdGl2ZUVsZW1lbnQuaW5kZXRlcm1pbmF0ZSA9IHZhbHVlXG4gICAgfVxuICB9XG5cbn1cbiIsIjxpbnB1dCAjaW5wdXRcbiAgdHlwZT1cImNoZWNrYm94XCJcbiAgY2xhc3M9XCJjdXN0b20tY29udHJvbC1pbnB1dFwiXG4gIFtpZF09XCJpbnB1dElkXCJcbiAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gIFthdHRyLnZhbHVlXT1cInZhbHVlXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgW3RhYkluZGV4XT1cInRhYkluZGV4XCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwgfHwgbnVsbFwiXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRieVwiXG4gIFthdHRyLmFyaWEtY2hlY2tlZF09XCJfZ2V0QXJpYUNoZWNrZWQoKVwiXG4gIChjaGFuZ2UpPVwiX29uSW50ZXJhY3Rpb25FdmVudCgkZXZlbnQpXCJcbiAgKGNsaWNrKT1cIl9vbklucHV0Q2xpY2soJGV2ZW50KVwiPlxuPGxhYmVsICNjaGVja2JveExhYmVsXG4gIGNsYXNzPVwiY3VzdG9tLWNvbnRyb2wtbGFiZWxcIlxuICBbYXR0ci5mb3JdPVwiaW5wdXRJZFwiXG4gIChjZGtPYnNlcnZlQ29udGVudCk9XCJfb25MYWJlbFRleHRDaGFuZ2UoKVwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2xhYmVsPlxuIl19
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzNFLE9BQU8sRUFFTCxTQUFTLEVBQ1QsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUV4RSxPQUFPLEVBQTRELFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUE7Ozs7QUFFOUksNkhBQTZIO0FBRTdILCtEQUErRDtBQUMvRCxNQUFNLE9BQU8scUJBQXFCO0lBTWhDLFlBQ21CLE9BQWlDLEVBQ2pDLFFBQWlCO1FBRGpCLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBQ2pDLGFBQVEsR0FBUixRQUFRLENBQVM7UUFFbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUE7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUE7SUFDekIsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sdUNBQXVDLEdBQVE7SUFDMUQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixrREFBa0Q7SUFDbEQsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztJQUN2RCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUE7QUFFRCxNQUFNLDRCQUE0QjtJQUNoQyxZQUFtQixX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QkFBd0IsaWVBSnhCLENBQUUsdUNBQXVDLENBQUUsbU1DcEV4RCwwbkJBcUJBO0FEOEUyQjtJQUFmLFlBQVksRUFBRTswREFBaUI7MkZBM0I5Qix3QkFBd0I7a0JBYnBDLFNBQVM7K0JBQ0UsZUFBZSxZQUdmLGNBQWMsUUFDbEI7d0JBQ0osaUJBQWlCLEVBQUUsTUFBTTt3QkFDekIsT0FBTyxFQUFFLGdDQUFnQztxQkFDMUMsYUFDVSxDQUFFLHVDQUF1QyxDQUFFLFVBQzlDLENBQUUsVUFBVSxDQUFFLG1CQUNMLHVCQUF1QixDQUFDLE1BQU07OzBCQXFINUMsU0FBUzsyQkFBQyxVQUFVOzRDQXpHZCxFQUFFO3NCQUFWLEtBQUs7Z0JBU2UsU0FBUztzQkFBN0IsS0FBSzt1QkFBQyxZQUFZO2dCQUtPLGNBQWM7c0JBQXZDLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUdDLFFBQVE7c0JBQWhDLEtBQUs7Z0JBSUYsT0FBTztzQkFEVixLQUFLO2dCQW1CRixRQUFRO3NCQURYLEtBQUs7Z0JBb0JGLGFBQWE7c0JBRGhCLEtBQUs7Z0JBZ0JHLElBQUk7c0JBQVosS0FBSztnQkFJYSxNQUFNO3NCQUF4QixNQUFNO2dCQUdZLG1CQUFtQjtzQkFBckMsTUFBTTtnQkFHRSxLQUFLO3NCQUFiLEtBQUs7Z0JBTWdDLGFBQWE7c0JBQWxELFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzTW9uaXRvciwgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSdcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJ1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQXR0cmlidXRlLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcblxuaW1wb3J0IHsgQ2FuRGlzYWJsZSwgQ2FuRGlzYWJsZUN0b3IsIEhhc1RhYkluZGV4LCBIYXNUYWJJbmRleEN0b3IsIElucHV0Qm9vbGVhbiwgbWl4aW5EaXNhYmxlZCwgbWl4aW5UYWJJbmRleCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9jb3JlJ1xuXG4vLyBOT1RFOiBQYXJ0aWFsbHkgYmFzZWQgb24gbWF0LWNoZWNrYm94OiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9jb21wb25lbnRzL2Jsb2IvbWFzdGVyL3NyYy9tYXRlcmlhbC9jaGVja2JveC9jaGVja2JveC50c1xuXG4vKiogQ2hhbmdlIGV2ZW50IG9iamVjdCBlbWl0dGVkIGJ5IFRoZVNlYW1DaGVja2JveENvbXBvbmVudC4gKi9cbmV4cG9ydCBjbGFzcyBUaGVTZWFtQ2hlY2tib3hDaGFuZ2Uge1xuICAvKiogVGhlIHNvdXJjZSBUaGVTZWFtQ2hlY2tib3hDb21wb25lbnQgb2YgdGhlIGV2ZW50LiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc291cmNlOiBUaGVTZWFtQ2hlY2tib3hDb21wb25lbnRcbiAgLyoqIFRoZSBuZXcgYGNoZWNrZWRgIHZhbHVlIG9mIHRoZSBjaGVja2JveC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGNoZWNrZWQ6IGJvb2xlYW5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zb3VyY2U6IFRoZVNlYW1DaGVja2JveENvbXBvbmVudCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jaGVja2VkOiBib29sZWFuXG4gICkge1xuICAgIHRoaXMuc291cmNlID0gX3NvdXJjZVxuICAgIHRoaXMuY2hlY2tlZCA9IF9jaGVja2VkXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IFRIRVNFQU1fQ0hFQ0tCT1hfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby11c2UtYmVmb3JlLWRlY2xhcmVcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGhlU2VhbUNoZWNrYm94Q29tcG9uZW50KSxcbiAgbXVsdGk6IHRydWVcbn1cblxuY2xhc3MgVGhlU2VhbUNoZWNrYm94Q29tcG9uZW50QmFzZSB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBfZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cbn1cblxuY29uc3QgX1RoZVNlYW1DaGVja2JveE1peGluQmFzZTogSGFzVGFiSW5kZXhDdG9yICYgQ2FuRGlzYWJsZUN0b3IgJlxuICB0eXBlb2YgVGhlU2VhbUNoZWNrYm94Q29tcG9uZW50QmFzZSA9XG4gICAgbWl4aW5UYWJJbmRleChtaXhpbkRpc2FibGVkKFRoZVNlYW1DaGVja2JveENvbXBvbmVudEJhc2UpKVxuXG5sZXQgX3VpZCA9IDBcblxuLyoqXG4gKiBBIENoZWNrYm94LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLWNoZWNrYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3guY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdzZWFtQ2hlY2tib3gnLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLnRhYmluZGV4XSc6ICdudWxsJyxcbiAgICAnY2xhc3MnOiAnY3VzdG9tLWNvbnRyb2wgY3VzdG9tLWNoZWNrYm94J1xuICB9LFxuICBwcm92aWRlcnM6IFsgVEhFU0VBTV9DSEVDS0JPWF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SIF0sXG4gIGlucHV0czogWyAndGFiSW5kZXgnIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1DaGVja2JveENvbXBvbmVudCBleHRlbmRzIF9UaGVTZWFtQ2hlY2tib3hNaXhpbkJhc2VcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBDYW5EaXNhYmxlLCBIYXNUYWJJbmRleCB7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9jaGVja2VkOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Rpc2FibGVkOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2luZGV0ZXJtaW5hdGU6IEJvb2xlYW5JbnB1dFxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX3VpZCA9IGBzZWFtLWNoay0ke191aWQrK31gXG5cbiAgLyoqIEEgdW5pcXVlIGlkIGZvciB0aGUgY2hlY2tib3ggaW5wdXQuIElmIG5vbmUgaXMgc3VwcGxpZWQsIGl0IHdpbGwgYmUgYXV0by1nZW5lcmF0ZWQuICovXG4gIEBJbnB1dCgpIGlkPzogc3RyaW5nID0gdGhpcy5fdWlkXG5cbiAgLyoqIFJldHVybnMgdGhlIHVuaXF1ZSBpZCBmb3IgdGhlIGlucHV0LiAqL1xuICBnZXQgaW5wdXRJZCgpOiBzdHJpbmcgeyByZXR1cm4gYCR7dGhpcy5pZCB8fCB0aGlzLl91aWR9YCB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaGVkIHRvIHRoZSBhcmlhLWxhYmVsIGF0dHJpYnV0ZSBvZiB0aGUgaG9zdCBlbGVtZW50LiBJbiBtb3N0IGNhc2VzLCBhcmlhLWxhYmVsbGVkYnkgd2lsbFxuICAgKiB0YWtlIHByZWNlZGVuY2Ugc28gdGhpcyBtYXkgYmUgb21pdHRlZC5cbiAgICovXG4gIEBJbnB1dCgnYXJpYS1sYWJlbCcpIGFyaWFMYWJlbD86IHN0cmluZyA9ICcnXG5cbiAgLyoqXG4gICAqIFVzZXJzIGNhbiBzcGVjaWZ5IHRoZSBgYXJpYS1sYWJlbGxlZGJ5YCBhdHRyaWJ1dGUgd2hpY2ggd2lsbCBiZSBmb3J3YXJkZWQgdG8gdGhlIGlucHV0IGVsZW1lbnRcbiAgICovXG4gIEBJbnB1dCgnYXJpYS1sYWJlbGxlZGJ5JykgYXJpYUxhYmVsbGVkYnk/OiBzdHJpbmcgfCBudWxsID0gbnVsbFxuXG4gIC8qKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyByZXF1aXJlZC4gKi9cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHJlcXVpcmVkID0gZmFsc2VcblxuICAvKiogV2hldGhlciB0aGUgY2hlY2tib3ggaXMgY2hlY2tlZC4gKi9cbiAgQElucHV0KClcbiAgZ2V0IGNoZWNrZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9jaGVja2VkIH1cbiAgc2V0IGNoZWNrZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSlcblxuICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5jaGVja2VkKSB7XG4gICAgICB0aGlzLl9jaGVja2VkID0gbmV3VmFsdWVcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpXG4gICAgfVxuICB9XG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2NoZWNrZWQgPSBmYWxzZVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyBkaXNhYmxlZC5cbiAgICovXG4gIC8vIFRoaXMgZnVsbHkgb3ZlcnJpZGVzIHRoZSBpbXBsZW1lbnRhdGlvbiBwcm92aWRlZCBieSBtaXhpbkRpc2FibGVkLCBidXQgdGhlXG4gIC8vIG1peGluIGlzIHN0aWxsIHJlcXVpcmVkIGJlY2F1c2UgbWl4aW5UYWJJbmRleCByZXF1aXJlcyBpdC5cbiAgQElucHV0KClcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fZGlzYWJsZWQgfVxuICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSlcblxuICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5fZGlzYWJsZWQgPSBuZXdWYWx1ZVxuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKClcbiAgICB9XG4gIH1cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZVxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjaGVja2JveCBpcyBpbmRldGVybWluYXRlLiBUaGlzIGlzIGFsc28ga25vd24gYXMgXCJtaXhlZFwiIG1vZGUgYW5kIGNhbiBiZSB1c2VkIHRvXG4gICAqIHJlcHJlc2VudCBhIGNoZWNrYm94IHdpdGggdGhyZWUgc3RhdGVzLCBlLmcuIGEgY2hlY2tib3ggdGhhdCByZXByZXNlbnRzIGEgbmVzdGVkIGxpc3Qgb2ZcbiAgICogY2hlY2thYmxlIGl0ZW1zLiBOb3RlIHRoYXQgd2hlbmV2ZXIgY2hlY2tib3ggaXMgbWFudWFsbHkgY2xpY2tlZCwgaW5kZXRlcm1pbmF0ZSBpcyBpbW1lZGlhdGVseVxuICAgKiBzZXQgdG8gZmFsc2UuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgaW5kZXRlcm1pbmF0ZSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2luZGV0ZXJtaW5hdGUgfVxuICBzZXQgaW5kZXRlcm1pbmF0ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGNvbnN0IGNoYW5nZWQgPSB2YWx1ZSAhPT0gdGhpcy5faW5kZXRlcm1pbmF0ZVxuICAgIHRoaXMuX2luZGV0ZXJtaW5hdGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpXG5cbiAgICBpZiAoY2hhbmdlZCkge1xuICAgICAgdGhpcy5pbmRldGVybWluYXRlQ2hhbmdlLmVtaXQodGhpcy5faW5kZXRlcm1pbmF0ZSlcbiAgICB9XG5cbiAgICB0aGlzLl9zeW5jSW5kZXRlcm1pbmF0ZSh0aGlzLl9pbmRldGVybWluYXRlKVxuICB9XG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2luZGV0ZXJtaW5hdGUgPSBmYWxzZVxuXG4gIC8qKiBOYW1lIHZhbHVlIHdpbGwgYmUgYXBwbGllZCB0byB0aGUgaW5wdXQgZWxlbWVudCBpZiBwcmVzZW50ICovXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwgPSBudWxsXG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgY2hlY2tib3gncyBgY2hlY2tlZGAgdmFsdWUgY2hhbmdlcy4gKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlXG4gIEBPdXRwdXQoKSByZWFkb25seSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFRoZVNlYW1DaGVja2JveENoYW5nZT4oKVxuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGNoZWNrYm94J3MgYGluZGV0ZXJtaW5hdGVgIHZhbHVlIGNoYW5nZXMuICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBpbmRldGVybWluYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcblxuICAvKiogVGhlIHZhbHVlIGF0dHJpYnV0ZSBvZiB0aGUgbmF0aXZlIGlucHV0IGVsZW1lbnQgKi9cbiAgQElucHV0KCkgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGxcblxuICAvKipcbiAgICogVGhlIG5hdGl2ZSBgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiPmAgZWxlbWVudFxuICAgKiBAaWdub3JlXG4gICAqL1xuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIF9pbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4gfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgLyoqXG4gICAqIENhbGxlZCB3aGVuIHRoZSBjaGVja2JveCBpcyBibHVycmVkLiBOZWVkZWQgdG8gcHJvcGVybHkgaW1wbGVtZW50IENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBfb25Ub3VjaGVkOiAoKSA9PiBhbnkgPSAoKSA9PiB7fVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm46ICh2YWx1ZTogYW55KSA9PiB2b2lkID0gKCkgPT4ge31cblxuICBjb25zdHJ1Y3RvcihcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9mb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcbiAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcbiAgICBAQXR0cmlidXRlKCd0YWJpbmRleCcpIHRhYkluZGV4OiBzdHJpbmdcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZilcblxuICAgIHRoaXMudGFiSW5kZXggPSBwYXJzZUludCh0YWJJbmRleCwgMTApIHx8IDBcblxuICAgIHRoaXMuX2ZvY3VzTW9uaXRvci5tb25pdG9yKGVsZW1lbnRSZWYsIHRydWUpLnN1YnNjcmliZShmb2N1c09yaWdpbiA9PiB7XG4gICAgICBpZiAoIWZvY3VzT3JpZ2luKSB7XG4gICAgICAgIC8vIFdoZW4gYSBmb2N1c2VkIGVsZW1lbnQgYmVjb21lcyBkaXNhYmxlZCwgdGhlIGJyb3dzZXIgKmltbWVkaWF0ZWx5KiBmaXJlcyBhIGJsdXIgZXZlbnQuXG4gICAgICAgIC8vIEFuZ3VsYXIgZG9lcyBub3QgZXhwZWN0IGV2ZW50cyB0byBiZSByYWlzZWQgZHVyaW5nIGNoYW5nZSBkZXRlY3Rpb24sIHNvIGFueSBzdGF0ZSBjaGFuZ2VcbiAgICAgICAgLy8gKHN1Y2ggYXMgYSBmb3JtIGNvbnRyb2wncyAnbmctdG91Y2hlZCcpIHdpbGwgY2F1c2UgYSBjaGFuZ2VkLWFmdGVyLWNoZWNrZWQgZXJyb3IuXG4gICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xNzc5My4gVG8gd29yayBhcm91bmQgdGhpcywgd2UgZGVmZXJcbiAgICAgICAgLy8gdGVsbGluZyB0aGUgZm9ybSBjb250cm9sIGl0IGhhcyBiZWVuIHRvdWNoZWQgdW50aWwgdGhlIG5leHQgdGljay5cbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fb25Ub3VjaGVkKClcbiAgICAgICAgICBfY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKClcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZm9jdXNNb25pdG9yLnN0b3BNb25pdG9yaW5nKHRoaXMuX2VsZW1lbnRSZWYpXG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5fc3luY0luZGV0ZXJtaW5hdGUodGhpcy5faW5kZXRlcm1pbmF0ZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgYmVpbmcgY2FsbGVkIHdoZW5ldmVyIHRoZSBsYWJlbCB0ZXh0IGNoYW5nZXMuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIF9vbkxhYmVsVGV4dENoYW5nZSgpIHtcbiAgICAvLyBTaW5jZSB0aGUgZXZlbnQgb2YgdGhlIGBjZGtPYnNlcnZlQ29udGVudGAgZGlyZWN0aXZlIHJ1bnMgb3V0c2lkZSBvZiB0aGUgem9uZSwgdGhlIGNoZWNrYm94XG4gICAgLy8gY29tcG9uZW50IHdpbGwgYmUgb25seSBtYXJrZWQgZm9yIGNoZWNrLCBidXQgbm8gYWN0dWFsIGNoYW5nZSBkZXRlY3Rpb24gcnVucyBhdXRvbWF0aWNhbGx5LlxuICAgIC8vIEluc3RlYWQgb2YgZ29pbmcgYmFjayBpbnRvIHRoZSB6b25lIGluIG9yZGVyIHRvIHRyaWdnZXIgYSBjaGFuZ2UgZGV0ZWN0aW9uIHdoaWNoIGNhdXNlc1xuICAgIC8vICphbGwqIGNvbXBvbmVudHMgdG8gYmUgY2hlY2tlZCAoaWYgZXhwbGljaXRseSBtYXJrZWQgb3Igbm90IHVzaW5nIE9uUHVzaCksIHdlIG9ubHkgdHJpZ2dlclxuICAgIC8vIGFuIGV4cGxpY2l0IGNoYW5nZSBkZXRlY3Rpb24gZm9yIHRoZSBjaGVja2JveCB2aWV3IGFuZCBpdHMgY2hpbGRyZW4uXG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICAvLyBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAvKiogQGlnbm9yZSAqL1xuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmNoZWNrZWQgPSAhIXZhbHVlXG4gIH1cblxuICAvLyBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAvKiogQGlnbm9yZSAqL1xuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCkge1xuICAgIHRoaXMuX2NvbnRyb2xWYWx1ZUFjY2Vzc29yQ2hhbmdlRm4gPSBmblxuICB9XG5cbiAgLy8gSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuXG4gIH1cblxuICAvLyBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIENvbnRyb2xWYWx1ZUFjY2Vzc29yLlxuICAvKiogQGlnbm9yZSAqL1xuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZFxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgX2dldEFyaWFDaGVja2VkKCk6ICd0cnVlJyB8ICdmYWxzZScgfCAnbWl4ZWQnIHtcbiAgICByZXR1cm4gdGhpcy5jaGVja2VkID8gJ3RydWUnIDogKHRoaXMuaW5kZXRlcm1pbmF0ZSA/ICdtaXhlZCcgOiAnZmFsc2UnKVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfZW1pdENoYW5nZUV2ZW50KCkge1xuICAgIGNvbnN0IGV2ZW50ID0gbmV3IFRoZVNlYW1DaGVja2JveENoYW5nZSh0aGlzLCB0aGlzLmNoZWNrZWQpXG5cbiAgICB0aGlzLl9jb250cm9sVmFsdWVBY2Nlc3NvckNoYW5nZUZuKHRoaXMuY2hlY2tlZClcbiAgICB0aGlzLmNoYW5nZS5lbWl0KGV2ZW50KVxuICB9XG5cbiAgLyoqIFRvZ2dsZXMgdGhlIGBjaGVja2VkYCBzdGF0ZSBvZiB0aGUgY2hlY2tib3guICovXG4gIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrZWQgPSAhdGhpcy5jaGVja2VkXG4gIH1cblxuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBmb3IgY2hlY2tib3ggaW5wdXQgZWxlbWVudC5cbiAgICogVG9nZ2xlcyBjaGVja2VkIHN0YXRlIGlmIGVsZW1lbnQgaXMgbm90IGRpc2FibGVkLlxuICAgKiBEbyBub3QgdG9nZ2xlIG9uIChjaGFuZ2UpIGV2ZW50IHNpbmNlIElFIGRvZXNuJ3QgZmlyZSBjaGFuZ2UgZXZlbnQgd2hlblxuICAgKiAgIGluZGV0ZXJtaW5hdGUgY2hlY2tib3ggaXMgY2xpY2tlZC5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgX29uSW5wdXRDbGljayhldmVudDogRXZlbnQpIHtcbiAgICAvLyBJZiByZXNldEluZGV0ZXJtaW5hdGUgaXMgZmFsc2UsIGFuZCB0aGUgY3VycmVudCBzdGF0ZSBpcyBpbmRldGVybWluYXRlLCBkbyBub3RoaW5nIG9uIGNsaWNrXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAvLyBXaGVuIHVzZXIgbWFudWFsbHkgY2xpY2sgb24gdGhlIGNoZWNrYm94LCBgaW5kZXRlcm1pbmF0ZWAgaXMgc2V0IHRvIGZhbHNlLlxuICAgICAgaWYgKHRoaXMuaW5kZXRlcm1pbmF0ZSkge1xuICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICB0aGlzLl9pbmRldGVybWluYXRlID0gZmFsc2VcbiAgICAgICAgICB0aGlzLmluZGV0ZXJtaW5hdGVDaGFuZ2UuZW1pdCh0aGlzLl9pbmRldGVybWluYXRlKVxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICB0aGlzLnRvZ2dsZSgpXG5cbiAgICAgIC8vIEVtaXQgb3VyIGN1c3RvbSBjaGFuZ2UgZXZlbnQgaWYgdGhlIG5hdGl2ZSBpbnB1dCBlbWl0dGVkIG9uZS5cbiAgICAgIC8vIEl0IGlzIGltcG9ydGFudCB0byBvbmx5IGVtaXQgaXQsIGlmIHRoZSBuYXRpdmUgaW5wdXQgdHJpZ2dlcmVkIG9uZSwgYmVjYXVzZVxuICAgICAgLy8gd2UgZG9uJ3Qgd2FudCB0byB0cmlnZ2VyIGEgY2hhbmdlIGV2ZW50LCB3aGVuIHRoZSBgY2hlY2tlZGAgdmFyaWFibGUgY2hhbmdlcyBmb3IgZXhhbXBsZS5cbiAgICAgIHRoaXMuX2VtaXRDaGFuZ2VFdmVudCgpXG4gICAgfVxuICB9XG5cbiAgLyoqIEZvY3VzZXMgdGhlIGNoZWNrYm94LiAqL1xuICBmb2N1cyhvcmlnaW46IEZvY3VzT3JpZ2luID0gJ2tleWJvYXJkJywgb3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faW5wdXRFbGVtZW50KSB7IHJldHVybiB9XG4gICAgdGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuX2lucHV0RWxlbWVudCwgb3JpZ2luLCBvcHRpb25zKVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgX29uSW50ZXJhY3Rpb25FdmVudChldmVudDogRXZlbnQpIHtcbiAgICAvLyBXZSBhbHdheXMgaGF2ZSB0byBzdG9wIHByb3BhZ2F0aW9uIG9uIHRoZSBjaGFuZ2UgZXZlbnQuXG4gICAgLy8gT3RoZXJ3aXNlIHRoZSBjaGFuZ2UgZXZlbnQsIGZyb20gdGhlIGlucHV0IGVsZW1lbnQsIHdpbGwgYnViYmxlIHVwIGFuZFxuICAgIC8vIGVtaXQgaXRzIGV2ZW50IG9iamVjdCB0byB0aGUgYGNoYW5nZWAgb3V0cHV0LlxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gIH1cblxuICAvKipcbiAgICogU3luY3MgdGhlIGluZGV0ZXJtaW5hdGUgdmFsdWUgd2l0aCB0aGUgY2hlY2tib3ggRE9NIG5vZGUuXG4gICAqXG4gICAqIFdlIHN5bmMgYGluZGV0ZXJtaW5hdGVgIGRpcmVjdGx5IG9uIHRoZSBET00gbm9kZSwgYmVjYXVzZSBpbiBJdnkgdGhlIGNoZWNrIGZvciB3aGV0aGVyIGFcbiAgICogcHJvcGVydHkgaXMgc3VwcG9ydGVkIG9uIGFuIGVsZW1lbnQgYm9pbHMgZG93biB0byBgaWYgKHByb3BOYW1lIGluIGVsZW1lbnQpYC4gRG9taW5vJ3NcbiAgICogSFRNTElucHV0RWxlbWVudCBkb2Vzbid0IGhhdmUgYW4gYGluZGV0ZXJtaW5hdGVgIHByb3BlcnR5IHNvIEl2eSB3aWxsIHdhcm4gZHVyaW5nXG4gICAqIHNlcnZlci1zaWRlIHJlbmRlcmluZy5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBfc3luY0luZGV0ZXJtaW5hdGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBuYXRpdmVDaGVja2JveCA9IHRoaXMuX2lucHV0RWxlbWVudFxuXG4gICAgaWYgKG5hdGl2ZUNoZWNrYm94KSB7XG4gICAgICBuYXRpdmVDaGVja2JveC5uYXRpdmVFbGVtZW50LmluZGV0ZXJtaW5hdGUgPSB2YWx1ZVxuICAgIH1cbiAgfVxuXG59XG4iLCI8aW5wdXQgI2lucHV0XG4gIHR5cGU9XCJjaGVja2JveFwiXG4gIGNsYXNzPVwiY3VzdG9tLWNvbnRyb2wtaW5wdXRcIlxuICBbaWRdPVwiaW5wdXRJZFwiXG4gIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gIFtjaGVja2VkXT1cImNoZWNrZWRcIlxuICBbYXR0ci52YWx1ZV09XCJ2YWx1ZVwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gIFt0YWJJbmRleF09XCJ0YWJJbmRleFwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsIHx8IG51bGxcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkYnlcIlxuICBbYXR0ci5hcmlhLWNoZWNrZWRdPVwiX2dldEFyaWFDaGVja2VkKClcIlxuICAoY2hhbmdlKT1cIl9vbkludGVyYWN0aW9uRXZlbnQoJGV2ZW50KVwiXG4gIChjbGljayk9XCJfb25JbnB1dENsaWNrKCRldmVudClcIj5cbjxsYWJlbCAjY2hlY2tib3hMYWJlbFxuICBjbGFzcz1cImN1c3RvbS1jb250cm9sLWxhYmVsXCJcbiAgW2F0dHIuZm9yXT1cImlucHV0SWRcIlxuICAoY2RrT2JzZXJ2ZUNvbnRlbnQpPVwiX29uTGFiZWxUZXh0Q2hhbmdlKClcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9sYWJlbD5cbiJdfQ==
@@ -5,12 +5,12 @@ import { TheSeamCheckboxComponent } from './checkbox.component';
5
5
  import * as i0 from "@angular/core";
6
6
  export class TheSeamCheckboxModule {
7
7
  }
8
- TheSeamCheckboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: TheSeamCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- TheSeamCheckboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.4", ngImport: i0, type: TheSeamCheckboxModule, declarations: [TheSeamCheckboxComponent], imports: [CommonModule,
8
+ TheSeamCheckboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ TheSeamCheckboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: TheSeamCheckboxModule, declarations: [TheSeamCheckboxComponent], imports: [CommonModule,
10
10
  ObserversModule], exports: [TheSeamCheckboxComponent] });
11
- TheSeamCheckboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: TheSeamCheckboxModule, imports: [CommonModule,
11
+ TheSeamCheckboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamCheckboxModule, imports: [CommonModule,
12
12
  ObserversModule] });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: TheSeamCheckboxModule, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamCheckboxModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  declarations: [
@@ -60,4 +60,4 @@ export class TheSeamCheckboxHarness extends ComponentHarness {
60
60
  }
61
61
  }
62
62
  TheSeamCheckboxHarness.hostSelector = 'seam-checkbox';
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9jaGVja2JveC90ZXN0aW5nL2NoZWNrYm94Lmhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBVzdGLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQkFBZ0I7SUFHMUQsZ0ZBQWdGO0lBQ2hGLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBc0M7UUFDaEQsT0FBTyxJQUFJLGdCQUFnQixDQUFDLHNCQUFzQixFQUFFLE9BQU8sQ0FBQzthQUN2RCxTQUFTLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQ2hDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7YUFDbkYsU0FBUyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUNwQyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNyRixDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQUs7UUFDaEIsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzFELENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztRQUNsQixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDNUQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsU0FBUztRQUNwQixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDOUQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsZUFBZTtRQUMxQixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDcEUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsVUFBVTtRQUNyQixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsVUFBVTtRQUNyQixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLEtBQUs7UUFDaEIsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDL0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsZUFBZTtRQUMxQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQTtJQUNuQyxDQUFDOztBQXJFTSxtQ0FBWSxHQUFHLGVBQWUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VIYXJuZXNzRmlsdGVycywgQ29tcG9uZW50SGFybmVzcywgSGFybmVzc1ByZWRpY2F0ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJ1xyXG5cclxuXHJcbmludGVyZmFjZSBUaGVTZWFtQ2hlY2tib3hIYXJuZXNzRmlsdGVycyBleHRlbmRzIEJhc2VIYXJuZXNzRmlsdGVycyB7XHJcbiAgLyoqIEZpbHRlcnMgYmFzZWQgb24gdGhlIGlkIG9mIHRoZSBjaGVja2JveC4gKi9cclxuICBpZD86IG51bWJlciB8IHN0cmluZyB8IFJlZ0V4cFxyXG5cclxuICAvKiogRmlsdGVycyBiYXNlZCBvbiB0aGUgbmFtZSBvZiB0aGUgY2hlY2tib3guICovXHJcbiAgbmFtZT86IHN0cmluZyB8IFJlZ0V4cFxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgVGhlU2VhbUNoZWNrYm94SGFybmVzcyBleHRlbmRzIENvbXBvbmVudEhhcm5lc3Mge1xyXG4gIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnc2VhbS1jaGVja2JveCdcclxuXHJcbiAgLyoqIENyZWF0ZXMgYSBgSGFybmVzc1ByZWRpY2F0ZWAgdXNlZCB0byBsb2NhdGUgYSBwYXJ0aWN1bGFyIGBNeU1lbnVIYXJuZXNzYC4gKi9cclxuICBzdGF0aWMgd2l0aChvcHRpb25zOiBUaGVTZWFtQ2hlY2tib3hIYXJuZXNzRmlsdGVycyk6IEhhcm5lc3NQcmVkaWNhdGU8VGhlU2VhbUNoZWNrYm94SGFybmVzcz4ge1xyXG4gICAgcmV0dXJuIG5ldyBIYXJuZXNzUHJlZGljYXRlKFRoZVNlYW1DaGVja2JveEhhcm5lc3MsIG9wdGlvbnMpXHJcbiAgICAgICAgLmFkZE9wdGlvbignY2hlY2tib3ggaWQnLCBvcHRpb25zLmlkLFxyXG4gICAgICAgICAgICAoaGFybmVzcywgaW5kZXgpID0+IEhhcm5lc3NQcmVkaWNhdGUuc3RyaW5nTWF0Y2hlcyhoYXJuZXNzLmdldElkKCksIGAke2luZGV4fWApKVxyXG4gICAgICAgIC5hZGRPcHRpb24oJ2NoZWNrYm94IG5hbWUnLCBvcHRpb25zLm5hbWUsXHJcbiAgICAgICAgICAgIChoYXJuZXNzLCBuYW1lKSA9PiBIYXJuZXNzUHJlZGljYXRlLnN0cmluZ01hdGNoZXMoaGFybmVzcy5nZXROYW1lKCksIG5hbWUpKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldElkKCk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xyXG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldElucHV0RWxlbWVudCgpKS5nZXRBdHRyaWJ1dGUoJ2lkJylcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXROYW1lKCk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xyXG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldElucHV0RWxlbWVudCgpKS5nZXRBdHRyaWJ1dGUoJ25hbWUnKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgY2hlY2tlZCBzdGF0ZSBvZiB0aGUgY2hlY2tib3guXHJcbiAgICpcclxuICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBjaGVja2JveCBpcyBjaGVja2VkLCBmYWxzZSBpZiBub3RcclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgaXNDaGVja2VkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldElucHV0RWxlbWVudCgpKS5nZXRQcm9wZXJ0eSgnY2hlY2tlZCcpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBpbmRldGVybWluYXRlIHN0YXRlIG9mIHRoZSBjaGVja2JveC5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGNoZWNrYm94IGlzIGluZGV0ZXJtaW5hdGUsIGZhbHNlIGlmIG5vdFxyXG4gICAqL1xyXG4gIHB1YmxpYyBhc3luYyBpc0luZGV0ZXJtaW5hdGUoKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkpLmdldFByb3BlcnR5KCdpbmRldGVybWluYXRlJylcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGRpc2FibGVkIHN0YXRlIG9mIHRoZSBjaGVja2JveC5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGNoZWNrYm94IGlzIGRpc2FibGVkLCBmYWxzZSBpZiBub3RcclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgaXNEaXNhYmxlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiAoYXdhaXQgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKSkuZ2V0UHJvcGVydHkoJ2Rpc2FibGVkJylcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIHJlcXVpcmVkIHN0YXRlIG9mIHRoZSBjaGVja2JveC5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGNoZWNrYm94IGlzIHJlcXVpcmVkLCBmYWxzZSBpZiBub3RcclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgaXNSZXF1aXJlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiAoYXdhaXQgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKSkuZ2V0UHJvcGVydHkoJ3JlcXVpcmVkJylcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsaWNrcyB0aGUgY2hlY2tib3guXHJcbiAgICovXHJcbiAgcHVibGljIGFzeW5jIGNsaWNrKCkge1xyXG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldElucHV0RWxlbWVudCgpKS5jbGljaygpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBpbnB1dCBlbGVtZW50IG9mIHRoZSBjaGVja2JveC5cclxuICAgKlxyXG4gICAqIEByZXR1cm5zIHRoZSBpbnB1dCBlbGVtZW50IG9mIHRoZSBjaGVja2JveFxyXG4gICAqL1xyXG4gIHB1YmxpYyBhc3luYyBnZXRJbnB1dEVsZW1lbnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2NhdG9yRm9yKCdpbnB1dCcpKClcclxuICB9XHJcbn1cclxuIl19
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guaGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9jaGVja2JveC90ZXN0aW5nL2NoZWNrYm94Lmhhcm5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBVTdGLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQkFBZ0I7SUFHMUQsZ0ZBQWdGO0lBQ2hGLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBc0M7UUFDaEQsT0FBTyxJQUFJLGdCQUFnQixDQUFDLHNCQUFzQixFQUFFLE9BQU8sQ0FBQzthQUN2RCxTQUFTLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQ2hDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7YUFDbkYsU0FBUyxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUNwQyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUNyRixDQUFDO0lBRU0sS0FBSyxDQUFDLEtBQUs7UUFDaEIsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQzFELENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztRQUNsQixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDNUQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsU0FBUztRQUNwQixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDOUQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsZUFBZTtRQUMxQixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDcEUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsVUFBVTtRQUNyQixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsVUFBVTtRQUNyQixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLEtBQUs7UUFDaEIsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDL0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsZUFBZTtRQUMxQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQTtJQUNuQyxDQUFDOztBQXJFTSxtQ0FBWSxHQUFHLGVBQWUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VIYXJuZXNzRmlsdGVycywgQ29tcG9uZW50SGFybmVzcywgSGFybmVzc1ByZWRpY2F0ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJ1xuXG5pbnRlcmZhY2UgVGhlU2VhbUNoZWNrYm94SGFybmVzc0ZpbHRlcnMgZXh0ZW5kcyBCYXNlSGFybmVzc0ZpbHRlcnMge1xuICAvKiogRmlsdGVycyBiYXNlZCBvbiB0aGUgaWQgb2YgdGhlIGNoZWNrYm94LiAqL1xuICBpZD86IG51bWJlciB8IHN0cmluZyB8IFJlZ0V4cFxuXG4gIC8qKiBGaWx0ZXJzIGJhc2VkIG9uIHRoZSBuYW1lIG9mIHRoZSBjaGVja2JveC4gKi9cbiAgbmFtZT86IHN0cmluZyB8IFJlZ0V4cFxufVxuXG5leHBvcnQgY2xhc3MgVGhlU2VhbUNoZWNrYm94SGFybmVzcyBleHRlbmRzIENvbXBvbmVudEhhcm5lc3Mge1xuICBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ3NlYW0tY2hlY2tib3gnXG5cbiAgLyoqIENyZWF0ZXMgYSBgSGFybmVzc1ByZWRpY2F0ZWAgdXNlZCB0byBsb2NhdGUgYSBwYXJ0aWN1bGFyIGBNeU1lbnVIYXJuZXNzYC4gKi9cbiAgc3RhdGljIHdpdGgob3B0aW9uczogVGhlU2VhbUNoZWNrYm94SGFybmVzc0ZpbHRlcnMpOiBIYXJuZXNzUHJlZGljYXRlPFRoZVNlYW1DaGVja2JveEhhcm5lc3M+IHtcbiAgICByZXR1cm4gbmV3IEhhcm5lc3NQcmVkaWNhdGUoVGhlU2VhbUNoZWNrYm94SGFybmVzcywgb3B0aW9ucylcbiAgICAgICAgLmFkZE9wdGlvbignY2hlY2tib3ggaWQnLCBvcHRpb25zLmlkLFxuICAgICAgICAgICAgKGhhcm5lc3MsIGluZGV4KSA9PiBIYXJuZXNzUHJlZGljYXRlLnN0cmluZ01hdGNoZXMoaGFybmVzcy5nZXRJZCgpLCBgJHtpbmRleH1gKSlcbiAgICAgICAgLmFkZE9wdGlvbignY2hlY2tib3ggbmFtZScsIG9wdGlvbnMubmFtZSxcbiAgICAgICAgICAgIChoYXJuZXNzLCBuYW1lKSA9PiBIYXJuZXNzUHJlZGljYXRlLnN0cmluZ01hdGNoZXMoaGFybmVzcy5nZXROYW1lKCksIG5hbWUpKVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldElkKCk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKSkuZ2V0QXR0cmlidXRlKCdpZCcpXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0TmFtZSgpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkpLmdldEF0dHJpYnV0ZSgnbmFtZScpXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY2hlY2tlZCBzdGF0ZSBvZiB0aGUgY2hlY2tib3guXG4gICAqXG4gICAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGNoZWNrYm94IGlzIGNoZWNrZWQsIGZhbHNlIGlmIG5vdFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzQ2hlY2tlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkpLmdldFByb3BlcnR5KCdjaGVja2VkJylcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBpbmRldGVybWluYXRlIHN0YXRlIG9mIHRoZSBjaGVja2JveC5cbiAgICpcbiAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgY2hlY2tib3ggaXMgaW5kZXRlcm1pbmF0ZSwgZmFsc2UgaWYgbm90XG4gICAqL1xuICBwdWJsaWMgYXN5bmMgaXNJbmRldGVybWluYXRlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKSkuZ2V0UHJvcGVydHkoJ2luZGV0ZXJtaW5hdGUnKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGRpc2FibGVkIHN0YXRlIG9mIHRoZSBjaGVja2JveC5cbiAgICpcbiAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgY2hlY2tib3ggaXMgZGlzYWJsZWQsIGZhbHNlIGlmIG5vdFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzRGlzYWJsZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldElucHV0RWxlbWVudCgpKS5nZXRQcm9wZXJ0eSgnZGlzYWJsZWQnKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHJlcXVpcmVkIHN0YXRlIG9mIHRoZSBjaGVja2JveC5cbiAgICpcbiAgICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgY2hlY2tib3ggaXMgcmVxdWlyZWQsIGZhbHNlIGlmIG5vdFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGlzUmVxdWlyZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldElucHV0RWxlbWVudCgpKS5nZXRQcm9wZXJ0eSgncmVxdWlyZWQnKVxuICB9XG5cbiAgLyoqXG4gICAqIENsaWNrcyB0aGUgY2hlY2tib3guXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgY2xpY2soKSB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLmdldElucHV0RWxlbWVudCgpKS5jbGljaygpXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgaW5wdXQgZWxlbWVudCBvZiB0aGUgY2hlY2tib3guXG4gICAqXG4gICAqIEByZXR1cm5zIHRoZSBpbnB1dCBlbGVtZW50IG9mIHRoZSBjaGVja2JveFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldElucHV0RWxlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5sb2NhdG9yRm9yKCdpbnB1dCcpKClcbiAgfVxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export * from './checkbox.harness';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vY2hlY2tib3gvdGVzdGluZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jaGVja2JveC5oYXJuZXNzJ1xyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vY2hlY2tib3gvdGVzdGluZy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jaGVja2JveC5oYXJuZXNzJ1xuIl19