@theseam/ui-common 0.4.0-beta.2 → 0.4.0-beta.4

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 (546) hide show
  1. package/breadcrumbs/breadcrumb.d.ts +1 -1
  2. package/breadcrumbs/breadcrumbs-resolver.d.ts +1 -1
  3. package/core/common-behaviors/active.d.ts +1 -1
  4. package/core/common-behaviors/constructor.d.ts +1 -1
  5. package/core/common-behaviors/disabled.d.ts +1 -1
  6. package/core/common-behaviors/initialized.d.ts +1 -1
  7. package/core/common-behaviors/size.d.ts +1 -1
  8. package/core/common-behaviors/tabindex.d.ts +1 -1
  9. package/core/common-behaviors/theme.d.ts +1 -1
  10. package/data-exporter/data-exporter.d.ts +1 -1
  11. package/data-filters/data-filter.d.ts +3 -3
  12. package/data-filters/filters/data-filter-search/search-filter-options.d.ts +1 -1
  13. package/datatable/datatable-column/datatable-column.component.d.ts +1 -1
  14. package/datatable/models/preferences.d.ts +1 -1
  15. package/datatable/models/table-column.d.ts +1 -1
  16. package/datatable/services/columns-manager.service.d.ts +1 -1
  17. package/datatable-dynamic/datatable-dynamic-def.d.ts +3 -3
  18. package/datatable-dynamic/models/dynamic-datatable-action-menu-record.d.ts +1 -1
  19. package/dynamic/models/dynamic-value-base-type.d.ts +1 -1
  20. package/dynamic/models/dynamic-value-evaluatable-type.d.ts +1 -1
  21. package/dynamic/models/dynamic-value-primitive.d.ts +1 -1
  22. package/dynamic/models/dynamic-value.d.ts +1 -1
  23. package/dynamic/tokens/api-config.d.ts +1 -1
  24. package/esm2020/asset-reader/asset-reader-helper.service.mjs +3 -3
  25. package/esm2020/asset-reader/asset-reader.module.mjs +4 -4
  26. package/esm2020/asset-reader/encrypted-asset-link.directive.mjs +12 -12
  27. package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +3 -3
  28. package/esm2020/breadcrumbs/breadcrumbs.module.mjs +4 -4
  29. package/esm2020/breadcrumbs/breadcrumbs.service.mjs +3 -3
  30. package/esm2020/buttons/badge-button/badge-button.component.mjs +6 -6
  31. package/esm2020/buttons/button/button.component.mjs +9 -9
  32. package/esm2020/buttons/buttons.module.mjs +4 -4
  33. package/esm2020/buttons/progress-circle-button/progress-circle-button.component.mjs +3 -3
  34. package/esm2020/buttons/toggle-button/toggle-button.component.mjs +5 -5
  35. package/esm2020/card/card-action/card-action.component.mjs +3 -3
  36. package/esm2020/card/card-body/card-body.component.mjs +3 -3
  37. package/esm2020/card/card-footer/card-footer.component.mjs +3 -3
  38. package/esm2020/card/card-header/card-header.component.mjs +3 -3
  39. package/esm2020/card/card.component.mjs +3 -3
  40. package/esm2020/card/card.module.mjs +4 -4
  41. package/esm2020/checkbox/checkbox.component.mjs +43 -43
  42. package/esm2020/checkbox/checkbox.module.mjs +4 -4
  43. package/esm2020/checkbox/testing/checkbox.harness.mjs +1 -1
  44. package/esm2020/checkbox/testing/index.mjs +1 -1
  45. package/esm2020/confirm-dialog/confirm-click.directive.mjs +9 -9
  46. package/esm2020/confirm-dialog/confirm-dialog.component.mjs +3 -3
  47. package/esm2020/confirm-dialog/confirm-dialog.module.mjs +4 -4
  48. package/esm2020/confirm-dialog/confirm-dialog.service.mjs +3 -3
  49. package/esm2020/core/common-behaviors/active.mjs +3 -3
  50. package/esm2020/core/common-behaviors/disabled.mjs +3 -3
  51. package/esm2020/core/common-behaviors/size.mjs +6 -6
  52. package/esm2020/core/common-behaviors/tabindex.mjs +5 -5
  53. package/esm2020/core/common-behaviors/theme.mjs +6 -6
  54. package/esm2020/data-exporter/data-exporter.module.mjs +4 -4
  55. package/esm2020/data-exporter/exporters/csv-exporter.mjs +3 -3
  56. package/esm2020/data-exporter/exporters/xlsx-exporter.mjs +3 -3
  57. package/esm2020/data-filters/data-filters.module.mjs +4 -4
  58. package/esm2020/data-filters/filters/data-filter-search/data-filter-search.component.mjs +10 -10
  59. package/esm2020/data-filters/filters/data-filter-text/data-filter-text.component.mjs +10 -10
  60. package/esm2020/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.mjs +11 -11
  61. package/esm2020/datatable/datatable/datatable.component.mjs +108 -108
  62. package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +3 -3
  63. package/esm2020/datatable/datatable-action-menu-item/datatable-action-menu-item.component.mjs +3 -3
  64. package/esm2020/datatable/datatable-column/datatable-column.component.mjs +7 -7
  65. package/esm2020/datatable/datatable-column-preferences/datatable-column-preferences.component.mjs +3 -3
  66. package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +3 -3
  67. package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +7 -7
  68. package/esm2020/datatable/datatable-footer/datatable-footer-tpl.directive.mjs +3 -3
  69. package/esm2020/datatable/datatable-footer/datatable-footer.directive.mjs +3 -3
  70. package/esm2020/datatable/datatable-menu-bar/datatable-menu-bar.component.mjs +8 -8
  71. package/esm2020/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.mjs +3 -3
  72. package/esm2020/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.mjs +3 -3
  73. package/esm2020/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.mjs +3 -3
  74. package/esm2020/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.mjs +3 -3
  75. package/esm2020/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.mjs +3 -3
  76. package/esm2020/datatable/datatable-row-detail/datatable-row-detail-tpl.directive.mjs +3 -3
  77. package/esm2020/datatable/datatable-row-detail/datatable-row-detail.directive.mjs +3 -3
  78. package/esm2020/datatable/datatable.module.mjs +4 -4
  79. package/esm2020/datatable/directives/datatable-action-menu-item.directive.mjs +3 -3
  80. package/esm2020/datatable/directives/datatable-action-menu-toggle.directive.mjs +11 -11
  81. package/esm2020/datatable/directives/datatable-cell-tpl.directive.mjs +3 -3
  82. package/esm2020/datatable/directives/datatable-filter.directive.mjs +3 -3
  83. package/esm2020/datatable/directives/datatable-row-action-item.directive.mjs +3 -3
  84. package/esm2020/datatable/services/columns-alterations-manager.service.mjs +3 -3
  85. package/esm2020/datatable/services/columns-manager.service.mjs +3 -3
  86. package/esm2020/datatable/services/datatable-column-changes.service.mjs +3 -3
  87. package/esm2020/datatable/services/datatable-preferences.service.mjs +6 -6
  88. package/esm2020/datatable/services/datatable-scrollbar-helper.service.mjs +3 -3
  89. package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +12 -12
  90. package/esm2020/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.mjs +8 -8
  91. package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.mjs +6 -6
  92. package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +8 -8
  93. package/esm2020/datatable-dynamic/datatable-dynamic.module.mjs +4 -4
  94. package/esm2020/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.mjs +7 -7
  95. package/esm2020/datatable-dynamic/dynamic-datatable-def.service.mjs +3 -3
  96. package/esm2020/datatable-dynamic/dynamic-datatable-row-actions.service.mjs +3 -3
  97. package/esm2020/dynamic/action/api/dynamic-action-api.service.mjs +3 -3
  98. package/esm2020/dynamic/action/dynamic-action-helper.service.mjs +3 -3
  99. package/esm2020/dynamic/action/link/dynamic-action-link.service.mjs +3 -3
  100. package/esm2020/dynamic/action/modal/dynamic-action-modal.service.mjs +3 -3
  101. package/esm2020/dynamic/dynamic-value-helper.service.mjs +3 -3
  102. package/esm2020/dynamic/evaluators/exporters-data-evaluator/exporters-data-evaluator.mjs +3 -3
  103. package/esm2020/dynamic/evaluators/jexl-evaluator/jexl-evaluator.mjs +3 -3
  104. package/esm2020/dynamic-component-loader/dynamic-component-loader.module.mjs +4 -4
  105. package/esm2020/dynamic-component-loader/dynamic-component-loader.service.mjs +3 -3
  106. package/esm2020/footer-bar/footer-bar/footer-bar.component.mjs +3 -3
  107. package/esm2020/footer-bar/footer-bar.module.mjs +4 -4
  108. package/esm2020/form-field/form-field-error.directive.mjs +6 -6
  109. package/esm2020/form-field/form-field-help-text.directive.mjs +3 -3
  110. package/esm2020/form-field/form-field-label-tpl.directive.mjs +3 -3
  111. package/esm2020/form-field/form-field-required-indicator.component.mjs +3 -3
  112. package/esm2020/form-field/form-field-tokens.mjs +1 -1
  113. package/esm2020/form-field/form-field.component.mjs +48 -48
  114. package/esm2020/form-field/form-field.module.mjs +4 -4
  115. package/esm2020/form-field/input.directive.mjs +43 -43
  116. package/esm2020/form-field/testing/form-field-required-indicator.harness.mjs +1 -1
  117. package/esm2020/form-field/testing/index.mjs +1 -1
  118. package/esm2020/form-field-error/form-field-error/form-field-error.component.mjs +3 -3
  119. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item-tpl.directive.mjs +3 -3
  120. package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item.directive.mjs +3 -3
  121. package/esm2020/form-field-error/form-field-error-list/form-field-error-list.component.mjs +92 -92
  122. package/esm2020/form-field-error/form-field-error.module.mjs +4 -4
  123. package/esm2020/framework/base-layout/base-layout.component.mjs +6 -6
  124. package/esm2020/framework/base-layout/base-layout.module.mjs +4 -4
  125. package/esm2020/framework/base-layout/directives/base-layout-content-footer.directive.mjs +3 -3
  126. package/esm2020/framework/base-layout/directives/base-layout-content-header.directive.mjs +3 -3
  127. package/esm2020/framework/base-layout/directives/base-layout-content.directive.mjs +3 -3
  128. package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +10 -10
  129. package/esm2020/framework/base-layout/directives/base-layout-side-bar-footer.directive.mjs +3 -3
  130. package/esm2020/framework/base-layout/directives/base-layout-side-bar.directive.mjs +3 -3
  131. package/esm2020/framework/base-layout/directives/base-layout-top-bar.directive.mjs +3 -3
  132. package/esm2020/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.mjs +3 -3
  133. package/esm2020/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.mjs +3 -3
  134. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.mjs +3 -3
  135. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.mjs +3 -3
  136. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.component.mjs +18 -18
  137. package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.service.mjs +12 -12
  138. package/esm2020/framework/dashboard/dashboard-widgets-tokens.mjs +1 -1
  139. package/esm2020/framework/dashboard/dashboard.component.mjs +3 -3
  140. package/esm2020/framework/dashboard/dashboard.module.mjs +4 -4
  141. package/esm2020/framework/dynamic-router/dynamic-router.module.mjs +4 -4
  142. package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.mjs +3 -3
  143. package/esm2020/framework/dynamic-router/resolvers/hierarchy-level.resolver.mjs +3 -3
  144. package/esm2020/framework/schema-form/schema-form-framework.component.mjs +3 -3
  145. package/esm2020/framework/schema-form/schema-form-framework.mjs +3 -3
  146. package/esm2020/framework/schema-form/schema-form.module.mjs +4 -4
  147. package/esm2020/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.mjs +3 -3
  148. package/esm2020/framework/schema-form-controls/schema-form-controls.module.mjs +4 -4
  149. package/esm2020/framework/schema-form-controls/schema-form-input/schema-form-input.component.mjs +3 -3
  150. package/esm2020/framework/schema-form-controls/schema-form-number/schema-form-number.component.mjs +3 -3
  151. package/esm2020/framework/schema-form-controls/schema-form-select/schema-form-select.component.mjs +3 -3
  152. package/esm2020/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.mjs +3 -3
  153. package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +3 -3
  154. package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +24 -24
  155. package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +3 -3
  156. package/esm2020/framework/side-nav/side-nav-tokens.mjs +1 -1
  157. package/esm2020/framework/side-nav/side-nav.component.mjs +17 -17
  158. package/esm2020/framework/side-nav/side-nav.module.mjs +4 -4
  159. package/esm2020/framework/side-nav/side-nav.service.mjs +3 -3
  160. package/esm2020/framework/top-bar/top-bar-item.directive.mjs +3 -3
  161. package/esm2020/framework/top-bar/top-bar-menu-btn-detail.directive.mjs +3 -3
  162. package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +3 -3
  163. package/esm2020/framework/top-bar/top-bar-menu.directive.mjs +3 -3
  164. package/esm2020/framework/top-bar/top-bar-title/top-bar-title.component.mjs +3 -3
  165. package/esm2020/framework/top-bar/top-bar.component.mjs +3 -3
  166. package/esm2020/framework/top-bar/top-bar.module.mjs +4 -4
  167. package/esm2020/google-maps/google-maps/google-maps.component.mjs +17 -17
  168. package/esm2020/google-maps/google-maps-controls.service.mjs +3 -3
  169. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +20 -20
  170. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.mjs +7 -7
  171. package/esm2020/google-maps/google-maps-recenter-button-control/google-maps-recenter-button-control.component.mjs +7 -7
  172. package/esm2020/google-maps/google-maps-upload-button-control/google-maps-upload-button-control.component.mjs +7 -7
  173. package/esm2020/google-maps/google-maps.module.mjs +4 -4
  174. package/esm2020/google-maps/google-maps.service.mjs +5 -5
  175. package/esm2020/google-maps/map-control.component.mjs +9 -9
  176. package/esm2020/google-maps/map-file-drop/map-file-drop.component.mjs +3 -3
  177. package/esm2020/google-maps/map-value-manager.service.mjs +3 -3
  178. package/esm2020/graphql/datatable/datatable-graphql-query-ref.mjs +5 -5
  179. package/esm2020/graphql/datatable/datatable-graphql.service.mjs +3 -3
  180. package/esm2020/icon/icon/icon.component.mjs +3 -3
  181. package/esm2020/icon/icon-btn/icon-btn.component.mjs +24 -24
  182. package/esm2020/icon/icon-notification/icon-notification.component.mjs +3 -3
  183. package/esm2020/icon/icon.module.mjs +4 -4
  184. package/esm2020/layout/layout.module.mjs +4 -4
  185. package/esm2020/layout/layout.service.mjs +3 -3
  186. package/esm2020/loading/loading/loading.component.mjs +7 -7
  187. package/esm2020/loading/loading-overlay.service.mjs +3 -3
  188. package/esm2020/loading/loading.module.mjs +4 -4
  189. package/esm2020/menu/menu-divider.component.mjs +3 -3
  190. package/esm2020/menu/menu-footer/menu-footer.component.mjs +3 -3
  191. package/esm2020/menu/menu-footer-action/menu-footer-action.component.mjs +7 -7
  192. package/esm2020/menu/menu-header/menu-header.component.mjs +3 -3
  193. package/esm2020/menu/menu-item.component.mjs +3 -3
  194. package/esm2020/menu/menu-toggle.directive.mjs +42 -42
  195. package/esm2020/menu/menu.component.mjs +15 -15
  196. package/esm2020/menu/menu.module.mjs +4 -4
  197. package/esm2020/modal/directives/modal-close.directive.mjs +11 -11
  198. package/esm2020/modal/directives/modal-footer-tpl.directive.mjs +3 -3
  199. package/esm2020/modal/directives/modal-header-icon-tpl.directive.mjs +3 -3
  200. package/esm2020/modal/directives/modal-header-title-tpl.directive.mjs +3 -3
  201. package/esm2020/modal/directives/modal-title.directive.mjs +3 -3
  202. package/esm2020/modal/directives/modal.directive.mjs +3 -3
  203. package/esm2020/modal/modal/modal.component.mjs +19 -19
  204. package/esm2020/modal/modal-body/modal-body.component.mjs +3 -3
  205. package/esm2020/modal/modal-container/modal-container.component.mjs +12 -12
  206. package/esm2020/modal/modal-footer/modal-footer.component.mjs +3 -3
  207. package/esm2020/modal/modal-header/modal-header.component.mjs +3 -3
  208. package/esm2020/modal/modal.module.mjs +4 -4
  209. package/esm2020/modal/modal.service.mjs +16 -16
  210. package/esm2020/modal/route-modal/route-modal.component.mjs +3 -3
  211. package/esm2020/popover/popover/popover.component.mjs +18 -18
  212. package/esm2020/popover/popover.directive.mjs +32 -32
  213. package/esm2020/popover/popover.module.mjs +4 -4
  214. package/esm2020/progress/progress-circle/progress-circle.component.mjs +9 -9
  215. package/esm2020/progress/progress.module.mjs +4 -4
  216. package/esm2020/public_api.mjs +1 -42
  217. package/esm2020/scrollbar/overlay-scrollbar.directive.mjs +10 -10
  218. package/esm2020/scrollbar/overlay-scrollbars.service.mjs +3 -3
  219. package/esm2020/scrollbar/scrollbar.module.mjs +4 -4
  220. package/esm2020/services/asset-loader.service.mjs +3 -3
  221. package/esm2020/services/font-loader.service.mjs +3 -3
  222. package/esm2020/services/router-helpers.service.mjs +3 -3
  223. package/esm2020/shared/components/password-input-reveal/password-input-reveal.component.mjs +3 -3
  224. package/esm2020/shared/directives/auto-focus.directive.mjs +3 -3
  225. package/esm2020/shared/directives/click-outside.directive.mjs +9 -9
  226. package/esm2020/shared/directives/disable-control.directive.mjs +7 -7
  227. package/esm2020/shared/directives/elem-resized.directive.mjs +3 -3
  228. package/esm2020/shared/directives/hover-class-toggle.directive.mjs +10 -10
  229. package/esm2020/shared/directives/hover-class.directive.mjs +9 -9
  230. package/esm2020/shared/directives/ng-select-extra.directive.mjs +26 -26
  231. package/esm2020/shared/directives/ngx-quill-extra.directive.mjs +10 -10
  232. package/esm2020/shared/pipes/mask-chars.pipe.mjs +3 -3
  233. package/esm2020/shared/pipes/truncate.pipe.mjs +3 -3
  234. package/esm2020/shared/shared.module.mjs +4 -4
  235. package/esm2020/storage/local-storage.service.mjs +3 -3
  236. package/esm2020/story-helpers/initial-route.service.mjs +3 -3
  237. package/esm2020/story-helpers/story-empty-with-route.component.mjs +3 -3
  238. package/esm2020/story-helpers/story-empty.component.mjs +3 -3
  239. package/esm2020/story-helpers/story-helper-components.module.mjs +4 -4
  240. package/esm2020/story-helpers/story-initial-route.mjs +4 -4
  241. package/esm2020/story-helpers/story-modal-container.component.mjs +6 -6
  242. package/esm2020/story-helpers/story-toastr.service.mjs +3 -3
  243. package/esm2020/tabbed/directives/tabbed-tab-content.directive.mjs +3 -3
  244. package/esm2020/tabbed/directives/tabbed-tab.directive.mjs +3 -3
  245. package/esm2020/tabbed/tabbed-content/tabbed-content.component.mjs +3 -3
  246. package/esm2020/tabbed/tabbed-item/tabbed-item.component.mjs +3 -3
  247. package/esm2020/tabbed/tabbed-models.mjs +1 -1
  248. package/esm2020/tabbed/tabbed.component.mjs +13 -13
  249. package/esm2020/tabbed/tabbed.module.mjs +4 -4
  250. package/esm2020/tabbed/tabbed.service.mjs +3 -3
  251. package/esm2020/table/table/table.component.mjs +11 -11
  252. package/esm2020/table/table.module.mjs +4 -4
  253. package/esm2020/table-cell-type/services/table-cell-types-helpers.service.mjs +3 -3
  254. package/esm2020/table-cell-type/table-cell-type-selector.component.mjs +3 -3
  255. package/esm2020/table-cell-type/table-cell-type.module.mjs +4 -4
  256. package/esm2020/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.mjs +3 -3
  257. package/esm2020/table-cell-types/table-cell-type-date/table-cell-type-date.component.mjs +3 -3
  258. package/esm2020/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.mjs +3 -3
  259. package/esm2020/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.mjs +31 -31
  260. package/esm2020/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.mjs +3 -3
  261. package/esm2020/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.mjs +6 -6
  262. package/esm2020/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.mjs +3 -3
  263. package/esm2020/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.mjs +3 -3
  264. package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +23 -23
  265. package/esm2020/table-cell-types/table-cell-types.module.mjs +4 -4
  266. package/esm2020/tel-input/phone-number.pipe.mjs +3 -3
  267. package/esm2020/tel-input/tel-input/tel-input.component.mjs +34 -34
  268. package/esm2020/tel-input/tel-input.directive.mjs +18 -18
  269. package/esm2020/tel-input/tel-input.module.mjs +4 -4
  270. package/esm2020/tiled-select/components/tiled-select/tiled-select.component.mjs +20 -20
  271. package/esm2020/tiled-select/components/tiled-select-tile/tiled-select-tile.component.mjs +6 -6
  272. package/esm2020/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.mjs +10 -10
  273. package/esm2020/tiled-select/directives/tiled-select-tile-icon-tpl.directive.mjs +3 -3
  274. package/esm2020/tiled-select/directives/tiled-select-tile-label-tpl.directive.mjs +3 -3
  275. package/esm2020/tiled-select/directives/tiled-select-tile-overlay.directive.mjs +3 -3
  276. package/esm2020/tiled-select/tiled-select.module.mjs +4 -4
  277. package/esm2020/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.mjs +3 -3
  278. package/esm2020/toggle-edit/toggle-edit-display-tpl.directive.mjs +3 -3
  279. package/esm2020/toggle-edit/toggle-edit-keyboard-listener.service.mjs +3 -3
  280. package/esm2020/toggle-edit/toggle-edit.component.mjs +16 -16
  281. package/esm2020/toggle-edit/toggle-edit.module.mjs +4 -4
  282. package/esm2020/toggle-group/toggle-group-option.directive.mjs +12 -12
  283. package/esm2020/toggle-group/toggle-group.directive.mjs +3 -3
  284. package/esm2020/toggle-group/toggle-group.module.mjs +4 -4
  285. package/esm2020/unsaved-changes-dialog/unsaved-changes-can-deactivate.mjs +3 -3
  286. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +3 -3
  287. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.guard.mjs +3 -3
  288. package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +4 -4
  289. package/esm2020/utils/geo-json/coerce-feature-collection.mjs +1 -1
  290. package/esm2020/utils/geo-json/geo-json-to-area.mjs +1 -1
  291. package/esm2020/utils/geo-json/is-feature-collection.validator.mjs +1 -1
  292. package/esm2020/utils/geo-json/is-only-geometry-types.mjs +1 -1
  293. package/esm2020/utils/geo-json/is-only-geometry-types.validator.mjs +1 -1
  294. package/esm2020/utils/geo-json/merge-polygons.mjs +1 -1
  295. package/esm2020/utils/geo-json/no-inner-rings.validator.mjs +1 -1
  296. package/esm2020/utils/geo-json/split-multi-polygons.mjs +1 -1
  297. package/esm2020/viewers/html-template-viewer/html-template-viewer.component.mjs +37 -37
  298. package/esm2020/viewers/html-template-viewer/html-template-viewer.module.mjs +4 -4
  299. package/esm2020/viewers/pdf-viewer/pdf-page/pdf-page.component.mjs +10 -10
  300. package/esm2020/viewers/pdf-viewer/pdf-renderer.service.mjs +3 -3
  301. package/esm2020/viewers/pdf-viewer/pdf-viewer.component.mjs +38 -38
  302. package/esm2020/viewers/pdf-viewer/pdf-viewer.module.mjs +4 -4
  303. package/esm2020/widget/directives/widget-drag-handle.directive.mjs +12 -12
  304. package/esm2020/widget/directives/widget-icon-tpl.directive.mjs +3 -3
  305. package/esm2020/widget/directives/widget-title-tpl.directive.mjs +3 -3
  306. package/esm2020/widget/widget/widget.component.mjs +23 -23
  307. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.component.mjs +3 -3
  308. package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.module.mjs +4 -4
  309. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.component.mjs +3 -3
  310. package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.module.mjs +4 -4
  311. package/esm2020/widget/widget-content-components/widget-description/widget-description.component.mjs +3 -3
  312. package/esm2020/widget/widget-content-components/widget-description/widget-description.module.mjs +4 -4
  313. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.component.mjs +7 -7
  314. package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.module.mjs +4 -4
  315. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.component.mjs +3 -3
  316. package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.module.mjs +4 -4
  317. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.component.mjs +3 -3
  318. package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.module.mjs +4 -4
  319. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.component.mjs +3 -3
  320. package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.module.mjs +4 -4
  321. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item-icon-tpl.directive.mjs +3 -3
  322. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.mjs +15 -15
  323. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.component.mjs +3 -3
  324. package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.module.mjs +4 -4
  325. package/esm2020/widget/widget-content-components/widget-table/widget-table.component.mjs +3 -3
  326. package/esm2020/widget/widget-content-components/widget-table/widget-table.module.mjs +4 -4
  327. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.mjs +3 -3
  328. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.mjs +8 -8
  329. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.mjs +3 -3
  330. package/esm2020/widget/widget-content-components/widget-tile/widget-tile-secondary-icon.directive.mjs +3 -3
  331. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.component.mjs +16 -16
  332. package/esm2020/widget/widget-content-components/widget-tile/widget-tile.module.mjs +4 -4
  333. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.component.mjs +3 -3
  334. package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.module.mjs +4 -4
  335. package/esm2020/widget/widget-footer/widget-footer.component.mjs +3 -3
  336. package/esm2020/widget/widget-registry.service.mjs +3 -3
  337. package/esm2020/widget/widget.module.mjs +4 -4
  338. package/fesm2015/theseam-ui-common-asset-reader.mjs +18 -18
  339. package/fesm2015/theseam-ui-common-asset-reader.mjs.map +1 -1
  340. package/fesm2015/theseam-ui-common-breadcrumbs.mjs +10 -10
  341. package/fesm2015/theseam-ui-common-buttons.mjs +26 -26
  342. package/fesm2015/theseam-ui-common-buttons.mjs.map +1 -1
  343. package/fesm2015/theseam-ui-common-card.mjs +19 -19
  344. package/fesm2015/theseam-ui-common-checkbox.mjs +46 -46
  345. package/fesm2015/theseam-ui-common-checkbox.mjs.map +1 -1
  346. package/fesm2015/theseam-ui-common-confirm-dialog.mjs +18 -18
  347. package/fesm2015/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  348. package/fesm2015/theseam-ui-common-core.mjs +18 -18
  349. package/fesm2015/theseam-ui-common-core.mjs.map +1 -1
  350. package/fesm2015/theseam-ui-common-data-exporter.mjs +10 -10
  351. package/fesm2015/theseam-ui-common-data-filters.mjs +32 -32
  352. package/fesm2015/theseam-ui-common-data-filters.mjs.map +1 -1
  353. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +46 -46
  354. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  355. package/fesm2015/theseam-ui-common-datatable.mjs +208 -208
  356. package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
  357. package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs +7 -7
  358. package/fesm2015/theseam-ui-common-dynamic.mjs +21 -21
  359. package/fesm2015/theseam-ui-common-footer-bar.mjs +7 -7
  360. package/fesm2015/theseam-ui-common-form-field-error.mjs +104 -104
  361. package/fesm2015/theseam-ui-common-form-field-error.mjs.map +1 -1
  362. package/fesm2015/theseam-ui-common-form-field.mjs +107 -107
  363. package/fesm2015/theseam-ui-common-form-field.mjs.map +1 -1
  364. package/fesm2015/theseam-ui-common-framework.mjs +196 -196
  365. package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
  366. package/fesm2015/theseam-ui-common-google-maps.mjs +78 -78
  367. package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
  368. package/fesm2015/theseam-ui-common-graphql.mjs +7 -7
  369. package/fesm2015/theseam-ui-common-graphql.mjs.map +1 -1
  370. package/fesm2015/theseam-ui-common-icon.mjs +33 -33
  371. package/fesm2015/theseam-ui-common-icon.mjs.map +1 -1
  372. package/fesm2015/theseam-ui-common-layout.mjs +7 -7
  373. package/fesm2015/theseam-ui-common-loading.mjs +13 -13
  374. package/fesm2015/theseam-ui-common-loading.mjs.map +1 -1
  375. package/fesm2015/theseam-ui-common-menu.mjs +79 -79
  376. package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
  377. package/fesm2015/theseam-ui-common-modal.mjs +85 -85
  378. package/fesm2015/theseam-ui-common-modal.mjs.map +1 -1
  379. package/fesm2015/theseam-ui-common-popover.mjs +52 -52
  380. package/fesm2015/theseam-ui-common-popover.mjs.map +1 -1
  381. package/fesm2015/theseam-ui-common-progress.mjs +12 -12
  382. package/fesm2015/theseam-ui-common-progress.mjs.map +1 -1
  383. package/fesm2015/theseam-ui-common-scrollbar.mjs +16 -16
  384. package/fesm2015/theseam-ui-common-scrollbar.mjs.map +1 -1
  385. package/fesm2015/theseam-ui-common-services.mjs +9 -9
  386. package/fesm2015/theseam-ui-common-shared.mjs +84 -84
  387. package/fesm2015/theseam-ui-common-shared.mjs.map +1 -1
  388. package/fesm2015/theseam-ui-common-storage.mjs +3 -3
  389. package/fesm2015/theseam-ui-common-story-helpers.mjs +25 -25
  390. package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
  391. package/fesm2015/theseam-ui-common-tabbed.mjs +31 -31
  392. package/fesm2015/theseam-ui-common-tabbed.mjs.map +1 -1
  393. package/fesm2015/theseam-ui-common-table-cell-type.mjs +10 -10
  394. package/fesm2015/theseam-ui-common-table-cell-types.mjs +80 -80
  395. package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
  396. package/fesm2015/theseam-ui-common-table.mjs +14 -14
  397. package/fesm2015/theseam-ui-common-table.mjs.map +1 -1
  398. package/fesm2015/theseam-ui-common-tel-input.mjs +59 -59
  399. package/fesm2015/theseam-ui-common-tel-input.mjs.map +1 -1
  400. package/fesm2015/theseam-ui-common-tiled-select.mjs +46 -46
  401. package/fesm2015/theseam-ui-common-tiled-select.mjs.map +1 -1
  402. package/fesm2015/theseam-ui-common-toggle-edit.mjs +28 -28
  403. package/fesm2015/theseam-ui-common-toggle-edit.mjs.map +1 -1
  404. package/fesm2015/theseam-ui-common-toggle-group.mjs +18 -18
  405. package/fesm2015/theseam-ui-common-toggle-group.mjs.map +1 -1
  406. package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs +13 -13
  407. package/fesm2015/theseam-ui-common-utils.mjs.map +1 -1
  408. package/fesm2015/theseam-ui-common-viewers.mjs +93 -93
  409. package/fesm2015/theseam-ui-common-viewers.mjs.map +1 -1
  410. package/fesm2015/theseam-ui-common-widget.mjs +175 -175
  411. package/fesm2015/theseam-ui-common-widget.mjs.map +1 -1
  412. package/fesm2015/theseam-ui-common.mjs +0 -41
  413. package/fesm2015/theseam-ui-common.mjs.map +1 -1
  414. package/fesm2020/theseam-ui-common-asset-reader.mjs +18 -18
  415. package/fesm2020/theseam-ui-common-asset-reader.mjs.map +1 -1
  416. package/fesm2020/theseam-ui-common-breadcrumbs.mjs +10 -10
  417. package/fesm2020/theseam-ui-common-buttons.mjs +26 -26
  418. package/fesm2020/theseam-ui-common-buttons.mjs.map +1 -1
  419. package/fesm2020/theseam-ui-common-card.mjs +19 -19
  420. package/fesm2020/theseam-ui-common-checkbox.mjs +46 -46
  421. package/fesm2020/theseam-ui-common-checkbox.mjs.map +1 -1
  422. package/fesm2020/theseam-ui-common-confirm-dialog.mjs +18 -18
  423. package/fesm2020/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  424. package/fesm2020/theseam-ui-common-core.mjs +18 -18
  425. package/fesm2020/theseam-ui-common-core.mjs.map +1 -1
  426. package/fesm2020/theseam-ui-common-data-exporter.mjs +10 -10
  427. package/fesm2020/theseam-ui-common-data-filters.mjs +32 -32
  428. package/fesm2020/theseam-ui-common-data-filters.mjs.map +1 -1
  429. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +46 -46
  430. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  431. package/fesm2020/theseam-ui-common-datatable.mjs +208 -208
  432. package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
  433. package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs +7 -7
  434. package/fesm2020/theseam-ui-common-dynamic.mjs +21 -21
  435. package/fesm2020/theseam-ui-common-footer-bar.mjs +7 -7
  436. package/fesm2020/theseam-ui-common-form-field-error.mjs +104 -104
  437. package/fesm2020/theseam-ui-common-form-field-error.mjs.map +1 -1
  438. package/fesm2020/theseam-ui-common-form-field.mjs +107 -107
  439. package/fesm2020/theseam-ui-common-form-field.mjs.map +1 -1
  440. package/fesm2020/theseam-ui-common-framework.mjs +196 -196
  441. package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
  442. package/fesm2020/theseam-ui-common-google-maps.mjs +78 -78
  443. package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
  444. package/fesm2020/theseam-ui-common-graphql.mjs +7 -7
  445. package/fesm2020/theseam-ui-common-graphql.mjs.map +1 -1
  446. package/fesm2020/theseam-ui-common-icon.mjs +33 -33
  447. package/fesm2020/theseam-ui-common-icon.mjs.map +1 -1
  448. package/fesm2020/theseam-ui-common-layout.mjs +7 -7
  449. package/fesm2020/theseam-ui-common-loading.mjs +13 -13
  450. package/fesm2020/theseam-ui-common-loading.mjs.map +1 -1
  451. package/fesm2020/theseam-ui-common-menu.mjs +77 -77
  452. package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
  453. package/fesm2020/theseam-ui-common-modal.mjs +85 -85
  454. package/fesm2020/theseam-ui-common-modal.mjs.map +1 -1
  455. package/fesm2020/theseam-ui-common-popover.mjs +52 -52
  456. package/fesm2020/theseam-ui-common-popover.mjs.map +1 -1
  457. package/fesm2020/theseam-ui-common-progress.mjs +12 -12
  458. package/fesm2020/theseam-ui-common-progress.mjs.map +1 -1
  459. package/fesm2020/theseam-ui-common-scrollbar.mjs +16 -16
  460. package/fesm2020/theseam-ui-common-scrollbar.mjs.map +1 -1
  461. package/fesm2020/theseam-ui-common-services.mjs +9 -9
  462. package/fesm2020/theseam-ui-common-shared.mjs +84 -84
  463. package/fesm2020/theseam-ui-common-shared.mjs.map +1 -1
  464. package/fesm2020/theseam-ui-common-storage.mjs +3 -3
  465. package/fesm2020/theseam-ui-common-story-helpers.mjs +25 -25
  466. package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
  467. package/fesm2020/theseam-ui-common-tabbed.mjs +31 -31
  468. package/fesm2020/theseam-ui-common-tabbed.mjs.map +1 -1
  469. package/fesm2020/theseam-ui-common-table-cell-type.mjs +10 -10
  470. package/fesm2020/theseam-ui-common-table-cell-types.mjs +80 -80
  471. package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
  472. package/fesm2020/theseam-ui-common-table.mjs +14 -14
  473. package/fesm2020/theseam-ui-common-table.mjs.map +1 -1
  474. package/fesm2020/theseam-ui-common-tel-input.mjs +57 -57
  475. package/fesm2020/theseam-ui-common-tel-input.mjs.map +1 -1
  476. package/fesm2020/theseam-ui-common-tiled-select.mjs +46 -46
  477. package/fesm2020/theseam-ui-common-tiled-select.mjs.map +1 -1
  478. package/fesm2020/theseam-ui-common-toggle-edit.mjs +28 -28
  479. package/fesm2020/theseam-ui-common-toggle-edit.mjs.map +1 -1
  480. package/fesm2020/theseam-ui-common-toggle-group.mjs +18 -18
  481. package/fesm2020/theseam-ui-common-toggle-group.mjs.map +1 -1
  482. package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs +13 -13
  483. package/fesm2020/theseam-ui-common-utils.mjs.map +1 -1
  484. package/fesm2020/theseam-ui-common-viewers.mjs +93 -93
  485. package/fesm2020/theseam-ui-common-viewers.mjs.map +1 -1
  486. package/fesm2020/theseam-ui-common-widget.mjs +175 -175
  487. package/fesm2020/theseam-ui-common-widget.mjs.map +1 -1
  488. package/fesm2020/theseam-ui-common.mjs +0 -41
  489. package/fesm2020/theseam-ui-common.mjs.map +1 -1
  490. package/framework/base-layout/base-layout-action.d.ts +1 -1
  491. package/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.d.ts +1 -1
  492. package/framework/side-nav/side-nav.models.d.ts +1 -1
  493. package/google-maps/google-maps/google-maps.component.d.ts +0 -1
  494. package/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.d.ts +0 -4
  495. package/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.d.ts +0 -4
  496. package/google-maps/google-maps.service.d.ts +0 -2
  497. package/google-maps/map-controls-service.d.ts +0 -1
  498. package/google-maps/map-value-manager.service.d.ts +1 -1
  499. package/graphql/datatable/datatable-graphql-query-ref.d.ts +2 -2
  500. package/graphql/datatable/datatable-graphql.service.d.ts +1 -1
  501. package/graphql/datatable/datatable-helpers.d.ts +2 -2
  502. package/graphql/datatable/map-filter-states.d.ts +2 -2
  503. package/graphql/datatable/map-page-info.d.ts +1 -1
  504. package/graphql/datatable/mapper-context.d.ts +1 -1
  505. package/graphql/models/gql-datatable-accessor.d.ts +1 -1
  506. package/graphql/models/hint-transformer.d.ts +1 -1
  507. package/icon/icon/icon.component.d.ts +1 -1
  508. package/icon/icon.d.ts +1 -1
  509. package/layout/breakpoint-aliases.d.ts +1 -1
  510. package/loading/loading.models.d.ts +1 -1
  511. package/modal/modal-config.d.ts +1 -1
  512. package/models/component-type.d.ts +1 -1
  513. package/models/size-prefixes.d.ts +1 -1
  514. package/models/size-types.d.ts +1 -1
  515. package/models/theme-prefixes.d.ts +1 -1
  516. package/models/theme-types.d.ts +2 -2
  517. package/package.json +2 -2
  518. package/scrollbar/overlay-scrollbars-config-model.d.ts +1 -1
  519. package/services/font-loader.service.d.ts +1 -1
  520. package/styles/bootstrap/_bootstrap.scss +34 -34
  521. package/styles/bootstrap/_bs-utilities.scss +3 -3
  522. package/styles/theme.scss +3 -3
  523. package/styles/vendor/ngx-datatable/_ngx-datatable.scss +1 -1
  524. package/styles/vendor/quill/_quill.scss +3 -3
  525. package/table/table/table.component.d.ts +1 -1
  526. package/table-cell-type/table-cell-type-models.d.ts +3 -3
  527. package/table-cell-type/table-cell-type-name.d.ts +1 -1
  528. package/table-cell-types/table-cell-type-currency/table-cell-type-currency-config.d.ts +1 -1
  529. package/table-cell-types/table-cell-type-currency/table-cell-type-currency.d.ts +1 -1
  530. package/table-cell-types/table-cell-type-date/table-cell-type-date.d.ts +1 -1
  531. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal-config.d.ts +1 -1
  532. package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.d.ts +1 -1
  533. package/table-cell-types/table-cell-type-icon/table-cell-type-icon-config.d.ts +1 -1
  534. package/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.d.ts +1 -1
  535. package/table-cell-types/table-cell-type-integer/table-cell-type-integer-config.d.ts +1 -1
  536. package/table-cell-types/table-cell-type-integer/table-cell-type-integer.d.ts +1 -1
  537. package/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle-config.d.ts +1 -1
  538. package/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon-config.d.ts +1 -1
  539. package/table-cell-types/table-cell-type-string/table-cell-type-string-config.d.ts +1 -1
  540. package/table-cell-types/table-cell-type-string/table-cell-type-string.component.d.ts +1 -1
  541. package/tel-input/utils/coerce-phone-number-format.d.ts +1 -1
  542. package/tiled-select/components/tiled-select/tiled-select.component.d.ts +1 -1
  543. package/tiled-select/tiled-select.models.d.ts +2 -2
  544. package/utils/polling-ticker.d.ts +1 -1
  545. package/utils/subscriber-count.d.ts +1 -1
  546. package/widget/directives/widget-drag-handle.directive.d.ts +1 -1
