@theseam/ui-common 0.2.9 → 0.2.13

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 (365) hide show
  1. package/assets/vendor/intl-tel-input/js/utils.js +255 -254
  2. package/bundles/theseam-ui-common-asset-reader.umd.js +7 -9
  3. package/bundles/theseam-ui-common-asset-reader.umd.js.map +1 -1
  4. package/bundles/theseam-ui-common-breadcrumbs.umd.js +6 -8
  5. package/bundles/theseam-ui-common-breadcrumbs.umd.js.map +1 -1
  6. package/bundles/theseam-ui-common-buttons.umd.js +5 -5
  7. package/bundles/theseam-ui-common-buttons.umd.js.map +1 -1
  8. package/bundles/theseam-ui-common-card.umd.js +6 -6
  9. package/bundles/theseam-ui-common-card.umd.js.map +1 -1
  10. package/bundles/theseam-ui-common-checkbox.umd.js +4 -4
  11. package/bundles/theseam-ui-common-checkbox.umd.js.map +1 -1
  12. package/bundles/theseam-ui-common-confirm-dialog.umd.js +4 -4
  13. package/bundles/theseam-ui-common-confirm-dialog.umd.js.map +1 -1
  14. package/bundles/theseam-ui-common-core.umd.js +4 -4
  15. package/bundles/theseam-ui-common-core.umd.js.map +1 -1
  16. package/bundles/theseam-ui-common-data-exporter.umd.js +5 -5
  17. package/bundles/theseam-ui-common-data-filters.umd.js +9 -6
  18. package/bundles/theseam-ui-common-data-filters.umd.js.map +1 -1
  19. package/bundles/theseam-ui-common-datatable-dynamic.umd.js +7 -7
  20. package/bundles/theseam-ui-common-datatable-dynamic.umd.js.map +1 -1
  21. package/bundles/theseam-ui-common-datatable.umd.js +1353 -375
  22. package/bundles/theseam-ui-common-datatable.umd.js.map +1 -1
  23. package/bundles/theseam-ui-common-dynamic-component-loader.umd.js +5 -7
  24. package/bundles/theseam-ui-common-dynamic-component-loader.umd.js.map +1 -1
  25. package/bundles/theseam-ui-common-dynamic.umd.js +7 -9
  26. package/bundles/theseam-ui-common-dynamic.umd.js.map +1 -1
  27. package/bundles/theseam-ui-common-footer-bar.umd.js +3 -3
  28. package/bundles/theseam-ui-common-form-field-error.umd.js +5 -5
  29. package/bundles/theseam-ui-common-form-field-error.umd.js.map +1 -1
  30. package/bundles/theseam-ui-common-form-field.umd.js +5 -5
  31. package/bundles/theseam-ui-common-form-field.umd.js.map +1 -1
  32. package/bundles/theseam-ui-common-framework.umd.js +28 -30
  33. package/bundles/theseam-ui-common-framework.umd.js.map +1 -1
  34. package/bundles/theseam-ui-common-graphql.umd.js +958 -8
  35. package/bundles/theseam-ui-common-graphql.umd.js.map +1 -1
  36. package/bundles/theseam-ui-common-icon.umd.js +5 -5
  37. package/bundles/theseam-ui-common-icon.umd.js.map +1 -1
  38. package/bundles/theseam-ui-common-layout.umd.js +5 -7
  39. package/bundles/theseam-ui-common-layout.umd.js.map +1 -1
  40. package/bundles/theseam-ui-common-loading.umd.js +4 -4
  41. package/bundles/theseam-ui-common-menu.umd.js +5 -5
  42. package/bundles/theseam-ui-common-menu.umd.js.map +1 -1
  43. package/bundles/theseam-ui-common-modal.umd.js +6 -6
  44. package/bundles/theseam-ui-common-modal.umd.js.map +1 -1
  45. package/bundles/theseam-ui-common-models.umd.js +3 -3
  46. package/bundles/theseam-ui-common-popover.umd.js +4 -4
  47. package/bundles/theseam-ui-common-progress.umd.js +5 -5
  48. package/bundles/theseam-ui-common-progress.umd.js.map +1 -1
  49. package/bundles/theseam-ui-common-scrollbar.umd.js +7 -9
  50. package/bundles/theseam-ui-common-scrollbar.umd.js.map +1 -1
  51. package/bundles/theseam-ui-common-services.umd.js +6 -8
  52. package/bundles/theseam-ui-common-services.umd.js.map +1 -1
  53. package/bundles/theseam-ui-common-shared.umd.js +4 -4
  54. package/bundles/theseam-ui-common-shared.umd.js.map +1 -1
  55. package/bundles/theseam-ui-common-storage.umd.js +5 -7
  56. package/bundles/theseam-ui-common-storage.umd.js.map +1 -1
  57. package/bundles/theseam-ui-common-story-helpers.umd.js +4 -4
  58. package/bundles/theseam-ui-common-story-helpers.umd.js.map +1 -1
  59. package/bundles/theseam-ui-common-tabbed.umd.js +5 -5
  60. package/bundles/theseam-ui-common-tabbed.umd.js.map +1 -1
  61. package/bundles/theseam-ui-common-table-cell-type.umd.js +5 -7
  62. package/bundles/theseam-ui-common-table-cell-type.umd.js.map +1 -1
  63. package/bundles/theseam-ui-common-table-cell-types.umd.js +258 -32
  64. package/bundles/theseam-ui-common-table-cell-types.umd.js.map +1 -1
  65. package/bundles/theseam-ui-common-table.umd.js +5 -5
  66. package/bundles/theseam-ui-common-table.umd.js.map +1 -1
  67. package/bundles/theseam-ui-common-tel-input.umd.js +6 -6
  68. package/bundles/theseam-ui-common-tel-input.umd.js.map +1 -1
  69. package/bundles/theseam-ui-common-testing.umd.js +568 -0
  70. package/bundles/theseam-ui-common-testing.umd.js.map +1 -0
  71. package/bundles/theseam-ui-common-tiled-select.umd.js +56 -39
  72. package/bundles/theseam-ui-common-tiled-select.umd.js.map +1 -1
  73. package/bundles/theseam-ui-common-toggle-edit.umd.js +8 -10
  74. package/bundles/theseam-ui-common-toggle-edit.umd.js.map +1 -1
  75. package/bundles/theseam-ui-common-toggle-group.umd.js +4 -4
  76. package/bundles/theseam-ui-common-toggle-group.umd.js.map +1 -1
  77. package/bundles/theseam-ui-common-unsaved-changes-dialog.umd.js +5 -7
  78. package/bundles/theseam-ui-common-unsaved-changes-dialog.umd.js.map +1 -1
  79. package/bundles/theseam-ui-common-utils.umd.js +174 -81
  80. package/bundles/theseam-ui-common-utils.umd.js.map +1 -1
  81. package/bundles/theseam-ui-common-validators.umd.js +3 -3
  82. package/bundles/theseam-ui-common-viewers.umd.js +6 -8
  83. package/bundles/theseam-ui-common-viewers.umd.js.map +1 -1
  84. package/bundles/theseam-ui-common-widget.umd.js +18 -20
  85. package/bundles/theseam-ui-common-widget.umd.js.map +1 -1
  86. package/bundles/theseam-ui-common.umd.js +2 -2
  87. package/buttons/theseam-ui-common-buttons.metadata.json +1 -1
  88. package/card/theseam-ui-common-card.metadata.json +1 -1
  89. package/data-filters/data-filter.d.ts +10 -6
  90. package/data-filters/theseam-ui-common-data-filters.metadata.json +1 -1
  91. package/datatable/datatable/datatable.component.d.ts +48 -32
  92. package/datatable/datatable-column/datatable-column.component.d.ts +26 -25
  93. package/datatable/datatable-column-preferences/datatable-column-preferences.component.d.ts +7 -5
  94. package/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.d.ts +7 -1
  95. package/datatable/datatable-footer/datatable-footer-tpl.directive.d.ts +5 -0
  96. package/datatable/datatable-footer/datatable-footer.directive.d.ts +6 -0
  97. package/datatable/datatable-menu-bar/datatable-menu-bar.component.d.ts +1 -1
  98. package/datatable/directives/datatable-filter.directive.d.ts +1 -1
  99. package/datatable/models/columns-alteration.d.ts +61 -0
  100. package/datatable/models/columns-alterations/hide-column.columns-alteration.d.ts +15 -0
  101. package/datatable/models/columns-alterations/order.columns-alteration.d.ts +20 -0
  102. package/datatable/models/columns-alterations/sort.columns-alteration.d.ts +14 -0
  103. package/datatable/models/columns-alterations/width.columns-alteration.d.ts +16 -0
  104. package/datatable/models/datatable-accessor.d.ts +5 -3
  105. package/datatable/models/internal-column-props.d.ts +7 -0
  106. package/datatable/models/page-info.d.ts +12 -0
  107. package/datatable/models/preferences-accessor.d.ts +1 -1
  108. package/datatable/models/preferences.d.ts +11 -3
  109. package/datatable/models/sort-item.d.ts +2 -1
  110. package/datatable/public-api.d.ts +2 -0
  111. package/datatable/services/columns-alterations-manager.service.d.ts +39 -0
  112. package/datatable/services/columns-manager.service.d.ts +55 -0
  113. package/datatable/services/datatable-preferences.service.d.ts +10 -7
  114. package/datatable/theseam-ui-common-datatable.d.ts +2 -0
  115. package/datatable/theseam-ui-common-datatable.metadata.json +1 -1
  116. package/datatable/tokens/datatable-preferences-accessor.d.ts +2 -2
  117. package/datatable/utils/create-action-menu-column.d.ts +3 -0
  118. package/datatable/utils/create-checkbox-column.d.ts +3 -0
  119. package/datatable/utils/get-column-prop.d.ts +5 -0
  120. package/datatable/utils/map-columns-alterations-states.d.ts +2 -0
  121. package/datatable/utils/remove-unused-diffs.d.ts +7 -0
  122. package/datatable/utils/set-column-defaults.d.ts +2 -0
  123. package/datatable/utils/translate-templates.d.ts +2 -0
  124. package/datatable/utils/with-stored-column-info.d.ts +2 -2
  125. package/datatable-dynamic/theseam-ui-common-datatable-dynamic.metadata.json +1 -1
  126. package/esm2015/buttons/progress-circle-button/progress-circle-button.component.js +1 -1
  127. package/esm2015/card/card-action/card-action.component.js +1 -1
  128. package/esm2015/card/card-body/card-body.component.js +1 -1
  129. package/esm2015/data-filters/data-filter.js +5 -2
  130. package/esm2015/data-filters/filters/data-filter-search/data-filter-search.component.js +1 -1
  131. package/esm2015/data-filters/filters/data-filter-text/data-filter-text.component.js +1 -1
  132. package/esm2015/datatable/datatable/datatable.component.js +197 -211
  133. package/esm2015/datatable/datatable-action-menu/datatable-action-menu.component.js +1 -1
  134. package/esm2015/datatable/datatable-column/datatable-column.component.js +1 -1
  135. package/esm2015/datatable/datatable-column-preferences/datatable-column-preferences.component.js +42 -19
  136. package/esm2015/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.js +38 -4
  137. package/esm2015/datatable/datatable-export-button/datatable-export-button.component.js +1 -1
  138. package/esm2015/datatable/datatable-footer/datatable-footer-tpl.directive.js +15 -0
  139. package/esm2015/datatable/datatable-footer/datatable-footer.directive.js +18 -0
  140. package/esm2015/datatable/datatable-menu-bar/datatable-menu-bar.component.js +1 -1
  141. package/esm2015/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.js +1 -1
  142. package/esm2015/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.js +1 -1
  143. package/esm2015/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.js +1 -1
  144. package/esm2015/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.js +1 -1
  145. package/esm2015/datatable/datatable.module.js +7 -1
  146. package/esm2015/datatable/models/columns-alteration.js +38 -0
  147. package/esm2015/datatable/models/columns-alterations/hide-column.columns-alteration.js +38 -0
  148. package/esm2015/datatable/models/columns-alterations/order.columns-alteration.js +81 -0
  149. package/esm2015/datatable/models/columns-alterations/sort.columns-alteration.js +33 -0
  150. package/esm2015/datatable/models/columns-alterations/width.columns-alteration.js +41 -0
  151. package/esm2015/datatable/models/datatable-accessor.js +1 -1
  152. package/esm2015/datatable/models/internal-column-props.js +15 -0
  153. package/esm2015/datatable/models/page-info.js +1 -1
  154. package/esm2015/datatable/models/preferences-accessor.js +1 -1
  155. package/esm2015/datatable/models/preferences.js +6 -2
  156. package/esm2015/datatable/models/sort-item.js +1 -1
  157. package/esm2015/datatable/public-api.js +3 -1
  158. package/esm2015/datatable/services/columns-alterations-manager.service.js +134 -0
  159. package/esm2015/datatable/services/columns-manager.service.js +257 -0
  160. package/esm2015/datatable/services/datatable-preferences.service.js +78 -32
  161. package/esm2015/datatable/theseam-ui-common-datatable.js +3 -1
  162. package/esm2015/datatable/tokens/datatable-preferences-accessor.js +2 -2
  163. package/esm2015/datatable/utils/create-action-menu-column.js +18 -0
  164. package/esm2015/datatable/utils/create-checkbox-column.js +15 -0
  165. package/esm2015/datatable/utils/get-column-prop.js +9 -0
  166. package/esm2015/datatable/utils/map-columns-alterations-states.js +39 -0
  167. package/esm2015/datatable/utils/remove-unused-diffs.js +9 -0
  168. package/esm2015/datatable/utils/set-column-defaults.js +10 -0
  169. package/esm2015/datatable/utils/translate-templates.js +12 -0
  170. package/esm2015/datatable/utils/with-stored-column-info.js +1 -1
  171. package/esm2015/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.js +1 -1
  172. package/esm2015/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.js +1 -1
  173. package/esm2015/datatable-dynamic/datatable-dynamic.component.js +1 -1
  174. package/esm2015/form-field/form-field.component.js +1 -1
  175. package/esm2015/form-field-error/form-field-error/form-field-error.component.js +1 -1
  176. package/esm2015/framework/base-layout/base-layout.component.js +1 -1
  177. package/esm2015/framework/dashboard/dashboard-widgets/dashboard-widgets.component.js +1 -1
  178. package/esm2015/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.js +1 -1
  179. package/esm2015/framework/schema-form-controls/schema-form-input/schema-form-input.component.js +1 -1
  180. package/esm2015/framework/schema-form-controls/schema-form-number/schema-form-number.component.js +1 -1
  181. package/esm2015/framework/schema-form-controls/schema-form-select/schema-form-select.component.js +1 -1
  182. package/esm2015/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.js +1 -1
  183. package/esm2015/framework/side-nav/side-nav-item/side-nav-item.component.js +3 -3
  184. package/esm2015/framework/side-nav/side-nav-toggle/side-nav-toggle.component.js +1 -1
  185. package/esm2015/framework/side-nav/side-nav.component.js +1 -1
  186. package/esm2015/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.js +1 -1
  187. package/esm2015/framework/top-bar/top-bar-title/top-bar-title.component.js +1 -1
  188. package/esm2015/framework/top-bar/top-bar.component.js +1 -1
  189. package/esm2015/graphql/datatable/create-page-info-observable.js +38 -0
  190. package/esm2015/graphql/datatable/datatable-graphql-query-ref.js +236 -0
  191. package/esm2015/graphql/datatable/datatable-graphql.service.js +35 -0
  192. package/esm2015/graphql/datatable/datatable-helpers.js +170 -0
  193. package/esm2015/graphql/datatable/get-page-info.js +11 -0
  194. package/esm2015/graphql/datatable/index.js +7 -0
  195. package/esm2015/graphql/datatable/map-filter-states.js +64 -0
  196. package/esm2015/graphql/datatable/map-page-info.js +14 -0
  197. package/esm2015/graphql/datatable/mapper-context.js +2 -0
  198. package/esm2015/graphql/models/gql-datatable-accessor.js +2 -0
  199. package/esm2015/graphql/models/index.js +2 -1
  200. package/esm2015/graphql/models/query-processing-config.js +1 -1
  201. package/esm2015/graphql/public-api.js +2 -1
  202. package/esm2015/graphql/utils/parse-hints.js +3 -3
  203. package/esm2015/icon/icon/icon.component.js +1 -1
  204. package/esm2015/loading/loading/loading.component.js +1 -1
  205. package/esm2015/menu/menu.component.js +1 -1
  206. package/esm2015/modal/modal-body/modal-body.component.js +1 -1
  207. package/esm2015/modal/modal-container/modal-container.component.js +1 -1
  208. package/esm2015/popover/popover/popover.component.js +1 -1
  209. package/esm2015/progress/progress-circle/progress-circle.component.js +1 -1
  210. package/esm2015/tabbed/tabbed.component.js +1 -1
  211. package/esm2015/table/table/table.component.js +1 -1
  212. package/esm2015/table-cell-types/public-api.js +8 -1
  213. package/esm2015/table-cell-types/table-cell-type-currency/table-cell-type-currency-config.js +2 -0
  214. package/esm2015/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.js +74 -0
  215. package/esm2015/table-cell-types/table-cell-type-currency/table-cell-type-currency.js +2 -0
  216. package/esm2015/table-cell-types/table-cell-type-decimal/table-cell-type-decimal-config.js +1 -1
  217. package/esm2015/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.js +73 -0
  218. package/esm2015/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.js +2 -0
  219. package/esm2015/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.js +1 -1
  220. package/esm2015/table-cell-types/table-cell-type-integer/table-cell-type-integer-config.js +1 -1
  221. package/esm2015/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.js +71 -0
  222. package/esm2015/table-cell-types/table-cell-type-integer/table-cell-type-integer.js +2 -0
  223. package/esm2015/table-cell-types/table-cell-type-manifests.js +29 -17
  224. package/esm2015/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.js +1 -1
  225. package/esm2015/table-cell-types/table-cell-types.module.js +9 -2
  226. package/esm2015/tel-input/tel-input/tel-input.component.js +1 -1
  227. package/esm2015/testing/current-tick-time.js +16 -0
  228. package/esm2015/testing/fake-toastr.js +29 -0
  229. package/esm2015/testing/get-harness.js +16 -0
  230. package/esm2015/testing/public-api.js +7 -0
  231. package/esm2015/testing/render-story.js +12 -0
  232. package/esm2015/testing/story-expect.js +39 -0
  233. package/esm2015/testing/theseam-ui-common-testing.js +5 -0
  234. package/esm2015/testing/tick-helper.js +74 -0
  235. package/esm2015/tiled-select/components/tiled-select/tiled-select.component.js +25 -17
  236. package/esm2015/tiled-select/components/tiled-select-tile/tiled-select-tile.component.js +5 -2
  237. package/esm2015/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.js +1 -1
  238. package/esm2015/tiled-select/public-api.js +2 -1
  239. package/esm2015/tiled-select/tiled-select.models.js +1 -1
  240. package/esm2015/tiled-select/tiled-select.module.js +4 -4
  241. package/esm2015/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.js +1 -1
  242. package/esm2015/toggle-edit/toggle-edit.component.js +1 -1
  243. package/esm2015/utils/array-move.js +62 -0
  244. package/esm2015/utils/public-api.js +2 -1
  245. package/esm2015/utils/subscriber-count.js +31 -4
  246. package/esm2015/widget/widget/widget.component.js +1 -1
  247. package/esm2015/widget/widget-content-components/widget-button-group/widget-button-group.component.js +1 -1
  248. package/esm2015/widget/widget-content-components/widget-content-header/widget-content-header.component.js +1 -1
  249. package/esm2015/widget/widget-content-components/widget-empty-label/widget-empty-label.component.js +1 -1
  250. package/esm2015/widget/widget-content-components/widget-footer-link/widget-footer-link.component.js +1 -1
  251. package/esm2015/widget/widget-content-components/widget-footer-text/widget-footer-text.component.js +1 -1
  252. package/esm2015/widget/widget-content-components/widget-header-badge/widget-header-badge.component.js +1 -1
  253. package/esm2015/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.js +1 -1
  254. package/esm2015/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.js +1 -1
  255. package/esm2015/widget/widget-content-components/widget-tile/widget-tile.component.js +1 -1
  256. package/esm2015/widget/widget-content-components/widget-tile-list/widget-tile-list.component.js +1 -1
  257. package/esm2015/widget/widget-footer/widget-footer.component.js +1 -1
  258. package/fesm2015/theseam-ui-common-buttons.js +1 -1
  259. package/fesm2015/theseam-ui-common-card.js +2 -2
  260. package/fesm2015/theseam-ui-common-data-filters.js +6 -3
  261. package/fesm2015/theseam-ui-common-data-filters.js.map +1 -1
  262. package/fesm2015/theseam-ui-common-datatable-dynamic.js +3 -3
  263. package/fesm2015/theseam-ui-common-datatable.js +1136 -316
  264. package/fesm2015/theseam-ui-common-datatable.js.map +1 -1
  265. package/fesm2015/theseam-ui-common-form-field-error.js +1 -1
  266. package/fesm2015/theseam-ui-common-form-field.js +1 -1
  267. package/fesm2015/theseam-ui-common-framework.js +14 -14
  268. package/fesm2015/theseam-ui-common-framework.js.map +1 -1
  269. package/fesm2015/theseam-ui-common-graphql.js +555 -5
  270. package/fesm2015/theseam-ui-common-graphql.js.map +1 -1
  271. package/fesm2015/theseam-ui-common-icon.js +1 -1
  272. package/fesm2015/theseam-ui-common-loading.js +1 -1
  273. package/fesm2015/theseam-ui-common-menu.js +1 -1
  274. package/fesm2015/theseam-ui-common-modal.js +2 -2
  275. package/fesm2015/theseam-ui-common-popover.js +1 -1
  276. package/fesm2015/theseam-ui-common-progress.js +1 -1
  277. package/fesm2015/theseam-ui-common-tabbed.js +1 -1
  278. package/fesm2015/theseam-ui-common-table-cell-types.js +234 -22
  279. package/fesm2015/theseam-ui-common-table-cell-types.js.map +1 -1
  280. package/fesm2015/theseam-ui-common-table.js +1 -1
  281. package/fesm2015/theseam-ui-common-tel-input.js +1 -1
  282. package/fesm2015/theseam-ui-common-testing.js +191 -0
  283. package/fesm2015/theseam-ui-common-testing.js.map +1 -0
  284. package/fesm2015/theseam-ui-common-tiled-select.js +34 -21
  285. package/fesm2015/theseam-ui-common-tiled-select.js.map +1 -1
  286. package/fesm2015/theseam-ui-common-toggle-edit.js +2 -2
  287. package/fesm2015/theseam-ui-common-utils.js +92 -4
  288. package/fesm2015/theseam-ui-common-utils.js.map +1 -1
  289. package/fesm2015/theseam-ui-common-widget.js +12 -12
  290. package/form-field/theseam-ui-common-form-field.metadata.json +1 -1
  291. package/form-field-error/theseam-ui-common-form-field-error.metadata.json +1 -1
  292. package/framework/side-nav/side-nav-item/side-nav-item.component.scss +36 -9
  293. package/framework/theseam-ui-common-framework.metadata.json +1 -1
  294. package/graphql/datatable/create-page-info-observable.d.ts +4 -0
  295. package/graphql/datatable/datatable-graphql-query-ref.d.ts +65 -0
  296. package/graphql/datatable/datatable-graphql.service.d.ts +26 -0
  297. package/graphql/datatable/datatable-helpers.d.ts +12 -0
  298. package/graphql/datatable/get-page-info.d.ts +4 -0
  299. package/graphql/datatable/index.d.ts +6 -0
  300. package/graphql/datatable/map-filter-states.d.ts +18 -0
  301. package/graphql/datatable/map-page-info.d.ts +11 -0
  302. package/graphql/datatable/mapper-context.d.ts +6 -0
  303. package/graphql/models/gql-datatable-accessor.d.ts +9 -0
  304. package/graphql/models/index.d.ts +1 -0
  305. package/graphql/models/query-processing-config.d.ts +4 -0
  306. package/graphql/public-api.d.ts +1 -0
  307. package/graphql/theseam-ui-common-graphql.metadata.json +1 -1
  308. package/icon/theseam-ui-common-icon.metadata.json +1 -1
  309. package/loading/theseam-ui-common-loading.metadata.json +1 -1
  310. package/menu/theseam-ui-common-menu.metadata.json +1 -1
  311. package/modal/theseam-ui-common-modal.metadata.json +1 -1
  312. package/package.json +1 -1
  313. package/popover/theseam-ui-common-popover.metadata.json +1 -1
  314. package/progress/theseam-ui-common-progress.metadata.json +1 -1
  315. package/styles/common/_table.scss +0 -5
  316. package/styles/vendor/ngx-datatable/_ngx-datatable.scss +478 -87
  317. package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +174 -0
  318. package/styles/vendor/ngx-datatable/_themes/dark/_variables.scss +166 -0
  319. package/styles/vendor/ngx-datatable/_themes/material/_variables.scss +165 -0
  320. package/styles/vendor/ngx-datatable/_variables.scss +3 -0
  321. package/tabbed/theseam-ui-common-tabbed.metadata.json +1 -1
  322. package/table/theseam-ui-common-table.metadata.json +1 -1
  323. package/table-cell-types/public-api.d.ts +7 -0
  324. package/table-cell-types/table-cell-type-currency/table-cell-type-currency-config.d.ts +39 -0
  325. package/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.d.ts +19 -0
  326. package/table-cell-types/table-cell-type-currency/table-cell-type-currency.d.ts +3 -0
  327. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal-config.d.ts +31 -1
  328. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.d.ts +19 -0
  329. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.d.ts +3 -0
  330. package/table-cell-types/table-cell-type-integer/table-cell-type-integer-config.d.ts +23 -1
  331. package/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.d.ts +19 -0
  332. package/table-cell-types/table-cell-type-integer/table-cell-type-integer.d.ts +3 -0
  333. package/table-cell-types/table-cell-type-manifests.d.ts +2 -1
  334. package/table-cell-types/theseam-ui-common-table-cell-types.metadata.json +1 -1
  335. package/tel-input/theseam-ui-common-tel-input.metadata.json +1 -1
  336. package/testing/current-tick-time.d.ts +13 -0
  337. package/testing/fake-toastr.d.ts +30 -0
  338. package/testing/get-harness.d.ts +7 -0
  339. package/testing/package.json +11 -0
  340. package/testing/public-api.d.ts +6 -0
  341. package/testing/render-story.d.ts +2 -0
  342. package/testing/story-expect.d.ts +5 -0
  343. package/{test-helpers/theseam-ui-common-test-helpers.d.ts → testing/theseam-ui-common-testing.d.ts} +0 -0
  344. package/testing/theseam-ui-common-testing.metadata.json +1 -0
  345. package/{test-helpers → testing}/tick-helper.d.ts +0 -0
  346. package/tiled-select/components/tiled-select/tiled-select.component.d.ts +7 -3
  347. package/tiled-select/components/tiled-select-tile/tiled-select-tile.component.d.ts +1 -0
  348. package/tiled-select/theseam-ui-common-tiled-select.metadata.json +1 -1
  349. package/tiled-select/tiled-select.models.d.ts +3 -1
  350. package/toggle-edit/theseam-ui-common-toggle-edit.metadata.json +1 -1
  351. package/utils/array-move.d.ts +49 -0
  352. package/utils/public-api.d.ts +1 -0
  353. package/utils/subscriber-count.d.ts +13 -1
  354. package/utils/theseam-ui-common-utils.metadata.json +1 -1
  355. package/widget/theseam-ui-common-widget.metadata.json +1 -1
  356. package/bundles/theseam-ui-common-test-helpers.umd.js +0 -94
  357. package/bundles/theseam-ui-common-test-helpers.umd.js.map +0 -1
  358. package/esm2015/test-helpers/public-api.js +0 -2
  359. package/esm2015/test-helpers/theseam-ui-common-test-helpers.js +0 -5
  360. package/esm2015/test-helpers/tick-helper.js +0 -74
  361. package/fesm2015/theseam-ui-common-test-helpers.js +0 -81
  362. package/fesm2015/theseam-ui-common-test-helpers.js.map +0 -1
  363. package/test-helpers/package.json +0 -11
  364. package/test-helpers/public-api.d.ts +0 -1
  365. package/test-helpers/theseam-ui-common-test-helpers.metadata.json +0 -1
