@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
@@ -9,9 +9,9 @@ export class DashboardWidgetTemplateContainerComponent {
9
9
  this.template$ = this._dashboardWidgetsComponent.containers$.pipe(map(containers => containers.find((c) => c.def.widgetId === this.item?.widgetId)), map(container => container && container.templateRef));
10
10
  }
11
11
  }
12
- DashboardWidgetTemplateContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DashboardWidgetTemplateContainerComponent, deps: [{ token: THESEAM_DASHBOARD_WIDGETS_ACCESSOR }], target: i0.ɵɵFactoryTarget.Component });
13
- DashboardWidgetTemplateContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DashboardWidgetTemplateContainerComponent, selector: "seam-dashboard-widget-template-container", inputs: { item: "item" }, ngImport: i0, template: "<ng-template [ngTemplateOutlet]=\"$any(template$ | async)\"></ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DashboardWidgetTemplateContainerComponent, decorators: [{
12
+ DashboardWidgetTemplateContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DashboardWidgetTemplateContainerComponent, deps: [{ token: THESEAM_DASHBOARD_WIDGETS_ACCESSOR }], target: i0.ɵɵFactoryTarget.Component });
13
+ DashboardWidgetTemplateContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DashboardWidgetTemplateContainerComponent, selector: "seam-dashboard-widget-template-container", inputs: { item: "item" }, ngImport: i0, template: "<ng-template [ngTemplateOutlet]=\"$any(template$ | async)\"></ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DashboardWidgetTemplateContainerComponent, decorators: [{
15
15
  type: Component,
16
16
  args: [{ selector: 'seam-dashboard-widget-template-container', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template [ngTemplateOutlet]=\"$any(template$ | async)\"></ng-template>\n" }]
17
17
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -104,9 +104,9 @@ export class DashboardWidgetPortalOutletDirective extends BasePortalOutlet {
104
104
  return viewRef;
105
105
  }
106
106
  }
