@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.
- package/breadcrumbs/breadcrumb.d.ts +1 -1
- package/breadcrumbs/breadcrumbs-resolver.d.ts +1 -1
- package/core/common-behaviors/active.d.ts +1 -1
- package/core/common-behaviors/constructor.d.ts +1 -1
- package/core/common-behaviors/disabled.d.ts +1 -1
- package/core/common-behaviors/initialized.d.ts +1 -1
- package/core/common-behaviors/size.d.ts +1 -1
- package/core/common-behaviors/tabindex.d.ts +1 -1
- package/core/common-behaviors/theme.d.ts +1 -1
- package/data-exporter/data-exporter.d.ts +1 -1
- package/data-filters/data-filter.d.ts +3 -3
- package/data-filters/filters/data-filter-search/search-filter-options.d.ts +1 -1
- package/datatable/datatable-column/datatable-column.component.d.ts +1 -1
- package/datatable/models/preferences.d.ts +1 -1
- package/datatable/models/table-column.d.ts +1 -1
- package/datatable/services/columns-manager.service.d.ts +1 -1
- package/datatable-dynamic/datatable-dynamic-def.d.ts +3 -3
- package/datatable-dynamic/models/dynamic-datatable-action-menu-record.d.ts +1 -1
- package/dynamic/models/dynamic-value-base-type.d.ts +1 -1
- package/dynamic/models/dynamic-value-evaluatable-type.d.ts +1 -1
- package/dynamic/models/dynamic-value-primitive.d.ts +1 -1
- package/dynamic/models/dynamic-value.d.ts +1 -1
- package/dynamic/tokens/api-config.d.ts +1 -1
- package/esm2020/asset-reader/asset-reader-helper.service.mjs +3 -3
- package/esm2020/asset-reader/asset-reader.module.mjs +4 -4
- package/esm2020/asset-reader/encrypted-asset-link.directive.mjs +12 -12
- package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +3 -3
- package/esm2020/breadcrumbs/breadcrumbs.module.mjs +4 -4
- package/esm2020/breadcrumbs/breadcrumbs.service.mjs +3 -3
- package/esm2020/buttons/badge-button/badge-button.component.mjs +6 -6
- package/esm2020/buttons/button/button.component.mjs +9 -9
- package/esm2020/buttons/buttons.module.mjs +4 -4
- package/esm2020/buttons/progress-circle-button/progress-circle-button.component.mjs +3 -3
- package/esm2020/buttons/toggle-button/toggle-button.component.mjs +5 -5
- package/esm2020/card/card-action/card-action.component.mjs +3 -3
- package/esm2020/card/card-body/card-body.component.mjs +3 -3
- package/esm2020/card/card-footer/card-footer.component.mjs +3 -3
- package/esm2020/card/card-header/card-header.component.mjs +3 -3
- package/esm2020/card/card.component.mjs +3 -3
- package/esm2020/card/card.module.mjs +4 -4
- package/esm2020/checkbox/checkbox.component.mjs +43 -43
- package/esm2020/checkbox/checkbox.module.mjs +4 -4
- package/esm2020/checkbox/testing/checkbox.harness.mjs +1 -1
- package/esm2020/checkbox/testing/index.mjs +1 -1
- package/esm2020/confirm-dialog/confirm-click.directive.mjs +9 -9
- package/esm2020/confirm-dialog/confirm-dialog.component.mjs +3 -3
- package/esm2020/confirm-dialog/confirm-dialog.module.mjs +4 -4
- package/esm2020/confirm-dialog/confirm-dialog.service.mjs +3 -3
- package/esm2020/core/common-behaviors/active.mjs +3 -3
- package/esm2020/core/common-behaviors/disabled.mjs +3 -3
- package/esm2020/core/common-behaviors/size.mjs +6 -6
- package/esm2020/core/common-behaviors/tabindex.mjs +5 -5
- package/esm2020/core/common-behaviors/theme.mjs +6 -6
- package/esm2020/data-exporter/data-exporter.module.mjs +4 -4
- package/esm2020/data-exporter/exporters/csv-exporter.mjs +3 -3
- package/esm2020/data-exporter/exporters/xlsx-exporter.mjs +3 -3
- package/esm2020/data-filters/data-filters.module.mjs +4 -4
- package/esm2020/data-filters/filters/data-filter-search/data-filter-search.component.mjs +10 -10
- package/esm2020/data-filters/filters/data-filter-text/data-filter-text.component.mjs +10 -10
- package/esm2020/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.mjs +11 -11
- package/esm2020/datatable/datatable/datatable.component.mjs +108 -108
- package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +3 -3
- package/esm2020/datatable/datatable-action-menu-item/datatable-action-menu-item.component.mjs +3 -3
- package/esm2020/datatable/datatable-column/datatable-column.component.mjs +7 -7
- package/esm2020/datatable/datatable-column-preferences/datatable-column-preferences.component.mjs +3 -3
- package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +3 -3
- package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +7 -7
- package/esm2020/datatable/datatable-footer/datatable-footer-tpl.directive.mjs +3 -3
- package/esm2020/datatable/datatable-footer/datatable-footer.directive.mjs +3 -3
- package/esm2020/datatable/datatable-menu-bar/datatable-menu-bar.component.mjs +8 -8
- package/esm2020/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.mjs +3 -3
- package/esm2020/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.mjs +3 -3
- package/esm2020/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.mjs +3 -3
- package/esm2020/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.mjs +3 -3
- package/esm2020/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.mjs +3 -3
- package/esm2020/datatable/datatable-row-detail/datatable-row-detail-tpl.directive.mjs +3 -3
- package/esm2020/datatable/datatable-row-detail/datatable-row-detail.directive.mjs +3 -3
- package/esm2020/datatable/datatable.module.mjs +4 -4
- package/esm2020/datatable/directives/datatable-action-menu-item.directive.mjs +3 -3
- package/esm2020/datatable/directives/datatable-action-menu-toggle.directive.mjs +11 -11
- package/esm2020/datatable/directives/datatable-cell-tpl.directive.mjs +3 -3
- package/esm2020/datatable/directives/datatable-filter.directive.mjs +3 -3
- package/esm2020/datatable/directives/datatable-row-action-item.directive.mjs +3 -3
- package/esm2020/datatable/services/columns-alterations-manager.service.mjs +3 -3
- package/esm2020/datatable/services/columns-manager.service.mjs +3 -3
- package/esm2020/datatable/services/datatable-column-changes.service.mjs +3 -3
- package/esm2020/datatable/services/datatable-preferences.service.mjs +6 -6
- package/esm2020/datatable/services/datatable-scrollbar-helper.service.mjs +3 -3
- package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +12 -12
- package/esm2020/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.mjs +8 -8
- package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.mjs +6 -6
- package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +8 -8
- package/esm2020/datatable-dynamic/datatable-dynamic.module.mjs +4 -4
- package/esm2020/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.mjs +7 -7
- package/esm2020/datatable-dynamic/dynamic-datatable-def.service.mjs +3 -3
- package/esm2020/datatable-dynamic/dynamic-datatable-row-actions.service.mjs +3 -3
- package/esm2020/dynamic/action/api/dynamic-action-api.service.mjs +3 -3
- package/esm2020/dynamic/action/dynamic-action-helper.service.mjs +3 -3
- package/esm2020/dynamic/action/link/dynamic-action-link.service.mjs +3 -3
- package/esm2020/dynamic/action/modal/dynamic-action-modal.service.mjs +3 -3
- package/esm2020/dynamic/dynamic-value-helper.service.mjs +3 -3
- package/esm2020/dynamic/evaluators/exporters-data-evaluator/exporters-data-evaluator.mjs +3 -3
- package/esm2020/dynamic/evaluators/jexl-evaluator/jexl-evaluator.mjs +3 -3
- package/esm2020/dynamic-component-loader/dynamic-component-loader.module.mjs +4 -4
- package/esm2020/dynamic-component-loader/dynamic-component-loader.service.mjs +3 -3
- package/esm2020/footer-bar/footer-bar/footer-bar.component.mjs +3 -3
- package/esm2020/footer-bar/footer-bar.module.mjs +4 -4
- package/esm2020/form-field/form-field-error.directive.mjs +6 -6
- package/esm2020/form-field/form-field-help-text.directive.mjs +3 -3
- package/esm2020/form-field/form-field-label-tpl.directive.mjs +3 -3
- package/esm2020/form-field/form-field-required-indicator.component.mjs +3 -3
- package/esm2020/form-field/form-field-tokens.mjs +1 -1
- package/esm2020/form-field/form-field.component.mjs +48 -48
- package/esm2020/form-field/form-field.module.mjs +4 -4
- package/esm2020/form-field/input.directive.mjs +43 -43
- package/esm2020/form-field/testing/form-field-required-indicator.harness.mjs +1 -1
- package/esm2020/form-field/testing/index.mjs +1 -1
- package/esm2020/form-field-error/form-field-error/form-field-error.component.mjs +3 -3
- package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item-tpl.directive.mjs +3 -3
- package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item.directive.mjs +3 -3
- package/esm2020/form-field-error/form-field-error-list/form-field-error-list.component.mjs +92 -92
- package/esm2020/form-field-error/form-field-error.module.mjs +4 -4
- package/esm2020/framework/base-layout/base-layout.component.mjs +6 -6
- package/esm2020/framework/base-layout/base-layout.module.mjs +4 -4
- package/esm2020/framework/base-layout/directives/base-layout-content-footer.directive.mjs +3 -3
- package/esm2020/framework/base-layout/directives/base-layout-content-header.directive.mjs +3 -3
- package/esm2020/framework/base-layout/directives/base-layout-content.directive.mjs +3 -3
- package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +10 -10
- package/esm2020/framework/base-layout/directives/base-layout-side-bar-footer.directive.mjs +3 -3
- package/esm2020/framework/base-layout/directives/base-layout-side-bar.directive.mjs +3 -3
- package/esm2020/framework/base-layout/directives/base-layout-top-bar.directive.mjs +3 -3
- package/esm2020/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.mjs +3 -3
- package/esm2020/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.mjs +3 -3
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.mjs +3 -3
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.mjs +3 -3
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.component.mjs +18 -18
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.service.mjs +12 -12
- package/esm2020/framework/dashboard/dashboard-widgets-tokens.mjs +1 -1
- package/esm2020/framework/dashboard/dashboard.component.mjs +3 -3
- package/esm2020/framework/dashboard/dashboard.module.mjs +4 -4
- package/esm2020/framework/dynamic-router/dynamic-router.module.mjs +4 -4
- package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.mjs +3 -3
- package/esm2020/framework/dynamic-router/resolvers/hierarchy-level.resolver.mjs +3 -3
- package/esm2020/framework/schema-form/schema-form-framework.component.mjs +3 -3
- package/esm2020/framework/schema-form/schema-form-framework.mjs +3 -3
- package/esm2020/framework/schema-form/schema-form.module.mjs +4 -4
- package/esm2020/framework/schema-form-controls/schema-form-checkbox/schema-form-checkbox.component.mjs +3 -3
- package/esm2020/framework/schema-form-controls/schema-form-controls.module.mjs +4 -4
- package/esm2020/framework/schema-form-controls/schema-form-input/schema-form-input.component.mjs +3 -3
- package/esm2020/framework/schema-form-controls/schema-form-number/schema-form-number.component.mjs +3 -3
- package/esm2020/framework/schema-form-controls/schema-form-select/schema-form-select.component.mjs +3 -3
- package/esm2020/framework/schema-form-controls/schema-form-submit/schema-form-submit.component.mjs +3 -3
- package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +3 -3
- package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +24 -24
- package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +3 -3
- package/esm2020/framework/side-nav/side-nav-tokens.mjs +1 -1
- package/esm2020/framework/side-nav/side-nav.component.mjs +17 -17
- package/esm2020/framework/side-nav/side-nav.module.mjs +4 -4
- package/esm2020/framework/side-nav/side-nav.service.mjs +3 -3
- package/esm2020/framework/top-bar/top-bar-item.directive.mjs +3 -3
- package/esm2020/framework/top-bar/top-bar-menu-btn-detail.directive.mjs +3 -3
- package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +3 -3
- package/esm2020/framework/top-bar/top-bar-menu.directive.mjs +3 -3
- package/esm2020/framework/top-bar/top-bar-title/top-bar-title.component.mjs +3 -3
- package/esm2020/framework/top-bar/top-bar.component.mjs +3 -3
- package/esm2020/framework/top-bar/top-bar.module.mjs +4 -4
- package/esm2020/google-maps/google-maps/google-maps.component.mjs +17 -17
- package/esm2020/google-maps/google-maps-controls.service.mjs +3 -3
- package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +20 -20
- package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.mjs +7 -7
- package/esm2020/google-maps/google-maps-recenter-button-control/google-maps-recenter-button-control.component.mjs +7 -7
- package/esm2020/google-maps/google-maps-upload-button-control/google-maps-upload-button-control.component.mjs +7 -7
- package/esm2020/google-maps/google-maps.module.mjs +4 -4
- package/esm2020/google-maps/google-maps.service.mjs +5 -5
- package/esm2020/google-maps/map-control.component.mjs +9 -9
- package/esm2020/google-maps/map-file-drop/map-file-drop.component.mjs +3 -3
- package/esm2020/google-maps/map-value-manager.service.mjs +3 -3
- package/esm2020/graphql/datatable/datatable-graphql-query-ref.mjs +5 -5
- package/esm2020/graphql/datatable/datatable-graphql.service.mjs +3 -3
- package/esm2020/icon/icon/icon.component.mjs +3 -3
- package/esm2020/icon/icon-btn/icon-btn.component.mjs +24 -24
- package/esm2020/icon/icon-notification/icon-notification.component.mjs +3 -3
- package/esm2020/icon/icon.module.mjs +4 -4
- package/esm2020/layout/layout.module.mjs +4 -4
- package/esm2020/layout/layout.service.mjs +3 -3
- package/esm2020/loading/loading/loading.component.mjs +7 -7
- package/esm2020/loading/loading-overlay.service.mjs +3 -3
- package/esm2020/loading/loading.module.mjs +4 -4
- package/esm2020/menu/menu-divider.component.mjs +3 -3
- package/esm2020/menu/menu-footer/menu-footer.component.mjs +3 -3
- package/esm2020/menu/menu-footer-action/menu-footer-action.component.mjs +7 -7
- package/esm2020/menu/menu-header/menu-header.component.mjs +3 -3
- package/esm2020/menu/menu-item.component.mjs +3 -3
- package/esm2020/menu/menu-toggle.directive.mjs +42 -42
- package/esm2020/menu/menu.component.mjs +15 -15
- package/esm2020/menu/menu.module.mjs +4 -4
- package/esm2020/modal/directives/modal-close.directive.mjs +11 -11
- package/esm2020/modal/directives/modal-footer-tpl.directive.mjs +3 -3
- package/esm2020/modal/directives/modal-header-icon-tpl.directive.mjs +3 -3
- package/esm2020/modal/directives/modal-header-title-tpl.directive.mjs +3 -3
- package/esm2020/modal/directives/modal-title.directive.mjs +3 -3
- package/esm2020/modal/directives/modal.directive.mjs +3 -3
- package/esm2020/modal/modal/modal.component.mjs +19 -19
- package/esm2020/modal/modal-body/modal-body.component.mjs +3 -3
- package/esm2020/modal/modal-container/modal-container.component.mjs +12 -12
- package/esm2020/modal/modal-footer/modal-footer.component.mjs +3 -3
- package/esm2020/modal/modal-header/modal-header.component.mjs +3 -3
- package/esm2020/modal/modal.module.mjs +4 -4
- package/esm2020/modal/modal.service.mjs +16 -16
- package/esm2020/modal/route-modal/route-modal.component.mjs +3 -3
- package/esm2020/popover/popover/popover.component.mjs +18 -18
- package/esm2020/popover/popover.directive.mjs +32 -32
- package/esm2020/popover/popover.module.mjs +4 -4
- package/esm2020/progress/progress-circle/progress-circle.component.mjs +9 -9
- package/esm2020/progress/progress.module.mjs +4 -4
- package/esm2020/public_api.mjs +1 -42
- package/esm2020/scrollbar/overlay-scrollbar.directive.mjs +10 -10
- package/esm2020/scrollbar/overlay-scrollbars.service.mjs +3 -3
- package/esm2020/scrollbar/scrollbar.module.mjs +4 -4
- package/esm2020/services/asset-loader.service.mjs +3 -3
- package/esm2020/services/font-loader.service.mjs +3 -3
- package/esm2020/services/router-helpers.service.mjs +3 -3
- package/esm2020/shared/components/password-input-reveal/password-input-reveal.component.mjs +3 -3
- package/esm2020/shared/directives/auto-focus.directive.mjs +3 -3
- package/esm2020/shared/directives/click-outside.directive.mjs +9 -9
- package/esm2020/shared/directives/disable-control.directive.mjs +7 -7
- package/esm2020/shared/directives/elem-resized.directive.mjs +3 -3
- package/esm2020/shared/directives/hover-class-toggle.directive.mjs +10 -10
- package/esm2020/shared/directives/hover-class.directive.mjs +9 -9
- package/esm2020/shared/directives/ng-select-extra.directive.mjs +26 -26
- package/esm2020/shared/directives/ngx-quill-extra.directive.mjs +10 -10
- package/esm2020/shared/pipes/mask-chars.pipe.mjs +3 -3
- package/esm2020/shared/pipes/truncate.pipe.mjs +3 -3
- package/esm2020/shared/shared.module.mjs +4 -4
- package/esm2020/storage/local-storage.service.mjs +3 -3
- package/esm2020/story-helpers/initial-route.service.mjs +3 -3
- package/esm2020/story-helpers/story-empty-with-route.component.mjs +3 -3
- package/esm2020/story-helpers/story-empty.component.mjs +3 -3
- package/esm2020/story-helpers/story-helper-components.module.mjs +4 -4
- package/esm2020/story-helpers/story-initial-route.mjs +4 -4
- package/esm2020/story-helpers/story-modal-container.component.mjs +6 -6
- package/esm2020/story-helpers/story-toastr.service.mjs +3 -3
- package/esm2020/tabbed/directives/tabbed-tab-content.directive.mjs +3 -3
- package/esm2020/tabbed/directives/tabbed-tab.directive.mjs +3 -3
- package/esm2020/tabbed/tabbed-content/tabbed-content.component.mjs +3 -3
- package/esm2020/tabbed/tabbed-item/tabbed-item.component.mjs +3 -3
- package/esm2020/tabbed/tabbed-models.mjs +1 -1
- package/esm2020/tabbed/tabbed.component.mjs +13 -13
- package/esm2020/tabbed/tabbed.module.mjs +4 -4
- package/esm2020/tabbed/tabbed.service.mjs +3 -3
- package/esm2020/table/table/table.component.mjs +11 -11
- package/esm2020/table/table.module.mjs +4 -4
- package/esm2020/table-cell-type/services/table-cell-types-helpers.service.mjs +3 -3
- package/esm2020/table-cell-type/table-cell-type-selector.component.mjs +3 -3
- package/esm2020/table-cell-type/table-cell-type.module.mjs +4 -4
- package/esm2020/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.mjs +3 -3
- package/esm2020/table-cell-types/table-cell-type-date/table-cell-type-date.component.mjs +3 -3
- package/esm2020/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.mjs +3 -3
- package/esm2020/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.mjs +31 -31
- package/esm2020/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.mjs +3 -3
- package/esm2020/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.mjs +6 -6
- package/esm2020/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.mjs +3 -3
- package/esm2020/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.mjs +3 -3
- package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +23 -23
- package/esm2020/table-cell-types/table-cell-types.module.mjs +4 -4
- package/esm2020/tel-input/phone-number.pipe.mjs +3 -3
- package/esm2020/tel-input/tel-input/tel-input.component.mjs +34 -34
- package/esm2020/tel-input/tel-input.directive.mjs +18 -18
- package/esm2020/tel-input/tel-input.module.mjs +4 -4
- package/esm2020/tiled-select/components/tiled-select/tiled-select.component.mjs +20 -20
- package/esm2020/tiled-select/components/tiled-select-tile/tiled-select-tile.component.mjs +6 -6
- package/esm2020/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.mjs +10 -10
- package/esm2020/tiled-select/directives/tiled-select-tile-icon-tpl.directive.mjs +3 -3
- package/esm2020/tiled-select/directives/tiled-select-tile-label-tpl.directive.mjs +3 -3
- package/esm2020/tiled-select/directives/tiled-select-tile-overlay.directive.mjs +3 -3
- package/esm2020/tiled-select/tiled-select.module.mjs +4 -4
- package/esm2020/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.mjs +3 -3
- package/esm2020/toggle-edit/toggle-edit-display-tpl.directive.mjs +3 -3
- package/esm2020/toggle-edit/toggle-edit-keyboard-listener.service.mjs +3 -3
- package/esm2020/toggle-edit/toggle-edit.component.mjs +16 -16
- package/esm2020/toggle-edit/toggle-edit.module.mjs +4 -4
- package/esm2020/toggle-group/toggle-group-option.directive.mjs +12 -12
- package/esm2020/toggle-group/toggle-group.directive.mjs +3 -3
- package/esm2020/toggle-group/toggle-group.module.mjs +4 -4
- package/esm2020/unsaved-changes-dialog/unsaved-changes-can-deactivate.mjs +3 -3
- package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +3 -3
- package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.guard.mjs +3 -3
- package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +4 -4
- package/esm2020/utils/geo-json/coerce-feature-collection.mjs +1 -1
- package/esm2020/utils/geo-json/geo-json-to-area.mjs +1 -1
- package/esm2020/utils/geo-json/is-feature-collection.validator.mjs +1 -1
- package/esm2020/utils/geo-json/is-only-geometry-types.mjs +1 -1
- package/esm2020/utils/geo-json/is-only-geometry-types.validator.mjs +1 -1
- package/esm2020/utils/geo-json/merge-polygons.mjs +1 -1
- package/esm2020/utils/geo-json/no-inner-rings.validator.mjs +1 -1
- package/esm2020/utils/geo-json/split-multi-polygons.mjs +1 -1
- package/esm2020/viewers/html-template-viewer/html-template-viewer.component.mjs +37 -37
- package/esm2020/viewers/html-template-viewer/html-template-viewer.module.mjs +4 -4
- package/esm2020/viewers/pdf-viewer/pdf-page/pdf-page.component.mjs +10 -10
- package/esm2020/viewers/pdf-viewer/pdf-renderer.service.mjs +3 -3
- package/esm2020/viewers/pdf-viewer/pdf-viewer.component.mjs +38 -38
- package/esm2020/viewers/pdf-viewer/pdf-viewer.module.mjs +4 -4
- package/esm2020/widget/directives/widget-drag-handle.directive.mjs +12 -12
- package/esm2020/widget/directives/widget-icon-tpl.directive.mjs +3 -3
- package/esm2020/widget/directives/widget-title-tpl.directive.mjs +3 -3
- package/esm2020/widget/widget/widget.component.mjs +23 -23
- package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-content-header/widget-content-header.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-description/widget-description.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-description/widget-description.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.component.mjs +7 -7
- package/esm2020/widget/widget-content-components/widget-empty-label/widget-empty-label.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-footer-link/widget-footer-link.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-footer-text/widget-footer-text.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-header-badge/widget-header-badge.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item-icon-tpl.directive.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.mjs +15 -15
- package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-table/widget-table.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-table/widget-table.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.mjs +8 -8
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile-secondary-icon.directive.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile.component.mjs +16 -16
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile.module.mjs +4 -4
- package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.component.mjs +3 -3
- package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.module.mjs +4 -4
- package/esm2020/widget/widget-footer/widget-footer.component.mjs +3 -3
- package/esm2020/widget/widget-registry.service.mjs +3 -3
- package/esm2020/widget/widget.module.mjs +4 -4
- package/fesm2015/theseam-ui-common-asset-reader.mjs +18 -18
- package/fesm2015/theseam-ui-common-asset-reader.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-breadcrumbs.mjs +10 -10
- package/fesm2015/theseam-ui-common-buttons.mjs +26 -26
- package/fesm2015/theseam-ui-common-buttons.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-card.mjs +19 -19
- package/fesm2015/theseam-ui-common-checkbox.mjs +46 -46
- package/fesm2015/theseam-ui-common-checkbox.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-confirm-dialog.mjs +18 -18
- package/fesm2015/theseam-ui-common-confirm-dialog.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-core.mjs +18 -18
- package/fesm2015/theseam-ui-common-core.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-data-exporter.mjs +10 -10
- package/fesm2015/theseam-ui-common-data-filters.mjs +32 -32
- package/fesm2015/theseam-ui-common-data-filters.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +46 -46
- package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-datatable.mjs +208 -208
- package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs +7 -7
- package/fesm2015/theseam-ui-common-dynamic.mjs +21 -21
- package/fesm2015/theseam-ui-common-footer-bar.mjs +7 -7
- package/fesm2015/theseam-ui-common-form-field-error.mjs +104 -104
- package/fesm2015/theseam-ui-common-form-field-error.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-form-field.mjs +107 -107
- package/fesm2015/theseam-ui-common-form-field.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-framework.mjs +196 -196
- package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-google-maps.mjs +78 -78
- package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-graphql.mjs +7 -7
- package/fesm2015/theseam-ui-common-graphql.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-icon.mjs +33 -33
- package/fesm2015/theseam-ui-common-icon.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-layout.mjs +7 -7
- package/fesm2015/theseam-ui-common-loading.mjs +13 -13
- package/fesm2015/theseam-ui-common-loading.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-menu.mjs +79 -79
- package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-modal.mjs +85 -85
- package/fesm2015/theseam-ui-common-modal.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-popover.mjs +52 -52
- package/fesm2015/theseam-ui-common-popover.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-progress.mjs +12 -12
- package/fesm2015/theseam-ui-common-progress.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-scrollbar.mjs +16 -16
- package/fesm2015/theseam-ui-common-scrollbar.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-services.mjs +9 -9
- package/fesm2015/theseam-ui-common-shared.mjs +84 -84
- package/fesm2015/theseam-ui-common-shared.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-storage.mjs +3 -3
- package/fesm2015/theseam-ui-common-story-helpers.mjs +25 -25
- package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-tabbed.mjs +31 -31
- package/fesm2015/theseam-ui-common-tabbed.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-table-cell-type.mjs +10 -10
- package/fesm2015/theseam-ui-common-table-cell-types.mjs +80 -80
- package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-table.mjs +14 -14
- package/fesm2015/theseam-ui-common-table.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-tel-input.mjs +59 -59
- package/fesm2015/theseam-ui-common-tel-input.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-tiled-select.mjs +46 -46
- package/fesm2015/theseam-ui-common-tiled-select.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-toggle-edit.mjs +28 -28
- package/fesm2015/theseam-ui-common-toggle-edit.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-toggle-group.mjs +18 -18
- package/fesm2015/theseam-ui-common-toggle-group.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs +13 -13
- package/fesm2015/theseam-ui-common-utils.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-viewers.mjs +93 -93
- package/fesm2015/theseam-ui-common-viewers.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-widget.mjs +175 -175
- package/fesm2015/theseam-ui-common-widget.mjs.map +1 -1
- package/fesm2015/theseam-ui-common.mjs +0 -41
- package/fesm2015/theseam-ui-common.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-asset-reader.mjs +18 -18
- package/fesm2020/theseam-ui-common-asset-reader.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-breadcrumbs.mjs +10 -10
- package/fesm2020/theseam-ui-common-buttons.mjs +26 -26
- package/fesm2020/theseam-ui-common-buttons.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-card.mjs +19 -19
- package/fesm2020/theseam-ui-common-checkbox.mjs +46 -46
- package/fesm2020/theseam-ui-common-checkbox.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-confirm-dialog.mjs +18 -18
- package/fesm2020/theseam-ui-common-confirm-dialog.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-core.mjs +18 -18
- package/fesm2020/theseam-ui-common-core.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-data-exporter.mjs +10 -10
- package/fesm2020/theseam-ui-common-data-filters.mjs +32 -32
- package/fesm2020/theseam-ui-common-data-filters.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +46 -46
- package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-datatable.mjs +208 -208
- package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs +7 -7
- package/fesm2020/theseam-ui-common-dynamic.mjs +21 -21
- package/fesm2020/theseam-ui-common-footer-bar.mjs +7 -7
- package/fesm2020/theseam-ui-common-form-field-error.mjs +104 -104
- package/fesm2020/theseam-ui-common-form-field-error.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-form-field.mjs +107 -107
- package/fesm2020/theseam-ui-common-form-field.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-framework.mjs +196 -196
- package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-google-maps.mjs +78 -78
- package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-graphql.mjs +7 -7
- package/fesm2020/theseam-ui-common-graphql.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-icon.mjs +33 -33
- package/fesm2020/theseam-ui-common-icon.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-layout.mjs +7 -7
- package/fesm2020/theseam-ui-common-loading.mjs +13 -13
- package/fesm2020/theseam-ui-common-loading.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-menu.mjs +77 -77
- package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-modal.mjs +85 -85
- package/fesm2020/theseam-ui-common-modal.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-popover.mjs +52 -52
- package/fesm2020/theseam-ui-common-popover.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-progress.mjs +12 -12
- package/fesm2020/theseam-ui-common-progress.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-scrollbar.mjs +16 -16
- package/fesm2020/theseam-ui-common-scrollbar.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-services.mjs +9 -9
- package/fesm2020/theseam-ui-common-shared.mjs +84 -84
- package/fesm2020/theseam-ui-common-shared.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-storage.mjs +3 -3
- package/fesm2020/theseam-ui-common-story-helpers.mjs +25 -25
- package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-tabbed.mjs +31 -31
- package/fesm2020/theseam-ui-common-tabbed.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-table-cell-type.mjs +10 -10
- package/fesm2020/theseam-ui-common-table-cell-types.mjs +80 -80
- package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-table.mjs +14 -14
- package/fesm2020/theseam-ui-common-table.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-tel-input.mjs +57 -57
- package/fesm2020/theseam-ui-common-tel-input.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-tiled-select.mjs +46 -46
- package/fesm2020/theseam-ui-common-tiled-select.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-toggle-edit.mjs +28 -28
- package/fesm2020/theseam-ui-common-toggle-edit.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-toggle-group.mjs +18 -18
- package/fesm2020/theseam-ui-common-toggle-group.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs +13 -13
- package/fesm2020/theseam-ui-common-utils.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-viewers.mjs +93 -93
- package/fesm2020/theseam-ui-common-viewers.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-widget.mjs +175 -175
- package/fesm2020/theseam-ui-common-widget.mjs.map +1 -1
- package/fesm2020/theseam-ui-common.mjs +0 -41
- package/fesm2020/theseam-ui-common.mjs.map +1 -1
- package/framework/base-layout/base-layout-action.d.ts +1 -1
- package/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.d.ts +1 -1
- package/framework/side-nav/side-nav.models.d.ts +1 -1
- package/google-maps/google-maps/google-maps.component.d.ts +0 -1
- package/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.d.ts +0 -4
- package/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.d.ts +0 -4
- package/google-maps/google-maps.service.d.ts +0 -2
- package/google-maps/map-controls-service.d.ts +0 -1
- package/google-maps/map-value-manager.service.d.ts +1 -1
- package/graphql/datatable/datatable-graphql-query-ref.d.ts +2 -2
- package/graphql/datatable/datatable-graphql.service.d.ts +1 -1
- package/graphql/datatable/datatable-helpers.d.ts +2 -2
- package/graphql/datatable/map-filter-states.d.ts +2 -2
- package/graphql/datatable/map-page-info.d.ts +1 -1
- package/graphql/datatable/mapper-context.d.ts +1 -1
- package/graphql/models/gql-datatable-accessor.d.ts +1 -1
- package/graphql/models/hint-transformer.d.ts +1 -1
- package/icon/icon/icon.component.d.ts +1 -1
- package/icon/icon.d.ts +1 -1
- package/layout/breakpoint-aliases.d.ts +1 -1
- package/loading/loading.models.d.ts +1 -1
- package/modal/modal-config.d.ts +1 -1
- package/models/component-type.d.ts +1 -1
- package/models/size-prefixes.d.ts +1 -1
- package/models/size-types.d.ts +1 -1
- package/models/theme-prefixes.d.ts +1 -1
- package/models/theme-types.d.ts +2 -2
- package/package.json +2 -2
- package/scrollbar/overlay-scrollbars-config-model.d.ts +1 -1
- package/services/font-loader.service.d.ts +1 -1
- package/styles/bootstrap/_bootstrap.scss +34 -34
- package/styles/bootstrap/_bs-utilities.scss +3 -3
- package/styles/theme.scss +3 -3
- package/styles/vendor/ngx-datatable/_ngx-datatable.scss +1 -1
- package/styles/vendor/quill/_quill.scss +3 -3
- package/table/table/table.component.d.ts +1 -1
- package/table-cell-type/table-cell-type-models.d.ts +3 -3
- package/table-cell-type/table-cell-type-name.d.ts +1 -1
- package/table-cell-types/table-cell-type-currency/table-cell-type-currency-config.d.ts +1 -1
- package/table-cell-types/table-cell-type-currency/table-cell-type-currency.d.ts +1 -1
- package/table-cell-types/table-cell-type-date/table-cell-type-date.d.ts +1 -1
- package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal-config.d.ts +1 -1
- package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.d.ts +1 -1
- package/table-cell-types/table-cell-type-icon/table-cell-type-icon-config.d.ts +1 -1
- package/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.d.ts +1 -1
- package/table-cell-types/table-cell-type-integer/table-cell-type-integer-config.d.ts +1 -1
- package/table-cell-types/table-cell-type-integer/table-cell-type-integer.d.ts +1 -1
- package/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle-config.d.ts +1 -1
- package/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon-config.d.ts +1 -1
- package/table-cell-types/table-cell-type-string/table-cell-type-string-config.d.ts +1 -1
- package/table-cell-types/table-cell-type-string/table-cell-type-string.component.d.ts +1 -1
- package/tel-input/utils/coerce-phone-number-format.d.ts +1 -1
- package/tiled-select/components/tiled-select/tiled-select.component.d.ts +1 -1
- package/tiled-select/tiled-select.models.d.ts +2 -2
- package/utils/polling-ticker.d.ts +1 -1
- package/utils/subscriber-count.d.ts +1 -1
- 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.
|
|
359
|
-
FormFieldErrorListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
360
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
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.
|
|
11
|
-
TheSeamFormFieldErrorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
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.
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
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.
|
|
100
|
-
TheSeamBaseLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
101
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
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.
|
|
19
|
-
TheSeamBaseLayoutModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
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.
|
|
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.
|
|
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.
|
|
9
|
-
BaseLayoutContentFooterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
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.
|
|
9
|
-
BaseLayoutContentHeaderDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
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.
|
|
9
|
-
BaseLayoutContentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
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]'
|