@@ -0,0 +1,39 @@
1
+ import { isDevMode } from '@angular/core';
2
+ import { HideColumnColumnsAlteration } from '../models/columns-alterations/hide-column.columns-alteration';
3
+ import { OrderColumnsAlteration } from '../models/columns-alterations/order.columns-alteration';
4
+ import { SortColumnsAlteration } from '../models/columns-alterations/sort.columns-alteration';
5
+ import { WidthColumnsAlteration } from '../models/columns-alterations/width.columns-alteration';
6
+ export function mapColumnsAlterationsStates(states) {
7
+ const alterations = [];
8
+ for (const state of states) {
9
+ try {
10
+ switch (state.type) {
11
+ case 'hide-column':
12
+ alterations.push(new HideColumnColumnsAlteration(state.state, true));
13
+ break;
14
+ case 'width':
15
+ alterations.push(new WidthColumnsAlteration(state.state, true));
16
+ break;
17
+ case 'order':
18
+ alterations.push(new OrderColumnsAlteration(state.state, true));
19
+ break;
20
+ case 'sort':
21
+ alterations.push(new SortColumnsAlteration(state.state, true));
22
+ break;
23
+ default: {
24
+ if (isDevMode()) {
25
+ console.warn('Unrecognized ColumnsAlteration state', state);
26
+ }
27
+ }
28
+ }
29
+ }
30
+ catch (e) {
31
+ if (isDevMode()) {
32
+ console.warn('Unable to map ColumnsAlteration state', state);
33
+ console.warn(e);
34
+ }
35
+ }
36
+ }
37
+ return alterations;
38
+ }
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWNvbHVtbnMtYWx0ZXJhdGlvbnMtc3RhdGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2RhdGF0YWJsZS91dGlscy9tYXAtY29sdW1ucy1hbHRlcmF0aW9ucy1zdGF0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUd6QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQTtBQUMxRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUVoRyxNQUFNLFVBQVUsMkJBQTJCLENBQUMsTUFBZ0M7SUFDMUUsTUFBTSxXQUFXLEdBQXdCLEVBQUUsQ0FBQTtJQUUzQyxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRTtRQUMxQixJQUFJO1lBQ0YsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUNsQixLQUFLLGFBQWE7b0JBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFBQyxNQUFNO2dCQUNoRyxLQUFLLE9BQU87b0JBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFBQyxNQUFNO2dCQUNyRixLQUFLLE9BQU87b0JBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFBQyxNQUFNO2dCQUNyRixLQUFLLE1BQU07b0JBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFBQyxNQUFNO2dCQUNuRixPQUFPLENBQUMsQ0FBQztvQkFDUCxJQUFJLFNBQVMsRUFBRSxFQUFFO3dCQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsc0NBQXNDLEVBQUUsS0FBSyxDQUFDLENBQUE7cUJBQzVEO2lCQUNGO2FBQ0Y7U0FDRjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsSUFBSSxTQUFTLEVBQUUsRUFBRTtnQkFDZixPQUFPLENBQUMsSUFBSSxDQUFDLHVDQUF1QyxFQUFFLEtBQUssQ0FBQyxDQUFBO2dCQUM1RCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO2FBQ2hCO1NBQ0Y7S0FDRjtJQUVELE9BQU8sV0FBVyxDQUFBO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5cclxuaW1wb3J0IHsgQ29sdW1uc0FsdGVyYXRpb24sIENvbHVtbnNBbHRlcmF0aW9uU3RhdGUgfSBmcm9tICcuLi9tb2RlbHMvY29sdW1ucy1hbHRlcmF0aW9uJ1xyXG5pbXBvcnQgeyBIaWRlQ29sdW1uQ29sdW1uc0FsdGVyYXRpb24gfSBmcm9tICcuLi9tb2RlbHMvY29sdW1ucy1hbHRlcmF0aW9ucy9oaWRlLWNvbHVtbi5jb2x1bW5zLWFsdGVyYXRpb24nXHJcbmltcG9ydCB7IE9yZGVyQ29sdW1uc0FsdGVyYXRpb24gfSBmcm9tICcuLi9tb2RlbHMvY29sdW1ucy1hbHRlcmF0aW9ucy9vcmRlci5jb2x1bW5zLWFsdGVyYXRpb24nO1xyXG5pbXBvcnQgeyBTb3J0Q29sdW1uc0FsdGVyYXRpb24gfSBmcm9tICcuLi9tb2RlbHMvY29sdW1ucy1hbHRlcmF0aW9ucy9zb3J0LmNvbHVtbnMtYWx0ZXJhdGlvbic7XHJcbmltcG9ydCB7IFdpZHRoQ29sdW1uc0FsdGVyYXRpb24gfSBmcm9tICcuLi9tb2RlbHMvY29sdW1ucy1hbHRlcmF0aW9ucy93aWR0aC5jb2x1bW5zLWFsdGVyYXRpb24nO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1hcENvbHVtbnNBbHRlcmF0aW9uc1N0YXRlcyhzdGF0ZXM6IENvbHVtbnNBbHRlcmF0aW9uU3RhdGVbXSk6IENvbHVtbnNBbHRlcmF0aW9uW10ge1xyXG4gIGNvbnN0IGFsdGVyYXRpb25zOiBDb2x1bW5zQWx0ZXJhdGlvbltdID0gW11cclxuXHJcbiAgZm9yIChjb25zdCBzdGF0ZSBvZiBzdGF0ZXMpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIHN3aXRjaCAoc3RhdGUudHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ2hpZGUtY29sdW1uJzogYWx0ZXJhdGlvbnMucHVzaChuZXcgSGlkZUNvbHVtbkNvbHVtbnNBbHRlcmF0aW9uKHN0YXRlLnN0YXRlLCB0cnVlKSk7IGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3dpZHRoJzogYWx0ZXJhdGlvbnMucHVzaChuZXcgV2lkdGhDb2x1bW5zQWx0ZXJhdGlvbihzdGF0ZS5zdGF0ZSwgdHJ1ZSkpOyBicmVhaztcclxuICAgICAgICBjYXNlICdvcmRlcic6IGFsdGVyYXRpb25zLnB1c2gobmV3IE9yZGVyQ29sdW1uc0FsdGVyYXRpb24oc3RhdGUuc3RhdGUsIHRydWUpKTsgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnc29ydCc6IGFsdGVyYXRpb25zLnB1c2gobmV3IFNvcnRDb2x1bW5zQWx0ZXJhdGlvbihzdGF0ZS5zdGF0ZSwgdHJ1ZSkpOyBicmVhaztcclxuICAgICAgICBkZWZhdWx0OiB7XHJcbiAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKCdVbnJlY29nbml6ZWQgQ29sdW1uc0FsdGVyYXRpb24gc3RhdGUnLCBzdGF0ZSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XHJcbiAgICAgICAgY29uc29sZS53YXJuKCdVbmFibGUgdG8gbWFwIENvbHVtbnNBbHRlcmF0aW9uIHN0YXRlJywgc3RhdGUpXHJcbiAgICAgICAgY29uc29sZS53YXJuKGUpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBhbHRlcmF0aW9uc1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,9 @@
1
+ export function removeUnusedDiffs(cols, colDiffersInp, colDiffersTpl) {
2
+ const inpKeys = Object.keys(colDiffersInp);
3
+ inpKeys.filter(k => cols.findIndex(c => c.prop === k) === -1)
4
+ .forEach(k => { delete colDiffersInp[k]; });
5
+ const tplKeys = Object.keys(colDiffersTpl);
6
+ tplKeys.filter(k => cols.findIndex(c => c.prop === k) === -1)
7
+ .forEach(k => { delete colDiffersTpl[k]; });
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLXVudXNlZC1kaWZmcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvdXRpbHMvcmVtb3ZlLXVudXNlZC1kaWZmcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLElBQThCLEVBQzlCLGFBQStELEVBQy9ELGFBQStEO0lBRS9ELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDMUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQzFELE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFNUMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUMxQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDMUQsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUM5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS2V5VmFsdWVEaWZmZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5pbXBvcnQgeyBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uIH0gZnJvbSAnLi8uLi9tb2RlbHMvdGFibGUtY29sdW1uJ1xuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlVW51c2VkRGlmZnMoXG4gIGNvbHM6IFRoZVNlYW1EYXRhdGFibGVDb2x1bW5bXSxcbiAgY29sRGlmZmVyc0lucDogeyBbcHJvcE5hbWU6IHN0cmluZ106IEtleVZhbHVlRGlmZmVyPGFueSwgYW55PiB9LFxuICBjb2xEaWZmZXJzVHBsOiB7IFtwcm9wTmFtZTogc3RyaW5nXTogS2V5VmFsdWVEaWZmZXI8YW55LCBhbnk+IH1cbik6IHZvaWQge1xuICBjb25zdCBpbnBLZXlzID0gT2JqZWN0LmtleXMoY29sRGlmZmVyc0lucClcbiAgaW5wS2V5cy5maWx0ZXIoayA9PiBjb2xzLmZpbmRJbmRleChjID0+IGMucHJvcCA9PT0gaykgPT09IC0xKVxuICAgIC5mb3JFYWNoKGsgPT4geyBkZWxldGUgY29sRGlmZmVyc0lucFtrXSB9KVxuXG4gIGNvbnN0IHRwbEtleXMgPSBPYmplY3Qua2V5cyhjb2xEaWZmZXJzVHBsKVxuICB0cGxLZXlzLmZpbHRlcihrID0+IGNvbHMuZmluZEluZGV4KGMgPT4gYy5wcm9wID09PSBrKSA9PT0gLTEpXG4gICAgLmZvckVhY2goayA9PiB7IGRlbGV0ZSBjb2xEaWZmZXJzVHBsW2tdIH0pXG59XG4iXX0=
@@ -0,0 +1,10 @@
1
+ import { setColumnDefaults as _scd } from '@marklb/ngx-datatable';
2
+ export function setColumnDefaults(columns) {
3
+ for (const column of columns) {
4
+ if (!column.hasOwnProperty('hidden')) {
5
+ column.hidden = false;
6
+ }
7
+ }
8
+ _scd(columns);
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LWNvbHVtbi1kZWZhdWx0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvdXRpbHMvc2V0LWNvbHVtbi1kZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLElBQUksSUFBSSxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFJakUsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE9BQWlDO0lBQ2pFLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFO1FBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3BDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFBO1NBQ3RCO0tBQ0Y7SUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2V0Q29sdW1uRGVmYXVsdHMgYXMgX3NjZCB9IGZyb20gJ0BtYXJrbGIvbmd4LWRhdGF0YWJsZSdcblxuaW1wb3J0IHsgVGhlU2VhbURhdGF0YWJsZUNvbHVtbiB9IGZyb20gJy4uL21vZGVscy90YWJsZS1jb2x1bW4nXG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRDb2x1bW5EZWZhdWx0cyhjb2x1bW5zOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10pOiB2b2lkIHtcbiAgZm9yIChjb25zdCBjb2x1bW4gb2YgY29sdW1ucykge1xuICAgIGlmICghY29sdW1uLmhhc093blByb3BlcnR5KCdoaWRkZW4nKSkge1xuICAgICAgY29sdW1uLmhpZGRlbiA9IGZhbHNlXG4gICAgfVxuICB9XG4gIF9zY2QoY29sdW1ucylcbn1cbiJdfQ==
@@ -0,0 +1,12 @@
1
+ import { translateTemplates } from '@marklb/ngx-datatable';
2
+ import { getColumnProp } from '../utils/get-column-prop';
3
+ // TODO: Replace with a `translateTemplates` function that fits the
4
+ // wrapper component better.
5
+ export function translateTemplateColumns(v) {
6
+ const cols = translateTemplates(v);
7
+ for (const col of cols) {
8
+ col.prop = getColumnProp(col);
9
+ }
10
+ return cols;
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLXRlbXBsYXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUvdXRpbHMvdHJhbnNsYXRlLXRlbXBsYXRlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUcxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFeEQsbUVBQW1FO0FBQ25FLDRCQUE0QjtBQUM1QixNQUFNLFVBQVUsd0JBQXdCLENBQUMsQ0FBNkI7SUFDcEUsTUFBTSxJQUFJLEdBQUcsa0JBQWtCLENBQUMsQ0FBUSxDQUErQixDQUFBO0lBRXZFLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO1FBQ3RCLEdBQUcsQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0tBQzlCO0lBRUQsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHJhbnNsYXRlVGVtcGxhdGVzIH0gZnJvbSAnQG1hcmtsYi9uZ3gtZGF0YXRhYmxlJ1xuXG5pbXBvcnQgeyBEYXRhdGFibGVDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi9kYXRhdGFibGUtY29sdW1uL2RhdGF0YWJsZS1jb2x1bW4uY29tcG9uZW50J1xuaW1wb3J0IHsgZ2V0Q29sdW1uUHJvcCB9IGZyb20gJy4uL3V0aWxzL2dldC1jb2x1bW4tcHJvcCdcblxuLy8gVE9ETzogUmVwbGFjZSB3aXRoIGEgYHRyYW5zbGF0ZVRlbXBsYXRlc2AgZnVuY3Rpb24gdGhhdCBmaXRzIHRoZVxuLy8gd3JhcHBlciBjb21wb25lbnQgYmV0dGVyLlxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zbGF0ZVRlbXBsYXRlQ29sdW1ucyh2OiBEYXRhdGFibGVDb2x1bW5Db21wb25lbnRbXSk6IERhdGF0YWJsZUNvbHVtbkNvbXBvbmVudFtdIHtcbiAgY29uc3QgY29scyA9IHRyYW5zbGF0ZVRlbXBsYXRlcyh2IGFzIGFueSkgYXMgRGF0YXRhYmxlQ29sdW1uQ29tcG9uZW50W11cblxuICBmb3IgKGNvbnN0IGNvbCBvZiBjb2xzKSB7XG4gICAgY29sLnByb3AgPSBnZXRDb2x1bW5Qcm9wKGNvbClcbiAgfVxuXG4gIHJldHVybiBjb2xzXG59XG4iXX0=
@@ -17,4 +17,4 @@ export function withStoredColumnInfo(columns, preferenceColumns) {
17
17
  }
18
18
  return _columns;
19
19
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1zdG9yZWQtY29sdW1uLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL3V0aWxzL3dpdGgtc3RvcmVkLWNvbHVtbi1pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUt0RCxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLE9BQWlDLEVBQ2pDLGlCQUF1RDtJQUV2RCxNQUFNLFFBQVEsR0FBNkIsRUFBRSxDQUFBO0lBQzdDLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFO1FBQ3pCLE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2xFLElBQUksU0FBUyxFQUFFO1lBQ2IsTUFBTSxJQUFJLHFCQUFRLEdBQUcsQ0FBRSxDQUFBO1lBQ3ZCLElBQUksV0FBVyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFBRTtnQkFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTthQUFFO1lBQ2xGLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQTtZQUM1QyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1NBQ3BCO2FBQU07WUFDTCxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ25CO0tBQ0Y7SUFDRCxPQUFPLFFBQVEsQ0FBQTtBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaGFzUHJvcGVydHkgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXG5cbmltcG9ydCB7IElUaGVTZWFtRGF0YXRhYmxlUHJlZmVyZW5jZXNDb2x1bW4gfSBmcm9tICcuLi9tb2RlbHMvcHJlZmVyZW5jZXMnXG5pbXBvcnQgeyBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vbW9kZWxzL3RhYmxlLWNvbHVtbidcblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhTdG9yZWRDb2x1bW5JbmZvKFxuICBjb2x1bW5zOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10sXG4gIHByZWZlcmVuY2VDb2x1bW5zOiBJVGhlU2VhbURhdGF0YWJsZVByZWZlcmVuY2VzQ29sdW1uW11cbik6IFRoZVNlYW1EYXRhdGFibGVDb2x1bW5bXSB7XG4gIGNvbnN0IF9jb2x1bW5zOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10gPSBbXVxuICBmb3IgKGNvbnN0IGNvbCBvZiBjb2x1bW5zKSB7XG4gICAgY29uc3Qgc3RvcmVkQ29sID0gcHJlZmVyZW5jZUNvbHVtbnMuZmluZCh2ID0+IHYucHJvcCA9PT0gY29sLnByb3ApXG4gICAgaWYgKHN0b3JlZENvbCkge1xuICAgICAgY29uc3QgX2NvbCA9IHsgLi4uY29sIH1cbiAgICAgIGlmIChoYXNQcm9wZXJ0eShzdG9yZWRDb2wsICd3aWR0aCcpKSB7IF9jb2wud2lkdGggPSBNYXRoLm1heChzdG9yZWRDb2wud2lkdGgsIDApIH1cbiAgICAgIF9jb2wuY2FuQXV0b1Jlc2l6ZSA9IHN0b3JlZENvbC5jYW5BdXRvUmVzaXplXG4gICAgICBfY29sdW1ucy5wdXNoKF9jb2wpXG4gICAgfSBlbHNlIHtcbiAgICAgIF9jb2x1bW5zLnB1c2goY29sKVxuICAgIH1cbiAgfVxuICByZXR1cm4gX2NvbHVtbnNcbn1cbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1zdG9yZWQtY29sdW1uLWluZm8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlL3V0aWxzL3dpdGgtc3RvcmVkLWNvbHVtbi1pbmZvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUt0RCxNQUFNLFVBQVUsb0JBQW9CLENBQ2xDLE9BQWlDLEVBQ2pDLGlCQUFzRDtJQUV0RCxNQUFNLFFBQVEsR0FBNkIsRUFBRSxDQUFBO0lBQzdDLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFO1FBQ3pCLE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ2xFLElBQUksU0FBUyxFQUFFO1lBQ2IsTUFBTSxJQUFJLHFCQUFRLEdBQUcsQ0FBRSxDQUFBO1lBQ3ZCLElBQUksV0FBVyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFBRTtnQkFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTthQUFFO1lBQ2xGLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQTtZQUM1QyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO1NBQ3BCO2FBQU07WUFDTCxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ25CO0tBQ0Y7SUFDRCxPQUFPLFFBQVEsQ0FBQTtBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaGFzUHJvcGVydHkgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXG5cbmltcG9ydCB7IFRoZVNlYW1EYXRhdGFibGVQcmVmZXJlbmNlc0NvbHVtbiB9IGZyb20gJy4uL21vZGVscy9wcmVmZXJlbmNlcydcbmltcG9ydCB7IFRoZVNlYW1EYXRhdGFibGVDb2x1bW4gfSBmcm9tICcuLi9tb2RlbHMvdGFibGUtY29sdW1uJ1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aFN0b3JlZENvbHVtbkluZm8oXG4gIGNvbHVtbnM6IFRoZVNlYW1EYXRhdGFibGVDb2x1bW5bXSxcbiAgcHJlZmVyZW5jZUNvbHVtbnM6IFRoZVNlYW1EYXRhdGFibGVQcmVmZXJlbmNlc0NvbHVtbltdXG4pOiBUaGVTZWFtRGF0YXRhYmxlQ29sdW1uW10ge1xuICBjb25zdCBfY29sdW1uczogVGhlU2VhbURhdGF0YWJsZUNvbHVtbltdID0gW11cbiAgZm9yIChjb25zdCBjb2wgb2YgY29sdW1ucykge1xuICAgIGNvbnN0IHN0b3JlZENvbCA9IHByZWZlcmVuY2VDb2x1bW5zLmZpbmQodiA9PiB2LnByb3AgPT09IGNvbC5wcm9wKVxuICAgIGlmIChzdG9yZWRDb2wpIHtcbiAgICAgIGNvbnN0IF9jb2wgPSB7IC4uLmNvbCB9XG4gICAgICBpZiAoaGFzUHJvcGVydHkoc3RvcmVkQ29sLCAnd2lkdGgnKSkgeyBfY29sLndpZHRoID0gTWF0aC5tYXgoc3RvcmVkQ29sLndpZHRoLCAwKSB9XG4gICAgICBfY29sLmNhbkF1dG9SZXNpemUgPSBzdG9yZWRDb2wuY2FuQXV0b1Jlc2l6ZVxuICAgICAgX2NvbHVtbnMucHVzaChfY29sKVxuICAgIH0gZWxzZSB7XG4gICAgICBfY29sdW1ucy5wdXNoKGNvbClcbiAgICB9XG4gIH1cbiAgcmV0dXJuIF9jb2x1bW5zXG59XG4iXX0=
@@ -105,7 +105,7 @@ DatatableDynamicActionMenuComponent.decorators = [
105
105
  selector: 'seam-datatable-dynamic-action-menu',
106
106
  template: "<seam-menu #menu\n menuClass=\"list-group py-0 border-0 seam-datatable-action-menu\"\n animationType=\"fade\">\n\n <ng-container *ngFor=\"let record of _menuRecords$ | async\">\n\n <a *ngIf=\"record.elementType === 'a'\"\n seamMenuItem\n [seamDatatableDynamicActionMenuItem]=\"record\"\n class=\"list-group-item list-group-item-action py-1\">{{ record.rowAction.label }}</a>\n\n <button *ngIf=\"record.elementType === 'button'\"\n seamMenuItem\n [seamDatatableDynamicActionMenuItem]=\"record\"\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\">{{ record.rowAction.label }}</button>\n\n </ng-container>\n\n <!-- <ng-container *ngIf=\"(item.routerLink || item.href) && !item.confirmDialog; else noRouterLink\">\n <a *ngIf=\"item.href; else noHref\"\n seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [attr.href]=\"item.href\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n <ng-template #noHref>\n <a seamMenuItem\n class=\"list-group-item list-group-item-action py-1\"\n [queryParams]=\"item.queryParams\"\n [fragment]=\"item.fragment\"\n [queryParamsHandling]=\"item.queryParamsHandling\"\n [preserveFragment]=\"item.preserveFragment\"\n [skipLocationChange]=\"item.skipLocationChange\"\n [replaceUrl]=\"item.replaceUrl\"\n [state]=\"item.state\"\n [routerLink]=\"item.routerLink\"\n [target]=\"item.target\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </a>\n </ng-template>\n </ng-container>\n <ng-template #noRouterLink>\n <button seamMenuItem\n type=\"button\"\n class=\"list-group-item list-group-item-action py-1\"\n (click)=\"activateItem($event, item)\">\n {{ item.label }}\n </button>\n </ng-template>\n </ng-container> -->\n</seam-menu>\n\n<button type=\"button\" class=\"datatable-action-button btn\"\n [seamMenuToggle]=\"menu\"\n [positions]=\"$any(_actionMenuPositions)\"\n title=\"Row Actions\">\n <seam-icon [icon]=\"faEllipsisH\"></seam-icon>\n</button>\n",
107
107
  changeDetection: ChangeDetectionStrategy.OnPush,
108
- styles: [":host{display:block;position:relative}.datatable-action-button{font-size:20px;line-height:20px;width:30px;height:30px;padding:0;border-radius:15px;text-align:center}.datatable-action-button::ng-deep .svg-inline--fa{vertical-align:middle}"]
108
+ styles: [":host{display:block;position:relative}.datatable-action-button{font-size:20px;line-height:20px;width:30px;height:30px;padding:0;border-radius:15px;text-align:center}.datatable-action-button::ng-deep .svg-inline--fa{vertical-align:middle}\n"]
109
109
  },] }
110
110
  ];