@@ -12,6 +12,94 @@ import * as i2 from "../form-field-error/form-field-error.component";
12
12
  * TODO: Cleanup remaining code from before refactor.
13
13
  */
14
14
  export class FormFieldErrorListComponent {
15
+ get _display() {
16
+ return this.showErrors ? 'block' : 'none';
17
+ }
18
+ set errors(records) {
19
+ // if (val instanceof Array) {
20
+ // this._errors = val
21
+ // } else {
22
+ // const errs = []
23
+ // for (const k in val) {
24
+ // if (val[k]) {
25
+ // const err = val[k]
26
+ // const newErr = {
27
+ // validatorName: k,
28
+ // error: err,
29
+ // message: '',
30
+ // template: err.template,
31
+ // external: !!err.external
32
+ // }
33
+ // if (err.message) {
34
+ // const msgTmp = err.message
35
+ // if (typeof msgTmp === 'string') {
36
+ // newErr.message = msgTmp
37
+ // } else if (typeof msgTmp === 'function') {
38
+ // newErr.message = msgTmp(err)
39
+ // }
40
+ // } else if (FormFieldErrorListComponent.defaultMessages[k]) {
41
+ // const defaultMsg = FormFieldErrorListComponent.defaultMessages[k]
42
+ // if (typeof defaultMsg === 'string') {
43
+ // newErr.message = defaultMsg
44
+ // } else if (typeof defaultMsg === 'function') {
45
+ // newErr.message = defaultMsg(err)
46
+ // }
47
+ // }
48
+ // errs.push(newErr)
49
+ // }
50
+ // }
51
+ // this._errors = errs
52
+ // }
53
+ this._initErrorInput(records || []);
54
+ }
55
+ // private errorTpl: TemplateRef<any>
56
+ // private _listItemTpls: QueryList<FormFieldErrorListItemTplDirective>
57
+ // private listItemTplsObj = {}
58
+ set _listItemTpls(val) {
59
+ this._initErrorTemplates(val);
60
+ }
61
+ set listItemTpls(val) {
62
+ this._initErrorTemplates(val);
63
+ // for (const v of val.toArray()) {
64
+ // if (v.validatorName !== undefined) {
65
+ // this.listItemTplsObj[v.validatorName] = v
66
+ // }
67
+ // }
68
+ // const tmp = val.find(v => v.validatorName === undefined)
69
+ // if (tmp) {
70
+ // this.errorTpl = tmp.template
71
+ // }
72
+ // this._listItemTpls = val
73
+ }
74
+ get control() { return this._control; }
75
+ set control(value) {
76
+ this._control = value;
77
+ if (value) {
78
+ this._initControlListeners(value);
79
+ }
80
+ }
81
+ set showErrors(val) {
82
+ this._showErrors = val;
83
+ }
84
+ get showErrors() {
85
+ let show = this._showErrors;
86
+ if (show && this.control) {
87
+ if (this.numPaddingErrors > 0) {
88
+ show = true;
89
+ }
90
+ else {
91
+ show = !!(this.control.invalid && (this.control.dirty || this.control.touched));
92
+ }
93
+ }
94
+ return show;
95
+ }
96
+ get showControlErrors() {
97
+ let show = false;
98
+ if (this.control && this.showErrors) {
99
+ show = !!(this.control.invalid && (this.control.dirty || this.control.touched));
100
+ }
101
+ return show;
102
+ }
15
103
  constructor() {
16
104
  this._defaultMessages = {
17
105
  // required: () => 'Required',
@@ -122,94 +210,6 @@ export class FormFieldErrorListComponent {
122
210
  }))
123
211
  .pipe(shareReplay(1));
124
212
  }
