@elderbyte/ngx-starter 18.14.2 → 18.15.0
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/esm2022/lib/common/enums/elder-enum-translation.service.mjs +4 -4
- package/esm2022/lib/common/forms/elder-form-field-control-base.directive.mjs +45 -48
- package/esm2022/lib/common/forms/elder-from-field-base.mjs +4 -4
- package/esm2022/lib/common/forms/elder-from-field-customizable-base.mjs +4 -4
- package/esm2022/lib/common/forms/elder-from-field-entity-base.mjs +4 -4
- package/esm2022/lib/common/forms/elder-from-field-multi-entity-base.mjs +4 -4
- package/esm2022/lib/common/forms/form-field-base.component.mjs +4 -4
- package/esm2022/lib/common/forms/multi-model-base.component.mjs +4 -4
- package/esm2022/lib/common/forms/template-composite-control.mjs +4 -4
- package/esm2022/lib/common/forms/value-accessor-base.mjs +4 -4
- package/esm2022/lib/common/http/http-client-builder.service.mjs +4 -4
- package/esm2022/lib/common/http/http-client-pristine.mjs +4 -4
- package/esm2022/lib/common/http/transfer/data-transfer-factory.mjs +4 -4
- package/esm2022/lib/common/url/elder-router.service.mjs +4 -4
- package/esm2022/lib/common/url/elder-url-fragment-params.service.mjs +4 -4
- package/esm2022/lib/components/access-denied/elder-access-denied.component.mjs +4 -4
- package/esm2022/lib/components/access-denied/elder-access-denied.module.mjs +5 -5
- package/esm2022/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +4 -4
- package/esm2022/lib/components/auditing/elder-audit.module.mjs +5 -5
- package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +10 -10
- package/esm2022/lib/components/badge/elder-badge.directive.mjs +4 -4
- package/esm2022/lib/components/badge/elder-badge.module.mjs +5 -5
- package/esm2022/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +4 -4
- package/esm2022/lib/components/button-group/elder-button-group.module.mjs +5 -5
- package/esm2022/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +4 -4
- package/esm2022/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +4 -4
- package/esm2022/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +4 -4
- package/esm2022/lib/components/card-organizer/elder-card-organizer.module.mjs +5 -5
- package/esm2022/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +4 -4
- package/esm2022/lib/components/cards/elder-card/elder-card.component.mjs +19 -19
- package/esm2022/lib/components/cards/elder-card/elder-card.module.mjs +5 -5
- package/esm2022/lib/components/chips/elder-chip-label.directive.mjs +4 -4
- package/esm2022/lib/components/chips/elder-chips.module.mjs +5 -5
- package/esm2022/lib/components/connectivity/elder-connectivity.module.mjs +5 -5
- package/esm2022/lib/components/connectivity/elder-connectivity.service.mjs +4 -4
- package/esm2022/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +4 -4
- package/esm2022/lib/components/containers/elder-containers.module.mjs +5 -5
- package/esm2022/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +4 -4
- package/esm2022/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +4 -4
- package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +4 -4
- package/esm2022/lib/components/csv/elder-csv.module.mjs +5 -5
- package/esm2022/lib/components/currency/elder-currency.module.mjs +5 -5
- package/esm2022/lib/components/currency/elder-currency.pipe.mjs +4 -4
- package/esm2022/lib/components/data-transfer/elder-data-transfer.module.mjs +5 -5
- package/esm2022/lib/components/data-transfer/elder-data-transfer.service.mjs +4 -4
- package/esm2022/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +4 -4
- package/esm2022/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +4 -4
- package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +4 -4
- package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +4 -4
- package/esm2022/lib/components/data-view/base/elder-data-view-base.mjs +4 -4
- package/esm2022/lib/components/data-view/common/composite-sort/composite-sort-dc.directive.mjs +4 -4
- package/esm2022/lib/components/data-view/common/composite-sort/elder-composite-sort/elder-composite-sort.component.mjs +4 -4
- package/esm2022/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +4 -4
- package/esm2022/lib/components/data-view/common/elder-data-common.module.mjs +5 -5
- package/esm2022/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +7 -7
- package/esm2022/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +4 -4
- package/esm2022/lib/components/data-view/common/selection/data-context-selection.directive.mjs +4 -4
- package/esm2022/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +4 -4
- package/esm2022/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +10 -10
- package/esm2022/lib/components/data-view/grid/elder-grid.module.mjs +5 -5
- package/esm2022/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +4 -4
- package/esm2022/lib/components/data-view/master-detail/elder-detail.directive.mjs +4 -4
- package/esm2022/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +4 -4
- package/esm2022/lib/components/data-view/master-detail/elder-master-detail.component.mjs +4 -4
- package/esm2022/lib/components/data-view/master-detail/elder-master-detail.module.mjs +5 -5
- package/esm2022/lib/components/data-view/master-detail/elder-master-detail.service.mjs +4 -4
- package/esm2022/lib/components/data-view/master-detail/elder-master.directive.mjs +4 -4
- package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +4 -4
- package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +5 -5
- package/esm2022/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +4 -4
- package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +4 -4
- package/esm2022/lib/components/data-view/table/elder-center-cell.directive.mjs +4 -4
- package/esm2022/lib/components/data-view/table/elder-number-cell.directive.mjs +4 -4
- package/esm2022/lib/components/data-view/table/elder-paginator-intl.mjs +4 -4
- package/esm2022/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +4 -4
- package/esm2022/lib/components/data-view/table/elder-table/elder-table.component.mjs +4 -4
- package/esm2022/lib/components/data-view/table/elder-table-column.directive.mjs +4 -4
- package/esm2022/lib/components/data-view/table/elder-table-extension.directive.mjs +4 -4
- package/esm2022/lib/components/data-view/table/elder-table-root.directive.mjs +4 -4
- package/esm2022/lib/components/data-view/table/elder-table-row.directive.mjs +4 -4
- package/esm2022/lib/components/data-view/table/elder-table-sort.directive.mjs +4 -4
- package/esm2022/lib/components/data-view/table/elder-table.module.mjs +5 -5
- package/esm2022/lib/components/data-view/table/model/elder-table-model.mjs +4 -4
- package/esm2022/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +4 -4
- package/esm2022/lib/components/dialogs/elder-dialog.module.mjs +5 -5
- package/esm2022/lib/components/dialogs/elder-dialog.service.mjs +4 -4
- package/esm2022/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +4 -4
- package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +4 -4
- package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +4 -4
- package/esm2022/lib/components/errors/elder-error.module.mjs +5 -5
- package/esm2022/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +4 -4
- package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +4 -4
- package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +5 -5
- package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +4 -4
- package/esm2022/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +4 -4
- package/esm2022/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +4 -4
- package/esm2022/lib/components/files/elder-file-drop-zone.directive.mjs +4 -4
- package/esm2022/lib/components/files/elder-file-select.directive.mjs +4 -4
- package/esm2022/lib/components/files/elder-file.module.mjs +5 -5
- package/esm2022/lib/components/files/file-select/file-select.component.mjs +4 -4
- package/esm2022/lib/components/files/file-upload/file-upload.component.mjs +4 -4
- package/esm2022/lib/components/forms/clipboard/elder-clipboard.service.mjs +4 -4
- package/esm2022/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +4 -4
- package/esm2022/lib/components/forms/directives/checkbox/elder-single-state-checkbox.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/checkbox/elder-triple-state-checkbox.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/elder-clipboard-put.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/elder-delayed-focus.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/elder-form-field-dense.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/elder-form-field-label.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +5 -5
- package/esm2022/lib/components/forms/directives/elder-initial-value.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/elder-input-pattern.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/elder-key-event.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/elder-next-focusable.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/elder-touched.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +4 -4
- package/esm2022/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +4 -4
- package/esm2022/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +4 -4
- package/esm2022/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +4 -4
- package/esm2022/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +4 -4
- package/esm2022/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +4 -4
- package/esm2022/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +4 -4
- package/esm2022/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +4 -4
- package/esm2022/lib/components/forms/elder-forms.module.mjs +5 -5
- package/esm2022/lib/components/forms/search/domain/context/search-context.service.mjs +4 -4
- package/esm2022/lib/components/forms/search/domain/url/elder-search-url.directive.mjs +4 -4
- package/esm2022/lib/components/forms/search/domain/url/elder-search-url.service.mjs +4 -4
- package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +4 -4
- package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +4 -4
- package/esm2022/lib/components/forms/search/elder-search.module.mjs +5 -5
- package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +4 -4
- package/esm2022/lib/components/forms/search/search-box/elder-search-panel.component.mjs +4 -4
- package/esm2022/lib/components/global-search/elder-global-search.component.mjs +4 -4
- package/esm2022/lib/components/global-search/elder-global-search.module.mjs +5 -5
- package/esm2022/lib/components/global-search/elder-global-search.service.mjs +4 -4
- package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +4 -4
- package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +5 -5
- package/esm2022/lib/components/headers/elder-header/elder-header.component.mjs +4 -4
- package/esm2022/lib/components/headers/elder-header.module.mjs +5 -5
- package/esm2022/lib/components/http-support/elder-http-client.service.mjs +4 -4
- package/esm2022/lib/components/i18n/entities/elder-i18n-entities.module.mjs +5 -5
- package/esm2022/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +4 -4
- package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +4 -4
- package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +4 -4
- package/esm2022/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +4 -4
- package/esm2022/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +4 -4
- package/esm2022/lib/components/i18n/entities/elder-localized-texts.directive.mjs +4 -4
- package/esm2022/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +4 -4
- package/esm2022/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +4 -4
- package/esm2022/lib/components/i18n/entities/picker/localisation-picker.service.mjs +4 -4
- package/esm2022/lib/components/i18n/language/elder-language-interceptor.mjs +4 -4
- package/esm2022/lib/components/i18n/language/elder-language.module.mjs +5 -5
- package/esm2022/lib/components/i18n/language/elder-language.service.mjs +4 -4
- package/esm2022/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +4 -4
- package/esm2022/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +5 -5
- package/esm2022/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +4 -4
- package/esm2022/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +4 -4
- package/esm2022/lib/components/iframes/elder-iframe.module.mjs +5 -5
- package/esm2022/lib/components/iframes/iframe-close.directive.mjs +4 -4
- package/esm2022/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +4 -4
- package/esm2022/lib/components/iframes/iframe-host/iframe-host.component.mjs +4 -4
- package/esm2022/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +4 -4
- package/esm2022/lib/components/iframes/iframe.service.mjs +4 -4
- package/esm2022/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +4 -4
- package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +4 -4
- package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +5 -5
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-suggestion-panel.component.mjs +5 -5
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +4 -4
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +4 -4
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete.module.mjs +5 -5
- package/esm2022/lib/components/labels/elder-labels.module.mjs +5 -5
- package/esm2022/lib/components/labels/labels-input/labels-input.component.mjs +4 -4
- package/esm2022/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +9 -16
- package/esm2022/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +4 -4
- package/esm2022/lib/components/measures/directives/elder-unit-select.directive.mjs +4 -4
- package/esm2022/lib/components/measures/elder-measures.module.mjs +9 -9
- package/esm2022/lib/components/measures/elder-quantity-transform.pipe.mjs +4 -4
- package/esm2022/lib/components/measures/elder-quantity.pipe.mjs +4 -4
- package/esm2022/lib/components/measures/elder-unit.service.mjs +4 -4
- package/esm2022/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +4 -4
- package/esm2022/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +12 -18
- package/esm2022/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +4 -4
- package/esm2022/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +4 -4
- package/esm2022/lib/components/measures/util/elder-quantity.service.mjs +4 -4
- package/esm2022/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +4 -4
- package/esm2022/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +5 -5
- package/esm2022/lib/components/navigation/nav/elder-nav.module.mjs +5 -5
- package/esm2022/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +4 -4
- package/esm2022/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +4 -4
- package/esm2022/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +4 -4
- package/esm2022/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +4 -4
- package/esm2022/lib/components/navigation/toolbar/elder-toolbar.module.mjs +5 -5
- package/esm2022/lib/components/navigation/toolbar/elder-toolbar.service.mjs +4 -4
- package/esm2022/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +4 -4
- package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +4 -4
- package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +4 -4
- package/esm2022/lib/components/overlays/elder-overlay-origin.directive.mjs +4 -4
- package/esm2022/lib/components/overlays/elder-overlay-ref.mjs +4 -4
- package/esm2022/lib/components/overlays/elder-overlay-trigger.directive.mjs +4 -4
- package/esm2022/lib/components/overlays/elder-overlay.component.mjs +4 -4
- package/esm2022/lib/components/overlays/elder-overlay.module.mjs +5 -5
- package/esm2022/lib/components/page/exit-guard/page-exit-guard.module.mjs +5 -5
- package/esm2022/lib/components/page/exit-guard/page-exit-guard.service.mjs +4 -4
- package/esm2022/lib/components/page/exit-guard/page-exit-lock/page-exit-lock.component.mjs +4 -4
- package/esm2022/lib/components/page/exit-guard/page-exit-lock-indicator/page-exit-lock-indicator.component.mjs +4 -4
- package/esm2022/lib/components/page/exit-guard/page-exit-lock-overview/page-exit-lock-overview.component.mjs +4 -4
- package/esm2022/lib/components/panels/card-panel/elder-card-panel.component.mjs +4 -4
- package/esm2022/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +4 -4
- package/esm2022/lib/components/panels/elder-panel.module.mjs +5 -5
- package/esm2022/lib/components/panels/flat/elder-panel.component.mjs +4 -4
- package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +4 -4
- package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +10 -10
- package/esm2022/lib/components/scrollbar/elder-scrollbar.directive.mjs +4 -4
- package/esm2022/lib/components/scrollbar/elder-scrollbar.module.mjs +5 -5
- package/esm2022/lib/components/select/auto/elder-auto-select-first.directive.mjs +4 -4
- package/esm2022/lib/components/select/auto/elder-auto-select-first.service.mjs +4 -4
- package/esm2022/lib/components/select/auto/elder-auto-select-suggest-first.directive.mjs +4 -4
- package/esm2022/lib/components/select/elder-select-base.mjs +40 -24
- package/esm2022/lib/components/select/elder-select-chip.directive.mjs +10 -10
- package/esm2022/lib/components/select/elder-select-on-tab.directive.mjs +4 -4
- package/esm2022/lib/components/select/elder-select-value.directive.mjs +4 -4
- package/esm2022/lib/components/select/elder-select.module.mjs +5 -5
- package/esm2022/lib/components/select/filter/elder-chips-include-exclude.directive.mjs +4 -4
- package/esm2022/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.mjs +4 -4
- package/esm2022/lib/components/select/multi/elder-chip-select-option/elder-select-option.component.mjs +4 -4
- package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +10 -13
- package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/chip-options-provider.mjs +4 -3
- package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +22 -31
- package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +24 -37
- package/esm2022/lib/components/select/multi/elder-multi-select-form-field.mjs +4 -4
- package/esm2022/lib/components/select/multi/elder-mutli-select-all-directive.mjs +4 -4
- package/esm2022/lib/components/select/multi/elder-search-include-exclude.directive.mjs +4 -4
- package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +4 -4
- package/esm2022/lib/components/select/popup/selection-model-popup.directive.mjs +4 -4
- package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +4 -4
- package/esm2022/lib/components/select/single/elder-clear-select.directive.mjs +4 -4
- package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +30 -49
- package/esm2022/lib/components/select/single/elder-select-form-field.mjs +4 -4
- package/esm2022/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +4 -4
- package/esm2022/lib/components/select-chip-list/elder-chip-list-select.module.mjs +5 -5
- package/esm2022/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +4 -4
- package/esm2022/lib/components/shell/drawers/elder-router-outlet.service.mjs +4 -4
- package/esm2022/lib/components/shell/elder-shell-slot.directive.mjs +4 -4
- package/esm2022/lib/components/shell/elder-shell.module.mjs +5 -5
- package/esm2022/lib/components/shell/elder-shell.service.mjs +4 -4
- package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +4 -4
- package/esm2022/lib/components/shell/shell/elder-shell.component.mjs +13 -13
- package/esm2022/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +4 -4
- package/esm2022/lib/components/tabs/elder-tab/elder-tab.directive.mjs +4 -4
- package/esm2022/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +4 -4
- package/esm2022/lib/components/tabs/elder-tab.module.mjs +5 -5
- package/esm2022/lib/components/theme/elder-theme-applier.directive.mjs +4 -4
- package/esm2022/lib/components/theme/elder-theme-preference.service.mjs +4 -4
- package/esm2022/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +4 -4
- package/esm2022/lib/components/theme/elder-theme.directive.mjs +4 -4
- package/esm2022/lib/components/theme/elder-theme.module.mjs +5 -5
- package/esm2022/lib/components/theme/elder-theme.service.mjs +4 -4
- package/esm2022/lib/components/time/date-adapters/custom-date-adapter.mjs +4 -4
- package/esm2022/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +9 -16
- package/esm2022/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +4 -4
- package/esm2022/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +10 -16
- package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +12 -17
- package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker.component.mjs +4 -4
- package/esm2022/lib/components/time/elder-interval-picker/interval-picker-binding/elder-interval-picker-binding.directive.mjs +4 -4
- package/esm2022/lib/components/time/elder-interval-picker/interval-picker-toggle/elder-interval-picker-toggle.component.mjs +4 -4
- package/esm2022/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +10 -16
- package/esm2022/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +10 -16
- package/esm2022/lib/components/time/elder-time.module.mjs +5 -5
- package/esm2022/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +9 -16
- package/esm2022/lib/components/time/pipes/to-iso-date-string.pipe.mjs +4 -4
- package/esm2022/lib/components/toasts/elder-toast.module.mjs +5 -5
- package/esm2022/lib/components/toasts/elder-toast.service.mjs +4 -4
- package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +4 -4
- package/esm2022/lib/components/url-fragment/elder-url-fragment.module.mjs +5 -5
- package/esm2022/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +4 -4
- package/esm2022/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +4 -4
- package/esm2022/lib/components/viewers/elder-viewers.module.mjs +5 -5
- package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.service.mjs +4 -4
- package/esm2022/lib/features/event-source/standard/elder-event-source.service.mjs +4 -4
- package/esm2022/lib/features/kafent/access-token-provider.mjs +4 -4
- package/esm2022/lib/features/kafent/kafent-config.mjs +4 -4
- package/esm2022/lib/features/kafent/kafent-event-stream.mjs +4 -4
- package/esm2022/lib/features/kafent/kafent-event.service.mjs +4 -4
- package/esm2022/lib/features/kafent/kafent.module.mjs +5 -5
- package/esm2022/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +4 -4
- package/esm2022/lib/pipes/bytes.pipe.mjs +4 -4
- package/esm2022/lib/pipes/elder-pipes.module.mjs +11 -11
- package/esm2022/lib/pipes/elder-repeat.pipe.mjs +4 -4
- package/esm2022/lib/pipes/elder-round.pipe.mjs +4 -4
- package/esm2022/lib/pipes/elder-safe-url.pipe.mjs +4 -4
- package/esm2022/lib/pipes/elder-truncate.pipe.mjs +4 -4
- package/esm2022/lib/pipes/iso-duration.pipe.mjs +4 -4
- package/esm2022/lib/pipes/iso-interval-parse.pipe.mjs +4 -4
- package/esm2022/lib/pipes/iso-interval.pipe.mjs +4 -4
- package/esm2022/lib/pipes/time-ago.pipe.mjs +4 -4
- package/esm2022/lib/pipes/time-duration.pipe.mjs +4 -4
- package/esm2022/lib/pipes/weight.pipe.mjs +4 -4
- package/fesm2022/elderbyte-ngx-starter.mjs +1256 -1313
- package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
- package/lib/common/forms/elder-form-field-control-base.directive.d.ts +14 -18
- package/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.d.ts +3 -7
- package/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.d.ts +3 -7
- package/lib/components/select/elder-select-base.d.ts +13 -12
- package/lib/components/select/multi/elder-multi-select-base.d.ts +2 -7
- package/lib/components/select/multi/elder-multi-select-chip-options/chip-options-provider.d.ts +2 -1
- package/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.d.ts +5 -9
- package/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.d.ts +7 -11
- package/lib/components/select/single/elder-select/elder-select.component.d.ts +8 -15
- package/lib/components/time/duration/elder-duration-input/elder-duration-input.component.d.ts +2 -7
- package/lib/components/time/elder-date-time-input/elder-date-time-input.component.d.ts +3 -7
- package/lib/components/time/elder-interval-input/elder-interval-input.component.d.ts +3 -7
- package/lib/components/time/elder-local-date-input/elder-local-date-input.component.d.ts +3 -7
- package/lib/components/time/elder-local-time-input/elder-local-time-input.component.d.ts +3 -7
- package/lib/components/time/period/elder-period-input/elder-period-input.component.d.ts +2 -7
- package/package.json +1 -1
- package/src/lib/components/select/multi/elder-select-include-exclude-chip/elder-select-include-exclude-chip.component.scss +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, forwardRef, HostBinding, Input,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, forwardRef, HostBinding, Input, Output, ViewChild, ViewEncapsulation, signal, untracked, computed, } from '@angular/core';
|
|
2
2
|
import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
3
|
-
import {
|
|
4
|
-
import { map,
|
|
3
|
+
import { EMPTY } from 'rxjs';
|
|
4
|
+
import { map, skip, filter, switchMap, take, timeout, catchError, } from 'rxjs/operators';
|
|
5
5
|
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
6
6
|
import { MatAutocompleteTrigger } from '@angular/material/autocomplete';
|
|
7
7
|
import { ELDER_SELECT_BASE, ElderSelectBase, ElderSelectComponentState, } from '../../elder-select-base';
|
|
@@ -15,13 +15,12 @@ import { ElderSelectOnTabDirective } from '../../elder-select-on-tab.directive';
|
|
|
15
15
|
import { MatInput } from '@angular/material/input';
|
|
16
16
|
import { MatTooltip } from '@angular/material/tooltip';
|
|
17
17
|
import { MatIcon } from '@angular/material/icon';
|
|
18
|
-
import { AsyncPipe } from '@angular/common';
|
|
19
18
|
import { ElderSuggestionPanelComponent } from '../../../input/autocomplete/elder-autocomplete/elder-suggestion-panel.component';
|
|
20
19
|
import { ElderAutoSelectSuggestFirstDirective } from '../../auto/elder-auto-select-suggest-first.directive';
|
|
20
|
+
import { toObservable } from '@angular/core/rxjs-interop';
|
|
21
21
|
import * as i0 from "@angular/core";
|
|
22
|
-
import * as i1 from "@angular/
|
|
22
|
+
import * as i1 from "@angular/forms";
|
|
23
23
|
import * as i2 from "@ngx-translate/core";
|
|
24
|
-
import * as i3 from "@angular/forms";
|
|
25
24
|
class EntityContext {
|
|
26
25
|
constructor(value, displayText, displayRemove) {
|
|
27
26
|
this.value = value;
|
|
@@ -45,9 +44,8 @@ export class ElderSelectComponent extends ElderSelectBase {
|
|
|
45
44
|
* Constructor *
|
|
46
45
|
* *
|
|
47
46
|
**************************************************************************/
|
|
48
|
-
constructor(
|
|
49
|
-
super(
|
|
50
|
-
this.ngControl = ngControl;
|
|
47
|
+
constructor() {
|
|
48
|
+
super('single-select');
|
|
51
49
|
/***************************************************************************
|
|
52
50
|
* *
|
|
53
51
|
* Fields *
|
|
@@ -59,25 +57,25 @@ export class ElderSelectComponent extends ElderSelectBase {
|
|
|
59
57
|
* String to display for the 'nothing' / null value.
|
|
60
58
|
*/
|
|
61
59
|
this.nullDisplay = '-';
|
|
62
|
-
this.
|
|
60
|
+
this.entityS = signal(undefined);
|
|
61
|
+
this.entity$ = toObservable(this.entityS);
|
|
63
62
|
this._autocomplete = false;
|
|
63
|
+
this.entityWrapped = computed(() => this.buildEntityContext(this.entityS(), this.displayPropertyResolverS()));
|
|
64
|
+
this.inputText = computed(() => {
|
|
65
|
+
const ctx = this.entityWrapped();
|
|
66
|
+
return ctx.value ? ctx.displayText : null;
|
|
67
|
+
});
|
|
64
68
|
this.entityIdChange = this.valueChange.pipe(map((v) => this.entityIdFromValue(v)));
|
|
65
|
-
this.entityChange = this.
|
|
69
|
+
this.entityChange = this.entity$.pipe(skip(1) // Skip the initial or current value
|
|
66
70
|
);
|
|
67
71
|
this.entityIdUpdated = this.valueUpdated.pipe(map((value) => this.entityIdFromValue(value)));
|
|
68
72
|
this.entityUpdated = this.entityIdUpdated.pipe(switchMap((entityId) => this.awaitEntityWithId(entityId, this.timeoutAfterMs)), catchError((err) => {
|
|
69
73
|
this.logger.warn(`awaitEntityWithId -> timed out after: ${this.timeoutAfterMs}`, err);
|
|
70
74
|
return EMPTY;
|
|
71
75
|
}));
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
return valueContext.displayText;
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
return null;
|
|
79
|
-
}
|
|
80
|
-
}));
|
|
76
|
+
}
|
|
77
|
+
buildEntityContext(entity, displayPropertyFn) {
|
|
78
|
+
return new EntityContext(entity, displayPropertyFn(entity), entity && this.allowNull);
|
|
81
79
|
}
|
|
82
80
|
/***************************************************************************
|
|
83
81
|
* *
|
|
@@ -85,7 +83,6 @@ export class ElderSelectComponent extends ElderSelectBase {
|
|
|
85
83
|
* *
|
|
86
84
|
**************************************************************************/
|
|
87
85
|
ngOnDestroy() {
|
|
88
|
-
super.ngOnDestroy();
|
|
89
86
|
this.autoCleanUp();
|
|
90
87
|
}
|
|
91
88
|
/***************************************************************************
|
|
@@ -134,18 +131,12 @@ export class ElderSelectComponent extends ElderSelectBase {
|
|
|
134
131
|
* *
|
|
135
132
|
**************************************************************************/
|
|
136
133
|
set entity(entity) {
|
|
137
|
-
this.
|
|
134
|
+
this.entityS.set(entity);
|
|
138
135
|
this.writeValueInternal(this.entityToValue(entity));
|
|
139
136
|
this.onEntityValueReady();
|
|
140
137
|
}
|
|
141
138
|
get entity() {
|
|
142
|
-
return this.
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Gets the current entity as observable stream. (BehaviourSubject)
|
|
146
|
-
*/
|
|
147
|
-
get entity$() {
|
|
148
|
-
return this._entity$.asObservable();
|
|
139
|
+
return untracked(this.entityS);
|
|
149
140
|
}
|
|
150
141
|
set entityId(id) {
|
|
151
142
|
if (this.valueAsId) {
|
|
@@ -165,12 +156,7 @@ export class ElderSelectComponent extends ElderSelectBase {
|
|
|
165
156
|
**************************************************************************/
|
|
166
157
|
onInputBlur(event) {
|
|
167
158
|
const input = event.target;
|
|
168
|
-
|
|
169
|
-
input.value = this.entityContext.displayText;
|
|
170
|
-
}
|
|
171
|
-
else {
|
|
172
|
-
input.value = null;
|
|
173
|
-
}
|
|
159
|
+
input.value = untracked(this.inputText);
|
|
174
160
|
}
|
|
175
161
|
onInputFocus(autoTrigger) {
|
|
176
162
|
if (!this._autocomplete) {
|
|
@@ -261,7 +247,7 @@ export class ElderSelectComponent extends ElderSelectBase {
|
|
|
261
247
|
this.updateValue(null);
|
|
262
248
|
}
|
|
263
249
|
updateValueByEntity(entity) {
|
|
264
|
-
this.
|
|
250
|
+
this.entityS.set(entity);
|
|
265
251
|
this.updateValue(this.entityToValue(entity));
|
|
266
252
|
}
|
|
267
253
|
focus(options) {
|
|
@@ -379,7 +365,7 @@ export class ElderSelectComponent extends ElderSelectBase {
|
|
|
379
365
|
const newEntity = value;
|
|
380
366
|
this.logger.debug('writeToControl: value was written as entity: ' + JSON.stringify(newEntity), value);
|
|
381
367
|
if (!this.isEqual(currentEntity, newEntity)) {
|
|
382
|
-
this.
|
|
368
|
+
this.entityS.set(newEntity);
|
|
383
369
|
}
|
|
384
370
|
else {
|
|
385
371
|
this.logger.warn('Ignored written entity as it is already set to entity$!');
|
|
@@ -387,16 +373,16 @@ export class ElderSelectComponent extends ElderSelectBase {
|
|
|
387
373
|
}
|
|
388
374
|
super.writeToControl(value);
|
|
389
375
|
}
|
|
390
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
391
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
376
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
377
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ElderSelectComponent, isStandalone: true, selector: "elder-select", inputs: { nullDisplay: "nullDisplay", autocomplete: "autocomplete", allowNull: "allowNull", entity: "entity", entityId: "entityId" }, outputs: { entityIdChange: "entityIdChange", entityIdUpdated: "entityIdUpdated", entityChange: "entityChange", entityUpdated: "entityUpdated" }, host: { properties: { "class": "this.hostClass", "class.mat-select-disabled": "this.disabledClass", "class.mat-select-invalid": "this.errorStateClass", "class.mat-select-required": "this.requiredClass", "class.mat-select-empty": "this.emptyClass" } }, providers: [
|
|
392
378
|
{ provide: MatFormFieldControl, useExisting: ElderSelectComponent },
|
|
393
379
|
{
|
|
394
380
|
provide: ELDER_SELECT_BASE,
|
|
395
381
|
useExisting: forwardRef(() => ElderSelectComponent),
|
|
396
382
|
},
|
|
397
|
-
], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (entityWrapped
|
|
383
|
+
], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (entityWrapped(); as entityWrapper) {\n <div class=\"layout-row place-start-center elder-flex-control\">\n @if (state(); as state) {\n @if (state?.error || icon) {\n <div class=\"elder-input-prefix-icon-container flex-none\">\n @if (icon) {\n <mat-icon\n disabled\n class=\"elder-mdc-control-icon elder-icon-small noselect clickable-icon\"\n [class.loading]=\"state.loading\"\n [color]=\"state?.error ? 'warn' : focused ? 'primary' : undefined\"\n (click)=\"onCurrentClicked(entity)\"\n >\n {{ icon }}\n </mat-icon>\n } @else if (state?.error) {\n <mat-icon\n class=\"elder-mdc-control-icon elder-icon-small noselect\"\n color=\"warn\"\n [matTooltip]=\"state?.error\"\n >\n warning\n </mat-icon>\n }\n </div>\n }\n }\n\n <!-- A dynamic input -->\n <input\n #input\n matInput\n type=\"text\"\n class=\"flex-grow elder-select-input mdc-text-field__input\"\n [disabled]=\"!!disabled\"\n [required]=\"!!required\"\n [readonly]=\"readonly || !autocomplete\"\n [name]=\"ngControl?.name + '-inner-input'\"\n [placeholder]=\"placeholderS() | translate\"\n [matAutocomplete]\n #autoTrigger=\"matAutocompleteTrigger\"\n [elderAutocomplete]=\"elderAuto\"\n [queryFilter]=\"queryFilter\"\n [filters]=\"filters\"\n [sorts]=\"sorts\"\n elderSelectOnTab\n [class.elder-select-dropdown-input]=\"!autocomplete\"\n [ngModel]=\"inputText()\"\n [ngModelOptions]=\"{ standalone: true, updateOn: 'submit' }\"\n (blur)=\"onInputBlur($event)\"\n (focus)=\"onInputFocus(autoTrigger)\"\n (click)=\"onInputClicked(autoTrigger)\"\n />\n\n <elder-suggestion-panel\n #elderAuto=\"elderSuggestionPanel\"\n [dataSource]=\"dataContextS()?.dataSource\"\n [valueTemplate]=\"valueTemplate\"\n enabled\n [displayPropertyResolver]=\"displayPropertyResolverS()\"\n [isOptionDisabledFn]=\"isOptionDisabledInternalFn\"\n [isOptionHiddenFn]=\"isOptionHiddenInternalFn\"\n elderAutoSelectSuggestFirst\n (optionSelected)=\"onOptionSelected($any($event))\"\n ></elder-suggestion-panel>\n\n <div class=\"layout-row place-start-center flex-none\">\n @if (!selectionPopup && !autocomplete && !entityWrapper.displayRemove) {\n <mat-icon\n class=\"elder-mdc-control-icon elder-select-arrow noselect\"\n (click)=\"onInputClicked(autoTrigger)\"\n >\n arrow_drop_down\n </mat-icon>\n }\n\n @if (selectionPopup && !entityWrapper.displayRemove) {\n <button\n mat-icon-button\n type=\"button\"\n class=\"elder-control-icon-button\"\n [disabled]=\"isLocked\"\n (click)=\"openSelectionPopup($event)\"\n aria-label=\"Search\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon class=\"elder-mdc-control-icon\">search</mat-icon>\n </button>\n }\n\n @if (entityWrapper.displayRemove && !this.readonlyS()) {\n <button\n mat-icon-button\n type=\"button\"\n class=\"elder-control-icon-button\"\n [disabled]=\"isLockedS()\"\n (click)=\"clear($event)\"\n aria-label=\"Clear\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon class=\"elder-mdc-control-icon\">close</mat-icon>\n </button>\n }\n </div>\n </div>\n}\n", styles: ["@keyframes shrink{0%{transform:scale(1)}to{transform:scale(.75)}}.loading{animation:shrink .3s ease-in-out infinite alternate;-webkit-animation:shrink .3s ease-in-out infinite alternate}.clickable-icon{cursor:pointer}.full-width{width:100%}.elder-select-dropdown-input{cursor:pointer}\n"], dependencies: [{ kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ElderSelectOnTabDirective, selector: "[elderSelectOnTab]" }, { kind: "directive", type: ElderAutocompleteDirective, selector: "[elderAutocomplete]", inputs: ["queryFilter", "filters", "sorts", "elderAutocomplete"] }, { kind: "component", type: ElderSuggestionPanelComponent, selector: "elder-suggestion-panel", inputs: ["isOptionDisabledFn", "isOptionHiddenFn", "optionValueConverterFn", "enabled", "valueTemplate", "dataSource", "displayPropertyResolver"], outputs: ["optionSelected"], exportAs: ["elderSuggestionPanel"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: ElderStopEventPropagationDirective, selector: "[elderStopEventPropagation]" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "directive", type: ElderAutoSelectSuggestFirstDirective, selector: "[elderAutoSelectSuggestFirst]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
398
384
|
}
|
|
399
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
385
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderSelectComponent, decorators: [{
|
|
400
386
|
type: Component,
|
|
401
387
|
args: [{ selector: 'elder-select', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
402
388
|
{ provide: MatFormFieldControl, useExisting: ElderSelectComponent },
|
|
@@ -415,15 +401,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
415
401
|
ElderSuggestionPanelComponent,
|
|
416
402
|
MatIconButton,
|
|
417
403
|
ElderStopEventPropagationDirective,
|
|
418
|
-
AsyncPipe,
|
|
419
404
|
TranslateModule,
|
|
420
405
|
ElderAutoSelectSuggestFirstDirective,
|
|
421
|
-
], template: "@if (entityWrapped
|
|
422
|
-
}], ctorParameters: () => [
|
|
423
|
-
type: Optional
|
|
424
|
-
}, {
|
|
425
|
-
type: Self
|
|
426
|
-
}] }], propDecorators: { inputRef: [{
|
|
406
|
+
], template: "@if (entityWrapped(); as entityWrapper) {\n <div class=\"layout-row place-start-center elder-flex-control\">\n @if (state(); as state) {\n @if (state?.error || icon) {\n <div class=\"elder-input-prefix-icon-container flex-none\">\n @if (icon) {\n <mat-icon\n disabled\n class=\"elder-mdc-control-icon elder-icon-small noselect clickable-icon\"\n [class.loading]=\"state.loading\"\n [color]=\"state?.error ? 'warn' : focused ? 'primary' : undefined\"\n (click)=\"onCurrentClicked(entity)\"\n >\n {{ icon }}\n </mat-icon>\n } @else if (state?.error) {\n <mat-icon\n class=\"elder-mdc-control-icon elder-icon-small noselect\"\n color=\"warn\"\n [matTooltip]=\"state?.error\"\n >\n warning\n </mat-icon>\n }\n </div>\n }\n }\n\n <!-- A dynamic input -->\n <input\n #input\n matInput\n type=\"text\"\n class=\"flex-grow elder-select-input mdc-text-field__input\"\n [disabled]=\"!!disabled\"\n [required]=\"!!required\"\n [readonly]=\"readonly || !autocomplete\"\n [name]=\"ngControl?.name + '-inner-input'\"\n [placeholder]=\"placeholderS() | translate\"\n [matAutocomplete]\n #autoTrigger=\"matAutocompleteTrigger\"\n [elderAutocomplete]=\"elderAuto\"\n [queryFilter]=\"queryFilter\"\n [filters]=\"filters\"\n [sorts]=\"sorts\"\n elderSelectOnTab\n [class.elder-select-dropdown-input]=\"!autocomplete\"\n [ngModel]=\"inputText()\"\n [ngModelOptions]=\"{ standalone: true, updateOn: 'submit' }\"\n (blur)=\"onInputBlur($event)\"\n (focus)=\"onInputFocus(autoTrigger)\"\n (click)=\"onInputClicked(autoTrigger)\"\n />\n\n <elder-suggestion-panel\n #elderAuto=\"elderSuggestionPanel\"\n [dataSource]=\"dataContextS()?.dataSource\"\n [valueTemplate]=\"valueTemplate\"\n enabled\n [displayPropertyResolver]=\"displayPropertyResolverS()\"\n [isOptionDisabledFn]=\"isOptionDisabledInternalFn\"\n [isOptionHiddenFn]=\"isOptionHiddenInternalFn\"\n elderAutoSelectSuggestFirst\n (optionSelected)=\"onOptionSelected($any($event))\"\n ></elder-suggestion-panel>\n\n <div class=\"layout-row place-start-center flex-none\">\n @if (!selectionPopup && !autocomplete && !entityWrapper.displayRemove) {\n <mat-icon\n class=\"elder-mdc-control-icon elder-select-arrow noselect\"\n (click)=\"onInputClicked(autoTrigger)\"\n >\n arrow_drop_down\n </mat-icon>\n }\n\n @if (selectionPopup && !entityWrapper.displayRemove) {\n <button\n mat-icon-button\n type=\"button\"\n class=\"elder-control-icon-button\"\n [disabled]=\"isLocked\"\n (click)=\"openSelectionPopup($event)\"\n aria-label=\"Search\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon class=\"elder-mdc-control-icon\">search</mat-icon>\n </button>\n }\n\n @if (entityWrapper.displayRemove && !this.readonlyS()) {\n <button\n mat-icon-button\n type=\"button\"\n class=\"elder-control-icon-button\"\n [disabled]=\"isLockedS()\"\n (click)=\"clear($event)\"\n aria-label=\"Clear\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon class=\"elder-mdc-control-icon\">close</mat-icon>\n </button>\n }\n </div>\n </div>\n}\n", styles: ["@keyframes shrink{0%{transform:scale(1)}to{transform:scale(.75)}}.loading{animation:shrink .3s ease-in-out infinite alternate;-webkit-animation:shrink .3s ease-in-out infinite alternate}.clickable-icon{cursor:pointer}.full-width{width:100%}.elder-select-dropdown-input{cursor:pointer}\n"] }]
|
|
407
|
+
}], ctorParameters: () => [], propDecorators: { inputRef: [{
|
|
427
408
|
type: ViewChild,
|
|
428
409
|
args: ['input']
|
|
429
410
|
}], nullDisplay: [{
|
|
@@ -460,4 +441,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
460
441
|
}], entityId: [{
|
|
461
442
|
type: Input
|
|
462
443
|
}] } });
|
|
463
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L3NpbmdsZS9lbGRlci1zZWxlY3QvZWxkZXItc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L3NpbmdsZS9lbGRlci1zZWxlY3QvZWxkZXItc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsRUFDVCxpQkFBaUIsR0FFbEIsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRXBELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBYyxNQUFNLE1BQU0sQ0FBQTtBQUN4RSxPQUFPLEVBQ0wsR0FBRyxFQUNILFNBQVMsRUFDVCxHQUFHLEVBQ0gsSUFBSSxFQUNKLE1BQU0sRUFDTixTQUFTLEVBQ1QsSUFBSSxFQUNKLE9BQU8sRUFDUCxVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2QixPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDM0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUE7QUFDdkUsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixlQUFlLEVBQ2YseUJBQXlCLEdBQzFCLE1BQU0seUJBQXlCLENBQUE7QUFFaEMsT0FBTyxF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QkFBNkI7d0JBQzdCLGFBQWE7d0JBQ2Isa0NBQWtDO3dCQUNsQyxTQUFTO3dCQUNULGVBQWU7d0JBQ2Ysb0NBQW9DO3FCQUNyQzs7MEJBa0VFLFFBQVE7OzBCQUFJLElBQUk7eUNBakRaLFFBQVE7c0JBRGQsU0FBUzt1QkFBQyxPQUFPO2dCQU9YLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSVUsY0FBYztzQkFEN0IsTUFBTTtnQkFRUyxlQUFlO3NCQUQ5QixNQUFNO2dCQUlTLFlBQVk7c0JBRDNCLE1BQU07Z0JBUVMsYUFBYTtzQkFENUIsTUFBTTtnQkE4RW1CLFNBQVM7c0JBQWxDLFdBQVc7dUJBQUMsT0FBTztnQkFJMEIsYUFBYTtzQkFBMUQsV0FBVzt1QkFBQywyQkFBMkI7Z0JBSUssZUFBZTtzQkFBM0QsV0FBVzt1QkFBQywwQkFBMEI7Z0JBSU8sYUFBYTtzQkFBMUQsV0FBVzt1QkFBQywyQkFBMkI7Z0JBSUcsVUFBVTtzQkFBcEQsV0FBVzt1QkFBQyx3QkFBd0I7Z0JBVzFCLFlBQVk7c0JBRHRCLEtBQUs7Z0JBYUssU0FBUztzQkFEbkIsS0FBSztnQkFnQkssTUFBTTtzQkFEaEIsS0FBSztnQkFtQkssUUFBUTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTZWxmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBMb2dnZXJGYWN0b3J5IH0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInXG5pbXBvcnQgeyBJRGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZGF0YS9kYXRhLWNvbnRleHQvZGF0YS1jb250ZXh0J1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBFTVBUWSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBtYXAsXG4gIHRha2VVbnRpbCxcbiAgdGFwLFxuICBza2lwLFxuICBmaWx0ZXIsXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGltZW91dCxcbiAgY2F0Y2hFcnJvcixcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbidcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnXG5pbXBvcnQge1xuICBFTERFUl9TRUxFQ1RfQkFTRSxcbiAgRWxkZXJTZWxlY3RCYXNlLFxuICBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlLFxufSBmcm9tICcuLi8uLi9lbGRlci1zZWxlY3QtYmFzZSdcbmltcG9ydCB7IElFbGRlckVudGl0eVZhbHVlQWNjZXNzb3IgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZm9ybXMvZWxkZXItZW50aXR5LXZhbHVlLWFjY2Vzc29yJ1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnXG5pbXBvcnQgeyBOZ0NvbnRyb2wsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBGb2N1c01vbml0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSdcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UsIFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBFbGRlckF1dG9jb21wbGV0ZU9wdGlvblNlbGVjdGVkIH0gZnJvbSAnLi4vLi4vLi4vaW5wdXQvYXV0b2NvbXBsZXRlL2VsZGVyLWF1dG9jb21wbGV0ZS9lbGRlci1hdXRvY29tcGxldGUtb3B0aW9uLXNlbGVjdGVkJ1xuaW1wb3J0IHsgRWxkZXJTdG9wRXZlbnRQcm9wYWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2Zvcm1zL2RpcmVjdGl2ZXMvZWxkZXItc3RvcC1ldmVudC1wcm9wYWdhdGlvbi5kaXJlY3RpdmUnXG5pbXBvcnQgeyBNYXRJY29uQnV0dG9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJ1xuaW1wb3J0IHsgRWxkZXJBdXRvY29tcGxldGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9pbnB1dC9hdXRvY29tcGxldGUvZWxkZXItYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZSdcbmltcG9ydCB7IEVsZGVyU2VsZWN0T25UYWJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9lbGRlci1zZWxlY3Qtb24tdGFiLmRpcmVjdGl2ZSdcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnXG5pbXBvcnQgeyBNYXRUb29sdGlwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCdcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgRWxkZXJTdWdnZXN0aW9uUGFuZWxDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9pbnB1dC9hdXRvY29tcGxldGUvZWxkZXItYXV0b2NvbXBsZXRlL2VsZGVyLXN1Z2dlc3Rpb24tcGFuZWwuY29tcG9uZW50J1xuaW1wb3J0IHsgRWxkZXJBdXRvU2VsZWN0U3VnZ2VzdEZpcnN0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vYXV0by9lbGRlci1hdXRvLXNlbGVjdC1zdWdnZXN0LWZpcnN0LmRpcmVjdGl2ZSdcblxuY2xhc3MgRW50aXR5Q29udGV4dDxUPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZTogVCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheVRleHQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheVJlbW92ZTogYm9vbGVhblxuICApIHt9XG59XG5cbi8qKlxuICogVGhlIGVsZGVyLXNlbGVjdCBjb250cm9sIGFsbG93cyB0byBzZWxlY3QgYSBzaW5nbGVcbiAqIGVudGl0eS5cbiAqXG4gKiBQcmltYXJ5IGZvY3VzIGlzIG9uIGVhc3kgdXNhZ2UgZm9yIGNvbW1vbiBzY2VuYXJpb3M6XG4gKlxuICogLSBJbnRlZ3JhdGVkIGludG8gYW5ndWxhciBmb3JtcyBhbmQgdmFsaWRhdGlvblxuICogLSBTdXBwb3J0IGVudGl0eSBpZCBoYW5kbGluZywgaW5wdXQgLyBvdXRwdXQgaXMgdGhlIGVudGl0eSBpZCB2cyBmdWxsIHZhbHVlLlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWxkZXItc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZGVyLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogRWxkZXJTZWxlY3RDb21wb25lbnQgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBFTERFUl9TRUxFQ1RfQkFTRSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVsZGVyU2VsZWN0Q29tcG9uZW50KSxcbiAgICB9LFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0SWNvbixcbiAgICBNYXRUb29sdGlwLFxuICAgIE1hdElucHV0LFxuICAgIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgRWxkZXJTZWxlY3RPblRhYkRpcmVjdGl2ZSxcbiAgICBFbGRlckF1dG9jb21wbGV0ZURpcmVjdGl2ZSxcbiAgICBFbGRlclN1Z2dlc3Rpb25QYW5lbENvbXBvbmVudCxcbiAgICBNYXRJY29uQnV0dG9uLFxuICAgIEVsZGVyU3RvcEV2ZW50UHJvcGFnYXRpb25EaXJlY3RpdmUsXG4gICAgQXN5bmNQaXBlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBFbGRlckF1dG9TZWxlY3RTdWdnZXN0Rmlyc3REaXJlY3RpdmUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyU2VsZWN0Q29tcG9uZW50PFRFbnRpdHkgPSBhbnksIFRJZCA9IGFueSwgVFZhbHVlID0gVEVudGl0eSB8IFRJZD5cbiAgZXh0ZW5kcyBFbGRlclNlbGVjdEJhc2U8VElkLCBURW50aXR5LCBUVmFsdWU+XG4gIGltcGxlbWVudHMgSUVsZGVyRW50aXR5VmFsdWVBY2Nlc3NvcjxURW50aXR5LCBUSWQsIFRWYWx1ZT4sIE9uRGVzdHJveVxue1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSlcblxuICBwcml2YXRlIF9hbGxvd051bGwgPSBmYWxzZVxuXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JylcbiAgcHVibGljIGlucHV0UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+XG5cbiAgLyoqXG4gICAqIFN0cmluZyB0byBkaXNwbGF5IGZvciB0aGUgJ25vdGhpbmcnIC8gbnVsbCB2YWx1ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBudWxsRGlzcGxheSA9ICctJ1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgZW50aXR5SWRDaGFuZ2U6IE9ic2VydmFibGU8VElkPlxuXG4gIC8qKlxuICAgKiBTaW1pbGFyIHRvIGVudGl0eS1pZCBjaGFuZ2UsIGJ1dCBlbWl0cyBvbmx5IHdoZW4gdGhlIHVzZXJcbiAgICogaGFzIHVwZGF0ZWQgdGhlIHZhbHVlLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBlbnRpdHlJZFVwZGF0ZWQ6IE9ic2VydmFibGU8VElkPlxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgZW50aXR5Q2hhbmdlOiBPYnNlcnZhYmxlPFRFbnRpdHk+XG5cbiAgLyoqXG4gICAqIFNpbWlsYXIgdG8gZW50aXR5IGNoYW5nZSwgYnV0IGVtaXRzIG9ubHkgd2hlbiB0aGUgdXNlclxuICAgKiBoYXMgdXBkYXRlZCB0aGUgdmFsdWUuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGVudGl0eVVwZGF0ZWQ6IE9ic2VydmFibGU8VEVudGl0eT5cblxuICBwcml2YXRlIHJlYWRvbmx5IF9lbnRpdHkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxURW50aXR5Pih1bmRlZmluZWQpXG5cbiAgcHJpdmF0ZSBfYXV0b2NvbXBsZXRlID0gZmFsc2VcblxuICBwdWJsaWMgcmVhZG9ubHkgZW50aXR5V3JhcHBlZCQ6IE9ic2VydmFibGU8RW50aXR5Q29udGV4dDxURW50aXR5Pj5cblxuICBwdWJsaWMgcmVhZG9ubHkgaW5wdXRUZXh0JDogT2JzZXJ2YWJsZTxzdHJpbmc+XG5cbiAgcHJpdmF0ZSBlbnRpdHlDb250ZXh0OiBFbnRpdHlDb250ZXh0PFRFbnRpdHk+XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgaG9zdFJlZjogRWxlbWVudFJlZixcbiAgICB6b25lOiBOZ1pvbmUsXG4gICAgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbFxuICApIHtcbiAgICBzdXBlcih6b25lLCBob3N0UmVmLCAnc2luZ2xlLXNlbGVjdCcsIGZvY3VzTW9uaXRvciwgdHJhbnNsYXRlU2VydmljZSwgbmdDb250cm9sKVxuXG4gICAgdGhpcy5lbnRpdHlJZENoYW5nZSA9IHRoaXMudmFsdWVDaGFuZ2UucGlwZShtYXAoKHYpID0+IHRoaXMuZW50aXR5SWRGcm9tVmFsdWUodikpKVxuXG4gICAgdGhpcy5lbnRpdHlDaGFuZ2UgPSB0aGlzLl9lbnRpdHkkLnBpcGUoXG4gICAgICBza2lwKDEpIC8vIFNraXAgdGhlIGluaXRpYWwgb3IgY3VycmVudCB2YWx1ZVxuICAgIClcblxuICAgIHRoaXMuZW50aXR5SWRVcGRhdGVkID0gdGhpcy52YWx1ZVVwZGF0ZWQucGlwZShtYXAoKHZhbHVlKSA9PiB0aGlzLmVudGl0eUlkRnJvbVZhbHVlKHZhbHVlKSkpXG5cbiAgICB0aGlzLmVudGl0eVVwZGF0ZWQgPSB0aGlzLmVudGl0eUlkVXBkYXRlZC5waXBlKFxuICAgICAgc3dpdGNoTWFwKChlbnRpdHlJZCkgPT4gdGhpcy5hd2FpdEVudGl0eVdpdGhJZChlbnRpdHlJZCwgdGhpcy50aW1lb3V0QWZ0ZXJNcykpLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oYGF3YWl0RW50aXR5V2l0aElkIC0+IHRpbWVkIG91dCBhZnRlcjogJHt0aGlzLnRpbWVvdXRBZnRlck1zfWAsIGVycilcbiAgICAgICAgcmV0dXJuIEVNUFRZXG4gICAgICB9KVxuICAgIClcblxuICAgIHRoaXMuZW50aXR5V3JhcHBlZCQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLl9lbnRpdHkkLCB0aGlzLmRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyJF0pLnBpcGUoXG4gICAgICBtYXAoKFt2YWx1ZSwgZFBSXSkgPT4gbmV3IEVudGl0eUNvbnRleHQ8VEVudGl0eT4odmFsdWUsIGRQUih2YWx1ZSksIHZhbHVlICYmIHRoaXMuYWxsb3dOdWxsKSlcbiAgICApXG5cbiAgICB0aGlzLmlucHV0VGV4dCQgPSB0aGlzLmVudGl0eVdyYXBwZWQkLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXG4gICAgICB0YXAoKHZhbHVlQ29udGV4dCkgPT4gKHRoaXMuZW50aXR5Q29udGV4dCA9IHZhbHVlQ29udGV4dCkpLFxuICAgICAgbWFwKCh2YWx1ZUNvbnRleHQpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlQ29udGV4dC52YWx1ZSkge1xuICAgICAgICAgIHJldHVybiB2YWx1ZUNvbnRleHQuZGlzcGxheVRleHRcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpXG4gICAgdGhpcy5hdXRvQ2xlYW5VcCgpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogSG9zdCBCaW5kaW5ncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGhvc3RDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiAnZWxkZXItc2VsZWN0LWJhc2UgZWxkZXItc2VsZWN0J1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tYXQtc2VsZWN0LWRpc2FibGVkJykgZ2V0IGRpc2FibGVkQ2xhc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWRcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MubWF0LXNlbGVjdC1pbnZhbGlkJykgZ2V0IGVycm9yU3RhdGVDbGFzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lcnJvclN0YXRlXG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1hdC1zZWxlY3QtcmVxdWlyZWQnKSBnZXQgcmVxdWlyZWRDbGFzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1aXJlZFxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tYXQtc2VsZWN0LWVtcHR5JykgZ2V0IGVtcHR5Q2xhc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW1wdHlcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBCZWhhdmlvdXIgUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYXV0b2NvbXBsZXRlKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9hdXRvY29tcGxldGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpXG4gIH1cblxuICBwdWJsaWMgZ2V0IGF1dG9jb21wbGV0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fYXV0b2NvbXBsZXRlXG4gIH1cblxuICAvKipcbiAgICogQWxsb3dzIHRoZSB1c2VyIHRvIHNlbGVjdCAnbm90aGluZycgLyBudWxsLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhbGxvd051bGwodmFsOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9hbGxvd051bGwgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsKVxuICB9XG5cbiAgcHVibGljIGdldCBhbGxvd051bGwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FsbG93TnVsbFxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBlbnRpdHkoZW50aXR5OiBURW50aXR5KSB7XG4gICAgdGhpcy5fZW50aXR5JC5uZXh0KGVudGl0eSlcbiAgICB0aGlzLndyaXRlVmFsdWVJbnRlcm5hbCh0aGlzLmVudGl0eVRvVmFsdWUoZW50aXR5KSlcbiAgICB0aGlzLm9uRW50aXR5VmFsdWVSZWFkeSgpXG4gIH1cblxuICBwdWJsaWMgZ2V0IGVudGl0eSgpOiBURW50aXR5IHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5JC5nZXRWYWx1ZSgpXG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgY3VycmVudCBlbnRpdHkgYXMgb2JzZXJ2YWJsZSBzdHJlYW0uIChCZWhhdmlvdXJTdWJqZWN0KVxuICAgKi9cbiAgcHVibGljIGdldCBlbnRpdHkkKCk6IE9ic2VydmFibGU8VEVudGl0eT4ge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdHkkLmFzT2JzZXJ2YWJsZSgpXG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGVudGl0eUlkKGlkOiBUSWQpIHtcbiAgICBpZiAodGhpcy52YWx1ZUFzSWQpIHtcbiAgICAgIHRoaXMud3JpdGVWYWx1ZUludGVybmFsKCg8YW55PmlkKSBhcyBUVmFsdWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0RW50aXR5QnlJZChpZClcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVudGl0eUlkKCk6IFRJZCB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXR5SWRGcm9tVmFsdWUodGhpcy52YWx1ZSlcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBvbklucHV0Qmx1cihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnRcbiAgICBpZiAodGhpcy5lbnRpdHlDb250ZXh0LnZhbHVlKSB7XG4gICAgICBpbnB1dC52YWx1ZSA9IHRoaXMuZW50aXR5Q29udGV4dC5kaXNwbGF5VGV4dFxuICAgIH0gZWxzZSB7XG4gICAgICBpbnB1dC52YWx1ZSA9IG51bGxcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25JbnB1dEZvY3VzKGF1dG9UcmlnZ2VyOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9hdXRvY29tcGxldGUpIHtcbiAgICAgIHRoaXMub3BlblBhbmVsKGF1dG9UcmlnZ2VyKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNPcHRpb25EaXNhYmxlZEludGVybmFsRm4oKTogKG9wdGlvbjogVEVudGl0eSkgPT4gYm9vbGVhbiB7XG4gICAgcmV0dXJuIChvcHRpb246IFRFbnRpdHkpID0+IHtcbiAgICAgIGlmICghdGhpcy5pc0VudGl0eVNlbGVjdGVkKG9wdGlvbikpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNPcHRpb25EaXNhYmxlZEZuKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaXNPcHRpb25EaXNhYmxlZEZuKG9wdGlvbilcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzT3B0aW9uSGlkZGVuSW50ZXJuYWxGbigpOiAob3B0aW9uOiBURW50aXR5KSA9PiBib29sZWFuIHtcbiAgICByZXR1cm4gKG9wdGlvbjogVEVudGl0eSkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNPcHRpb25IaWRkZW5Gbikge1xuICAgICAgICByZXR1cm4gdGhpcy5pc09wdGlvbkhpZGRlbkZuKG9wdGlvbilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVQYW5lbChhdXRvVHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcik6IHZvaWQge1xuICAgIGlmIChhdXRvVHJpZ2dlci5hdXRvY29tcGxldGUuaXNPcGVuKSB7XG4gICAgICBhdXRvVHJpZ2dlci5jbG9zZVBhbmVsKClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuUGFuZWwoYXV0b1RyaWdnZXIpXG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9wZW5QYW5lbChhdXRvVHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzTG9ja2VkKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnUHJldmVudGVkIG9wZW5pbmcgYXV0b2NvbXBsZXRlIHNpbmNlIHNlbGVjdCBpcyBsb2NrZWQhJywgYXV0b1RyaWdnZXIpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnUmVxdWVzdGluZyB0byBvcGVuIGF1dG8tY29tcGxldGUgcGFuZWwuLi4nLCBhdXRvVHJpZ2dlcilcbiAgICBpZiAodGhpcy5kYXRhQ29udGV4dCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5kYXRhQ29udGV4dC5zdGFydCh0aGlzLnNvcnRzLCB0aGlzLmZpbHRlcnMpXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ0ZhaWxlZCB0byBzdGFydCBEQyEnLCBlcnIpXG4gICAgICAgIHRoaXMudXBkYXRlU3RhdGUoRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZS5lcnJvcihlcnIpKVxuICAgICAgfVxuICAgIH1cbiAgICBhdXRvVHJpZ2dlci5vcGVuUGFuZWwoKVxuICB9XG5cbiAgcHVibGljIG9uSW5wdXRDbGlja2VkKGF1dG9UcmlnZ2VyOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyKTogdm9pZCB7XG4gICAgLy8gdGhpcy5sb2dnZXIuZGVidWcoJ29uSW5wdXRDbGlja2VkLCBsb2NrZWQ6ICcgKyB0aGlzLmlzTG9ja2VkICsgJywgYXV0b2NvbXBsZXRlOiAnICsgdGhpcy5hdXRvY29tcGxldGUsIGF1dG9UcmlnZ2VyKTtcbiAgICBpZiAodGhpcy5pc0xvY2tlZCB8fCB0aGlzLmF1dG9jb21wbGV0ZSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIHRoaXMub3BlblBhbmVsKGF1dG9UcmlnZ2VyKVxuICAgIC8vIHRoaXMudG9nZ2xlUGFuZWwoYXV0b1RyaWdnZXIpO1xuICB9XG5cbiAgcHVibGljIG9uT3B0aW9uU2VsZWN0ZWQob3B0aW9uU2VsZWN0ZWQ6IEVsZGVyQXV0b2NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQ8VEVudGl0eSwgVElkPik6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzTG9ja2VkKSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKCdQcmV2ZW50ZWQgc2VsZWN0aW9uIG9wdGlvbiBzaW5jZSB0aGlzIHNlbGVjdCBpcyBsb2NrZWQhJylcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCBzZWxlY3RlZEVudGl0eSA9IG9wdGlvblNlbGVjdGVkLmVudGl0eVxuICAgIGlmICh0aGlzLmlzRW50aXR5U2VsZWN0ZWQoc2VsZWN0ZWRFbnRpdHkpKSB7XG4gICAgICB0aGlzLndyaXRlVmFsdWVJbnRlcm5hbChudWxsKSAvLyBIQUNLOiBFbnN1cmUgd2UgdHJpZ2dlciB2aWV3IHJlZHJhd1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVZhbHVlQnlFbnRpdHkoc2VsZWN0ZWRFbnRpdHkpXG4gIH1cblxuICBwdWJsaWMgb3BlblNlbGVjdGlvblBvcHVwKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvblBvcHVwKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvblBvcHVwXG4gICAgICAgIC5jaG9vc2UoXG4gICAgICAgICAgKGU6IFRFbnRpdHkpID0+IHRoaXMuZ2V0RW50aXR5SWQoZSksXG4gICAgICAgICAgW10sIC8vIFRPRE8gT3IgdXNlIGN1cnJlbnQgZW50aXR5P1xuICAgICAgICAgIHRoaXMuZmlsdGVycyxcbiAgICAgICAgICB0aGlzLnNvcnRzLFxuICAgICAgICAgIGZhbHNlXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgoc2VsZWN0aW9uOiBURW50aXR5W10pID0+IHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlQnlFbnRpdHkoc2VsZWN0aW9uWzBdKVxuICAgICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKFxuICAgICAgICAnQ2FudCBvcGVuIHNlbGVjdGlvbiBicm93c2VyIHBvcHVwLCBzaW5jZSBbU2VsZWN0aW9uTW9kZWxQb3B1cERpcmVjdGl2ZV0gd2FzIG5vdCBmb3VuZCEnXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNsZWFyKGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKG51bGwpXG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVmFsdWVCeUVudGl0eShlbnRpdHk6IFRFbnRpdHkpOiB2b2lkIHtcbiAgICB0aGlzLl9lbnRpdHkkLm5leHQoZW50aXR5KVxuICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy5lbnRpdHlUb1ZhbHVlKGVudGl0eSkpXG4gIH1cblxuICBwdWJsaWMgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucykge1xuICAgIHRoaXMuaW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKG9wdGlvbnMpXG4gIH1cblxuICBwdWJsaWMgYmx1cigpIHtcbiAgICB0aGlzLmlucHV0UmVmPy5uYXRpdmVFbGVtZW50Py5ibHVyKClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBBYnN0cmFjdCBJbXBsZW1lbnRhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBPY2N1cnMgd2hlbiB0aGUgc3VnZ2VzdGlvbnMgZGF0YS1jb250ZXh0IGhhcyBjaGFuZ2VkXG4gICAqL1xuICBwcm90ZWN0ZWQgb25EYXRhQ29udGV4dENoYW5nZWQoZGF0YTogSURhdGFDb250ZXh0PFRFbnRpdHk+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICB0aGlzLnNlbGVjdEVudGl0eUJ5SWQodGhpcy5lbnRpdHlJZClcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgdmFsdWVzRXF1YWxzKGE6IFRWYWx1ZSwgYjogVFZhbHVlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXR5SWRGcm9tVmFsdWUoYSkgPT09IHRoaXMuZW50aXR5SWRGcm9tVmFsdWUoYilcbiAgfVxuXG4gIHByaXZhdGUgYXdhaXRFbnRpdHlXaXRoSWQoZW50aXR5SWQ6IFRJZCwgdGltZW91dE1zOiBudW1iZXIpOiBPYnNlcnZhYmxlPFRFbnRpdHk+IHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHkkLnBpcGUoXG4gICAgICBmaWx0ZXIoKGVudGl0eSkgPT4gdGhpcy5nZXRFbnRpdHlJZChlbnRpdHkpID09PSBlbnRpdHlJZCksXG4gICAgICB0YWtlKDEpLFxuICAgICAgdGltZW91dCh0aW1lb3V0TXMpXG4gICAgKVxuICB9XG5cbiAgcHJpdmF0ZSBpc0VudGl0eVNlbGVjdGVkKGVudGl0eTogVEVudGl0eSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmdldEVudGl0eUlkKGVudGl0eSkgPT09IHRoaXMuZW50aXR5SWRcbiAgfVxuXG4gIHByaXZhdGUgZW50aXR5SWRGcm9tVmFsdWUodmFsdWU6IFRWYWx1ZSk6IFRJZCB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICByZXR1cm4gKDxhbnk+dmFsdWUpIGFzIFRJZFxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBlbnRpdHkgPSAoPGFueT52YWx1ZSkgYXMgVEVudGl0eVxuICAgICAgcmV0dXJuIHRoaXMuZ2V0RW50aXR5SWQoZW50aXR5KVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0RW50aXR5QnlJZChpZDogVElkKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudEVudGl0eSA9IHRoaXMuZW50aXR5XG4gICAgaWYgKGN1cnJlbnRFbnRpdHkgJiYgdGhpcy5nZXRFbnRpdHlJZChjdXJyZW50RW50aXR5KSA9PT0gaWQpIHtcbiAgICAgIHRoaXMub25FbnRpdHlWYWx1ZVJlYWR5KClcbiAgICAgIHJldHVybiAvLyBFbnRpdHkgYWxyZWFkeSBsb2FkZWRcbiAgICB9XG5cbiAgICBpZiAoaWQgPT09IG51bGwgfHwgaWQgPT09IHVuZGVmaW5lZCB8fCBpZCA9PT0gJycpIHtcbiAgICAgIGlmIChjdXJyZW50RW50aXR5ICE9PSBudWxsICYmIGN1cnJlbnRFbnRpdHkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLmVudGl0eSA9IG51bGxcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuZGF0YUNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLmZpbmRJbkRhdGFDb250ZXh0KGlkKVxuICAgICAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgICAgICB0aGlzLmVudGl0eSA9IGV4aXN0aW5nXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sb2FkRW50aXR5QnlJZChpZClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy51cGRhdGVTdGF0ZShcbiAgICAgICAgICBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlLmVycm9yKFxuICAgICAgICAgICAgJ0ZhaWxlZCB0byBzZWxlY3QgdmFsdWUgYnkgSWQ6ICcgKyBpZCArICcgLSBEYXRhQ29udGV4dCBub3QgYXZhaWxhYmxlLidcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRFbnRpdHlCeUlkKGlkOiBUSWQpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUubG9hZGluZygpKVxuICAgIHRoaXMuZGF0YVNvdXJjZU9yVGhyb3coKVxuICAgICAgLmZpbmRCeUlkKDxhbnk+aWQpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGVudGl0eSkgPT4ge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdMb2FkZWQgbWlzc2luZyBlbnRpdHkgYnkgaWQgJyArIGlkICsgJzonLCBlbnRpdHkpXG4gICAgICAgICAgdGhpcy5lbnRpdHkgPSBlbnRpdHlcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcignRmFpbGVkIHRvIGxvYWQgZW50aXR5IGJ5IGlkICcgKyBpZCwgZXJyKVxuICAgICAgICAgIHRoaXMudXBkYXRlU3RhdGUoRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZS5lcnJvcihlcnIpKVxuICAgICAgICB9LFxuICAgICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgb25FbnRpdHlWYWx1ZVJlYWR5KCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlU3RhdGUoRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZS5pZGxlKCkpXG4gIH1cblxuICBwcml2YXRlIGZpbmRJbkRhdGFDb250ZXh0KGlkOiBUSWQpOiBURW50aXR5IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YUNvbnRleHQuc25hcHNob3QuZGF0YS5maW5kKCh2KSA9PiB0aGlzLmdldEVudGl0eUlkKHYpID09PSBpZClcbiAgfVxuXG4gIHB1YmxpYyBlbnRpdHlUb1ZhbHVlKGVudGl0eTogVEVudGl0eSk6IFRWYWx1ZSB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICBjb25zdCBpZCA9IHRoaXMuZ2V0RW50aXR5SWQoZW50aXR5KVxuICAgICAgcmV0dXJuICg8YW55PmlkKSBhcyBUVmFsdWVcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICg8YW55PmVudGl0eSkgYXMgVFZhbHVlXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGlzIGludm9rZWQgYWZ0ZXIgYSB2YWx1ZSBoYXMgYmVlbiB3cml0dGVuIHRvIHRoaXMgY29udHJvbC5cbiAgICpcbiAgICovXG4gIHByb3RlY3RlZCB3cml0ZVRvQ29udHJvbCh2YWx1ZTogVFZhbHVlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICBjb25zdCBlbnRpdHlJZCA9ICg8YW55PnZhbHVlKSBhcyBUSWRcbiAgICAgIC8vIFZhbHVlIHdhcyB3cml0dGVuIGFzIGVudGl0eSBpZCwgZW5zdXJlIHdlIHNlbGVjdCBlbnRpdHkgYnkgaWRcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd3cml0ZVRvQ29udHJvbDogdmFsdWUgd2FzIHdyaXR0ZW4gYXMgaWQ6ICcgKyBlbnRpdHlJZCwgdmFsdWUpXG4gICAgICB0aGlzLnNlbGVjdEVudGl0eUJ5SWQoZW50aXR5SWQpXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFZhbHVlIHdhcyB3cml0dGVuIGFzIGVudGl0eSwgZW5zdXJlIGVudGl0eSBpcyB1cGRhdGVkXG4gICAgICBjb25zdCBjdXJyZW50RW50aXR5ID0gdGhpcy5lbnRpdHlcbiAgICAgIGNvbnN0IG5ld0VudGl0eSA9ICg8YW55PnZhbHVlKSBhcyBURW50aXR5XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgJ3dyaXRlVG9Db250cm9sOiB2YWx1ZSB3YXMgd3JpdHRlbiBhcyBlbnRpdHk6ICcgKyBKU09OLnN0cmluZ2lmeShuZXdFbnRpdHkpLFxuICAgICAgICB2YWx1ZVxuICAgICAgKVxuICAgICAgaWYgKCF0aGlzLmlzRXF1YWwoY3VycmVudEVudGl0eSwgbmV3RW50aXR5KSkge1xuICAgICAgICB0aGlzLl9lbnRpdHkkLm5leHQobmV3RW50aXR5KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybignSWdub3JlZCB3cml0dGVuIGVudGl0eSBhcyBpdCBpcyBhbHJlYWR5IHNldCB0byBlbnRpdHkkIScpXG4gICAgICB9XG4gICAgfVxuICAgIHN1cGVyLndyaXRlVG9Db250cm9sKHZhbHVlKVxuICB9XG59XG4iLCJAaWYgKGVudGl0eVdyYXBwZWQkIHwgYXN5bmM7IGFzIGVudGl0eVdyYXBwZXIpIHtcbiAgPGRpdiBjbGFzcz1cImxheW91dC1yb3cgcGxhY2Utc3RhcnQtY2VudGVyIGVsZGVyLWZsZXgtY29udHJvbFwiPlxuICAgIEBpZiAoc3RhdGUkIHwgYXN5bmM7IGFzIHN0YXRlKSB7XG4gICAgICBAaWYgKHN0YXRlPy5lcnJvciB8fCBpY29uKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbGRlci1pbnB1dC1wcmVmaXgtaWNvbi1jb250YWluZXIgZmxleC1ub25lXCI+XG4gICAgICAgICAgQGlmIChpY29uKSB7XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgZGlzYWJsZWRcbiAgICAgICAgICAgICAgY2xhc3M9XCJlbGRlci1tZGMtY29udHJvbC1pY29uIGVsZGVyLWljb24tc21hbGwgbm9zZWxlY3QgY2xpY2thYmxlLWljb25cIlxuICAgICAgICAgICAgICBbY2xhc3MubG9hZGluZ109XCJzdGF0ZS5sb2FkaW5nXCJcbiAgICAgICAgICAgICAgW2NvbG9yXT1cInN0YXRlPy5lcnJvciA/ICd3YXJuJyA6IGZvY3VzZWQgPyAncHJpbWFyeScgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25DdXJyZW50Q2xpY2tlZChlbnRpdHkpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgaWNvbiB9fVxuICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICB9IEBlbHNlIGlmIChzdGF0ZT8uZXJyb3IpIHtcbiAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICBjbGFzcz1cImVsZGVyLW1kYy1jb250cm9sLWljb24gZWxkZXItaWNvbi1zbWFsbCBub3NlbGVjdFwiXG4gICAgICAgICAgICAgIGNvbG9yPVwid2FyblwiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInN0YXRlPy5lcnJvclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHdhcm5pbmdcbiAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICB9XG5cbiAgICA8IS0tIEEgZHluYW1pYyBpbnB1dCAtLT5cbiAgICA8aW5wdXRcbiAgICAgICNpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIGNsYXNzPVwiZmxleC1ncm93IGVsZGVyLXNlbGVjdC1pbnB1dCBtZGMtdGV4dC1maWVsZF9faW5wdXRcIlxuICAgICAgW2Rpc2FibGVkXT1cIiEhZGlzYWJsZWRcIlxuICAgICAgW3JlcXVpcmVkXT1cIiEhcmVxdWlyZWRcIlxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5IHx8ICFhdXRvY29tcGxldGVcIlxuICAgICAgW25hbWVdPVwibmdDb250cm9sPy5uYW1lICsgJy1pbm5lci1pbnB1dCdcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyIHwgdHJhbnNsYXRlXCJcbiAgICAgIFttYXRBdXRvY29tcGxldGVdXG4gICAgICAjYXV0b1RyaWdnZXI9XCJtYXRBdXRvY29tcGxldGVUcmlnZ2VyXCJcbiAgICAgIFtlbGRlckF1dG9jb21wbGV0ZV09XCJlbGRlckF1dG9cIlxuICAgICAgW3F1ZXJ5RmlsdGVyXT1cInF1ZXJ5RmlsdGVyXCJcbiAgICAgIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxuICAgICAgW3NvcnRzXT1cInNvcnRzXCJcbiAgICAgIGVsZGVyU2VsZWN0T25UYWJcbiAgICAgIFtjbGFzcy5lbGRlci1zZWxlY3QtZHJvcGRvd24taW5wdXRdPVwiIWF1dG9jb21wbGV0ZVwiXG4gICAgICBbbmdNb2RlbF09XCJpbnB1dFRleHQkIHwgYXN5bmNcIlxuICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSwgdXBkYXRlT246ICdzdWJtaXQnIH1cIlxuICAgICAgKGJsdXIpPVwib25JbnB1dEJsdXIoJGV2ZW50KVwiXG4gICAgICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKGF1dG9UcmlnZ2VyKVwiXG4gICAgICAoY2xpY2spPVwib25JbnB1dENsaWNrZWQoYXV0b1RyaWdnZXIpXCJcbiAgICAvPlxuXG4gICAgPCEtLSBUaGlzIGJyZWFrcyBzdHVmZjogW2Rpc3BsYXlXaXRoXT1cImRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyJCB8IGFzeW5jXCIgLS0+XG5cbiAgICA8ZWxkZXItc3VnZ2VzdGlvbi1wYW5lbFxuICAgICAgI2VsZGVyQXV0bz1cImVsZGVyU3VnZ2VzdGlvblBhbmVsXCJcbiAgICAgIFtkYXRhU291cmNlXT1cIihkYXRhQ29udGV4dCQgfCBhc3luYyk/LmRhdGFTb3VyY2VcIlxuICAgICAgW3ZhbHVlVGVtcGxhdGVdPVwidmFsdWVUZW1wbGF0ZVwiXG4gICAgICBlbmFibGVkXG4gICAgICBbZGlzcGxheVByb3BlcnR5UmVzb2x2ZXJdPVwiZGlzcGxheVByb3BlcnR5UmVzb2x2ZXIkIHwgYXN5bmNcIlxuICAgICAgW2lzT3B0aW9uRGlzYWJsZWRGbl09XCJpc09wdGlvbkRpc2FibGVkSW50ZXJuYWxGblwiXG4gICAgICBbaXNPcHRpb25IaWRkZW5Gbl09XCJpc09wdGlvbkhpZGRlbkludGVybmFsRm5cIlxuICAgICAgZWxkZXJBdXRvU2VsZWN0U3VnZ2VzdEZpcnN0XG4gICAgICAob3B0aW9uU2VsZWN0ZWQpPVwib25PcHRpb25TZWxlY3RlZCgkYW55KCRldmVudCkpXCJcbiAgICA+PC9lbGRlci1zdWdnZXN0aW9uLXBhbmVsPlxuXG4gICAgPGRpdiBjbGFzcz1cImxheW91dC1yb3cgcGxhY2Utc3RhcnQtY2VudGVyIGZsZXgtbm9uZVwiPlxuICAgICAgQGlmICghc2VsZWN0aW9uUG9wdXAgJiYgIWF1dG9jb21wbGV0ZSAmJiAhZW50aXR5V3JhcHBlci5kaXNwbGF5UmVtb3ZlKSB7XG4gICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgIGNsYXNzPVwiZWxkZXItbWRjLWNvbnRyb2wtaWNvbiBlbGRlci1zZWxlY3QtYXJyb3cgbm9zZWxlY3RcIlxuICAgICAgICAgIChjbGljayk9XCJvbklucHV0Q2xpY2tlZChhdXRvVHJpZ2dlcilcIlxuICAgICAgICA+XG4gICAgICAgICAgYXJyb3dfZHJvcF9kb3duXG4gICAgICAgIDwvbWF0LWljb24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoc2VsZWN0aW9uUG9wdXAgJiYgIWVudGl0eVdyYXBwZXIuZGlzcGxheVJlbW92ZSkge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJlbGRlci1jb250cm9sLWljb24tYnV0dG9uXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2NrZWRcIlxuICAgICAgICAgIChjbGljayk9XCJvcGVuU2VsZWN0aW9uUG9wdXAoJGV2ZW50KVwiXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIlNlYXJjaFwiXG4gICAgICAgICAgZWxkZXJTdG9wRXZlbnRQcm9wYWdhdGlvblxuICAgICAgICAgIHRhYkluZGV4PVwiLTFcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZWxkZXItbWRjLWNvbnRyb2wtaWNvblwiPnNlYXJjaDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgfVxuXG4gICAgICBAaWYgKGVudGl0eVdyYXBwZXIuZGlzcGxheVJlbW92ZSkge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJlbGRlci1jb250cm9sLWljb24tYnV0dG9uXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2NrZWRcIlxuICAgICAgICAgIChjbGljayk9XCJjbGVhcigkZXZlbnQpXCJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXJcIlxuICAgICAgICAgIGVsZGVyU3RvcEV2ZW50UHJvcGFnYXRpb25cbiAgICAgICAgICB0YWJJbmRleD1cIi0xXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImVsZGVyLW1kYy1jb250cm9sLWljb25cIj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbn1cbiJdfQ==
|
|
444
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L3NpbmdsZS9lbGRlci1zZWxlY3QvZWxkZXItc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L3NpbmdsZS9lbGRlci1zZWxlY3QvZWxkZXItc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUdMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEVBRWpCLE1BQU0sRUFDTixTQUFTLEVBQ1QsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUVwRCxPQUFPLEVBQWtDLEtBQUssRUFBYyxNQUFNLE1BQU0sQ0FBQTtBQUN4RSxPQUFPLEVBQ0wsR0FBRyxFQUdILElBQUksRUFDSixNQUFNLEVBQ04sU0FBUyxFQUNULElBQUksRUFDSixPQUFPLEVBQ1AsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzNFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFBO0FBQ3ZFLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsZUFBZSxFQUNmLHlCQUF5QixHQUUxQixNQUFNLHlCQUF5QixDQUFBO0FBRWhDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixD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bnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNlbGYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIE9uRGVzdHJveSxcbiAgc2lnbmFsLFxuICB1bnRyYWNrZWQsXG4gIGNvbXB1dGVkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTG9nZ2VyRmFjdG9yeSB9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJ1xuaW1wb3J0IHsgSURhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dCdcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgRU1QVFksIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHtcbiAgbWFwLFxuICB0YWtlVW50aWwsXG4gIHRhcCxcbiAgc2tpcCxcbiAgZmlsdGVyLFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRpbWVvdXQsXG4gIGNhdGNoRXJyb3IsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJ1xuaW1wb3J0IHtcbiAgRUxERVJfU0VMRUNUX0JBU0UsXG4gIEVsZGVyU2VsZWN0QmFzZSxcbiAgRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZSxcbiAgVGV4dFJlc29sdmVyRm4sXG59IGZyb20gJy4uLy4uL2VsZGVyLXNlbGVjdC1iYXNlJ1xuaW1wb3J0IHsgSUVsZGVyRW50aXR5VmFsdWVBY2Nlc3NvciB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy9lbGRlci1lbnRpdHktdmFsdWUtYWNjZXNzb3InXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCdcbmltcG9ydCB7IE5nQ29udHJvbCwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5J1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSwgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEVsZGVyQXV0b2NvbXBsZXRlT3B0aW9uU2VsZWN0ZWQgfSBmcm9tICcuLi8uLi8uLi9pbnB1dC9hdXRvY29tcGxldGUvZWxkZXItYXV0b2NvbXBsZXRlL2VsZGVyLWF1dG9jb21wbGV0ZS1vcHRpb24tc2VsZWN0ZWQnXG5pbXBvcnQgeyBFbGRlclN0b3BFdmVudFByb3BhZ2F0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZm9ybXMvZGlyZWN0aXZlcy9lbGRlci1zdG9wLWV2ZW50LXByb3BhZ2F0aW9uLmRpcmVjdGl2ZSdcbmltcG9ydCB7IE1hdEljb25CdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nXG5pbXBvcnQgeyBFbGRlckF1dG9jb21wbGV0ZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2lucHV0L2F1dG9jb21wbGV0ZS9lbGRlci1hdXRvY29tcGxldGUuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRWxkZXJTZWxlY3RPblRhYkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2VsZGVyLXNlbGVjdC1vbi10YWIuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgTWF0SW5wdXQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCdcbmltcG9ydCB7IE1hdFRvb2x0aXAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJ1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nXG5pbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBFbGRlclN1Z2dlc3Rpb25QYW5lbENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2lucHV0L2F1dG9jb21wbGV0ZS9lbGRlci1hdXRvY29tcGxldGUvZWxkZXItc3VnZ2VzdGlvbi1wYW5lbC5jb21wb25lbnQnXG5pbXBvcnQgeyBFbGRlckF1dG9TZWxlY3RTdWdnZXN0Rmlyc3REaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9hdXRvL2VsZGVyLWF1dG8tc2VsZWN0LXN1Z2dlc3QtZmlyc3QuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkLCB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCdcblxuY2xhc3MgRW50aXR5Q29udGV4dDxUPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZTogVCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheVRleHQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheVJlbW92ZTogYm9vbGVhblxuICApIHt9XG59XG5cbi8qKlxuICogVGhlIGVsZGVyLXNlbGVjdCBjb250cm9sIGFsbG93cyB0byBzZWxlY3QgYSBzaW5nbGVcbiAqIGVudGl0eS5cbiAqXG4gKiBQcmltYXJ5IGZvY3VzIGlzIG9uIGVhc3kgdXNhZ2UgZm9yIGNvbW1vbiBzY2VuYXJpb3M6XG4gKlxuICogLSBJbnRlZ3JhdGVkIGludG8gYW5ndWxhciBmb3JtcyBhbmQgdmFsaWRhdGlvblxuICogLSBTdXBwb3J0IGVudGl0eSBpZCBoYW5kbGluZywgaW5wdXQgLyBvdXRwdXQgaXMgdGhlIGVudGl0eSBpZCB2cyBmdWxsIHZhbHVlLlxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWxkZXItc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZGVyLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogRWxkZXJTZWxlY3RDb21wb25lbnQgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBFTERFUl9TRUxFQ1RfQkFTRSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVsZGVyU2VsZWN0Q29tcG9uZW50KSxcbiAgICB9LFxuICBdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTWF0SWNvbixcbiAgICBNYXRUb29sdGlwLFxuICAgIE1hdElucHV0LFxuICAgIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgRWxkZXJTZWxlY3RPblRhYkRpcmVjdGl2ZSxcbiAgICBFbGRlckF1dG9jb21wbGV0ZURpcmVjdGl2ZSxcbiAgICBFbGRlclN1Z2dlc3Rpb25QYW5lbENvbXBvbmVudCxcbiAgICBNYXRJY29uQnV0dG9uLFxuICAgIEVsZGVyU3RvcEV2ZW50UHJvcGFnYXRpb25EaXJlY3RpdmUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEVsZGVyQXV0b1NlbGVjdFN1Z2dlc3RGaXJzdERpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJTZWxlY3RDb21wb25lbnQ8VEVudGl0eSA9IGFueSwgVElkID0gYW55LCBUVmFsdWUgPSBURW50aXR5IHwgVElkPlxuICBleHRlbmRzIEVsZGVyU2VsZWN0QmFzZTxUSWQsIFRFbnRpdHksIFRWYWx1ZT5cbiAgaW1wbGVtZW50cyBJRWxkZXJFbnRpdHlWYWx1ZUFjY2Vzc29yPFRFbnRpdHksIFRJZCwgVFZhbHVlPiwgT25EZXN0cm95XG57XG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKVxuXG4gIHByaXZhdGUgX2FsbG93TnVsbCA9IGZhbHNlXG5cbiAgQFZpZXdDaGlsZCgnaW5wdXQnKVxuICBwdWJsaWMgaW5wdXRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD5cblxuICAvKipcbiAgICogU3RyaW5nIHRvIGRpc3BsYXkgZm9yIHRoZSAnbm90aGluZycgLyBudWxsIHZhbHVlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG51bGxEaXNwbGF5ID0gJy0nXG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBlbnRpdHlJZENoYW5nZTogT2JzZXJ2YWJsZTxUSWQ+XG5cbiAgLyoqXG4gICAqIFNpbWlsYXIgdG8gZW50aXR5LWlkIGNoYW5nZSwgYnV0IGVtaXRzIG9ubHkgd2hlbiB0aGUgdXNlclxuICAgKiBoYXMgdXBkYXRlZCB0aGUgdmFsdWUuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGVudGl0eUlkVXBkYXRlZDogT2JzZXJ2YWJsZTxUSWQ+XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBlbnRpdHlDaGFuZ2U6IE9ic2VydmFibGU8VEVudGl0eT5cblxuICAvKipcbiAgICogU2ltaWxhciB0byBlbnRpdHkgY2hhbmdlLCBidXQgZW1pdHMgb25seSB3aGVuIHRoZSB1c2VyXG4gICAqIGhhcyB1cGRhdGVkIHRoZSB2YWx1ZS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgZW50aXR5VXBkYXRlZDogT2JzZXJ2YWJsZTxURW50aXR5PlxuXG4gIHB1YmxpYyByZWFkb25seSBlbnRpdHlTID0gc2lnbmFsPFRFbnRpdHk+KHVuZGVmaW5lZClcbiAgcHVibGljIHJlYWRvbmx5IGVudGl0eSQgPSB0b09ic2VydmFibGU8VEVudGl0eT4odGhpcy5lbnRpdHlTKVxuXG4gIHByaXZhdGUgX2F1dG9jb21wbGV0ZSA9IGZhbHNlXG5cbiAgcHVibGljIHJlYWRvbmx5IGVudGl0eVdyYXBwZWQgPSBjb21wdXRlZDxFbnRpdHlDb250ZXh0PFRFbnRpdHk+PigoKSA9PlxuICAgIHRoaXMuYnVpbGRFbnRpdHlDb250ZXh0KHRoaXMuZW50aXR5UygpLCB0aGlzLmRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyUygpKVxuICApXG5cbiAgcHVibGljIHJlYWRvbmx5IGlucHV0VGV4dCA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xuICAgIGNvbnN0IGN0eCA9IHRoaXMuZW50aXR5V3JhcHBlZCgpXG4gICAgcmV0dXJuIGN0eC52YWx1ZSA/IGN0eC5kaXNwbGF5VGV4dCA6IG51bGxcbiAgfSlcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcignc2luZ2xlLXNlbGVjdCcpXG5cbiAgICB0aGlzLmVudGl0eUlkQ2hhbmdlID0gdGhpcy52YWx1ZUNoYW5nZS5waXBlKG1hcCgodikgPT4gdGhpcy5lbnRpdHlJZEZyb21WYWx1ZSh2KSkpXG5cbiAgICB0aGlzLmVudGl0eUNoYW5nZSA9IHRoaXMuZW50aXR5JC5waXBlKFxuICAgICAgc2tpcCgxKSAvLyBTa2lwIHRoZSBpbml0aWFsIG9yIGN1cnJlbnQgdmFsdWVcbiAgICApXG5cbiAgICB0aGlzLmVudGl0eUlkVXBkYXRlZCA9IHRoaXMudmFsdWVVcGRhdGVkLnBpcGUobWFwKCh2YWx1ZSkgPT4gdGhpcy5lbnRpdHlJZEZyb21WYWx1ZSh2YWx1ZSkpKVxuXG4gICAgdGhpcy5lbnRpdHlVcGRhdGVkID0gdGhpcy5lbnRpdHlJZFVwZGF0ZWQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoZW50aXR5SWQpID0+IHRoaXMuYXdhaXRFbnRpdHlXaXRoSWQoZW50aXR5SWQsIHRoaXMudGltZW91dEFmdGVyTXMpKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBhd2FpdEVudGl0eVdpdGhJZCAtPiB0aW1lZCBvdXQgYWZ0ZXI6ICR7dGhpcy50aW1lb3V0QWZ0ZXJNc31gLCBlcnIpXG4gICAgICAgIHJldHVybiBFTVBUWVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRW50aXR5Q29udGV4dChcbiAgICBlbnRpdHk6IFRFbnRpdHksXG4gICAgZGlzcGxheVByb3BlcnR5Rm46IFRleHRSZXNvbHZlckZuXG4gICk6IEVudGl0eUNvbnRleHQ8VEVudGl0eT4ge1xuICAgIHJldHVybiBuZXcgRW50aXR5Q29udGV4dDxURW50aXR5PihlbnRpdHksIGRpc3BsYXlQcm9wZXJ0eUZuKGVudGl0eSksIGVudGl0eSAmJiB0aGlzLmFsbG93TnVsbClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmF1dG9DbGVhblVwKClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBIb3N0IEJpbmRpbmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgaG9zdENsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdlbGRlci1zZWxlY3QtYmFzZSBlbGRlci1zZWxlY3QnXG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1hdC1zZWxlY3QtZGlzYWJsZWQnKSBnZXQgZGlzYWJsZWRDbGFzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZFxuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tYXQtc2VsZWN0LWludmFsaWQnKSBnZXQgZXJyb3JTdGF0ZUNsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVycm9yU3RhdGVcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MubWF0LXNlbGVjdC1yZXF1aXJlZCcpIGdldCByZXF1aXJlZENsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVpcmVkXG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1hdC1zZWxlY3QtZW1wdHknKSBnZXQgZW1wdHlDbGFzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbXB0eVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEJlaGF2aW91ciBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhdXRvY29tcGxldGUodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX2F1dG9jb21wbGV0ZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSlcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXV0b2NvbXBsZXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9hdXRvY29tcGxldGVcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvd3MgdGhlIHVzZXIgdG8gc2VsZWN0ICdub3RoaW5nJyAvIG51bGwuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGFsbG93TnVsbCh2YWw6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX2FsbG93TnVsbCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWwpXG4gIH1cblxuICBwdWJsaWMgZ2V0IGFsbG93TnVsbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fYWxsb3dOdWxsXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGVudGl0eShlbnRpdHk6IFRFbnRpdHkpIHtcbiAgICB0aGlzLmVudGl0eVMuc2V0KGVudGl0eSlcbiAgICB0aGlzLndyaXRlVmFsdWVJbnRlcm5hbCh0aGlzLmVudGl0eVRvVmFsdWUoZW50aXR5KSlcbiAgICB0aGlzLm9uRW50aXR5VmFsdWVSZWFkeSgpXG4gIH1cblxuICBwdWJsaWMgZ2V0IGVudGl0eSgpOiBURW50aXR5IHtcbiAgICByZXR1cm4gdW50cmFja2VkKHRoaXMuZW50aXR5UylcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZW50aXR5SWQoaWQ6IFRJZCkge1xuICAgIGlmICh0aGlzLnZhbHVlQXNJZCkge1xuICAgICAgdGhpcy53cml0ZVZhbHVlSW50ZXJuYWwoKDxhbnk+aWQpIGFzIFRWYWx1ZSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RFbnRpdHlCeUlkKGlkKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW50aXR5SWQoKTogVElkIHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlJZEZyb21WYWx1ZSh0aGlzLnZhbHVlKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG9uSW5wdXRCbHVyKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudFxuICAgIGlucHV0LnZhbHVlID0gdW50cmFja2VkKHRoaXMuaW5wdXRUZXh0KVxuICB9XG5cbiAgcHVibGljIG9uSW5wdXRGb2N1cyhhdXRvVHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcik6IHZvaWQge1xuICAgIGlmICghdGhpcy5fYXV0b2NvbXBsZXRlKSB7XG4gICAgICB0aGlzLm9wZW5QYW5lbChhdXRvVHJpZ2dlcilcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzT3B0aW9uRGlzYWJsZWRJbnRlcm5hbEZuKCk6IChvcHRpb246IFRFbnRpdHkpID0+IGJvb2xlYW4ge1xuICAgIHJldHVybiAob3B0aW9uOiBURW50aXR5KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuaXNFbnRpdHlTZWxlY3RlZChvcHRpb24pKSB7XG4gICAgICAgIGlmICh0aGlzLmlzT3B0aW9uRGlzYWJsZWRGbikge1xuICAgICAgICAgIHJldHVybiB0aGlzLmlzT3B0aW9uRGlzYWJsZWRGbihvcHRpb24pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBpc09wdGlvbkhpZGRlbkludGVybmFsRm4oKTogKG9wdGlvbjogVEVudGl0eSkgPT4gYm9vbGVhbiB7XG4gICAgcmV0dXJuIChvcHRpb246IFRFbnRpdHkpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzT3B0aW9uSGlkZGVuRm4pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNPcHRpb25IaWRkZW5GbihvcHRpb24pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUGFuZWwoYXV0b1RyaWdnZXI6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIpOiB2b2lkIHtcbiAgICBpZiAoYXV0b1RyaWdnZXIuYXV0b2NvbXBsZXRlLmlzT3Blbikge1xuICAgICAgYXV0b1RyaWdnZXIuY2xvc2VQYW5lbCgpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlblBhbmVsKGF1dG9UcmlnZ2VyKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvcGVuUGFuZWwoYXV0b1RyaWdnZXI6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0xvY2tlZCkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ1ByZXZlbnRlZCBvcGVuaW5nIGF1dG9jb21wbGV0ZSBzaW5jZSBzZWxlY3QgaXMgbG9ja2VkIScsIGF1dG9UcmlnZ2VyKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ1JlcXVlc3RpbmcgdG8gb3BlbiBhdXRvLWNvbXBsZXRlIHBhbmVsLi4uJywgYXV0b1RyaWdnZXIpXG4gICAgaWYgKHRoaXMuZGF0YUNvbnRleHQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuZGF0YUNvbnRleHQuc3RhcnQodGhpcy5zb3J0cywgdGhpcy5maWx0ZXJzKVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdGYWlsZWQgdG8gc3RhcnQgREMhJywgZXJyKVxuICAgICAgICB0aGlzLnVwZGF0ZVN0YXRlKEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUuZXJyb3IoZXJyKSlcbiAgICAgIH1cbiAgICB9XG4gICAgYXV0b1RyaWdnZXIub3BlblBhbmVsKClcbiAgfVxuXG4gIHB1YmxpYyBvbklucHV0Q2xpY2tlZChhdXRvVHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcik6IHZvaWQge1xuICAgIC8vIHRoaXMubG9nZ2VyLmRlYnVnKCdvbklucHV0Q2xpY2tlZCwgbG9ja2VkOiAnICsgdGhpcy5pc0xvY2tlZCArICcsIGF1dG9jb21wbGV0ZTogJyArIHRoaXMuYXV0b2NvbXBsZXRlLCBhdXRvVHJpZ2dlcik7XG4gICAgaWYgKHRoaXMuaXNMb2NrZWQgfHwgdGhpcy5hdXRvY29tcGxldGUpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICB0aGlzLm9wZW5QYW5lbChhdXRvVHJpZ2dlcilcbiAgICAvLyB0aGlzLnRvZ2dsZVBhbmVsKGF1dG9UcmlnZ2VyKTtcbiAgfVxuXG4gIHB1YmxpYyBvbk9wdGlvblNlbGVjdGVkKG9wdGlvblNlbGVjdGVkOiBFbGRlckF1dG9jb21wbGV0ZU9wdGlvblNlbGVjdGVkPFRFbnRpdHksIFRJZD4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0xvY2tlZCkge1xuICAgICAgdGhpcy5sb2dnZXIud2FybignUHJldmVudGVkIHNlbGVjdGlvbiBvcHRpb24gc2luY2UgdGhpcyBzZWxlY3QgaXMgbG9ja2VkIScpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY29uc3Qgc2VsZWN0ZWRFbnRpdHkgPSBvcHRpb25TZWxlY3RlZC5lbnRpdHlcbiAgICBpZiAodGhpcy5pc0VudGl0eVNlbGVjdGVkKHNlbGVjdGVkRW50aXR5KSkge1xuICAgICAgdGhpcy53cml0ZVZhbHVlSW50ZXJuYWwobnVsbCkgLy8gSEFDSzogRW5zdXJlIHdlIHRyaWdnZXIgdmlldyByZWRyYXdcbiAgICB9XG4gICAgdGhpcy51cGRhdGVWYWx1ZUJ5RW50aXR5KHNlbGVjdGVkRW50aXR5KVxuICB9XG5cbiAgcHVibGljIG9wZW5TZWxlY3Rpb25Qb3B1cChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3Rpb25Qb3B1cCkge1xuICAgICAgdGhpcy5zZWxlY3Rpb25Qb3B1cFxuICAgICAgICAuY2hvb3NlKFxuICAgICAgICAgIChlOiBURW50aXR5KSA9PiB0aGlzLmdldEVudGl0eUlkKGUpLFxuICAgICAgICAgIFtdLCAvLyBUT0RPIE9yIHVzZSBjdXJyZW50IGVudGl0eT9cbiAgICAgICAgICB0aGlzLmZpbHRlcnMsXG4gICAgICAgICAgdGhpcy5zb3J0cyxcbiAgICAgICAgICBmYWxzZVxuICAgICAgICApXG4gICAgICAgIC5zdWJzY3JpYmUoKHNlbGVjdGlvbjogVEVudGl0eVtdKSA9PiB7XG4gICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZUJ5RW50aXR5KHNlbGVjdGlvblswXSlcbiAgICAgICAgfSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgJ0NhbnQgb3BlbiBzZWxlY3Rpb24gYnJvd3NlciBwb3B1cCwgc2luY2UgW1NlbGVjdGlvbk1vZGVsUG9wdXBEaXJlY3RpdmVdIHdhcyBub3QgZm91bmQhJ1xuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbGVhcihldmVudD86IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVWYWx1ZShudWxsKVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZVZhbHVlQnlFbnRpdHkoZW50aXR5OiBURW50aXR5KTogdm9pZCB7XG4gICAgdGhpcy5lbnRpdHlTLnNldChlbnRpdHkpXG4gICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLmVudGl0eVRvVmFsdWUoZW50aXR5KSlcbiAgfVxuXG4gIHB1YmxpYyBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zKSB7XG4gICAgdGhpcy5pbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8uZm9jdXMob3B0aW9ucylcbiAgfVxuXG4gIHB1YmxpYyBibHVyKCkge1xuICAgIHRoaXMuaW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnQ/LmJsdXIoKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEFic3RyYWN0IEltcGxlbWVudGF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIE9jY3VycyB3aGVuIHRoZSBzdWdnZXN0aW9ucyBkYXRhLWNvbnRleHQgaGFzIGNoYW5nZWRcbiAgICovXG4gIHByb3RlY3RlZCBvbkRhdGFDb250ZXh0Q2hhbmdlZChkYXRhOiBJRGF0YUNvbnRleHQ8VEVudGl0eT4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy52YWx1ZUFzSWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0RW50aXR5QnlJZCh0aGlzLmVudGl0eUlkKVxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByb3RlY3RlZCB2YWx1ZXNFcXVhbHMoYTogVFZhbHVlLCBiOiBUVmFsdWUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlJZEZyb21WYWx1ZShhKSA9PT0gdGhpcy5lbnRpdHlJZEZyb21WYWx1ZShiKVxuICB9XG5cbiAgcHJpdmF0ZSBhd2FpdEVudGl0eVdpdGhJZChlbnRpdHlJZDogVElkLCB0aW1lb3V0TXM6IG51bWJlcik6IE9ic2VydmFibGU8VEVudGl0eT4ge1xuICAgIHJldHVybiB0aGlzLmVudGl0eSQucGlwZShcbiAgICAgIGZpbHRlcigoZW50aXR5KSA9PiB0aGlzLmdldEVudGl0eUlkKGVudGl0eSkgPT09IGVudGl0eUlkKSxcbiAgICAgIHRha2UoMSksXG4gICAgICB0aW1lb3V0KHRpbWVvdXRNcylcbiAgICApXG4gIH1cblxuICBwcml2YXRlIGlzRW50aXR5U2VsZWN0ZWQoZW50aXR5OiBURW50aXR5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RW50aXR5SWQoZW50aXR5KSA9PT0gdGhpcy5lbnRpdHlJZFxuICB9XG5cbiAgcHJpdmF0ZSBlbnRpdHlJZEZyb21WYWx1ZSh2YWx1ZTogVFZhbHVlKTogVElkIHtcbiAgICBpZiAodGhpcy52YWx1ZUFzSWQpIHtcbiAgICAgIHJldHVybiAoPGFueT52YWx1ZSkgYXMgVElkXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGVudGl0eSA9ICg8YW55PnZhbHVlKSBhcyBURW50aXR5XG4gICAgICByZXR1cm4gdGhpcy5nZXRFbnRpdHlJZChlbnRpdHkpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RFbnRpdHlCeUlkKGlkOiBUSWQpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50RW50aXR5ID0gdGhpcy5lbnRpdHlcbiAgICBpZiAoY3VycmVudEVudGl0eSAmJiB0aGlzLmdldEVudGl0eUlkKGN1cnJlbnRFbnRpdHkpID09PSBpZCkge1xuICAgICAgdGhpcy5vbkVudGl0eVZhbHVlUmVhZHkoKVxuICAgICAgcmV0dXJuIC8vIEVudGl0eSBhbHJlYWR5IGxvYWRlZFxuICAgIH1cblxuICAgIGlmIChpZCA9PT0gbnVsbCB8fCBpZCA9PT0gdW5kZWZpbmVkIHx8IGlkID09PSAnJykge1xuICAgICAgaWYgKGN1cnJlbnRFbnRpdHkgIT09IG51bGwgJiYgY3VycmVudEVudGl0eSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuZW50aXR5ID0gbnVsbFxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5kYXRhQ29udGV4dCkge1xuICAgICAgICBjb25zdCBleGlzdGluZyA9IHRoaXMuZmluZEluRGF0YUNvbnRleHQoaWQpXG4gICAgICAgIGlmIChleGlzdGluZykge1xuICAgICAgICAgIHRoaXMuZW50aXR5ID0gZXhpc3RpbmdcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmxvYWRFbnRpdHlCeUlkKGlkKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnVwZGF0ZVN0YXRlKFxuICAgICAgICAgIEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUuZXJyb3IoXG4gICAgICAgICAgICAnRmFpbGVkIHRvIHNlbGVjdCB2YWx1ZSBieSBJZDogJyArIGlkICsgJyAtIERhdGFDb250ZXh0IG5vdCBhdmFpbGFibGUuJ1xuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZEVudGl0eUJ5SWQoaWQ6IFRJZCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlU3RhdGUoRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZS5sb2FkaW5nKCkpXG4gICAgdGhpcy5kYXRhU291cmNlT3JUaHJvdygpXG4gICAgICAuZmluZEJ5SWQoPGFueT5pZClcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoZW50aXR5KSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0xvYWRlZCBtaXNzaW5nIGVudGl0eSBieSBpZCAnICsgaWQgKyAnOicsIGVudGl0eSlcbiAgICAgICAgICB0aGlzLmVudGl0eSA9IGVudGl0eVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBlbnRpdHkgYnkgaWQgJyArIGlkLCBlcnIpXG4gICAgICAgICAgdGhpcy51cGRhdGVTdGF0ZShFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlLmVycm9yKGVycikpXG4gICAgICAgIH0sXG4gICAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBvbkVudGl0eVZhbHVlUmVhZHkoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVTdGF0ZShFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlLmlkbGUoKSlcbiAgfVxuXG4gIHByaXZhdGUgZmluZEluRGF0YUNvbnRleHQoaWQ6IFRJZCk6IFRFbnRpdHkgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhQ29udGV4dC5zbmFwc2hvdC5kYXRhLmZpbmQoKHYpID0+IHRoaXMuZ2V0RW50aXR5SWQodikgPT09IGlkKVxuICB9XG5cbiAgcHVibGljIGVudGl0eVRvVmFsdWUoZW50aXR5OiBURW50aXR5KTogVFZhbHVlIHtcbiAgICBpZiAodGhpcy52YWx1ZUFzSWQpIHtcbiAgICAgIGNvbnN0IGlkID0gdGhpcy5nZXRFbnRpdHlJZChlbnRpdHkpXG4gICAgICByZXR1cm4gKDxhbnk+aWQpIGFzIFRWYWx1ZVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKDxhbnk+ZW50aXR5KSBhcyBUVmFsdWVcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2QgaXMgaW52b2tlZCBhZnRlciBhIHZhbHVlIGhhcyBiZWVuIHdyaXR0ZW4gdG8gdGhpcyBjb250cm9sLlxuICAgKlxuICAgKi9cbiAgcHJvdGVjdGVkIHdyaXRlVG9Db250cm9sKHZhbHVlOiBUVmFsdWUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy52YWx1ZUFzSWQpIHtcbiAgICAgIGNvbnN0IGVudGl0eUlkID0gKDxhbnk+dmFsdWUpIGFzIFRJZFxuICAgICAgLy8gVmFsdWUgd2FzIHdyaXR0ZW4gYXMgZW50aXR5IGlkLCBlbnN1cmUgd2Ugc2VsZWN0IGVudGl0eSBieSBpZFxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3dyaXRlVG9Db250cm9sOiB2YWx1ZSB3YXMgd3JpdHRlbiBhcyBpZDogJyArIGVudGl0eUlkLCB2YWx1ZSlcbiAgICAgIHRoaXMuc2VsZWN0RW50aXR5QnlJZChlbnRpdHlJZClcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVmFsdWUgd2FzIHdyaXR0ZW4gYXMgZW50aXR5LCBlbnN1cmUgZW50aXR5IGlzIHVwZGF0ZWRcbiAgICAgIGNvbnN0IGN1cnJlbnRFbnRpdHkgPSB0aGlzLmVudGl0eVxuICAgICAgY29uc3QgbmV3RW50aXR5ID0gKDxhbnk+dmFsdWUpIGFzIFRFbnRpdHlcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgICAnd3JpdGVUb0NvbnRyb2w6IHZhbHVlIHdhcyB3cml0dGVuIGFzIGVudGl0eTogJyArIEpTT04uc3RyaW5naWZ5KG5ld0VudGl0eSksXG4gICAgICAgIHZhbHVlXG4gICAgICApXG4gICAgICBpZiAoIXRoaXMuaXNFcXVhbChjdXJyZW50RW50aXR5LCBuZXdFbnRpdHkpKSB7XG4gICAgICAgIHRoaXMuZW50aXR5Uy5zZXQobmV3RW50aXR5KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybignSWdub3JlZCB3cml0dGVuIGVudGl0eSBhcyBpdCBpcyBhbHJlYWR5IHNldCB0byBlbnRpdHkkIScpXG4gICAgICB9XG4gICAgfVxuICAgIHN1cGVyLndyaXRlVG9Db250cm9sKHZhbHVlKVxuICB9XG59XG4iLCJAaWYgKGVudGl0eVdyYXBwZWQoKTsgYXMgZW50aXR5V3JhcHBlcikge1xuICA8ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1zdGFydC1jZW50ZXIgZWxkZXItZmxleC1jb250cm9sXCI+XG4gICAgQGlmIChzdGF0ZSgpOyBhcyBzdGF0ZSkge1xuICAgICAgQGlmIChzdGF0ZT8uZXJyb3IgfHwgaWNvbikge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZWxkZXItaW5wdXQtcHJlZml4LWljb24tY29udGFpbmVyIGZsZXgtbm9uZVwiPlxuICAgICAgICAgIEBpZiAoaWNvbikge1xuICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgIGRpc2FibGVkXG4gICAgICAgICAgICAgIGNsYXNzPVwiZWxkZXItbWRjLWNvbnRyb2wtaWNvbiBlbGRlci1pY29uLXNtYWxsIG5vc2VsZWN0IGNsaWNrYWJsZS1pY29uXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmxvYWRpbmddPVwic3RhdGUubG9hZGluZ1wiXG4gICAgICAgICAgICAgIFtjb2xvcl09XCJzdGF0ZT8uZXJyb3IgPyAnd2FybicgOiBmb2N1c2VkID8gJ3ByaW1hcnknIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ3VycmVudENsaWNrZWQoZW50aXR5KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGljb24gfX1cbiAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgfSBAZWxzZSBpZiAoc3RhdGU/LmVycm9yKSB7XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgY2xhc3M9XCJlbGRlci1tZGMtY29udHJvbC1pY29uIGVsZGVyLWljb24tc21hbGwgbm9zZWxlY3RcIlxuICAgICAgICAgICAgICBjb2xvcj1cIndhcm5cIlxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJzdGF0ZT8uZXJyb3JcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB3YXJuaW5nXG4gICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgfVxuXG4gICAgPCEtLSBBIGR5bmFtaWMgaW5wdXQgLS0+XG4gICAgPGlucHV0XG4gICAgICAjaW5wdXRcbiAgICAgIG1hdElucHV0XG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBjbGFzcz1cImZsZXgtZ3JvdyBlbGRlci1zZWxlY3QtaW5wdXQgbWRjLXRleHQtZmllbGRfX2lucHV0XCJcbiAgICAgIFtkaXNhYmxlZF09XCIhIWRpc2FibGVkXCJcbiAgICAgIFtyZXF1aXJlZF09XCIhIXJlcXVpcmVkXCJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSB8fCAhYXV0b2NvbXBsZXRlXCJcbiAgICAgIFtuYW1lXT1cIm5nQ29udHJvbD8ubmFtZSArICctaW5uZXItaW5wdXQnXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclMoKSB8IHRyYW5zbGF0ZVwiXG4gICAgICBbbWF0QXV0b2NvbXBsZXRlXVxuICAgICAgI2F1dG9UcmlnZ2VyPVwibWF0QXV0b2NvbXBsZXRlVHJpZ2dlclwiXG4gICAgICBbZWxkZXJBdXRvY29tcGxldGVdPVwiZWxkZXJBdXRvXCJcbiAgICAgIFtxdWVyeUZpbHRlcl09XCJxdWVyeUZpbHRlclwiXG4gICAgICBbZmlsdGVyc109XCJmaWx0ZXJzXCJcbiAgICAgIFtzb3J0c109XCJzb3J0c1wiXG4gICAgICBlbGRlclNlbGVjdE9uVGFiXG4gICAgICBbY2xhc3MuZWxkZXItc2VsZWN0LWRyb3Bkb3duLWlucHV0XT1cIiFhdXRvY29tcGxldGVcIlxuICAgICAgW25nTW9kZWxdPVwiaW5wdXRUZXh0KClcIlxuICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSwgdXBkYXRlT246ICdzdWJtaXQnIH1cIlxuICAgICAgKGJsdXIpPVwib25JbnB1dEJsdXIoJGV2ZW50KVwiXG4gICAgICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKGF1dG9UcmlnZ2VyKVwiXG4gICAgICAoY2xpY2spPVwib25JbnB1dENsaWNrZWQoYXV0b1RyaWdnZXIpXCJcbiAgICAvPlxuXG4gICAgPGVsZGVyLXN1Z2dlc3Rpb24tcGFuZWxcbiAgICAgICNlbGRlckF1dG89XCJlbGRlclN1Z2dlc3Rpb25QYW5lbFwiXG4gICAgICBbZGF0YVNvdXJjZV09XCJkYXRhQ29udGV4dFMoKT8uZGF0YVNvdXJjZVwiXG4gICAgICBbdmFsdWVUZW1wbGF0ZV09XCJ2YWx1ZVRlbXBsYXRlXCJcbiAgICAgIGVuYWJsZWRcbiAgICAgIFtkaXNwbGF5UHJvcGVydHlSZXNvbHZlcl09XCJkaXNwbGF5UHJvcGVydHlSZXNvbHZlclMoKVwiXG4gICAgICBbaXNPcHRpb25EaXNhYmxlZEZuXT1cImlzT3B0aW9uRGlzYWJsZWRJbnRlcm5hbEZuXCJcbiAgICAgIFtpc09wdGlvbkhpZGRlbkZuXT1cImlzT3B0aW9uSGlkZGVuSW50ZXJuYWxGblwiXG4gICAgICBlbGRlckF1dG9TZWxlY3RTdWdnZXN0Rmlyc3RcbiAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJvbk9wdGlvblNlbGVjdGVkKCRhbnkoJGV2ZW50KSlcIlxuICAgID48L2VsZGVyLXN1Z2dlc3Rpb24tcGFuZWw+XG5cbiAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1zdGFydC1jZW50ZXIgZmxleC1ub25lXCI+XG4gICAgICBAaWYgKCFzZWxlY3Rpb25Qb3B1cCAmJiAhYXV0b2NvbXBsZXRlICYmICFlbnRpdHlXcmFwcGVyLmRpc3BsYXlSZW1vdmUpIHtcbiAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgY2xhc3M9XCJlbGRlci1tZGMtY29udHJvbC1pY29uIGVsZGVyLXNlbGVjdC1hcnJvdyBub3NlbGVjdFwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uSW5wdXRDbGlja2VkKGF1dG9UcmlnZ2VyKVwiXG4gICAgICAgID5cbiAgICAgICAgICBhcnJvd19kcm9wX2Rvd25cbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIH1cblxuICAgICAgQGlmIChzZWxlY3Rpb25Qb3B1cCAmJiAhZW50aXR5V3JhcHBlci5kaXNwbGF5UmVtb3ZlKSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImVsZGVyLWNvbnRyb2wtaWNvbi1idXR0b25cIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xvY2tlZFwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9wZW5TZWxlY3Rpb25Qb3B1cCgkZXZlbnQpXCJcbiAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VhcmNoXCJcbiAgICAgICAgICBlbGRlclN0b3BFdmVudFByb3BhZ2F0aW9uXG4gICAgICAgICAgdGFiSW5kZXg9XCItMVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJlbGRlci1tZGMtY29udHJvbC1pY29uXCI+c2VhcmNoPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoZW50aXR5V3JhcHBlci5kaXNwbGF5UmVtb3ZlICYmICF0aGlzLnJlYWRvbmx5UygpKSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImVsZGVyLWNvbnRyb2wtaWNvbi1idXR0b25cIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xvY2tlZFMoKVwiXG4gICAgICAgICAgKGNsaWNrKT1cImNsZWFyKCRldmVudClcIlxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhclwiXG4gICAgICAgICAgZWxkZXJTdG9wRXZlbnRQcm9wYWdhdGlvblxuICAgICAgICAgIHRhYkluZGV4PVwiLTFcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZWxkZXItbWRjLWNvbnRyb2wtaWNvblwiPmNsb3NlPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxufVxuIl19
|
|
@@ -30,10 +30,10 @@ export class ElderSelectFormField extends ElderFromFieldEntityBase {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
34
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderSelectFormField, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
|
|
34
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ElderSelectFormField, viewQueries: [{ propertyName: "selectValueTemplate", first: true, predicate: ElderSelectValueDirective, descendants: true }, { propertyName: "selectionModelPopupDirective", first: true, predicate: SelectionModelPopupDirective, descendants: true }], usesInheritance: true, ngImport: i0 }); }
|
|
35
35
|
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderSelectFormField, decorators: [{
|
|
37
37
|
type: Directive
|
|
38
38
|
}], ctorParameters: () => [{ type: undefined }], propDecorators: { selectValueTemplate: [{
|
|
39
39
|
type: ViewChild,
|
|
@@ -42,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
42
42
|
type: ViewChild,
|
|
43
43
|
args: [SelectionModelPopupDirective]
|
|
44
44
|
}] } });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VsZWN0LWZvcm0tZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9zaW5nbGUvZWxkZXItc2VsZWN0LWZvcm0tZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0RBQW9ELENBQUE7QUFDN0YsT0FBTyxFQUFpQixTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRW5FLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBRTNFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBDQUEwQyxDQUFBO0FBQ3ZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTs7QUFHdEQsTUFBTSxPQUFnQixvQkFDcEIsU0FBUSx3QkFBMEU7SUFlbEY7Ozs7Z0ZBSTRFO0lBRTVFLFlBQXNCLFlBQXFFO1FBQ3pGLEtBQUssRUFBRSxDQUFBO1FBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLGVBQWU7UUFDcEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxDQUFBO1FBRWpELElBQUksT0FBTyxZQUFZLGVBQWUsRUFBRSxDQUFDO1lBQ3ZDLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQzdCLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQTtZQUM5RCxDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztnQkFDdEMsT0FBTyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUE7WUFDNUQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOytHQTVDbUIsb0JBQW9CO21HQUFwQixvQkFBb0IsK0VBVTdCLHlCQUF5QiwrRkFHekIsNEJBQTRCOzs0RkFibkIsb0JBQW9CO2tCQUR6QyxTQUFTOzJFQVlELG1CQUFtQjtzQkFEekIsU0FBUzt1QkFBQyx5QkFBeUI7Z0JBSTdCLDRCQUE0QjtzQkFEbEMsU0FBUzt1QkFBQyw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGRlckZyb21GaWVsZEVudGl0eUJhc2UgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZm9ybXMvZWxkZXItZnJvbS1maWVsZC1lbnRpdHktYmFzZSdcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEVsZGVyU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9lbGRlci1zZWxlY3QvZWxkZXItc2VsZWN0LmNvbXBvbmVudCdcbmltcG9ydCB7IEVsZGVyU2VsZWN0VmFsdWVEaXJlY3RpdmUgfSBmcm9tICcuLi9lbGRlci1zZWxlY3QtdmFsdWUuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRWxkZXJBcHBseUNvbnRyb2xGbiB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9mb3Jtcy9lbGRlci1mcm9tLWZpZWxkLWJhc2UnXG5pbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbFBvcHVwRGlyZWN0aXZlIH0gZnJvbSAnLi4vcG9wdXAvc2VsZWN0aW9uLW1vZGVsLXBvcHVwLmRpcmVjdGl2ZSdcbmltcG9ydCB7IEVsZGVyU2VsZWN0QmFzZSB9IGZyb20gJy4uL2VsZGVyLXNlbGVjdC1iYXNlJ1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbGRlclNlbGVjdEZvcm1GaWVsZDxURW50aXR5LCBUSWQ+XG4gIGV4dGVuZHMgRWxkZXJGcm9tRmllbGRFbnRpdHlCYXNlPFRFbnRpdHksIFRJZCwgRWxkZXJTZWxlY3RDb21wb25lbnQ8VEVudGl0eSwgVElkPj5cbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0XG57XG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBWaWV3Q2hpbGQoRWxkZXJTZWxlY3RWYWx1ZURpcmVjdGl2ZSlcbiAgcHVibGljIHNlbGVjdFZhbHVlVGVtcGxhdGU6IEVsZGVyU2VsZWN0VmFsdWVEaXJlY3RpdmVcblxuICBAVmlld0NoaWxkKFNlbGVjdGlvbk1vZGVsUG9wdXBEaXJlY3RpdmUpXG4gIHB1YmxpYyBzZWxlY3Rpb25Nb2RlbFBvcHVwRGlyZWN0aXZlOiBTZWxlY3Rpb25Nb2RlbFBvcHVwRGlyZWN0aXZlXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGluaXRTZWxlY3RGbjogRWxkZXJBcHBseUNvbnRyb2xGbjxFbGRlclNlbGVjdENvbXBvbmVudDxURW50aXR5LCBUSWQ+Pikge1xuICAgIHN1cGVyKClcbiAgICB0aGlzLmFwcGx5VG9Db250cm9sKGluaXRTZWxlY3RGbilcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuZm9ybUZpZWxkQ29udHJvbCQuZ2V0VmFsdWUoKVxuXG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBFbGRlclNlbGVjdEJhc2UpIHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdFZhbHVlVGVtcGxhdGUpIHtcbiAgICAgICAgY29udHJvbC52YWx1ZVRlbXBsYXRlID0gdGhpcy5zZWxlY3RWYWx1ZVRlbXBsYXRlLnRlbXBsYXRlUmVmXG4gICAgICB9XG4gICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlbFBvcHVwRGlyZWN0aXZlKSB7XG4gICAgICAgIGNvbnRyb2wuc2VsZWN0aW9uUG9wdXAgPSB0aGlzLnNlbGVjdGlvbk1vZGVsUG9wdXBEaXJlY3RpdmVcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -104,15 +104,15 @@ export class ElderChipListSelectComponent {
|
|
|
104
104
|
getId(entity) {
|
|
105
105
|
return entity[this.idField] ? entity[this.idField] : entity;
|
|
106
106
|
}
|
|
107
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
108
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.
|
|
107
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderChipListSelectComponent, deps: [{ token: i1.SelectionModel, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
108
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ElderChipListSelectComponent, isStandalone: true, selector: " elder-chip-list-select", inputs: { data$: "data$", idField: "idField", displayField: "displayField", color: "color", stacked: "stacked", data: "data", selection: "selection", selectionMultiEnabled: "selectionMultiEnabled" }, outputs: { itemClick: "itemClick", selectionChange: "selectionChange", selectionSingleChange: "selectionSingleChange" }, providers: [
|
|
109
109
|
{
|
|
110
110
|
provide: ELDER_DATA_VIEW,
|
|
111
111
|
useExisting: forwardRef(() => ElderChipListSelectComponent),
|
|
112
112
|
},
|
|
113
113
|
], ngImport: i0, template: "<div class=\"layout-col full\">\n <mat-chip-listbox\n [multiple]=\"selectionModel.isMultipleSelection\"\n [ngClass]=\"{ 'mat-mdc-chip-set-stacked': stacked }\"\n >\n <mat-chip-option\n *ngFor=\"let chip of data$ | async\"\n selectable\n [selected]=\"isSelected(chip)\"\n (click)=\"onItemClick(chip)\"\n [color]=\"color\"\n >\n {{ getDisplayText(chip) }}\n </mat-chip-option>\n </mat-chip-listbox>\n</div>\n", styles: [".select-item{padding-left:16px;padding-right:16px;min-height:56px;border-radius:0;font-size:16px;font-weight:400}elder-select-list-item a.select-item-inactive mat-icon{color:#757575}.nested-items-container{overflow:hidden;padding-left:20px}\n"], dependencies: [{ kind: "component", type: MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
114
114
|
}
|
|
115
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderChipListSelectComponent, decorators: [{
|
|
116
116
|
type: Component,
|
|
117
117
|
args: [{ selector: ' elder-chip-list-select', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
118
118
|
{
|
|
@@ -145,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
145
145
|
}], selectionMultiEnabled: [{
|
|
146
146
|
type: Input
|
|
147
147
|
}] } });
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItY2hpcC1saXN0LXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC1jaGlwLWxpc3QvY2hpcC1saXN0LXNlbGVjdC9lbGRlci1jaGlwLWxpc3Qtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0LWNoaXAtbGlzdC9jaGlwLWxpc3Qtc2VsZWN0L2VsZGVyLWNoaXAtbGlzdC1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkNBQTJDLENBQUE7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFBO0FBQ2xELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVwQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFBOzs7QUFnQnZFLE1BQU0sT0FBTyw0QkFBNEI7SUF3Q3ZDOzs7O2dGQUk0RTtJQUU1RSxZQUErQixjQUFtQztRQUFu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VDVCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNEJBQTRCLENBQUM7YUFDNUQ7U0FDRiwwQkM1Qkgsd2NBZ0JBLDRTRGNZLGNBQWMsOE1BQUUsT0FBTyxvRkFBRSxLQUFLLG1IQUFFLGFBQWEsNExBQUUsU0FBUzs7MkZBRXZELDRCQUE0QjtrQkFkeEMsU0FBUzsrQkFDRSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGVBQWU7NEJBQ3hCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDZCQUE2QixDQUFDO3lCQUM1RDtxQkFDRixjQUNXLElBQUksV0FDUCxDQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxTQUFTLENBQUM7OzBCQWdEdEQsUUFBUTt5Q0FwQ2QsS0FBSztzQkFEWCxLQUFLO2dCQVFDLE9BQU87c0JBRGIsS0FBSztnQkFPQyxZQUFZO3NCQURsQixLQUFLO2dCQU9DLEtBQUs7c0JBRFgsS0FBSztnQkFPQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsU0FBUztzQkFEZixNQUFNO2dCQXdCSSxJQUFJO3NCQURkLEtBQUs7Z0JBTUssU0FBUztzQkFEbkIsS0FBSztnQkFNSyxlQUFlO3NCQUR6QixNQUFNO2dCQU1JLHFCQUFxQjtzQkFEL0IsTUFBTTtnQkFjSSxxQkFBcUI7c0JBRC9CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vc2VsZWN0aW9uL3NlbGVjdGlvbi1tb2RlbCdcbmltcG9ydCB7IEVMREVSX0RBVEFfVklFVyB9IGZyb20gJy4uLy4uL2RhdGEtdmlldy9iYXNlL2VsZGVyLWRhdGEtdmlldydcbmltcG9ydCB7IExvZ2dlckZhY3RvcnkgfSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcidcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnXG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0ZvciwgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTWF0Q2hpcExpc3Rib3gsIE1hdENoaXBPcHRpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcydcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnIGVsZGVyLWNoaXAtbGlzdC1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItY2hpcC1saXN0LXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZGVyLWNoaXAtbGlzdC1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVMREVSX0RBVEFfVklFVyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVsZGVyQ2hpcExpc3RTZWxlY3RDb21wb25lbnQpLFxuICAgIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtNYXRDaGlwTGlzdGJveCwgTmdDbGFzcywgTmdGb3IsIE1hdENoaXBPcHRpb24sIEFzeW5jUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyQ2hpcExpc3RTZWxlY3RDb21wb25lbnQge1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSlcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZGF0YSQ6IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oW10pXG5cbiAgLyoqXG4gICAqIFRoZSBwcm9wZXJ0eSB1c2VkIHRvIGNvbXBhcmUgdHdvIHZhbHVlcy5cbiAgICogVXNlZnVsIGlmIHRoZSB2YWx1ZXMgYXJlIGVudGl0aWVzIHdpdGggYW4gaWQgcHJvcGVydHkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaWRGaWVsZCA9ICdpZCdcblxuICAvKipcbiAgICogVGhlIHByb3BlcnR5IHdob3NlIHZhbHVlcyBzaG91bGQgYmUgdXNlZCBmb3IgaXRlbSBkaXNwbGF5LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGRpc3BsYXlGaWVsZDogc3RyaW5nID0gbnVsbFxuXG4gIC8qKlxuICAgKiBUaGUgY29sb3IgdXNlZCB0byBpbmRpY2F0ZWQgc2VsZWN0aW9uLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGNvbG9yOiBUaGVtZVBhbGV0dGUgPSAncHJpbWFyeSdcblxuICAvKipcbiAgICogSWYgdGhlIGNoaXAgbGlzdCBzaG91bGQgYmUgc3RhY2tlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGFja2VkOiBmYWxzZVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgaXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHVibGljIHNlbGVjdGlvbk1vZGVsOiBTZWxlY3Rpb25Nb2RlbDxhbnk+KSB7XG4gICAgaWYgKCFzZWxlY3Rpb25Nb2RlbCkge1xuICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlbCA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxhbnk+KGZhbHNlLCBbXSwgKGVudGl0eSkgPT5cbiAgICAgICAgZW50aXR5ID8gdGhpcy5nZXRJZChlbnRpdHkpIDogMFxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGF0YShkYXRhOiBhbnlbXSkge1xuICAgIHRoaXMuZGF0YSQubmV4dChkYXRhKVxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uOiBhbnlbXSkge1xuICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwucmVwbGFjZVNlbGVjdGlvbihzZWxlY3Rpb24pXG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCBzZWxlY3Rpb25DaGFuZ2UoKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbk1vZGVsLmNoYW5nZWRcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IHNlbGVjdGlvblNpbmdsZUNoYW5nZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbk1vZGVsLmNoYW5nZWQucGlwZShcbiAgICAgIG1hcCgoc2VsZWN0aW9uKSA9PiB7XG4gICAgICAgIGlmIChzZWxlY3Rpb24ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHJldHVybiBzZWxlY3Rpb25bMF1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2VsZWN0aW9uTXVsdGlFbmFibGVkKGVuYWJsZU11bHRpU2VsZWN0aW9uOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZWwpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwuaXNNdWx0aXBsZVNlbGVjdGlvbiA9IGVuYWJsZU11bHRpU2VsZWN0aW9uXG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbXBvbmVudCBFdmVudHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIE9jY3VycyB3aGVuIHRoZSB1c2VyIGNsaWNrcyBvbiBpdGVtXG4gICAqL1xuICBwdWJsaWMgb25JdGVtQ2xpY2soZW50aXR5OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLnRvZ2dsZShlbnRpdHkpXG4gICAgdGhpcy5pdGVtQ2xpY2submV4dChlbnRpdHkpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZ2V0RGlzcGxheVRleHQodmFsdWU6IGFueSk6IGFueSB7XG4gICAgaWYgKHRoaXMuZGlzcGxheUZpZWxkICYmIHZhbHVlKSB7XG4gICAgICByZXR1cm4gKDxhbnk+dmFsdWUpW3RoaXMuZGlzcGxheUZpZWxkXVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIHB1YmxpYyBpc1NlbGVjdGVkKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGVkKHZhbHVlKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBnZXRJZChlbnRpdHk6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIGVudGl0eVt0aGlzLmlkRmllbGRdID8gZW50aXR5W3RoaXMuaWRGaWVsZF0gOiBlbnRpdHlcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZnVsbFwiPlxuICA8bWF0LWNoaXAtbGlzdGJveFxuICAgIFttdWx0aXBsZV09XCJzZWxlY3Rpb25Nb2RlbC5pc011bHRpcGxlU2VsZWN0aW9uXCJcbiAgICBbbmdDbGFzc109XCJ7ICdtYXQtbWRjLWNoaXAtc2V0LXN0YWNrZWQnOiBzdGFja2VkIH1cIlxuICA+XG4gICAgPG1hdC1jaGlwLW9wdGlvblxuICAgICAgKm5nRm9yPVwibGV0IGNoaXAgb2YgZGF0YSQgfCBhc3luY1wiXG4gICAgICBzZWxlY3RhYmxlXG4gICAgICBbc2VsZWN0ZWRdPVwiaXNTZWxlY3RlZChjaGlwKVwiXG4gICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soY2hpcClcIlxuICAgICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICA+XG4gICAgICB7eyBnZXREaXNwbGF5VGV4dChjaGlwKSB9fVxuICAgIDwvbWF0LWNoaXAtb3B0aW9uPlxuICA8L21hdC1jaGlwLWxpc3Rib3g+XG48L2Rpdj5cbiJdfQ==
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItY2hpcC1saXN0LXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC1jaGlwLWxpc3QvY2hpcC1saXN0LXNlbGVjdC9lbGRlci1jaGlwLWxpc3Qtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0LWNoaXAtbGlzdC9jaGlwLWxpc3Qtc2VsZWN0L2VsZGVyLWNoaXAtbGlzdC1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBQ0wsUUFBUSxFQUNSLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkNBQTJDLENBQUE7QUFDMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFBO0FBQ2xELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVwQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFBOzs7QUFnQnZFLE1BQU0sT0FBTyw0QkFBNEI7SUF3Q3ZDOzs7O2dGQUk0RTtJQUU1RSxZQUErQixjQUFtQztRQUFu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VDVCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNEJBQTRCLENBQUM7YUFDNUQ7U0FDRiwwQkM1Qkgsd2NBZ0JBLDRTRGNZLGNBQWMsOE1BQUUsT0FBTyxvRkFBRSxLQUFLLG1IQUFFLGFBQWEsNExBQUUsU0FBUzs7NEZBRXZELDRCQUE0QjtrQkFkeEMsU0FBUzsrQkFDRSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGVBQWU7NEJBQ3hCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDZCQUE2QixDQUFDO3lCQUM1RDtxQkFDRixjQUNXLElBQUksV0FDUCxDQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxTQUFTLENBQUM7OzBCQWdEdEQsUUFBUTt5Q0FwQ2QsS0FBSztzQkFEWCxLQUFLO2dCQVFDLE9BQU87c0JBRGIsS0FBSztnQkFPQyxZQUFZO3NCQURsQixLQUFLO2dCQU9DLEtBQUs7c0JBRFgsS0FBSztnQkFPQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsU0FBUztzQkFEZixNQUFNO2dCQXdCSSxJQUFJO3NCQURkLEtBQUs7Z0JBTUssU0FBUztzQkFEbkIsS0FBSztnQkFNSyxlQUFlO3NCQUR6QixNQUFNO2dCQU1JLHFCQUFxQjtzQkFEL0IsTUFBTTtnQkFjSSxxQkFBcUI7c0JBRC9CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vc2VsZWN0aW9uL3NlbGVjdGlvbi1tb2RlbCdcbmltcG9ydCB7IEVMREVSX0RBVEFfVklFVyB9IGZyb20gJy4uLy4uL2RhdGEtdmlldy9iYXNlL2VsZGVyLWRhdGEtdmlldydcbmltcG9ydCB7IExvZ2dlckZhY3RvcnkgfSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcidcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IFRoZW1lUGFsZXR0ZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnXG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ0ZvciwgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgTWF0Q2hpcExpc3Rib3gsIE1hdENoaXBPcHRpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcydcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnIGVsZGVyLWNoaXAtbGlzdC1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItY2hpcC1saXN0LXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZGVyLWNoaXAtbGlzdC1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVMREVSX0RBVEFfVklFVyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVsZGVyQ2hpcExpc3RTZWxlY3RDb21wb25lbnQpLFxuICAgIH0sXG4gIF0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtNYXRDaGlwTGlzdGJveCwgTmdDbGFzcywgTmdGb3IsIE1hdENoaXBPcHRpb24sIEFzeW5jUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyQ2hpcExpc3RTZWxlY3RDb21wb25lbnQge1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSlcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZGF0YSQ6IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oW10pXG5cbiAgLyoqXG4gICAqIFRoZSBwcm9wZXJ0eSB1c2VkIHRvIGNvbXBhcmUgdHdvIHZhbHVlcy5cbiAgICogVXNlZnVsIGlmIHRoZSB2YWx1ZXMgYXJlIGVudGl0aWVzIHdpdGggYW4gaWQgcHJvcGVydHkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaWRGaWVsZCA9ICdpZCdcblxuICAvKipcbiAgICogVGhlIHByb3BlcnR5IHdob3NlIHZhbHVlcyBzaG91bGQgYmUgdXNlZCBmb3IgaXRlbSBkaXNwbGF5LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGRpc3BsYXlGaWVsZDogc3RyaW5nID0gbnVsbFxuXG4gIC8qKlxuICAgKiBUaGUgY29sb3IgdXNlZCB0byBpbmRpY2F0ZWQgc2VsZWN0aW9uLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGNvbG9yOiBUaGVtZVBhbGV0dGUgPSAncHJpbWFyeSdcblxuICAvKipcbiAgICogSWYgdGhlIGNoaXAgbGlzdCBzaG91bGQgYmUgc3RhY2tlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGFja2VkOiBmYWxzZVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgaXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHVibGljIHNlbGVjdGlvbk1vZGVsOiBTZWxlY3Rpb25Nb2RlbDxhbnk+KSB7XG4gICAgaWYgKCFzZWxlY3Rpb25Nb2RlbCkge1xuICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlbCA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxhbnk+KGZhbHNlLCBbXSwgKGVudGl0eSkgPT5cbiAgICAgICAgZW50aXR5ID8gdGhpcy5nZXRJZChlbnRpdHkpIDogMFxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGF0YShkYXRhOiBhbnlbXSkge1xuICAgIHRoaXMuZGF0YSQubmV4dChkYXRhKVxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBzZWxlY3Rpb24oc2VsZWN0aW9uOiBhbnlbXSkge1xuICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwucmVwbGFjZVNlbGVjdGlvbihzZWxlY3Rpb24pXG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIGdldCBzZWxlY3Rpb25DaGFuZ2UoKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbk1vZGVsLmNoYW5nZWRcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IHNlbGVjdGlvblNpbmdsZUNoYW5nZSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbk1vZGVsLmNoYW5nZWQucGlwZShcbiAgICAgIG1hcCgoc2VsZWN0aW9uKSA9PiB7XG4gICAgICAgIGlmIChzZWxlY3Rpb24ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHJldHVybiBzZWxlY3Rpb25bMF1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc2VsZWN0aW9uTXVsdGlFbmFibGVkKGVuYWJsZU11bHRpU2VsZWN0aW9uOiBib29sZWFuKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZWwpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uTW9kZWwuaXNNdWx0aXBsZVNlbGVjdGlvbiA9IGVuYWJsZU11bHRpU2VsZWN0aW9uXG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbXBvbmVudCBFdmVudHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIE9jY3VycyB3aGVuIHRoZSB1c2VyIGNsaWNrcyBvbiBpdGVtXG4gICAqL1xuICBwdWJsaWMgb25JdGVtQ2xpY2soZW50aXR5OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLnRvZ2dsZShlbnRpdHkpXG4gICAgdGhpcy5pdGVtQ2xpY2submV4dChlbnRpdHkpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZ2V0RGlzcGxheVRleHQodmFsdWU6IGFueSk6IGFueSB7XG4gICAgaWYgKHRoaXMuZGlzcGxheUZpZWxkICYmIHZhbHVlKSB7XG4gICAgICByZXR1cm4gKDxhbnk+dmFsdWUpW3RoaXMuZGlzcGxheUZpZWxkXVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIHB1YmxpYyBpc1NlbGVjdGVkKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGVkKHZhbHVlKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBnZXRJZChlbnRpdHk6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIGVudGl0eVt0aGlzLmlkRmllbGRdID8gZW50aXR5W3RoaXMuaWRGaWVsZF0gOiBlbnRpdHlcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImxheW91dC1jb2wgZnVsbFwiPlxuICA8bWF0LWNoaXAtbGlzdGJveFxuICAgIFttdWx0aXBsZV09XCJzZWxlY3Rpb25Nb2RlbC5pc011bHRpcGxlU2VsZWN0aW9uXCJcbiAgICBbbmdDbGFzc109XCJ7ICdtYXQtbWRjLWNoaXAtc2V0LXN0YWNrZWQnOiBzdGFja2VkIH1cIlxuICA+XG4gICAgPG1hdC1jaGlwLW9wdGlvblxuICAgICAgKm5nRm9yPVwibGV0IGNoaXAgb2YgZGF0YSQgfCBhc3luY1wiXG4gICAgICBzZWxlY3RhYmxlXG4gICAgICBbc2VsZWN0ZWRdPVwiaXNTZWxlY3RlZChjaGlwKVwiXG4gICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soY2hpcClcIlxuICAgICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgICA+XG4gICAgICB7eyBnZXREaXNwbGF5VGV4dChjaGlwKSB9fVxuICAgIDwvbWF0LWNoaXAtb3B0aW9uPlxuICA8L21hdC1jaGlwLWxpc3Rib3g+XG48L2Rpdj5cbiJdfQ==
|