111
111
  DatatableDynamicActionMenuComponent.ctorParameters = () => [
@@ -40,7 +40,7 @@ DatatableDynamicFilterContainerComponent.decorators = [
40
40
  selector: 'seam-datatable-dynamic-filter-container',
41
41
  template: "<ng-template [cdkPortalOutlet]=\"_portal\"></ng-template>\n",
42
42
  changeDetection: ChangeDetectionStrategy.OnPush,
43
- styles: [":host{display:block}"]
43
+ styles: [":host{display:block}\n"]
44
44
  },] }
45
45
  ];
46
46
  DatatableDynamicFilterContainerComponent.ctorParameters = () => [
@@ -63,7 +63,7 @@ DatatableDynamicComponent.decorators = [
63
63
  DynamicDatatableRowActionsService
64
64
  ],
65
65
  changeDetection: ChangeDetectionStrategy.OnPush,
66
- styles: [":host{display:flex;flex-direction:column}"]
66
+ styles: [":host{display:flex;flex-direction:column}\n"]
67
67
  },] }
68
68
  ];
69
69
  DatatableDynamicComponent.ctorParameters = () => [
@@ -165,7 +165,7 @@ TheSeamFormFieldComponent.decorators = [
165
165
  { type: Component, args: [{
166
166
  selector: 'seam-form-field',
167
167
  template: "<div>\n <div [class.seam-form-field-inline]=\"inline\">\n <label *ngIf=\"label || labelTpl\"\n #labelElem\n [attr.id]=\"labelId\"\n [attr.for]=\"contentInput?.id\"\n class=\"control-label {{ labelClass }}\"\n (seamElemResized)=\"_labelElemResized(labelElem)\">\n <ng-container *ngIf=\"labelTpl; else noLabelTpl\">\n <ng-template [ngTemplateOutlet]=\"labelTpl.template\" [ngTemplateOutletContext]=\"{ $implicit: label, label: label, required: contentInput?.required || false }\"></ng-template>\n </ng-container>\n <ng-template #noLabelTpl>\n {{ label }}<seam-form-field-required-indicator class=\"pl-1\"></seam-form-field-required-indicator>\n </ng-template>\n </label>\n <ng-container *ngIf=\"!isPasswordInput\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"isPasswordInput\">\n <div class=\"position-relative\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n <seam-password-input-reveal [inputRef]=\"$any(passwordInputElement)\"></seam-password-input-reveal>\n </div>\n </ng-container>\n </div>\n <!-- Need `.d-block` to make errors show without input sibling selector -->\n <ng-container *ngIf=\"contentInput\">\n <seam-form-field-error-list *ngIf=\"fieldErrors$ | async as fieldErrors\"\n [style.paddingLeft]=\"(label || labelTpl) && inline ? _errorPadding : undefined\"\n [control]=\"contentInput.ngControl\"\n [errors]=\"fieldErrors2$ | async\"\n [maxErrors]=\"maxErrors\"\n [numPaddingErrors]=\"numPaddingErrors\"\n class=\"invalid-feedback\">\n </seam-form-field-error-list>\n </ng-container>\n</div>\n\n<ng-template #content><ng-content></ng-content></ng-template>\n",
168
- styles: [".seam-form-field-inline{display:flex;flex-direction:row}.seam-form-field-inline .control-label{margin-bottom:0;display:flex;flex-direction:column;justify-content:center}"]
168
+ styles: [".seam-form-field-inline{display:flex;flex-direction:row}.seam-form-field-inline .control-label{margin-bottom:0;display:flex;flex-direction:column;justify-content:center}\n"]
169
169
  },] }
170
170
  ];
171
171
  TheSeamFormFieldComponent.ctorParameters = () => [
@@ -12,7 +12,7 @@ FormFieldErrorComponent.decorators = [
12
12
  { type: Component, args: [{
13
13
  selector: 'seam-form-field-error',
14
14
  template: "<em style=\"display: block;\">\n <span *ngIf=\"showValidatorName && validatorName\"\n style=\"font-weight: bold;\">{{ validatorName }}: </span>\n <span class=\"msg-text\">{{ message }}</span>\n</em>\n",
15
- styles: ["@charset \"UTF-8\";.msg-text:empty:after{content:\"\u200B\"}"]
15
+ styles: ["@charset \"UTF-8\";.msg-text:empty:after{content:\"\\200b\"}\n"]
16
16
  },] }
17
17
  ];
18
18
  FormFieldErrorComponent.ctorParameters = () => [];
@@ -99,7 +99,7 @@ TheSeamBaseLayoutComponent.decorators = [
99
99
  providers: [THE_SEAM_BASE_LAYOUT],
100
100
  changeDetection: ChangeDetectionStrategy.OnPush,
101
101
  encapsulation: ViewEncapsulation.None,
102
- styles: ["seam-base-layout{display:flex;flex-direction:column;height:100%;width:100%}seam-base-layout .base-layout-side-bar-nav-content-mobile{position:absolute;top:0;bottom:0;left:0;float:left;z-index:9999}seam-base-layout .base-layout-side-bar-container{flex:0 0 auto;display:flex;flex-direction:column}seam-base-layout .base-layout-side-bar-container .base-layout-side-bar-nav-content{flex:1 1 0}seam-base-layout .base-layout-main-container{flex:1 1 100%;display:flex;flex-direction:row;transform:translateZ(0)}seam-base-layout .base-layout-top-bar-container{flex:0 0 auto}seam-base-layout .base-layout-content-container{flex:1 1 auto;display:flex;flex-direction:column}seam-base-layout .base-layout-content-container .base-layout-content-container-header{flex:0 0 auto}seam-base-layout .base-layout-content-container .base-layout-content-container-inner{flex:1 1 auto}seam-base-layout .base-layout-content-container .base-layout-content-container-footer{flex:0 0 auto}seam-base-layout .base-layout-content-container-header{margin:.25rem}seam-base-layout .btn-baselayout-action{margin:0 0 0 .25rem;color:#212529;background-color:#e9ecef;padding:.5rem 1rem;font-size:1rem;line-height:1.5;border-radius:.25rem;border:none;color:#6c757d}seam-base-layout .btn-baselayout-action:hover{color:#212529;background-color:#d3d9df;border-color:#cbd3da}seam-base-layout .btn-baselayout-action.focus,seam-base-layout .btn-baselayout-action:focus{color:#212529;background-color:#d3d9df;border-color:#cbd3da;box-shadow:0 0 0 .2rem hsla(210,6%,81%,.5)}seam-base-layout .btn-baselayout-action.disabled,seam-base-layout .btn-baselayout-action:disabled{color:#212529;background-color:#e9ecef;border-color:#e9ecef}.show>seam-base-layout .btn-baselayout-action.dropdown-toggle,seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled).active,seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled):active{color:#212529;background-color:#d3d9df;border-color:#c4ccd4}.show>seam-base-layout .btn-baselayout-action.dropdown-toggle:focus,seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled).active:focus,seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem hsla(210,6%,81%,.5)}seam-base-layout .btn-baselayout-action.focus,seam-base-layout .btn-baselayout-action:focus,seam-base-layout .btn-baselayout-action:hover{color:#6c757d}"]
102
+ styles: ["seam-base-layout{display:flex;flex-direction:column;height:100%;width:100%}seam-base-layout .base-layout-side-bar-nav-content-mobile{position:absolute;top:0;bottom:0;left:0;float:left;z-index:9999}seam-base-layout .base-layout-side-bar-container{flex:0 0 auto;display:flex;flex-direction:column}seam-base-layout .base-layout-side-bar-container .base-layout-side-bar-nav-content{flex:1 1 0}seam-base-layout .base-layout-main-container{flex:1 1 100%;display:flex;flex-direction:row;transform:translateZ(0)}seam-base-layout .base-layout-top-bar-container{flex:0 0 auto}seam-base-layout .base-layout-content-container{flex:1 1 auto;display:flex;flex-direction:column}seam-base-layout .base-layout-content-container .base-layout-content-container-header{flex:0 0 auto}seam-base-layout .base-layout-content-container .base-layout-content-container-inner{flex:1 1 auto}seam-base-layout .base-layout-content-container .base-layout-content-container-footer{flex:0 0 auto}seam-base-layout .base-layout-content-container-header{margin:.25rem}seam-base-layout .btn-baselayout-action{margin:0 0 0 .25rem;color:#212529;background-color:#e9ecef;border-color:#e9ecef;padding:.5rem 1rem;font-size:1rem;line-height:1.5;border-radius:.25rem;border:none;color:#6c757d}seam-base-layout .btn-baselayout-action:hover{color:#212529;background-color:#d3d9df;border-color:#cbd3da}seam-base-layout .btn-baselayout-action:focus,seam-base-layout .btn-baselayout-action.focus{color:#212529;background-color:#d3d9df;border-color:#cbd3da;box-shadow:0 0 0 .2rem #cbced180}seam-base-layout .btn-baselayout-action.disabled,seam-base-layout .btn-baselayout-action:disabled{color:#212529;background-color:#e9ecef;border-color:#e9ecef}seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled):active,seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled).active,.show>seam-base-layout .btn-baselayout-action.dropdown-toggle{color:#212529;background-color:#d3d9df;border-color:#c4ccd4}seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled):active:focus,seam-base-layout .btn-baselayout-action:not(:disabled):not(.disabled).active:focus,.show>seam-base-layout .btn-baselayout-action.dropdown-toggle:focus{box-shadow:0 0 0 .2rem #cbced180}seam-base-layout .btn-baselayout-action:hover{color:#6c757d}seam-base-layout .btn-baselayout-action:focus,seam-base-layout .btn-baselayout-action.focus{color:#6c757d}\n"]
103
103
  },] }