125
- get _display() {
126
- return this.showErrors ? 'block' : 'none';
127
- }
128
- set errors(records) {
129
- // if (val instanceof Array) {
130
- // this._errors = val
131
- // } else {
132
- // const errs = []
133
- // for (const k in val) {
134
- // if (val[k]) {
135
- // const err = val[k]
136
- // const newErr = {
137
- // validatorName: k,
138
- // error: err,
139
- // message: '',
140
- // template: err.template,
141
- // external: !!err.external
142
- // }
143
- // if (err.message) {
144
- // const msgTmp = err.message
145
- // if (typeof msgTmp === 'string') {
146
- // newErr.message = msgTmp
147
- // } else if (typeof msgTmp === 'function') {
148
- // newErr.message = msgTmp(err)
149
- // }
150
- // } else if (FormFieldErrorListComponent.defaultMessages[k]) {
151
- // const defaultMsg = FormFieldErrorListComponent.defaultMessages[k]
152
- // if (typeof defaultMsg === 'string') {
153
- // newErr.message = defaultMsg
154
- // } else if (typeof defaultMsg === 'function') {
155
- // newErr.message = defaultMsg(err)
156
- // }
157
- // }
158
- // errs.push(newErr)
159
- // }
160
- // }
161
- // this._errors = errs
162
- // }
163
- this._initErrorInput(records || []);
164
- }
165
- // private errorTpl: TemplateRef<any>
166
- // private _listItemTpls: QueryList<FormFieldErrorListItemTplDirective>
167
- // private listItemTplsObj = {}
168
- set _listItemTpls(val) {
169
- this._initErrorTemplates(val);
170
- }
171
- set listItemTpls(val) {
172
- this._initErrorTemplates(val);
173
- // for (const v of val.toArray()) {
174
- // if (v.validatorName !== undefined) {
175
- // this.listItemTplsObj[v.validatorName] = v
176
- // }
177
- // }
178
- // const tmp = val.find(v => v.validatorName === undefined)
179
- // if (tmp) {
180
- // this.errorTpl = tmp.template
181
- // }
182
- // this._listItemTpls = val
183
- }
184
- get control() { return this._control; }
185
- set control(value) {
186
- this._control = value;
187
- if (value) {
188
- this._initControlListeners(value);
189
- }
190
- }
191
- set showErrors(val) {
192
- this._showErrors = val;
193
- }
194
- get showErrors() {
195
- let show = this._showErrors;
196
- if (show && this.control) {
197
- if (this.numPaddingErrors > 0) {
198
- show = true;
199
- }
200
- else {
201
- show = !!(this.control.invalid && (this.control.dirty || this.control.touched));
202
- }
203
- }
204
- return show;
205
- }
206
- get showControlErrors() {
207
- let show = false;
208
- if (this.control && this.showErrors) {
209
- show = !!(this.control.invalid && (this.control.dirty || this.control.touched));
210
- }
211
- return show;
212
- }
213
213
  ngOnInit() { }