107
- DashboardWidgetPortalOutletDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DashboardWidgetPortalOutletDirective, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
108
- DashboardWidgetPortalOutletDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: DashboardWidgetPortalOutletDirective, selector: "[seamDashboardWidgetPortalOutlet]", inputs: { portal: ["seamDashboardWidgetPortalOutlet", "portal"] }, outputs: { attached: "attached" }, exportAs: ["seamDashboardWidgetPortalOutlet"], usesInheritance: true, ngImport: i0 });
109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DashboardWidgetPortalOutletDirective, decorators: [{
107
+ DashboardWidgetPortalOutletDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DashboardWidgetPortalOutletDirective, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
108
+ DashboardWidgetPortalOutletDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: DashboardWidgetPortalOutletDirective, selector: "[seamDashboardWidgetPortalOutlet]", inputs: { portal: ["seamDashboardWidgetPortalOutlet", "portal"] }, outputs: { attached: "attached" }, exportAs: ["seamDashboardWidgetPortalOutlet"], usesInheritance: true, ngImport: i0 });
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DashboardWidgetPortalOutletDirective, decorators: [{
110
110
  type: Directive,
111
111
  args: [{
112
112
  selector: '[seamDashboardWidgetPortalOutlet]',
@@ -161,9 +161,9 @@ export class DashboardWidgetsPreferencesService {
161
161
  return serialized;
162
162
  }
163
163
  }
164
- DashboardWidgetsPreferencesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DashboardWidgetsPreferencesService, deps: [{ token: THESEAM_DASHBOARD_WIDGETS_PREFERENCES_ACCESSOR, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
165
- DashboardWidgetsPreferencesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DashboardWidgetsPreferencesService, providedIn: 'root' });
166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DashboardWidgetsPreferencesService, decorators: [{
164
+ DashboardWidgetsPreferencesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DashboardWidgetsPreferencesService, deps: [{ token: THESEAM_DASHBOARD_WIDGETS_PREFERENCES_ACCESSOR, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
165
+ DashboardWidgetsPreferencesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DashboardWidgetsPreferencesService, providedIn: 'root' });
166
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DashboardWidgetsPreferencesService, decorators: [{
167
167
  type: Injectable,
168
168
  args: [{
169
169
  providedIn: 'root'
@@ -146,8 +146,8 @@ export class DashboardWidgetsComponent {
146
146
  this._widthChange.next(event.size.width);
147
147
  }
148
148
  }
149
- DashboardWidgetsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DashboardWidgetsComponent, deps: [{ token: i1.DashboardWidgetsService }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }, { token: THESEAM_BASE_LAYOUT_REF, optional: true }], target: i0.ɵɵFactoryTarget.Component });
150
- DashboardWidgetsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DashboardWidgetsComponent, selector: "seam-dashboard-widgets", inputs: { gapSize: "gapSize", widgetsDraggable: "widgetsDraggable", dragToggleVisible: "dragToggleVisible", numColumns: "numColumns", widgets: "widgets" }, outputs: { widgetsChange: "widgetsChange" }, providers: [
149
+ DashboardWidgetsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DashboardWidgetsComponent, deps: [{ token: i1.DashboardWidgetsService }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }, { token: THESEAM_BASE_LAYOUT_REF, optional: true }], target: i0.ɵɵFactoryTarget.Component });
150
+ DashboardWidgetsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DashboardWidgetsComponent, selector: "seam-dashboard-widgets", inputs: { gapSize: "gapSize", widgetsDraggable: "widgetsDraggable", dragToggleVisible: "dragToggleVisible", numColumns: "numColumns", widgets: "widgets" }, outputs: { widgetsChange: "widgetsChange" }, providers: [
151
151
  {
152
152
  provide: THESEAM_WIDGET_ACCESSOR,
153
153
  // tslint:disable-next-line:no-use-before-declare
@@ -162,7 +162,7 @@ DashboardWidgetsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
162
162
  __decorate([
163
163
  InputBoolean()
164
164
  ], DashboardWidgetsComponent.prototype, "widgetsDraggable", void 0);
165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DashboardWidgetsComponent, decorators: [{
165
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DashboardWidgetsComponent, decorators: [{
166
166
  type: Component,
167
167
  args: [{ selector: 'seam-dashboard-widgets', providers: [
168
168
  {
@@ -1,8 +1,9 @@
1
1
  import { ComponentPortal } from '@angular/cdk/portal';
2
- import { Injectable, isDevMode } from '@angular/core';
2
+ import { Injectable, Injector, isDevMode } from '@angular/core';
3
3
  import { BehaviorSubject, combineLatest, of } from 'rxjs';
4
4
  import { auditTime, map, mapTo, shareReplay, switchMap, take, tap } from 'rxjs/operators';
5
5
  import { notNullOrUndefined } from '@theseam/ui-common/utils';
6
+ import { THESEAM_WIDGET_DATA } from '@theseam/ui-common/widget';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "@theseam/ui-common/dynamic-component-loader";
8
9
  import * as i2 from "./dashboard-widgets-preferences.service";
@@ -77,10 +78,15 @@ export class DashboardWidgetsService {
77
78
  }
78
79
  createWidgetPortal(def, vcr) {
79
80
  if (typeof def.component === 'string') {
81
+ const injector = Injector.create({ providers: [
82
+ { provide: THESEAM_WIDGET_DATA, useValue: { widgetId: def.widgetId } }
83
+ ], parent: this._viewContainerRefSubject.value?.injector });
80
84
  return this._dynamicComponentLoaderModule
81
85
  .getComponentFactory(def.component)
82
86
  .pipe(map(componentFactory => {
83
- return new ComponentPortal(componentFactory.componentType, vcr, undefined, componentFactory /* ComponentFactoryBoundToModule */.ngModule.componentFactoryResolver);
87
+ return new ComponentPortal(componentFactory.componentType, vcr,
88
+ // undefined,
89
+ injector, componentFactory /* ComponentFactoryBoundToModule */.ngModule.componentFactoryResolver);
84
90
  }), take(1));
85
91
  }
86
92
  return def.componentFactoryResolver
@@ -161,12 +167,12 @@ export class DashboardWidgetsService {
161
167
  }), mapTo(undefined));
162
168
  }
163
169
  }
164
- DashboardWidgetsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DashboardWidgetsService, deps: [{ token: i1.TheSeamDynamicComponentLoader }, { token: i2.DashboardWidgetsPreferencesService }], target: i0.ɵɵFactoryTarget.Injectable });
165
- DashboardWidgetsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DashboardWidgetsService, providedIn: 'root' });
166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DashboardWidgetsService, decorators: [{
170
+ DashboardWidgetsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DashboardWidgetsService, deps: [{ token: i1.TheSeamDynamicComponentLoader }, { token: i2.DashboardWidgetsPreferencesService }], target: i0.ɵɵFactoryTarget.Injectable });
171
+ DashboardWidgetsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DashboardWidgetsService, providedIn: 'root' });
172
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DashboardWidgetsService, decorators: [{
167
173
  type: Injectable,
168
174
  args: [{
169
175
  providedIn: 'root'
170
176
  }]
171
177
  }], ctorParameters: function () { return [{ type: i1.TheSeamDynamicComponentLoader }, { type: i2.DashboardWidgetsPreferencesService }]; } });
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXdpZGdldHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mcmFtZXdvcmsvZGFzaGJvYXJkL2Rhc2hib2FyZC13aWRnZXRzL2Rhc2hib2FyZC13aWRnZXRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQTtBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBR3pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFBOzs7O0FBYTdELE1BQU0sT0FBTyx1QkFBdUI7SUFTbEMsSUFBSSxPQUFPLEtBQWlDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUEsQ0FBQyxDQUFDO0lBQ3hFLElBQUksT0FBTyxDQUFDLEtBQWlDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRzVFLElBQUksVUFBVSxLQUFhLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUEsQ0FBQyxDQUFDO0lBQzFELElBQUksVUFBVSxDQUFDLEtBQWE7UUFDMUIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDN0I7SUFDSCxDQUFD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b3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCdcbmltcG9ydCB7IEluamVjdGFibGUsIGlzRGV2TW9kZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGF1ZGl0VGltZSwgbWFwLCBtYXBUbywgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB7IFRoZVNlYW1EeW5hbWljQ29tcG9uZW50TG9hZGVyIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2R5bmFtaWMtY29tcG9uZW50LWxvYWRlcidcbmltcG9ydCB7IG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuaW1wb3J0IHtcbiAgSURhc2hib2FyZFdpZGdldEl0ZW1MYXlvdXRQcmVmZXJlbmNlLFxuICBJRGFzaGJvYXJkV2lkZ2V0c0NvbHVtblJlY29yZCxcbiAgSURhc2hib2FyZFdpZGdldHNJdGVtLFxuICBJRGFzaGJvYXJkV2lkZ2V0c0l0ZW1EZWZcbn0gZnJvbSAnLi9kYXNoYm9hcmQtd2lkZ2V0cy1pdGVtJ1xuaW1wb3J0IHsgRGFzaGJvYXJkV2lkZ2V0c1ByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4vZGFzaGJvYXJkLXdpZGdldHMtcHJlZmVyZW5jZXMuc2VydmljZSdcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkV2lkZ2V0c1NlcnZpY2Uge1xuXG4gIHB1YmxpYyByZWFkb25seSBwcmVmZXJlbmNlS2V5OiBzdHJpbmcgPSAnZGF0YXRhYmxlLXdpZGdldHMnXG5cbiAgcHVibGljIHJlYWRvbmx5IGRlZmF1bHROdW1Db2x1bW5zOiBudW1iZXIgPSAzXG5cbiAgLyoqIFVzZWQgZm9yIG9wZXJhdGlvbnMsIHN1Y2ggYXMgJ2FkZFdpZGdldCcsIGlmIHRoZSBjb2x1bW4gaXMgbm90IHNwZWNpZmllZC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlZmF1bHRDb2x1bW46IG51bWJlciA9IDBcblxuICBnZXQgd2lkZ2V0cygpOiBJRGFzaGJvYXJkV2lkZ2V0c0l0ZW1EZWZbXSB7IHJldHVybiB0aGlzLl93aWRnZXRzLnZhbHVlIH1cbiAgc2V0IHdpZGdldHModmFsdWU6IElEYXNoYm9hcmRXaWRnZXRzSXRlbURlZltdKSB7IHRoaXMuX3dpZGdldHMubmV4dCh2YWx1ZSkgfVxuICBwcml2YXRlIF93aWRnZXRzID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJRGFzaGJvYXJkV2lkZ2V0c0l0ZW1EZWZbXT4oW10pXG5cbiAgZ2V0IG51bUNvbHVtbnMoKTogbnVtYmVyIHsgcmV0dXJuIHRoaXMuX251bUNvbHVtbnMudmFsdWUgfVxuICBzZXQgbnVtQ29sdW1ucyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLl9udW1Db2x1bW5zLnZhbHVlKSB7XG4gICAgICB0aGlzLl9udW1Db2x1bW5zLm5leHQodmFsdWUpXG4gICAgfVxuICB9XG4gIHByaXZhdGUgX251bUNvbHVtbnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4odGhpcy5kZWZhdWx0TnVtQ29sdW1ucylcblxuICBwdWJsaWMgcmVhZG9ubHkgbnVtQ29sdW1ucyQ6IE9ic2VydmFibGU8bnVtYmVyPlxuICBwdWJsaWMgcmVhZG9ubHkgd2lkZ2V0SXRlbXMkOiBPYnNlcnZhYmxlPElEYXNoYm9hcmRXaWRnZXRzSXRlbVtdPlxuICBwdWJsaWMgcmVhZG9ubHkgd2lkZ2V0Q29sdW1ucyQ6IE9ic2VydmFibGU8SURhc2hib2FyZFdpZGdldHNDb2x1bW5SZWNvcmRbXT5cblxuICBwcml2YXRlIHJlYWRvbmx5IF92aWV3Q29udGFpbmVyUmVmU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Vmlld0NvbnRhaW5lclJlZiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2R5bmFtaWNDb21wb25lbnRMb2FkZXJNb2R1bGU6IFRoZVNlYW1EeW5hbWljQ29tcG9uZW50TG9hZGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ByZWZlcmVuY2VzOiBEYXNoYm9hcmRXaWRnZXRzUHJlZmVyZW5jZXNTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMubnVtQ29sdW1ucyQgPSB0aGlzLl9udW1Db2x1bW5zLmFzT2JzZXJ2YWJsZSgpXG5cbiAgICAvLyBXaWRnZXQgaXRlbXMgd2l0aG91dCBwcmVmZXJlbmNlc1xuICAgIGNvbnN0IF93aWRnZXRJdGVtcyQgPSBjb21iaW5lTGF0ZXN0KFsgdGhpcy5fd2lkZ2V0cywgdGhpcy5fdmlld0NvbnRhaW5lclJlZlN1YmplY3QgXSlcbiAgICAgIC5waXBlKHN3aXRjaE1hcCgoWyBkZWZzLCB2Y3IgXSkgPT4gdGhpcy5jcmVhdGVXaWRnZXRJdGVtcyhkZWZzLCB2Y3IpKSlcblxuICAgIC8vIFdpZGdldCBpdGVtcyB3aXRoIHByZWZlcmVuY2VzXG4gICAgdGhpcy53aWRnZXRJdGVtcyQgPSBjb21iaW5lTGF0ZXN0KFsgX3dpZGdldEl0ZW1zJCwgdGhpcy5udW1Db2x1bW5zJCBdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIC8vIFdhaXQgdW50aWwgdGhlIGN1cnJlbnQgdGljayBpcyBkb25lLCBpbmNhc2UgYm90aCB0aGUgd2lkZ2V0cyBhbmRcbiAgICAgICAgLy8gbnVtYmVyIG9mIGNvbHVtbnMgYXJlIHNldCBkdXJyaW5nIHRoZSBzYW1lIHRpY2suIFdpdGhvdXQgdGhlIGF1ZGl0LFxuICAgICAgICAvLyB0aGlzIHdvdWxkIGdldCBjYWxsZWQgdHdpY2Ugd2hlbiB0aGUgY29tcG9uZW50IGlzIGluaXRpYWxpemVkIHdpdGhcbiAgICAgICAgLy8gYm90aCBpbnB1dHMgc2V0IG9uZSBhZnRlciB0aGUgb3RoZXIgaW5kaXZpZHVhbGx5LlxuICAgICAgICBhdWRpdFRpbWUoMCksXG4gICAgICAgIHN3aXRjaE1hcCgoWyBpdGVtcywgbnVtQ29sdW1ucyBdKSA9PlxuICAgICAgICAgIHRoaXMuX3ByZWZlcmVuY2VzLnNlbGVjdExheW91dCh0aGlzLnByZWZlcmVuY2VLZXksIHRoaXMuX2xheW91dE5hbWUobnVtQ29sdW1ucykpLnBpcGUoXG4gICAgICAgICAgICBtYXAobGF5b3V0ID0+IGxheW91dCA/IHRoaXMud2l0aExheW91dFByZWZlcmVuY2VzKGl0ZW1zLCBsYXlvdXQpIDogaXRlbXMpXG4gICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgICApXG5cbiAgICB0aGlzLndpZGdldENvbHVtbnMkID0gdGhpcy53aWRnZXRJdGVtcyRcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoaXRlbXMgPT4gdGhpcy50b0NvbHVtblJlY29yZHMoaXRlbXMpKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KVxuICAgICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBfbGF5b3V0TmFtZShudW1Db2x1bW5zOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBgY29sdW1ucy0ke251bUNvbHVtbnN9YFxuICB9XG5cbiAgcHVibGljIHNldFZpZXdDb250YWluZXJSZWYodmNyOiBWaWV3Q29udGFpbmVyUmVmIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZlN1YmplY3QubmV4dCh2Y3IpXG4gIH1cblxuICBwdWJsaWMgY3JlYXRlV2lkZ2V0SXRlbXMoZGVmczogSURhc2hib2FyZFdpZGdldHNJdGVtRGVmW10sIHZjcj86IFZpZXdDb250YWluZXJSZWYpOiBPYnNlcnZhYmxlPElEYXNoYm9hcmRXaWRnZXRzSXRlbVtdPiB7XG4gICAgY29uc3QgX2NyZWF0ZU9ic2VydmFibGVzID0gKGRlZnMgfHwgW10pLm1hcChkID0+IHRoaXMuY3JlYXRlV2lkZ2V0SXRlbShkLCB2Y3IpKVxuICAgIGNvbnN0IGl0ZW1zJCA9IF9jcmVhdGVPYnNlcnZhYmxlcy5sZW5ndGggPiAwID8gY29tYmluZUxhdGVzdChfY3JlYXRlT2JzZXJ2YWJsZXMpIDogb2YoW10pXG4gICAgcmV0dXJuIGl0ZW1zJC5waXBlKFxuICAgICAgbWFwKGl0ZW1zID0+IGl0ZW1zLmZpbHRlcihub3ROdWxsT3JVbmRlZmluZWQpKSxcbiAgICAgIHRhcChpdGVtcyA9PiB7XG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICAgIGNvbnN0IGlkczogc3RyaW5nW10gPSBpdGVtcy5tYXAodiA9PiB2LndpZGdldElkKVxuICAgICAgICAgIGlmICgobmV3IFNldChpZHMpKS5zaXplICE9PSBpZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICAgICAgY29uc29sZS53YXJuKGBbRGFzaGJvYXJkV2lkZ2V0c1NlcnZpY2VdIER1cGxpY2F0ZSB3aWRnZXQncyB3aXRoIHRoZSBzYW1lICd3aWRnZXRJZCcgZm91bmQuYClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgcHVibGljIGNyZWF0ZVdpZGdldEl0ZW0oZGVmOiBJRGFzaGJvYXJkV2lkZ2V0c0l0ZW1EZWYsIHZjcj86IFZpZXdDb250YWluZXJSZWYpOiBPYnNlcnZhYmxlPElEYXNoYm9hcmRXaWRnZXRzSXRlbSB8IHVuZGVmaW5lZD4ge1xuICAgIGlmICghZGVmLndpZGdldElkIHx8IHR5cGVvZiBkZWYud2lkZ2V0SWQgIT09ICdzdHJpbmcnIHx8IGRlZi53aWRnZXRJZC5sZW5ndGggPCAxKSB7XG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS53YXJuKGBbRGFzaGJvYXJkV2lkZ2V0c1NlcnZpY2VdIFdpZGdldCBpZ25vcmVkLiBBbGwgd2lkZ2V0cyBtdXN0IGhhdmUgYSAnd2lkZ2V0SWQnLmAsIGRlZilcbiAgICAgIH1cbiAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlV2lkZ2V0UG9ydGFsKGRlZiwgdmNyKS5waXBlKFxuICAgICAgbWFwKHBvcnRhbCA9PiAoe1xuICAgICAgICAuLi5kZWYsXG4gICAgICAgIGNvbDogZGVmLmNvbCB8fCB0aGlzLmRlZmF1bHRDb2x1bW4sXG4gICAgICAgIG9yZGVyOiBkZWYub3JkZXIgfHwgMCxcbiAgICAgICAgcG9ydGFsLFxuICAgICAgICBfX2l0ZW1EZWY6IGRlZlxuICAgICAgfSkpXG4gICAgKVxuICB9XG5cbiAgcHVibGljIGNyZWF0ZVdpZGdldFBvcnRhbChkZWY6IElEYXNoYm9hcmRXaWRnZXRzSXRlbURlZiwgdmNyPzogVmlld0NvbnRhaW5lclJlZik6IE9ic2VydmFibGU8Q29tcG9uZW50UG9ydGFsPGFueT4+IHtcbiAgICBpZiAodHlwZW9mIGRlZi5jb21wb25lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdGhpcy5fZHluYW1pY0NvbXBvbmVudExvYWRlck1vZHVsZVxuICAgICAgICAuZ2V0Q29tcG9uZW50RmFjdG9yeShkZWYuY29tcG9uZW50KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoY29tcG9uZW50RmFjdG9yeSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChcbiAgICAgICAgICAgICAgY29tcG9uZW50RmFjdG9yeS5jb21wb25lbnRUeXBlLFxuICAgICAgICAgICAgICB2Y3IsXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgKGNvbXBvbmVudEZhY3RvcnkgYXMgYW55IC8qIENvbXBvbmVudEZhY3RvcnlCb3VuZFRvTW9kdWxlICovKS5uZ01vZHVsZS5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0YWtlKDEpXG4gICAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxuICAgICAgPyBvZihuZXcgQ29tcG9uZW50UG9ydGFsKGRlZi5jb21wb25lbnQsIHZjciwgdW5kZWZpbmVkLCBkZWYuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSlcbiAgICAgIDogb2YobmV3IENvbXBvbmVudFBvcnRhbChkZWYuY29tcG9uZW50LCB2Y3IpKVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZU9yZGVyKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLndpZGdldENvbHVtbnMkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgdGFwKGNvbHVtbnMgPT4gY29sdW1ucy5mb3JFYWNoKGNvbCA9PiB7XG4gICAgICAgICAgbGV0IGkgPSAwXG4gICAgICAgICAgY29sLml0ZW1zLmZvckVhY2goaXRtID0+IGl0bS5vcmRlciA9IGkrKylcbiAgICAgICAgfSkpLFxuICAgICAgICBtYXBUbyh1bmRlZmluZWQpXG4gICAgICApXG4gIH1cblxuICBwdWJsaWMgdG9Db2x1bW5SZWNvcmRzKGl0ZW1zOiBJRGFzaGJvYXJkV2lkZ2V0c0l0ZW1bXSk6IElEYXNoYm9hcmRXaWRnZXRzQ29sdW1uUmVjb3JkW10ge1xuICAgIGxldCBjb2x1bW5zOiBJRGFzaGJvYXJkV2lkZ2V0c0NvbHVtblJlY29yZFtdID0gW11cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5udW1Db2x1bW5zOyBpKyspIHtcbiAgICAgIGNvbHVtbnMucHVzaCh7IGNvbHVtbjogaSwgaXRlbXM6IFtdIH0pXG4gICAgfVxuXG4gICAgY29uc3QgY29sTm90Rm91bmQ6IElEYXNoYm9hcmRXaWRnZXRzSXRlbVtdID0gW11cblxuICAgIC8vIERpc3RyaWJ1dGUgaXRlbXMgaW50byBjb2x1bW5zXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICBjb25zdCBjb2w6IElEYXNoYm9hcmRXaWRnZXRzQ29sdW1uUmVjb3JkIHwgdW5kZWZpbmVkID0gY29sdW1ucy5maW5kKGMgPT4gYy5jb2x1bW4gPT09IGl0ZW0uY29sKVxuICAgICAgaWYgKCFjb2wpIHtcbiAgICAgICAgLy8gY29sdW1ucy5wdXNoKHsgY29sdW1uOiBpdGVtLmNvbCwgaXRlbXM6IFsgaXRlbSBdIH0pXG4gICAgICAgIC8vIGlmIChpdGVtLmNvbCA8IDApIHtcbiAgICAgICAgLy8gICBjb25zdCBjb2wwOiBJRGFzaGJvYXJkV2lkZ2V0c0NvbHVtblJlY29yZCB8IHVuZGVmaW5lZCA9IGNvbHVtbnMuZmluZChjID0+IGMuY29sdW1uID09PSAwKVxuICAgICAgICAvLyAgIGlmIChjb2wwKSB7XG4gICAgICAgIC8vICAgICBjb2wwLml0ZW1zLnB1c2goaXRlbSlcbiAgICAgICAgLy8gICB9XG4gICAgICAgIC8vIH0gZWxzZSBpZiAoaXRlbS5jb2wgPiB0aGlzLm51bUNvbHVtbnMgLSAxKSB7XG4gICAgICAgIC8vICAgY29uc3QgY29sTWF4OiBJRGFzaGJvYXJkV2lkZ2V0c0NvbHVtblJlY29yZCB8IHVuZGVmaW5lZCA9IGNvbHVtbnMuZmluZChjID0+IGMuY29sdW1uID09PSB0aGlzLm51bUNvbHVtbnMgLSAxKVxuICAgICAgICAvLyAgIGlmIChjb2xNYXgpIHtcbiAgICAgICAgLy8gICAgIGNvbE1heC5pdGVtcy5wdXNoKGl0ZW0pXG4gICAgICAgIC8vICAgfVxuICAgICAgICAvLyB9XG4gICAgICAgIGNvbE5vdEZvdW5kLnB1c2goaXRlbSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbC5pdGVtcy5wdXNoKGl0ZW0pXG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2xOb3RGb3VuZC5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgaXRlbSA9IGNvbE5vdEZvdW5kW2ldXG5cbiAgICAgIGNvbnN0IGNvbDogSURhc2hib2FyZFdpZGdldHNDb2x1bW5SZWNvcmQgfCB1bmRlZmluZWQgPSBjb2x1bW5zXG4gICAgICAgIC5maW5kKGMgPT4gYy5jb2x1bW4gPT09IGkgJSB0aGlzLm51bUNvbHVtbnMpXG5cbiAgICAgIGlmIChjb2wpIHtcbiAgICAgICAgY29sLml0ZW1zLnB1c2goaXRlbSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTb3J0IGNvbHVtbnNcbiAgICBjb2x1bW5zID0gY29sdW1ucy5zb3J0KChhLCBiKSA9PiBhLmNvbHVtbiAtIGIuY29sdW1uKVxuXG4gICAgLy8gU29ydCBjb2x1bW5zIGl0ZW1zXG4gICAgY29sdW1ucy5mb3JFYWNoKGNvbCA9PiBjb2wuaXRlbXMuc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpKVxuXG4gICAgcmV0dXJuIGNvbHVtbnNcbiAgfVxuXG4gIHB1YmxpYyB3aXRoTGF5b3V0UHJlZmVyZW5jZXMoaXRlbXM6IElEYXNoYm9hcmRXaWRnZXRzSXRlbVtdLCBsYXlvdXQ6IElEYXNoYm9hcmRXaWRnZXRJdGVtTGF5b3V0UHJlZmVyZW5jZSk6IElEYXNoYm9hcmRXaWRnZXRzSXRlbVtdIHtcbiAgICBjb25zdCBfaXRlbXM6IElEYXNoYm9hcmRXaWRnZXRzSXRlbVtdID0gW11cblxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgY29uc3QgaXRlbVByZWYgPSBsYXlvdXQuaXRlbXMuZmluZCh4ID0+IHgud2lkZ2V0SWQgPT09IGl0ZW0ud2lkZ2V0SWQpXG4gICAgICBfaXRlbXMucHVzaCh7XG4gICAgICAgIC4uLml0ZW0sXG4gICAgICAgIC4uLihpdGVtUHJlZiB8fCB7fSlcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIF9pdGVtc1xuICB9XG5cbiAgcHVibGljIHNhdmVQcmVmZXJlbmNlcygpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAvLyBSaWdodCBub3cgdGhlIGl0ZW1zIGFyZSBtb3ZlZCBiZXR3ZWVuIHRoZSBjb2x1bW4gcmVjb3JkIGFycmF5cywgYnV0IHRoZVxuICAgIC8vICdjb2wnIHByb3AgaXMgbm90IHVwZGF0ZWQsIHNvIGl0IGlzIG1hcHBlZCB0byBjb3JyZWN0ZWQgaXRlbXMgaGVyZSBmcm9tXG4gICAgLy8gdGhlIGNvbHVtbiByZWNvcmRzLlxuICAgIGNvbnN0IGl0ZW1zJCA9IHRoaXMud2lkZ2V0Q29sdW1ucyQucGlwZShcbiAgICAgIG1hcChjb2x1bW5zID0+IChbXSBhcyBJRGFzaGJvYXJkV2lkZ2V0c0l0ZW1bXSlcbiAgICAgICAgLmNvbmNhdCguLi4oY29sdW1ucy5tYXAoYyA9PiBjLml0ZW1zLm1hcChpdG0gPT4gKHsgLi4uaXRtLCBjb2w6IGMuY29sdW1uIH0pKSkpKVxuICAgICAgKSxcbiAgICApXG5cbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbIGl0ZW1zJCwgdGhpcy5udW1Db2x1bW5zJCBdKS5waXBlKFxuICAgICAgYXVkaXRUaW1lKDApLFxuICAgICAgdGFrZSgxKSxcbiAgICAgIHN3aXRjaE1hcCgoWyBpdGVtcywgbnVtQ29sdW1ucyBdKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcmVmZXJlbmNlcy51cGRhdGVMYXlvdXQodGhpcy5wcmVmZXJlbmNlS2V5LCB7XG4gICAgICAgICAgbmFtZTogdGhpcy5fbGF5b3V0TmFtZShudW1Db2x1bW5zKSxcbiAgICAgICAgICBpdGVtc1xuICAgICAgICB9KVxuICAgICAgfSksXG4gICAgICBtYXBUbyh1bmRlZmluZWQpXG4gICAgKVxuICB9XG5cbn1cbiJdfQ==
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXdpZGdldHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mcmFtZXdvcmsvZGFzaGJvYXJkL2Rhc2hib2FyZC13aWRnZXRzL2Rhc2hib2FyZC13aWRnZXRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUE7QUFDakYsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUd6RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQVM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTs7OztBQUsvRCxNQUFNLE9BQU8sdUJBQXVCO0lBU2xDLElBQUksT0FBTyxLQUFpQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFBLENBQUMsQ0FBQztJQUN4RSxJQUFJLE9BQU8sQ0FBQyxLQUFpQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUc1RSxJQUFJLFVBQVUsS0FBYSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFBLENBQUMsQ0FBQztJQUMxRCxJQUFJLFVBQVUsQ0FBQyxLQUFhO1FBQzFCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFO1lBQ3BDLElBQUks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QUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3hELElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztnQkFDbEMsS0FBSzthQUNOLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxFQUNGLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FDakIsQ0FBQTtJQUNILENBQUM7O29IQXJPVSx1QkFBdUI7d0hBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzJGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJ1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIGlzRGV2TW9kZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGF1ZGl0VGltZSwgbWFwLCBtYXBUbywgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB7IFRoZVNlYW1EeW5hbWljQ29tcG9uZW50TG9hZGVyIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2R5bmFtaWMtY29tcG9uZW50LWxvYWRlcidcbmltcG9ydCB7IG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuaW1wb3J0IHtcbiAgSURhc2hib2FyZFdpZGdldEl0ZW1MYXlvdXRQcmVmZXJlbmNlLFxuICBJRGFzaGJvYXJkV2lkZ2V0c0NvbHVtblJlY29yZCxcbiAgSURhc2hib2FyZFdpZGdldHNJdGVtLFxuICBJRGFzaGJvYXJkV2lkZ2V0c0l0ZW1EZWZcbn0gZnJvbSAnLi9kYXNoYm9hcmQtd2lkZ2V0cy1pdGVtJ1xuaW1wb3J0IHsgRGFzaGJvYXJkV2lkZ2V0c1ByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4vZGFzaGJvYXJkLXdpZGdldHMtcHJlZmVyZW5jZXMuc2VydmljZSdcbmltcG9ydCB7IFRIRVNFQU1fV0lER0VUX0RBVEEgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vd2lkZ2V0J1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRXaWRnZXRzU2VydmljZSB7XG5cbiAgcHVibGljIHJlYWRvbmx5IHByZWZlcmVuY2VLZXk6IHN0cmluZyA9ICdkYXRhdGFibGUtd2lkZ2V0cydcblxuICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdE51bUNvbHVtbnM6IG51bWJlciA9IDNcblxuICAvKiogVXNlZCBmb3Igb3BlcmF0aW9ucywgc3VjaCBhcyAnYWRkV2lkZ2V0JywgaWYgdGhlIGNvbHVtbiBpcyBub3Qgc3BlY2lmaWVkLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdENvbHVtbjogbnVtYmVyID0gMFxuXG4gIGdldCB3aWRnZXRzKCk6IElEYXNoYm9hcmRXaWRnZXRzSXRlbURlZltdIHsgcmV0dXJuIHRoaXMuX3dpZGdldHMudmFsdWUgfVxuICBzZXQgd2lkZ2V0cyh2YWx1ZTogSURhc2hib2FyZFdpZGdldHNJdGVtRGVmW10pIHsgdGhpcy5fd2lkZ2V0cy5uZXh0KHZhbHVlKSB9XG4gIHByaXZhdGUgX3dpZGdldHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElEYXNoYm9hcmRXaWRnZXRzSXRlbURlZltdPihbXSlcblxuICBnZXQgbnVtQ29sdW1ucygpOiBudW1iZXIgeyByZXR1cm4gdGhpcy5fbnVtQ29sdW1ucy52YWx1ZSB9XG4gIHNldCBudW1Db2x1bW5zKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuX251bUNvbHVtbnMudmFsdWUpIHtcbiAgICAgIHRoaXMuX251bUNvbHVtbnMubmV4dCh2YWx1ZSlcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfbnVtQ29sdW1ucyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPih0aGlzLmRlZmF1bHROdW1Db2x1bW5zKVxuXG4gIHB1YmxpYyByZWFkb25seSBudW1Db2x1bW5zJDogT2JzZXJ2YWJsZTxudW1iZXI+XG4gIHB1YmxpYyByZWFkb25seSB3aWRnZXRJdGVtcyQ6IE9ic2VydmFibGU8SURhc2hib2FyZFdpZGdldHNJdGVtW10+XG4gIHB1YmxpYyByZWFkb25seSB3aWRnZXRDb2x1bW5zJDogT2JzZXJ2YWJsZTxJRGFzaGJvYXJkV2lkZ2V0c0NvbHVtblJlY29yZFtdPlxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWZTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxWaWV3Q29udGFpbmVyUmVmIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZHluYW1pY0NvbXBvbmVudExvYWRlck1vZHVsZTogVGhlU2VhbUR5bmFtaWNDb21wb25lbnRMb2FkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcHJlZmVyZW5jZXM6IERhc2hib2FyZFdpZGdldHNQcmVmZXJlbmNlc1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5udW1Db2x1bW5zJCA9IHRoaXMuX251bUNvbHVtbnMuYXNPYnNlcnZhYmxlKClcblxuICAgIC8vIFdpZGdldCBpdGVtcyB3aXRob3V0IHByZWZlcmVuY2VzXG4gICAgY29uc3QgX3dpZGdldEl0ZW1zJCA9IGNvbWJpbmVMYXRlc3QoWyB0aGlzLl93aWRnZXRzLCB0aGlzLl92aWV3Q29udGFpbmVyUmVmU3ViamVjdCBdKVxuICAgICAgLnBpcGUoc3dpdGNoTWFwKChbIGRlZnMsIHZjciBdKSA9PiB0aGlzLmNyZWF0ZVdpZGdldEl0ZW1zKGRlZnMsIHZjcikpKVxuXG4gICAgLy8gV2lkZ2V0IGl0ZW1zIHdpdGggcHJlZmVyZW5jZXNcbiAgICB0aGlzLndpZGdldEl0ZW1zJCA9IGNvbWJpbmVMYXRlc3QoWyBfd2lkZ2V0SXRlbXMkLCB0aGlzLm51bUNvbHVtbnMkIF0pXG4gICAgICAucGlwZShcbiAgICAgICAgLy8gV2FpdCB1bnRpbCB0aGUgY3VycmVudCB0aWNrIGlzIGRvbmUsIGluY2FzZSBib3RoIHRoZSB3aWRnZXRzIGFuZFxuICAgICAgICAvLyBudW1iZXIgb2YgY29sdW1ucyBhcmUgc2V0IGR1cnJpbmcgdGhlIHNhbWUgdGljay4gV2l0aG91dCB0aGUgYXVkaXQsXG4gICAgICAgIC8vIHRoaXMgd291bGQgZ2V0IGNhbGxlZCB0d2ljZSB3aGVuIHRoZSBjb21wb25lbnQgaXMgaW5pdGlhbGl6ZWQgd2l0aFxuICAgICAgICAvLyBib3RoIGlucHV0cyBzZXQgb25lIGFmdGVyIHRoZSBvdGhlciBpbmRpdmlkdWFsbHkuXG4gICAgICAgIGF1ZGl0VGltZSgwKSxcbiAgICAgICAgc3dpdGNoTWFwKChbIGl0ZW1zLCBudW1Db2x1bW5zIF0pID0+XG4gICAgICAgICAgdGhpcy5fcHJlZmVyZW5jZXMuc2VsZWN0TGF5b3V0KHRoaXMucHJlZmVyZW5jZUtleSwgdGhpcy5fbGF5b3V0TmFtZShudW1Db2x1bW5zKSkucGlwZShcbiAgICAgICAgICAgIG1hcChsYXlvdXQgPT4gbGF5b3V0ID8gdGhpcy53aXRoTGF5b3V0UHJlZmVyZW5jZXMoaXRlbXMsIGxheW91dCkgOiBpdGVtcylcbiAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSlcbiAgICAgIClcblxuICAgIHRoaXMud2lkZ2V0Q29sdW1ucyQgPSB0aGlzLndpZGdldEl0ZW1zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChpdGVtcyA9PiB0aGlzLnRvQ29sdW1uUmVjb3JkcyhpdGVtcykpLFxuICAgICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgICApXG4gIH1cblxuICBwcml2YXRlIF9sYXlvdXROYW1lKG51bUNvbHVtbnM6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBjb2x1bW5zLSR7bnVtQ29sdW1uc31gXG4gIH1cblxuICBwdWJsaWMgc2V0Vmlld0NvbnRhaW5lclJlZih2Y3I6IFZpZXdDb250YWluZXJSZWYgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmU3ViamVjdC5uZXh0KHZjcilcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVXaWRnZXRJdGVtcyhkZWZzOiBJRGFzaGJvYXJkV2lkZ2V0c0l0ZW1EZWZbXSwgdmNyPzogVmlld0NvbnRhaW5lclJlZik6IE9ic2VydmFibGU8SURhc2hib2FyZFdpZGdldHNJdGVtW10+IHtcbiAgICBjb25zdCBfY3JlYXRlT2JzZXJ2YWJsZXMgPSAoZGVmcyB8fCBbXSkubWFwKGQgPT4gdGhpcy5jcmVhdGVXaWRnZXRJdGVtKGQsIHZjcikpXG4gICAgY29uc3QgaXRlbXMkID0gX2NyZWF0ZU9ic2VydmFibGVzLmxlbmd0aCA+IDAgPyBjb21iaW5lTGF0ZXN0KF9jcmVhdGVPYnNlcnZhYmxlcykgOiBvZihbXSlcbiAgICByZXR1cm4gaXRlbXMkLnBpcGUoXG4gICAgICBtYXAoaXRlbXMgPT4gaXRlbXMuZmlsdGVyKG5vdE51bGxPclVuZGVmaW5lZCkpLFxuICAgICAgdGFwKGl0ZW1zID0+IHtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgY29uc3QgaWRzOiBzdHJpbmdbXSA9IGl0ZW1zLm1hcCh2ID0+IHYud2lkZ2V0SWQpXG4gICAgICAgICAgaWYgKChuZXcgU2V0KGlkcykpLnNpemUgIT09IGlkcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYFtEYXNoYm9hcmRXaWRnZXRzU2VydmljZV0gRHVwbGljYXRlIHdpZGdldCdzIHdpdGggdGhlIHNhbWUgJ3dpZGdldElkJyBmb3VuZC5gKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBwdWJsaWMgY3JlYXRlV2lkZ2V0SXRlbShkZWY6IElEYXNoYm9hcmRXaWRnZXRzSXRlbURlZiwgdmNyPzogVmlld0NvbnRhaW5lclJlZik6IE9ic2VydmFibGU8SURhc2hib2FyZFdpZGdldHNJdGVtIHwgdW5kZWZpbmVkPiB7XG4gICAgaWYgKCFkZWYud2lkZ2V0SWQgfHwgdHlwZW9mIGRlZi53aWRnZXRJZCAhPT0gJ3N0cmluZycgfHwgZGVmLndpZGdldElkLmxlbmd0aCA8IDEpIHtcbiAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICBjb25zb2xlLndhcm4oYFtEYXNoYm9hcmRXaWRnZXRzU2VydmljZV0gV2lkZ2V0IGlnbm9yZWQuIEFsbCB3aWRnZXRzIG11c3QgaGF2ZSBhICd3aWRnZXRJZCcuYCwgZGVmKVxuICAgICAgfVxuICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jcmVhdGVXaWRnZXRQb3J0YWwoZGVmLCB2Y3IpLnBpcGUoXG4gICAgICBtYXAocG9ydGFsID0+ICh7XG4gICAgICAgIC4uLmRlZixcbiAgICAgICAgY29sOiBkZWYuY29sIHx8IHRoaXMuZGVmYXVsdENvbHVtbixcbiAgICAgICAgb3JkZXI6IGRlZi5vcmRlciB8fCAwLFxuICAgICAgICBwb3J0YWwsXG4gICAgICAgIF9faXRlbURlZjogZGVmXG4gICAgICB9KSlcbiAgICApXG4gIH1cblxuICBwdWJsaWMgY3JlYXRlV2lkZ2V0UG9ydGFsKGRlZjogSURhc2hib2FyZFdpZGdldHNJdGVtRGVmLCB2Y3I/OiBWaWV3Q29udGFpbmVyUmVmKTogT2JzZXJ2YWJsZTxDb21wb25lbnRQb3J0YWw8YW55Pj4ge1xuICAgIGlmICh0eXBlb2YgZGVmLmNvbXBvbmVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHsgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogVEhFU0VBTV9XSURHRVRfREFUQSwgdXNlVmFsdWU6IHsgd2lkZ2V0SWQ6IGRlZi53aWRnZXRJZCB9IH1cbiAgICAgIF0sIHBhcmVudDogdGhpcy5fdmlld0NvbnRhaW5lclJlZlN1YmplY3QudmFsdWU/LmluamVjdG9yIH0pXG4gICAgICByZXR1cm4gdGhpcy5fZHluYW1pY0NvbXBvbmVudExvYWRlck1vZHVsZVxuICAgICAgICAuZ2V0Q29tcG9uZW50RmFjdG9yeShkZWYuY29tcG9uZW50KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoY29tcG9uZW50RmFjdG9yeSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChcbiAgICAgICAgICAgICAgY29tcG9uZW50RmFjdG9yeS5jb21wb25lbnRUeXBlLFxuICAgICAgICAgICAgICB2Y3IsXG4gICAgICAgICAgICAgIC8vIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgaW5qZWN0b3IsXG4gICAgICAgICAgICAgIChjb21wb25lbnRGYWN0b3J5IGFzIGFueSAvKiBDb21wb25lbnRGYWN0b3J5Qm91bmRUb01vZHVsZSAqLykubmdNb2R1bGUuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyXG4gICAgICAgICAgICApXG4gICAgICAgICAgfSksXG4gICAgICAgICAgdGFrZSgxKVxuICAgICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZi5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgICAgID8gb2YobmV3IENvbXBvbmVudFBvcnRhbChkZWYuY29tcG9uZW50LCB2Y3IsIHVuZGVmaW5lZCwgZGVmLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikpXG4gICAgICA6IG9mKG5ldyBDb21wb25lbnRQb3J0YWwoZGVmLmNvbXBvbmVudCwgdmNyKSlcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVPcmRlcigpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy53aWRnZXRDb2x1bW5zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHRhcChjb2x1bW5zID0+IGNvbHVtbnMuZm9yRWFjaChjb2wgPT4ge1xuICAgICAgICAgIGxldCBpID0gMFxuICAgICAgICAgIGNvbC5pdGVtcy5mb3JFYWNoKGl0bSA9PiBpdG0ub3JkZXIgPSBpKyspXG4gICAgICAgIH0pKSxcbiAgICAgICAgbWFwVG8odW5kZWZpbmVkKVxuICAgICAgKVxuICB9XG5cbiAgcHVibGljIHRvQ29sdW1uUmVjb3JkcyhpdGVtczogSURhc2hib2FyZFdpZGdldHNJdGVtW10pOiBJRGFzaGJvYXJkV2lkZ2V0c0NvbHVtblJlY29yZFtdIHtcbiAgICBsZXQgY29sdW1uczogSURhc2hib2FyZFdpZGdldHNDb2x1bW5SZWNvcmRbXSA9IFtdXG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubnVtQ29sdW1uczsgaSsrKSB7XG4gICAgICBjb2x1bW5zLnB1c2goeyBjb2x1bW46IGksIGl0ZW1zOiBbXSB9KVxuICAgIH1cblxuICAgIGNvbnN0IGNvbE5vdEZvdW5kOiBJRGFzaGJvYXJkV2lkZ2V0c0l0ZW1bXSA9IFtdXG5cbiAgICAvLyBEaXN0cmlidXRlIGl0ZW1zIGludG8gY29sdW1uc1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgY29uc3QgY29sOiBJRGFzaGJvYXJkV2lkZ2V0c0NvbHVtblJlY29yZCB8IHVuZGVmaW5lZCA9IGNvbHVtbnMuZmluZChjID0+IGMuY29sdW1uID09PSBpdGVtLmNvbClcbiAgICAgIGlmICghY29sKSB7XG4gICAgICAgIC8vIGNvbHVtbnMucHVzaCh7IGNvbHVtbjogaXRlbS5jb2wsIGl0ZW1zOiBbIGl0ZW0gXSB9KVxuICAgICAgICAvLyBpZiAoaXRlbS5jb2wgPCAwKSB7XG4gICAgICAgIC8vICAgY29uc3QgY29sMDogSURhc2hib2FyZFdpZGdldHNDb2x1bW5SZWNvcmQgfCB1bmRlZmluZWQgPSBjb2x1bW5zLmZpbmQoYyA9PiBjLmNvbHVtbiA9PT0gMClcbiAgICAgICAgLy8gICBpZiAoY29sMCkge1xuICAgICAgICAvLyAgICAgY29sMC5pdGVtcy5wdXNoKGl0ZW0pXG4gICAgICAgIC8vICAgfVxuICAgICAgICAvLyB9IGVsc2UgaWYgKGl0ZW0uY29sID4gdGhpcy5udW1Db2x1bW5zIC0gMSkge1xuICAgICAgICAvLyAgIGNvbnN0IGNvbE1heDogSURhc2hib2FyZFdpZGdldHNDb2x1bW5SZWNvcmQgfCB1bmRlZmluZWQgPSBjb2x1bW5zLmZpbmQoYyA9PiBjLmNvbHVtbiA9PT0gdGhpcy5udW1Db2x1bW5zIC0gMSlcbiAgICAgICAgLy8gICBpZiAoY29sTWF4KSB7XG4gICAgICAgIC8vICAgICBjb2xNYXguaXRlbXMucHVzaChpdGVtKVxuICAgICAgICAvLyAgIH1cbiAgICAgICAgLy8gfVxuICAgICAgICBjb2xOb3RGb3VuZC5wdXNoKGl0ZW0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb2wuaXRlbXMucHVzaChpdGVtKVxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sTm90Rm91bmQubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGl0ZW0gPSBjb2xOb3RGb3VuZFtpXVxuXG4gICAgICBjb25zdCBjb2w6IElEYXNoYm9hcmRXaWRnZXRzQ29sdW1uUmVjb3JkIHwgdW5kZWZpbmVkID0gY29sdW1uc1xuICAgICAgICAuZmluZChjID0+IGMuY29sdW1uID09PSBpICUgdGhpcy5udW1Db2x1bW5zKVxuXG4gICAgICBpZiAoY29sKSB7XG4gICAgICAgIGNvbC5pdGVtcy5wdXNoKGl0ZW0pXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU29ydCBjb2x1bW5zXG4gICAgY29sdW1ucyA9IGNvbHVtbnMuc29ydCgoYSwgYikgPT4gYS5jb2x1bW4gLSBiLmNvbHVtbilcblxuICAgIC8vIFNvcnQgY29sdW1ucyBpdGVtc1xuICAgIGNvbHVtbnMuZm9yRWFjaChjb2wgPT4gY29sLml0ZW1zLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKSlcblxuICAgIHJldHVybiBjb2x1bW5zXG4gIH1cblxuICBwdWJsaWMgd2l0aExheW91dFByZWZlcmVuY2VzKGl0ZW1zOiBJRGFzaGJvYXJkV2lkZ2V0c0l0ZW1bXSwgbGF5b3V0OiBJRGFzaGJvYXJkV2lkZ2V0SXRlbUxheW91dFByZWZlcmVuY2UpOiBJRGFzaGJvYXJkV2lkZ2V0c0l0ZW1bXSB7XG4gICAgY29uc3QgX2l0ZW1zOiBJRGFzaGJvYXJkV2lkZ2V0c0l0ZW1bXSA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgIGNvbnN0IGl0ZW1QcmVmID0gbGF5b3V0Lml0ZW1zLmZpbmQoeCA9PiB4LndpZGdldElkID09PSBpdGVtLndpZGdldElkKVxuICAgICAgX2l0ZW1zLnB1c2goe1xuICAgICAgICAuLi5pdGVtLFxuICAgICAgICAuLi4oaXRlbVByZWYgfHwge30pXG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiBfaXRlbXNcbiAgfVxuXG4gIHB1YmxpYyBzYXZlUHJlZmVyZW5jZXMoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgLy8gUmlnaHQgbm93IHRoZSBpdGVtcyBhcmUgbW92ZWQgYmV0d2VlbiB0aGUgY29sdW1uIHJlY29yZCBhcnJheXMsIGJ1dCB0aGVcbiAgICAvLyAnY29sJyBwcm9wIGlzIG5vdCB1cGRhdGVkLCBzbyBpdCBpcyBtYXBwZWQgdG8gY29ycmVjdGVkIGl0ZW1zIGhlcmUgZnJvbVxuICAgIC8vIHRoZSBjb2x1bW4gcmVjb3Jkcy5cbiAgICBjb25zdCBpdGVtcyQgPSB0aGlzLndpZGdldENvbHVtbnMkLnBpcGUoXG4gICAgICBtYXAoY29sdW1ucyA9PiAoW10gYXMgSURhc2hib2FyZFdpZGdldHNJdGVtW10pXG4gICAgICAgIC5jb25jYXQoLi4uKGNvbHVtbnMubWFwKGMgPT4gYy5pdGVtcy5tYXAoaXRtID0+ICh7IC4uLml0bSwgY29sOiBjLmNvbHVtbiB9KSkpKSlcbiAgICAgICksXG4gICAgKVxuXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoWyBpdGVtcyQsIHRoaXMubnVtQ29sdW1ucyQgXSkucGlwZShcbiAgICAgIGF1ZGl0VGltZSgwKSxcbiAgICAgIHRha2UoMSksXG4gICAgICBzd2l0Y2hNYXAoKFsgaXRlbXMsIG51bUNvbHVtbnMgXSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHJlZmVyZW5jZXMudXBkYXRlTGF5b3V0KHRoaXMucHJlZmVyZW5jZUtleSwge1xuICAgICAgICAgIG5hbWU6IHRoaXMuX2xheW91dE5hbWUobnVtQ29sdW1ucyksXG4gICAgICAgICAgaXRlbXNcbiAgICAgICAgfSlcbiAgICAgIH0pLFxuICAgICAgbWFwVG8odW5kZWZpbmVkKVxuICAgIClcbiAgfVxuXG59XG4iXX0=
@@ -8,12 +8,12 @@ export class DashboardComponent {
8
8
  this.widgetsDraggable = true;
9
9
  }
10
10
  }
11
- DashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DashboardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
- DashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: DashboardComponent, selector: "seam-dashboard", inputs: { widgets: "widgets", widgetsDraggable: "widgetsDraggable" }, ngImport: i0, template: "<seam-dashboard-widgets [widgets]=\"widgets\" [widgetsDraggable]=\"widgetsDraggable\"></seam-dashboard-widgets>\n", styles: [""], dependencies: [{ kind: "component", type: i1.DashboardWidgetsComponent, selector: "seam-dashboard-widgets", inputs: ["gapSize", "widgetsDraggable", "dragToggleVisible", "numColumns", "widgets"], outputs: ["widgetsChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11
+ DashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DashboardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
+ DashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DashboardComponent, selector: "seam-dashboard", inputs: { widgets: "widgets", widgetsDraggable: "widgetsDraggable" }, ngImport: i0, template: "<seam-dashboard-widgets [widgets]=\"widgets\" [widgetsDraggable]=\"widgetsDraggable\"></seam-dashboard-widgets>\n", styles: [""], dependencies: [{ kind: "component", type: i1.DashboardWidgetsComponent, selector: "seam-dashboard-widgets", inputs: ["gapSize", "widgetsDraggable", "dragToggleVisible", "numColumns", "widgets"], outputs: ["widgetsChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
13
13
  __decorate([
14
14
  InputBoolean()
15
15
  ], DashboardComponent.prototype, "widgetsDraggable", void 0);
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DashboardComponent, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DashboardComponent, decorators: [{
17
17
  type: Component,
18
18
  args: [{ selector: 'seam-dashboard', changeDetection: ChangeDetectionStrategy.OnPush, template: "<seam-dashboard-widgets [widgets]=\"widgets\" [widgetsDraggable]=\"widgetsDraggable\"></seam-dashboard-widgets>\n" }]
19
19
  }], propDecorators: { widgets: [{
@@ -13,8 +13,8 @@ import { DashboardComponent } from './dashboard.component';
13
13
  import * as i0 from "@angular/core";
14
14
  export class TheSeamDashboardModule {
15
15
  }
16
- TheSeamDashboardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamDashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
- TheSeamDashboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: TheSeamDashboardModule, declarations: [DashboardComponent,
16
+ TheSeamDashboardModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
+ TheSeamDashboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDashboardModule, declarations: [DashboardComponent,
18
18
  DashboardWidgetsComponent,
19
19
  DashboardWidgetContainerComponent,
20
20
  DashboardWidgetTemplateContainerComponent,
@@ -26,13 +26,13 @@ TheSeamDashboardModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
26
26
  TheSeamSharedModule], exports: [DashboardComponent,
27
27
  DashboardWidgetsComponent,
28
28
  DashboardWidgetPortalOutletDirective] });
29
- TheSeamDashboardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamDashboardModule, imports: [CommonModule,
29
+ TheSeamDashboardModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDashboardModule, imports: [CommonModule,
30
30
  PortalModule,
31
31
  DragDropModule,
32
32
  TheSeamButtonsModule,
33
33
  TheSeamIconModule,
34
34
  TheSeamSharedModule] });
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamDashboardModule, decorators: [{
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDashboardModule, decorators: [{
36
36
  type: NgModule,
37
37
  args: [{
38
38
  declarations: [
@@ -5,12 +5,12 @@ import { HierarchyRouterOutletComponent } from './hierarchy-router-outlet/hierar
5
5
  import * as i0 from "@angular/core";
6
6
  export class TheSeamDynamicRouterModule {
7
7
  }
8
- TheSeamDynamicRouterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamDynamicRouterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- TheSeamDynamicRouterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: TheSeamDynamicRouterModule, declarations: [HierarchyRouterOutletComponent], imports: [CommonModule,
8
+ TheSeamDynamicRouterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDynamicRouterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ TheSeamDynamicRouterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDynamicRouterModule, declarations: [HierarchyRouterOutletComponent], imports: [CommonModule,
10
10
  RouterModule], exports: [HierarchyRouterOutletComponent] });
11
- TheSeamDynamicRouterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamDynamicRouterModule, imports: [CommonModule,
11
+ TheSeamDynamicRouterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDynamicRouterModule, imports: [CommonModule,
12
12
  RouterModule] });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamDynamicRouterModule, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamDynamicRouterModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  declarations: [
@@ -93,8 +93,8 @@ export class HierarchyRouterOutletComponent {
93
93
  this.ngContentVisible = !this.outletActive;
94
94
  }
95
95
  }
96
- HierarchyRouterOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HierarchyRouterOutletComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
97
- HierarchyRouterOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: HierarchyRouterOutletComponent, selector: "seam-hierarchy-router-outlet", ngImport: i0, template: "<div class=\"h-100\"\n [@routeAnimations]=\"prepareRoute(outlet)\"\n (@routeAnimations.start)=\"routeAnimationsStart($event)\"\n (@routeAnimations.done)=\"routeAnimationsDone($event)\">\n <div class=\"hierarchy-router-outlet--content h-100\" *ngIf=\"ngContentVisible\">\n <!-- {{ animState }} -->\n <div class=\"border border-info h-100\">\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"router-container\"\n [class.h-100]=\"!ngContentVisible\"\n >\n <!-- <div [@routeAnimations]=\"animState\"> -->\n <!-- <div class=\"hierarchy-router-outlet--route-content\"> -->\n <router-outlet #outlet=\"outlet\"\n (activate)=\"outletActivate($event)\"\n (deactivate)=\"outletDeactivate($event)\">\n </router-outlet>\n </div>\n</div>\n", styles: [":host{display:block;height:100%}:host ::ng-deep router-outlet+*{background-color:#fff;height:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }], animations: [
96
+ HierarchyRouterOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: HierarchyRouterOutletComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
97
+ HierarchyRouterOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: HierarchyRouterOutletComponent, selector: "seam-hierarchy-router-outlet", ngImport: i0, template: "<div class=\"h-100\"\n [@routeAnimations]=\"prepareRoute(outlet)\"\n (@routeAnimations.start)=\"routeAnimationsStart($event)\"\n (@routeAnimations.done)=\"routeAnimationsDone($event)\">\n <div class=\"hierarchy-router-outlet--content h-100\" *ngIf=\"ngContentVisible\">\n <!-- {{ animState }} -->\n <div class=\"border border-info h-100\">\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"router-container\"\n [class.h-100]=\"!ngContentVisible\"\n >\n <!-- <div [@routeAnimations]=\"animState\"> -->\n <!-- <div class=\"hierarchy-router-outlet--route-content\"> -->\n <router-outlet #outlet=\"outlet\"\n (activate)=\"outletActivate($event)\"\n (deactivate)=\"outletDeactivate($event)\">\n </router-outlet>\n </div>\n</div>\n", styles: [":host{display:block;height:100%}:host ::ng-deep router-outlet+*{background-color:#fff;height:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }], animations: [
98
98
  // fader,
99
99
  slider,
100
100
  // transformer,
@@ -102,7 +102,7 @@ HierarchyRouterOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
102
102
  // sideToSide
103
103
  // contentLeave
104
104
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HierarchyRouterOutletComponent, decorators: [{
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: HierarchyRouterOutletComponent, decorators: [{
106
106
  type: Component,
107
107
  args: [{ selector: 'seam-hierarchy-router-outlet', animations: [
108
108
  // fader,
@@ -17,9 +17,9 @@ export class HierarchyLevelResolver {
17
17
  return 0;
18
18
  }
19
19
  }
20
- HierarchyLevelResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HierarchyLevelResolver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
21
- HierarchyLevelResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HierarchyLevelResolver, providedIn: 'root' });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HierarchyLevelResolver, decorators: [{
20
+ HierarchyLevelResolver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: HierarchyLevelResolver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
21
+ HierarchyLevelResolver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: HierarchyLevelResolver, providedIn: 'root' });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: HierarchyLevelResolver, decorators: [{
23
23
  type: Injectable,
24
24
  args: [{ providedIn: 'root' }]
25
25
  }] });
@@ -3,9 +3,9 @@ import * as i0 from "@angular/core";
3
3
  import * as i1 from "@ajsf/core";
4
4
  export class TheSeamSchemaFormFrameworkComponent {
5
5
  }
6
- TheSeamSchemaFormFrameworkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamSchemaFormFrameworkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
- TheSeamSchemaFormFrameworkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TheSeamSchemaFormFrameworkComponent, selector: "seam-schema-form-framework", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: "<select-widget-widget\n [dataIndex]=\"$any(dataIndex)\"\n [layoutIndex]=\"$any(layoutIndex)\"\n [layoutNode]=\"layoutNode\">\n</select-widget-widget>\n", styles: [""], dependencies: [{ kind: "component", type: i1.SelectWidgetComponent, selector: "select-widget-widget", inputs: ["layoutNode", "layoutIndex", "dataIndex"] }] });
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamSchemaFormFrameworkComponent, decorators: [{
6
+ TheSeamSchemaFormFrameworkComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormFrameworkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ TheSeamSchemaFormFrameworkComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamSchemaFormFrameworkComponent, selector: "seam-schema-form-framework", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: "<select-widget-widget\n [dataIndex]=\"$any(dataIndex)\"\n [layoutIndex]=\"$any(layoutIndex)\"\n [layoutNode]=\"layoutNode\">\n</select-widget-widget>\n", styles: [""], dependencies: [{ kind: "component", type: i1.SelectWidgetComponent, selector: "select-widget-widget", inputs: ["layoutNode", "layoutIndex", "dataIndex"] }] });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormFrameworkComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{ selector: 'seam-schema-form-framework', template: "<select-widget-widget\n [dataIndex]=\"$any(dataIndex)\"\n [layoutIndex]=\"$any(layoutIndex)\"\n [layoutNode]=\"layoutNode\">\n</select-widget-widget>\n" }]
11
11
  }], propDecorators: { layoutNode: [{
@@ -22,9 +22,9 @@ export class TheSeamFramework extends Framework {
22
22
  };
23
23
  }
24
24
  }
25
- TheSeamFramework.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamFramework, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
26
- TheSeamFramework.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamFramework });
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamFramework, decorators: [{
25
+ TheSeamFramework.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamFramework, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
26
+ TheSeamFramework.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamFramework });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamFramework, decorators: [{
28
28
  type: Injectable
29
29
  }] });
30
30
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWZvcm0tZnJhbWV3b3JrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay9zY2hlbWEtZm9ybS9zY2hlbWEtZm9ybS1mcmFtZXdvcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUUxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRXRDLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDZFQUE2RSxDQUFBO0FBQ2hJLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHVFQUF1RSxDQUFBO0FBQ3ZILE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHlFQUF5RSxDQUFBO0FBQzFILE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHlFQUF5RSxDQUFBO0FBQzFILE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHFGQUFxRixDQUFBO0FBRzNJLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLG1DQUFtQyxDQUFBOztBQUd2RixNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsU0FBUztJQUQvQzs7UUFFRSxTQUFJLEdBQUcsZ0JBQWdCLENBQUE7UUFFdkIsY0FBUyxHQUFHLG1DQUFtQyxDQUFBO1FBRS9DLFlBQU8sR0FBRztZQUNSLFVBQVUsRUFBRSxrQ0FBa0M7WUFDOUMsOENBQThDO1lBQzlDLFFBQVEsRUFBRSxxQ0FBcUM7WUFDL0MsTUFBTSxFQUFFLCtCQUErQjtZQUN2QyxRQUFRLEVBQUUsZ0NBQWdDO1lBQzFDLFFBQVEsRUFBRSxnQ0FBZ0M7U0FDM0MsQ0FBQTtLQUNGOzs2R0FiWSxnQkFBZ0I7aUhBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmltcG9ydCB7IEZyYW1ld29yayB9IGZyb20gJ0BhanNmL2NvcmUnXG5cbmltcG9ydCB7IFRoZVNlYW1TY2hlbWFGb3JtQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS1jaGVja2JveC9zY2hlbWEtZm9ybS1jaGVja2JveC5jb21wb25lbnQnXG5pbXBvcnQgeyBUaGVTZWFtU2NoZW1hRm9ybUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vc2NoZW1hLWZvcm0tY29udHJvbHMvc2NoZW1hLWZvcm0taW5wdXQvc2NoZW1hLWZvcm0taW5wdXQuY29tcG9uZW50J1xuaW1wb3J0IHsgVGhlU2VhbVNjaGVtYUZvcm1OdW1iZXJDb21wb25lbnQgfSBmcm9tICcuLi9zY2hlbWEtZm9ybS1jb250cm9scy9zY2hlbWEtZm9ybS1udW1iZXIvc2NoZW1hLWZvcm0tbnVtYmVyLmNvbXBvbmVudCdcbmltcG9ydCB7IFRoZVNlYW1TY2hlbWFGb3JtU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vc2NoZW1hLWZvcm0tY29udHJvbHMvc2NoZW1hLWZvcm0tc2VsZWN0L3NjaGVtYS1mb3JtLXNlbGVjdC5jb21wb25lbnQnXG5pbXBvcnQgeyBUaGVTZWFtU2NoZW1hRm9ybVN1Ym1pdFNwbGl0Q29tcG9uZW50IH0gZnJvbSAnLi4vc2NoZW1hLWZvcm0tY29udHJvbHMvc2NoZW1hLWZvcm0tc3VibWl0LXNwbGl0L3NjaGVtYS1mb3JtLXN1Ym1pdC1zcGxpdC5jb21wb25lbnQnXG5pbXBvcnQgeyBUaGVTZWFtU2NoZW1hRm9ybVN1Ym1pdENvbXBvbmVudCB9IGZyb20gJy4uL3NjaGVtYS1mb3JtLWNvbnRyb2xzL3NjaGVtYS1mb3JtLXN1Ym1pdC9zY2hlbWEtZm9ybS1zdWJtaXQuY29tcG9uZW50J1xuXG5pbXBvcnQgeyBUaGVTZWFtU2NoZW1hRm9ybUZyYW1ld29ya0NvbXBvbmVudCB9IGZyb20gJy4vc2NoZW1hLWZvcm0tZnJhbWV3b3JrLmNvbXBvbmVudCdcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1GcmFtZXdvcmsgZXh0ZW5kcyBGcmFtZXdvcmsge1xuICBuYW1lID0gJ3NlYW0tZnJhbWV3b3JrJ1xuXG4gIGZyYW1ld29yayA9IFRoZVNlYW1TY2hlbWFGb3JtRnJhbWV3b3JrQ29tcG9uZW50XG5cbiAgd2lkZ2V0cyA9IHtcbiAgICAnY2hlY2tib3gnOiBUaGVTZWFtU2NoZW1hRm9ybUNoZWNrYm94Q29tcG9uZW50LFxuICAgIC8vICdzdWJtaXQnOiBUaGVTZWFtU2NoZW1hRm9ybVN1Ym1pdENvbXBvbmVudCxcbiAgICAnc3VibWl0JzogVGhlU2VhbVNjaGVtYUZvcm1TdWJtaXRTcGxpdENvbXBvbmVudCxcbiAgICAndGV4dCc6IFRoZVNlYW1TY2hlbWFGb3JtSW5wdXRDb21wb25lbnQsXG4gICAgJ251bWJlcic6IFRoZVNlYW1TY2hlbWFGb3JtTnVtYmVyQ29tcG9uZW50LFxuICAgICdzZWxlY3QnOiBUaGVTZWFtU2NoZW1hRm9ybVNlbGVjdENvbXBvbmVudFxuICB9XG59XG4iXX0=
@@ -7,13 +7,13 @@ import { TheSeamSchemaFormFrameworkComponent } from './schema-form-framework.com
7
7
  import * as i0 from "@angular/core";
8
8
  export class TheSeamSchemaFormModule {
9
9
  }
10
- TheSeamSchemaFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamSchemaFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- TheSeamSchemaFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: TheSeamSchemaFormModule, declarations: [TheSeamSchemaFormFrameworkComponent], imports: [CommonModule,
10
+ TheSeamSchemaFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ TheSeamSchemaFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormModule, declarations: [TheSeamSchemaFormFrameworkComponent], imports: [CommonModule,
12
12
  JsonSchemaFormModule,
13
13
  TheSeamSchemaFormControlsModule,
14
14
  WidgetLibraryModule], exports: [TheSeamSchemaFormFrameworkComponent,
15
15
  JsonSchemaFormModule] });
16
- TheSeamSchemaFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamSchemaFormModule, providers: [
16
+ TheSeamSchemaFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormModule, providers: [
17
17
  JsonSchemaFormService,
18
18
  FrameworkLibraryService,
19
19
  WidgetLibraryService,
@@ -22,7 +22,7 @@ TheSeamSchemaFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
22
22
  JsonSchemaFormModule,
23
23
  TheSeamSchemaFormControlsModule,
24
24
  WidgetLibraryModule, JsonSchemaFormModule] });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamSchemaFormModule, decorators: [{
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormModule, decorators: [{
26
26
  type: NgModule,
27
27
  args: [{
28
28
  declarations: [
@@ -28,9 +28,9 @@ export class TheSeamSchemaFormCheckboxComponent {
28
28
  return this.jsf.getFormControlValue(this) === this.trueValue;
29
29
  }
30
30
  }
31
- TheSeamSchemaFormCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamSchemaFormCheckboxComponent, deps: [{ token: i1.JsonSchemaFormService }], target: i0.ɵɵFactoryTarget.Component });
32
- TheSeamSchemaFormCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TheSeamSchemaFormCheckboxComponent, selector: "seam-schema-form-checkbox", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: "<div class=\"mb-3\">\n <seam-form-field *ngIf=\"boundControl\">\n <seam-checkbox seamInput\n [formControl]=\"$any(formControl)\"\n [ngClass]=\"options?.fieldHtmlClass\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [required]=\"options?.required\">\n {{ options?.title }}<seam-form-field-required-indicator class=\"pl-1\" [required]=\"options?.required\"></seam-form-field-required-indicator>\n </seam-checkbox>\n </seam-form-field>\n\n <seam-form-field *ngIf=\"!boundControl\">\n <seam-checkbox seamInput\n [ngClass]=\"options?.fieldHtmlClass\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [required]=\"options?.required\"\n [value]=\"controlValue\"\n (change)=\"updateValue($event)\">\n {{ options?.title }}<seam-form-field-required-indicator class=\"pl-1\" [required]=\"options?.required\"></seam-form-field-required-indicator>\n </seam-checkbox>\n </seam-form-field>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.TheSeamFormFieldComponent, selector: "seam-form-field", inputs: ["inline", "label", "labelPosition", "labelClass", "maxErrors", "numPaddingErrors", "labelId", "helpText", "helpTextId"] }, { kind: "component", type: i4.FormFieldRequiredIndicatorComponent, selector: "seam-form-field-required-indicator", inputs: ["required"] }, { kind: "component", type: i5.TheSeamCheckboxComponent, selector: "seam-checkbox", inputs: ["tabIndex", "id", "aria-label", "aria-labelledby", "required", "checked", "disabled", "indeterminate", "name", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["seamCheckbox"] }] });
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamSchemaFormCheckboxComponent, decorators: [{
31
+ TheSeamSchemaFormCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormCheckboxComponent, deps: [{ token: i1.JsonSchemaFormService }], target: i0.ɵɵFactoryTarget.Component });
32
+ TheSeamSchemaFormCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamSchemaFormCheckboxComponent, selector: "seam-schema-form-checkbox", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: "<div class=\"mb-3\">\n <seam-form-field *ngIf=\"boundControl\">\n <seam-checkbox seamInput\n [formControl]=\"$any(formControl)\"\n [ngClass]=\"options?.fieldHtmlClass\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [required]=\"options?.required\">\n {{ options?.title }}<seam-form-field-required-indicator class=\"pl-1\" [required]=\"options?.required\"></seam-form-field-required-indicator>\n </seam-checkbox>\n </seam-form-field>\n\n <seam-form-field *ngIf=\"!boundControl\">\n <seam-checkbox seamInput\n [ngClass]=\"options?.fieldHtmlClass\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [required]=\"options?.required\"\n [value]=\"controlValue\"\n (change)=\"updateValue($event)\">\n {{ options?.title }}<seam-form-field-required-indicator class=\"pl-1\" [required]=\"options?.required\"></seam-form-field-required-indicator>\n </seam-checkbox>\n </seam-form-field>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.TheSeamFormFieldComponent, selector: "seam-form-field", inputs: ["inline", "label", "labelPosition", "labelClass", "maxErrors", "numPaddingErrors", "labelId", "helpText", "helpTextId"] }, { kind: "component", type: i4.FormFieldRequiredIndicatorComponent, selector: "seam-form-field-required-indicator", inputs: ["required"] }, { kind: "component", type: i5.TheSeamCheckboxComponent, selector: "seam-checkbox", inputs: ["tabIndex", "id", "aria-label", "aria-labelledby", "required", "checked", "disabled", "indeterminate", "name", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["seamCheckbox"] }] });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormCheckboxComponent, decorators: [{
34
34
  type: Component,
35
35
  args: [{ selector: 'seam-schema-form-checkbox', template: "<div class=\"mb-3\">\n <seam-form-field *ngIf=\"boundControl\">\n <seam-checkbox seamInput\n [formControl]=\"$any(formControl)\"\n [ngClass]=\"options?.fieldHtmlClass\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [required]=\"options?.required\">\n {{ options?.title }}<seam-form-field-required-indicator class=\"pl-1\" [required]=\"options?.required\"></seam-form-field-required-indicator>\n </seam-checkbox>\n </seam-form-field>\n\n <seam-form-field *ngIf=\"!boundControl\">\n <seam-checkbox seamInput\n [ngClass]=\"options?.fieldHtmlClass\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [required]=\"options?.required\"\n [value]=\"controlValue\"\n (change)=\"updateValue($event)\">\n {{ options?.title }}<seam-form-field-required-indicator class=\"pl-1\" [required]=\"options?.required\"></seam-form-field-required-indicator>\n </seam-checkbox>\n </seam-form-field>\n</div>\n" }]
36
36
  }], ctorParameters: function () { return [{ type: i1.JsonSchemaFormService }]; }, propDecorators: { layoutNode: [{
@@ -24,8 +24,8 @@ const controls = [
24
24
  ];
25
25
  export class TheSeamSchemaFormControlsModule {
26
26
  }
27
- TheSeamSchemaFormControlsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamSchemaFormControlsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
28
- TheSeamSchemaFormControlsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: TheSeamSchemaFormControlsModule, declarations: [TheSeamSchemaFormCheckboxComponent,
27
+ TheSeamSchemaFormControlsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormControlsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
28
+ TheSeamSchemaFormControlsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormControlsModule, declarations: [TheSeamSchemaFormCheckboxComponent,
29
29
  TheSeamSchemaFormSubmitComponent,
30
30
  TheSeamSchemaFormSelectComponent,
31
31
  TheSeamSchemaFormInputComponent,
@@ -43,7 +43,7 @@ TheSeamSchemaFormControlsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "
43
43
  TheSeamSchemaFormInputComponent,
44
44
  TheSeamSchemaFormNumberComponent,
45
45
  TheSeamSchemaFormSubmitSplitComponent, JsonSchemaFormModule] });
46
- TheSeamSchemaFormControlsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamSchemaFormControlsModule, imports: [CommonModule,
46
+ TheSeamSchemaFormControlsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormControlsModule, imports: [CommonModule,
47
47
  ReactiveFormsModule,
48
48
  JsonSchemaFormModule,
49
49
  TheSeamFormFieldModule,
@@ -51,7 +51,7 @@ TheSeamSchemaFormControlsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "
51
51
  TheSeamMenuModule,
52
52
  TheSeamButtonsModule,
53
53
  NgSelectModule, JsonSchemaFormModule] });
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamSchemaFormControlsModule, decorators: [{
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormControlsModule, decorators: [{
55
55
  type: NgModule,
56
56
  args: [{
57
57
  declarations: [
@@ -19,9 +19,9 @@ export class TheSeamSchemaFormInputComponent {
19
19
  this.jsf.updateValue(this, event.target.value);
20
20
  }
21
21
  }
22
- TheSeamSchemaFormInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamSchemaFormInputComponent, deps: [{ token: i1.JsonSchemaFormService }], target: i0.ɵɵFactoryTarget.Component });
23
- TheSeamSchemaFormInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TheSeamSchemaFormInputComponent, selector: "seam-schema-form-input", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: "<seam-form-field *ngIf=\"boundControl\">\n <ng-template seamFormFieldLabelTpl let-required=\"required\">\n <ng-container *ngIf=\"!options?.notitle\">\n {{ options?.title }}<seam-form-field-required-indicator class=\"pl-1\"></seam-form-field-required-indicator>\n </ng-container>\n </ng-template>\n <input seamInput\n [formControl]=\"$any(formControl)\"\n [ngClass]=\"options?.fieldHtmlClass\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [required]=\"options?.required\"\n\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [attr.placeholder]=\"options?.placeholder\"\n [attr.required]=\"options?.required\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [type]=\"layoutNode?.type\">\n <datalist *ngIf=\"options?.typeahead?.source\"\n [id]=\"'control' + layoutNode?._id + 'Autocomplete'\">\n <option *ngFor=\"let word of options?.typeahead?.source\" [value]=\"word\">\n </datalist>\n</seam-form-field>\n\n<seam-form-field *ngIf=\"!boundControl\">\n <ng-template seamFormFieldLabelTpl let-required=\"required\">\n <ng-container *ngIf=\"!options?.notitle\">\n {{ options?.title }}<seam-form-field-required-indicator class=\"pl-1\"></seam-form-field-required-indicator>\n </ng-container>\n </ng-template>\n <input seamInput\n [ngClass]=\"options?.fieldHtmlClass\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [required]=\"options?.required\"\n [value]=\"controlValue\"\n (input)=\"updateValue($event)\"\n\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [attr.placeholder]=\"options?.placeholder\"\n [attr.required]=\"options?.required\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [type]=\"layoutNode?.type\"\n [disabled]=\"controlDisabled\">\n <datalist *ngIf=\"options?.typeahead?.source\"\n [id]=\"'control' + layoutNode?._id + 'Autocomplete'\">\n <option *ngFor=\"let word of options?.typeahead?.source\" [value]=\"word\">\n </datalist>\n</seam-form-field>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.TheSeamFormFieldComponent, selector: "seam-form-field", inputs: ["inline", "label", "labelPosition", "labelClass", "maxErrors", "numPaddingErrors", "labelId", "helpText", "helpTextId"] }, { kind: "directive", type: i4.InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-checkbox[seamInput] [ngbRadioGroup], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput]", inputs: ["seamInputSize", "id", "type", "placeholder", "required", "disabled", "readonly"], exportAs: ["seamInput"] }, { kind: "directive", type: i4.FormFieldLabelTplDirective, selector: "[seamFormFieldLabelTpl]" }, { kind: "component", type: i4.FormFieldRequiredIndicatorComponent, selector: "seam-form-field-required-indicator", inputs: ["required"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamSchemaFormInputComponent, decorators: [{
22
+ TheSeamSchemaFormInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormInputComponent, deps: [{ token: i1.JsonSchemaFormService }], target: i0.ɵɵFactoryTarget.Component });
23
+ TheSeamSchemaFormInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamSchemaFormInputComponent, selector: "seam-schema-form-input", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: "<seam-form-field *ngIf=\"boundControl\">\n <ng-template seamFormFieldLabelTpl let-required=\"required\">\n <ng-container *ngIf=\"!options?.notitle\">\n {{ options?.title }}<seam-form-field-required-indicator class=\"pl-1\"></seam-form-field-required-indicator>\n </ng-container>\n </ng-template>\n <input seamInput\n [formControl]=\"$any(formControl)\"\n [ngClass]=\"options?.fieldHtmlClass\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [required]=\"options?.required\"\n\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [attr.placeholder]=\"options?.placeholder\"\n [attr.required]=\"options?.required\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [type]=\"layoutNode?.type\">\n <datalist *ngIf=\"options?.typeahead?.source\"\n [id]=\"'control' + layoutNode?._id + 'Autocomplete'\">\n <option *ngFor=\"let word of options?.typeahead?.source\" [value]=\"word\">\n </datalist>\n</seam-form-field>\n\n<seam-form-field *ngIf=\"!boundControl\">\n <ng-template seamFormFieldLabelTpl let-required=\"required\">\n <ng-container *ngIf=\"!options?.notitle\">\n {{ options?.title }}<seam-form-field-required-indicator class=\"pl-1\"></seam-form-field-required-indicator>\n </ng-container>\n </ng-template>\n <input seamInput\n [ngClass]=\"options?.fieldHtmlClass\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [required]=\"options?.required\"\n [value]=\"controlValue\"\n (input)=\"updateValue($event)\"\n\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [attr.placeholder]=\"options?.placeholder\"\n [attr.required]=\"options?.required\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [type]=\"layoutNode?.type\"\n [disabled]=\"controlDisabled\">\n <datalist *ngIf=\"options?.typeahead?.source\"\n [id]=\"'control' + layoutNode?._id + 'Autocomplete'\">\n <option *ngFor=\"let word of options?.typeahead?.source\" [value]=\"word\">\n </datalist>\n</seam-form-field>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.TheSeamFormFieldComponent, selector: "seam-form-field", inputs: ["inline", "label", "labelPosition", "labelClass", "maxErrors", "numPaddingErrors", "labelId", "helpText", "helpTextId"] }, { kind: "directive", type: i4.InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-checkbox[seamInput] [ngbRadioGroup], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput]", inputs: ["seamInputSize", "id", "type", "placeholder", "required", "disabled", "readonly"], exportAs: ["seamInput"] }, { kind: "directive", type: i4.FormFieldLabelTplDirective, selector: "[seamFormFieldLabelTpl]" }, { kind: "component", type: i4.FormFieldRequiredIndicatorComponent, selector: "seam-form-field-required-indicator", inputs: ["required"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormInputComponent, decorators: [{
25
25
  type: Component,
26
26
  args: [{ selector: 'seam-schema-form-input', changeDetection: ChangeDetectionStrategy.OnPush, template: "<seam-form-field *ngIf=\"boundControl\">\n <ng-template seamFormFieldLabelTpl let-required=\"required\">\n <ng-container *ngIf=\"!options?.notitle\">\n {{ options?.title }}<seam-form-field-required-indicator class=\"pl-1\"></seam-form-field-required-indicator>\n </ng-container>\n </ng-template>\n <input seamInput\n [formControl]=\"$any(formControl)\"\n [ngClass]=\"options?.fieldHtmlClass\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [required]=\"options?.required\"\n\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [attr.placeholder]=\"options?.placeholder\"\n [attr.required]=\"options?.required\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [type]=\"layoutNode?.type\">\n <datalist *ngIf=\"options?.typeahead?.source\"\n [id]=\"'control' + layoutNode?._id + 'Autocomplete'\">\n <option *ngFor=\"let word of options?.typeahead?.source\" [value]=\"word\">\n </datalist>\n</seam-form-field>\n\n<seam-form-field *ngIf=\"!boundControl\">\n <ng-template seamFormFieldLabelTpl let-required=\"required\">\n <ng-container *ngIf=\"!options?.notitle\">\n {{ options?.title }}<seam-form-field-required-indicator class=\"pl-1\"></seam-form-field-required-indicator>\n </ng-container>\n </ng-template>\n <input seamInput\n [ngClass]=\"options?.fieldHtmlClass\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [required]=\"options?.required\"\n [value]=\"controlValue\"\n (input)=\"updateValue($event)\"\n\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [attr.placeholder]=\"options?.placeholder\"\n [attr.required]=\"options?.required\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [type]=\"layoutNode?.type\"\n [disabled]=\"controlDisabled\">\n <datalist *ngIf=\"options?.typeahead?.source\"\n [id]=\"'control' + layoutNode?._id + 'Autocomplete'\">\n <option *ngFor=\"let word of options?.typeahead?.source\" [value]=\"word\">\n </datalist>\n</seam-form-field>\n", styles: [":host{display:block}\n"] }]
27
27
  }], ctorParameters: function () { return [{ type: i1.JsonSchemaFormService }]; }, propDecorators: { layoutNode: [{
@@ -25,9 +25,9 @@ export class TheSeamSchemaFormNumberComponent {
25
25
  this.jsf.updateValue(this, event.target.value);
26
26
  }
27
27
  }
28
- TheSeamSchemaFormNumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamSchemaFormNumberComponent, deps: [{ token: i1.JsonSchemaFormService }], target: i0.ɵɵFactoryTarget.Component });
29
- TheSeamSchemaFormNumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TheSeamSchemaFormNumberComponent, selector: "seam-schema-form-number", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: "<seam-form-field *ngIf=\"boundControl\">\n <ng-template seamFormFieldLabelTpl let-required=\"required\">\n <ng-container *ngIf=\"!options?.notitle\">\n {{ options?.title }}<seam-form-field-required-indicator class=\"pl-1\"></seam-form-field-required-indicator>\n </ng-container>\n </ng-template>\n <input seamInput\n [formControl]=\"$any(formControl)\"\n [ngClass]=\"options?.fieldHtmlClass\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [required]=\"options?.required\"\n [attr.max]=\"options?.maximum\"\n [attr.min]=\"options?.minimum\"\n [attr.step]=\"options?.multipleOf || options?.step || 'any'\"\n\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [attr.placeholder]=\"options?.placeholder\"\n [attr.required]=\"options?.required\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [type]=\"layoutNode?.type === 'range' ? 'range' : 'number'\">\n <span *ngIf=\"layoutNode?.type === 'range'\" [innerHTML]=\"controlValue\"></span>\n</seam-form-field>\n\n<seam-form-field *ngIf=\"!boundControl\">\n <ng-template seamFormFieldLabelTpl let-required=\"required\">\n <ng-container *ngIf=\"!options?.notitle\">\n {{ options?.title }}<seam-form-field-required-indicator class=\"pl-1\"></seam-form-field-required-indicator>\n </ng-container>\n </ng-template>\n <input seamInput\n [ngClass]=\"options?.fieldHtmlClass\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [required]=\"options?.required\"\n [attr.max]=\"options?.maximum\"\n [attr.min]=\"options?.minimum\"\n [attr.step]=\"options?.multipleOf || options?.step || 'any'\"\n [value]=\"controlValue\"\n (input)=\"updateValue($event)\"\n\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [attr.placeholder]=\"options?.placeholder\"\n [attr.required]=\"options?.required\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [type]=\"layoutNode?.type === 'range' ? 'range' : 'number'\"\n [disabled]=\"controlDisabled\">\n <span *ngIf=\"layoutNode?.type === 'range'\" [innerHTML]=\"controlValue\"></span>\n</seam-form-field>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.TheSeamFormFieldComponent, selector: "seam-form-field", inputs: ["inline", "label", "labelPosition", "labelClass", "maxErrors", "numPaddingErrors", "labelId", "helpText", "helpTextId"] }, { kind: "directive", type: i4.InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-checkbox[seamInput] [ngbRadioGroup], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput]", inputs: ["seamInputSize", "id", "type", "placeholder", "required", "disabled", "readonly"], exportAs: ["seamInput"] }, { kind: "directive", type: i4.FormFieldLabelTplDirective, selector: "[seamFormFieldLabelTpl]" }, { kind: "component", type: i4.FormFieldRequiredIndicatorComponent, selector: "seam-form-field-required-indicator", inputs: ["required"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamSchemaFormNumberComponent, decorators: [{
28
+ TheSeamSchemaFormNumberComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormNumberComponent, deps: [{ token: i1.JsonSchemaFormService }], target: i0.ɵɵFactoryTarget.Component });
29
+ TheSeamSchemaFormNumberComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamSchemaFormNumberComponent, selector: "seam-schema-form-number", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: "<seam-form-field *ngIf=\"boundControl\">\n <ng-template seamFormFieldLabelTpl let-required=\"required\">\n <ng-container *ngIf=\"!options?.notitle\">\n {{ options?.title }}<seam-form-field-required-indicator class=\"pl-1\"></seam-form-field-required-indicator>\n </ng-container>\n </ng-template>\n <input seamInput\n [formControl]=\"$any(formControl)\"\n [ngClass]=\"options?.fieldHtmlClass\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [required]=\"options?.required\"\n [attr.max]=\"options?.maximum\"\n [attr.min]=\"options?.minimum\"\n [attr.step]=\"options?.multipleOf || options?.step || 'any'\"\n\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [attr.placeholder]=\"options?.placeholder\"\n [attr.required]=\"options?.required\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [type]=\"layoutNode?.type === 'range' ? 'range' : 'number'\">\n <span *ngIf=\"layoutNode?.type === 'range'\" [innerHTML]=\"controlValue\"></span>\n</seam-form-field>\n\n<seam-form-field *ngIf=\"!boundControl\">\n <ng-template seamFormFieldLabelTpl let-required=\"required\">\n <ng-container *ngIf=\"!options?.notitle\">\n {{ options?.title }}<seam-form-field-required-indicator class=\"pl-1\"></seam-form-field-required-indicator>\n </ng-container>\n </ng-template>\n <input seamInput\n [ngClass]=\"options?.fieldHtmlClass\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [required]=\"options?.required\"\n [attr.max]=\"options?.maximum\"\n [attr.min]=\"options?.minimum\"\n [attr.step]=\"options?.multipleOf || options?.step || 'any'\"\n [value]=\"controlValue\"\n (input)=\"updateValue($event)\"\n\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [attr.placeholder]=\"options?.placeholder\"\n [attr.required]=\"options?.required\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [type]=\"layoutNode?.type === 'range' ? 'range' : 'number'\"\n [disabled]=\"controlDisabled\">\n <span *ngIf=\"layoutNode?.type === 'range'\" [innerHTML]=\"controlValue\"></span>\n</seam-form-field>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.TheSeamFormFieldComponent, selector: "seam-form-field", inputs: ["inline", "label", "labelPosition", "labelClass", "maxErrors", "numPaddingErrors", "labelId", "helpText", "helpTextId"] }, { kind: "directive", type: i4.InputDirective, selector: "input[seamInput], textarea[seamInput], ng-select[seamInput], seam-checkbox[seamInput] [ngbRadioGroup], seam-tel-input[seamInput], quill-editor[seamInput], seam-google-maps[seamInput]", inputs: ["seamInputSize", "id", "type", "placeholder", "required", "disabled", "readonly"], exportAs: ["seamInput"] }, { kind: "directive", type: i4.FormFieldLabelTplDirective, selector: "[seamFormFieldLabelTpl]" }, { kind: "component", type: i4.FormFieldRequiredIndicatorComponent, selector: "seam-form-field-required-indicator", inputs: ["required"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormNumberComponent, decorators: [{
31
31
  type: Component,
32
32
  args: [{ selector: 'seam-schema-form-number', changeDetection: ChangeDetectionStrategy.OnPush, template: "<seam-form-field *ngIf=\"boundControl\">\n <ng-template seamFormFieldLabelTpl let-required=\"required\">\n <ng-container *ngIf=\"!options?.notitle\">\n {{ options?.title }}<seam-form-field-required-indicator class=\"pl-1\"></seam-form-field-required-indicator>\n </ng-container>\n </ng-template>\n <input seamInput\n [formControl]=\"$any(formControl)\"\n [ngClass]=\"options?.fieldHtmlClass\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [required]=\"options?.required\"\n [attr.max]=\"options?.maximum\"\n [attr.min]=\"options?.minimum\"\n [attr.step]=\"options?.multipleOf || options?.step || 'any'\"\n\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [attr.placeholder]=\"options?.placeholder\"\n [attr.required]=\"options?.required\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [type]=\"layoutNode?.type === 'range' ? 'range' : 'number'\">\n <span *ngIf=\"layoutNode?.type === 'range'\" [innerHTML]=\"controlValue\"></span>\n</seam-form-field>\n\n<seam-form-field *ngIf=\"!boundControl\">\n <ng-template seamFormFieldLabelTpl let-required=\"required\">\n <ng-container *ngIf=\"!options?.notitle\">\n {{ options?.title }}<seam-form-field-required-indicator class=\"pl-1\"></seam-form-field-required-indicator>\n </ng-container>\n </ng-template>\n <input seamInput\n [ngClass]=\"options?.fieldHtmlClass\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [required]=\"options?.required\"\n [attr.max]=\"options?.maximum\"\n [attr.min]=\"options?.minimum\"\n [attr.step]=\"options?.multipleOf || options?.step || 'any'\"\n [value]=\"controlValue\"\n (input)=\"updateValue($event)\"\n\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [attr.placeholder]=\"options?.placeholder\"\n [attr.required]=\"options?.required\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [type]=\"layoutNode?.type === 'range' ? 'range' : 'number'\"\n [disabled]=\"controlDisabled\">\n <span *ngIf=\"layoutNode?.type === 'range'\" [innerHTML]=\"controlValue\"></span>\n</seam-form-field>\n", styles: [":host{display:block}\n"] }]
33
33
  }], ctorParameters: function () { return [{ type: i1.JsonSchemaFormService }]; }, propDecorators: { layoutNode: [{