104
104
  ];
105
105
  TheSeamBaseLayoutComponent.ctorParameters = () => [
@@ -150,7 +150,7 @@ DashboardWidgetsComponent.decorators = [
150
150
  ],
151
151
  changeDetection: ChangeDetectionStrategy.OnPush,
152
152
  encapsulation: ViewEncapsulation.None,
153
- styles: ["seam-dashboard-widgets{display:flex;justify-content:center}seam-dashboard-widgets .dashboard-widgets-base{max-width:1410px}seam-dashboard-widgets .dashboard-widgets-list{flex-basis:400px;max-width:500px}seam-dashboard-widgets .dashboard-widgets-list.cdk-drop-list-dragging .dashboard-widgets-list-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.dashboard-widgets-list-item.cdk-drag-preview{box-sizing:border-box}.dashboard-widgets-list-item.cdk-drag-preview>div{border-radius:.25rem;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.dashboard-widgets-list-item.cdk-drag-disabled .cdk-drag-handle{cursor:default}.dashboard-widgets-list-item .cdk-drag-handle{cursor:move}.dashboard-widgets-list-item.cdk-drag-placeholder{opacity:0}.dashboard-widgets-list-item.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}"]
153
+ styles: ["seam-dashboard-widgets{display:flex;justify-content:center}seam-dashboard-widgets .dashboard-widgets-base{max-width:1410px}seam-dashboard-widgets .dashboard-widgets-list{flex-basis:400px;max-width:500px}seam-dashboard-widgets .dashboard-widgets-list.cdk-drop-list-dragging .dashboard-widgets-list-item:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.dashboard-widgets-list-item.cdk-drag-preview{box-sizing:border-box}.dashboard-widgets-list-item.cdk-drag-preview>div{border-radius:.25rem;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.dashboard-widgets-list-item.cdk-drag-disabled .cdk-drag-handle{cursor:default}.dashboard-widgets-list-item .cdk-drag-handle{cursor:move}.dashboard-widgets-list-item.cdk-drag-placeholder{opacity:0}.dashboard-widgets-list-item.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}\n"]
154
154
  },] }
155
155
  ];
156
156
  DashboardWidgetsComponent.ctorParameters = () => [
@@ -104,7 +104,7 @@ HierarchyRouterOutletComponent.decorators = [
104
104
  // contentLeave
105
105
  ],
106
106
  changeDetection: ChangeDetectionStrategy.OnPush,
107
- styles: [":host{display:block;height:100%}:host ::ng-deep router-outlet+*{background-color:#fff;height:100%}"]
107
+ styles: [":host{display:block;height:100%}:host ::ng-deep router-outlet+*{background-color:#fff;height:100%}\n"]
108
108
  },] }
109
109
  ];
110
110
  HierarchyRouterOutletComponent.ctorParameters = () => [
@@ -20,7 +20,7 @@ TheSeamSchemaFormInputComponent.decorators = [
20
20
  selector: 'seam-schema-form-input',
21
21
  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",
22
22
  changeDetection: ChangeDetectionStrategy.OnPush,
23
- styles: [":host{display:block}"]
23
+ styles: [":host{display:block}\n"]
24
24
  },] }
25
25
  ];
26
26
  TheSeamSchemaFormInputComponent.ctorParameters = () => [
@@ -26,7 +26,7 @@ TheSeamSchemaFormNumberComponent.decorators = [
26
26
  selector: 'seam-schema-form-number',
27
27
  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",
28
28
  changeDetection: ChangeDetectionStrategy.OnPush,
29
- styles: [":host{display:block}"]
29
+ styles: [":host{display:block}\n"]
30
30
  },] }
31
31
  ];
32
32
  TheSeamSchemaFormNumberComponent.ctorParameters = () => [
@@ -22,7 +22,7 @@ TheSeamSchemaFormSelectComponent.decorators = [
22
22
  selector: 'seam-schema-form-select',
23
23
  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 <ng-select seamInput\n [formControl]=\"$any(formControl)\"\n [ngClass]=\"options?.fieldHtmlClass\"\n [id]=\"'control' + layoutNode?._id\"\n [required]=\"options?.required\"\n [items]=\"selectList\"\n bindLabel=\"name\"\n bindValue=\"value\"\n [clearable]=\"false\"\n appendTo=\"body\"\n\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.placeholder]=\"options?.placeholder\"\n [attr.required]=\"options?.required\"\n [readonly]=\"options?.readonly ? true : false\">\n <ng-template ng-label-tmp let-item=\"item\">\n <span [innerHTML]=\"item.name\"></span>\n </ng-template>\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\">\n <span [innerHTML]=\"item.name\"></span>\n </ng-template>\n </ng-select>\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 <ng-select seamInput\n [ngClass]=\"options?.fieldHtmlClass\"\n [id]=\"'control' + layoutNode?._id\"\n [required]=\"options?.required\"\n [items]=\"selectList\"\n bindLabel=\"name\"\n bindValue=\"value\"\n [clearable]=\"false\"\n (change)=\"updateValue($event)\"\n appendTo=\"body\"\n\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.placeholder]=\"options?.placeholder\"\n [attr.required]=\"options?.required\"\n [readonly]=\"options?.readonly ? true : false\"\n [disabled]=\"controlDisabled\">\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\">\n <span [innerHTML]=\"item.name\"></span>\n </ng-template>\n </ng-select>\n</seam-form-field>\n",
24
24
  changeDetection: ChangeDetectionStrategy.OnPush,
25
- styles: [":host{display:block}"]
25
+ styles: [":host{display:block}\n"]
26
26
  },] }
27
27
  ];
