@theseam/ui-common 0.4.0-beta.6 → 0.4.2
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/breadcrumbs/breadcrumbs.component.d.ts +1 -3
- package/card/card-body/card-body.component.d.ts +2 -4
- package/card/card-footer/card-footer.component.d.ts +1 -4
- package/card/card-header/card-header.component.d.ts +1 -4
- package/card/card.component.d.ts +1 -4
- package/carousel/carousel-slide.directive.d.ts +8 -0
- package/carousel/carousel.component.d.ts +85 -0
- package/carousel/carousel.module.d.ts +11 -0
- package/carousel/index.d.ts +5 -0
- package/carousel/public-api.d.ts +3 -0
- package/checkbox/checkbox.component.d.ts +2 -4
- package/core/common-behaviors/active.d.ts +1 -1
- package/core/common-behaviors/disabled.d.ts +1 -1
- package/core/common-behaviors/initialized.d.ts +1 -1
- package/data-filters/data-filter.d.ts +1 -1
- package/datatable/datatable-column/datatable-column.component.d.ts +2 -3
- package/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.d.ts +1 -3
- package/datatable/datatable-export-button/datatable-export-button.component.d.ts +1 -3
- package/datatable/datatable-menu-bar/datatable-menu-bar.component.d.ts +2 -5
- package/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.d.ts +1 -4
- package/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.d.ts +1 -4
- package/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.d.ts +1 -4
- package/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.d.ts +1 -4
- package/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.d.ts +1 -3
- package/datatable/directives/datatable-action-menu-item.directive.d.ts +2 -4
- package/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.d.ts +1 -3
- package/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.d.ts +3 -4
- package/datatable-dynamic/datatable-dynamic-menu-bar-item-manifest.d.ts +1 -1
- package/datatable-dynamic/datatable-dynamic.component.d.ts +1 -4
- package/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.d.ts +3 -4
- package/dynamic/action/modal/dynamic-action-modal-def.d.ts +1 -1
- package/esm2020/asset-reader/asset-reader-helper.service.mjs +7 -5
- package/esm2020/asset-reader/asset-reader.module.mjs +4 -4
- package/esm2020/asset-reader/encrypted-asset-link.directive.mjs +3 -3
- package/esm2020/breadcrumbs/breadcrumb.mjs +1 -1
- package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +4 -5
- package/esm2020/breadcrumbs/breadcrumbs-resolver.mjs +1 -1
- package/esm2020/breadcrumbs/breadcrumbs.module.mjs +5 -5
- package/esm2020/breadcrumbs/breadcrumbs.service.mjs +7 -7
- package/esm2020/buttons/badge-button/badge-button.component.mjs +9 -7
- package/esm2020/buttons/button/button.component.mjs +12 -10
- package/esm2020/buttons/buttons.module.mjs +4 -4
- package/esm2020/buttons/progress-circle-button/progress-circle-button.component.mjs +4 -4
- package/esm2020/buttons/toggle-button/toggle-button.component.mjs +6 -6
- package/esm2020/card/card-action/card-action.component.mjs +4 -4
- package/esm2020/card/card-body/card-body.component.mjs +5 -6
- package/esm2020/card/card-footer/card-footer.component.mjs +5 -8
- package/esm2020/card/card-header/card-header.component.mjs +5 -7
- package/esm2020/card/card.component.mjs +5 -7
- package/esm2020/card/card.module.mjs +4 -4
- package/esm2020/carousel/carousel-slide.directive.mjs +16 -0
- package/esm2020/carousel/carousel.component.mjs +211 -0
- package/esm2020/carousel/carousel.module.mjs +38 -0
- package/esm2020/carousel/public-api.mjs +4 -0
- package/esm2020/carousel/theseam-ui-common-carousel.mjs +5 -0
- package/esm2020/checkbox/checkbox.component.mjs +5 -6
- 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 +6 -6
- 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 +2 -1
- package/esm2020/core/common-behaviors/disabled.mjs +2 -1
- package/esm2020/core/common-behaviors/initialized.mjs +2 -1
- package/esm2020/core/common-behaviors/tabindex.mjs +2 -1
- package/esm2020/core/input-decorators/input-boolean.decorator.mjs +4 -5
- package/esm2020/core/input-decorators/input-number.decorator.mjs +4 -5
- 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-filter.mjs +1 -1
- package/esm2020/data-filters/data-filters.module.mjs +4 -4
- package/esm2020/data-filters/filters/data-filter-search/data-filter-search.component.mjs +5 -5
- package/esm2020/data-filters/filters/data-filter-text/data-filter-text.component.mjs +6 -6
- package/esm2020/data-filters/filters/data-filter-toggle-buttons/data-filter-toggle-buttons.component.mjs +11 -8
- package/esm2020/datatable/datatable/datatable.component.mjs +11 -6
- 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 +5 -4
- package/esm2020/datatable/datatable-column/datatable-column.component.mjs +4 -5
- 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 +4 -5
- package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +5 -5
- package/esm2020/datatable/datatable-footer/datatable-footer-tpl.directive.mjs +3 -3
- package/esm2020/datatable/datatable-footer/datatable-footer.directive.mjs +5 -5
- package/esm2020/datatable/datatable-menu-bar/datatable-menu-bar.component.mjs +9 -13
- package/esm2020/datatable/datatable-menu-bar-column-center/datatable-menu-bar-column-center.component.mjs +5 -8
- package/esm2020/datatable/datatable-menu-bar-column-left/datatable-menu-bar-column-left.component.mjs +5 -8
- package/esm2020/datatable/datatable-menu-bar-column-right/datatable-menu-bar-column-right.component.mjs +5 -8
- package/esm2020/datatable/datatable-menu-bar-row/datatable-menu-bar-row.component.mjs +5 -8
- package/esm2020/datatable/datatable-menu-bar-text/datatable-menu-bar-text.component.mjs +4 -5
- 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 +5 -5
- package/esm2020/datatable/datatable.module.mjs +4 -4
- package/esm2020/datatable/directives/datatable-action-menu-item.directive.mjs +5 -6
- package/esm2020/datatable/directives/datatable-action-menu-toggle.directive.mjs +3 -3
- 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/models/columns-alteration.mjs +1 -1
- package/esm2020/datatable/models/columns-alterations/order.columns-alteration.mjs +3 -1
- package/esm2020/datatable/models/datatable-gql-data-source.mjs +1 -1
- package/esm2020/datatable/models/internal-column-props.mjs +1 -1
- package/esm2020/datatable/models/sort-item.mjs +1 -1
- package/esm2020/datatable/services/columns-alterations-manager.service.mjs +4 -4
- package/esm2020/datatable/services/columns-manager.service.mjs +5 -5
- package/esm2020/datatable/services/datatable-column-changes.service.mjs +3 -3
- package/esm2020/datatable/services/datatable-preferences.service.mjs +5 -4
- package/esm2020/datatable/services/datatable-scrollbar-helper.service.mjs +5 -5
- package/esm2020/datatable/utils/map-columns-alterations-states.mjs +4 -1
- package/esm2020/datatable/utils/set-column-defaults.mjs +2 -2
- package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +5 -6
- package/esm2020/datatable-dynamic/datatable-dynamic-filter-container/datatable-dynamic-filter-container.component.mjs +4 -4
- package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-content/datatable-dynamic-menu-bar-content.component.mjs +6 -7
- package/esm2020/datatable-dynamic/datatable-dynamic-menu-bar-item-manifest.mjs +1 -1
- package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +4 -6
- package/esm2020/datatable-dynamic/datatable-dynamic.module.mjs +4 -4
- package/esm2020/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.mjs +6 -6
- package/esm2020/datatable-dynamic/dynamic-datatable-def.service.mjs +7 -7
- package/esm2020/datatable-dynamic/dynamic-datatable-row-actions.service.mjs +6 -6
- package/esm2020/dynamic/action/api/dynamic-action-api.service.mjs +11 -8
- package/esm2020/dynamic/action/dynamic-action-helper.service.mjs +6 -5
- package/esm2020/dynamic/action/link/dynamic-action-link.service.mjs +4 -4
- package/esm2020/dynamic/action/modal/dynamic-action-modal-def.mjs +1 -1
- package/esm2020/dynamic/action/modal/dynamic-action-modal.service.mjs +4 -4
- package/esm2020/dynamic/dynamic-value-helper.service.mjs +5 -4
- package/esm2020/dynamic/evaluators/exporters-data-evaluator/exporters-data-evaluator.mjs +4 -4
- package/esm2020/dynamic/evaluators/jexl-evaluator/jexl-evaluator.mjs +5 -5
- package/esm2020/dynamic-component-loader/dynamic-component-loader.module.mjs +4 -4
- package/esm2020/dynamic-component-loader/dynamic-component-loader.service.mjs +9 -9
- package/esm2020/footer-bar/footer-bar/footer-bar.component.mjs +5 -8
- package/esm2020/footer-bar/footer-bar.module.mjs +5 -5
- package/esm2020/form-field/form-field-error.directive.mjs +4 -4
- 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 +4 -4
- package/esm2020/form-field/form-field.component.mjs +5 -5
- package/esm2020/form-field/form-field.module.mjs +4 -4
- package/esm2020/form-field/input.directive.mjs +10 -9
- 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 +5 -7
- package/esm2020/form-field-error/form-field-error-list/form-field-error-list-item-tpl.directive.mjs +4 -4
- 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 +8 -8
- package/esm2020/form-field-error/form-field-error.module.mjs +4 -4
- package/esm2020/framework/base-layout/base-layout.component.mjs +5 -4
- package/esm2020/framework/base-layout/base-layout.module.mjs +5 -5
- 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 +3 -3
- 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 +5 -7
- package/esm2020/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.mjs +4 -5
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widget-portal-outlet.directive.mjs +7 -7
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets-preferences.service.mjs +6 -5
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.component.mjs +4 -4
- package/esm2020/framework/dashboard/dashboard-widgets/dashboard-widgets.service.mjs +7 -5
- package/esm2020/framework/dashboard/dashboard.component.mjs +5 -5
- package/esm2020/framework/dashboard/dashboard.module.mjs +4 -4
- package/esm2020/framework/dynamic-router/dynamic-route-def.mjs +1 -1
- package/esm2020/framework/dynamic-router/dynamic-router.module.mjs +5 -5
- package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-route-animations.mjs +1 -1
- package/esm2020/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.mjs +5 -6
- package/esm2020/framework/dynamic-router/resolvers/hierarchy-level.resolver.mjs +5 -6
- 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 +5 -4
- package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +5 -5
- package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +5 -6
- package/esm2020/framework/side-nav/side-nav-utils.mjs +2 -1
- package/esm2020/framework/side-nav/side-nav.component.mjs +6 -7
- 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 +4 -6
- 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 +5 -7
- package/esm2020/framework/top-bar/top-bar.component.mjs +4 -6
- package/esm2020/framework/top-bar/top-bar.module.mjs +4 -4
- package/esm2020/google-maps/google-maps/google-maps.component.mjs +53 -32
- package/esm2020/google-maps/google-maps-api-loader/lazy-google-maps-api-loader.mjs +3 -3
- package/esm2020/google-maps/google-maps-api-loader/noop-google-maps-api-loader.mjs +3 -3
- package/esm2020/google-maps/google-maps-contextmenu.mjs +9 -8
- package/esm2020/google-maps/google-maps-controls.service.mjs +3 -3
- package/esm2020/google-maps/google-maps-feature-helpers.mjs +13 -1
- package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +9 -10
- package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.directive.mjs +9 -9
- package/esm2020/google-maps/google-maps-recenter-button-control/google-maps-recenter-button-control.component.mjs +6 -6
- package/esm2020/google-maps/google-maps-upload-button-control/google-maps-upload-button-control.component.mjs +6 -6
- package/esm2020/google-maps/google-maps.module.mjs +8 -6
- package/esm2020/google-maps/google-maps.service.mjs +103 -32
- package/esm2020/google-maps/map-control.component.mjs +3 -3
- package/esm2020/google-maps/map-file-drop/map-file-drop.component.mjs +4 -4
- package/esm2020/google-maps/map-value-manager.service.mjs +3 -3
- package/esm2020/graphql/datatable/datatable-graphql-query-ref.mjs +1 -27
- package/esm2020/graphql/datatable/datatable-graphql.service.mjs +4 -4
- package/esm2020/graphql/datatable/datatable-helpers.mjs +2 -2
- package/esm2020/graphql/datatable/map-filter-states.mjs +2 -1
- package/esm2020/graphql/utils/inline-variables.mjs +2 -1
- package/esm2020/graphql/utils/parse-hints.mjs +3 -3
- package/esm2020/graphql/utils/to-gql.mjs +3 -3
- package/esm2020/icon/icon/icon.component.mjs +5 -5
- package/esm2020/icon/icon-btn/icon-btn.component.mjs +4 -5
- package/esm2020/icon/icon-notification/icon-notification.component.mjs +3 -3
- package/esm2020/icon/icon.module.mjs +4 -4
- package/esm2020/icon/utils/get-known-icon.mjs +71 -71
- package/esm2020/layout/breakpoint-aliases.mjs +1 -1
- package/esm2020/layout/layout.module.mjs +4 -4
- package/esm2020/layout/layout.service.mjs +3 -3
- package/esm2020/layout/observe-media-query.mjs +1 -1
- package/esm2020/loading/loading/loading.component.mjs +8 -9
- 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 +4 -4
- package/esm2020/menu/menu-header/menu-header.component.mjs +3 -3
- package/esm2020/menu/menu-item.component.mjs +44 -17
- package/esm2020/menu/menu-toggle.directive.mjs +203 -44
- package/esm2020/menu/menu.component.mjs +39 -16
- package/esm2020/menu/menu.module.mjs +4 -4
- package/esm2020/modal/directives/modal-close.directive.mjs +3 -3
- 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 +5 -5
- package/esm2020/modal/modal/modal.component.mjs +6 -7
- package/esm2020/modal/modal-body/modal-body.component.mjs +5 -7
- package/esm2020/modal/modal-config.mjs +1 -1
- package/esm2020/modal/modal-container/modal-container.component.mjs +4 -4
- package/esm2020/modal/modal-footer/modal-footer.component.mjs +5 -7
- package/esm2020/modal/modal-header/modal-header.component.mjs +5 -7
- package/esm2020/modal/modal-ref.mjs +1 -1
- package/esm2020/modal/modal.module.mjs +4 -4
- package/esm2020/modal/modal.service.mjs +26 -23
- package/esm2020/modal/route-modal/route-modal.component.mjs +4 -5
- package/esm2020/popover/popover/popover.component.mjs +3 -3
- package/esm2020/popover/popover.directive.mjs +4 -4
- package/esm2020/popover/popover.module.mjs +5 -5
- package/esm2020/progress/progress-circle/progress-circle.component.mjs +10 -10
- package/esm2020/progress/progress.module.mjs +4 -4
- package/esm2020/scrollbar/overlay-scrollbar.directive.mjs +4 -5
- package/esm2020/scrollbar/overlay-scrollbars.service.mjs +4 -4
- package/esm2020/scrollbar/scrollbar.module.mjs +4 -4
- package/esm2020/services/asset-loader.service.mjs +5 -6
- package/esm2020/services/font-loader.service.mjs +5 -6
- 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 +3 -3
- package/esm2020/shared/directives/disable-control.directive.mjs +3 -3
- package/esm2020/shared/directives/elem-resized.directive.mjs +5 -5
- package/esm2020/shared/directives/hover-class-toggle.directive.mjs +4 -4
- package/esm2020/shared/directives/hover-class.directive.mjs +3 -3
- package/esm2020/shared/directives/ng-select-extra.directive.mjs +7 -7
- package/esm2020/shared/directives/ngx-quill-extra.directive.mjs +5 -5
- 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 +8 -8
- package/esm2020/storage/localstorage-memory.mjs +4 -4
- package/esm2020/story-helpers/arg-type-helpers.mjs +1 -1
- package/esm2020/story-helpers/initial-route.service.mjs +3 -3
- package/esm2020/story-helpers/on-story-bootstrapped-trigger.mjs +2 -1
- package/esm2020/story-helpers/public-api.mjs +2 -2
- 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 +4 -4
- package/esm2020/story-helpers/story-toastr.service.mjs +3 -3
- package/esm2020/tabbed/directives/tabbed-tab-content.directive.mjs +5 -5
- package/esm2020/tabbed/directives/tabbed-tab.directive.mjs +5 -4
- package/esm2020/tabbed/tabbed-content/tabbed-content.component.mjs +5 -7
- package/esm2020/tabbed/tabbed-item/tabbed-item.component.mjs +5 -6
- package/esm2020/tabbed/tabbed.component.mjs +4 -4
- package/esm2020/tabbed/tabbed.module.mjs +4 -4
- package/esm2020/tabbed/tabbed.service.mjs +5 -5
- package/esm2020/table/table/table.component.mjs +5 -6
- package/esm2020/table/table.module.mjs +4 -4
- package/esm2020/table-cell-type/services/table-cell-types-helpers.service.mjs +5 -5
- package/esm2020/table-cell-type/table-cell-type-export-props.mjs +1 -1
- package/esm2020/table-cell-type/table-cell-type-models.mjs +1 -1
- package/esm2020/table-cell-type/table-cell-type-selector.component.mjs +5 -6
- 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 +12 -12
- package/esm2020/table-cell-types/table-cell-type-date/table-cell-type-date.component.mjs +8 -12
- package/esm2020/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.mjs +14 -14
- package/esm2020/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.mjs +10 -10
- package/esm2020/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.mjs +14 -14
- package/esm2020/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.mjs +6 -7
- package/esm2020/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.mjs +11 -10
- package/esm2020/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.mjs +7 -8
- package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +11 -8
- package/esm2020/table-cell-types/table-cell-types.module.mjs +4 -4
- package/esm2020/tel-input/intl-tel-input.mjs +2 -2
- package/esm2020/tel-input/phone-number.pipe.mjs +3 -3
- package/esm2020/tel-input/tel-input/tel-input.component.mjs +5 -6
- package/esm2020/tel-input/tel-input.directive.mjs +4 -4
- package/esm2020/tel-input/tel-input.module.mjs +4 -4
- package/esm2020/tel-input/utils/add-country-code.mjs +4 -4
- package/esm2020/tel-input/utils/process-country-codes.mjs +4 -7
- package/esm2020/testing/story-expect.mjs +2 -1
- package/esm2020/tiled-select/components/tiled-select/tiled-select.component.mjs +5 -6
- package/esm2020/tiled-select/components/tiled-select-tile/tiled-select-tile.component.mjs +4 -5
- package/esm2020/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.mjs +12 -13
- 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/testing/index.mjs +1 -1
- package/esm2020/tiled-select/tiled-select.module.mjs +4 -4
- package/esm2020/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.mjs +5 -8
- 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 +7 -7
- package/esm2020/toggle-edit/toggle-edit.module.mjs +4 -4
- package/esm2020/toggle-group/toggle-group-option.directive.mjs +3 -3
- package/esm2020/toggle-group/toggle-group.directive.mjs +6 -6
- package/esm2020/toggle-group/toggle-group.module.mjs +4 -4
- package/esm2020/unsaved-changes-dialog/unsaved-changes-can-deactivate.mjs +5 -5
- package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.component.mjs +5 -8
- package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.guard.mjs +5 -4
- package/esm2020/unsaved-changes-dialog/unsaved-changes-dialog.module.mjs +4 -4
- package/esm2020/utils/array-move.mjs +1 -1
- package/esm2020/utils/cdk/get-closest-widget-cdk-drag.mjs +3 -3
- package/esm2020/utils/file-utils.mjs +2 -2
- package/esm2020/utils/form/get-control-path.mjs +6 -5
- package/esm2020/utils/geo-json/close-polygons.mjs +38 -0
- package/esm2020/utils/geo-json/geo-json-to-area.mjs +3 -3
- package/esm2020/utils/geo-json/is-only-geometry-types.validator.mjs +1 -1
- package/esm2020/utils/geo-json/min-max-points.validator.mjs +5 -5
- package/esm2020/utils/geo-json/read-geo-file.mjs +3 -2
- package/esm2020/utils/has-property.mjs +2 -2
- package/esm2020/utils/load-style-sheet.mjs +2 -2
- package/esm2020/utils/load-style.mjs +2 -2
- package/esm2020/utils/obj-utils.mjs +2 -2
- package/esm2020/utils/polling-ticker.mjs +2 -2
- package/esm2020/utils/public-api.mjs +2 -1
- package/esm2020/utils/router/operators/activated-routes-with-data-property.mjs +2 -2
- package/esm2020/utils/router/route-snapshot-path-full.mjs +2 -2
- package/esm2020/utils/router/route-snapshot-path-relative.mjs +2 -2
- package/esm2020/utils/router/will-have-data-prop.mjs +3 -3
- package/esm2020/utils/subscriber-count.mjs +2 -1
- package/esm2020/utils/toggle-attribute.mjs +6 -5
- package/esm2020/utils/wait-on-condition-async.mjs +5 -5
- package/esm2020/vertical-list-filter/public-api.mjs +3 -0
- package/esm2020/vertical-list-filter/testing/index.mjs +2 -0
- package/esm2020/vertical-list-filter/testing/vertical-list-filter.harness.mjs +28 -0
- package/esm2020/vertical-list-filter/theseam-ui-common-vertical-list-filter.mjs +5 -0
- package/esm2020/vertical-list-filter/vertical-list-filter.component.mjs +52 -0
- package/esm2020/viewers/html-template-viewer/html-template-viewer.component.mjs +4 -4
- package/esm2020/viewers/html-template-viewer/html-template-viewer.module.mjs +4 -4
- package/esm2020/viewers/pdf-viewer/pdf-page/pdf-page.component.mjs +5 -4
- package/esm2020/viewers/pdf-viewer/pdf-renderer.service.mjs +4 -4
- package/esm2020/viewers/pdf-viewer/pdf-viewer.component.mjs +5 -4
- package/esm2020/viewers/pdf-viewer/pdf-viewer.module.mjs +4 -4
- package/esm2020/widget/directives/widget-drag-handle.directive.mjs +7 -7
- 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 +56 -35
- package/esm2020/widget/widget-content-components/widget-button-group/widget-button-group.component.mjs +5 -8
- 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 +5 -8
- 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 +6 -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 +5 -7
- 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 +5 -8
- 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 +5 -5
- 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 +16 -19
- package/esm2020/widget/widget-content-components/widget-list-group/widget-list-group.component.mjs +5 -7
- 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 +5 -5
- 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 +6 -9
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.mjs +5 -6
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.mjs +5 -8
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile-secondary-icon.directive.mjs +5 -5
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile.component.mjs +9 -8
- package/esm2020/widget/widget-content-components/widget-tile/widget-tile.module.mjs +10 -10
- package/esm2020/widget/widget-content-components/widget-tile-list/widget-tile-list.component.mjs +5 -8
- 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 +5 -7
- package/esm2020/widget/widget-registry.service.mjs +6 -5
- package/esm2020/widget/widget.module.mjs +7 -7
- package/fesm2015/theseam-ui-common-asset-reader.mjs +13 -11
- package/fesm2015/theseam-ui-common-asset-reader.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-breadcrumbs.mjs +13 -14
- package/fesm2015/theseam-ui-common-breadcrumbs.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-buttons.mjs +31 -27
- package/fesm2015/theseam-ui-common-buttons.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-card.mjs +23 -31
- package/fesm2015/theseam-ui-common-card.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-carousel.mjs +265 -0
- package/fesm2015/theseam-ui-common-carousel.mjs.map +1 -0
- package/fesm2015/theseam-ui-common-checkbox.mjs +8 -9
- package/fesm2015/theseam-ui-common-checkbox.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-confirm-dialog.mjs +15 -15
- package/fesm2015/theseam-ui-common-confirm-dialog.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-core.mjs +10 -8
- 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 +23 -20
- package/fesm2015/theseam-ui-common-data-filters.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +34 -38
- package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-datatable.mjs +115 -123
- package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs +12 -12
- package/fesm2015/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-dynamic.mjs +36 -26
- package/fesm2015/theseam-ui-common-dynamic.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-footer-bar.mjs +8 -11
- package/fesm2015/theseam-ui-common-footer-bar.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-form-field-error.mjs +21 -23
- package/fesm2015/theseam-ui-common-form-field-error.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-form-field.mjs +29 -28
- package/fesm2015/theseam-ui-common-form-field.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-framework.mjs +153 -160
- package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-google-maps.mjs +221 -113
- package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-graphql.mjs +10 -34
- package/fesm2015/theseam-ui-common-graphql.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-icon.mjs +84 -85
- package/fesm2015/theseam-ui-common-icon.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-layout.mjs +7 -7
- package/fesm2015/theseam-ui-common-layout.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-loading.mjs +14 -15
- package/fesm2015/theseam-ui-common-loading.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-menu.mjs +460 -247
- package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-modal.mjs +71 -76
- package/fesm2015/theseam-ui-common-modal.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-popover.mjs +10 -10
- package/fesm2015/theseam-ui-common-popover.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-progress.mjs +13 -13
- package/fesm2015/theseam-ui-common-progress.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-scrollbar.mjs +10 -11
- package/fesm2015/theseam-ui-common-scrollbar.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-services.mjs +11 -13
- package/fesm2015/theseam-ui-common-services.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-shared.mjs +42 -42
- package/fesm2015/theseam-ui-common-shared.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-storage.mjs +10 -10
- package/fesm2015/theseam-ui-common-storage.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-story-helpers.mjs +25 -100
- package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-tabbed.mjs +27 -29
- package/fesm2015/theseam-ui-common-tabbed.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-table-cell-type.mjs +12 -13
- package/fesm2015/theseam-ui-common-table-cell-type.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-table-cell-types.mjs +87 -89
- package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-table.mjs +8 -9
- package/fesm2015/theseam-ui-common-table.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-tel-input.mjs +21 -25
- package/fesm2015/theseam-ui-common-tel-input.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-testing.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-tiled-select.mjs +31 -34
- package/fesm2015/theseam-ui-common-tiled-select.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-toggle-edit.mjs +20 -23
- package/fesm2015/theseam-ui-common-toggle-edit.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-toggle-group.mjs +12 -12
- package/fesm2015/theseam-ui-common-toggle-group.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs +16 -18
- package/fesm2015/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-utils.mjs +75 -33
- package/fesm2015/theseam-ui-common-utils.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-vertical-list-filter.mjs +96 -0
- package/fesm2015/theseam-ui-common-vertical-list-filter.mjs.map +1 -0
- package/fesm2015/theseam-ui-common-viewers.mjs +22 -20
- package/fesm2015/theseam-ui-common-viewers.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-widget.mjs +211 -217
- package/fesm2015/theseam-ui-common-widget.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-asset-reader.mjs +13 -11
- package/fesm2020/theseam-ui-common-asset-reader.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-breadcrumbs.mjs +13 -14
- package/fesm2020/theseam-ui-common-breadcrumbs.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-buttons.mjs +31 -27
- package/fesm2020/theseam-ui-common-buttons.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-card.mjs +23 -31
- package/fesm2020/theseam-ui-common-card.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-carousel.mjs +265 -0
- package/fesm2020/theseam-ui-common-carousel.mjs.map +1 -0
- package/fesm2020/theseam-ui-common-checkbox.mjs +8 -9
- package/fesm2020/theseam-ui-common-checkbox.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-confirm-dialog.mjs +15 -15
- package/fesm2020/theseam-ui-common-confirm-dialog.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-core.mjs +10 -8
- 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 +23 -20
- package/fesm2020/theseam-ui-common-data-filters.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +34 -38
- package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-datatable.mjs +115 -123
- package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs +12 -12
- package/fesm2020/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-dynamic.mjs +36 -26
- package/fesm2020/theseam-ui-common-dynamic.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-footer-bar.mjs +8 -11
- package/fesm2020/theseam-ui-common-footer-bar.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-form-field-error.mjs +21 -23
- package/fesm2020/theseam-ui-common-form-field-error.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-form-field.mjs +29 -28
- package/fesm2020/theseam-ui-common-form-field.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-framework.mjs +153 -160
- package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-google-maps.mjs +223 -117
- package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-graphql.mjs +10 -34
- package/fesm2020/theseam-ui-common-graphql.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-icon.mjs +84 -85
- package/fesm2020/theseam-ui-common-icon.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-layout.mjs +16 -8
- package/fesm2020/theseam-ui-common-layout.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-loading.mjs +14 -15
- package/fesm2020/theseam-ui-common-loading.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-menu.mjs +450 -244
- package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-modal.mjs +71 -76
- package/fesm2020/theseam-ui-common-modal.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-models.mjs +2 -1
- package/fesm2020/theseam-ui-common-models.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-popover.mjs +10 -10
- package/fesm2020/theseam-ui-common-popover.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-progress.mjs +13 -13
- package/fesm2020/theseam-ui-common-progress.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-scrollbar.mjs +10 -11
- package/fesm2020/theseam-ui-common-scrollbar.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-services.mjs +11 -13
- package/fesm2020/theseam-ui-common-services.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-shared.mjs +42 -42
- package/fesm2020/theseam-ui-common-shared.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-storage.mjs +10 -10
- package/fesm2020/theseam-ui-common-storage.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-story-helpers.mjs +25 -96
- package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-tabbed.mjs +27 -29
- package/fesm2020/theseam-ui-common-tabbed.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-table-cell-type.mjs +12 -13
- package/fesm2020/theseam-ui-common-table-cell-type.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-table-cell-types.mjs +87 -89
- package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-table.mjs +8 -9
- package/fesm2020/theseam-ui-common-table.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-tel-input.mjs +21 -25
- package/fesm2020/theseam-ui-common-tel-input.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-testing.mjs +1 -0
- package/fesm2020/theseam-ui-common-testing.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-tiled-select.mjs +31 -34
- package/fesm2020/theseam-ui-common-tiled-select.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-toggle-edit.mjs +20 -23
- package/fesm2020/theseam-ui-common-toggle-edit.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-toggle-group.mjs +12 -12
- package/fesm2020/theseam-ui-common-toggle-group.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs +16 -18
- package/fesm2020/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-utils.mjs +75 -33
- package/fesm2020/theseam-ui-common-utils.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-vertical-list-filter.mjs +87 -0
- package/fesm2020/theseam-ui-common-vertical-list-filter.mjs.map +1 -0
- package/fesm2020/theseam-ui-common-viewers.mjs +22 -20
- package/fesm2020/theseam-ui-common-viewers.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-widget.mjs +211 -217
- package/fesm2020/theseam-ui-common-widget.mjs.map +1 -1
- package/footer-bar/footer-bar/footer-bar.component.d.ts +1 -4
- package/form-field-error/form-field-error/form-field-error.component.d.ts +1 -4
- package/form-field-error/form-field-error-list/form-field-error-list.component.d.ts +2 -3
- package/framework/dashboard/dashboard-widget-container/dashboard-widget-container.component.d.ts +2 -4
- package/framework/dashboard/dashboard-widget-template-container/dashboard-widget-template-container.component.d.ts +2 -3
- package/framework/dashboard/dashboard.component.d.ts +0 -1
- package/framework/dynamic-router/hierarchy-router-outlet/hierarchy-router-outlet.component.d.ts +2 -3
- package/framework/dynamic-router/resolvers/hierarchy-level.resolver.d.ts +0 -1
- package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.d.ts +2 -4
- package/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.d.ts +3 -5
- package/framework/top-bar/top-bar-title/top-bar-title.component.d.ts +1 -4
- package/framework/top-bar/top-bar.component.d.ts +2 -4
- package/google-maps/google-maps/google-maps.component.d.ts +11 -7
- package/google-maps/google-maps-feature-helpers.d.ts +3 -0
- package/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.d.ts +2 -3
- package/google-maps/google-maps.module.d.ts +1 -1
- package/google-maps/google-maps.service.d.ts +7 -0
- package/graphql/datatable/datatable-graphql-query-ref.d.ts +0 -1
- package/icon/icon-btn/icon-btn.component.d.ts +2 -3
- package/loading/loading/loading.component.d.ts +1 -4
- package/menu/menu-item.component.d.ts +20 -10
- package/menu/menu-toggle.directive.d.ts +34 -11
- package/menu/menu.component.d.ts +16 -2
- package/modal/modal/modal.component.d.ts +3 -4
- package/modal/modal-body/modal-body.component.d.ts +1 -4
- package/modal/modal-footer/modal-footer.component.d.ts +1 -4
- package/modal/modal-header/modal-header.component.d.ts +1 -4
- package/modal/route-modal/route-modal.component.d.ts +2 -3
- package/package.json +17 -1
- package/progress/progress-circle/progress-circle.component.d.ts +0 -1
- package/scrollbar/overlay-scrollbar.directive.d.ts +2 -3
- package/services/asset-loader.service.d.ts +0 -1
- package/services/font-loader.service.d.ts +0 -1
- package/story-helpers/public-api.d.ts +0 -1
- package/tabbed/directives/tabbed-tab-content.directive.d.ts +0 -1
- package/tabbed/tabbed-content/tabbed-content.component.d.ts +1 -4
- package/tabbed/tabbed-item/tabbed-item.component.d.ts +2 -4
- package/tabbed/tabbed.service.d.ts +0 -1
- package/table/table/table.component.d.ts +2 -3
- package/table-cell-type/table-cell-type-models.d.ts +1 -1
- package/table-cell-type/table-cell-type-selector.component.d.ts +3 -4
- package/table-cell-types/table-cell-type-currency/table-cell-type-currency.component.d.ts +2 -3
- package/table-cell-types/table-cell-type-date/table-cell-type-date.component.d.ts +2 -3
- package/table-cell-types/table-cell-type-decimal/table-cell-type-decimal.component.d.ts +2 -3
- package/table-cell-types/table-cell-type-icon/table-cell-type-icon.component.d.ts +2 -3
- package/table-cell-types/table-cell-type-integer/table-cell-type-integer.component.d.ts +2 -3
- package/table-cell-types/table-cell-type-phone/table-cell-type-phone.component.d.ts +2 -3
- package/table-cell-types/table-cell-type-progress-circle/table-cell-type-progress-circle.component.d.ts +2 -3
- package/table-cell-types/table-cell-type-progress-circle-icon/table-cell-type-progress-circle-icon.component.d.ts +2 -3
- package/tiled-select/components/tiled-select/tiled-select.component.d.ts +2 -3
- package/tiled-select/components/tiled-select-tile-icon/tiled-select-tile-icon.component.d.ts +1 -4
- package/toggle-edit/toggle-edit-actions-container/toggle-edit-actions-container.component.d.ts +1 -4
- package/toggle-group/toggle-group.directive.d.ts +0 -1
- package/unsaved-changes-dialog/unsaved-changes-dialog.component.d.ts +1 -4
- package/utils/geo-json/close-polygons.d.ts +9 -0
- package/utils/obj-utils.d.ts +2 -2
- package/utils/public-api.d.ts +1 -0
- package/vertical-list-filter/index.d.ts +5 -0
- package/vertical-list-filter/public-api.d.ts +2 -0
- package/vertical-list-filter/testing/index.d.ts +1 -0
- package/vertical-list-filter/testing/vertical-list-filter.harness.d.ts +9 -0
- package/vertical-list-filter/vertical-list-filter.component.d.ts +17 -0
- package/widget/widget/widget.component.d.ts +10 -11
- package/widget/widget/widget.component.scss +12 -1
- package/widget/widget-content-components/widget-button-group/widget-button-group.component.d.ts +1 -4
- package/widget/widget-content-components/widget-content-header/widget-content-header.component.d.ts +1 -4
- package/widget/widget-content-components/widget-empty-label/widget-empty-label.component.d.ts +2 -3
- package/widget/widget-content-components/widget-footer-link/widget-footer-link.component.d.ts +1 -4
- package/widget/widget-content-components/widget-footer-text/widget-footer-text.component.d.ts +1 -4
- package/widget/widget-content-components/widget-header-badge/widget-header-badge.component.d.ts +2 -3
- package/widget/widget-content-components/widget-list-group/widget-list-group-item/widget-list-group-item.component.d.ts +4 -7
- package/widget/widget-content-components/widget-list-group/widget-list-group.component.d.ts +1 -4
- package/widget/widget-content-components/widget-table/widget-table.component.d.ts +0 -1
- package/widget/widget-content-components/widget-tile/widget-tile-footer/widget-tile-footer.component.d.ts +1 -4
- package/widget/widget-content-components/widget-tile/widget-tile-footer-item/widget-tile-footer-item.component.d.ts +2 -3
- package/widget/widget-content-components/widget-tile/widget-tile-group/widget-tile-group.component.d.ts +1 -4
- package/widget/widget-content-components/widget-tile-list/widget-tile-list.component.d.ts +1 -4
- package/widget/widget-footer/widget-footer.component.d.ts +1 -4
- package/esm2020/story-helpers/args-to-tpl.mjs +0 -72
- package/story-helpers/args-to-tpl.d.ts +0 -24
|
@@ -171,8 +171,8 @@ export class ModalContainerComponent extends BasePortalOutlet {
|
|
|
171
171
|
return this._elementRef.nativeElement;
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
|
-
ModalContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
175
|
-
ModalContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
174
|
+
ModalContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ModalContainerComponent, deps: [{ token: i0.ElementRef }, { token: i1.ConfigurableFocusTrapFactory }, { token: i0.ChangeDetectorRef }, { token: DOCUMENT, optional: true }, { token: i2.ModalConfig }], target: i0.ɵɵFactoryTarget.Component });
|
|
175
|
+
ModalContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ModalContainerComponent, selector: "seam-modal-container", host: { listeners: { "@dialog.start": "_onAnimationStart($event)", "@dialog.done": "_animationDone.next($event)", "click": "_onClick($event)" }, properties: { "@dialog": "{\n value: _state,\n params: {\n enterAnimationDuration: _config.enterAnimationDuration,\n exitAnimationDuration: _config.exitAnimationDuration\n }\n }", "attr.id": "this._idAttr", "attr.aria-label": "this._ariaLabel", "attr.aria-describedby": "this._ariaDescribedBy", "attr.role": "this._role", "class.seam-modal-container": "this._seamModalContainer", "class.modal-dialog": "this._modalDialog", "class.modal-dialog-centered": "this._modalDialogCentered", "class.modal-sm": "this._modalDialogSm", "class.modal-lg": "this._modalDialogLg", "class.modal-xl": "this._modalDialogXl" } }, viewQueries: [{ propertyName: "_portalHost", first: true, predicate: CdkPortalOutlet /*, { static: true }*/, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"modal-content\" [tabindex]=\"-1\">\n <ng-template cdkPortalOutlet></ng-template>\n</div>\n", styles: [":host[tabindex=\"-1\"]:focus:not(:focus-visible){outline:0!important}\n"], dependencies: [{ kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], animations: [
|
|
176
176
|
trigger('dialog', [
|
|
177
177
|
state('enter', style({ opacity: 1 })),
|
|
178
178
|
state('exit, void', style({ opacity: 0 })),
|
|
@@ -180,7 +180,7 @@ ModalContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
180
180
|
transition('* => exit, * => void', animate('{{exitAnimationDuration}}')),
|
|
181
181
|
])
|
|
182
182
|
] });
|
|
183
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
183
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ModalContainerComponent, decorators: [{
|
|
184
184
|
type: Component,
|
|
185
185
|
args: [{ selector: 'seam-modal-container', animations: [
|
|
186
186
|
trigger('dialog', [
|
|
@@ -242,4 +242,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
|
|
|
242
242
|
type: HostListener,
|
|
243
243
|
args: ['click', ['$event']]
|
|
244
244
|
}] } });
|
|
245
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9tb2RhbC9tb2RhbC1jb250YWluZXIvbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9tb2RhbC9tb2RhbC1jb250YWluZXIvbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQWtCLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRWhHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQW1DLE1BQU0scUJBQXFCLENBQUE7QUFDeEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzFDLE9BQU8sRUFFTCxTQUFTLEVBSVQsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBRU4sUUFBUSxFQUNSLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7OztBQUlyRCxNQUFNLFVBQVUsc0NBQXNDO0lBQ3BELE1BQU0sS0FBSyxDQUFDLHVFQUF1RSxDQUFDLENBQUE7QUFDdEYsQ0FBQztBQUVEOzs7R0FHRztBQTJCSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsZ0JBQWdCO0lBRTNELElBQTRCLE9BQU8sS0FBSyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUEsQ0FBQyxDQUFDO0lBRXpELGtHQUFrRztJQUNsRyxnR0FBZ0c7SUFDaEcseUJBQXlCO0lBQ3pCLCtDQUErQztJQUMvQyxJQUFvQyxVQUFVLEtBQUssT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUEsQ0FBQyxDQUFDO0lBRTFGLElBQ0ksZ0JBQWdCLEtBQUssT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQSxDQUFDLENBQUM7SUFFOUQsSUFBOEIsS0FBSyxLQUFLLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUEsQ0FBQyxDQUFDO0lBUWxFLFlBQ1UsV0FBb0MsRUFDcEMsaUJBQStDLEVBQy9DLGtCQUFxQyxFQUNQLFNBQWM7SUFDcEQsZ0NBQWdDO0lBQ3pCLE9BQW9CO1FBQzNCLEtBQUssRUFBRSxDQUFBO1FBTkMsZ0JBQVcsR0FBWCxXQUFXLENBQXlCO1FBQ3BDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBOEI7UUFDL0MsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNQLGNBQVMsR0FBVCxTQUFTLENBQUs7UUFFN0MsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQVo3Qiw4REFBOEQ7UUFFbkIsd0JBQW1CLEdBQUcsSUFBSSxDQUFBO1FBc0NyRSxxQ0FBcUM7UUFDckMsV0FBTSxHQUE4QixPQUFPLENBQUE7UUFFM0MsOEZBQThGO1FBQ3RGLHlDQUFvQyxHQUF1QixJQUFJLENBQUE7UUFLcEMsaUJBQVksR0FBRyxJQUFJLENBQUE7UUFDVix5QkFBb0IsR0FBRyxJQUFJLENBQUE7UUFTdkUsNERBQTREO1FBQzVELGlCQUFZLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUE7UUFFM0MsMkRBQTJEO1FBQzNELGdCQUFXLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUE7UUFFMUMsMkRBQTJEO1FBQzNELGdCQUFXLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUE7UUFFMUMsMERBQTBEO1FBQzFELGVBQVUsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQTtRQUV6Qyx5Q0FBeUM7UUFDekMsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBa0IsQ0FBQTtRQXpENUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFO1lBQzlFLEtBQUssRUFBRSxJQUFJO1NBQ21CLENBQUMsQ0FBQTtRQUVqQywwRkFBMEY7UUFDMUYsOEZBQThGO1FBQzlGLHVEQUF1RDtRQUN2RCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNyRCxPQUFPLENBQUMsQ0FBQyxTQUFTLEtBQUssQ0FBQyxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUE7UUFDL0QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDcEIsNERBQTREO1lBQzVELElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFBO2dCQUNyQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFBO2dCQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFBO2FBQzVCO1lBRUQsSUFBSSxLQUFLLENBQUMsU0FBUyxLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssTUFBTSxDQUFDLEVBQUU7Z0JBQ3pGLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFBO2dCQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFBO2dCQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFBO2FBQzNCO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBY0QsSUFBbUMsY0FBYyxLQUFLLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFBLENBQUMsQ0FBQztJQUM5RixJQUFtQyxjQUFjLEtBQUssT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUEsQ0FBQyxDQUFDO0lBQzlGLElBQW1DLGNBQWMsS0FBSyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQSxDQUFDLENBQUM7SUFvQjlGLDBDQUEwQztJQUUxQyxRQUFRLENBQUMsS0FBYztRQUNyQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUE7SUFDekIsQ0FBQztJQUVELDhGQUE4RjtJQUM5RixXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ2hDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxxQkFBcUIsQ0FBSSxNQUEwQjtRQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNyQixNQUFNLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO1NBQ3RDO1FBRUQsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ2xDLHNDQUFzQyxFQUFFLENBQUE7U0FDekM7UUFFRCxJQUFJLENBQUMsNkJBQTZCLEVBQUUsQ0FBQTtRQUNwQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDdkQsQ0FBQztJQUVEOzs7T0FHRztJQUNILG9CQUFvQixDQUFJLE1BQXlCO1FBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLE1BQU0sS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUE7U0FDdEM7UUFFRCxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDbEMsc0NBQXNDLEVBQUUsQ0FBQTtTQUN6QztRQUVELElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFBO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUN0RCxDQUFDO0lBRUQsaUVBQWlFO0lBQ2pFLGlCQUFpQixDQUFDLEtBQXFCO1FBQ3JDLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFBO1NBQzdCO1FBQ0QsSUFBSSxLQUFLLENBQUMsU0FBUyxLQUFLLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssTUFBTSxDQUFDLEVBQUU7WUFDekYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtZQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFBO1NBQzVCO0lBQ0gsQ0FBQztJQUVELHdDQUF3QztJQUN4QyxhQUFhO1FBQ1gsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7UUFFcEIsc0RBQXNEO1FBQ3RELG1EQUFtRDtRQUNuRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUE7SUFDeEMsQ0FBQztJQUVELHNGQUFzRjtJQUM5RSw2QkFBNkI7UUFDbkMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxvQ0FBb0MsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQTRCLENBQUE7WUFFdkYsd0ZBQXdGO1lBQ3hGLG9GQUFvRjtZQUNwRixvQ0FBb0M7WUFDcEMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFBO1NBQ3JFO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLDhCQUE4QjtRQUNwQywyRkFBMkY7UUFDM0YsMkZBQTJGO1FBQzNGLDRDQUE0QztRQUM1QyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsNEJBQTRCLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0JBQ2xFLHdFQUF3RTtnQkFDeEUsaUVBQWlFO2dCQUNqRSxJQUFJLENBQUMsYUFBYSxFQUFFO29CQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtpQkFDdkM7WUFDSCxDQUFDLENBQUMsQ0FBQTtTQUNIO0lBQ0gsQ0FBQztJQUVELDJFQUEyRTtJQUNuRSx1QkFBdUI7UUFDN0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG9DQUFvQyxDQUFBO1FBQ3pELHlGQUF5RjtRQUN6RixJQUFJLE9BQU8sSUFBSSxPQUFPLE9BQU8sQ0FBQyxLQUFLLEtBQUssVUFBVSxFQUFFO1lBQ2xELE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtTQUNoQjtJQUNILENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQTtJQUN2QyxDQUFDOztvSEF0TVUsdUJBQXVCLHlIQXlCWixRQUFRO3dHQXpCbkIsdUJBQXVCLDQzQkF3RXZCLGVBQWUsQ0FBQyxzQkFBc0IscUZDaEluRCwwR0FHQSxzUkQrQmM7UUFDVixPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ2hCLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7WUFDbkMsS0FBSyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQztZQUN4QyxVQUFVLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1lBQy9ELFVBQVUsQ0FBQyxzQkFBc0IsRUFBRSxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUN6RSxDQUFDO0tBQ0g7MkZBZVUsdUJBQXVCO2tCQTFCbkMsU0FBUzsrQkFDRSxzQkFBc0IsY0FHcEI7d0JBQ1YsT0FBTyxDQUFDLFFBQVEsRUFBRTs0QkFDaEIsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQzs0QkFDbkMsS0FBSyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsRUFBQyxPQUFPLEVBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQzs0QkFDeEMsVUFBVSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsNEJBQTRCLENBQUMsQ0FBQzs0QkFDL0QsVUFBVSxDQUFDLHNCQUFzQixFQUFFLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO3lCQUN6RSxDQUFDO3FCQUNILFFBRUs7d0JBQ0osV0FBVyxFQUFFOzs7Ozs7TUFNWDt3QkFDRixpQkFBaUIsRUFBRSwyQkFBMkI7d0JBQzlDLGdCQUFnQixFQUFFLDZCQUE2QjtxQkFDaEQ7OzBCQTRCRSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLFFBQVE7c0VBdkJGLE9BQU87c0JBQWxDLFdBQVc7dUJBQUMsU0FBUztnQkFNYyxVQUFVO3NCQUE3QyxXQUFXO3VCQUFDLGlCQUFpQjtnQkFHMUIsZ0JBQWdCO3NCQURuQixXQUFXO3VCQUFDLHVCQUF1QjtnQkFHTixLQUFLO3NCQUFsQyxXQUFXO3VCQUFDLFdBQVc7Z0JBSW1CLG1CQUFtQjtzQkFBN0QsV0FBVzt1QkFBQyw0QkFBNEI7Z0JBK0NOLFlBQVk7c0JBQTlDLFdBQVc7dUJBQUMsb0JBQW9CO2dCQUNXLG9CQUFvQjtzQkFBL0QsV0FBVzt1QkFBQyw2QkFBNkI7Z0JBRVAsY0FBYztzQkFBaEQsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBQ00sY0FBYztzQkFBaEQsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBQ00sY0FBYztzQkFBaEQsV0FBVzt1QkFBQyxnQkFBZ0I7Z0JBR3dDLFdBQVc7c0JBQS9FLFNBQVM7dUJBQUMsZUFBZSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFtQm5FLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBRSxRQUFRLENBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBBbmltYXRpb25FdmVudCwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucydcbmltcG9ydCB7IENvbmZpZ3VyYWJsZUZvY3VzVHJhcCwgQ29uZmlndXJhYmxlRm9jdXNUcmFwQ29uZmlnLCBDb25maWd1cmFibGVGb2N1c1RyYXBGYWN0b3J5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknXG5pbXBvcnQgeyBCYXNlUG9ydGFsT3V0bGV0LCBDZGtQb3J0YWxPdXRsZXQsIENvbXBvbmVudFBvcnRhbCwgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJ1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgTW9kYWxDb25maWcgfSBmcm9tICcuLi9tb2RhbC1jb25maWcnXG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd0RpYWxvZ0NvbnRlbnRBbHJlYWR5QXR0YWNoZWRFcnJvcigpIHtcbiAgdGhyb3cgRXJyb3IoJ0F0dGVtcHRpbmcgdG8gYXR0YWNoIGRpYWxvZyBjb250ZW50IGFmdGVyIGNvbnRlbnQgaXMgYWxyZWFkeSBhdHRhY2hlZCcpXG59XG5cbi8qKlxuICogSW50ZXJuYWwgY29tcG9uZW50IHRoYXQgd3JhcHMgdXNlci1wcm92aWRlZCBkaWFsb2cgY29udGVudC5cbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2VhbS1tb2RhbC1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdkaWFsb2cnLCBbXG4gICAgICBzdGF0ZSgnZW50ZXInLCBzdHlsZSh7b3BhY2l0eTogMX0pKSxcbiAgICAgIHN0YXRlKCdleGl0LCB2b2lkJywgc3R5bGUoe29wYWNpdHk6IDB9KSksXG4gICAgICB0cmFuc2l0aW9uKCcqID0+IGVudGVyJywgYW5pbWF0ZSgne3tlbnRlckFuaW1hdGlvbkR1cmF0aW9ufX0nKSksXG4gICAgICB0cmFuc2l0aW9uKCcqID0+IGV4aXQsICogPT4gdm9pZCcsIGFuaW1hdGUoJ3t7ZXhpdEFuaW1hdGlvbkR1cmF0aW9ufX0nKSksXG4gICAgXSlcbiAgXSxcbiAgLy8gdHNsaW50OmRpc2FibGU6dXNlLWhvc3QtcHJvcGVydHktZGVjb3JhdG9yXG4gIGhvc3Q6IHtcbiAgICAnW0BkaWFsb2ddJzogYHtcbiAgICAgIHZhbHVlOiBfc3RhdGUsXG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgZW50ZXJBbmltYXRpb25EdXJhdGlvbjogX2NvbmZpZy5lbnRlckFuaW1hdGlvbkR1cmF0aW9uLFxuICAgICAgICBleGl0QW5pbWF0aW9uRHVyYXRpb246IF9jb25maWcuZXhpdEFuaW1hdGlvbkR1cmF0aW9uXG4gICAgICB9XG4gICAgfWAsXG4gICAgJyhAZGlhbG9nLnN0YXJ0KSc6ICdfb25BbmltYXRpb25TdGFydCgkZXZlbnQpJyxcbiAgICAnKEBkaWFsb2cuZG9uZSknOiAnX2FuaW1hdGlvbkRvbmUubmV4dCgkZXZlbnQpJyxcbiAgfSxcbiAgLy8gdHNsaW50OmVuYWJsZTp1c2UtaG9zdC1wcm9wZXJ0eS1kZWNvcmF0b3Jcbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxDb250YWluZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlUG9ydGFsT3V0bGV0IGltcGxlbWVudHMgT25EZXN0cm95IHtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBnZXQgX2lkQXR0cigpIHsgcmV0dXJuIHRoaXMuX2lkIH1cblxuICAvLyBASG9zdEJpbmRpbmcgaXMgdXNlZCBpbiB0aGUgY2xhc3MgYXMgaXQgaXMgZXhwZWN0ZWQgdG8gYmUgZXh0ZW5kZWQuICBTaW5jZSBAQ29tcG9uZW50IGRlY29yYXRvclxuICAvLyBtZXRhZGF0YSBpcyBub3QgaW5oZXJpdGVkIGJ5IGNoaWxkIGNsYXNzZXMsIGluc3RlYWQgdGhlIGhvc3QgYmluZGluZyBkYXRhIGlzIGRlZmluZWQgaW4gYSB3YXlcbiAgLy8gdGhhdCBjYW4gYmUgaW5oZXJpdGVkLlxuICAvLyB0c2xpbnQ6ZGlzYWJsZTpuby1ob3N0LWRlY29yYXRvci1pbi1jb25jcmV0ZVxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbCcpIGdldCBfYXJpYUxhYmVsKCkgeyByZXR1cm4gdGhpcy5fY29uZmlnLmFyaWFMYWJlbCB8fCBudWxsIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kZXNjcmliZWRieScpXG4gIGdldCBfYXJpYURlc2NyaWJlZEJ5KCkgeyByZXR1cm4gdGhpcy5fY29uZmlnLmFyaWFEZXNjcmliZWRCeSB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSBnZXQgX3JvbGUoKSB7IHJldHVybiB0aGlzLl9jb25maWcucm9sZSB9XG5cbiAgLy8gQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JykgZ2V0IF90YWJpbmRleCgpIHsgcmV0dXJuIC0xIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNlYW0tbW9kYWwtY29udGFpbmVyJykgX3NlYW1Nb2RhbENvbnRhaW5lciA9IHRydWVcblxuICBfaWQ6IHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGxcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIF9mb2N1c1RyYXBGYWN0b3J5OiBDb25maWd1cmFibGVGb2N1c1RyYXBGYWN0b3J5LFxuICAgIHByaXZhdGUgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2N1bWVudDogYW55LFxuICAgIC8qKiBUaGUgZGlhbG9nIGNvbmZpZ3VyYXRpb24uICovXG4gICAgcHVibGljIF9jb25maWc6IE1vZGFsQ29uZmlnKSB7XG4gICAgc3VwZXIoKVxuXG4gICAgdGhpcy5fZm9jdXNUcmFwID0gdGhpcy5fZm9jdXNUcmFwRmFjdG9yeS5jcmVhdGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB7XG4gICAgICBkZWZlcjogdHJ1ZSxcbiAgICB9IGFzIENvbmZpZ3VyYWJsZUZvY3VzVHJhcENvbmZpZylcblxuICAgIC8vIFdlIHVzZSBhIFN1YmplY3Qgd2l0aCBhIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCByYXRoZXIgdGhhbiBhIGNhbGxiYWNrIGF0dGFjaGVkIHRvIC5kb25lLFxuICAgIC8vIGJlY2F1c2Ugc29tZSBicm93c2VycyBmaXJlIHRoZSBkb25lIGV2ZW50IHR3aWNlIGFuZCB3ZSBkb24ndCB3YW50IHRvIGVtaXQgZHVwbGljYXRlIGV2ZW50cy5cbiAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzI0MDg0XG4gICAgdGhpcy5fYW5pbWF0aW9uRG9uZS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCh4LCB5KSA9PiB7XG4gICAgICByZXR1cm4geC5mcm9tU3RhdGUgPT09IHkuZnJvbVN0YXRlICYmIHgudG9TdGF0ZSA9PT0geS50b1N0YXRlXG4gICAgfSkpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAvLyBFbWl0IGxpZmVjeWNsZSBldmVudHMgYmFzZWQgb24gYW5pbWF0aW9uIGBkb25lYCBjYWxsYmFjay5cbiAgICAgIGlmIChldmVudC50b1N0YXRlID09PSAnZW50ZXInKSB7XG4gICAgICAgIHRoaXMuX2F1dG9Gb2N1c0ZpcnN0VGFiYmFibGVFbGVtZW50KClcbiAgICAgICAgdGhpcy5fYWZ0ZXJFbnRlci5uZXh0KClcbiAgICAgICAgdGhpcy5fYWZ0ZXJFbnRlci5jb21wbGV0ZSgpXG4gICAgICB9XG5cbiAgICAgIGlmIChldmVudC5mcm9tU3RhdGUgPT09ICdlbnRlcicgJiYgKGV2ZW50LnRvU3RhdGUgPT09ICd2b2lkJyB8fCBldmVudC50b1N0YXRlID09PSAnZXhpdCcpKSB7XG4gICAgICAgIHRoaXMuX3JldHVybkZvY3VzQWZ0ZXJEaWFsb2coKVxuICAgICAgICB0aGlzLl9hZnRlckV4aXQubmV4dCgpXG4gICAgICAgIHRoaXMuX2FmdGVyRXhpdC5jb21wbGV0ZSgpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIC8qKiBTdGF0ZSBvZiB0aGUgZGlhbG9nIGFuaW1hdGlvbi4gKi9cbiAgX3N0YXRlOiAndm9pZCcgfCAnZW50ZXInIHwgJ2V4aXQnID0gJ2VudGVyJ1xuXG4gIC8qKiBFbGVtZW50IHRoYXQgd2FzIGZvY3VzZWQgYmVmb3JlIHRoZSBkaWFsb2cgd2FzIG9wZW5lZC4gU2F2ZSB0aGlzIHRvIHJlc3RvcmUgdXBvbiBjbG9zZS4gKi9cbiAgcHJpdmF0ZSBfZWxlbWVudEZvY3VzZWRCZWZvcmVEaWFsb2dXYXNPcGVuZWQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGxcblxuICAgLyoqIFRoZSBjbGFzcyB0aGF0IHRyYXBzIGFuZCBtYW5hZ2VzIGZvY3VzIHdpdGhpbiB0aGUgZGlhbG9nLiAqL1xuICBwcml2YXRlIF9mb2N1c1RyYXA6IENvbmZpZ3VyYWJsZUZvY3VzVHJhcFxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MubW9kYWwtZGlhbG9nJykgX21vZGFsRGlhbG9nID0gdHJ1ZVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1vZGFsLWRpYWxvZy1jZW50ZXJlZCcpIF9tb2RhbERpYWxvZ0NlbnRlcmVkID0gdHJ1ZVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MubW9kYWwtc20nKSBnZXQgX21vZGFsRGlhbG9nU20oKSB7IHJldHVybiB0aGlzLl9jb25maWcubW9kYWxTaXplID09PSAnc20nIH1cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tb2RhbC1sZycpIGdldCBfbW9kYWxEaWFsb2dMZygpIHsgcmV0dXJuIHRoaXMuX2NvbmZpZy5tb2RhbFNpemUgPT09ICdsZycgfVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1vZGFsLXhsJykgZ2V0IF9tb2RhbERpYWxvZ1hsKCkgeyByZXR1cm4gdGhpcy5fY29uZmlnLm1vZGFsU2l6ZSA9PT0gJ3hsJyB9XG5cbiAgLyoqIFRoZSBwb3J0YWwgaG9zdCBpbnNpZGUgb2YgdGhpcyBjb250YWluZXIgaW50byB3aGljaCB0aGUgZGlhbG9nIGNvbnRlbnQgd2lsbCBiZSBsb2FkZWQuICovXG4gIEBWaWV3Q2hpbGQoQ2RrUG9ydGFsT3V0bGV0IC8qLCB7IHN0YXRpYzogdHJ1ZSB9Ki8sIHsgc3RhdGljOiB0cnVlIH0pIF9wb3J0YWxIb3N0PzogQ2RrUG9ydGFsT3V0bGV0XG5cbiAgLyoqIEEgc3ViamVjdCBlbWl0dGluZyBiZWZvcmUgdGhlIGRpYWxvZyBlbnRlcnMgdGhlIHZpZXcuICovXG4gIF9iZWZvcmVFbnRlcjogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KClcblxuICAvKiogQSBzdWJqZWN0IGVtaXR0aW5nIGFmdGVyIHRoZSBkaWFsb2cgZW50ZXJzIHRoZSB2aWV3LiAqL1xuICBfYWZ0ZXJFbnRlcjogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KClcblxuICAvKiogQSBzdWJqZWN0IGVtaXR0aW5nIGJlZm9yZSB0aGUgZGlhbG9nIGV4aXRzIHRoZSB2aWV3LiAqL1xuICBfYmVmb3JlRXhpdDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KClcblxuICAvKiogQSBzdWJqZWN0IGVtaXR0aW5nIGFmdGVyIHRoZSBkaWFsb2cgZXhpdHMgdGhlIHZpZXcuICovXG4gIF9hZnRlckV4aXQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpXG5cbiAgLyoqIFN0cmVhbSBvZiBhbmltYXRpb24gYGRvbmVgIGV2ZW50cy4gKi9cbiAgX2FuaW1hdGlvbkRvbmUgPSBuZXcgU3ViamVjdDxBbmltYXRpb25FdmVudD4oKVxuXG4gIC8vIE5PVEU6IEZvciBjdXJyZW50IGJvb3RzdHJhcCBzdHlsZSBtb2RhbFxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsgJyRldmVudCcgXSlcbiAgX29uQ2xpY2soZXZlbnQ6IFVJRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICB9XG5cbiAgLyoqIERlc3Ryb3kgZm9jdXMgdHJhcCB0byBwbGFjZSBmb2N1cyBiYWNrIHRvIHRoZSBlbGVtZW50IGZvY3VzZWQgYmVmb3JlIHRoZSBkaWFsb2cgb3BlbmVkLiAqL1xuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9mb2N1c1RyYXAuZGVzdHJveSgpXG4gICAgdGhpcy5fYW5pbWF0aW9uRG9uZS5jb21wbGV0ZSgpXG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoIGEgQ29tcG9uZW50UG9ydGFsIGFzIGNvbnRlbnQgdG8gdGhpcyBkaWFsb2cgY29udGFpbmVyLlxuICAgKiBAcGFyYW0gcG9ydGFsIFBvcnRhbCB0byBiZSBhdHRhY2hlZCBhcyB0aGUgZGlhbG9nIGNvbnRlbnQuXG4gICAqL1xuICBhdHRhY2hDb21wb25lbnRQb3J0YWw8VD4ocG9ydGFsOiBDb21wb25lbnRQb3J0YWw8VD4pOiBDb21wb25lbnRSZWY8VD4ge1xuICAgIGlmICghdGhpcy5fcG9ydGFsSG9zdCkge1xuICAgICAgdGhyb3cgRXJyb3IoYF9wb3J0YWxIb3N0IG5vdCBmb3VuZC5gKVxuICAgIH1cblxuICAgIGlmICh0aGlzLl9wb3J0YWxIb3N0Lmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgIHRocm93RGlhbG9nQ29udGVudEFscmVhZHlBdHRhY2hlZEVycm9yKClcbiAgICB9XG5cbiAgICB0aGlzLl9zYXZlUHJldmlvdXNseUZvY3VzZWRFbGVtZW50KClcbiAgICByZXR1cm4gdGhpcy5fcG9ydGFsSG9zdC5hdHRhY2hDb21wb25lbnRQb3J0YWwocG9ydGFsKVxuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaCBhIFRlbXBsYXRlUG9ydGFsIGFzIGNvbnRlbnQgdG8gdGhpcyBkaWFsb2cgY29udGFpbmVyLlxuICAgKiBAcGFyYW0gcG9ydGFsIFBvcnRhbCB0byBiZSBhdHRhY2hlZCBhcyB0aGUgZGlhbG9nIGNvbnRlbnQuXG4gICAqL1xuICBhdHRhY2hUZW1wbGF0ZVBvcnRhbDxDPihwb3J0YWw6IFRlbXBsYXRlUG9ydGFsPEM+KTogRW1iZWRkZWRWaWV3UmVmPEM+IHtcbiAgICBpZiAoIXRoaXMuX3BvcnRhbEhvc3QpIHtcbiAgICAgIHRocm93IEVycm9yKGBfcG9ydGFsSG9zdCBub3QgZm91bmQuYClcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fcG9ydGFsSG9zdC5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICB0aHJvd0RpYWxvZ0NvbnRlbnRBbHJlYWR5QXR0YWNoZWRFcnJvcigpXG4gICAgfVxuXG4gICAgdGhpcy5fc2F2ZVByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCgpXG4gICAgcmV0dXJuIHRoaXMuX3BvcnRhbEhvc3QuYXR0YWNoVGVtcGxhdGVQb3J0YWwocG9ydGFsKVxuICB9XG5cbiAgLyoqIEVtaXQgbGlmZWN5Y2xlIGV2ZW50cyBiYXNlZCBvbiBhbmltYXRpb24gYHN0YXJ0YCBjYWxsYmFjay4gKi9cbiAgX29uQW5pbWF0aW9uU3RhcnQoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LnRvU3RhdGUgPT09ICdlbnRlcicpIHtcbiAgICAgIHRoaXMuX2JlZm9yZUVudGVyLm5leHQoKVxuICAgICAgdGhpcy5fYmVmb3JlRW50ZXIuY29tcGxldGUoKVxuICAgIH1cbiAgICBpZiAoZXZlbnQuZnJvbVN0YXRlID09PSAnZW50ZXInICYmIChldmVudC50b1N0YXRlID09PSAndm9pZCcgfHwgZXZlbnQudG9TdGF0ZSA9PT0gJ2V4aXQnKSkge1xuICAgICAgdGhpcy5fYmVmb3JlRXhpdC5uZXh0KClcbiAgICAgIHRoaXMuX2JlZm9yZUV4aXQuY29tcGxldGUoKVxuICAgIH1cbiAgfVxuXG4gIC8qKiBTdGFydHMgdGhlIGRpYWxvZyBleGl0IGFuaW1hdGlvbi4gKi9cbiAgX3N0YXJ0RXhpdGluZygpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZSA9ICdleGl0J1xuXG4gICAgLy8gTWFyayB0aGUgY29udGFpbmVyIGZvciBjaGVjayBzbyBpdCBjYW4gcmVhY3QgaWYgdGhlXG4gICAgLy8gdmlldyBjb250YWluZXIgaXMgdXNpbmcgT25QdXNoIGNoYW5nZSBkZXRlY3Rpb24uXG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKClcbiAgfVxuXG4gIC8qKiBTYXZlcyBhIHJlZmVyZW5jZSB0byB0aGUgZWxlbWVudCB0aGF0IHdhcyBmb2N1c2VkIGJlZm9yZSB0aGUgZGlhbG9nIHdhcyBvcGVuZWQuICovXG4gIHByaXZhdGUgX3NhdmVQcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQoKSB7XG4gICAgaWYgKHRoaXMuX2RvY3VtZW50KSB7XG4gICAgICB0aGlzLl9lbGVtZW50Rm9jdXNlZEJlZm9yZURpYWxvZ1dhc09wZW5lZCA9IHRoaXMuX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnRcblxuICAgICAgLy8gTW92ZSBmb2N1cyBvbnRvIHRoZSBkaWFsb2cgaW1tZWRpYXRlbHkgaW4gb3JkZXIgdG8gcHJldmVudCB0aGUgdXNlciBmcm9tIGFjY2lkZW50YWxseVxuICAgICAgLy8gb3BlbmluZyBtdWx0aXBsZSBkaWFsb2dzIGF0IHRoZSBzYW1lIHRpbWUuIE5lZWRzIHRvIGJlIGFzeW5jLCBiZWNhdXNlIHRoZSBlbGVtZW50XG4gICAgICAvLyBtYXkgbm90IGJlIGZvY3VzYWJsZSBpbW1lZGlhdGVseS5cbiAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCkpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEF1dG9mb2N1cyB0aGUgZmlyc3QgdGFiYmFibGUgZWxlbWVudCBpbnNpZGUgb2YgdGhlIGRpYWxvZywgaWYgdGhlcmUgaXMgbm90IGEgdGFiYmFibGUgZWxlbWVudCxcbiAgICogZm9jdXMgdGhlIGRpYWxvZyBpbnN0ZWFkLlxuICAgKi9cbiAgcHJpdmF0ZSBfYXV0b0ZvY3VzRmlyc3RUYWJiYWJsZUVsZW1lbnQoKSB7XG4gICAgLy8gSWYgd2VyZSB0byBhdHRlbXB0IHRvIGZvY3VzIGltbWVkaWF0ZWx5LCB0aGVuIHRoZSBjb250ZW50IG9mIHRoZSBkaWFsb2cgd291bGQgbm90IHlldCBiZVxuICAgIC8vIHJlYWR5IGluIGluc3RhbmNlcyB3aGVyZSBjaGFuZ2UgZGV0ZWN0aW9uIGhhcyB0byBydW4gZmlyc3QuIFRvIGRlYWwgd2l0aCB0aGlzLCB3ZSBzaW1wbHlcbiAgICAvLyB3YWl0IGZvciB0aGUgbWljcm90YXNrIHF1ZXVlIHRvIGJlIGVtcHR5LlxuICAgIGlmICh0aGlzLl9jb25maWcuYXV0b0ZvY3VzKSB7XG4gICAgICB0aGlzLl9mb2N1c1RyYXAuZm9jdXNJbml0aWFsRWxlbWVudFdoZW5SZWFkeSgpLnRoZW4oaGFzTW92ZWRGb2N1cyA9PiB7XG4gICAgICAgIC8vIElmIHdlIGRpZG4ndCBmaW5kIGFueSBmb2N1c2FibGUgZWxlbWVudHMgaW5zaWRlIHRoZSBkaWFsb2csIGZvY3VzIHRoZVxuICAgICAgICAvLyBjb250YWluZXIgc28gdGhlIHVzZXIgY2FuJ3QgdGFiIGludG8gb3RoZXIgZWxlbWVudHMgYmVoaW5kIGl0LlxuICAgICAgICBpZiAoIWhhc01vdmVkRm9jdXMpIHtcbiAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRoZSBmb2N1cyB0byB0aGUgZWxlbWVudCBmb2N1c2VkIGJlZm9yZSB0aGUgZGlhbG9nIHdhcyBvcGVuLiAqL1xuICBwcml2YXRlIF9yZXR1cm5Gb2N1c0FmdGVyRGlhbG9nKCkge1xuICAgIGNvbnN0IHRvRm9jdXMgPSB0aGlzLl9lbGVtZW50Rm9jdXNlZEJlZm9yZURpYWxvZ1dhc09wZW5lZFxuICAgIC8vIFdlIG5lZWQgdGhlIGV4dHJhIGNoZWNrLCBiZWNhdXNlIElFIGNhbiBzZXQgdGhlIGBhY3RpdmVFbGVtZW50YCB0byBudWxsIGluIHNvbWUgY2FzZXMuXG4gICAgaWYgKHRvRm9jdXMgJiYgdHlwZW9mIHRvRm9jdXMuZm9jdXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRvRm9jdXMuZm9jdXMoKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXROYXRpdmVFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIiBbdGFiaW5kZXhdPVwiLTFcIj5cbiAgPG5nLXRlbXBsYXRlIGNka1BvcnRhbE91dGxldD48L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9tb2RhbC9tb2RhbC1jb250YWluZXIvbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9tb2RhbC9tb2RhbC1jb250YWluZXIvbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQWtCLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBRWhHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQW1DLE1BQU0scUJBQXFCLENBQUE7QUFDeEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzFDLE9BQU8sRUFFTCxTQUFTLEVBSVQsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBRU4sUUFBUSxFQUNSLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFBOzs7OztBQUlyRCxNQUFNLFVBQVUsc0NBQXNDO0lBQ3BELE1BQU0sS0FBSyxDQUFDLHVFQUF1RSxDQUFDLENBQUE7QUFDdEYsQ0FBQztBQUVEOzs7R0FHRztBQTJCSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsZ0JBQWdCO0lBRTNELElBQTRCLE9BQU8sS0FBSyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUEsQ0FBQyxDQUFDO0lBRXpELGtHQUFrRztJQUNsRyxnR0FBZ0c7SUFDaEcseUJBQXlCO0lBQ3pCLCtDQUErQztJQUMvQyxJQUFvQyxVQUFVLEtBQUssT0FBTyxJQUFJ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dCI6WyJpbXBvcnQgeyBhbmltYXRlLCBBbmltYXRpb25FdmVudCwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucydcbmltcG9ydCB7IENvbmZpZ3VyYWJsZUZvY3VzVHJhcCwgQ29uZmlndXJhYmxlRm9jdXNUcmFwQ29uZmlnLCBDb25maWd1cmFibGVGb2N1c1RyYXBGYWN0b3J5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknXG5pbXBvcnQgeyBCYXNlUG9ydGFsT3V0bGV0LCBDZGtQb3J0YWxPdXRsZXQsIENvbXBvbmVudFBvcnRhbCwgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJ1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgTW9kYWxDb25maWcgfSBmcm9tICcuLi9tb2RhbC1jb25maWcnXG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd0RpYWxvZ0NvbnRlbnRBbHJlYWR5QXR0YWNoZWRFcnJvcigpIHtcbiAgdGhyb3cgRXJyb3IoJ0F0dGVtcHRpbmcgdG8gYXR0YWNoIGRpYWxvZyBjb250ZW50IGFmdGVyIGNvbnRlbnQgaXMgYWxyZWFkeSBhdHRhY2hlZCcpXG59XG5cbi8qKlxuICogSW50ZXJuYWwgY29tcG9uZW50IHRoYXQgd3JhcHMgdXNlci1wcm92aWRlZCBkaWFsb2cgY29udGVudC5cbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2VhbS1tb2RhbC1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdkaWFsb2cnLCBbXG4gICAgICBzdGF0ZSgnZW50ZXInLCBzdHlsZSh7IG9wYWNpdHk6IDEgfSkpLFxuICAgICAgc3RhdGUoJ2V4aXQsIHZvaWQnLCBzdHlsZSh7IG9wYWNpdHk6IDAgfSkpLFxuICAgICAgdHJhbnNpdGlvbignKiA9PiBlbnRlcicsIGFuaW1hdGUoJ3t7ZW50ZXJBbmltYXRpb25EdXJhdGlvbn19JykpLFxuICAgICAgdHJhbnNpdGlvbignKiA9PiBleGl0LCAqID0+IHZvaWQnLCBhbmltYXRlKCd7e2V4aXRBbmltYXRpb25EdXJhdGlvbn19JykpLFxuICAgIF0pXG4gIF0sXG4gIC8vIHRzbGludDpkaXNhYmxlOnVzZS1ob3N0LXByb3BlcnR5LWRlY29yYXRvclxuICBob3N0OiB7XG4gICAgJ1tAZGlhbG9nXSc6IGB7XG4gICAgICB2YWx1ZTogX3N0YXRlLFxuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIGVudGVyQW5pbWF0aW9uRHVyYXRpb246IF9jb25maWcuZW50ZXJBbmltYXRpb25EdXJhdGlvbixcbiAgICAgICAgZXhpdEFuaW1hdGlvbkR1cmF0aW9uOiBfY29uZmlnLmV4aXRBbmltYXRpb25EdXJhdGlvblxuICAgICAgfVxuICAgIH1gLFxuICAgICcoQGRpYWxvZy5zdGFydCknOiAnX29uQW5pbWF0aW9uU3RhcnQoJGV2ZW50KScsXG4gICAgJyhAZGlhbG9nLmRvbmUpJzogJ19hbmltYXRpb25Eb25lLm5leHQoJGV2ZW50KScsXG4gIH0sXG4gIC8vIHRzbGludDplbmFibGU6dXNlLWhvc3QtcHJvcGVydHktZGVjb3JhdG9yXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZVBvcnRhbE91dGxldCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJykgZ2V0IF9pZEF0dHIoKSB7IHJldHVybiB0aGlzLl9pZCB9XG5cbiAgLy8gQEhvc3RCaW5kaW5nIGlzIHVzZWQgaW4gdGhlIGNsYXNzIGFzIGl0IGlzIGV4cGVjdGVkIHRvIGJlIGV4dGVuZGVkLiAgU2luY2UgQENvbXBvbmVudCBkZWNvcmF0b3JcbiAgLy8gbWV0YWRhdGEgaXMgbm90IGluaGVyaXRlZCBieSBjaGlsZCBjbGFzc2VzLCBpbnN0ZWFkIHRoZSBob3N0IGJpbmRpbmcgZGF0YSBpcyBkZWZpbmVkIGluIGEgd2F5XG4gIC8vIHRoYXQgY2FuIGJlIGluaGVyaXRlZC5cbiAgLy8gdHNsaW50OmRpc2FibGU6bm8taG9zdC1kZWNvcmF0b3ItaW4tY29uY3JldGVcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWwnKSBnZXQgX2FyaWFMYWJlbCgpIHsgcmV0dXJuIHRoaXMuX2NvbmZpZy5hcmlhTGFiZWwgfHwgbnVsbCB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKVxuICBnZXQgX2FyaWFEZXNjcmliZWRCeSgpIHsgcmV0dXJuIHRoaXMuX2NvbmZpZy5hcmlhRGVzY3JpYmVkQnkgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJykgZ2V0IF9yb2xlKCkgeyByZXR1cm4gdGhpcy5fY29uZmlnLnJvbGUgfVxuXG4gIC8vIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpIGdldCBfdGFiaW5kZXgoKSB7IHJldHVybiAtMSB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zZWFtLW1vZGFsLWNvbnRhaW5lcicpIF9zZWFtTW9kYWxDb250YWluZXIgPSB0cnVlXG5cbiAgX2lkOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBfZm9jdXNUcmFwRmFjdG9yeTogQ29uZmlndXJhYmxlRm9jdXNUcmFwRmFjdG9yeSxcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQ6IGFueSxcbiAgICAvKiogVGhlIGRpYWxvZyBjb25maWd1cmF0aW9uLiAqL1xuICAgIHB1YmxpYyBfY29uZmlnOiBNb2RhbENvbmZpZykge1xuICAgIHN1cGVyKClcblxuICAgIHRoaXMuX2ZvY3VzVHJhcCA9IHRoaXMuX2ZvY3VzVHJhcEZhY3RvcnkuY3JlYXRlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwge1xuICAgICAgZGVmZXI6IHRydWUsXG4gICAgfSBhcyBDb25maWd1cmFibGVGb2N1c1RyYXBDb25maWcpXG5cbiAgICAvLyBXZSB1c2UgYSBTdWJqZWN0IHdpdGggYSBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgcmF0aGVyIHRoYW4gYSBjYWxsYmFjayBhdHRhY2hlZCB0byAuZG9uZSxcbiAgICAvLyBiZWNhdXNlIHNvbWUgYnJvd3NlcnMgZmlyZSB0aGUgZG9uZSBldmVudCB0d2ljZSBhbmQgd2UgZG9uJ3Qgd2FudCB0byBlbWl0IGR1cGxpY2F0ZSBldmVudHMuXG4gICAgLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8yNDA4NFxuICAgIHRoaXMuX2FuaW1hdGlvbkRvbmUucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgoeCwgeSkgPT4ge1xuICAgICAgcmV0dXJuIHguZnJvbVN0YXRlID09PSB5LmZyb21TdGF0ZSAmJiB4LnRvU3RhdGUgPT09IHkudG9TdGF0ZVxuICAgIH0pKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgLy8gRW1pdCBsaWZlY3ljbGUgZXZlbnRzIGJhc2VkIG9uIGFuaW1hdGlvbiBgZG9uZWAgY2FsbGJhY2suXG4gICAgICBpZiAoZXZlbnQudG9TdGF0ZSA9PT0gJ2VudGVyJykge1xuICAgICAgICB0aGlzLl9hdXRvRm9jdXNGaXJzdFRhYmJhYmxlRWxlbWVudCgpXG4gICAgICAgIHRoaXMuX2FmdGVyRW50ZXIubmV4dCgpXG4gICAgICAgIHRoaXMuX2FmdGVyRW50ZXIuY29tcGxldGUoKVxuICAgICAgfVxuXG4gICAgICBpZiAoZXZlbnQuZnJvbVN0YXRlID09PSAnZW50ZXInICYmIChldmVudC50b1N0YXRlID09PSAndm9pZCcgfHwgZXZlbnQudG9TdGF0ZSA9PT0gJ2V4aXQnKSkge1xuICAgICAgICB0aGlzLl9yZXR1cm5Gb2N1c0FmdGVyRGlhbG9nKClcbiAgICAgICAgdGhpcy5fYWZ0ZXJFeGl0Lm5leHQoKVxuICAgICAgICB0aGlzLl9hZnRlckV4aXQuY29tcGxldGUoKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvKiogU3RhdGUgb2YgdGhlIGRpYWxvZyBhbmltYXRpb24uICovXG4gIF9zdGF0ZTogJ3ZvaWQnIHwgJ2VudGVyJyB8ICdleGl0JyA9ICdlbnRlcidcblxuICAvKiogRWxlbWVudCB0aGF0IHdhcyBmb2N1c2VkIGJlZm9yZSB0aGUgZGlhbG9nIHdhcyBvcGVuZWQuIFNhdmUgdGhpcyB0byByZXN0b3JlIHVwb24gY2xvc2UuICovXG4gIHByaXZhdGUgX2VsZW1lbnRGb2N1c2VkQmVmb3JlRGlhbG9nV2FzT3BlbmVkOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsXG5cbiAgIC8qKiBUaGUgY2xhc3MgdGhhdCB0cmFwcyBhbmQgbWFuYWdlcyBmb2N1cyB3aXRoaW4gdGhlIGRpYWxvZy4gKi9cbiAgcHJpdmF0ZSBfZm9jdXNUcmFwOiBDb25maWd1cmFibGVGb2N1c1RyYXBcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1vZGFsLWRpYWxvZycpIF9tb2RhbERpYWxvZyA9IHRydWVcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tb2RhbC1kaWFsb2ctY2VudGVyZWQnKSBfbW9kYWxEaWFsb2dDZW50ZXJlZCA9IHRydWVcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1vZGFsLXNtJykgZ2V0IF9tb2RhbERpYWxvZ1NtKCkgeyByZXR1cm4gdGhpcy5fY29uZmlnLm1vZGFsU2l6ZSA9PT0gJ3NtJyB9XG4gIEBIb3N0QmluZGluZygnY2xhc3MubW9kYWwtbGcnKSBnZXQgX21vZGFsRGlhbG9nTGcoKSB7IHJldHVybiB0aGlzLl9jb25maWcubW9kYWxTaXplID09PSAnbGcnIH1cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tb2RhbC14bCcpIGdldCBfbW9kYWxEaWFsb2dYbCgpIHsgcmV0dXJuIHRoaXMuX2NvbmZpZy5tb2RhbFNpemUgPT09ICd4bCcgfVxuXG4gIC8qKiBUaGUgcG9ydGFsIGhvc3QgaW5zaWRlIG9mIHRoaXMgY29udGFpbmVyIGludG8gd2hpY2ggdGhlIGRpYWxvZyBjb250ZW50IHdpbGwgYmUgbG9hZGVkLiAqL1xuICBAVmlld0NoaWxkKENka1BvcnRhbE91dGxldCAvKiwgeyBzdGF0aWM6IHRydWUgfSovLCB7IHN0YXRpYzogdHJ1ZSB9KSBfcG9ydGFsSG9zdD86IENka1BvcnRhbE91dGxldFxuXG4gIC8qKiBBIHN1YmplY3QgZW1pdHRpbmcgYmVmb3JlIHRoZSBkaWFsb2cgZW50ZXJzIHRoZSB2aWV3LiAqL1xuICBfYmVmb3JlRW50ZXI6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpXG5cbiAgLyoqIEEgc3ViamVjdCBlbWl0dGluZyBhZnRlciB0aGUgZGlhbG9nIGVudGVycyB0aGUgdmlldy4gKi9cbiAgX2FmdGVyRW50ZXI6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpXG5cbiAgLyoqIEEgc3ViamVjdCBlbWl0dGluZyBiZWZvcmUgdGhlIGRpYWxvZyBleGl0cyB0aGUgdmlldy4gKi9cbiAgX2JlZm9yZUV4aXQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpXG5cbiAgLyoqIEEgc3ViamVjdCBlbWl0dGluZyBhZnRlciB0aGUgZGlhbG9nIGV4aXRzIHRoZSB2aWV3LiAqL1xuICBfYWZ0ZXJFeGl0OiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKVxuXG4gIC8qKiBTdHJlYW0gb2YgYW5pbWF0aW9uIGBkb25lYCBldmVudHMuICovXG4gIF9hbmltYXRpb25Eb25lID0gbmV3IFN1YmplY3Q8QW5pbWF0aW9uRXZlbnQ+KClcblxuICAvLyBOT1RFOiBGb3IgY3VycmVudCBib290c3RyYXAgc3R5bGUgbW9kYWxcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbICckZXZlbnQnIF0pXG4gIF9vbkNsaWNrKGV2ZW50OiBVSUV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgfVxuXG4gIC8qKiBEZXN0cm95IGZvY3VzIHRyYXAgdG8gcGxhY2UgZm9jdXMgYmFjayB0byB0aGUgZWxlbWVudCBmb2N1c2VkIGJlZm9yZSB0aGUgZGlhbG9nIG9wZW5lZC4gKi9cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZm9jdXNUcmFwLmRlc3Ryb3koKVxuICAgIHRoaXMuX2FuaW1hdGlvbkRvbmUuY29tcGxldGUoKVxuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaCBhIENvbXBvbmVudFBvcnRhbCBhcyBjb250ZW50IHRvIHRoaXMgZGlhbG9nIGNvbnRhaW5lci5cbiAgICogQHBhcmFtIHBvcnRhbCBQb3J0YWwgdG8gYmUgYXR0YWNoZWQgYXMgdGhlIGRpYWxvZyBjb250ZW50LlxuICAgKi9cbiAgYXR0YWNoQ29tcG9uZW50UG9ydGFsPFQ+KHBvcnRhbDogQ29tcG9uZW50UG9ydGFsPFQ+KTogQ29tcG9uZW50UmVmPFQ+IHtcbiAgICBpZiAoIXRoaXMuX3BvcnRhbEhvc3QpIHtcbiAgICAgIHRocm93IEVycm9yKGBfcG9ydGFsSG9zdCBub3QgZm91bmQuYClcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fcG9ydGFsSG9zdC5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICB0aHJvd0RpYWxvZ0NvbnRlbnRBbHJlYWR5QXR0YWNoZWRFcnJvcigpXG4gICAgfVxuXG4gICAgdGhpcy5fc2F2ZVByZXZpb3VzbHlGb2N1c2VkRWxlbWVudCgpXG4gICAgcmV0dXJuIHRoaXMuX3BvcnRhbEhvc3QuYXR0YWNoQ29tcG9uZW50UG9ydGFsKHBvcnRhbClcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2ggYSBUZW1wbGF0ZVBvcnRhbCBhcyBjb250ZW50IHRvIHRoaXMgZGlhbG9nIGNvbnRhaW5lci5cbiAgICogQHBhcmFtIHBvcnRhbCBQb3J0YWwgdG8gYmUgYXR0YWNoZWQgYXMgdGhlIGRpYWxvZyBjb250ZW50LlxuICAgKi9cbiAgYXR0YWNoVGVtcGxhdGVQb3J0YWw8Qz4ocG9ydGFsOiBUZW1wbGF0ZVBvcnRhbDxDPik6IEVtYmVkZGVkVmlld1JlZjxDPiB7XG4gICAgaWYgKCF0aGlzLl9wb3J0YWxIb3N0KSB7XG4gICAgICB0aHJvdyBFcnJvcihgX3BvcnRhbEhvc3Qgbm90IGZvdW5kLmApXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3BvcnRhbEhvc3QuaGFzQXR0YWNoZWQoKSkge1xuICAgICAgdGhyb3dEaWFsb2dDb250ZW50QWxyZWFkeUF0dGFjaGVkRXJyb3IoKVxuICAgIH1cblxuICAgIHRoaXMuX3NhdmVQcmV2aW91c2x5Rm9jdXNlZEVsZW1lbnQoKVxuICAgIHJldHVybiB0aGlzLl9wb3J0YWxIb3N0LmF0dGFjaFRlbXBsYXRlUG9ydGFsKHBvcnRhbClcbiAgfVxuXG4gIC8qKiBFbWl0IGxpZmVjeWNsZSBldmVudHMgYmFzZWQgb24gYW5pbWF0aW9uIGBzdGFydGAgY2FsbGJhY2suICovXG4gIF9vbkFuaW1hdGlvblN0YXJ0KGV2ZW50OiBBbmltYXRpb25FdmVudCkge1xuICAgIGlmIChldmVudC50b1N0YXRlID09PSAnZW50ZXInKSB7XG4gICAgICB0aGlzLl9iZWZvcmVFbnRlci5uZXh0KClcbiAgICAgIHRoaXMuX2JlZm9yZUVudGVyLmNvbXBsZXRlKClcbiAgICB9XG4gICAgaWYgKGV2ZW50LmZyb21TdGF0ZSA9PT0gJ2VudGVyJyAmJiAoZXZlbnQudG9TdGF0ZSA9PT0gJ3ZvaWQnIHx8IGV2ZW50LnRvU3RhdGUgPT09ICdleGl0JykpIHtcbiAgICAgIHRoaXMuX2JlZm9yZUV4aXQubmV4dCgpXG4gICAgICB0aGlzLl9iZWZvcmVFeGl0LmNvbXBsZXRlKClcbiAgICB9XG4gIH1cblxuICAvKiogU3RhcnRzIHRoZSBkaWFsb2cgZXhpdCBhbmltYXRpb24uICovXG4gIF9zdGFydEV4aXRpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUgPSAnZXhpdCdcblxuICAgIC8vIE1hcmsgdGhlIGNvbnRhaW5lciBmb3IgY2hlY2sgc28gaXQgY2FuIHJlYWN0IGlmIHRoZVxuICAgIC8vIHZpZXcgY29udGFpbmVyIGlzIHVzaW5nIE9uUHVzaCBjaGFuZ2UgZGV0ZWN0aW9uLlxuICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpXG4gIH1cblxuICAvKiogU2F2ZXMgYSByZWZlcmVuY2UgdG8gdGhlIGVsZW1lbnQgdGhhdCB3YXMgZm9jdXNlZCBiZWZvcmUgdGhlIGRpYWxvZyB3YXMgb3BlbmVkLiAqL1xuICBwcml2YXRlIF9zYXZlUHJldmlvdXNseUZvY3VzZWRFbGVtZW50KCkge1xuICAgIGlmICh0aGlzLl9kb2N1bWVudCkge1xuICAgICAgdGhpcy5fZWxlbWVudEZvY3VzZWRCZWZvcmVEaWFsb2dXYXNPcGVuZWQgPSB0aGlzLl9kb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50XG5cbiAgICAgIC8vIE1vdmUgZm9jdXMgb250byB0aGUgZGlhbG9nIGltbWVkaWF0ZWx5IGluIG9yZGVyIHRvIHByZXZlbnQgdGhlIHVzZXIgZnJvbSBhY2NpZGVudGFsbHlcbiAgICAgIC8vIG9wZW5pbmcgbXVsdGlwbGUgZGlhbG9ncyBhdCB0aGUgc2FtZSB0aW1lLiBOZWVkcyB0byBiZSBhc3luYywgYmVjYXVzZSB0aGUgZWxlbWVudFxuICAgICAgLy8gbWF5IG5vdCBiZSBmb2N1c2FibGUgaW1tZWRpYXRlbHkuXG4gICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBdXRvZm9jdXMgdGhlIGZpcnN0IHRhYmJhYmxlIGVsZW1lbnQgaW5zaWRlIG9mIHRoZSBkaWFsb2csIGlmIHRoZXJlIGlzIG5vdCBhIHRhYmJhYmxlIGVsZW1lbnQsXG4gICAqIGZvY3VzIHRoZSBkaWFsb2cgaW5zdGVhZC5cbiAgICovXG4gIHByaXZhdGUgX2F1dG9Gb2N1c0ZpcnN0VGFiYmFibGVFbGVtZW50KCkge1xuICAgIC8vIElmIHdlcmUgdG8gYXR0ZW1wdCB0byBmb2N1cyBpbW1lZGlhdGVseSwgdGhlbiB0aGUgY29udGVudCBvZiB0aGUgZGlhbG9nIHdvdWxkIG5vdCB5ZXQgYmVcbiAgICAvLyByZWFkeSBpbiBpbnN0YW5jZXMgd2hlcmUgY2hhbmdlIGRldGVjdGlvbiBoYXMgdG8gcnVuIGZpcnN0LiBUbyBkZWFsIHdpdGggdGhpcywgd2Ugc2ltcGx5XG4gICAgLy8gd2FpdCBmb3IgdGhlIG1pY3JvdGFzayBxdWV1ZSB0byBiZSBlbXB0eS5cbiAgICBpZiAodGhpcy5fY29uZmlnLmF1dG9Gb2N1cykge1xuICAgICAgdGhpcy5fZm9jdXNUcmFwLmZvY3VzSW5pdGlhbEVsZW1lbnRXaGVuUmVhZHkoKS50aGVuKGhhc01vdmVkRm9jdXMgPT4ge1xuICAgICAgICAvLyBJZiB3ZSBkaWRuJ3QgZmluZCBhbnkgZm9jdXNhYmxlIGVsZW1lbnRzIGluc2lkZSB0aGUgZGlhbG9nLCBmb2N1cyB0aGVcbiAgICAgICAgLy8gY29udGFpbmVyIHNvIHRoZSB1c2VyIGNhbid0IHRhYiBpbnRvIG90aGVyIGVsZW1lbnRzIGJlaGluZCBpdC5cbiAgICAgICAgaWYgKCFoYXNNb3ZlZEZvY3VzKSB7XG4gICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKClcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgZm9jdXMgdG8gdGhlIGVsZW1lbnQgZm9jdXNlZCBiZWZvcmUgdGhlIGRpYWxvZyB3YXMgb3Blbi4gKi9cbiAgcHJpdmF0ZSBfcmV0dXJuRm9jdXNBZnRlckRpYWxvZygpIHtcbiAgICBjb25zdCB0b0ZvY3VzID0gdGhpcy5fZWxlbWVudEZvY3VzZWRCZWZvcmVEaWFsb2dXYXNPcGVuZWRcbiAgICAvLyBXZSBuZWVkIHRoZSBleHRyYSBjaGVjaywgYmVjYXVzZSBJRSBjYW4gc2V0IHRoZSBgYWN0aXZlRWxlbWVudGAgdG8gbnVsbCBpbiBzb21lIGNhc2VzLlxuICAgIGlmICh0b0ZvY3VzICYmIHR5cGVvZiB0b0ZvY3VzLmZvY3VzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0b0ZvY3VzLmZvY3VzKClcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0TmF0aXZlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCIgW3RhYmluZGV4XT1cIi0xXCI+XG4gIDxuZy10ZW1wbGF0ZSBjZGtQb3J0YWxPdXRsZXQ+PC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
|
|
@@ -4,16 +4,14 @@ export class ModalFooterComponent {
|
|
|
4
4
|
constructor() {
|
|
5
5
|
this._modalFooterCss = true;
|
|
6
6
|
}
|
|
7
|
-
ngOnInit() {
|
|
8
|
-
}
|
|
9
7
|
}
|
|
10
|
-
ModalFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
11
|
-
ModalFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
8
|
+
ModalFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ModalFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
+
ModalFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ModalFooterComponent, selector: "seam-modal-footer", host: { properties: { "class.modal-footer": "this._modalFooterCss" } }, ngImport: i0, template: "<ng-content></ng-content>\n", styles: [""] });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ModalFooterComponent, decorators: [{
|
|
13
11
|
type: Component,
|
|
14
12
|
args: [{ selector: 'seam-modal-footer', template: "<ng-content></ng-content>\n" }]
|
|
15
|
-
}],
|
|
13
|
+
}], propDecorators: { _modalFooterCss: [{
|
|
16
14
|
type: HostBinding,
|
|
17
15
|
args: ['class.modal-footer']
|
|
18
16
|
}] } });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9tb2RhbC9tb2RhbC1mb290ZXIvbW9kYWwtZm9vdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9tb2RhbC9tb2RhbC1mb290ZXIvbW9kYWwtZm9vdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFBOztBQU90RCxNQUFNLE9BQU8sb0JBQW9CO0lBTGpDO1FBT3FDLG9CQUFlLEdBQUcsSUFBSSxDQUFBO0tBRTFEOztpSEFKWSxvQkFBb0I7cUdBQXBCLG9CQUFvQixpSUNQakMsNkJBQ0E7MkZETWEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLG1CQUFtQjs4QkFNTSxlQUFlO3NCQUFqRCxXQUFXO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZWFtLW1vZGFsLWZvb3RlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC1mb290ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RhbC1mb290ZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbEZvb3RlckNvbXBvbmVudCB7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tb2RhbC1mb290ZXInKSBfbW9kYWxGb290ZXJDc3MgPSB0cnVlXG5cbn1cbiIsIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
|
|
@@ -7,15 +7,13 @@ export class ModalHeaderComponent {
|
|
|
7
7
|
this._modalHeaderCss = true;
|
|
8
8
|
this.hasCloseBtn = true;
|
|
9
9
|
}
|
|
10
|
-
ngOnInit() {
|
|
11
|
-
}
|
|
12
10
|
}
|
|
13
|
-
ModalHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
14
|
-
ModalHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
11
|
+
ModalHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ModalHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12
|
+
ModalHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ModalHeaderComponent, selector: "seam-modal-header", inputs: { hasCloseBtn: "hasCloseBtn" }, host: { properties: { "class.modal-header": "this._modalHeaderCss" } }, queries: [{ propertyName: "_titleDirective", first: true, predicate: ModalTitleDirective, descendants: true, static: true }, { propertyName: "_closeDirective", first: true, predicate: ModalCloseDirective, descendants: true, static: true }], ngImport: i0, template: "<ng-content></ng-content>\n\n<!-- <button seamModalClose>\n <span aria-hidden=\"true\">×</span>\n</button> -->\n\n<!-- seam-modal-header-close -->\n", styles: [""] });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ModalHeaderComponent, decorators: [{
|
|
16
14
|
type: Component,
|
|
17
15
|
args: [{ selector: 'seam-modal-header', template: "<ng-content></ng-content>\n\n<!-- <button seamModalClose>\n <span aria-hidden=\"true\">×</span>\n</button> -->\n\n<!-- seam-modal-header-close -->\n" }]
|
|
18
|
-
}],
|
|
16
|
+
}], propDecorators: { _modalHeaderCss: [{
|
|
19
17
|
type: HostBinding,
|
|
20
18
|
args: ['class.modal-header']
|
|
21
19
|
}], hasCloseBtn: [{
|
|
@@ -27,4 +25,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
|
|
|
27
25
|
type: ContentChild,
|
|
28
26
|
args: [ModalCloseDirective, { static: true }]
|
|
29
27
|
}] } });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9tb2RhbC9tb2RhbC1oZWFkZXIvbW9kYWwtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9tb2RhbC9tb2RhbC1oZWFkZXIvbW9kYWwtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUE7O0FBT3pFLE1BQU0sT0FBTyxvQkFBb0I7SUFMakM7UUFPcUMsb0JBQWUsR0FBRyxJQUFJLENBQUE7UUFFaEQsZ0JBQVcsR0FBRyxJQUFJLENBQUE7S0FLNUI7O2lIQVRZLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHNOQU1qQixtQkFBbUIsZ0dBQ25CLG1CQUFtQiw4RENqQm5DLDZKQU9BOzJGREdhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxtQkFBbUI7OEJBTU0sZUFBZTtzQkFBakQsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBRXhCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRStDLGVBQWU7c0JBQW5FLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNFLGVBQWU7c0JBQW5FLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmltcG9ydCB7IE1vZGFsQ2xvc2VEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL21vZGFsLWNsb3NlLmRpcmVjdGl2ZSdcbmltcG9ydCB7IE1vZGFsVGl0bGVEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL21vZGFsLXRpdGxlLmRpcmVjdGl2ZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2VhbS1tb2RhbC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwtaGVhZGVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxIZWFkZXJDb21wb25lbnQge1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MubW9kYWwtaGVhZGVyJykgX21vZGFsSGVhZGVyQ3NzID0gdHJ1ZVxuXG4gIEBJbnB1dCgpIGhhc0Nsb3NlQnRuID0gdHJ1ZVxuXG4gIEBDb250ZW50Q2hpbGQoTW9kYWxUaXRsZURpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgX3RpdGxlRGlyZWN0aXZlPzogTW9kYWxUaXRsZURpcmVjdGl2ZVxuICBAQ29udGVudENoaWxkKE1vZGFsQ2xvc2VEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIF9jbG9zZURpcmVjdGl2ZT86IE1vZGFsQ2xvc2VEaXJlY3RpdmVcblxufVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuXG48IS0tIDxidXR0b24gc2VhbU1vZGFsQ2xvc2U+XG4gIDxzcGFuIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPiZ0aW1lczs8L3NwYW4+XG48L2J1dHRvbj4gLS0+XG5cbjwhLS0gc2VhbS1tb2RhbC1oZWFkZXItY2xvc2UgLS0+XG4iXX0=
|
|
@@ -168,4 +168,4 @@ export class ModalRef {
|
|
|
168
168
|
return this._containerInstance._afterExit.pipe(map(() => this._result));
|
|
169
169
|
}
|
|
170
170
|
}
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL21vZGFsL21vZGFsLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFHOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUs1QyxNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQTtBQUU5Qix3Q0FBd0M7QUFDeEMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFBO0FBRWhCOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFFBQVE7SUFZbkIsWUFDUyxXQUF1QixFQUNwQixrQkFBMkMsRUFDNUMsS0FBYSxjQUFjLFFBQVEsRUFBRSxFQUFFO1FBRnpDLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3BCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBeUI7UUFDNUMsT0FBRSxHQUFGLEVBQUUsQ0FBcUM7UUFkbEQsbURBQW1EO1FBQ25ELHNCQUFpQixHQUFhLElBQUksQ0FBQTtRQVExQix5QkFBb0IsR0FBd0IsSUFBSSxDQUFBO1FBTXRELHNDQUFzQztRQUN0QyxrQkFBa0IsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFBO1FBRTNCLGlFQUFpRTtRQUNqRSxJQUFJLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDMUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO29CQUN0QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7aUJBQ2I7WUFDSCxDQUFDLENBQUMsQ0FBQTtZQUVGLElBQUksQ0FBQyxvQkFBb0IsR0FBSSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQTtTQUM3RDtRQUVELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FB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bnQiOlsiaW1wb3J0IHsgRVNDQVBFIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJ1xuaW1wb3J0IHsgR2xvYmFsUG9zaXRpb25TdHJhdGVneSwgT3ZlcmxheVJlZiwgT3ZlcmxheVNpemVDb25maWcgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSdcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgSU1vZGFsUG9zaXRpb24gfSBmcm9tICcuL21vZGFsLWNvbmZpZydcbmltcG9ydCB7IE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC1jb250YWluZXIvbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudCdcblxuY29uc3QgRFJBR19DTE9TRV9USFJFU0hPTEQgPSA1XG5cbi8qKiBVbmlxdWUgaWQgZm9yIHRoZSBjcmVhdGVkIGRpYWxvZy4gKi9cbmxldCB1bmlxdWVJZCA9IDBcblxuLyoqXG4gKiBSZWZlcmVuY2UgdG8gYSBkaWFsb2cgb3BlbmVkIHZpYSB0aGUgRGlhbG9nIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBNb2RhbFJlZjxULCBSID0gYW55PiB7XG4gIC8qKiBUaGUgaW5zdGFuY2Ugb2YgdGhlIGNvbXBvbmVudCBpbiB0aGUgZGlhbG9nLiAqL1xuICBjb21wb25lbnRJbnN0YW5jZTogVCB8IG51bGwgPSBudWxsXG5cbiAgLyoqIFdoZXRoZXIgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBjbG9zZSB0aGUgZGlhbG9nLiAqL1xuICBkaXNhYmxlQ2xvc2U6IGJvb2xlYW4gfCB1bmRlZmluZWRcblxuICAvKiogUmVzdWx0IHRvIGJlIHBhc3NlZCB0byBhZnRlckNsb3NlZC4gKi9cbiAgcHJpdmF0ZSBfcmVzdWx0OiBSIHwgdW5kZWZpbmVkXG5cbiAgcHJpdmF0ZSBfY2xpY2tPdXRzaWRlQ2xlYW51cDogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGxcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWYsXG4gICAgcHJvdGVjdGVkIF9jb250YWluZXJJbnN0YW5jZTogTW9kYWxDb250YWluZXJDb21wb25lbnQsXG4gICAgcmVhZG9ubHkgaWQ6IHN0cmluZyA9IGBzZWFtLW1vZGFsLSR7dW5pcXVlSWQrK31gKSB7XG4gICAgLy8gUGFzcyB0aGUgaWQgYWxvbmcgdG8gdGhlIGNvbnRhaW5lci5cbiAgICBfY29udGFpbmVySW5zdGFuY2UuX2lkID0gaWRcblxuICAgIC8vIElmIHRoZSBkaWFsb2cgaGFzIGEgYmFja2Ryb3AsIGhhbmRsZSBjbGlja3MgZnJvbSB0aGUgYmFja2Ryb3AuXG4gICAgaWYgKF9jb250YWluZXJJbnN0YW5jZS5fY29uZmlnLmhhc0JhY2tkcm9wKSB7XG4gICAgICBfb3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVDbG9zZSkge1xuICAgICAgICAgIHRoaXMuY2xvc2UoKVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICB0aGlzLl9jbGlja091dHNpZGVDbGVhbnVwID0gIHRoaXMuX2luaXRDbG9zZU9uQ2xpY2tPdXRzaWRlKClcbiAgICB9XG5cbiAgICB0aGlzLmJlZm9yZUNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmLmRldGFjaEJhY2tkcm9wKClcbiAgICB9KVxuXG4gICAgdGhpcy5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpXG4gICAgICB0aGlzLl9vdmVybGF5UmVmLmRpc3Bvc2UoKVxuICAgICAgdGhpcy5jb21wb25lbnRJbnN0YW5jZSA9IG51bGxcbiAgICB9KVxuXG4gICAgLy8gQ2xvc2Ugd2hlbiBlc2NhcGUga2V5ZG93biBldmVudCBvY2N1cnNcbiAgICBfb3ZlcmxheVJlZi5rZXlkb3duRXZlbnRzKClcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkZXByZWNhdGlvblxuICAgICAgLnBpcGUoZmlsdGVyKGV2ZW50ID0+IGV2ZW50LmtleUNvZGUgPT09IEVTQ0FQRSAmJiAhdGhpcy5kaXNhYmxlQ2xvc2UpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlKCkpXG4gIH1cblxuICBwcml2YXRlIF9pbml0Q2xvc2VPbkNsaWNrT3V0c2lkZSgpOiAoKSA9PiB2b2lkIHtcbiAgICBjb25zdCBjbG9zZSA9ICgpID0+IHtcbiAgICAgIGlmICghdGhpcy5kaXNhYmxlQ2xvc2UpIHtcbiAgICAgICAgdGhpcy5jbG9zZSgpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaXNJbkNvbnRhaW5lciA9ICh0YXJnZXQ6IEhUTUxFbGVtZW50IHwgbnVsbCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX2NvbnRhaW5lckluc3RhbmNlLmdldE5hdGl2ZUVsZW1lbnQoKS5jb250YWlucyh0YXJnZXQpXG4gICAgfVxuXG4gICAgY29uc3QgZ2V0UG9zaXRpb24gPSAoZXZlbnQ6IE1vdXNlRXZlbnQgfCBQb2ludGVyRXZlbnQpOiB7IHg6IG51bWJlciwgeTogbnVtYmVyIH0gPT4ge1xuICAgICAgcmV0dXJuIHsgeDogZXZlbnQuY2xpZW50WCwgeTogZXZlbnQuY2xpZW50WSB9XG4gICAgfVxuXG4gICAgY29uc3QgZGlzdCA9ICh4MTogbnVtYmVyLCB5MTogbnVtYmVyLCB4MjogbnVtYmVyLCB5MjogbnVtYmVyKTogbnVtYmVyID0+IHtcbiAgICAgIHJldHVybiBNYXRoLnNxcnQoIE1hdGgucG93KCh4MiAtIHgxKSwgMikgKyBNYXRoLnBvdygoeTIgLSB5MSksIDIpIClcbiAgICB9XG5cbiAgICBsZXQgcHJlc3NlZCA9IGZhbHNlXG4gICAgbGV0IHByZXNzZWRQb3NpdGlvbjogeyB4OiBudW1iZXIsIHk6IG51bWJlciB9IHwgbnVsbCA9IG51bGxcbiAgICBjb25zdCBfaGFuZGxlUHJlc3NEb3duID0gKGV2ZW50OiBNb3VzZUV2ZW50IHwgUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICBwcmVzc2VkID0gdHJ1ZVxuICAgICAgcHJlc3NlZFBvc2l0aW9uID0gZ2V0UG9zaXRpb24oZXZlbnQpXG4gICAgfVxuXG4gICAgY29uc3QgX2hhbmRsZVByZXNzVXAgPSAoZXZlbnQ6IE1vdXNlRXZlbnQgfCBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIGlmIChwcmVzc2VkUG9zaXRpb24pIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgbnVsbFxuICAgICAgICBpZiAodGFyZ2V0ICYmICFpc0luQ29udGFpbmVyKHRhcmdldCkpIHtcbiAgICAgICAgICBjb25zdCBjdXJyZW50UG9zaXRpb24gPSBnZXRQb3NpdGlvbihldmVudClcbiAgICAgICAgICBjb25zdCBkID0gZGlzdChjdXJyZW50UG9zaXRpb24ueCwgY3VycmVudFBvc2l0aW9uLnksIHByZXNzZWRQb3NpdGlvbi54LCBwcmVzc2VkUG9zaXRpb24ueSlcbiAgICAgICAgICBpZiAoZCA8IERSQUdfQ0xPU0VfVEhSRVNIT0xEKSB7XG4gICAgICAgICAgICBjbG9zZSgpXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcHJlc3NlZFBvc2l0aW9uID0gbnVsbFxuICAgICAgfSBlbHNlIGlmIChwcmVzc2VkKSB7XG4gICAgICAgIGNsb3NlKClcbiAgICAgIH1cbiAgICAgIHByZXNzZWQgPSBmYWxzZVxuICAgIH1cblxuICAgIHRoaXMuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgX2hhbmRsZVByZXNzRG93bilcbiAgICB0aGlzLl9vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgX2hhbmRsZVByZXNzRG93bilcblxuICAgIHRoaXMuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIF9oYW5kbGVQcmVzc1VwKVxuICAgIHRoaXMuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgX2hhbmRsZVByZXNzVXApXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBfaGFuZGxlUHJlc3NEb3duKVxuICAgICAgdGhpcy5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIF9oYW5kbGVQcmVzc0Rvd24pXG5cbiAgICAgIHRoaXMuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIF9oYW5kbGVQcmVzc1VwKVxuICAgICAgdGhpcy5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCBfaGFuZGxlUHJlc3NVcClcbiAgICB9XG4gIH1cblxuICAvKiogR2V0cyBhbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgd2hlbiB0aGUgb3ZlcmxheSdzIGJhY2tkcm9wIGhhcyBiZWVuIGNsaWNrZWQuICovXG4gIGJhY2tkcm9wQ2xpY2soKTogT2JzZXJ2YWJsZTxNb3VzZUV2ZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuX292ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpXG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgdGhlIGRpYWxvZy5cbiAgICogQHBhcmFtIGRpYWxvZ1Jlc3VsdCBPcHRpb25hbCByZXN1bHQgdG8gcmV0dXJuIHRvIHRoZSBkaWFsb2cgb3BlbmVyLlxuICAgKi9cbiAgY2xvc2UoZGlhbG9nUmVzdWx0PzogUik6IHZvaWQge1xuICAgIHRoaXMuX3Jlc3VsdCA9IGRpYWxvZ1Jlc3VsdFxuICAgIHRoaXMuX2NvbnRhaW5lckluc3RhbmNlLl9zdGFydEV4aXRpbmcoKVxuICAgIGlmICh0aGlzLl9jbGlja091dHNpZGVDbGVhbnVwKSB7dGhpcy5fY2xpY2tPdXRzaWRlQ2xlYW51cCgpfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIGRpYWxvZydzIHBvc2l0aW9uLlxuICAgKiBAcGFyYW0gcG9zaXRpb24gTmV3IGRpYWxvZyBwb3NpdGlvbi5cbiAgICovXG4gIHVwZGF0ZVBvc2l0aW9uKHBvc2l0aW9uPzogSU1vZGFsUG9zaXRpb24pOiB0aGlzIHtcbiAgICBjb25zdCBzdHJhdGVneSA9IHRoaXMuX2dldFBvc2l0aW9uU3RyYXRlZ3koKVxuXG4gICAgaWYgKHBvc2l0aW9uICYmIChwb3NpdGlvbi5sZWZ0IHx8IHBvc2l0aW9uLnJpZ2h0KSkge1xuICAgICAgcG9zaXRpb24ubGVmdCA/IHN0cmF0ZWd5LmxlZnQocG9zaXRpb24ubGVmdCkgOiBzdHJhdGVneS5yaWdodChwb3NpdGlvbi5yaWdodClcbiAgICB9IGVsc2Uge1xuICAgICAgc3RyYXRlZ3kuY2VudGVySG9yaXpvbnRhbGx5KClcbiAgICB9XG5cbiAgICBpZiAocG9zaXRpb24gJiYgKHBvc2l0aW9uLnRvcCB8fCBwb3NpdGlvbi5ib3R0b20pKSB7XG4gICAgICBwb3NpdGlvbi50b3AgPyBzdHJhdGVneS50b3AocG9zaXRpb24udG9wKSA6IHN0cmF0ZWd5LmJvdHRvbShwb3NpdGlvbi5ib3R0b20pXG4gICAgfSBlbHNlIHtcbiAgICAgIHN0cmF0ZWd5LmNlbnRlclZlcnRpY2FsbHkoKVxuICAgIH1cblxuICAgIHRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB3aGVuIGtleWRvd24gZXZlbnRzIGFyZSB0YXJnZXRlZCBvbiB0aGUgb3ZlcmxheS5cbiAgICovXG4gIGtleWRvd25FdmVudHMoKTogT2JzZXJ2YWJsZTxLZXlib2FyZEV2ZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuX292ZXJsYXlSZWYua2V5ZG93bkV2ZW50cygpXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgZGlhbG9nJ3Mgd2lkdGggYW5kIGhlaWdodCwgZGVmaW5lZCwgbWluIGFuZCBtYXguXG4gICAqIEBwYXJhbSBzaXplIE5ldyBzaXplIGZvciB0aGUgb3ZlcmxheS5cbiAgICovXG4gIHVwZGF0ZVNpemUoc2l6ZTogT3ZlcmxheVNpemVDb25maWcpOiB0aGlzIHtcbiAgICBpZiAoc2l6ZS53aWR0aCkge1xuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmRlcHJlY2F0aW9uXG4gICAgICB0aGlzLl9nZXRQb3NpdGlvblN0cmF0ZWd5KCkud2lkdGgoc2l6ZS53aWR0aC50b1N0cmluZygpKVxuICAgIH1cbiAgICBpZiAoc2l6ZS5oZWlnaHQpIHtcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkZXByZWNhdGlvblxuICAgICAgdGhpcy5fZ2V0UG9zaXRpb25TdHJhdGVneSgpLmhlaWdodChzaXplLmhlaWdodC50b1N0cmluZygpKVxuICAgIH1cbiAgICB0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVNpemUoc2l6ZSlcbiAgICB0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uKClcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqIEZldGNoZXMgdGhlIHBvc2l0aW9uIHN0cmF0ZWd5IG9iamVjdCBmcm9tIHRoZSBvdmVybGF5IHJlZi4gKi9cbiAgcHJpdmF0ZSBfZ2V0UG9zaXRpb25TdHJhdGVneSgpOiBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5IHtcbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxheVJlZi5nZXRDb25maWcoKS5wb3NpdGlvblN0cmF0ZWd5IGFzIEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3lcbiAgfVxuXG4gIC8qKiBHZXRzIGFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB3aGVuIGRpYWxvZyBiZWdpbnMgb3BlbmluZy4gKi9cbiAgYmVmb3JlT3BlbmVkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9jb250YWluZXJJbnN0YW5jZS5fYmVmb3JlRW50ZXIuYXNPYnNlcnZhYmxlKClcbiAgfVxuXG4gIC8qKiBHZXRzIGFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB3aGVuIGRpYWxvZyBpcyBmaW5pc2hlZCBvcGVuaW5nLiAqL1xuICBhZnRlck9wZW5lZCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fY29udGFpbmVySW5zdGFuY2UuX2FmdGVyRW50ZXIuYXNPYnNlcnZhYmxlKClcbiAgfVxuXG4gIC8qKiBHZXRzIGFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyB3aGVuIGRpYWxvZyBiZWdpbnMgY2xvc2luZy4gKi9cbiAgYmVmb3JlQ2xvc2VkKCk6IE9ic2VydmFibGU8UiB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLl9jb250YWluZXJJbnN0YW5jZS5fYmVmb3JlRXhpdC5waXBlKG1hcCgoKSA9PiB0aGlzLl9yZXN1bHQpKVxuICB9XG5cbiAgLyoqIEdldHMgYW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHdoZW4gZGlhbG9nIGlzIGZpbmlzaGVkIGNsb3NpbmcuICovXG4gIGFmdGVyQ2xvc2VkKCk6IE9ic2VydmFibGU8UiB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLl9jb250YWluZXJJbnN0YW5jZS5fYWZ0ZXJFeGl0LnBpcGUobWFwKCgpID0+IHRoaXMuX3Jlc3VsdCkpXG4gIH1cbn1cbiJdfQ==
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktY29tbW9uL21vZGFsL21vZGFsLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFHOUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUs1QyxNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBQTtBQUU5Qix3Q0FBd0M7QUFDeEMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFBO0FBRWhCOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFFBQVE7SUFZbkIsWUFDUyxXQUF1QixFQUNwQixrQkFBMkMsRUFDNUMsS0FBYSxjQUFjLFFBQVEsRUFBRSxFQUFFO1FBRnpDLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3BCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBeUI7UUFDNUMsT0FBRSxHQUFGLEVBQUUsQ0FBcUM7UUFkbEQsbURBQW1EO1FBQ25ELHNCQUFpQixHQUFhLElBQUksQ0FBQTtRQVExQix5QkFBb0IsR0FBd0IsSUFBSSxDQUFBO1FBTXRELHNDQUFzQztRQUN0QyxrQkFBa0IsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFBO1FBRTNCLGlFQUFpRTtRQUNqRSxJQUFJLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDMUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO29CQUN0QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7aUJBQ2I7WUFDSCxDQUFDLENBQUMsQ0FBQTtZQUVGLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQTtTQUM1RDtRQUVELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FB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bnQiOlsiaW1wb3J0IHsgRVNDQVBFIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJ1xuaW1wb3J0IHsgR2xvYmFsUG9zaXRpb25TdHJhdGVneSwgT3ZlcmxheVJlZiwgT3ZlcmxheVNpemVDb25maWcgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSdcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgSU1vZGFsUG9zaXRpb24gfSBmcm9tICcuL21vZGFsLWNvbmZpZydcbmltcG9ydCB7IE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC1jb250YWluZXIvbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudCdcblxuY29uc3QgRFJBR19DTE9TRV9USFJFU0hPTEQgPSA1XG5cbi8qKiBVbmlxdWUgaWQgZm9yIHRoZSBjcmVhdGVkIGRpYWxvZy4gKi9cbmxldCB1bmlxdWVJZCA9IDBcblxuLyoqXG4gKiBSZWZlcmVuY2UgdG8gYSBkaWFsb2cgb3BlbmVkIHZpYSB0aGUgRGlhbG9nIHNlcnZpY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBNb2RhbFJlZjxULCBSID0gYW55PiB7XG4gIC8qKiBUaGUgaW5zdGFuY2Ugb2YgdGhlIGNvbXBvbmVudCBpbiB0aGUgZGlhbG9nLiAqL1xuICBjb21wb25lbnRJbnN0YW5jZTogVCB8IG51bGwgPSBudWxsXG5cbiAgLyoqIFdoZXRoZXIgdGhlIHVzZXIgaXMgYWxsb3dlZCB0byBjbG9zZSB0aGUgZGlhbG9nLiAqL1xuICBkaXNhYmxlQ2xvc2U6IGJvb2xlYW4gfCB1bmRlZmluZWRcblxuICAvKiogUmVzdWx0IHRvIGJlIHBhc3NlZCB0byBhZnRlckNsb3NlZC4gKi9cbiAgcHJpdmF0ZSBfcmVzdWx0OiBSIHwgdW5kZWZpbmVkXG5cbiAgcHJpdmF0ZSBfY2xpY2tPdXRzaWRlQ2xlYW51cDogKCgpID0+IHZvaWQpIHwgbnVsbCA9IG51bGxcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWYsXG4gICAgcHJvdGVjdGVkIF9jb250YWluZXJJbnN0YW5jZTogTW9kYWxDb250YWluZXJDb21wb25lbnQsXG4gICAgcmVhZG9ubHkgaWQ6IHN0cmluZyA9IGBzZWFtLW1vZGFsLSR7dW5pcXVlSWQrK31gKSB7XG4gICAgLy8gUGFzcyB0aGUgaWQgYWxvbmcgdG8gdGhlIGNvbnRhaW5lci5cbiAgICBfY29udGFpbmVySW5zdGFuY2UuX2lkID0gaWRcblxuICAgIC8vIElmIHRoZSBkaWFsb2cgaGFzIGEgYmFja2Ryb3AsIGhhbmRsZSBjbGlja3MgZnJvbSB0aGUgYmFja2Ryb3AuXG4gICAgaWYgKF9jb250YWluZXJJbnN0YW5jZS5fY29uZmlnLmhhc0JhY2tkcm9wKSB7XG4gICAgICBfb3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVDbG9zZSkge1xuICAgICAgICAgIHRoaXMuY2xvc2UoKVxuICAgICAgICB9XG4gICAgICB9KVxuXG4gICAgICB0aGlzLl9jbGlja091dHNpZGVDbGVhbnVwID0gdGhpcy5faW5pdENsb3NlT25DbGlja091dHNpZGUoKVxuICAgIH1cblxuICAgIHRoaXMuYmVmb3JlQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGV0YWNoQmFja2Ryb3AoKVxuICAgIH0pXG5cbiAgICB0aGlzLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGV0YWNoKClcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGlzcG9zZSgpXG4gICAgICB0aGlzLmNvbXBvbmVudEluc3RhbmNlID0gbnVsbFxuICAgIH0pXG5cbiAgICAvLyBDbG9zZSB3aGVuIGVzY2FwZSBrZXlkb3duIGV2ZW50IG9jY3Vyc1xuICAgIF9vdmVybGF5UmVmLmtleWRvd25FdmVudHMoKVxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmRlcHJlY2F0aW9uXG4gICAgICAucGlwZShmaWx0ZXIoZXZlbnQgPT4gZXZlbnQua2V5Q29kZSA9PT0gRVNDQVBFICYmICF0aGlzLmRpc2FibGVDbG9zZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2UoKSlcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRDbG9zZU9uQ2xpY2tPdXRzaWRlKCk6ICgpID0+IHZvaWQge1xuICAgIGNvbnN0IGNsb3NlID0gKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmRpc2FibGVDbG9zZSkge1xuICAgICAgICB0aGlzLmNsb3NlKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBpc0luQ29udGFpbmVyID0gKHRhcmdldDogSFRNTEVsZW1lbnQgfCBudWxsKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fY29udGFpbmVySW5zdGFuY2UuZ2V0TmF0aXZlRWxlbWVudCgpLmNvbnRhaW5zKHRhcmdldClcbiAgICB9XG5cbiAgICBjb25zdCBnZXRQb3NpdGlvbiA9IChldmVudDogTW91c2VFdmVudCB8IFBvaW50ZXJFdmVudCk6IHsgeDogbnVtYmVyLCB5OiBudW1iZXIgfSA9PiB7XG4gICAgICByZXR1cm4geyB4OiBldmVudC5jbGllbnRYLCB5OiBldmVudC5jbGllbnRZIH1cbiAgICB9XG5cbiAgICBjb25zdCBkaXN0ID0gKHgxOiBudW1iZXIsIHkxOiBudW1iZXIsIHgyOiBudW1iZXIsIHkyOiBudW1iZXIpOiBudW1iZXIgPT4ge1xuICAgICAgcmV0dXJuIE1hdGguc3FydChNYXRoLnBvdygoeDIgLSB4MSksIDIpICsgTWF0aC5wb3coKHkyIC0geTEpLCAyKSlcbiAgICB9XG5cbiAgICBsZXQgcHJlc3NlZCA9IGZhbHNlXG4gICAgbGV0IHByZXNzZWRQb3NpdGlvbjogeyB4OiBudW1iZXIsIHk6IG51bWJlciB9IHwgbnVsbCA9IG51bGxcbiAgICBjb25zdCBfaGFuZGxlUHJlc3NEb3duID0gKGV2ZW50OiBNb3VzZUV2ZW50IHwgUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICBwcmVzc2VkID0gdHJ1ZVxuICAgICAgcHJlc3NlZFBvc2l0aW9uID0gZ2V0UG9zaXRpb24oZXZlbnQpXG4gICAgfVxuXG4gICAgY29uc3QgX2hhbmRsZVByZXNzVXAgPSAoZXZlbnQ6IE1vdXNlRXZlbnQgfCBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIGlmIChwcmVzc2VkUG9zaXRpb24pIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgbnVsbFxuICAgICAgICBpZiAodGFyZ2V0ICYmICFpc0luQ29udGFpbmVyKHRhcmdldCkpIHtcbiAgICAgICAgICBjb25zdCBjdXJyZW50UG9zaXRpb24gPSBnZXRQb3NpdGlvbihldmVudClcbiAgICAgICAgICBjb25zdCBkID0gZGlzdChjdXJyZW50UG9zaXRpb24ueCwgY3VycmVudFBvc2l0aW9uLnksIHByZXNzZWRQb3NpdGlvbi54LCBwcmVzc2VkUG9zaXRpb24ueSlcbiAgICAgICAgICBpZiAoZCA8IERSQUdfQ0xPU0VfVEhSRVNIT0xEKSB7XG4gICAgICAgICAgICBjbG9zZSgpXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcHJlc3NlZFBvc2l0aW9uID0gbnVsbFxuICAgICAgfSBlbHNlIGlmIChwcmVzc2VkKSB7XG4gICAgICAgIGNsb3NlKClcbiAgICAgIH1cbiAgICAgIHByZXNzZWQgPSBmYWxzZVxuICAgIH1cblxuICAgIHRoaXMuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgX2hhbmRsZVByZXNzRG93bilcbiAgICB0aGlzLl9vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgX2hhbmRsZVByZXNzRG93bilcblxuICAgIHRoaXMuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIF9oYW5kbGVQcmVzc1VwKVxuICAgIHRoaXMuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgX2hhbmRsZVByZXNzVXApXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBfaGFuZGxlUHJlc3NEb3duKVxuICAgICAgdGhpcy5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIF9oYW5kbGVQcmVzc0Rvd24pXG5cbiAgICAgIHRoaXMuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIF9oYW5kbGVQcmVzc1VwKVxuICAgICAgdGhpcy5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCBfaGFuZGxlUHJlc3NVcClcbiAgICB9XG4gIH1cblxuICAvKiogR2V0cyBhbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgd2hlbiB0aGUgb3ZlcmxheSdzIGJhY2tkcm9wIGhhcyBiZWVuIGNsaWNrZWQuICovXG4gIGJhY2tkcm9wQ2xpY2soKTogT2JzZXJ2YWJsZTxNb3VzZUV2ZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuX292ZXJsYXlSZWYuYmFja2Ryb3BDbGljaygpXG4gIH1cblxuICAvKipcbiAgICogQ2xvc2UgdGhlIGRpYWxvZy5cbiAgICogQHBhcmFtIGRpYWxvZ1Jlc3VsdCBPcHRpb25hbCByZXN1bHQgdG8gcmV0dXJuIHRvIHRoZSBkaWFsb2cgb3BlbmVyLlxuICAgKi9cbiAgY2xvc2UoZGlhbG9nUmVzdWx0PzogUik6IHZvaWQge1xuICAgIHRoaXMuX3Jlc3VsdCA9IGRpYWxvZ1Jlc3VsdFxuICAgIHRoaXMuX2NvbnRhaW5lckluc3RhbmNlLl9zdGFydEV4aXRpbmcoKVxuICAgIGlmICh0aGlzLl9jbGlja091dHNpZGVDbGVhbnVwKSB7IHRoaXMuX2NsaWNrT3V0c2lkZUNsZWFudXAoKSB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgZGlhbG9nJ3MgcG9zaXRpb24uXG4gICAqIEBwYXJhbSBwb3NpdGlvbiBOZXcgZGlhbG9nIHBvc2l0aW9uLlxuICAgKi9cbiAgdXBkYXRlUG9zaXRpb24ocG9zaXRpb24/OiBJTW9kYWxQb3NpdGlvbik6IHRoaXMge1xuICAgIGNvbnN0IHN0cmF0ZWd5ID0gdGhpcy5fZ2V0UG9zaXRpb25TdHJhdGVneSgpXG5cbiAgICBpZiAocG9zaXRpb24gJiYgKHBvc2l0aW9uLmxlZnQgfHwgcG9zaXRpb24ucmlnaHQpKSB7XG4gICAgICBwb3NpdGlvbi5sZWZ0ID8gc3RyYXRlZ3kubGVmdChwb3NpdGlvbi5sZWZ0KSA6IHN0cmF0ZWd5LnJpZ2h0KHBvc2l0aW9uLnJpZ2h0KVxuICAgIH0gZWxzZSB7XG4gICAgICBzdHJhdGVneS5jZW50ZXJIb3Jpem9udGFsbHkoKVxuICAgIH1cblxuICAgIGlmIChwb3NpdGlvbiAmJiAocG9zaXRpb24udG9wIHx8IHBvc2l0aW9uLmJvdHRvbSkpIHtcbiAgICAgIHBvc2l0aW9uLnRvcCA/IHN0cmF0ZWd5LnRvcChwb3NpdGlvbi50b3ApIDogc3RyYXRlZ3kuYm90dG9tKHBvc2l0aW9uLmJvdHRvbSlcbiAgICB9IGVsc2Uge1xuICAgICAgc3RyYXRlZ3kuY2VudGVyVmVydGljYWxseSgpXG4gICAgfVxuXG4gICAgdGhpcy5fb3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvbigpXG5cbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHdoZW4ga2V5ZG93biBldmVudHMgYXJlIHRhcmdldGVkIG9uIHRoZSBvdmVybGF5LlxuICAgKi9cbiAga2V5ZG93bkV2ZW50cygpOiBPYnNlcnZhYmxlPEtleWJvYXJkRXZlbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5fb3ZlcmxheVJlZi5rZXlkb3duRXZlbnRzKClcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBkaWFsb2cncyB3aWR0aCBhbmQgaGVpZ2h0LCBkZWZpbmVkLCBtaW4gYW5kIG1heC5cbiAgICogQHBhcmFtIHNpemUgTmV3IHNpemUgZm9yIHRoZSBvdmVybGF5LlxuICAgKi9cbiAgdXBkYXRlU2l6ZShzaXplOiBPdmVybGF5U2l6ZUNvbmZpZyk6IHRoaXMge1xuICAgIGlmIChzaXplLndpZHRoKSB7XG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6ZGVwcmVjYXRpb25cbiAgICAgIHRoaXMuX2dldFBvc2l0aW9uU3RyYXRlZ3koKS53aWR0aChzaXplLndpZHRoLnRvU3RyaW5nKCkpXG4gICAgfVxuICAgIGlmIChzaXplLmhlaWdodCkge1xuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmRlcHJlY2F0aW9uXG4gICAgICB0aGlzLl9nZXRQb3NpdGlvblN0cmF0ZWd5KCkuaGVpZ2h0KHNpemUuaGVpZ2h0LnRvU3RyaW5nKCkpXG4gICAgfVxuICAgIHRoaXMuX292ZXJsYXlSZWYudXBkYXRlU2l6ZShzaXplKVxuICAgIHRoaXMuX292ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvKiogRmV0Y2hlcyB0aGUgcG9zaXRpb24gc3RyYXRlZ3kgb2JqZWN0IGZyb20gdGhlIG92ZXJsYXkgcmVmLiAqL1xuICBwcml2YXRlIF9nZXRQb3NpdGlvblN0cmF0ZWd5KCk6IEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3kge1xuICAgIHJldHVybiB0aGlzLl9vdmVybGF5UmVmLmdldENvbmZpZygpLnBvc2l0aW9uU3RyYXRlZ3kgYXMgR2xvYmFsUG9zaXRpb25TdHJhdGVneVxuICB9XG5cbiAgLyoqIEdldHMgYW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHdoZW4gZGlhbG9nIGJlZ2lucyBvcGVuaW5nLiAqL1xuICBiZWZvcmVPcGVuZWQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRhaW5lckluc3RhbmNlLl9iZWZvcmVFbnRlci5hc09ic2VydmFibGUoKVxuICB9XG5cbiAgLyoqIEdldHMgYW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHdoZW4gZGlhbG9nIGlzIGZpbmlzaGVkIG9wZW5pbmcuICovXG4gIGFmdGVyT3BlbmVkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9jb250YWluZXJJbnN0YW5jZS5fYWZ0ZXJFbnRlci5hc09ic2VydmFibGUoKVxuICB9XG5cbiAgLyoqIEdldHMgYW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHdoZW4gZGlhbG9nIGJlZ2lucyBjbG9zaW5nLiAqL1xuICBiZWZvcmVDbG9zZWQoKTogT2JzZXJ2YWJsZTxSIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRhaW5lckluc3RhbmNlLl9iZWZvcmVFeGl0LnBpcGUobWFwKCgpID0+IHRoaXMuX3Jlc3VsdCkpXG4gIH1cblxuICAvKiogR2V0cyBhbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgd2hlbiBkaWFsb2cgaXMgZmluaXNoZWQgY2xvc2luZy4gKi9cbiAgYWZ0ZXJDbG9zZWQoKTogT2JzZXJ2YWJsZTxSIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRhaW5lckluc3RhbmNlLl9hZnRlckV4aXQucGlwZShtYXAoKCkgPT4gdGhpcy5fcmVzdWx0KSlcbiAgfVxufVxuIl19
|
|
@@ -25,8 +25,8 @@ import { RouteModalComponent } from './route-modal/route-modal.component';
|
|
|
25
25
|
import * as i0 from "@angular/core";
|
|
26
26
|
export class TheSeamModalModule {
|
|
27
27
|
}
|
|
28
|
-
TheSeamModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
29
|
-
TheSeamModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.
|
|
28
|
+
TheSeamModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
29
|
+
TheSeamModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: TheSeamModalModule, declarations: [ModalComponent,
|
|
30
30
|
ModalFooterTplDirective,
|
|
31
31
|
ModalHeaderIconTplDirective,
|
|
32
32
|
ModalHeaderTitleTplDirective,
|
|
@@ -57,7 +57,7 @@ TheSeamModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", vers
|
|
|
57
57
|
ModalBodyComponent,
|
|
58
58
|
ModalFooterComponent,
|
|
59
59
|
ModalCloseDirective] });
|
|
60
|
-
TheSeamModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.
|
|
60
|
+
TheSeamModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamModalModule, providers: [
|
|
61
61
|
Modal,
|
|
62
62
|
THESEAM_MODAL_SCROLL_STRATEGY_PROVIDER,
|
|
63
63
|
{ provide: MODAL_REF, useValue: ModalRef },
|
|
@@ -73,7 +73,7 @@ TheSeamModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", vers
|
|
|
73
73
|
// Re-export the PortalModule so that people extending the `CdkDialogContainer`
|
|
74
74
|
// don't have to remember to import it or be faced with an unhelpful error.
|
|
75
75
|
PortalModule] });
|
|
76
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TheSeamModalModule, decorators: [{
|
|
77
77
|
type: NgModule,
|
|
78
78
|
args: [{
|
|
79
79
|
declarations: [
|
|
@@ -35,8 +35,8 @@ export class Modal {
|
|
|
35
35
|
this._scrollbars = _scrollbars;
|
|
36
36
|
this._dynamicComponentLoaderModule = _dynamicComponentLoaderModule;
|
|
37
37
|
this._afterAllClosedBase = new Subject();
|
|
38
|
-
this.afterAllClosed = defer(() => this.openDialogs.length
|
|
39
|
-
this._afterAllClosed : this._afterAllClosed.pipe(startWith(undefined)));
|
|
38
|
+
this.afterAllClosed = defer(() => this.openDialogs.length
|
|
39
|
+
? this._afterAllClosed : this._afterAllClosed.pipe(startWith(undefined)));
|
|
40
40
|
this._afterOpened = new Subject();
|
|
41
41
|
this._openDialogs = [];
|
|
42
42
|
// Close all of the dialogs when the user goes forwards/backwards in history or when the
|
|
@@ -59,38 +59,38 @@ export class Modal {
|
|
|
59
59
|
openFromComponent(component, config,
|
|
60
60
|
// NOTE: Should only be needed with the current implementation of `TheSeamDynamicComponentLoader`.
|
|
61
61
|
componentFactoryResolver) {
|
|
62
|
-
|
|
63
|
-
if (
|
|
64
|
-
throw Error(`Modal with id "${
|
|
62
|
+
const _config = this._applyConfigDefaults(config);
|
|
63
|
+
if (_config.id && this.getById(_config.id)) {
|
|
64
|
+
throw Error(`Modal with id "${_config.id}" exists already. The modal id must be unique.`);
|
|
65
65
|
}
|
|
66
|
-
const overlayRef = this._createOverlay(
|
|
67
|
-
const dialogContainer = this._attachDialogContainer(overlayRef,
|
|
68
|
-
const dialogRef = this._attachDialogContentForComponent(component, dialogContainer, overlayRef,
|
|
66
|
+
const overlayRef = this._createOverlay(_config);
|
|
67
|
+
const dialogContainer = this._attachDialogContainer(overlayRef, _config);
|
|
68
|
+
const dialogRef = this._attachDialogContentForComponent(component, dialogContainer, overlayRef, _config, componentFactoryResolver);
|
|
69
69
|
this.registerDialogRef(dialogRef);
|
|
70
70
|
return dialogRef;
|
|
71
71
|
}
|
|
72
72
|
/** Opens a dialog from a template. */
|
|
73
73
|
openFromTemplate(template, config) {
|
|
74
|
-
|
|
75
|
-
if (
|
|
76
|
-
throw Error(`Modal with id "${
|
|
74
|
+
const _config = this._applyConfigDefaults(config);
|
|
75
|
+
if (_config.id && this.getById(_config.id)) {
|
|
76
|
+
throw Error(`Modal with id "${_config.id}" exists already. The modal id must be unique.`);
|
|
77
77
|
}
|
|
78
|
-
const overlayRef = this._createOverlay(
|
|
79
|
-
const dialogContainer = this._attachDialogContainer(overlayRef,
|
|
80
|
-
const dialogRef = this._attachDialogContentForTemplate(template, dialogContainer, overlayRef,
|
|
78
|
+
const overlayRef = this._createOverlay(_config);
|
|
79
|
+
const dialogContainer = this._attachDialogContainer(overlayRef, _config);
|
|
80
|
+
const dialogRef = this._attachDialogContentForTemplate(template, dialogContainer, overlayRef, _config);
|
|
81
81
|
this.registerDialogRef(dialogRef);
|
|
82
82
|
return dialogRef;
|
|
83
83
|
}
|
|
84
84
|
/** Opens a dialog from a lazy-loaded component. */
|
|
85
85
|
openFromLazyComponent(componentId, config) {
|
|
86
|
-
|
|
87
|
-
if (
|
|
88
|
-
throw Error(`Modal with id "${
|
|
86
|
+
const _config = this._applyConfigDefaults(config);
|
|
87
|
+
if (_config.id && this.getById(_config.id)) {
|
|
88
|
+
throw Error(`Modal with id "${_config.id}" exists already. The modal id must be unique.`);
|
|
89
89
|
}
|
|
90
90
|
return this._dynamicComponentLoaderModule
|
|
91
91
|
.getComponentFactory(componentId)
|
|
92
92
|
.pipe(switchMap(componentFactory => {
|
|
93
|
-
const modalRef = this.openFromComponent(componentFactory.componentType,
|
|
93
|
+
const modalRef = this.openFromComponent(componentFactory.componentType, _config, componentFactory /* ComponentFactoryBoundToModule */.ngModule.componentFactoryResolver);
|
|
94
94
|
return of(modalRef);
|
|
95
95
|
}));
|
|
96
96
|
}
|
|
@@ -227,7 +227,7 @@ export class Modal {
|
|
|
227
227
|
const overlayConfig = new OverlayConfig({
|
|
228
228
|
positionStrategy: this.overlay.position().global(),
|
|
229
229
|
scrollStrategy: this._scrollStrategy(),
|
|
230
|
-
panelClass
|
|
230
|
+
panelClass,
|
|
231
231
|
hasBackdrop: config.hasBackdrop,
|
|
232
232
|
direction: config.direction,
|
|
233
233
|
minWidth: config.minWidth,
|
|
@@ -269,6 +269,7 @@ export class Modal {
|
|
|
269
269
|
_attachDialogContentForComponent(componentOrTemplateRef, dialogContainer, overlayRef, config, componentFactoryResolver) {
|
|
270
270
|
// Create a reference to the dialog we're creating in order to give the user a handle
|
|
271
271
|
// to modify and close it.
|
|
272
|
+
// eslint-disable-next-line new-cap
|
|
272
273
|
const dialogRef = new this.dialogRefConstructor(overlayRef, dialogContainer, config.id);
|
|
273
274
|
const injector = this._createInjector(config, dialogRef, dialogContainer);
|
|
274
275
|
const contentRef = dialogContainer.attachComponentPortal(new ComponentPortal(componentOrTemplateRef, undefined, injector, componentFactoryResolver));
|
|
@@ -290,6 +291,7 @@ export class Modal {
|
|
|
290
291
|
_attachDialogContentForTemplate(componentOrTemplateRef, dialogContainer, overlayRef, config) {
|
|
291
292
|
// Create a reference to the dialog we're creating in order to give the user a handle
|
|
292
293
|
// to modify and close it.
|
|
294
|
+
// eslint-disable-next-line new-cap
|
|
293
295
|
const dialogRef = new this.dialogRefConstructor(overlayRef, dialogContainer, config.id);
|
|
294
296
|
dialogContainer.attachTemplatePortal(new TemplatePortal(componentOrTemplateRef, null, { $implicit: config.data, dialogRef }));
|
|
295
297
|
dialogRef.updateSize({ width: config.width, height: config.height })
|
|
@@ -326,12 +328,13 @@ export class Modal {
|
|
|
326
328
|
*/
|
|
327
329
|
_applyConfigDefaults(config) {
|
|
328
330
|
const dialogConfig = this.injector.get(MODAL_CONFIG);
|
|
331
|
+
// eslint-disable-next-line new-cap
|
|
329
332
|
return { ...new dialogConfig(), ...config };
|
|
330
333
|
}
|
|
331
334
|
}
|
|
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.
|
|
335
|
+
Modal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", 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 });
|
|
336
|
+
Modal.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: Modal });
|
|
337
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: Modal, decorators: [{
|
|
335
338
|
type: Injectable
|
|
336
339
|
}], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i0.Injector }, { type: i0.Type, decorators: [{
|
|
337
340
|
type: Inject,
|
|
@@ -346,4 +349,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
|
|
|
346
349
|
}] }, { type: i2.Location, decorators: [{
|
|
347
350
|
type: Optional
|
|
348
351
|
}] }, { type: i3.OverlayScrollbarsService }, { type: i4.TheSeamDynamicComponentLoader }]; } });
|
|
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
|
|
352
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9tb2RhbC9tb2RhbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNsRCxPQUFPLEVBR0wsYUFBYSxHQUdkLE1BQU0sc0JBQXNCLENBQUE7QUFDN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFFckYsT0FBTyxFQUdMLE1BQU0sRUFDTixVQUFVLEVBR1YsUUFBUSxFQUNSLFFBQVEsRUFHVCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxFQUFFLElBQUksWUFBWSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUN6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBS3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUU1QyxPQUFPLEVBQ0wsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsU0FBUyxFQUNULHFCQUFxQixHQUN0QixNQUFNLG1CQUFtQixDQUFBOzs7Ozs7QUFHMUI7O0dBRUc7QUFFSCxNQUFNLE9BQU8sS0FBSztJQUdoQixxREFBcUQ7SUFDckQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQTtJQUMxRixDQUFDO0lBTUQsaURBQWlEO0lBQ2pELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFX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LENBQUM7WUFDckQsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQztTQUMxQixDQUFDLENBQUE7UUFFRixJQUFJLE1BQU0sQ0FBQyxTQUFTO1lBQ2hCLENBQUMsQ0FBQyxZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUF3QixjQUFjLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRTtZQUNyRixlQUFlLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRTtnQkFDbEMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxTQUFTO2dCQUN2QixNQUFNLEVBQUUsWUFBWSxFQUFFO2FBQ3ZCLENBQUMsQ0FBQTtTQUNIO1FBRUQsT0FBTyxJQUFJLGNBQWMsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMsQ0FBQTtJQUMzRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssb0JBQW9CLENBQUMsTUFBb0I7UUFDL0MsTUFBTSxZQUFZLEdBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFtQyxDQUFBO1FBQ3ZGLG1DQUFtQztRQUNuQyxPQUFPLEVBQUUsR0FBRyxJQUFJLFlBQVksRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUE7SUFDN0MsQ0FBQzs7a0dBeFlVLEtBQUssaUVBMkJOLFNBQVMsYUFDVCxxQkFBcUI7c0dBNUJwQixLQUFLOzJGQUFMLEtBQUs7a0JBRGpCLFVBQVU7OzBCQTRCTixNQUFNOzJCQUFDLFNBQVM7OzBCQUNoQixNQUFNOzJCQUFDLHFCQUFxQjs7MEJBQzVCLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUNwQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSdcbmltcG9ydCB7XG4gIENvbXBvbmVudFR5cGUsXG4gIE92ZXJsYXksXG4gIE92ZXJsYXlDb25maWcsXG4gIE92ZXJsYXlSZWYsXG4gIFNjcm9sbFN0cmF0ZWd5LFxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSdcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgUG9ydGFsSW5qZWN0b3IsIFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCdcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBDb21wb25lbnRSZWYsXG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0b3IsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFNraXBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgVHlwZVxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgZGVmZXIsIE9ic2VydmFibGUsIG9mLCBvZiBhcyBvYnNlcnZhYmxlT2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgc3RhcnRXaXRoLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgVGhlU2VhbUR5bmFtaWNDb21wb25lbnRMb2FkZXIgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vZHluYW1pYy1jb21wb25lbnQtbG9hZGVyJ1xuaW1wb3J0IHsgT3ZlcmxheVNjcm9sbGJhcnNTZXJ2aWNlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL3Njcm9sbGJhcidcblxuaW1wb3J0IHsgTW9kYWxDb25maWcgfSBmcm9tICcuL21vZGFsLWNvbmZpZydcbmltcG9ydCB7IE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC1jb250YWluZXIvbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudCdcbmltcG9ydCB7XG4gIE1PREFMX0NPTkZJRyxcbiAgTU9EQUxfQ09OVEFJTkVSLFxuICBNT0RBTF9EQVRBLFxuICBNT0RBTF9SRUYsXG4gIE1PREFMX1NDUk9MTF9TVFJBVEVHWSxcbn0gZnJvbSAnLi9tb2RhbC1pbmplY3RvcnMnXG5pbXBvcnQgeyBNb2RhbFJlZiB9IGZyb20gJy4vbW9kYWwtcmVmJ1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gb3BlbiBtb2RhbCBkaWFsb2dzLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTW9kYWwgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9zY3JvbGxTdHJhdGVneTogKCkgPT4gU2Nyb2xsU3RyYXRlZ3lcblxuICAvKiogU3RyZWFtIHRoYXQgZW1pdHMgd2hlbiBhbGwgZGlhbG9ncyBhcmUgY2xvc2VkLiAqL1xuICBnZXQgX2FmdGVyQWxsQ2xvc2VkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnREaWFsb2cgPyB0aGlzLl9wYXJlbnREaWFsb2cuYWZ0ZXJBbGxDbG9zZWQgOiB0aGlzLl9hZnRlckFsbENsb3NlZEJhc2VcbiAgfVxuICBfYWZ0ZXJBbGxDbG9zZWRCYXNlID0gbmV3IFN1YmplY3Q8dm9pZD4oKVxuXG4gIGFmdGVyQWxsQ2xvc2VkOiBPYnNlcnZhYmxlPHZvaWQ+ID0gZGVmZXIoKCkgPT4gdGhpcy5vcGVuRGlhbG9ncy5sZW5ndGhcbiAgICAgID8gdGhpcy5fYWZ0ZXJBbGxDbG9zZWQgOiB0aGlzLl9hZnRlckFsbENsb3NlZC5waXBlKHN0YXJ0V2l0aCh1bmRlZmluZWQpKSlcblxuICAvKiogU3RyZWFtIHRoYXQgZW1pdHMgd2hlbiBhIGRpYWxvZyBpcyBvcGVuZWQuICovXG4gIGdldCBhZnRlck9wZW5lZCgpOiBTdWJqZWN0PE1vZGFsUmVmPGFueT4+IHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50RGlhbG9nID8gdGhpcy5fcGFyZW50RGlhbG9nLmFmdGVyT3BlbmVkIDogdGhpcy5fYWZ0ZXJPcGVuZWRcbiAgfVxuICBfYWZ0ZXJPcGVuZWQ6IFN1YmplY3Q8TW9kYWxSZWY8YW55Pj4gPSBuZXcgU3ViamVjdCgpXG5cbiAgLyoqIFN0cmVhbSB0aGF0IGVtaXRzIHdoZW4gYSBkaWFsb2cgaXMgb3BlbmVkLiAqL1xuICBnZXQgb3BlbkRpYWxvZ3MoKTogTW9kYWxSZWY8YW55PltdIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50RGlhbG9nID8gdGhpcy5fcGFyZW50RGlhbG9nLm9wZW5EaWFsb2dzIDogdGhpcy5fb3BlbkRpYWxvZ3NcbiAgfVxuICBfb3BlbkRpYWxvZ3M6IE1vZGFsUmVmPGFueT5bXSA9IFtdXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBJbmplY3QoTU9EQUxfUkVGKSBwcml2YXRlIGRpYWxvZ1JlZkNvbnN0cnVjdG9yOiBUeXBlPE1vZGFsUmVmPGFueT4+LFxuICAgIEBJbmplY3QoTU9EQUxfU0NST0xMX1NUUkFURUdZKSBzY3JvbGxTdHJhdGVneTogYW55LFxuICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIHByaXZhdGUgX3BhcmVudERpYWxvZzogTW9kYWwsXG4gICAgQE9wdGlvbmFsKCkgbG9jYXRpb246IExvY2F0aW9uLFxuICAgIHByaXZhdGUgX3Njcm9sbGJhcnM6IE92ZXJsYXlTY3JvbGxiYXJzU2VydmljZSxcbiAgICBwcml2YXRlIF9keW5hbWljQ29tcG9uZW50TG9hZGVyTW9kdWxlOiBUaGVTZWFtRHluYW1pY0NvbXBvbmVudExvYWRlclxuICApIHtcbiAgICAvLyBDbG9zZSBhbGwgb2YgdGhlIGRpYWxvZ3Mgd2hlbiB0aGUgdXNlciBnb2VzIGZvcndhcmRzL2JhY2t3YXJkcyBpbiBoaXN0b3J5IG9yIHdoZW4gdGhlXG4gICAgLy8gbG9jYXRpb24gaGFzaCBjaGFuZ2VzLiBOb3RlIHRoYXQgdGhpcyB1c3VhbGx5IGRvZXNuJ3QgaW5jbHVkZSBjbGlja2luZyBvbiBsaW5rcyAodW5sZXNzXG4gICAgLy8gdGhlIHVzZXIgaXMgdXNpbmcgdGhlIGBIYXNoTG9jYXRpb25TdHJhdGVneWApLlxuICAgIGlmICghX3BhcmVudERpYWxvZyAmJiBsb2NhdGlvbikge1xuICAgICAgbG9jYXRpb24uc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2VBbGwoKSlcbiAgICB9XG5cbiAgICB0aGlzLl9zY3JvbGxTdHJhdGVneSA9IHNjcm9sbFN0cmF0ZWd5XG4gIH1cblxuICAvKiogR2V0cyBhbiBvcGVuIGRpYWxvZyBieSBpZC4gKi9cbiAgZ2V0QnlJZChpZDogc3RyaW5nKTogTW9kYWxSZWY8YW55PiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX29wZW5EaWFsb2dzLmZpbmQocmVmID0+IHJlZi5pZCA9PT0gaWQpXG4gIH1cblxuICAvKiogQ2xvc2VzIGFsbCBvcGVuIGRpYWxvZ3MuICovXG4gIGNsb3NlQWxsKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbkRpYWxvZ3MuZm9yRWFjaChyZWYgPT4gcmVmLmNsb3NlKCkpXG4gIH1cblxuICAvKiogT3BlbnMgYSBkaWFsb2cgZnJvbSBhIGNvbXBvbmVudC4gKi9cbiAgb3BlbkZyb21Db21wb25lbnQ8VCwgRCA9IGFueT4oXG4gICAgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPFQ+LFxuICAgIGNvbmZpZz86IE1vZGFsQ29uZmlnPEQ+LFxuICAgIC8vIE5PVEU6IFNob3VsZCBvbmx5IGJlIG5lZWRlZCB3aXRoIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIG9mIGBUaGVTZWFtRHluYW1pY0NvbXBvbmVudExvYWRlcmAuXG4gICAgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPzogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIHwgbnVsbCB8IHVuZGVmaW5lZFxuICApOiBNb2RhbFJlZjxULCBEPiB7XG4gICAgY29uc3QgX2NvbmZpZyA9IHRoaXMuX2FwcGx5Q29uZmlnRGVmYXVsdHMoY29uZmlnKVxuXG4gICAgaWYgKF9jb25maWcuaWQgJiYgdGhpcy5nZXRCeUlkKF9jb25maWcuaWQpKSB7XG4gICAgICB0aHJvdyBFcnJvcihgTW9kYWwgd2l0aCBpZCBcIiR7X2NvbmZpZy5pZH1cIiBleGlzdHMgYWxyZWFkeS4gVGhlIG1vZGFsIGlkIG11c3QgYmUgdW5pcXVlLmApXG4gICAgfVxuXG4gICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMuX2NyZWF0ZU92ZXJsYXkoX2NvbmZpZylcbiAgICBjb25zdCBkaWFsb2dDb250YWluZXIgPSB0aGlzLl9hdHRhY2hEaWFsb2dDb250YWluZXIob3ZlcmxheVJlZiwgX2NvbmZpZylcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9hdHRhY2hEaWFsb2dDb250ZW50Rm9yQ29tcG9uZW50KGNvbXBvbmVudCwgZGlhbG9nQ29udGFpbmVyLFxuICAgICAgb3ZlcmxheVJlZiwgX2NvbmZpZywgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyKVxuXG4gICAgdGhpcy5yZWdpc3RlckRpYWxvZ1JlZihkaWFsb2dSZWYpXG4gICAgcmV0dXJuIGRpYWxvZ1JlZlxuICB9XG5cbiAgLyoqIE9wZW5zIGEgZGlhbG9nIGZyb20gYSB0ZW1wbGF0ZS4gKi9cbiAgb3BlbkZyb21UZW1wbGF0ZTxUPih0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8VD4sIGNvbmZpZz86IE1vZGFsQ29uZmlnKTogTW9kYWxSZWY8YW55PiB7XG4gICAgY29uc3QgX2NvbmZpZyA9IHRoaXMuX2FwcGx5Q29uZmlnRGVmYXVsdHMoY29uZmlnKVxuXG4gICAgaWYgKF9jb25maWcuaWQgJiYgdGhpcy5nZXRCeUlkKF9jb25maWcuaWQpKSB7XG4gICAgICB0aHJvdyBFcnJvcihgTW9kYWwgd2l0aCBpZCBcIiR7X2NvbmZpZy5pZH1cIiBleGlzdHMgYWxyZWFkeS4gVGhlIG1vZGFsIGlkIG11c3QgYmUgdW5pcXVlLmApXG4gICAgfVxuXG4gICAgY29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMuX2NyZWF0ZU92ZXJsYXkoX2NvbmZpZylcbiAgICBjb25zdCBkaWFsb2dDb250YWluZXIgPSB0aGlzLl9hdHRhY2hEaWFsb2dDb250YWluZXIob3ZlcmxheVJlZiwgX2NvbmZpZylcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9hdHRhY2hEaWFsb2dDb250ZW50Rm9yVGVtcGxhdGUodGVtcGxhdGUsIGRpYWxvZ0NvbnRhaW5lcixcbiAgICAgIG92ZXJsYXlSZWYsIF9jb25maWcpXG5cbiAgICB0aGlzLnJlZ2lzdGVyRGlhbG9nUmVmKGRpYWxvZ1JlZilcbiAgICByZXR1cm4gZGlhbG9nUmVmXG4gIH1cblxuICAvKiogT3BlbnMgYSBkaWFsb2cgZnJvbSBhIGxhenktbG9hZGVkIGNvbXBvbmVudC4gKi9cbiAgb3BlbkZyb21MYXp5Q29tcG9uZW50PFQsIEQgPSBhbnk+KFxuICAgIGNvbXBvbmVudElkOiBzdHJpbmcsXG4gICAgY29uZmlnPzogTW9kYWxDb25maWc8RD5cbiAgKTogT2JzZXJ2YWJsZTxNb2RhbFJlZjxULCBEPj4ge1xuICAgIGNvbnN0IF9jb25maWcgPSB0aGlzLl9hcHBseUNvbmZpZ0RlZmF1bHRzKGNvbmZpZylcblxuICAgIGlmIChfY29uZmlnLmlkICYmIHRoaXMuZ2V0QnlJZChfY29uZmlnLmlkKSkge1xuICAgICAgdGhyb3cgRXJyb3IoYE1vZGFsIHdpdGggaWQgXCIke19jb25maWcuaWR9XCIgZXhpc3RzIGFscmVhZHkuIFRoZSBtb2RhbCBpZCBtdXN0IGJlIHVuaXF1ZS5gKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9keW5hbWljQ29tcG9uZW50TG9hZGVyTW9kdWxlXG4gICAgICAuZ2V0Q29tcG9uZW50RmFjdG9yeTx1bmtub3duPihjb21wb25lbnRJZClcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoY29tcG9uZW50RmFjdG9yeSA9PiB7XG4gICAgICAgICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm9wZW5Gcm9tQ29tcG9uZW50KFxuICAgICAgICAgICAgY29tcG9uZW50RmFjdG9yeS5jb21wb25lbnRUeXBlLFxuICAgICAgICAgICAgX2NvbmZpZyxcbiAgICAgICAgICAgIChjb21wb25lbnRGYWN0b3J5IGFzIGFueSAvKiBDb21wb25lbnRGYWN0b3J5Qm91bmRUb01vZHVsZSAqLykubmdNb2R1bGUuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyXG4gICAgICAgICAgKVxuICAgICAgICAgIHJldHVybiBvZihtb2RhbFJlZilcbiAgICAgICAgfSlcbiAgICAgIClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIE9ubHkgY2xvc2UgYWxsIHRoZSBkaWFsb2dzIGF0IHRoaXMgbGV2ZWwuXG4gICAgdGhpcy5fb3BlbkRpYWxvZ3MuZm9yRWFjaChyZWYgPT4gcmVmLmNsb3NlKCkpXG4gIH1cblxuICAvKipcbiAgICogRm9yd2FyZHMgZW1pdHRpbmcgZXZlbnRzIGZvciB3aGVuIGRpYWxvZ3MgYXJlIG9wZW5lZCBhbmQgYWxsIGRpYWxvZ3MgYXJlIGNsb3NlZC5cbiAgICovXG4gIHByaXZhdGUgcmVnaXN0ZXJEaWFsb2dSZWYoZGlhbG9nUmVmOiBNb2RhbFJlZjxhbnk+KTogdm9pZCB7XG4gICAgdGhpcy5vcGVuRGlhbG9ncy5wdXNoKGRpYWxvZ1JlZilcblxuICAgIGxldCBjbGVhbnVwU2Nyb2xsOiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWRcbiAgICBjb25zdCBkaWFsb2dCZWZvcmVPcGVuU3ViID0gZGlhbG9nUmVmLmJlZm9yZU9wZW5lZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjbGVhbnVwU2Nyb2xsID0gdGhpcy5fcmVnaXN0ZXJEaWFsb2dSZWZTY3JvbGxFdmVudHMoZGlhbG9nUmVmKVxuICAgICAgZGlhbG9nQmVmb3JlT3BlblN1Yi51bnN1YnNjcmliZSgpXG4gICAgfSlcblxuICAgIGNvbnN0IGRpYWxvZ0JlZm9yZUNsb3NlU3ViID0gZGlhbG9nUmVmLmJlZm9yZUNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAvLyBUT0RPOiBEbyBJIG5lZWQgdG8gZGVzdHJveSB0aGUgaW5zdGFuY2U/IEkgZmVlbCBsaWtlIEkgc2hvdWxkLCBidXQgdGhlXG4gICAgICAvLyB3YXkgSSBoYXZlIHRoaXMgaW1wbGVtZW50ZWQgY3VycmVudGx5IGNhdXNlcyB0aGUgbmF0aXZlIHNjcm9sbGJhciB0b1xuICAgICAgLy8gYXBwZWFyIGJlZm9yZSB0aGUgZWxlbWVudCBpcyByZW1vdmVkIGZyb20gdGhlIERPTS5cbiAgICAgIC8vIHRoaXMuX3Njcm9sbGJhcnMuZGVzdHJveUluc3RhbmNlKGRpYWxvZ1JlZi5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudClcbiAgICAgIGlmIChjbGVhbnVwU2Nyb2xsKSB7XG4gICAgICAgIGNsZWFudXBTY3JvbGwoKVxuICAgICAgfVxuXG4gICAgICBkaWFsb2dCZWZvcmVDbG9zZVN1Yi51bnN1YnNjcmliZSgpXG4gICAgfSlcblxuICAgIGNvbnN0IGRpYWxvZ09wZW5TdWIgPSBkaWFsb2dSZWYuYWZ0ZXJPcGVuZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5hZnRlck9wZW5lZC5uZXh0KGRpYWxvZ1JlZilcbiAgICAgIGRpYWxvZ09wZW5TdWIudW5zdWJzY3JpYmUoKVxuICAgIH0pXG5cbiAgICBjb25zdCBkaWFsb2dDbG9zZVN1YiA9IGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAvLyB0aGlzLl9zY3JvbGxiYXJzLmRlc3Ryb3lJbnN0YW5jZShkaWFsb2dSZWYuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQpXG4gICAgICBjb25zdCBkaWFsb2dJbmRleCA9IHRoaXMuX29wZW5EaWFsb2dzLmluZGV4T2YoZGlhbG9nUmVmKVxuXG4gICAgICBpZiAoZGlhbG9nSW5kZXggPiAtMSkge1xuICAgICAgICB0aGlzLl9vcGVuRGlhbG9ncy5zcGxpY2UoZGlhbG9nSW5kZXgsIDEpXG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5fb3BlbkRpYWxvZ3MubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuX2FmdGVyQWxsQ2xvc2VkQmFzZS5uZXh0KClcbiAgICAgICAgZGlhbG9nQ2xvc2VTdWIudW5zdWJzY3JpYmUoKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvLyBUT0RPOiBDbGVhbnVwLiBUaGlzIHdhcyBydXNoZWQgdG9nZXRoZXIgZmFzdCBhbmQgYmVjYW1lIGFuIHVuZWZmaWNpZW50IG1lc3MuXG4gIHByaXZhdGUgX3JlZ2lzdGVyRGlhbG9nUmVmU2Nyb2xsRXZlbnRzKGRpYWxvZ1JlZjogTW9kYWxSZWY8YW55Pik6ICgpID0+IHZvaWQge1xuICAgIGNvbnN0IF9zY3JvbGxiYXJNb3VzZURvd25MaXN0ZW5lciA9ICgpID0+IHtcbiAgICAgIGlmIChkaWFsb2dSZWYpIHsgZGlhbG9nUmVmLmRpc2FibGVDbG9zZSA9IHRydWUgfVxuICAgIH1cbiAgICBjb25zdCBfc2Nyb2xsYmFyTW91c2VVcExpc3RlbmVyID0gKCkgPT4ge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7IGlmIChkaWFsb2dSZWYpIHsgZGlhbG9nUmVmLmRpc2FibGVDbG9zZSA9IGZhbHNlIH0gfSlcbiAgICB9XG5cbiAgICBsZXQgdmVydGljYWxIYW5kbGVFbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZFxuICAgIGxldCBob3Jpem9udGFsSGFuZGxlRWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWRcbiAgICB0aGlzLl9zY3JvbGxiYXJzLmluaXRpYWxpemVJbnN0YW5jZShkaWFsb2dSZWYuX292ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQsIHtcbiAgICAgIGNhbGxiYWNrczoge1xuICAgICAgICBvbkluaXRpYWxpemVkOiAoKSA9PiB7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ29uSW5pdGlhbGl6ZWQnKVxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLl9zY3JvbGxiYXJzLmdldEluc3RhbmNlKGRpYWxvZ1JlZi5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudClcbiAgICAgICAgICAgIGlmIChpbnN0YW5jZSkge1xuICAgICAgICAgICAgICB2ZXJ0aWNhbEhhbmRsZUVsZW1lbnQgPSBpbnN0YW5jZS5nZXRFbGVtZW50cygpLnNjcm9sbGJhclZlcnRpY2FsLmhhbmRsZVxuICAgICAgICAgICAgICBpZiAodmVydGljYWxIYW5kbGVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgdmVydGljYWxIYW5kbGVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIF9zY3JvbGxiYXJNb3VzZURvd25MaXN0ZW5lcilcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbEhhbmRsZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIF9zY3JvbGxiYXJNb3VzZURvd25MaXN0ZW5lcilcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBob3Jpem9udGFsSGFuZGxlRWxlbWVudCA9IGluc3RhbmNlLmdldEVsZW1lbnRzKCkuc2Nyb2xsYmFySG9yaXpvbnRhbC5oYW5kbGVcbiAgICAgICAgICAgICAgaWYgKGhvcml6b250YWxIYW5kbGVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgaG9yaXpvbnRhbEhhbmRsZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgX3Njcm9sbGJhck1vdXNlRG93bkxpc3RlbmVyKVxuICAgICAgICAgICAgICAgIGhvcml6b250YWxIYW5kbGVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBfc2Nyb2xsYmFyTW91c2VEb3duTGlzdGVuZXIpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKHZlcnRpY2FsSGFuZGxlRWxlbWVudCB8fCBob3Jpem9udGFsSGFuZGxlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBfc2Nyb2xsYmFyTW91c2VVcExpc3RlbmVyKVxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgX3Njcm9sbGJhck1vdXNlVXBMaXN0ZW5lcilcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaGNhbmNlbCcsIF9zY3JvbGxiYXJNb3VzZVVwTGlzdGVuZXIpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICB9LFxuICAgICAgICBvbkRlc3Ryb3llZDogKCkgPT4ge1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdvbkRlc3Ryb3llZCcpXG4gICAgICAgICAgLy8gLy8gY29uc3QgaW5zdGFuY2UgPSB0aGlzLl9zY3JvbGxiYXJzLmdldEluc3RhbmNlKGRpYWxvZ1JlZi5fb3ZlcmxheVJlZi5vdmVybGF5RWxlbWVudClcbiAgICAgICAgICAvLyAvLyBjb25zdCBzY3JvbGxFbGVtID0gaW5zdGFuY2UuZ2V0RWxlbWVudHMoKS5zY3JvbGxiYXJWZXJ0aWNhbC5oYW5kbGVcbiAgICAgICAgICAvLyBpZiAodmVydGljYWxIYW5kbGVFbGVtZW50KSB7XG4gICAgICAgICAgLy8gICB2ZXJ0aWNhbEhhbmRsZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgX3Njcm9sbGJhck1vdXNlRG93bkxpc3RlbmVyKVxuICAgICAgICAgIC8vICAgdmVydGljYWxIYW5kbGVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBfc2Nyb2xsYmFyTW91c2VEb3duTGlzdGVuZXIpXG4gICAgICAgICAgLy8gfVxuICAgICAgICAgIC8vIGlmIChob3Jpem9udGFsSGFuZGxlRWxlbWVudCkge1xuICAgICAgICAgIC8vICAgaG9yaXpvbnRhbEhhbmRsZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgX3Njcm9sbGJhck1vdXNlRG93bkxpc3RlbmVyKVxuICAgICAgICAgIC8vICAgaG9yaXpvbnRhbEhhbmRsZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIF9zY3JvbGxiYXJNb3VzZURvd25MaXN0ZW5lcilcbiAgICAgICAgICAvLyB9XG4gICAgICAgICAgLy8gaWYgKHZlcnRpY2FsSGFuZGxlRWxlbWVudCB8fCBob3Jpem9udGFsSGFuZGxlRWxlbWVudCkge1xuICAgICAgICAgIC8vICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIF9zY3JvbGxiYXJNb3VzZVVwTGlzdGVuZXIpXG4gICAgICAgICAgLy8gICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIF9zY3JvbGxiYXJNb3VzZVVwTGlzdGVuZXIpXG4gICAgICAgICAgLy8gICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaGNhbmNlbCcsIF9zY3JvbGxiYXJNb3VzZVVwTGlzdGVuZXIpXG4gICAgICAgICAgLy8gfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcblxuICAgIC8vIENsZWFucyB1cCB0aGUgcmVnaXN0ZXJlZCBldmVudHMuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdzY3JvbGxldmVudHMgY2xlYW51cCcpXG4gICAgICAvLyBjb25zdCBpbnN0YW5jZSA9IHRoaXMuX3Njcm9sbGJhcnMuZ2V0SW5zdGFuY2UoZGlhbG9nUmVmLl9vdmVybGF5UmVmLm92ZXJsYXlFbGVtZW50KVxuICAgICAgLy8gY29uc3Qgc2Nyb2xsRWxlbSA9IGluc3RhbmNlLmdldEVsZW1lbnRzKCkuc2Nyb2xsYmFyVmVydGljYWwuaGFuZGxlXG4gICAgICBpZiAodmVydGljYWxIYW5kbGVFbGVtZW50KSB7XG4gICAgICAgIHZlcnRpY2FsSGFuZGxlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBfc2Nyb2xsYmFyTW91c2VEb3duTGlzdGVuZXIpXG4gICAgICAgIHZlcnRpY2FsSGFuZGxlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgX3Njcm9sbGJhck1vdXNlRG93bkxpc3RlbmVyKVxuICAgICAgfVxuICAgICAgaWYgKGhvcml6b250YWxIYW5kbGVFbGVtZW50KSB7XG4gICAgICAgIGhvcml6b250YWxIYW5kbGVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIF9zY3JvbGxiYXJNb3VzZURvd25MaXN0ZW5lcilcbiAgICAgICAgaG9yaXpvbnRhbEhhbmRsZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIF9zY3JvbGxiYXJNb3VzZURvd25MaXN0ZW5lcilcbiAgICAgIH1cbiAgICAgIGlmICh2ZXJ0aWNhbEhhbmRsZUVsZW1lbnQgfHwgaG9yaXpvbnRhbEhhbmRsZUVsZW1lbnQpIHtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIF9zY3JvbGxiYXJNb3VzZVVwTGlzdGVuZXIpXG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgX3Njcm9sbGJhck1vdXNlVXBMaXN0ZW5lcilcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hjYW5jZWwnLCBfc2Nyb2xsYmFyTW91c2VVcExpc3RlbmVyKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIG92ZXJsYXkgY29uZmlnIGZyb20gYSBkaWFsb2cgY29uZmlnLlxuICAgKiBAcGFyYW0gY29uZmlnIFRoZSBkaWFsb2cgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMgVGhlIG92ZXJsYXkgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHByb3RlY3RlZCBfY3JlYXRlT3ZlcmxheShjb25maWc6IE1vZGFsQ29uZmlnKTogT3ZlcmxheVJlZiB7XG4gICAgbGV0IHBhbmVsQ2xhc3MgPSAoY29uZmlnLnBhbmVsQ2xhc3MgfHwgW10pXG4gICAgaWYgKHR5cGVvZiBwYW5lbENsYXNzID09PSAnc3RyaW5nJykge1xuICAgICAgcGFuZWxDbGFzcyA9IFsgcGFuZWxDbGFzcyBdXG4gICAgfVxuICAgIHBhbmVsQ2xhc3MgPSBbIC4uLnBhbmVsQ2xhc3MsICdtb2RhbCcsICdkLWJsb2NrJywgJ292ZXJmbG93LWF1dG8nIF1cblxuICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLl9zY3JvbGxTdHJhdGVneSgpLFxuICAgICAgcGFuZWxDbGFzcyxcbiAgICAgIGhhc0JhY2tkcm9wOiBjb25maWcuaGFzQmFja2Ryb3AsXG4gICAgICBkaXJlY3Rpb246IGNvbmZpZy5kaXJlY3Rpb24sXG4gICAgICBtaW5XaWR0aDogY29uZmlnLm1pbldpZHRoLFxuICAgICAgbWluSGVpZ2h0OiBjb25maWcubWluSGVpZ2h0LFxuICAgICAgbWF4V2lkdGg6IGNvbmZpZy5tYXhXaWR0aCxcbiAgICAgIG1heEhlaWdodDogY29uZmlnLm1heEhlaWdodFxuICAgIH0pXG5cbiAgICBpZiAoY29uZmlnLmJhY2tkcm9wQ2xhc3MpIHtcbiAgICAgIG92ZXJsYXlDb25maWcuYmFja2Ryb3BDbGFzcyA9IGNvbmZpZy5iYWNrZHJvcENsYXNzXG4gICAgfVxuICAgIHJldHVybiB0aGlzLm92ZXJsYXkuY3JlYXRlKG92ZXJsYXlDb25maWcpXG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoZXMgYW4gTWF0RGlhbG9nQ29udGFpbmVyIHRvIGEgZGlhbG9nJ3MgYWxyZWFkeS1jcmVhdGVkIG92ZXJsYXkuXG4gICAqIEBwYXJhbSBvdmVybGF5IFJlZmVyZW5jZSB0byB0aGUgZGlhbG9nJ3MgdW5kZXJseWluZyBvdmVybGF5LlxuICAgKiBAcGFyYW0gY29uZmlnIFRoZSBkaWFsb2cgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHJlc29sdmluZyB0byBhIENvbXBvbmVudFJlZiBmb3IgdGhlIGF0dGFjaGVkIGNvbnRhaW5lci5cbiAgICovXG4gIHByb3RlY3RlZCBfYXR0YWNoRGlhbG9nQ29udGFpbmVyKG92ZXJsYXk6IE92ZXJsYXlSZWYsIGNvbmZpZzogTW9kYWxDb25maWcpOiBNb2RhbENvbnRhaW5lckNvbXBvbmVudCB7XG4gICAgY29uc3QgY29udGFpbmVyID0gY29uZmlnLmNvbnRhaW5lckNvbXBvbmVudCB8fCB0aGlzLmluamVjdG9yLmdldChNT0RBTF9DT05UQUlORVIpXG4gICAgY29uc3QgdXNlckluamVjdG9yID0gY29uZmlnICYmIGNvbmZpZy52aWV3Q29udGFpbmVyUmVmICYmIGNvbmZpZy52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yXG4gICAgY29uc3QgaW5qZWN0b3IgPSBuZXcgUG9ydGFsSW5qZWN0b3IodXNlckluamVjdG9yIHx8IHRoaXMuaW5qZWN0b3IsIG5ldyBXZWFrTWFwKFtcbiAgICAgIFtNb2RhbENvbmZpZywgY29uZmlnXVxuICAgIF0pKVxuICAgIGNvbnN0IGNvbnRhaW5lclBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoY29udGFpbmVyLCBjb25maWcudmlld0NvbnRhaW5lclJlZiwgaW5qZWN0b3IpXG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gb3ZlcmxheS5hdHRhY2goY29udGFpbmVyUG9ydGFsKSBhcyBDb21wb25lbnRSZWY8TW9kYWxDb250YWluZXJDb21wb25lbnQ+XG4gICAgY29udGFpbmVyUmVmLmluc3RhbmNlLl9jb25maWcgPSBjb25maWdcblxuICAgIHJldHVybiBjb250YWluZXJSZWYuaW5zdGFuY2VcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2hlcyB0aGUgdXNlci1wcm92aWRlZCBjb21wb25lbnQgdG8gdGhlIGFscmVhZHktY3JlYXRlZCBNYXREaWFsb2dDb250YWluZXIuXG4gICAqIEBwYXJhbSBjb21wb25lbnRPclRlbXBsYXRlUmVmIFRoZSB0eXBlIG9mIGNvbXBvbmVudCBiZWluZyBsb2FkZWQgaW50byB0aGUgZGlhbG9nLFxuICAgKiAgICAgb3IgYSBUZW1wbGF0ZVJlZiB0byBpbnN0YW50aWF0ZSBhcyB0aGUgY29udGVudC5cbiAgICogQHBhcmFtIGRpYWxvZ0NvbnRhaW5lciBSZWZlcmVuY2UgdG8gdGhlIHdyYXBwaW5nIE1hdERpYWxvZ0NvbnRhaW5lci5cbiAgICogQHBhcmFtIG92ZXJsYXlSZWYgUmVmZXJlbmNlIHRvIHRoZSBvdmVybGF5IGluIHdoaWNoIHRoZSBkaWFsb2cgcmVzaWRlcy5cbiAgICogQHBhcmFtIGNvbmZpZyBUaGUgZGlhbG9nIGNvbmZpZ3VyYXRpb24uXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSByZXNvbHZpbmcgdG8gdGhlIE1hdERpYWxvZ1JlZiB0aGF0IHNob3VsZCBiZSByZXR1cm5lZCB0byB0aGUgdXNlci5cbiAgICovXG4gIHByb3RlY3RlZCBfYXR0YWNoRGlhbG9nQ29udGVudEZvckNvbXBvbmVudDxUPihcbiAgICAgIGNvbXBvbmVudE9yVGVtcGxhdGVSZWY6IENvbXBvbmVudFR5cGU8VD4sXG4gICAgICBkaWFsb2dDb250YWluZXI6IE1vZGFsQ29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgb3ZlcmxheVJlZjogT3ZlcmxheVJlZixcbiAgICAgIGNvbmZpZzogTW9kYWxDb25maWcsXG4gICAgICBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI/OiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfCBudWxsIHwgdW5kZWZpbmVkKTogTW9kYWxSZWY8YW55PiB7XG4gICAgLy8gQ3JlYXRlIGEgcmVmZXJlbmNlIHRvIHRoZSBkaWFsb2cgd2UncmUgY3JlYXRpbmcgaW4gb3JkZXIgdG8gZ2l2ZSB0aGUgdXNlciBhIGhhbmRsZVxuICAgIC8vIHRvIG1vZGlmeSBhbmQgY2xvc2UgaXQuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5ldy1jYXBcbiAgICBjb25zdCBkaWFsb2dSZWYgPSBuZXcgdGhpcy5kaWFsb2dSZWZDb25zdHJ1Y3RvcihvdmVybGF5UmVmLCBkaWFsb2dDb250YWluZXIsIGNvbmZpZy5pZClcbiAgICBjb25zdCBpbmplY3RvciA9IHRoaXMuX2NyZWF0ZUluamVjdG9yPFQ+KGNvbmZpZywgZGlhbG9nUmVmLCBkaWFsb2dDb250YWluZXIpXG4gICAgY29uc3QgY29udGVudFJlZiA9IGRpYWxvZ0NvbnRhaW5lci5hdHRhY2hDb21wb25lbnRQb3J0YWwoXG4gICAgICAgIG5ldyBDb21wb25lbnRQb3J0YWwoY29tcG9uZW50T3JUZW1wbGF0ZVJlZiwgdW5kZWZpbmVkLCBpbmplY3RvciwgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSlcblxuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZSA9IGNvbnRlbnRSZWYuaW5zdGFuY2VcbiAgICBkaWFsb2dSZWYuZGlzYWJsZUNsb3NlID0gY29uZmlnLmRpc2FibGVDbG9zZVxuXG4gICAgZGlhbG9nUmVmLnVwZGF0ZVNpemUoeyB3aWR0aDogY29uZmlnLndpZHRoLCBoZWlnaHQ6IGNvbmZpZy5oZWlnaHQgfSlcbiAgICAgICAgICAgICAudXBkYXRlUG9zaXRpb24oY29uZmlnLnBvc2l0aW9uKVxuXG4gICAgcmV0dXJuIGRpYWxvZ1JlZlxuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaGVzIHRoZSB1c2VyLXByb3ZpZGVkIGNvbXBvbmVudCB0byB0aGUgYWxyZWFkeS1jcmVhdGVkIE1hdERpYWxvZ0NvbnRhaW5lci5cbiAgICogQHBhcmFtIGNvbXBvbmVudE9yVGVtcGxhdGVSZWYgVGhlIHR5cGUgb2YgY29tcG9uZW50IGJlaW5nIGxvYWRlZCBpbnRvIHRoZSBkaWFsb2csXG4gICAqICAgICBvciBhIFRlbXBsYXRlUmVmIHRvIGluc3RhbnRpYXRlIGFzIHRoZSBjb250ZW50LlxuICAgKiBAcGFyYW0gZGlhbG9nQ29udGFpbmVyIFJlZmVyZW5jZSB0byB0aGUgd3JhcHBpbmcgTWF0RGlhbG9nQ29udGFpbmVyLlxuICAgKiBAcGFyYW0gb3ZlcmxheVJlZiBSZWZlcmVuY2UgdG8gdGhlIG92ZXJsYXkgaW4gd2hpY2ggdGhlIGRpYWxvZyByZXNpZGVzLlxuICAgKiBAcGFyYW0gY29uZmlnIFRoZSBkaWFsb2cgY29uZmlndXJhdGlvbi5cbiAgICogQHJldHVybnMgQSBwcm9taXNlIHJlc29sdmluZyB0byB0aGUgTWF0RGlhbG9nUmVmIHRoYXQgc2hvdWxkIGJlIHJldHVybmVkIHRvIHRoZSB1c2VyLlxuICAgKi9cbiAgcHJvdGVjdGVkIF9hdHRhY2hEaWFsb2dDb250ZW50Rm9yVGVtcGxhdGU8VD4oXG4gICAgICBjb21wb25lbnRPclRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxUPixcbiAgICAgIGRpYWxvZ0NvbnRhaW5lcjogTW9kYWxDb250YWluZXJDb21wb25lbnQsXG4gICAgICBvdmVybGF5UmVmOiBPdmVybGF5UmVmLFxuICAgICAgY29uZmlnOiBNb2RhbENvbmZpZyk6IE1vZGFsUmVmPGFueT4ge1xuICAgIC8vIENyZWF0ZSBhIHJlZmVyZW5jZSB0byB0aGUgZGlhbG9nIHdlJ3JlIGNyZWF0aW5nIGluIG9yZGVyIHRvIGdpdmUgdGhlIHVzZXIgYSBoYW5kbGVcbiAgICAvLyB0byBtb2RpZnkgYW5kIGNsb3NlIGl0LlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuZXctY2FwXG4gICAgY29uc3QgZGlhbG9nUmVmID0gbmV3IHRoaXMuZGlhbG9nUmVmQ29uc3RydWN0b3Iob3ZlcmxheVJlZiwgZGlhbG9nQ29udGFpbmVyLCBjb25maWcuaWQpXG5cbiAgICBkaWFsb2dDb250YWluZXIuYXR0YWNoVGVtcGxhdGVQb3J0YWwoXG4gICAgICBuZXcgVGVtcGxhdGVQb3J0YWw8VD4oY29tcG9uZW50T3JUZW1wbGF0ZVJlZiwgbnVsbCBhcyBhbnksXG4gICAgICAgIHsgJGltcGxpY2l0OiBjb25maWcuZGF0YSwgZGlhbG9nUmVmIH0gYXMgYW55KSlcbiAgICBkaWFsb2dSZWYudXBkYXRlU2l6ZSh7IHdpZHRoOiBjb25maWcud2lkdGgsIGhlaWdodDogY29uZmlnLmhlaWdodCB9KVxuICAgICAgICAgICAgIC51cGRhdGVQb3NpdGlvbihjb25maWcucG9zaXRpb24pXG5cbiAgICByZXR1cm4gZGlhbG9nUmVmXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGN1c3RvbSBpbmplY3RvciB0byBiZSB1c2VkIGluc2lkZSB0aGUgZGlhbG9nLiBUaGlzIGFsbG93cyBhIGNvbXBvbmVudCBsb2FkZWQgaW5zaWRlXG4gICAqIG9mIGEgZGlhbG9nIHRvIGNsb3NlIGl0c2VsZiBhbmQsIG9wdGlvbmFsbHksIHRvIHJldHVybiBhIHZhbHVlLlxuICAgKiBAcGFyYW0gY29uZmlnIENvbmZpZyBvYmplY3QgdGhhdCBpcyB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgZGlhbG9nLlxuICAgKiBAcGFyYW0gZGlhbG9nUmVmIFJlZmVyZW5jZSB0byB0aGUgZGlhbG9nLlxuICAgKiBAcGFyYW0gY29udGFpbmVyIERpYWxvZyBjb250YWluZXIgZWxlbWVudCB0aGF0IHdyYXBzIGFsbCBvZiB0aGUgY29udGVudHMuXG4gICAqIEByZXR1cm5zIFRoZSBjdXN0b20gaW5qZWN0b3IgdGhhdCBjYW4gYmUgdXNlZCBpbnNpZGUgdGhlIGRpYWxvZy5cbiAgICovXG4gIHByaXZhdGUgX2NyZWF0ZUluamVjdG9yPFQ+KFxuICAgICAgY29uZmlnOiBNb2RhbENvbmZpZyxcbiAgICAgIGRpYWxvZ1JlZjogTW9kYWxSZWY8VD4sXG4gICAgICBkaWFsb2dDb250YWluZXI6IE1vZGFsQ29udGFpbmVyQ29tcG9uZW50KTogUG9ydGFsSW5qZWN0b3Ige1xuICAgIGNvbnN0IHVzZXJJbmplY3RvciA9IGNvbmZpZyAmJiBjb25maWcudmlld0NvbnRhaW5lclJlZiAmJiBjb25maWcudmlld0NvbnRhaW5lclJlZi5pbmplY3RvclxuICAgIGNvbnN0IGluamVjdGlvblRva2VucyA9IG5ldyBXZWFrTWFwPGFueSwgYW55PihbXG4gICAgICBbdGhpcy5pbmplY3Rvci5nZXQoTU9EQUxfUkVGKSwgZGlhbG9nUmVmXSxcbiAgICAgIFt0aGlzLmluamVjdG9yLmdldChNT0RBTF9DT05UQUlORVIpLCBkaWFsb2dDb250YWluZXJdLFxuICAgICAgW01PREFMX0RBVEEsIGNvbmZpZy5kYXRhXVxuICAgIF0pXG5cbiAgICBpZiAoY29uZmlnLmRpcmVjdGlvbiAmJlxuICAgICAgICAoIXVzZXJJbmplY3RvciB8fCAhdXNlckluamVjdG9yLmdldDxEaXJlY3Rpb25hbGl0eSB8IG51bGw+KERpcmVjdGlvbmFsaXR5LCBudWxsKSkpIHtcbiAgICAgIGluamVjdGlvblRva2Vucy5zZXQoRGlyZWN0aW9uYWxpdHksIHtcbiAgICAgICAgdmFsdWU6IGNvbmZpZy5kaXJlY3Rpb24sXG4gICAgICAgIGNoYW5nZTogb2JzZXJ2YWJsZU9mKClcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBQb3J0YWxJbmplY3Rvcih1c2VySW5qZWN0b3IgfHwgdGhpcy5pbmplY3RvciwgaW5qZWN0aW9uVG9rZW5zKVxuICB9XG5cbiAgLyoqXG4gICAqIEV4cGFuZHMgdGhlIHByb3ZpZGVkIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHRvIGluY2x1ZGUgdGhlIGRlZmF1bHQgdmFsdWVzIGZvciBwcm9wZXJ0aWVzIHdoaWNoXG4gICAqIGFyZSB1bmRlZmluZWQuXG4gICAqL1xuICBwcml2YXRlIF9hcHBseUNvbmZpZ0RlZmF1bHRzKGNvbmZpZz86IE1vZGFsQ29uZmlnKTogTW9kYWxDb25maWcge1xuICAgIGNvbnN0IGRpYWxvZ0NvbmZpZyA9ICh0aGlzLmluamVjdG9yLmdldChNT0RBTF9DT05GSUcpIGFzIHVua25vd24pIGFzIHR5cGVvZiBNb2RhbENvbmZpZ1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuZXctY2FwXG4gICAgcmV0dXJuIHsgLi4ubmV3IGRpYWxvZ0NvbmZpZygpLCAuLi5jb25maWcgfVxuICB9XG59XG4iXX0=
|