214
214
  ngOnDestroy() {
215
215
  this._valueChangeSub.unsubscribe();
@@ -355,9 +355,9 @@ FormFieldErrorListComponent.defaultMessages = {
355
355
  // maxlength: (params) => 'The max allowed number of characters is ' + params.requiredLength,
356
356
  // pattern: (params) => 'The required pattern is: ' + params.requiredPattern
357
357
  };
358
- FormFieldErrorListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: FormFieldErrorListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
359
- FormFieldErrorListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: FormFieldErrorListComponent, selector: "seam-form-field-error-list", inputs: { errors: "errors", showValidatorName: "showValidatorName", numPaddingErrors: "numPaddingErrors", listItemTpls: "listItemTpls", maxErrors: "maxErrors", control: "control", showErrors: "showErrors" }, host: { properties: { "style.display": "this._display" } }, queries: [{ propertyName: "_listItemTpls", predicate: FormFieldErrorListItemTplDirective }], ngImport: i0, template: "<ng-container *ngFor=\"let record of displayRecords$ | async\">\n <ng-container *ngIf=\"record.template; else noTemplate\">\n <div>\n <ng-template\n [ngTemplateOutlet]=\"record.template\"\n [ngTemplateOutletContext]=\"{ $implicit: record.error, errors: record._errors }\">\n </ng-template>\n </div>\n </ng-container>\n <ng-template #noTemplate>\n <seam-form-field-error\n [validatorName]=\"record.validatorName\"\n [message]=\"record.message\"\n [showValidatorName]=\"showValidatorName\">\n </seam-form-field-error>\n </ng-template>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.FormFieldErrorComponent, selector: "seam-form-field-error", inputs: ["validatorName", "message", "showValidatorName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
360
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: FormFieldErrorListComponent, decorators: [{
358
+ FormFieldErrorListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: FormFieldErrorListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
359
+ FormFieldErrorListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: FormFieldErrorListComponent, selector: "seam-form-field-error-list", inputs: { errors: "errors", showValidatorName: "showValidatorName", numPaddingErrors: "numPaddingErrors", listItemTpls: "listItemTpls", maxErrors: "maxErrors", control: "control", showErrors: "showErrors" }, host: { properties: { "style.display": "this._display" } }, queries: [{ propertyName: "_listItemTpls", predicate: FormFieldErrorListItemTplDirective }], ngImport: i0, template: "<ng-container *ngFor=\"let record of displayRecords$ | async\">\n <ng-container *ngIf=\"record.template; else noTemplate\">\n <div>\n <ng-template\n [ngTemplateOutlet]=\"record.template\"\n [ngTemplateOutletContext]=\"{ $implicit: record.error, errors: record._errors }\">\n </ng-template>\n </div>\n </ng-container>\n <ng-template #noTemplate>\n <seam-form-field-error\n [validatorName]=\"record.validatorName\"\n [message]=\"record.message\"\n [showValidatorName]=\"showValidatorName\">\n </seam-form-field-error>\n </ng-template>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.FormFieldErrorComponent, selector: "seam-form-field-error", inputs: ["validatorName", "message", "showValidatorName"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
360
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: FormFieldErrorListComponent, decorators: [{
361
361
  type: Component,
362
362
  args: [{ selector: 'seam-form-field-error-list', template: "<ng-container *ngFor=\"let record of displayRecords$ | async\">\n <ng-container *ngIf=\"record.template; else noTemplate\">\n <div>\n <ng-template\n [ngTemplateOutlet]=\"record.template\"\n [ngTemplateOutletContext]=\"{ $implicit: record.error, errors: record._errors }\">\n </ng-template>\n </div>\n </ng-container>\n <ng-template #noTemplate>\n <seam-form-field-error\n [validatorName]=\"record.validatorName\"\n [message]=\"record.message\"\n [showValidatorName]=\"showValidatorName\">\n </seam-form-field-error>\n </ng-template>\n</ng-container>\n" }]
363
363
  }], ctorParameters: function () { return []; }, propDecorators: { _display: [{
@@ -381,4 +381,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImpor
381
381
  }], showErrors: [{
382
382
  type: Input
383
383
  }] } });
384
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1lcnJvci1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mb3JtLWZpZWxkLWVycm9yL2Zvcm0tZmllbGQtZXJyb3ItbGlzdC9mb3JtLWZpZWxkLWVycm9yLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2Zvcm0tZmllbGQtZXJyb3IvZm9ybS1maWVsZC1lcnJvci1saXN0L2Zvcm0tZmllbGQtZXJyb3ItbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBVyxXQUFXLEVBQUUsS0FBSyxFQUE2QyxNQUFNLGVBQWUsQ0FBQTtBQUVsSSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDL0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFbEYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNENBQTRDLENBQUE7Ozs7QUFhL0Y7Ozs7O0dBS0c7QUFNSCxNQUFNLE9BQU8sMkJBQTJCO0lBNk50QztRQWhOaUIscUJBQWdCLEdBQW1FO1FBQ2xHLDhCQUE4QjtRQUM5QixxRkFBcUY7UUFDckYsNkZBQTZGO1FBQzdGLDRFQUE0RTtTQUM3RSxDQUFBO1FBRU8sWUFBTyxHQUFVLEVBQUUsQ0FBQTtRQUVwQixtQkFBYyxHQUFHLEVBQUUsQ0FBQTtRQTRDMUIsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUVsQix3QkFBd0I7UUFDeEIsNEJBQTRCO1FBQzVCLDRCQUE0QjtRQUM1QixlQUFlO1FBQ2YseUNBQXlDO1FBQ3pDLHdGQUF3RjtRQUN4Riw0Q0FBNEM7UUFDNUMsd0RBQXdEO1FBQ3hELGVB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QUFHLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQ3JFLEtBQUssTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFO1lBQ3RCLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDL0IsT0FBTyxJQUFJLENBQUE7YUFDWjtTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDOztBQWhhdUIsMkNBQWUsR0FBbUU7QUFDeEcsOEJBQThCO0FBQzlCLHFGQUFxRjtBQUNyRiw2RkFBNkY7QUFDN0YsNEVBQTRFO0NBQzdFLENBQUE7d0hBWFUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsNFdBMElyQixrQ0FBa0MsNkJDdktyRCxnbUJBaUJBOzJGRFlhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSw0QkFBNEI7MEVBTUosUUFBUTtzQkFBekMsV0FBVzt1QkFBQyxlQUFlO2dCQXVCeEIsTUFBTTtzQkFEVCxLQUFLO2dCQXlHRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQVFGLGFBQWE7c0JBRGhCLGVBQWU7dUJBQUMsa0NBQWtDO2dCQU0vQyxZQUFZO3NCQURmLEtBQUs7Z0JBc0JHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0YsT0FBTztzQkFEVixLQUFLO2dCQXlCRixVQUFVO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRG9DaGVjaywgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEFic3RyYWN0Q29udHJvbERpcmVjdGl2ZSwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBGb3JtRmllbGRFcnJvckxpc3RJdGVtVHBsRGlyZWN0aXZlIH0gZnJvbSAnLi9mb3JtLWZpZWxkLWVycm9yLWxpc3QtaXRlbS10cGwuZGlyZWN0aXZlJ1xuXG5leHBvcnQgaW50ZXJmYWNlIElFcnJvclJlY29yZCB7XG4gIHZhbGlkYXRvck5hbWU6IHN0cmluZ1xuICBlcnJvcjogYW55LFxuICBtZXNzYWdlPzogc3RyaW5nXG4gIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PlxuXG4gIGV4dGVybmFsPzogYm9vbGVhblxuXG4gIF9lcnJvcnM/OiBWYWxpZGF0aW9uRXJyb3JzXG59XG5cbi8qKlxuICogTk9URTogVGhpcyBjbGFzcyBoYXMgc29tZSBpc3N1ZXMgd2l0aCBmaWx0ZXJpbmcgZHVwbGljYXRlIHZhbGlkYXRvcnMuIFRoZVxuICogaW5wdXRzIHdpbGwgYmUgY2xlYW5lZCB1cCBzb29uIHRvIGZpeCB0aGUgaW5wdXQgY29uZnVzaW9uLlxuICpcbiAqIFRPRE86IENsZWFudXAgcmVtYWluaW5nIGNvZGUgZnJvbSBiZWZvcmUgcmVmYWN0b3IuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0tZm9ybS1maWVsZC1lcnJvci1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQtZXJyb3ItbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZmllbGQtZXJyb3ItbGlzdC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZEVycm9yTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBEb0NoZWNrIHtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmRpc3BsYXknKSBnZXQgX2Rpc3BsYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0Vycm9ycyA/ICdibG9jaycgOiAnbm9uZSdcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGRlZmF1bHRNZXNzYWdlczogeyBbbmFtZTogc3RyaW5nXTogKChwYXJhbXM6IGFueSkgPT4gc3RyaW5nKSB8ICgoKSA9PiBzdHJpbmcpIH0gPSB7XG4gICAgLy8gcmVxdWlyZWQ6ICgpID0+ICdSZXF1aXJlZCcsXG4gICAgLy8gbWlubGVuZ3RoOiAocGFyYW1zKSA9PiAnVGhlIG1pbiBudW1iZXIgb2YgY2hhcmFjdGVycyBpcyAnICsgcGFyYW1zLnJlcXVpcmVkTGVuZ3RoLFxuICAgIC8vIG1heGxlbmd0aDogKHBhcmFtcykgPT4gJ1RoZSBtYXggYWxsb3dlZCBudW1iZXIgb2YgY2hhcmFjdGVycyBpcyAnICsgcGFyYW1zLnJlcXVpcmVkTGVuZ3RoLFxuICAgIC8vIHBhdHRlcm46IChwYXJhbXMpID0+ICdUaGUgcmVxdWlyZWQgcGF0dGVybiBpczogJyArIHBhcmFtcy5yZXF1aXJlZFBhdHRlcm5cbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlZmF1bHRNZXNzYWdlczogeyBbbmFtZTogc3RyaW5nXTogKChwYXJhbXM6IGFueSkgPT4gc3RyaW5nKSB8ICgoKSA9PiBzdHJpbmcpIH0gPSB7XG4gICAgLy8gcmVxdWlyZWQ6ICgpID0+ICdSZXF1aXJlZCcsXG4gICAgLy8gbWlubGVuZ3RoOiAocGFyYW1zKSA9PiAnVGhlIG1pbiBudW1iZXIgb2YgY2hhcmFjdGVycyBpcyAnICsgcGFyYW1zLnJlcXVpcmVkTGVuZ3RoLFxuICAgIC8vIG1heGxlbmd0aDogKHBhcmFtcykgPT4gJ1RoZSBtYXggYWxsb3dlZCBudW1iZXIgb2YgY2hhcmFjdGVycyBpcyAnICsgcGFyYW1zLnJlcXVpcmVkTGVuZ3RoLFxuICAgIC8vIHBhdHRlcm46IChwYXJhbXMpID0+ICdUaGUgcmVxdWlyZWQgcGF0dGVybiBpczogJyArIHBhcmFtcy5yZXF1aXJlZFBhdHRlcm5cbiAgfVxuXG4gIHByaXZhdGUgX2Vycm9yczogYW55W10gPSBbXVxuXG4gIHB1YmxpYyBfcGFkZGluZ0Vycm9ycyA9IFtdXG5cbiAgQElucHV0KClcbiAgc2V0IGVycm9ycyhyZWNvcmRzOiBJRXJyb3JSZWNvcmRbXSB8IHVuZGVmaW5lZCB8IG51bGwpIHtcbiAgICAvLyBpZiAodmFsIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAvLyAgIHRoaXMuX2Vycm9ycyA9IHZhbFxuICAgIC8vIH0gZWxzZSB7XG4gICAgLy8gICBjb25zdCBlcnJzID0gW11cbiAgICAvLyAgIGZvciAoY29uc3QgayBpbiB2YWwpIHtcbiAgICAvLyAgICAgaWYgKHZhbFtrXSkge1xuICAgIC8vICAgICAgIGNvbnN0IGVyciA9IHZhbFtrXVxuICAgIC8vICAgICAgIGNvbnN0IG5ld0VyciA9IHtcbiAgICAvLyAgICAgICAgIHZhbGlkYXRvck5hbWU6IGssXG4gICAgLy8gICAgICAgICBlcnJvcjogZXJyLFxuICAgIC8vICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgLy8gICAgICAgICB0ZW1wbGF0ZTogZXJyLnRlbXBsYXRlLFxuICAgIC8vICAgICAgICAgZXh0ZXJuYWw6ICEhZXJyLmV4dGVybmFsXG4gICAgLy8gICAgICAgfVxuXG4gICAgLy8gICAgICAgaWYgKGVyci5tZXNzYWdlKSB7XG4gICAgLy8gICAgICAgICBjb25zdCBtc2dUbXAgPSBlcnIubWVzc2FnZVxuICAgIC8vICAgICAgICAgaWYgKHR5cGVvZiBtc2dUbXAgPT09ICdzdHJpbmcnKSB7XG4gICAgLy8gICAgICAgICAgIG5ld0Vyci5tZXNzYWdlID0gbXNnVG1wXG4gICAgLy8gICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBtc2dUbXAgPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyAgICAgICAgICAgbmV3RXJyLm1lc3NhZ2UgPSBtc2dUbXAoZXJyKVxuICAgIC8vICAgICAgICAgfVxuICAgIC8vICAgICAgIH0gZWxzZSBpZiAoRm9ybUZpZWxkRXJyb3JMaXN0Q29tcG9uZW50LmRlZmF1bHRNZXNzYWdlc1trXSkge1xuICAgIC8vICAgICAgICAgY29uc3QgZGVmYXVsdE1zZyA9IEZvcm1GaWVsZEVycm9yTGlzdENvbXBvbmVudC5kZWZhdWx0TWVzc2FnZXNba11cbiAgICAvLyAgICAgICAgIGlmICh0eXBlb2YgZGVmYXVsdE1zZyA9PT0gJ3N0cmluZycpIHtcbiAgICAvLyAgICAgICAgICAgbmV3RXJyLm1lc3NhZ2UgPSBkZWZhdWx0TXNnXG4gICAgLy8gICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZhdWx0TXNnID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gICAgICAgICAgIG5ld0Vyci5tZXNzYWdlID0gZGVmYXVsdE1zZyhlcnIpXG4gICAgLy8gICAgICAgICB9XG4gICAgLy8gICAgICAgfVxuXG4gICAgLy8gICAgICAgZXJycy5wdXNoKG5ld0VycilcbiAgICAvLyAgICAgfVxuICAgIC8vICAgfVxuICAgIC8vICAgdGhpcy5fZXJyb3JzID0gZXJyc1xuICAgIC8vIH1cblxuICAgIHRoaXMuX2luaXRFcnJvcklucHV0KHJlY29yZHMgfHwgW10pXG4gIH1cblxuICAvLyBnZXQgZXJyb3JzKCkge1xuICAvLyAgIGxldCBlcnJzID0gW11cblxuICAvLyAgIGlmICh0aGlzLl9lcnJvcnMpIHtcbiAgLy8gICAgIGlmICghdGhpcy5tZXNzYWdlcykge1xuICAvLyAgICAgICBlcnJzID0gdGhpcy5fZXJyb3JzXG4gIC8vICAgICB9IGVsc2Uge1xuICAvLyAgICAgICBlcnJzID0gdGhpcy5fZXJyb3JzLm1hcChlcnIgPT4ge1xuICAvLyAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VzICYmIGVyci52YWxpZGF0b3JOYW1lICYmIHRoaXMubWVzc2FnZXNbZXJyLnZhbGlkYXRvck5hbWVdKSB7XG4gIC8vICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgZXJyLCB7XG4gIC8vICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZXNbZXJyLnZhbGlkYXRvck5hbWVdXG4gIC8vICAgICAgICAgICB9KVxuICAvLyAgICAgICAgIH0gZWxzZSB7XG4gIC8vICAgICAgICAgICByZXR1cm4gZXJyXG4gIC8vICAgICAgICAgfVxuICAvLyAgICAgICB9KVxuICAvLyAgICAgfVxuICAvLyAgIH1cblxuICAvLyAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgLy8gICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuY29udHJvbC5lcnJvcnMpIHtcbiAgLy8gICAgICAgaWYgKHRoaXMuY29udHJvbC5lcnJvcnNba2V5XSkge1xuICAvLyAgICAgICAgIGNvbnN0IGVyciA9IHRoaXMuY29udHJvbC5lcnJvcnNba2V5XVxuXG4gIC8vICAgICAgICAgY29uc3QgbmV3RXJyID0ge1xuICAvLyAgICAgICAgICAgdmFsaWRhdG9yTmFtZToga2V5LFxuICAvLyAgICAgICAgICAgZXJyb3I6IGVycixcbiAgLy8gICAgICAgICAgIG1lc3NhZ2U6ICcnLFxuICAvLyAgICAgICAgICAgZXh0ZXJuYWw6IGZhbHNlXG4gIC8vICAgICAgICAgfVxuXG4gIC8vICAgICAgICAgaWYgKEZvcm1GaWVsZEVycm9yTGlzdENvbXBvbmVudC5kZWZhdWx0TWVzc2FnZXNba2V5XSkge1xuICAvLyAgICAgICAgICAgY29uc3QgZGVmYXVsdE1zZyA9IEZvcm1GaWVsZEVycm9yTGlzdENvbXBvbmVudC5kZWZhdWx0TWVzc2FnZXNba2V5XVxuICAvLyAgICAgICAgICAgaWYgKHR5cGVvZiBkZWZhdWx0TXNnID09PSAnc3RyaW5nJykge1xuICAvLyAgICAgICAgICAgICBuZXdFcnIubWVzc2FnZSA9IGRlZmF1bHRNc2dcbiAgLy8gICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGRlZmF1bHRNc2cgPT09ICdmdW5jdGlvbicpIHtcbiAgLy8gICAgICAgICAgICAgbmV3RXJyLm1lc3NhZ2UgPSBkZWZhdWx0TXNnKGVycilcbiAgLy8gICAgICAgICAgIH1cbiAgLy8gICAgICAgICB9XG5cbiAgLy8gICAgICAgICBlcnJzID0gWyAuLi5lcnJzLCBuZXdFcnIgXVxuICAvLyAgICAgICB9XG4gIC8vICAgICB9XG4gIC8vICAgfVxuXG4gIC8vICAgaWYgKHRoaXMubWF4RXJyb3JzID49IDApIHtcbiAgLy8gICAgIGVycnMgPSBlcnJzLnNsaWNlKDAsIHRoaXMubWF4RXJyb3JzKVxuICAvLyAgIH1cblxuICAvLyAgIGNvbnN0IGNvdW50ID0gdGhpcy5zaG93Q29udHJvbEVycm9ycyA/IHRoaXMubnVtUGFkZGluZ0Vycm9ycyAtIGVycnMubGVuZ3RoIDogdGhpcy5udW1QYWRkaW5nRXJyb3JzXG4gIC8vICAgaWYgKGNvdW50ID4gMCkge1xuICAvLyAgICAgdGhpcy5fcGFkZGluZ0Vycm9ycyA9IFtdXG4gIC8vICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgLy8gICAgICAgdGhpcy5fcGFkZGluZ0Vycm9ycy5wdXNoKHsgdmFsaWRhdG9yTmFtZTogJ19fcGFkZGluZ19fJywgZXJyb3I6IHt9LCBtZXNzYWdlOiAnJywgZXh0ZXJuYWw6IGZhbHNlIH0pXG4gIC8vICAgICB9XG4gIC8vICAgfSBlbHNlIHtcbiAgLy8gICAgIHRoaXMuX3BhZGRpbmdFcnJvcnMgPSBbXVxuICAvLyAgIH1cblxuICAvLyAgIHJldHVybiBlcnJzXG4gIC8vIH1cblxuICAvLyBASW5wdXQoKSBtZXNzYWdlczogYW55ID0ge31cbiAgQElucHV0KCkgc2hvd1ZhbGlkYXRvck5hbWUgPSBmYWxzZVxuXG4gIEBJbnB1dCgpIG51bVBhZGRpbmdFcnJvcnMgPSAxXG5cbiAgLy8gcHJpdmF0ZSBlcnJvclRwbDogVGVtcGxhdGVSZWY8YW55PlxuXG4gIC8vIHByaXZhdGUgX2xpc3RJdGVtVHBsczogUXVlcnlMaXN0PEZvcm1GaWVsZEVycm9yTGlzdEl0ZW1UcGxEaXJlY3RpdmU+XG4gIC8vIHByaXZhdGUgbGlzdEl0ZW1UcGxzT2JqID0ge31cblxuICBAQ29udGVudENoaWxkcmVuKEZvcm1GaWVsZEVycm9yTGlzdEl0ZW1UcGxEaXJlY3RpdmUpXG4gIHNldCBfbGlzdEl0ZW1UcGxzKHZhbDogUXVlcnlMaXN0PEZvcm1GaWVsZEVycm9yTGlzdEl0ZW1UcGxEaXJlY3RpdmU+KSB7XG4gICAgdGhpcy5faW5pdEVycm9yVGVtcGxhdGVzKHZhbClcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBsaXN0SXRlbVRwbHModmFsOiBRdWVyeUxpc3Q8Rm9ybUZpZWxkRXJyb3JMaXN0SXRlbVRwbERpcmVjdGl2ZT4pIHtcbiAgICB0aGlzLl9pbml0RXJyb3JUZW1wbGF0ZXModmFsKVxuXG4gICAgLy8gZm9yIChjb25zdCB2IG9mIHZhbC50b0FycmF5KCkpIHtcbiAgICAvLyAgIGlmICh2LnZhbGlkYXRvck5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgIC8vICAgICB0aGlzLmxpc3RJdGVtVHBsc09ialt2LnZhbGlkYXRvck5hbWVdID0gdlxuICAgIC8vICAgfVxuICAgIC8vIH1cblxuICAgIC8vIGNvbnN0IHRtcCA9IHZhbC5maW5kKHYgPT4gdi52YWxpZGF0b3JOYW1lID09PSB1bmRlZmluZWQpXG4gICAgLy8gaWYgKHRtcCkge1xuICAgIC8vICAgdGhpcy5lcnJvclRwbCA9IHRtcC50ZW1wbGF0ZVxuICAgIC8vIH1cblxuICAgIC8vIHRoaXMuX2xpc3RJdGVtVHBscyA9IHZhbFxuICB9XG5cbiAgLy8gZ2V0IGxpc3RJdGVtVHBscygpOiBRdWVyeUxpc3Q8Rm9ybUZpZWxkRXJyb3JMaXN0SXRlbVRwbERpcmVjdGl2ZT4ge1xuICAvLyAgIHJldHVybiB0aGlzLl9saXN0SXRlbVRwbHNcbiAgLy8gfVxuXG4gIEBJbnB1dCgpIG1heEVycm9ycyA9IC0xXG5cbiAgQElucHV0KClcbiAgZ2V0IGNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sRGlyZWN0aXZlIHwgQWJzdHJhY3RDb250cm9sIHwgdW5kZWZpbmVkIHwgbnVsbCB7IHJldHVybiB0aGlzLl9jb250cm9sIH1cbiAgc2V0IGNvbnRyb2wodmFsdWU6IEFic3RyYWN0Q29udHJvbERpcmVjdGl2ZSB8IEFic3RyYWN0Q29udHJvbCB8IHVuZGVmaW5lZCB8IG51bGwpIHtcbiAgICB0aGlzLl9jb250cm9sID0gdmFsdWVcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2luaXRDb250cm9sTGlzdGVuZXJzKHZhbHVlKVxuICAgIH1cbiAgfVxuICBwcml2YXRlIF9jb250cm9sOiBBYnN0cmFjdENvbnRyb2xEaXJlY3RpdmUgfCBBYnN0cmFjdENvbnRyb2wgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgcHJpdmF0ZSBfdmFsdWVDaGFuZ2VTdWIgPSBTdWJzY3JpcHRpb24uRU1QVFlcbiAgcHJpdmF0ZSBfZXJyb3JUcGxzQ2hhbmdlU3ViID0gU3Vic2NyaXB0aW9uLkVNUFRZXG5cbiAgcHJpdmF0ZSBfY29udHJvbEVycm9ycyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUVycm9yUmVjb3JkW10+KFtdKVxuICBwcml2YXRlIF9lcnJvclRwbHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElFcnJvclJlY29yZFtdPihbXSlcbiAgcHJpdmF0ZSBfZXJyb3JJbnB1dCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUVycm9yUmVjb3JkW10+KFtdKVxuXG4gIHByaXZhdGUgX3Nob3dDb250cm9sRXJyb3JzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpXG5cbiAgcHVibGljIGRpc3BsYXlSZWNvcmRzJDogT2JzZXJ2YWJsZTxJRXJyb3JSZWNvcmRbXT5cbiAgcHVibGljIHNob3dDb250cm9sRXJyb3JzJDogT2JzZXJ2YWJsZTxib29sZWFuPlxuXG4gIHByaXZhdGUgX3Nob3dFcnJvcnMgPSB0cnVlXG5cbiAgQElucHV0KClcbiAgc2V0IHNob3dFcnJvcnModmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd0Vycm9ycyA9IHZhbFxuICB9XG5cbiAgZ2V0IHNob3dFcnJvcnMoKTogYm9vbGVhbiB7XG4gICAgbGV0IHNob3cgPSB0aGlzLl9zaG93RXJyb3JzXG5cbiAgICBpZiAoc2hvdyAmJiB0aGlzLmNvbnRyb2wpIHtcbiAgICAgIGlmICh0aGlzLm51bVBhZGRpbmdFcnJvcnMgPiAwKSB7XG4gICAgICAgIHNob3cgPSB0cnVlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzaG93ID0gISEodGhpcy5jb250cm9sLmludmFsaWQgJiYgKHRoaXMuY29udHJvbC5kaXJ0eSB8fCB0aGlzLmNvbnRyb2wudG91Y2hlZCkpXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNob3dcbiAgfVxuXG4gIGdldCBzaG93Q29udHJvbEVycm9ycygpOiBib29sZWFuIHtcbiAgICBsZXQgc2hvdyA9IGZhbHNlXG4gICAgaWYgKHRoaXMuY29udHJvbCAmJiB0aGlzLnNob3dFcnJvcnMpIHtcbiAgICAgIHNob3cgPSAhISh0aGlzLmNvbnRyb2wuaW52YWxpZCAmJiAodGhpcy5jb250cm9sLmRpcnR5IHx8IHRoaXMuY29udHJvbC50b3VjaGVkKSlcbiAgICB9XG5cbiAgICByZXR1cm4gc2hvd1xuICB9XG5cbiAgcHVibGljIGVycm9yUmVjb3JkcyQ6IE9ic2VydmFibGU8SUVycm9yUmVjb3JkW10+XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5zaG93Q29udHJvbEVycm9ycyQgPSB0aGlzLl9zaG93Q29udHJvbEVycm9yc1N1YmplY3QuYXNPYnNlcnZhYmxlKClcbiAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAucGlwZShzaGFyZVJlcGxheSgxKSlcblxuICAgIHRoaXMuZXJyb3JSZWNvcmRzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX2NvbnRyb2xFcnJvcnMsIHRoaXMuX2Vycm9yVHBscywgdGhpcy5fZXJyb3JJbnB1dF0pXG4gICAgICAucGlwZShtYXAoKFtjdHJsRXJycywgZXJyVHBscywgZXJyb3JJbnB1dF0pID0+IHRoaXMuX2NvbXBvc2VFcnJvcklucHV0cyhjdHJsRXJycywgZXJyVHBscywgZXJyb3JJbnB1dCkpKVxuICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoMSkpXG5cbiAgICB0aGlzLmRpc3BsYXlSZWNvcmRzJCA9IHRoaXMuZXJyb3JSZWNvcmRzJFxuICAgICAgLnBpcGUobWFwKHJlY29yZHMgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0UmVjb3JkczogSUVycm9yUmVjb3JkW10gPSBbXVxuXG4gICAgICAgIGlmICghdGhpcy5zaG93RXJyb3JzKSB7XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQgZXJycyA9IFsgLi4ucmVjb3JkcyBdXG5cbiAgICAgICAgICBpZiAodGhpcy5tYXhFcnJvcnMgPj0gMCkge1xuICAgICAgICAgICAgZXJycyA9IGVycnMuc2xpY2UoMCwgdGhpcy5tYXhFcnJvcnMpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgY291bnQgPSB0aGlzLnNob3dDb250cm9sRXJyb3JzID8gdGhpcy5udW1QYWRkaW5nRXJyb3JzIC0gZXJycy5sZW5ndGggOiB0aGlzLm51bVBhZGRpbmdFcnJvcnNcbiAgICAgICAgICBjb25zdCBwYWRkaW5nRXJyb3JzOiBJRXJyb3JSZWNvcmRbXSA9IFtdXG4gICAgICAgICAgaWYgKGNvdW50ID4gMCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgICAgICAgICAgIHBhZGRpbmdFcnJvcnMucHVzaCh7IHZhbGlkYXRvck5hbWU6ICdfX3BhZGRpbmdfXycsIGVycm9yOiB7fSwgbWVzc2FnZTogJycsIGV4dGVybmFsOiBmYWxzZSB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLnNob3dDb250cm9sRXJyb3JzKSB7XG4gICAgICAgICAgICByZXN1bHRSZWNvcmRzID0gWyAuLi5lcnJzLCAuLi5wYWRkaW5nRXJyb3JzIF1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0UmVjb3JkcyA9IFsgLi4ucGFkZGluZ0Vycm9ycyBdXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdFJlY29yZHNcbiAgICAgIH0pKVxuICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoMSkpXG4gIH1cblxuICBuZ09uSW5pdCgpIHsgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3ZhbHVlQ2hhbmdlU3ViLnVuc3Vic2NyaWJlKClcbiAgICB0aGlzLl9lcnJvclRwbHNDaGFuZ2VTdWIudW5zdWJzY3JpYmUoKVxuICB9XG5cbiAgbmdEb0NoZWNrKCkge1xuICAgIHRoaXMuX3Nob3dDb250cm9sRXJyb3JzU3ViamVjdC5uZXh0KHRoaXMuc2hvd0NvbnRyb2xFcnJvcnMpXG4gIH1cblxuICBwcml2YXRlIF9pbml0Q29udHJvbExpc3RlbmVycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2xEaXJlY3RpdmUgfCBBYnN0cmFjdENvbnRyb2wpOiB2b2lkIHtcbiAgICAvLyBVbnN1YnNjcmliZSBmcm9tIG9sZCBjb250cm9sIGNoYW5nZXNcbiAgICBpZiAodGhpcy5fdmFsdWVDaGFuZ2VTdWIgJiYgIXRoaXMuX3ZhbHVlQ2hhbmdlU3ViLmNsb3NlZCkge1xuICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VTdWIudW5zdWJzY3JpYmUoKVxuICAgIH1cblxuICAgIGlmIChjb250cm9sLnZhbHVlQ2hhbmdlcyAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VTdWIgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnNob3dDb250cm9sRXJyb3JzJCwgY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodW5kZWZpbmVkKSldKVxuICAgICAgICAucGlwZShzdGFydFdpdGgodW5kZWZpbmVkKSlcbiAgICAgICAgLnN1YnNjcmliZShfID0+IHRoaXMuX3VwZGF0ZUNvbnRyb2xFcnJvcnMoY29udHJvbC5lcnJvcnMpKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zZXRDb250cm9sRXJyb3JzKFtdKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUNvbnRyb2xFcnJvcnMoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCk6IHZvaWQge1xuICAgIGNvbnN0IGVycnM6IElFcnJvclJlY29yZFtdID0gW11cbiAgICBmb3IgKGNvbnN0IHZhbGlkYXRvck5hbWUgaW4gZXJyb3JzKSB7XG4gICAgICBpZiAoZXJyb3JzLmhhc093blByb3BlcnR5KHZhbGlkYXRvck5hbWUpKSB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gZXJyb3JzW3ZhbGlkYXRvck5hbWVdXG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLl9wYXJzZU1lc3NhZ2UodGhpcy5fZGVmYXVsdE1lc3NhZ2VzW3ZhbGlkYXRvck5hbWVdLCBlcnJvcilcbiAgICAgICAgY29uc3QgZXh0ZXJuYWwgPSBmYWxzZVxuICAgICAgICBlcnJzLnB1c2goeyB2YWxpZGF0b3JOYW1lLCBlcnJvciwgbWVzc2FnZSwgZXh0ZXJuYWwgfSlcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fc2V0Q29udHJvbEVycm9ycyhlcnJzKVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0Q29udHJvbEVycm9ycyhlcnJvcnM6IElFcnJvclJlY29yZFtdKSB7XG4gICAgdGhpcy5fY29udHJvbEVycm9ycy5uZXh0KGVycm9ycylcbiAgfVxuXG4gIHByaXZhdGUgX3BhcnNlTWVzc2FnZShtZXNzYWdlOiBhbnksIGVycm9yOiBhbnkpIHtcbiAgICBpZiAoIW1lc3NhZ2UpIHsgcmV0dXJuIH1cblxuICAgIGlmICh0eXBlb2YgbWVzc2FnZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBtZXNzYWdlXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgbWVzc2FnZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIG1lc3NhZ2UoZXJyb3IpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdEVycm9yVGVtcGxhdGVzKHRwbHNRdWVyeUxpc3Q6IFF1ZXJ5TGlzdDxGb3JtRmllbGRFcnJvckxpc3RJdGVtVHBsRGlyZWN0aXZlPikge1xuICAgIGlmICh0aGlzLl9lcnJvclRwbHNDaGFuZ2VTdWIgJiYgIXRoaXMuX2Vycm9yVHBsc0NoYW5nZVN1Yi5jbG9zZWQpIHtcbiAgICAgIHRoaXMuX2Vycm9yVHBsc0NoYW5nZVN1Yi51bnN1YnNjcmliZSgpXG4gICAgfVxuXG4gICAgaWYgKHRwbHNRdWVyeUxpc3QpIHtcbiAgICAgIHRoaXMuX2Vycm9yVHBsc0NoYW5nZVN1YiA9IHRwbHNRdWVyeUxpc3QuY2hhbmdlc1xuICAgICAgICAucGlwZShzdGFydFdpdGgodW5kZWZpbmVkKSlcbiAgICAgICAgLnN1YnNjcmliZShfID0+IHRoaXMuX3VwZGF0ZUVycm9yVGVtcGxhdGVzKHRwbHNRdWVyeUxpc3QudG9BcnJheSgpKSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fc2V0RXJyb3JUZW1wbGF0ZXMoW10pXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlRXJyb3JUZW1wbGF0ZXModHBsc0xpc3Q6IEZvcm1GaWVsZEVycm9yTGlzdEl0ZW1UcGxEaXJlY3RpdmVbXSk6IHZvaWQge1xuICAgIGNvbnN0IGVycnM6IElFcnJvclJlY29yZFtdID0gW11cbiAgICBmb3IgKGNvbnN0IHRwbCBvZiB0cGxzTGlzdCkge1xuICAgICAgaWYgKHRwbC52YWxpZGF0b3JOYW1lICE9PSB1bmRlZmluZWQgJiYgdHBsLnZhbGlkYXRvck5hbWUgIT09IG51bGwpIHtcbiAgICAgICAgZXJycy5wdXNoKHtcbiAgICAgICAgICB2YWxpZGF0b3JOYW1lOiB0cGwudmFsaWRhdG9yTmFtZSxcbiAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICB0ZW1wbGF0ZTogdHBsLnRlbXBsYXRlLFxuICAgICAgICAgIGV4dGVybmFsOiAhIXRwbC5leHRlcm5hbFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gdGhpcy5lcnJvclRwbCA9IHRwbC50ZW1wbGF0ZVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9zZXRFcnJvclRlbXBsYXRlcyhlcnJzKVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0RXJyb3JUZW1wbGF0ZXMoZXJyb3JUcGxzOiBJRXJyb3JSZWNvcmRbXSk6IHZvaWQge1xuICAgIHRoaXMuX2Vycm9yVHBscy5uZXh0KGVycm9yVHBscylcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRFcnJvcklucHV0KGVycm9yczogSUVycm9yUmVjb3JkW10pOiB2b2lkIHtcbiAgICB0aGlzLl91cGRhdGVFcnJvcklucHV0cyhlcnJvcnMpXG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVFcnJvcklucHV0cyhlcnJvcnM6IElFcnJvclJlY29yZFtdKTogdm9pZCB7XG4gICAgdGhpcy5fc2V0RXJyb3JJbnB1dChlcnJvcnMpXG4gIH1cblxuICBwcml2YXRlIF9zZXRFcnJvcklucHV0KGVycm9yczogSUVycm9yUmVjb3JkW10pOiB2b2lkIHtcbiAgICB0aGlzLl9lcnJvcklucHV0Lm5leHQoZXJyb3JzKVxuICB9XG5cbiAgcHJpdmF0ZSBfY29tcG9zZUVycm9ySW5wdXRzKFxuICAgIGNvbnRyb2xFcnJvcnM6IElFcnJvclJlY29yZFtdLFxuICAgIGVycm9yVGVtcGxhdGVzOiBJRXJyb3JSZWNvcmRbXSxcbiAgICBlcnJvcklucHV0OiBJRXJyb3JSZWNvcmRbXVxuICApOiBJRXJyb3JSZWNvcmRbXSB7XG4gICAgY29uc3QgZXJyczogSUVycm9yUmVjb3JkW10gPSBbXVxuXG4gICAgY29uc3QgZXJyc01hcDogeyBbbmFtZTogc3RyaW5nXTogSUVycm9yUmVjb3JkIH0gPSB7fVxuXG4gICAgZm9yIChjb25zdCBlcnIgb2YgY29udHJvbEVycm9ycykge1xuICAgICAgaWYgKGVyci5tZXNzYWdlIHx8IGVyci50ZW1wbGF0ZSkge1xuICAgICAgICBlcnJzTWFwW2Vyci52YWxpZGF0b3JOYW1lXSA9IGVyclxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgZXJyIG9mIGVycm9ySW5wdXQpIHtcbiAgICAgIGlmIChlcnIubWVzc2FnZSB8fCBlcnIudGVtcGxhdGUpIHtcbiAgICAgICAgZXJyc01hcFtlcnIudmFsaWRhdG9yTmFtZV0gPSBlcnJcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGVyciBvZiBlcnJvclRlbXBsYXRlcykge1xuICAgICAgaWYgKGVyci5tZXNzYWdlIHx8IGVyci50ZW1wbGF0ZSkge1xuICAgICAgICBlcnJzTWFwW2Vyci52YWxpZGF0b3JOYW1lXSA9IGVyclxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgdmFsaWRhdG9yTmFtZSBpbiBlcnJzTWFwKSB7XG4gICAgICBpZiAoZXJyc01hcC5oYXNPd25Qcm9wZXJ0eSh2YWxpZGF0b3JOYW1lKSkge1xuICAgICAgICBlcnJzLnB1c2goZXJyc01hcFt2YWxpZGF0b3JOYW1lXSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb250cm9sXG4gICAgaWYgKCFjb250cm9sKSB7XG4gICAgICByZXR1cm4gW11cbiAgICB9XG5cbiAgICByZXR1cm4gZXJyc1xuICAgICAgLmZpbHRlcihlcnIgPT4gdGhpcy5faXNFcnJvclZhbGlkYXRvcihjb250cm9sLmVycm9ycywgZXJyLnZhbGlkYXRvck5hbWUpKVxuICAgICAgLmZpbHRlcihlcnIgPT4gIWVyci5leHRlcm5hbClcbiAgICAgIC5tYXAoZXJyID0+ICh7XG4gICAgICAgIC4uLmVycixcbiAgICAgICAgZXJyb3I6IGNvbnRyb2wuZXJyb3JzID8gY29udHJvbC5lcnJvcnNbZXJyLnZhbGlkYXRvck5hbWVdIDogbnVsbCxcbiAgICAgICAgX2Vycm9yczogY29udHJvbC5lcnJvcnNcbiAgICAgIH0gYXMgSUVycm9yUmVjb3JkKSlcbiAgfVxuXG4gIHByaXZhdGUgX2lzRXJyb3JWYWxpZGF0b3IoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCwgdmFsaWRhdG9yTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCFlcnJvcnMpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICBjb25zdCBhcnIgPSB2YWxpZGF0b3JOYW1lLnNwbGl0KCcgJykuZmlsdGVyKHYgPT4gdi50cmltKCkubGVuZ3RoID4gMClcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXJyKSB7XG4gICAgICBpZiAoZXJyb3JzLmhhc093blByb3BlcnR5KGl0ZW0pKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJlY29yZCBvZiBkaXNwbGF5UmVjb3JkcyQgfCBhc3luY1wiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVjb3JkLnRlbXBsYXRlOyBlbHNlIG5vVGVtcGxhdGVcIj5cbiAgICA8ZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJlY29yZC50ZW1wbGF0ZVwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogcmVjb3JkLmVycm9yLCBlcnJvcnM6IHJlY29yZC5fZXJyb3JzIH1cIj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctdGVtcGxhdGUgI25vVGVtcGxhdGU+XG4gICAgPHNlYW0tZm9ybS1maWVsZC1lcnJvclxuICAgICAgW3ZhbGlkYXRvck5hbWVdPVwicmVjb3JkLnZhbGlkYXRvck5hbWVcIlxuICAgICAgW21lc3NhZ2VdPVwicmVjb3JkLm1lc3NhZ2VcIlxuICAgICAgW3Nob3dWYWxpZGF0b3JOYW1lXT1cInNob3dWYWxpZGF0b3JOYW1lXCI+XG4gICAgPC9zZWFtLWZvcm0tZmllbGQtZXJyb3I+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
384
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1lcnJvci1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mb3JtLWZpZWxkLWVycm9yL2Zvcm0tZmllbGQtZXJyb3ItbGlzdC9mb3JtLWZpZWxkLWVycm9yLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2Zvcm0tZmllbGQtZXJyb3IvZm9ybS1maWVsZC1lcnJvci1saXN0L2Zvcm0tZmllbGQtZXJyb3ItbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBVyxXQUFXLEVBQUUsS0FBSyxFQUE2QyxNQUFNLGVBQWUsQ0FBQTtBQUVsSSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDL0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFbEYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sNENBQTRDLENBQUE7Ozs7QUFhL0Y7Ozs7O0dBS0c7QUFNSCxNQUFNLE9BQU8sMkJBQTJCO0lBRXRDLElBQWtDLFFBQVE7UUFDeEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtJQUMzQyxDQUFDO0lBb0JELElBQ0ksTUFBTSxDQUFDLE9BQTBDO1FBQ25ELDhCQUE4QjtRQUM5Qix1QkFBdUI7UUFDdkIsV0FBVztRQUNYLG9CQUFvQjtRQUNwQiwyQkFBMkI7UUFDM0Isb0JBQW9CO1FBQ3BCLDJCQUEyQjtRQUMzQix5QkFBeUI7UUFDekIsNEJBQTRCO1FBQzVCLHNCQUFzQjtRQUN0Qix1QkFBdUI7UUFDdkIsa0NBQWtD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LEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQ3JFLEtBQUssTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFO1lBQ3RCLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDL0IsT0FBTyxJQUFJLENBQUE7YUFDWjtTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDOztBQWhhdUIsMkNBQWUsR0FBbUU7QUFDeEcsOEJBQThCO0FBQzlCLHFGQUFxRjtBQUNyRiw2RkFBNkY7QUFDN0YsNEVBQTRFO0NBQzdFLENBQUE7d0hBWFUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsNFdBMElyQixrQ0FBa0MsNkJDdktyRCxnbUJBaUJBOzJGRFlhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSw0QkFBNEI7MEVBTUosUUFBUTtzQkFBekMsV0FBVzt1QkFBQyxlQUFlO2dCQXVCeEIsTUFBTTtzQkFEVCxLQUFLO2dCQXlHRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQVFGLGFBQWE7c0JBRGhCLGVBQWU7dUJBQUMsa0NBQWtDO2dCQU0vQyxZQUFZO3NCQURmLEtBQUs7Z0JBc0JHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0YsT0FBTztzQkFEVixLQUFLO2dCQXlCRixVQUFVO3NCQURiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRG9DaGVjaywgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEFic3RyYWN0Q29udHJvbERpcmVjdGl2ZSwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBGb3JtRmllbGRFcnJvckxpc3RJdGVtVHBsRGlyZWN0aXZlIH0gZnJvbSAnLi9mb3JtLWZpZWxkLWVycm9yLWxpc3QtaXRlbS10cGwuZGlyZWN0aXZlJ1xuXG5leHBvcnQgaW50ZXJmYWNlIElFcnJvclJlY29yZCB7XG4gIHZhbGlkYXRvck5hbWU6IHN0cmluZ1xuICBlcnJvcjogYW55LFxuICBtZXNzYWdlPzogc3RyaW5nXG4gIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PlxuXG4gIGV4dGVybmFsPzogYm9vbGVhblxuXG4gIF9lcnJvcnM/OiBWYWxpZGF0aW9uRXJyb3JzXG59XG5cbi8qKlxuICogTk9URTogVGhpcyBjbGFzcyBoYXMgc29tZSBpc3N1ZXMgd2l0aCBmaWx0ZXJpbmcgZHVwbGljYXRlIHZhbGlkYXRvcnMuIFRoZVxuICogaW5wdXRzIHdpbGwgYmUgY2xlYW5lZCB1cCBzb29uIHRvIGZpeCB0aGUgaW5wdXQgY29uZnVzaW9uLlxuICpcbiAqIFRPRE86IENsZWFudXAgcmVtYWluaW5nIGNvZGUgZnJvbSBiZWZvcmUgcmVmYWN0b3IuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0tZm9ybS1maWVsZC1lcnJvci1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQtZXJyb3ItbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZmllbGQtZXJyb3ItbGlzdC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZEVycm9yTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBEb0NoZWNrIHtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmRpc3BsYXknKSBnZXQgX2Rpc3BsYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0Vycm9ycyA/ICdibG9jaycgOiAnbm9uZSdcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGRlZmF1bHRNZXNzYWdlczogeyBbbmFtZTogc3RyaW5nXTogKChwYXJhbXM6IGFueSkgPT4gc3RyaW5nKSB8ICgoKSA9PiBzdHJpbmcpIH0gPSB7XG4gICAgLy8gcmVxdWlyZWQ6ICgpID0+ICdSZXF1aXJlZCcsXG4gICAgLy8gbWlubGVuZ3RoOiAocGFyYW1zKSA9PiAnVGhlIG1pbiBudW1iZXIgb2YgY2hhcmFjdGVycyBpcyAnICsgcGFyYW1zLnJlcXVpcmVkTGVuZ3RoLFxuICAgIC8vIG1heGxlbmd0aDogKHBhcmFtcykgPT4gJ1RoZSBtYXggYWxsb3dlZCBudW1iZXIgb2YgY2hhcmFjdGVycyBpcyAnICsgcGFyYW1zLnJlcXVpcmVkTGVuZ3RoLFxuICAgIC8vIHBhdHRlcm46IChwYXJhbXMpID0+ICdUaGUgcmVxdWlyZWQgcGF0dGVybiBpczogJyArIHBhcmFtcy5yZXF1aXJlZFBhdHRlcm5cbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlZmF1bHRNZXNzYWdlczogeyBbbmFtZTogc3RyaW5nXTogKChwYXJhbXM6IGFueSkgPT4gc3RyaW5nKSB8ICgoKSA9PiBzdHJpbmcpIH0gPSB7XG4gICAgLy8gcmVxdWlyZWQ6ICgpID0+ICdSZXF1aXJlZCcsXG4gICAgLy8gbWlubGVuZ3RoOiAocGFyYW1zKSA9PiAnVGhlIG1pbiBudW1iZXIgb2YgY2hhcmFjdGVycyBpcyAnICsgcGFyYW1zLnJlcXVpcmVkTGVuZ3RoLFxuICAgIC8vIG1heGxlbmd0aDogKHBhcmFtcykgPT4gJ1RoZSBtYXggYWxsb3dlZCBudW1iZXIgb2YgY2hhcmFjdGVycyBpcyAnICsgcGFyYW1zLnJlcXVpcmVkTGVuZ3RoLFxuICAgIC8vIHBhdHRlcm46IChwYXJhbXMpID0+ICdUaGUgcmVxdWlyZWQgcGF0dGVybiBpczogJyArIHBhcmFtcy5yZXF1aXJlZFBhdHRlcm5cbiAgfVxuXG4gIHByaXZhdGUgX2Vycm9yczogYW55W10gPSBbXVxuXG4gIHB1YmxpYyBfcGFkZGluZ0Vycm9ycyA9IFtdXG5cbiAgQElucHV0KClcbiAgc2V0IGVycm9ycyhyZWNvcmRzOiBJRXJyb3JSZWNvcmRbXSB8IHVuZGVmaW5lZCB8IG51bGwpIHtcbiAgICAvLyBpZiAodmFsIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAvLyAgIHRoaXMuX2Vycm9ycyA9IHZhbFxuICAgIC8vIH0gZWxzZSB7XG4gICAgLy8gICBjb25zdCBlcnJzID0gW11cbiAgICAvLyAgIGZvciAoY29uc3QgayBpbiB2YWwpIHtcbiAgICAvLyAgICAgaWYgKHZhbFtrXSkge1xuICAgIC8vICAgICAgIGNvbnN0IGVyciA9IHZhbFtrXVxuICAgIC8vICAgICAgIGNvbnN0IG5ld0VyciA9IHtcbiAgICAvLyAgICAgICAgIHZhbGlkYXRvck5hbWU6IGssXG4gICAgLy8gICAgICAgICBlcnJvcjogZXJyLFxuICAgIC8vICAgICAgICAgbWVzc2FnZTogJycsXG4gICAgLy8gICAgICAgICB0ZW1wbGF0ZTogZXJyLnRlbXBsYXRlLFxuICAgIC8vICAgICAgICAgZXh0ZXJuYWw6ICEhZXJyLmV4dGVybmFsXG4gICAgLy8gICAgICAgfVxuXG4gICAgLy8gICAgICAgaWYgKGVyci5tZXNzYWdlKSB7XG4gICAgLy8gICAgICAgICBjb25zdCBtc2dUbXAgPSBlcnIubWVzc2FnZVxuICAgIC8vICAgICAgICAgaWYgKHR5cGVvZiBtc2dUbXAgPT09ICdzdHJpbmcnKSB7XG4gICAgLy8gICAgICAgICAgIG5ld0Vyci5tZXNzYWdlID0gbXNnVG1wXG4gICAgLy8gICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBtc2dUbXAgPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyAgICAgICAgICAgbmV3RXJyLm1lc3NhZ2UgPSBtc2dUbXAoZXJyKVxuICAgIC8vICAgICAgICAgfVxuICAgIC8vICAgICAgIH0gZWxzZSBpZiAoRm9ybUZpZWxkRXJyb3JMaXN0Q29tcG9uZW50LmRlZmF1bHRNZXNzYWdlc1trXSkge1xuICAgIC8vICAgICAgICAgY29uc3QgZGVmYXVsdE1zZyA9IEZvcm1GaWVsZEVycm9yTGlzdENvbXBvbmVudC5kZWZhdWx0TWVzc2FnZXNba11cbiAgICAvLyAgICAgICAgIGlmICh0eXBlb2YgZGVmYXVsdE1zZyA9PT0gJ3N0cmluZycpIHtcbiAgICAvLyAgICAgICAgICAgbmV3RXJyLm1lc3NhZ2UgPSBkZWZhdWx0TXNnXG4gICAgLy8gICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZhdWx0TXNnID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gICAgICAgICAgIG5ld0Vyci5tZXNzYWdlID0gZGVmYXVsdE1zZyhlcnIpXG4gICAgLy8gICAgICAgICB9XG4gICAgLy8gICAgICAgfVxuXG4gICAgLy8gICAgICAgZXJycy5wdXNoKG5ld0VycilcbiAgICAvLyAgICAgfVxuICAgIC8vICAgfVxuICAgIC8vICAgdGhpcy5fZXJyb3JzID0gZXJyc1xuICAgIC8vIH1cblxuICAgIHRoaXMuX2luaXRFcnJvcklucHV0KHJlY29yZHMgfHwgW10pXG4gIH1cblxuICAvLyBnZXQgZXJyb3JzKCkge1xuICAvLyAgIGxldCBlcnJzID0gW11cblxuICAvLyAgIGlmICh0aGlzLl9lcnJvcnMpIHtcbiAgLy8gICAgIGlmICghdGhpcy5tZXNzYWdlcykge1xuICAvLyAgICAgICBlcnJzID0gdGhpcy5fZXJyb3JzXG4gIC8vICAgICB9IGVsc2Uge1xuICAvLyAgICAgICBlcnJzID0gdGhpcy5fZXJyb3JzLm1hcChlcnIgPT4ge1xuICAvLyAgICAgICAgIGlmICh0aGlzLm1lc3NhZ2VzICYmIGVyci52YWxpZGF0b3JOYW1lICYmIHRoaXMubWVzc2FnZXNbZXJyLnZhbGlkYXRvck5hbWVdKSB7XG4gIC8vICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgZXJyLCB7XG4gIC8vICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMubWVzc2FnZXNbZXJyLnZhbGlkYXRvck5hbWVdXG4gIC8vICAgICAgICAgICB9KVxuICAvLyAgICAgICAgIH0gZWxzZSB7XG4gIC8vICAgICAgICAgICByZXR1cm4gZXJyXG4gIC8vICAgICAgICAgfVxuICAvLyAgICAgICB9KVxuICAvLyAgICAgfVxuICAvLyAgIH1cblxuICAvLyAgIGlmICh0aGlzLmNvbnRyb2wpIHtcbiAgLy8gICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuY29udHJvbC5lcnJvcnMpIHtcbiAgLy8gICAgICAgaWYgKHRoaXMuY29udHJvbC5lcnJvcnNba2V5XSkge1xuICAvLyAgICAgICAgIGNvbnN0IGVyciA9IHRoaXMuY29udHJvbC5lcnJvcnNba2V5XVxuXG4gIC8vICAgICAgICAgY29uc3QgbmV3RXJyID0ge1xuICAvLyAgICAgICAgICAgdmFsaWRhdG9yTmFtZToga2V5LFxuICAvLyAgICAgICAgICAgZXJyb3I6IGVycixcbiAgLy8gICAgICAgICAgIG1lc3NhZ2U6ICcnLFxuICAvLyAgICAgICAgICAgZXh0ZXJuYWw6IGZhbHNlXG4gIC8vICAgICAgICAgfVxuXG4gIC8vICAgICAgICAgaWYgKEZvcm1GaWVsZEVycm9yTGlzdENvbXBvbmVudC5kZWZhdWx0TWVzc2FnZXNba2V5XSkge1xuICAvLyAgICAgICAgICAgY29uc3QgZGVmYXVsdE1zZyA9IEZvcm1GaWVsZEVycm9yTGlzdENvbXBvbmVudC5kZWZhdWx0TWVzc2FnZXNba2V5XVxuICAvLyAgICAgICAgICAgaWYgKHR5cGVvZiBkZWZhdWx0TXNnID09PSAnc3RyaW5nJykge1xuICAvLyAgICAgICAgICAgICBuZXdFcnIubWVzc2FnZSA9IGRlZmF1bHRNc2dcbiAgLy8gICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGRlZmF1bHRNc2cgPT09ICdmdW5jdGlvbicpIHtcbiAgLy8gICAgICAgICAgICAgbmV3RXJyLm1lc3NhZ2UgPSBkZWZhdWx0TXNnKGVycilcbiAgLy8gICAgICAgICAgIH1cbiAgLy8gICAgICAgICB9XG5cbiAgLy8gICAgICAgICBlcnJzID0gWyAuLi5lcnJzLCBuZXdFcnIgXVxuICAvLyAgICAgICB9XG4gIC8vICAgICB9XG4gIC8vICAgfVxuXG4gIC8vICAgaWYgKHRoaXMubWF4RXJyb3JzID49IDApIHtcbiAgLy8gICAgIGVycnMgPSBlcnJzLnNsaWNlKDAsIHRoaXMubWF4RXJyb3JzKVxuICAvLyAgIH1cblxuICAvLyAgIGNvbnN0IGNvdW50ID0gdGhpcy5zaG93Q29udHJvbEVycm9ycyA/IHRoaXMubnVtUGFkZGluZ0Vycm9ycyAtIGVycnMubGVuZ3RoIDogdGhpcy5udW1QYWRkaW5nRXJyb3JzXG4gIC8vICAgaWYgKGNvdW50ID4gMCkge1xuICAvLyAgICAgdGhpcy5fcGFkZGluZ0Vycm9ycyA9IFtdXG4gIC8vICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgLy8gICAgICAgdGhpcy5fcGFkZGluZ0Vycm9ycy5wdXNoKHsgdmFsaWRhdG9yTmFtZTogJ19fcGFkZGluZ19fJywgZXJyb3I6IHt9LCBtZXNzYWdlOiAnJywgZXh0ZXJuYWw6IGZhbHNlIH0pXG4gIC8vICAgICB9XG4gIC8vICAgfSBlbHNlIHtcbiAgLy8gICAgIHRoaXMuX3BhZGRpbmdFcnJvcnMgPSBbXVxuICAvLyAgIH1cblxuICAvLyAgIHJldHVybiBlcnJzXG4gIC8vIH1cblxuICAvLyBASW5wdXQoKSBtZXNzYWdlczogYW55ID0ge31cbiAgQElucHV0KCkgc2hvd1ZhbGlkYXRvck5hbWUgPSBmYWxzZVxuXG4gIEBJbnB1dCgpIG51bVBhZGRpbmdFcnJvcnMgPSAxXG5cbiAgLy8gcHJpdmF0ZSBlcnJvclRwbDogVGVtcGxhdGVSZWY8YW55PlxuXG4gIC8vIHByaXZhdGUgX2xpc3RJdGVtVHBsczogUXVlcnlMaXN0PEZvcm1GaWVsZEVycm9yTGlzdEl0ZW1UcGxEaXJlY3RpdmU+XG4gIC8vIHByaXZhdGUgbGlzdEl0ZW1UcGxzT2JqID0ge31cblxuICBAQ29udGVudENoaWxkcmVuKEZvcm1GaWVsZEVycm9yTGlzdEl0ZW1UcGxEaXJlY3RpdmUpXG4gIHNldCBfbGlzdEl0ZW1UcGxzKHZhbDogUXVlcnlMaXN0PEZvcm1GaWVsZEVycm9yTGlzdEl0ZW1UcGxEaXJlY3RpdmU+KSB7XG4gICAgdGhpcy5faW5pdEVycm9yVGVtcGxhdGVzKHZhbClcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBsaXN0SXRlbVRwbHModmFsOiBRdWVyeUxpc3Q8Rm9ybUZpZWxkRXJyb3JMaXN0SXRlbVRwbERpcmVjdGl2ZT4pIHtcbiAgICB0aGlzLl9pbml0RXJyb3JUZW1wbGF0ZXModmFsKVxuXG4gICAgLy8gZm9yIChjb25zdCB2IG9mIHZhbC50b0FycmF5KCkpIHtcbiAgICAvLyAgIGlmICh2LnZhbGlkYXRvck5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgIC8vICAgICB0aGlzLmxpc3RJdGVtVHBsc09ialt2LnZhbGlkYXRvck5hbWVdID0gdlxuICAgIC8vICAgfVxuICAgIC8vIH1cblxuICAgIC8vIGNvbnN0IHRtcCA9IHZhbC5maW5kKHYgPT4gdi52YWxpZGF0b3JOYW1lID09PSB1bmRlZmluZWQpXG4gICAgLy8gaWYgKHRtcCkge1xuICAgIC8vICAgdGhpcy5lcnJvclRwbCA9IHRtcC50ZW1wbGF0ZVxuICAgIC8vIH1cblxuICAgIC8vIHRoaXMuX2xpc3RJdGVtVHBscyA9IHZhbFxuICB9XG5cbiAgLy8gZ2V0IGxpc3RJdGVtVHBscygpOiBRdWVyeUxpc3Q8Rm9ybUZpZWxkRXJyb3JMaXN0SXRlbVRwbERpcmVjdGl2ZT4ge1xuICAvLyAgIHJldHVybiB0aGlzLl9saXN0SXRlbVRwbHNcbiAgLy8gfVxuXG4gIEBJbnB1dCgpIG1heEVycm9ycyA9IC0xXG5cbiAgQElucHV0KClcbiAgZ2V0IGNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sRGlyZWN0aXZlIHwgQWJzdHJhY3RDb250cm9sIHwgdW5kZWZpbmVkIHwgbnVsbCB7IHJldHVybiB0aGlzLl9jb250cm9sIH1cbiAgc2V0IGNvbnRyb2wodmFsdWU6IEFic3RyYWN0Q29udHJvbERpcmVjdGl2ZSB8IEFic3RyYWN0Q29udHJvbCB8IHVuZGVmaW5lZCB8IG51bGwpIHtcbiAgICB0aGlzLl9jb250cm9sID0gdmFsdWVcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2luaXRDb250cm9sTGlzdGVuZXJzKHZhbHVlKVxuICAgIH1cbiAgfVxuICBwcml2YXRlIF9jb250cm9sOiBBYnN0cmFjdENvbnRyb2xEaXJlY3RpdmUgfCBBYnN0cmFjdENvbnRyb2wgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgcHJpdmF0ZSBfdmFsdWVDaGFuZ2VTdWIgPSBTdWJzY3JpcHRpb24uRU1QVFlcbiAgcHJpdmF0ZSBfZXJyb3JUcGxzQ2hhbmdlU3ViID0gU3Vic2NyaXB0aW9uLkVNUFRZXG5cbiAgcHJpdmF0ZSBfY29udHJvbEVycm9ycyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUVycm9yUmVjb3JkW10+KFtdKVxuICBwcml2YXRlIF9lcnJvclRwbHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElFcnJvclJlY29yZFtdPihbXSlcbiAgcHJpdmF0ZSBfZXJyb3JJbnB1dCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUVycm9yUmVjb3JkW10+KFtdKVxuXG4gIHByaXZhdGUgX3Nob3dDb250cm9sRXJyb3JzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpXG5cbiAgcHVibGljIGRpc3BsYXlSZWNvcmRzJDogT2JzZXJ2YWJsZTxJRXJyb3JSZWNvcmRbXT5cbiAgcHVibGljIHNob3dDb250cm9sRXJyb3JzJDogT2JzZXJ2YWJsZTxib29sZWFuPlxuXG4gIHByaXZhdGUgX3Nob3dFcnJvcnMgPSB0cnVlXG5cbiAgQElucHV0KClcbiAgc2V0IHNob3dFcnJvcnModmFsOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd0Vycm9ycyA9IHZhbFxuICB9XG5cbiAgZ2V0IHNob3dFcnJvcnMoKTogYm9vbGVhbiB7XG4gICAgbGV0IHNob3cgPSB0aGlzLl9zaG93RXJyb3JzXG5cbiAgICBpZiAoc2hvdyAmJiB0aGlzLmNvbnRyb2wpIHtcbiAgICAgIGlmICh0aGlzLm51bVBhZGRpbmdFcnJvcnMgPiAwKSB7XG4gICAgICAgIHNob3cgPSB0cnVlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzaG93ID0gISEodGhpcy5jb250cm9sLmludmFsaWQgJiYgKHRoaXMuY29udHJvbC5kaXJ0eSB8fCB0aGlzLmNvbnRyb2wudG91Y2hlZCkpXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNob3dcbiAgfVxuXG4gIGdldCBzaG93Q29udHJvbEVycm9ycygpOiBib29sZWFuIHtcbiAgICBsZXQgc2hvdyA9IGZhbHNlXG4gICAgaWYgKHRoaXMuY29udHJvbCAmJiB0aGlzLnNob3dFcnJvcnMpIHtcbiAgICAgIHNob3cgPSAhISh0aGlzLmNvbnRyb2wuaW52YWxpZCAmJiAodGhpcy5jb250cm9sLmRpcnR5IHx8IHRoaXMuY29udHJvbC50b3VjaGVkKSlcbiAgICB9XG5cbiAgICByZXR1cm4gc2hvd1xuICB9XG5cbiAgcHVibGljIGVycm9yUmVjb3JkcyQ6IE9ic2VydmFibGU8SUVycm9yUmVjb3JkW10+XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5zaG93Q29udHJvbEVycm9ycyQgPSB0aGlzLl9zaG93Q29udHJvbEVycm9yc1N1YmplY3QuYXNPYnNlcnZhYmxlKClcbiAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpXG4gICAgICAucGlwZShzaGFyZVJlcGxheSgxKSlcblxuICAgIHRoaXMuZXJyb3JSZWNvcmRzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX2NvbnRyb2xFcnJvcnMsIHRoaXMuX2Vycm9yVHBscywgdGhpcy5fZXJyb3JJbnB1dF0pXG4gICAgICAucGlwZShtYXAoKFtjdHJsRXJycywgZXJyVHBscywgZXJyb3JJbnB1dF0pID0+IHRoaXMuX2NvbXBvc2VFcnJvcklucHV0cyhjdHJsRXJycywgZXJyVHBscywgZXJyb3JJbnB1dCkpKVxuICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoMSkpXG5cbiAgICB0aGlzLmRpc3BsYXlSZWNvcmRzJCA9IHRoaXMuZXJyb3JSZWNvcmRzJFxuICAgICAgLnBpcGUobWFwKHJlY29yZHMgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0UmVjb3JkczogSUVycm9yUmVjb3JkW10gPSBbXVxuXG4gICAgICAgIGlmICghdGhpcy5zaG93RXJyb3JzKSB7XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQgZXJycyA9IFsgLi4ucmVjb3JkcyBdXG5cbiAgICAgICAgICBpZiAodGhpcy5tYXhFcnJvcnMgPj0gMCkge1xuICAgICAgICAgICAgZXJycyA9IGVycnMuc2xpY2UoMCwgdGhpcy5tYXhFcnJvcnMpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgY291bnQgPSB0aGlzLnNob3dDb250cm9sRXJyb3JzID8gdGhpcy5udW1QYWRkaW5nRXJyb3JzIC0gZXJycy5sZW5ndGggOiB0aGlzLm51bVBhZGRpbmdFcnJvcnNcbiAgICAgICAgICBjb25zdCBwYWRkaW5nRXJyb3JzOiBJRXJyb3JSZWNvcmRbXSA9IFtdXG4gICAgICAgICAgaWYgKGNvdW50ID4gMCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gICAgICAgICAgICAgIHBhZGRpbmdFcnJvcnMucHVzaCh7IHZhbGlkYXRvck5hbWU6ICdfX3BhZGRpbmdfXycsIGVycm9yOiB7fSwgbWVzc2FnZTogJycsIGV4dGVybmFsOiBmYWxzZSB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0aGlzLnNob3dDb250cm9sRXJyb3JzKSB7XG4gICAgICAgICAgICByZXN1bHRSZWNvcmRzID0gWyAuLi5lcnJzLCAuLi5wYWRkaW5nRXJyb3JzIF1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0UmVjb3JkcyA9IFsgLi4ucGFkZGluZ0Vycm9ycyBdXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdFJlY29yZHNcbiAgICAgIH0pKVxuICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoMSkpXG4gIH1cblxuICBuZ09uSW5pdCgpIHsgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3ZhbHVlQ2hhbmdlU3ViLnVuc3Vic2NyaWJlKClcbiAgICB0aGlzLl9lcnJvclRwbHNDaGFuZ2VTdWIudW5zdWJzY3JpYmUoKVxuICB9XG5cbiAgbmdEb0NoZWNrKCkge1xuICAgIHRoaXMuX3Nob3dDb250cm9sRXJyb3JzU3ViamVjdC5uZXh0KHRoaXMuc2hvd0NvbnRyb2xFcnJvcnMpXG4gIH1cblxuICBwcml2YXRlIF9pbml0Q29udHJvbExpc3RlbmVycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2xEaXJlY3RpdmUgfCBBYnN0cmFjdENvbnRyb2wpOiB2b2lkIHtcbiAgICAvLyBVbnN1YnNjcmliZSBmcm9tIG9sZCBjb250cm9sIGNoYW5nZXNcbiAgICBpZiAodGhpcy5fdmFsdWVDaGFuZ2VTdWIgJiYgIXRoaXMuX3ZhbHVlQ2hhbmdlU3ViLmNsb3NlZCkge1xuICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VTdWIudW5zdWJzY3JpYmUoKVxuICAgIH1cblxuICAgIGlmIChjb250cm9sLnZhbHVlQ2hhbmdlcyAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VTdWIgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnNob3dDb250cm9sRXJyb3JzJCwgY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodW5kZWZpbmVkKSldKVxuICAgICAgICAucGlwZShzdGFydFdpdGgodW5kZWZpbmVkKSlcbiAgICAgICAgLnN1YnNjcmliZShfID0+IHRoaXMuX3VwZGF0ZUNvbnRyb2xFcnJvcnMoY29udHJvbC5lcnJvcnMpKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zZXRDb250cm9sRXJyb3JzKFtdKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUNvbnRyb2xFcnJvcnMoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCk6IHZvaWQge1xuICAgIGNvbnN0IGVycnM6IElFcnJvclJlY29yZFtdID0gW11cbiAgICBmb3IgKGNvbnN0IHZhbGlkYXRvck5hbWUgaW4gZXJyb3JzKSB7XG4gICAgICBpZiAoZXJyb3JzLmhhc093blByb3BlcnR5KHZhbGlkYXRvck5hbWUpKSB7XG4gICAgICAgIGNvbnN0IGVycm9yID0gZXJyb3JzW3ZhbGlkYXRvck5hbWVdXG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLl9wYXJzZU1lc3NhZ2UodGhpcy5fZGVmYXVsdE1lc3NhZ2VzW3ZhbGlkYXRvck5hbWVdLCBlcnJvcilcbiAgICAgICAgY29uc3QgZXh0ZXJuYWwgPSBmYWxzZVxuICAgICAgICBlcnJzLnB1c2goeyB2YWxpZGF0b3JOYW1lLCBlcnJvciwgbWVzc2FnZSwgZXh0ZXJuYWwgfSlcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fc2V0Q29udHJvbEVycm9ycyhlcnJzKVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0Q29udHJvbEVycm9ycyhlcnJvcnM6IElFcnJvclJlY29yZFtdKSB7XG4gICAgdGhpcy5fY29udHJvbEVycm9ycy5uZXh0KGVycm9ycylcbiAgfVxuXG4gIHByaXZhdGUgX3BhcnNlTWVzc2FnZShtZXNzYWdlOiBhbnksIGVycm9yOiBhbnkpIHtcbiAgICBpZiAoIW1lc3NhZ2UpIHsgcmV0dXJuIH1cblxuICAgIGlmICh0eXBlb2YgbWVzc2FnZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBtZXNzYWdlXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgbWVzc2FnZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIG1lc3NhZ2UoZXJyb3IpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdEVycm9yVGVtcGxhdGVzKHRwbHNRdWVyeUxpc3Q6IFF1ZXJ5TGlzdDxGb3JtRmllbGRFcnJvckxpc3RJdGVtVHBsRGlyZWN0aXZlPikge1xuICAgIGlmICh0aGlzLl9lcnJvclRwbHNDaGFuZ2VTdWIgJiYgIXRoaXMuX2Vycm9yVHBsc0NoYW5nZVN1Yi5jbG9zZWQpIHtcbiAgICAgIHRoaXMuX2Vycm9yVHBsc0NoYW5nZVN1Yi51bnN1YnNjcmliZSgpXG4gICAgfVxuXG4gICAgaWYgKHRwbHNRdWVyeUxpc3QpIHtcbiAgICAgIHRoaXMuX2Vycm9yVHBsc0NoYW5nZVN1YiA9IHRwbHNRdWVyeUxpc3QuY2hhbmdlc1xuICAgICAgICAucGlwZShzdGFydFdpdGgodW5kZWZpbmVkKSlcbiAgICAgICAgLnN1YnNjcmliZShfID0+IHRoaXMuX3VwZGF0ZUVycm9yVGVtcGxhdGVzKHRwbHNRdWVyeUxpc3QudG9BcnJheSgpKSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fc2V0RXJyb3JUZW1wbGF0ZXMoW10pXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlRXJyb3JUZW1wbGF0ZXModHBsc0xpc3Q6IEZvcm1GaWVsZEVycm9yTGlzdEl0ZW1UcGxEaXJlY3RpdmVbXSk6IHZvaWQge1xuICAgIGNvbnN0IGVycnM6IElFcnJvclJlY29yZFtdID0gW11cbiAgICBmb3IgKGNvbnN0IHRwbCBvZiB0cGxzTGlzdCkge1xuICAgICAgaWYgKHRwbC52YWxpZGF0b3JOYW1lICE9PSB1bmRlZmluZWQgJiYgdHBsLnZhbGlkYXRvck5hbWUgIT09IG51bGwpIHtcbiAgICAgICAgZXJycy5wdXNoKHtcbiAgICAgICAgICB2YWxpZGF0b3JOYW1lOiB0cGwudmFsaWRhdG9yTmFtZSxcbiAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICB0ZW1wbGF0ZTogdHBsLnRlbXBsYXRlLFxuICAgICAgICAgIGV4dGVybmFsOiAhIXRwbC5leHRlcm5hbFxuICAgICAgICB9KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gdGhpcy5lcnJvclRwbCA9IHRwbC50ZW1wbGF0ZVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9zZXRFcnJvclRlbXBsYXRlcyhlcnJzKVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0RXJyb3JUZW1wbGF0ZXMoZXJyb3JUcGxzOiBJRXJyb3JSZWNvcmRbXSk6IHZvaWQge1xuICAgIHRoaXMuX2Vycm9yVHBscy5uZXh0KGVycm9yVHBscylcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRFcnJvcklucHV0KGVycm9yczogSUVycm9yUmVjb3JkW10pOiB2b2lkIHtcbiAgICB0aGlzLl91cGRhdGVFcnJvcklucHV0cyhlcnJvcnMpXG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVFcnJvcklucHV0cyhlcnJvcnM6IElFcnJvclJlY29yZFtdKTogdm9pZCB7XG4gICAgdGhpcy5fc2V0RXJyb3JJbnB1dChlcnJvcnMpXG4gIH1cblxuICBwcml2YXRlIF9zZXRFcnJvcklucHV0KGVycm9yczogSUVycm9yUmVjb3JkW10pOiB2b2lkIHtcbiAgICB0aGlzLl9lcnJvcklucHV0Lm5leHQoZXJyb3JzKVxuICB9XG5cbiAgcHJpdmF0ZSBfY29tcG9zZUVycm9ySW5wdXRzKFxuICAgIGNvbnRyb2xFcnJvcnM6IElFcnJvclJlY29yZFtdLFxuICAgIGVycm9yVGVtcGxhdGVzOiBJRXJyb3JSZWNvcmRbXSxcbiAgICBlcnJvcklucHV0OiBJRXJyb3JSZWNvcmRbXVxuICApOiBJRXJyb3JSZWNvcmRbXSB7XG4gICAgY29uc3QgZXJyczogSUVycm9yUmVjb3JkW10gPSBbXVxuXG4gICAgY29uc3QgZXJyc01hcDogeyBbbmFtZTogc3RyaW5nXTogSUVycm9yUmVjb3JkIH0gPSB7fVxuXG4gICAgZm9yIChjb25zdCBlcnIgb2YgY29udHJvbEVycm9ycykge1xuICAgICAgaWYgKGVyci5tZXNzYWdlIHx8IGVyci50ZW1wbGF0ZSkge1xuICAgICAgICBlcnJzTWFwW2Vyci52YWxpZGF0b3JOYW1lXSA9IGVyclxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgZXJyIG9mIGVycm9ySW5wdXQpIHtcbiAgICAgIGlmIChlcnIubWVzc2FnZSB8fCBlcnIudGVtcGxhdGUpIHtcbiAgICAgICAgZXJyc01hcFtlcnIudmFsaWRhdG9yTmFtZV0gPSBlcnJcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGVyciBvZiBlcnJvclRlbXBsYXRlcykge1xuICAgICAgaWYgKGVyci5tZXNzYWdlIHx8IGVyci50ZW1wbGF0ZSkge1xuICAgICAgICBlcnJzTWFwW2Vyci52YWxpZGF0b3JOYW1lXSA9IGVyclxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgdmFsaWRhdG9yTmFtZSBpbiBlcnJzTWFwKSB7XG4gICAgICBpZiAoZXJyc01hcC5oYXNPd25Qcm9wZXJ0eSh2YWxpZGF0b3JOYW1lKSkge1xuICAgICAgICBlcnJzLnB1c2goZXJyc01hcFt2YWxpZGF0b3JOYW1lXSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb250cm9sXG4gICAgaWYgKCFjb250cm9sKSB7XG4gICAgICByZXR1cm4gW11cbiAgICB9XG5cbiAgICByZXR1cm4gZXJyc1xuICAgICAgLmZpbHRlcihlcnIgPT4gdGhpcy5faXNFcnJvclZhbGlkYXRvcihjb250cm9sLmVycm9ycywgZXJyLnZhbGlkYXRvck5hbWUpKVxuICAgICAgLmZpbHRlcihlcnIgPT4gIWVyci5leHRlcm5hbClcbiAgICAgIC5tYXAoZXJyID0+ICh7XG4gICAgICAgIC4uLmVycixcbiAgICAgICAgZXJyb3I6IGNvbnRyb2wuZXJyb3JzID8gY29udHJvbC5lcnJvcnNbZXJyLnZhbGlkYXRvck5hbWVdIDogbnVsbCxcbiAgICAgICAgX2Vycm9yczogY29udHJvbC5lcnJvcnNcbiAgICAgIH0gYXMgSUVycm9yUmVjb3JkKSlcbiAgfVxuXG4gIHByaXZhdGUgX2lzRXJyb3JWYWxpZGF0b3IoZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCwgdmFsaWRhdG9yTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCFlcnJvcnMpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICBjb25zdCBhcnIgPSB2YWxpZGF0b3JOYW1lLnNwbGl0KCcgJykuZmlsdGVyKHYgPT4gdi50cmltKCkubGVuZ3RoID4gMClcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgYXJyKSB7XG4gICAgICBpZiAoZXJyb3JzLmhhc093blByb3BlcnR5KGl0ZW0pKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHJlY29yZCBvZiBkaXNwbGF5UmVjb3JkcyQgfCBhc3luY1wiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVjb3JkLnRlbXBsYXRlOyBlbHNlIG5vVGVtcGxhdGVcIj5cbiAgICA8ZGl2PlxuICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJlY29yZC50ZW1wbGF0ZVwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogcmVjb3JkLmVycm9yLCBlcnJvcnM6IHJlY29yZC5fZXJyb3JzIH1cIj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctdGVtcGxhdGUgI25vVGVtcGxhdGU+XG4gICAgPHNlYW0tZm9ybS1maWVsZC1lcnJvclxuICAgICAgW3ZhbGlkYXRvck5hbWVdPVwicmVjb3JkLnZhbGlkYXRvck5hbWVcIlxuICAgICAgW21lc3NhZ2VdPVwicmVjb3JkLm1lc3NhZ2VcIlxuICAgICAgW3Nob3dWYWxpZGF0b3JOYW1lXT1cInNob3dWYWxpZGF0b3JOYW1lXCI+XG4gICAgPC9zZWFtLWZvcm0tZmllbGQtZXJyb3I+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -7,16 +7,16 @@ import { FormFieldErrorComponent } from './form-field-error/form-field-error.com
7
7
  import * as i0 from "@angular/core";
8
8
  export class TheSeamFormFieldErrorModule {
9
9
  }
10
- TheSeamFormFieldErrorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: TheSeamFormFieldErrorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- TheSeamFormFieldErrorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.4", ngImport: i0, type: TheSeamFormFieldErrorModule, declarations: [FormFieldErrorComponent,
10
+ TheSeamFormFieldErrorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamFormFieldErrorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ TheSeamFormFieldErrorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.6", ngImport: i0, type: TheSeamFormFieldErrorModule, declarations: [FormFieldErrorComponent,
12
12
  FormFieldErrorListComponent,
13
13
  FormFieldErrorListItemDirective,
14
14
  FormFieldErrorListItemTplDirective], imports: [CommonModule], exports: [FormFieldErrorComponent,
15
15
  FormFieldErrorListComponent,
16
16
  FormFieldErrorListItemDirective,
17
17
  FormFieldErrorListItemTplDirective] });