28
28
  TheSeamSchemaFormSelectComponent.ctorParameters = () => [
@@ -128,7 +128,7 @@ TheSeamSchemaFormSubmitSplitComponent.decorators = [
128
128
  { type: Component, args: [{
129
129
  selector: 'seam-schema-form-submit-split',
130
130
  template: "<div\n [class]=\"options?.htmlClass || ''\">\n <div [class.btn-group]=\"_dropdownObj\">\n <button seamButton theme=\"primary\" type=\"submit\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [attr.required]=\"options?.required\"\n [class]=\"'btn btn-primary ' + (options?.fieldHtmlClass || '')\"\n [disabled]=\"controlDisabled\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [value]=\"controlValue\"\n (click)=\"updateValue($event)\">\n {{ _buttonLabel }}\n <span *ngIf=\"_selectedItem\">\n [{{ _selectedItem.name }}]\n </span>\n </button>\n <ng-container *ngIf=\"_dropdownObj\">\n <button\n [seamMenuToggle]=\"menu\" seamButton theme=\"primary\"\n class=\"dropdown-toggle dropdown-toggle-split\"\n [disabled]=\"_dropdownDisabled\">\n <span class=\"sr-only\">Toggle Dropdown</span>\n </button>\n <seam-menu #menu>\n <ng-container *ngFor=\"let item of _selectList\">\n <button seamMenuItem\n [class.active]=\"item.checked\"\n (click)=\"_setDropdownValue(item.value)\">\n {{ item.name }}\n </button>\n </ng-container>\n </seam-menu>\n </ng-container>\n </div>\n</div>\n",
131
- styles: [":host{display:block}"]
131
+ styles: [":host{display:block}\n"]
132
132
  },] }
133
133
  ];
134
134
  TheSeamSchemaFormSubmitSplitComponent.ctorParameters = () => [
@@ -80,7 +80,7 @@ export class SideNavItemComponent {
80
80
  SideNavItemComponent.decorators = [
81
81
  { type: Component, args: [{
82
82
  selector: 'seam-side-nav-item',
83
- template: "<div class=\"d-flex flex-row\">\n <ng-container *ngIf=\"itemType === 'basic'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeBasic\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'link'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeLink\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'divider'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeDivider\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'title'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeTitle\"></ng-template>\n </ng-container>\n</div>\n\n<ng-container *ngIf=\"hasChildren\">\n <div class=\"side-nav--group side-nav--group--level-{{ hierLevel + 1 }}\"\n [@childGroupAnim]=\"childGroupAnimState$ | async\">\n <seam-side-nav-item *ngFor=\"let child of children\"\n [hierLevel]=\"compact ? 0 : (hierLevel + 1)\"\n [compact]=\"compact\"\n [itemType]=\"$any(child).itemType\"\n [icon]=\"$any(child).icon\"\n [label]=\"$any(child).label\"\n [link]=\"$any(child).link\"\n [badgeText]=\"$any(child).badge?.text\"\n [badgeTheme]=\"$any(child).badge?.theme || 'danger'\"\n [badgeSrContent]=\"$any(child).badge?.srContent\"\n [queryParams]=\"$any(child).queryParams\"\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n [children]=\"$any(child)?.children\"\n [active]=\"$any(child).__state.active\"\n [expanded]=\"$any(child).__state.expanded\">\n </seam-side-nav-item>\n </div>\n</ng-container>\n\n<ng-template #itemTypeBasic>\n <button class=\"side-nav-item btn side-nav-btn p-0 d-flex flex-row rounded-0 text-decoration-none text-nowrap w-100\"\n cdkMonitorElementFocus\n (click)=\"toggleChildren()\"\n [attr.aria-expanded]=\"expanded\">\n <div class=\"nav-link d-flex flex-row w-100\" [class.pr-0]=\"compact\">\n <div [style.padding-left.px]=\"hierLevel * indentSize\"></div>\n <div class=\"side-nav-item--icon\">\n <seam-icon *ngIf=\"icon\" [icon]=\"icon\"></seam-icon>\n <ng-container *ngIf=\"compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n <!-- NOTE: This is temporarily formatted oddly while fixing animation. -->\n <span style=\"margin-left: 11px;\" [@compactAnim]=\"compactAnimState$ | async\">\n <span *ngIf=\"!compact\" side-nav-item-label>\n {{ label }}\n </span>\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" side-nav-item-label>{{ label }}</span>\n <ng-container *ngIf=\"!compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n\n <div *ngIf=\"hasChildren && !compact\"\n class=\"btn side-nav-btn side-nav-item--toggle-btn-container rounded-0\">\n <seam-icon\n class=\"side-nav-item--toggle-btn\"\n [class.side-nav-item--toggle-btn-expanded]=\"expanded\"\n [icon]=\"faAngleLeft\"\n type>\n </seam-icon>\n </div>\n </button>\n</ng-template>\n\n<ng-template #itemTypeLink>\n <a *ngIf=\"link; else noLink\" class=\"side-nav-item nav-link d-flex flex-row text-nowrap w-100 align-items-center\"\n [class.pr-0]=\"compact\"\n [routerLink]=\"link\"\n [queryParams]=\"queryParams\"\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n (click)=\"_linkClicked()\">\n <div [style.padding-left.px]=\"hierLevel * indentSize\"></div>\n <div class=\"side-nav-item--icon\">\n <seam-icon *ngIf=\"icon\" [icon]=\"icon\"></seam-icon>\n <ng-container *ngIf=\"compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n <span *ngIf=\"!compact\" style=\"margin-left: 11px;\" side-nav-item-label>\n {{ label }}\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" side-nav-item-label>{{ label }}</span>\n <ng-container *ngIf=\"!compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </a>\n\n <ng-template #noLink>\n <a class=\"side-nav-item nav-link d-flex flex-row text-nowrap w-100 align-items-center\" [class.pr-0]=\"compact\">\n <div [style.padding-left.px]=\"hierLevel * indentSize\"></div>\n <div class=\"side-nav-item--icon\">\n <seam-icon *ngIf=\"icon\" [icon]=\"icon\"></seam-icon>\n </div>\n <span *ngIf=\"!compact\" style=\"margin-left: 11px;\" side-nav-item-label>\n {{ label }}\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" side-nav-item-label>{{ label }}</span>\n </a>\n </ng-template>\n\n <button *ngIf=\"hasChildren && !compact\"\n type=\"button\"\n class=\"btn side-nav-btn side-nav-item--toggle-btn-container rounded-0\"\n (click)=\"toggleChildren()\"\n [attr.aria-expanded]=\"expanded\"\n cdkMonitorElementFocus>\n <seam-icon\n class=\"side-nav-item--toggle-btn\"\n [class.side-nav-item--toggle-btn-expanded]=\"expanded\"\n [icon]=\"faAngleLeft\"\n type>\n </seam-icon>\n <span class=\"sr-only\">Group Toggle</span>\n </button>\n</ng-template>\n\n<ng-template #itemTypeDivider>\n <div class=\"px-2 w-100\">\n <hr class=\"side-nav-item--divider\" />\n </div>\n</ng-template>\n\n<ng-template #itemTypeTitle>\n <ng-container *ngIf=\"!compact\">\n <span class=\"side-nav-item--title pt-1\" side-nav-item-label>{{ label }}</span>\n </ng-container>\n</ng-template>\n\n<ng-template #itemBadge>\n <div *ngIf=\"badgeText\"\n class=\"side-nav-item--badge\"\n [class.side-nav-item--badge-no-icon]=\"!icon\"\n [ngbTooltip]=\"$any(badgeTooltip)?.tooltip\"\n [tooltipClass]=\"$any(badgeTooltip)?.class\"\n [placement]=\"$any(badgeTooltip)?.placement\"\n [container]=\"$any(badgeTooltip)?.container\"\n [disableTooltip]=\"!badgeTooltip || !!$any(badgeTooltip)?.disabled\">\n <span class=\"badge badge-pill badge-{{ badgeTheme }}\">\n {{ badgeText }}\n <span *ngIf=\"badgeSrContent\">{{ badgeSrContent }}</span>\n </span>\n </div>\n</ng-template>\n",
83
+ template: "<div class=\"d-flex flex-row\">\n <ng-container *ngIf=\"itemType === 'basic'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeBasic\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'link'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeLink\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'divider'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeDivider\"></ng-template>\n </ng-container>\n <ng-container *ngIf=\"itemType === 'title'\">\n <ng-template [ngTemplateOutlet]=\"itemTypeTitle\"></ng-template>\n </ng-container>\n</div>\n\n<ng-container *ngIf=\"hasChildren\">\n <div class=\"side-nav--group side-nav--group--level-{{ hierLevel + 1 }}\"\n [@childGroupAnim]=\"childGroupAnimState$ | async\">\n <seam-side-nav-item *ngFor=\"let child of children\"\n [hierLevel]=\"compact ? 0 : (hierLevel + 1)\"\n [compact]=\"compact\"\n [itemType]=\"$any(child).itemType\"\n [icon]=\"$any(child).icon\"\n [label]=\"$any(child).label\"\n [link]=\"$any(child).link\"\n [badgeText]=\"$any(child).badge?.text\"\n [badgeTheme]=\"$any(child).badge?.theme || 'danger'\"\n [badgeSrContent]=\"$any(child).badge?.srContent\"\n [badgeTooltip]=\"$any(child)?.badge?.tooltip\"\n [queryParams]=\"$any(child).queryParams\"\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n [children]=\"$any(child)?.children\"\n [active]=\"$any(child).__state.active\"\n [expanded]=\"$any(child).__state.expanded\">\n </seam-side-nav-item>\n </div>\n</ng-container>\n\n<ng-template #itemTypeBasic>\n <button class=\"side-nav-item btn side-nav-btn p-0 d-flex flex-row rounded-0 text-decoration-none text-nowrap w-100\"\n cdkMonitorElementFocus\n (click)=\"toggleChildren()\"\n [attr.aria-expanded]=\"expanded\">\n <div class=\"nav-link d-flex flex-row w-100\" [class.nav-link__compact]=\"compact\">\n <div [style.padding-left.px]=\"hierLevel * indentSize\"></div>\n <div class=\"side-nav-item--icon\">\n <seam-icon *ngIf=\"icon\" [icon]=\"icon\"></seam-icon>\n <ng-container *ngIf=\"compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n <span *ngIf=\"!compact\" side-nav-item-label style=\"margin-left: 11px;\">\n {{ label }}\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" side-nav-item-label>{{ label }}</span>\n <ng-container *ngIf=\"!compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n\n <div *ngIf=\"hasChildren && !compact\"\n class=\"btn side-nav-btn side-nav-item--toggle-btn-container rounded-0\">\n <seam-icon\n class=\"side-nav-item--toggle-btn\"\n [class.side-nav-item--toggle-btn-expanded]=\"expanded\"\n [icon]=\"faAngleLeft\"\n type>\n </seam-icon>\n </div>\n </button>\n</ng-template>\n\n<ng-template #itemTypeLink>\n <a *ngIf=\"link; else noLink\" class=\"side-nav-item nav-link d-flex flex-row text-nowrap w-100 align-items-center\"\n [class.nav-link__compact]=\"compact\"\n [routerLink]=\"link\"\n [queryParams]=\"queryParams\"\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n (click)=\"_linkClicked()\">\n <div [style.padding-left.px]=\"hierLevel * indentSize\"></div>\n <div class=\"side-nav-item--icon\">\n <seam-icon *ngIf=\"icon\" [icon]=\"icon\"></seam-icon>\n <ng-container *ngIf=\"compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </div>\n <span *ngIf=\"!compact\" style=\"margin-left: 11px;\" side-nav-item-label>\n {{ label }}\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" side-nav-item-label>{{ label }}</span>\n <ng-container *ngIf=\"!compact\">\n <ng-template [ngTemplateOutlet]=\"itemBadge\"></ng-template>\n </ng-container>\n </a>\n\n <ng-template #noLink>\n <a class=\"side-nav-item nav-link d-flex flex-row text-nowrap w-100 align-items-center\" [class.nav-link__compact]=\"compact\">\n <div [style.padding-left.px]=\"hierLevel * indentSize\"></div>\n <div class=\"side-nav-item--icon\">\n <seam-icon *ngIf=\"icon\" [icon]=\"icon\"></seam-icon>\n </div>\n <span *ngIf=\"!compact\" style=\"margin-left: 11px;\" side-nav-item-label>\n {{ label }}\n </span>\n <span *ngIf=\"compact\" class=\"sr-only\" side-nav-item-label>{{ label }}</span>\n </a>\n </ng-template>\n\n <button *ngIf=\"hasChildren && !compact\"\n type=\"button\"\n class=\"btn side-nav-btn side-nav-item--toggle-btn-container rounded-0\"\n (click)=\"toggleChildren()\"\n [attr.aria-expanded]=\"expanded\"\n cdkMonitorElementFocus>\n <seam-icon\n class=\"side-nav-item--toggle-btn\"\n [class.side-nav-item--toggle-btn-expanded]=\"expanded\"\n [icon]=\"faAngleLeft\"\n type>\n </seam-icon>\n <span class=\"sr-only\">Group Toggle</span>\n </button>\n</ng-template>\n\n<ng-template #itemTypeDivider>\n <div class=\"px-2 w-100\">\n <hr class=\"side-nav-item--divider\" />\n </div>\n</ng-template>\n\n<ng-template #itemTypeTitle>\n <ng-container *ngIf=\"!compact\">\n <span class=\"side-nav-item--title pt-1\" side-nav-item-label>{{ label }}</span>\n </ng-container>\n</ng-template>\n\n<ng-template #itemBadge>\n <ng-container *ngIf=\"badgeText\">\n <div class=\"badge-spacer flex-grow-1\" *ngIf=\"!compact\"></div>\n <div class=\"side-nav-item--badge\"\n [class.side-nav-item--badge-no-icon]=\"!icon\"\n [ngbTooltip]=\"$any(badgeTooltip)?.tooltip\"\n [tooltipClass]=\"$any(badgeTooltip)?.class\"\n [placement]=\"$any(badgeTooltip)?.placement\"\n [container]=\"$any(badgeTooltip)?.container\"\n [disableTooltip]=\"!badgeTooltip || !!$any(badgeTooltip)?.disabled\">\n <span class=\"badge badge-pill badge-{{ badgeTheme }}\">\n <ng-container *ngIf=\"!compact || !icon\">\n {{ badgeText }}\n </ng-container>\n <span *ngIf=\"badgeSrContent\">{{ badgeSrContent }}</span>\n </span>\n </div>\n </ng-container>\n</ng-template>\n",
84
84
  exportAs: 'seamSideNavItem',
85
85
  animations: [
86
86
  trigger('childGroupAnim', [
@@ -113,7 +113,7 @@ SideNavItemComponent.decorators = [
113
113
  ],
114
114
  changeDetection: ChangeDetectionStrategy.OnPush,
115
115
  encapsulation: ViewEncapsulation.None,
116
- styles: ["seam-side-nav-item{display:block;transition:background-color .25s ease-in-out}seam-side-nav-item.seam-side-nav-item--active,seam-side-nav-item.seam-side-nav-item--active .active,seam-side-nav-item.seam-side-nav-item--active:active{background-color:#2a6395}seam-side-nav-item.seam-side-nav-item--active .side-nav-item:hover{background-color:#2f71a9}seam-side-nav-item.seam-side-nav-item--active .nav-link{color:#fff}seam-side-nav-item:not(.side-nav-item--icon) .side-nav-item--badge{top:-10px;position:relative;margin-left:5px}seam-side-nav-item .side-nav-item--icon{width:24px;max-width:24px;min-width:24px;height:24px;max-height:24px;min-height:24px;text-align:center}seam-side-nav-item .side-nav-item--icon .side-nav-item--badge{top:-35px;right:-12px;position:relative}seam-side-nav-item .side-nav-item--icon .side-nav-item--badge.side-nav-item--badge-no-icon{top:-13px}seam-side-nav-item .side-nav-item{min-height:45px;transition:background-color .25s ease-in-out}seam-side-nav-item .side-nav-item:hover{background-color:#2f71a9}seam-side-nav-item .side-nav-item.active{pointer-events:none;cursor:default}seam-side-nav-item a.side-nav-item:not([href]):not([tabindex]){color:#ccc}seam-side-nav-item a.side-nav-item:not([href]):not([tabindex]):hover{background-color:transparent}seam-side-nav-item .nav-link{color:#fff}seam-side-nav-item .side-nav-btn{font-weight:400;color:#fff;text-decoration:none}seam-side-nav-item .side-nav-btn:hover{color:#2f71a9;text-decoration:underline}seam-side-nav-item .side-nav-btn.focus,seam-side-nav-item .side-nav-btn:focus{text-decoration:underline;box-shadow:none}seam-side-nav-item .side-nav-btn.disabled,seam-side-nav-item .side-nav-btn:disabled{color:#ccc;pointer-events:none}seam-side-nav-item .cdk-keyboard-focused{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}seam-side-nav-item .side-nav-item--toggle-btn-container{transition:background-color .25s ease-in-out;padding:.5rem 1rem}seam-side-nav-item button.side-nav-item--toggle-btn-container:hover{background-color:#2f71a9}seam-side-nav-item .side-nav-item--toggle-btn{color:#fff}seam-side-nav-item .side-nav-item--toggle-btn .svg-inline--fa{transition:transform .1s ease-in-out}seam-side-nav-item .side-nav-item--toggle-btn.side-nav-item--toggle-btn-expanded .svg-inline--fa{transform:rotate(-90deg)}seam-side-nav-item .side-nav--group{will-change:height;overflow:hidden}seam-side-nav-item .side-nav--group--level-1{background-color:#3276b1}seam-side-nav-item .side-nav--group--level-2{background-color:#2e6ea5}seam-side-nav-item .side-nav--group--level-3{background-color:#2b6699}seam-side-nav-item .side-nav--group--level-4{background-color:#285e8d}seam-side-nav-item .side-nav--group--level-5{background-color:#245681}seam-side-nav-item .side-nav--group--level-6{background-color:#214e75}seam-side-nav-item .side-nav--group--level-7{background-color:#1e4669}seam-side-nav-item .side-nav--group--level-8{background-color:#1a3e5d}seam-side-nav-item .side-nav--group--level-9{background-color:#173651}seam-side-nav-item .side-nav-item--divider{display:block;border-top:1px solid #2a6395;width:100%}seam-side-nav-item .side-nav-item--title{color:#fff;font-size:24px;padding-left:10px}"]
116
+ styles: ["seam-side-nav-item{display:block;transition:.25s ease-in-out background-color}seam-side-nav-item.seam-side-nav-item--active{background-color:#2a6395}seam-side-nav-item.seam-side-nav-item--active .active,seam-side-nav-item.seam-side-nav-item--active:active,seam-side-nav-item.seam-side-nav-item--active .side-nav-item.active:hover{background-color:#2a6395}seam-side-nav-item.seam-side-nav-item--active .side-nav-item:hover{background-color:#2f71a9}seam-side-nav-item.seam-side-nav-item--active .nav-link{color:#fff}seam-side-nav-item .badge{vertical-align:middle}seam-side-nav-item:not(.side-nav-item--icon) .side-nav-item--badge{pointer-events:all;margin-left:5px;margin-right:3px}seam-side-nav-item .side-nav-item--icon{position:relative;width:24px;max-width:24px;min-width:24px;height:24px;max-height:24px;min-height:24px;text-align:center}seam-side-nav-item .side-nav-item--icon .side-nav-item--badge{top:-4px;right:-4px;position:absolute}seam-side-nav-item .side-nav-item--icon .side-nav-item--badge .badge:empty{display:block;width:8px;height:8px;padding:0}seam-side-nav-item .side-nav-item--icon .side-nav-item--badge.side-nav-item--badge-no-icon{top:0px;right:0px}seam-side-nav-item .side-nav-item{min-height:45px;transition:.25s ease-in-out background-color}seam-side-nav-item .side-nav-item:hover{background-color:#2f71a9}seam-side-nav-item .side-nav-item.active{pointer-events:none;cursor:default}seam-side-nav-item a.side-nav-item:not([href]):not([tabindex]){color:#ccc}seam-side-nav-item a.side-nav-item:not([href]):not([tabindex]):hover{background-color:transparent}seam-side-nav-item .nav-link{color:#fff;padding-right:2px}seam-side-nav-item .nav-link__compact{padding-right:0;padding-left:12px}seam-side-nav-item .nav-link:last-child{padding-right:8px}seam-side-nav-item .side-nav-btn{font-weight:400;color:#fff;text-decoration:none}seam-side-nav-item .side-nav-btn:hover{color:#2f71a9;text-decoration:underline}seam-side-nav-item .side-nav-btn:focus,seam-side-nav-item .side-nav-btn.focus{text-decoration:underline;box-shadow:none}seam-side-nav-item .side-nav-btn:disabled,seam-side-nav-item .side-nav-btn.disabled{color:#ccc;pointer-events:none}seam-side-nav-item .cdk-keyboard-focused{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}seam-side-nav-item .side-nav-item--toggle-btn-container{transition:.25s ease-in-out background-color;padding:.5rem 1rem}seam-side-nav-item button.side-nav-item--toggle-btn-container:hover{background-color:#2f71a9}seam-side-nav-item .side-nav-item--toggle-btn{color:#fff}seam-side-nav-item .side-nav-item--toggle-btn .svg-inline--fa{transition:.1s ease-in-out transform}seam-side-nav-item .side-nav-item--toggle-btn.side-nav-item--toggle-btn-expanded .svg-inline--fa{transform:rotate(-90deg)}seam-side-nav-item .side-nav--group{will-change:height;overflow:hidden}seam-side-nav-item .side-nav--group--level-1{background-color:#3276b1}seam-side-nav-item .side-nav--group--level-2{background-color:#2e6ea5}seam-side-nav-item .side-nav--group--level-3{background-color:#2b6699}seam-side-nav-item .side-nav--group--level-4{background-color:#285e8d}seam-side-nav-item .side-nav--group--level-5{background-color:#245681}seam-side-nav-item .side-nav--group--level-6{background-color:#214e75}seam-side-nav-item .side-nav--group--level-7{background-color:#1e4669}seam-side-nav-item .side-nav--group--level-8{background-color:#1a3e5d}seam-side-nav-item .side-nav--group--level-9{background-color:#173651}seam-side-nav-item .side-nav-item--divider{display:block;border-top:1px solid #2a6395;width:100%}seam-side-nav-item .side-nav-item--title{color:#fff;font-size:24px;padding-left:10px}seam-side-nav-item .sr-only{top:0;left:0}\n"]
117
117
  },] }
118
118
  ];
119
119
  SideNavItemComponent.ctorParameters = () => [
@@ -148,4 +148,4 @@ __decorate([
148
148
  __decorate([
149
149
  InputNumber(10)
150
150
  ], SideNavItemComponent.prototype, "indentSize", void 0);
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXYtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZnJhbWV3b3JrL3NpZGUtbmF2L3NpZGUtbmF2LWl0ZW0vc2lkZS1uYXYtaXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxPQUFPLEVBRVAsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxHQUNSLE1BQU0scUJBQXFCLENBQUE7QUFDNUIsT0FBTyxFQUFnQixxQkFBcUIsRUFBZSxNQUFNLHVCQUF1QixDQUFBO0FBQ3hGLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULElBQUksRUFDSixXQUFXLEVBQ1gsS0FBSyxFQUVMLFFBQVEsRUFDUixRQUFRLEVBQ1IsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzNELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFFL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUluRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQVd4RCxNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUE7QUFDakMsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFBO0FBRW5DLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQTtBQUN6QixNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUE7QUE0Qy9CLE1BQU0sT0FBTyxvQkFBb0I7SUFxRi9CLFlBQ21CLFFBQTBCLEVBQ00sT0FBOEI7UUFEOUQsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFDTSxZQUFPLEdBQVAs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O3dEQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFuaW1hdGUsXG4gIHF1ZXJ5LFxuICBzdGF0ZSxcbiAgc3R5bGUsXG4gIHRyYW5zaXRpb24sXG4gIHRyaWdnZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgTnVtYmVySW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBIb3N0LFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFNraXBTZWxmLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBmYUFuZ2xlTGVmdCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucydcblxuaW1wb3J0IHsgSW5wdXRCb29sZWFuLCBJbnB1dE51bWJlciB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9jb3JlJ1xuaW1wb3J0IHR5cGUgeyBTZWFtSWNvbiB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9pY29uJ1xuaW1wb3J0IHR5cGUgeyBUaGVtZVR5cGVzIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL21vZGVscydcblxuaW1wb3J0IHsgU2lkZU5hdkNvbXBvbmVudCB9IGZyb20gJy4uL3NpZGUtbmF2LmNvbXBvbmVudCdcbmltcG9ydCB7IElTaWRlTmF2SXRlbSB9IGZyb20gJy4uL3NpZGUtbmF2Lm1vZGVscydcblxuZXhwb3J0IGludGVyZmFjZSBTaWRlTmF2SXRlbUJhZGdlVG9vbHRpcCB7XG4gIHRvb2x0aXA/OiBzdHJpbmdcbiAgY2xhc3M/OiBzdHJpbmdcbiAgcGxhY2VtZW50Pzogc3RyaW5nXG4gIGNvbnRhaW5lcj86IHN0cmluZ1xuICBkaXNhYmxlZD86IGJvb2xlYW5cbn1cblxuY29uc3QgRVhQQU5ERURfU1RBVEUgPSAnZXhwYW5kZWQnXG5jb25zdCBDT0xMQVBTRURfU1RBVEUgPSAnY29sbGFwc2VkJ1xuXG5jb25zdCBGVUxMX1NUQVRFID0gJ2Z1bGwnXG5jb25zdCBDT01QQUNUX1NUQVRFID0gJ2NvbXBhY3QnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0tc2lkZS1uYXYtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlLW5hdi1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2lkZS1uYXYtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICBleHBvcnRBczogJ3NlYW1TaWRlTmF2SXRlbScsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdjaGlsZEdyb3VwQW5pbScsIFtcbiAgICAgIHN0YXRlKEVYUEFOREVEX1NUQVRFLCBzdHlsZSh7IGhlaWdodDogJyonIH0pKSxcbiAgICAgIHN0YXRlKENPTExBUFNFRF9TVEFURSwgc3R5bGUoeyBoZWlnaHQ6IDAsICdvdmVyZmxvdy15JzogJ2hpZGRlbicsIHZpc2liaWxpdHk6ICdoaWRkZW4nIH0pKSxcbiAgICAgIHRyYW5zaXRpb24oYCR7RVhQQU5ERURfU1RBVEV9IDw9PiAke0NPTExBUFNFRF9TVEFURX1gLCBhbmltYXRlKCcwLjJzIGVhc2UtaW4tb3V0JykpLFxuICAgIF0pLFxuXG5cbiAgICB0cmlnZ2VyKCdjb21wYWN0QW5pbScsIFtcbiAgICAgIC8vIHRyYW5zaXRpb24oJyogPD0+IConLCBbXG4gICAgICAvLyAgIHF1ZXJ5KCc6ZW50ZXInLCBbXG4gICAgICAvLyAgICAgc3R5bGUoeyBvcGFjaXR5OiAnMCcgfSksXG4gICAgICAvLyAgICAgYW5pbWF0ZSgnNS4ycyBlYXNlLWluLW91dCcsIHN0eWxlKHsgb3BhY2l0eTogJzEnIH0pKVxuICAgICAgLy8gICBdLCB7IG9wdGlvbmFsOiB0cnVlIH0pLFxuICAgICAgLy8gICBxdWVyeSgnOmxlYXZlJywgW1xuICAgICAgLy8gICAgIHN0eWxlKHsgb3BhY2l0eTogJzEnIH0pLFxuICAgICAgLy8gICAgIGFuaW1hdGUoJzUuMnMgZWFzZS1pbi1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6ICcwJyB9KSlcbiAgICAgIC8vICAgXSwgeyBvcHRpb25hbDogdHJ1ZSB9KVxuICAgICAgLy8gXSlcblxuICAgICAgLy8gc3RhdGUoRlVMTF9TVEFURSwgc3R5bGUoeyBvcGFjaXR5OiAnMScgfSkpLFxuICAgICAgLy8gc3RhdGUoQ09NUEFDVF9TVEFURSwgc3R5bGUoeyBvcGFjaXR5OiAnMCcgfSkpLFxuICAgICAgLy8gdHJhbnNpdGlvbihgJHtGVUxMX1NUQVRFfSA8PT4gJHtDT01QQUNUX1NUQVRFfWAsIGFuaW1hdGUoJzUuMnMgZWFzZS1pbi1vdXQnKSksXG4gICAgICAvLyB0cmFuc2l0aW9uKGAke0ZVTExfU1RBVEV9IDw9PiAke0NPTVBBQ1RfU1RBVEV9YCwgW1xuICAgICAgLy8gdHJhbnNpdGlvbignKiA8PT4gKicsIFtcbiAgICAgIC8vICAgcXVlcnkoJzpsZWF2ZScsIFtcbiAgICAgIC8vICAgICBzdHlsZSh7IG9wYWNpdHk6ICcxJyB9KSxcbiAgICAgIC8vICAgICBhbmltYXRlKCc1LjJzIGVhc2UtaW4tb3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAnMCcgfSkpXG4gICAgICAvLyAgIF0sIHsgb3B0aW9uYWw6IHRydWUgfSlcbiAgICAgIC8vIF0pLFxuXG5cbiAgICBdKVxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTaWRlTmF2SXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9oaWVyTGV2ZWw6IE51bWJlcklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9pbmRlbnRTaXplOiBOdW1iZXJJbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZXhwYW5kZWQ6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfY29tcGFjdDogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9hY3RpdmU6IEJvb2xlYW5JbnB1dFxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpXG5cbiAgcmVhZG9ubHkgZmFBbmdsZUxlZnQgPSBmYUFuZ2xlTGVmdFxuXG4gIEBJbnB1dCgpIGl0ZW1UeXBlOiAnZGl2aWRlcicgfCAnYmFzaWMnIHwgJ2xpbmsnIHwgJ2J1dHRvbicgfCAndGl0bGUnIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIEBJbnB1dCgpIGljb246IFNlYW1JY29uIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlXG5cbiAgQElucHV0KClcbiAgc2V0IGxpbmsodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwpIHsgdGhpcy5fbGluay5uZXh0KHZhbHVlKSB9XG4gIGdldCBsaW5rKCkgeyByZXR1cm4gdGhpcy5fbGluay52YWx1ZSB9XG4gIHByaXZhdGUgcmVhZG9ubHkgX2xpbmsgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw+KHVuZGVmaW5lZClcbiAgcHVibGljIHJlYWRvbmx5IGxpbmskID0gdGhpcy5fbGluay5hc09ic2VydmFibGUoKVxuXG4gIEBJbnB1dCgpIHF1ZXJ5UGFyYW1zOiB7IFtrOiBzdHJpbmddOiBhbnkgfSB8IHVuZGVmaW5lZCB8IG51bGxcblxuICBASW5wdXQoKSBjaGlsZHJlbjogSVNpZGVOYXZJdGVtW10gfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KCkgQElucHV0TnVtYmVyKDApIGhpZXJMZXZlbDogbnVtYmVyID0gMFxuXG4gIEBJbnB1dCgpIEBJbnB1dE51bWJlcigxMCkgaW5kZW50U2l6ZTogbnVtYmVyID0gMTBcblxuICBASW5wdXQoKVxuICBzZXQgZXhwYW5kZWQodmFsdWU6IGJvb2xlYW4pIHsgdGhpcy5fZXhwYW5kZWQubmV4dChjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpKSB9XG4gIGdldCBleHBhbmRlZCgpIHsgcmV0dXJuIHRoaXMuX2V4cGFuZGVkLnZhbHVlIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfZXhwYW5kZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKVxuICBwdWJsaWMgcmVhZG9ubHkgZXhwYW5kZWQkID0gdGhpcy5fZXhwYW5kZWQuYXNPYnNlcnZhYmxlKClcblxuICBASW5wdXQoKVxuICBzZXQgY29tcGFjdCh2YWx1ZTogYm9vbGVhbikgeyB0aGlzLl9jb21wYWN0Lm5leHQoY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKSkgfVxuICBnZXQgY29tcGFjdCgpIHsgcmV0dXJuIHRoaXMuX2NvbXBhY3QudmFsdWUgfVxuICBwcml2YXRlIHJlYWRvbmx5IF9jb21wYWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSlcbiAgcHVibGljIHJlYWRvbmx5IGNvbXBhY3QkID0gdGhpcy5fY29tcGFjdC5hc09ic2VydmFibGUoKVxuXG4gIEBJbnB1dCgpIGJhZGdlVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbFxuICBASW5wdXQoKSBiYWRnZVRoZW1lOiBUaGVtZVR5cGVzIHwgdW5kZWZpbmVkIHwgbnVsbCA9ICdkYW5nZXInXG5cbiAgLyoqXG4gICAqIENvbnRlbnQgdG8gcHJvdmlkZSB0byBhc3Npc3RpdmUgdGVjaG5vbG9neSwgc3VjaCBhcyBzY3JlZW4gcmVhZGVycy5cbiAgICovXG4gIEBJbnB1dCgpIGJhZGdlU3JDb250ZW50OiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KClcbiAgZ2V0IGJhZGdlVG9vbHRpcCgpIHsgcmV0dXJuIHRoaXMuX2JhZGdlVG9vbHRpcCB9XG4gIHNldCBiYWRnZVRvb2x0aXAodmFsdWU6IHN0cmluZyB8IFNpZGVOYXZJdGVtQmFkZ2VUb29sdGlwIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLl9iYWRnZVRvb2x0aXAgPSB7XG4gICAgICAgICAgdG9vbHRpcDogdmFsdWUsXG4gICAgICAgICAgcGxhY2VtZW50OiAnYXV0bycsXG4gICAgICAgICAgZGlzYWJsZWQ6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2JhZGdlVG9vbHRpcCA9IHtcbiAgICAgICAgICAuLi52YWx1ZSxcbiAgICAgICAgICBwbGFjZW1lbnQ6IHZhbHVlLnBsYWNlbWVudCB8fCAnYXV0bycsXG4gICAgICAgICAgZGlzYWJsZWQ6IHR5cGVvZiB2YWx1ZT8uZGlzYWJsZWQgPT09ICdib29sZWFuJ1xuICAgICAgICAgICAgPyB2YWx1ZS5kaXNhYmxlZFxuICAgICAgICAgICAgOiB0eXBlb2YgdmFsdWUudG9vbHRpcCA9PT0gJ3N0cmluZycgPyBmYWxzZSA6IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9iYWRnZVRvb2x0aXAgPSB1bmRlZmluZWRcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfYmFkZ2VUb29sdGlwOiBTaWRlTmF2SXRlbUJhZGdlVG9vbHRpcCB8IHVuZGVmaW5lZCB8IG51bGxcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNlYW0tc2lkZS1uYXYtaXRlbS0tYWN0aXZlJykgZ2V0IF9pc0FjdGl2ZUNzc0NsYXNzKCkgeyByZXR1cm4gdGhpcy5hY3RpdmUgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWhpZXItbGV2ZWwnKSBnZXQgX2F0dHJEYXRhSGllckxldmVsKCkgeyByZXR1cm4gdGhpcy5oaWVyTGV2ZWwgfVxuXG4gIHB1YmxpYyByZWFkb25seSBjaGlsZEdyb3VwQW5pbVN0YXRlJDogT2JzZXJ2YWJsZTxzdHJpbmc+XG4gIHB1YmxpYyByZWFkb25seSBjb21wYWN0QW5pbVN0YXRlJDogT2JzZXJ2YWJsZTxzdHJpbmc+XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfc2lkZU5hdjogU2lkZU5hdkNvbXBvbmVudCxcbiAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIHByaXZhdGUgcmVhZG9ubHkgX3BhcmVudD86IFNpZGVOYXZJdGVtQ29tcG9uZW50XG4gICkge1xuICAgIHRoaXMuY2hpbGRHcm91cEFuaW1TdGF0ZSQgPSB0aGlzLmV4cGFuZGVkJFxuICAgICAgLnBpcGUobWFwKGV4cGFuZGVkID0+IGV4cGFuZGVkID8gRVhQQU5ERURfU1RBVEUgOiBDT0xMQVBTRURfU1RBVEUpKVxuXG4gICAgdGhpcy5jb21wYWN0QW5pbVN0YXRlJCA9IHRoaXMuY29tcGFjdCRcbiAgICAgIC5waXBlKG1hcChjb21wYWN0ID0+IGNvbXBhY3QgPyBDT01QQUNUX1NUQVRFIDogRlVMTF9TVEFURSkpXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLm5leHQoKVxuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUuY29tcGxldGUoKVxuICB9XG5cbiAgZ2V0IGhhc0NoaWxkcmVuKCkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMuY2hpbGRyZW4pICYmIHRoaXMuY2hpbGRyZW4ubGVuZ3RoID4gMFxuICB9XG5cbiAgcHVibGljIHRvZ2dsZUNoaWxkcmVuKCk6IHZvaWQge1xuICAgIHRoaXMuZXhwYW5kZWQgPSAhdGhpcy5leHBhbmRlZFxuICB9XG5cbiAgX2xpbmtDbGlja2VkKCkge1xuICAgIC8vIENsb3NlIG5hdiB3aGVuIGxpbmsgaXMgY2xpY2tlZCB3aGlsZSBpbiBvdmVybGF5IHN0YXRlXG4gICAgaWYgKHRoaXMuX3NpZGVOYXYub3ZlcmxheSkge1xuICAgICAgdGhpcy5fc2lkZU5hdi5jb2xsYXBzZSgpXG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1uYXYtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZnJhbWV3b3JrL3NpZGUtbmF2L3NpZGUtbmF2LWl0ZW0vc2lkZS1uYXYtaXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxPQUFPLEVBRVAsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxHQUNSLE1BQU0scUJBQXFCLENBQUE7QUFDNUIsT0FBTyxFQUFnQixxQkFBcUIsRUFBZSxNQUFNLHVCQUF1QixDQUFBO0FBQ3hGLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULElBQUksRUFDSixXQUFXLEVBQ1gsS0FBSyxFQUVMLFFBQVEsRUFDUixRQUFRLEVBQ1IsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzNELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFFL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQUluRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQVd4RCxNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUE7QUFDakMsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFBO0FBRW5DLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQTtBQUN6QixNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUE7QUE0Qy9CLE1BQU0sT0FBTyxvQkFBb0I7SUFxRi9CLFlBQ21CLFFBQTBCLEVBQ00sT0FBOEI7UUFEOUQsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFDTSxZQUFPLEdBQVAs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O3dEQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFuaW1hdGUsXG4gIHF1ZXJ5LFxuICBzdGF0ZSxcbiAgc3R5bGUsXG4gIHRyYW5zaXRpb24sXG4gIHRyaWdnZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgTnVtYmVySW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBIb3N0LFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFNraXBTZWxmLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBmYUFuZ2xlTGVmdCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucydcblxuaW1wb3J0IHsgSW5wdXRCb29sZWFuLCBJbnB1dE51bWJlciB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9jb3JlJ1xuaW1wb3J0IHR5cGUgeyBTZWFtSWNvbiB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9pY29uJ1xuaW1wb3J0IHR5cGUgeyBUaGVtZVR5cGVzIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL21vZGVscydcblxuaW1wb3J0IHsgU2lkZU5hdkNvbXBvbmVudCB9IGZyb20gJy4uL3NpZGUtbmF2LmNvbXBvbmVudCdcbmltcG9ydCB7IElTaWRlTmF2SXRlbSB9IGZyb20gJy4uL3NpZGUtbmF2Lm1vZGVscydcblxuZXhwb3J0IGludGVyZmFjZSBTaWRlTmF2SXRlbUJhZGdlVG9vbHRpcCB7XG4gIHRvb2x0aXA/OiBzdHJpbmdcbiAgY2xhc3M/OiBzdHJpbmdcbiAgcGxhY2VtZW50Pzogc3RyaW5nXG4gIGNvbnRhaW5lcj86IHN0cmluZ1xuICBkaXNhYmxlZD86IGJvb2xlYW5cbn1cblxuY29uc3QgRVhQQU5ERURfU1RBVEUgPSAnZXhwYW5kZWQnXG5jb25zdCBDT0xMQVBTRURfU1RBVEUgPSAnY29sbGFwc2VkJ1xuXG5jb25zdCBGVUxMX1NUQVRFID0gJ2Z1bGwnXG5jb25zdCBDT01QQUNUX1NUQVRFID0gJ2NvbXBhY3QnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0tc2lkZS1uYXYtaXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlLW5hdi1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2lkZS1uYXYtaXRlbS5jb21wb25lbnQuc2NzcyddLFxuICBleHBvcnRBczogJ3NlYW1TaWRlTmF2SXRlbScsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdjaGlsZEdyb3VwQW5pbScsIFtcbiAgICAgIHN0YXRlKEVYUEFOREVEX1NUQVRFLCBzdHlsZSh7IGhlaWdodDogJyonIH0pKSxcbiAgICAgIHN0YXRlKENPTExBUFNFRF9TVEFURSwgc3R5bGUoeyBoZWlnaHQ6IDAsICdvdmVyZmxvdy15JzogJ2hpZGRlbicsIHZpc2liaWxpdHk6ICdoaWRkZW4nIH0pKSxcbiAgICAgIHRyYW5zaXRpb24oYCR7RVhQQU5ERURfU1RBVEV9IDw9PiAke0NPTExBUFNFRF9TVEFURX1gLCBhbmltYXRlKCcwLjJzIGVhc2UtaW4tb3V0JykpLFxuICAgIF0pLFxuXG5cbiAgICB0cmlnZ2VyKCdjb21wYWN0QW5pbScsIFtcbiAgICAgIC8vIHRyYW5zaXRpb24oJyogPD0+IConLCBbXG4gICAgICAvLyAgIHF1ZXJ5KCc6ZW50ZXInLCBbXG4gICAgICAvLyAgICAgc3R5bGUoeyBvcGFjaXR5OiAnMCcgfSksXG4gICAgICAvLyAgICAgYW5pbWF0ZSgnNS4ycyBlYXNlLWluLW91dCcsIHN0eWxlKHsgb3BhY2l0eTogJzEnIH0pKVxuICAgICAgLy8gICBdLCB7IG9wdGlvbmFsOiB0cnVlIH0pLFxuICAgICAgLy8gICBxdWVyeSgnOmxlYXZlJywgW1xuICAgICAgLy8gICAgIHN0eWxlKHsgb3BhY2l0eTogJzEnIH0pLFxuICAgICAgLy8gICAgIGFuaW1hdGUoJzUuMnMgZWFzZS1pbi1vdXQnLCBzdHlsZSh7IG9wYWNpdHk6ICcwJyB9KSlcbiAgICAgIC8vICAgXSwgeyBvcHRpb25hbDogdHJ1ZSB9KVxuICAgICAgLy8gXSlcblxuICAgICAgLy8gc3RhdGUoRlVMTF9TVEFURSwgc3R5bGUoeyBvcGFjaXR5OiAnMScgfSkpLFxuICAgICAgLy8gc3RhdGUoQ09NUEFDVF9TVEFURSwgc3R5bGUoeyBvcGFjaXR5OiAnMCcgfSkpLFxuICAgICAgLy8gdHJhbnNpdGlvbihgJHtGVUxMX1NUQVRFfSA8PT4gJHtDT01QQUNUX1NUQVRFfWAsIGFuaW1hdGUoJzUuMnMgZWFzZS1pbi1vdXQnKSksXG4gICAgICAvLyB0cmFuc2l0aW9uKGAke0ZVTExfU1RBVEV9IDw9PiAke0NPTVBBQ1RfU1RBVEV9YCwgW1xuICAgICAgLy8gdHJhbnNpdGlvbignKiA8PT4gKicsIFtcbiAgICAgIC8vICAgcXVlcnkoJzpsZWF2ZScsIFtcbiAgICAgIC8vICAgICBzdHlsZSh7IG9wYWNpdHk6ICcxJyB9KSxcbiAgICAgIC8vICAgICBhbmltYXRlKCc1LjJzIGVhc2UtaW4tb3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAnMCcgfSkpXG4gICAgICAvLyAgIF0sIHsgb3B0aW9uYWw6IHRydWUgfSlcbiAgICAgIC8vIF0pLFxuXG5cbiAgICBdKVxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTaWRlTmF2SXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9oaWVyTGV2ZWw6IE51bWJlcklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9pbmRlbnRTaXplOiBOdW1iZXJJbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfZXhwYW5kZWQ6IEJvb2xlYW5JbnB1dFxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfY29tcGFjdDogQm9vbGVhbklucHV0XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9hY3RpdmU6IEJvb2xlYW5JbnB1dFxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpXG5cbiAgcmVhZG9ubHkgZmFBbmdsZUxlZnQgPSBmYUFuZ2xlTGVmdFxuXG4gIEBJbnB1dCgpIGl0ZW1UeXBlOiAnZGl2aWRlcicgfCAnYmFzaWMnIHwgJ2xpbmsnIHwgJ2J1dHRvbicgfCAndGl0bGUnIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIEBJbnB1dCgpIGljb246IFNlYW1JY29uIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlXG5cbiAgQElucHV0KClcbiAgc2V0IGxpbmsodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGwpIHsgdGhpcy5fbGluay5uZXh0KHZhbHVlKSB9XG4gIGdldCBsaW5rKCkgeyByZXR1cm4gdGhpcy5fbGluay52YWx1ZSB9XG4gIHByaXZhdGUgcmVhZG9ubHkgX2xpbmsgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw+KHVuZGVmaW5lZClcbiAgcHVibGljIHJlYWRvbmx5IGxpbmskID0gdGhpcy5fbGluay5hc09ic2VydmFibGUoKVxuXG4gIEBJbnB1dCgpIHF1ZXJ5UGFyYW1zOiB7IFtrOiBzdHJpbmddOiBhbnkgfSB8IHVuZGVmaW5lZCB8IG51bGxcblxuICBASW5wdXQoKSBjaGlsZHJlbjogSVNpZGVOYXZJdGVtW10gfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KCkgQElucHV0TnVtYmVyKDApIGhpZXJMZXZlbDogbnVtYmVyID0gMFxuXG4gIEBJbnB1dCgpIEBJbnB1dE51bWJlcigxMCkgaW5kZW50U2l6ZTogbnVtYmVyID0gMTBcblxuICBASW5wdXQoKVxuICBzZXQgZXhwYW5kZWQodmFsdWU6IGJvb2xlYW4pIHsgdGhpcy5fZXhwYW5kZWQubmV4dChjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpKSB9XG4gIGdldCBleHBhbmRlZCgpIHsgcmV0dXJuIHRoaXMuX2V4cGFuZGVkLnZhbHVlIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfZXhwYW5kZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKVxuICBwdWJsaWMgcmVhZG9ubHkgZXhwYW5kZWQkID0gdGhpcy5fZXhwYW5kZWQuYXNPYnNlcnZhYmxlKClcblxuICBASW5wdXQoKVxuICBzZXQgY29tcGFjdCh2YWx1ZTogYm9vbGVhbikgeyB0aGlzLl9jb21wYWN0Lm5leHQoY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKSkgfVxuICBnZXQgY29tcGFjdCgpIHsgcmV0dXJuIHRoaXMuX2NvbXBhY3QudmFsdWUgfVxuICBwcml2YXRlIHJlYWRvbmx5IF9jb21wYWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSlcbiAgcHVibGljIHJlYWRvbmx5IGNvbXBhY3QkID0gdGhpcy5fY29tcGFjdC5hc09ic2VydmFibGUoKVxuXG4gIEBJbnB1dCgpIGJhZGdlVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbFxuICBASW5wdXQoKSBiYWRnZVRoZW1lOiBUaGVtZVR5cGVzIHwgdW5kZWZpbmVkIHwgbnVsbCA9ICdkYW5nZXInXG5cbiAgLyoqXG4gICAqIENvbnRlbnQgdG8gcHJvdmlkZSB0byBhc3Npc3RpdmUgdGVjaG5vbG9neSwgc3VjaCBhcyBzY3JlZW4gcmVhZGVycy5cbiAgICovXG4gIEBJbnB1dCgpIGJhZGdlU3JDb250ZW50OiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgQElucHV0KClcbiAgZ2V0IGJhZGdlVG9vbHRpcCgpIHsgcmV0dXJuIHRoaXMuX2JhZGdlVG9vbHRpcCB9XG4gIHNldCBiYWRnZVRvb2x0aXAodmFsdWU6IHN0cmluZyB8IFNpZGVOYXZJdGVtQmFkZ2VUb29sdGlwIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLl9iYWRnZVRvb2x0aXAgPSB7XG4gICAgICAgICAgdG9vbHRpcDogdmFsdWUsXG4gICAgICAgICAgcGxhY2VtZW50OiAnYXV0bycsXG4gICAgICAgICAgZGlzYWJsZWQ6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2JhZGdlVG9vbHRpcCA9IHtcbiAgICAgICAgICAuLi52YWx1ZSxcbiAgICAgICAgICBwbGFjZW1lbnQ6IHZhbHVlLnBsYWNlbWVudCB8fCAnYXV0bycsXG4gICAgICAgICAgZGlzYWJsZWQ6IHR5cGVvZiB2YWx1ZT8uZGlzYWJsZWQgPT09ICdib29sZWFuJ1xuICAgICAgICAgICAgPyB2YWx1ZS5kaXNhYmxlZFxuICAgICAgICAgICAgOiB0eXBlb2YgdmFsdWUudG9vbHRpcCA9PT0gJ3N0cmluZycgPyBmYWxzZSA6IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9iYWRnZVRvb2x0aXAgPSB1bmRlZmluZWRcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfYmFkZ2VUb29sdGlwOiBTaWRlTmF2SXRlbUJhZGdlVG9vbHRpcCB8IHVuZGVmaW5lZCB8IG51bGxcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNlYW0tc2lkZS1uYXYtaXRlbS0tYWN0aXZlJykgZ2V0IF9pc0FjdGl2ZUNzc0NsYXNzKCkgeyByZXR1cm4gdGhpcy5hY3RpdmUgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWhpZXItbGV2ZWwnKSBnZXQgX2F0dHJEYXRhSGllckxldmVsKCkgeyByZXR1cm4gdGhpcy5oaWVyTGV2ZWwgfVxuXG4gIHB1YmxpYyByZWFkb25seSBjaGlsZEdyb3VwQW5pbVN0YXRlJDogT2JzZXJ2YWJsZTxzdHJpbmc+XG4gIHB1YmxpYyByZWFkb25seSBjb21wYWN0QW5pbVN0YXRlJDogT2JzZXJ2YWJsZTxzdHJpbmc+XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfc2lkZU5hdjogU2lkZU5hdkNvbXBvbmVudCxcbiAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBASG9zdCgpIHByaXZhdGUgcmVhZG9ubHkgX3BhcmVudD86IFNpZGVOYXZJdGVtQ29tcG9uZW50XG4gICkge1xuICAgIHRoaXMuY2hpbGRHcm91cEFuaW1TdGF0ZSQgPSB0aGlzLmV4cGFuZGVkJFxuICAgICAgLnBpcGUobWFwKGV4cGFuZGVkID0+IGV4cGFuZGVkID8gRVhQQU5ERURfU1RBVEUgOiBDT0xMQVBTRURfU1RBVEUpKVxuXG4gICAgdGhpcy5jb21wYWN0QW5pbVN0YXRlJCA9IHRoaXMuY29tcGFjdCRcbiAgICAgIC5waXBlKG1hcChjb21wYWN0ID0+IGNvbXBhY3QgPyBDT01QQUNUX1NUQVRFIDogRlVMTF9TVEFURSkpXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLm5leHQoKVxuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUuY29tcGxldGUoKVxuICB9XG5cbiAgZ2V0IGhhc0NoaWxkcmVuKCkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMuY2hpbGRyZW4pICYmIHRoaXMuY2hpbGRyZW4ubGVuZ3RoID4gMFxuICB9XG5cbiAgcHVibGljIHRvZ2dsZUNoaWxkcmVuKCk6IHZvaWQge1xuICAgIHRoaXMuZXhwYW5kZWQgPSAhdGhpcy5leHBhbmRlZFxuICB9XG5cbiAgX2xpbmtDbGlja2VkKCkge1xuICAgIC8vIENsb3NlIG5hdiB3aGVuIGxpbmsgaXMgY2xpY2tlZCB3aGlsZSBpbiBvdmVybGF5IHN0YXRlXG4gICAgaWYgKHRoaXMuX3NpZGVOYXYub3ZlcmxheSkge1xuICAgICAgdGhpcy5fc2lkZU5hdi5jb2xsYXBzZSgpXG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
@@ -22,7 +22,7 @@ SideNavToggleComponent.decorators = [
22
22
  },
23
23
  changeDetection: ChangeDetectionStrategy.OnPush,
24
24
  encapsulation: ViewEncapsulation.None,
25
- styles: ["seam-side-nav-toggle{display:flex;flex-direction:row;flex-shrink:0;position:relative;height:45px;width:100%}seam-side-nav-toggle .side-nav-toggle--content{flex:1 1 0}seam-side-nav-toggle .side-nav-toggle--btn{position:absolute;top:0;right:5px;color:#fff}seam-side-nav-toggle .side-nav-toggle--btn seam-icon{padding:5px}"]
25
+ styles: ["seam-side-nav-toggle{display:flex;flex-direction:row;flex-shrink:0;position:relative;height:45px;width:100%}seam-side-nav-toggle .side-nav-toggle--content{flex:1 1 0}seam-side-nav-toggle .side-nav-toggle--btn{position:absolute;top:0;right:5px;color:#fff}seam-side-nav-toggle .side-nav-toggle--btn seam-icon{padding:5px}\n"]
26
26
  },] }
27
27
  ];
28
28
  SideNavToggleComponent.ctorParameters = () => [];
@@ -174,7 +174,7 @@ SideNavComponent.decorators = [
174
174
  ],
175
175
  changeDetection: ChangeDetectionStrategy.OnPush,
176
176
  encapsulation: ViewEncapsulation.None,
177
- styles: [".seam-side-nav,seam-side-nav{display:block;height:100%;position:relative;z-index:2;overflow:hidden}.seam-side-nav .side-nav-inner-wrapper,seam-side-nav .side-nav-inner-wrapper{background:#357ebd;height:100%}.seam-side-nav .side-nav-backdrop,seam-side-nav .side-nav-backdrop{background:rgba(52,58,64,.6);width:100vw;height:100vh}.seam-side-nav .side-nav-backdrop.side-nav-backdrop-hidden,seam-side-nav .side-nav-backdrop.side-nav-backdrop-hidden{display:none;width:0;height:0;padding:0;margin:0}.seam-side-nav .side-nav-content,seam-side-nav .side-nav-content{display:flex;flex-direction:column;height:100%;flex-wrap:nowrap}.seam-side-nav .side-nav-items-container,seam-side-nav .side-nav-items-container{display:flex;flex-direction:column;width:100%;flex:1 1 100%}"]
177
+ styles: ["seam-side-nav,.seam-side-nav{display:block;height:100%;position:relative;z-index:2;overflow:hidden}seam-side-nav .side-nav-inner-wrapper,.seam-side-nav .side-nav-inner-wrapper{background:#357ebd;height:100%}seam-side-nav .side-nav-backdrop,.seam-side-nav .side-nav-backdrop{background:rgba(52,58,64,.6);width:100vw;height:100vh}seam-side-nav .side-nav-backdrop.side-nav-backdrop-hidden,.seam-side-nav .side-nav-backdrop.side-nav-backdrop-hidden{display:none;width:0;height:0;padding:0;margin:0}seam-side-nav .side-nav-content,.seam-side-nav .side-nav-content{display:flex;flex-direction:column;height:100%;flex-wrap:nowrap}seam-side-nav .side-nav-items-container,.seam-side-nav .side-nav-items-container{display:flex;flex-direction:column;width:100%;flex:1 1 100%}\n"]
178
178
  },] }
179
179
  ];
180
180
  SideNavComponent.ctorParameters = () => [
@@ -36,7 +36,7 @@ TopBarMenuButtonComponent.decorators = [
36
36
  '[attr.disabled]': 'disabled || null',
37
37
  },
38
38
  changeDetection: ChangeDetectionStrategy.OnPush,
39
- styles: [":host{min-width:200px;border-radius:0;border-top:0!important;border-bottom:0!important;border-right:0!important}:host.top-bar-menu-button--compact{min-width:40px;border-left:0!important}"]
39
+ styles: [":host{min-width:200px;border-radius:0;border-top:0!important;border-bottom:0!important;border-right:0!important}:host.top-bar-menu-button--compact{min-width:40px;border-left:0!important}\n"]
40
40
  },] }
