@theseam/ui-common 0.4.3 → 0.4.5

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 (424) hide show
  1. package/datatable/models/preferences-accessor.d.ts +3 -15
  2. package/datatable/models/preferences.d.ts +2 -1
  3. package/datatable/services/datatable-preferences.service.d.ts +11 -14
  4. package/datatable/tokens/datatable-preferences-accessor.d.ts +2 -2
  5. package/esm2020/asset-reader/asset-reader-helper.service.mjs +3 -3
  6. package/esm2020/asset-reader/asset-reader.module.mjs +4 -4
  7. package/esm2020/asset-reader/encrypted-asset-link.directive.mjs +3 -3
  8. package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +3 -3
  9. package/esm2020/breadcrumbs/breadcrumbs.module.mjs +4 -4
  10. package/esm2020/breadcrumbs/breadcrumbs.service.mjs +3 -3
  11. package/esm2020/buttons/badge-button/badge-button.component.mjs +6 -6
  12. package/esm2020/buttons/button/button.component.mjs +9 -9
  13. package/esm2020/buttons/buttons.module.mjs +4 -4
  14. package/esm2020/buttons/progress-circle-button/progress-circle-button.component.mjs +3 -3
  15. package/esm2020/buttons/toggle-button/toggle-button.component.mjs +3 -3
  16. package/esm2020/card/card-action/card-action.component.mjs +3 -3
  17. package/esm2020/card/card-body/card-body.component.mjs +3 -3
  18. package/esm2020/card/card-footer/card-footer.component.mjs +3 -3
  19. package/esm2020/card/card-header/card-header.component.mjs +3 -3
  20. package/esm2020/card/card.component.mjs +3 -3
  21. package/esm2020/card/card.module.mjs +4 -4
  22. package/esm2020/carousel/carousel-slide.directive.mjs +3 -3
  23. package/esm2020/carousel/carousel.component.mjs +3 -3
  24. package/esm2020/carousel/carousel.module.mjs +4 -4
  25. package/esm2020/checkbox/checkbox.component.mjs +3 -3
  26. package/esm2020/checkbox/checkbox.module.mjs +4 -4
  27. package/esm2020/confirm-dialog/confirm-click.directive.mjs +3 -3
  28. package/esm2020/confirm-dialog/confirm-dialog.component.mjs +3 -3
  29. package/esm2020/confirm-dialog/confirm-dialog.module.mjs +4 -4
  30. package/esm2020/confirm-dialog/confirm-dialog.service.mjs +3 -3
  31. package/esm2020/data-exporter/data-exporter.module.mjs +4 -4
  32. package/esm2020/data-exporter/exporters/csv-exporter.mjs +3 -3
  33. package/esm2020/data-exporter/exporters/xlsx-exporter.mjs +3 -3
  34. package/esm2020/data-filters/data-filters.module.mjs +4 -4
  35. package/esm2020/data-filters/filters/data-filter-search/data-filter-search.component.mjs +3 -3
  36. package/esm2020/data-filters/filters/data-filter-text/data-filter-text.component.mjs +3 -3
  37. package/esm2020/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.mjs +3 -3
  38. package/esm2020/datatable/datatable/datatable.component.mjs +6 -6
  39. package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +3 -3
  40. package/esm2020/datatable/datatable-action-menu-item/datatable-action-menu-item.component.mjs +3 -3
  41. package/esm2020/datatable/datatable-column/datatable-column.component.mjs +3 -3
  42. package/esm2020/datatable/datatable-column-preferences/datatable-column-preferences.component.mjs +3 -3
  43. package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +3 -3
  44. package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +3 -3
  45. package/esm2020/datatable/datatable-footer/datatable-footer-tpl.directive.mjs +3 -3
  46. package/esm2020/datatable/datatable-footer/datatable-footer.directive.mjs +3 -3
  47. package/esm2020/datatable/datatable-menu-bar/datatable-menu-bar.component.mjs +3 -3
  48. package/esm2020/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.mjs +3 -3
  49. package/esm2020/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.mjs +3 -3
  50. package/esm2020/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.mjs +3 -3
  51. package/esm2020/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.mjs +3 -3
  52. package/esm2020/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.mjs +3 -3
  53. package/esm2020/datatable/datatable-row-detail/datatable-row-detail-tpl.directive.mjs +3 -3
  54. package/esm2020/datatable/datatable-row-detail/datatable-row-detail.directive.mjs +3 -3
  55. package/esm2020/datatable/datatable.module.mjs +4 -4
  56. package/esm2020/datatable/directives/datatable-action-menu-item.directive.mjs +3 -3
  57. package/esm2020/datatable/directives/datatable-action-menu-toggle.directive.mjs +3 -3
  58. package/esm2020/datatable/directives/datatable-cell-tpl.directive.mjs +3 -3
  59. package/esm2020/datatable/directives/datatable-filter.directive.mjs +3 -3
  60. package/esm2020/datatable/directives/datatable-row-action-item.directive.mjs +3 -3
  61. package/esm2020/datatable/models/preferences-accessor.mjs +1 -1
  62. package/esm2020/datatable/models/preferences.mjs +1 -1
  63. package/esm2020/datatable/services/columns-alterations-manager.service.mjs +3 -3
  64. package/esm2020/datatable/services/columns-manager.service.mjs +3 -3
  65. package/esm2020/datatable/services/datatable-column-changes.service.mjs +3 -3
  66. package/esm2020/datatable/services/datatable-preferences.service.mjs +36 -108
  67. package/esm2020/datatable/services/datatable-scrollbar-helper.service.mjs +3 -3
  68. package/esm2020/datatable/tokens/datatable-preferences-accessor.mjs +1 -1
  69. package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +3 -3
  70. package/esm2020/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.mjs +3 -3
  71. package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.mjs +3 -3
  72. package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +3 -3
  73. package/esm2020/datatable-dynamic/datatable-dynamic.module.mjs +4 -4
  74. package/esm2020/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.mjs +3 -3
  75. package/esm2020/datatable-dynamic/dynamic-datatable-def.service.mjs +3 -3
  76. package/esm2020/datatable-dynamic/dynamic-datatable-row-actions.service.mjs +3 -3
  77. package/esm2020/dynamic/action/api/dynamic-action-api.service.mjs +3 -3
  78. package/esm2020/dynamic/action/dynamic-action-helper.service.mjs +3 -3
  79. package/esm2020/dynamic/action/link/dynamic-action-link.service.mjs +3 -3
  80. package/esm2020/dynamic/action/modal/dynamic-action-modal.service.mjs +3 -3
  81. package/esm2020/dynamic/dynamic-value-helper.service.mjs +3 -3
  82. package/esm2020/dynamic/evaluators/exporters-data-evaluator/exporters-data-evaluator.mjs +3 -3
  83. package/esm2020/dynamic/evaluators/jexl-evaluator/jexl-evaluator.mjs +3 -3
  84. package/esm2020/dynamic-component-loader/dynamic-component-loader.module.mjs +4 -4
  85. package/esm2020/dynamic-component-loader/dynamic-component-loader.service.mjs +3 -3
  86. package/esm2020/footer-bar/footer-bar/footer-bar.component.mjs +3 -3
  87. package/esm2020/footer-bar/footer-bar.module.mjs +4 -4
  88. package/esm2020/form-field/form-field-error.directive.mjs +3 -3
  89. package/esm2020/form-field/form-field-help-text.directive.mjs +3 -3
  90. package/esm2020/form-field/form-field-label-tpl.directive.mjs +3 -3
  91. package/esm2020/form-field/form-field-required-indicator.component.mjs +3 -3
  92. package/esm2020/form-field/form-field.component.mjs +3 -3
  93. package/esm2020/form-field/form-field.module.mjs +4 -4
  94. package/esm2020/form-field/input.directive.mjs +3 -3
  95. package/esm2020/form-field-error/form-field-error/form-field-error.component.mjs +3 -3
  96. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item-tpl.directive.mjs +3 -3
  97. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item.directive.mjs +3 -3
  98. package/esm2020/form-field-error/form-field-error-list/form-field-error-list.component.mjs +3 -3
  99. package/esm2020/form-field-error/form-field-error.module.mjs +4 -4
  100. package/esm2020/framework/base-layout/base-layout.component.mjs +3 -3
  101. package/esm2020/framework/base-layout/base-layout.module.mjs +4 -4
  102. package/esm2020/framework/base-layout/directives/base-layout-content-footer.directive.mjs +3 -3
  103. package/esm2020/framework/base-layout/directives/base-layout-content-header.directive.mjs +3 -3
  104. package/esm2020/framework/base-layout/directives/base-layout-content.directive.mjs +3 -3
  105. package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +3 -3
  106. package/esm2020/framework/base-layout/directives/base-layout-side-bar-footer.directive.mjs +3 -3
  107. package/esm2020/framework/base-layout/directives/base-layout-side-bar.directive.mjs +3 -3
  108. package/esm2020/framework/base-layout/directives/base-layout-top-bar.directive.mjs +3 -3
  109. package/esm2020/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.mjs +3 -3
  110. package/esm2020/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.mjs +3 -3
  111. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.mjs +3 -3
  112. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.mjs +3 -3
  113. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.component.mjs +3 -3
  114. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.service.mjs +12 -6
  115. package/esm2020/framework/dashboard/dashboard.component.mjs +3 -3
  116. package/esm2020/framework/dashboard/dashboard.module.mjs +4 -4
  117. package/esm2020/framework/dynamic-router/dynamic-router.module.mjs +4 -4
  118. package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.mjs +3 -3
  119. package/esm2020/framework/dynamic-router/resolvers/hierarchy-level.resolver.mjs +3 -3
  120. package/esm2020/framework/schema-form/schema-form-framework.component.mjs +3 -3
  121. package/esm2020/framework/schema-form/schema-form-framework.mjs +3 -3
  122. package/esm2020/framework/schema-form/schema-form.module.mjs +4 -4
  123. package/esm2020/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.mjs +3 -3
  124. package/esm2020/framework/schema-form-controls/schema-form-controls.module.mjs +4 -4
  125. package/esm2020/framework/schema-form-controls/schema-form-input/schema-form-input.component.mjs +3 -3
  126. package/esm2020/framework/schema-form-controls/schema-form-number/schema-form-number.component.mjs +3 -3
  127. package/esm2020/framework/schema-form-controls/schema-form-select/schema-form-select.component.mjs +3 -3
  128. package/esm2020/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.mjs +3 -3
  129. package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +3 -3
  130. package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +3 -3
  131. package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +3 -3
  132. package/esm2020/framework/side-nav/side-nav.component.mjs +3 -3
  133. package/esm2020/framework/side-nav/side-nav.module.mjs +4 -4
  134. package/esm2020/framework/side-nav/side-nav.service.mjs +3 -3
  135. package/esm2020/framework/top-bar/top-bar-item.directive.mjs +3 -3
  136. package/esm2020/framework/top-bar/top-bar-menu-btn-detail.directive.mjs +3 -3
  137. package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +3 -3
  138. package/esm2020/framework/top-bar/top-bar-menu.directive.mjs +3 -3
  139. package/esm2020/framework/top-bar/top-bar-title/top-bar-title.component.mjs +3 -3
  140. package/esm2020/framework/top-bar/top-bar.component.mjs +3 -3
  141. package/esm2020/framework/top-bar/top-bar.module.mjs +4 -4
  142. package/esm2020/google-maps/google-maps/google-maps.component.mjs +3 -3
  143. package/esm2020/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.mjs +3 -3
  144. package/esm2020/google-maps/google-maps-api-loader/noop-google-maps-api-loader.mjs +3 -3
  145. package/esm2020/google-maps/google-maps-controls.service.mjs +3 -3
  146. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +3 -3
  147. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.mjs +3 -3
  148. package/esm2020/google-maps/google-maps-recenter-button-control/google-maps-recenter-button-control.component.mjs +3 -3
  149. package/esm2020/google-maps/google-maps-upload-button-control/google-maps-upload-button-control.component.mjs +3 -3
  150. package/esm2020/google-maps/google-maps.module.mjs +4 -4
  151. package/esm2020/google-maps/google-maps.service.mjs +3 -3
  152. package/esm2020/google-maps/map-control.component.mjs +3 -3
  153. package/esm2020/google-maps/map-file-drop/map-file-drop.component.mjs +3 -3
  154. package/esm2020/google-maps/map-value-manager.service.mjs +3 -3
  155. package/esm2020/graphql/datatable/datatable-graphql.service.mjs +3 -3
  156. package/esm2020/icon/icon/icon.component.mjs +3 -3
  157. package/esm2020/icon/icon-btn/icon-btn.component.mjs +3 -3
  158. package/esm2020/icon/icon-notification/icon-notification.component.mjs +3 -3
  159. package/esm2020/icon/icon.module.mjs +4 -4
  160. package/esm2020/layout/layout.module.mjs +4 -4
  161. package/esm2020/layout/layout.service.mjs +3 -3
  162. package/esm2020/loading/loading/loading.component.mjs +3 -3
  163. package/esm2020/loading/loading-overlay.service.mjs +3 -3
  164. package/esm2020/loading/loading.module.mjs +4 -4
  165. package/esm2020/menu/menu-divider.component.mjs +3 -3
  166. package/esm2020/menu/menu-footer/menu-footer.component.mjs +3 -3
  167. package/esm2020/menu/menu-footer-action/menu-footer-action.component.mjs +3 -3
  168. package/esm2020/menu/menu-header/menu-header.component.mjs +3 -3
  169. package/esm2020/menu/menu-item.component.mjs +3 -3
  170. package/esm2020/menu/menu-toggle.directive.mjs +3 -3
  171. package/esm2020/menu/menu.component.mjs +3 -3
  172. package/esm2020/menu/menu.module.mjs +4 -4
  173. package/esm2020/modal/directives/modal-close.directive.mjs +3 -3
  174. package/esm2020/modal/directives/modal-footer-tpl.directive.mjs +3 -3
  175. package/esm2020/modal/directives/modal-header-icon-tpl.directive.mjs +3 -3
  176. package/esm2020/modal/directives/modal-header-title-tpl.directive.mjs +3 -3
  177. package/esm2020/modal/directives/modal-title.directive.mjs +3 -3
  178. package/esm2020/modal/directives/modal.directive.mjs +3 -3
  179. package/esm2020/modal/modal/modal.component.mjs +3 -3
  180. package/esm2020/modal/modal-body/modal-body.component.mjs +3 -3
  181. package/esm2020/modal/modal-container/modal-container.component.mjs +3 -3
  182. package/esm2020/modal/modal-footer/modal-footer.component.mjs +3 -3
  183. package/esm2020/modal/modal-header/modal-header.component.mjs +3 -3
  184. package/esm2020/modal/modal.module.mjs +4 -4
  185. package/esm2020/modal/modal.service.mjs +3 -3
  186. package/esm2020/modal/route-modal/route-modal.component.mjs +3 -3
  187. package/esm2020/popover/popover/popover.component.mjs +3 -3
  188. package/esm2020/popover/popover.directive.mjs +3 -3
  189. package/esm2020/popover/popover.module.mjs +4 -4
  190. package/esm2020/progress/progress-circle/progress-circle.component.mjs +3 -3
  191. package/esm2020/progress/progress.module.mjs +4 -4
  192. package/esm2020/scrollbar/overlay-scrollbar.directive.mjs +3 -3
  193. package/esm2020/scrollbar/overlay-scrollbars.service.mjs +3 -3
  194. package/esm2020/scrollbar/scrollbar.module.mjs +4 -4
  195. package/esm2020/services/asset-loader.service.mjs +3 -3
  196. package/esm2020/services/font-loader.service.mjs +3 -3
  197. package/esm2020/services/preferences/preferences-accessor.mjs +2 -0
  198. package/esm2020/services/preferences/preferences-manager.service.mjs +69 -0
  199. package/esm2020/services/preferences/preferences-record.mjs +74 -0
  200. package/esm2020/services/preferences/preferences.models.mjs +2 -0
  201. package/esm2020/services/public-api.mjs +5 -1
  202. package/esm2020/services/router-helpers.service.mjs +3 -3
  203. package/esm2020/shared/components/password-input-reveal/password-input-reveal.component.mjs +3 -3
  204. package/esm2020/shared/directives/auto-focus.directive.mjs +3 -3
  205. package/esm2020/shared/directives/click-outside.directive.mjs +3 -3
  206. package/esm2020/shared/directives/disable-control.directive.mjs +3 -3
  207. package/esm2020/shared/directives/elem-resized.directive.mjs +3 -3
  208. package/esm2020/shared/directives/hover-class-toggle.directive.mjs +3 -3
  209. package/esm2020/shared/directives/hover-class.directive.mjs +3 -3
  210. package/esm2020/shared/directives/ng-select-extra.directive.mjs +3 -3
  211. package/esm2020/shared/directives/ngx-quill-extra.directive.mjs +3 -3
  212. package/esm2020/shared/pipes/mask-chars.pipe.mjs +3 -3
  213. package/esm2020/shared/pipes/truncate.pipe.mjs +3 -3
  214. package/esm2020/shared/shared.module.mjs +4 -4
  215. package/esm2020/storage/local-storage.service.mjs +3 -3
  216. package/esm2020/story-helpers/initial-route.service.mjs +3 -3
  217. package/esm2020/story-helpers/public-api.mjs +2 -1
  218. package/esm2020/story-helpers/story-empty-with-route.component.mjs +3 -3
  219. package/esm2020/story-helpers/story-empty.component.mjs +3 -3
  220. package/esm2020/story-helpers/story-helper-components.module.mjs +4 -4
  221. package/esm2020/story-helpers/story-initial-route.mjs +4 -4
  222. package/esm2020/story-helpers/story-modal-container.component.mjs +3 -3
  223. package/esm2020/story-helpers/story-preferences-accessor.service.mjs +34 -0
  224. package/esm2020/story-helpers/story-toastr.service.mjs +3 -3
  225. package/esm2020/tabbed/directives/tabbed-tab-content.directive.mjs +3 -3
  226. package/esm2020/tabbed/directives/tabbed-tab.directive.mjs +3 -3
  227. package/esm2020/tabbed/tabbed-content/tabbed-content.component.mjs +3 -3
  228. package/esm2020/tabbed/tabbed-item/tabbed-item.component.mjs +3 -3
  229. package/esm2020/tabbed/tabbed.component.mjs +3 -3
  230. package/esm2020/tabbed/tabbed.module.mjs +4 -4
  231. package/esm2020/tabbed/tabbed.service.mjs +3 -3
  232. package/esm2020/table/table/table.component.mjs +3 -3
  233. package/esm2020/table/table.module.mjs +4 -4
  234. package/esm2020/table-cell-type/services/table-cell-types-helpers.service.mjs +3 -3
  235. package/esm2020/table-cell-type/table-cell-type-selector.component.mjs +3 -3
  236. package/esm2020/table-cell-type/table-cell-type.module.mjs +4 -4
  237. package/esm2020/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.mjs +3 -3
  238. package/esm2020/table-cell-types/table-cell-type-date/table-cell-type-date.component.mjs +3 -3
  239. package/esm2020/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.mjs +3 -3
  240. package/esm2020/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.mjs +3 -3
  241. package/esm2020/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.mjs +3 -3
  242. package/esm2020/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.mjs +3 -3
  243. package/esm2020/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.mjs +3 -3
  244. package/esm2020/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.mjs +3 -3
  245. package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +3 -3
  246. package/esm2020/table-cell-types/table-cell-types.module.mjs +4 -4
  247. package/esm2020/tel-input/phone-number.pipe.mjs +3 -3
  248. package/esm2020/tel-input/tel-input/tel-input.component.mjs +3 -3
  249. package/esm2020/tel-input/tel-input.directive.mjs +3 -3
  250. package/esm2020/tel-input/tel-input.module.mjs +4 -4
  251. package/esm2020/tiled-select/components/tiled-select/tiled-select.component.mjs +3 -3
  252. package/esm2020/tiled-select/components/tiled-select-tile/tiled-select-tile.component.mjs +3 -3
  253. package/esm2020/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.mjs +3 -3
  254. package/esm2020/tiled-select/directives/tiled-select-tile-icon-tpl.directive.mjs +3 -3
  255. package/esm2020/tiled-select/directives/tiled-select-tile-label-tpl.directive.mjs +3 -3
  256. package/esm2020/tiled-select/directives/tiled-select-tile-overlay.directive.mjs +3 -3
  257. package/esm2020/tiled-select/tiled-select.module.mjs +4 -4
  258. package/esm2020/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.mjs +3 -3
  259. package/esm2020/toggle-edit/toggle-edit-display-tpl.directive.mjs +3 -3
  260. package/esm2020/toggle-edit/toggle-edit-keyboard-listener.service.mjs +3 -3
  261. package/esm2020/toggle-edit/toggle-edit.component.mjs +3 -3
  262. package/esm2020/toggle-edit/toggle-edit.module.mjs +4 -4
  263. package/esm2020/toggle-group/toggle-group-option.directive.mjs +3 -3
  264. package/esm2020/toggle-group/toggle-group.directive.mjs +3 -3
  265. package/esm2020/toggle-group/toggle-group.module.mjs +4 -4
  266. package/esm2020/unsaved-changes-dialog/unsaved-changes-can-deactivate.mjs +3 -3
  267. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +3 -3
  268. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.guard.mjs +3 -3
  269. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +4 -4
  270. package/esm2020/vertical-list-filter/vertical-list-filter.component.mjs +3 -3
  271. package/esm2020/viewers/html-template-viewer/html-template-viewer.component.mjs +3 -3
  272. package/esm2020/viewers/html-template-viewer/html-template-viewer.module.mjs +4 -4
  273. package/esm2020/viewers/pdf-viewer/pdf-page/pdf-page.component.mjs +3 -3
  274. package/esm2020/viewers/pdf-viewer/pdf-renderer.service.mjs +3 -3
  275. package/esm2020/viewers/pdf-viewer/pdf-viewer.component.mjs +3 -3
  276. package/esm2020/viewers/pdf-viewer/pdf-viewer.module.mjs +4 -4
  277. package/esm2020/widget/directives/widget-drag-handle.directive.mjs +3 -3
  278. package/esm2020/widget/directives/widget-icon-tpl.directive.mjs +3 -3
  279. package/esm2020/widget/directives/widget-title-tpl.directive.mjs +3 -3
  280. package/esm2020/widget/preferences/widget-preferences.models.mjs +5 -0
  281. package/esm2020/widget/preferences/widget-preferences.service.mjs +78 -0
  282. package/esm2020/widget/preferences/widget-preferences.token.mjs +3 -0
  283. package/esm2020/widget/widget/widget.component.mjs +69 -32
  284. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.component.mjs +3 -3
  285. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.module.mjs +4 -4
  286. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.component.mjs +3 -3
  287. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.module.mjs +4 -4
  288. package/esm2020/widget/widget-content-components/widget-description/widget-description.component.mjs +3 -3
  289. package/esm2020/widget/widget-content-components/widget-description/widget-description.module.mjs +4 -4
  290. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.component.mjs +3 -3
  291. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.module.mjs +4 -4
  292. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.component.mjs +3 -3
  293. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.module.mjs +4 -4
  294. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.component.mjs +3 -3
  295. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.module.mjs +4 -4
  296. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.component.mjs +3 -3
  297. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.module.mjs +4 -4
  298. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item-icon-tpl.directive.mjs +3 -3
  299. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.mjs +15 -15
  300. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.component.mjs +3 -3
  301. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.module.mjs +4 -4
  302. package/esm2020/widget/widget-content-components/widget-table/widget-table.component.mjs +3 -3
  303. package/esm2020/widget/widget-content-components/widget-table/widget-table.module.mjs +4 -4
  304. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.mjs +3 -3
  305. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.mjs +3 -3
  306. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.mjs +3 -3
  307. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-secondary-icon.directive.mjs +3 -3
  308. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.component.mjs +6 -6
  309. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.module.mjs +4 -4
  310. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.component.mjs +3 -3
  311. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.module.mjs +4 -4
  312. package/esm2020/widget/widget-footer/widget-footer.component.mjs +3 -3
  313. package/esm2020/widget/widget-registry.service.mjs +3 -3
  314. package/esm2020/widget/widget-token.mjs +2 -1
  315. package/esm2020/widget/widget.module.mjs +4 -4
  316. package/fesm2015/theseam-ui-common-asset-reader.mjs +10 -10
  317. package/fesm2015/theseam-ui-common-breadcrumbs.mjs +10 -10
  318. package/fesm2015/theseam-ui-common-buttons.mjs +25 -25
  319. package/fesm2015/theseam-ui-common-card.mjs +19 -19
  320. package/fesm2015/theseam-ui-common-carousel.mjs +10 -10
  321. package/fesm2015/theseam-ui-common-checkbox.mjs +7 -7
  322. package/fesm2015/theseam-ui-common-confirm-dialog.mjs +13 -13
  323. package/fesm2015/theseam-ui-common-data-exporter.mjs +10 -10
  324. package/fesm2015/theseam-ui-common-data-filters.mjs +13 -13
  325. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +25 -25
  326. package/fesm2015/theseam-ui-common-datatable.mjs +124 -195
  327. package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
  328. package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs +7 -7
  329. package/fesm2015/theseam-ui-common-dynamic.mjs +21 -21
  330. package/fesm2015/theseam-ui-common-footer-bar.mjs +7 -7
  331. package/fesm2015/theseam-ui-common-form-field-error.mjs +16 -16
  332. package/fesm2015/theseam-ui-common-form-field.mjs +22 -22
  333. package/fesm2015/theseam-ui-common-framework.mjs +142 -136
  334. package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
  335. package/fesm2015/theseam-ui-common-google-maps.mjs +40 -40
  336. package/fesm2015/theseam-ui-common-graphql.mjs +3 -3
  337. package/fesm2015/theseam-ui-common-icon.mjs +13 -13
  338. package/fesm2015/theseam-ui-common-layout.mjs +7 -7
  339. package/fesm2015/theseam-ui-common-loading.mjs +10 -10
  340. package/fesm2015/theseam-ui-common-menu.mjs +25 -25
  341. package/fesm2015/theseam-ui-common-modal.mjs +43 -43
  342. package/fesm2015/theseam-ui-common-popover.mjs +10 -10
  343. package/fesm2015/theseam-ui-common-progress.mjs +7 -7
  344. package/fesm2015/theseam-ui-common-scrollbar.mjs +10 -10
  345. package/fesm2015/theseam-ui-common-services.mjs +153 -17
  346. package/fesm2015/theseam-ui-common-services.mjs.map +1 -1
  347. package/fesm2015/theseam-ui-common-shared.mjs +37 -37
  348. package/fesm2015/theseam-ui-common-storage.mjs +3 -3
  349. package/fesm2015/theseam-ui-common-story-helpers.mjs +55 -24
  350. package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
  351. package/fesm2015/theseam-ui-common-tabbed.mjs +22 -22
  352. package/fesm2015/theseam-ui-common-table-cell-type.mjs +10 -10
  353. package/fesm2015/theseam-ui-common-table-cell-types.mjs +31 -31
  354. package/fesm2015/theseam-ui-common-table.mjs +7 -7
  355. package/fesm2015/theseam-ui-common-tel-input.mjs +13 -13
  356. package/fesm2015/theseam-ui-common-tiled-select.mjs +22 -22
  357. package/fesm2015/theseam-ui-common-toggle-edit.mjs +16 -16
  358. package/fesm2015/theseam-ui-common-toggle-group.mjs +10 -10
  359. package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs +13 -13
  360. package/fesm2015/theseam-ui-common-vertical-list-filter.mjs +3 -3
  361. package/fesm2015/theseam-ui-common-viewers.mjs +20 -20
  362. package/fesm2015/theseam-ui-common-widget.mjs +281 -165
  363. package/fesm2015/theseam-ui-common-widget.mjs.map +1 -1
  364. package/fesm2020/theseam-ui-common-asset-reader.mjs +10 -10
  365. package/fesm2020/theseam-ui-common-breadcrumbs.mjs +10 -10
  366. package/fesm2020/theseam-ui-common-buttons.mjs +25 -25
  367. package/fesm2020/theseam-ui-common-card.mjs +19 -19
  368. package/fesm2020/theseam-ui-common-carousel.mjs +10 -10
  369. package/fesm2020/theseam-ui-common-checkbox.mjs +7 -7
  370. package/fesm2020/theseam-ui-common-confirm-dialog.mjs +13 -13
  371. package/fesm2020/theseam-ui-common-data-exporter.mjs +10 -10
  372. package/fesm2020/theseam-ui-common-data-filters.mjs +13 -13
  373. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +25 -25
  374. package/fesm2020/theseam-ui-common-datatable.mjs +124 -195
  375. package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
  376. package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs +7 -7
  377. package/fesm2020/theseam-ui-common-dynamic.mjs +21 -21
  378. package/fesm2020/theseam-ui-common-footer-bar.mjs +7 -7
  379. package/fesm2020/theseam-ui-common-form-field-error.mjs +16 -16
  380. package/fesm2020/theseam-ui-common-form-field.mjs +22 -22
  381. package/fesm2020/theseam-ui-common-framework.mjs +141 -136
  382. package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
  383. package/fesm2020/theseam-ui-common-google-maps.mjs +40 -40
  384. package/fesm2020/theseam-ui-common-graphql.mjs +3 -3
  385. package/fesm2020/theseam-ui-common-icon.mjs +13 -13
  386. package/fesm2020/theseam-ui-common-layout.mjs +7 -7
  387. package/fesm2020/theseam-ui-common-loading.mjs +10 -10
  388. package/fesm2020/theseam-ui-common-menu.mjs +25 -25
  389. package/fesm2020/theseam-ui-common-modal.mjs +43 -43
  390. package/fesm2020/theseam-ui-common-popover.mjs +10 -10
  391. package/fesm2020/theseam-ui-common-progress.mjs +7 -7
  392. package/fesm2020/theseam-ui-common-scrollbar.mjs +10 -10
  393. package/fesm2020/theseam-ui-common-services.mjs +153 -17
  394. package/fesm2020/theseam-ui-common-services.mjs.map +1 -1
  395. package/fesm2020/theseam-ui-common-shared.mjs +37 -37
  396. package/fesm2020/theseam-ui-common-storage.mjs +3 -3
  397. package/fesm2020/theseam-ui-common-story-helpers.mjs +55 -24
  398. package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
  399. package/fesm2020/theseam-ui-common-tabbed.mjs +22 -22
  400. package/fesm2020/theseam-ui-common-table-cell-type.mjs +10 -10
  401. package/fesm2020/theseam-ui-common-table-cell-types.mjs +31 -31
  402. package/fesm2020/theseam-ui-common-table.mjs +7 -7
  403. package/fesm2020/theseam-ui-common-tel-input.mjs +13 -13
  404. package/fesm2020/theseam-ui-common-tiled-select.mjs +22 -22
  405. package/fesm2020/theseam-ui-common-toggle-edit.mjs +16 -16
  406. package/fesm2020/theseam-ui-common-toggle-group.mjs +10 -10
  407. package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs +13 -13
  408. package/fesm2020/theseam-ui-common-vertical-list-filter.mjs +3 -3
  409. package/fesm2020/theseam-ui-common-viewers.mjs +20 -20
  410. package/fesm2020/theseam-ui-common-widget.mjs +277 -165
  411. package/fesm2020/theseam-ui-common-widget.mjs.map +1 -1
  412. package/package.json +2 -2
  413. package/services/preferences/preferences-accessor.d.ts +15 -0
  414. package/services/preferences/preferences-manager.service.d.ts +15 -0
  415. package/services/preferences/preferences-record.d.ts +28 -0
  416. package/services/preferences/preferences.models.d.ts +3 -0
  417. package/services/public-api.d.ts +4 -0
  418. package/story-helpers/public-api.d.ts +1 -0
  419. package/story-helpers/story-preferences-accessor.service.d.ts +19 -0
  420. package/widget/preferences/widget-preferences.models.d.ts +8 -0
  421. package/widget/preferences/widget-preferences.service.d.ts +21 -0
  422. package/widget/preferences/widget-preferences.token.d.ts +3 -0
  423. package/widget/widget/widget.component.d.ts +10 -2
  424. package/widget/widget-token.d.ts +1 -0