18
- TheSeamFormFieldErrorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: TheSeamFormFieldErrorModule, imports: [CommonModule] });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: TheSeamFormFieldErrorModule, decorators: [{
18
+ TheSeamFormFieldErrorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamFormFieldErrorModule, imports: [CommonModule] });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamFormFieldErrorModule, decorators: [{
20
20
  type: NgModule,
21
21
  args: [{
22
22
  declarations: [
@@ -20,6 +20,8 @@ export const THE_SEAM_BASE_LAYOUT = {
20
20
  multi: false,
21
21
  };
22
22
  export class TheSeamBaseLayoutComponent {
23
+ get registeredNav() { return this._registeredNav.value; }
24
+ get registeredActions() { return this._registeredActions.value; }
23
25
  constructor(_viewContainerRef, _layout) {
24
26
  this._viewContainerRef = _viewContainerRef;
25
27
  this._layout = _layout;
@@ -34,8 +36,6 @@ export class TheSeamBaseLayoutComponent {
34
36
  this.isMobile$ = this._layout.isMobile$;
35
37
  this.hasSideBar$ = this._hasSideBar.asObservable();
36
38
  }
37
- get registeredNav() { return this._registeredNav.value; }
38
- get registeredActions() { return this._registeredActions.value; }
39
39
  ngOnInit() {
40
40
  if (this._topBarTpl) {
41
41
  this._topBarPortal = new TemplatePortal(this._topBarTpl, this._viewContainerRef);
@@ -96,9 +96,9 @@ export class TheSeamBaseLayoutComponent {
96
96
  return isObservable(fnRes) ? fnRes : from(Promise.resolve(fnRes));
97
97
  }
98
98
  }
99
- TheSeamBaseLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: TheSeamBaseLayoutComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.TheSeamLayoutService }], target: i0.ɵɵFactoryTarget.Component });
100
- TheSeamBaseLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.4", type: TheSeamBaseLayoutComponent, selector: "seam-base-layout", inputs: { overlayNav: "overlayNav" }, providers: [THE_SEAM_BASE_LAYOUT], queries: [{ propertyName: "_topBarTpl", first: true, predicate: BaseLayoutTopBarDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "_sideBarTpl", first: true, predicate: BaseLayoutSideBarDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "_contentTpl", first: true, predicate: BaseLayoutContentDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "_contentHeaderTpl", first: true, predicate: BaseLayoutContentHeaderDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "_contentFooterTpl", first: true, predicate: BaseLayoutContentFooterDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<div class=\"base-layout-side-bar-nav-content-mobile\" *ngIf=\"isMobile$ | async\">\n <ng-template [cdkPortalOutlet]=\"_sideBarPortal\"></ng-template>\n</div>\n\n<div class=\"base-layout-top-bar-container\">\n <ng-template [cdkPortalOutlet]=\"_topBarPortal\"></ng-template>\n</div>\n<div class=\"base-layout-main-container\">\n <div *ngIf=\"hasSideBar$ | async\"\n class=\"base-layout-side-bar-container\">\n <div class=\"base-layout-side-bar-nav-content\" *ngIf=\"!(isMobile$ | async)\">\n <ng-template [cdkPortalOutlet]=\"_sideBarPortal\"></ng-template>\n </div>\n </div>\n <div class=\"base-layout-content-container\">\n <div class=\"base-layout-content-container-header\">\n <!-- <ng-template [cdkPortalOutlet]=\"_contentHeaderPortal\"></ng-template> -->\n\n <div class=\"d-flex d-flex-row\">\n <div class=\"flex-grow-1\">\n <ng-template [cdkPortalOutlet]=\"_contentHeaderPortal\"></ng-template>\n </div>\n <div class=\"d-flex\">\n <ng-container *ngFor=\"let action of registeredActions$ | async; first as isFirst\">\n <div>\n <ng-container [ngTemplateOutlet]=\"$any(action)?.template\"></ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n\n\n </div>\n <div class=\"base-layout-content-container-inner\" seamOverlayScrollbar>\n <ng-template [cdkPortalOutlet]=\"_contentPortal\"></ng-template>\n </div>\n <div class=\"base-layout-content-container-footer\">\n <ng-template [cdkPortalOutlet]=\"_contentFooterPortal\"></ng-template>\n </div>\n </div>\n</div>\n", 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;border-top:none;border-right:1px solid #dee2e6;border-bottom:none;border-left:none}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;border-top:none;border-right:none;border-bottom:1px solid #dee2e6;border-left:none}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;padding:0;background:none;border-radius:0;overflow:hidden}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"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i4.OverlayScrollbarDirective, selector: "[seamOverlayScrollbar]", inputs: ["seamOverlayScrollbar", "overlayScrollbarEnabled"], exportAs: ["seamOverlayScrollbar"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: TheSeamBaseLayoutComponent, decorators: [{
99
+ TheSeamBaseLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamBaseLayoutComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.TheSeamLayoutService }], target: i0.ɵɵFactoryTarget.Component });
100
+ TheSeamBaseLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: TheSeamBaseLayoutComponent, selector: "seam-base-layout", inputs: { overlayNav: "overlayNav" }, providers: [THE_SEAM_BASE_LAYOUT], queries: [{ propertyName: "_topBarTpl", first: true, predicate: BaseLayoutTopBarDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "_sideBarTpl", first: true, predicate: BaseLayoutSideBarDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "_contentTpl", first: true, predicate: BaseLayoutContentDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "_contentHeaderTpl", first: true, predicate: BaseLayoutContentHeaderDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "_contentFooterTpl", first: true, predicate: BaseLayoutContentFooterDirective, descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<div class=\"base-layout-side-bar-nav-content-mobile\" *ngIf=\"isMobile$ | async\">\n <ng-template [cdkPortalOutlet]=\"_sideBarPortal\"></ng-template>\n</div>\n\n<div class=\"base-layout-top-bar-container\">\n <ng-template [cdkPortalOutlet]=\"_topBarPortal\"></ng-template>\n</div>\n<div class=\"base-layout-main-container\">\n <div *ngIf=\"hasSideBar$ | async\"\n class=\"base-layout-side-bar-container\">\n <div class=\"base-layout-side-bar-nav-content\" *ngIf=\"!(isMobile$ | async)\">\n <ng-template [cdkPortalOutlet]=\"_sideBarPortal\"></ng-template>\n </div>\n </div>\n <div class=\"base-layout-content-container\">\n <div class=\"base-layout-content-container-header\">\n <!-- <ng-template [cdkPortalOutlet]=\"_contentHeaderPortal\"></ng-template> -->\n\n <div class=\"d-flex d-flex-row\">\n <div class=\"flex-grow-1\">\n <ng-template [cdkPortalOutlet]=\"_contentHeaderPortal\"></ng-template>\n </div>\n <div class=\"d-flex\">\n <ng-container *ngFor=\"let action of registeredActions$ | async; first as isFirst\">\n <div>\n <ng-container [ngTemplateOutlet]=\"$any(action)?.template\"></ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n\n\n </div>\n <div class=\"base-layout-content-container-inner\" seamOverlayScrollbar>\n <ng-template [cdkPortalOutlet]=\"_contentPortal\"></ng-template>\n </div>\n <div class=\"base-layout-content-container-footer\">\n <ng-template [cdkPortalOutlet]=\"_contentFooterPortal\"></ng-template>\n </div>\n </div>\n</div>\n", 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;border-top:none;border-right:1px solid #dee2e6;border-bottom:none;border-left:none}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;border-top:none;border-right:none;border-bottom:1px solid #dee2e6;border-left:none}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;padding:0;background:none;border-radius:0;overflow:hidden}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"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i4.OverlayScrollbarDirective, selector: "[seamOverlayScrollbar]", inputs: ["seamOverlayScrollbar", "overlayScrollbarEnabled"], exportAs: ["seamOverlayScrollbar"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamBaseLayoutComponent, decorators: [{
102
102
  type: Component,
103
103
  args: [{ selector: 'seam-base-layout', providers: [THE_SEAM_BASE_LAYOUT], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"base-layout-side-bar-nav-content-mobile\" *ngIf=\"isMobile$ | async\">\n <ng-template [cdkPortalOutlet]=\"_sideBarPortal\"></ng-template>\n</div>\n\n<div class=\"base-layout-top-bar-container\">\n <ng-template [cdkPortalOutlet]=\"_topBarPortal\"></ng-template>\n</div>\n<div class=\"base-layout-main-container\">\n <div *ngIf=\"hasSideBar$ | async\"\n class=\"base-layout-side-bar-container\">\n <div class=\"base-layout-side-bar-nav-content\" *ngIf=\"!(isMobile$ | async)\">\n <ng-template [cdkPortalOutlet]=\"_sideBarPortal\"></ng-template>\n </div>\n </div>\n <div class=\"base-layout-content-container\">\n <div class=\"base-layout-content-container-header\">\n <!-- <ng-template [cdkPortalOutlet]=\"_contentHeaderPortal\"></ng-template> -->\n\n <div class=\"d-flex d-flex-row\">\n <div class=\"flex-grow-1\">\n <ng-template [cdkPortalOutlet]=\"_contentHeaderPortal\"></ng-template>\n </div>\n <div class=\"d-flex\">\n <ng-container *ngFor=\"let action of registeredActions$ | async; first as isFirst\">\n <div>\n <ng-container [ngTemplateOutlet]=\"$any(action)?.template\"></ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n\n\n </div>\n <div class=\"base-layout-content-container-inner\" seamOverlayScrollbar>\n <ng-template [cdkPortalOutlet]=\"_contentPortal\"></ng-template>\n </div>\n <div class=\"base-layout-content-container-footer\">\n <ng-template [cdkPortalOutlet]=\"_contentFooterPortal\"></ng-template>\n </div>\n </div>\n</div>\n", 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;border-top:none;border-right:1px solid #dee2e6;border-bottom:none;border-left:none}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;border-top:none;border-right:none;border-bottom:1px solid #dee2e6;border-left:none}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;padding:0;background:none;border-radius:0;overflow:hidden}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"] }]
104
104
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i1.TheSeamLayoutService }]; }, propDecorators: { overlayNav: [{
@@ -119,4 +119,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImpor
119
119
  type: ContentChild,
120
120
  args: [BaseLayoutContentFooterDirective, { static: true, read: TemplateRef }]
121
121
  }] } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay9iYXNlLWxheW91dC9iYXNlLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZnJhbWV3b3JrL2Jhc2UtbGF5b3V0L2Jhc2UtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNwRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxTQUFTLEVBRVQsV0FBVyxFQUVYLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFFdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFPekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDOUQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sbURBQW1ELENBQUE7QUFDcEcsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sbURBQW1ELENBQUE7QUFDcEcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNENBQTRDLENBQUE7QUFDdkYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUE7QUFDeEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNENBQTRDLENBQUE7Ozs7OztBQUV0RixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBUTtJQUN2QyxPQUFPLEVBQUUsdUJBQXVCO0lBQ2hDLGlEQUFpRDtJQUNqRCxXQUFXLEVB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LEVBQUUsV0FBVyxFQUFFO2dCQUNFLGlCQUFpQjtzQkFBckcsWUFBWTt1QkFBQyxnQ0FBZ0MsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCdcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIGlzRGV2TW9kZSxcbiAgT25Jbml0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZnJvbSwgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcydcblxuaW1wb3J0IHsgZmFBbmdsZURvdWJsZUxlZnQsIGZhQW5nbGVEb3VibGVSaWdodCB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucydcblxuaW1wb3J0IHsgVGhlU2VhbUxheW91dFNlcnZpY2UgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vbGF5b3V0J1xuXG5pbXBvcnQgeyBCYXNlTGF5b3V0QWN0aW9uLCBJQmFzZUxheW91dEFjdGlvbkJ1dHRvbiB9IGZyb20gJy4vYmFzZS1sYXlvdXQtYWN0aW9uJ1xuaW1wb3J0IHsgSVRoZVNlYW1CYXNlTGF5b3V0TmF2IH0gZnJvbSAnLi9iYXNlLWxheW91dC1uYXYnXG5pbXBvcnQgeyBJVGhlU2VhbUJhc2VMYXlvdXRSZWYgfSBmcm9tICcuL2Jhc2UtbGF5b3V0LXJlZidcbmltcG9ydCB7IFRIRVNFQU1fQkFTRV9MQVlPVVRfUkVGIH0gZnJvbSAnLi9iYXNlLWxheW91dC10b2tlbnMnXG5pbXBvcnQgeyBCYXNlTGF5b3V0Q29udGVudEZvb3RlckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9iYXNlLWxheW91dC1jb250ZW50LWZvb3Rlci5kaXJlY3RpdmUnXG5pbXBvcnQgeyBCYXNlTGF5b3V0Q29udGVudEhlYWRlckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9iYXNlLWxheW91dC1jb250ZW50LWhlYWRlci5kaXJlY3RpdmUnXG5pbXBvcnQgeyBCYXNlTGF5b3V0Q29udGVudERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9iYXNlLWxheW91dC1jb250ZW50LmRpcmVjdGl2ZSdcbmltcG9ydCB7IEJhc2VMYXlvdXRTaWRlQmFyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Jhc2UtbGF5b3V0LXNpZGUtYmFyLmRpcmVjdGl2ZSdcbmltcG9ydCB7IEJhc2VMYXlvdXRUb3BCYXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYmFzZS1sYXlvdXQtdG9wLWJhci5kaXJlY3RpdmUnXG5cbmV4cG9ydCBjb25zdCBUSEVfU0VBTV9CQVNFX0xBWU9VVDogYW55ID0ge1xuICBwcm92aWRlOiBUSEVTRUFNX0JBU0VfTEFZT1VUX1JFRixcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLXVzZS1iZWZvcmUtZGVjbGFyZVxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUaGVTZWFtQmFzZUxheW91dENvbXBvbmVudCksXG4gIG11bHRpOiBmYWxzZSxcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2VhbS1iYXNlLWxheW91dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9iYXNlLWxheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Jhc2UtbGF5b3V0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogWyBUSEVfU0VBTV9CQVNFX0xBWU9VVCBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBUaGVTZWFtQmFzZUxheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgSVRoZVNlYW1CYXNlTGF5b3V0UmVmIHtcblxuICBmYUFuZ2xlRG91YmxlUmlnaHQgPSBmYUFuZ2xlRG91YmxlUmlnaHRcbiAgZmFBbmdsZURvdWJsZUxlZnQgPSBmYUFuZ2xlRG91YmxlTGVmdFxuXG4gIEBJbnB1dCgpIG92ZXJsYXlOYXYgPSBmYWxzZVxuXG4gIC8vIFRPRE86IENvbnNpZGVyIG1ha2luZyB0aGUgdGVtcGxhdGUgcXVlcmllcyBub3QgYmUgZHluYW1pYy4gSSBjYW4gc2VlIHRoaXNcbiAgLy8gcG90ZW50aWFsbHkgY2F1c2luZyBjb25mdXNpb24gb3IgaXNzdWVzIHdpdGggcG90ZW50aWFsIGxheW91dHMgYnVpbHQgd2l0aFxuICAvLyB0aGlzIGNvbXBvbmVudC5cbiAgQENvbnRlbnRDaGlsZChCYXNlTGF5b3V0VG9wQmFyRGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogVGVtcGxhdGVSZWYgfSkgX3RvcEJhclRwbD86IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsXG4gIEBDb250ZW50Q2hpbGQoQmFzZUxheW91dFNpZGVCYXJEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KSBfc2lkZUJhclRwbD86IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsXG4gIEBDb250ZW50Q2hpbGQoQmFzZUxheW91dENvbnRlbnREaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KSBfY29udGVudFRwbD86IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsXG4gIEBDb250ZW50Q2hpbGQoQmFzZUxheW91dENvbnRlbnRIZWFkZXJEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KSBfY29udGVudEhlYWRlclRwbD86IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsXG4gIEBDb250ZW50Q2hpbGQoQmFzZUxheW91dENvbnRlbnRGb290ZXJEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KSBfY29udGVudEZvb3RlclRwbD86IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsXG5cbiAgX3RvcEJhclBvcnRhbD86IFRlbXBsYXRlUG9ydGFsXG4gIF9zaWRlQmFyUG9ydGFsPzogVGVtcGxhdGVQb3J0YWxcbiAgX2NvbnRlbnRQb3J0YWw/OiBUZW1wbGF0ZVBvcnRhbFxuICBfY29udGVudEhlYWRlclBvcnRhbD86IFRlbXBsYXRlUG9ydGFsXG4gIF9jb250ZW50Rm9vdGVyUG9ydGFsPzogVGVtcGxhdGVQb3J0YWxcblxuICBwcml2YXRlIF9oYXNTaWRlQmFyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSlcblxuICBwdWJsaWMgaGFzU2lkZUJhciQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cbiAgcHVibGljIGlzTW9iaWxlJDogT2JzZXJ2YWJsZTxib29sZWFuPlxuXG4gIGdldCByZWdpc3RlcmVkTmF2KCkgeyByZXR1cm4gdGhpcy5fcmVnaXN0ZXJlZE5hdi52YWx1ZSB9XG4gIHByaXZhdGUgX3JlZ2lzdGVyZWROYXYgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElUaGVTZWFtQmFzZUxheW91dE5hdiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuICBwdWJsaWMgcmVnaXN0ZXJlZE5hdiQgPSB0aGlzLl9yZWdpc3RlcmVkTmF2LmFzT2JzZXJ2YWJsZSgpXG5cbiAgZ2V0IHJlZ2lzdGVyZWRBY3Rpb25zKCkgeyByZXR1cm4gdGhpcy5fcmVnaXN0ZXJlZEFjdGlvbnMudmFsdWUgfVxuICBwcml2YXRlIF9yZWdpc3RlcmVkQWN0aW9ucyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QmFzZUxheW91dEFjdGlvbltdPihbXSlcbiAgcHVibGljIHJlZ2lzdGVyZWRBY3Rpb25zJDogT2JzZXJ2YWJsZTxCYXNlTGF5b3V0QWN0aW9uW10+XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIF9sYXlvdXQ6IFRoZVNlYW1MYXlvdXRTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMucmVnaXN0ZXJlZEFjdGlvbnMkID0gdGhpcy5fcmVnaXN0ZXJlZEFjdGlvbnMuYXNPYnNlcnZhYmxlKClcblxuICAgIHRoaXMuaXNNb2JpbGUkID0gdGhpcy5fbGF5b3V0LmlzTW9iaWxlJFxuICAgIHRoaXMuaGFzU2lkZUJhciQgPSB0aGlzLl9oYXNTaWRlQmFyLmFzT2JzZXJ2YWJsZSgpXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy5fdG9wQmFyVHBsKSB7XG4gICAgICB0aGlzLl90b3BCYXJQb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5fdG9wQmFyVHBsLCB0aGlzLl92aWV3Q29udGFpbmVyUmVmKVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9zaWRlQmFyVHBsKSB7XG4gICAgICB0aGlzLl9zaWRlQmFyUG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuX3NpZGVCYXJUcGwsIHRoaXMuX3ZpZXdDb250YWluZXJSZWYpXG4gICAgICB0aGlzLl9oYXNTaWRlQmFyLm5leHQodHJ1ZSlcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fY29udGVudFRwbCkge1xuICAgICAgdGhpcy5fY29udGVudFBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLl9jb250ZW50VHBsLCB0aGlzLl92aWV3Q29udGFpbmVyUmVmKVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9jb250ZW50SGVhZGVyVHBsKSB7XG4gICAgICB0aGlzLl9jb250ZW50SGVhZGVyUG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuX2NvbnRlbnRIZWFkZXJUcGwsIHRoaXMuX3ZpZXdDb250YWluZXJSZWYpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2NvbnRlbnRGb290ZXJUcGwpIHtcbiAgICAgIHRoaXMuX2NvbnRlbnRGb290ZXJQb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5fY29udGVudEZvb3RlclRwbCwgdGhpcy5fdmlld0NvbnRhaW5lclJlZilcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJOYXYobmF2OiBJVGhlU2VhbUJhc2VMYXlvdXROYXYpOiB2b2lkIHtcbiAgICAvLyBUT0RPOiBBbGxvdyBtdWx0aXBsZSByZWdpc3RlcmVkIG5hdnNcbiAgICAvLyBpZiAodGhpcy5yZWdpc3RlcmVkTmF2KSB7XG4gICAgLy8gICB0aHJvdyBuZXcgRXJyb3IoJ1tUaGVTZWFtQmFzZUxheW91dENvbXBvbmVudF0gQSBuYXYgaXMgYWxyZWFkeSByZWdpc3RlcmVkLicpXG4gICAgLy8gfVxuICAgIC8vIGNvbnNvbGUubG9nKCdyZWdpc3RlciBuYXYnLCBuYXYpXG4gICAgdGhpcy5fcmVnaXN0ZXJlZE5hdi5uZXh0KG5hdilcbiAgfVxuXG4gIHB1YmxpYyB1bnJlZ2lzdGVyTmF2KG5hdjogSVRoZVNlYW1CYXNlTGF5b3V0TmF2KTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVnaXN0ZXJlZE5hdiA9PT0gbmF2KSB7XG4gICAgICB0aGlzLl9yZWdpc3RlcmVkTmF2Lm5leHQodW5kZWZpbmVkKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlckFjdGlvbihhY3Rpb246IEJhc2VMYXlvdXRBY3Rpb24pOiB2b2lkIHtcbiAgICBjb25zdCBhY3Rpb25zID0gdGhpcy5fcmVnaXN0ZXJlZEFjdGlvbnMudmFsdWVcbiAgICBpZiAoYWN0aW9ucy5maW5kSW5kZXgoYSA9PiBhLm5hbWUgPT09IGFjdGlvbi5uYW1lKSAhPT0gLTEpIHtcbiAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYFtUaGVTZWFtQmFzZUxheW91dENvbXBvbmVudF0gcmVnaXN0ZXJBY3Rpb24oKTogQWN0aW9uICR7YWN0aW9uLm5hbWV9IG5vdCBgICtcbiAgICAgICAgICAncmVnaXN0ZXJlZCwgYmVjYXVzZSBhbm90aGVyIGFjdGlvbiBieSB0aGF0IG5hbWUgaXMgYWxyZWFkeSByZWdpc3RlcmVkLidcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGFjdGlvbnMucHVzaChhY3Rpb24pXG4gIH1cblxuICBwdWJsaWMgdW5yZWdpc3RlckFjdGlvbihhY3Rpb246IEJhc2VMYXlvdXRBY3Rpb24gfCBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBhY3Rpb25OYW1lID0gdHlwZW9mIGFjdGlvbiA9PT0gJ3N0cmluZycgPyBhY3Rpb24gOiBhY3Rpb24ubmFtZVxuICAgIGNvbnN0IGFjdGlvbnMgPSB0aGlzLl9yZWdpc3RlcmVkQWN0aW9ucy52YWx1ZVxuICAgIHRoaXMuX3JlZ2lzdGVyZWRBY3Rpb25zLm5leHQoYWN0aW9ucy5maWx0ZXIoZiA9PiBmLm5hbWUgIT09IGFjdGlvbk5hbWUpKVxuICB9XG5cbiAgcHVibGljIGlzQWN0aW9uUmVnaXN0ZXJlZChhY3Rpb25OYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBhY3Rpb25zID0gdGhpcy5fcmVnaXN0ZXJlZEFjdGlvbnMudmFsdWVcbiAgICBjb25zdCBhY3Rpb24gPSBhY3Rpb25zLmZpbmQoZiA9PiBmLm5hbWUgPT09IGFjdGlvbk5hbWUpXG4gICAgcmV0dXJuICEhYWN0aW9uXG4gIH1cblxuICBfaGFuZGxlQnV0dG9uQWN0aW9uKGFjdGlvbjogSUJhc2VMYXlvdXRBY3Rpb25CdXR0b24pOiB2b2lkIHtcbiAgICB0aGlzLl9leGVjQnV0dG9uQWN0aW9uKGFjdGlvbikuc3Vic2NyaWJlKClcbiAgfVxuXG4gIF9leGVjQnV0dG9uQWN0aW9uKGFjdGlvbjogSUJhc2VMYXlvdXRBY3Rpb25CdXR0b24pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBmblJlcyA9IGFjdGlvbi5leGVjKClcbiAgICByZXR1cm4gaXNPYnNlcnZhYmxlKGZuUmVzKSA/IGZuUmVzIDogZnJvbShQcm9taXNlLnJlc29sdmUoZm5SZXMpKVxuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJiYXNlLWxheW91dC1zaWRlLWJhci1uYXYtY29udGVudC1tb2JpbGVcIiAqbmdJZj1cImlzTW9iaWxlJCB8IGFzeW5jXCI+XG4gIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cIl9zaWRlQmFyUG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiYmFzZS1sYXlvdXQtdG9wLWJhci1jb250YWluZXJcIj5cbiAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwiX3RvcEJhclBvcnRhbFwiPjwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJiYXNlLWxheW91dC1tYWluLWNvbnRhaW5lclwiPlxuICA8ZGl2ICpuZ0lmPVwiaGFzU2lkZUJhciQgfCBhc3luY1wiXG4gICAgY2xhc3M9XCJiYXNlLWxheW91dC1zaWRlLWJhci1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYmFzZS1sYXlvdXQtc2lkZS1iYXItbmF2LWNvbnRlbnRcIiAqbmdJZj1cIiEoaXNNb2JpbGUkIHwgYXN5bmMpXCI+XG4gICAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJfc2lkZUJhclBvcnRhbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYmFzZS1sYXlvdXQtY29udGVudC1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYmFzZS1sYXlvdXQtY29udGVudC1jb250YWluZXItaGVhZGVyXCI+XG4gICAgICA8IS0tIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cIl9jb250ZW50SGVhZGVyUG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT4gLS0+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZC1mbGV4LXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTFcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJfY29udGVudEhlYWRlclBvcnRhbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIHJlZ2lzdGVyZWRBY3Rpb25zJCB8IGFzeW5jOyBmaXJzdCBhcyBpc0ZpcnN0XCI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoYWN0aW9uKT8udGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYmFzZS1sYXlvdXQtY29udGVudC1jb250YWluZXItaW5uZXJcIiBzZWFtT3ZlcmxheVNjcm9sbGJhcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cIl9jb250ZW50UG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiYmFzZS1sYXlvdXQtY29udGVudC1jb250YWluZXItZm9vdGVyXCI+XG4gICAgICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJfY29udGVudEZvb3RlclBvcnRhbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL2ZyYW1ld29yay9iYXNlLWxheW91dC9iYXNlLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZnJhbWV3b3JrL2Jhc2UtbGF5b3V0L2Jhc2UtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNwRCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFDTCxTQUFTLEVBRVQsV0FBVyxFQUVYLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFFdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFPekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDOUQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sbURBQW1ELENBQUE7QUFDcEcsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sbURBQW1ELENBQUE7QUFDcEcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNENBQTRDLENBQUE7QUFDdkYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUE7QUFDeEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNENBQTRDLENBQUE7Ozs7OztBQUV0RixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBUTtJQUN2QyxPQUFPLEVBQUUsdUJBQXVCO0lBQ2hDLGlEQUFpRDtJQUNqRCxXQUFXLEVB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RUFBRSxXQUFXLEVBQUU7Z0JBQ0UsaUJBQWlCO3NCQUFyRyxZQUFZO3VCQUFDLGdDQUFnQyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJ1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgaXNEZXZNb2RlLFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tLCBpc09ic2VydmFibGUsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuXG5pbXBvcnQgeyBmYUFuZ2xlRG91YmxlTGVmdCwgZmFBbmdsZURvdWJsZVJpZ2h0IH0gZnJvbSAnQGZvcnRhd2Vzb21lL2ZyZWUtc29saWQtc3ZnLWljb25zJ1xuXG5pbXBvcnQgeyBUaGVTZWFtTGF5b3V0U2VydmljZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9sYXlvdXQnXG5cbmltcG9ydCB7IEJhc2VMYXlvdXRBY3Rpb24sIElCYXNlTGF5b3V0QWN0aW9uQnV0dG9uIH0gZnJvbSAnLi9iYXNlLWxheW91dC1hY3Rpb24nXG5pbXBvcnQgeyBJVGhlU2VhbUJhc2VMYXlvdXROYXYgfSBmcm9tICcuL2Jhc2UtbGF5b3V0LW5hdidcbmltcG9ydCB7IElUaGVTZWFtQmFzZUxheW91dFJlZiB9IGZyb20gJy4vYmFzZS1sYXlvdXQtcmVmJ1xuaW1wb3J0IHsgVEhFU0VBTV9CQVNFX0xBWU9VVF9SRUYgfSBmcm9tICcuL2Jhc2UtbGF5b3V0LXRva2VucydcbmltcG9ydCB7IEJhc2VMYXlvdXRDb250ZW50Rm9vdGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Jhc2UtbGF5b3V0LWNvbnRlbnQtZm9vdGVyLmRpcmVjdGl2ZSdcbmltcG9ydCB7IEJhc2VMYXlvdXRDb250ZW50SGVhZGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Jhc2UtbGF5b3V0LWNvbnRlbnQtaGVhZGVyLmRpcmVjdGl2ZSdcbmltcG9ydCB7IEJhc2VMYXlvdXRDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Jhc2UtbGF5b3V0LWNvbnRlbnQuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgQmFzZUxheW91dFNpZGVCYXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYmFzZS1sYXlvdXQtc2lkZS1iYXIuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgQmFzZUxheW91dFRvcEJhckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9iYXNlLWxheW91dC10b3AtYmFyLmRpcmVjdGl2ZSdcblxuZXhwb3J0IGNvbnN0IFRIRV9TRUFNX0JBU0VfTEFZT1VUOiBhbnkgPSB7XG4gIHByb3ZpZGU6IFRIRVNFQU1fQkFTRV9MQVlPVVRfUkVGLFxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tdXNlLWJlZm9yZS1kZWNsYXJlXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRoZVNlYW1CYXNlTGF5b3V0Q29tcG9uZW50KSxcbiAgbXVsdGk6IGZhbHNlLFxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLWJhc2UtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Jhc2UtbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYmFzZS1sYXlvdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbIFRIRV9TRUFNX0JBU0VfTEFZT1VUIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1CYXNlTGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBJVGhlU2VhbUJhc2VMYXlvdXRSZWYge1xuXG4gIGZhQW5nbGVEb3VibGVSaWdodCA9IGZhQW5nbGVEb3VibGVSaWdodFxuICBmYUFuZ2xlRG91YmxlTGVmdCA9IGZhQW5nbGVEb3VibGVMZWZ0XG5cbiAgQElucHV0KCkgb3ZlcmxheU5hdiA9IGZhbHNlXG5cbiAgLy8gVE9ETzogQ29uc2lkZXIgbWFraW5nIHRoZSB0ZW1wbGF0ZSBxdWVyaWVzIG5vdCBiZSBkeW5hbWljLiBJIGNhbiBzZWUgdGhpc1xuICAvLyBwb3RlbnRpYWxseSBjYXVzaW5nIGNvbmZ1c2lvbiBvciBpc3N1ZXMgd2l0aCBwb3RlbnRpYWwgbGF5b3V0cyBidWlsdCB3aXRoXG4gIC8vIHRoaXMgY29tcG9uZW50LlxuICBAQ29udGVudENoaWxkKEJhc2VMYXlvdXRUb3BCYXJEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KSBfdG9wQmFyVHBsPzogVGVtcGxhdGVSZWY8YW55PiB8IG51bGxcbiAgQENvbnRlbnRDaGlsZChCYXNlTGF5b3V0U2lkZUJhckRpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFRlbXBsYXRlUmVmIH0pIF9zaWRlQmFyVHBsPzogVGVtcGxhdGVSZWY8YW55PiB8IG51bGxcbiAgQENvbnRlbnRDaGlsZChCYXNlTGF5b3V0Q29udGVudERpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFRlbXBsYXRlUmVmIH0pIF9jb250ZW50VHBsPzogVGVtcGxhdGVSZWY8YW55PiB8IG51bGxcbiAgQENvbnRlbnRDaGlsZChCYXNlTGF5b3V0Q29udGVudEhlYWRlckRpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFRlbXBsYXRlUmVmIH0pIF9jb250ZW50SGVhZGVyVHBsPzogVGVtcGxhdGVSZWY8YW55PiB8IG51bGxcbiAgQENvbnRlbnRDaGlsZChCYXNlTGF5b3V0Q29udGVudEZvb3RlckRpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFRlbXBsYXRlUmVmIH0pIF9jb250ZW50Rm9vdGVyVHBsPzogVGVtcGxhdGVSZWY8YW55PiB8IG51bGxcblxuICBfdG9wQmFyUG9ydGFsPzogVGVtcGxhdGVQb3J0YWxcbiAgX3NpZGVCYXJQb3J0YWw/OiBUZW1wbGF0ZVBvcnRhbFxuICBfY29udGVudFBvcnRhbD86IFRlbXBsYXRlUG9ydGFsXG4gIF9jb250ZW50SGVhZGVyUG9ydGFsPzogVGVtcGxhdGVQb3J0YWxcbiAgX2NvbnRlbnRGb290ZXJQb3J0YWw/OiBUZW1wbGF0ZVBvcnRhbFxuXG4gIHByaXZhdGUgX2hhc1NpZGVCYXIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKVxuXG4gIHB1YmxpYyBoYXNTaWRlQmFyJDogT2JzZXJ2YWJsZTxib29sZWFuPlxuICBwdWJsaWMgaXNNb2JpbGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG5cbiAgZ2V0IHJlZ2lzdGVyZWROYXYoKSB7IHJldHVybiB0aGlzLl9yZWdpc3RlcmVkTmF2LnZhbHVlIH1cbiAgcHJpdmF0ZSBfcmVnaXN0ZXJlZE5hdiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SVRoZVNlYW1CYXNlTGF5b3V0TmF2IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG4gIHB1YmxpYyByZWdpc3RlcmVkTmF2JCA9IHRoaXMuX3JlZ2lzdGVyZWROYXYuYXNPYnNlcnZhYmxlKClcblxuICBnZXQgcmVnaXN0ZXJlZEFjdGlvbnMoKSB7IHJldHVybiB0aGlzLl9yZWdpc3RlcmVkQWN0aW9ucy52YWx1ZSB9XG4gIHByaXZhdGUgX3JlZ2lzdGVyZWRBY3Rpb25zID0gbmV3IEJlaGF2aW9yU3ViamVjdDxCYXNlTGF5b3V0QWN0aW9uW10+KFtdKVxuICBwdWJsaWMgcmVnaXN0ZXJlZEFjdGlvbnMkOiBPYnNlcnZhYmxlPEJhc2VMYXlvdXRBY3Rpb25bXT5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgX2xheW91dDogVGhlU2VhbUxheW91dFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5yZWdpc3RlcmVkQWN0aW9ucyQgPSB0aGlzLl9yZWdpc3RlcmVkQWN0aW9ucy5hc09ic2VydmFibGUoKVxuXG4gICAgdGhpcy5pc01vYmlsZSQgPSB0aGlzLl9sYXlvdXQuaXNNb2JpbGUkXG4gICAgdGhpcy5oYXNTaWRlQmFyJCA9IHRoaXMuX2hhc1NpZGVCYXIuYXNPYnNlcnZhYmxlKClcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLl90b3BCYXJUcGwpIHtcbiAgICAgIHRoaXMuX3RvcEJhclBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLl90b3BCYXJUcGwsIHRoaXMuX3ZpZXdDb250YWluZXJSZWYpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3NpZGVCYXJUcGwpIHtcbiAgICAgIHRoaXMuX3NpZGVCYXJQb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5fc2lkZUJhclRwbCwgdGhpcy5fdmlld0NvbnRhaW5lclJlZilcbiAgICAgIHRoaXMuX2hhc1NpZGVCYXIubmV4dCh0cnVlKVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9jb250ZW50VHBsKSB7XG4gICAgICB0aGlzLl9jb250ZW50UG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMuX2NvbnRlbnRUcGwsIHRoaXMuX3ZpZXdDb250YWluZXJSZWYpXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2NvbnRlbnRIZWFkZXJUcGwpIHtcbiAgICAgIHRoaXMuX2NvbnRlbnRIZWFkZXJQb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5fY29udGVudEhlYWRlclRwbCwgdGhpcy5fdmlld0NvbnRhaW5lclJlZilcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fY29udGVudEZvb3RlclRwbCkge1xuICAgICAgdGhpcy5fY29udGVudEZvb3RlclBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLl9jb250ZW50Rm9vdGVyVHBsLCB0aGlzLl92aWV3Q29udGFpbmVyUmVmKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck5hdihuYXY6IElUaGVTZWFtQmFzZUxheW91dE5hdik6IHZvaWQge1xuICAgIC8vIFRPRE86IEFsbG93IG11bHRpcGxlIHJlZ2lzdGVyZWQgbmF2c1xuICAgIC8vIGlmICh0aGlzLnJlZ2lzdGVyZWROYXYpIHtcbiAgICAvLyAgIHRocm93IG5ldyBFcnJvcignW1RoZVNlYW1CYXNlTGF5b3V0Q29tcG9uZW50XSBBIG5hdiBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuJylcbiAgICAvLyB9XG4gICAgLy8gY29uc29sZS5sb2coJ3JlZ2lzdGVyIG5hdicsIG5hdilcbiAgICB0aGlzLl9yZWdpc3RlcmVkTmF2Lm5leHQobmF2KVxuICB9XG5cbiAgcHVibGljIHVucmVnaXN0ZXJOYXYobmF2OiBJVGhlU2VhbUJhc2VMYXlvdXROYXYpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWdpc3RlcmVkTmF2ID09PSBuYXYpIHtcbiAgICAgIHRoaXMuX3JlZ2lzdGVyZWROYXYubmV4dCh1bmRlZmluZWQpXG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyQWN0aW9uKGFjdGlvbjogQmFzZUxheW91dEFjdGlvbik6IHZvaWQge1xuICAgIGNvbnN0IGFjdGlvbnMgPSB0aGlzLl9yZWdpc3RlcmVkQWN0aW9ucy52YWx1ZVxuICAgIGlmIChhY3Rpb25zLmZpbmRJbmRleChhID0+IGEubmFtZSA9PT0gYWN0aW9uLm5hbWUpICE9PSAtMSkge1xuICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgW1RoZVNlYW1CYXNlTGF5b3V0Q29tcG9uZW50XSByZWdpc3RlckFjdGlvbigpOiBBY3Rpb24gJHthY3Rpb24ubmFtZX0gbm90IGAgK1xuICAgICAgICAgICdyZWdpc3RlcmVkLCBiZWNhdXNlIGFub3RoZXIgYWN0aW9uIGJ5IHRoYXQgbmFtZSBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuJ1xuICAgICAgICApXG4gICAgICB9XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgYWN0aW9ucy5wdXNoKGFjdGlvbilcbiAgfVxuXG4gIHB1YmxpYyB1bnJlZ2lzdGVyQWN0aW9uKGFjdGlvbjogQmFzZUxheW91dEFjdGlvbiB8IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGlvbk5hbWUgPSB0eXBlb2YgYWN0aW9uID09PSAnc3RyaW5nJyA/IGFjdGlvbiA6IGFjdGlvbi5uYW1lXG4gICAgY29uc3QgYWN0aW9ucyA9IHRoaXMuX3JlZ2lzdGVyZWRBY3Rpb25zLnZhbHVlXG4gICAgdGhpcy5fcmVnaXN0ZXJlZEFjdGlvbnMubmV4dChhY3Rpb25zLmZpbHRlcihmID0+IGYubmFtZSAhPT0gYWN0aW9uTmFtZSkpXG4gIH1cblxuICBwdWJsaWMgaXNBY3Rpb25SZWdpc3RlcmVkKGFjdGlvbk5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGFjdGlvbnMgPSB0aGlzLl9yZWdpc3RlcmVkQWN0aW9ucy52YWx1ZVxuICAgIGNvbnN0IGFjdGlvbiA9IGFjdGlvbnMuZmluZChmID0+IGYubmFtZSA9PT0gYWN0aW9uTmFtZSlcbiAgICByZXR1cm4gISFhY3Rpb25cbiAgfVxuXG4gIF9oYW5kbGVCdXR0b25BY3Rpb24oYWN0aW9uOiBJQmFzZUxheW91dEFjdGlvbkJ1dHRvbik6IHZvaWQge1xuICAgIHRoaXMuX2V4ZWNCdXR0b25BY3Rpb24oYWN0aW9uKS5zdWJzY3JpYmUoKVxuICB9XG5cbiAgX2V4ZWNCdXR0b25BY3Rpb24oYWN0aW9uOiBJQmFzZUxheW91dEFjdGlvbkJ1dHRvbik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IGZuUmVzID0gYWN0aW9uLmV4ZWMoKVxuICAgIHJldHVybiBpc09ic2VydmFibGUoZm5SZXMpID8gZm5SZXMgOiBmcm9tKFByb21pc2UucmVzb2x2ZShmblJlcykpXG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImJhc2UtbGF5b3V0LXNpZGUtYmFyLW5hdi1jb250ZW50LW1vYmlsZVwiICpuZ0lmPVwiaXNNb2JpbGUkIHwgYXN5bmNcIj5cbiAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwiX3NpZGVCYXJQb3J0YWxcIj48L25nLXRlbXBsYXRlPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJiYXNlLWxheW91dC10b3AtYmFyLWNvbnRhaW5lclwiPlxuICA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJfdG9wQmFyUG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImJhc2UtbGF5b3V0LW1haW4tY29udGFpbmVyXCI+XG4gIDxkaXYgKm5nSWY9XCJoYXNTaWRlQmFyJCB8IGFzeW5jXCJcbiAgICBjbGFzcz1cImJhc2UtbGF5b3V0LXNpZGUtYmFyLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJiYXNlLWxheW91dC1zaWRlLWJhci1uYXYtY29udGVudFwiICpuZ0lmPVwiIShpc01vYmlsZSQgfCBhc3luYylcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cIl9zaWRlQmFyUG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJiYXNlLWxheW91dC1jb250ZW50LWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJiYXNlLWxheW91dC1jb250ZW50LWNvbnRhaW5lci1oZWFkZXJcIj5cbiAgICAgIDwhLS0gPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwiX2NvbnRlbnRIZWFkZXJQb3J0YWxcIj48L25nLXRlbXBsYXRlPiAtLT5cblxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBkLWZsZXgtcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cIl9jb250ZW50SGVhZGVyUG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgcmVnaXN0ZXJlZEFjdGlvbnMkIHwgYXN5bmM7IGZpcnN0IGFzIGlzRmlyc3RcIj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShhY3Rpb24pPy50ZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cblxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJiYXNlLWxheW91dC1jb250ZW50LWNvbnRhaW5lci1pbm5lclwiIHNlYW1PdmVybGF5U2Nyb2xsYmFyPlxuICAgICAgPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwiX2NvbnRlbnRQb3J0YWxcIj48L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJiYXNlLWxheW91dC1jb250ZW50LWNvbnRhaW5lci1mb290ZXJcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cIl9jb250ZW50Rm9vdGVyUG9ydGFsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -15,8 +15,8 @@ import { BaseLayoutTopBarDirective } from './directives/base-layout-top-bar.dire
15
15
  import * as i0 from "@angular/core";
16
16
  export class TheSeamBaseLayoutModule {
17
17
  }
18
- TheSeamBaseLayoutModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: TheSeamBaseLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
- TheSeamBaseLayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.4", ngImport: i0, type: TheSeamBaseLayoutModule, declarations: [TheSeamBaseLayoutComponent,
18
+ TheSeamBaseLayoutModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamBaseLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
+ TheSeamBaseLayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.6", ngImport: i0, type: TheSeamBaseLayoutModule, declarations: [TheSeamBaseLayoutComponent,
20
20
  BaseLayoutContentDirective,
21
21
  BaseLayoutSideBarDirective,
22
22
  BaseLayoutSideBarFooterDirective,
@@ -35,12 +35,12 @@ TheSeamBaseLayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
35
35
  BaseLayoutNavToggleDirective,
36
36
  BaseLayoutContentHeaderDirective,
37
37
  BaseLayoutContentFooterDirective] });