41
41
  ];
42
42
  TopBarMenuButtonComponent.propDecorators = {
@@ -8,7 +8,7 @@ TopBarTitleComponent.decorators = [
8
8
  selector: 'seam-top-bar-title',
9
9
  template: "<h2 class=\"mb-0\" [ngStyle]=\"{ 'font-size.px': 32 }\" [ngStyle.lt-md]=\"{ 'font-size.px': 26 }\" [ngStyle.lt-sm]=\"{ 'font-size.px': 20, 'line-height': 1 }\">\n {{ titleText }}\n <br fxHide.gt-sm>\n <small *ngIf=\"subTitleText\" class=\"text-muted\">{{ subTitleText }}</small>\n</h2>\n",
10
10
  changeDetection: ChangeDetectionStrategy.OnPush,
11
- styles: [":host{flex:1 1 auto;display:flex;flex-direction:row;align-items:center}"]
11
+ styles: [":host{flex:1 1 auto;display:flex;flex-direction:row;align-items:center}\n"]
12
12
  },] }
13
13
  ];
14
14
  TopBarTitleComponent.ctorParameters = () => [];
@@ -57,7 +57,7 @@ TheSeamTopBarComponent.decorators = [
57
57
  'class': 'bg-white'
58
58
  },
59
59
  changeDetection: ChangeDetectionStrategy.OnPush,
