@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
package/esm2020/datatable-dynamic/directives/datatable-dynamic-action-menu-item.directive.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate, __param } from "tslib";
|
|
2
|
-
import { Attribute, Directive, Input, isDevMode } from '@angular/core';
|
|
2
|
+
import { Attribute, Directive, Input, isDevMode, } from '@angular/core';
|
|
3
3
|
import { RouterLink, RouterLinkWithHref } from '@angular/router';
|
|
4
4
|
import { from, fromEvent, of, ReplaySubject, Subscription } from 'rxjs';
|
|
5
5
|
import { catchError, mapTo, switchMap, tap } from 'rxjs/operators';
|
|
@@ -166,6 +166,7 @@ export class DatatableDynamicActionMenuItemDirective {
|
|
|
166
166
|
this._recordSubscription = this._record.pipe(
|
|
167
167
|
// tap(v => console.log('record', v)),
|
|
168
168
|
switchMap(record => this._update(record)), tap(() => { this._setInvalidActionState(false); }), catchError(error => {
|
|
169
|
+
// eslint-disable-next-line no-console
|
|
169
170
|
if (isDevMode()) {
|
|
170
171
|
console.error(error);
|
|
171
172
|
}
|
|
@@ -173,7 +174,6 @@ export class DatatableDynamicActionMenuItemDirective {
|
|
|
173
174
|
return of(undefined);
|
|
174
175
|
})).subscribe();
|
|
175
176
|
}
|
|
176
|
-
ngOnInit() { }
|
|
177
177
|
ngOnDestroy() {
|
|
178
178
|
this._recordSubscription.unsubscribe();
|
|
179
179
|
this._unsubClick();
|
|
@@ -386,9 +386,9 @@ export class DatatableDynamicActionMenuItemDirective {
|
|
|
386
386
|
toggleAttribute(element, 'disabled', invalid);
|
|
387
387
|
}
|
|
388
388
|
}
|
|
389
|
-
DatatableDynamicActionMenuItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
390
|
-
DatatableDynamicActionMenuItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.
|
|
391
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
389
|
+
DatatableDynamicActionMenuItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DatatableDynamicActionMenuItemDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.DynamicValueHelperService }, { token: i1.DynamicActionHelperService }, { token: i2.AssetReaderHelperService }, { token: i3.Router }, { token: i3.ActivatedRoute }, { token: i4.LocationStrategy }], target: i0.ɵɵFactoryTarget.Directive });
|
|
390
|
+
DatatableDynamicActionMenuItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: DatatableDynamicActionMenuItemDirective, selector: "[seamDatatableDynamicActionMenuItem]", inputs: { seamDatatableDynamicActionMenuItem: "seamDatatableDynamicActionMenuItem" }, exportAs: ["seamDatatableDynamicActionMenuItem"], usesOnChanges: true, ngImport: i0 });
|
|
391
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DatatableDynamicActionMenuItemDirective, decorators: [{
|
|
392
392
|
type: Directive,
|
|
393
393
|
args: [{
|
|
394
394
|
selector: '[seamDatatableDynamicActionMenuItem]',
|
|
@@ -397,4 +397,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
|
|
|
397
397
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.DynamicValueHelperService }, { type: i1.DynamicActionHelperService }, { type: i2.AssetReaderHelperService }, { type: i3.Router }, { type: i3.ActivatedRoute }, { type: i4.LocationStrategy }]; }, propDecorators: { seamDatatableDynamicActionMenuItem: [{
|
|
398
398
|
type: Input
|
|
399
399
|
}] } });
|
|
400
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWR5bmFtaWMtYWN0aW9uLW1lbnUtaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlLWR5bmFtaWMvZGlyZWN0aXZlcy9kYXRhdGFibGUtZHluYW1pYy1hY3Rpb24tbWVudS1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBRVQsS0FBSyxFQUNMLFNBQVMsRUFLVixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQStDLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzdHLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFjLEVBQUUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ25GLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQVVsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTs7Ozs7O0FBT3JGOzs7R0FHRztBQUNJLElBQU0sd0NBQXdDLEdBQTlDLE1BQU0sd0NBQXdDO0lBUW5ELFlBQ1UsTUFBYyxFQUNkLEtBQXFCLEVBQ04sUUFBdUIsRUFDdEMsUUFBbUIsRUFDbkIsRUFBYyxFQUNkLGdCQUFrQztRQUxsQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFFckIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUUxQyxJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxLQUFLLEdBQUcs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RU8sc0JBQXNCLENBQUMsVUFBbUIsS0FBSztRQUNyRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQTtRQUM5QyxlQUFlLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUMvQyxDQUFDOztvSUE1VFUsdUNBQXVDO3dIQUF2Qyx1Q0FBdUM7MkZBQXZDLHVDQUF1QztrQkFKbkQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0NBQXNDO29CQUNoRCxRQUFRLEVBQUUsb0NBQW9DO2lCQUMvQztrVUFLSyxrQ0FBa0M7c0JBRnJDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHtcbiAgQXR0cmlidXRlLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBpc0Rldk1vZGUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFF1ZXJ5UGFyYW1zSGFuZGxpbmcsIFJvdXRlciwgUm91dGVyTGluaywgUm91dGVyTGlua1dpdGhIcmVmIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJ1xuaW1wb3J0IHsgZnJvbSwgZnJvbUV2ZW50LCBPYnNlcnZhYmxlLCBvZiwgUmVwbGF5U3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcFRvLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBBc3NldFJlYWRlckhlbHBlclNlcnZpY2UgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vYXNzZXQtcmVhZGVyJ1xuaW1wb3J0IHtcbiAgRHluYW1pY0FjdGlvbkhlbHBlclNlcnZpY2UsXG4gIER5bmFtaWNBY3Rpb25VaUFuY2hvckRlZixcbiAgRHluYW1pY0FjdGlvblVpQnV0dG9uRGVmLFxuICBEeW5hbWljQWN0aW9uVWlEZWYsXG4gIER5bmFtaWNWYWx1ZUhlbHBlclNlcnZpY2Vcbn0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2R5bmFtaWMnXG5pbXBvcnQgeyBnZXRBdHRyaWJ1dGUsIGhhc1Byb3BlcnR5LCB0b2dnbGVBdHRyaWJ1dGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXG5cbmltcG9ydCB7IER5bmFtaWNEYXRhdGFibGVSb3cgfSBmcm9tICcuLi9kYXRhdGFibGUtZHluYW1pYy1kZWYnXG5pbXBvcnQgdHlwZSB7IER5bmFtaWNEYXRhdGFibGVBY3Rpb25NZW51UmVjb3JkIH0gZnJvbSAnLi4vbW9kZWxzL2R5bmFtaWMtZGF0YXRhYmxlLWFjdGlvbi1tZW51LXJlY29yZCdcbmltcG9ydCB7IER5bmFtaWNEYXRhdGFibGVSb3dBY3Rpb24gfSBmcm9tICcuLi9tb2RlbHMvZHluYW1pYy1kYXRhdGFibGUtcm93LWFjdGlvbidcbmltcG9ydCB7IER5bmFtaWNEYXRhdGFibGVSb3dBY3Rpb25Db250ZXh0IH0gZnJvbSAnLi4vbW9kZWxzL2R5bmFtaWMtZGF0YXRhYmxlLXJvdy1hY3Rpb24tY29udGV4dCdcblxuLyoqXG4gKiBDbGFzcyB0byBhY3QgYXMgYSBzdWJzdGl0dXRlIHRvIGByb3V0ZXJMaW5rYCBkaXJlY3RpdmUgdW50aWwgdGhlIG1lbnUgaXRlbXNcbiAqIGNhbiBiZSBkeW5hbWljYWxseSBidWlsdCBpbiBhIGNsZWFuIHdheSB3aXRoIG9yIHdpdGhvdXQgYHJvdXRlckxpbmtgLlxuICovXG5leHBvcnQgY2xhc3MgRGF0YXRhYmxlRHluYW1pY0FjdGlvbk1lbnVJdGVtUm91dGVyTGluayB7XG5cbiAgcHJpdmF0ZSBfckxpbms/OiBSb3V0ZXJMaW5rXG4gIHByaXZhdGUgX3JMaW5rV2l0aEhyZWY/OiBSb3V0ZXJMaW5rV2l0aEhyZWZcblxuICAvLyBwcml2YXRlIF9jbGlja1N1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvblxuICBwcml2YXRlIF9yTGlua0NsaWNrRXZlbnRMaXN0ZW5lcj86IGFueVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgQEF0dHJpYnV0ZSgndGFiaW5kZXgnKSB0YWJJbmRleDogc3RyaW5nIHwgbnVsbCxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGxvY2F0aW9uU3RyYXRlZ3k6IExvY2F0aW9uU3RyYXRlZ3lcbiAgKSB7XG4gICAgaWYgKGVsLm5hdGl2ZUVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2EnKSB7XG4gICAgICB0aGlzLl9yTGlua1dpdGhIcmVmID0gbmV3IFJvdXRlckxpbmtXaXRoSHJlZihcbiAgICAgICAgcm91dGVyLFxuICAgICAgICByb3V0ZSxcbiAgICAgICAgJzAnLCAvLyBUT0RPOiBGaXggdHlwZS5cbiAgICAgICAgcmVuZGVyZXIsXG4gICAgICAgIGVsLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIGxvY2F0aW9uU3RyYXRlZ3lcbiAgICAgIClcbiAgICAgIC8vIGNvbnNvbGUubG9nKCdyTGlua1dpdGhIcmVmJywgdGhpcy5yTGlua1dpdGhIcmVmKVxuXG4gICAgICB0aGlzLl9yTGlua0NsaWNrRXZlbnRMaXN0ZW5lciA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAvLyBjb25zb2xlLmxvZygndGhpcy5fckxpbmtXaXRoSHJlZicsIHRoaXMuX3JMaW5rV2l0aEhyZWYsIHRoaXMuX3JMaW5rV2l0aEhyZWYgJiYgdGhpcy5fckxpbmtXaXRoSHJlZi5ocmVmKVxuICAgICAgICBpZiAodGhpcy5fckxpbmtXaXRoSHJlZikge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9yTGlua1dpdGhIcmVmLm9uQ2xpY2soZXZlbnQuYnV0dG9uLCBldmVudC5jdHJsS2V5LCBldmVudC5zaGlmdEtleSwgZXZlbnQuYWx0S2V5LCBldmVudC5tZXRhS2V5KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9yTGluayA9IG5ldyBSb3V0ZXJMaW5rKFxuICAgICAgICByb3V0ZXIsXG4gICAgICAgIHJvdXRlLFxuICAgICAgICB0YWJJbmRleCBhcyBzdHJpbmcsXG4gICAgICAgIHJlbmRlcmVyLFxuICAgICAgICBlbFxuICAgICAgKVxuICAgICAgLy8gY29uc29sZS5sb2coJ3JMaW5rJywgdGhpcy5yTGluaylcblxuICAgICAgdGhpcy5fckxpbmtDbGlja0V2ZW50TGlzdGVuZXIgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCd0aGlzLl9yTGluaycsIHRoaXMuX3JMaW5rICYmIHRoaXMuX3JMaW5rLnVybFRyZWUpXG4gICAgICAgIGlmICh0aGlzLl9yTGluaykgeyByZXR1cm4gKHRoaXMuX3JMaW5rIGFzIGFueSkub25DbGljaygpIH1cbiAgICAgIH0pXG5cbiAgICAgIC8vIHRoaXMuX2NsaWNrU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KGVsLm5hdGl2ZUVsZW1lbnQsICdjbGljaycpXG4gICAgICAvLyAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgLy8gICAgIGlmICh0aGlzLl9yTGluaykge1xuICAgICAgLy8gICAgICAgdGhpcy5fckxpbmsub25DbGljaygpXG4gICAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAgIC8vICAgICAgIGlmICh0aGlzLl9jbGlja1N1YnNjcmlwdGlvbiAmJiAhdGhpcy5fY2xpY2tTdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICAvLyAgICAgICAgIHRoaXMuX2NsaWNrU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKClcbiAgICAgIC8vICAgICAgIH1cbiAgICAgIC8vICAgICB9XG4gICAgICAvLyAgIH0pXG4gICAgfVxuICB9XG5cbiAgZ2V0IHJvdXRlckxpbmsoKTogUm91dGVyTGluayB8IHVuZGVmaW5lZCB7IHJldHVybiB0aGlzLl9yTGluayB9XG4gIGdldCByb3V0ZXJMaW5rV2l0aEhyZWYoKTogUm91dGVyTGlua1dpdGhIcmVmIHwgdW5kZWZpbmVkIHsgcmV0dXJuIHRoaXMuX3JMaW5rV2l0aEhyZWYgfVxuXG4gIHNldCByb3V0ZXJMaW5rSW5wdXQoY29tbWFuZHM6IGFueVtdIHwgc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuX3JMaW5rKSB7XG4gICAgICB0aGlzLl9yTGluay5yb3V0ZXJMaW5rID0gY29tbWFuZHNcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3JMaW5rV2l0aEhyZWYpIHtcbiAgICAgIHRoaXMuX3JMaW5rV2l0aEhyZWYucm91dGVyTGluayA9IGNvbW1hbmRzXG4gICAgfVxuICB9XG5cbiAgc2V0IHF1ZXJ5UGFyYW1zKHZhbHVlOiB7IFtrOiBzdHJpbmddOiBhbnkgfSkge1xuICAgIGlmICh0aGlzLl9yTGluaykge1xuICAgICAgdGhpcy5fckxpbmsucXVlcnlQYXJhbXMgPSB2YWx1ZVxuICAgIH0gZWxzZSBpZiAodGhpcy5fckxpbmtXaXRoSHJlZikge1xuICAgICAgdGhpcy5fckxpbmtXaXRoSHJlZi5xdWVyeVBhcmFtcyA9IHZhbHVlXG4gICAgfVxuICB9XG5cbiAgc2V0IGZyYWdtZW50KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5fckxpbmspIHtcbiAgICAgIHRoaXMuX3JMaW5rLmZyYWdtZW50ID0gdmFsdWVcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3JMaW5rV2l0aEhyZWYpIHtcbiAgICAgIHRoaXMuX3JMaW5rV2l0aEhyZWYuZnJhZ21lbnQgPSB2YWx1ZVxuICAgIH1cbiAgfVxuXG4gIHNldCBxdWVyeVBhcmFtc0hhbmRsaW5nKHZhbHVlOiBRdWVyeVBhcmFtc0hhbmRsaW5nKSB7XG4gICAgaWYgKHRoaXMuX3JMaW5rKSB7XG4gICAgICB0aGlzLl9yTGluay5xdWVyeVBhcmFtc0hhbmRsaW5nID0gdmFsdWVcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3JMaW5rV2l0aEhyZWYpIHtcbiAgICAgIHRoaXMuX3JMaW5rV2l0aEhyZWYucXVlcnlQYXJhbXNIYW5kbGluZyA9IHZhbHVlXG4gICAgfVxuICB9XG5cbiAgc2V0IHByZXNlcnZlRnJhZ21lbnQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5fckxpbmspIHtcbiAgICAgIHRoaXMuX3JMaW5rLnByZXNlcnZlRnJhZ21lbnQgPSB2YWx1ZVxuICAgIH0gZWxzZSBpZiAodGhpcy5fckxpbmtXaXRoSHJlZikge1xuICAgICAgdGhpcy5fckxpbmtXaXRoSHJlZi5wcmVzZXJ2ZUZyYWdtZW50ID0gdmFsdWVcbiAgICB9XG4gIH1cblxuICBzZXQgc2tpcExvY2F0aW9uQ2hhbmdlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuX3JMaW5rKSB7XG4gICAgICB0aGlzLl9yTGluay5za2lwTG9jYXRpb25DaGFuZ2UgPSB2YWx1ZVxuICAgIH0gZWxzZSBpZiAodGhpcy5fckxpbmtXaXRoSHJlZikge1xuICAgICAgdGhpcy5fckxpbmtXaXRoSHJlZi5za2lwTG9jYXRpb25DaGFuZ2UgPSB2YWx1ZVxuICAgIH1cbiAgfVxuXG4gIHNldCByZXBsYWNlVXJsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuX3JMaW5rKSB7XG4gICAgICB0aGlzLl9yTGluay5yZXBsYWNlVXJsID0gdmFsdWVcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3JMaW5rV2l0aEhyZWYpIHtcbiAgICAgIHRoaXMuX3JMaW5rV2l0aEhyZWYucmVwbGFjZVVybCA9IHZhbHVlXG4gICAgfVxuICB9XG5cbiAgc2V0IHN0YXRlKHZhbHVlOiB7IFtrOiBzdHJpbmddOiBhbnkgfSkge1xuICAgIGlmICh0aGlzLl9yTGluaykge1xuICAgICAgdGhpcy5fckxpbmsuc3RhdGUgPSB2YWx1ZVxuICAgIH0gZWxzZSBpZiAodGhpcy5fckxpbmtXaXRoSHJlZikge1xuICAgICAgdGhpcy5fckxpbmtXaXRoSHJlZi5zdGF0ZSA9IHZhbHVlXG4gICAgfVxuICB9XG5cbiAgc2V0IHRhcmdldCh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gICAgaWYgKHRoaXMuX3JMaW5rV2l0aEhyZWYpIHtcbiAgICAgIHRoaXMuX3JMaW5rV2l0aEhyZWYudGFyZ2V0ID0gdmFsdWUgYXMgc3RyaW5nXG5cbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICd0YXJnZXQnLCB2YWx1ZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRvZ2dsZUF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICd0YXJnZXQnLCBmYWxzZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpIHtcbiAgICAvLyBpZiAodGhpcy5fY2xpY2tTdWJzY3JpcHRpb24gJiYgIXRoaXMuX2NsaWNrU3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgIC8vICAgdGhpcy5fY2xpY2tTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICAgIC8vIH1cbiAgICBpZiAodGhpcy5fckxpbmtDbGlja0V2ZW50TGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX3JMaW5rQ2xpY2tFdmVudExpc3RlbmVyKVxuICAgICAgdGhpcy5fckxpbmtDbGlja0V2ZW50TGlzdGVuZXIgPSBudWxsXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3JMaW5rV2l0aEhyZWYgJiYgdGhpcy5fckxpbmtXaXRoSHJlZi5uZ09uRGVzdHJveSkge1xuICAgICAgdGhpcy5fckxpbmtXaXRoSHJlZi5uZ09uRGVzdHJveSgpXG4gICAgfVxuICB9XG5cbn1cblxuLy8gVE9ETzogUmVmYWN0b3IgdGhpcyBkaXJlY3RpdmUuIEl0IGdvdCB3YXkgbW9yZSBjb21wbGV4IGluc3RlYWQgb2YgbW9yZVxuLy8gc2ltcGxpZmllZCBsaWtlIGl0IHdhcyBzdXBwb3NlZCB0byBiZS5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tzZWFtRGF0YXRhYmxlRHluYW1pY0FjdGlvbk1lbnVJdGVtXScsXG4gIGV4cG9ydEFzOiAnc2VhbURhdGF0YWJsZUR5bmFtaWNBY3Rpb25NZW51SXRlbSdcbn0pXG5leHBvcnQgY2xhc3MgRGF0YXRhYmxlRHluYW1pY0FjdGlvbk1lbnVJdGVtRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KClcbiAgLy8gZ2V0IHNlYW1EYXRhdGFibGVEeW5hbWljQWN0aW9uTWVudUl0ZW0oKTogRHluYW1pY0RhdGF0YWJsZUFjdGlvbk1lbnVSZWNvcmQgeyByZXR1cm4gdGhpcy5fcmVjb3JkIH1cbiAgc2V0IHNlYW1EYXRhdGFibGVEeW5hbWljQWN0aW9uTWVudUl0ZW0odmFsdWU6IER5bmFtaWNEYXRhdGFibGVBY3Rpb25NZW51UmVjb3JkKSB7XG4gICAgdGhpcy5fcmVjb3JkLm5leHQodmFsdWUpXG4gIH1cbiAgcHJpdmF0ZSBfcmVjb3JkID0gbmV3IFJlcGxheVN1YmplY3Q8RHluYW1pY0RhdGF0YWJsZUFjdGlvbk1lbnVSZWNvcmQ+KDEpXG5cbiAgcHJpdmF0ZSBfY2xpY2tTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb25cbiAgcHJpdmF0ZSBfbWVudVJvdXRlckxpbms/OiBEYXRhdGFibGVEeW5hbWljQWN0aW9uTWVudUl0ZW1Sb3V0ZXJMaW5rXG5cbiAgcHJpdmF0ZSBfcmVjb3JkU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLkVNUFRZXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIF92YWx1ZUhlbHBlcjogRHluYW1pY1ZhbHVlSGVscGVyU2VydmljZSxcbiAgICBwcml2YXRlIF9hY3Rpb25IZWxwZXI6IER5bmFtaWNBY3Rpb25IZWxwZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2Fzc2V0UmVhZGVySGVscGVyOiBBc3NldFJlYWRlckhlbHBlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBfcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgX2xvY2F0aW9uU3RyYXRlZ3k6IExvY2F0aW9uU3RyYXRlZ3lcbiAgKSB7XG4gICAgdGhpcy5fcmVjb3JkU3Vic2NyaXB0aW9uID0gdGhpcy5fcmVjb3JkLnBpcGUoXG4gICAgICAvLyB0YXAodiA9PiBjb25zb2xlLmxvZygncmVjb3JkJywgdikpLFxuICAgICAgc3dpdGNoTWFwKHJlY29yZCA9PiB0aGlzLl91cGRhdGUocmVjb3JkKSksXG4gICAgICB0YXAoKCkgPT4geyB0aGlzLl9zZXRJbnZhbGlkQWN0aW9uU3RhdGUoZmFsc2UpIH0pLFxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSkgeyBjb25zb2xlLmVycm9yKGVycm9yKSB9XG4gICAgICAgIHRoaXMuX3NldEludmFsaWRBY3Rpb25TdGF0ZSh0cnVlKVxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxuICAgICAgfSksXG4gICAgICAvLyB0YXAodiA9PiBjb25zb2xlLmxvZygncmVjb3JkIERPTkUnLCB2KSlcbiAgICApLnN1YnNjcmliZSgpXG4gIH1cblxuICBuZ09uSW5pdCgpIHsgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3JlY29yZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gICAgdGhpcy5fdW5zdWJDbGljaygpXG4gICAgaWYgKHRoaXMuX21lbnVSb3V0ZXJMaW5rICYmIHRoaXMuX21lbnVSb3V0ZXJMaW5rLnJvdXRlckxpbmtXaXRoSHJlZikge1xuICAgICAgdGhpcy5fbWVudVJvdXRlckxpbmsucm91dGVyTGlua1dpdGhIcmVmLm5nT25EZXN0cm95KClcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiB7fSkge1xuICAgIC8vIGNvbnNvbGUubG9nKCduZ09uQ2hhbmdlcycsIGNoYW5nZXMsIHRoaXMsIHRoaXMuX21lbnVSb3V0ZXJMaW5rKVxuICAgIGlmICh0aGlzLl9tZW51Um91dGVyTGluayAmJiB0aGlzLl9tZW51Um91dGVyTGluay5yb3V0ZXJMaW5rV2l0aEhyZWYpIHtcbiAgICAgIHRoaXMuX21lbnVSb3V0ZXJMaW5rLnJvdXRlckxpbmtXaXRoSHJlZi5uZ09uQ2hhbmdlcyh7fSlcbiAgICAgIGlmICh0aGlzLl9tZW51Um91dGVyTGluay5yb3V0ZXJMaW5rV2l0aEhyZWYuaHJlZikge1xuICAgICAgICBpZiAoZ2V0QXR0cmlidXRlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2hyZWYnKSAhPT0gdGhpcy5fbWVudVJvdXRlckxpbmsucm91dGVyTGlua1dpdGhIcmVmLmhyZWYpIHtcbiAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnaHJlZicsIHRoaXMuX21lbnVSb3V0ZXJMaW5rLnJvdXRlckxpbmtXaXRoSHJlZi5ocmVmKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0b2dnbGVBdHRyaWJ1dGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnaHJlZicsIGZhbHNlKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBfdXBkYXRlKHJlY29yZDogRHluYW1pY0RhdGF0YWJsZUFjdGlvbk1lbnVSZWNvcmQpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICB0aGlzLl91bnN1YkNsaWNrKClcblxuICAgIHJldHVybiBmcm9tKHRoaXMuX2dldFVpUHJvcHMocmVjb3JkKSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCh1aVByb3BzID0+IHRoaXMuX2lzQW5jaG9yKClcbiAgICAgICAgPyB0aGlzLl91cGRhdGVBbmNob3JFbGVtZW50KHJlY29yZCwgdWlQcm9wcyBhcyBEeW5hbWljQWN0aW9uVWlBbmNob3JEZWYpXG4gICAgICAgIDogdGhpcy5fdXBkYXRlQnV0dG9uRWxlbWVudChyZWNvcmQsIHVpUHJvcHMgYXMgRHluYW1pY0FjdGlvblVpQnV0dG9uRGVmKVxuICAgICAgKVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUFuY2hvckVsZW1lbnQoXG4gICAgcmVjb3JkOiBEeW5hbWljRGF0YXRhYmxlQWN0aW9uTWVudVJlY29yZCxcbiAgICB1aVByb3BzOiBEeW5hbWljQWN0aW9uVWlBbmNob3JEZWZcbiAgKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgX3N0cmVhbTogT2JzZXJ2YWJsZTxhbnk+ID0gb2YodW5kZWZpbmVkKVxuXG4gICAgc3dpdGNoICh1aVByb3BzLnRyaWdnZXJUeXBlKSB7XG4gICAgICBjYXNlICdsaW5rJzoge1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnSGFuZGxlIFwibGlua1wiIHRyaWdnZXJUeXBlLicsIHVpUHJvcHMpXG4gICAgICAgIC8vIHRoaXMuX3RyeUluaXRUYWJJbmRleCgpXG4gICAgICAgIHRoaXMuX3RyeUluaXRCbG9ja0NsaWNrKHJlY29yZCwgdWlQcm9wcylcbiAgICAgICAgdGhpcy5faW5pdE1lbnVJdGVtUm91dGVyTGluayhyZWNvcmQsIHVpUHJvcHMpXG5cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2xpbmstZXh0ZXJuYWwnOiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdIYW5kbGUgXCJsaW5rLWV4dGVybmFsXCIgdHJpZ2dlclR5cGUuJywgdWlQcm9wcylcbiAgICAgICAgLy8gdGhpcy5fdHJ5SW5pdFRhYkluZGV4KClcbiAgICAgICAgdGhpcy5fdHJ5SW5pdEJsb2NrQ2xpY2socmVjb3JkLCB1aVByb3BzKVxuICAgICAgICBpZiAoaGFzUHJvcGVydHkodWlQcm9wcywgJ2xpbmtVcmwnKSkge1xuICAgICAgICAgIHRoaXMuX3NldEF0dHIoJ2hyZWYnLCB1aVByb3BzLmxpbmtVcmwpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhhc1Byb3BlcnR5KHVpUHJvcHMsICdsaW5rRXh0cmFzJykpIHtcbiAgICAgICAgICBpZiAoaGFzUHJvcGVydHkodWlQcm9wcy5saW5rRXh0cmFzLCAndGFyZ2V0JykpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldEF0dHIoJ3RhcmdldCcsIHVpUHJvcHMubGlua0V4dHJhcy50YXJnZXQpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIFRPRE86IENvbnNpZGVyIG1ha2luZyB0aGUgSXRlbVJvdXRlckxpbmsgd29yayB3aXRoIGV4dGVybmFsIHVybHMuXG4gICAgICAgIC8vIHRoaXMuX2luaXRNZW51SXRlbVJvdXRlckxpbmsocmVjb3JkLCB1aVByb3BzKVxuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICAvLyBUT0RPOiBVbmxlc3Mgd2UgZGVjaWRlIHRvIGFkZCBhIHJvdXRlIGZvciBvcGVubmluZyBhc3NldHMsIHRoaXMgd291bGRcbiAgICAgIC8vIGJlIGNvbmZ1c2luZyB0byBhIHVzZXIuXG4gICAgICAvLyBjYXNlICdsaW5rLWFzc2V0Jzoge1xuICAgICAgLy8gICBjb25zb2xlLmxvZygnSGFuZGxlIFwibGluay1hc3NldFwiIHRyaWdnZXJUeXBlLicsIHVpUHJvcHMpXG4gICAgICAvLyAgIC8vIHRoaXMuX3RyeUluaXRUYWJJbmRleCgpXG4gICAgICAvLyAgIHRoaXMuX3RyeUluaXRCbG9ja0NsaWNrKHJlY29yZCwgdWlQcm9wcylcbiAgICAgIC8vICAgYnJlYWtcbiAgICAgIC8vIH1cbiAgICAgIGRlZmF1bHQ6IHRocm93IEVycm9yKCdbRGF0YXRhYmxlRHluYW1pY0FjdGlvbk1lbnVJdGVtRGlyZWN0aXZlXSAnICtcbiAgICAgICAgYHRyaWdnZXJUeXBlICR7dWlQcm9wcy50cmlnZ2VyVHlwZX0gaXMgbm90IHZhbGlkIGZvciBfdXBkYXRlQW5jaG9yRWxlbWVudCgpLmApXG4gICAgfVxuXG4gICAgcmV0dXJuIF9zdHJlYW0vLyAucGlwZShtYXBUbyh1bmRlZmluZWQpKVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlQnV0dG9uRWxlbWVudChcbiAgICByZWNvcmQ6IER5bmFtaWNEYXRhdGFibGVBY3Rpb25NZW51UmVjb3JkLFxuICAgIHVpUHJvcHM6IER5bmFtaWNBY3Rpb25VaUFuY2hvckRlZiB8IER5bmFtaWNBY3Rpb25VaUJ1dHRvbkRlZlxuICApOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBsZXQgX3N0cmVhbTogT2JzZXJ2YWJsZTxhbnk+ID0gb2YodW5kZWZpbmVkKVxuICAgIC8vIHRoaXMuX3VwZGF0ZUNsaWNrRWxlbWVudChyZWNvcmQsIHVpUHJvcHMgYXMgRHluYW1pY0FjdGlvblVpQnV0dG9uRGVmKVxuICAgIHN3aXRjaCAodWlQcm9wcy50cmlnZ2VyVHlwZSkge1xuICAgICAgY2FzZSAnbGluay1hc3NldCc6IHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ0hhbmRsZSBcImxpbmstYXNzZXRcIiB0cmlnZ2VyVHlwZS4nLCB1aVByb3BzKVxuICAgICAgICAvLyB0aGlzLl90cnlJbml0VGFiSW5kZXgoKVxuICAgICAgICB0aGlzLl90cnlJbml0QmxvY2tDbGljayhyZWNvcmQsIHVpUHJvcHMpXG4gICAgICAgIF9zdHJlYW0gPSBfc3RyZWFtLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMuX3VwZGF0ZUFzc2V0RWxlbWVudChyZWNvcmQsIHVpUHJvcHMpKSlcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2NsaWNrJzoge1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnSGFuZGxlIFwiY2xpY2tcIiB0cmlnZ2VyVHlwZS4nLCB1aVByb3BzKVxuICAgICAgICB0aGlzLl90cnlJbml0QmxvY2tDbGljayhyZWNvcmQsIHVpUHJvcHMpXG4gICAgICAgIF9zdHJlYW0gPSBfc3RyZWFtLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMuX3VwZGF0ZUNsaWNrRWxlbWVudChyZWNvcmQsIHVpUHJvcHMpKSlcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHRocm93IEVycm9yKCdbRGF0YXRhYmxlRHluYW1pY0FjdGlvbk1lbnVJdGVtRGlyZWN0aXZlXSAnICtcbiAgICAgICAgYHRyaWdnZXJUeXBlICR7dWlQcm9wcy50cmlnZ2VyVHlwZX0gaXMgbm90IHZhbGlkIGZvciBfdXBkYXRlQW5jaG9yRWxlbWVudCgpLmApXG4gICAgfVxuXG4gICAgcmV0dXJuIF9zdHJlYW0vLyAucGlwZShtYXBUbyh1bmRlZmluZWQpKVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlQXNzZXRFbGVtZW50KFxuICAgIHJlY29yZDogRHluYW1pY0RhdGF0YWJsZUFjdGlvbk1lbnVSZWNvcmQsXG4gICAgdWlQcm9wczogRHluYW1pY0FjdGlvblVpQW5jaG9yRGVmIHwgRHluYW1pY0FjdGlvblVpQnV0dG9uRGVmXG4gICk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIC8vIGNvbnNvbGUubG9nKCdfdXBkYXRlQXNzZXRFbGVtZW50JylcbiAgICAvLyByZXR1cm4gb2YodW5kZWZpbmVkKVxuICAgIC8vIGNvbnNvbGUubG9nKCd0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQnLCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpXG4gICAgY29uc3QgdCA9IGZyb21FdmVudCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdjbGljaycpLnBpcGUoXG4gICAgICB0YXAoZXZlbnQgPT4ge1xuICAgICAgICAvLyBjb25zdCBfY29udGV4dCA9IHRoaXMuX2dldENvbnRleHQocmVjb3JkLl9yb3csIHJlY29yZC5yb3dBY3Rpb24pXG4gICAgICAgIC8vIGNvbnN0IGNvbnRleHQgPSB7IC4uLl9jb250ZXh0LCBldmVudCwgdWlQcm9wcyB9XG4gICAgICAgIC8vIGNvbnN0IHJlc3VsdCA9IHRoaXMuX3ZhbHVlSGVscGVyLmV2YWxTeW5jKHVpUHJvcHMuYmxvY2tDbGlja0V4cHIsIGNvbnRleHQpXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHJlY29yZCwgdWlQcm9wcylcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ191cGRhdGVDbGlja0VsZW1lbnQgY2xpY2snLCAoPGFueT5ldmVudCkuYnV0dG9uLCBldmVudClcbiAgICAgICAgaWYgKHRoaXMuX2Fzc2V0UmVhZGVySGVscGVyKSB7XG4gICAgICAgICAgaWYgKHVpUHJvcHMudHJpZ2dlclR5cGUgPT09ICdsaW5rLWFzc2V0JyAmJiBoYXNQcm9wZXJ0eSh1aVByb3BzLCAnbGlua1VybCcpKSB7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSB1aVByb3BzLmxpbmtVcmxcbiAgICAgICAgICAgIGxldCB0YXJnZXQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgaWYgKGhhc1Byb3BlcnR5KHVpUHJvcHMsICdsaW5rRXh0cmFzJykgJiYgaGFzUHJvcGVydHkodWlQcm9wcy5saW5rRXh0cmFzLCAndGFyZ2V0JykpIHtcbiAgICAgICAgICAgICAgdGFyZ2V0ID0gdWlQcm9wcy5saW5rRXh0cmFzLnRhcmdldFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fYXNzZXRSZWFkZXJIZWxwZXIub3BlbkxpbmsodXJsLCB0cnVlLCB0cnVlLCB0YXJnZXQpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIGlmICghcmVzdWx0KSB7XG4gICAgICAgIC8vICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAvLyAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgIC8vIH1cbiAgICAgIH0pLFxuICAgICAgbWFwVG8odW5kZWZpbmVkKVxuICAgIClcblxuICAgIHJldHVybiBvZih1bmRlZmluZWQpLnBpcGUoXG4gICAgICAvLyB0YXAoKCkgPT4gY29uc29sZS5sb2coJ3N0YXJ0aW5nIF91cGRhdGVCdXR0b25FbGVtZW50JykpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHQpLFxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUNsaWNrRWxlbWVudChcbiAgICByZWNvcmQ6IER5bmFtaWNEYXRhdGFibGVBY3Rpb25NZW51UmVjb3JkLFxuICAgIHVpUHJvcHM6IER5bmFtaWNBY3Rpb25VaUJ1dHRvbkRlZlxuICApOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAvLyBjb25zb2xlLmxvZygnX3VwZGF0ZUNsaWNrRWxlbWVudCcsIHJlY29yZCwgdWlQcm9wcylcbiAgICAvLyByZXR1cm4gb2YodW5kZWZpbmVkKVxuICAgIHJldHVybiBmcm9tRXZlbnQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnY2xpY2snKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKGV2ZW50ID0+IHtcbiAgICAgICAgY29uc3QgX2NvbnRleHQgPSB0aGlzLl9nZXRDb250ZXh0KHJlY29yZC5fcm93LCByZWNvcmQucm93QWN0aW9uKVxuICAgICAgICBjb25zdCBjb250ZXh0ID0geyAuLi5fY29udGV4dCwgZXZlbnQsIHVpUHJvcHMgfVxuICAgICAgICAvLyBjb25zb2xlLmxvZygnY2xpY2snLCAoPGFueT5ldmVudCkuYnV0dG9uLCBldmVudClcbiAgICAgICAgLy8gaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgLy8gICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIC8vICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgLy8gfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9hY3Rpb25IZWxwZXIuZXhlYyh1aVByb3BzLl9hY3Rpb25EZWYsIGNvbnRleHQpXG4gICAgICB9KSxcbiAgICAgIG1hcFRvKHVuZGVmaW5lZClcbiAgICApXG4gIH1cblxuICBwcml2YXRlIF91bnN1YkNsaWNrKCkge1xuICAgIGlmICh0aGlzLl9jbGlja1N1YnNjcmlwdGlvbiAmJiAhdGhpcy5fY2xpY2tTdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICB0aGlzLl9jbGlja1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0QXR0cihhdHRyOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBhdHRyLCB2YWx1ZSlcbiAgfVxuXG4gIHByaXZhdGUgX3RyeUluaXRUYWJJbmRleCgpIHtcbiAgICBpZiAoZ2V0QXR0cmlidXRlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3RhYmluZGV4JykgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd0YWJpbmRleCcsICcwJylcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF90cnlJbml0QmxvY2tDbGljayhcbiAgICByZWNvcmQ6IER5bmFtaWNEYXRhdGFibGVBY3Rpb25NZW51UmVjb3JkLFxuICAgIHVpUHJvcHM6IER5bmFtaWNBY3Rpb25VaURlZlxuICApIHtcbiAgICB0aGlzLl91bnN1YkNsaWNrKClcbiAgICBpZiAoaGFzUHJvcGVydHkodWlQcm9wcywgJ2Jsb2NrQ2xpY2tFeHByJykpIHtcbiAgICAgIHRoaXMuX2NsaWNrU3Vic2NyaXB0aW9uID0gdGhpcy5fYmxvY2tDbGlja0V4cHJPYnNlcnZhYmxlKHVpUHJvcHMsIHJlY29yZCkuc3Vic2NyaWJlKClcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9ibG9ja0NsaWNrRXhwck9ic2VydmFibGUoXG4gICAgdWlQcm9wczogRHluYW1pY0FjdGlvblVpRGVmLFxuICAgIHJlY29yZDogRHluYW1pY0RhdGF0YWJsZUFjdGlvbk1lbnVSZWNvcmRcbiAgKSB7XG4gICAgcmV0dXJuIGZyb21FdmVudCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdjbGljaycpLnBpcGUoXG4gICAgICB0YXAoZXZlbnQgPT4ge1xuICAgICAgICBjb25zdCBfY29udGV4dCA9IHRoaXMuX2dldENvbnRleHQocmVjb3JkLl9yb3csIHJlY29yZC5yb3dBY3Rpb24pXG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSB7IC4uLl9jb250ZXh0LCBldmVudCwgdWlQcm9wcyB9XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX3ZhbHVlSGVscGVyLmV2YWxTeW5jKHVpUHJvcHMuYmxvY2tDbGlja0V4cHIsIGNvbnRleHQpXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdjbGljaycsIHJlc3VsdCwgKDxhbnk+ZXZlbnQpLmJ1dHRvbiwgZXZlbnQpXG4gICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgbWFwVG8odW5kZWZpbmVkKVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRNZW51SXRlbVJvdXRlckxpbmsoXG4gICAgcmVjb3JkOiBEeW5hbWljRGF0YXRhYmxlQWN0aW9uTWVudVJlY29yZCxcbiAgICB1aVByb3BzOiBEeW5hbWljQWN0aW9uVWlBbmNob3JEZWZcbiAgKSB7XG4gICAgdGhpcy5fbWVudVJvdXRlckxpbmsgPSBuZXcgRGF0YXRhYmxlRHluYW1pY0FjdGlvbk1lbnVJdGVtUm91dGVyTGluayhcbiAgICAgIHRoaXMuX3JvdXRlcixcbiAgICAgIHRoaXMuX3JvdXRlLFxuICAgICAgZ2V0QXR0cmlidXRlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3RhYmluZGV4JyksXG4gICAgICB0aGlzLl9yZW5kZXJlcixcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYsXG4gICAgICB0aGlzLl9sb2NhdGlvblN0cmF0ZWd5XG4gICAgKVxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuX21lbnVSb3V0ZXJMaW5rKVxuXG4gICAgdGhpcy5fbWVudVJvdXRlckxpbmsucm91dGVyTGlua0lucHV0ID0gdWlQcm9wcy5saW5rVXJsIGFzIHN0cmluZ1xuXG4gICAgaWYgKGhhc1Byb3BlcnR5KHVpUHJvcHMsICdsaW5rRXh0cmFzJykpIHtcbiAgICAgIGlmIChoYXNQcm9wZXJ0eSh1aVByb3BzLmxpbmtFeHRyYXMsICd0YXJnZXQnKSkge1xuICAgICAgICB0aGlzLl9tZW51Um91dGVyTGluay50YXJnZXQgPSB1aVByb3BzLmxpbmtFeHRyYXMudGFyZ2V0XG4gICAgICB9XG4gICAgICBpZiAoaGFzUHJvcGVydHkodWlQcm9wcy5saW5rRXh0cmFzLCAncXVlcnlQYXJhbXMnKSkge1xuICAgICAgICB0aGlzLl9tZW51Um91dGVyTGluay5xdWVyeVBhcmFtcyA9IHVpUHJvcHMubGlua0V4dHJhcy5xdWVyeVBhcmFtc1xuICAgICAgfVxuICAgICAgaWYgKGhhc1Byb3BlcnR5KHVpUHJvcHMubGlua0V4dHJhcywgJ2ZyYWdtZW50JykpIHtcbiAgICAgICAgdGhpcy5fbWVudVJvdXRlckxpbmsuZnJhZ21lbnQgPSB1aVByb3BzLmxpbmtFeHRyYXMuZnJhZ21lbnRcbiAgICAgIH1cbiAgICAgIGlmIChoYXNQcm9wZXJ0eSh1aVByb3BzLmxpbmtFeHRyYXMsICdxdWVyeVBhcmFtc0hhbmRsaW5nJykpIHtcbiAgICAgICAgdGhpcy5fbWVudVJvdXRlckxpbmsucXVlcnlQYXJhbXNIYW5kbGluZyA9IHVpUHJvcHMubGlua0V4dHJhcy5xdWVyeVBhcmFtc0hhbmRsaW5nXG4gICAgICB9XG4gICAgICBpZiAoaGFzUHJvcGVydHkodWlQcm9wcy5saW5rRXh0cmFzLCAncHJlc2VydmVGcmFnbWVudCcpKSB7XG4gICAgICAgIHRoaXMuX21lbnVSb3V0ZXJMaW5rLnByZXNlcnZlRnJhZ21lbnQgPSB1aVByb3BzLmxpbmtFeHRyYXMucHJlc2VydmVGcmFnbWVudFxuICAgICAgfVxuICAgICAgaWYgKGhhc1Byb3BlcnR5KHVpUHJvcHMubGlua0V4dHJhcywgJ3NraXBMb2NhdGlvbkNoYW5nZScpKSB7XG4gICAgICAgIHRoaXMuX21lbnVSb3V0ZXJMaW5rLnNraXBMb2NhdGlvbkNoYW5nZSA9IHVpUHJvcHMubGlua0V4dHJhcy5za2lwTG9jYXRpb25DaGFuZ2VcbiAgICAgIH1cbiAgICAgIGlmIChoYXNQcm9wZXJ0eSh1aVByb3BzLmxpbmtFeHRyYXMsICdyZXBsYWNlVXJsJykpIHtcbiAgICAgICAgdGhpcy5fbWVudVJvdXRlckxpbmsucmVwbGFjZVVybCA9IHVpUHJvcHMubGlua0V4dHJhcy5yZXBsYWNlVXJsXG4gICAgICB9XG4gICAgICBpZiAoaGFzUHJvcGVydHkodWlQcm9wcy5saW5rRXh0cmFzLCAnc3RhdGUnKSkge1xuICAgICAgICB0aGlzLl9tZW51Um91dGVyTGluay5zdGF0ZSA9IHVpUHJvcHMubGlua0V4dHJhcy5zdGF0ZVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubmdPbkNoYW5nZXMoe30pXG4gIH1cblxuICBwcml2YXRlIF9pc0FuY2hvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdhJ1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VWlQcm9wcyhyZWNvcmQ6IER5bmFtaWNEYXRhdGFibGVBY3Rpb25NZW51UmVjb3JkKTogUHJvbWlzZTxEeW5hbWljQWN0aW9uVWlEZWY+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5fZ2V0Q29udGV4dChyZWNvcmQuX3JvdywgcmVjb3JkLnJvd0FjdGlvbilcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uSGVscGVyLmdldFVpUHJvcHMocmVjb3JkLnJvd0FjdGlvbi5hY3Rpb24sIGNvbnRleHQpXG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9nZXRDb250ZXh0KHJvdzogRHluYW1pY0RhdGF0YWJsZVJvdywgIHJvd0FjdGlvbkRlZjogRHluYW1pY0RhdGF0YWJsZVJvd0FjdGlvbik6IER5bmFtaWNEYXRhdGFibGVSb3dBY3Rpb25Db250ZXh0IHtcbiAgICByZXR1cm4ge1xuICAgICAgcm93XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0SW52YWxpZEFjdGlvblN0YXRlKGludmFsaWQ6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICB0b2dnbGVBdHRyaWJ1dGUoZWxlbWVudCwgJ2Rpc2FibGVkJywgaW52YWxpZClcbiAgfVxuXG59XG4iXX0=
|
|
400
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXRhYmxlLWR5bmFtaWMtYWN0aW9uLW1lbnUtaXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlLWR5bmFtaWMvZGlyZWN0aXZlcy9kYXRhdGFibGUtZHluYW1pYy1hY3Rpb24tbWVudS1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBRVQsS0FBSyxFQUNMLFNBQVMsR0FLVixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQStDLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzdHLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFjLEVBQUUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ25GLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQVVsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTs7Ozs7O0FBT3JGOzs7R0FHRztBQUNJLElBQU0sd0NBQXdDLEdBQTlDLE1BQU0sd0NBQXdDO0lBUW5ELFlBQ1UsTUFBYyxFQUNkLEtBQXFCLEVBQ04sUUFBdUIsRUFDdEMsUUFBbUIsRUFDbkIsRUFBYyxFQUNkLGdCQUFrQztRQUxsQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFFckIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUUxQyxJQUFJLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxLQUFLLEdBQUcsRUFBRTtZQUNuRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksa0JBQWtCLENBQzFDLE1BQU0sRUFDTixLQUFLLEVBQ0wsR0FBRyxFQUFFLGtCQUFrQjtZQUN2QixRQUFRLEVBQ1IsRUFBRSxDQUFDLGFBQWEsRUFDaEIsZ0JBQWdCLENBQ2pCLENBQUE7WUFDRCxtREFBbUQ7WUFFbkQsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQWlCLEVBQUUsRUFBRTtnQkFDcEcsMkdBQTJHO2dCQUMzRyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7b0JBQ3ZCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7aUJBQzdHO1lBQ0gsQ0FBQyxDQUFDLENBQUE7U0FDSDthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FDMUIsTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFrQixFQUNsQixRQUFRLEVBQ1IsRUFBRSxDQUNILENBQUE7WUFDRCxtQ0FBbUM7WUFFbkMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7Z0JBQ25GLGlFQUFpRTtnQkFDakUsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO29CQUFFLE9BQVEsSUFBSSxDQUFDLE1BQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtpQkFBRTtZQUM1RCxDQUFDLENBQUMsQ0FBQTtZQUVGLGlFQUFpRTtZQUNqRSx1QkFBdUI7WUFDdkIseUJBQXlCO1lBQ3pCLDhCQUE4QjtZQUM5QixlQUFlO1lBQ2YsMEVBQTBFO1lBQzFFLGdEQUFnRDtZQUNoRCxVQUFVO1lBQ1YsUUFBUTtZQUNSLE9BQU87U0FDUjtJQUNILENBQUM7SUFFRCxJQUFJLFVBQVUsS0FBNkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFBLENBQUMsQ0FBQztJQUMvRCxJQUFJLGtCQUFrQixLQUFxQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUEsQ0FBQyxDQUFDO0lBRXZGLElBQUksZUFBZSxDQUFDLFFBQXdCO1FBQzFDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQTtTQUNsQzthQUFNLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUE7U0FDMUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsS0FBMkI7UUFDekMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFBO1NBQ2hDO2FBQU0sSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQzlCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQTtTQUN4QztJQUNILENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxLQUFhO1FBQ3hCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQTtTQUM3QjthQUFNLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUE7U0FDckM7SUFDSCxDQUFDO0lBRUQsSUFBSSxtQkFBbUIsQ0FBQyxLQUEwQjtRQUNoRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQTtTQUN4QzthQUFNLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQTtTQUNoRDtJQUNILENBQUM7SUFFRCxJQUFJLGdCQUFnQixDQUFDLEtBQWM7UUFDakMsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUE7U0FDckM7YUFBTSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUE7U0FDN0M7SUFDSCxDQUFDO0lBRUQsSUFBSSxrQkFBa0IsQ0FBQyxLQUFjO1FBQ25DLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFBO1NBQ3ZDO2FBQU0sSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQzlCLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFBO1NBQy9DO0lBQ0gsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLEtBQWM7UUFDM0IsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFBO1NBQy9CO2FBQU0sSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQzlCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQTtTQUN2QztJQUNILENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxLQUEyQjtRQUNuQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7U0FDMUI7YUFBTSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1NBQ2xDO0lBQ0gsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLEtBQXlCO1FBQ2xDLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxLQUFlLENBQUE7WUFFNUMsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFBO2FBQ25FO2lCQUFNO2dCQUNMLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUE7YUFDeEQ7U0FDRjtJQUNILENBQUM7SUFFTSxPQUFPO1FBQ1osb0VBQW9FO1FBQ3BFLDBDQUEwQztRQUMxQyxJQUFJO1FBQ0osSUFBSSxJQUFJLENBQUMsd0JBQXdCLEVBQUU7WUFDakMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFBO1lBQ2pGLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUE7U0FDckM7UUFFRCxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUU7WUFDMUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtTQUNsQztJQUNILENBQUM7Q0FFRixDQUFBO0FBMUpZLHdDQUF3QztJQVdoRCxXQUFBLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQTtHQVhiLHdDQUF3QyxDQTBKcEQ7U0ExSlksd0NBQXdDO0FBNEpyRCx5RUFBeUU7QUFDekUseUNBQXlDO0FBS3pDLE1BQU0sT0FBTyx1Q0FBdUM7SUFFbEQsSUFFSSxrQ0FBa0MsQ0FBQyxLQUF1QztRQUM1RSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMxQixDQUFDO0lBUUQsWUFDVSxXQUFvQyxFQUNwQyxTQUFvQixFQUNwQixZQUF1QyxFQUN2QyxhQUF5QyxFQUN6QyxrQkFBNEMsRUFDNUMsT0FBZSxFQUNmLE1BQXNCLEVBQ3RCLGlCQUFtQztRQVBuQyxnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7UUFDcEMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixpQkFBWSxHQUFaLFlBQVksQ0FBMkI7UUFDdkMsa0JBQWEsR0FBYixhQUFhLENBQTRCO1FBQ3pDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBMEI7UUFDNUMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFmckMsWUFBTyxHQUFHLElBQUksYUFBYSxDQUFtQyxDQUFDLENBQUMsQ0FBQTtRQUtoRSx3QkFBbUIsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFBO1FBWTlDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUk7UUFDMUMsc0NBQXNDO1FBQ3RDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDekMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQyxFQUNqRCxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakIsc0NBQXNDO1lBQ3RDLElBQUksU0FBUyxFQUFFLEVBQUU7Z0JBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTthQUFFO1lBQ3pDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNqQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN0QixDQUFDLENBQUMsQ0FFSCxDQUFDLFNBQVMsRUFBRSxDQUFBO0lBQ2YsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDdEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ2xCLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixFQUFFO1lBQ25FLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUE7U0FDdEQ7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLGtFQUFrRTtRQUNsRSxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsRUFBRTtZQUNuRSxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUN2RCxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFO2dCQUNoRCxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRTtvQkFDekcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUE7aUJBQ2xIO2FBQ0Y7aUJBQU07Z0JBQ0wsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQTthQUMvRDtTQUNGO0lBQ0gsQ0FBQztJQUVNLE9BQU8sQ0FBQyxNQUF3QztRQUNyRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUE7UUFFbEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDeEMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxPQUFtQyxDQUFDO1lBQ3hFLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFLE9BQW1DLENBQUMsQ0FDekUsQ0FDRixDQUFBO0lBQ0gsQ0FBQztJQUVPLG9CQUFvQixDQUMxQixNQUF3QyxFQUN4QyxPQUFpQztRQUVqQyxNQUFNLE9BQU8sR0FBb0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBRTlDLFFBQVEsT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUMzQixLQUFLLE1BQU0sQ0FBQyxDQUFDO2dCQUNYLHFEQUFxRDtnQkFDckQsMEJBQTBCO2dCQUMxQixJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFBO2dCQUN4QyxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFBO2dCQUU3QyxNQUFLO2FBQ047WUFDRCxLQUFLLGVBQWUsQ0FBQyxDQUFDO2dCQUNwQiw4REFBOEQ7Z0JBQzlELDBCQUEwQjtnQkFDMUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtnQkFDeEMsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxFQUFFO29CQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7aUJBQ3ZDO2dCQUNELElBQUksV0FBVyxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsRUFBRTtvQkFDdEMsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRTt3QkFDN0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtxQkFDbkQ7aUJBQ0Y7Z0JBQ0Qsb0VBQW9FO2dCQUNwRSxnREFBZ0Q7Z0JBRWhELE1BQUs7YUFDTjtZQUNELHdFQUF3RTtZQUN4RSwwQkFBMEI7WUFDMUIsdUJBQXVCO1lBQ3ZCLDZEQUE2RDtZQUM3RCwrQkFBK0I7WUFDL0IsNkNBQTZDO1lBQzdDLFVBQVU7WUFDVixJQUFJO1lBQ0osT0FBTyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsNENBQTRDO2dCQUMvRCxlQUFlLE9BQU8sQ0FBQyxXQUFXLDJDQUEyQyxDQUFDLENBQUE7U0FDakY7UUFFRCxPQUFPLE9BQU8sQ0FBQSxDQUFBLDBCQUEwQjtJQUMxQyxDQUFDO0lBRU8sb0JBQW9CLENBQzFCLE1BQXdDLEVBQ3hDLE9BQTREO1FBRTVELElBQUksT0FBTyxHQUFvQixFQUFFLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDNUMsd0VBQXdFO1FBQ3hFLFFBQVEsT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUMzQixLQUFLLFlBQVksQ0FBQyxDQUFDO2dCQUNqQiwyREFBMkQ7Z0JBQzNELDBCQUEwQjtnQkFDMUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtnQkFDeEMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUNsRixNQUFLO2FBQ047WUFDRCxLQUFLLE9BQU8sQ0FBQyxDQUFDO2dCQUNaLHNEQUFzRDtnQkFDdEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQTtnQkFDeEMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUNsRixNQUFLO2FBQ047WUFDRCxPQUFPLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyw0Q0FBNEM7Z0JBQy9ELGVBQWUsT0FBTyxDQUFDLFdBQVcsMkNBQTJDLENBQUMsQ0FBQTtTQUNqRjtRQUVELE9BQU8sT0FBTyxDQUFBLENBQUEsMEJBQTBCO0lBQzFDLENBQUM7SUFFTyxtQkFBbUIsQ0FDekIsTUFBd0MsRUFDeEMsT0FBNEQ7UUFFNUQscUNBQXFDO1FBQ3JDLHVCQUF1QjtRQUN2QixnRkFBZ0Y7UUFDaEYsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDL0QsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1YsbUVBQW1FO1lBQ25FLGtEQUFrRDtZQUNsRCw2RUFBNkU7WUFDN0UsK0JBQStCO1lBQy9CLHVFQUF1RTtZQUN2RSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQkFDM0IsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLFlBQVksSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxFQUFFO29CQUMzRSxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFBO29CQUMzQixJQUFJLE1BQTBCLENBQUE7b0JBQzlCLElBQUksV0FBVyxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRTt3QkFDbkYsTUFBTSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFBO3FCQUNuQztvQkFDRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFBO2lCQUMxRDthQUNGO1lBQ0QsaUJBQWlCO1lBQ2pCLDJCQUEyQjtZQUMzQiw0QkFBNEI7WUFDNUIsSUFBSTtRQUNOLENBQUMsQ0FBQyxFQUNGLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FDakIsQ0FBQTtRQUVELE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUk7UUFDdkIsMkRBQTJEO1FBQzNELFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDbkIsQ0FBQTtJQUNILENBQUM7SUFFTyxtQkFBbUIsQ0FDekIsTUFBd0MsRUFDeEMsT0FBaUM7UUFFakMsc0RBQXNEO1FBQ3RELHVCQUF1QjtRQUN2QixPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQzVELFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNoQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBQ2hFLE1BQU0sT0FBTyxHQUFHLEVBQUUsR0FBRyxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFBO1lBQy9DLG1EQUFtRDtZQUNuRCxpQkFBaUI7WUFDakIsMkJBQTJCO1lBQzNCLDRCQUE0QjtZQUM1QixJQUFJO1lBRUosT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQzdELENBQUMsQ0FBQyxFQUNGLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FDakIsQ0FBQTtJQUNILENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksSUFBSSxDQUFDLGtCQUFrQixJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRTtZQUM5RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUE7U0FDdEM7SUFDSCxDQUFDO0lBRU8sUUFBUSxDQUFDLElBQVksRUFBRSxLQUFhO1FBQzFDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUMxRSxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNyRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUE7U0FDN0U7SUFDSCxDQUFDO0lBRU8sa0JBQWtCLENBQ3hCLE1BQXdDLEVBQ3hDLE9BQTJCO1FBRTNCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtRQUNsQixJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQTtTQUN0RjtJQUNILENBQUM7SUFFTyx5QkFBeUIsQ0FDL0IsT0FBMkIsRUFDM0IsTUFBd0M7UUFFeEMsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUM1RCxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDVixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1lBQ2hFLE1BQU0sT0FBTyxHQUFHLEVBQUUsR0FBRyxRQUFRLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFBO1lBQy9DLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUE7WUFDMUUsMkRBQTJEO1lBQzNELElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ1gsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFBO2dCQUN0QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUE7YUFDeEI7UUFDSCxDQUFDLENBQUMsRUFDRixLQUFLLENBQUMsU0FBUyxDQUFDLENBQ2pCLENBQUE7SUFDSCxDQUFDO0lBRU8sdUJBQXVCLENBQzdCLE1BQXdDLEVBQ3hDLE9BQWlDO1FBRWpDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSx3Q0FBd0MsQ0FDakUsSUFBSSxDQUFDLE9BQU8sRUFDWixJQUFJLENBQUMsTUFBTSxFQUNYLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsRUFDeEQsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsaUJBQWlCLENBQ3ZCLENBQUE7UUFDRCxvQ0FBb0M7UUFFcEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLE9BQWlCLENBQUE7UUFFaEUsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxFQUFFO1lBQ3RDLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQzdDLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFBO2FBQ3hEO1lBQ0QsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsRUFBRTtnQkFDbEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUE7YUFDbEU7WUFDRCxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFO2dCQUMvQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQTthQUM1RDtZQUNELElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUscUJBQXFCLENBQUMsRUFBRTtnQkFDMUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFBO2FBQ2xGO1lBQ0QsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxFQUFFO2dCQUN2RCxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUE7YUFDNUU7WUFDRCxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLG9CQUFvQixDQUFDLEVBQUU7Z0JBQ3pELElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQTthQUNoRjtZQUNELElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLEVBQUU7Z0JBQ2pELElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFBO2FBQ2hFO1lBQ0QsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRTtnQkFDNUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUE7YUFDdEQ7U0FDRjtRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDdEIsQ0FBQztJQUVPLFNBQVM7UUFDZixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxHQUFHLENBQUE7SUFDdEUsQ0FBQztJQUVPLFdBQVcsQ0FBQyxNQUF3QztRQUMxRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQy9ELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDeEUsQ0FBQztJQUVELGNBQWM7SUFDTixXQUFXLENBQUMsR0FBd0IsRUFBRSxZQUF1QztRQUNuRixPQUFPO1lBQ0wsR0FBRztTQUNKLENBQUE7SUFDSCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsVUFBbUIsS0FBSztRQUNyRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQTtRQUM5QyxlQUFlLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQTtJQUMvQyxDQUFDOztvSUEzVFUsdUNBQXVDO3dIQUF2Qyx1Q0FBdUM7MkZBQXZDLHVDQUF1QztrQkFKbkQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0NBQXNDO29CQUNoRCxRQUFRLEVBQUUsb0NBQW9DO2lCQUMvQztrVUFLSyxrQ0FBa0M7c0JBRnJDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHtcbiAgQXR0cmlidXRlLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBpc0Rldk1vZGUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBSZW5kZXJlcjIsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUXVlcnlQYXJhbXNIYW5kbGluZywgUm91dGVyLCBSb3V0ZXJMaW5rLCBSb3V0ZXJMaW5rV2l0aEhyZWYgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInXG5pbXBvcnQgeyBmcm9tLCBmcm9tRXZlbnQsIE9ic2VydmFibGUsIG9mLCBSZXBsYXlTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwVG8sIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB7IEFzc2V0UmVhZGVySGVscGVyU2VydmljZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9hc3NldC1yZWFkZXInXG5pbXBvcnQge1xuICBEeW5hbWljQWN0aW9uSGVscGVyU2VydmljZSxcbiAgRHluYW1pY0FjdGlvblVpQW5jaG9yRGVmLFxuICBEeW5hbWljQWN0aW9uVWlCdXR0b25EZWYsXG4gIER5bmFtaWNBY3Rpb25VaURlZixcbiAgRHluYW1pY1ZhbHVlSGVscGVyU2VydmljZVxufSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vZHluYW1pYydcbmltcG9ydCB7IGdldEF0dHJpYnV0ZSwgaGFzUHJvcGVydHksIHRvZ2dsZUF0dHJpYnV0ZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuaW1wb3J0IHsgRHluYW1pY0RhdGF0YWJsZVJvdyB9IGZyb20gJy4uL2RhdGF0YWJsZS1keW5hbWljLWRlZidcbmltcG9ydCB0eXBlIHsgRHluYW1pY0RhdGF0YWJsZUFjdGlvbk1lbnVSZWNvcmQgfSBmcm9tICcuLi9tb2RlbHMvZHluYW1pYy1kYXRhdGFibGUtYWN0aW9uLW1lbnUtcmVjb3JkJ1xuaW1wb3J0IHsgRHluYW1pY0RhdGF0YWJsZVJvd0FjdGlvbiB9IGZyb20gJy4uL21vZGVscy9keW5hbWljLWRhdGF0YWJsZS1yb3ctYWN0aW9uJ1xuaW1wb3J0IHsgRHluYW1pY0RhdGF0YWJsZVJvd0FjdGlvbkNvbnRleHQgfSBmcm9tICcuLi9tb2RlbHMvZHluYW1pYy1kYXRhdGFibGUtcm93LWFjdGlvbi1jb250ZXh0J1xuXG4vKipcbiAqIENsYXNzIHRvIGFjdCBhcyBhIHN1YnN0aXR1dGUgdG8gYHJvdXRlckxpbmtgIGRpcmVjdGl2ZSB1bnRpbCB0aGUgbWVudSBpdGVtc1xuICogY2FuIGJlIGR5bmFtaWNhbGx5IGJ1aWx0IGluIGEgY2xlYW4gd2F5IHdpdGggb3Igd2l0aG91dCBgcm91dGVyTGlua2AuXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhdGFibGVEeW5hbWljQWN0aW9uTWVudUl0ZW1Sb3V0ZXJMaW5rIHtcblxuICBwcml2YXRlIF9yTGluaz86IFJvdXRlckxpbmtcbiAgcHJpdmF0ZSBfckxpbmtXaXRoSHJlZj86IFJvdXRlckxpbmtXaXRoSHJlZlxuXG4gIC8vIHByaXZhdGUgX2NsaWNrU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uXG4gIHByaXZhdGUgX3JMaW5rQ2xpY2tFdmVudExpc3RlbmVyPzogYW55XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBAQXR0cmlidXRlKCd0YWJpbmRleCcpIHRhYkluZGV4OiBzdHJpbmcgfCBudWxsLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgbG9jYXRpb25TdHJhdGVneTogTG9jYXRpb25TdHJhdGVneVxuICApIHtcbiAgICBpZiAoZWwubmF0aXZlRWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYScpIHtcbiAgICAgIHRoaXMuX3JMaW5rV2l0aEhyZWYgPSBuZXcgUm91dGVyTGlua1dpdGhIcmVmKFxuICAgICAgICByb3V0ZXIsXG4gICAgICAgIHJvdXRlLFxuICAgICAgICAnMCcsIC8vIFRPRE86IEZpeCB0eXBlLlxuICAgICAgICByZW5kZXJlcixcbiAgICAgICAgZWwubmF0aXZlRWxlbWVudCxcbiAgICAgICAgbG9jYXRpb25TdHJhdGVneVxuICAgICAgKVxuICAgICAgLy8gY29uc29sZS5sb2coJ3JMaW5rV2l0aEhyZWYnLCB0aGlzLnJMaW5rV2l0aEhyZWYpXG5cbiAgICAgIHRoaXMuX3JMaW5rQ2xpY2tFdmVudExpc3RlbmVyID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCd0aGlzLl9yTGlua1dpdGhIcmVmJywgdGhpcy5fckxpbmtXaXRoSHJlZiwgdGhpcy5fckxpbmtXaXRoSHJlZiAmJiB0aGlzLl9yTGlua1dpdGhIcmVmLmhyZWYpXG4gICAgICAgIGlmICh0aGlzLl9yTGlua1dpdGhIcmVmKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuX3JMaW5rV2l0aEhyZWYub25DbGljayhldmVudC5idXR0b24sIGV2ZW50LmN0cmxLZXksIGV2ZW50LnNoaWZ0S2V5LCBldmVudC5hbHRLZXksIGV2ZW50Lm1ldGFLZXkpXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3JMaW5rID0gbmV3IFJvdXRlckxpbmsoXG4gICAgICAgIHJvdXRlcixcbiAgICAgICAgcm91dGUsXG4gICAgICAgIHRhYkluZGV4IGFzIHN0cmluZyxcbiAgICAgICAgcmVuZGVyZXIsXG4gICAgICAgIGVsXG4gICAgICApXG4gICAgICAvLyBjb25zb2xlLmxvZygnckxpbmsnLCB0aGlzLnJMaW5rKVxuXG4gICAgICB0aGlzLl9yTGlua0NsaWNrRXZlbnRMaXN0ZW5lciA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3RoaXMuX3JMaW5rJywgdGhpcy5fckxpbmsgJiYgdGhpcy5fckxpbmsudXJsVHJlZSlcbiAgICAgICAgaWYgKHRoaXMuX3JMaW5rKSB7IHJldHVybiAodGhpcy5fckxpbmsgYXMgYW55KS5vbkNsaWNrKCkgfVxuICAgICAgfSlcblxuICAgICAgLy8gdGhpcy5fY2xpY2tTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQoZWwubmF0aXZlRWxlbWVudCwgJ2NsaWNrJylcbiAgICAgIC8vICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAvLyAgICAgaWYgKHRoaXMuX3JMaW5rKSB7XG4gICAgICAvLyAgICAgICB0aGlzLl9yTGluay5vbkNsaWNrKClcbiAgICAgIC8vICAgICB9IGVsc2Uge1xuICAgICAgLy8gICAgICAgaWYgKHRoaXMuX2NsaWNrU3Vic2NyaXB0aW9uICYmICF0aGlzLl9jbGlja1N1YnNjcmlwdGlvbi5jbG9zZWQpIHtcbiAgICAgIC8vICAgICAgICAgdGhpcy5fY2xpY2tTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICAgICAgLy8gICAgICAgfVxuICAgICAgLy8gICAgIH1cbiAgICAgIC8vICAgfSlcbiAgICB9XG4gIH1cblxuICBnZXQgcm91dGVyTGluaygpOiBSb3V0ZXJMaW5rIHwgdW5kZWZpbmVkIHsgcmV0dXJuIHRoaXMuX3JMaW5rIH1cbiAgZ2V0IHJvdXRlckxpbmtXaXRoSHJlZigpOiBSb3V0ZXJMaW5rV2l0aEhyZWYgfCB1bmRlZmluZWQgeyByZXR1cm4gdGhpcy5fckxpbmtXaXRoSHJlZiB9XG5cbiAgc2V0IHJvdXRlckxpbmtJbnB1dChjb21tYW5kczogYW55W10gfCBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5fckxpbmspIHtcbiAgICAgIHRoaXMuX3JMaW5rLnJvdXRlckxpbmsgPSBjb21tYW5kc1xuICAgIH0gZWxzZSBpZiAodGhpcy5fckxpbmtXaXRoSHJlZikge1xuICAgICAgdGhpcy5fckxpbmtXaXRoSHJlZi5yb3V0ZXJMaW5rID0gY29tbWFuZHNcbiAgICB9XG4gIH1cblxuICBzZXQgcXVlcnlQYXJhbXModmFsdWU6IHsgW2s6IHN0cmluZ106IGFueSB9KSB7XG4gICAgaWYgKHRoaXMuX3JMaW5rKSB7XG4gICAgICB0aGlzLl9yTGluay5xdWVyeVBhcmFtcyA9IHZhbHVlXG4gICAgfSBlbHNlIGlmICh0aGlzLl9yTGlua1dpdGhIcmVmKSB7XG4gICAgICB0aGlzLl9yTGlua1dpdGhIcmVmLnF1ZXJ5UGFyYW1zID0gdmFsdWVcbiAgICB9XG4gIH1cblxuICBzZXQgZnJhZ21lbnQodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh0aGlzLl9yTGluaykge1xuICAgICAgdGhpcy5fckxpbmsuZnJhZ21lbnQgPSB2YWx1ZVxuICAgIH0gZWxzZSBpZiAodGhpcy5fckxpbmtXaXRoSHJlZikge1xuICAgICAgdGhpcy5fckxpbmtXaXRoSHJlZi5mcmFnbWVudCA9IHZhbHVlXG4gICAgfVxuICB9XG5cbiAgc2V0IHF1ZXJ5UGFyYW1zSGFuZGxpbmcodmFsdWU6IFF1ZXJ5UGFyYW1zSGFuZGxpbmcpIHtcbiAgICBpZiAodGhpcy5fckxpbmspIHtcbiAgICAgIHRoaXMuX3JMaW5rLnF1ZXJ5UGFyYW1zSGFuZGxpbmcgPSB2YWx1ZVxuICAgIH0gZWxzZSBpZiAodGhpcy5fckxpbmtXaXRoSHJlZikge1xuICAgICAgdGhpcy5fckxpbmtXaXRoSHJlZi5xdWVyeVBhcmFtc0hhbmRsaW5nID0gdmFsdWVcbiAgICB9XG4gIH1cblxuICBzZXQgcHJlc2VydmVGcmFnbWVudCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLl9yTGluaykge1xuICAgICAgdGhpcy5fckxpbmsucHJlc2VydmVGcmFnbWVudCA9IHZhbHVlXG4gICAgfSBlbHNlIGlmICh0aGlzLl9yTGlua1dpdGhIcmVmKSB7XG4gICAgICB0aGlzLl9yTGlua1dpdGhIcmVmLnByZXNlcnZlRnJhZ21lbnQgPSB2YWx1ZVxuICAgIH1cbiAgfVxuXG4gIHNldCBza2lwTG9jYXRpb25DaGFuZ2UodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5fckxpbmspIHtcbiAgICAgIHRoaXMuX3JMaW5rLnNraXBMb2NhdGlvbkNoYW5nZSA9IHZhbHVlXG4gICAgfSBlbHNlIGlmICh0aGlzLl9yTGlua1dpdGhIcmVmKSB7XG4gICAgICB0aGlzLl9yTGlua1dpdGhIcmVmLnNraXBMb2NhdGlvbkNoYW5nZSA9IHZhbHVlXG4gICAgfVxuICB9XG5cbiAgc2V0IHJlcGxhY2VVcmwodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAodGhpcy5fckxpbmspIHtcbiAgICAgIHRoaXMuX3JMaW5rLnJlcGxhY2VVcmwgPSB2YWx1ZVxuICAgIH0gZWxzZSBpZiAodGhpcy5fckxpbmtXaXRoSHJlZikge1xuICAgICAgdGhpcy5fckxpbmtXaXRoSHJlZi5yZXBsYWNlVXJsID0gdmFsdWVcbiAgICB9XG4gIH1cblxuICBzZXQgc3RhdGUodmFsdWU6IHsgW2s6IHN0cmluZ106IGFueSB9KSB7XG4gICAgaWYgKHRoaXMuX3JMaW5rKSB7XG4gICAgICB0aGlzLl9yTGluay5zdGF0ZSA9IHZhbHVlXG4gICAgfSBlbHNlIGlmICh0aGlzLl9yTGlua1dpdGhIcmVmKSB7XG4gICAgICB0aGlzLl9yTGlua1dpdGhIcmVmLnN0YXRlID0gdmFsdWVcbiAgICB9XG4gIH1cblxuICBzZXQgdGFyZ2V0KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodGhpcy5fckxpbmtXaXRoSHJlZikge1xuICAgICAgdGhpcy5fckxpbmtXaXRoSHJlZi50YXJnZXQgPSB2YWx1ZSBhcyBzdHJpbmdcblxuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3RhcmdldCcsIHZhbHVlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdG9nZ2xlQXR0cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3RhcmdldCcsIGZhbHNlKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCkge1xuICAgIC8vIGlmICh0aGlzLl9jbGlja1N1YnNjcmlwdGlvbiAmJiAhdGhpcy5fY2xpY2tTdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgLy8gICB0aGlzLl9jbGlja1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gICAgLy8gfVxuICAgIGlmICh0aGlzLl9yTGlua0NsaWNrRXZlbnRMaXN0ZW5lcikge1xuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5fckxpbmtDbGlja0V2ZW50TGlzdGVuZXIpXG4gICAgICB0aGlzLl9yTGlua0NsaWNrRXZlbnRMaXN0ZW5lciA9IG51bGxcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fckxpbmtXaXRoSHJlZiAmJiB0aGlzLl9yTGlua1dpdGhIcmVmLm5nT25EZXN0cm95KSB7XG4gICAgICB0aGlzLl9yTGlua1dpdGhIcmVmLm5nT25EZXN0cm95KClcbiAgICB9XG4gIH1cblxufVxuXG4vLyBUT0RPOiBSZWZhY3RvciB0aGlzIGRpcmVjdGl2ZS4gSXQgZ290IHdheSBtb3JlIGNvbXBsZXggaW5zdGVhZCBvZiBtb3JlXG4vLyBzaW1wbGlmaWVkIGxpa2UgaXQgd2FzIHN1cHBvc2VkIHRvIGJlLlxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NlYW1EYXRhdGFibGVEeW5hbWljQWN0aW9uTWVudUl0ZW1dJyxcbiAgZXhwb3J0QXM6ICdzZWFtRGF0YXRhYmxlRHluYW1pY0FjdGlvbk1lbnVJdGVtJ1xufSlcbmV4cG9ydCBjbGFzcyBEYXRhdGFibGVEeW5hbWljQWN0aW9uTWVudUl0ZW1EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG5cbiAgQElucHV0KClcbiAgLy8gZ2V0IHNlYW1EYXRhdGFibGVEeW5hbWljQWN0aW9uTWVudUl0ZW0oKTogRHluYW1pY0RhdGF0YWJsZUFjdGlvbk1lbnVSZWNvcmQgeyByZXR1cm4gdGhpcy5fcmVjb3JkIH1cbiAgc2V0IHNlYW1EYXRhdGFibGVEeW5hbWljQWN0aW9uTWVudUl0ZW0odmFsdWU6IER5bmFtaWNEYXRhdGFibGVBY3Rpb25NZW51UmVjb3JkKSB7XG4gICAgdGhpcy5fcmVjb3JkLm5leHQodmFsdWUpXG4gIH1cbiAgcHJpdmF0ZSBfcmVjb3JkID0gbmV3IFJlcGxheVN1YmplY3Q8RHluYW1pY0RhdGF0YWJsZUFjdGlvbk1lbnVSZWNvcmQ+KDEpXG5cbiAgcHJpdmF0ZSBfY2xpY2tTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb25cbiAgcHJpdmF0ZSBfbWVudVJvdXRlckxpbms/OiBEYXRhdGFibGVEeW5hbWljQWN0aW9uTWVudUl0ZW1Sb3V0ZXJMaW5rXG5cbiAgcHJpdmF0ZSBfcmVjb3JkU3Vic2NyaXB0aW9uID0gU3Vic2NyaXB0aW9uLkVNUFRZXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIF92YWx1ZUhlbHBlcjogRHluYW1pY1ZhbHVlSGVscGVyU2VydmljZSxcbiAgICBwcml2YXRlIF9hY3Rpb25IZWxwZXI6IER5bmFtaWNBY3Rpb25IZWxwZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2Fzc2V0UmVhZGVySGVscGVyOiBBc3NldFJlYWRlckhlbHBlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBfcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgX2xvY2F0aW9uU3RyYXRlZ3k6IExvY2F0aW9uU3RyYXRlZ3lcbiAgKSB7XG4gICAgdGhpcy5fcmVjb3JkU3Vic2NyaXB0aW9uID0gdGhpcy5fcmVjb3JkLnBpcGUoXG4gICAgICAvLyB0YXAodiA9PiBjb25zb2xlLmxvZygncmVjb3JkJywgdikpLFxuICAgICAgc3dpdGNoTWFwKHJlY29yZCA9PiB0aGlzLl91cGRhdGUocmVjb3JkKSksXG4gICAgICB0YXAoKCkgPT4geyB0aGlzLl9zZXRJbnZhbGlkQWN0aW9uU3RhdGUoZmFsc2UpIH0pLFxuICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgIGlmIChpc0Rldk1vZGUoKSkgeyBjb25zb2xlLmVycm9yKGVycm9yKSB9XG4gICAgICAgIHRoaXMuX3NldEludmFsaWRBY3Rpb25TdGF0ZSh0cnVlKVxuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxuICAgICAgfSksXG4gICAgICAvLyB0YXAodiA9PiBjb25zb2xlLmxvZygncmVjb3JkIERPTkUnLCB2KSlcbiAgICApLnN1YnNjcmliZSgpXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9yZWNvcmRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICAgIHRoaXMuX3Vuc3ViQ2xpY2soKVxuICAgIGlmICh0aGlzLl9tZW51Um91dGVyTGluayAmJiB0aGlzLl9tZW51Um91dGVyTGluay5yb3V0ZXJMaW5rV2l0aEhyZWYpIHtcbiAgICAgIHRoaXMuX21lbnVSb3V0ZXJMaW5rLnJvdXRlckxpbmtXaXRoSHJlZi5uZ09uRGVzdHJveSgpXG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIC8vIGNvbnNvbGUubG9nKCduZ09uQ2hhbmdlcycsIGNoYW5nZXMsIHRoaXMsIHRoaXMuX21lbnVSb3V0ZXJMaW5rKVxuICAgIGlmICh0aGlzLl9tZW51Um91dGVyTGluayAmJiB0aGlzLl9tZW51Um91dGVyTGluay5yb3V0ZXJMaW5rV2l0aEhyZWYpIHtcbiAgICAgIHRoaXMuX21lbnVSb3V0ZXJMaW5rLnJvdXRlckxpbmtXaXRoSHJlZi5uZ09uQ2hhbmdlcyh7fSlcbiAgICAgIGlmICh0aGlzLl9tZW51Um91dGVyTGluay5yb3V0ZXJMaW5rV2l0aEhyZWYuaHJlZikge1xuICAgICAgICBpZiAoZ2V0QXR0cmlidXRlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2hyZWYnKSAhPT0gdGhpcy5fbWVudVJvdXRlckxpbmsucm91dGVyTGlua1dpdGhIcmVmLmhyZWYpIHtcbiAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnaHJlZicsIHRoaXMuX21lbnVSb3V0ZXJMaW5rLnJvdXRlckxpbmtXaXRoSHJlZi5ocmVmKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0b2dnbGVBdHRyaWJ1dGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnaHJlZicsIGZhbHNlKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBfdXBkYXRlKHJlY29yZDogRHluYW1pY0RhdGF0YWJsZUFjdGlvbk1lbnVSZWNvcmQpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICB0aGlzLl91bnN1YkNsaWNrKClcblxuICAgIHJldHVybiBmcm9tKHRoaXMuX2dldFVpUHJvcHMocmVjb3JkKSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCh1aVByb3BzID0+IHRoaXMuX2lzQW5jaG9yKClcbiAgICAgICAgPyB0aGlzLl91cGRhdGVBbmNob3JFbGVtZW50KHJlY29yZCwgdWlQcm9wcyBhcyBEeW5hbWljQWN0aW9uVWlBbmNob3JEZWYpXG4gICAgICAgIDogdGhpcy5fdXBkYXRlQnV0dG9uRWxlbWVudChyZWNvcmQsIHVpUHJvcHMgYXMgRHluYW1pY0FjdGlvblVpQnV0dG9uRGVmKVxuICAgICAgKVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUFuY2hvckVsZW1lbnQoXG4gICAgcmVjb3JkOiBEeW5hbWljRGF0YXRhYmxlQWN0aW9uTWVudVJlY29yZCxcbiAgICB1aVByb3BzOiBEeW5hbWljQWN0aW9uVWlBbmNob3JEZWZcbiAgKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgX3N0cmVhbTogT2JzZXJ2YWJsZTxhbnk+ID0gb2YodW5kZWZpbmVkKVxuXG4gICAgc3dpdGNoICh1aVByb3BzLnRyaWdnZXJUeXBlKSB7XG4gICAgICBjYXNlICdsaW5rJzoge1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnSGFuZGxlIFwibGlua1wiIHRyaWdnZXJUeXBlLicsIHVpUHJvcHMpXG4gICAgICAgIC8vIHRoaXMuX3RyeUluaXRUYWJJbmRleCgpXG4gICAgICAgIHRoaXMuX3RyeUluaXRCbG9ja0NsaWNrKHJlY29yZCwgdWlQcm9wcylcbiAgICAgICAgdGhpcy5faW5pdE1lbnVJdGVtUm91dGVyTGluayhyZWNvcmQsIHVpUHJvcHMpXG5cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2xpbmstZXh0ZXJuYWwnOiB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdIYW5kbGUgXCJsaW5rLWV4dGVybmFsXCIgdHJpZ2dlclR5cGUuJywgdWlQcm9wcylcbiAgICAgICAgLy8gdGhpcy5fdHJ5SW5pdFRhYkluZGV4KClcbiAgICAgICAgdGhpcy5fdHJ5SW5pdEJsb2NrQ2xpY2socmVjb3JkLCB1aVByb3BzKVxuICAgICAgICBpZiAoaGFzUHJvcGVydHkodWlQcm9wcywgJ2xpbmtVcmwnKSkge1xuICAgICAgICAgIHRoaXMuX3NldEF0dHIoJ2hyZWYnLCB1aVByb3BzLmxpbmtVcmwpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGhhc1Byb3BlcnR5KHVpUHJvcHMsICdsaW5rRXh0cmFzJykpIHtcbiAgICAgICAgICBpZiAoaGFzUHJvcGVydHkodWlQcm9wcy5saW5rRXh0cmFzLCAndGFyZ2V0JykpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldEF0dHIoJ3RhcmdldCcsIHVpUHJvcHMubGlua0V4dHJhcy50YXJnZXQpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIFRPRE86IENvbnNpZGVyIG1ha2luZyB0aGUgSXRlbVJvdXRlckxpbmsgd29yayB3aXRoIGV4dGVybmFsIHVybHMuXG4gICAgICAgIC8vIHRoaXMuX2luaXRNZW51SXRlbVJvdXRlckxpbmsocmVjb3JkLCB1aVByb3BzKVxuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICAvLyBUT0RPOiBVbmxlc3Mgd2UgZGVjaWRlIHRvIGFkZCBhIHJvdXRlIGZvciBvcGVubmluZyBhc3NldHMsIHRoaXMgd291bGRcbiAgICAgIC8vIGJlIGNvbmZ1c2luZyB0byBhIHVzZXIuXG4gICAgICAvLyBjYXNlICdsaW5rLWFzc2V0Jzoge1xuICAgICAgLy8gICBjb25zb2xlLmxvZygnSGFuZGxlIFwibGluay1hc3NldFwiIHRyaWdnZXJUeXBlLicsIHVpUHJvcHMpXG4gICAgICAvLyAgIC8vIHRoaXMuX3RyeUluaXRUYWJJbmRleCgpXG4gICAgICAvLyAgIHRoaXMuX3RyeUluaXRCbG9ja0NsaWNrKHJlY29yZCwgdWlQcm9wcylcbiAgICAgIC8vICAgYnJlYWtcbiAgICAgIC8vIH1cbiAgICAgIGRlZmF1bHQ6IHRocm93IEVycm9yKCdbRGF0YXRhYmxlRHluYW1pY0FjdGlvbk1lbnVJdGVtRGlyZWN0aXZlXSAnICtcbiAgICAgICAgYHRyaWdnZXJUeXBlICR7dWlQcm9wcy50cmlnZ2VyVHlwZX0gaXMgbm90IHZhbGlkIGZvciBfdXBkYXRlQW5jaG9yRWxlbWVudCgpLmApXG4gICAgfVxuXG4gICAgcmV0dXJuIF9zdHJlYW0vLyAucGlwZShtYXBUbyh1bmRlZmluZWQpKVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlQnV0dG9uRWxlbWVudChcbiAgICByZWNvcmQ6IER5bmFtaWNEYXRhdGFibGVBY3Rpb25NZW51UmVjb3JkLFxuICAgIHVpUHJvcHM6IER5bmFtaWNBY3Rpb25VaUFuY2hvckRlZiB8IER5bmFtaWNBY3Rpb25VaUJ1dHRvbkRlZlxuICApOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBsZXQgX3N0cmVhbTogT2JzZXJ2YWJsZTxhbnk+ID0gb2YodW5kZWZpbmVkKVxuICAgIC8vIHRoaXMuX3VwZGF0ZUNsaWNrRWxlbWVudChyZWNvcmQsIHVpUHJvcHMgYXMgRHluYW1pY0FjdGlvblVpQnV0dG9uRGVmKVxuICAgIHN3aXRjaCAodWlQcm9wcy50cmlnZ2VyVHlwZSkge1xuICAgICAgY2FzZSAnbGluay1hc3NldCc6IHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ0hhbmRsZSBcImxpbmstYXNzZXRcIiB0cmlnZ2VyVHlwZS4nLCB1aVByb3BzKVxuICAgICAgICAvLyB0aGlzLl90cnlJbml0VGFiSW5kZXgoKVxuICAgICAgICB0aGlzLl90cnlJbml0QmxvY2tDbGljayhyZWNvcmQsIHVpUHJvcHMpXG4gICAgICAgIF9zdHJlYW0gPSBfc3RyZWFtLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMuX3VwZGF0ZUFzc2V0RWxlbWVudChyZWNvcmQsIHVpUHJvcHMpKSlcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2NsaWNrJzoge1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnSGFuZGxlIFwiY2xpY2tcIiB0cmlnZ2VyVHlwZS4nLCB1aVByb3BzKVxuICAgICAgICB0aGlzLl90cnlJbml0QmxvY2tDbGljayhyZWNvcmQsIHVpUHJvcHMpXG4gICAgICAgIF9zdHJlYW0gPSBfc3RyZWFtLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMuX3VwZGF0ZUNsaWNrRWxlbWVudChyZWNvcmQsIHVpUHJvcHMpKSlcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHRocm93IEVycm9yKCdbRGF0YXRhYmxlRHluYW1pY0FjdGlvbk1lbnVJdGVtRGlyZWN0aXZlXSAnICtcbiAgICAgICAgYHRyaWdnZXJUeXBlICR7dWlQcm9wcy50cmlnZ2VyVHlwZX0gaXMgbm90IHZhbGlkIGZvciBfdXBkYXRlQW5jaG9yRWxlbWVudCgpLmApXG4gICAgfVxuXG4gICAgcmV0dXJuIF9zdHJlYW0vLyAucGlwZShtYXBUbyh1bmRlZmluZWQpKVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlQXNzZXRFbGVtZW50KFxuICAgIHJlY29yZDogRHluYW1pY0RhdGF0YWJsZUFjdGlvbk1lbnVSZWNvcmQsXG4gICAgdWlQcm9wczogRHluYW1pY0FjdGlvblVpQW5jaG9yRGVmIHwgRHluYW1pY0FjdGlvblVpQnV0dG9uRGVmXG4gICk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIC8vIGNvbnNvbGUubG9nKCdfdXBkYXRlQXNzZXRFbGVtZW50JylcbiAgICAvLyByZXR1cm4gb2YodW5kZWZpbmVkKVxuICAgIC8vIGNvbnNvbGUubG9nKCd0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQnLCB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpXG4gICAgY29uc3QgdCA9IGZyb21FdmVudCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdjbGljaycpLnBpcGUoXG4gICAgICB0YXAoZXZlbnQgPT4ge1xuICAgICAgICAvLyBjb25zdCBfY29udGV4dCA9IHRoaXMuX2dldENvbnRleHQocmVjb3JkLl9yb3csIHJlY29yZC5yb3dBY3Rpb24pXG4gICAgICAgIC8vIGNvbnN0IGNvbnRleHQgPSB7IC4uLl9jb250ZXh0LCBldmVudCwgdWlQcm9wcyB9XG4gICAgICAgIC8vIGNvbnN0IHJlc3VsdCA9IHRoaXMuX3ZhbHVlSGVscGVyLmV2YWxTeW5jKHVpUHJvcHMuYmxvY2tDbGlja0V4cHIsIGNvbnRleHQpXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHJlY29yZCwgdWlQcm9wcylcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ191cGRhdGVDbGlja0VsZW1lbnQgY2xpY2snLCAoPGFueT5ldmVudCkuYnV0dG9uLCBldmVudClcbiAgICAgICAgaWYgKHRoaXMuX2Fzc2V0UmVhZGVySGVscGVyKSB7XG4gICAgICAgICAgaWYgKHVpUHJvcHMudHJpZ2dlclR5cGUgPT09ICdsaW5rLWFzc2V0JyAmJiBoYXNQcm9wZXJ0eSh1aVByb3BzLCAnbGlua1VybCcpKSB7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSB1aVByb3BzLmxpbmtVcmxcbiAgICAgICAgICAgIGxldCB0YXJnZXQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgaWYgKGhhc1Byb3BlcnR5KHVpUHJvcHMsICdsaW5rRXh0cmFzJykgJiYgaGFzUHJvcGVydHkodWlQcm9wcy5saW5rRXh0cmFzLCAndGFyZ2V0JykpIHtcbiAgICAgICAgICAgICAgdGFyZ2V0ID0gdWlQcm9wcy5saW5rRXh0cmFzLnRhcmdldFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fYXNzZXRSZWFkZXJIZWxwZXIub3BlbkxpbmsodXJsLCB0cnVlLCB0cnVlLCB0YXJnZXQpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC8vIGlmICghcmVzdWx0KSB7XG4gICAgICAgIC8vICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAvLyAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgIC8vIH1cbiAgICAgIH0pLFxuICAgICAgbWFwVG8odW5kZWZpbmVkKVxuICAgIClcblxuICAgIHJldHVybiBvZih1bmRlZmluZWQpLnBpcGUoXG4gICAgICAvLyB0YXAoKCkgPT4gY29uc29sZS5sb2coJ3N0YXJ0aW5nIF91cGRhdGVCdXR0b25FbGVtZW50JykpLFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHQpLFxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUNsaWNrRWxlbWVudChcbiAgICByZWNvcmQ6IER5bmFtaWNEYXRhdGFibGVBY3Rpb25NZW51UmVjb3JkLFxuICAgIHVpUHJvcHM6IER5bmFtaWNBY3Rpb25VaUJ1dHRvbkRlZlxuICApOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAvLyBjb25zb2xlLmxvZygnX3VwZGF0ZUNsaWNrRWxlbWVudCcsIHJlY29yZCwgdWlQcm9wcylcbiAgICAvLyByZXR1cm4gb2YodW5kZWZpbmVkKVxuICAgIHJldHVybiBmcm9tRXZlbnQodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnY2xpY2snKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKGV2ZW50ID0+IHtcbiAgICAgICAgY29uc3QgX2NvbnRleHQgPSB0aGlzLl9nZXRDb250ZXh0KHJlY29yZC5fcm93LCByZWNvcmQucm93QWN0aW9uKVxuICAgICAgICBjb25zdCBjb250ZXh0ID0geyAuLi5fY29udGV4dCwgZXZlbnQsIHVpUHJvcHMgfVxuICAgICAgICAvLyBjb25zb2xlLmxvZygnY2xpY2snLCAoPGFueT5ldmVudCkuYnV0dG9uLCBldmVudClcbiAgICAgICAgLy8gaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgLy8gICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIC8vICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgLy8gfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9hY3Rpb25IZWxwZXIuZXhlYyh1aVByb3BzLl9hY3Rpb25EZWYsIGNvbnRleHQpXG4gICAgICB9KSxcbiAgICAgIG1hcFRvKHVuZGVmaW5lZClcbiAgICApXG4gIH1cblxuICBwcml2YXRlIF91bnN1YkNsaWNrKCkge1xuICAgIGlmICh0aGlzLl9jbGlja1N1YnNjcmlwdGlvbiAmJiAhdGhpcy5fY2xpY2tTdWJzY3JpcHRpb24uY2xvc2VkKSB7XG4gICAgICB0aGlzLl9jbGlja1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0QXR0cihhdHRyOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBhdHRyLCB2YWx1ZSlcbiAgfVxuXG4gIHByaXZhdGUgX3RyeUluaXRUYWJJbmRleCgpIHtcbiAgICBpZiAoZ2V0QXR0cmlidXRlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3RhYmluZGV4JykgPT09IG51bGwpIHtcbiAgICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICd0YWJpbmRleCcsICcwJylcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF90cnlJbml0QmxvY2tDbGljayhcbiAgICByZWNvcmQ6IER5bmFtaWNEYXRhdGFibGVBY3Rpb25NZW51UmVjb3JkLFxuICAgIHVpUHJvcHM6IER5bmFtaWNBY3Rpb25VaURlZlxuICApIHtcbiAgICB0aGlzLl91bnN1YkNsaWNrKClcbiAgICBpZiAoaGFzUHJvcGVydHkodWlQcm9wcywgJ2Jsb2NrQ2xpY2tFeHByJykpIHtcbiAgICAgIHRoaXMuX2NsaWNrU3Vic2NyaXB0aW9uID0gdGhpcy5fYmxvY2tDbGlja0V4cHJPYnNlcnZhYmxlKHVpUHJvcHMsIHJlY29yZCkuc3Vic2NyaWJlKClcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9ibG9ja0NsaWNrRXhwck9ic2VydmFibGUoXG4gICAgdWlQcm9wczogRHluYW1pY0FjdGlvblVpRGVmLFxuICAgIHJlY29yZDogRHluYW1pY0RhdGF0YWJsZUFjdGlvbk1lbnVSZWNvcmRcbiAgKSB7XG4gICAgcmV0dXJuIGZyb21FdmVudCh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdjbGljaycpLnBpcGUoXG4gICAgICB0YXAoZXZlbnQgPT4ge1xuICAgICAgICBjb25zdCBfY29udGV4dCA9IHRoaXMuX2dldENvbnRleHQocmVjb3JkLl9yb3csIHJlY29yZC5yb3dBY3Rpb24pXG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSB7IC4uLl9jb250ZXh0LCBldmVudCwgdWlQcm9wcyB9XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX3ZhbHVlSGVscGVyLmV2YWxTeW5jKHVpUHJvcHMuYmxvY2tDbGlja0V4cHIsIGNvbnRleHQpXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdjbGljaycsIHJlc3VsdCwgKDxhbnk+ZXZlbnQpLmJ1dHRvbiwgZXZlbnQpXG4gICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgbWFwVG8odW5kZWZpbmVkKVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRNZW51SXRlbVJvdXRlckxpbmsoXG4gICAgcmVjb3JkOiBEeW5hbWljRGF0YXRhYmxlQWN0aW9uTWVudVJlY29yZCxcbiAgICB1aVByb3BzOiBEeW5hbWljQWN0aW9uVWlBbmNob3JEZWZcbiAgKSB7XG4gICAgdGhpcy5fbWVudVJvdXRlckxpbmsgPSBuZXcgRGF0YXRhYmxlRHluYW1pY0FjdGlvbk1lbnVJdGVtUm91dGVyTGluayhcbiAgICAgIHRoaXMuX3JvdXRlcixcbiAgICAgIHRoaXMuX3JvdXRlLFxuICAgICAgZ2V0QXR0cmlidXRlKHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3RhYmluZGV4JyksXG4gICAgICB0aGlzLl9yZW5kZXJlcixcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYsXG4gICAgICB0aGlzLl9sb2NhdGlvblN0cmF0ZWd5XG4gICAgKVxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuX21lbnVSb3V0ZXJMaW5rKVxuXG4gICAgdGhpcy5fbWVudVJvdXRlckxpbmsucm91dGVyTGlua0lucHV0ID0gdWlQcm9wcy5saW5rVXJsIGFzIHN0cmluZ1xuXG4gICAgaWYgKGhhc1Byb3BlcnR5KHVpUHJvcHMsICdsaW5rRXh0cmFzJykpIHtcbiAgICAgIGlmIChoYXNQcm9wZXJ0eSh1aVByb3BzLmxpbmtFeHRyYXMsICd0YXJnZXQnKSkge1xuICAgICAgICB0aGlzLl9tZW51Um91dGVyTGluay50YXJnZXQgPSB1aVByb3BzLmxpbmtFeHRyYXMudGFyZ2V0XG4gICAgICB9XG4gICAgICBpZiAoaGFzUHJvcGVydHkodWlQcm9wcy5saW5rRXh0cmFzLCAncXVlcnlQYXJhbXMnKSkge1xuICAgICAgICB0aGlzLl9tZW51Um91dGVyTGluay5xdWVyeVBhcmFtcyA9IHVpUHJvcHMubGlua0V4dHJhcy5xdWVyeVBhcmFtc1xuICAgICAgfVxuICAgICAgaWYgKGhhc1Byb3BlcnR5KHVpUHJvcHMubGlua0V4dHJhcywgJ2ZyYWdtZW50JykpIHtcbiAgICAgICAgdGhpcy5fbWVudVJvdXRlckxpbmsuZnJhZ21lbnQgPSB1aVByb3BzLmxpbmtFeHRyYXMuZnJhZ21lbnRcbiAgICAgIH1cbiAgICAgIGlmIChoYXNQcm9wZXJ0eSh1aVByb3BzLmxpbmtFeHRyYXMsICdxdWVyeVBhcmFtc0hhbmRsaW5nJykpIHtcbiAgICAgICAgdGhpcy5fbWVudVJvdXRlckxpbmsucXVlcnlQYXJhbXNIYW5kbGluZyA9IHVpUHJvcHMubGlua0V4dHJhcy5xdWVyeVBhcmFtc0hhbmRsaW5nXG4gICAgICB9XG4gICAgICBpZiAoaGFzUHJvcGVydHkodWlQcm9wcy5saW5rRXh0cmFzLCAncHJlc2VydmVGcmFnbWVudCcpKSB7XG4gICAgICAgIHRoaXMuX21lbnVSb3V0ZXJMaW5rLnByZXNlcnZlRnJhZ21lbnQgPSB1aVByb3BzLmxpbmtFeHRyYXMucHJlc2VydmVGcmFnbWVudFxuICAgICAgfVxuICAgICAgaWYgKGhhc1Byb3BlcnR5KHVpUHJvcHMubGlua0V4dHJhcywgJ3NraXBMb2NhdGlvbkNoYW5nZScpKSB7XG4gICAgICAgIHRoaXMuX21lbnVSb3V0ZXJMaW5rLnNraXBMb2NhdGlvbkNoYW5nZSA9IHVpUHJvcHMubGlua0V4dHJhcy5za2lwTG9jYXRpb25DaGFuZ2VcbiAgICAgIH1cbiAgICAgIGlmIChoYXNQcm9wZXJ0eSh1aVByb3BzLmxpbmtFeHRyYXMsICdyZXBsYWNlVXJsJykpIHtcbiAgICAgICAgdGhpcy5fbWVudVJvdXRlckxpbmsucmVwbGFjZVVybCA9IHVpUHJvcHMubGlua0V4dHJhcy5yZXBsYWNlVXJsXG4gICAgICB9XG4gICAgICBpZiAoaGFzUHJvcGVydHkodWlQcm9wcy5saW5rRXh0cmFzLCAnc3RhdGUnKSkge1xuICAgICAgICB0aGlzLl9tZW51Um91dGVyTGluay5zdGF0ZSA9IHVpUHJvcHMubGlua0V4dHJhcy5zdGF0ZVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubmdPbkNoYW5nZXMoe30pXG4gIH1cblxuICBwcml2YXRlIF9pc0FuY2hvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdhJ1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VWlQcm9wcyhyZWNvcmQ6IER5bmFtaWNEYXRhdGFibGVBY3Rpb25NZW51UmVjb3JkKTogUHJvbWlzZTxEeW5hbWljQWN0aW9uVWlEZWY+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5fZ2V0Q29udGV4dChyZWNvcmQuX3JvdywgcmVjb3JkLnJvd0FjdGlvbilcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uSGVscGVyLmdldFVpUHJvcHMocmVjb3JkLnJvd0FjdGlvbi5hY3Rpb24sIGNvbnRleHQpXG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9nZXRDb250ZXh0KHJvdzogRHluYW1pY0RhdGF0YWJsZVJvdywgcm93QWN0aW9uRGVmOiBEeW5hbWljRGF0YXRhYmxlUm93QWN0aW9uKTogRHluYW1pY0RhdGF0YWJsZVJvd0FjdGlvbkNvbnRleHQge1xuICAgIHJldHVybiB7XG4gICAgICByb3dcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zZXRJbnZhbGlkQWN0aW9uU3RhdGUoaW52YWxpZDogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgIHRvZ2dsZUF0dHJpYnV0ZShlbGVtZW50LCAnZGlzYWJsZWQnLCBpbnZhbGlkKVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -19,8 +19,8 @@ export class DynamicDatatableDefService {
|
|
|
19
19
|
this._dataExporters = (dataExporters || []);
|
|
20
20
|
this._dataFilters = (dataFilters || []);
|
|
21
21
|
this.def$ = this._defSubject.asObservable();
|
|
22
|
-
this.exporters$ = this.def$.pipe(map(def =>
|
|
23
|
-
this.filterMenuItems$ = this.def$.pipe(map(def =>
|
|
22
|
+
this.exporters$ = this.def$.pipe(map(def => def ? this._mapExporters(def) : []), shareReplay({ bufferSize: 1, refCount: true }));
|
|
23
|
+
this.filterMenuItems$ = this.def$.pipe(map(def => def ? this._mapFilterMenuItems(def) : []), shareReplay({ bufferSize: 1, refCount: true }));
|
|
24
24
|
this.hasFilterMenu$ = this.def$.pipe(switchMap(def => {
|
|
25
25
|
if (!def) {
|
|
26
26
|
return of(false);
|
|
@@ -38,7 +38,7 @@ export class DynamicDatatableDefService {
|
|
|
38
38
|
this.filterMenuItems$.pipe(map(f => f.length > 0))
|
|
39
39
|
]).pipe(map(v => v.indexOf(true) !== -1));
|
|
40
40
|
}), shareReplay({ bufferSize: 1, refCount: true }));
|
|
41
|
-
this.options$ = this.def$.pipe(map(def =>
|
|
41
|
+
this.options$ = this.def$.pipe(map(def => def ? def.options : undefined), shareReplay({ bufferSize: 1, refCount: true }));
|
|
42
42
|
this.menuBar$ = this.def$.pipe(map(def => (notNullOrUndefined(def) && hasProperty(def, 'menuBar')) ? def.menuBar : undefined),
|
|
43
43
|
// tap(v => console.log('menubar', v)),
|
|
44
44
|
shareReplay({ bufferSize: 1, refCount: true }));
|
|
@@ -74,9 +74,9 @@ export class DynamicDatatableDefService {
|
|
|
74
74
|
.filter(notNullOrUndefined);
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
-
DynamicDatatableDefService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
78
|
-
DynamicDatatableDefService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
79
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
77
|
+
DynamicDatatableDefService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicDatatableDefService, deps: [{ token: THESEAM_DATA_EXPORTER }, { token: THESEAM_DATA_FILTER_DEF }, { token: i1.DynamicValueHelperService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
78
|
+
DynamicDatatableDefService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicDatatableDefService });
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicDatatableDefService, decorators: [{
|
|
80
80
|
type: Injectable
|
|
81
81
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
82
82
|
type: Inject,
|
|
@@ -85,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
|
|
|
85
85
|
type: Inject,
|
|
86
86
|
args: [THESEAM_DATA_FILTER_DEF]
|
|
87
87
|
}] }, { type: i1.DynamicValueHelperService }]; } });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1kYXRhdGFibGUtZGVmLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlLWR5bmFtaWMvZHluYW1pYy1kYXRhdGFibGUtZGVmLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3JFLE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTVELE9BQU8sRUFBaUIscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQUN2RixPQUFPLEVBQWUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUV0RixPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFNMUUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sZUFBZSxDQUFBOzs7QUFFOUQ7OztHQUdHO0FBRUgsTUFBTSxPQUFPLDBCQUEwQjtJQTRDckMsWUFDaUMsYUFBOEIsRUFDNUIsV0FBc0UsRUFDL0YsWUFBdUM7UUFBdkMsaUJBQVksR0FBWixZQUFZLENBQTJCO1FBakNqRCxjQUFjO1FBQ0csZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBa0MsU0FBUyxDQUFDLENBQUE7UUFrQzVGLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLENBQUE7UUFDM0MsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUV2QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUE7UUFFM0Ms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QUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUM1RCxJQUFJLEdBQUcsRUFBRTtnQkFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQTthQUFFO1FBQ3hELENBQUMsQ0FBQzthQUNELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO0lBQy9CLENBQUM7O3VIQTlIVSwwQkFBMEIsa0JBNkMzQixxQkFBcUIsYUFDckIsdUJBQXVCOzJIQTlDdEIsMEJBQTBCOzJGQUExQiwwQkFBMEI7a0JBRHRDLFVBQVU7OzBCQThDTixNQUFNOzJCQUFDLHFCQUFxQjs7MEJBQzVCLE1BQU07MkJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgSURhdGFFeHBvcnRlciwgVEhFU0VBTV9EQVRBX0VYUE9SVEVSIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2RhdGEtZXhwb3J0ZXInXG5pbXBvcnQgeyBJRGF0YUZpbHRlciwgVEhFU0VBTV9EQVRBX0ZJTFRFUl9ERUYgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vZGF0YS1maWx0ZXJzJ1xuaW1wb3J0IHsgRHluYW1pY1ZhbHVlSGVscGVyU2VydmljZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9keW5hbWljJ1xuaW1wb3J0IHsgaGFzUHJvcGVydHksIG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuaW1wb3J0IHsgRHluYW1pY0RhdGF0YWJsZU9wdGlvbnMgfSBmcm9tICcuL2RhdGF0YWJsZS1keW5hbWljLWRlZidcbmltcG9ydCB7IERhdGF0YWJsZUR5bmFtaWNEZWYgfSBmcm9tICcuL2RhdGF0YWJsZS1keW5hbWljLWRlZidcbmltcG9ydCB7IER5bmFtaWNEYXRhdGFibGVNZW51QmFyIH0gZnJvbSAnLi9tb2RlbHMvZHluYW1pYy1kYXRhdGFibGUtbWVudS1iYXInXG5pbXBvcnQgeyBEeW5hbWljRGF0YXRhYmxlRmlsdGVyTWVudUl0ZW0gfSBmcm9tICcuL21vZGVscy9pbmRleCdcbmltcG9ydCB7IHNldER5bmFtaWNEYXRhdGFibGVEZWZEZWZhdWx0cyB9IGZyb20gJy4vdXRpbHMvaW5kZXgnXG5cbi8qKlxuICogTWFuYWdlcyB0aGUgZGF0YSBkZWZpbmVkIGluIHRoZSBgRGF0YXRhYmxlRHluYW1pY0RlZmAuIFNpbXBsaWZpZXMgYWNjZXNzaW5nXG4gKiBhbmQgb2JzZXJ2aW5nIHRoZSBuZWVkZWQgZGF0YSBiYXNlZCBvbiB0aGUgYERhdGF0YWJsZUR5bmFtaWNEZWZgLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRHluYW1pY0RhdGF0YWJsZURlZlNlcnZpY2Uge1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIF9kYXRhRXhwb3J0ZXJzOiBJRGF0YUV4cG9ydGVyW11cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBfZGF0YUZpbHRlcnM6IHsgbmFtZTogc3RyaW5nLCBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8SURhdGFGaWx0ZXI+IH1bXVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlZlN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGF0YWJsZUR5bmFtaWNEZWYgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcblxuICAvKiogRHluYW1pYyBkYXRhdGFibGUgZGVmaW5pdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlZiQ6IE9ic2VydmFibGU8RGF0YXRhYmxlRHluYW1pY0RlZiB8IHVuZGVmaW5lZD5cblxuICAvKipcbiAgICogRXhwb3J0ZXJzIGluIHRoZSBkZWYgdGhhdCBhcmUgYXZhaWxhYmxlLlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGV4cG9ydGVycyQ6IE9ic2VydmFibGU8SURhdGFFeHBvcnRlcltdPlxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgbWVudSBpdGVtcyBpbiB0aGUgZGVmIHRoYXQgYXJlIGF2YWlsYWJsZS5cbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmaWx0ZXJNZW51SXRlbXMkOiBPYnNlcnZhYmxlPER5bmFtaWNEYXRhdGFibGVGaWx0ZXJNZW51SXRlbVtdPlxuXG4gIC8qKlxuICAgKiBPYnNlcnZlcyB3aGV0aGVyIHRoZSBkYXRhdGFibGUgaGFzIGEgZmlsdGVyIG1lbnUuXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaGFzRmlsdGVyTWVudSQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cblxuICAvKiogT2JzZXJ2ZXMgZGF0YXRhYmxlIG9wdGlvbnMuICovXG4gIHB1YmxpYyByZWFkb25seSBvcHRpb25zJDogT2JzZXJ2YWJsZTxEeW5hbWljRGF0YXRhYmxlT3B0aW9ucyB8IHVuZGVmaW5lZD5cblxuICAvKiogT2JzZXJ2ZXMgdGhlIGRhdGF0YWJsZSBkZWYgbWVudSBiYXIuICovXG4gIHB1YmxpYyByZWFkb25seSBtZW51QmFyJDogT2JzZXJ2YWJsZTxEeW5hbWljRGF0YXRhYmxlTWVudUJhciB8IHVuZGVmaW5lZD5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFRIRVNFQU1fREFUQV9FWFBPUlRFUikgZGF0YUV4cG9ydGVyczogSURhdGFFeHBvcnRlcltdLFxuICAgIEBJbmplY3QoVEhFU0VBTV9EQVRBX0ZJTFRFUl9ERUYpIGRhdGFGaWx0ZXJzOiB7IG5hbWU6IHN0cmluZywgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPElEYXRhRmlsdGVyPiB9W10sXG4gICAgcHJpdmF0ZSBfdmFsdWVIZWxwZXI6IER5bmFtaWNWYWx1ZUhlbHBlclNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuX2RhdGFFeHBvcnRlcnMgPSAoZGF0YUV4cG9ydGVycyB8fCBbXSlcbiAgICB0aGlzLl9kYXRhRmlsdGVycyA9IChkYXRhRmlsdGVycyB8fCBbXSlcblxuICAgIHRoaXMuZGVmJCA9IHRoaXMuX2RlZlN1YmplY3QuYXNPYnNlcnZhYmxlKClcblxuICAgIHRoaXMuZXhwb3J0ZXJzJCA9IHRoaXMuZGVmJC5waXBlKFxuICAgICAgbWFwKGRlZiA9PiAhIWRlZiA/IHRoaXMuX21hcEV4cG9ydGVycyhkZWYpIDogW10pLFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KVxuICAgIClcblxuICAgIHRoaXMuZmlsdGVyTWVudUl0ZW1zJCA9IHRoaXMuZGVmJC5waXBlKFxuICAgICAgbWFwKGRlZiA9PiAhIWRlZiA/IHRoaXMuX21hcEZpbHRlck1lbnVJdGVtcyhkZWYpIDogW10pLFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KVxuICAgIClcblxuICAgIHRoaXMuaGFzRmlsdGVyTWVudSQgPSB0aGlzLmRlZiQucGlwZShcbiAgICAgIHN3aXRjaE1hcChkZWYgPT4ge1xuICAgICAgICBpZiAoIWRlZikgeyByZXR1cm4gb2YoZmFsc2UpIH1cblxuICAgICAgICAvLyBDaGVjayBpZiB0aGUgdmlzaWJpbGl0eSBjYW4gYmUgZGV0ZXJtaW5lZCBieSB0aGUgc3RhdGUgdmFsdWUgb25seS5cbiAgICAgICAgaWYgKGRlZi5maWx0ZXJNZW51ICYmIGRlZi5maWx0ZXJNZW51LnN0YXRlKSB7XG4gICAgICAgICAgc3dpdGNoIChkZWYuZmlsdGVyTWVudS5zdGF0ZSkge1xuICAgICAgICAgICAgY2FzZSAnYWx3YXlzLXZpc2libGUnOiByZXR1cm4gb2YodHJ1ZSlcbiAgICAgICAgICAgIGNhc2UgJ2hpZGRlbic6IHJldHVybiBvZihmYWxzZSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBpZiB0aGVyZSBpcyBhbnl0aGluZyB0byBwdXQgaW4gdGhlIGZpbHRlciBtZW51LlxuICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgdGhpcy5leHBvcnRlcnMkLnBpcGUobWFwKGUgPT4gZS5sZW5ndGggPiAwKSksXG4gICAgICAgICAgdGhpcy5maWx0ZXJNZW51SXRlbXMkLnBpcGUobWFwKGYgPT4gZi5sZW5ndGggPiAwKSlcbiAgICAgICAgXSkucGlwZShtYXAodiA9PiB2LmluZGV4T2YodHJ1ZSkgIT09IC0xKSlcbiAgICAgIH0pLFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KVxuICAgIClcblxuICAgIHRoaXMub3B0aW9ucyQgPSB0aGlzLmRlZiQucGlwZShcbiAgICAgIG1hcChkZWYgPT4gISFkZWYgPyBkZWYub3B0aW9ucyA6IHVuZGVmaW5lZCksXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgKVxuXG4gICAgdGhpcy5tZW51QmFyJCA9IHRoaXMuZGVmJC5waXBlKFxuICAgICAgbWFwKGRlZiA9PiAobm90TnVsbE9yVW5kZWZpbmVkKGRlZikgJiYgaGFzUHJvcGVydHkoZGVmLCAnbWVudUJhcicpKSA/IGRlZi5tZW51QmFyIDogdW5kZWZpbmVkKSxcbiAgICAgIC8vIHRhcCh2ID0+IGNvbnNvbGUubG9nKCdtZW51YmFyJywgdikpLFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KVxuICAgIClcbiAgfVxuXG4gIC8qKiBTZXRzIHRoZSBgRGF0YXRhYmxlRHluYW1pY0RlZmAgdGhhdCBkZWZpbmVzIHRoZSBkYXRhdGFibGUuICAqL1xuICBwdWJsaWMgc2V0RGVmKGRlZjogRGF0YXRhYmxlRHluYW1pY0RlZiB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGlmIChkZWYpIHsgc2V0RHluYW1pY0RhdGF0YWJsZURlZkRlZmF1bHRzKGRlZikgfVxuICAgIHRoaXMuX2RlZlN1YmplY3QubmV4dChkZWYgfHwgdW5kZWZpbmVkKVxuICB9XG5cbiAgLyoqIE1hcCB0aGUgZGVmIGV4cG9ydGVycyB0byB0aGUgcHJvdmlkZWQgYElEYXRhRXhwb3J0ZXJgIG9iamVjdHMuICovXG4gIHByaXZhdGUgX21hcEV4cG9ydGVycyhkZWY6IERhdGF0YWJsZUR5bmFtaWNEZWYpOiBJRGF0YUV4cG9ydGVyW10ge1xuICAgIGlmICghZGVmLmZpbHRlck1lbnUgfHwgIUFycmF5LmlzQXJyYXkoZGVmLmZpbHRlck1lbnUuZXhwb3J0ZXJzKSkge1xuICAgICAgcmV0dXJuIFtdXG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZi5maWx0ZXJNZW51LmV4cG9ydGVyc1xuICAgICAgLm1hcChlID0+IHRoaXMuX2RhdGFFeHBvcnRlcnMuZmluZChkZSA9PiBkZS5uYW1lID09PSBlKSlcbiAgICAgIC5maWx0ZXIobm90TnVsbE9yVW5kZWZpbmVkKVxuICB9XG5cbiAgLyoqIE1hcCB0aGUgZGVmIGZpbHRlciBtZW51IGl0ZW1zIHRvIHByb3ZpZGVkIGNvbXBvbmVudHMuICovXG4gIHByaXZhdGUgX21hcEZpbHRlck1lbnVJdGVtcyhkZWY6IERhdGF0YWJsZUR5bmFtaWNEZWYpOiBEeW5hbWljRGF0YXRhYmxlRmlsdGVyTWVudUl0ZW1bXSB7XG4gICAgaWYgKCFkZWYuZmlsdGVyTWVudSB8fCAhZGVmLmZpbHRlck1lbnUuZmlsdGVycyB8fCAhQXJyYXkuaXNBcnJheShkZWYuZmlsdGVyTWVudS5maWx0ZXJzKSkge1xuICAgICAgcmV0dXJuIFtdXG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZi5maWx0ZXJNZW51LmZpbHRlcnNcbiAgICAgIC5tYXAoZiA9PiB7XG4gICAgICAgIGNvbnN0IF9kZiA9IHRoaXMuX2RhdGFGaWx0ZXJzLmZpbmQoZGYgPT4gZGYubmFtZSA9PT0gZi5uYW1lKVxuICAgICAgICBpZiAoX2RmKSB7IHJldHVybiB7IC4uLmYsIGNvbXBvbmVudDogX2RmLmNvbXBvbmVudCB9IH1cbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKG5vdE51bGxPclVuZGVmaW5lZClcbiAgfVxuXG59XG4iXX0=
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1kYXRhdGFibGUtZGVmLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZGF0YXRhYmxlLWR5bmFtaWMvZHluYW1pYy1kYXRhdGFibGUtZGVmLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3JFLE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTVELE9BQU8sRUFBaUIscUJBQXFCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQUN2RixPQUFPLEVBQWUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUV0RixPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFNMUUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sZUFBZSxDQUFBOzs7QUFFOUQ7OztHQUdHO0FBRUgsTUFBTSxPQUFPLDBCQUEwQjtJQTRDckMsWUFDaUMsYUFBOEIsRUFDNUIsV0FBc0UsRUFDL0YsWUFBdUM7UUFBdkMsaUJBQVksR0FBWixZQUFZLENBQTJCO1FBakNqRCxjQUFjO1FBQ0csZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBa0MsU0FBUyxDQUFDLENBQUE7UUFrQzVGLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLENBQUE7UUFDM0MsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUV2QyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUE7UUFFM0Ms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QUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUM1RCxJQUFJLEdBQUcsRUFBRTtnQkFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQTthQUFFO1FBQ3hELENBQUMsQ0FBQzthQUNELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFBO0lBQy9CLENBQUM7O3VIQTlIVSwwQkFBMEIsa0JBNkMzQixxQkFBcUIsYUFDckIsdUJBQXVCOzJIQTlDdEIsMEJBQTBCOzJGQUExQiwwQkFBMEI7a0JBRHRDLFVBQVU7OzBCQThDTixNQUFNOzJCQUFDLHFCQUFxQjs7MEJBQzVCLE1BQU07MkJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgSURhdGFFeHBvcnRlciwgVEhFU0VBTV9EQVRBX0VYUE9SVEVSIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2RhdGEtZXhwb3J0ZXInXG5pbXBvcnQgeyBJRGF0YUZpbHRlciwgVEhFU0VBTV9EQVRBX0ZJTFRFUl9ERUYgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vZGF0YS1maWx0ZXJzJ1xuaW1wb3J0IHsgRHluYW1pY1ZhbHVlSGVscGVyU2VydmljZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9keW5hbWljJ1xuaW1wb3J0IHsgaGFzUHJvcGVydHksIG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuaW1wb3J0IHsgRHluYW1pY0RhdGF0YWJsZU9wdGlvbnMgfSBmcm9tICcuL2RhdGF0YWJsZS1keW5hbWljLWRlZidcbmltcG9ydCB7IERhdGF0YWJsZUR5bmFtaWNEZWYgfSBmcm9tICcuL2RhdGF0YWJsZS1keW5hbWljLWRlZidcbmltcG9ydCB7IER5bmFtaWNEYXRhdGFibGVNZW51QmFyIH0gZnJvbSAnLi9tb2RlbHMvZHluYW1pYy1kYXRhdGFibGUtbWVudS1iYXInXG5pbXBvcnQgeyBEeW5hbWljRGF0YXRhYmxlRmlsdGVyTWVudUl0ZW0gfSBmcm9tICcuL21vZGVscy9pbmRleCdcbmltcG9ydCB7IHNldER5bmFtaWNEYXRhdGFibGVEZWZEZWZhdWx0cyB9IGZyb20gJy4vdXRpbHMvaW5kZXgnXG5cbi8qKlxuICogTWFuYWdlcyB0aGUgZGF0YSBkZWZpbmVkIGluIHRoZSBgRGF0YXRhYmxlRHluYW1pY0RlZmAuIFNpbXBsaWZpZXMgYWNjZXNzaW5nXG4gKiBhbmQgb2JzZXJ2aW5nIHRoZSBuZWVkZWQgZGF0YSBiYXNlZCBvbiB0aGUgYERhdGF0YWJsZUR5bmFtaWNEZWZgLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRHluYW1pY0RhdGF0YWJsZURlZlNlcnZpY2Uge1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIF9kYXRhRXhwb3J0ZXJzOiBJRGF0YUV4cG9ydGVyW11cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWRcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBfZGF0YUZpbHRlcnM6IHsgbmFtZTogc3RyaW5nLCBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8SURhdGFGaWx0ZXI+IH1bXVxuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlZlN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERhdGF0YWJsZUR5bmFtaWNEZWYgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZClcblxuICAvKiogRHluYW1pYyBkYXRhdGFibGUgZGVmaW5pdGlvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlZiQ6IE9ic2VydmFibGU8RGF0YXRhYmxlRHluYW1pY0RlZiB8IHVuZGVmaW5lZD5cblxuICAvKipcbiAgICogRXhwb3J0ZXJzIGluIHRoZSBkZWYgdGhhdCBhcmUgYXZhaWxhYmxlLlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGV4cG9ydGVycyQ6IE9ic2VydmFibGU8SURhdGFFeHBvcnRlcltdPlxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgbWVudSBpdGVtcyBpbiB0aGUgZGVmIHRoYXQgYXJlIGF2YWlsYWJsZS5cbiAgICogQGRlcHJlY2F0ZWRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmaWx0ZXJNZW51SXRlbXMkOiBPYnNlcnZhYmxlPER5bmFtaWNEYXRhdGFibGVGaWx0ZXJNZW51SXRlbVtdPlxuXG4gIC8qKlxuICAgKiBPYnNlcnZlcyB3aGV0aGVyIHRoZSBkYXRhdGFibGUgaGFzIGEgZmlsdGVyIG1lbnUuXG4gICAqIEBkZXByZWNhdGVkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaGFzRmlsdGVyTWVudSQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cblxuICAvKiogT2JzZXJ2ZXMgZGF0YXRhYmxlIG9wdGlvbnMuICovXG4gIHB1YmxpYyByZWFkb25seSBvcHRpb25zJDogT2JzZXJ2YWJsZTxEeW5hbWljRGF0YXRhYmxlT3B0aW9ucyB8IHVuZGVmaW5lZD5cblxuICAvKiogT2JzZXJ2ZXMgdGhlIGRhdGF0YWJsZSBkZWYgbWVudSBiYXIuICovXG4gIHB1YmxpYyByZWFkb25seSBtZW51QmFyJDogT2JzZXJ2YWJsZTxEeW5hbWljRGF0YXRhYmxlTWVudUJhciB8IHVuZGVmaW5lZD5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFRIRVNFQU1fREFUQV9FWFBPUlRFUikgZGF0YUV4cG9ydGVyczogSURhdGFFeHBvcnRlcltdLFxuICAgIEBJbmplY3QoVEhFU0VBTV9EQVRBX0ZJTFRFUl9ERUYpIGRhdGFGaWx0ZXJzOiB7IG5hbWU6IHN0cmluZywgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPElEYXRhRmlsdGVyPiB9W10sXG4gICAgcHJpdmF0ZSBfdmFsdWVIZWxwZXI6IER5bmFtaWNWYWx1ZUhlbHBlclNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuX2RhdGFFeHBvcnRlcnMgPSAoZGF0YUV4cG9ydGVycyB8fCBbXSlcbiAgICB0aGlzLl9kYXRhRmlsdGVycyA9IChkYXRhRmlsdGVycyB8fCBbXSlcblxuICAgIHRoaXMuZGVmJCA9IHRoaXMuX2RlZlN1YmplY3QuYXNPYnNlcnZhYmxlKClcblxuICAgIHRoaXMuZXhwb3J0ZXJzJCA9IHRoaXMuZGVmJC5waXBlKFxuICAgICAgbWFwKGRlZiA9PiBkZWYgPyB0aGlzLl9tYXBFeHBvcnRlcnMoZGVmKSA6IFtdKSxcbiAgICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSlcbiAgICApXG5cbiAgICB0aGlzLmZpbHRlck1lbnVJdGVtcyQgPSB0aGlzLmRlZiQucGlwZShcbiAgICAgIG1hcChkZWYgPT4gZGVmID8gdGhpcy5fbWFwRmlsdGVyTWVudUl0ZW1zKGRlZikgOiBbXSksXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgKVxuXG4gICAgdGhpcy5oYXNGaWx0ZXJNZW51JCA9IHRoaXMuZGVmJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKGRlZiA9PiB7XG4gICAgICAgIGlmICghZGVmKSB7IHJldHVybiBvZihmYWxzZSkgfVxuXG4gICAgICAgIC8vIENoZWNrIGlmIHRoZSB2aXNpYmlsaXR5IGNhbiBiZSBkZXRlcm1pbmVkIGJ5IHRoZSBzdGF0ZSB2YWx1ZSBvbmx5LlxuICAgICAgICBpZiAoZGVmLmZpbHRlck1lbnUgJiYgZGVmLmZpbHRlck1lbnUuc3RhdGUpIHtcbiAgICAgICAgICBzd2l0Y2ggKGRlZi5maWx0ZXJNZW51LnN0YXRlKSB7XG4gICAgICAgICAgICBjYXNlICdhbHdheXMtdmlzaWJsZSc6IHJldHVybiBvZih0cnVlKVxuICAgICAgICAgICAgY2FzZSAnaGlkZGVuJzogcmV0dXJuIG9mKGZhbHNlKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENoZWNrIGlmIHRoZXJlIGlzIGFueXRoaW5nIHRvIHB1dCBpbiB0aGUgZmlsdGVyIG1lbnUuXG4gICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICB0aGlzLmV4cG9ydGVycyQucGlwZShtYXAoZSA9PiBlLmxlbmd0aCA+IDApKSxcbiAgICAgICAgICB0aGlzLmZpbHRlck1lbnVJdGVtcyQucGlwZShtYXAoZiA9PiBmLmxlbmd0aCA+IDApKVxuICAgICAgICBdKS5waXBlKG1hcCh2ID0+IHYuaW5kZXhPZih0cnVlKSAhPT0gLTEpKVxuICAgICAgfSksXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgKVxuXG4gICAgdGhpcy5vcHRpb25zJCA9IHRoaXMuZGVmJC5waXBlKFxuICAgICAgbWFwKGRlZiA9PiBkZWYgPyBkZWYub3B0aW9ucyA6IHVuZGVmaW5lZCksXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgKVxuXG4gICAgdGhpcy5tZW51QmFyJCA9IHRoaXMuZGVmJC5waXBlKFxuICAgICAgbWFwKGRlZiA9PiAobm90TnVsbE9yVW5kZWZpbmVkKGRlZikgJiYgaGFzUHJvcGVydHkoZGVmLCAnbWVudUJhcicpKSA/IGRlZi5tZW51QmFyIDogdW5kZWZpbmVkKSxcbiAgICAgIC8vIHRhcCh2ID0+IGNvbnNvbGUubG9nKCdtZW51YmFyJywgdikpLFxuICAgICAgc2hhcmVSZXBsYXkoeyBidWZmZXJTaXplOiAxLCByZWZDb3VudDogdHJ1ZSB9KVxuICAgIClcbiAgfVxuXG4gIC8qKiBTZXRzIHRoZSBgRGF0YXRhYmxlRHluYW1pY0RlZmAgdGhhdCBkZWZpbmVzIHRoZSBkYXRhdGFibGUuICAqL1xuICBwdWJsaWMgc2V0RGVmKGRlZjogRGF0YXRhYmxlRHluYW1pY0RlZiB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGlmIChkZWYpIHsgc2V0RHluYW1pY0RhdGF0YWJsZURlZkRlZmF1bHRzKGRlZikgfVxuICAgIHRoaXMuX2RlZlN1YmplY3QubmV4dChkZWYgfHwgdW5kZWZpbmVkKVxuICB9XG5cbiAgLyoqIE1hcCB0aGUgZGVmIGV4cG9ydGVycyB0byB0aGUgcHJvdmlkZWQgYElEYXRhRXhwb3J0ZXJgIG9iamVjdHMuICovXG4gIHByaXZhdGUgX21hcEV4cG9ydGVycyhkZWY6IERhdGF0YWJsZUR5bmFtaWNEZWYpOiBJRGF0YUV4cG9ydGVyW10ge1xuICAgIGlmICghZGVmLmZpbHRlck1lbnUgfHwgIUFycmF5LmlzQXJyYXkoZGVmLmZpbHRlck1lbnUuZXhwb3J0ZXJzKSkge1xuICAgICAgcmV0dXJuIFtdXG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZi5maWx0ZXJNZW51LmV4cG9ydGVyc1xuICAgICAgLm1hcChlID0+IHRoaXMuX2RhdGFFeHBvcnRlcnMuZmluZChkZSA9PiBkZS5uYW1lID09PSBlKSlcbiAgICAgIC5maWx0ZXIobm90TnVsbE9yVW5kZWZpbmVkKVxuICB9XG5cbiAgLyoqIE1hcCB0aGUgZGVmIGZpbHRlciBtZW51IGl0ZW1zIHRvIHByb3ZpZGVkIGNvbXBvbmVudHMuICovXG4gIHByaXZhdGUgX21hcEZpbHRlck1lbnVJdGVtcyhkZWY6IERhdGF0YWJsZUR5bmFtaWNEZWYpOiBEeW5hbWljRGF0YXRhYmxlRmlsdGVyTWVudUl0ZW1bXSB7XG4gICAgaWYgKCFkZWYuZmlsdGVyTWVudSB8fCAhZGVmLmZpbHRlck1lbnUuZmlsdGVycyB8fCAhQXJyYXkuaXNBcnJheShkZWYuZmlsdGVyTWVudS5maWx0ZXJzKSkge1xuICAgICAgcmV0dXJuIFtdXG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZi5maWx0ZXJNZW51LmZpbHRlcnNcbiAgICAgIC5tYXAoZiA9PiB7XG4gICAgICAgIGNvbnN0IF9kZiA9IHRoaXMuX2RhdGFGaWx0ZXJzLmZpbmQoZGYgPT4gZGYubmFtZSA9PT0gZi5uYW1lKVxuICAgICAgICBpZiAoX2RmKSB7IHJldHVybiB7IC4uLmYsIGNvbXBvbmVudDogX2RmLmNvbXBvbmVudCB9IH1cbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKG5vdE51bGxPclVuZGVmaW5lZClcbiAgfVxuXG59XG4iXX0=
|
|
@@ -14,9 +14,9 @@ export class DynamicDatatableRowActionsService {
|
|
|
14
14
|
* Observe actions for specified row
|
|
15
15
|
*/
|
|
16
16
|
rowActions(row) {
|
|
17
|
-
return this._dynamicDef.def$.pipe(map(def => (def && def.rowActions) ? def.rowActions || [] : []), switchMap(rowActions =>
|
|
17
|
+
return this._dynamicDef.def$.pipe(map(def => (def && def.rowActions) ? def.rowActions || [] : []), switchMap(rowActions => rowActions
|
|
18
18
|
? from(rowActions).pipe(map(rowAction => {
|
|
19
|
-
if (
|
|
19
|
+
if (Object.prototype.hasOwnProperty.call(rowAction, 'hidden')) {
|
|
20
20
|
if (typeof rowAction.hidden === 'boolean') {
|
|
21
21
|
return rowAction.hidden ? undefined : rowAction;
|
|
22
22
|
}
|
|
@@ -38,9 +38,9 @@ export class DynamicDatatableRowActionsService {
|
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
-
DynamicDatatableRowActionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
42
|
-
DynamicDatatableRowActionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
41
|
+
DynamicDatatableRowActionsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicDatatableRowActionsService, deps: [{ token: i1.DynamicValueHelperService }, { token: i2.DynamicDatatableDefService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
42
|
+
DynamicDatatableRowActionsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicDatatableRowActionsService });
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicDatatableRowActionsService, decorators: [{
|
|
44
44
|
type: Injectable
|
|
45
45
|
}], ctorParameters: function () { return [{ type: i1.DynamicValueHelperService }, { type: i2.DynamicDatatableDefService }]; } });
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1kYXRhdGFibGUtcm93LWFjdGlvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9kYXRhdGFibGUtZHluYW1pYy9keW5hbWljLWRhdGF0YWJsZS1yb3ctYWN0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDMUMsT0FBTyxFQUFFLElBQUksRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFHeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7Ozs7QUFRN0QsTUFBTSxPQUFPLGlDQUFpQztJQUU1QyxZQUNVLFlBQXVDLEVBQ3ZDLFdBQXVDO1FBRHZDLGlCQUFZLEdBQVosWUFBWSxDQUEyQjtRQUN2QyxnQkFBVyxHQUFYLFdBQVcsQ0FBNEI7SUFDN0MsQ0FBQztJQUVMOztPQUVHO0lBQ0ksVUFBVSxDQUFDLEdBQXdCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUMvQixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDL0QsU0FBUyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVTtZQUNoQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDckIsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUNkLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsRUFBRTtvQkFDN0QsSUFBSSxPQUFPLFNBQVMsQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFO3dCQUN6QyxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO3FCQUNoRDt5QkFBTTt3QkFDTCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFBO3dCQUN6RCx1QkFBdUI7d0JBQ3ZCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUE7d0JBQ3RFLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtxQkFDeEM7aUJBQ0Y7Z0JBQ0QsT0FBTyxTQUFTLENBQUE7WUFDbEIsQ0FBQyxDQUFDLEVBQ0YsT0FBTyxFQUFFLEVBQ1QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQ3ZDO1lBQ0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FDVCxDQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQsY0FBYztJQUNOLG9CQUFvQixDQUFDLEdBQXdCLEVBQUUsWUFBdUM7UUFDNUYsT0FBTztZQUNMLEdBQUc7U0FDSixDQUFBO0lBQ0gsQ0FBQzs7OEhBekNVLGlDQUFpQztrSUFBakMsaUNBQWlDOzJGQUFqQyxpQ0FBaUM7a0JBRDdDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IG1hcCwgc3dpdGNoTWFwLCB0b0FycmF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB7IER5bmFtaWNWYWx1ZUhlbHBlclNlcnZpY2UgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vZHluYW1pYydcbmltcG9ydCB7IG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuaW1wb3J0IHsgRHluYW1pY0RhdGF0YWJsZVJvdyB9IGZyb20gJy4vZGF0YXRhYmxlLWR5bmFtaWMtZGVmJ1xuaW1wb3J0IHsgRHluYW1pY0RhdGF0YWJsZURlZlNlcnZpY2UgfSBmcm9tICcuL2R5bmFtaWMtZGF0YXRhYmxlLWRlZi5zZXJ2aWNlJ1xuaW1wb3J0IHsgRHluYW1pY0RhdGF0YWJsZVJvd0FjdGlvbiB9IGZyb20gJy4vbW9kZWxzL2R5bmFtaWMtZGF0YXRhYmxlLXJvdy1hY3Rpb24nXG5pbXBvcnQgeyBEeW5hbWljRGF0YXRhYmxlUm93QWN0aW9uQ29udGV4dCB9IGZyb20gJy4vbW9kZWxzL2R5bmFtaWMtZGF0YXRhYmxlLXJvdy1hY3Rpb24tY29udGV4dCdcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIER5bmFtaWNEYXRhdGFibGVSb3dBY3Rpb25zU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfdmFsdWVIZWxwZXI6IER5bmFtaWNWYWx1ZUhlbHBlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfZHluYW1pY0RlZjogRHluYW1pY0RhdGF0YWJsZURlZlNlcnZpY2VcbiAgKSB7IH1cblxuICAvKipcbiAgICogT2JzZXJ2ZSBhY3Rpb25zIGZvciBzcGVjaWZpZWQgcm93XG4gICAqL1xuICBwdWJsaWMgcm93QWN0aW9ucyhyb3c6IER5bmFtaWNEYXRhdGFibGVSb3cpOiBPYnNlcnZhYmxlPER5bmFtaWNEYXRhdGFibGVSb3dBY3Rpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLl9keW5hbWljRGVmLmRlZiQucGlwZShcbiAgICAgIG1hcChkZWYgPT4gKGRlZiAmJiBkZWYucm93QWN0aW9ucykgPyBkZWYucm93QWN0aW9ucyB8fCBbXSA6IFtdKSxcbiAgICAgIHN3aXRjaE1hcChyb3dBY3Rpb25zID0+IHJvd0FjdGlvbnNcbiAgICAgICAgPyBmcm9tKHJvd0FjdGlvbnMpLnBpcGUoXG4gICAgICAgICAgbWFwKHJvd0FjdGlvbiA9PiB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHJvd0FjdGlvbiwgJ2hpZGRlbicpKSB7XG4gICAgICAgICAgICAgIGlmICh0eXBlb2Ygcm93QWN0aW9uLmhpZGRlbiA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJvd0FjdGlvbi5oaWRkZW4gPyB1bmRlZmluZWQgOiByb3dBY3Rpb25cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5fZ2V0Um93QWN0aW9uQ29udGV4dChyb3csIHJvd0FjdGlvbilcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBGaXggYXN5bmMgZXZhbFxuICAgICAgICAgICAgICAgIGNvbnN0IGlzSGlkZGVuID0gdGhpcy5fdmFsdWVIZWxwZXIuZXZhbFN5bmMocm93QWN0aW9uLmhpZGRlbiwgY29udGV4dClcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNIaWRkZW4gPyB1bmRlZmluZWQgOiByb3dBY3Rpb25cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJvd0FjdGlvblxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHRvQXJyYXkoKSxcbiAgICAgICAgICBtYXAodiA9PiB2LmZpbHRlcihub3ROdWxsT3JVbmRlZmluZWQpKVxuICAgICAgICApXG4gICAgICAgIDogb2YoW10pXG4gICAgICApXG4gICAgKVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfZ2V0Um93QWN0aW9uQ29udGV4dChyb3c6IER5bmFtaWNEYXRhdGFibGVSb3csIHJvd0FjdGlvbkRlZjogRHluYW1pY0RhdGF0YWJsZVJvd0FjdGlvbik6IER5bmFtaWNEYXRhdGFibGVSb3dBY3Rpb25Db250ZXh0IHtcbiAgICByZXR1cm4ge1xuICAgICAgcm93XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -83,13 +83,13 @@ export class DynamicActionApiService {
|
|
|
83
83
|
}
|
|
84
84
|
async _getBody(args, context) {
|
|
85
85
|
if (args.body !== undefined && args.body !== null) {
|
|
86
|
-
return
|
|
86
|
+
return this._valueHelper.eval(args.body, context);
|
|
87
87
|
}
|
|
88
88
|
return undefined;
|
|
89
89
|
}
|
|
90
90
|
async _getParams(args, context) {
|
|
91
91
|
if (args.params !== undefined && args.params !== null) {
|
|
92
|
-
return
|
|
92
|
+
return this._valueHelper.eval(args.params, context);
|
|
93
93
|
}
|
|
94
94
|
return undefined;
|
|
95
95
|
}
|
|
@@ -134,7 +134,7 @@ export class DynamicActionApiService {
|
|
|
134
134
|
headers[key] = value;
|
|
135
135
|
}
|
|
136
136
|
else if (Array.isArray(value)) {
|
|
137
|
-
headers[key] = await Promise.all(value.map(async (v) =>
|
|
137
|
+
headers[key] = await Promise.all(value.map(async (v) => this._valueHelper.eval(v, context)));
|
|
138
138
|
}
|
|
139
139
|
else {
|
|
140
140
|
headers[key] = await this._valueHelper.eval(value, context);
|
|
@@ -164,7 +164,7 @@ export class DynamicActionApiService {
|
|
|
164
164
|
res[key] = value;
|
|
165
165
|
}
|
|
166
166
|
else if (Array.isArray(value)) {
|
|
167
|
-
res[key] = await Promise.all(value.map(async (v) =>
|
|
167
|
+
res[key] = await Promise.all(value.map(async (v) => this._valueHelper.eval(v, context)));
|
|
168
168
|
}
|
|
169
169
|
else {
|
|
170
170
|
res[key] = await this._valueHelper.eval(value, context);
|
|
@@ -176,14 +176,17 @@ export class DynamicActionApiService {
|
|
|
176
176
|
}
|
|
177
177
|
_isSupported() {
|
|
178
178
|
if (isDevMode()) {
|
|
179
|
+
// eslint-disable-next-line no-console
|
|
179
180
|
console.warn(`[DynamicActionApiService] Action is not ready for production yet.`);
|
|
180
181
|
}
|
|
181
182
|
else {
|
|
182
183
|
// I don't expect this to be attempted in prod before completed, so I am just adding a console warning.
|
|
184
|
+
// eslint-disable-next-line no-console
|
|
183
185
|
console.warn(`Unable to complete request. Contact support for assistance.`);
|
|
184
186
|
}
|
|
185
187
|
if (!this._http) {
|
|
186
188
|
if (isDevMode()) {
|
|
189
|
+
// eslint-disable-next-line no-console
|
|
187
190
|
console.warn(`[DynamicActionApiService] Endpoint actions require \`HttpClientModule\` to be imported.`);
|
|
188
191
|
}
|
|
189
192
|
return false;
|
|
@@ -191,9 +194,9 @@ export class DynamicActionApiService {
|
|
|
191
194
|
return true;
|
|
192
195
|
}
|
|
193
196
|
}
|
|
194
|
-
DynamicActionApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.
|
|
195
|
-
DynamicActionApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.
|
|
196
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.
|
|
197
|
+
DynamicActionApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicActionApiService, deps: [{ token: i1.DynamicValueHelperService }, { token: i2.HttpClient, optional: true }, { token: THESEAM_API_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
198
|
+
DynamicActionApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicActionApiService });
|
|
199
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DynamicActionApiService, decorators: [{
|
|
197
200
|
type: Injectable
|
|
198
201
|
}], ctorParameters: function () { return [{ type: i1.DynamicValueHelperService }, { type: i2.HttpClient, decorators: [{
|
|
199
202
|
type: Optional
|
|
@@ -203,4 +206,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImpor
|
|
|
203
206
|
type: Inject,
|
|
204
207
|
args: [THESEAM_API_CONFIG]
|
|
205
208
|
}] }]; } });
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1hY3Rpb24tYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZHluYW1pYy9hY3Rpb24vYXBpL2R5bmFtaWMtYWN0aW9uLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDM0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUt4RCxPQUFPLEVBQStELG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFJdEssT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sNkJBQTZCLENBQUE7Ozs7QUFFL0U7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQU8sdUJBQXVCO0lBTWxDLFlBQ1UsWUFBdUMsRUFDM0IsS0FBaUIsRUFDVyxRQUFzQjtRQUY5RCxpQkFBWSxHQUFaLFlBQVksQ0FBMkI7UUFDM0IsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNXLGFBQVEsR0FBUixRQUFRLENBQWM7UUFQL0QsU0FBSSxHQUFHLEtBQUssQ0FBQTtRQUVyQixVQUFLLEdBQUcsWUFBWSxDQUFBO0lBTWhCLENBQUM7SUFFRSxJQUFJLENBQUMsSUFBeUIsRUFBRSxPQUFZO1FBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDeEIsTUFBTSxpQ0FBaUMsRUFBRSxDQUFBO1NBQzFDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxD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dUc7WUFDdkcsT0FBTyxDQUFDLElBQUksQ0FBQyw2REFBNkQsQ0FBQyxDQUFBO1NBQzVFO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLFNBQVMsRUFBRSxFQUFFO2dCQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMseUZBQXlGLENBQUMsQ0FBQTthQUN4RztZQUNELE9BQU8sS0FBSyxDQUFBO1NBQ2I7UUFDRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7O29IQWpOVSx1QkFBdUIscUdBU1osa0JBQWtCO3dIQVQ3Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVTs7MEJBU04sUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBpc0Rldk1vZGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IGZyb20gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB7IGlzQWJzb2x1dGVVcmwgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXG5cbmltcG9ydCB7IER5bmFtaWNWYWx1ZUhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9keW5hbWljLXZhbHVlLWhlbHBlci5zZXJ2aWNlJ1xuaW1wb3J0IHsgRHluYW1pY0FjdGlvblVpQnV0dG9uRGVmIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2R5bmFtaWMtYWN0aW9uLXVpLWJ1dHRvbi1kZWYnXG5pbXBvcnQgeyBEeW5hbWljVmFsdWUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHluYW1pYy12YWx1ZSdcbmltcG9ydCB7IEFwaVJlcXVlc3RNZXRob2RIZWFkZXIsIEFwaVJlcXVlc3RNZXRob2RIZWFkZXJzLCBJQXBpQ29uZmlnLCBpc1ZhbGlkUmVxdWVzdE1ldGhvZCwgVEhFU0VBTV9BUElfQ09ORklHLCBWQUxJRF9SRVFVRVNUX01FVEhPRFMgfSBmcm9tICcuLi8uLi90b2tlbnMvYXBpLWNvbmZpZydcblxuaW1wb3J0IHsgRHluYW1pY0FjdGlvbkFwaSB9IGZyb20gJy4vZHluYW1pYy1hY3Rpb24tYXBpJ1xuaW1wb3J0IHsgRHluYW1pY0FjdGlvbkFwaURlZiB9IGZyb20gJy4vZHluYW1pYy1hY3Rpb24tYXBpLWRlZidcbmltcG9ydCB7IGR5bmFtaWNBY3Rpb25BcGlOb3RTdXBwb3J0ZWRFcnJvciB9IGZyb20gJy4vZHluYW1pYy1hY3Rpb24tYXBpLWVycm9ycydcblxuLyoqXG4gKiBIYW5kbGVzIGV4ZWN1dGlvbiBvZiBhcGkgY2FsbCBhY3Rpb25zLlxuICpcbiAqIFRoaXMgYWN0aW9uIHNlcnZpY2Ugc2hvdWxkIGJlIGdlbmVyaWMgZW5vdWdoIHRvXG4gKiB3b3JrIHdpdGggYW55IHVybCBlbmRwb2ludCwgYnV0IHdpbGwgYmUgYmlhc2VkIHRvd2FyZHMgb3VyIGFwaSB3aGVyZSBuZWVkZWQuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEeW5hbWljQWN0aW9uQXBpU2VydmljZSBpbXBsZW1lbnRzIER5bmFtaWNBY3Rpb25BcGkge1xuXG4gIHJlYWRvbmx5IHR5cGUgPSAnYXBpJ1xuXG4gIGxhYmVsID0gJ0FwaSBBY3Rpb24nXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfdmFsdWVIZWxwZXI6IER5bmFtaWNWYWx1ZUhlbHBlclNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFRIRVNFQU1fQVBJX0NPTkZJRykgcHJpdmF0ZSBfY29uZmlnczogSUFwaUNvbmZpZ1tdXG4gICkgeyB9XG5cbiAgcHVibGljIGV4ZWMoYXJnczogRHluYW1pY0FjdGlvbkFwaURlZiwgY29udGV4dDogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAoIXRoaXMuX2lzU3VwcG9ydGVkKCkpIHtcbiAgICAgIHRocm93IGR5bmFtaWNBY3Rpb25BcGlOb3RTdXBwb3J0ZWRFcnJvcigpXG4gICAgfVxuXG4gICAgcmV0dXJuIGZyb20odGhpcy5fZ2V0RXhlY0luZm8oYXJncywgY29udGV4dCkpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoeCA9PiB0aGlzLl9odHRwLnJlcXVlc3Q8YW55Pih4Lm1ldGhvZCwgeC51cmwsIHgub3B0aW9ucykpLFxuICAgICkudG9Qcm9taXNlKClcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRVaVByb3BzKGFyZ3M6IER5bmFtaWNBY3Rpb25BcGlEZWYsIGNvbnRleHQ6IGFueSk6IFByb21pc2U8RHluYW1pY0FjdGlvblVpQnV0dG9uRGVmPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIF9hY3Rpb25EZWY6IGFyZ3MsXG4gICAgICB0cmlnZ2VyVHlwZTogJ2NsaWNrJ1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2dldEV4ZWNJbmZvKGFyZ3M6IER5bmFtaWNBY3Rpb25BcGlEZWYsIGNvbnRleHQ/OiBhbnkpIHtcbiAgICBjb25zdCBtZXRob2QgPSBhcmdzLm1ldGhvZCB8fCAnR0VUJ1xuXG4gICAgY29uc3QgdXJsID0gYXdhaXQgdGhpcy5fZ2V0VXJsKGFyZ3MsIGNvbnRleHQpXG4gICAgaWYgKHVybCA9PT0gbnVsbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdbRHluYW1pY0FjdGlvbkFwaVNlcnZpY2VdIFVuYWJsZSB0byBkZXRlcm1pbmUgdXJsLicpXG4gICAgfVxuXG4gICAgY29uc3QgYm9keSA9IGF3YWl0IHRoaXMuX2dldEJvZHkoYXJncywgY29udGV4dClcbiAgICBjb25zdCBwYXJhbXMgPSBhd2FpdCB0aGlzLl9nZXRQYXJhbXMoYXJncywgY29udGV4dClcblxuICAgIGNvbnN0IGhlYWRlcnMgPSBhd2FpdCB0aGlzLl9nZXRIZWFkZXJzKGFyZ3MsIGNvbnRleHQpXG5cbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICB1cmwsXG4gICAgICBtZXRob2QsXG4gICAgICBvcHRpb25zOiB7IGJvZHksIHBhcmFtcywgaGVhZGVycyB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfZ2V0VXJsKGFyZ3M6IER5bmFtaWNBY3Rpb25BcGlEZWYsIGNvbnRleHQ/OiBhbnkpOiBQcm9taXNlPHN0cmluZyB8IG51bGw+IHtcbiAgICBjb25zdCBjb25maWcgPSB0aGlzLl9nZXRBcGlDb25maWcoYXJncylcblxuICAgIGxldCBlbmRwb2ludCA9ICcnXG4gICAgaWYgKGFyZ3MuZW5kcG9pbnQpIHtcbiAgICAgIGVuZHBvaW50ID0gYXdhaXQgdGhpcy5fdmFsdWVIZWxwZXIuZXZhbChhcmdzLmVuZHBvaW50LCBjb250ZXh0KVxuICAgIH1cblxuICAgIGlmIChpc0Fic29sdXRlVXJsKGVuZHBvaW50KSkge1xuICAgICAgcmV0dXJuIGVuZHBvaW50XG4gICAgfVxuXG4gICAgaWYgKGNvbmZpZyAmJiBjb25maWcudXJsICE9PSB1bmRlZmluZWQgJiYgY29uZmlnLnVybCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdXJsID0gYXdhaXQgdGhpcy5fdmFsdWVIZWxwZXIuZXZhbChjb25maWcudXJsLCBjb250ZXh0KVxuICAgICAgaWYgKHR5cGVvZiB1cmwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IGFkZFNsYXNoID0gZW5kcG9pbnQubGVuZ3RoID4gMCAmJiBlbmRwb2ludC5pbmRleE9mKCcvJykgIT09IDAgJiZcbiAgICAgICAgICB1cmwubGVuZ3RoID4gMCAmJiB1cmwuaW5kZXhPZignLycpICE9PSAwXG4gICAgICAgIHJldHVybiBgJHtjb25maWcudXJsfSR7YWRkU2xhc2ggPyAnLycgOiAnJ30ke2VuZHBvaW50fWBcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QXBpQ29uZmlnKGFyZ3M6IER5bmFtaWNBY3Rpb25BcGlEZWYpOiBJQXBpQ29uZmlnIHwgbnVsbCB7XG4gICAgY29uc3QgY29uZmlncyA9IHRoaXMuX2NvbmZpZ3MgfHwgW11cblxuICAgIGlmIChhcmdzLmlkID09PSB1bmRlZmluZWQgfHwgYXJncy5pZCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGNvbmZpZ3MubGVuZ3RoID4gMCA/IGNvbmZpZ3NbMF0gOiBudWxsXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBjb25maWcgb2YgY29uZmlncykge1xuICAgICAgaWYgKGNvbmZpZy5pZCAmJiBjb25maWcuaWQgPT09IGFyZ3MuaWQpIHtcbiAgICAgICAgcmV0dXJuIGNvbmZpZ1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9nZXRCb2R5KGFyZ3M6IER5bmFtaWNBY3Rpb25BcGlEZWYsIGNvbnRleHQ/OiBhbnkpIHtcbiAgICBpZiAoYXJncy5ib2R5ICE9PSB1bmRlZmluZWQgJiYgYXJncy5ib2R5ICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5fdmFsdWVIZWxwZXIuZXZhbChhcmdzLmJvZHksIGNvbnRleHQpXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfZ2V0UGFyYW1zKGFyZ3M6IER5bmFtaWNBY3Rpb25BcGlEZWYsIGNvbnRleHQ/OiBhbnkpIHtcbiAgICBpZiAoYXJncy5wYXJhbXMgIT09IHVuZGVmaW5lZCAmJiBhcmdzLnBhcmFtcyAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX3ZhbHVlSGVscGVyLmV2YWwoYXJncy5wYXJhbXMsIGNvbnRleHQpXG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfZ2V0SGVhZGVycyhhcmdzOiBEeW5hbWljQWN0aW9uQXBpRGVmLCBjb250ZXh0PzogYW55KTogUHJvbWlzZTxIdHRwSGVhZGVycz4ge1xuICAgIGxldCBoZWFkZXJzOiBBcGlSZXF1ZXN0TWV0aG9kSGVhZGVycyA9IHt9XG5cbiAgICBjb25zdCBjb25maWcgPSB0aGlzLl9nZXRBcGlDb25maWcoYXJncylcblxuICAgIC8vIFRPRE86IE1ha2Ugc3VyZSBJIGFtIGhhbmRsaW5nIHRoZXNlIHZhbHVlcyBjb3JyZWN0bHkuIFRoaXMgY291bGQgYmVcbiAgICAvLyBtdWNoIGNsZWFuZXIuIFRlc3RzIHdpdGggYWxsIHRoZSBqcyBwcmltaXRpdmVzLCBudWxsLCB1bmRlZmluZWQsIGFuZFxuICAgIC8vIGR5bmFtaWMgYWN0aW9uIHR5cGVzIHNob3VsZCBiZSB3cml0dGVuLlxuXG4gICAgaWYgKGNvbmZpZyAmJiBjb25maWcubWV0aG9kSGVhZGVycykge1xuICAgICAgY29uc3QgbWV0aG9kID0gdHlwZW9mIGFyZ3MubWV0aG9kID09PSAnc3RyaW5nJ1xuICAgICAgICA/IGFyZ3MubWV0aG9kLnRyaW0oKS50b1VwcGVyQ2FzZSgpXG4gICAgICAgIDogJ0dFVCcgLy8gRGVmYXVsdCBtZXRob2QgdHlwZVxuXG4gICAgICBpZiAoIWlzVmFsaWRSZXF1ZXN0TWV0aG9kKG1ldGhvZCkpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYEFQSSByZXF1ZXN0IG1ldGhvZCBtdXN0IGJlIG9uZSBvZiAke1ZBTElEX1JFUVVFU1RfTUVUSE9EU31gKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBoID0gbWV0aG9kICYmIGNvbmZpZy5tZXRob2RIZWFkZXJzW21ldGhvZF1cbiAgICAgIGlmIChoICE9PSB1bmRlZmluZWQgJiYgaCAhPT0gbnVsbCkge1xuICAgICAgICBoZWFkZXJzID0gYXdhaXQgdGhpcy5fZXZhbEhlYWRlcnMoaCwgY29udGV4dCkgYXMgYW55XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVE9ETzogQ2xlYW51cCBtZXNzaW5nIG11bHRpcGxlIGxldmVsIGxvZ2ljXG4gICAgY29uc3QgYXJnSGVhZGVycyA9IGFyZ3MuaGVhZGVyc1xuICAgIGlmIChhcmdIZWFkZXJzICE9PSB1bmRlZmluZWQgJiYgYXJnSGVhZGVycyAhPT0gbnVsbCkge1xuICAgICAgaWYgKHR5cGVvZiBhcmdIZWFkZXJzID09PSAnc3RyaW5nJykge1xuICAgICAgICBoZWFkZXJzID0gYXJnSGVhZGVycyBhcyBhbnlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IF92YWwgPSB0aGlzLl92YWx1ZUhlbHBlci5ldmFsKGFyZ0hlYWRlcnMgYXMgYW55LCBjb250ZXh0KSAvLyBUT0RPOiBGaXggYXJnSGVhZGVycyB0eXBlXG4gICAgICAgIGlmICh0eXBlb2YgX3ZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBoZWFkZXJzID0gX3ZhbFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhhcmdIZWFkZXJzKVxuICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgICAgIGlmICghaXNWYWxpZFJlcXVlc3RNZXRob2Qoa2V5KSkge1xuICAgICAgICAgICAgICB0aHJvdyBFcnJvcihgQVBJIHJlcXVlc3QgbWV0aG9kIG11c3QgYmUgb25lIG9mICR7VkFMSURfUkVRVUVTVF9NRVRIT0RTfWApXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFRPRE86IEZpeCB0eXBlc1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAoYXJnSGVhZGVycyBhcyBhbnkpW2tleV1cbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIGhlYWRlcnNba2V5XSA9IHZhbHVlXG4gICAgICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgIGhlYWRlcnNba2V5XSA9IGF3YWl0IFByb21pc2UuYWxsKHZhbHVlLm1hcChhc3luYyB2ID0+IGF3YWl0IHRoaXMuX3ZhbHVlSGVscGVyLmV2YWwodiwgY29udGV4dCkpKSBhcyBhbnlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGhlYWRlcnNba2V5XSA9IGF3YWl0IHRoaXMuX3ZhbHVlSGVscGVyLmV2YWwodmFsdWUsIGNvbnRleHQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBIdHRwSGVhZGVycyhoZWFkZXJzIGFzIGFueSlcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2V2YWxIZWFkZXJzKFxuICAgIGhlYWRlcnM6IHN0cmluZyB8IER5bmFtaWNWYWx1ZTxzdHJpbmc+IHwgeyBbbmFtZTogc3RyaW5nXTogRHluYW1pY1ZhbHVlPHN0cmluZz4gfCBEeW5hbWljVmFsdWU8c3RyaW5nPltdIH0sXG4gICAgY29udGV4dD86IGFueVxuICApIHtcbiAgICBsZXQgcmVzOiBzdHJpbmcgfCB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9ID0ge31cblxuICAgIC8vIFRPRE86IENsZWFudXAgbWVzc2luZyBtdWx0aXBsZSBsZXZlbCBsb2dpY1xuICAgIGlmICh0eXBlb2YgaGVhZGVycyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJlcyA9IGhlYWRlcnNcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgX3ZhbCA9IHRoaXMuX3ZhbHVlSGVscGVyLmV2YWwoaGVhZGVycyBhcyBhbnksIGNvbnRleHQpIC8vIFRPRE86IEZpeCBhcmdIZWFkZXJzIHR5cGVcbiAgICAgIGlmICh0eXBlb2YgX3ZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmVzID0gX3ZhbFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGhlYWRlcnMpXG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IChoZWFkZXJzIGFzIGFueSlba2V5XVxuICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXNba2V5XSA9IHZhbHVlXG4gICAgICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgcmVzW2tleV0gPSBhd2FpdCBQcm9taXNlLmFsbCh2YWx1ZS5tYXAoYXN5bmMgdiA9PiBhd2FpdCB0aGlzLl92YWx1ZUhlbHBlci5ldmFsKHYsIGNvbnRleHQpKSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzW2tleV0gPSBhd2FpdCB0aGlzLl92YWx1ZUhlbHBlci5ldmFsKHZhbHVlLCBjb250ZXh0KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzXG4gIH1cblxuICBwcml2YXRlIF9pc1N1cHBvcnRlZCgpOiBib29sZWFuIHtcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgIGNvbnNvbGUud2FybihgW0R5bmFtaWNBY3Rpb25BcGlTZXJ2aWNlXSBBY3Rpb24gaXMgbm90IHJlYWR5IGZvciBwcm9kdWN0aW9uIHlldC5gKVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJIGRvbid0IGV4cGVjdCB0aGlzIHRvIGJlIGF0dGVtcHRlZCBpbiBwcm9kIGJlZm9yZSBjb21wbGV0ZWQsIHNvIEkgYW0ganVzdCBhZGRpbmcgYSBjb25zb2xlIHdhcm5pbmcuXG4gICAgICBjb25zb2xlLndhcm4oYFVuYWJsZSB0byBjb21wbGV0ZSByZXF1ZXN0LiBDb250YWN0IHN1cHBvcnQgZm9yIGFzc2lzdGFuY2UuYClcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuX2h0dHApIHtcbiAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oYFtEeW5hbWljQWN0aW9uQXBpU2VydmljZV0gRW5kcG9pbnQgYWN0aW9ucyByZXF1aXJlIFxcYEh0dHBDbGllbnRNb2R1bGVcXGAgdG8gYmUgaW1wb3J0ZWQuYClcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG59XG4iXX0=
|
|
209
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1hY3Rpb24tYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZHluYW1pYy9hY3Rpb24vYXBpL2R5bmFtaWMtYWN0aW9uLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ3ZFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDM0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUt4RCxPQUFPLEVBQStELG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFJdEssT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sNkJBQTZCLENBQUE7Ozs7QUFFL0U7Ozs7O0dBS0c7QUFFSCxNQUFNLE9BQU8sdUJBQXVCO0lBTWxDLFlBQ1UsWUFBdUMsRUFDM0IsS0FBaUIsRUFDVyxRQUFzQjtRQUY5RCxpQkFBWSxHQUFaLFlBQVksQ0FBMkI7UUFDM0IsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNXLGFBQVEsR0FBUixRQUFRLENBQWM7UUFQL0QsU0FBSSxHQUFHLEtBQUssQ0FBQTtRQUVyQixVQUFLLEdBQUcsWUFBWSxDQUFBO0lBTWhCLENBQUM7SUFFRSxJQUFJLENBQUMsSUFBeUIsRUFBRSxPQUFZO1FBQ2pELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDeEIsTUFBTSxpQ0FBaUMsRUFBRSxDQUFBO1NBQzFDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxD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RyxzQ0FBc0M7WUFDdEMsT0FBTyxDQUFDLElBQUksQ0FBQyw2REFBNkQsQ0FBQyxDQUFBO1NBQzVFO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLFNBQVMsRUFBRSxFQUFFO2dCQUNmLHNDQUFzQztnQkFDdEMsT0FBTyxDQUFDLElBQUksQ0FBQyx5RkFBeUYsQ0FBQyxDQUFBO2FBQ3hHO1lBQ0QsT0FBTyxLQUFLLENBQUE7U0FDYjtRQUNELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQzs7b0hBcE5VLHVCQUF1QixxR0FTWixrQkFBa0I7d0hBVDdCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVOzswQkFTTixRQUFROzswQkFDUixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIGlzRGV2TW9kZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgZnJvbSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgaXNBYnNvbHV0ZVVybCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuaW1wb3J0IHsgRHluYW1pY1ZhbHVlSGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2R5bmFtaWMtdmFsdWUtaGVscGVyLnNlcnZpY2UnXG5pbXBvcnQgeyBEeW5hbWljQWN0aW9uVWlCdXR0b25EZWYgfSBmcm9tICcuLi8uLi9tb2RlbHMvZHluYW1pYy1hY3Rpb24tdWktYnV0dG9uLWRlZidcbmltcG9ydCB7IER5bmFtaWNWYWx1ZSB9IGZyb20gJy4uLy4uL21vZGVscy9keW5hbWljLXZhbHVlJ1xuaW1wb3J0IHsgQXBpUmVxdWVzdE1ldGhvZEhlYWRlciwgQXBpUmVxdWVzdE1ldGhvZEhlYWRlcnMsIElBcGlDb25maWcsIGlzVmFsaWRSZXF1ZXN0TWV0aG9kLCBUSEVTRUFNX0FQSV9DT05GSUcsIFZBTElEX1JFUVVFU1RfTUVUSE9EUyB9IGZyb20gJy4uLy4uL3Rva2Vucy9hcGktY29uZmlnJ1xuXG5pbXBvcnQgeyBEeW5hbWljQWN0aW9uQXBpIH0gZnJvbSAnLi9keW5hbWljLWFjdGlvbi1hcGknXG5pbXBvcnQgeyBEeW5hbWljQWN0aW9uQXBpRGVmIH0gZnJvbSAnLi9keW5hbWljLWFjdGlvbi1hcGktZGVmJ1xuaW1wb3J0IHsgZHluYW1pY0FjdGlvbkFwaU5vdFN1cHBvcnRlZEVycm9yIH0gZnJvbSAnLi9keW5hbWljLWFjdGlvbi1hcGktZXJyb3JzJ1xuXG4vKipcbiAqIEhhbmRsZXMgZXhlY3V0aW9uIG9mIGFwaSBjYWxsIGFjdGlvbnMuXG4gKlxuICogVGhpcyBhY3Rpb24gc2VydmljZSBzaG91bGQgYmUgZ2VuZXJpYyBlbm91Z2ggdG9cbiAqIHdvcmsgd2l0aCBhbnkgdXJsIGVuZHBvaW50LCBidXQgd2lsbCBiZSBiaWFzZWQgdG93YXJkcyBvdXIgYXBpIHdoZXJlIG5lZWRlZC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIER5bmFtaWNBY3Rpb25BcGlTZXJ2aWNlIGltcGxlbWVudHMgRHluYW1pY0FjdGlvbkFwaSB7XG5cbiAgcmVhZG9ubHkgdHlwZSA9ICdhcGknXG5cbiAgbGFiZWwgPSAnQXBpIEFjdGlvbidcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF92YWx1ZUhlbHBlcjogRHluYW1pY1ZhbHVlSGVscGVyU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50LFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoVEhFU0VBTV9BUElfQ09ORklHKSBwcml2YXRlIF9jb25maWdzOiBJQXBpQ29uZmlnW11cbiAgKSB7IH1cblxuICBwdWJsaWMgZXhlYyhhcmdzOiBEeW5hbWljQWN0aW9uQXBpRGVmLCBjb250ZXh0OiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICghdGhpcy5faXNTdXBwb3J0ZWQoKSkge1xuICAgICAgdGhyb3cgZHluYW1pY0FjdGlvbkFwaU5vdFN1cHBvcnRlZEVycm9yKClcbiAgICB9XG5cbiAgICByZXR1cm4gZnJvbSh0aGlzLl9nZXRFeGVjSW5mbyhhcmdzLCBjb250ZXh0KSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCh4ID0+IHRoaXMuX2h0dHAucmVxdWVzdDxhbnk+KHgubWV0aG9kLCB4LnVybCwgeC5vcHRpb25zKSksXG4gICAgKS50b1Byb21pc2UoKVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFVpUHJvcHMoYXJnczogRHluYW1pY0FjdGlvbkFwaURlZiwgY29udGV4dDogYW55KTogUHJvbWlzZTxEeW5hbWljQWN0aW9uVWlCdXR0b25EZWY+IHtcbiAgICByZXR1cm4ge1xuICAgICAgX2FjdGlvbkRlZjogYXJncyxcbiAgICAgIHRyaWdnZXJUeXBlOiAnY2xpY2snXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfZ2V0RXhlY0luZm8oYXJnczogRHluYW1pY0FjdGlvbkFwaURlZiwgY29udGV4dD86IGFueSkge1xuICAgIGNvbnN0IG1ldGhvZCA9IGFyZ3MubWV0aG9kIHx8ICdHRVQnXG5cbiAgICBjb25zdCB1cmwgPSBhd2FpdCB0aGlzLl9nZXRVcmwoYXJncywgY29udGV4dClcbiAgICBpZiAodXJsID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1tEeW5hbWljQWN0aW9uQXBpU2VydmljZV0gVW5hYmxlIHRvIGRldGVybWluZSB1cmwuJylcbiAgICB9XG5cbiAgICBjb25zdCBib2R5ID0gYXdhaXQgdGhpcy5fZ2V0Qm9keShhcmdzLCBjb250ZXh0KVxuICAgIGNvbnN0IHBhcmFtcyA9IGF3YWl0IHRoaXMuX2dldFBhcmFtcyhhcmdzLCBjb250ZXh0KVxuXG4gICAgY29uc3QgaGVhZGVycyA9IGF3YWl0IHRoaXMuX2dldEhlYWRlcnMoYXJncywgY29udGV4dClcblxuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIHVybCxcbiAgICAgIG1ldGhvZCxcbiAgICAgIG9wdGlvbnM6IHsgYm9keSwgcGFyYW1zLCBoZWFkZXJzIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9nZXRVcmwoYXJnczogRHluYW1pY0FjdGlvbkFwaURlZiwgY29udGV4dD86IGFueSk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuX2dldEFwaUNvbmZpZyhhcmdzKVxuXG4gICAgbGV0IGVuZHBvaW50ID0gJydcbiAgICBpZiAoYXJncy5lbmRwb2ludCkge1xuICAgICAgZW5kcG9pbnQgPSBhd2FpdCB0aGlzLl92YWx1ZUhlbHBlci5ldmFsKGFyZ3MuZW5kcG9pbnQsIGNvbnRleHQpXG4gICAgfVxuXG4gICAgaWYgKGlzQWJzb2x1dGVVcmwoZW5kcG9pbnQpKSB7XG4gICAgICByZXR1cm4gZW5kcG9pbnRcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnICYmIGNvbmZpZy51cmwgIT09IHVuZGVmaW5lZCAmJiBjb25maWcudXJsICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB1cmwgPSBhd2FpdCB0aGlzLl92YWx1ZUhlbHBlci5ldmFsKGNvbmZpZy51cmwsIGNvbnRleHQpXG4gICAgICBpZiAodHlwZW9mIHVybCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29uc3QgYWRkU2xhc2ggPSBlbmRwb2ludC5sZW5ndGggPiAwICYmIGVuZHBvaW50LmluZGV4T2YoJy8nKSAhPT0gMCAmJlxuICAgICAgICAgIHVybC5sZW5ndGggPiAwICYmIHVybC5pbmRleE9mKCcvJykgIT09IDBcbiAgICAgICAgcmV0dXJuIGAke2NvbmZpZy51cmx9JHthZGRTbGFzaCA/ICcvJyA6ICcnfSR7ZW5kcG9pbnR9YFxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBwcml2YXRlIF9nZXRBcGlDb25maWcoYXJnczogRHluYW1pY0FjdGlvbkFwaURlZik6IElBcGlDb25maWcgfCBudWxsIHtcbiAgICBjb25zdCBjb25maWdzID0gdGhpcy5fY29uZmlncyB8fCBbXVxuXG4gICAgaWYgKGFyZ3MuaWQgPT09IHVuZGVmaW5lZCB8fCBhcmdzLmlkID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gY29uZmlncy5sZW5ndGggPiAwID8gY29uZmlnc1swXSA6IG51bGxcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGNvbmZpZyBvZiBjb25maWdzKSB7XG4gICAgICBpZiAoY29uZmlnLmlkICYmIGNvbmZpZy5pZCA9PT0gYXJncy5pZCkge1xuICAgICAgICByZXR1cm4gY29uZmlnXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2dldEJvZHkoYXJnczogRHluYW1pY0FjdGlvbkFwaURlZiwgY29udGV4dD86IGFueSkge1xuICAgIGlmIChhcmdzLmJvZHkgIT09IHVuZGVmaW5lZCAmJiBhcmdzLmJvZHkgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZUhlbHBlci5ldmFsKGFyZ3MuYm9keSwgY29udGV4dClcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9nZXRQYXJhbXMoYXJnczogRHluYW1pY0FjdGlvbkFwaURlZiwgY29udGV4dD86IGFueSkge1xuICAgIGlmIChhcmdzLnBhcmFtcyAhPT0gdW5kZWZpbmVkICYmIGFyZ3MucGFyYW1zICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdmFsdWVIZWxwZXIuZXZhbChhcmdzLnBhcmFtcywgY29udGV4dClcbiAgICB9XG5cbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9nZXRIZWFkZXJzKGFyZ3M6IER5bmFtaWNBY3Rpb25BcGlEZWYsIGNvbnRleHQ/OiBhbnkpOiBQcm9taXNlPEh0dHBIZWFkZXJzPiB7XG4gICAgbGV0IGhlYWRlcnM6IEFwaVJlcXVlc3RNZXRob2RIZWFkZXJzID0ge31cblxuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuX2dldEFwaUNvbmZpZyhhcmdzKVxuXG4gICAgLy8gVE9ETzogTWFrZSBzdXJlIEkgYW0gaGFuZGxpbmcgdGhlc2UgdmFsdWVzIGNvcnJlY3RseS4gVGhpcyBjb3VsZCBiZVxuICAgIC8vIG11Y2ggY2xlYW5lci4gVGVzdHMgd2l0aCBhbGwgdGhlIGpzIHByaW1pdGl2ZXMsIG51bGwsIHVuZGVmaW5lZCwgYW5kXG4gICAgLy8gZHluYW1pYyBhY3Rpb24gdHlwZXMgc2hvdWxkIGJlIHdyaXR0ZW4uXG5cbiAgICBpZiAoY29uZmlnICYmIGNvbmZpZy5tZXRob2RIZWFkZXJzKSB7XG4gICAgICBjb25zdCBtZXRob2QgPSB0eXBlb2YgYXJncy5tZXRob2QgPT09ICdzdHJpbmcnXG4gICAgICAgID8gYXJncy5tZXRob2QudHJpbSgpLnRvVXBwZXJDYXNlKClcbiAgICAgICAgOiAnR0VUJyAvLyBEZWZhdWx0IG1ldGhvZCB0eXBlXG5cbiAgICAgIGlmICghaXNWYWxpZFJlcXVlc3RNZXRob2QobWV0aG9kKSkge1xuICAgICAgICB0aHJvdyBFcnJvcihgQVBJIHJlcXVlc3QgbWV0aG9kIG11c3QgYmUgb25lIG9mICR7VkFMSURfUkVRVUVTVF9NRVRIT0RTfWApXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGggPSBtZXRob2QgJiYgY29uZmlnLm1ldGhvZEhlYWRlcnNbbWV0aG9kXVxuICAgICAgaWYgKGggIT09IHVuZGVmaW5lZCAmJiBoICE9PSBudWxsKSB7XG4gICAgICAgIGhlYWRlcnMgPSBhd2FpdCB0aGlzLl9ldmFsSGVhZGVycyhoLCBjb250ZXh0KSBhcyBhbnlcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUT0RPOiBDbGVhbnVwIG1lc3NpbmcgbXVsdGlwbGUgbGV2ZWwgbG9naWNcbiAgICBjb25zdCBhcmdIZWFkZXJzID0gYXJncy5oZWFkZXJzXG4gICAgaWYgKGFyZ0hlYWRlcnMgIT09IHVuZGVmaW5lZCAmJiBhcmdIZWFkZXJzICE9PSBudWxsKSB7XG4gICAgICBpZiAodHlwZW9mIGFyZ0hlYWRlcnMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGhlYWRlcnMgPSBhcmdIZWFkZXJzIGFzIGFueVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgX3ZhbCA9IHRoaXMuX3ZhbHVlSGVscGVyLmV2YWwoYXJnSGVhZGVycyBhcyBhbnksIGNvbnRleHQpIC8vIFRPRE86IEZpeCBhcmdIZWFkZXJzIHR5cGVcbiAgICAgICAgaWYgKHR5cGVvZiBfdmFsID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIGhlYWRlcnMgPSBfdmFsXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGFyZ0hlYWRlcnMpXG4gICAgICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICAgICAgaWYgKCFpc1ZhbGlkUmVxdWVzdE1ldGhvZChrZXkpKSB7XG4gICAgICAgICAgICAgIHRocm93IEVycm9yKGBBUEkgcmVxdWVzdCBtZXRob2QgbXVzdCBiZSBvbmUgb2YgJHtWQUxJRF9SRVFVRVNUX01FVEhPRFN9YClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVE9ETzogRml4IHR5cGVzXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IChhcmdIZWFkZXJzIGFzIGFueSlba2V5XVxuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgaGVhZGVyc1trZXldID0gdmFsdWVcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgaGVhZGVyc1trZXldID0gYXdhaXQgUHJvbWlzZS5hbGwodmFsdWUubWFwKGFzeW5jIHYgPT4gdGhpcy5fdmFsdWVIZWxwZXIuZXZhbCh2LCBjb250ZXh0KSkpIGFzIGFueVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaGVhZGVyc1trZXldID0gYXdhaXQgdGhpcy5fdmFsdWVIZWxwZXIuZXZhbCh2YWx1ZSwgY29udGV4dClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEh0dHBIZWFkZXJzKGhlYWRlcnMgYXMgYW55KVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfZXZhbEhlYWRlcnMoXG4gICAgaGVhZGVyczogc3RyaW5nIHwgRHluYW1pY1ZhbHVlPHN0cmluZz4gfCB7IFtuYW1lOiBzdHJpbmddOiBEeW5hbWljVmFsdWU8c3RyaW5nPiB8IER5bmFtaWNWYWx1ZTxzdHJpbmc+W10gfSxcbiAgICBjb250ZXh0PzogYW55XG4gICkge1xuICAgIGxldCByZXM6IHN0cmluZyB8IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdIH0gPSB7fVxuXG4gICAgLy8gVE9ETzogQ2xlYW51cCBtZXNzaW5nIG11bHRpcGxlIGxldmVsIGxvZ2ljXG4gICAgaWYgKHR5cGVvZiBoZWFkZXJzID09PSAnc3RyaW5nJykge1xuICAgICAgcmVzID0gaGVhZGVyc1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBfdmFsID0gdGhpcy5fdmFsdWVIZWxwZXIuZXZhbChoZWFkZXJzIGFzIGFueSwgY29udGV4dCkgLy8gVE9ETzogRml4IGFyZ0hlYWRlcnMgdHlwZVxuICAgICAgaWYgKHR5cGVvZiBfdmFsID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXMgPSBfdmFsXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoaGVhZGVycylcbiAgICAgICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gKGhlYWRlcnMgYXMgYW55KVtrZXldXG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJlc1trZXldID0gdmFsdWVcbiAgICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICByZXNba2V5XSA9IGF3YWl0IFByb21pc2UuYWxsKHZhbHVlLm1hcChhc3luYyB2ID0+IHRoaXMuX3ZhbHVlSGVscGVyLmV2YWwodiwgY29udGV4dCkpKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNba2V5XSA9IGF3YWl0IHRoaXMuX3ZhbHVlSGVscGVyLmV2YWwodmFsdWUsIGNvbnRleHQpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXNcbiAgfVxuXG4gIHByaXZhdGUgX2lzU3VwcG9ydGVkKCk6IGJvb2xlYW4ge1xuICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUud2FybihgW0R5bmFtaWNBY3Rpb25BcGlTZXJ2aWNlXSBBY3Rpb24gaXMgbm90IHJlYWR5IGZvciBwcm9kdWN0aW9uIHlldC5gKVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJIGRvbid0IGV4cGVjdCB0aGlzIHRvIGJlIGF0dGVtcHRlZCBpbiBwcm9kIGJlZm9yZSBjb21wbGV0ZWQsIHNvIEkgYW0ganVzdCBhZGRpbmcgYSBjb25zb2xlIHdhcm5pbmcuXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS53YXJuKGBVbmFibGUgdG8gY29tcGxldGUgcmVxdWVzdC4gQ29udGFjdCBzdXBwb3J0IGZvciBhc3Npc3RhbmNlLmApXG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9odHRwKSB7XG4gICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS53YXJuKGBbRHluYW1pY0FjdGlvbkFwaVNlcnZpY2VdIEVuZHBvaW50IGFjdGlvbnMgcmVxdWlyZSBcXGBIdHRwQ2xpZW50TW9kdWxlXFxgIHRvIGJlIGltcG9ydGVkLmApXG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgcmV0dXJuIHRydWVcbiAgfVxufVxuIl19
|