38
- TheSeamBaseLayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: TheSeamBaseLayoutModule, imports: [CommonModule,
38
+ TheSeamBaseLayoutModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamBaseLayoutModule, imports: [CommonModule,
39
39
  PortalModule,
40
40
  TheSeamScrollbarModule,
41
41
  TheSeamIconModule,
42
42
  TheSeamButtonsModule] });
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: TheSeamBaseLayoutModule, decorators: [{
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamBaseLayoutModule, decorators: [{
44
44
  type: NgModule,
45
45
  args: [{
46
46
  declarations: [
@@ -5,9 +5,9 @@ export class BaseLayoutContentFooterDirective {
5
5
  this._elementRef = _elementRef;
6
6
  }
7
7
  }
8
- BaseLayoutContentFooterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BaseLayoutContentFooterDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
9
- BaseLayoutContentFooterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.4", type: BaseLayoutContentFooterDirective, selector: "[seamBaseLayoutContentFooter]", ngImport: i0 });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BaseLayoutContentFooterDirective, decorators: [{
8
+ BaseLayoutContentFooterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BaseLayoutContentFooterDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
9
+ BaseLayoutContentFooterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.6", type: BaseLayoutContentFooterDirective, selector: "[seamBaseLayoutContentFooter]", ngImport: i0 });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BaseLayoutContentFooterDirective, decorators: [{
11
11
  type: Directive,
12
12
  args: [{
13
13
  selector: '[seamBaseLayoutContentFooter]'
@@ -5,9 +5,9 @@ export class BaseLayoutContentHeaderDirective {
5
5
  this._elementRef = _elementRef;
6
6
  }
7
7
  }
8
- BaseLayoutContentHeaderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BaseLayoutContentHeaderDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
9
- BaseLayoutContentHeaderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.4", type: BaseLayoutContentHeaderDirective, selector: "[seamBaseLayoutContentHeader]", ngImport: i0 });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BaseLayoutContentHeaderDirective, decorators: [{
8
+ BaseLayoutContentHeaderDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BaseLayoutContentHeaderDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
9
+ BaseLayoutContentHeaderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.6", type: BaseLayoutContentHeaderDirective, selector: "[seamBaseLayoutContentHeader]", ngImport: i0 });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BaseLayoutContentHeaderDirective, decorators: [{
11
11
  type: Directive,
12
12
  args: [{
13
13
  selector: '[seamBaseLayoutContentHeader]'
@@ -5,9 +5,9 @@ export class BaseLayoutContentDirective {
5
5
  this._elementRef = _elementRef;
6
6
  }
7
7
  }
8
- BaseLayoutContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BaseLayoutContentDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
9
- BaseLayoutContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.4", type: BaseLayoutContentDirective, selector: "[seamBaseLayoutContent]", ngImport: i0 });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImport: i0, type: BaseLayoutContentDirective, decorators: [{
8
+ BaseLayoutContentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BaseLayoutContentDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
9
+ BaseLayoutContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.6", type: BaseLayoutContentDirective, selector: "[seamBaseLayoutContent]", ngImport: i0 });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: BaseLayoutContentDirective, decorators: [{
11
11
  type: Directive,
12
12
  args: [{
13
13
  selector: '[seamBaseLayoutContent]'