60
- styles: [":host{flex:1 1 100%;display:flex;flex-direction:row;padding:8px}.top-bar--logo{flex:0 0 auto;overflow:hidden;cursor:pointer}.top-bar--logo img{max-height:60px;max-width:200px}.top-bar--logo.top-bar--logo-mobile{max-height:40px;max-width:150px}.top-bar--logo.top-bar--logo-mobile>div{max-height:100%;max-width:100%}.top-bar--logo.top-bar--logo-mobile>div img{max-height:40px;max-width:100%}.top-bar-icon-container{margin:auto 0}"]
60
+ styles: [":host{flex:1 1 100%;display:flex;flex-direction:row;padding:8px}.top-bar--logo{flex:0 0 auto;overflow:hidden;cursor:pointer}.top-bar--logo img{max-height:60px;max-width:200px}.top-bar--logo.top-bar--logo-mobile{max-height:40px;max-width:150px}.top-bar--logo.top-bar--logo-mobile>div{max-height:100%;max-width:100%}.top-bar--logo.top-bar--logo-mobile>div img{max-height:40px;max-width:100%}.top-bar-icon-container{margin:auto 0}\n"]
61
61
  },] }
62
62
  ];
63
63
  TheSeamTopBarComponent.ctorParameters = () => [
@@ -0,0 +1,38 @@
1
+ import { EMPTY, Observable } from 'rxjs';
2
+ import { switchMap, tap } from 'rxjs/operators';
3
+ import { notNullOrUndefined } from '@theseam/ui-common/utils';
4
+ import { getPageInfo } from './get-page-info';
5
+ export function createPageInfoObservable(datatable$, defaultPageSize = 20) {
6
+ return new Observable((subscriber) => {
7
+ let prev = null;
8
+ const handlePageInfo = (pageInfo) => {
9
+ if (!_isPageInfoSame(prev, pageInfo)) {
10
+ if (pageInfo !== null) {
11
+ subscriber.next(pageInfo);
12
+ }
13
+ prev = pageInfo;
14
+ }
15
+ };
16
+ const dtSub = datatable$.pipe(switchMap(dt => {
17
+ if (!notNullOrUndefined(dt)) {
18
+ handlePageInfo(null);
19
+ return EMPTY;
20
+ }
21
+ handlePageInfo(getPageInfo(dt, defaultPageSize));
22
+ return dt.page.pipe(tap(p => handlePageInfo(p)));
23
+ })).subscribe();
24
+ return () => {
25
+ dtSub.unsubscribe();
26
+ };
27
+ });
28
+ }
29
+ function _isPageInfoSame(prev, curr) {
30
+ if ((prev === null || prev === void 0 ? void 0 : prev.offset) === (curr === null || curr === void 0 ? void 0 : curr.offset) &&
31
+ (prev === null || prev === void 0 ? void 0 : prev.pageSize) === (curr === null || curr === void 0 ? void 0 : curr.pageSize) &&
32
+ (prev === null || prev === void 0 ? void 0 : prev.limit) === (curr === null || curr === void 0 ? void 0 : curr.limit) &&
33
+ (prev === null || prev === void 0 ? void 0 : prev.count) === (curr === null || curr === void 0 ? void 0 : curr.count)) {
34
+ return true;
35
+ }
36
+ return false;
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXBhZ2UtaW5mby1vYnNlcnZhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2dyYXBocWwvZGF0YXRhYmxlL2NyZWF0ZS1wYWdlLWluZm8tb2JzZXJ2YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBYyxNQUFNLE1BQU0sQ0FBQTtBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBRzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUU3QyxNQUFNLFVBQVUsd0JBQXdCLENBQ3RDLFVBQStELEVBQy9ELGtCQUEwQixFQUFFO0lBRTVCLE9BQU8sSUFBSSxVQUFVLENBQWtCLENBQUMsVUFBdUMsRUFBRSxFQUFFO1FBQ2pGLElBQUksSUFBSSxHQUEyQixJQUFJLENBQUE7UUFDdkMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxRQUFnQyxFQUFFLEVBQUU7WUFDMUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQ3BDLElBQUksUUFBUSxLQUFLLElBQUksRUFBRTtvQkFDckIsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtpQkFDMUI7Z0JBQ0QsSUFBSSxHQUFHLFFBQVEsQ0FBQTthQUNoQjtRQUNILENBQUMsQ0FBQTtRQUVELE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQzNCLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDM0IsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUNwQixPQUFPLEtBQUssQ0FBQTthQUNiO1lBRUQsY0FBYyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQTtZQUVoRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDbEQsQ0FBQyxDQUFDLENBQ0gsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtRQUViLE9BQU8sR0FBRyxFQUFFO1lBQ1YsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ3JCLENBQUMsQ0FBQTtJQUNILENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLElBQTRCLEVBQUUsSUFBNEI7SUFDakYsSUFDRSxDQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxNQUFNLE9BQUssSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLE1BQU0sQ0FBQTtRQUM3QixDQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxRQUFRLE9BQUssSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFFBQVEsQ0FBQTtRQUNqQyxDQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxLQUFLLE9BQUssSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLEtBQUssQ0FBQTtRQUMzQixDQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxLQUFLLE9BQUssSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLEtBQUssQ0FBQSxFQUMzQjtRQUNBLE9BQU8sSUFBSSxDQUFBO0tBQ1o7SUFDRCxPQUFPLEtBQUssQ0FBQTtBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFTVBUWSwgT2JzZXJ2YWJsZSwgU3Vic2NyaWJlciB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBUaGVTZWFtUGFnZUluZm8gfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vZGF0YXRhYmxlJ1xuaW1wb3J0IHsgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3V0aWxzJ1xuXG5pbXBvcnQgeyBHcWxEYXRhdGFibGVBY2Nlc3NvciB9IGZyb20gJy4uL21vZGVscy9ncWwtZGF0YXRhYmxlLWFjY2Vzc29yJ1xuaW1wb3J0IHsgZ2V0UGFnZUluZm8gfSBmcm9tICcuL2dldC1wYWdlLWluZm8nXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYWdlSW5mb09ic2VydmFibGUoXG4gIGRhdGF0YWJsZSQ6IE9ic2VydmFibGU8R3FsRGF0YXRhYmxlQWNjZXNzb3IgfCBudWxsIHwgdW5kZWZpbmVkPixcbiAgZGVmYXVsdFBhZ2VTaXplOiBudW1iZXIgPSAyMFxuKTogT2JzZXJ2YWJsZTxUaGVTZWFtUGFnZUluZm8+IHtcbiAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPFRoZVNlYW1QYWdlSW5mbz4oKHN1YnNjcmliZXI6IFN1YnNjcmliZXI8VGhlU2VhbVBhZ2VJbmZvPikgPT4ge1xuICAgIGxldCBwcmV2OiBUaGVTZWFtUGFnZUluZm8gfCBudWxsID0gbnVsbFxuICAgIGNvbnN0IGhhbmRsZVBhZ2VJbmZvID0gKHBhZ2VJbmZvOiBUaGVTZWFtUGFnZUluZm8gfCBudWxsKSA9PiB7XG4gICAgICBpZiAoIV9pc1BhZ2VJbmZvU2FtZShwcmV2LCBwYWdlSW5mbykpIHtcbiAgICAgICAgaWYgKHBhZ2VJbmZvICE9PSBudWxsKSB7XG4gICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHBhZ2VJbmZvKVxuICAgICAgICB9XG4gICAgICAgIHByZXYgPSBwYWdlSW5mb1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGR0U3ViID0gZGF0YXRhYmxlJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKGR0ID0+IHtcbiAgICAgICAgaWYgKCFub3ROdWxsT3JVbmRlZmluZWQoZHQpKSB7XG4gICAgICAgICAgaGFuZGxlUGFnZUluZm8obnVsbClcbiAgICAgICAgICByZXR1cm4gRU1QVFlcbiAgICAgICAgfVxuXG4gICAgICAgIGhhbmRsZVBhZ2VJbmZvKGdldFBhZ2VJbmZvKGR0LCBkZWZhdWx0UGFnZVNpemUpKVxuXG4gICAgICAgIHJldHVybiBkdC5wYWdlLnBpcGUodGFwKHAgPT4gaGFuZGxlUGFnZUluZm8ocCkpKVxuICAgICAgfSlcbiAgICApLnN1YnNjcmliZSgpXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZHRTdWIudW5zdWJzY3JpYmUoKVxuICAgIH1cbiAgfSlcbn1cblxuZnVuY3Rpb24gX2lzUGFnZUluZm9TYW1lKHByZXY6IFRoZVNlYW1QYWdlSW5mbyB8IG51bGwsIGN1cnI6IFRoZVNlYW1QYWdlSW5mbyB8IG51bGwpOiBib29sZWFuIHtcbiAgaWYgKFxuICAgIHByZXY/Lm9mZnNldCA9PT0gY3Vycj8ub2Zmc2V0ICYmXG4gICAgcHJldj8ucGFnZVNpemUgPT09IGN1cnI/LnBhZ2VTaXplICYmXG4gICAgcHJldj8ubGltaXQgPT09IGN1cnI/LmxpbWl0ICYmXG4gICAgcHJldj8uY291bnQgPT09IGN1cnI/LmNvdW50XG4gICkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG4iXX0=