@theseam/ui-common 0.4.0-beta.1 → 0.4.0-beta.3
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-theme.scss +5 -0
- package/framework/side-nav/side-nav-item/side-nav-item.component.scss +185 -0
- package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.scss +32 -0
- package/framework/side-nav/side-nav.component.scss +47 -0
- package/framework/side-nav/side-nav.models.d.ts +1 -1
- package/framework/side-nav/styles/_themes/light/_variables.scss +29 -0
- package/framework/side-nav/styles/_themes/primary/_variables.scss +31 -0
- package/framework/side-nav/styles/_utilities.scss +3 -0
- package/framework/side-nav/styles/_variables.scss +2 -0
- 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 +1 -1
- 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
|
@@ -15,6 +15,18 @@ import * as i4 from "@theseam/ui-common/dynamic-component-loader";
|
|
|
15
15
|
* Service to open modal dialogs.
|
|
16
16
|
*/
|
|
17
17
|
export class Modal {
|
|
18
|
+
/** Stream that emits when all dialogs are closed. */
|
|
19
|
+
get _afterAllClosed() {
|
|
20
|
+
return this._parentDialog ? this._parentDialog.afterAllClosed : this._afterAllClosedBase;
|
|
21
|
+
}
|
|
22
|
+
/** Stream that emits when a dialog is opened. */
|
|
23
|
+
get afterOpened() {
|
|
24
|
+
return this._parentDialog ? this._parentDialog.afterOpened : this._afterOpened;
|
|
25
|
+
}
|
|
26
|
+
/** Stream that emits when a dialog is opened. */
|
|
27
|
+
get openDialogs() {
|
|
28
|
+
return this._parentDialog ? this._parentDialog.openDialogs : this._openDialogs;
|
|
29
|
+
}
|
|
18
30
|
constructor(overlay, injector, dialogRefConstructor, scrollStrategy, _parentDialog, location, _scrollbars, _dynamicComponentLoaderModule) {
|
|
19
31
|
this.overlay = overlay;
|
|
20
32
|
this.injector = injector;
|
|
@@ -35,18 +47,6 @@ export class Modal {
|
|
|
35
47
|
}
|
|
36
48
|
this._scrollStrategy = scrollStrategy;
|
|
37
49
|
}
|
|
38
|
-
/** Stream that emits when all dialogs are closed. */
|
|
39
|
-
get _afterAllClosed() {
|
|
40
|
-
return this._parentDialog ? this._parentDialog.afterAllClosed : this._afterAllClosedBase;
|
|
41
|
-
}
|
|
42
|
-
/** Stream that emits when a dialog is opened. */
|
|
43
|
-
get afterOpened() {
|
|
44
|
-
return this._parentDialog ? this._parentDialog.afterOpened : this._afterOpened;
|
|
45
|
-
}
|
|
46
|
-
/** Stream that emits when a dialog is opened. */
|
|
47
|
-
get openDialogs() {
|
|
48
|
-
return this._parentDialog ? this._parentDialog.openDialogs : this._openDialogs;
|
|
49
|
-
}
|
|
50
50
|
/** Gets an open dialog by id. */
|
|
51
51
|
getById(id) {
|
|
52
52
|
return this._openDialogs.find(ref => ref.id === id);
|
|
@@ -329,9 +329,9 @@ export class Modal {
|
|
|
329
329
|
return { ...new dialogConfig(), ...config };
|
|
330
330
|
}
|
|
331
331
|
}
|
|
332
|
-
Modal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
333
|
-
Modal.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
334
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
332
|
+
Modal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: Modal, deps: [{ token: i1.Overlay }, { token: i0.Injector }, { token: MODAL_REF }, { token: MODAL_SCROLL_STRATEGY }, { token: Modal, optional: true, skipSelf: true }, { token: i2.Location, optional: true }, { token: i3.OverlayScrollbarsService }, { token: i4.TheSeamDynamicComponentLoader }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
333
|
+
Modal.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: Modal });
|
|
334
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: Modal, decorators: [{
|
|
335
335
|
type: Injectable
|
|
336
336
|
}], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.Injector }, { type: i0.Type, decorators: [{
|
|
337
337
|
type: Inject,
|
|
@@ -346,4 +346,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImpor
|
|
|
346
346
|
}] }, { type: i2.Location, decorators: [{
|
|
347
347
|
type: Optional
|
|
348
348
|
}] }, { type: i3.OverlayScrollbarsService }, { type: i4.TheSeamDynamicComponentLoader }]; } });
|
|
349
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9tb2RhbC9tb2RhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNsRCxPQUFPLEVBR0wsYUFBYSxHQUdkLE1BQU0sc0JBQXNCLENBQUE7QUFDN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFFckYsT0FBTyxFQUdMLE1BQU0sRUFDTixVQUFVLEVBR1YsUUFBUSxFQUNSLFFBQVEsRUFHVCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxFQUFFLElBQUksWUFBWSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUN6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBS3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUU1QyxPQUFPLEVBQ0wsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsU0FBUyxFQUNULHFCQUFxQixHQUN0QixNQUFNLG1CQUFtQixDQUFBOzs7Ozs7QUFJMUI7O0dBRUc7QUFFSCxNQUFNLE9BQU8sS0FBSztJQXdCaEIsWUFDVSxPQUFnQixFQUNoQixRQUFrQixFQUNDLG9CQUF5QyxFQUNyQyxjQUFtQixFQUNsQixhQUFvQixFQUN4QyxRQUFrQixFQUN0QixXQUFxQyxFQUNyQyw2QkFBNEQ7UUFQNUQsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ0MseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFxQjtRQUVwQyxrQkFBYSxHQUFiLGFBQWEsQ0FBTztRQUU1QyxnQkFBVyxHQUFYLFdBQVcs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QUFJLENBQUM7U0FDMUIsQ0FBQyxDQUFBO1FBRUYsSUFBSSxNQUFNLENBQUMsU0FBUztZQUNoQixDQUFDLENBQUMsWUFBWSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBd0IsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUU7WUFDckYsZUFBZSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUU7Z0JBQ2xDLEtBQUssRUFBRSxNQUFNLENBQUMsU0FBUztnQkFDdkIsTUFBTSxFQUFFLFlBQVksRUFBRTthQUN2QixDQUFDLENBQUE7U0FDSDtRQUVELE9BQU8sSUFBSSxjQUFjLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUE7SUFDM0UsQ0FBQztJQUVEOzs7T0FHRztJQUNLLG9CQUFvQixDQUFDLE1BQW9CO1FBQy9DLE1BQU0sWUFBWSxHQUFhLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBd0IsQ0FBQTtRQUNyRixPQUFPLEVBQUMsR0FBRyxJQUFJLFlBQVksRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFDLENBQUE7SUFDM0MsQ0FBQzs7a0dBM1lVLEtBQUssaUVBMkJOLFNBQVMsYUFDVCxxQkFBcUI7c0dBNUJwQixLQUFLOzJGQUFMLEtBQUs7a0JBRGpCLFVBQVU7OzBCQTRCTixNQUFNOzJCQUFDLFNBQVM7OzBCQUNoQixNQUFNOzJCQUFDLHFCQUFxQjs7MEJBQzVCLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUNwQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSdcbmltcG9ydCB7XG4gIENvbXBvbmVudFR5cGUsXG4gIE92ZXJsYXksXG4gIE92ZXJsYXlDb25maWcsXG4gIE92ZXJsYXlSZWYsXG4gIFNjcm9sbFN0cmF0ZWd5LFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSdcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgUG9ydGFsSW5qZWN0b3IsIFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCdcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBDb21wb25lbnRSZWYsXG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFNraXBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgVHlwZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgZGVmZXIsIE9ic2VydmFibGUsIG9mLCBvZiBhcyBvYnNlcnZhYmxlT2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgc3RhcnRXaXRoLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgVGhlU2VhbUR5bmFtaWNDb21wb25lbnRMb2FkZXIgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vZHluYW1pYy1jb21wb25lbnQtbG9hZGVyJ1xuaW1wb3J0IHsgT3ZlcmxheVNjcm9sbGJhcnNTZXJ2aWNlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3Njcm9sbGJhcidcblxuaW1wb3J0IHsgTW9kYWxDb25maWcgfSBmcm9tICcuL21vZGFsLWNvbmZpZydcbmltcG9ydCB7IE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC1jb250YWluZXIvbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudCdcbmltcG9ydCB7XG4gIE1PREFMX0NPTkZJRyxcbiAgTU9EQUxfQ09OVEFJTkVSLFxuICBNT0RBTF9EQVRBLFxuICBNT0RBTF9SRUYsXG4gIE1PREFMX1NDUk9MTF9TVFJBVEVHWSxcbn0gZnJvbSAnLi9tb2RhbC1pbmplY3RvcnMnXG5pbXBvcnQgeyBNb2RhbFJlZiB9IGZyb20gJy4vbW9kYWwtcmVmJ1xuXG5cbi8qKlxuICogU2VydmljZSB0byBvcGVuIG1vZGFsIGRpYWxvZ3MuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNb2RhbCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX3Njcm9sbFN0cmF0ZWd5OiAoKSA9PiBTY3JvbGxTdHJhdGVneVxuXG4gIC8qKiBTdHJlYW0gdGhhdCBlbWl0cyB3aGVuIGFsbCBkaWFsb2dzIGFyZSBjbG9zZWQuICovXG4gIGdldCBfYWZ0ZXJBbGxDbG9zZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudERpYWxvZyA/IHRoaXMuX3BhcmVudERpYWxvZy5hZnRlckFsbENsb3NlZCA6IHRoaXMuX2FmdGVyQWxsQ2xvc2VkQmFzZVxuICB9XG4gIF9hZnRlckFsbENsb3NlZEJhc2UgPSBuZXcgU3ViamVjdDx2b2lkPigpXG5cbiAgYWZ0ZXJBbGxDbG9zZWQ6IE9ic2VydmFibGU8dm9pZD4gPSBkZWZlcigoKSA9PiB0aGlzLm9wZW5EaWFsb2dzLmxlbmd0aCA/XG4gICAgICB0aGlzLl9hZnRlckFsbENsb3NlZCA6IHRoaXMuX2FmdGVyQWxsQ2xvc2VkLnBpcGUoc3RhcnRXaXRoKHVuZGVmaW5lZCkpKVxuXG4gIC8qKiBTdHJlYW0gdGhhdCBlbWl0cyB3aGVuIGEgZGlhbG9nIGlzIG9wZW5lZC4gKi9cbiAgZ2V0IGFmdGVyT3BlbmVkKCk6IFN1YmplY3Q8TW9kYWxSZWY8YW55Pj4ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnREaWFsb2cgPyB0aGlzLl9wYXJlbnREaWFsb2cuYWZ0ZXJPcGVuZWQgOiB0aGlzLl9hZnRlck9wZW5lZFxuICB9XG4gIF9hZnRlck9wZW5lZDogU3ViamVjdDxNb2RhbFJlZjxhbnk+PiA9IG5ldyBTdWJqZWN0KClcblxuICAvKiogU3RyZWFtIHRoYXQgZW1pdHMgd2hlbiBhIGRpYWxvZyBpcyBvcGVuZWQuICovXG4gIGdldCBvcGVuRGlhbG9ncygpOiBNb2RhbFJlZjxhbnk+W10ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnREaWFsb2cgPyB0aGlzLl9wYXJlbnREaWFsb2cub3BlbkRpYWxvZ3MgOiB0aGlzLl9vcGVuRGlhbG9nc1xuICB9XG4gIF9vcGVuRGlhbG9nczogTW9kYWxSZWY8YW55PltdID0gW11cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgQEluamVjdChNT0RBTF9SRUYpIHByaXZhdGUgZGlhbG9nUmVmQ29uc3RydWN0b3I6IFR5cGU8TW9kYWxSZWY8YW55Pj4sXG4gICAgQEluamVjdChNT0RBTF9TQ1JPTExfU1RSQVRFR1kpIHNjcm9sbFN0cmF0ZWd5OiBhbnksXG4gICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcHJpdmF0ZSBfcGFyZW50RGlhbG9nOiBNb2RhbCxcbiAgICBAT3B0aW9uYWwoKSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICAgcHJpdmF0ZSBfc2Nyb2xsYmFyczogT3ZlcmxheVNjcm9sbGJhcnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2R5bmFtaWNDb21wb25lbnRMb2FkZXJNb2R1bGU6IFRoZVNlYW1EeW5hbWljQ29tcG9uZW50TG9hZGVyXG4gICkge1xuXG4gICAgLy8gQ2xvc2UgYWxsIG9mIHRoZSBkaWFsb2dzIHdoZW4gdGhlIHVzZXIgZ29lcyBmb3J3YXJkcy9iYWNrd2FyZHMgaW4gaGlzdG9yeSBvciB3aGVuIHRoZVxuICAgIC8vIGxvY2F0aW9uIGhhc2ggY2hhbmdlcy4gTm90ZSB0aGF0IHRoaXMgdXN1YWxseSBkb2Vzbid0IGluY2x1ZGUgY2xpY2tpbmcgb24gbGlua3MgKHVubGVzc1xuICAgIC8vIHRoZSB1c2VyIGlzIHVzaW5nIHRoZSBgSGFzaExvY2F0aW9uU3RyYXRlZ3lgKS5cbiAgICBpZiAoIV9wYXJlbnREaWFsb2cgJiYgbG9jYXRpb24pIHtcbiAgICAgIGxvY2F0aW9uLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlQWxsKCkpXG4gICAgfVxuXG4gICAgdGhpcy5fc2Nyb2xsU3RyYXRlZ3kgPSBzY3JvbGxTdHJhdGVneVxuICB9XG5cbiAgLyoqIEdldHMgYW4gb3BlbiBkaWFsb2cgYnkgaWQuICovXG4gIGdldEJ5SWQoaWQ6IHN0cmluZyk6IE1vZGFsUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9vcGVuRGlhbG9ncy5maW5kKHJlZiAgPT4gcmVmLmlkID09PSBpZClcbiAgfVxuXG4gIC8qKiBDbG9zZXMgYWxsIG9wZW4gZGlhbG9ncy4gKi9cbiAgY2xvc2VBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuRGlhbG9ncy5mb3JFYWNoKHJlZiA9PiByZWYuY2xvc2UoKSlcbiAgfVxuXG4gIC8qKiBPcGVucyBhIGRpYWxvZyBmcm9tIGEgY29tcG9uZW50LiAqL1xuICBvcGVuRnJvbUNvbXBvbmVudDxULCBEID0gYW55PihcbiAgICBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VD4sXG4gICAgY29uZmlnPzogTW9kYWxDb25maWc8RD4sXG4gICAgLy8gTk9URTogU2hvdWxkIG9ubHkgYmUgbmVlZGVkIHdpdGggdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgYFRoZVNlYW1EeW5hbWljQ29tcG9uZW50TG9hZGVyYC5cbiAgICBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI/OiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfCBudWxsIHwgdW5kZWZpbmVkXG4gICk6IE1vZGFsUmVmPFQsIEQ+IHtcbiAgICBjb25maWcgPSB0aGlzLl9hcHBseUNvbmZpZ0RlZmF1bHRzKGNvbmZpZylcblxuICAgIGlmIChjb25maWcuaWQgJiYgdGhpcy5nZXRCeUlkKGNvbmZpZy5pZCkpIHtcbiAgICAgIHRocm93IEVycm9yKGBNb2RhbCB3aXRoIGlkIFwiJHtjb25maWcuaWR9XCIgZXhpc3RzIGFscmVhZHkuIFRoZSBtb2RhbCBpZCBtdXN0IGJlIHVuaXF1ZS5gKVxuICAgIH1cblxuICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLl9jcmVhdGVPdmVybGF5KGNvbmZpZylcbiAgICBjb25zdCBkaWFsb2dDb250YWluZXIgPSB0aGlzLl9hdHRhY2hEaWFsb2dDb250YWluZXIob3ZlcmxheVJlZiwgY29uZmlnKVxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2F0dGFjaERpYWxvZ0NvbnRlbnRGb3JDb21wb25lbnQoY29tcG9uZW50LCBkaWFsb2dDb250YWluZXIsXG4gICAgICBvdmVybGF5UmVmLCBjb25maWcsIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcilcblxuICAgIHRoaXMucmVnaXN0ZXJEaWFsb2dSZWYoZGlhbG9nUmVmKVxuICAgIHJldHVybiBkaWFsb2dSZWZcbiAgfVxuXG4gIC8qKiBPcGVucyBhIGRpYWxvZyBmcm9tIGEgdGVtcGxhdGUuICovXG4gIG9wZW5Gcm9tVGVtcGxhdGU8VD4odGVtcGxhdGU6IFRlbXBsYXRlUmVmPFQ+LCBjb25maWc/OiBNb2RhbENvbmZpZyk6IE1vZGFsUmVmPGFueT4ge1xuICAgIGNvbmZpZyA9IHRoaXMuX2FwcGx5Q29uZmlnRGVmYXVsdHMoY29uZmlnKVxuXG4gICAgaWYgKGNvbmZpZy5pZCAmJiB0aGlzLmdldEJ5SWQoY29uZmlnLmlkKSkge1xuICAgICAgdGhyb3cgRXJyb3IoYE1vZGFsIHdpdGggaWQgXCIke2NvbmZpZy5pZH1cIiBleGlzdHMgYWxyZWFkeS4gVGhlIG1vZGFsIGlkIG11c3QgYmUgdW5pcXVlLmApXG4gICAgfVxuXG4gICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMuX2NyZWF0ZU92ZXJsYXkoY29uZmlnKVxuICAgIGNvbnN0IGRpYWxvZ0NvbnRhaW5lciA9IHRoaXMuX2F0dGFjaERpYWxvZ0NvbnRhaW5lcihvdmVybGF5UmVmLCBjb25maWcpXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fYXR0YWNoRGlhbG9nQ29udGVudEZvclRlbXBsYXRlKHRlbXBsYXRlLCBkaWFsb2dDb250YWluZXIsXG4gICAgICBvdmVybGF5UmVmLCBjb25maWcpXG5cbiAgICB0aGlzLnJlZ2lzdGVyRGlhbG9nUmVmKGRpYWxvZ1JlZilcbiAgICByZXR1cm4gZGlhbG9nUmVmXG4gIH1cblxuICAvKiogT3BlbnMgYSBkaWFsb2cgZnJvbSBhIGxhenktbG9hZGVkIGNvbXBvbmVudC4gKi9cbiAgb3BlbkZyb21MYXp5Q29tcG9uZW50PFQsIEQgPSBhbnk+KFxuICAgIGNvbXBvbmVudElkOiBzdHJpbmcsXG4gICAgY29uZmlnPzogTW9kYWxDb25maWc8RD5cbiAgKTogT2JzZXJ2YWJsZTxNb2RhbFJlZjxULCBEPj4ge1xuICAgIGNvbmZpZyA9IHRoaXMuX2FwcGx5Q29uZmlnRGVmYXVsdHMoY29uZmlnKVxuXG4gICAgaWYgKGNvbmZpZy5pZCAmJiB0aGlzLmdldEJ5SWQoY29uZmlnLmlkKSkge1xuICAgICAgdGhyb3cgRXJyb3IoYE1vZGFsIHdpdGggaWQgXCIke2NvbmZpZy5pZH1cIiBleGlzdHMgYWxyZWFkeS4gVGhlIG1vZGFsIGlkIG11c3QgYmUgdW5pcXVlLmApXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2R5bmFtaWNDb21wb25lbnRMb2FkZXJNb2R1bGVcbiAgICAgIC5nZXRDb21wb25lbnRGYWN0b3J5PHt9Pihjb21wb25lbnRJZClcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoY29tcG9uZW50RmFjdG9yeSA9PiB7XG4gICAgICAgICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm9wZW5Gcm9tQ29tcG9uZW50KFxuICAgICAgICAgICAgY29tcG9uZW50RmFjdG9yeS5jb21wb25lbnRUeXBlLFxuICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgKDxhbnkgLyogQ29tcG9uZW50RmFjdG9yeUJvdW5kVG9Nb2R1bGUgKi8+Y29tcG9uZW50RmFjdG9yeSkubmdNb2R1bGUuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyXG4gICAgICAgICAgKVxuICAgICAgICAgIHJldHVybiBvZihtb2RhbFJlZilcbiAgICAgICAgfSlcbiAgICAgIClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIE9ubHkgY2xvc2UgYWxsIHRoZSBkaWFsb2dzIGF0IHRoaXMgbGV2ZWwuXG4gICAgdGhpcy5fb3BlbkRpYWxvZ3MuZm9yRWFjaChyZWYgPT4gcmVmLmNsb3NlKCkpXG4gIH1cblxuICAvKipcbiAgICogRm9yd2FyZHMgZW1pdHRpbmcgZXZlbnRzIGZvciB3aGVuIGRpYWxvZ3MgYXJlIG9wZW5lZCBhbmQgYWxsIGRpYWxvZ3MgYXJlIGNsb3NlZC5cbiAgICovXG4gIHByaXZhdGUgcmVnaXN0ZXJEaWFsb2dSZWYoZGlhbG9nUmVmOiBNb2RhbFJlZjxhbnk+KTogdm9pZCB7XG4gICAgdGhpcy5vcGVuRGlhbG9ncy5wdXNoKGRpYWxvZ1JlZilcblxuICAgIGxldCBjbGVhbnVwU2Nyb2xsOiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWRcbiAgICBjb25zdCBkaWFsb2dCZWZvcmVPcGVuU3ViID0gZGlhbG9nUmVmLmJlZm9yZU9wZW5lZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjbGVhbnVwU2Nyb2xsID0gdGhpcy5fcmVnaXN0ZXJEaWFsb2dSZWZTY3JvbGxFdmVudHMoZGlhbG9nUmVmKVxuICAgICAgZGlhbG9nQmVmb3JlT3BlblN1Yi51bnN1YnNjcmliZSgpXG4gICAgfSlcblxuICAgIGNvbnN0IGRpYWxvZ0JlZm9yZUNsb3NlU3ViID0gZGlhbG9nUmVmLmJlZm9yZUNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAvLyBUT0RPOiBEbyBJIG5lZWQgdG8gZGVzdHJveSB0aGUgaW5zdGFuY2U/IEkgZmVlbCBsaWtlIEkgc2hvdWxkLCBidXQgdGhlXG4gICAgICAvLyB3YXkgSSBoYXZlIHRoaXMgaW1wbGVtZW50ZWQgY3VycmVudGx5IGNhdXNlcyB0aGUgbmF0aXZlIHNjcm9sbGJhciB0b1xuICAgICAgLy8gYXBwZWFyIGJlZm9yZSB0aGUgZWxlbWVudCBpcyByZW1vdmVkIGZyb20gdGhlIERPTS5cbiAgICAgIC8vIHRoaXMuX3Njcm9sbGJhcnMuZGVzdHJveUluc3RhbmNlKGRpYWxvZ1JlZi5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudClcbiAgICAgIGlmIChjbGVhbnVwU2Nyb2xsKSB7XG4gICAgICAgIGNsZWFudXBTY3JvbGwoKVxuICAgICAgfVxuXG4gICAgICBkaWFsb2dCZWZvcmVDbG9zZVN1Yi51bnN1YnNjcmliZSgpXG4gICAgfSlcblxuICAgIGNvbnN0IGRpYWxvZ09wZW5TdWIgPSBkaWFsb2dSZWYuYWZ0ZXJPcGVuZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5hZnRlck9wZW5lZC5uZXh0KGRpYWxvZ1JlZilcbiAgICAgIGRpYWxvZ09wZW5TdWIudW5zdWJzY3JpYmUoKVxuICAgIH0pXG5cbiAgICBjb25zdCBkaWFsb2dDbG9zZVN1YiA9IGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAvLyB0aGlzLl9zY3JvbGxiYXJzLmRlc3Ryb3lJbnN0YW5jZShkaWFsb2dSZWYuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQpXG4gICAgICBjb25zdCBkaWFsb2dJbmRleCA9IHRoaXMuX29wZW5EaWFsb2dzLmluZGV4T2YoZGlhbG9nUmVmKVxuXG4gICAgICBpZiAoZGlhbG9nSW5kZXggPiAtMSkge1xuICAgICAgICB0aGlzLl9vcGVuRGlhbG9ncy5zcGxpY2UoZGlhbG9nSW5kZXgsIDEpXG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5fb3BlbkRpYWxvZ3MubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuX2FmdGVyQWxsQ2xvc2VkQmFzZS5uZXh0KClcbiAgICAgICAgZGlhbG9nQ2xvc2VTdWIudW5zdWJzY3JpYmUoKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvLyBUT0RPOiBDbGVhbnVwLiBUaGlzIHdhcyBydXNoZWQgdG9nZXRoZXIgZmFzdCBhbmQgYmVjYW1lIGFuIHVuZWZmaWNpZW50IG1lc3MuXG4gIHByaXZhdGUgX3JlZ2lzdGVyRGlhbG9nUmVmU2Nyb2xsRXZlbnRzKGRpYWxvZ1JlZjogTW9kYWxSZWY8YW55Pik6ICgpID0+IHZvaWQge1xuICAgIGNvbnN0IF9zY3JvbGxiYXJNb3VzZURvd25MaXN0ZW5lciA9ICgpID0+IHtcbiAgICAgIGlmIChkaWFsb2dSZWYpIHsgZGlhbG9nUmVmLmRpc2FibGVDbG9zZSA9IHRydWUgfVxuICAgIH1cbiAgICBjb25zdCBfc2Nyb2xsYmFyTW91c2VVcExpc3RlbmVyID0gKCkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7IGlmIChkaWFsb2dSZWYpIHsgZGlhbG9nUmVmLmRpc2FibGVDbG9zZSA9IGZhbHNlIH0gfSlcbiAgICB9XG5cbiAgICBsZXQgdmVydGljYWxIYW5kbGVFbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZFxuICAgIGxldCBob3Jpem9udGFsSGFuZGxlRWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWRcbiAgICB0aGlzLl9zY3JvbGxiYXJzLmluaXRpYWxpemVJbnN0YW5jZShkaWFsb2dSZWYuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQsIHtcbiAgICAgIGNhbGxiYWNrczoge1xuICAgICAgICBvbkluaXRpYWxpemVkOiAoKSA9PiB7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ29uSW5pdGlhbGl6ZWQnKVxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLl9zY3JvbGxiYXJzLmdldEluc3RhbmNlKGRpYWxvZ1JlZi5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudClcbiAgICAgICAgICAgIGlmIChpbnN0YW5jZSkge1xuICAgICAgICAgICAgICB2ZXJ0aWNhbEhhbmRsZUVsZW1lbnQgPSBpbnN0YW5jZS5nZXRFbGVtZW50cygpLnNjcm9sbGJhclZlcnRpY2FsLmhhbmRsZVxuICAgICAgICAgICAgICBpZiAodmVydGljYWxIYW5kbGVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgdmVydGljYWxIYW5kbGVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIF9zY3JvbGxiYXJNb3VzZURvd25MaXN0ZW5lcilcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbEhhbmRsZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIF9zY3JvbGxiYXJNb3VzZURvd25MaXN0ZW5lcilcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBob3Jpem9udGFsSGFuZGxlRWxlbWVudCA9IGluc3RhbmNlLmdldEVsZW1lbnRzKCkuc2Nyb2xsYmFySG9yaXpvbnRhbC5oYW5kbGVcbiAgICAgICAgICAgICAgaWYgKGhvcml6b250YWxIYW5kbGVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgaG9yaXpvbnRhbEhhbmRsZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgX3Njcm9sbGJhck1vdXNlRG93bkxpc3RlbmVyKVxuICAgICAgICAgICAgICAgIGhvcml6b250YWxIYW5kbGVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBfc2Nyb2xsYmFyTW91c2VEb3duTGlzdGVuZXIpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHZlcnRpY2FsSGFuZGxlRWxlbWVudCB8fCBob3Jpem9udGFsSGFuZGxlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBfc2Nyb2xsYmFyTW91c2VVcExpc3RlbmVyKVxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgX3Njcm9sbGJhck1vdXNlVXBMaXN0ZW5lcilcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGNhbmNlbCcsIF9zY3JvbGxiYXJNb3VzZVVwTGlzdGVuZXIpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9LFxuICAgICAgICBvbkRlc3Ryb3llZDogKCkgPT4ge1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdvbkRlc3Ryb3llZCcpXG4gICAgICAgICAgLy8gLy8gY29uc3QgaW5zdGFuY2UgPSB0aGlzLl9zY3JvbGxiYXJzLmdldEluc3RhbmNlKGRpYWxvZ1JlZi5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudClcbiAgICAgICAgICAvLyAvLyBjb25zdCBzY3JvbGxFbGVtID0gaW5zdGFuY2UuZ2V0RWxlbWVudHMoKS5zY3JvbGxiYXJWZXJ0aWNhbC5oYW5kbGVcbiAgICAgICAgICAvLyBpZiAodmVydGljYWxIYW5kbGVFbGVtZW50KSB7XG4gICAgICAgICAgLy8gICB2ZXJ0aWNhbEhhbmRsZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgX3Njcm9sbGJhck1vdXNlRG93bkxpc3RlbmVyKVxuICAgICAgICAgIC8vICAgdmVydGljYWxIYW5kbGVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBfc2Nyb2xsYmFyTW91c2VEb3duTGlzdGVuZXIpXG4gICAgICAgICAgLy8gfVxuICAgICAgICAgIC8vIGlmIChob3Jpem9udGFsSGFuZGxlRWxlbWVudCkge1xuICAgICAgICAgIC8vICAgaG9yaXpvbnRhbEhhbmRsZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgX3Njcm9sbGJhck1vdXNlRG93bkxpc3RlbmVyKVxuICAgICAgICAgIC8vICAgaG9yaXpvbnRhbEhhbmRsZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIF9zY3JvbGxiYXJNb3VzZURvd25MaXN0ZW5lcilcbiAgICAgICAgICAvLyB9XG4gICAgICAgICAgLy8gaWYgKHZlcnRpY2FsSGFuZGxlRWxlbWVudCB8fCBob3Jpem9udGFsSGFuZGxlRWxlbWVudCkge1xuICAgICAgICAgIC8vICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIF9zY3JvbGxiYXJNb3VzZVVwTGlzdGVuZXIpXG4gICAgICAgICAgLy8gICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIF9zY3JvbGxiYXJNb3VzZVVwTGlzdGVuZXIpXG4gICAgICAgICAgLy8gICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaGNhbmNlbCcsIF9zY3JvbGxiYXJNb3VzZVVwTGlzdGVuZXIpXG4gICAgICAgICAgLy8gfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcblxuICAgIC8vIENsZWFucyB1cCB0aGUgcmVnaXN0ZXJlZCBldmVudHMuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdzY3JvbGxldmVudHMgY2xlYW51cCcpXG4gICAgICAvLyBjb25zdCBpbnN0YW5jZSA9IHRoaXMuX3Njcm9sbGJhcnMuZ2V0SW5zdGFuY2UoZGlhbG9nUmVmLl9vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50KVxuICAgICAgLy8gY29uc3Qgc2Nyb2xsRWxlbSA9IGluc3RhbmNlLmdldEVsZW1lbnRzKCkuc2Nyb2xsYmFyVmVydGljYWwuaGFuZGxlXG4gICAgICBpZiAodmVydGljYWxIYW5kbGVFbGVtZW50KSB7XG4gICAgICAgIHZlcnRpY2FsSGFuZGxlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBfc2Nyb2xsYmFyTW91c2VEb3duTGlzdGVuZXIpXG4gICAgICAgIHZlcnRpY2FsSGFuZGxlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgX3Njcm9sbGJhck1vdXNlRG93bkxpc3RlbmVyKVxuICAgICAgfVxuICAgICAgaWYgKGhvcml6b250YWxIYW5kbGVFbGVtZW50KSB7XG4gICAgICAgIGhvcml6b250YWxIYW5kbGVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIF9zY3JvbGxiYXJNb3VzZURvd25MaXN0ZW5lcilcbiAgICAgICAgaG9yaXpvbnRhbEhhbmRsZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIF9zY3JvbGxiYXJNb3VzZURvd25MaXN0ZW5lcilcbiAgICAgIH1cbiAgICAgIGlmICh2ZXJ0aWNhbEhhbmRsZUVsZW1lbnQgfHwgaG9yaXpvbnRhbEhhbmRsZUVsZW1lbnQpIHtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIF9zY3JvbGxiYXJNb3VzZVVwTGlzdGVuZXIpXG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgX3Njcm9sbGJhck1vdXNlVXBMaXN0ZW5lcilcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hjYW5jZWwnLCBfc2Nyb2xsYmFyTW91c2VVcExpc3RlbmVyKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIG92ZXJsYXkgY29uZmlnIGZyb20gYSBkaWFsb2cgY29uZmlnLlxuICAgKiBAcGFyYW0gY29uZmlnIFRoZSBkaWFsb2cgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMgVGhlIG92ZXJsYXkgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHByb3RlY3RlZCBfY3JlYXRlT3ZlcmxheShjb25maWc6IE1vZGFsQ29uZmlnKTogT3ZlcmxheVJlZiB7XG4gICAgbGV0IHBhbmVsQ2xhc3MgPSAoY29uZmlnLnBhbmVsQ2xhc3MgfHwgW10pXG4gICAgaWYgKHR5cGVvZiBwYW5lbENsYXNzID09PSAnc3RyaW5nJykge1xuICAgICAgcGFuZWxDbGFzcyA9IFsgcGFuZWxDbGFzcyBdXG4gICAgfVxuICAgIHBhbmVsQ2xhc3MgPSBbIC4uLnBhbmVsQ2xhc3MsICdtb2RhbCcsICAnZC1ibG9jaycsICdvdmVyZmxvdy1hdXRvJyBdXG5cbiAgICBjb25zdCBvdmVybGF5Q29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCksXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5fc2Nyb2xsU3RyYXRlZ3koKSxcbiAgICAgIHBhbmVsQ2xhc3M6IHBhbmVsQ2xhc3MsXG4gICAgICBoYXNCYWNrZHJvcDogY29uZmlnLmhhc0JhY2tkcm9wLFxuICAgICAgZGlyZWN0aW9uOiBjb25maWcuZGlyZWN0aW9uLFxuICAgICAgbWluV2lkdGg6IGNvbmZpZy5taW5XaWR0aCxcbiAgICAgIG1pbkhlaWdodDogY29uZmlnLm1pbkhlaWdodCxcbiAgICAgIG1heFdpZHRoOiBjb25maWcubWF4V2lkdGgsXG4gICAgICBtYXhIZWlnaHQ6IGNvbmZpZy5tYXhIZWlnaHRcbiAgICB9KVxuXG4gICAgaWYgKGNvbmZpZy5iYWNrZHJvcENsYXNzKSB7XG4gICAgICBvdmVybGF5Q29uZmlnLmJhY2tkcm9wQ2xhc3MgPSBjb25maWcuYmFja2Ryb3BDbGFzc1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKVxuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaGVzIGFuIE1hdERpYWxvZ0NvbnRhaW5lciB0byBhIGRpYWxvZydzIGFscmVhZHktY3JlYXRlZCBvdmVybGF5LlxuICAgKiBAcGFyYW0gb3ZlcmxheSBSZWZlcmVuY2UgdG8gdGhlIGRpYWxvZydzIHVuZGVybHlpbmcgb3ZlcmxheS5cbiAgICogQHBhcmFtIGNvbmZpZyBUaGUgZGlhbG9nIGNvbmZpZ3VyYXRpb24uXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSByZXNvbHZpbmcgdG8gYSBDb21wb25lbnRSZWYgZm9yIHRoZSBhdHRhY2hlZCBjb250YWluZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgX2F0dGFjaERpYWxvZ0NvbnRhaW5lcihvdmVybGF5OiBPdmVybGF5UmVmLCBjb25maWc6IE1vZGFsQ29uZmlnKTogTW9kYWxDb250YWluZXJDb21wb25lbnQge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbmZpZy5jb250YWluZXJDb21wb25lbnQgfHwgdGhpcy5pbmplY3Rvci5nZXQoTU9EQUxfQ09OVEFJTkVSKVxuICAgIGNvbnN0IHVzZXJJbmplY3RvciA9IGNvbmZpZyAmJiBjb25maWcudmlld0NvbnRhaW5lclJlZiAmJiBjb25maWcudmlld0NvbnRhaW5lclJlZi5pbmplY3RvclxuICAgIGNvbnN0IGluamVjdG9yID0gbmV3IFBvcnRhbEluamVjdG9yKHVzZXJJbmplY3RvciB8fCB0aGlzLmluamVjdG9yLCBuZXcgV2Vha01hcChbXG4gICAgICBbTW9kYWxDb25maWcsIGNvbmZpZ11cbiAgICBdKSlcbiAgICBjb25zdCBjb250YWluZXJQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKGNvbnRhaW5lciwgY29uZmlnLnZpZXdDb250YWluZXJSZWYsIGluamVjdG9yKVxuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IDxDb21wb25lbnRSZWY8TW9kYWxDb250YWluZXJDb21wb25lbnQ+Pm92ZXJsYXkuYXR0YWNoKGNvbnRhaW5lclBvcnRhbClcbiAgICBjb250YWluZXJSZWYuaW5zdGFuY2UuX2NvbmZpZyA9IGNvbmZpZ1xuXG4gICAgcmV0dXJuIGNvbnRhaW5lclJlZi5pbnN0YW5jZVxuICB9XG5cblxuICAvKipcbiAgICogQXR0YWNoZXMgdGhlIHVzZXItcHJvdmlkZWQgY29tcG9uZW50IHRvIHRoZSBhbHJlYWR5LWNyZWF0ZWQgTWF0RGlhbG9nQ29udGFpbmVyLlxuICAgKiBAcGFyYW0gY29tcG9uZW50T3JUZW1wbGF0ZVJlZiBUaGUgdHlwZSBvZiBjb21wb25lbnQgYmVpbmcgbG9hZGVkIGludG8gdGhlIGRpYWxvZyxcbiAgICogICAgIG9yIGEgVGVtcGxhdGVSZWYgdG8gaW5zdGFudGlhdGUgYXMgdGhlIGNvbnRlbnQuXG4gICAqIEBwYXJhbSBkaWFsb2dDb250YWluZXIgUmVmZXJlbmNlIHRvIHRoZSB3cmFwcGluZyBNYXREaWFsb2dDb250YWluZXIuXG4gICAqIEBwYXJhbSBvdmVybGF5UmVmIFJlZmVyZW5jZSB0byB0aGUgb3ZlcmxheSBpbiB3aGljaCB0aGUgZGlhbG9nIHJlc2lkZXMuXG4gICAqIEBwYXJhbSBjb25maWcgVGhlIGRpYWxvZyBjb25maWd1cmF0aW9uLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBNYXREaWFsb2dSZWYgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQgdG8gdGhlIHVzZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgX2F0dGFjaERpYWxvZ0NvbnRlbnRGb3JDb21wb25lbnQ8VD4oXG4gICAgICBjb21wb25lbnRPclRlbXBsYXRlUmVmOiBDb21wb25lbnRUeXBlPFQ+LFxuICAgICAgZGlhbG9nQ29udGFpbmVyOiBNb2RhbENvbnRhaW5lckNvbXBvbmVudCxcbiAgICAgIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsXG4gICAgICBjb25maWc6IE1vZGFsQ29uZmlnLFxuICAgICAgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPzogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIHwgbnVsbCB8IHVuZGVmaW5lZCk6IE1vZGFsUmVmPGFueT4ge1xuXG4gICAgLy8gQ3JlYXRlIGEgcmVmZXJlbmNlIHRvIHRoZSBkaWFsb2cgd2UncmUgY3JlYXRpbmcgaW4gb3JkZXIgdG8gZ2l2ZSB0aGUgdXNlciBhIGhhbmRsZVxuICAgIC8vIHRvIG1vZGlmeSBhbmQgY2xvc2UgaXQuXG4gICAgY29uc3QgZGlhbG9nUmVmID0gbmV3IHRoaXMuZGlhbG9nUmVmQ29uc3RydWN0b3Iob3ZlcmxheVJlZiwgZGlhbG9nQ29udGFpbmVyLCBjb25maWcuaWQpXG4gICAgY29uc3QgaW5qZWN0b3IgPSB0aGlzLl9jcmVhdGVJbmplY3RvcjxUPihjb25maWcsIGRpYWxvZ1JlZiwgZGlhbG9nQ29udGFpbmVyKVxuICAgIGNvbnN0IGNvbnRlbnRSZWYgPSBkaWFsb2dDb250YWluZXIuYXR0YWNoQ29tcG9uZW50UG9ydGFsKFxuICAgICAgICBuZXcgQ29tcG9uZW50UG9ydGFsKGNvbXBvbmVudE9yVGVtcGxhdGVSZWYsIHVuZGVmaW5lZCwgaW5qZWN0b3IsIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikpXG5cbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UgPSBjb250ZW50UmVmLmluc3RhbmNlXG4gICAgZGlhbG9nUmVmLmRpc2FibGVDbG9zZSA9IGNvbmZpZy5kaXNhYmxlQ2xvc2VcblxuICAgIGRpYWxvZ1JlZi51cGRhdGVTaXplKHt3aWR0aDogY29uZmlnLndpZHRoLCBoZWlnaHQ6IGNvbmZpZy5oZWlnaHR9KVxuICAgICAgICAgICAgIC51cGRhdGVQb3NpdGlvbihjb25maWcucG9zaXRpb24pXG5cbiAgICByZXR1cm4gZGlhbG9nUmVmXG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoZXMgdGhlIHVzZXItcHJvdmlkZWQgY29tcG9uZW50IHRvIHRoZSBhbHJlYWR5LWNyZWF0ZWQgTWF0RGlhbG9nQ29udGFpbmVyLlxuICAgKiBAcGFyYW0gY29tcG9uZW50T3JUZW1wbGF0ZVJlZiBUaGUgdHlwZSBvZiBjb21wb25lbnQgYmVpbmcgbG9hZGVkIGludG8gdGhlIGRpYWxvZyxcbiAgICogICAgIG9yIGEgVGVtcGxhdGVSZWYgdG8gaW5zdGFudGlhdGUgYXMgdGhlIGNvbnRlbnQuXG4gICAqIEBwYXJhbSBkaWFsb2dDb250YWluZXIgUmVmZXJlbmNlIHRvIHRoZSB3cmFwcGluZyBNYXREaWFsb2dDb250YWluZXIuXG4gICAqIEBwYXJhbSBvdmVybGF5UmVmIFJlZmVyZW5jZSB0byB0aGUgb3ZlcmxheSBpbiB3aGljaCB0aGUgZGlhbG9nIHJlc2lkZXMuXG4gICAqIEBwYXJhbSBjb25maWcgVGhlIGRpYWxvZyBjb25maWd1cmF0aW9uLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBNYXREaWFsb2dSZWYgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQgdG8gdGhlIHVzZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgX2F0dGFjaERpYWxvZ0NvbnRlbnRGb3JUZW1wbGF0ZTxUPihcbiAgICAgIGNvbXBvbmVudE9yVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPFQ+LFxuICAgICAgZGlhbG9nQ29udGFpbmVyOiBNb2RhbENvbnRhaW5lckNvbXBvbmVudCxcbiAgICAgIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsXG4gICAgICBjb25maWc6IE1vZGFsQ29uZmlnKTogTW9kYWxSZWY8YW55PiB7XG5cbiAgICAvLyBDcmVhdGUgYSByZWZlcmVuY2UgdG8gdGhlIGRpYWxvZyB3ZSdyZSBjcmVhdGluZyBpbiBvcmRlciB0byBnaXZlIHRoZSB1c2VyIGEgaGFuZGxlXG4gICAgLy8gdG8gbW9kaWZ5IGFuZCBjbG9zZSBpdC5cbiAgICBjb25zdCBkaWFsb2dSZWYgPSBuZXcgdGhpcy5kaWFsb2dSZWZDb25zdHJ1Y3RvcihvdmVybGF5UmVmLCBkaWFsb2dDb250YWluZXIsIGNvbmZpZy5pZClcblxuICAgIGRpYWxvZ0NvbnRhaW5lci5hdHRhY2hUZW1wbGF0ZVBvcnRhbChcbiAgICAgIG5ldyBUZW1wbGF0ZVBvcnRhbDxUPihjb21wb25lbnRPclRlbXBsYXRlUmVmLCA8YW55Pm51bGwsXG4gICAgICAgIDxhbnk+eyRpbXBsaWNpdDogY29uZmlnLmRhdGEsIGRpYWxvZ1JlZn0pKVxuICAgIGRpYWxvZ1JlZi51cGRhdGVTaXplKHt3aWR0aDogY29uZmlnLndpZHRoLCBoZWlnaHQ6IGNvbmZpZy5oZWlnaHR9KVxuICAgICAgICAgICAgIC51cGRhdGVQb3NpdGlvbihjb25maWcucG9zaXRpb24pXG5cbiAgICByZXR1cm4gZGlhbG9nUmVmXG4gIH1cblxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgY3VzdG9tIGluamVjdG9yIHRvIGJlIHVzZWQgaW5zaWRlIHRoZSBkaWFsb2cuIFRoaXMgYWxsb3dzIGEgY29tcG9uZW50IGxvYWRlZCBpbnNpZGVcbiAgICogb2YgYSBkaWFsb2cgdG8gY2xvc2UgaXRzZWxmIGFuZCwgb3B0aW9uYWxseSwgdG8gcmV0dXJuIGEgdmFsdWUuXG4gICAqIEBwYXJhbSBjb25maWcgQ29uZmlnIG9iamVjdCB0aGF0IGlzIHVzZWQgdG8gY29uc3RydWN0IHRoZSBkaWFsb2cuXG4gICAqIEBwYXJhbSBkaWFsb2dSZWYgUmVmZXJlbmNlIHRvIHRoZSBkaWFsb2cuXG4gICAqIEBwYXJhbSBjb250YWluZXIgRGlhbG9nIGNvbnRhaW5lciBlbGVtZW50IHRoYXQgd3JhcHMgYWxsIG9mIHRoZSBjb250ZW50cy5cbiAgICogQHJldHVybnMgVGhlIGN1c3RvbSBpbmplY3RvciB0aGF0IGNhbiBiZSB1c2VkIGluc2lkZSB0aGUgZGlhbG9nLlxuICAgKi9cbiAgcHJpdmF0ZSBfY3JlYXRlSW5qZWN0b3I8VD4oXG4gICAgICBjb25maWc6IE1vZGFsQ29uZmlnLFxuICAgICAgZGlhbG9nUmVmOiBNb2RhbFJlZjxUPixcbiAgICAgIGRpYWxvZ0NvbnRhaW5lcjogTW9kYWxDb250YWluZXJDb21wb25lbnQpOiBQb3J0YWxJbmplY3RvciB7XG5cbiAgICBjb25zdCB1c2VySW5qZWN0b3IgPSBjb25maWcgJiYgY29uZmlnLnZpZXdDb250YWluZXJSZWYgJiYgY29uZmlnLnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3JcbiAgICBjb25zdCBpbmplY3Rpb25Ub2tlbnMgPSBuZXcgV2Vha01hcDxhbnksIGFueT4oW1xuICAgICAgW3RoaXMuaW5qZWN0b3IuZ2V0KE1PREFMX1JFRiksIGRpYWxvZ1JlZl0sXG4gICAgICBbdGhpcy5pbmplY3Rvci5nZXQoTU9EQUxfQ09OVEFJTkVSKSwgZGlhbG9nQ29udGFpbmVyXSxcbiAgICAgIFtNT0RBTF9EQVRBLCBjb25maWcuZGF0YV1cbiAgICBdKVxuXG4gICAgaWYgKGNvbmZpZy5kaXJlY3Rpb24gJiZcbiAgICAgICAgKCF1c2VySW5qZWN0b3IgfHwgIXVzZXJJbmplY3Rvci5nZXQ8RGlyZWN0aW9uYWxpdHkgfCBudWxsPihEaXJlY3Rpb25hbGl0eSwgbnVsbCkpKSB7XG4gICAgICBpbmplY3Rpb25Ub2tlbnMuc2V0KERpcmVjdGlvbmFsaXR5LCB7XG4gICAgICAgIHZhbHVlOiBjb25maWcuZGlyZWN0aW9uLFxuICAgICAgICBjaGFuZ2U6IG9ic2VydmFibGVPZigpXG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgUG9ydGFsSW5qZWN0b3IodXNlckluamVjdG9yIHx8IHRoaXMuaW5qZWN0b3IsIGluamVjdGlvblRva2VucylcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBhbmRzIHRoZSBwcm92aWRlZCBjb25maWd1cmF0aW9uIG9iamVjdCB0byBpbmNsdWRlIHRoZSBkZWZhdWx0IHZhbHVlcyBmb3IgcHJvcGVydGllcyB3aGljaFxuICAgKiBhcmUgdW5kZWZpbmVkLlxuICAgKi9cbiAgcHJpdmF0ZSBfYXBwbHlDb25maWdEZWZhdWx0cyhjb25maWc/OiBNb2RhbENvbmZpZyk6IE1vZGFsQ29uZmlnIHtcbiAgICBjb25zdCBkaWFsb2dDb25maWcgPSAoPHVua25vd24+dGhpcy5pbmplY3Rvci5nZXQoTU9EQUxfQ09ORklHKSkgYXMgdHlwZW9mIE1vZGFsQ29uZmlnXG4gICAgcmV0dXJuIHsuLi5uZXcgZGlhbG9nQ29uZmlnKCksIC4uLmNvbmZpZ31cbiAgfVxufVxuIl19
|
|
349
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9tb2RhbC9tb2RhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNsRCxPQUFPLEVBR0wsYUFBYSxHQUdkLE1BQU0sc0JBQXNCLENBQUE7QUFDN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFFckYsT0FBTyxFQUdMLE1BQU0sRUFDTixVQUFVLEVBR1YsUUFBUSxFQUNSLFFBQVEsRUFHVCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxFQUFFLElBQUksWUFBWSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUN6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBS3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUU1QyxPQUFPLEVBQ0wsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsU0FBUyxFQUNULHFCQUFxQixHQUN0QixNQUFNLG1CQUFtQixDQUFBOzs7Ozs7QUFJMUI7O0dBRUc7QUFFSCxNQUFNLE9BQU8sS0FBSztJQUdoQixxREFBcUQ7SUFDckQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQTtJQUMxRixDQUFDO0lBTUQsaURBQWlEO0lBQ2pELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFX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LENBQUM7U0FDMUIsQ0FBQyxDQUFBO1FBRUYsSUFBSSxNQUFNLENBQUMsU0FBUztZQUNoQixDQUFDLENBQUMsWUFBWSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBd0IsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUU7WUFDckYsZUFBZSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUU7Z0JBQ2xDLEtBQUssRUFBRSxNQUFNLENBQUMsU0FBUztnQkFDdkIsTUFBTSxFQUFFLFlBQVksRUFBRTthQUN2QixDQUFDLENBQUE7U0FDSDtRQUVELE9BQU8sSUFBSSxjQUFjLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUE7SUFDM0UsQ0FBQztJQUVEOzs7T0FHRztJQUNLLG9CQUFvQixDQUFDLE1BQW9CO1FBQy9DLE1BQU0sWUFBWSxHQUFhLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBd0IsQ0FBQTtRQUNyRixPQUFPLEVBQUMsR0FBRyxJQUFJLFlBQVksRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFDLENBQUE7SUFDM0MsQ0FBQzs7a0dBM1lVLEtBQUssaUVBMkJOLFNBQVMsYUFDVCxxQkFBcUI7c0dBNUJwQixLQUFLOzJGQUFMLEtBQUs7a0JBRGpCLFVBQVU7OzBCQTRCTixNQUFNOzJCQUFDLFNBQVM7OzBCQUNoQixNQUFNOzJCQUFDLHFCQUFxQjs7MEJBQzVCLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUNwQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSdcbmltcG9ydCB7XG4gIENvbXBvbmVudFR5cGUsXG4gIE92ZXJsYXksXG4gIE92ZXJsYXlDb25maWcsXG4gIE92ZXJsYXlSZWYsXG4gIFNjcm9sbFN0cmF0ZWd5LFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSdcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgUG9ydGFsSW5qZWN0b3IsIFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCdcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBDb21wb25lbnRSZWYsXG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFNraXBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgVHlwZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgZGVmZXIsIE9ic2VydmFibGUsIG9mLCBvZiBhcyBvYnNlcnZhYmxlT2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgc3RhcnRXaXRoLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgVGhlU2VhbUR5bmFtaWNDb21wb25lbnRMb2FkZXIgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vZHluYW1pYy1jb21wb25lbnQtbG9hZGVyJ1xuaW1wb3J0IHsgT3ZlcmxheVNjcm9sbGJhcnNTZXJ2aWNlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3Njcm9sbGJhcidcblxuaW1wb3J0IHsgTW9kYWxDb25maWcgfSBmcm9tICcuL21vZGFsLWNvbmZpZydcbmltcG9ydCB7IE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC1jb250YWluZXIvbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudCdcbmltcG9ydCB7XG4gIE1PREFMX0NPTkZJRyxcbiAgTU9EQUxfQ09OVEFJTkVSLFxuICBNT0RBTF9EQVRBLFxuICBNT0RBTF9SRUYsXG4gIE1PREFMX1NDUk9MTF9TVFJBVEVHWSxcbn0gZnJvbSAnLi9tb2RhbC1pbmplY3RvcnMnXG5pbXBvcnQgeyBNb2RhbFJlZiB9IGZyb20gJy4vbW9kYWwtcmVmJ1xuXG5cbi8qKlxuICogU2VydmljZSB0byBvcGVuIG1vZGFsIGRpYWxvZ3MuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNb2RhbCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX3Njcm9sbFN0cmF0ZWd5OiAoKSA9PiBTY3JvbGxTdHJhdGVneVxuXG4gIC8qKiBTdHJlYW0gdGhhdCBlbWl0cyB3aGVuIGFsbCBkaWFsb2dzIGFyZSBjbG9zZWQuICovXG4gIGdldCBfYWZ0ZXJBbGxDbG9zZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudERpYWxvZyA/IHRoaXMuX3BhcmVudERpYWxvZy5hZnRlckFsbENsb3NlZCA6IHRoaXMuX2FmdGVyQWxsQ2xvc2VkQmFzZVxuICB9XG4gIF9hZnRlckFsbENsb3NlZEJhc2UgPSBuZXcgU3ViamVjdDx2b2lkPigpXG5cbiAgYWZ0ZXJBbGxDbG9zZWQ6IE9ic2VydmFibGU8dm9pZD4gPSBkZWZlcigoKSA9PiB0aGlzLm9wZW5EaWFsb2dzLmxlbmd0aCA/XG4gICAgICB0aGlzLl9hZnRlckFsbENsb3NlZCA6IHRoaXMuX2FmdGVyQWxsQ2xvc2VkLnBpcGUoc3RhcnRXaXRoKHVuZGVmaW5lZCkpKVxuXG4gIC8qKiBTdHJlYW0gdGhhdCBlbWl0cyB3aGVuIGEgZGlhbG9nIGlzIG9wZW5lZC4gKi9cbiAgZ2V0IGFmdGVyT3BlbmVkKCk6IFN1YmplY3Q8TW9kYWxSZWY8YW55Pj4ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnREaWFsb2cgPyB0aGlzLl9wYXJlbnREaWFsb2cuYWZ0ZXJPcGVuZWQgOiB0aGlzLl9hZnRlck9wZW5lZFxuICB9XG4gIF9hZnRlck9wZW5lZDogU3ViamVjdDxNb2RhbFJlZjxhbnk+PiA9IG5ldyBTdWJqZWN0KClcblxuICAvKiogU3RyZWFtIHRoYXQgZW1pdHMgd2hlbiBhIGRpYWxvZyBpcyBvcGVuZWQuICovXG4gIGdldCBvcGVuRGlhbG9ncygpOiBNb2RhbFJlZjxhbnk+W10ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnREaWFsb2cgPyB0aGlzLl9wYXJlbnREaWFsb2cub3BlbkRpYWxvZ3MgOiB0aGlzLl9vcGVuRGlhbG9nc1xuICB9XG4gIF9vcGVuRGlhbG9nczogTW9kYWxSZWY8YW55PltdID0gW11cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgQEluamVjdChNT0RBTF9SRUYpIHByaXZhdGUgZGlhbG9nUmVmQ29uc3RydWN0b3I6IFR5cGU8TW9kYWxSZWY8YW55Pj4sXG4gICAgQEluamVjdChNT0RBTF9TQ1JPTExfU1RSQVRFR1kpIHNjcm9sbFN0cmF0ZWd5OiBhbnksXG4gICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcHJpdmF0ZSBfcGFyZW50RGlhbG9nOiBNb2RhbCxcbiAgICBAT3B0aW9uYWwoKSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICAgcHJpdmF0ZSBfc2Nyb2xsYmFyczogT3ZlcmxheVNjcm9sbGJhcnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2R5bmFtaWNDb21wb25lbnRMb2FkZXJNb2R1bGU6IFRoZVNlYW1EeW5hbWljQ29tcG9uZW50TG9hZGVyXG4gICkge1xuXG4gICAgLy8gQ2xvc2UgYWxsIG9mIHRoZSBkaWFsb2dzIHdoZW4gdGhlIHVzZXIgZ29lcyBmb3J3YXJkcy9iYWNrd2FyZHMgaW4gaGlzdG9yeSBvciB3aGVuIHRoZVxuICAgIC8vIGxvY2F0aW9uIGhhc2ggY2hhbmdlcy4gTm90ZSB0aGF0IHRoaXMgdXN1YWxseSBkb2Vzbid0IGluY2x1ZGUgY2xpY2tpbmcgb24gbGlua3MgKHVubGVzc1xuICAgIC8vIHRoZSB1c2VyIGlzIHVzaW5nIHRoZSBgSGFzaExvY2F0aW9uU3RyYXRlZ3lgKS5cbiAgICBpZiAoIV9wYXJlbnREaWFsb2cgJiYgbG9jYXRpb24pIHtcbiAgICAgIGxvY2F0aW9uLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlQWxsKCkpXG4gICAgfVxuXG4gICAgdGhpcy5fc2Nyb2xsU3RyYXRlZ3kgPSBzY3JvbGxTdHJhdGVneVxuICB9XG5cbiAgLyoqIEdldHMgYW4gb3BlbiBkaWFsb2cgYnkgaWQuICovXG4gIGdldEJ5SWQoaWQ6IHN0cmluZyk6IE1vZGFsUmVmPGFueT4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9vcGVuRGlhbG9ncy5maW5kKHJlZiAgPT4gcmVmLmlkID09PSBpZClcbiAgfVxuXG4gIC8qKiBDbG9zZXMgYWxsIG9wZW4gZGlhbG9ncy4gKi9cbiAgY2xvc2VBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuRGlhbG9ncy5mb3JFYWNoKHJlZiA9PiByZWYuY2xvc2UoKSlcbiAgfVxuXG4gIC8qKiBPcGVucyBhIGRpYWxvZyBmcm9tIGEgY29tcG9uZW50LiAqL1xuICBvcGVuRnJvbUNvbXBvbmVudDxULCBEID0gYW55PihcbiAgICBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VD4sXG4gICAgY29uZmlnPzogTW9kYWxDb25maWc8RD4sXG4gICAgLy8gTk9URTogU2hvdWxkIG9ubHkgYmUgbmVlZGVkIHdpdGggdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgYFRoZVNlYW1EeW5hbWljQ29tcG9uZW50TG9hZGVyYC5cbiAgICBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI/OiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfCBudWxsIHwgdW5kZWZpbmVkXG4gICk6IE1vZGFsUmVmPFQsIEQ+IHtcbiAgICBjb25maWcgPSB0aGlzLl9hcHBseUNvbmZpZ0RlZmF1bHRzKGNvbmZpZylcblxuICAgIGlmIChjb25maWcuaWQgJiYgdGhpcy5nZXRCeUlkKGNvbmZpZy5pZCkpIHtcbiAgICAgIHRocm93IEVycm9yKGBNb2RhbCB3aXRoIGlkIFwiJHtjb25maWcuaWR9XCIgZXhpc3RzIGFscmVhZHkuIFRoZSBtb2RhbCBpZCBtdXN0IGJlIHVuaXF1ZS5gKVxuICAgIH1cblxuICAgIGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLl9jcmVhdGVPdmVybGF5KGNvbmZpZylcbiAgICBjb25zdCBkaWFsb2dDb250YWluZXIgPSB0aGlzLl9hdHRhY2hEaWFsb2dDb250YWluZXIob3ZlcmxheVJlZiwgY29uZmlnKVxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2F0dGFjaERpYWxvZ0NvbnRlbnRGb3JDb21wb25lbnQoY29tcG9uZW50LCBkaWFsb2dDb250YWluZXIsXG4gICAgICBvdmVybGF5UmVmLCBjb25maWcsIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcilcblxuICAgIHRoaXMucmVnaXN0ZXJEaWFsb2dSZWYoZGlhbG9nUmVmKVxuICAgIHJldHVybiBkaWFsb2dSZWZcbiAgfVxuXG4gIC8qKiBPcGVucyBhIGRpYWxvZyBmcm9tIGEgdGVtcGxhdGUuICovXG4gIG9wZW5Gcm9tVGVtcGxhdGU8VD4odGVtcGxhdGU6IFRlbXBsYXRlUmVmPFQ+LCBjb25maWc/OiBNb2RhbENvbmZpZyk6IE1vZGFsUmVmPGFueT4ge1xuICAgIGNvbmZpZyA9IHRoaXMuX2FwcGx5Q29uZmlnRGVmYXVsdHMoY29uZmlnKVxuXG4gICAgaWYgKGNvbmZpZy5pZCAmJiB0aGlzLmdldEJ5SWQoY29uZmlnLmlkKSkge1xuICAgICAgdGhyb3cgRXJyb3IoYE1vZGFsIHdpdGggaWQgXCIke2NvbmZpZy5pZH1cIiBleGlzdHMgYWxyZWFkeS4gVGhlIG1vZGFsIGlkIG11c3QgYmUgdW5pcXVlLmApXG4gICAgfVxuXG4gICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMuX2NyZWF0ZU92ZXJsYXkoY29uZmlnKVxuICAgIGNvbnN0IGRpYWxvZ0NvbnRhaW5lciA9IHRoaXMuX2F0dGFjaERpYWxvZ0NvbnRhaW5lcihvdmVybGF5UmVmLCBjb25maWcpXG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fYXR0YWNoRGlhbG9nQ29udGVudEZvclRlbXBsYXRlKHRlbXBsYXRlLCBkaWFsb2dDb250YWluZXIsXG4gICAgICBvdmVybGF5UmVmLCBjb25maWcpXG5cbiAgICB0aGlzLnJlZ2lzdGVyRGlhbG9nUmVmKGRpYWxvZ1JlZilcbiAgICByZXR1cm4gZGlhbG9nUmVmXG4gIH1cblxuICAvKiogT3BlbnMgYSBkaWFsb2cgZnJvbSBhIGxhenktbG9hZGVkIGNvbXBvbmVudC4gKi9cbiAgb3BlbkZyb21MYXp5Q29tcG9uZW50PFQsIEQgPSBhbnk+KFxuICAgIGNvbXBvbmVudElkOiBzdHJpbmcsXG4gICAgY29uZmlnPzogTW9kYWxDb25maWc8RD5cbiAgKTogT2JzZXJ2YWJsZTxNb2RhbFJlZjxULCBEPj4ge1xuICAgIGNvbmZpZyA9IHRoaXMuX2FwcGx5Q29uZmlnRGVmYXVsdHMoY29uZmlnKVxuXG4gICAgaWYgKGNvbmZpZy5pZCAmJiB0aGlzLmdldEJ5SWQoY29uZmlnLmlkKSkge1xuICAgICAgdGhyb3cgRXJyb3IoYE1vZGFsIHdpdGggaWQgXCIke2NvbmZpZy5pZH1cIiBleGlzdHMgYWxyZWFkeS4gVGhlIG1vZGFsIGlkIG11c3QgYmUgdW5pcXVlLmApXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2R5bmFtaWNDb21wb25lbnRMb2FkZXJNb2R1bGVcbiAgICAgIC5nZXRDb21wb25lbnRGYWN0b3J5PHt9Pihjb21wb25lbnRJZClcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoY29tcG9uZW50RmFjdG9yeSA9PiB7XG4gICAgICAgICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm9wZW5Gcm9tQ29tcG9uZW50KFxuICAgICAgICAgICAgY29tcG9uZW50RmFjdG9yeS5jb21wb25lbnRUeXBlLFxuICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgKDxhbnkgLyogQ29tcG9uZW50RmFjdG9yeUJvdW5kVG9Nb2R1bGUgKi8+Y29tcG9uZW50RmFjdG9yeSkubmdNb2R1bGUuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyXG4gICAgICAgICAgKVxuICAgICAgICAgIHJldHVybiBvZihtb2RhbFJlZilcbiAgICAgICAgfSlcbiAgICAgIClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIE9ubHkgY2xvc2UgYWxsIHRoZSBkaWFsb2dzIGF0IHRoaXMgbGV2ZWwuXG4gICAgdGhpcy5fb3BlbkRpYWxvZ3MuZm9yRWFjaChyZWYgPT4gcmVmLmNsb3NlKCkpXG4gIH1cblxuICAvKipcbiAgICogRm9yd2FyZHMgZW1pdHRpbmcgZXZlbnRzIGZvciB3aGVuIGRpYWxvZ3MgYXJlIG9wZW5lZCBhbmQgYWxsIGRpYWxvZ3MgYXJlIGNsb3NlZC5cbiAgICovXG4gIHByaXZhdGUgcmVnaXN0ZXJEaWFsb2dSZWYoZGlhbG9nUmVmOiBNb2RhbFJlZjxhbnk+KTogdm9pZCB7XG4gICAgdGhpcy5vcGVuRGlhbG9ncy5wdXNoKGRpYWxvZ1JlZilcblxuICAgIGxldCBjbGVhbnVwU2Nyb2xsOiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWRcbiAgICBjb25zdCBkaWFsb2dCZWZvcmVPcGVuU3ViID0gZGlhbG9nUmVmLmJlZm9yZU9wZW5lZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjbGVhbnVwU2Nyb2xsID0gdGhpcy5fcmVnaXN0ZXJEaWFsb2dSZWZTY3JvbGxFdmVudHMoZGlhbG9nUmVmKVxuICAgICAgZGlhbG9nQmVmb3JlT3BlblN1Yi51bnN1YnNjcmliZSgpXG4gICAgfSlcblxuICAgIGNvbnN0IGRpYWxvZ0JlZm9yZUNsb3NlU3ViID0gZGlhbG9nUmVmLmJlZm9yZUNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAvLyBUT0RPOiBEbyBJIG5lZWQgdG8gZGVzdHJveSB0aGUgaW5zdGFuY2U/IEkgZmVlbCBsaWtlIEkgc2hvdWxkLCBidXQgdGhlXG4gICAgICAvLyB3YXkgSSBoYXZlIHRoaXMgaW1wbGVtZW50ZWQgY3VycmVudGx5IGNhdXNlcyB0aGUgbmF0aXZlIHNjcm9sbGJhciB0b1xuICAgICAgLy8gYXBwZWFyIGJlZm9yZSB0aGUgZWxlbWVudCBpcyByZW1vdmVkIGZyb20gdGhlIERPTS5cbiAgICAgIC8vIHRoaXMuX3Njcm9sbGJhcnMuZGVzdHJveUluc3RhbmNlKGRpYWxvZ1JlZi5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudClcbiAgICAgIGlmIChjbGVhbnVwU2Nyb2xsKSB7XG4gICAgICAgIGNsZWFudXBTY3JvbGwoKVxuICAgICAgfVxuXG4gICAgICBkaWFsb2dCZWZvcmVDbG9zZVN1Yi51bnN1YnNjcmliZSgpXG4gICAgfSlcblxuICAgIGNvbnN0IGRpYWxvZ09wZW5TdWIgPSBkaWFsb2dSZWYuYWZ0ZXJPcGVuZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5hZnRlck9wZW5lZC5uZXh0KGRpYWxvZ1JlZilcbiAgICAgIGRpYWxvZ09wZW5TdWIudW5zdWJzY3JpYmUoKVxuICAgIH0pXG5cbiAgICBjb25zdCBkaWFsb2dDbG9zZVN1YiA9IGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAvLyB0aGlzLl9zY3JvbGxiYXJzLmRlc3Ryb3lJbnN0YW5jZShkaWFsb2dSZWYuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQpXG4gICAgICBjb25zdCBkaWFsb2dJbmRleCA9IHRoaXMuX29wZW5EaWFsb2dzLmluZGV4T2YoZGlhbG9nUmVmKVxuXG4gICAgICBpZiAoZGlhbG9nSW5kZXggPiAtMSkge1xuICAgICAgICB0aGlzLl9vcGVuRGlhbG9ncy5zcGxpY2UoZGlhbG9nSW5kZXgsIDEpXG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5fb3BlbkRpYWxvZ3MubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuX2FmdGVyQWxsQ2xvc2VkQmFzZS5uZXh0KClcbiAgICAgICAgZGlhbG9nQ2xvc2VTdWIudW5zdWJzY3JpYmUoKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvLyBUT0RPOiBDbGVhbnVwLiBUaGlzIHdhcyBydXNoZWQgdG9nZXRoZXIgZmFzdCBhbmQgYmVjYW1lIGFuIHVuZWZmaWNpZW50IG1lc3MuXG4gIHByaXZhdGUgX3JlZ2lzdGVyRGlhbG9nUmVmU2Nyb2xsRXZlbnRzKGRpYWxvZ1JlZjogTW9kYWxSZWY8YW55Pik6ICgpID0+IHZvaWQge1xuICAgIGNvbnN0IF9zY3JvbGxiYXJNb3VzZURvd25MaXN0ZW5lciA9ICgpID0+IHtcbiAgICAgIGlmIChkaWFsb2dSZWYpIHsgZGlhbG9nUmVmLmRpc2FibGVDbG9zZSA9IHRydWUgfVxuICAgIH1cbiAgICBjb25zdCBfc2Nyb2xsYmFyTW91c2VVcExpc3RlbmVyID0gKCkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7IGlmIChkaWFsb2dSZWYpIHsgZGlhbG9nUmVmLmRpc2FibGVDbG9zZSA9IGZhbHNlIH0gfSlcbiAgICB9XG5cbiAgICBsZXQgdmVydGljYWxIYW5kbGVFbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZFxuICAgIGxldCBob3Jpem9udGFsSGFuZGxlRWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWRcbiAgICB0aGlzLl9zY3JvbGxiYXJzLmluaXRpYWxpemVJbnN0YW5jZShkaWFsb2dSZWYuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQsIHtcbiAgICAgIGNhbGxiYWNrczoge1xuICAgICAgICBvbkluaXRpYWxpemVkOiAoKSA9PiB7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ29uSW5pdGlhbGl6ZWQnKVxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLl9zY3JvbGxiYXJzLmdldEluc3RhbmNlKGRpYWxvZ1JlZi5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudClcbiAgICAgICAgICAgIGlmIChpbnN0YW5jZSkge1xuICAgICAgICAgICAgICB2ZXJ0aWNhbEhhbmRsZUVsZW1lbnQgPSBpbnN0YW5jZS5nZXRFbGVtZW50cygpLnNjcm9sbGJhclZlcnRpY2FsLmhhbmRsZVxuICAgICAgICAgICAgICBpZiAodmVydGljYWxIYW5kbGVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgdmVydGljYWxIYW5kbGVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIF9zY3JvbGxiYXJNb3VzZURvd25MaXN0ZW5lcilcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbEhhbmRsZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIF9zY3JvbGxiYXJNb3VzZURvd25MaXN0ZW5lcilcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBob3Jpem9udGFsSGFuZGxlRWxlbWVudCA9IGluc3RhbmNlLmdldEVsZW1lbnRzKCkuc2Nyb2xsYmFySG9yaXpvbnRhbC5oYW5kbGVcbiAgICAgICAgICAgICAgaWYgKGhvcml6b250YWxIYW5kbGVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgaG9yaXpvbnRhbEhhbmRsZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgX3Njcm9sbGJhck1vdXNlRG93bkxpc3RlbmVyKVxuICAgICAgICAgICAgICAgIGhvcml6b250YWxIYW5kbGVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBfc2Nyb2xsYmFyTW91c2VEb3duTGlzdGVuZXIpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHZlcnRpY2FsSGFuZGxlRWxlbWVudCB8fCBob3Jpem9udGFsSGFuZGxlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBfc2Nyb2xsYmFyTW91c2VVcExpc3RlbmVyKVxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgX3Njcm9sbGJhck1vdXNlVXBMaXN0ZW5lcilcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGNhbmNlbCcsIF9zY3JvbGxiYXJNb3VzZVVwTGlzdGVuZXIpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9LFxuICAgICAgICBvbkRlc3Ryb3llZDogKCkgPT4ge1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdvbkRlc3Ryb3llZCcpXG4gICAgICAgICAgLy8gLy8gY29uc3QgaW5zdGFuY2UgPSB0aGlzLl9zY3JvbGxiYXJzLmdldEluc3RhbmNlKGRpYWxvZ1JlZi5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudClcbiAgICAgICAgICAvLyAvLyBjb25zdCBzY3JvbGxFbGVtID0gaW5zdGFuY2UuZ2V0RWxlbWVudHMoKS5zY3JvbGxiYXJWZXJ0aWNhbC5oYW5kbGVcbiAgICAgICAgICAvLyBpZiAodmVydGljYWxIYW5kbGVFbGVtZW50KSB7XG4gICAgICAgICAgLy8gICB2ZXJ0aWNhbEhhbmRsZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgX3Njcm9sbGJhck1vdXNlRG93bkxpc3RlbmVyKVxuICAgICAgICAgIC8vICAgdmVydGljYWxIYW5kbGVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBfc2Nyb2xsYmFyTW91c2VEb3duTGlzdGVuZXIpXG4gICAgICAgICAgLy8gfVxuICAgICAgICAgIC8vIGlmIChob3Jpem9udGFsSGFuZGxlRWxlbWVudCkge1xuICAgICAgICAgIC8vICAgaG9yaXpvbnRhbEhhbmRsZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgX3Njcm9sbGJhck1vdXNlRG93bkxpc3RlbmVyKVxuICAgICAgICAgIC8vICAgaG9yaXpvbnRhbEhhbmRsZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIF9zY3JvbGxiYXJNb3VzZURvd25MaXN0ZW5lcilcbiAgICAgICAgICAvLyB9XG4gICAgICAgICAgLy8gaWYgKHZlcnRpY2FsSGFuZGxlRWxlbWVudCB8fCBob3Jpem9udGFsSGFuZGxlRWxlbWVudCkge1xuICAgICAgICAgIC8vICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIF9zY3JvbGxiYXJNb3VzZVVwTGlzdGVuZXIpXG4gICAgICAgICAgLy8gICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIF9zY3JvbGxiYXJNb3VzZVVwTGlzdGVuZXIpXG4gICAgICAgICAgLy8gICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaGNhbmNlbCcsIF9zY3JvbGxiYXJNb3VzZVVwTGlzdGVuZXIpXG4gICAgICAgICAgLy8gfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcblxuICAgIC8vIENsZWFucyB1cCB0aGUgcmVnaXN0ZXJlZCBldmVudHMuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdzY3JvbGxldmVudHMgY2xlYW51cCcpXG4gICAgICAvLyBjb25zdCBpbnN0YW5jZSA9IHRoaXMuX3Njcm9sbGJhcnMuZ2V0SW5zdGFuY2UoZGlhbG9nUmVmLl9vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50KVxuICAgICAgLy8gY29uc3Qgc2Nyb2xsRWxlbSA9IGluc3RhbmNlLmdldEVsZW1lbnRzKCkuc2Nyb2xsYmFyVmVydGljYWwuaGFuZGxlXG4gICAgICBpZiAodmVydGljYWxIYW5kbGVFbGVtZW50KSB7XG4gICAgICAgIHZlcnRpY2FsSGFuZGxlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBfc2Nyb2xsYmFyTW91c2VEb3duTGlzdGVuZXIpXG4gICAgICAgIHZlcnRpY2FsSGFuZGxlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgX3Njcm9sbGJhck1vdXNlRG93bkxpc3RlbmVyKVxuICAgICAgfVxuICAgICAgaWYgKGhvcml6b250YWxIYW5kbGVFbGVtZW50KSB7XG4gICAgICAgIGhvcml6b250YWxIYW5kbGVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIF9zY3JvbGxiYXJNb3VzZURvd25MaXN0ZW5lcilcbiAgICAgICAgaG9yaXpvbnRhbEhhbmRsZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIF9zY3JvbGxiYXJNb3VzZURvd25MaXN0ZW5lcilcbiAgICAgIH1cbiAgICAgIGlmICh2ZXJ0aWNhbEhhbmRsZUVsZW1lbnQgfHwgaG9yaXpvbnRhbEhhbmRsZUVsZW1lbnQpIHtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIF9zY3JvbGxiYXJNb3VzZVVwTGlzdGVuZXIpXG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgX3Njcm9sbGJhck1vdXNlVXBMaXN0ZW5lcilcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hjYW5jZWwnLCBfc2Nyb2xsYmFyTW91c2VVcExpc3RlbmVyKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIG92ZXJsYXkgY29uZmlnIGZyb20gYSBkaWFsb2cgY29uZmlnLlxuICAgKiBAcGFyYW0gY29uZmlnIFRoZSBkaWFsb2cgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMgVGhlIG92ZXJsYXkgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHByb3RlY3RlZCBfY3JlYXRlT3ZlcmxheShjb25maWc6IE1vZGFsQ29uZmlnKTogT3ZlcmxheVJlZiB7XG4gICAgbGV0IHBhbmVsQ2xhc3MgPSAoY29uZmlnLnBhbmVsQ2xhc3MgfHwgW10pXG4gICAgaWYgKHR5cGVvZiBwYW5lbENsYXNzID09PSAnc3RyaW5nJykge1xuICAgICAgcGFuZWxDbGFzcyA9IFsgcGFuZWxDbGFzcyBdXG4gICAgfVxuICAgIHBhbmVsQ2xhc3MgPSBbIC4uLnBhbmVsQ2xhc3MsICdtb2RhbCcsICAnZC1ibG9jaycsICdvdmVyZmxvdy1hdXRvJyBdXG5cbiAgICBjb25zdCBvdmVybGF5Q29uZmlnID0gbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCksXG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5fc2Nyb2xsU3RyYXRlZ3koKSxcbiAgICAgIHBhbmVsQ2xhc3M6IHBhbmVsQ2xhc3MsXG4gICAgICBoYXNCYWNrZHJvcDogY29uZmlnLmhhc0JhY2tkcm9wLFxuICAgICAgZGlyZWN0aW9uOiBjb25maWcuZGlyZWN0aW9uLFxuICAgICAgbWluV2lkdGg6IGNvbmZpZy5taW5XaWR0aCxcbiAgICAgIG1pbkhlaWdodDogY29uZmlnLm1pbkhlaWdodCxcbiAgICAgIG1heFdpZHRoOiBjb25maWcubWF4V2lkdGgsXG4gICAgICBtYXhIZWlnaHQ6IGNvbmZpZy5tYXhIZWlnaHRcbiAgICB9KVxuXG4gICAgaWYgKGNvbmZpZy5iYWNrZHJvcENsYXNzKSB7XG4gICAgICBvdmVybGF5Q29uZmlnLmJhY2tkcm9wQ2xhc3MgPSBjb25maWcuYmFja2Ryb3BDbGFzc1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKVxuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaGVzIGFuIE1hdERpYWxvZ0NvbnRhaW5lciB0byBhIGRpYWxvZydzIGFscmVhZHktY3JlYXRlZCBvdmVybGF5LlxuICAgKiBAcGFyYW0gb3ZlcmxheSBSZWZlcmVuY2UgdG8gdGhlIGRpYWxvZydzIHVuZGVybHlpbmcgb3ZlcmxheS5cbiAgICogQHBhcmFtIGNvbmZpZyBUaGUgZGlhbG9nIGNvbmZpZ3VyYXRpb24uXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSByZXNvbHZpbmcgdG8gYSBDb21wb25lbnRSZWYgZm9yIHRoZSBhdHRhY2hlZCBjb250YWluZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgX2F0dGFjaERpYWxvZ0NvbnRhaW5lcihvdmVybGF5OiBPdmVybGF5UmVmLCBjb25maWc6IE1vZGFsQ29uZmlnKTogTW9kYWxDb250YWluZXJDb21wb25lbnQge1xuICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbmZpZy5jb250YWluZXJDb21wb25lbnQgfHwgdGhpcy5pbmplY3Rvci5nZXQoTU9EQUxfQ09OVEFJTkVSKVxuICAgIGNvbnN0IHVzZXJJbmplY3RvciA9IGNvbmZpZyAmJiBjb25maWcudmlld0NvbnRhaW5lclJlZiAmJiBjb25maWcudmlld0NvbnRhaW5lclJlZi5pbmplY3RvclxuICAgIGNvbnN0IGluamVjdG9yID0gbmV3IFBvcnRhbEluamVjdG9yKHVzZXJJbmplY3RvciB8fCB0aGlzLmluamVjdG9yLCBuZXcgV2Vha01hcChbXG4gICAgICBbTW9kYWxDb25maWcsIGNvbmZpZ11cbiAgICBdKSlcbiAgICBjb25zdCBjb250YWluZXJQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKGNvbnRhaW5lciwgY29uZmlnLnZpZXdDb250YWluZXJSZWYsIGluamVjdG9yKVxuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IDxDb21wb25lbnRSZWY8TW9kYWxDb250YWluZXJDb21wb25lbnQ+Pm92ZXJsYXkuYXR0YWNoKGNvbnRhaW5lclBvcnRhbClcbiAgICBjb250YWluZXJSZWYuaW5zdGFuY2UuX2NvbmZpZyA9IGNvbmZpZ1xuXG4gICAgcmV0dXJuIGNvbnRhaW5lclJlZi5pbnN0YW5jZVxuICB9XG5cblxuICAvKipcbiAgICogQXR0YWNoZXMgdGhlIHVzZXItcHJvdmlkZWQgY29tcG9uZW50IHRvIHRoZSBhbHJlYWR5LWNyZWF0ZWQgTWF0RGlhbG9nQ29udGFpbmVyLlxuICAgKiBAcGFyYW0gY29tcG9uZW50T3JUZW1wbGF0ZVJlZiBUaGUgdHlwZSBvZiBjb21wb25lbnQgYmVpbmcgbG9hZGVkIGludG8gdGhlIGRpYWxvZyxcbiAgICogICAgIG9yIGEgVGVtcGxhdGVSZWYgdG8gaW5zdGFudGlhdGUgYXMgdGhlIGNvbnRlbnQuXG4gICAqIEBwYXJhbSBkaWFsb2dDb250YWluZXIgUmVmZXJlbmNlIHRvIHRoZSB3cmFwcGluZyBNYXREaWFsb2dDb250YWluZXIuXG4gICAqIEBwYXJhbSBvdmVybGF5UmVmIFJlZmVyZW5jZSB0byB0aGUgb3ZlcmxheSBpbiB3aGljaCB0aGUgZGlhbG9nIHJlc2lkZXMuXG4gICAqIEBwYXJhbSBjb25maWcgVGhlIGRpYWxvZyBjb25maWd1cmF0aW9uLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBNYXREaWFsb2dSZWYgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQgdG8gdGhlIHVzZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgX2F0dGFjaERpYWxvZ0NvbnRlbnRGb3JDb21wb25lbnQ8VD4oXG4gICAgICBjb21wb25lbnRPclRlbXBsYXRlUmVmOiBDb21wb25lbnRUeXBlPFQ+LFxuICAgICAgZGlhbG9nQ29udGFpbmVyOiBNb2RhbENvbnRhaW5lckNvbXBvbmVudCxcbiAgICAgIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsXG4gICAgICBjb25maWc6IE1vZGFsQ29uZmlnLFxuICAgICAgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPzogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIHwgbnVsbCB8IHVuZGVmaW5lZCk6IE1vZGFsUmVmPGFueT4ge1xuXG4gICAgLy8gQ3JlYXRlIGEgcmVmZXJlbmNlIHRvIHRoZSBkaWFsb2cgd2UncmUgY3JlYXRpbmcgaW4gb3JkZXIgdG8gZ2l2ZSB0aGUgdXNlciBhIGhhbmRsZVxuICAgIC8vIHRvIG1vZGlmeSBhbmQgY2xvc2UgaXQuXG4gICAgY29uc3QgZGlhbG9nUmVmID0gbmV3IHRoaXMuZGlhbG9nUmVmQ29uc3RydWN0b3Iob3ZlcmxheVJlZiwgZGlhbG9nQ29udGFpbmVyLCBjb25maWcuaWQpXG4gICAgY29uc3QgaW5qZWN0b3IgPSB0aGlzLl9jcmVhdGVJbmplY3RvcjxUPihjb25maWcsIGRpYWxvZ1JlZiwgZGlhbG9nQ29udGFpbmVyKVxuICAgIGNvbnN0IGNvbnRlbnRSZWYgPSBkaWFsb2dDb250YWluZXIuYXR0YWNoQ29tcG9uZW50UG9ydGFsKFxuICAgICAgICBuZXcgQ29tcG9uZW50UG9ydGFsKGNvbXBvbmVudE9yVGVtcGxhdGVSZWYsIHVuZGVmaW5lZCwgaW5qZWN0b3IsIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikpXG5cbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UgPSBjb250ZW50UmVmLmluc3RhbmNlXG4gICAgZGlhbG9nUmVmLmRpc2FibGVDbG9zZSA9IGNvbmZpZy5kaXNhYmxlQ2xvc2VcblxuICAgIGRpYWxvZ1JlZi51cGRhdGVTaXplKHt3aWR0aDogY29uZmlnLndpZHRoLCBoZWlnaHQ6IGNvbmZpZy5oZWlnaHR9KVxuICAgICAgICAgICAgIC51cGRhdGVQb3NpdGlvbihjb25maWcucG9zaXRpb24pXG5cbiAgICByZXR1cm4gZGlhbG9nUmVmXG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoZXMgdGhlIHVzZXItcHJvdmlkZWQgY29tcG9uZW50IHRvIHRoZSBhbHJlYWR5LWNyZWF0ZWQgTWF0RGlhbG9nQ29udGFpbmVyLlxuICAgKiBAcGFyYW0gY29tcG9uZW50T3JUZW1wbGF0ZVJlZiBUaGUgdHlwZSBvZiBjb21wb25lbnQgYmVpbmcgbG9hZGVkIGludG8gdGhlIGRpYWxvZyxcbiAgICogICAgIG9yIGEgVGVtcGxhdGVSZWYgdG8gaW5zdGFudGlhdGUgYXMgdGhlIGNvbnRlbnQuXG4gICAqIEBwYXJhbSBkaWFsb2dDb250YWluZXIgUmVmZXJlbmNlIHRvIHRoZSB3cmFwcGluZyBNYXREaWFsb2dDb250YWluZXIuXG4gICAqIEBwYXJhbSBvdmVybGF5UmVmIFJlZmVyZW5jZSB0byB0aGUgb3ZlcmxheSBpbiB3aGljaCB0aGUgZGlhbG9nIHJlc2lkZXMuXG4gICAqIEBwYXJhbSBjb25maWcgVGhlIGRpYWxvZyBjb25maWd1cmF0aW9uLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgcmVzb2x2aW5nIHRvIHRoZSBNYXREaWFsb2dSZWYgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQgdG8gdGhlIHVzZXIuXG4gICAqL1xuICBwcm90ZWN0ZWQgX2F0dGFjaERpYWxvZ0NvbnRlbnRGb3JUZW1wbGF0ZTxUPihcbiAgICAgIGNvbXBvbmVudE9yVGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPFQ+LFxuICAgICAgZGlhbG9nQ29udGFpbmVyOiBNb2RhbENvbnRhaW5lckNvbXBvbmVudCxcbiAgICAgIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsXG4gICAgICBjb25maWc6IE1vZGFsQ29uZmlnKTogTW9kYWxSZWY8YW55PiB7XG5cbiAgICAvLyBDcmVhdGUgYSByZWZlcmVuY2UgdG8gdGhlIGRpYWxvZyB3ZSdyZSBjcmVhdGluZyBpbiBvcmRlciB0byBnaXZlIHRoZSB1c2VyIGEgaGFuZGxlXG4gICAgLy8gdG8gbW9kaWZ5IGFuZCBjbG9zZSBpdC5cbiAgICBjb25zdCBkaWFsb2dSZWYgPSBuZXcgdGhpcy5kaWFsb2dSZWZDb25zdHJ1Y3RvcihvdmVybGF5UmVmLCBkaWFsb2dDb250YWluZXIsIGNvbmZpZy5pZClcblxuICAgIGRpYWxvZ0NvbnRhaW5lci5hdHRhY2hUZW1wbGF0ZVBvcnRhbChcbiAgICAgIG5ldyBUZW1wbGF0ZVBvcnRhbDxUPihjb21wb25lbnRPclRlbXBsYXRlUmVmLCA8YW55Pm51bGwsXG4gICAgICAgIDxhbnk+eyRpbXBsaWNpdDogY29uZmlnLmRhdGEsIGRpYWxvZ1JlZn0pKVxuICAgIGRpYWxvZ1JlZi51cGRhdGVTaXplKHt3aWR0aDogY29uZmlnLndpZHRoLCBoZWlnaHQ6IGNvbmZpZy5oZWlnaHR9KVxuICAgICAgICAgICAgIC51cGRhdGVQb3NpdGlvbihjb25maWcucG9zaXRpb24pXG5cbiAgICByZXR1cm4gZGlhbG9nUmVmXG4gIH1cblxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgY3VzdG9tIGluamVjdG9yIHRvIGJlIHVzZWQgaW5zaWRlIHRoZSBkaWFsb2cuIFRoaXMgYWxsb3dzIGEgY29tcG9uZW50IGxvYWRlZCBpbnNpZGVcbiAgICogb2YgYSBkaWFsb2cgdG8gY2xvc2UgaXRzZWxmIGFuZCwgb3B0aW9uYWxseSwgdG8gcmV0dXJuIGEgdmFsdWUuXG4gICAqIEBwYXJhbSBjb25maWcgQ29uZmlnIG9iamVjdCB0aGF0IGlzIHVzZWQgdG8gY29uc3RydWN0IHRoZSBkaWFsb2cuXG4gICAqIEBwYXJhbSBkaWFsb2dSZWYgUmVmZXJlbmNlIHRvIHRoZSBkaWFsb2cuXG4gICAqIEBwYXJhbSBjb250YWluZXIgRGlhbG9nIGNvbnRhaW5lciBlbGVtZW50IHRoYXQgd3JhcHMgYWxsIG9mIHRoZSBjb250ZW50cy5cbiAgICogQHJldHVybnMgVGhlIGN1c3RvbSBpbmplY3RvciB0aGF0IGNhbiBiZSB1c2VkIGluc2lkZSB0aGUgZGlhbG9nLlxuICAgKi9cbiAgcHJpdmF0ZSBfY3JlYXRlSW5qZWN0b3I8VD4oXG4gICAgICBjb25maWc6IE1vZGFsQ29uZmlnLFxuICAgICAgZGlhbG9nUmVmOiBNb2RhbFJlZjxUPixcbiAgICAgIGRpYWxvZ0NvbnRhaW5lcjogTW9kYWxDb250YWluZXJDb21wb25lbnQpOiBQb3J0YWxJbmplY3RvciB7XG5cbiAgICBjb25zdCB1c2VySW5qZWN0b3IgPSBjb25maWcgJiYgY29uZmlnLnZpZXdDb250YWluZXJSZWYgJiYgY29uZmlnLnZpZXdDb250YWluZXJSZWYuaW5qZWN0b3JcbiAgICBjb25zdCBpbmplY3Rpb25Ub2tlbnMgPSBuZXcgV2Vha01hcDxhbnksIGFueT4oW1xuICAgICAgW3RoaXMuaW5qZWN0b3IuZ2V0KE1PREFMX1JFRiksIGRpYWxvZ1JlZl0sXG4gICAgICBbdGhpcy5pbmplY3Rvci5nZXQoTU9EQUxfQ09OVEFJTkVSKSwgZGlhbG9nQ29udGFpbmVyXSxcbiAgICAgIFtNT0RBTF9EQVRBLCBjb25maWcuZGF0YV1cbiAgICBdKVxuXG4gICAgaWYgKGNvbmZpZy5kaXJlY3Rpb24gJiZcbiAgICAgICAgKCF1c2VySW5qZWN0b3IgfHwgIXVzZXJJbmplY3Rvci5nZXQ8RGlyZWN0aW9uYWxpdHkgfCBudWxsPihEaXJlY3Rpb25hbGl0eSwgbnVsbCkpKSB7XG4gICAgICBpbmplY3Rpb25Ub2tlbnMuc2V0KERpcmVjdGlvbmFsaXR5LCB7XG4gICAgICAgIHZhbHVlOiBjb25maWcuZGlyZWN0aW9uLFxuICAgICAgICBjaGFuZ2U6IG9ic2VydmFibGVPZigpXG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiBuZXcgUG9ydGFsSW5qZWN0b3IodXNlckluamVjdG9yIHx8IHRoaXMuaW5qZWN0b3IsIGluamVjdGlvblRva2VucylcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBhbmRzIHRoZSBwcm92aWRlZCBjb25maWd1cmF0aW9uIG9iamVjdCB0byBpbmNsdWRlIHRoZSBkZWZhdWx0IHZhbHVlcyBmb3IgcHJvcGVydGllcyB3aGljaFxuICAgKiBhcmUgdW5kZWZpbmVkLlxuICAgKi9cbiAgcHJpdmF0ZSBfYXBwbHlDb25maWdEZWZhdWx0cyhjb25maWc/OiBNb2RhbENvbmZpZyk6IE1vZGFsQ29uZmlnIHtcbiAgICBjb25zdCBkaWFsb2dDb25maWcgPSAoPHVua25vd24+dGhpcy5pbmplY3Rvci5nZXQoTU9EQUxfQ09ORklHKSkgYXMgdHlwZW9mIE1vZGFsQ29uZmlnXG4gICAgcmV0dXJuIHsuLi5uZXcgZGlhbG9nQ29uZmlnKCksIC4uLmNvbmZpZ31cbiAgfVxufVxuIl19
|
|
@@ -54,9 +54,9 @@ export class RouteModalComponent {
|
|
|
54
54
|
return this._route.outlet === 'modal';
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
RouteModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
58
|
-
RouteModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
57
|
+
RouteModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: RouteModalComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.Modal }], target: i0.ɵɵFactoryTarget.Component });
|
|
58
|
+
RouteModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: RouteModalComponent, selector: "seam-route-modal", ngImport: i0, template: "<!-- <seam-modal (overlayDetached)=\"_onDetached()\">\n <router-outlet></router-outlet>\n</seam-modal> -->\n", styles: [""] });
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: RouteModalComponent, decorators: [{
|
|
60
60
|
type: Component,
|
|
61
61
|
args: [{ selector: 'seam-route-modal', template: "<!-- <seam-modal (overlayDetached)=\"_onDetached()\">\n <router-outlet></router-outlet>\n</seam-modal> -->\n" }]
|
|
62
62
|
}], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.Modal }]; } });
|
|
@@ -8,6 +8,20 @@ import { popoverExpandIn, popoverExpandOut } from '../popover-animations';
|
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "@angular/common";
|
|
10
10
|
export class PopoverComponent {
|
|
11
|
+
// @HostBinding('attr.role') get _role() { return this._config.role }
|
|
12
|
+
get _role() { return 'dialog'; }
|
|
13
|
+
get _tabindex() { return -1; }
|
|
14
|
+
/**
|
|
15
|
+
* Defines a width for a popover that will scale down if the window innerWidth is
|
|
16
|
+
* smaller than the value.
|
|
17
|
+
*/
|
|
18
|
+
get baseWidth() { return this._baseWidth.value; }
|
|
19
|
+
set baseWidth(value) {
|
|
20
|
+
const _val = coerceNumberProperty(value, null);
|
|
21
|
+
if (_val !== this._baseWidth.value) {
|
|
22
|
+
this._baseWidth.next(_val);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
11
25
|
constructor(_changeDetectorRef) {
|
|
12
26
|
this._changeDetectorRef = _changeDetectorRef;
|
|
13
27
|
this._ngUnsubscribe = new Subject();
|
|
@@ -45,20 +59,6 @@ export class PopoverComponent {
|
|
|
45
59
|
}
|
|
46
60
|
});
|
|
47
61
|
}
|
|
48
|
-
// @HostBinding('attr.role') get _role() { return this._config.role }
|
|
49
|
-
get _role() { return 'dialog'; }
|
|
50
|
-
get _tabindex() { return -1; }
|
|
51
|
-
/**
|
|
52
|
-
* Defines a width for a popover that will scale down if the window innerWidth is
|
|
53
|
-
* smaller than the value.
|
|
54
|
-
*/
|
|
55
|
-
get baseWidth() { return this._baseWidth.value; }
|
|
56
|
-
set baseWidth(value) {
|
|
57
|
-
const _val = coerceNumberProperty(value, null);
|
|
58
|
-
if (_val !== this._baseWidth.value) {
|
|
59
|
-
this._baseWidth.next(_val);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
62
|
ngOnInit() {
|
|
63
63
|
// this._popoverWidth$ =
|
|
64
64
|
this._baseWidth.pipe(switchMap(baseWidth => {
|
|
@@ -110,14 +110,14 @@ export class PopoverComponent {
|
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
|
-
PopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
114
|
-
PopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
113
|
+
PopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: PopoverComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
114
|
+
PopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: PopoverComponent, selector: "seam-popover", inputs: { template: "template", popoverClass: "popoverClass", baseWidth: "baseWidth" }, host: { listeners: { "@slideDown.start": "_onAnimationStart($event)", "@slideDown.done": "_animationDone.next($event)", "keydown": "_handleKeydown($event)" }, properties: { "@slideDown": "{\n value: _state,\n params: {\n enterAnimationDuration: enterAnimationDuration,\n exitAnimationDuration: exitAnimationDuration\n }\n }", "style.width": "_popoverWidth", "attr.role": "this._role", "attr.tabindex": "this._tabindex" }, classAttribute: "popover show m-2 position-static" }, ngImport: i0, template: "<div class=\"popover-body\">\n <ng-container *ngIf=\"template; else noTemplate\">\n <ng-template [ngTemplateOutlet]=\"template\"></ng-template>\n </ng-container>\n\n <ng-template #noTemplate>\n Example\n <!-- <ng-content></ng-content> -->\n </ng-template>\n</div>\n", styles: [":host{display:block;max-width:800px;min-width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
|
|
115
115
|
trigger('slideDown', [
|
|
116
116
|
transition(':enter', useAnimation(popoverExpandIn)),
|
|
117
117
|
transition(':leave', useAnimation(popoverExpandOut)),
|
|
118
118
|
])
|
|
119
119
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
120
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
120
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: PopoverComponent, decorators: [{
|
|
121
121
|
type: Component,
|
|
122
122
|
args: [{ selector: 'seam-popover', animations: [
|
|
123
123
|
trigger('slideDown', [
|
|
@@ -153,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImpor
|
|
|
153
153
|
type: HostListener,
|
|
154
154
|
args: ['keydown', ['$event']]
|
|
155
155
|
}] } });
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vcG9wb3Zlci9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL3BvcG92ZXIvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBa0IsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN2RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzlELE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUlOLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQW1DLE1BQU0sdUJBQXVCLENBQUE7OztBQTJCMUcsTUFBTSxPQUFPLGdCQUFnQjtJQXVEM0IsWUFDVSxrQkFBcUM7UUFBckMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQXREOUIsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFBO1FBRXJELGlGQUFpRjtRQUNqRiwyQkFBc0IsR0FBWSxPQUFPLENBQUE7UUFFekMsK0VBQStFO1FBQy9FLDBCQUFxQixHQUFZLE9BQU8sQ0FBQTtRQUV4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QUUsQ0FBRSxRQUFRLENBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmltYXRpb25FdmVudCwgdHJhbnNpdGlvbiwgdHJpZ2dlciwgdXNlQW5pbWF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucydcbmltcG9ydCB7IGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJ1xuaW1wb3J0IHsgRVNDQVBFLCBoYXNNb2RpZmllcktleSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2RlcydcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZyb21FdmVudCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBwb3BvdmVyRXhwYW5kSW4sIHBvcG92ZXJFeHBhbmRPdXQsIHBvcG92ZXJTbGlkZUluLCBwb3BvdmVyU2xpZGVPdXQgfSBmcm9tICcuLi9wb3BvdmVyLWFuaW1hdGlvbnMnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NlYW0tcG9wb3ZlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcG9wb3Zlci5jb21wb25lbnQuc2NzcyddLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcignc2xpZGVEb3duJywgW1xuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgdXNlQW5pbWF0aW9uKHBvcG92ZXJFeHBhbmRJbikpLFxuICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgdXNlQW5pbWF0aW9uKHBvcG92ZXJFeHBhbmRPdXQpKSxcbiAgICBdKVxuICBdLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdwb3BvdmVyIHNob3cgbS0yIHBvc2l0aW9uLXN0YXRpYycsXG4gICAgJ1tAc2xpZGVEb3duXSc6IGB7XG4gICAgICB2YWx1ZTogX3N0YXRlLFxuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIGVudGVyQW5pbWF0aW9uRHVyYXRpb246IGVudGVyQW5pbWF0aW9uRHVyYXRpb24sXG4gICAgICAgIGV4aXRBbmltYXRpb25EdXJhdGlvbjogZXhpdEFuaW1hdGlvbkR1cmF0aW9uXG4gICAgICB9XG4gICAgfWAsXG4gICAgJyhAc2xpZGVEb3duLnN0YXJ0KSc6ICdfb25BbmltYXRpb25TdGFydCgkZXZlbnQpJyxcbiAgICAnKEBzbGlkZURvd24uZG9uZSknOiAnX2FuaW1hdGlvbkRvbmUubmV4dCgkZXZlbnQpJyxcbiAgICAnW3N0eWxlLndpZHRoXSc6ICdfcG9wb3ZlcldpZHRoJ1xuICB9LFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBQb3BvdmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpXG5cbiAgLyoqIER1cmF0aW9uIG9mIHRoZSBlbnRlciBhbmltYXRpb24uIEhhcyB0byBiZSBhIHZhbGlkIENTUyB2YWx1ZSAoZS5nLiAxMDBtcykuICovXG4gIGVudGVyQW5pbWF0aW9uRHVyYXRpb24/OiBzdHJpbmcgPSAnMjI1bXMnXG5cbiAgLyoqIER1cmF0aW9uIG9mIHRoZSBleGl0IGFuaW1hdGlvbi4gSGFzIHRvIGJlIGEgdmFsaWQgQ1NTIHZhbHVlIChlLmcuIDUwbXMpLiAqL1xuICBleGl0QW5pbWF0aW9uRHVyYXRpb24/OiBzdHJpbmcgPSAnMjI1bXMnXG5cbiAgLyoqIFN0YXRlIG9mIHRoZSBkaWFsb2cgYW5pbWF0aW9uLiAqL1xuICBfc3RhdGU6ICd2b2lkJyB8ICdlbnRlcicgfCAnZXhpdCcgPSAnZW50ZXInXG5cbiAgLyoqIEEgc3ViamVjdCBlbWl0dGluZyBiZWZvcmUgdGhlIGRpYWxvZyBlbnRlcnMgdGhlIHZpZXcuICovXG4gIF9iZWZvcmVFbnRlcjogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KClcblxuICAvKiogQSBzdWJqZWN0IGVtaXR0aW5nIGFmdGVyIHRoZSBkaWFsb2cgZW50ZXJzIHRoZSB2aWV3LiAqL1xuICBfYWZ0ZXJFbnRlcjogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KClcblxuICAvKiogQSBzdWJqZWN0IGVtaXR0aW5nIGJlZm9yZSB0aGUgZGlhbG9nIGV4aXRzIHRoZSB2aWV3LiAqL1xuICBfYmVmb3JlRXhpdDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KClcblxuICAvKiogQSBzdWJqZWN0IGVtaXR0aW5nIGFmdGVyIHRoZSBkaWFsb2cgZXhpdHMgdGhlIHZpZXcuICovXG4gIF9hZnRlckV4aXQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpXG5cbiAgLyoqIFN0cmVhbSBvZiBhbmltYXRpb24gYGRvbmVgIGV2ZW50cy4gKi9cbiAgX2FuaW1hdGlvbkRvbmUgPSBuZXcgU3ViamVjdDxBbmltYXRpb25FdmVudD4oKVxuXG4gIC8vIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJykgZ2V0IF9yb2xlKCkgeyByZXR1cm4gdGhpcy5fY29uZmlnLnJvbGUgfVxuICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpIGdldCBfcm9sZSgpIHsgcmV0dXJuICdkaWFsb2cnIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKSBnZXQgX3RhYmluZGV4KCkgeyByZXR1cm4gLTEgfVxuXG4gIEBJbnB1dCgpIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIC8vIEBPdXRwdXQoKSByZWFkb25seSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQgfCAnY2xpY2snIHwgJ2tleWRvd24nPigpXG5cbiAgQElucHV0KCkgcG9wb3ZlckNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSB3aWR0aCBmb3IgYSBwb3BvdmVyIHRoYXQgd2lsbCBzY2FsZSBkb3duIGlmIHRoZSB3aW5kb3cgaW5uZXJXaWR0aCBpc1xuICAgKiBzbWFsbGVyIHRoYW4gdGhlIHZhbHVlLlxuICAgKi9cbiAgQElucHV0KClcbiAgZ2V0IGJhc2VXaWR0aCgpIHsgcmV0dXJuIHRoaXMuX2Jhc2VXaWR0aC52YWx1ZSB9XG4gIHNldCBiYXNlV2lkdGgodmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICBjb25zdCBfdmFsID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUsIG51bGwpXG4gICAgaWYgKF92YWwgIT09IHRoaXMuX2Jhc2VXaWR0aC52YWx1ZSkge1xuICAgICAgdGhpcy5fYmFzZVdpZHRoLm5leHQoX3ZhbClcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfYmFzZVdpZHRoID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXIgfCBudWxsPig2MDApXG4gIC8vIF9wb3BvdmVyV2lkdGgkOiBPYnNlcnZhYmxlPHN0cmluZyB8IHVuZGVmaW5lZD5cbiAgX3BvcG92ZXJXaWR0aDogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIC8vIFRPRE86IEltcGxlbWVudCBQb3BvdmVyQ29uZmlnXG4gICkge1xuICAgIC8vIFdlIHVzZSBhIFN1YmplY3Qgd2l0aCBhIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCByYXRoZXIgdGhhbiBhIGNhbGxiYWNrIGF0dGFjaGVkIHRvIC5kb25lLFxuICAgIC8vIGJlY2F1c2Ugc29tZSBicm93c2VycyBmaXJlIHRoZSBkb25lIGV2ZW50IHR3aWNlIGFuZCB3ZSBkb24ndCB3YW50IHRvIGVtaXQgZHVwbGljYXRlIGV2ZW50cy5cbiAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzI0MDg0XG4gICAgdGhpcy5fYW5pbWF0aW9uRG9uZS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCh4LCB5KSA9PiB7XG4gICAgICByZXR1cm4geC5mcm9tU3RhdGUgPT09IHkuZnJvbVN0YXRlICYmIHgudG9TdGF0ZSA9PT0geS50b1N0YXRlXG4gICAgfSkpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAvLyBFbWl0IGxpZmVjeWNsZSBldmVudHMgYmFzZWQgb24gYW5pbWF0aW9uIGBkb25lYCBjYWxsYmFjay5cbiAgICAgIGlmIChldmVudC50b1N0YXRlID09PSAnZW50ZXInKSB7XG4gICAgICAgIHRoaXMuX2FmdGVyRW50ZXIubmV4dCgpXG4gICAgICAgIHRoaXMuX2FmdGVyRW50ZXIuY29tcGxldGUoKVxuICAgICAgfVxuXG4gICAgICBpZiAoZXZlbnQuZnJvbVN0YXRlID09PSAnZW50ZXInICYmIChldmVudC50b1N0YXRlID09PSAndm9pZCcgfHwgZXZlbnQudG9TdGF0ZSA9PT0gJ2V4aXQnKSkge1xuICAgICAgICB0aGlzLl9hZnRlckV4aXQubmV4dCgpXG4gICAgICAgIHRoaXMuX2FmdGVyRXhpdC5jb21wbGV0ZSgpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIHRoaXMuX3BvcG92ZXJXaWR0aCQgPVxuICAgIHRoaXMuX2Jhc2VXaWR0aC5waXBlKFxuICAgICAgc3dpdGNoTWFwKGJhc2VXaWR0aCA9PiB7XG4gICAgICAgIGlmIChiYXNlV2lkdGgpIHtcbiAgICAgICAgICByZXR1cm4gZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgodW5kZWZpbmVkKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiB3aW5kb3cuaW5uZXJXaWR0aCA8IGJhc2VXaWR0aCA/IGAke3dpbmRvdy5pbm5lcldpZHRofXB4YCA6IGAke2Jhc2VXaWR0aH1weGApXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gICAgICB9KSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKVxuICAgICkuc3Vic2NyaWJlKHcgPT4ge1xuICAgICAgdGhpcy5fcG9wb3ZlcldpZHRoID0gd1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKClcbiAgICB9KVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgLy8gdGhpcy5jbG9zZWQuY29tcGxldGUoKVxuICAgIHRoaXMuX2FuaW1hdGlvbkRvbmUuY29tcGxldGUoKVxuXG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5uZXh0KHVuZGVmaW5lZClcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKClcbiAgfVxuXG4gIC8qKiBTdGFydHMgdGhlIGRpYWxvZyBleGl0IGFuaW1hdGlvbi4gKi9cbiAgX3N0YXJ0RXhpdGluZygpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZSA9ICdleGl0J1xuXG4gICAgLy8gTWFyayB0aGUgY29udGFpbmVyIGZvciBjaGVjayBzbyBpdCBjYW4gcmVhY3QgaWYgdGhlXG4gICAgLy8gdmlldyBjb250YWluZXIgaXMgdXNpbmcgT25QdXNoIGNoYW5nZSBkZXRlY3Rpb24uXG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKClcbiAgfVxuXG4gIC8qKiBFbWl0IGxpZmVjeWNsZSBldmVudHMgYmFzZWQgb24gYW5pbWF0aW9uIGBzdGFydGAgY2FsbGJhY2suICovXG4gIF9vbkFuaW1hdGlvblN0YXJ0KGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xuICAgIGlmIChldmVudC50b1N0YXRlID09PSAnZW50ZXInKSB7XG4gICAgICB0aGlzLl9iZWZvcmVFbnRlci5uZXh0KClcbiAgICAgIHRoaXMuX2JlZm9yZUVudGVyLmNvbXBsZXRlKClcbiAgICB9XG4gICAgaWYgKGV2ZW50LmZyb21TdGF0ZSA9PT0gJ2VudGVyJyAmJiAoZXZlbnQudG9TdGF0ZSA9PT0gJ3ZvaWQnIHx8IGV2ZW50LnRvU3RhdGUgPT09ICdleGl0JykpIHtcbiAgICAgIHRoaXMuX2JlZm9yZUV4aXQubmV4dCgpXG4gICAgICB0aGlzLl9iZWZvcmVFeGl0LmNvbXBsZXRlKClcbiAgICB9XG4gIH1cblxuICAvKiogSGFuZGxlIGEga2V5Ym9hcmQgZXZlbnQgZnJvbSB0aGUgbWVudSwgZGVsZWdhdGluZyB0byB0aGUgYXBwcm9wcmlhdGUgYWN0aW9uLiAqL1xuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyAnJGV2ZW50JyBdKVxuICBfaGFuZGxlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkZXByZWNhdGlvblxuICAgIGNvbnN0IGtleUNvZGUgPSBldmVudC5rZXlDb2RlXG5cbiAgICBzd2l0Y2ggKGtleUNvZGUpIHtcbiAgICAgIGNhc2UgRVNDQVBFOlxuICAgICAgICBpZiAoIWhhc01vZGlmaWVyS2V5KGV2ZW50KSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAvLyB0aGlzLmNsb3NlZC5lbWl0KCdrZXlkb3duJylcbiAgICAgICAgICB0aGlzLl9zdGFydEV4aXRpbmcoKVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJwb3BvdmVyLWJvZHlcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlOyBlbHNlIG5vVGVtcGxhdGVcIj5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctdGVtcGxhdGUgI25vVGVtcGxhdGU+XG4gICAgRXhhbXBsZVxuICAgIDwhLS0gPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiAtLT5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vcG9wb3Zlci9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL3BvcG92ZXIvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBa0IsVUFBVSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN2RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzlELE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUlOLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQW1DLE1BQU0sdUJBQXVCLENBQUE7OztBQTJCMUcsTUFBTSxPQUFPLGdCQUFnQjtJQTRCM0IscUVBQXFFO0lBQ3JFLElBQThCLEtBQUssS0FBSyxPQUFPLFFBQVEsQ0FBQSxDQUFDLENBQUM7SUFFekQsSUFBa0MsU0FBUyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBUTNEOzs7T0FHRztJQUNILElBQ0ksU0FBUyxLQUFLLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFL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LENBQUUsUUFBUSxDQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5pbWF0aW9uRXZlbnQsIHRyYW5zaXRpb24sIHRyaWdnZXIsIHVzZUFuaW1hdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbidcbmltcG9ydCB7IEVTQ0FQRSwgaGFzTW9kaWZpZXJLZXkgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tRXZlbnQsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgcG9wb3ZlckV4cGFuZEluLCBwb3BvdmVyRXhwYW5kT3V0LCBwb3BvdmVyU2xpZGVJbiwgcG9wb3ZlclNsaWRlT3V0IH0gZnJvbSAnLi4vcG9wb3Zlci1hbmltYXRpb25zJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLXBvcG92ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BvcG92ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ3NsaWRlRG93bicsIFtcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIHVzZUFuaW1hdGlvbihwb3BvdmVyRXhwYW5kSW4pKSxcbiAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIHVzZUFuaW1hdGlvbihwb3BvdmVyRXhwYW5kT3V0KSksXG4gICAgXSlcbiAgXSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAncG9wb3ZlciBzaG93IG0tMiBwb3NpdGlvbi1zdGF0aWMnLFxuICAgICdbQHNsaWRlRG93bl0nOiBge1xuICAgICAgdmFsdWU6IF9zdGF0ZSxcbiAgICAgIHBhcmFtczoge1xuICAgICAgICBlbnRlckFuaW1hdGlvbkR1cmF0aW9uOiBlbnRlckFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgICBleGl0QW5pbWF0aW9uRHVyYXRpb246IGV4aXRBbmltYXRpb25EdXJhdGlvblxuICAgICAgfVxuICAgIH1gLFxuICAgICcoQHNsaWRlRG93bi5zdGFydCknOiAnX29uQW5pbWF0aW9uU3RhcnQoJGV2ZW50KScsXG4gICAgJyhAc2xpZGVEb3duLmRvbmUpJzogJ19hbmltYXRpb25Eb25lLm5leHQoJGV2ZW50KScsXG4gICAgJ1tzdHlsZS53aWR0aF0nOiAnX3BvcG92ZXJXaWR0aCdcbiAgfSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUG9wb3ZlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9uZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxuXG4gIC8qKiBEdXJhdGlvbiBvZiB0aGUgZW50ZXIgYW5pbWF0aW9uLiBIYXMgdG8gYmUgYSB2YWxpZCBDU1MgdmFsdWUgKGUuZy4gMTAwbXMpLiAqL1xuICBlbnRlckFuaW1hdGlvbkR1cmF0aW9uPzogc3RyaW5nID0gJzIyNW1zJ1xuXG4gIC8qKiBEdXJhdGlvbiBvZiB0aGUgZXhpdCBhbmltYXRpb24uIEhhcyB0byBiZSBhIHZhbGlkIENTUyB2YWx1ZSAoZS5nLiA1MG1zKS4gKi9cbiAgZXhpdEFuaW1hdGlvbkR1cmF0aW9uPzogc3RyaW5nID0gJzIyNW1zJ1xuXG4gIC8qKiBTdGF0ZSBvZiB0aGUgZGlhbG9nIGFuaW1hdGlvbi4gKi9cbiAgX3N0YXRlOiAndm9pZCcgfCAnZW50ZXInIHwgJ2V4aXQnID0gJ2VudGVyJ1xuXG4gIC8qKiBBIHN1YmplY3QgZW1pdHRpbmcgYmVmb3JlIHRoZSBkaWFsb2cgZW50ZXJzIHRoZSB2aWV3LiAqL1xuICBfYmVmb3JlRW50ZXI6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpXG5cbiAgLyoqIEEgc3ViamVjdCBlbWl0dGluZyBhZnRlciB0aGUgZGlhbG9nIGVudGVycyB0aGUgdmlldy4gKi9cbiAgX2FmdGVyRW50ZXI6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpXG5cbiAgLyoqIEEgc3ViamVjdCBlbWl0dGluZyBiZWZvcmUgdGhlIGRpYWxvZyBleGl0cyB0aGUgdmlldy4gKi9cbiAgX2JlZm9yZUV4aXQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpXG5cbiAgLyoqIEEgc3ViamVjdCBlbWl0dGluZyBhZnRlciB0aGUgZGlhbG9nIGV4aXRzIHRoZSB2aWV3LiAqL1xuICBfYWZ0ZXJFeGl0OiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKVxuXG4gIC8qKiBTdHJlYW0gb2YgYW5pbWF0aW9uIGBkb25lYCBldmVudHMuICovXG4gIF9hbmltYXRpb25Eb25lID0gbmV3IFN1YmplY3Q8QW5pbWF0aW9uRXZlbnQ+KClcblxuICAvLyBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpIGdldCBfcm9sZSgpIHsgcmV0dXJuIHRoaXMuX2NvbmZpZy5yb2xlIH1cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSBnZXQgX3JvbGUoKSB7IHJldHVybiAnZGlhbG9nJyB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JykgZ2V0IF90YWJpbmRleCgpIHsgcmV0dXJuIC0xIH1cblxuICBASW5wdXQoKSB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZCB8IG51bGxcblxuICAvLyBAT3V0cHV0KCkgcmVhZG9ubHkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkIHwgJ2NsaWNrJyB8ICdrZXlkb3duJz4oKVxuXG4gIEBJbnB1dCgpIHBvcG92ZXJDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbFxuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGEgd2lkdGggZm9yIGEgcG9wb3ZlciB0aGF0IHdpbGwgc2NhbGUgZG93biBpZiB0aGUgd2luZG93IGlubmVyV2lkdGggaXNcbiAgICogc21hbGxlciB0aGFuIHRoZSB2YWx1ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGdldCBiYXNlV2lkdGgoKSB7IHJldHVybiB0aGlzLl9iYXNlV2lkdGgudmFsdWUgfVxuICBzZXQgYmFzZVdpZHRoKHZhbHVlOiBudW1iZXIgfCBudWxsKSB7XG4gICAgY29uc3QgX3ZhbCA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlLCBudWxsKVxuICAgIGlmIChfdmFsICE9PSB0aGlzLl9iYXNlV2lkdGgudmFsdWUpIHtcbiAgICAgIHRoaXMuX2Jhc2VXaWR0aC5uZXh0KF92YWwpXG4gICAgfVxuICB9XG4gIHByaXZhdGUgX2Jhc2VXaWR0aCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyIHwgbnVsbD4oNjAwKVxuICAvLyBfcG9wb3ZlcldpZHRoJDogT2JzZXJ2YWJsZTxzdHJpbmcgfCB1bmRlZmluZWQ+XG4gIF9wb3BvdmVyV2lkdGg6IHN0cmluZyB8IHVuZGVmaW5lZFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgUG9wb3ZlckNvbmZpZ1xuICApIHtcbiAgICAvLyBXZSB1c2UgYSBTdWJqZWN0IHdpdGggYSBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgcmF0aGVyIHRoYW4gYSBjYWxsYmFjayBhdHRhY2hlZCB0byAuZG9uZSxcbiAgICAvLyBiZWNhdXNlIHNvbWUgYnJvd3NlcnMgZmlyZSB0aGUgZG9uZSBldmVudCB0d2ljZSBhbmQgd2UgZG9uJ3Qgd2FudCB0byBlbWl0IGR1cGxpY2F0ZSBldmVudHMuXG4gICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8yNDA4NFxuICAgIHRoaXMuX2FuaW1hdGlvbkRvbmUucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgoeCwgeSkgPT4ge1xuICAgICAgcmV0dXJuIHguZnJvbVN0YXRlID09PSB5LmZyb21TdGF0ZSAmJiB4LnRvU3RhdGUgPT09IHkudG9TdGF0ZVxuICAgIH0pKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgLy8gRW1pdCBsaWZlY3ljbGUgZXZlbnRzIGJhc2VkIG9uIGFuaW1hdGlvbiBgZG9uZWAgY2FsbGJhY2suXG4gICAgICBpZiAoZXZlbnQudG9TdGF0ZSA9PT0gJ2VudGVyJykge1xuICAgICAgICB0aGlzLl9hZnRlckVudGVyLm5leHQoKVxuICAgICAgICB0aGlzLl9hZnRlckVudGVyLmNvbXBsZXRlKClcbiAgICAgIH1cblxuICAgICAgaWYgKGV2ZW50LmZyb21TdGF0ZSA9PT0gJ2VudGVyJyAmJiAoZXZlbnQudG9TdGF0ZSA9PT0gJ3ZvaWQnIHx8IGV2ZW50LnRvU3RhdGUgPT09ICdleGl0JykpIHtcbiAgICAgICAgdGhpcy5fYWZ0ZXJFeGl0Lm5leHQoKVxuICAgICAgICB0aGlzLl9hZnRlckV4aXQuY29tcGxldGUoKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICAvLyB0aGlzLl9wb3BvdmVyV2lkdGgkID1cbiAgICB0aGlzLl9iYXNlV2lkdGgucGlwZShcbiAgICAgIHN3aXRjaE1hcChiYXNlV2lkdGggPT4ge1xuICAgICAgICBpZiAoYmFzZVdpZHRoKSB7XG4gICAgICAgICAgcmV0dXJuIGZyb21FdmVudCh3aW5kb3csICdyZXNpemUnKS5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKHVuZGVmaW5lZCksXG4gICAgICAgICAgICBtYXAoKCkgPT4gd2luZG93LmlubmVyV2lkdGggPCBiYXNlV2lkdGggPyBgJHt3aW5kb3cuaW5uZXJXaWR0aH1weGAgOiBgJHtiYXNlV2lkdGh9cHhgKVxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxuICAgICAgfSksXG4gICAgICB0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSlcbiAgICApLnN1YnNjcmliZSh3ID0+IHtcbiAgICAgIHRoaXMuX3BvcG92ZXJXaWR0aCA9IHdcbiAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpXG4gICAgfSlcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIHRoaXMuY2xvc2VkLmNvbXBsZXRlKClcbiAgICB0aGlzLl9hbmltYXRpb25Eb25lLmNvbXBsZXRlKClcblxuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUubmV4dCh1bmRlZmluZWQpXG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpXG4gIH1cblxuICAvKiogU3RhcnRzIHRoZSBkaWFsb2cgZXhpdCBhbmltYXRpb24uICovXG4gIF9zdGFydEV4aXRpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUgPSAnZXhpdCdcblxuICAgIC8vIE1hcmsgdGhlIGNvbnRhaW5lciBmb3IgY2hlY2sgc28gaXQgY2FuIHJlYWN0IGlmIHRoZVxuICAgIC8vIHZpZXcgY29udGFpbmVyIGlzIHVzaW5nIE9uUHVzaCBjaGFuZ2UgZGV0ZWN0aW9uLlxuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpXG4gIH1cblxuICAvKiogRW1pdCBsaWZlY3ljbGUgZXZlbnRzIGJhc2VkIG9uIGFuaW1hdGlvbiBgc3RhcnRgIGNhbGxiYWNrLiAqL1xuICBfb25BbmltYXRpb25TdGFydChldmVudDogQW5pbWF0aW9uRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQudG9TdGF0ZSA9PT0gJ2VudGVyJykge1xuICAgICAgdGhpcy5fYmVmb3JlRW50ZXIubmV4dCgpXG4gICAgICB0aGlzLl9iZWZvcmVFbnRlci5jb21wbGV0ZSgpXG4gICAgfVxuICAgIGlmIChldmVudC5mcm9tU3RhdGUgPT09ICdlbnRlcicgJiYgKGV2ZW50LnRvU3RhdGUgPT09ICd2b2lkJyB8fCBldmVudC50b1N0YXRlID09PSAnZXhpdCcpKSB7XG4gICAgICB0aGlzLl9iZWZvcmVFeGl0Lm5leHQoKVxuICAgICAgdGhpcy5fYmVmb3JlRXhpdC5jb21wbGV0ZSgpXG4gICAgfVxuICB9XG5cbiAgLyoqIEhhbmRsZSBhIGtleWJvYXJkIGV2ZW50IGZyb20gdGhlIG1lbnUsIGRlbGVnYXRpbmcgdG8gdGhlIGFwcHJvcHJpYXRlIGFjdGlvbi4gKi9cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsgJyRldmVudCcgXSlcbiAgX2hhbmRsZUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6ZGVwcmVjYXRpb25cbiAgICBjb25zdCBrZXlDb2RlID0gZXZlbnQua2V5Q29kZVxuXG4gICAgc3dpdGNoIChrZXlDb2RlKSB7XG4gICAgICBjYXNlIEVTQ0FQRTpcbiAgICAgICAgaWYgKCFoYXNNb2RpZmllcktleShldmVudCkpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgLy8gdGhpcy5jbG9zZWQuZW1pdCgna2V5ZG93bicpXG4gICAgICAgICAgdGhpcy5fc3RhcnRFeGl0aW5nKClcbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwicG9wb3Zlci1ib2R5XCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZTsgZWxzZSBub1RlbXBsYXRlXCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLXRlbXBsYXRlICNub1RlbXBsYXRlPlxuICAgIEV4YW1wbGVcbiAgICA8IS0tIDxuZy1jb250ZW50PjwvbmctY29udGVudD4gLS0+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -13,6 +13,34 @@ import * as i2 from "@angular/cdk/a11y";
|
|
|
13
13
|
/** Options for binding a passive event listener. */
|
|
14
14
|
const passiveEventListenerOptions = normalizePassiveListenerOptions({ passive: true });
|
|
15
15
|
export class TheSeamPopoverDirective {
|
|
16
|
+
/**
|
|
17
|
+
* Defines a width for a popover that will scale down if the window innerWidth is
|
|
18
|
+
* smaller than the value.
|
|
19
|
+
*/
|
|
20
|
+
get seamPopoverBaseWidth() { return this._seamPopoverBaseWidth.value; }
|
|
21
|
+
set seamPopoverBaseWidth(value) {
|
|
22
|
+
const _val = coerceNumberProperty(value, null);
|
|
23
|
+
if (_val !== this._seamPopoverBaseWidth.value) {
|
|
24
|
+
this._seamPopoverBaseWidth.next(_val);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
get seamPopoverDisabled() { return this._seamPopoverDisabled.value; }
|
|
28
|
+
set seamPopoverDisabled(val) { this._seamPopoverDisabled.next(coerceBooleanProperty(val)); }
|
|
29
|
+
_onMouseDown(event) {
|
|
30
|
+
if (!isFakeMousedownFromScreenReader(event)) {
|
|
31
|
+
// Since right or middle button clicks won't trigger the `click` event,
|
|
32
|
+
// we shouldn't consider the menu as opened by mouse in those cases.
|
|
33
|
+
this._openedBy = event.button === 0 ? 'mouse' : null;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
_onClick(event) {
|
|
37
|
+
this.toggle();
|
|
38
|
+
}
|
|
39
|
+
_onDocumentKeydown(event) {
|
|
40
|
+
if (event.keyCode === ESCAPE) {
|
|
41
|
+
this.closePopover();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
16
44
|
constructor(_elementRef, _viewContainerRef, _overlay, _focusMonitor) {
|
|
17
45
|
this._elementRef = _elementRef;
|
|
18
46
|
this._viewContainerRef = _viewContainerRef;
|
|
@@ -58,34 +86,6 @@ export class TheSeamPopoverDirective {
|
|
|
58
86
|
}
|
|
59
87
|
});
|
|
60
88
|
}
|
|
61
|
-
/**
|
|
62
|
-
* Defines a width for a popover that will scale down if the window innerWidth is
|
|
63
|
-
* smaller than the value.
|
|
64
|
-
*/
|
|
65
|
-
get seamPopoverBaseWidth() { return this._seamPopoverBaseWidth.value; }
|
|
66
|
-
set seamPopoverBaseWidth(value) {
|
|
67
|
-
const _val = coerceNumberProperty(value, null);
|
|
68
|
-
if (_val !== this._seamPopoverBaseWidth.value) {
|
|
69
|
-
this._seamPopoverBaseWidth.next(_val);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
get seamPopoverDisabled() { return this._seamPopoverDisabled.value; }
|
|
73
|
-
set seamPopoverDisabled(val) { this._seamPopoverDisabled.next(coerceBooleanProperty(val)); }
|
|
74
|
-
_onMouseDown(event) {
|
|
75
|
-
if (!isFakeMousedownFromScreenReader(event)) {
|
|
76
|
-
// Since right or middle button clicks won't trigger the `click` event,
|
|
77
|
-
// we shouldn't consider the menu as opened by mouse in those cases.
|
|
78
|
-
this._openedBy = event.button === 0 ? 'mouse' : null;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
_onClick(event) {
|
|
82
|
-
this.toggle();
|
|
83
|
-
}
|
|
84
|
-
_onDocumentKeydown(event) {
|
|
85
|
-
if (event.keyCode === ESCAPE) {
|
|
86
|
-
this.closePopover();
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
89
|
ngOnDestroy() {
|
|
90
90
|
this.closePopover();
|
|
91
91
|
this._elementRef.nativeElement.removeEventListener('touchstart', this._handleTouchStart, passiveEventListenerOptions);
|
|
@@ -228,9 +228,9 @@ export class TheSeamPopoverDirective {
|
|
|
228
228
|
return merge(backdrop, hover, detachments);
|
|
229
229
|
}
|
|
230
230
|
}
|
|
231
|
-
TheSeamPopoverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
232
|
-
TheSeamPopoverDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.
|
|
233
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
231
|
+
TheSeamPopoverDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamPopoverDirective, deps: [{ token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i1.Overlay }, { token: i2.FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive });
|
|
232
|
+
TheSeamPopoverDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.6", type: TheSeamPopoverDirective, selector: "[seamPopover]", inputs: { seamPopover: "seamPopover", seamPopoverBaseWidth: "seamPopoverBaseWidth", seamPopoverDisabled: "seamPopoverDisabled" }, host: { attributes: { "aria-haspopup": "true" }, listeners: { "mousedown": "_onMouseDown($event)", "click": "_onClick($event)", "document:keydown": "_onDocumentKeydown($event)" }, properties: { "attr.aria-expanded": "popoverOpen() || null" } }, exportAs: ["seamPopover"], ngImport: i0 });
|
|
233
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamPopoverDirective, decorators: [{
|
|
234
234
|
type: Directive,
|
|
235
235
|
args: [{
|
|
236
236
|
selector: '[seamPopover]',
|
|
@@ -257,4 +257,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImpor
|
|
|
257
257
|
type: HostListener,
|
|
258
258
|
args: ['document:keydown', ['$event']]
|
|
259
259
|
}] } });
|
|
260
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vcG9wb3Zlci9wb3BvdmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTZCLCtCQUErQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDOUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDbkYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBRTlDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQWdCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFvRCxNQUFNLGVBQWUsQ0FBQTtBQUMxSSxPQUFPLEVBQUUsZUFBZSxFQUFhLEtBQUssRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNuRixPQUFPLEVBQWEsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUE7Ozs7QUFFOUQsb0RBQW9EO0FBQ3BELE1BQU0sMkJBQTJCLEdBQUcsK0JBQStCLENBQUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQTtBQVdwRixNQUFNLE9BQU8sdUJBQXVCO0lBOEVsQyxZQUNVLFdBQW9DLEVBQ3BDLGlCQUFtQyxFQUNuQyxRQUFpQixFQUNqQixhQUEyQjtRQUgzQixnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFDcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FB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QXZCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQVRuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6Qix1REFBdUQ7b0JBQ3ZELElBQUksRUFBRTt3QkFDSixlQUFlLEVBQUUsTUFBTTt3QkFDdkIsc0JBQXNCLEVBQUUsdUJBQXVCO3FCQUNoRDtvQkFDRCxRQUFRLEVBQUUsYUFBYTtpQkFDeEI7aUxBS1UsV0FBVztzQkFBbkIsS0FBSztnQkFPRixvQkFBb0I7c0JBRHZCLEtBQUs7Z0JBV0YsbUJBQW1CO3NCQUR0QixLQUFLO2dCQXNDTixZQUFZO3NCQURYLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUUsUUFBUSxDQUFFO2dCQVV2QyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUUsUUFBUSxDQUFFO2dCQU1uQyxrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBRSxRQUFRLENBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luLCBpc0Zha2VNb3VzZWRvd25Gcm9tU2NyZWVuUmVhZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJ1xuaW1wb3J0IHsgRVNDQVBFIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJ1xuaW1wb3J0IHsgQ29ubmVjdGlvblBvc2l0aW9uUGFpciwgT3ZlcmxheSwgT3ZlcmxheVJlZiwgUG9zaXRpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5J1xuaW1wb3J0IHsgbm9ybWFsaXplUGFzc2l2ZUxpc3RlbmVyT3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSdcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnXG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZnJvbUV2ZW50LCBtZXJnZSwgb2YsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50J1xuXG4vKiogT3B0aW9ucyBmb3IgYmluZGluZyBhIHBhc3NpdmUgZXZlbnQgbGlzdGVuZXIuICovXG5jb25zdCBwYXNzaXZlRXZlbnRMaXN0ZW5lck9wdGlvbnMgPSBub3JtYWxpemVQYXNzaXZlTGlzdGVuZXJPcHRpb25zKHtwYXNzaXZlOiB0cnVlfSlcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NlYW1Qb3BvdmVyXScsXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp1c2UtaG9zdC1wcm9wZXJ0eS1kZWNvcmF0b3JcbiAgaG9zdDoge1xuICAgICdhcmlhLWhhc3BvcHVwJzogJ3RydWUnLFxuICAgICdbYXR0ci5hcmlhLWV4cGFuZGVkXSc6ICdwb3BvdmVyT3BlbigpIHx8IG51bGwnXG4gIH0sXG4gIGV4cG9ydEFzOiAnc2VhbVBvcG92ZXInXG59KVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1Qb3BvdmVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9uZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxuXG4gIEBJbnB1dCgpIHNlYW1Qb3BvdmVyPzogVGVtcGxhdGVSZWY8YW55PiB8IG51bGxcblxuICAvKipcbiAgICogRGVmaW5lcyBhIHdpZHRoIGZvciBhIHBvcG92ZXIgdGhhdCB3aWxsIHNjYWxlIGRvd24gaWYgdGhlIHdpbmRvdyBpbm5lcldpZHRoIGlzXG4gICAqIHNtYWxsZXIgdGhhbiB0aGUgdmFsdWUuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgc2VhbVBvcG92ZXJCYXNlV2lkdGgoKSB7IHJldHVybiB0aGlzLl9zZWFtUG9wb3ZlckJhc2VXaWR0aC52YWx1ZSB9XG4gIHNldCBzZWFtUG9wb3ZlckJhc2VXaWR0aCh2YWx1ZTogbnVtYmVyIHwgbnVsbCkge1xuICAgIGNvbnN0IF92YWwgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSwgbnVsbClcbiAgICBpZiAoX3ZhbCAhPT0gdGhpcy5fc2VhbVBvcG92ZXJCYXNlV2lkdGgudmFsdWUpIHtcbiAgICAgIHRoaXMuX3NlYW1Qb3BvdmVyQmFzZVdpZHRoLm5leHQoX3ZhbClcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfc2VhbVBvcG92ZXJCYXNlV2lkdGggPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlciB8IG51bGw+KG51bGwpXG5cbiAgQElucHV0KClcbiAgZ2V0IHNlYW1Qb3BvdmVyRGlzYWJsZWQoKSB7IHJldHVybiB0aGlzLl9zZWFtUG9wb3ZlckRpc2FibGVkLnZhbHVlIH1cbiAgc2V0IHNlYW1Qb3BvdmVyRGlzYWJsZWQodmFsOiBib29sZWFuKSB7IHRoaXMuX3NlYW1Qb3BvdmVyRGlzYWJsZWQubmV4dChjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsKSkgfVxuICBwcml2YXRlIF9zZWFtUG9wb3ZlckRpc2FibGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSlcblxuXG4gIC8vIG5nT25Jbml0KCkge1xuICAvLyAgIHRoaXMuX3NlYW1Qb3BvdmVyRGlzYWJsZWQucGlwZShcbiAgLy8gICAgIHN3aXRjaE1hcChkaXNhYmxlZCA9PiB7XG4gIC8vICAgICAgIGlmIChkaXNhYmxlZCkge1xuICAvLyAgICAgICAgIHRoaXMuY2xvc2UoKVxuICAvLyAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gIC8vICAgICAgIH1cblxuICAvLyAgICAgICBpZiAoISh0aGlzLl9lbGVtZW50UmVmICYmIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkpIHtcbiAgLy8gICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxuICAvLyAgICAgICB9XG5cbiAgLy8gICAgICAgcmV0dXJuIGZyb21FdmVudCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdjbGljaycpXG4gIC8vICAgICB9KVxuICAvLyAgICkuc3Vic2NyaWJlKClcbiAgLy8gfVxuXG5cbiAgcHJpdmF0ZSBfYWN0aXZlID0gZmFsc2VcbiAgcHJpdmF0ZSBfY2xvc2luZyA9IGZhbHNlXG4gIHByaXZhdGUgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCB1bmRlZmluZWQgfCBudWxsXG4gIHByaXZhdGUgX2NvbXBSZWY6IENvbXBvbmVudFJlZjxQb3BvdmVyQ29tcG9uZW50PiB8IHVuZGVmaW5lZCB8IG51bGxcbiAgcHJpdmF0ZSBfcG9wb3ZlckNsb3NlZFN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWVxuICBwcml2YXRlIF9jbG9zaW5nQWN0aW9uc1N1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWVxuXG4gIHB1YmxpYyByZXN0b3JlRm9jdXMgPSB0cnVlXG5cbiAgLy8gVHJhY2tpbmcgaW5wdXQgdHlwZSBpcyBuZWNlc3Nhcnkgc28gaXQncyBwb3NzaWJsZSB0byBvbmx5IGF1dG8tZm9jdXNcbiAgLy8gdGhlIGZpcnN0IGl0ZW0gb2YgdGhlIGxpc3Qgd2hlbiB0aGUgbWVudSBpcyBvcGVuZWQgdmlhIHRoZSBrZXlib2FyZFxuICBfb3BlbmVkQnk6ICdtb3VzZScgfCAndG91Y2gnIHwgbnVsbCA9IG51bGxcblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbICckZXZlbnQnIF0pXG4gIF9vbk1vdXNlRG93bihldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICghaXNGYWtlTW91c2Vkb3duRnJvbVNjcmVlblJlYWRlcihldmVudCkpIHtcbiAgICAgIC8vIFNpbmNlIHJpZ2h0IG9yIG1pZGRsZSBidXR0b24gY2xpY2tzIHdvbid0IHRyaWdnZXIgdGhlIGBjbGlja2AgZXZlbnQsXG4gICAgICAvLyB3ZSBzaG91bGRuJ3QgY29uc2lkZXIgdGhlIG1lbnUgYXMgb3BlbmVkIGJ5IG1vdXNlIGluIHRob3NlIGNhc2VzLlxuICAgICAgdGhpcy5fb3BlbmVkQnkgPSBldmVudC5idXR0b24gPT09IDAgPyAnbW91c2UnIDogbnVsbFxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyAnJGV2ZW50JyBdKVxuICBfb25DbGljayhldmVudDogYW55KSB7XG4gICAgdGhpcy50b2dnbGUoKVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsgJyRldmVudCcgXSlcbiAgX29uRG9jdW1lbnRLZXlkb3duKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gRVNDQVBFKSB7XG4gICAgICB0aGlzLmNsb3NlUG9wb3ZlcigpXG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgX2ZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yXG4gICkge1xuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy5faGFuZGxlVG91Y2hTdGFydCxcbiAgICAgICAgcGFzc2l2ZUV2ZW50TGlzdGVuZXJPcHRpb25zKVxuXG4gICAgdGhpcy5fc2VhbVBvcG92ZXJCYXNlV2lkdGhcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUodyA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9jb21wUmVmICYmIHRoaXMuX2NvbXBSZWYuaW5zdGFuY2UpIHtcbiAgICAgICAgICB0aGlzLl9jb21wUmVmLmluc3RhbmNlLmJhc2VXaWR0aCA9IHdcbiAgICAgICAgICB0aGlzLl9jb21wUmVmLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmNsb3NlUG9wb3ZlcigpXG5cbiAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMuX2hhbmRsZVRvdWNoU3RhcnQsXG4gICAgICAgIHBhc3NpdmVFdmVudExpc3RlbmVyT3B0aW9ucylcblxuICAgIHRoaXMuX3BvcG92ZXJDbG9zZWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICAgIHRoaXMuX2Nsb3NpbmdBY3Rpb25zU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKClcblxuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUubmV4dCh1bmRlZmluZWQpXG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpXG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyB0b3VjaCBzdGFydCBldmVudHMgb24gdGhlIHRyaWdnZXIuXG4gICAqIE5lZWRzIHRvIGJlIGFuIGFycm93IGZ1bmN0aW9uIHNvIHdlIGNhbiBlYXNpbHkgdXNlIGFkZEV2ZW50TGlzdGVuZXIgYW5kIHJlbW92ZUV2ZW50TGlzdGVuZXIuXG4gICAqL1xuICBwcml2YXRlIF9oYW5kbGVUb3VjaFN0YXJ0ID0gKCkgPT4gdGhpcy5fb3BlbmVkQnkgPSAndG91Y2gnXG5cbiAgcHVibGljIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fYWN0aXZlIHx8IHRoaXMuc2VhbVBvcG92ZXJEaXNhYmxlZCkge1xuICAgICAgdGhpcy5jbG9zZVBvcG92ZXIoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW5Qb3BvdmVyKClcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3BlblBvcG92ZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2FjdGl2ZSB8fCAhdGhpcy5zZWFtUG9wb3ZlcikgeyByZXR1cm4gfVxuICAgIHRoaXMuX2FjdGl2ZSA9IHRydWVcblxuICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh7XG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICd0cmFuc3BhcmVudCcsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLmdldE92ZXJsYXlQb3NpdGlvbih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLFxuICAgIH0pXG5cbiAgICB0aGlzLl9jb21wUmVmID0gdGhpcy5fb3ZlcmxheVJlZi5hdHRhY2gobmV3IENvbXBvbmVudFBvcnRhbChQb3BvdmVyQ29tcG9uZW50LCB0aGlzLl92aWV3Q29udGFpbmVyUmVmKSlcblxuICAgIHRoaXMuX2Nsb3NpbmdBY3Rpb25zU3Vic2NyaXB0aW9uID0gdGhpcy5fcG9wb3ZlckNsb3NpbmdBY3Rpb25zKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2VQb3BvdmVyKCkpXG5cbiAgICB0aGlzLl9jb21wUmVmLmluc3RhbmNlLnRlbXBsYXRlID0gdGhpcy5zZWFtUG9wb3ZlclxuICAgIHRoaXMuX2NvbXBSZWYuaW5zdGFuY2UuYmFzZVdpZHRoID0gdGhpcy5zZWFtUG9wb3ZlckJhc2VXaWR0aFxuICAgIHRoaXMuX2NvbXBSZWYuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKClcblxuICAgIHRoaXMuX3BvcG92ZXJDbG9zZWRTdWJzY3JpcHRpb24gPSB0aGlzLl9jb21wUmVmLmluc3RhbmNlLl9hZnRlckV4aXQuc3Vic2NyaWJlKHYgPT4ge1xuICAgICAgLy8gY29uc29sZS5sb2coJ2Nsb3NlZCcsIHYpXG4gICAgICBpZiAodGhpcy5fb3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKSkge1xuICAgICAgICB0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpXG4gICAgICB9XG5cbiAgICAgIHRoaXMuX3Jlc2V0UG9wb3ZlcigpXG5cbiAgICAgIHRoaXMuX3BvcG92ZXJDbG9zZWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICAgICAgdGhpcy5fY2xvc2luZ0FjdGlvbnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuXG4gICAgICB0aGlzLl9hY3RpdmUgPSBmYWxzZVxuICAgICAgdGhpcy5fY2xvc2luZyA9IGZhbHNlXG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZVBvcG92ZXIoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9hY3RpdmUpIHsgcmV0dXJuIH1cblxuICAgIGlmICghdGhpcy5fY2xvc2luZykge1xuICAgICAgaWYgKHRoaXMuX2NvbXBSZWYgJiYgdGhpcy5fY29tcFJlZi5pbnN0YW5jZSkge1xuICAgICAgICB0aGlzLl9jbG9zaW5nID0gdHJ1ZVxuICAgICAgICB0aGlzLl9jb21wUmVmLmluc3RhbmNlLl9zdGFydEV4aXRpbmcoKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBwb3BvdmVyT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKSA/PyBmYWxzZVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRPdmVybGF5UG9zaXRpb24ob3JpZ2luOiBIVE1MRWxlbWVudCk6IFBvc2l0aW9uU3RyYXRlZ3kge1xuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKClcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKG9yaWdpbilcbiAgICAgIC53aXRoUG9zaXRpb25zKHRoaXMuZ2V0UG9zaXRpb25zKCkpXG4gICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyhmYWxzZSlcbiAgICAgIC53aXRoUHVzaCh0cnVlKVxuXG4gICAgcmV0dXJuIHBvc2l0aW9uU3RyYXRlZ3lcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UG9zaXRpb25zKCk6IENvbm5lY3Rpb25Qb3NpdGlvblBhaXJbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXG4gICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgICAgIG92ZXJsYXlZOiAndG9wJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXG4gICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICBvdmVybGF5WDogJ2VuZCcsXG4gICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICBvdmVybGF5WDogJ2VuZCcsXG4gICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgfSxcbiAgICBdXG4gIH1cblxuICAvKipcbiAgICogRm9jdXNlcyB0aGUgcG9wb3ZlciB0cmlnZ2VyLlxuICAgKiBAcGFyYW0gb3JpZ2luIFNvdXJjZSBvZiB0aGUgcG9wb3ZlciB0cmlnZ2VyJ3MgZm9jdXMuXG4gICAqL1xuICBmb2N1cyhvcmlnaW46IEZvY3VzT3JpZ2luID0gJ3Byb2dyYW0nKSB7XG4gICAgaWYgKHRoaXMuX2ZvY3VzTW9uaXRvcikge1xuICAgICAgdGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuX2VsZW1lbnRSZWYsIG9yaWdpbilcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgcmVzZXRzIHRoZSBwb3BvdmVyIHdoZW4gaXQncyBjbG9zZWQsIG1vc3QgaW1wb3J0YW50bHkgcmVzdG9yaW5nXG4gICAqIGZvY3VzIHRvIHRoZSBwb3BvdmVyIHRyaWdnZXIgaWYgdGhlIHBvcG92ZXIgd2FzIG9wZW5lZCB2aWEgdGhlIGtleWJvYXJkLlxuICAgKi9cbiAgcHJpdmF0ZSBfcmVzZXRQb3BvdmVyKCk6IHZvaWQge1xuICAgIC8vIFdlIHNob3VsZCByZXNldCBmb2N1cyBpZiB0aGUgdXNlciBpcyBuYXZpZ2F0aW5nIHVzaW5nIGEga2V5Ym9hcmQgb3JcbiAgICAvLyBpZiB3ZSBoYXZlIGEgdG9wLWxldmVsIHRyaWdnZXIgd2hpY2ggbWlnaHQgY2F1c2UgZm9jdXMgdG8gYmUgbG9zdFxuICAgIC8vIHdoZW4gY2xpY2tpbmcgb24gdGhlIGJhY2tkcm9wLlxuICAgIGlmICh0aGlzLnJlc3RvcmVGb2N1cykge1xuICAgICAgaWYgKCF0aGlzLl9vcGVuZWRCeSkge1xuICAgICAgICAvLyBOb3RlIHRoYXQgdGhlIGZvY3VzIHN0eWxlIHdpbGwgc2hvdyB1cCBib3RoIGZvciBgcHJvZ3JhbWAgYW5kXG4gICAgICAgIC8vIGBrZXlib2FyZGAgc28gd2UgZG9uJ3QgaGF2ZSB0byBzcGVjaWZ5IHdoaWNoIG9uZSBpdCBpcy5cbiAgICAgICAgdGhpcy5mb2N1cygpXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fb3BlbmVkQnkgPSBudWxsXG4gIH1cblxuICAvKiogUmV0dXJucyBhIHN0cmVhbSB0aGF0IGVtaXRzIHdoZW5ldmVyIGFuIGFjdGlvbiB0aGF0IHNob3VsZCBjbG9zZSB0aGUgcG9wb3ZlciBvY2N1cnMuICovXG4gIHByaXZhdGUgX3BvcG92ZXJDbG9zaW5nQWN0aW9ucygpIHtcbiAgICBjb25zdCBiYWNrZHJvcCA9IHRoaXMuX292ZXJsYXlSZWY/LmJhY2tkcm9wQ2xpY2soKSA/PyBvZigpXG4gICAgY29uc3QgZGV0YWNobWVudHMgPSB0aGlzLl9vdmVybGF5UmVmPy5kZXRhY2htZW50cygpID8/IG9mKClcbiAgICBjb25zdCBob3ZlciA9IG9mKClcblxuICAgIHJldHVybiBtZXJnZShiYWNrZHJvcCwgaG92ZXIsIGRldGFjaG1lbnRzKVxuICB9XG5cbn1cbiJdfQ==
|
|
260
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vcG9wb3Zlci9wb3BvdmVyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTZCLCtCQUErQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDOUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDbkYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBRTlDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQWdCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFvRCxNQUFNLGVBQWUsQ0FBQTtBQUMxSSxPQUFPLEVBQUUsZUFBZSxFQUFhLEtBQUssRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUNuRixPQUFPLEVBQWEsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUE7Ozs7QUFFOUQsb0RBQW9EO0FBQ3BELE1BQU0sMkJBQTJCLEdBQUcsK0JBQStCLENBQUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQTtBQVdwRixNQUFNLE9BQU8sdUJBQXVCO0lBTWxDOzs7T0FHRztJQUNILElBQ0ksb0JBQW9CLEtBQUssT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFBLENBQUMsQ0FBQztJQUN0RSxJQUFJLG9CQUFvQixDQUFDLEtBQW9CO1FBQzNDLE1BQU0sSUFBSSxHQUFHLG9CQUFvQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUM5QyxJQUFJLElBQUksS0FBSyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFO1lBQzdDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7U0FDdEM7SUFDSCxDQUFDO0lBR0QsSUFDSSxtQkFBbUIsS0FBSyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUEsQ0FBQyxDQUFDO0lBQ3BFLElBQUksbUJBQW1CLENBQUMsR0FBWSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQSxDQUFDLENBQUM7SUFvQ3BHLFlBQVksQ0FBQyxLQUFpQjtRQUM1QixJQUFJLENBQUMsK0JBQStCLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDM0MsdUVBQXVFO1lBQ3ZFLG9FQUFvRTtZQUNwRSxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtTQUNyRDtJQUNILENBQUM7SUFHRCxRQUFRLENBQUMsS0FBVTtRQUNqQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDZixDQUFDO0lBR0Qsa0JBQWtCLENBQUMsS0FBVTtRQUMzQixJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssTUFBTSxFQUFFO1lBQzVCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtTQUNwQjtJQUNILENBQUM7SUFFRCxZQUNVLFdBQW9DLEVBQ3BDLGlCQUFtQyxFQUNuQyxRQUFpQixFQUNqQixhQUEyQjtRQUgzQixnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFDcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyxhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ2pCLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBaEZwQixtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUE7UUFnQjdDLDBCQUFxQixHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQTtRQUtoRSx5QkFBb0IsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQTtRQUdsRSxlQUFlO1FBQ2Ysb0NBQW9DO1FBQ3BDLDhCQUE4QjtRQUM5Qix3QkFBd0I7UUFDeEIsdUJBQXVCO1FBQ3ZCLCtCQUErQjtRQUMvQixVQUFVO1FBRVYscUVBQXFFO1FBQ3JFLCtCQUErQjtRQUMvQixVQUFVO1FBRVYsa0VBQWtFO1FBQ2xFLFNBQVM7UUFDVCxrQkFBa0I7UUFDbEIsSUFBSTtRQUdJLFlBQU8sR0FBRyxLQUFLLENBQUE7UUFDZixhQUFRLEdBQUcsS0FBSyxDQUFBO1FBR2hCLCtCQUEwQixHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUE7UUFDL0MsZ0NBQTJCLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQTtRQUVqRCxpQkFBWSxHQUFHLElBQUksQ0FBQTtRQUUxQix1RUFBdUU7UUFDdkUsc0VBQXNFO1FBQ3RFLGNBQVMsR0FBNkIsSUFBSSxDQUFBO1FBdUQxQzs7O1dBR0c7UUFDSyxzQkFBaUIsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQTtRQTlCeEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFDaEYsMkJBQTJCLENBQUMsQ0FBQTtRQUVoQyxJQUFJLENBQUMscUJBQXFCO2FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQ3BDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNiLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRTtnQkFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQTtnQkFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQTthQUMvQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7UUFFbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFDbkYsMkJBQTJCLENBQUMsQ0FBQTtRQUVoQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDN0MsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFdBQVcsRUFBRSxDQUFBO1FBRTlDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDaEMsQ0FBQztJQVFNLE1BQU07UUFDWCxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzVDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQTtTQUNwQjthQUFNO1lBQ0wsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1NBQ25CO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUFFLE9BQU07U0FBRTtRQUNqRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQTtRQUVuQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ3RDLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGFBQWEsRUFBRSxhQUFhO1lBQzVCLGdCQUFnQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztTQUMxRSxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksZUFBZSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUE7UUFFdEcsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQTtRQUVyRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQTtRQUNsRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFBO1FBQzVELElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUE7UUFFOUMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEYsMkJBQTJCO1lBQzNCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQTthQUMxQjtZQUVELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtZQUVwQixJQUFJLENBQUMsMEJBQTBCLENBQUMsV0FBVyxFQUFFLENBQUE7WUFDN0MsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFdBQVcsRUFBRSxDQUFBO1lBRTlDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFBO1lBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFBO1FBQ3ZCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFBRSxPQUFNO1NBQUU7UUFFN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFO2dCQUMzQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQTtnQkFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUE7YUFDdkM7U0FDRjtJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsSUFBSSxLQUFLLENBQUE7SUFDakQsQ0FBQztJQUVPLGtCQUFrQixDQUFDLE1BQW1CO1FBQzVDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7YUFDOUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDO2FBQzNCLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDbEMsc0JBQXNCLENBQUMsS0FBSyxDQUFDO2FBQzdCLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUVqQixPQUFPLGdCQUFnQixDQUFBO0lBQ3pCLENBQUM7SUFFTyxZQUFZO1FBQ2xCLE9BQU87WUFDTDtnQkFDRSxPQUFPLEVBQUUsUUFBUTtnQkFDakIsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixRQUFRLEVBQUUsS0FBSzthQUNoQjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxRQUFRO2dCQUNqQixPQUFPLEVBQUUsS0FBSztnQkFDZCxRQUFRLEVBQUUsUUFBUTtnQkFDbEIsUUFBUSxFQUFFLFFBQVE7YUFDbkI7WUFDRDtnQkFDRSxPQUFPLEVBQUUsS0FBSztnQkFDZCxPQUFPLEVBQUUsUUFBUTtnQkFDakIsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsUUFBUSxFQUFFLEtBQUs7YUFDaEI7WUFDRDtnQkFDRSxPQUFPLEVBQUUsT0FBTztnQkFDaEIsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixRQUFRLEVBQUUsS0FBSzthQUNoQjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE9BQU8sRUFBRSxLQUFLO2dCQUNkLFFBQVEsRUFBRSxLQUFLO2dCQUNmLFFBQVEsRUFBRSxRQUFRO2FBQ25CO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLE9BQU8sRUFBRSxLQUFLO2dCQUNkLFFBQVEsRUFBRSxPQUFPO2dCQUNqQixRQUFRLEVBQUUsUUFBUTthQUNuQjtTQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLFNBQXNCLFNBQVM7UUFDbkMsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUE7U0FDdEQ7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFBO1NBQ3ZDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGFBQWE7UUFDbkIsc0VBQXNFO1FBQ3RFLG9FQUFvRTtRQUNwRSxpQ0FBaUM7UUFDakMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNuQixnRUFBZ0U7Z0JBQ2hFLDBEQUEwRDtnQkFDMUQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFBO2FBQ2I7U0FDRjtRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFBO0lBQ3ZCLENBQUM7SUFFRCwyRkFBMkY7SUFDbkYsc0JBQXNCO1FBQzVCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUE7UUFDMUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQTtRQUMzRCxNQUFNLEtBQUssR0FBRyxFQUFFLEVBQUUsQ0FBQTtRQUVsQixPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFBO0lBQzVDLENBQUM7O29IQXRRVSx1QkFBdUI7d0dBQXZCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQVRuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6Qix1REFBdUQ7b0JBQ3ZELElBQUksRUFBRTt3QkFDSixlQUFlLEVBQUUsTUFBTTt3QkFDdkIsc0JBQXNCLEVBQUUsdUJBQXVCO3FCQUNoRDtvQkFDRCxRQUFRLEVBQUUsYUFBYTtpQkFDeEI7aUxBS1UsV0FBVztzQkFBbkIsS0FBSztnQkFPRixvQkFBb0I7c0JBRHZCLEtBQUs7Z0JBV0YsbUJBQW1CO3NCQUR0QixLQUFLO2dCQXNDTixZQUFZO3NCQURYLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUUsUUFBUSxDQUFFO2dCQVV2QyxRQUFRO3NCQURQLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUUsUUFBUSxDQUFFO2dCQU1uQyxrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBRSxRQUFRLENBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luLCBpc0Zha2VNb3VzZWRvd25Gcm9tU2NyZWVuUmVhZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknXG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHksIGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJ1xuaW1wb3J0IHsgRVNDQVBFIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJ1xuaW1wb3J0IHsgQ29ubmVjdGlvblBvc2l0aW9uUGFpciwgT3ZlcmxheSwgT3ZlcmxheVJlZiwgUG9zaXRpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5J1xuaW1wb3J0IHsgbm9ybWFsaXplUGFzc2l2ZUxpc3RlbmVyT3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wbGF0Zm9ybSdcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnXG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZnJvbUV2ZW50LCBtZXJnZSwgb2YsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnLi9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50J1xuXG4vKiogT3B0aW9ucyBmb3IgYmluZGluZyBhIHBhc3NpdmUgZXZlbnQgbGlzdGVuZXIuICovXG5jb25zdCBwYXNzaXZlRXZlbnRMaXN0ZW5lck9wdGlvbnMgPSBub3JtYWxpemVQYXNzaXZlTGlzdGVuZXJPcHRpb25zKHtwYXNzaXZlOiB0cnVlfSlcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NlYW1Qb3BvdmVyXScsXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp1c2UtaG9zdC1wcm9wZXJ0eS1kZWNvcmF0b3JcbiAgaG9zdDoge1xuICAgICdhcmlhLWhhc3BvcHVwJzogJ3RydWUnLFxuICAgICdbYXR0ci5hcmlhLWV4cGFuZGVkXSc6ICdwb3BvdmVyT3BlbigpIHx8IG51bGwnXG4gIH0sXG4gIGV4cG9ydEFzOiAnc2VhbVBvcG92ZXInXG59KVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1Qb3BvdmVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9uZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxuXG4gIEBJbnB1dCgpIHNlYW1Qb3BvdmVyPzogVGVtcGxhdGVSZWY8YW55PiB8IG51bGxcblxuICAvKipcbiAgICogRGVmaW5lcyBhIHdpZHRoIGZvciBhIHBvcG92ZXIgdGhhdCB3aWxsIHNjYWxlIGRvd24gaWYgdGhlIHdpbmRvdyBpbm5lcldpZHRoIGlzXG4gICAqIHNtYWxsZXIgdGhhbiB0aGUgdmFsdWUuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgc2VhbVBvcG92ZXJCYXNlV2lkdGgoKSB7IHJldHVybiB0aGlzLl9zZWFtUG9wb3ZlckJhc2VXaWR0aC52YWx1ZSB9XG4gIHNldCBzZWFtUG9wb3ZlckJhc2VXaWR0aCh2YWx1ZTogbnVtYmVyIHwgbnVsbCkge1xuICAgIGNvbnN0IF92YWwgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSwgbnVsbClcbiAgICBpZiAoX3ZhbCAhPT0gdGhpcy5fc2VhbVBvcG92ZXJCYXNlV2lkdGgudmFsdWUpIHtcbiAgICAgIHRoaXMuX3NlYW1Qb3BvdmVyQmFzZVdpZHRoLm5leHQoX3ZhbClcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfc2VhbVBvcG92ZXJCYXNlV2lkdGggPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlciB8IG51bGw+KG51bGwpXG5cbiAgQElucHV0KClcbiAgZ2V0IHNlYW1Qb3BvdmVyRGlzYWJsZWQoKSB7IHJldHVybiB0aGlzLl9zZWFtUG9wb3ZlckRpc2FibGVkLnZhbHVlIH1cbiAgc2V0IHNlYW1Qb3BvdmVyRGlzYWJsZWQodmFsOiBib29sZWFuKSB7IHRoaXMuX3NlYW1Qb3BvdmVyRGlzYWJsZWQubmV4dChjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsKSkgfVxuICBwcml2YXRlIF9zZWFtUG9wb3ZlckRpc2FibGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSlcblxuXG4gIC8vIG5nT25Jbml0KCkge1xuICAvLyAgIHRoaXMuX3NlYW1Qb3BvdmVyRGlzYWJsZWQucGlwZShcbiAgLy8gICAgIHN3aXRjaE1hcChkaXNhYmxlZCA9PiB7XG4gIC8vICAgICAgIGlmIChkaXNhYmxlZCkge1xuICAvLyAgICAgICAgIHRoaXMuY2xvc2UoKVxuICAvLyAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpXG4gIC8vICAgICAgIH1cblxuICAvLyAgICAgICBpZiAoISh0aGlzLl9lbGVtZW50UmVmICYmIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkpIHtcbiAgLy8gICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxuICAvLyAgICAgICB9XG5cbiAgLy8gICAgICAgcmV0dXJuIGZyb21FdmVudCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdjbGljaycpXG4gIC8vICAgICB9KVxuICAvLyAgICkuc3Vic2NyaWJlKClcbiAgLy8gfVxuXG5cbiAgcHJpdmF0ZSBfYWN0aXZlID0gZmFsc2VcbiAgcHJpdmF0ZSBfY2xvc2luZyA9IGZhbHNlXG4gIHByaXZhdGUgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCB1bmRlZmluZWQgfCBudWxsXG4gIHByaXZhdGUgX2NvbXBSZWY6IENvbXBvbmVudFJlZjxQb3BvdmVyQ29tcG9uZW50PiB8IHVuZGVmaW5lZCB8IG51bGxcbiAgcHJpdmF0ZSBfcG9wb3ZlckNsb3NlZFN1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWVxuICBwcml2YXRlIF9jbG9zaW5nQWN0aW9uc1N1YnNjcmlwdGlvbiA9IFN1YnNjcmlwdGlvbi5FTVBUWVxuXG4gIHB1YmxpYyByZXN0b3JlRm9jdXMgPSB0cnVlXG5cbiAgLy8gVHJhY2tpbmcgaW5wdXQgdHlwZSBpcyBuZWNlc3Nhcnkgc28gaXQncyBwb3NzaWJsZSB0byBvbmx5IGF1dG8tZm9jdXNcbiAgLy8gdGhlIGZpcnN0IGl0ZW0gb2YgdGhlIGxpc3Qgd2hlbiB0aGUgbWVudSBpcyBvcGVuZWQgdmlhIHRoZSBrZXlib2FyZFxuICBfb3BlbmVkQnk6ICdtb3VzZScgfCAndG91Y2gnIHwgbnVsbCA9IG51bGxcblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbICckZXZlbnQnIF0pXG4gIF9vbk1vdXNlRG93bihldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmICghaXNGYWtlTW91c2Vkb3duRnJvbVNjcmVlblJlYWRlcihldmVudCkpIHtcbiAgICAgIC8vIFNpbmNlIHJpZ2h0IG9yIG1pZGRsZSBidXR0b24gY2xpY2tzIHdvbid0IHRyaWdnZXIgdGhlIGBjbGlja2AgZXZlbnQsXG4gICAgICAvLyB3ZSBzaG91bGRuJ3QgY29uc2lkZXIgdGhlIG1lbnUgYXMgb3BlbmVkIGJ5IG1vdXNlIGluIHRob3NlIGNhc2VzLlxuICAgICAgdGhpcy5fb3BlbmVkQnkgPSBldmVudC5idXR0b24gPT09IDAgPyAnbW91c2UnIDogbnVsbFxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyAnJGV2ZW50JyBdKVxuICBfb25DbGljayhldmVudDogYW55KSB7XG4gICAgdGhpcy50b2dnbGUoKVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsgJyRldmVudCcgXSlcbiAgX29uRG9jdW1lbnRLZXlkb3duKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PT0gRVNDQVBFKSB7XG4gICAgICB0aGlzLmNsb3NlUG9wb3ZlcigpXG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgX2ZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yXG4gICkge1xuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy5faGFuZGxlVG91Y2hTdGFydCxcbiAgICAgICAgcGFzc2l2ZUV2ZW50TGlzdGVuZXJPcHRpb25zKVxuXG4gICAgdGhpcy5fc2VhbVBvcG92ZXJCYXNlV2lkdGhcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUodyA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9jb21wUmVmICYmIHRoaXMuX2NvbXBSZWYuaW5zdGFuY2UpIHtcbiAgICAgICAgICB0aGlzLl9jb21wUmVmLmluc3RhbmNlLmJhc2VXaWR0aCA9IHdcbiAgICAgICAgICB0aGlzLl9jb21wUmVmLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmNsb3NlUG9wb3ZlcigpXG5cbiAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMuX2hhbmRsZVRvdWNoU3RhcnQsXG4gICAgICAgIHBhc3NpdmVFdmVudExpc3RlbmVyT3B0aW9ucylcblxuICAgIHRoaXMuX3BvcG92ZXJDbG9zZWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICAgIHRoaXMuX2Nsb3NpbmdBY3Rpb25zU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKClcblxuICAgIHRoaXMuX25nVW5zdWJzY3JpYmUubmV4dCh1bmRlZmluZWQpXG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpXG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlcyB0b3VjaCBzdGFydCBldmVudHMgb24gdGhlIHRyaWdnZXIuXG4gICAqIE5lZWRzIHRvIGJlIGFuIGFycm93IGZ1bmN0aW9uIHNvIHdlIGNhbiBlYXNpbHkgdXNlIGFkZEV2ZW50TGlzdGVuZXIgYW5kIHJlbW92ZUV2ZW50TGlzdGVuZXIuXG4gICAqL1xuICBwcml2YXRlIF9oYW5kbGVUb3VjaFN0YXJ0ID0gKCkgPT4gdGhpcy5fb3BlbmVkQnkgPSAndG91Y2gnXG5cbiAgcHVibGljIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fYWN0aXZlIHx8IHRoaXMuc2VhbVBvcG92ZXJEaXNhYmxlZCkge1xuICAgICAgdGhpcy5jbG9zZVBvcG92ZXIoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW5Qb3BvdmVyKClcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3BlblBvcG92ZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2FjdGl2ZSB8fCAhdGhpcy5zZWFtUG9wb3ZlcikgeyByZXR1cm4gfVxuICAgIHRoaXMuX2FjdGl2ZSA9IHRydWVcblxuICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh7XG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6ICd0cmFuc3BhcmVudCcsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLmdldE92ZXJsYXlQb3NpdGlvbih0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLFxuICAgIH0pXG5cbiAgICB0aGlzLl9jb21wUmVmID0gdGhpcy5fb3ZlcmxheVJlZi5hdHRhY2gobmV3IENvbXBvbmVudFBvcnRhbChQb3BvdmVyQ29tcG9uZW50LCB0aGlzLl92aWV3Q29udGFpbmVyUmVmKSlcblxuICAgIHRoaXMuX2Nsb3NpbmdBY3Rpb25zU3Vic2NyaXB0aW9uID0gdGhpcy5fcG9wb3ZlckNsb3NpbmdBY3Rpb25zKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2VQb3BvdmVyKCkpXG5cbiAgICB0aGlzLl9jb21wUmVmLmluc3RhbmNlLnRlbXBsYXRlID0gdGhpcy5zZWFtUG9wb3ZlclxuICAgIHRoaXMuX2NvbXBSZWYuaW5zdGFuY2UuYmFzZVdpZHRoID0gdGhpcy5zZWFtUG9wb3ZlckJhc2VXaWR0aFxuICAgIHRoaXMuX2NvbXBSZWYuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKClcblxuICAgIHRoaXMuX3BvcG92ZXJDbG9zZWRTdWJzY3JpcHRpb24gPSB0aGlzLl9jb21wUmVmLmluc3RhbmNlLl9hZnRlckV4aXQuc3Vic2NyaWJlKHYgPT4ge1xuICAgICAgLy8gY29uc29sZS5sb2coJ2Nsb3NlZCcsIHYpXG4gICAgICBpZiAodGhpcy5fb3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKSkge1xuICAgICAgICB0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpXG4gICAgICB9XG5cbiAgICAgIHRoaXMuX3Jlc2V0UG9wb3ZlcigpXG5cbiAgICAgIHRoaXMuX3BvcG92ZXJDbG9zZWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICAgICAgdGhpcy5fY2xvc2luZ0FjdGlvbnNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuXG4gICAgICB0aGlzLl9hY3RpdmUgPSBmYWxzZVxuICAgICAgdGhpcy5fY2xvc2luZyA9IGZhbHNlXG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZVBvcG92ZXIoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9hY3RpdmUpIHsgcmV0dXJuIH1cblxuICAgIGlmICghdGhpcy5fY2xvc2luZykge1xuICAgICAgaWYgKHRoaXMuX2NvbXBSZWYgJiYgdGhpcy5fY29tcFJlZi5pbnN0YW5jZSkge1xuICAgICAgICB0aGlzLl9jbG9zaW5nID0gdHJ1ZVxuICAgICAgICB0aGlzLl9jb21wUmVmLmluc3RhbmNlLl9zdGFydEV4aXRpbmcoKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBwb3BvdmVyT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKSA/PyBmYWxzZVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRPdmVybGF5UG9zaXRpb24ob3JpZ2luOiBIVE1MRWxlbWVudCk6IFBvc2l0aW9uU3RyYXRlZ3kge1xuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKClcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKG9yaWdpbilcbiAgICAgIC53aXRoUG9zaXRpb25zKHRoaXMuZ2V0UG9zaXRpb25zKCkpXG4gICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyhmYWxzZSlcbiAgICAgIC53aXRoUHVzaCh0cnVlKVxuXG4gICAgcmV0dXJuIHBvc2l0aW9uU3RyYXRlZ3lcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UG9zaXRpb25zKCk6IENvbm5lY3Rpb25Qb3NpdGlvblBhaXJbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXG4gICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgICAgIG92ZXJsYXlZOiAndG9wJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXG4gICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICBvdmVybGF5WDogJ2VuZCcsXG4gICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICBvdmVybGF5WDogJ2VuZCcsXG4gICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgfSxcbiAgICBdXG4gIH1cblxuICAvKipcbiAgICogRm9jdXNlcyB0aGUgcG9wb3ZlciB0cmlnZ2VyLlxuICAgKiBAcGFyYW0gb3JpZ2luIFNvdXJjZSBvZiB0aGUgcG9wb3ZlciB0cmlnZ2VyJ3MgZm9jdXMuXG4gICAqL1xuICBmb2N1cyhvcmlnaW46IEZvY3VzT3JpZ2luID0gJ3Byb2dyYW0nKSB7XG4gICAgaWYgKHRoaXMuX2ZvY3VzTW9uaXRvcikge1xuICAgICAgdGhpcy5fZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuX2VsZW1lbnRSZWYsIG9yaWdpbilcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKClcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgcmVzZXRzIHRoZSBwb3BvdmVyIHdoZW4gaXQncyBjbG9zZWQsIG1vc3QgaW1wb3J0YW50bHkgcmVzdG9yaW5nXG4gICAqIGZvY3VzIHRvIHRoZSBwb3BvdmVyIHRyaWdnZXIgaWYgdGhlIHBvcG92ZXIgd2FzIG9wZW5lZCB2aWEgdGhlIGtleWJvYXJkLlxuICAgKi9cbiAgcHJpdmF0ZSBfcmVzZXRQb3BvdmVyKCk6IHZvaWQge1xuICAgIC8vIFdlIHNob3VsZCByZXNldCBmb2N1cyBpZiB0aGUgdXNlciBpcyBuYXZpZ2F0aW5nIHVzaW5nIGEga2V5Ym9hcmQgb3JcbiAgICAvLyBpZiB3ZSBoYXZlIGEgdG9wLWxldmVsIHRyaWdnZXIgd2hpY2ggbWlnaHQgY2F1c2UgZm9jdXMgdG8gYmUgbG9zdFxuICAgIC8vIHdoZW4gY2xpY2tpbmcgb24gdGhlIGJhY2tkcm9wLlxuICAgIGlmICh0aGlzLnJlc3RvcmVGb2N1cykge1xuICAgICAgaWYgKCF0aGlzLl9vcGVuZWRCeSkge1xuICAgICAgICAvLyBOb3RlIHRoYXQgdGhlIGZvY3VzIHN0eWxlIHdpbGwgc2hvdyB1cCBib3RoIGZvciBgcHJvZ3JhbWAgYW5kXG4gICAgICAgIC8vIGBrZXlib2FyZGAgc28gd2UgZG9uJ3QgaGF2ZSB0byBzcGVjaWZ5IHdoaWNoIG9uZSBpdCBpcy5cbiAgICAgICAgdGhpcy5mb2N1cygpXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fb3BlbmVkQnkgPSBudWxsXG4gIH1cblxuICAvKiogUmV0dXJucyBhIHN0cmVhbSB0aGF0IGVtaXRzIHdoZW5ldmVyIGFuIGFjdGlvbiB0aGF0IHNob3VsZCBjbG9zZSB0aGUgcG9wb3ZlciBvY2N1cnMuICovXG4gIHByaXZhdGUgX3BvcG92ZXJDbG9zaW5nQWN0aW9ucygpIHtcbiAgICBjb25zdCBiYWNrZHJvcCA9IHRoaXMuX292ZXJsYXlSZWY/LmJhY2tkcm9wQ2xpY2soKSA/PyBvZigpXG4gICAgY29uc3QgZGV0YWNobWVudHMgPSB0aGlzLl9vdmVybGF5UmVmPy5kZXRhY2htZW50cygpID8/IG9mKClcbiAgICBjb25zdCBob3ZlciA9IG9mKClcblxuICAgIHJldHVybiBtZXJnZShiYWNrZHJvcCwgaG92ZXIsIGRldGFjaG1lbnRzKVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -7,18 +7,18 @@ import { PopoverComponent } from './popover/popover.component';
|
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
export class TheSeamPopoverModule {
|
|
9
9
|
}
|
|
10
|
-
TheSeamPopoverModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
11
|
-
TheSeamPopoverModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
10
|
+
TheSeamPopoverModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamPopoverModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
+
TheSeamPopoverModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.6", ngImport: i0, type: TheSeamPopoverModule, declarations: [PopoverComponent,
|
|
12
12
|
TheSeamPopoverDirective], imports: [CommonModule,
|
|
13
13
|
OverlayModule,
|
|
14
14
|
PortalModule], exports: [TheSeamPopoverDirective,
|
|
15
15
|
OverlayModule,
|
|
16
16
|
PortalModule] });
|
|
17
|
-
TheSeamPopoverModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
17
|
+
TheSeamPopoverModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamPopoverModule, imports: [CommonModule,
|
|
18
18
|
OverlayModule,
|
|
19
19
|
PortalModule, OverlayModule,
|
|
20
20
|
PortalModule] });
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: TheSeamPopoverModule, decorators: [{
|
|
22
22
|
type: NgModule,
|
|
23
23
|
args: [{
|
|
24
24
|
declarations: [
|