@@ -1,17 +1,22 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { animate, state, style, transition, trigger } from '@angular/animations';
3
- import { Component, ContentChild, Input, isDevMode, ViewEncapsulation } from '@angular/core';
3
+ import { Component, ContentChild, Inject, Input, isDevMode, Optional, ViewEncapsulation } from '@angular/core';
4
+ import { Subject, takeUntil, tap } from 'rxjs';
4
5
  import { faAngleDown, faCog } from '@fortawesome/free-solid-svg-icons';
5
6
  import { InputBoolean } from '@theseam/ui-common/core';
7
+ import { hasProperty } from '@theseam/ui-common/utils';
6
8
  import { WidgetIconTplDirective } from '../directives/widget-icon-tpl.directive';
7
9
  import { WidgetTitleTplDirective } from '../directives/widget-title-tpl.directive';
10
+ import { WidgetPreferencesService } from '../preferences/widget-preferences.service';
11
+ import { THESEAM_WIDGET_DATA } from '../widget-token';
8
12
  import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/common";
10
- import * as i2 from "@fortawesome/angular-fontawesome";
11
- import * as i3 from "@theseam/ui-common/icon";
12
- import * as i4 from "@theseam/ui-common/loading";
13
- import * as i5 from "@theseam/ui-common/buttons";
14
- import * as i6 from "../directives/widget-drag-handle.directive";
13
+ import * as i1 from "../preferences/widget-preferences.service";
14
+ import * as i2 from "@angular/common";
15
+ import * as i3 from "@fortawesome/angular-fontawesome";
16
+ import * as i4 from "@theseam/ui-common/icon";
17
+ import * as i5 from "@theseam/ui-common/loading";
18
+ import * as i6 from "@theseam/ui-common/buttons";
19
+ import * as i7 from "../directives/widget-drag-handle.directive";
15
20
  const EXPANDED_STATE = 'expanded';
16
21
  const COLLAPSED_STATE = 'collapsed';
17
22
  const EXPAND_TRANSITION = `${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`;
@@ -53,9 +58,31 @@ const collapseAnimation = trigger('collapseAnim', [
53
58
  * used then the situation should be considered for becoming a widget component.
54
59
  */
55
60
  export class WidgetComponent {
56
- constructor() {
61
+ /**
62
+ * Icon displayed in the top header.
63
+ *
64
+ * If a more advanced icon is needed you can use `seamWidgetIconTpl` template
65
+ * directive, but a `SeamIcon` input is recommended, because allowing custom
66
+ * icons that do not follow the tested types can lead to inconsitency quickly
67
+ * as different developers keep making tweaks.
68
+ */
69
+ get icon() { return this._iconUrl || this._iconObj; }
70
+ set icon(value) {
71
+ if (typeof value === 'string') {
72
+ this._iconUrl = value;
73
+ this._iconObj = undefined;
74
+ }
75
+ else {
76
+ this._iconUrl = undefined;
77
+ this._iconObj = value;
78
+ }
79
+ }
80
+ constructor(_widgetPreferences, _data) {
81
+ this._widgetPreferences = _widgetPreferences;
82
+ this._data = _data;
57
83
  this.configIcon = faCog;
58
84
  this.collapseIcon = faAngleDown;
85
+ this._ngUnsubscribe = new Subject();
59
86
  /**
60
87
  * Toggles the collapsed state of a widget.
61
88
  */
@@ -75,26 +102,19 @@ export class WidgetComponent {
75
102
  * header to toggle the collapsed state.
76
103
  */
77
104
  this.canCollapse = false;
78
- }
79
- /**
80
- * Icon displayed in the top header.
81
- *
82
- * If a more advanced icon is needed you can use `seamWidgetIconTpl` template
83
- * directive, but a `SeamIcon` input is recommended, because allowing custom
84
- * icons that do not follow the tested types can lead to inconsitency quickly
85
- * as different developers keep making tweaks.
86
- */
87
- get icon() { return this._iconUrl || this._iconObj; }
88
- set icon(value) {
89
- if (typeof value === 'string') {
90
- this._iconUrl = value;
91
- this._iconObj = undefined;
92
- }
93
- else {
94
- this._iconUrl = undefined;
95
- this._iconObj = value;
105
+ if (this._data && this._data.widgetId) {
106
+ this._preferencesKey = `widget:${this._data.widgetId}`;
107
+ this._widgetPreferences.preferences(this._preferencesKey).pipe(tap(prefs => {
108
+ if (hasProperty(prefs, 'collapsed')) {
109
+ this.collapsed = prefs.collapsed;
110
+ }
111
+ }), takeUntil(this._ngUnsubscribe)).subscribe();
96
112
  }
97
113
  }
114
+ ngOnDestroy() {
115
+ this._ngUnsubscribe.next();
116
+ this._ngUnsubscribe.complete();
117
+ }
98
118
  /**
99
119
  * Toggles a widget's collapsed state.
100
120
  */
@@ -106,11 +126,21 @@ export class WidgetComponent {
106
126
  return;
107
127
  }
108
128
  this.collapsed = !this.collapsed;
129
+ // Only update the preference, if collapse method is called, because it is
130
+ // assumed that the user is collapsing the widget. If the collapsed state is
131
+ // changed by other means, such using the widget's `collapsed` input, then
132
+ // the preference should not be updated, because that is assumed to be an
133
+ // app controlled change that should not be persisted.
134
+ if (this._preferencesKey) {
135
+ this._widgetPreferences.patchPreferences(this._preferencesKey, { collapsed: this.collapsed });
136
+ }
109
137
  }
110
138
  get collapseState() { return this.collapsed ? COLLAPSED_STATE : EXPANDED_STATE; }
111
139
  }
112
- WidgetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WidgetComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
113
- WidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: WidgetComponent, selector: "seam-widget", inputs: { collapsed: "collapsed", hasHeader: "hasHeader", titleText: "titleText", icon: "icon", iconClass: "iconClass", loading: "loading", hasConfig: "hasConfig", canCollapse: "canCollapse" }, queries: [{ propertyName: "iconTpl", first: true, predicate: WidgetIconTplDirective, descendants: true, static: true }, { propertyName: "titleTpl", first: true, predicate: WidgetTitleTplDirective, descendants: true, static: true }], ngImport: i0, template: "<div class=\"seam-widget border rounded overflow-hidden\">\n <div class=\"widget-header\" seamWidgetDragHandle *ngIf=\"hasHeader\">\n <div class=\"widget-header-content p-2 text-nowrap\">\n <span class=\"mr-1 widget-header-icon\">\n <ng-container *ngIf=\"iconTpl; else noIconTpl\">\n <ng-template\n [ngTemplateOutlet]=\"iconTpl.template\"\n [ngTemplateOutletContext]=\"{ $implicit: icon, icon: icon, title: titleText }\">\n </ng-template>\n </ng-container>\n <ng-template #noIconTpl>\n <fa-icon *ngIf=\"_iconObj\"\n class=\"widget-header-icon--fa {{ iconClass }}\"\n [icon]=\"_iconObj\"></fa-icon>\n <img *ngIf=\"_iconUrl\"\n class=\"widget-header-icon--img {{ iconClass }}\"\n [src]=\"_iconUrl\" [alt]=\"titleText\">\n </ng-template>\n </span>\n <span class=\"widget-header-title text-truncate\">\n <ng-container *ngIf=\"titleTpl; else noTitleTpl\">\n <ng-template\n [ngTemplateOutlet]=\"titleTpl.template\"\n [ngTemplateOutletContext]=\"{ $implicit: titleText, icon: icon, title: titleText }\">\n </ng-template>\n </ng-container>\n <ng-template #noTitleTpl>{{ titleText }}</ng-template>\n </span>\n </div>\n <div class=\"widget-header-btns-container\" *ngIf=\"hasConfig || canCollapse\">\n <!-- <div *ngIf=\"hasConfig\">\n <button seamIconBtn [icon]=\"configIcon\"\n class=\"widget-header-btn-config\"\n [iconType]=\"null\">\n <span class=\"sr-only\">Widget configuration menu</span>\n </button>\n <button seamButton class=\"widget-header-btn-config p-0\">\n <seam-icon class=\"d-block\" [icon]=\"configIcon\" iconClass=\"text-secondary\"></seam-icon>\n <span class=\"sr-only\">Widget configuration menu</span>\n </button>\n </div> -->\n\n <div *ngIf=\"canCollapse\" class=\"px-0\">\n\n <button seamButton class=\"widget-header-btn-collapse p-0 mr-1 h-100\" (click)=\"collapse()\" [class.widget-header-btn-collapse--active]=\"collapsed\">\n <seam-icon class=\"d-block\"\n [icon]=\"collapseIcon\"\n iconClass=\"text-secondary\">\n </seam-icon>\n <span class=\"sr-only\">Widget collapse</span>\n </button>\n <!-- iconType=\"borderless-styled-square\" -->\n <!-- style=\"margin-left: -10px; margin-right: -5px;\" -->\n\n <!-- <button seamIconBtn class=\"widget-header-btn-collapse\" (click)=\"collapse()\" [class.widget-header-btn-collapse--active]=\"collapsed\"\n btnTheme=\"secondary\"\n [icon]=\"collapseIcon\"\n iconType=\"borderless-styled-square\"\n size=\"xs\"\n btnSize=\"sm\"\n >\n <seam-icon class=\"d-block\"\n [icon]=\"collapseIcon\"\n iconClass=\"text-secondary\"\n style=\"margin-left: -10px; margin-right: -5px;\"\n iconType=\"borderless-styled-square\"></seam-icon>\n <span class=\"sr-only\">Widget collapse</span>\n </button> -->\n </div>\n </div>\n </div>\n <div class=\"position-relative overflow-hidden\" [style.height.px]=\"loading ? 150 : undefined\" [@collapseAnim]=\"collapseState\">\n <ng-container *ngIf=\"!collapsed\">\n <div class=\"p-2\" *ngIf=\"!loading else loadingTpl\" @keepContentAnim>\n <ng-content></ng-content>\n </div>\n <ng-content select=\"seam-widget-footer\"></ng-content>\n <ng-template #loadingTpl>\n <div class=\"position-absolute\" @loadingAnim style=\"top:0;right:0;bottom:0;left:0\">\n <seam-loading [theme]=\"'primary'\"></seam-loading>\n </div>\n </ng-template>\n </ng-container>\n </div>\n</div>\n", styles: ["seam-widget{display:block;font-size:15px}seam-widget .seam-widget{background:#FFFFFF;box-shadow:none}seam-widget .widget-header{display:flex;flex-direction:row;border-bottom:1px solid #dee2e6;background:#F4F4F4;font-size:17px}seam-widget .widget-header .widget-header-content{flex:1 1 100%}seam-widget .widget-header .widget-header-btns-container{display:flex;flex-direction:row}seam-widget .widget-header .widget-header-btns-container>div{display:flex;flex-direction:column;justify-content:center;padding:4px}seam-widget .widget-header .widget-header-btns-container .widget-header-btn-config .seam-icon--fa{display:flex;flex-direction:row;justify-content:center;text-align:center;height:25px;width:30px}seam-widget .widget-header .widget-header-btns-container .widget-header-btn-config .seam-icon--fa .svg-inline--fa{max-width:100%;height:100%;width:100%}seam-widget .widget-header .widget-header-btns-container .widget-header-btn-collapse .seam-icon--fa{display:flex;flex-direction:row;justify-content:center;text-align:center;height:25px;width:30px}seam-widget .widget-header .widget-header-btns-container .widget-header-btn-collapse .seam-icon--fa .svg-inline--fa{max-width:100%;height:100%;width:100%}seam-widget .widget-header .widget-header-btns-container .widget-header-btn-collapse .svg-inline--fa{transform:rotate(0);transition:.3s ease-in-out transform}seam-widget .widget-header .widget-header-btns-container .widget-header-btn-collapse.widget-header-btn-collapse--active .svg-inline--fa{transform:rotate(90deg)}seam-widget .widget-header .widget-header-title{font-size:17px}seam-widget .widget-header-icon{display:inline-block;vertical-align:top;max-height:20px;max-width:20px;height:20px;width:20px;color:currentColor}seam-widget .widget-header-icon .widget-header-icon--fa{display:flex;flex-direction:row;justify-content:center;text-align:center;max-height:20px;max-width:20px;height:20px;width:20px}seam-widget .widget-header-icon .widget-header-icon--fa .svg-inline--fa{max-width:100%;height:100%;width:100%}seam-widget .widget-header-icon .widget-header-icon--img{height:100%;max-height:20px;max-width:20px}\n"], dependencies: [{ 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.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "component", type: i3.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }, { kind: "component", type: i4.LoadingComponent, selector: "seam-loading", inputs: ["theme"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }, { kind: "directive", type: i6.WidgetDragHandleDirective, selector: "[seamWidgetDragHandle]", inputs: ["cdkDragHandleDisabled"] }], animations: [
140
+ WidgetComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WidgetComponent, deps: [{ token: i1.WidgetPreferencesService }, { token: THESEAM_WIDGET_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
141
+ WidgetComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: WidgetComponent, selector: "seam-widget", inputs: { collapsed: "collapsed", hasHeader: "hasHeader", titleText: "titleText", icon: "icon", iconClass: "iconClass", loading: "loading", hasConfig: "hasConfig", canCollapse: "canCollapse" }, providers: [
142
+ WidgetPreferencesService,
143
+ ], queries: [{ propertyName: "iconTpl", first: true, predicate: WidgetIconTplDirective, descendants: true, static: true }, { propertyName: "titleTpl", first: true, predicate: WidgetTitleTplDirective, descendants: true, static: true }], ngImport: i0, template: "<div class=\"seam-widget border rounded overflow-hidden\">\n <div class=\"widget-header\" seamWidgetDragHandle *ngIf=\"hasHeader\">\n <div class=\"widget-header-content p-2 text-nowrap\">\n <span class=\"mr-1 widget-header-icon\">\n <ng-container *ngIf=\"iconTpl; else noIconTpl\">\n <ng-template\n [ngTemplateOutlet]=\"iconTpl.template\"\n [ngTemplateOutletContext]=\"{ $implicit: icon, icon: icon, title: titleText }\">\n </ng-template>\n </ng-container>\n <ng-template #noIconTpl>\n <fa-icon *ngIf=\"_iconObj\"\n class=\"widget-header-icon--fa {{ iconClass }}\"\n [icon]=\"_iconObj\"></fa-icon>\n <img *ngIf=\"_iconUrl\"\n class=\"widget-header-icon--img {{ iconClass }}\"\n [src]=\"_iconUrl\" [alt]=\"titleText\">\n </ng-template>\n </span>\n <span class=\"widget-header-title text-truncate\">\n <ng-container *ngIf=\"titleTpl; else noTitleTpl\">\n <ng-template\n [ngTemplateOutlet]=\"titleTpl.template\"\n [ngTemplateOutletContext]=\"{ $implicit: titleText, icon: icon, title: titleText }\">\n </ng-template>\n </ng-container>\n <ng-template #noTitleTpl>{{ titleText }}</ng-template>\n </span>\n </div>\n <div class=\"widget-header-btns-container\" *ngIf=\"hasConfig || canCollapse\">\n <!-- <div *ngIf=\"hasConfig\">\n <button seamIconBtn [icon]=\"configIcon\"\n class=\"widget-header-btn-config\"\n [iconType]=\"null\">\n <span class=\"sr-only\">Widget configuration menu</span>\n </button>\n <button seamButton class=\"widget-header-btn-config p-0\">\n <seam-icon class=\"d-block\" [icon]=\"configIcon\" iconClass=\"text-secondary\"></seam-icon>\n <span class=\"sr-only\">Widget configuration menu</span>\n </button>\n </div> -->\n\n <div *ngIf=\"canCollapse\" class=\"px-0\">\n\n <button seamButton class=\"widget-header-btn-collapse p-0 mr-1 h-100\" (click)=\"collapse()\" [class.widget-header-btn-collapse--active]=\"collapsed\">\n <seam-icon class=\"d-block\"\n [icon]=\"collapseIcon\"\n iconClass=\"text-secondary\">\n </seam-icon>\n <span class=\"sr-only\">Widget collapse</span>\n </button>\n <!-- iconType=\"borderless-styled-square\" -->\n <!-- style=\"margin-left: -10px; margin-right: -5px;\" -->\n\n <!-- <button seamIconBtn class=\"widget-header-btn-collapse\" (click)=\"collapse()\" [class.widget-header-btn-collapse--active]=\"collapsed\"\n btnTheme=\"secondary\"\n [icon]=\"collapseIcon\"\n iconType=\"borderless-styled-square\"\n size=\"xs\"\n btnSize=\"sm\"\n >\n <seam-icon class=\"d-block\"\n [icon]=\"collapseIcon\"\n iconClass=\"text-secondary\"\n style=\"margin-left: -10px; margin-right: -5px;\"\n iconType=\"borderless-styled-square\"></seam-icon>\n <span class=\"sr-only\">Widget collapse</span>\n </button> -->\n </div>\n </div>\n </div>\n <div class=\"position-relative overflow-hidden\" [style.height.px]=\"loading ? 150 : undefined\" [@collapseAnim]=\"collapseState\">\n <ng-container *ngIf=\"!collapsed\">\n <div class=\"p-2\" *ngIf=\"!loading else loadingTpl\" @keepContentAnim>\n <ng-content></ng-content>\n </div>\n <ng-content select=\"seam-widget-footer\"></ng-content>\n <ng-template #loadingTpl>\n <div class=\"position-absolute\" @loadingAnim style=\"top:0;right:0;bottom:0;left:0\">\n <seam-loading [theme]=\"'primary'\"></seam-loading>\n </div>\n </ng-template>\n </ng-container>\n </div>\n</div>\n", styles: ["seam-widget{display:block;font-size:15px}seam-widget .seam-widget{background:#FFFFFF;box-shadow:none}seam-widget .widget-header{display:flex;flex-direction:row;border-bottom:1px solid #dee2e6;background:#F4F4F4;font-size:17px}seam-widget .widget-header .widget-header-content{flex:1 1 100%}seam-widget .widget-header .widget-header-btns-container{display:flex;flex-direction:row}seam-widget .widget-header .widget-header-btns-container>div{display:flex;flex-direction:column;justify-content:center;padding:4px}seam-widget .widget-header .widget-header-btns-container .widget-header-btn-config .seam-icon--fa{display:flex;flex-direction:row;justify-content:center;text-align:center;height:25px;width:30px}seam-widget .widget-header .widget-header-btns-container .widget-header-btn-config .seam-icon--fa .svg-inline--fa{max-width:100%;height:100%;width:100%}seam-widget .widget-header .widget-header-btns-container .widget-header-btn-collapse .seam-icon--fa{display:flex;flex-direction:row;justify-content:center;text-align:center;height:25px;width:30px}seam-widget .widget-header .widget-header-btns-container .widget-header-btn-collapse .seam-icon--fa .svg-inline--fa{max-width:100%;height:100%;width:100%}seam-widget .widget-header .widget-header-btns-container .widget-header-btn-collapse .svg-inline--fa{transform:rotate(0);transition:.3s ease-in-out transform}seam-widget .widget-header .widget-header-btns-container .widget-header-btn-collapse.widget-header-btn-collapse--active .svg-inline--fa{transform:rotate(90deg)}seam-widget .widget-header .widget-header-title{font-size:17px}seam-widget .widget-header-icon{display:inline-block;vertical-align:top;max-height:20px;max-width:20px;height:20px;width:20px;color:currentColor}seam-widget .widget-header-icon .widget-header-icon--fa{display:flex;flex-direction:row;justify-content:center;text-align:center;max-height:20px;max-width:20px;height:20px;width:20px}seam-widget .widget-header-icon .widget-header-icon--fa .svg-inline--fa{max-width:100%;height:100%;width:100%}seam-widget .widget-header-icon .widget-header-icon--img{height:100%;max-height:20px;max-width:20px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "component", type: i4.IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }, { kind: "component", type: i5.LoadingComponent, selector: "seam-loading", inputs: ["theme"] }, { kind: "component", type: i6.ButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }, { kind: "directive", type: i7.WidgetDragHandleDirective, selector: "[seamWidgetDragHandle]", inputs: ["cdkDragHandleDisabled"] }], animations: [
114
144
  loadingAnimation,
115
145
  collapseAnimation,
116
146
  keepContentAnimation,
@@ -130,14 +160,21 @@ __decorate([
130
160
  __decorate([
131
161
  InputBoolean()
132
162
  ], WidgetComponent.prototype, "canCollapse", void 0);
133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WidgetComponent, decorators: [{
163
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WidgetComponent, decorators: [{
134
164
  type: Component,
135
- args: [{ selector: 'seam-widget', encapsulation: ViewEncapsulation.None, animations: [
165
+ args: [{ selector: 'seam-widget', providers: [
166
+ WidgetPreferencesService,
167
+ ], encapsulation: ViewEncapsulation.None, animations: [
136
168
  loadingAnimation,
137
169
  collapseAnimation,
138
170
  keepContentAnimation,
139
171
  ], template: "<div class=\"seam-widget border rounded overflow-hidden\">\n <div class=\"widget-header\" seamWidgetDragHandle *ngIf=\"hasHeader\">\n <div class=\"widget-header-content p-2 text-nowrap\">\n <span class=\"mr-1 widget-header-icon\">\n <ng-container *ngIf=\"iconTpl; else noIconTpl\">\n <ng-template\n [ngTemplateOutlet]=\"iconTpl.template\"\n [ngTemplateOutletContext]=\"{ $implicit: icon, icon: icon, title: titleText }\">\n </ng-template>\n </ng-container>\n <ng-template #noIconTpl>\n <fa-icon *ngIf=\"_iconObj\"\n class=\"widget-header-icon--fa {{ iconClass }}\"\n [icon]=\"_iconObj\"></fa-icon>\n <img *ngIf=\"_iconUrl\"\n class=\"widget-header-icon--img {{ iconClass }}\"\n [src]=\"_iconUrl\" [alt]=\"titleText\">\n </ng-template>\n </span>\n <span class=\"widget-header-title text-truncate\">\n <ng-container *ngIf=\"titleTpl; else noTitleTpl\">\n <ng-template\n [ngTemplateOutlet]=\"titleTpl.template\"\n [ngTemplateOutletContext]=\"{ $implicit: titleText, icon: icon, title: titleText }\">\n </ng-template>\n </ng-container>\n <ng-template #noTitleTpl>{{ titleText }}</ng-template>\n </span>\n </div>\n <div class=\"widget-header-btns-container\" *ngIf=\"hasConfig || canCollapse\">\n <!-- <div *ngIf=\"hasConfig\">\n <button seamIconBtn [icon]=\"configIcon\"\n class=\"widget-header-btn-config\"\n [iconType]=\"null\">\n <span class=\"sr-only\">Widget configuration menu</span>\n </button>\n <button seamButton class=\"widget-header-btn-config p-0\">\n <seam-icon class=\"d-block\" [icon]=\"configIcon\" iconClass=\"text-secondary\"></seam-icon>\n <span class=\"sr-only\">Widget configuration menu</span>\n </button>\n </div> -->\n\n <div *ngIf=\"canCollapse\" class=\"px-0\">\n\n <button seamButton class=\"widget-header-btn-collapse p-0 mr-1 h-100\" (click)=\"collapse()\" [class.widget-header-btn-collapse--active]=\"collapsed\">\n <seam-icon class=\"d-block\"\n [icon]=\"collapseIcon\"\n iconClass=\"text-secondary\">\n </seam-icon>\n <span class=\"sr-only\">Widget collapse</span>\n </button>\n <!-- iconType=\"borderless-styled-square\" -->\n <!-- style=\"margin-left: -10px; margin-right: -5px;\" -->\n\n <!-- <button seamIconBtn class=\"widget-header-btn-collapse\" (click)=\"collapse()\" [class.widget-header-btn-collapse--active]=\"collapsed\"\n btnTheme=\"secondary\"\n [icon]=\"collapseIcon\"\n iconType=\"borderless-styled-square\"\n size=\"xs\"\n btnSize=\"sm\"\n >\n <seam-icon class=\"d-block\"\n [icon]=\"collapseIcon\"\n iconClass=\"text-secondary\"\n style=\"margin-left: -10px; margin-right: -5px;\"\n iconType=\"borderless-styled-square\"></seam-icon>\n <span class=\"sr-only\">Widget collapse</span>\n </button> -->\n </div>\n </div>\n </div>\n <div class=\"position-relative overflow-hidden\" [style.height.px]=\"loading ? 150 : undefined\" [@collapseAnim]=\"collapseState\">\n <ng-container *ngIf=\"!collapsed\">\n <div class=\"p-2\" *ngIf=\"!loading else loadingTpl\" @keepContentAnim>\n <ng-content></ng-content>\n </div>\n <ng-content select=\"seam-widget-footer\"></ng-content>\n <ng-template #loadingTpl>\n <div class=\"position-absolute\" @loadingAnim style=\"top:0;right:0;bottom:0;left:0\">\n <seam-loading [theme]=\"'primary'\"></seam-loading>\n </div>\n </ng-template>\n </ng-container>\n </div>\n</div>\n", styles: ["seam-widget{display:block;font-size:15px}seam-widget .seam-widget{background:#FFFFFF;box-shadow:none}seam-widget .widget-header{display:flex;flex-direction:row;border-bottom:1px solid #dee2e6;background:#F4F4F4;font-size:17px}seam-widget .widget-header .widget-header-content{flex:1 1 100%}seam-widget .widget-header .widget-header-btns-container{display:flex;flex-direction:row}seam-widget .widget-header .widget-header-btns-container>div{display:flex;flex-direction:column;justify-content:center;padding:4px}seam-widget .widget-header .widget-header-btns-container .widget-header-btn-config .seam-icon--fa{display:flex;flex-direction:row;justify-content:center;text-align:center;height:25px;width:30px}seam-widget .widget-header .widget-header-btns-container .widget-header-btn-config .seam-icon--fa .svg-inline--fa{max-width:100%;height:100%;width:100%}seam-widget .widget-header .widget-header-btns-container .widget-header-btn-collapse .seam-icon--fa{display:flex;flex-direction:row;justify-content:center;text-align:center;height:25px;width:30px}seam-widget .widget-header .widget-header-btns-container .widget-header-btn-collapse .seam-icon--fa .svg-inline--fa{max-width:100%;height:100%;width:100%}seam-widget .widget-header .widget-header-btns-container .widget-header-btn-collapse .svg-inline--fa{transform:rotate(0);transition:.3s ease-in-out transform}seam-widget .widget-header .widget-header-btns-container .widget-header-btn-collapse.widget-header-btn-collapse--active .svg-inline--fa{transform:rotate(90deg)}seam-widget .widget-header .widget-header-title{font-size:17px}seam-widget .widget-header-icon{display:inline-block;vertical-align:top;max-height:20px;max-width:20px;height:20px;width:20px;color:currentColor}seam-widget .widget-header-icon .widget-header-icon--fa{display:flex;flex-direction:row;justify-content:center;text-align:center;max-height:20px;max-width:20px;height:20px;width:20px}seam-widget .widget-header-icon .widget-header-icon--fa .svg-inline--fa{max-width:100%;height:100%;width:100%}seam-widget .widget-header-icon .widget-header-icon--img{height:100%;max-height:20px;max-width:20px}\n"] }]
140
- }], propDecorators: { collapsed: [{
172
+ }], ctorParameters: function () { return [{ type: i1.WidgetPreferencesService }, { type: undefined, decorators: [{
173
+ type: Optional
174
+ }, {
175
+ type: Inject,
176
+ args: [THESEAM_WIDGET_DATA]
177
+ }] }]; }, propDecorators: { collapsed: [{
141
178
  type: Input
142
179
  }], hasHeader: [{
143
180
  type: Input
@@ -160,4 +197,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
160
197
  type: ContentChild,
161
198
  args: [WidgetTitleTplDirective, { static: true }]
162
199
  }] } });
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi93aWRnZXQvd2lkZ2V0L3dpZGdldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vd2lkZ2V0L3dpZGdldC93aWRnZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFFaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUc1RixPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUd0RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQTs7Ozs7Ozs7QUFFbEYsTUFBTSxjQUFjLEdBQUcsVUFBVSxDQUFBO0FBQ2pDLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQTtBQUVuQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsY0FBYyxRQUFRLGVBQWUsRUFBRSxDQUFBO0FBRXBFLE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGFBQWEsRUFBRTtJQUM5QyxVQUFVLENBQUMsUUFBUSxFQUFFO1FBQ25CLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNyQixPQUFPLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7S0FD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QUFnQjtBQUlmO0lBQWYsWUFBWSxFQUFFO2tEQUFrQjtBQU1qQjtJQUFmLFlBQVksRUFBRTtvREFBb0I7MkZBcEVqQyxlQUFlO2tCQVgzQixTQUFTOytCQUNFLGFBQWEsaUJBR1IsaUJBQWlCLENBQUMsSUFBSSxjQUN6Qjt3QkFDVixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsb0JBQW9CO3FCQUNyQjs4QkFld0IsU0FBUztzQkFBakMsS0FBSztnQkFNbUIsU0FBUztzQkFBakMsS0FBSztnQkFVRyxTQUFTO3NCQUFqQixLQUFLO2dCQVdGLElBQUk7c0JBRFAsS0FBSztnQkFnQkcsU0FBUztzQkFBakIsS0FBSztnQkFHbUIsT0FBTztzQkFBL0IsS0FBSztnQkFJbUIsU0FBUztzQkFBakMsS0FBSztnQkFNbUIsV0FBVztzQkFBbkMsS0FBSztnQkFFa0QsT0FBTztzQkFBOUQsWUFBWTt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0csUUFBUTtzQkFBaEUsWUFBWTt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJ1xuaW1wb3J0IHsgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJ1xuaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIElucHV0LCBpc0Rldk1vZGUsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcblxuaW1wb3J0IHsgSWNvblByb3AgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3ZnLWNvcmUnXG5pbXBvcnQgeyBmYUFuZ2xlRG93biwgZmFDb2cgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnXG5pbXBvcnQgeyBJbnB1dEJvb2xlYW4gfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vY29yZSdcbmltcG9ydCB7IFNlYW1JY29uIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2ljb24nXG5cbmltcG9ydCB7IFdpZGdldEljb25UcGxEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3dpZGdldC1pY29uLXRwbC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBXaWRnZXRUaXRsZVRwbERpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvd2lkZ2V0LXRpdGxlLXRwbC5kaXJlY3RpdmUnXG5cbmNvbnN0IEVYUEFOREVEX1NUQVRFID0gJ2V4cGFuZGVkJ1xuY29uc3QgQ09MTEFQU0VEX1NUQVRFID0gJ2NvbGxhcHNlZCdcblxuY29uc3QgRVhQQU5EX1RSQU5TSVRJT04gPSBgJHtFWFBBTkRFRF9TVEFURX0gPD0+ICR7Q09MTEFQU0VEX1NUQVRFfWBcblxuY29uc3QgbG9hZGluZ0FuaW1hdGlvbiA9IHRyaWdnZXIoJ2xvYWRpbmdBbmltJywgW1xuICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgc3R5bGUoeyBvcGFjaXR5OiAwIH0pLFxuICAgIGFuaW1hdGUoJzI1MG1zIGVhc2UtaW4tb3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKSxcbiAgXSksXG4gIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICBzdHlsZSh7IG9wYWNpdHk6IDEgfSksXG4gICAgYW5pbWF0ZSgnMjUwbXMgZWFzZS1pbi1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDAgfSkpLFxuICBdKSxcbl0pXG5cbi8qKlxuICogSSB3YXMgaGF2aW5nIGFuIGlzc3VlIGdldHRpbmcgdGhlIGNvbnRlbnQgdG8gbm90IGJlIHJlbW92ZWQgZnJvbSB0aGUgRE9NLFxuICogYmVmb3JlIHRoZSBhbmltYXRpb24gd2FzIGNvbXBsZXRlLiBUaGlzIGFuaW1hdGlvbiBpcyBhIGhhY2sgdG8ga2VlcCB0aGVcbiAqIGNvbnRlbnQgaW4gdGhlIERPTSB1bnRpbCB0aGUgYW5pbWF0aW9uIGlzIGNvbXBsZXRlLlxuICovXG5jb25zdCBrZWVwQ29udGVudEFuaW1hdGlvbiA9IHRyaWdnZXIoJ2tlZXBDb250ZW50QW5pbScsIFtcbiAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuICAgIHN0eWxlKHsgb3BhY2l0eTogMSB9KSxcbiAgICBhbmltYXRlKCcwbXMnLCBzdHlsZSh7IG9wYWNpdHk6IDAgfSkpLFxuICBdKSxcbl0pXG5cbmNvbnN0IGNvbGxhcHNlQW5pbWF0aW9uID0gdHJpZ2dlcignY29sbGFwc2VBbmltJywgW1xuICBzdGF0ZShFWFBBTkRFRF9TVEFURSwgc3R5bGUoeyBoZWlnaHQ6ICcqJyB9KSksXG4gIHN0YXRlKENPTExBUFNFRF9TVEFURSwgc3R5bGUoeyBoZWlnaHQ6ICcwJyB9KSksXG4gIHRyYW5zaXRpb24oRVhQQU5EX1RSQU5TSVRJT04sIGFuaW1hdGUoJzAuM3MgZWFzZS1pbi1vdXQnKSksXG5dKVxuXG4vKipcbiAqIFdpZGdldFxuICpcbiAqIFdpZGdldHMgYXJlIGRlc2lnbmVkIHdpdGggdGhlIGludGVudGlvbiBvZiBiZWluZyBvbiBhIGRhc2hib2FyZC4gT3RoZXIgdXNlc1xuICogbWF5IGJlIHN1cHBvcnRlZCBhcyB0aGUgbmVlZCBhcmlzZXMuXG4gKlxuICogVGhlIG9ubHkgSFRNTC9DU1MgdXNlIHNob3VsZCBiZSBhIHdpZGdldCBjb250ZW50IGNvbXBvbmVudCwgdW5sZXNzIHRoZXJlIGlzIGFcbiAqIGNhc2UgcmVxdWlyaW5nIG1vcmUgYWR2YW5jZWQgZGVzaWduLiBUaGlzIGlzIHNvIHRoYXQgd2UgY2FuIG1hbmFnZSBhIGNvbW1vblxuICogc3R5bGUgZm9yIG91ciB3aWRnZXRzLiBJZiBhIGNhc2UgcmVxdWlyaW5nIG5vbiB3aWRnZXQgY29udGVudCBjb21wb25lbnRzIGlzXG4gKiB1c2VkIHRoZW4gdGhlIHNpdHVhdGlvbiBzaG91bGQgYmUgY29uc2lkZXJlZCBmb3IgYmVjb21pbmcgYSB3aWRnZXQgY29tcG9uZW50LlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLXdpZGdldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93aWRnZXQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgYW5pbWF0aW9uczogW1xuICAgIGxvYWRpbmdBbmltYXRpb24sXG4gICAgY29sbGFwc2VBbmltYXRpb24sXG4gICAga2VlcENvbnRlbnRBbmltYXRpb24sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdpZGdldENvbXBvbmVudCB7XG5cbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2hhc0hlYWRlcjogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9sb2FkaW5nOiBCb29sZWFuSW5wdXRcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2hhc0NvbmZpZzogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9jYW5Db2xsYXBzZTogQm9vbGVhbklucHV0XG5cbiAgcmVhZG9ubHkgY29uZmlnSWNvbiA9IGZhQ29nXG4gIHJlYWRvbmx5IGNvbGxhcHNlSWNvbiA9IGZhQW5nbGVEb3duXG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIGNvbGxhcHNlZCBzdGF0ZSBvZiBhIHdpZGdldC5cbiAgICovXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBjb2xsYXBzZWQgPSBmYWxzZVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIHRoZSB0b3AgaGVhZGVyIGJhciBvZiBhIHdpZGdldC4gVGhpcyBzaG91bGQgYmUgdHJ1ZSBmb3IgbW9zdFxuICAgKiB3aWRnZXRzLlxuICAgKi9cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGhhc0hlYWRlciA9IHRydWVcblxuICAvKipcbiAgICogVGl0bGUgZGlzcGxheWVkIGluIHRoZSB0b3AgaGVhZGVyLlxuICAgKlxuICAgKiBJZiBhIG1vcmUgYWR2YW5jZWQgdGl0bGUgaXMgbmVlZGVkIHlvdSBjYW4gdXNlIGBzZWFtV2lkZ2V0VGl0bGVUcGxgXG4gICAqIHRlbXBsYXRlIGRpcmVjdGl2ZSwgYnV0IHRleHQgaXMgcmVjb21tZW5kZWQsIGJlY2F1c2UgYWxsb3dpbmcgY3VzdG9tIHN0eWxlc1xuICAgKiBjYW4gbGVhZCB0byBpbmNvbnNpdGVuY3kgcXVpY2tseSBhcyBkaWZmZXJlbnQgZGV2ZWxvcGVycyBrZWVwIG1ha2luZ1xuICAgKiB0d2Vha3MuXG4gICAqL1xuICBASW5wdXQoKSB0aXRsZVRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGxcblxuICAvKipcbiAgICogSWNvbiBkaXNwbGF5ZWQgaW4gdGhlIHRvcCBoZWFkZXIuXG4gICAqXG4gICAqIElmIGEgbW9yZSBhZHZhbmNlZCBpY29uIGlzIG5lZWRlZCB5b3UgY2FuIHVzZSBgc2VhbVdpZGdldEljb25UcGxgIHRlbXBsYXRlXG4gICAqIGRpcmVjdGl2ZSwgYnV0IGEgYFNlYW1JY29uYCBpbnB1dCBpcyByZWNvbW1lbmRlZCwgYmVjYXVzZSBhbGxvd2luZyBjdXN0b21cbiAgICogaWNvbnMgdGhhdCBkbyBub3QgZm9sbG93IHRoZSB0ZXN0ZWQgdHlwZXMgY2FuIGxlYWQgdG8gaW5jb25zaXRlbmN5IHF1aWNrbHlcbiAgICogYXMgZGlmZmVyZW50IGRldmVsb3BlcnMga2VlcCBtYWtpbmcgdHdlYWtzLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGljb24oKTogU2VhbUljb24gfCB1bmRlZmluZWQgeyByZXR1cm4gdGhpcy5faWNvblVybCB8fCB0aGlzLl9pY29uT2JqIH1cbiAgc2V0IGljb24odmFsdWU6IFNlYW1JY29uIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuX2ljb25VcmwgPSB2YWx1ZVxuICAgICAgdGhpcy5faWNvbk9iaiA9IHVuZGVmaW5lZFxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9pY29uVXJsID0gdW5kZWZpbmVkXG4gICAgICB0aGlzLl9pY29uT2JqID0gdmFsdWVcbiAgICB9XG4gIH1cblxuICBfaWNvblVybDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIF9pY29uT2JqOiBJY29uUHJvcCB8IHVuZGVmaW5lZFxuXG4gIC8qKiBBZGQgYSBjc3MgY2xhc3MgdG8gdGhlIGhlYWRlciBpY29uLiAqL1xuICBASW5wdXQoKSBpY29uQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGxcblxuICAvKiogU2hvd3Mgd2lkZ2V0IGxvYWRpbmcgaW5zdGVhZCBvZiBjb250ZW50LiAqL1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgbG9hZGluZyA9IGZhbHNlXG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgLy8gTk9URTogQ29uZmlnIGlzIHN0aWxsIGJlaW5nIHdvcmtlZCBvbi5cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGhhc0NvbmZpZyA9IGZhbHNlXG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIGFiaWxpdHkgdG8gY29sbGFwc2UgYSB3aWRnZXQuIEFuIGljb24gd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlXG4gICAqIGhlYWRlciB0byB0b2dnbGUgdGhlIGNvbGxhcHNlZCBzdGF0ZS5cbiAgICovXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBjYW5Db2xsYXBzZSA9IGZhbHNlXG5cbiAgQENvbnRlbnRDaGlsZChXaWRnZXRJY29uVHBsRGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KSBpY29uVHBsPzogV2lkZ2V0SWNvblRwbERpcmVjdGl2ZVxuICBAQ29udGVudENoaWxkKFdpZGdldFRpdGxlVHBsRGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KSB0aXRsZVRwbD86IFdpZGdldFRpdGxlVHBsRGlyZWN0aXZlXG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgYSB3aWRnZXQncyBjb2xsYXBzZWQgc3RhdGUuXG4gICAqL1xuICBwdWJsaWMgY29sbGFwc2UoKSB7XG4gICAgaWYgKCF0aGlzLmNhbkNvbGxhcHNlKSB7XG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdXaWRnZXRDb21wb25lbnQ6IGNvbGxhcHNlKCkgY2FsbGVkIHdoZW4gY2FuQ29sbGFwc2UgaXMgZmFsc2UuJylcbiAgICAgIH1cbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHRoaXMuY29sbGFwc2VkID0gIXRoaXMuY29sbGFwc2VkXG4gIH1cblxuICBnZXQgY29sbGFwc2VTdGF0ZSgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5jb2xsYXBzZWQgPyBDT0xMQVBTRURfU1RBVEUgOiBFWFBBTkRFRF9TVEFURSB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZWFtLXdpZGdldCBib3JkZXIgcm91bmRlZCBvdmVyZmxvdy1oaWRkZW5cIj5cbiAgPGRpdiBjbGFzcz1cIndpZGdldC1oZWFkZXJcIiBzZWFtV2lkZ2V0RHJhZ0hhbmRsZSAqbmdJZj1cImhhc0hlYWRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtaGVhZGVyLWNvbnRlbnQgcC0yIHRleHQtbm93cmFwXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cIm1yLTEgd2lkZ2V0LWhlYWRlci1pY29uXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpY29uVHBsOyBlbHNlIG5vSWNvblRwbFwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaWNvblRwbC50ZW1wbGF0ZVwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGljb24sIGljb246IGljb24sIHRpdGxlOiB0aXRsZVRleHQgfVwiPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI25vSWNvblRwbD5cbiAgICAgICAgICA8ZmEtaWNvbiAqbmdJZj1cIl9pY29uT2JqXCJcbiAgICAgICAgICAgIGNsYXNzPVwid2lkZ2V0LWhlYWRlci1pY29uLS1mYSB7eyBpY29uQ2xhc3MgfX1cIlxuICAgICAgICAgICAgW2ljb25dPVwiX2ljb25PYmpcIj48L2ZhLWljb24+XG4gICAgICAgICAgPGltZyAqbmdJZj1cIl9pY29uVXJsXCJcbiAgICAgICAgICAgIGNsYXNzPVwid2lkZ2V0LWhlYWRlci1pY29uLS1pbWcge3sgaWNvbkNsYXNzIH19XCJcbiAgICAgICAgICAgIFtzcmNdPVwiX2ljb25VcmxcIiBbYWx0XT1cInRpdGxlVGV4dFwiPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ3aWRnZXQtaGVhZGVyLXRpdGxlIHRleHQtdHJ1bmNhdGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRpdGxlVHBsOyBlbHNlIG5vVGl0bGVUcGxcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRpdGxlVHBsLnRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogdGl0bGVUZXh0LCBpY29uOiBpY29uLCB0aXRsZTogdGl0bGVUZXh0IH1cIj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNub1RpdGxlVHBsPnt7IHRpdGxlVGV4dCB9fTwvbmctdGVtcGxhdGU+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIndpZGdldC1oZWFkZXItYnRucy1jb250YWluZXJcIiAqbmdJZj1cImhhc0NvbmZpZyB8fCBjYW5Db2xsYXBzZVwiPlxuICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiaGFzQ29uZmlnXCI+XG4gICAgICAgIDxidXR0b24gc2VhbUljb25CdG4gW2ljb25dPVwiY29uZmlnSWNvblwiXG4gICAgICAgICAgY2xhc3M9XCJ3aWRnZXQtaGVhZGVyLWJ0bi1jb25maWdcIlxuICAgICAgICAgIFtpY29uVHlwZV09XCJudWxsXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+V2lkZ2V0IGNvbmZpZ3VyYXRpb24gbWVudTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gc2VhbUJ1dHRvbiBjbGFzcz1cIndpZGdldC1oZWFkZXItYnRuLWNvbmZpZyBwLTBcIj5cbiAgICAgICAgICA8c2VhbS1pY29uIGNsYXNzPVwiZC1ibG9ja1wiIFtpY29uXT1cImNvbmZpZ0ljb25cIiBpY29uQ2xhc3M9XCJ0ZXh0LXNlY29uZGFyeVwiPjwvc2VhbS1pY29uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPldpZGdldCBjb25maWd1cmF0aW9uIG1lbnU8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+IC0tPlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwiY2FuQ29sbGFwc2VcIiBjbGFzcz1cInB4LTBcIj5cblxuICAgICAgICA8YnV0dG9uIHNlYW1CdXR0b24gY2xhc3M9XCJ3aWRnZXQtaGVhZGVyLWJ0bi1jb2xsYXBzZSBwLTAgbXItMSBoLTEwMFwiIChjbGljayk9XCJjb2xsYXBzZSgpXCIgW2NsYXNzLndpZGdldC1oZWFkZXItYnRuLWNvbGxhcHNlLS1hY3RpdmVdPVwiY29sbGFwc2VkXCI+XG4gICAgICAgICAgPHNlYW0taWNvbiBjbGFzcz1cImQtYmxvY2tcIlxuICAgICAgICAgICAgW2ljb25dPVwiY29sbGFwc2VJY29uXCJcbiAgICAgICAgICAgIGljb25DbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgPC9zZWFtLWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+V2lkZ2V0IGNvbGxhcHNlPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPCEtLSBpY29uVHlwZT1cImJvcmRlcmxlc3Mtc3R5bGVkLXNxdWFyZVwiIC0tPlxuICAgICAgICA8IS0tIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0xMHB4OyBtYXJnaW4tcmlnaHQ6IC01cHg7XCIgLS0+XG5cbiAgICAgICAgPCEtLSA8YnV0dG9uIHNlYW1JY29uQnRuIGNsYXNzPVwid2lkZ2V0LWhlYWRlci1idG4tY29sbGFwc2VcIiAoY2xpY2spPVwiY29sbGFwc2UoKVwiIFtjbGFzcy53aWRnZXQtaGVhZGVyLWJ0bi1jb2xsYXBzZS0tYWN0aXZlXT1cImNvbGxhcHNlZFwiXG4gICAgICAgICAgYnRuVGhlbWU9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgIFtpY29uXT1cImNvbGxhcHNlSWNvblwiXG4gICAgICAgICAgaWNvblR5cGU9XCJib3JkZXJsZXNzLXN0eWxlZC1zcXVhcmVcIlxuICAgICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgICAgYnRuU2l6ZT1cInNtXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPHNlYW0taWNvbiBjbGFzcz1cImQtYmxvY2tcIlxuICAgICAgICAgICAgW2ljb25dPVwiY29sbGFwc2VJY29uXCJcbiAgICAgICAgICAgIGljb25DbGFzcz1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0xMHB4OyBtYXJnaW4tcmlnaHQ6IC01cHg7XCJcbiAgICAgICAgICAgIGljb25UeXBlPVwiYm9yZGVybGVzcy1zdHlsZWQtc3F1YXJlXCI+PC9zZWFtLWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+V2lkZ2V0IGNvbGxhcHNlPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj4gLS0+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZSBvdmVyZmxvdy1oaWRkZW5cIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImxvYWRpbmcgPyAxNTAgOiB1bmRlZmluZWRcIiBbQGNvbGxhcHNlQW5pbV09XCJjb2xsYXBzZVN0YXRlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2xsYXBzZWRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwLTJcIiAqbmdJZj1cIiFsb2FkaW5nIGVsc2UgbG9hZGluZ1RwbFwiIEBrZWVwQ29udGVudEFuaW0+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2VhbS13aWRnZXQtZm9vdGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLXRlbXBsYXRlICNsb2FkaW5nVHBsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGVcIiBAbG9hZGluZ0FuaW0gc3R5bGU9XCJ0b3A6MDtyaWdodDowO2JvdHRvbTowO2xlZnQ6MFwiPlxuICAgICAgICAgIDxzZWFtLWxvYWRpbmcgW3RoZW1lXT1cIidwcmltYXJ5J1wiPjwvc2VhbS1sb2FkaW5nPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi93aWRnZXQvd2lkZ2V0L3dpZGdldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vd2lkZ2V0L3dpZGdldC93aWRnZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFFaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQWEsUUFBUSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3pILE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUc5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUV0RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFdEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFDaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUE7QUFDbEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkNBQTJDLENBQUE7QUFDcEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUE7Ozs7Ozs7OztBQUVyRCxNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUE7QUFDakMsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFBO0FBRW5DLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxj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VCx3QkFBd0I7S0FDekIsK0RBa0ZhLHNCQUFzQix5RkFDdEIsdUJBQXVCLDhEQ3RKdkMsNnZIQXFGQSx3ckdEaEJjO1FBQ1YsZ0JBQWdCO1FBQ2hCLGlCQUFpQjtRQUNqQixvQkFBb0I7S0FDckI7QUFtQndCO0lBQWYsWUFBWSxFQUFFO2tEQUFrQjtBQU1qQjtJQUFmLFlBQVksRUFBRTtrREFBaUI7QUF1Q2hCO0lBQWYsWUFBWSxFQUFFO2dEQUFnQjtBQUlmO0lBQWYsWUFBWSxFQUFFO2tEQUFrQjtBQU1qQjtJQUFmLFlBQVksRUFBRTtvREFBb0I7MkZBeEVqQyxlQUFlO2tCQWQzQixTQUFTOytCQUNFLGFBQWEsYUFHWjt3QkFDVCx3QkFBd0I7cUJBQ3pCLGlCQUNjLGlCQUFpQixDQUFDLElBQUksY0FDekI7d0JBQ1YsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLG9CQUFvQjtxQkFDckI7OzBCQWlGRSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLG1CQUFtQjs0Q0E5RGhCLFNBQVM7c0JBQWpDLEtBQUs7Z0JBTW1CLFNBQVM7c0JBQWpDLEtBQUs7Z0JBVUcsU0FBUztzQkFBakIsS0FBSztnQkFXRixJQUFJO3NCQURQLEtBQUs7Z0JBZ0JHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR21CLE9BQU87c0JBQS9CLEtBQUs7Z0JBSW1CLFNBQVM7c0JBQWpDLEtBQUs7Z0JBTW1CLFdBQVc7c0JBQW5DLEtBQUs7Z0JBRWtELE9BQU87c0JBQTlELFlBQVk7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNHLFFBQVE7c0JBQWhFLFlBQVk7dUJBQUMsdUJBQXVCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucydcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbidcbmltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbmplY3QsIElucHV0LCBpc0Rldk1vZGUsIE9uRGVzdHJveSwgT3B0aW9uYWwsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcydcblxuaW1wb3J0IHsgSWNvblByb3AgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtc3ZnLWNvcmUnXG5pbXBvcnQgeyBmYUFuZ2xlRG93biwgZmFDb2cgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnXG5pbXBvcnQgeyBJbnB1dEJvb2xlYW4gfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vY29yZSdcbmltcG9ydCB7IFNlYW1JY29uIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2ljb24nXG5pbXBvcnQgeyBoYXNQcm9wZXJ0eSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuaW1wb3J0IHsgV2lkZ2V0SWNvblRwbERpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvd2lkZ2V0LWljb24tdHBsLmRpcmVjdGl2ZSdcbmltcG9ydCB7IFdpZGdldFRpdGxlVHBsRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy93aWRnZXQtdGl0bGUtdHBsLmRpcmVjdGl2ZSdcbmltcG9ydCB7IFdpZGdldFByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4uL3ByZWZlcmVuY2VzL3dpZGdldC1wcmVmZXJlbmNlcy5zZXJ2aWNlJ1xuaW1wb3J0IHsgVEhFU0VBTV9XSURHRVRfREFUQSB9IGZyb20gJy4uL3dpZGdldC10b2tlbidcblxuY29uc3QgRVhQQU5ERURfU1RBVEUgPSAnZXhwYW5kZWQnXG5jb25zdCBDT0xMQVBTRURfU1RBVEUgPSAnY29sbGFwc2VkJ1xuXG5jb25zdCBFWFBBTkRfVFJBTlNJVElPTiA9IGAke0VYUEFOREVEX1NUQVRFfSA8PT4gJHtDT0xMQVBTRURfU1RBVEV9YFxuXG5jb25zdCBsb2FkaW5nQW5pbWF0aW9uID0gdHJpZ2dlcignbG9hZGluZ0FuaW0nLCBbXG4gIHRyYW5zaXRpb24oJzplbnRlcicsIFtcbiAgICBzdHlsZSh7IG9wYWNpdHk6IDAgfSksXG4gICAgYW5pbWF0ZSgnMjUwbXMgZWFzZS1pbi1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpLFxuICBdKSxcbiAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuICAgIHN0eWxlKHsgb3BhY2l0eTogMSB9KSxcbiAgICBhbmltYXRlKCcyNTBtcyBlYXNlLWluLW91dCcsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSksXG4gIF0pLFxuXSlcblxuLyoqXG4gKiBJIHdhcyBoYXZpbmcgYW4gaXNzdWUgZ2V0dGluZyB0aGUgY29udGVudCB0byBub3QgYmUgcmVtb3ZlZCBmcm9tIHRoZSBET00sXG4gKiBiZWZvcmUgdGhlIGFuaW1hdGlvbiB3YXMgY29tcGxldGUuIFRoaXMgYW5pbWF0aW9uIGlzIGEgaGFjayB0byBrZWVwIHRoZVxuICogY29udGVudCBpbiB0aGUgRE9NIHVudGlsIHRoZSBhbmltYXRpb24gaXMgY29tcGxldGUuXG4gKi9cbmNvbnN0IGtlZXBDb250ZW50QW5pbWF0aW9uID0gdHJpZ2dlcigna2VlcENvbnRlbnRBbmltJywgW1xuICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXG4gICAgc3R5bGUoeyBvcGFjaXR5OiAxIH0pLFxuICAgIGFuaW1hdGUoJzBtcycsIHN0eWxlKHsgb3BhY2l0eTogMCB9KSksXG4gIF0pLFxuXSlcblxuY29uc3QgY29sbGFwc2VBbmltYXRpb24gPSB0cmlnZ2VyKCdjb2xsYXBzZUFuaW0nLCBbXG4gIHN0YXRlKEVYUEFOREVEX1NUQVRFLCBzdHlsZSh7IGhlaWdodDogJyonIH0pKSxcbiAgc3RhdGUoQ09MTEFQU0VEX1NUQVRFLCBzdHlsZSh7IGhlaWdodDogJzAnIH0pKSxcbiAgdHJhbnNpdGlvbihFWFBBTkRfVFJBTlNJVElPTiwgYW5pbWF0ZSgnMC4zcyBlYXNlLWluLW91dCcpKSxcbl0pXG5cbi8qKlxuICogV2lkZ2V0XG4gKlxuICogV2lkZ2V0cyBhcmUgZGVzaWduZWQgd2l0aCB0aGUgaW50ZW50aW9uIG9mIGJlaW5nIG9uIGEgZGFzaGJvYXJkLiBPdGhlciB1c2VzXG4gKiBtYXkgYmUgc3VwcG9ydGVkIGFzIHRoZSBuZWVkIGFyaXNlcy5cbiAqXG4gKiBUaGUgb25seSBIVE1ML0NTUyB1c2Ugc2hvdWxkIGJlIGEgd2lkZ2V0IGNvbnRlbnQgY29tcG9uZW50LCB1bmxlc3MgdGhlcmUgaXMgYVxuICogY2FzZSByZXF1aXJpbmcgbW9yZSBhZHZhbmNlZCBkZXNpZ24uIFRoaXMgaXMgc28gdGhhdCB3ZSBjYW4gbWFuYWdlIGEgY29tbW9uXG4gKiBzdHlsZSBmb3Igb3VyIHdpZGdldHMuIElmIGEgY2FzZSByZXF1aXJpbmcgbm9uIHdpZGdldCBjb250ZW50IGNvbXBvbmVudHMgaXNcbiAqIHVzZWQgdGhlbiB0aGUgc2l0dWF0aW9uIHNob3VsZCBiZSBjb25zaWRlcmVkIGZvciBiZWNvbWluZyBhIHdpZGdldCBjb21wb25lbnQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0td2lkZ2V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dpZGdldC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICBXaWRnZXRQcmVmZXJlbmNlc1NlcnZpY2UsXG4gIF0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICBsb2FkaW5nQW5pbWF0aW9uLFxuICAgIGNvbGxhcHNlQW5pbWF0aW9uLFxuICAgIGtlZXBDb250ZW50QW5pbWF0aW9uLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9oYXNIZWFkZXI6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbG9hZGluZzogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9oYXNDb25maWc6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfY2FuQ29sbGFwc2U6IEJvb2xlYW5JbnB1dFxuXG4gIHJlYWRvbmx5IGNvbmZpZ0ljb24gPSBmYUNvZ1xuICByZWFkb25seSBjb2xsYXBzZUljb24gPSBmYUFuZ2xlRG93blxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpXG5cbiAgcHJpdmF0ZSBfcHJlZmVyZW5jZXNLZXk/OiBzdHJpbmdcblxuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgY29sbGFwc2VkIHN0YXRlIG9mIGEgd2lkZ2V0LlxuICAgKi9cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGNvbGxhcHNlZCA9IGZhbHNlXG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIHRvcCBoZWFkZXIgYmFyIG9mIGEgd2lkZ2V0LiBUaGlzIHNob3VsZCBiZSB0cnVlIGZvciBtb3N0XG4gICAqIHdpZGdldHMuXG4gICAqL1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgaGFzSGVhZGVyID0gdHJ1ZVxuXG4gIC8qKlxuICAgKiBUaXRsZSBkaXNwbGF5ZWQgaW4gdGhlIHRvcCBoZWFkZXIuXG4gICAqXG4gICAqIElmIGEgbW9yZSBhZHZhbmNlZCB0aXRsZSBpcyBuZWVkZWQgeW91IGNhbiB1c2UgYHNlYW1XaWRnZXRUaXRsZVRwbGBcbiAgICogdGVtcGxhdGUgZGlyZWN0aXZlLCBidXQgdGV4dCBpcyByZWNvbW1lbmRlZCwgYmVjYXVzZSBhbGxvd2luZyBjdXN0b20gc3R5bGVzXG4gICAqIGNhbiBsZWFkIHRvIGluY29uc2l0ZW5jeSBxdWlja2x5IGFzIGRpZmZlcmVudCBkZXZlbG9wZXJzIGtlZXAgbWFraW5nXG4gICAqIHR3ZWFrcy5cbiAgICovXG4gIEBJbnB1dCgpIHRpdGxlVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIC8qKlxuICAgKiBJY29uIGRpc3BsYXllZCBpbiB0aGUgdG9wIGhlYWRlci5cbiAgICpcbiAgICogSWYgYSBtb3JlIGFkdmFuY2VkIGljb24gaXMgbmVlZGVkIHlvdSBjYW4gdXNlIGBzZWFtV2lkZ2V0SWNvblRwbGAgdGVtcGxhdGVcbiAgICogZGlyZWN0aXZlLCBidXQgYSBgU2VhbUljb25gIGlucHV0IGlzIHJlY29tbWVuZGVkLCBiZWNhdXNlIGFsbG93aW5nIGN1c3RvbVxuICAgKiBpY29ucyB0aGF0IGRvIG5vdCBmb2xsb3cgdGhlIHRlc3RlZCB0eXBlcyBjYW4gbGVhZCB0byBpbmNvbnNpdGVuY3kgcXVpY2tseVxuICAgKiBhcyBkaWZmZXJlbnQgZGV2ZWxvcGVycyBrZWVwIG1ha2luZyB0d2Vha3MuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgaWNvbigpOiBTZWFtSWNvbiB8IHVuZGVmaW5lZCB7IHJldHVybiB0aGlzLl9pY29uVXJsIHx8IHRoaXMuX2ljb25PYmogfVxuICBzZXQgaWNvbih2YWx1ZTogU2VhbUljb24gfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgdGhpcy5faWNvblVybCA9IHZhbHVlXG4gICAgICB0aGlzLl9pY29uT2JqID0gdW5kZWZpbmVkXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2ljb25VcmwgPSB1bmRlZmluZWRcbiAgICAgIHRoaXMuX2ljb25PYmogPSB2YWx1ZVxuICAgIH1cbiAgfVxuXG4gIF9pY29uVXJsOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgX2ljb25PYmo6IEljb25Qcm9wIHwgdW5kZWZpbmVkXG5cbiAgLyoqIEFkZCBhIGNzcyBjbGFzcyB0byB0aGUgaGVhZGVyIGljb24uICovXG4gIEBJbnB1dCgpIGljb25DbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIC8qKiBTaG93cyB3aWRnZXQgbG9hZGluZyBpbnN0ZWFkIG9mIGNvbnRlbnQuICovXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBsb2FkaW5nID0gZmFsc2VcblxuICAvKiogQGlnbm9yZSAqL1xuICAvLyBOT1RFOiBDb25maWcgaXMgc3RpbGwgYmVpbmcgd29ya2VkIG9uLlxuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgaGFzQ29uZmlnID0gZmFsc2VcblxuICAvKipcbiAgICogVG9nZ2xlcyB0aGUgYWJpbGl0eSB0byBjb2xsYXBzZSBhIHdpZGdldC4gQW4gaWNvbiB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGVcbiAgICogaGVhZGVyIHRvIHRvZ2dsZSB0aGUgY29sbGFwc2VkIHN0YXRlLlxuICAgKi9cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGNhbkNvbGxhcHNlID0gZmFsc2VcblxuICBAQ29udGVudENoaWxkKFdpZGdldEljb25UcGxEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIGljb25UcGw/OiBXaWRnZXRJY29uVHBsRGlyZWN0aXZlXG4gIEBDb250ZW50Q2hpbGQoV2lkZ2V0VGl0bGVUcGxEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIHRpdGxlVHBsPzogV2lkZ2V0VGl0bGVUcGxEaXJlY3RpdmVcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF93aWRnZXRQcmVmZXJlbmNlczogV2lkZ2V0UHJlZmVyZW5jZXNTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVEhFU0VBTV9XSURHRVRfREFUQSkgcHJpdmF0ZSByZWFkb25seSBfZGF0YTogYW55XG4gICkge1xuICAgIGlmICh0aGlzLl9kYXRhICYmIHRoaXMuX2RhdGEud2lkZ2V0SWQpIHtcbiAgICAgIHRoaXMuX3ByZWZlcmVuY2VzS2V5ID0gYHdpZGdldDoke3RoaXMuX2RhdGEud2lkZ2V0SWR9YFxuICAgICAgdGhpcy5fd2lkZ2V0UHJlZmVyZW5jZXMucHJlZmVyZW5jZXModGhpcy5fcHJlZmVyZW5jZXNLZXkpLnBpcGUoXG4gICAgICAgIHRhcChwcmVmcyA9PiB7XG4gICAgICAgICAgaWYgKGhhc1Byb3BlcnR5KHByZWZzLCAnY29sbGFwc2VkJykpIHtcbiAgICAgICAgICAgIHRoaXMuY29sbGFwc2VkID0gcHJlZnMuY29sbGFwc2VkXG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX25nVW5zdWJzY3JpYmUpXG4gICAgICApLnN1YnNjcmliZSgpXG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5uZXh0KClcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKClcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIGEgd2lkZ2V0J3MgY29sbGFwc2VkIHN0YXRlLlxuICAgKi9cbiAgcHVibGljIGNvbGxhcHNlKCkge1xuICAgIGlmICghdGhpcy5jYW5Db2xsYXBzZSkge1xuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignV2lkZ2V0Q29tcG9uZW50OiBjb2xsYXBzZSgpIGNhbGxlZCB3aGVuIGNhbkNvbGxhcHNlIGlzIGZhbHNlLicpXG4gICAgICB9XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLmNvbGxhcHNlZCA9ICF0aGlzLmNvbGxhcHNlZFxuXG4gICAgLy8gT25seSB1cGRhdGUgdGhlIHByZWZlcmVuY2UsIGlmIGNvbGxhcHNlIG1ldGhvZCBpcyBjYWxsZWQsIGJlY2F1c2UgaXQgaXNcbiAgICAvLyBhc3N1bWVkIHRoYXQgdGhlIHVzZXIgaXMgY29sbGFwc2luZyB0aGUgd2lkZ2V0LiBJZiB0aGUgY29sbGFwc2VkIHN0YXRlIGlzXG4gICAgLy8gY2hhbmdlZCBieSBvdGhlciBtZWFucywgc3VjaCB1c2luZyB0aGUgd2lkZ2V0J3MgYGNvbGxhcHNlZGAgaW5wdXQsIHRoZW5cbiAgICAvLyB0aGUgcHJlZmVyZW5jZSBzaG91bGQgbm90IGJlIHVwZGF0ZWQsIGJlY2F1c2UgdGhhdCBpcyBhc3N1bWVkIHRvIGJlIGFuXG4gICAgLy8gYXBwIGNvbnRyb2xsZWQgY2hhbmdlIHRoYXQgc2hvdWxkIG5vdCBiZSBwZXJzaXN0ZWQuXG4gICAgaWYgKHRoaXMuX3ByZWZlcmVuY2VzS2V5KSB7XG4gICAgICB0aGlzLl93aWRnZXRQcmVmZXJlbmNlcy5wYXRjaFByZWZlcmVuY2VzKHRoaXMuX3ByZWZlcmVuY2VzS2V5LCB7IGNvbGxhcHNlZDogdGhpcy5jb2xsYXBzZWQgfSlcbiAgICB9XG4gIH1cblxuICBnZXQgY29sbGFwc2VTdGF0ZSgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5jb2xsYXBzZWQgPyBDT0xMQVBTRURfU1RBVEUgOiBFWFBBTkRFRF9TVEFURSB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZWFtLXdpZGdldCBib3JkZXIgcm91bmRlZCBvdmVyZmxvdy1oaWRkZW5cIj5cbiAgPGRpdiBjbGFzcz1cIndpZGdldC1oZWFkZXJcIiBzZWFtV2lkZ2V0RHJhZ0hhbmRsZSAqbmdJZj1cImhhc0hlYWRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtaGVhZGVyLWNvbnRlbnQgcC0yIHRleHQtbm93cmFwXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cIm1yLTEgd2lkZ2V0LWhlYWRlci1pY29uXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpY29uVHBsOyBlbHNlIG5vSWNvblRwbFwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaWNvblRwbC50ZW1wbGF0ZVwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGljb24sIGljb246IGljb24sIHRpdGxlOiB0aXRsZVRleHQgfVwiPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI25vSWNvblRwbD5cbiAgICAgICAgICA8ZmEtaWNvbiAqbmdJZj1cIl9pY29uT2JqXCJcbiAgICAgICAgICAgIGNsYXNzPVwid2lkZ2V0LWhlYWRlci1pY29uLS1mYSB7eyBpY29uQ2xhc3MgfX1cIlxuICAgICAgICAgICAgW2ljb25dPVwiX2ljb25PYmpcIj48L2ZhLWljb24+XG4gICAgICAgICAgPGltZyAqbmdJZj1cIl9pY29uVXJsXCJcbiAgICAgICAgICAgIGNsYXNzPVwid2lkZ2V0LWhlYWRlci1pY29uLS1pbWcge3sgaWNvbkNsYXNzIH19XCJcbiAgICAgICAgICAgIFtzcmNdPVwiX2ljb25VcmxcIiBbYWx0XT1cInRpdGxlVGV4dFwiPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ3aWRnZXQtaGVhZGVyLXRpdGxlIHRleHQtdHJ1bmNhdGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRpdGxlVHBsOyBlbHNlIG5vVGl0bGVUcGxcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRpdGxlVHBsLnRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogdGl0bGVUZXh0LCBpY29uOiBpY29uLCB0aXRsZTogdGl0bGVUZXh0IH1cIj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNub1RpdGxlVHBsPnt7IHRpdGxlVGV4dCB9fTwvbmctdGVtcGxhdGU+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIndpZGdldC1oZWFkZXItYnRucy1jb250YWluZXJcIiAqbmdJZj1cImhhc0NvbmZpZyB8fCBjYW5Db2xsYXBzZVwiPlxuICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiaGFzQ29uZmlnXCI+XG4gICAgICAgIDxidXR0b24gc2VhbUljb25CdG4gW2ljb25dPVwiY29uZmlnSWNvblwiXG4gICAgICAgICAgY2xhc3M9XCJ3aWRnZXQtaGVhZGVyLWJ0bi1jb25maWdcIlxuICAgICAgICAgIFtpY29uVHlwZV09XCJudWxsXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+V2lkZ2V0IGNvbmZpZ3VyYXRpb24gbWVudTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gc2VhbUJ1dHRvbiBjbGFzcz1cIndpZGdldC1oZWFkZXItYnRuLWNvbmZpZyBwLTBcIj5cbiAgICAgICAgICA8c2VhbS1pY29uIGNsYXNzPVwiZC1ibG9ja1wiIFtpY29uXT1cImNvbmZpZ0ljb25cIiBpY29uQ2xhc3M9XCJ0ZXh0LXNlY29uZGFyeVwiPjwvc2VhbS1pY29uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPldpZGdldCBjb25maWd1cmF0aW9uIG1lbnU8L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+IC0tPlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwiY2FuQ29sbGFwc2VcIiBjbGFzcz1cInB4LTBcIj5cblxuICAgICAgICA8YnV0dG9uIHNlYW1CdXR0b24gY2xhc3M9XCJ3aWRnZXQtaGVhZGVyLWJ0bi1jb2xsYXBzZSBwLTAgbXItMSBoLTEwMFwiIChjbGljayk9XCJjb2xsYXBzZSgpXCIgW2NsYXNzLndpZGdldC1oZWFkZXItYnRuLWNvbGxhcHNlLS1hY3RpdmVdPVwiY29sbGFwc2VkXCI+XG4gICAgICAgICAgPHNlYW0taWNvbiBjbGFzcz1cImQtYmxvY2tcIlxuICAgICAgICAgICAgW2ljb25dPVwiY29sbGFwc2VJY29uXCJcbiAgICAgICAgICAgIGljb25DbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgPC9zZWFtLWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+V2lkZ2V0IGNvbGxhcHNlPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPCEtLSBpY29uVHlwZT1cImJvcmRlcmxlc3Mtc3R5bGVkLXNxdWFyZVwiIC0tPlxuICAgICAgICA8IS0tIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0xMHB4OyBtYXJnaW4tcmlnaHQ6IC01cHg7XCIgLS0+XG5cbiAgICAgICAgPCEtLSA8YnV0dG9uIHNlYW1JY29uQnRuIGNsYXNzPVwid2lkZ2V0LWhlYWRlci1idG4tY29sbGFwc2VcIiAoY2xpY2spPVwiY29sbGFwc2UoKVwiIFtjbGFzcy53aWRnZXQtaGVhZGVyLWJ0bi1jb2xsYXBzZS0tYWN0aXZlXT1cImNvbGxhcHNlZFwiXG4gICAgICAgICAgYnRuVGhlbWU9XCJzZWNvbmRhcnlcIlxuICAgICAgICAgIFtpY29uXT1cImNvbGxhcHNlSWNvblwiXG4gICAgICAgICAgaWNvblR5cGU9XCJib3JkZXJsZXNzLXN0eWxlZC1zcXVhcmVcIlxuICAgICAgICAgIHNpemU9XCJ4c1wiXG4gICAgICAgICAgYnRuU2l6ZT1cInNtXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPHNlYW0taWNvbiBjbGFzcz1cImQtYmxvY2tcIlxuICAgICAgICAgICAgW2ljb25dPVwiY29sbGFwc2VJY29uXCJcbiAgICAgICAgICAgIGljb25DbGFzcz1cInRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0xMHB4OyBtYXJnaW4tcmlnaHQ6IC01cHg7XCJcbiAgICAgICAgICAgIGljb25UeXBlPVwiYm9yZGVybGVzcy1zdHlsZWQtc3F1YXJlXCI+PC9zZWFtLWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+V2lkZ2V0IGNvbGxhcHNlPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj4gLS0+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZSBvdmVyZmxvdy1oaWRkZW5cIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImxvYWRpbmcgPyAxNTAgOiB1bmRlZmluZWRcIiBbQGNvbGxhcHNlQW5pbV09XCJjb2xsYXBzZVN0YXRlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2xsYXBzZWRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwLTJcIiAqbmdJZj1cIiFsb2FkaW5nIGVsc2UgbG9hZGluZ1RwbFwiIEBrZWVwQ29udGVudEFuaW0+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2VhbS13aWRnZXQtZm9vdGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLXRlbXBsYXRlICNsb2FkaW5nVHBsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGVcIiBAbG9hZGluZ0FuaW0gc3R5bGU9XCJ0b3A6MDtyaWdodDowO2JvdHRvbTowO2xlZnQ6MFwiPlxuICAgICAgICAgIDxzZWFtLWxvYWRpbmcgW3RoZW1lXT1cIidwcmltYXJ5J1wiPjwvc2VhbS1sb2FkaW5nPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -2,9 +2,9 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class WidgetButtonGroupComponent {
4
4
  }
5
- WidgetButtonGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WidgetButtonGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
- WidgetButtonGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: WidgetButtonGroupComponent, selector: "seam-widget-button-group", ngImport: i0, template: "<ng-content select=\"[seamButton]\"></ng-content>\n", styles: [":host{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WidgetButtonGroupComponent, decorators: [{
5
+ WidgetButtonGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WidgetButtonGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ WidgetButtonGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: WidgetButtonGroupComponent, selector: "seam-widget-button-group", ngImport: i0, template: "<ng-content select=\"[seamButton]\"></ng-content>\n", styles: [":host{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WidgetButtonGroupComponent, decorators: [{
8
8
  type: Component,
9
9
  args: [{ selector: 'seam-widget-button-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content select=\"[seamButton]\"></ng-content>\n", styles: [":host{display:block}\n"] }]
10
10
  }] });
@@ -5,13 +5,13 @@ import { WidgetButtonGroupComponent } from './widget-button-group.component';
5
5
  import * as i0 from "@angular/core";
6
6
  export class TheSeamWidgetButtonGroupModule {
7
7
  }
8
- TheSeamWidgetButtonGroupModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetButtonGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- TheSeamWidgetButtonGroupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetButtonGroupModule, declarations: [WidgetButtonGroupComponent], imports: [CommonModule,
8
+ TheSeamWidgetButtonGroupModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetButtonGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ TheSeamWidgetButtonGroupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetButtonGroupModule, declarations: [WidgetButtonGroupComponent], imports: [CommonModule,
10
10
  TheSeamButtonsModule], exports: [WidgetButtonGroupComponent,
11
11
  TheSeamButtonsModule] });
12
- TheSeamWidgetButtonGroupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetButtonGroupModule, imports: [CommonModule,
12
+ TheSeamWidgetButtonGroupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetButtonGroupModule, imports: [CommonModule,
13
13
  TheSeamButtonsModule, TheSeamButtonsModule] });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetButtonGroupModule, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetButtonGroupModule, decorators: [{
15
15
  type: NgModule,
16
16
  args: [{
17
17
  declarations: [
@@ -2,9 +2,9 @@ import { Component, ViewEncapsulation } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class WidgetContentHeaderComponent {
4
4
  }
5
- WidgetContentHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WidgetContentHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
- WidgetContentHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: WidgetContentHeaderComponent, selector: "seam-widget-content-header", ngImport: i0, template: "<ng-content></ng-content>\n", styles: ["seam-widget-content-header{display:block;padding:.5rem .5rem 1rem}\n"], encapsulation: i0.ViewEncapsulation.None });
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WidgetContentHeaderComponent, decorators: [{
5
+ WidgetContentHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WidgetContentHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ WidgetContentHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: WidgetContentHeaderComponent, selector: "seam-widget-content-header", ngImport: i0, template: "<ng-content></ng-content>\n", styles: ["seam-widget-content-header{display:block;padding:.5rem .5rem 1rem}\n"], encapsulation: i0.ViewEncapsulation.None });
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WidgetContentHeaderComponent, decorators: [{
8
8
  type: Component,
9
9
  args: [{ selector: 'seam-widget-content-header', encapsulation: ViewEncapsulation.None, template: "<ng-content></ng-content>\n", styles: ["seam-widget-content-header{display:block;padding:.5rem .5rem 1rem}\n"] }]
10
10
  }] });
@@ -4,10 +4,10 @@ import { WidgetContentHeaderComponent } from './widget-content-header.component'
4
4
  import * as i0 from "@angular/core";
5
5
  export class TheSeamWidgetContentHeaderModule {
6
6
  }
7
- TheSeamWidgetContentHeaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetContentHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- TheSeamWidgetContentHeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetContentHeaderModule, declarations: [WidgetContentHeaderComponent], imports: [CommonModule], exports: [WidgetContentHeaderComponent] });
9
- TheSeamWidgetContentHeaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetContentHeaderModule, imports: [CommonModule] });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetContentHeaderModule, decorators: [{
7
+ TheSeamWidgetContentHeaderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetContentHeaderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ TheSeamWidgetContentHeaderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetContentHeaderModule, declarations: [WidgetContentHeaderComponent], imports: [CommonModule], exports: [WidgetContentHeaderComponent] });
9
+ TheSeamWidgetContentHeaderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetContentHeaderModule, imports: [CommonModule] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetContentHeaderModule, decorators: [{
11
11
  type: NgModule,
12
12
  args: [{
13
13
  declarations: [
@@ -2,9 +2,9 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class WidgetDescriptionComponent {
4
4
  }
5
- WidgetDescriptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WidgetDescriptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
- WidgetDescriptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: WidgetDescriptionComponent, selector: "seam-widget-description", ngImport: i0, template: "<p><ng-content></ng-content></p>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WidgetDescriptionComponent, decorators: [{
5
+ WidgetDescriptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WidgetDescriptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ WidgetDescriptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: WidgetDescriptionComponent, selector: "seam-widget-description", ngImport: i0, template: "<p><ng-content></ng-content></p>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WidgetDescriptionComponent, decorators: [{
8
8
  type: Component,
9
9
  args: [{ selector: 'seam-widget-description', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p><ng-content></ng-content></p>\n" }]
10
10
  }] });
@@ -4,10 +4,10 @@ import { WidgetDescriptionComponent } from './widget-description.component';
4
4
  import * as i0 from "@angular/core";
5
5
  export class TheSeamWidgetDescriptionModule {
6
6
  }
7
- TheSeamWidgetDescriptionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetDescriptionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- TheSeamWidgetDescriptionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetDescriptionModule, declarations: [WidgetDescriptionComponent], imports: [CommonModule], exports: [WidgetDescriptionComponent] });
9
- TheSeamWidgetDescriptionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetDescriptionModule, imports: [CommonModule] });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetDescriptionModule, decorators: [{
7
+ TheSeamWidgetDescriptionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetDescriptionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ TheSeamWidgetDescriptionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetDescriptionModule, declarations: [WidgetDescriptionComponent], imports: [CommonModule], exports: [WidgetDescriptionComponent] });
9
+ TheSeamWidgetDescriptionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetDescriptionModule, imports: [CommonModule] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetDescriptionModule, decorators: [{
11
11
  type: NgModule,
12
12
  args: [{
13
13
  declarations: [
@@ -19,9 +19,9 @@ export class WidgetEmptyLabelComponent {
19
19
  return this._elementRef.nativeElement.nodeName.toLowerCase() === 'a';
20
20
  }
21
21
  }
22
- WidgetEmptyLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WidgetEmptyLabelComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
23
- WidgetEmptyLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: WidgetEmptyLabelComponent, selector: "seam-widget-empty-label,a[seam-widget-empty-label],button[seam-widget-empty-label]", inputs: { type: "type" }, host: { properties: { "class.btn": "this._btnCss", "class.btn-link": "this._btnLinkCss", "attr.type": "this._attrType" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: ["seam-widget-empty-label{display:block;width:100%;text-align:left;font-size:15px;padding:.5rem}\n"], encapsulation: i0.ViewEncapsulation.None });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WidgetEmptyLabelComponent, decorators: [{
22
+ WidgetEmptyLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WidgetEmptyLabelComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
23
+ WidgetEmptyLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: WidgetEmptyLabelComponent, selector: "seam-widget-empty-label,a[seam-widget-empty-label],button[seam-widget-empty-label]", inputs: { type: "type" }, host: { properties: { "class.btn": "this._btnCss", "class.btn-link": "this._btnLinkCss", "attr.type": "this._attrType" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: ["seam-widget-empty-label{display:block;width:100%;text-align:left;font-size:15px;padding:.5rem}\n"], encapsulation: i0.ViewEncapsulation.None });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WidgetEmptyLabelComponent, decorators: [{
25
25
  type: Component,
26
26
  args: [{ selector: 'seam-widget-empty-label,a[seam-widget-empty-label],button[seam-widget-empty-label]', encapsulation: ViewEncapsulation.None, template: "<ng-content></ng-content>\n", styles: ["seam-widget-empty-label{display:block;width:100%;text-align:left;font-size:15px;padding:.5rem}\n"] }]
27
27
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { _btnCss: [{
@@ -4,10 +4,10 @@ import { WidgetEmptyLabelComponent } from './widget-empty-label.component';
4
4
  import * as i0 from "@angular/core";
5
5
  export class TheSeamWidgetEmptyLabelModule {
6
6
  }
7
- TheSeamWidgetEmptyLabelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetEmptyLabelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- TheSeamWidgetEmptyLabelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetEmptyLabelModule, declarations: [WidgetEmptyLabelComponent], imports: [CommonModule], exports: [WidgetEmptyLabelComponent] });
9
- TheSeamWidgetEmptyLabelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetEmptyLabelModule, imports: [CommonModule] });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetEmptyLabelModule, decorators: [{
7
+ TheSeamWidgetEmptyLabelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetEmptyLabelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ TheSeamWidgetEmptyLabelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetEmptyLabelModule, declarations: [WidgetEmptyLabelComponent], imports: [CommonModule], exports: [WidgetEmptyLabelComponent] });
9
+ TheSeamWidgetEmptyLabelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetEmptyLabelModule, imports: [CommonModule] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetEmptyLabelModule, decorators: [{
11
11
  type: NgModule,
12
12
  args: [{
13
13
  declarations: [
@@ -2,9 +2,9 @@ import { Component, ViewEncapsulation } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class WidgetFooterLinkComponent {
4
4
  }
5
- WidgetFooterLinkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WidgetFooterLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
- WidgetFooterLinkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: WidgetFooterLinkComponent, selector: "a[seam-widget-footer-link]", ngImport: i0, template: "<ng-content></ng-content>\n", styles: ["a[seam-widget-footer-link]{display:block;text-align:center;margin-top:.5rem}\n"], encapsulation: i0.ViewEncapsulation.None });
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WidgetFooterLinkComponent, decorators: [{
5
+ WidgetFooterLinkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WidgetFooterLinkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ WidgetFooterLinkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: WidgetFooterLinkComponent, selector: "a[seam-widget-footer-link]", ngImport: i0, template: "<ng-content></ng-content>\n", styles: ["a[seam-widget-footer-link]{display:block;text-align:center;margin-top:.5rem}\n"], encapsulation: i0.ViewEncapsulation.None });
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WidgetFooterLinkComponent, decorators: [{
8
8
  type: Component,
9
9
  args: [{ selector: 'a[seam-widget-footer-link]', encapsulation: ViewEncapsulation.None, template: "<ng-content></ng-content>\n", styles: ["a[seam-widget-footer-link]{display:block;text-align:center;margin-top:.5rem}\n"] }]
10
10
  }] });
@@ -4,10 +4,10 @@ import { WidgetFooterLinkComponent } from './widget-footer-link.component';
4
4
  import * as i0 from "@angular/core";
5
5
  export class TheSeamWidgetFooterLinkModule {
6
6
  }
7
- TheSeamWidgetFooterLinkModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetFooterLinkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- TheSeamWidgetFooterLinkModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetFooterLinkModule, declarations: [WidgetFooterLinkComponent], imports: [CommonModule], exports: [WidgetFooterLinkComponent] });
9
- TheSeamWidgetFooterLinkModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetFooterLinkModule, imports: [CommonModule] });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetFooterLinkModule, decorators: [{
7
+ TheSeamWidgetFooterLinkModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetFooterLinkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ TheSeamWidgetFooterLinkModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetFooterLinkModule, declarations: [WidgetFooterLinkComponent], imports: [CommonModule], exports: [WidgetFooterLinkComponent] });
9
+ TheSeamWidgetFooterLinkModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetFooterLinkModule, imports: [CommonModule] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetFooterLinkModule, decorators: [{
11
11
  type: NgModule,
12
12
  args: [{
13
13
  declarations: [
@@ -2,9 +2,9 @@ import { Component, ViewEncapsulation } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class WidgetFooterTextComponent {
4
4
  }
5
- WidgetFooterTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WidgetFooterTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
- WidgetFooterTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: WidgetFooterTextComponent, selector: "seam-widget-footer-text", ngImport: i0, template: "<em>\n <ng-content></ng-content>\n</em>\n", styles: ["seam-widget-footer-text{display:block;font-size:13px;margin-top:.5rem}\n"], encapsulation: i0.ViewEncapsulation.None });
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WidgetFooterTextComponent, decorators: [{
5
+ WidgetFooterTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WidgetFooterTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ WidgetFooterTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: WidgetFooterTextComponent, selector: "seam-widget-footer-text", ngImport: i0, template: "<em>\n <ng-content></ng-content>\n</em>\n", styles: ["seam-widget-footer-text{display:block;font-size:13px;margin-top:.5rem}\n"], encapsulation: i0.ViewEncapsulation.None });
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WidgetFooterTextComponent, decorators: [{
8
8
  type: Component,
9
9
  args: [{ selector: 'seam-widget-footer-text', encapsulation: ViewEncapsulation.None, template: "<em>\n <ng-content></ng-content>\n</em>\n", styles: ["seam-widget-footer-text{display:block;font-size:13px;margin-top:.5rem}\n"] }]
10
10
  }] });
@@ -4,10 +4,10 @@ import { WidgetFooterTextComponent } from './widget-footer-text.component';
4
4
  import * as i0 from "@angular/core";
5
5
  export class TheSeamWidgetFooterTextModule {
6
6
  }
7
- TheSeamWidgetFooterTextModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetFooterTextModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- TheSeamWidgetFooterTextModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetFooterTextModule, declarations: [WidgetFooterTextComponent], imports: [CommonModule], exports: [WidgetFooterTextComponent] });
9
- TheSeamWidgetFooterTextModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetFooterTextModule, imports: [CommonModule] });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetFooterTextModule, decorators: [{
7
+ TheSeamWidgetFooterTextModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetFooterTextModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ TheSeamWidgetFooterTextModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetFooterTextModule, declarations: [WidgetFooterTextComponent], imports: [CommonModule], exports: [WidgetFooterTextComponent] });
9
+ TheSeamWidgetFooterTextModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetFooterTextModule, imports: [CommonModule] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetFooterTextModule, decorators: [{
11
11
  type: NgModule,
12
12
  args: [{
13
13
  declarations: [
@@ -11,9 +11,9 @@ export class WidgetHeaderBadgeComponent extends _WidgetHeaderBadgeMixinBase {
11
11
  // eslint-disable-next-line @typescript-eslint/no-useless-constructor
12
12
  constructor(_elementRef) { super(_elementRef); }
13
13
  }
14
- WidgetHeaderBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WidgetHeaderBadgeComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
15
- WidgetHeaderBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: WidgetHeaderBadgeComponent, selector: "seam-widget-header-badge", inputs: { theme: "theme" }, host: { classAttribute: "badge float-right" }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n", styles: ["seam-widget-header-badge.badge{font-size:17px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WidgetHeaderBadgeComponent, decorators: [{
14
+ WidgetHeaderBadgeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WidgetHeaderBadgeComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
15
+ WidgetHeaderBadgeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: WidgetHeaderBadgeComponent, selector: "seam-widget-header-badge", inputs: { theme: "theme" }, host: { classAttribute: "badge float-right" }, usesInheritance: true, ngImport: i0, template: "<ng-content></ng-content>\n", styles: ["seam-widget-header-badge.badge{font-size:17px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WidgetHeaderBadgeComponent, decorators: [{
17
17
  type: Component,
18
18
  args: [{ selector: 'seam-widget-header-badge', inputs: ['theme'], host: {
19
19
  'class': 'badge float-right'
@@ -4,10 +4,10 @@ import { WidgetHeaderBadgeComponent } from './widget-header-badge.component';
4
4
  import * as i0 from "@angular/core";
5
5
  export class TheSeamWidgetHeaderBadgeModule {
6
6
  }
7
- TheSeamWidgetHeaderBadgeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetHeaderBadgeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- TheSeamWidgetHeaderBadgeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetHeaderBadgeModule, declarations: [WidgetHeaderBadgeComponent], imports: [CommonModule], exports: [WidgetHeaderBadgeComponent] });
9
- TheSeamWidgetHeaderBadgeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetHeaderBadgeModule, imports: [CommonModule] });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamWidgetHeaderBadgeModule, decorators: [{
7
+ TheSeamWidgetHeaderBadgeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetHeaderBadgeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ TheSeamWidgetHeaderBadgeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetHeaderBadgeModule, declarations: [WidgetHeaderBadgeComponent], imports: [CommonModule], exports: [WidgetHeaderBadgeComponent] });
9
+ TheSeamWidgetHeaderBadgeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetHeaderBadgeModule, imports: [CommonModule] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamWidgetHeaderBadgeModule, decorators: [{
11
11
  type: NgModule,
12
12
  args: [{
13
13
  declarations: [
@@ -5,9 +5,9 @@ export class WidgetListGroupItemIconTplDirective {
5
5
  this.template = template;
6
6
  }
7
7
  }
8
- WidgetListGroupItemIconTplDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WidgetListGroupItemIconTplDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
9
- WidgetListGroupItemIconTplDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: WidgetListGroupItemIconTplDirective, selector: "[seamWidgetListGroupItemIconTpl]", exportAs: ["seamWidgetListGroupItemIconTpl"], ngImport: i0 });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: WidgetListGroupItemIconTplDirective, decorators: [{
8
+ WidgetListGroupItemIconTplDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WidgetListGroupItemIconTplDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
9
+ WidgetListGroupItemIconTplDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: WidgetListGroupItemIconTplDirective, selector: "[seamWidgetListGroupItemIconTpl]", exportAs: ["seamWidgetListGroupItemIconTpl"], ngImport: i0 });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WidgetListGroupItemIconTplDirective, decorators: [{
11
11
  type: Directive,
12
12
  args: [{
13
13
  selector: '[seamWidgetListGroupItemIconTpl]',