@elderbyte/ngx-starter 17.3.4 → 17.5.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 +3 -3
- package/esm2022/lib/common/forms/elder-form-field-control-base.directive.mjs +3 -3
- package/esm2022/lib/common/forms/elder-from-field-base.mjs +3 -3
- package/esm2022/lib/common/forms/elder-from-field-customizable-base.mjs +3 -3
- package/esm2022/lib/common/forms/elder-from-field-entity-base.mjs +3 -3
- package/esm2022/lib/common/forms/elder-from-field-multi-entity-base.mjs +3 -3
- package/esm2022/lib/common/forms/form-field-base.component.mjs +3 -3
- package/esm2022/lib/common/forms/multi-model-base.component.mjs +3 -3
- package/esm2022/lib/common/forms/template-composite-control.mjs +3 -3
- package/esm2022/lib/common/forms/value-accessor-base.mjs +3 -3
- package/esm2022/lib/common/http/http-client-builder.service.mjs +3 -3
- package/esm2022/lib/common/http/http-client-pristine.mjs +3 -3
- package/esm2022/lib/common/http/transfer/data-transfer-factory.mjs +3 -3
- package/esm2022/lib/common/url/elder-router.service.mjs +3 -3
- package/esm2022/lib/common/url/elder-url-fragment-params.service.mjs +3 -3
- package/esm2022/lib/components/access-denied/elder-access-denied.component.mjs +3 -3
- package/esm2022/lib/components/access-denied/elder-access-denied.module.mjs +4 -4
- package/esm2022/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +3 -3
- package/esm2022/lib/components/auditing/elder-audit.module.mjs +4 -4
- package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +9 -9
- package/esm2022/lib/components/badge/elder-badge.directive.mjs +3 -3
- package/esm2022/lib/components/badge/elder-badge.module.mjs +4 -4
- package/esm2022/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +3 -3
- package/esm2022/lib/components/button-group/elder-button-group.module.mjs +4 -4
- package/esm2022/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +3 -3
- package/esm2022/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +3 -3
- package/esm2022/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +3 -3
- package/esm2022/lib/components/card-organizer/elder-card-organizer.module.mjs +4 -4
- package/esm2022/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +3 -3
- package/esm2022/lib/components/cards/elder-card/elder-card.component.mjs +18 -18
- package/esm2022/lib/components/cards/elder-card/elder-card.module.mjs +4 -4
- package/esm2022/lib/components/chips/elder-chip-label.directive.mjs +3 -3
- package/esm2022/lib/components/chips/elder-chips.module.mjs +4 -4
- package/esm2022/lib/components/connectivity/elder-connectivity.module.mjs +4 -4
- package/esm2022/lib/components/connectivity/elder-connectivity.service.mjs +3 -3
- package/esm2022/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +3 -3
- package/esm2022/lib/components/containers/elder-containers.module.mjs +4 -4
- package/esm2022/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +3 -3
- package/esm2022/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +3 -3
- package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +3 -3
- package/esm2022/lib/components/csv/elder-csv.module.mjs +4 -4
- package/esm2022/lib/components/currency/elder-currency.module.mjs +4 -4
- package/esm2022/lib/components/currency/elder-currency.pipe.mjs +3 -3
- package/esm2022/lib/components/data-transfer/elder-data-transfer.module.mjs +4 -4
- package/esm2022/lib/components/data-transfer/elder-data-transfer.service.mjs +3 -3
- package/esm2022/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +3 -3
- package/esm2022/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +3 -3
- package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +3 -3
- package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +3 -3
- package/esm2022/lib/components/data-view/base/elder-data-view-base.mjs +3 -3
- package/esm2022/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +3 -3
- package/esm2022/lib/components/data-view/common/elder-data-common.module.mjs +4 -4
- package/esm2022/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +6 -6
- package/esm2022/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +3 -3
- package/esm2022/lib/components/data-view/common/selection/data-context-selection.directive.mjs +3 -3
- package/esm2022/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +3 -3
- package/esm2022/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +9 -9
- package/esm2022/lib/components/data-view/grid/elder-grid.module.mjs +4 -4
- package/esm2022/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +3 -3
- package/esm2022/lib/components/data-view/master-detail/elder-detail.directive.mjs +3 -3
- package/esm2022/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +3 -3
- package/esm2022/lib/components/data-view/master-detail/elder-master-detail.component.mjs +3 -3
- package/esm2022/lib/components/data-view/master-detail/elder-master-detail.module.mjs +4 -4
- package/esm2022/lib/components/data-view/master-detail/elder-master-detail.service.mjs +3 -3
- package/esm2022/lib/components/data-view/master-detail/elder-master.directive.mjs +3 -3
- package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +3 -3
- package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +4 -4
- package/esm2022/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +3 -3
- package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +3 -3
- package/esm2022/lib/components/data-view/table/elder-number-cell.directive.mjs +3 -3
- package/esm2022/lib/components/data-view/table/elder-paginator-intl.mjs +3 -3
- package/esm2022/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +3 -3
- package/esm2022/lib/components/data-view/table/elder-table/elder-table.component.mjs +3 -3
- package/esm2022/lib/components/data-view/table/elder-table-column.directive.mjs +3 -3
- package/esm2022/lib/components/data-view/table/elder-table-extension.directive.mjs +3 -3
- package/esm2022/lib/components/data-view/table/elder-table-root.directive.mjs +3 -3
- package/esm2022/lib/components/data-view/table/elder-table-row.directive.mjs +3 -3
- package/esm2022/lib/components/data-view/table/elder-table-sort.directive.mjs +3 -3
- package/esm2022/lib/components/data-view/table/elder-table.module.mjs +4 -4
- package/esm2022/lib/components/data-view/table/model/elder-table-model.mjs +3 -3
- package/esm2022/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +3 -3
- package/esm2022/lib/components/dialogs/elder-dialog.module.mjs +4 -4
- package/esm2022/lib/components/dialogs/elder-dialog.service.mjs +3 -3
- package/esm2022/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +3 -3
- package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +3 -3
- package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +3 -3
- package/esm2022/lib/components/errors/elder-error.module.mjs +4 -4
- package/esm2022/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +3 -3
- package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +3 -3
- package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +4 -4
- package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +3 -3
- package/esm2022/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +3 -3
- package/esm2022/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +3 -3
- package/esm2022/lib/components/files/elder-file-drop-zone.directive.mjs +3 -3
- package/esm2022/lib/components/files/elder-file-select.directive.mjs +3 -3
- package/esm2022/lib/components/files/elder-file.module.mjs +4 -4
- package/esm2022/lib/components/files/file-select/file-select.component.mjs +3 -3
- package/esm2022/lib/components/files/file-upload/file-upload.component.mjs +3 -3
- package/esm2022/lib/components/forms/clipboard/elder-clipboard.service.mjs +3 -3
- package/esm2022/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +3 -3
- package/esm2022/lib/components/forms/directives/elder-clipboard-put.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/elder-delayed-focus.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/elder-form-field-dense.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/elder-form-field-label.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +4 -4
- package/esm2022/lib/components/forms/directives/elder-initial-value.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/elder-input-pattern.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/elder-key-event.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/elder-next-focusable.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/elder-touched.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +3 -3
- package/esm2022/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +3 -3
- package/esm2022/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +3 -3
- package/esm2022/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +3 -3
- package/esm2022/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +3 -3
- package/esm2022/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +3 -3
- package/esm2022/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +3 -3
- package/esm2022/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +3 -3
- package/esm2022/lib/components/forms/elder-forms.module.mjs +4 -4
- package/esm2022/lib/components/forms/search/domain/context/search-context.service.mjs +3 -3
- package/esm2022/lib/components/forms/search/domain/url/elder-search-url.directive.mjs +3 -3
- package/esm2022/lib/components/forms/search/domain/url/elder-search-url.service.mjs +3 -3
- package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +3 -3
- package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +3 -3
- package/esm2022/lib/components/forms/search/elder-search.module.mjs +4 -4
- package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +3 -3
- package/esm2022/lib/components/forms/search/search-box/elder-search-panel.component.mjs +3 -3
- package/esm2022/lib/components/global-search/elder-global-search.component.mjs +3 -3
- package/esm2022/lib/components/global-search/elder-global-search.module.mjs +4 -4
- package/esm2022/lib/components/global-search/elder-global-search.service.mjs +3 -3
- package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +3 -3
- package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +4 -4
- package/esm2022/lib/components/headers/elder-header/elder-header.component.mjs +3 -3
- package/esm2022/lib/components/headers/elder-header.module.mjs +4 -4
- package/esm2022/lib/components/http-support/elder-http-client.service.mjs +3 -3
- package/esm2022/lib/components/i18n/entities/elder-i18n-entities.module.mjs +4 -4
- package/esm2022/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +3 -3
- package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +3 -3
- package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +3 -3
- package/esm2022/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +3 -3
- package/esm2022/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +3 -3
- package/esm2022/lib/components/i18n/entities/elder-localized-texts.directive.mjs +3 -3
- package/esm2022/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +3 -3
- package/esm2022/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +3 -3
- package/esm2022/lib/components/i18n/entities/picker/localisation-picker.service.mjs +3 -3
- package/esm2022/lib/components/i18n/language/elder-language-interceptor.mjs +3 -3
- package/esm2022/lib/components/i18n/language/elder-language.module.mjs +4 -4
- package/esm2022/lib/components/i18n/language/elder-language.service.mjs +3 -3
- package/esm2022/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +3 -3
- package/esm2022/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +4 -4
- package/esm2022/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +3 -3
- package/esm2022/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +3 -3
- package/esm2022/lib/components/iframes/elder-iframe.module.mjs +4 -4
- package/esm2022/lib/components/iframes/iframe-close.directive.mjs +3 -3
- package/esm2022/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +3 -3
- package/esm2022/lib/components/iframes/iframe-host/iframe-host.component.mjs +3 -3
- package/esm2022/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +3 -3
- package/esm2022/lib/components/iframes/iframe.service.mjs +3 -3
- package/esm2022/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +3 -3
- package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +3 -3
- package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +4 -4
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +3 -3
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +3 -3
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +3 -3
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete.module.mjs +4 -4
- package/esm2022/lib/components/labels/elder-labels.module.mjs +4 -4
- package/esm2022/lib/components/labels/labels-input/labels-input.component.mjs +3 -3
- package/esm2022/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +3 -3
- package/esm2022/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +3 -3
- package/esm2022/lib/components/measures/directives/elder-unit-select.directive.mjs +3 -3
- package/esm2022/lib/components/measures/elder-measures.module.mjs +8 -8
- package/esm2022/lib/components/measures/elder-quantity-transform.pipe.mjs +3 -3
- package/esm2022/lib/components/measures/elder-quantity.pipe.mjs +3 -3
- package/esm2022/lib/components/measures/elder-unit.service.mjs +3 -3
- package/esm2022/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +3 -3
- package/esm2022/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +3 -3
- package/esm2022/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +3 -3
- package/esm2022/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +3 -3
- package/esm2022/lib/components/measures/util/elder-quantity.service.mjs +3 -3
- package/esm2022/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +3 -3
- package/esm2022/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +4 -4
- package/esm2022/lib/components/navigation/nav/elder-nav.module.mjs +4 -4
- package/esm2022/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +3 -3
- package/esm2022/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +3 -3
- package/esm2022/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +3 -3
- package/esm2022/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +3 -3
- package/esm2022/lib/components/navigation/toolbar/elder-toolbar.module.mjs +4 -4
- package/esm2022/lib/components/navigation/toolbar/elder-toolbar.service.mjs +3 -3
- package/esm2022/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +3 -3
- package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +3 -3
- package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +3 -3
- package/esm2022/lib/components/overlays/elder-overlay-origin.directive.mjs +3 -3
- package/esm2022/lib/components/overlays/elder-overlay-trigger.directive.mjs +3 -3
- package/esm2022/lib/components/overlays/elder-overlay.component.mjs +3 -3
- package/esm2022/lib/components/overlays/elder-overlay.module.mjs +4 -4
- package/esm2022/lib/components/panels/card-panel/elder-card-panel.component.mjs +3 -3
- package/esm2022/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +3 -3
- package/esm2022/lib/components/panels/elder-panel.module.mjs +4 -4
- package/esm2022/lib/components/panels/flat/elder-panel.component.mjs +3 -3
- package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +3 -3
- package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +9 -9
- package/esm2022/lib/components/scrollbar/elder-scrollbar.directive.mjs +3 -3
- package/esm2022/lib/components/scrollbar/elder-scrollbar.module.mjs +4 -4
- package/esm2022/lib/components/select/auto/elder-auto-select-first.directive.mjs +3 -3
- package/esm2022/lib/components/select/elder-select-base.mjs +17 -6
- package/esm2022/lib/components/select/elder-select-chip.directive.mjs +9 -9
- package/esm2022/lib/components/select/elder-select-on-tab.directive.mjs +3 -3
- package/esm2022/lib/components/select/elder-select-value.directive.mjs +3 -3
- package/esm2022/lib/components/select/elder-select.module.mjs +24 -12
- package/esm2022/lib/components/select/multi/elder-chip-select-option/elder-select-option.component.mjs +17 -0
- package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +5 -5
- package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/chip-options-provider.mjs +84 -0
- package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +62 -82
- package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +3 -3
- package/esm2022/lib/components/select/multi/elder-multi-select-form-field.mjs +3 -3
- package/esm2022/lib/components/select/multi/elder-mutli-select-all-directive.mjs +34 -0
- package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +3 -3
- package/esm2022/lib/components/select/popup/selection-model-popup.directive.mjs +3 -3
- package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +3 -3
- package/esm2022/lib/components/select/single/elder-clear-select.directive.mjs +3 -3
- package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +3 -3
- package/esm2022/lib/components/select/single/elder-select-form-field.mjs +3 -3
- package/esm2022/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +6 -6
- package/esm2022/lib/components/select-chip-list/elder-chip-list-select.module.mjs +4 -4
- package/esm2022/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +3 -3
- package/esm2022/lib/components/shell/drawers/elder-router-outlet.service.mjs +3 -3
- package/esm2022/lib/components/shell/elder-shell-slot.directive.mjs +3 -3
- package/esm2022/lib/components/shell/elder-shell.module.mjs +4 -4
- package/esm2022/lib/components/shell/elder-shell.service.mjs +3 -3
- package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +3 -3
- package/esm2022/lib/components/shell/shell/elder-shell.component.mjs +12 -12
- package/esm2022/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +3 -3
- package/esm2022/lib/components/tabs/elder-tab/elder-tab.directive.mjs +3 -3
- package/esm2022/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +3 -3
- package/esm2022/lib/components/tabs/elder-tab.module.mjs +4 -4
- package/esm2022/lib/components/theme/elder-theme-applier.directive.mjs +3 -3
- package/esm2022/lib/components/theme/elder-theme-preference.service.mjs +3 -3
- package/esm2022/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +3 -3
- package/esm2022/lib/components/theme/elder-theme.directive.mjs +3 -3
- package/esm2022/lib/components/theme/elder-theme.module.mjs +4 -4
- package/esm2022/lib/components/theme/elder-theme.service.mjs +3 -3
- package/esm2022/lib/components/time/date-adapters/custom-date-adapter.mjs +3 -3
- package/esm2022/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +3 -3
- package/esm2022/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +3 -3
- package/esm2022/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +3 -3
- package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +3 -3
- package/esm2022/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +3 -3
- package/esm2022/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +3 -3
- package/esm2022/lib/components/time/elder-time.module.mjs +4 -4
- package/esm2022/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +3 -3
- package/esm2022/lib/components/time/pipes/to-iso-date-string.pipe.mjs +3 -3
- package/esm2022/lib/components/toasts/elder-toast.module.mjs +4 -4
- package/esm2022/lib/components/toasts/elder-toast.service.mjs +3 -3
- package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +3 -3
- package/esm2022/lib/components/url-fragment/elder-url-fragment.module.mjs +4 -4
- package/esm2022/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +3 -3
- package/esm2022/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +3 -3
- package/esm2022/lib/components/viewers/elder-viewers.module.mjs +4 -4
- package/esm2022/lib/features/event-source/elder-event-source.service.mjs +3 -3
- package/esm2022/lib/features/kafent/access-token-provider.mjs +3 -3
- package/esm2022/lib/features/kafent/kafent-config.mjs +3 -3
- package/esm2022/lib/features/kafent/kafent-event-stream.mjs +3 -3
- package/esm2022/lib/features/kafent/kafent-event.service.mjs +3 -3
- package/esm2022/lib/features/kafent/kafent.module.mjs +4 -4
- package/esm2022/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +3 -3
- package/esm2022/lib/pipes/bytes.pipe.mjs +3 -3
- package/esm2022/lib/pipes/elder-pipes.module.mjs +10 -10
- package/esm2022/lib/pipes/elder-repeat.pipe.mjs +3 -3
- package/esm2022/lib/pipes/elder-round.pipe.mjs +3 -3
- package/esm2022/lib/pipes/elder-safe-url.pipe.mjs +3 -3
- package/esm2022/lib/pipes/elder-truncate.pipe.mjs +3 -3
- package/esm2022/lib/pipes/iso-duration.pipe.mjs +3 -3
- package/esm2022/lib/pipes/iso-interval-parse.pipe.mjs +3 -3
- package/esm2022/lib/pipes/iso-interval.pipe.mjs +3 -3
- package/esm2022/lib/pipes/time-ago.pipe.mjs +3 -3
- package/esm2022/lib/pipes/time-duration.pipe.mjs +3 -3
- package/esm2022/lib/pipes/weight.pipe.mjs +3 -3
- package/fesm2022/elderbyte-ngx-starter.mjs +1141 -1017
- package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
- package/lib/components/select/elder-select-base.d.ts +6 -2
- package/lib/components/select/elder-select.module.d.ts +28 -24
- package/lib/components/select/multi/elder-chip-select-option/elder-select-option.component.d.ts +8 -0
- package/lib/components/select/multi/elder-multi-select-base.d.ts +1 -1
- package/lib/components/select/multi/elder-multi-select-chip-options/chip-options-provider.d.ts +53 -0
- package/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.d.ts +28 -33
- package/lib/components/select/multi/elder-mutli-select-all-directive.d.ts +15 -0
- package/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.d.ts +2 -2
- package/package.json +1 -1
- package/src/lib/components/select/multi/elder-chip-select-option/elder-select-option.component.scss +0 -0
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ContentChild, forwardRef, Input, Optional, Self, TemplateRef, ViewChild } from
|
|
2
|
-
import { ElderMultiSelectBase } from
|
|
3
|
-
import { LoggerFactory } from
|
|
4
|
-
import { BehaviorSubject, combineLatest
|
|
5
|
-
import {
|
|
6
|
-
import { ElderSelectChipAvatarDirective, ElderSelectChipDirective } from
|
|
7
|
-
import { ELDER_SELECT_BASE } from
|
|
8
|
-
import { MatFormFieldControl } from
|
|
9
|
-
import { SelectOptionChipSpecUtil } from
|
|
10
|
-
import { MatChipListbox } from
|
|
11
|
-
import { coerceBooleanProperty } from
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ContentChild, forwardRef, Input, Optional, Self, TemplateRef, ViewChild } from "@angular/core";
|
|
2
|
+
import { ElderMultiSelectBase } from "../elder-multi-select-base";
|
|
3
|
+
import { LoggerFactory } from "@elderbyte/ts-logger";
|
|
4
|
+
import { BehaviorSubject, combineLatest } from "rxjs";
|
|
5
|
+
import { map, switchMap } from "rxjs/operators";
|
|
6
|
+
import { ElderSelectChipAvatarDirective, ElderSelectChipDirective } from "../../elder-select-chip.directive";
|
|
7
|
+
import { ELDER_SELECT_BASE } from "../../elder-select-base";
|
|
8
|
+
import { MatFormFieldControl } from "@angular/material/form-field";
|
|
9
|
+
import { SelectOptionChipSpecUtil } from "./select-option-chip-spec";
|
|
10
|
+
import { MatChipListbox } from "@angular/material/chips";
|
|
11
|
+
import { coerceBooleanProperty } from "@angular/cdk/coercion";
|
|
12
|
+
import ChipOptionsProvider from "./chip-options-provider";
|
|
12
13
|
import * as i0 from "@angular/core";
|
|
13
14
|
import * as i1 from "@angular/cdk/a11y";
|
|
14
15
|
import * as i2 from "@ngx-translate/core";
|
|
@@ -22,25 +23,15 @@ import * as i9 from "@angular/material/tooltip";
|
|
|
22
23
|
import * as i10 from "../../../forms/directives/elder-stop-event-propagation.directive";
|
|
23
24
|
import * as i11 from "../../../chips/elder-chip-label.directive";
|
|
24
25
|
import * as i12 from "../../../../pipes/elder-truncate.pipe";
|
|
25
|
-
class ChipOptionModel {
|
|
26
|
-
constructor(value, displayText, colorSpec, locked, avatarSpec, trailingSpec, selected) {
|
|
27
|
-
this.value = value;
|
|
28
|
-
this.displayText = displayText;
|
|
29
|
-
this.colorSpec = colorSpec;
|
|
30
|
-
this.locked = locked;
|
|
31
|
-
this.avatarSpec = avatarSpec;
|
|
32
|
-
this.trailingSpec = trailingSpec;
|
|
33
|
-
this.selected = selected;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
26
|
export class ElderMultiSelectChipOptionsComponent extends ElderMultiSelectBase {
|
|
37
27
|
/***************************************************************************
|
|
38
28
|
* *
|
|
39
29
|
* Constructor *
|
|
40
30
|
* *
|
|
41
31
|
**************************************************************************/
|
|
42
|
-
constructor(hostRef, zone, focusMonitor, translateService, dialogService, ngControl) {
|
|
43
|
-
super(zone, hostRef,
|
|
32
|
+
constructor(hostRef, zone, focusMonitor, translateService, dialogService, destroyRef, ngControl) {
|
|
33
|
+
super(zone, hostRef, "multi-select-chip-options", focusMonitor, translateService, dialogService, ngControl);
|
|
34
|
+
this.destroyRef = destroyRef;
|
|
44
35
|
/***************************************************************************
|
|
45
36
|
* *
|
|
46
37
|
* Fields *
|
|
@@ -50,14 +41,10 @@ export class ElderMultiSelectChipOptionsComponent extends ElderMultiSelectBase {
|
|
|
50
41
|
this.chipTemplate$ = new BehaviorSubject(null);
|
|
51
42
|
this.chipAvatarTemplate$ = new BehaviorSubject(null);
|
|
52
43
|
this.defaultChipSpec = SelectOptionChipSpecUtil.DefaultChipSpec;
|
|
53
|
-
|
|
54
|
-
* Allows to customize each chip individually (Color, Removable, Avatar).
|
|
55
|
-
*
|
|
56
|
-
*/
|
|
57
|
-
this.chipSpecFn = e => this.defaultChipSpec;
|
|
44
|
+
this._chipSpecFn$ = new BehaviorSubject(e => this.defaultChipSpec);
|
|
58
45
|
this.stacked = false;
|
|
59
46
|
this._multiple = false;
|
|
60
|
-
|
|
47
|
+
this.context$ = combineLatest([
|
|
61
48
|
this.state$,
|
|
62
49
|
this.displayPropertyResolver$,
|
|
63
50
|
this.readonly$,
|
|
@@ -70,13 +57,19 @@ export class ElderMultiSelectChipOptionsComponent extends ElderMultiSelectBase {
|
|
|
70
57
|
disabled: disabled
|
|
71
58
|
};
|
|
72
59
|
}));
|
|
73
|
-
|
|
60
|
+
this.optionsProvider$ = combineLatest([
|
|
61
|
+
this.dataContext$,
|
|
62
|
+
this.dataContext$.pipe(switchMap(dc => dc.data)),
|
|
63
|
+
this.chipSpecFn$,
|
|
64
|
+
this.templateOptions$
|
|
65
|
+
]).pipe(map(([dc, data, chipSpecFn, templateChips]) => new ChipOptionsProvider(dc.dataSource, this.buildAvailableEntities(data, templateChips), chipSpecFn)));
|
|
74
66
|
this.selectChips$ = combineLatest([
|
|
67
|
+
this.optionsProvider$,
|
|
75
68
|
this.entities$,
|
|
76
69
|
this.entityIds$,
|
|
77
|
-
|
|
78
|
-
context$
|
|
79
|
-
]).pipe(map(([entities, entityIds,
|
|
70
|
+
this.templateOptions$,
|
|
71
|
+
this.context$
|
|
72
|
+
]).pipe(map(([optionsProvider, entities, entityIds, templateSelectChips, context]) => this.buildChipModels(optionsProvider, entities, entityIds, this.buildEntitiesLabelMap(templateSelectChips), context)));
|
|
80
73
|
this.templates$ = combineLatest([
|
|
81
74
|
this.chipTemplate$,
|
|
82
75
|
this.chipAvatarTemplate$
|
|
@@ -98,6 +91,16 @@ export class ElderMultiSelectChipOptionsComponent extends ElderMultiSelectBase {
|
|
|
98
91
|
this.selectEntity(this.entities[this.entities.length - 1]);
|
|
99
92
|
}
|
|
100
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Allows to customize each chip individually (Color, Removable, Avatar).
|
|
96
|
+
*
|
|
97
|
+
*/
|
|
98
|
+
set chipSpecFn(fn) {
|
|
99
|
+
this._chipSpecFn$.next(fn);
|
|
100
|
+
}
|
|
101
|
+
get chipSpecFn$() {
|
|
102
|
+
return this._chipSpecFn$.asObservable();
|
|
103
|
+
}
|
|
101
104
|
get multiple() {
|
|
102
105
|
return this._multiple;
|
|
103
106
|
}
|
|
@@ -129,7 +132,7 @@ export class ElderMultiSelectChipOptionsComponent extends ElderMultiSelectBase {
|
|
|
129
132
|
**************************************************************************/
|
|
130
133
|
selectionChanged(changeEvent, entity) {
|
|
131
134
|
/**/
|
|
132
|
-
this.log.debug(
|
|
135
|
+
this.log.debug("selectionChanged", {
|
|
133
136
|
changeEvent: changeEvent,
|
|
134
137
|
entity: entity
|
|
135
138
|
});
|
|
@@ -151,7 +154,7 @@ export class ElderMultiSelectChipOptionsComponent extends ElderMultiSelectBase {
|
|
|
151
154
|
}
|
|
152
155
|
}
|
|
153
156
|
blur() {
|
|
154
|
-
this.log.warn(
|
|
157
|
+
this.log.warn("blur() not yet supported!");
|
|
155
158
|
}
|
|
156
159
|
/***************************************************************************
|
|
157
160
|
* *
|
|
@@ -194,72 +197,47 @@ export class ElderMultiSelectChipOptionsComponent extends ElderMultiSelectBase {
|
|
|
194
197
|
isEntityIdSelected(entityId) {
|
|
195
198
|
return this.entities.some(e => this.getEntityId(e) == entityId);
|
|
196
199
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
200
|
+
buildChipModels(optionsProvider, entities, entityIds, entitiesLabels, context) {
|
|
201
|
+
return optionsProvider.buildChipModelsOrFallback(entities, entityIds, {
|
|
202
|
+
context: context,
|
|
203
|
+
isLocked: this.isLocked,
|
|
204
|
+
entityLabelMap: entitiesLabels
|
|
205
|
+
});
|
|
202
206
|
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
return entityIds.map(id => this.buildChipBySpec({ id: id }, context, {
|
|
206
|
-
colorSpec: {
|
|
207
|
-
themeColor: 'warn'
|
|
208
|
-
},
|
|
209
|
-
avatarSpec: {
|
|
210
|
-
hide: false,
|
|
211
|
-
large: false
|
|
212
|
-
}
|
|
213
|
-
}, false // TODO
|
|
214
|
-
));
|
|
207
|
+
buildAvailableEntities(data, templateChips) {
|
|
208
|
+
return [...this.extractEntitiesFromTemplateChips(templateChips), ...data];
|
|
215
209
|
}
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
const selectedIds = new Set(entities.map(e => this.getEntityId(e)));
|
|
219
|
-
return availables.map(available => this.buildChipBySpec(available, context, this.chipSpecFn(available) ?? this.defaultChipSpec, selectedIds.has(this.getEntityId(available))));
|
|
220
|
-
}
|
|
221
|
-
else {
|
|
222
|
-
return [];
|
|
223
|
-
}
|
|
210
|
+
extractEntitiesFromTemplateChips(templateChips) {
|
|
211
|
+
return templateChips.map(chip => chip.value);
|
|
224
212
|
}
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
locked = true;
|
|
229
|
-
}
|
|
230
|
-
else {
|
|
231
|
-
locked = chipSpec.locked;
|
|
232
|
-
}
|
|
233
|
-
return new ChipOptionModel(e, context.displayPropertyResolver(e), {
|
|
234
|
-
themeColor: selected ? 'accent' : undefined
|
|
235
|
-
}, locked, chipSpec.avatarSpec, chipSpec.trailingSpec, selected);
|
|
213
|
+
buildEntitiesLabelMap(templateChips) {
|
|
214
|
+
return new Map(templateChips.filter(chip => chip.label != undefined)
|
|
215
|
+
.map(chip => [chip.value, chip.label]));
|
|
236
216
|
}
|
|
237
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.
|
|
238
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
217
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElderMultiSelectChipOptionsComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.FocusMonitor }, { token: i2.TranslateService }, { token: i3.ElderDialogService }, { token: i0.DestroyRef }, { token: i4.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
218
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: ElderMultiSelectChipOptionsComponent, selector: "elder-multi-select-chip-options", inputs: { defaultChipSpec: "defaultChipSpec", stacked: "stacked", multiple: "multiple", chipSpecFn: "chipSpecFn", chipTemplate: "chipTemplate", chipAvatarTemplate: "chipAvatarTemplate" }, providers: [
|
|
239
219
|
{ provide: MatFormFieldControl, useExisting: ElderMultiSelectChipOptionsComponent },
|
|
240
220
|
{
|
|
241
221
|
provide: ELDER_SELECT_BASE,
|
|
242
222
|
useExisting: forwardRef(() => ElderMultiSelectChipOptionsComponent)
|
|
243
223
|
}
|
|
244
|
-
], queries: [{ propertyName: "chipTemplateQuery", first: true, predicate: ElderSelectChipDirective, descendants: true, read: TemplateRef }, { propertyName: "chipAvatarTemplateQuery", first: true, predicate: ElderSelectChipAvatarDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "_listBox", first: true, predicate: MatChipListbox, descendants: true }], usesInheritance: true, ngImport: i0, template: "
|
|
224
|
+
], queries: [{ propertyName: "chipTemplateQuery", first: true, predicate: ElderSelectChipDirective, descendants: true, read: TemplateRef }, { propertyName: "chipAvatarTemplateQuery", first: true, predicate: ElderSelectChipAvatarDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "_listBox", first: true, predicate: MatChipListbox, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (selectChips$ | async;as selectChips) {\n <div class=\"elder-flex-control\"\n [matTooltip]=\"(state$ | async)?.error\"\n >\n <mat-chip-listbox #chips\n [class.mat-mdc-chip-set-stacked]=\"stacked\"\n [multiple]=\"multiple\"\n >\n\n @if (mergedState$ | async;as state) {\n @if (icon) {\n <div class=\"elder-input-prefix-icon-container flex-none\">\n <mat-icon disabled\n class=\"elder-prefix-icon elder-mdc-control-icon elder-icon-small noselect\"\n [class.loading]=\"state.loading\"\n >\n {{ icon }}\n </mat-icon>\n </div>\n }\n }\n\n @if (templates$ | async;as templates) {\n <ng-content></ng-content>\n\n @for (chipModel of selectChips;track chipModel.value) {\n <mat-chip-option class=\"noselect\"\n [value]=\"resolveChipValue(chipModel.value)\"\n elderChipLabel\n [levelColor]=\"chipModel.colorSpec?.levelColor\"\n [stateColor]=\"chipModel.colorSpec?.stateColor\"\n [color]=\"chipModel.colorSpec?.themeColor\"\n [selectable]=\"!chipModel.locked\"\n [disabled]=\"chipModel.locked\"\n [selected]=\"chipModel.selected\"\n (selectionChange)=\"selectionChanged($event, chipModel.value)\"\n >\n\n @if (templates.avatar && !chipModel.avatarSpec?.hide) {\n <mat-chip-avatar\n [class.chip-avatar-xl]=\"chipModel.avatarSpec?.large\"\n >\n <ng-container\n *ngTemplateOutlet=\"templates.avatar; context: {$implicit: chipModel}\">\n </ng-container>\n </mat-chip-avatar>\n }\n\n <ng-container\n *ngTemplateOutlet=\"templates.chip || simpleChipTemplate; context: {$implicit: chipModel}\">\n </ng-container>\n\n @if (chipModel.trailingSpec?.icon) {\n <mat-icon matChipTrailingIcon class=\"elder-trailing-icon\"\n [fontSet]=\"chipModel.trailingSpec?.iconFontSet\"\n >{{ chipModel.trailingSpec?.icon }}\n </mat-icon>\n }\n\n </mat-chip-option>\n }\n\n <div class=\"layout-row place-start-center elder-chip-input\">\n\n @if (selectionPopup) {\n <button mat-icon-button\n type=\"button\"\n class=\"elder-control-icon-button elder-browse-icon\"\n [disabled]=\"isLocked\"\n (click)=\"openSelectionPopup($event)\" aria-label=\"Search\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon class=\"elder-mdc-control-icon\">search</mat-icon>\n </button>\n }\n </div>\n }\n\n </mat-chip-listbox>\n </div>\n}\n\n<ng-template #simpleChipTemplate let-chipModel>\n <span class=\"elder-chip-text\">{{ chipModel.displayText | elderTruncate:20 }}</span>\n</ng-template>\n\n", styles: [".elder-chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.elder-trailing-icon{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color);opacity:.54}\n"], dependencies: [{ kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i8.MatChipAvatar, selector: "mat-chip-avatar, [matChipAvatar]" }, { kind: "component", type: i8.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i8.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: i8.MatChipTrailingIcon, selector: "mat-chip-trailing-icon, [matChipTrailingIcon]" }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i10.ElderStopEventPropagationDirective, selector: "[elderStopEventPropagation]" }, { kind: "directive", type: i11.ElderChipLabelDirective, selector: "[elderChipLabel]", inputs: ["appearance", "color", "stateColor", "levelColor"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i12.ElderTruncatePipe, name: "elderTruncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
245
225
|
}
|
|
246
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.
|
|
226
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElderMultiSelectChipOptionsComponent, decorators: [{
|
|
247
227
|
type: Component,
|
|
248
|
-
args: [{ selector:
|
|
228
|
+
args: [{ selector: "elder-multi-select-chip-options", changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
249
229
|
{ provide: MatFormFieldControl, useExisting: ElderMultiSelectChipOptionsComponent },
|
|
250
230
|
{
|
|
251
231
|
provide: ELDER_SELECT_BASE,
|
|
252
232
|
useExisting: forwardRef(() => ElderMultiSelectChipOptionsComponent)
|
|
253
233
|
}
|
|
254
|
-
], template: "
|
|
255
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.FocusMonitor }, { type: i2.TranslateService }, { type: i3.ElderDialogService }, { type: i4.NgControl, decorators: [{
|
|
234
|
+
], template: "@if (selectChips$ | async;as selectChips) {\n <div class=\"elder-flex-control\"\n [matTooltip]=\"(state$ | async)?.error\"\n >\n <mat-chip-listbox #chips\n [class.mat-mdc-chip-set-stacked]=\"stacked\"\n [multiple]=\"multiple\"\n >\n\n @if (mergedState$ | async;as state) {\n @if (icon) {\n <div class=\"elder-input-prefix-icon-container flex-none\">\n <mat-icon disabled\n class=\"elder-prefix-icon elder-mdc-control-icon elder-icon-small noselect\"\n [class.loading]=\"state.loading\"\n >\n {{ icon }}\n </mat-icon>\n </div>\n }\n }\n\n @if (templates$ | async;as templates) {\n <ng-content></ng-content>\n\n @for (chipModel of selectChips;track chipModel.value) {\n <mat-chip-option class=\"noselect\"\n [value]=\"resolveChipValue(chipModel.value)\"\n elderChipLabel\n [levelColor]=\"chipModel.colorSpec?.levelColor\"\n [stateColor]=\"chipModel.colorSpec?.stateColor\"\n [color]=\"chipModel.colorSpec?.themeColor\"\n [selectable]=\"!chipModel.locked\"\n [disabled]=\"chipModel.locked\"\n [selected]=\"chipModel.selected\"\n (selectionChange)=\"selectionChanged($event, chipModel.value)\"\n >\n\n @if (templates.avatar && !chipModel.avatarSpec?.hide) {\n <mat-chip-avatar\n [class.chip-avatar-xl]=\"chipModel.avatarSpec?.large\"\n >\n <ng-container\n *ngTemplateOutlet=\"templates.avatar; context: {$implicit: chipModel}\">\n </ng-container>\n </mat-chip-avatar>\n }\n\n <ng-container\n *ngTemplateOutlet=\"templates.chip || simpleChipTemplate; context: {$implicit: chipModel}\">\n </ng-container>\n\n @if (chipModel.trailingSpec?.icon) {\n <mat-icon matChipTrailingIcon class=\"elder-trailing-icon\"\n [fontSet]=\"chipModel.trailingSpec?.iconFontSet\"\n >{{ chipModel.trailingSpec?.icon }}\n </mat-icon>\n }\n\n </mat-chip-option>\n }\n\n <div class=\"layout-row place-start-center elder-chip-input\">\n\n @if (selectionPopup) {\n <button mat-icon-button\n type=\"button\"\n class=\"elder-control-icon-button elder-browse-icon\"\n [disabled]=\"isLocked\"\n (click)=\"openSelectionPopup($event)\" aria-label=\"Search\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon class=\"elder-mdc-control-icon\">search</mat-icon>\n </button>\n }\n </div>\n }\n\n </mat-chip-listbox>\n </div>\n}\n\n<ng-template #simpleChipTemplate let-chipModel>\n <span class=\"elder-chip-text\">{{ chipModel.displayText | elderTruncate:20 }}</span>\n</ng-template>\n\n", styles: [".elder-chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.elder-trailing-icon{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color);opacity:.54}\n"] }]
|
|
235
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.FocusMonitor }, { type: i2.TranslateService }, { type: i3.ElderDialogService }, { type: i0.DestroyRef }, { type: i4.NgControl, decorators: [{
|
|
256
236
|
type: Optional
|
|
257
237
|
}, {
|
|
258
238
|
type: Self
|
|
259
239
|
}] }], propDecorators: { defaultChipSpec: [{
|
|
260
240
|
type: Input
|
|
261
|
-
}], chipSpecFn: [{
|
|
262
|
-
type: Input
|
|
263
241
|
}], stacked: [{
|
|
264
242
|
type: Input
|
|
265
243
|
}], _listBox: [{
|
|
@@ -267,6 +245,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
267
245
|
args: [MatChipListbox]
|
|
268
246
|
}], multiple: [{
|
|
269
247
|
type: Input
|
|
248
|
+
}], chipSpecFn: [{
|
|
249
|
+
type: Input
|
|
270
250
|
}], chipTemplateQuery: [{
|
|
271
251
|
type: ContentChild,
|
|
272
252
|
args: [ElderSelectChipDirective, { read: TemplateRef, static: false }]
|
|
@@ -278,4 +258,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
|
|
|
278
258
|
}], chipAvatarTemplate: [{
|
|
279
259
|
type: Input
|
|
280
260
|
}] } });
|
|
281
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWNoaXAtb3B0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9tdWx0aS9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcC1vcHRpb25zL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwLW9wdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvbXVsdGkvZWxkZXItbXVsdGktc2VsZWN0LWNoaXAtb3B0aW9ucy9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcC1vcHRpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFFWixVQUFVLEVBQ1YsS0FBSyxFQUVMLFFBQVEsRUFDUixJQUFJLEVBQ0osV0FBVyxFQUFFLFNBQVMsRUFDdkIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBS25ELE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFjLFNBQVMsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMzRSxPQUFPLEVBQUMsTUFBTSxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBTTNDLE9BQU8sRUFBQyw4QkFBOEIsRUFBRSx3QkFBd0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzNHLE9BQU8sRUFBQyxpQkFBaUIsRUFBNEMsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRyxPQUFPLEVB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Q0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUNBQXFDLENBQUM7eUJBQ3BFO3FCQUNGOzswQkFrREUsUUFBUTs7MEJBQUksSUFBSTt5Q0E3QlosZUFBZTtzQkFEckIsS0FBSztnQkFRQyxVQUFVO3NCQURoQixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFNcUIsUUFBUTtzQkFBbEMsU0FBUzt1QkFBQyxjQUFjO2dCQWlGZCxRQUFRO3NCQURsQixLQUFLO2dCQWVLLGlCQUFpQjtzQkFEM0IsWUFBWTt1QkFBQyx3QkFBd0IsRUFBRSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFNL0QsWUFBWTtzQkFEdEIsS0FBSztnQkFVSyx1QkFBdUI7c0JBRGpDLFlBQVk7dUJBQUMsOEJBQThCLEVBQUUsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBTXJFLGtCQUFrQjtzQkFENUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT3B0aW9uYWwsXG4gIFNlbGYsXG4gIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VsZGVyTXVsdGlTZWxlY3RCYXNlfSBmcm9tICcuLi9lbGRlci1tdWx0aS1zZWxlY3QtYmFzZSc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7Rm9jdXNNb25pdG9yfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtFbGRlckRpYWxvZ1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2RpYWxvZ3MvZWxkZXItZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBzd2l0Y2hNYXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQ2hpcEF2YXRhclNwZWMsXG4gIENoaXBDb2xvclNwZWMsXG4gIFRyYWlsaW5nU3BlY1xufSBmcm9tICcuLi9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcHMvc2VsZWN0LWNoaXAtc3BlYyc7XG5pbXBvcnQge0VsZGVyU2VsZWN0Q2hpcEF2YXRhckRpcmVjdGl2ZSwgRWxkZXJTZWxlY3RDaGlwRGlyZWN0aXZlfSBmcm9tICcuLi8uLi9lbGRlci1zZWxlY3QtY2hpcC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtFTERFUl9TRUxFQ1RfQkFTRSwgRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZSwgVGV4dFJlc29sdmVyRm59IGZyb20gJy4uLy4uL2VsZGVyLXNlbGVjdC1iYXNlJztcbmltcG9ydCB7TWF0Rm9ybUZpZWxkQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQge0lEYXRhQ29udGV4dH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dCc7XG5pbXBvcnQge1NlbGVjdE9wdGlvbkNoaXBTcGVjLCBTZWxlY3RPcHRpb25DaGlwU3BlY1V0aWx9IGZyb20gJy4vc2VsZWN0LW9wdGlvbi1jaGlwLXNwZWMnO1xuaW1wb3J0IHtNYXRDaGlwTGlzdGJveCwgTWF0Q2hpcFNlbGVjdGlvbkNoYW5nZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHtFbGRlclNlbGVjdENvbXBvbmVudH0gZnJvbSAnLi4vLi4vc2luZ2xlL2VsZGVyLXNlbGVjdC9lbGRlci1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7Qm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHl9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbmNsYXNzIENoaXBPcHRpb25Nb2RlbDxUPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZTogVCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheVRleHQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29sb3JTcGVjOiBDaGlwQ29sb3JTcGVjLFxuICAgIHB1YmxpYyByZWFkb25seSBsb2NrZWQ6IGJvb2xlYW4sXG4gICAgcHVibGljIHJlYWRvbmx5IGF2YXRhclNwZWM6IENoaXBBdmF0YXJTcGVjLFxuICAgIHB1YmxpYyByZWFkb25seSB0cmFpbGluZ1NwZWM6IFRyYWlsaW5nU3BlYyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWQ6IGJvb2xlYW5cbiAgKSB7XG4gIH1cbn1cblxuaW50ZXJmYWNlIFRlbXBsYXRlV3JhcHBlciB7XG4gIGNoaXA6IFRlbXBsYXRlUmVmPGFueT47XG4gIGF2YXRhcjogVGVtcGxhdGVSZWY8YW55Pjtcbn1cblxuaW50ZXJmYWNlIElDb250ZXh0IHtcbiAgc3RhdGU6IEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUsXG4gIGRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyOiBUZXh0UmVzb2x2ZXJGbixcbiAgcmVhZG9ubHk6IGJvb2xlYW4sXG4gIGRpc2FibGVkOiBib29sZWFuXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwLW9wdGlvbnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItbXVsdGktc2VsZWN0LWNoaXAtb3B0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwLW9wdGlvbnMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogRWxkZXJNdWx0aVNlbGVjdENoaXBPcHRpb25zQ29tcG9uZW50fSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBFTERFUl9TRUxFQ1RfQkFTRSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVsZGVyTXVsdGlTZWxlY3RDaGlwT3B0aW9uc0NvbXBvbmVudClcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJNdWx0aVNlbGVjdENoaXBPcHRpb25zQ29tcG9uZW50PFRJZCA9IGFueSwgVEVudGl0eSA9IGFueSwgVFZhbHVlID0gYW55PlxuICBleHRlbmRzIEVsZGVyTXVsdGlTZWxlY3RCYXNlPFRJZCwgVEVudGl0eSwgVFZhbHVlPiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHJlYWRvbmx5IHRlbXBsYXRlcyQ6IE9ic2VydmFibGU8VGVtcGxhdGVXcmFwcGVyPjtcblxuICBwcml2YXRlIHJlYWRvbmx5IGNoaXBUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmPGFueT4+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNoaXBBdmF0YXJUZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVmPGFueT4+KG51bGwpO1xuXG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RDaGlwcyQ6IE9ic2VydmFibGU8Q2hpcE9wdGlvbk1vZGVsPFRFbnRpdHk+W10+O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkZWZhdWx0Q2hpcFNwZWM6IFNlbGVjdE9wdGlvbkNoaXBTcGVjID0gU2VsZWN0T3B0aW9uQ2hpcFNwZWNVdGlsLkRlZmF1bHRDaGlwU3BlYztcblxuICAvKipcbiAgICogQWxsb3dzIHRvIGN1c3RvbWl6ZSBlYWNoIGNoaXAgaW5kaXZpZHVhbGx5IChDb2xvciwgUmVtb3ZhYmxlLCBBdmF0YXIpLlxuICAgKlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGNoaXBTcGVjRm46IChlOiBURW50aXR5KSA9PiBTZWxlY3RPcHRpb25DaGlwU3BlYyA9IGUgPT4gdGhpcy5kZWZhdWx0Q2hpcFNwZWM7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHN0YWNrZWQgPSBmYWxzZTtcblxuXG4gIHByaXZhdGUgX211bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZChNYXRDaGlwTGlzdGJveCkgX2xpc3RCb3g6IE1hdENoaXBMaXN0Ym94O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGhvc3RSZWY6IEVsZW1lbnRSZWYsXG4gICAgem9uZTogTmdab25lLFxuICAgIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgZGlhbG9nU2VydmljZTogRWxkZXJEaWFsb2dTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2xcbiAgKSB7XG4gICAgc3VwZXIoem9uZSwgaG9zdFJlZiwgJ211bHRpLXNlbGVjdC1jaGlwLW9wdGlvbnMnLCBmb2N1c01vbml0b3IsIHRyYW5zbGF0ZVNlcnZpY2UsIGRpYWxvZ1NlcnZpY2UsIG5nQ29udHJvbCk7XG5cblxuICAgIGNvbnN0IGNvbnRleHQkID0gY29tYmluZUxhdGVzdChcbiAgICAgIFtcbiAgICAgICAgdGhpcy5zdGF0ZSQsXG4gICAgICAgIHRoaXMuZGlzcGxheVByb3BlcnR5UmVzb2x2ZXIkLFxuICAgICAgICB0aGlzLnJlYWRvbmx5JCxcbiAgICAgICAgdGhpcy5kaXNhYmxlZCRcbiAgICAgIF1cbiAgICApLnBpcGUoXG4gICAgICBtYXAoKFtzdGF0ZSwgZFBSLCByZWFkb25seSwgZGlzYWJsZWRdKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIDxJQ29udGV4dD57XG4gICAgICAgICAgICBzdGF0ZTogc3RhdGUsXG4gICAgICAgICAgICBkaXNwbGF5UHJvcGVydHlSZXNvbHZlcjogZFBSLFxuICAgICAgICAgICAgcmVhZG9ubHk6IHJlYWRvbmx5LFxuICAgICAgICAgICAgZGlzYWJsZWQ6IGRpc2FibGVkXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgKVxuICAgICk7XG5cbiAgICBjb25zdCBhdmFpbGFibGUkID0gdGhpcy5kYXRhQ29udGV4dCQucGlwZShcbiAgICAgIGZpbHRlcihkYyA9PiAhIWRjKSxcbiAgICAgIHN3aXRjaE1hcChkYyA9PiBkYy5kYXRhKVxuICAgICk7XG5cbiAgICB0aGlzLnNlbGVjdENoaXBzJCA9IGNvbWJpbmVMYXRlc3QoXG4gICAgICBbXG4gICAgICAgIHRoaXMuZW50aXRpZXMkLFxuICAgICAgICB0aGlzLmVudGl0eUlkcyQsXG4gICAgICAgIGF2YWlsYWJsZSQsXG4gICAgICAgIGNvbnRleHQkXG4gICAgICBdXG4gICAgKS5waXBlKFxuICAgICAgbWFwKChbZW50aXRpZXMsIGVudGl0eUlkcywgYXZhaWxhYmxlLCBjb250ZXh0XSkgPT5cbiAgICAgICAgdGhpcy5idWlsZENoaXBNb2RlbHNPckZhbGxiYWNrKFxuICAgICAgICAgIGVudGl0aWVzLFxuICAgICAgICAgIGVudGl0eUlkcyxcbiAgICAgICAgICBhdmFpbGFibGUsXG4gICAgICAgICAgY29udGV4dFxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMudGVtcGxhdGVzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jaGlwVGVtcGxhdGUkLFxuICAgICAgdGhpcy5jaGlwQXZhdGFyVGVtcGxhdGUkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2NoaXAsIGF2YXRhcl0pID0+IHtcbiAgICAgICAgcmV0dXJuIDxUZW1wbGF0ZVdyYXBwZXI+e1xuICAgICAgICAgIGNoaXAsXG4gICAgICAgICAgYXZhdGFyXG4gICAgICAgIH07XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG11bHRpcGxlKHZhbDogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fbXVsdGlwbGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsKTtcbiAgICBpZiAoIXRoaXMuX211bHRpcGxlICYmIHRoaXMuZW50aXRpZXMubGVuZ3RoID4gMSkge1xuICAgICAgdGhpcy5zZWxlY3RFbnRpdHkoXG4gICAgICAgIHRoaXMuZW50aXRpZXNbdGhpcy5lbnRpdGllcy5sZW5ndGggLSAxXVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IG11bHRpcGxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9tdWx0aXBsZTtcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTZWxlY3RDaGlwRGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogZmFsc2V9KVxuICBwdWJsaWMgc2V0IGNoaXBUZW1wbGF0ZVF1ZXJ5KHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5jaGlwVGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hpcFRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5jaGlwVGVtcGxhdGUkLm5leHQodGVtcGxhdGUpO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGlwVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuY2hpcFRlbXBsYXRlJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgQENvbnRlbnRDaGlsZChFbGRlclNlbGVjdENoaXBBdmF0YXJEaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiBmYWxzZX0pXG4gIHB1YmxpYyBzZXQgY2hpcEF2YXRhclRlbXBsYXRlUXVlcnkodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmNoaXBBdmF0YXJUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjaGlwQXZhdGFyVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmNoaXBBdmF0YXJUZW1wbGF0ZSQubmV4dCh0ZW1wbGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoaXBBdmF0YXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jaGlwQXZhdGFyVGVtcGxhdGUkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHNob3VsZExhYmVsRmxvYXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgc2VsZWN0aW9uQ2hhbmdlZChjaGFuZ2VFdmVudDogTWF0Q2hpcFNlbGVjdGlvbkNoYW5nZSwgZW50aXR5OiBURW50aXR5KTogdm9pZCB7XG4gICAgLyoqL1xuICAgIHRoaXMubG9nLmRlYnVnKCdzZWxlY3Rpb25DaGFuZ2VkJywge1xuICAgICAgY2hhbmdlRXZlbnQ6IGNoYW5nZUV2ZW50LFxuICAgICAgZW50aXR5OiBlbnRpdHlcbiAgICB9KTtcblxuICAgIGlmIChjaGFuZ2VFdmVudC5pc1VzZXJJbnB1dCkge1xuICAgICAgaWYgKGNoYW5nZUV2ZW50LnNlbGVjdGVkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0RW50aXR5KGVudGl0eSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZUVudGl0eShlbnRpdHkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZXNvbHZlQ2hpcFZhbHVlKGUxOiBURW50aXR5KTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5nZXRFbnRpdHlJZChlMSk7XG4gIH1cblxuICBwdWJsaWMgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucykge1xuICAgIGlmICh0aGlzLl9saXN0Qm94KSB7XG4gICAgICB0aGlzLl9saXN0Qm94LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJsdXIoKSB7XG4gICAgdGhpcy5sb2cud2FybignYmx1cigpIG5vdCB5ZXQgc3VwcG9ydGVkIScpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3RlY3RlZCBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgc3RhcnQgREMgaWYgbm90IHlldCBzdGFydGVkXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBvbkRhdGFDb250ZXh0Q2hhbmdlZChkYXRhOiBJRGF0YUNvbnRleHQ8VEVudGl0eT4pOiB2b2lkIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgaWYgKCFkYXRhLmlzU3RhcnRlZCkge1xuICAgICAgICBkYXRhLnN0YXJ0KHRoaXMuc29ydHMsIHRoaXMuZmlsdGVycykuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgICBzdXBlci5vbkRhdGFDb250ZXh0Q2hhbmdlZChkYXRhKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN1cGVyLm9uRGF0YUNvbnRleHRDaGFuZ2VkKGRhdGEpO1xuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBzZWxlY3RFbnRpdHkoZW50aXR5OiBURW50aXR5KTogdm9pZCB7XG4gICAgY29uc3QgaWRUb1NlbGVjdCA9IHRoaXMuZ2V0RW50aXR5SWQoZW50aXR5KTtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMucmVtb3ZlRW50aXRpZXMoXG4gICAgICAgIHRoaXMuZW50aXRpZXMuZmlsdGVyKGUgPT4gdGhpcy5nZXRFbnRpdHlJZChlKSAhPT0gaWRUb1NlbGVjdClcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICghdGhpcy5pc0VudGl0eUlkU2VsZWN0ZWQoaWRUb1NlbGVjdCkpIHtcbiAgICAgIHRoaXMuYXBwZW5kRW50aXR5KGVudGl0eSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc0VudGl0eUlkU2VsZWN0ZWQoZW50aXR5SWQ6IFRJZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVudGl0aWVzLnNvbWUoZSA9PiB0aGlzLmdldEVudGl0eUlkKGUpID09IGVudGl0eUlkKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDaGlwTW9kZWxzT3JGYWxsYmFjayhcbiAgICBlbnRpdGllczogVEVudGl0eVtdLFxuICAgIGVudGl0eUlkczogVElkW10sXG4gICAgYXZhaWxhYmxlOiBURW50aXR5W10sXG4gICAgY29udGV4dDogSUNvbnRleHRcbiAgKTogQ2hpcE9wdGlvbk1vZGVsPFRFbnRpdHk+W10ge1xuXG4gICAgaWYgKGNvbnRleHQuc3RhdGUuZXJyb3IpIHtcbiAgICAgIHJldHVybiB0aGlzLmJ1aWxkQ2hpcEZhbGxiYWNrTW9kZWxzKGVudGl0eUlkcywgY29udGV4dCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmJ1aWxkQ2hpcE1vZGVscyhhdmFpbGFibGUsIGVudGl0aWVzLCBjb250ZXh0KTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBidWlsZENoaXBGYWxsYmFja01vZGVscyhcbiAgICBlbnRpdHlJZHM6IFRJZFtdLFxuICAgIGNvbnRleHQ6IElDb250ZXh0XG4gICk6IENoaXBPcHRpb25Nb2RlbDxURW50aXR5PltdIHtcbiAgICBjb250ZXh0LmRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyID0geCA9PiB4LmlkO1xuICAgIHJldHVybiBlbnRpdHlJZHMubWFwKFxuICAgICAgaWQgPT4gdGhpcy5idWlsZENoaXBCeVNwZWMoXG4gICAgICAgIDxhbnk+e2lkOiBpZH0sXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIHtcbiAgICAgICAgICBjb2xvclNwZWM6IHtcbiAgICAgICAgICAgIHRoZW1lQ29sb3I6ICd3YXJuJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAgYXZhdGFyU3BlYzoge1xuICAgICAgICAgICAgaGlkZTogZmFsc2UsXG4gICAgICAgICAgICBsYXJnZTogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGZhbHNlIC8vIFRPRE9cbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZENoaXBNb2RlbHMoXG4gICAgYXZhaWxhYmxlczogVEVudGl0eVtdLFxuICAgIGVudGl0aWVzOiBURW50aXR5W10sXG4gICAgY29udGV4dDogSUNvbnRleHRcbiAgKTogQ2hpcE9wdGlvbk1vZGVsPFRFbnRpdHk+W10ge1xuICAgIGlmIChhdmFpbGFibGVzKSB7XG5cbiAgICAgIGNvbnN0IHNlbGVjdGVkSWRzID0gbmV3IFNldDxUSWQ+KFxuICAgICAgICBlbnRpdGllcy5tYXAoZSA9PiB0aGlzLmdldEVudGl0eUlkKGUpKVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIGF2YWlsYWJsZXMubWFwKFxuICAgICAgICBhdmFpbGFibGUgPT4gdGhpcy5idWlsZENoaXBCeVNwZWMoXG4gICAgICAgICAgYXZhaWxhYmxlLFxuICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgdGhpcy5jaGlwU3BlY0ZuKGF2YWlsYWJsZSkgPz8gdGhpcy5kZWZhdWx0Q2hpcFNwZWMsXG4gICAgICAgICAgc2VsZWN0ZWRJZHMuaGFzKHRoaXMuZ2V0RW50aXR5SWQoYXZhaWxhYmxlKSlcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDxDaGlwT3B0aW9uTW9kZWw8VEVudGl0eT5bXT5bXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ2hpcEJ5U3BlYyhcbiAgICBlOiBURW50aXR5LFxuICAgIGNvbnRleHQ6IElDb250ZXh0LFxuICAgIGNoaXBTcGVjOiBTZWxlY3RPcHRpb25DaGlwU3BlYyxcbiAgICBzZWxlY3RlZDogYm9vbGVhblxuICApOiBDaGlwT3B0aW9uTW9kZWw8VEVudGl0eT4ge1xuXG4gICAgbGV0IGxvY2tlZCA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmlzTG9ja2VkKSB7XG4gICAgICBsb2NrZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2NrZWQgPSBjaGlwU3BlYy5sb2NrZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBDaGlwT3B0aW9uTW9kZWw8VEVudGl0eT4oXG4gICAgICBlLFxuICAgICAgY29udGV4dC5kaXNwbGF5UHJvcGVydHlSZXNvbHZlcihlKSxcbiAgICAgIHtcbiAgICAgICAgdGhlbWVDb2xvcjogc2VsZWN0ZWQgPyAnYWNjZW50JyA6IHVuZGVmaW5lZFxuICAgICAgfSxcbiAgICAgIGxvY2tlZCxcbiAgICAgIGNoaXBTcGVjLmF2YXRhclNwZWMsXG4gICAgICBjaGlwU3BlYy50cmFpbGluZ1NwZWMsXG4gICAgICBzZWxlY3RlZFxuICAgICk7XG4gIH1cblxuXG59XG4iLCI8ZGl2ICpuZ0lmPVwiKHNlbGVjdENoaXBzJCB8IGFzeW5jKSBhcyBjaGlwVmFsdWVzXCJcbiAgICAgY2xhc3M9XCJlbGRlci1mbGV4LWNvbnRyb2xcIlxuICAgICBbbWF0VG9vbHRpcF09XCIoc3RhdGUkIHwgYXN5bmMpPy5lcnJvclwiXG4+XG4gIDxtYXQtY2hpcC1saXN0Ym94ICNjaGlwc1xuICAgICAgICAgICAgICAgICAgICBbY2xhc3MubWF0LW1kYy1jaGlwLXNldC1zdGFja2VkXT1cInN0YWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICA+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKG1lcmdlZFN0YXRlJCB8IGFzeW5jKSBhcyBzdGF0ZVwiPlxuICAgICAgPGRpdiAqbmdJZj1cImljb25cIlxuICAgICAgICAgICBjbGFzcz1cImVsZGVyLWlucHV0LXByZWZpeC1pY29uLWNvbnRhaW5lciBmbGV4LW5vbmVcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJpY29uXCIgZGlzYWJsZWRcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWxkZXItcHJlZml4LWljb24gZWxkZXItbWRjLWNvbnRyb2wtaWNvbiBlbGRlci1pY29uLXNtYWxsIG5vc2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5sb2FkaW5nXT1cInN0YXRlLmxvYWRpbmdcIlxuICAgICAgICA+XG4gICAgICAgICAge3tpY29ufX1cbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlcyQgfCBhc3luYyBhcyB0ZW1wbGF0ZXNcIj5cblxuICAgICAgPG1hdC1jaGlwLW9wdGlvbiAgKm5nRm9yPVwibGV0IGNoaXBNb2RlbCBvZiBjaGlwVmFsdWVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJub3NlbGVjdFwiXG4gICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJyZXNvbHZlQ2hpcFZhbHVlKGNoaXBNb2RlbC52YWx1ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZWxkZXJDaGlwTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsZXZlbENvbG9yXT1cImNoaXBNb2RlbC5jb2xvclNwZWM/LmxldmVsQ29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXRlQ29sb3JdPVwiY2hpcE1vZGVsLmNvbG9yU3BlYz8uc3RhdGVDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJjaGlwTW9kZWwuY29sb3JTcGVjPy50aGVtZUNvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGFibGVdPVwiIWNoaXBNb2RlbC5sb2NrZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY2hpcE1vZGVsLmxvY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJjaGlwTW9kZWwuc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50LCBjaGlwTW9kZWwudmFsdWUpXCJcbiAgICAgID5cblxuICAgICAgICA8bWF0LWNoaXAtYXZhdGFyXG4gICAgICAgICAgKm5nSWY9XCJ0ZW1wbGF0ZXMuYXZhdGFyICYmICFjaGlwTW9kZWwuYXZhdGFyU3BlYz8uaGlkZVwiXG4gICAgICAgICAgW2NsYXNzLmNoaXAtYXZhdGFyLXhsXT1cImNoaXBNb2RlbC5hdmF0YXJTcGVjPy5sYXJnZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlcy5hdmF0YXI7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGNoaXBNb2RlbH1cIj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9tYXQtY2hpcC1hdmF0YXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVzLmNoaXAgfHwgc2ltcGxlQ2hpcFRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiBjaGlwTW9kZWx9XCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxtYXQtaWNvbiBtYXRDaGlwVHJhaWxpbmdJY29uIGNsYXNzPVwiZWxkZXItdHJhaWxpbmctaWNvblwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImNoaXBNb2RlbC50cmFpbGluZ1NwZWM/Lmljb25cIlxuICAgICAgICAgICAgICAgICAgW2ZvbnRTZXRdPVwiY2hpcE1vZGVsLnRyYWlsaW5nU3BlYz8uaWNvbkZvbnRTZXRcIlxuICAgICAgICA+e3tjaGlwTW9kZWwudHJhaWxpbmdTcGVjPy5pY29ufX08L21hdC1pY29uPlxuXG5cbiAgICAgIDwvbWF0LWNoaXAtb3B0aW9uPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LXJvdyBwbGFjZS1zdGFydC1jZW50ZXIgZWxkZXItY2hpcC1pbnB1dFwiPlxuXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImVsZGVyLWNvbnRyb2wtaWNvbi1idXR0b24gZWxkZXItYnJvd3NlLWljb25cIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0aW9uUG9wdXBcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xvY2tlZFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5TZWxlY3Rpb25Qb3B1cCgkZXZlbnQpXCIgYXJpYS1sYWJlbD1cIlNlYXJjaFwiXG4gICAgICAgICAgICAgICAgZWxkZXJTdG9wRXZlbnRQcm9wYWdhdGlvblxuICAgICAgICAgICAgICAgIHRhYkluZGV4PVwiLTFcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZWxkZXItbWRjLWNvbnRyb2wtaWNvblwiPnNlYXJjaDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbWF0LWNoaXAtbGlzdGJveD5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3NpbXBsZUNoaXBUZW1wbGF0ZSBsZXQtY2hpcE1vZGVsPlxuICA8c3BhbiBjbGFzcz1cImVsZGVyLWNoaXAtdGV4dFwiPnt7Y2hpcE1vZGVsLmRpc3BsYXlUZXh0IHwgZWxkZXJUcnVuY2F0ZToyMH19PC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuIl19
|
|
261
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWNoaXAtb3B0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9tdWx0aS9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcC1vcHRpb25zL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwLW9wdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvbXVsdGkvZWxkZXItbXVsdGktc2VsZWN0LWNoaXAtb3B0aW9ucy9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcC1vcHRpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFJWixVQUFVLEVBQ1YsS0FBSyxFQUVMLFFBQVEsRUFDUixJQUFJLEVBQ0osV0FBVyxFQUNYLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFLckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM3RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVB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XG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIERlc3Ryb3lSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9wdGlvbmFsLFxuICBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBFbGRlck11bHRpU2VsZWN0QmFzZSB9IGZyb20gXCIuLi9lbGRlci1tdWx0aS1zZWxlY3QtYmFzZVwiO1xuaW1wb3J0IHsgTG9nZ2VyRmFjdG9yeSB9IGZyb20gXCJAZWxkZXJieXRlL3RzLWxvZ2dlclwiO1xuaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9hMTF5XCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IEVsZGVyRGlhbG9nU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9kaWFsb2dzL2VsZGVyLWRpYWxvZy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgRWxkZXJTZWxlY3RDaGlwQXZhdGFyRGlyZWN0aXZlLCBFbGRlclNlbGVjdENoaXBEaXJlY3RpdmUgfSBmcm9tIFwiLi4vLi4vZWxkZXItc2VsZWN0LWNoaXAuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBFTERFUl9TRUxFQ1RfQkFTRSB9IGZyb20gXCIuLi8uLi9lbGRlci1zZWxlY3QtYmFzZVwiO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XG5pbXBvcnQgeyBJRGF0YUNvbnRleHQgfSBmcm9tIFwiLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dFwiO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uQ2hpcFNwZWMsIFNlbGVjdE9wdGlvbkNoaXBTcGVjVXRpbCB9IGZyb20gXCIuL3NlbGVjdC1vcHRpb24tY2hpcC1zcGVjXCI7XG5pbXBvcnQgeyBNYXRDaGlwTGlzdGJveCwgTWF0Q2hpcFNlbGVjdGlvbkNoYW5nZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jaGlwc1wiO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2NvZXJjaW9uXCI7XG5pbXBvcnQgeyBFbGRlclNlbGVjdE9wdGlvbkNvbXBvbmVudCB9IGZyb20gXCIuLi9lbGRlci1jaGlwLXNlbGVjdC1vcHRpb24vZWxkZXItc2VsZWN0LW9wdGlvbi5jb21wb25lbnRcIjtcbmltcG9ydCBDaGlwT3B0aW9uc1Byb3ZpZGVyLCB7IENoaXBPcHRpb25Nb2RlbCwgTXVsdGlTZWxlY3RDaGlwT3B0aW9uc0NvbnRleHQgfSBmcm9tIFwiLi9jaGlwLW9wdGlvbnMtcHJvdmlkZXJcIjtcblxuaW50ZXJmYWNlIFRlbXBsYXRlV3JhcHBlciB7XG4gIGNoaXA6IFRlbXBsYXRlUmVmPGFueT47XG4gIGF2YXRhcjogVGVtcGxhdGVSZWY8YW55Pjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImVsZGVyLW11bHRpLXNlbGVjdC1jaGlwLW9wdGlvbnNcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcC1vcHRpb25zLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcC1vcHRpb25zLmNvbXBvbmVudC5zY3NzXCJdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogRWxkZXJNdWx0aVNlbGVjdENoaXBPcHRpb25zQ29tcG9uZW50IH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogRUxERVJfU0VMRUNUX0JBU0UsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFbGRlck11bHRpU2VsZWN0Q2hpcE9wdGlvbnNDb21wb25lbnQpXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyTXVsdGlTZWxlY3RDaGlwT3B0aW9uc0NvbXBvbmVudDxUSWQgPSBhbnksIFRFbnRpdHkgPSBhbnksIFRWYWx1ZSA9IGFueT5cbiAgZXh0ZW5kcyBFbGRlck11bHRpU2VsZWN0QmFzZTxUSWQsIFRFbnRpdHksIFRWYWx1ZT4ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICByZWFkb25seSB0ZW1wbGF0ZXMkOiBPYnNlcnZhYmxlPFRlbXBsYXRlV3JhcHBlcj47XG4gIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dCQ6IE9ic2VydmFibGU8TXVsdGlTZWxlY3RDaGlwT3B0aW9uc0NvbnRleHQ+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2hpcFRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWY8YW55Pj4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2hpcEF2YXRhclRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWY8YW55Pj4obnVsbCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IG9wdGlvbnNQcm92aWRlciQ6IE9ic2VydmFibGU8Q2hpcE9wdGlvbnNQcm92aWRlcjxUSWQsIFRFbnRpdHk+PjtcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdENoaXBzJDogT2JzZXJ2YWJsZTxDaGlwT3B0aW9uTW9kZWw8VEVudGl0eT5bXT47XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkZWZhdWx0Q2hpcFNwZWM6IFNlbGVjdE9wdGlvbkNoaXBTcGVjID0gU2VsZWN0T3B0aW9uQ2hpcFNwZWNVdGlsLkRlZmF1bHRDaGlwU3BlYztcblxuICBwdWJsaWMgX2NoaXBTcGVjRm4kID1cbiAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PChlOiBURW50aXR5KSA9PiBTZWxlY3RPcHRpb25DaGlwU3BlYz4oZSA9PiB0aGlzLmRlZmF1bHRDaGlwU3BlYyk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHN0YWNrZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIF9tdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoTWF0Q2hpcExpc3Rib3gpIF9saXN0Qm94OiBNYXRDaGlwTGlzdGJveDtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBob3N0UmVmOiBFbGVtZW50UmVmLFxuICAgIHpvbmU6IE5nWm9uZSxcbiAgICBmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcbiAgICB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIGRpYWxvZ1NlcnZpY2U6IEVsZGVyRGlhbG9nU2VydmljZSxcbiAgICBwcml2YXRlIGRlc3Ryb3lSZWY6IERlc3Ryb3lSZWYsXG4gICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBuZ0NvbnRyb2w6IE5nQ29udHJvbFxuICApIHtcbiAgICBzdXBlcih6b25lLCBob3N0UmVmLCBcIm11bHRpLXNlbGVjdC1jaGlwLW9wdGlvbnNcIiwgZm9jdXNNb25pdG9yLCB0cmFuc2xhdGVTZXJ2aWNlLCBkaWFsb2dTZXJ2aWNlLCBuZ0NvbnRyb2wpO1xuXG4gICAgdGhpcy5jb250ZXh0JCA9IGNvbWJpbmVMYXRlc3QoXG4gICAgICBbXG4gICAgICAgIHRoaXMuc3RhdGUkLFxuICAgICAgICB0aGlzLmRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyJCxcbiAgICAgICAgdGhpcy5yZWFkb25seSQsXG4gICAgICAgIHRoaXMuZGlzYWJsZWQkXG4gICAgICBdXG4gICAgKS5waXBlKFxuICAgICAgbWFwKChbc3RhdGUsIGRQUiwgcmVhZG9ubHksIGRpc2FibGVkXSkgPT4ge1xuICAgICAgICAgIHJldHVybiA8TXVsdGlTZWxlY3RDaGlwT3B0aW9uc0NvbnRleHQ+e1xuICAgICAgICAgICAgc3RhdGU6IHN0YXRlLFxuICAgICAgICAgICAgZGlzcGxheVByb3BlcnR5UmVzb2x2ZXI6IGRQUixcbiAgICAgICAgICAgIHJlYWRvbmx5OiByZWFkb25seSxcbiAgICAgICAgICAgIGRpc2FibGVkOiBkaXNhYmxlZFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy5vcHRpb25zUHJvdmlkZXIkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmRhdGFDb250ZXh0JCxcbiAgICAgIHRoaXMuZGF0YUNvbnRleHQkLnBpcGUoc3dpdGNoTWFwKGRjID0+IGRjLmRhdGEpKSxcbiAgICAgIHRoaXMuY2hpcFNwZWNGbiQsXG4gICAgICB0aGlzLnRlbXBsYXRlT3B0aW9ucyRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbZGMsIGRhdGEsIGNoaXBTcGVjRm4sIHRlbXBsYXRlQ2hpcHNdKSA9PlxuICAgICAgICBuZXcgQ2hpcE9wdGlvbnNQcm92aWRlcjxUSWQsIFRFbnRpdHk+KFxuICAgICAgICAgIGRjLmRhdGFTb3VyY2UsXG4gICAgICAgICAgdGhpcy5idWlsZEF2YWlsYWJsZUVudGl0aWVzKGRhdGEsIHRlbXBsYXRlQ2hpcHMpLFxuICAgICAgICAgIGNoaXBTcGVjRm5cbiAgICAgICAgKSlcbiAgICApO1xuXG4gICAgdGhpcy5zZWxlY3RDaGlwcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMub3B0aW9uc1Byb3ZpZGVyJCxcbiAgICAgIHRoaXMuZW50aXRpZXMkLFxuICAgICAgdGhpcy5lbnRpdHlJZHMkLFxuICAgICAgdGhpcy50ZW1wbGF0ZU9wdGlvbnMkLFxuICAgICAgdGhpcy5jb250ZXh0JFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtcbiAgICAgICAgICAgICBvcHRpb25zUHJvdmlkZXIsXG4gICAgICAgICAgICAgZW50aXRpZXMsXG4gICAgICAgICAgICAgZW50aXR5SWRzLFxuICAgICAgICAgICAgIHRlbXBsYXRlU2VsZWN0Q2hpcHMsXG4gICAgICAgICAgICAgY29udGV4dF0pID0+XG4gICAgICAgIHRoaXMuYnVpbGRDaGlwTW9kZWxzKFxuICAgICAgICAgIG9wdGlvbnNQcm92aWRlcixcbiAgICAgICAgICBlbnRpdGllcyxcbiAgICAgICAgICBlbnRpdHlJZHMsXG4gICAgICAgICAgdGhpcy5idWlsZEVudGl0aWVzTGFiZWxNYXAodGVtcGxhdGVTZWxlY3RDaGlwcyksXG4gICAgICAgICAgY29udGV4dFxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMudGVtcGxhdGVzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jaGlwVGVtcGxhdGUkLFxuICAgICAgdGhpcy5jaGlwQXZhdGFyVGVtcGxhdGUkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2NoaXAsIGF2YXRhcl0pID0+IHtcbiAgICAgICAgcmV0dXJuIDxUZW1wbGF0ZVdyYXBwZXI+e1xuICAgICAgICAgIGNoaXAsXG4gICAgICAgICAgYXZhdGFyXG4gICAgICAgIH07XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IG11bHRpcGxlKHZhbDogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fbXVsdGlwbGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsKTtcbiAgICBpZiAoIXRoaXMuX211bHRpcGxlICYmIHRoaXMuZW50aXRpZXMubGVuZ3RoID4gMSkge1xuICAgICAgdGhpcy5zZWxlY3RFbnRpdHkoXG4gICAgICAgIHRoaXMuZW50aXRpZXNbdGhpcy5lbnRpdGllcy5sZW5ndGggLSAxXVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWxsb3dzIHRvIGN1c3RvbWl6ZSBlYWNoIGNoaXAgaW5kaXZpZHVhbGx5IChDb2xvciwgUmVtb3ZhYmxlLCBBdmF0YXIpLlxuICAgKlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjaGlwU3BlY0ZuKGZuOiAoZTogVEVudGl0eSkgPT4gU2VsZWN0T3B0aW9uQ2hpcFNwZWMpIHtcbiAgICB0aGlzLl9jaGlwU3BlY0ZuJC5uZXh0KGZuKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hpcFNwZWNGbiQoKTogT2JzZXJ2YWJsZTwoZTogVEVudGl0eSkgPT4gU2VsZWN0T3B0aW9uQ2hpcFNwZWM+IHtcbiAgICByZXR1cm4gdGhpcy5fY2hpcFNwZWNGbiQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG11bHRpcGxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9tdWx0aXBsZTtcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTZWxlY3RDaGlwRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgY2hpcFRlbXBsYXRlUXVlcnkodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmNoaXBUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjaGlwVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmNoaXBUZW1wbGF0ZSQubmV4dCh0ZW1wbGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoaXBUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jaGlwVGVtcGxhdGUkLmdldFZhbHVlKCk7XG4gIH1cblxuICBAQ29udGVudENoaWxkKEVsZGVyU2VsZWN0Q2hpcEF2YXRhckRpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiBmYWxzZSB9KVxuICBwdWJsaWMgc2V0IGNoaXBBdmF0YXJUZW1wbGF0ZVF1ZXJ5KHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5jaGlwQXZhdGFyVGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hpcEF2YXRhclRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5jaGlwQXZhdGFyVGVtcGxhdGUkLm5leHQodGVtcGxhdGUpO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGlwQXZhdGFyVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuY2hpcEF2YXRhclRlbXBsYXRlJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCBzaG91bGRMYWJlbEZsb2F0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHNlbGVjdGlvbkNoYW5nZWQoY2hhbmdlRXZlbnQ6IE1hdENoaXBTZWxlY3Rpb25DaGFuZ2UsIGVudGl0eTogVEVudGl0eSk6IHZvaWQge1xuICAgIC8qKi9cbiAgICB0aGlzLmxvZy5kZWJ1ZyhcInNlbGVjdGlvbkNoYW5nZWRcIiwge1xuICAgICAgY2hhbmdlRXZlbnQ6IGNoYW5nZUV2ZW50LFxuICAgICAgZW50aXR5OiBlbnRpdHlcbiAgICB9KTtcblxuICAgIGlmIChjaGFuZ2VFdmVudC5pc1VzZXJJbnB1dCkge1xuICAgICAgaWYgKGNoYW5nZUV2ZW50LnNlbGVjdGVkKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0RW50aXR5KGVudGl0eSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZUVudGl0eShlbnRpdHkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZXNvbHZlQ2hpcFZhbHVlKGUxOiBURW50aXR5KTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5nZXRFbnRpdHlJZChlMSk7XG4gIH1cblxuICBwdWJsaWMgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucyk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9saXN0Qm94KSB7XG4gICAgICB0aGlzLl9saXN0Qm94LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5sb2cud2FybihcImJsdXIoKSBub3QgeWV0IHN1cHBvcnRlZCFcIik7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvdGVjdGVkIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogQXV0b21hdGljYWxseSBzdGFydCBEQyBpZiBub3QgeWV0IHN0YXJ0ZWRcbiAgICogQHBhcmFtIGRhdGFcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIG9uRGF0YUNvbnRleHRDaGFuZ2VkKGRhdGE6IElEYXRhQ29udGV4dDxURW50aXR5Pik6IHZvaWQge1xuICAgIGlmIChkYXRhKSB7XG4gICAgICBpZiAoIWRhdGEuaXNTdGFydGVkKSB7XG4gICAgICAgIGRhdGEuc3RhcnQodGhpcy5zb3J0cywgdGhpcy5maWx0ZXJzKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAgIHN1cGVyLm9uRGF0YUNvbnRleHRDaGFuZ2VkKGRhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3VwZXIub25EYXRhQ29udGV4dENoYW5nZWQoZGF0YSk7XG4gICAgICB9XG4gICAgfVxuXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHNlbGVjdEVudGl0eShlbnRpdHk6IFRFbnRpdHkpOiB2b2lkIHtcbiAgICBjb25zdCBpZFRvU2VsZWN0ID0gdGhpcy5nZXRFbnRpdHlJZChlbnRpdHkpO1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgdGhpcy5yZW1vdmVFbnRpdGllcyhcbiAgICAgICAgdGhpcy5lbnRpdGllcy5maWx0ZXIoZSA9PiB0aGlzLmdldEVudGl0eUlkKGUpICE9PSBpZFRvU2VsZWN0KVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzRW50aXR5SWRTZWxlY3RlZChpZFRvU2VsZWN0KSkge1xuICAgICAgdGhpcy5hcHBlbmRFbnRpdHkoZW50aXR5KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGlzRW50aXR5SWRTZWxlY3RlZChlbnRpdHlJZDogVElkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXRpZXMuc29tZShlID0+IHRoaXMuZ2V0RW50aXR5SWQoZSkgPT0gZW50aXR5SWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZENoaXBNb2RlbHMoXG4gICAgb3B0aW9uc1Byb3ZpZGVyOiBDaGlwT3B0aW9uc1Byb3ZpZGVyPFRJZCwgVEVudGl0eT4sXG4gICAgZW50aXRpZXM6IFRFbnRpdHlbXSxcbiAgICBlbnRpdHlJZHM6IFRJZFtdLFxuICAgIGVudGl0aWVzTGFiZWxzOiBNYXA8YW55LCBzdHJpbmc+LFxuICAgIGNvbnRleHQ6IE11bHRpU2VsZWN0Q2hpcE9wdGlvbnNDb250ZXh0XG4gICk6IENoaXBPcHRpb25Nb2RlbDxURW50aXR5PltdIHtcbiAgICByZXR1cm4gb3B0aW9uc1Byb3ZpZGVyLmJ1aWxkQ2hpcE1vZGVsc09yRmFsbGJhY2soXG4gICAgICBlbnRpdGllcyxcbiAgICAgIGVudGl0eUlkcyxcbiAgICAgIHtcbiAgICAgICAgY29udGV4dDogY29udGV4dCxcbiAgICAgICAgaXNMb2NrZWQ6IHRoaXMuaXNMb2NrZWQsXG4gICAgICAgIGVudGl0eUxhYmVsTWFwOiBlbnRpdGllc0xhYmVsc1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQXZhaWxhYmxlRW50aXRpZXMoXG4gICAgZGF0YTogVEVudGl0eVtdLFxuICAgIHRlbXBsYXRlQ2hpcHM6IEVsZGVyU2VsZWN0T3B0aW9uQ29tcG9uZW50PFRFbnRpdHk+W11cbiAgKTogVEVudGl0eVtdIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuZXh0cmFjdEVudGl0aWVzRnJvbVRlbXBsYXRlQ2hpcHModGVtcGxhdGVDaGlwcyksIC4uLmRhdGFdO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0RW50aXRpZXNGcm9tVGVtcGxhdGVDaGlwcyh0ZW1wbGF0ZUNoaXBzOiBFbGRlclNlbGVjdE9wdGlvbkNvbXBvbmVudDxURW50aXR5PltdKTogVEVudGl0eVtdIHtcbiAgICByZXR1cm4gdGVtcGxhdGVDaGlwcy5tYXAoY2hpcCA9PiBjaGlwLnZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRFbnRpdGllc0xhYmVsTWFwKHRlbXBsYXRlQ2hpcHM6IEVsZGVyU2VsZWN0T3B0aW9uQ29tcG9uZW50PFRFbnRpdHk+W10pOiBNYXA8VEVudGl0eSwgc3RyaW5nPiB7XG4gICAgcmV0dXJuIG5ldyBNYXAoXG4gICAgICB0ZW1wbGF0ZUNoaXBzLmZpbHRlcihjaGlwID0+IGNoaXAubGFiZWwgIT0gdW5kZWZpbmVkKVxuICAgICAgICAubWFwKGNoaXAgPT4gW2NoaXAudmFsdWUsIGNoaXAubGFiZWxdKSk7XG4gIH1cbn1cbiIsIkBpZiAoc2VsZWN0Q2hpcHMkIHwgYXN5bmM7YXMgc2VsZWN0Q2hpcHMpIHtcbiAgPGRpdiBjbGFzcz1cImVsZGVyLWZsZXgtY29udHJvbFwiXG4gICAgICAgW21hdFRvb2x0aXBdPVwiKHN0YXRlJCB8IGFzeW5jKT8uZXJyb3JcIlxuICA+XG4gICAgPG1hdC1jaGlwLWxpc3Rib3ggI2NoaXBzXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLm1hdC1tZGMtY2hpcC1zZXQtc3RhY2tlZF09XCJzdGFja2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgID5cblxuICAgICAgQGlmIChtZXJnZWRTdGF0ZSQgfCBhc3luYzthcyBzdGF0ZSkge1xuICAgICAgICBAaWYgKGljb24pIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZWxkZXItaW5wdXQtcHJlZml4LWljb24tY29udGFpbmVyIGZsZXgtbm9uZVwiPlxuICAgICAgICAgICAgPG1hdC1pY29uIGRpc2FibGVkXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlbGRlci1wcmVmaXgtaWNvbiBlbGRlci1tZGMtY29udHJvbC1pY29uIGVsZGVyLWljb24tc21hbGwgbm9zZWxlY3RcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5sb2FkaW5nXT1cInN0YXRlLmxvYWRpbmdcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBpY29uIH19XG4gICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpZiAodGVtcGxhdGVzJCB8IGFzeW5jO2FzIHRlbXBsYXRlcykge1xuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG5cbiAgICAgICAgQGZvciAoY2hpcE1vZGVsIG9mIHNlbGVjdENoaXBzO3RyYWNrIGNoaXBNb2RlbC52YWx1ZSkge1xuICAgICAgICAgIDxtYXQtY2hpcC1vcHRpb24gY2xhc3M9XCJub3NlbGVjdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwicmVzb2x2ZUNoaXBWYWx1ZShjaGlwTW9kZWwudmFsdWUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZGVyQ2hpcExhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbbGV2ZWxDb2xvcl09XCJjaGlwTW9kZWwuY29sb3JTcGVjPy5sZXZlbENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0ZUNvbG9yXT1cImNoaXBNb2RlbC5jb2xvclNwZWM/LnN0YXRlQ29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbG9yXT1cImNoaXBNb2RlbC5jb2xvclNwZWM/LnRoZW1lQ29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGFibGVdPVwiIWNoaXBNb2RlbC5sb2NrZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImNoaXBNb2RlbC5sb2NrZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cImNoaXBNb2RlbC5zZWxlY3RlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50LCBjaGlwTW9kZWwudmFsdWUpXCJcbiAgICAgICAgICA+XG5cbiAgICAgICAgICAgIEBpZiAodGVtcGxhdGVzLmF2YXRhciAmJiAhY2hpcE1vZGVsLmF2YXRhclNwZWM/LmhpZGUpIHtcbiAgICAgICAgICAgICAgPG1hdC1jaGlwLWF2YXRhclxuICAgICAgICAgICAgICAgIFtjbGFzcy5jaGlwLWF2YXRhci14bF09XCJjaGlwTW9kZWwuYXZhdGFyU3BlYz8ubGFyZ2VcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZXMuYXZhdGFyOyBjb250ZXh0OiB7JGltcGxpY2l0OiBjaGlwTW9kZWx9XCI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbWF0LWNoaXAtYXZhdGFyPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVzLmNoaXAgfHwgc2ltcGxlQ2hpcFRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiBjaGlwTW9kZWx9XCI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgQGlmIChjaGlwTW9kZWwudHJhaWxpbmdTcGVjPy5pY29uKSB7XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRDaGlwVHJhaWxpbmdJY29uIGNsYXNzPVwiZWxkZXItdHJhaWxpbmctaWNvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZm9udFNldF09XCJjaGlwTW9kZWwudHJhaWxpbmdTcGVjPy5pY29uRm9udFNldFwiXG4gICAgICAgICAgICAgID57eyBjaGlwTW9kZWwudHJhaWxpbmdTcGVjPy5pY29uIH19XG4gICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICA8L21hdC1jaGlwLW9wdGlvbj5cbiAgICAgICAgfVxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtcm93IHBsYWNlLXN0YXJ0LWNlbnRlciBlbGRlci1jaGlwLWlucHV0XCI+XG5cbiAgICAgICAgICBAaWYgKHNlbGVjdGlvblBvcHVwKSB7XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlbGRlci1jb250cm9sLWljb24tYnV0dG9uIGVsZGVyLWJyb3dzZS1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTG9ja2VkXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5TZWxlY3Rpb25Qb3B1cCgkZXZlbnQpXCIgYXJpYS1sYWJlbD1cIlNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIGVsZGVyU3RvcEV2ZW50UHJvcGFnYXRpb25cbiAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9XCItMVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImVsZGVyLW1kYy1jb250cm9sLWljb25cIj5zZWFyY2g8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgIDwvbWF0LWNoaXAtbGlzdGJveD5cbiAgPC9kaXY+XG59XG5cbjxuZy10ZW1wbGF0ZSAjc2ltcGxlQ2hpcFRlbXBsYXRlIGxldC1jaGlwTW9kZWw+XG4gIDxzcGFuIGNsYXNzPVwiZWxkZXItY2hpcC10ZXh0XCI+e3sgY2hpcE1vZGVsLmRpc3BsYXlUZXh0IHwgZWxkZXJUcnVuY2F0ZToyMCB9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbiJdfQ==
|
|
@@ -187,8 +187,8 @@ export class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
|
|
|
187
187
|
}
|
|
188
188
|
return new ChipModel(e, dPR(e), chipSpec?.colorSpec, removable, chipSpec.avatarSpec, chipSpec.trailingSpec);
|
|
189
189
|
}
|
|
190
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.
|
|
191
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.
|
|
190
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElderMultiSelectChipsComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.FocusMonitor }, { token: i2.TranslateService }, { token: i3.ElderDialogService }, { token: i4.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
191
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: ElderMultiSelectChipsComponent, selector: "elder-multi-select-chips", inputs: { defaultChipSpec: "defaultChipSpec", chipSpecFn: "chipSpecFn", allowRemove: "allowRemove", allowSorting: "allowSorting", stacked: "stacked", chipTemplate: "chipTemplate", chipAvatarTemplate: "chipAvatarTemplate", customInputTemplate: "customInputTemplate" }, providers: [
|
|
192
192
|
{ provide: MatFormFieldControl, useExisting: ElderMultiSelectChipsComponent },
|
|
193
193
|
{
|
|
194
194
|
provide: ELDER_SELECT_BASE,
|
|
@@ -196,7 +196,7 @@ export class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
|
|
|
196
196
|
}
|
|
197
197
|
], queries: [{ propertyName: "_customChipInput", first: true, predicate: MatFormFieldControl, descendants: true }, { propertyName: "chipTemplateQuery", first: true, predicate: ElderSelectChipDirective, descendants: true, read: TemplateRef }, { propertyName: "chipAvatarTemplateQuery", first: true, predicate: ElderSelectChipAvatarDirective, descendants: true, read: TemplateRef }, { propertyName: "customInputTemplateQuery", first: true, predicate: ElderSelectCustomInputDirective, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "_chipInput", first: true, predicate: ElderSelectComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"(selectChips$ | async) as chipValues\"\n class=\"elder-flex-control\"\n [matTooltip]=\"(state$ | async)?.error\"\n>\n <mat-chip-set #chips\n [class.mat-mdc-chip-set-stacked]=\"stacked\"\n cdkDropList\n [cdkDropListOrientation]=\"stacked ? 'vertical' : 'horizontal'\"\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"!allowSorting\"\n >\n\n <ng-container *ngIf=\"(mergedState$ | async) as state\">\n <div *ngIf=\"icon\"\n class=\"elder-input-prefix-icon-container flex-none\"\n >\n <mat-icon *ngIf=\"icon\" disabled\n class=\"elder-prefix-icon elder-mdc-control-icon elder-icon-small noselect\"\n [class.loading]=\"state.loading\"\n >\n {{icon}}\n </mat-icon>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"templates$ | async as templates\">\n <mat-chip-row elderChipLabel *ngFor=\"let chipModel of chipValues\"\n class=\"noselect clickable-chip\"\n [value]=\"resolveChipValue(chipModel.value)\"\n [color]=\"chipModel.colorSpec?.themeColor\"\n [levelColor]=\"chipModel.colorSpec?.levelColor\"\n [stateColor]=\"chipModel.colorSpec?.stateColor\"\n [removable]=\"chipModel.removable\"\n (keydown)=\"onChipKeyDown($event, chipModel.value)\"\n (click)=\"onCurrentClicked(chipModel.value)\"\n cdkDrag [cdkDragData]=\"chipModel.value\" [cdkDragDisabled]=\"!allowSorting\"\n >\n <mat-chip-avatar\n *ngIf=\"templates.avatar && !chipModel.avatarSpec?.hide\"\n [class.chip-avatar-xl]=\"chipModel.avatarSpec?.large\"\n >\n <ng-container\n *ngTemplateOutlet=\"templates.avatar; context: {$implicit: chipModel}\">\n </ng-container>\n </mat-chip-avatar>\n\n <ng-container\n *ngTemplateOutlet=\"templates.chip || simpleChipTemplate; context: {$implicit: chipModel}\">\n </ng-container>\n\n <mat-icon matChipTrailingIcon class=\"elder-trailing-icon\"\n *ngIf=\"chipModel.trailingSpec?.icon\"\n [fontSet]=\"chipModel.trailingSpec?.iconFontSet\"\n >{{chipModel.trailingSpec?.icon}}</mat-icon>\n\n <mat-icon matChipRemove\n *ngIf=\"chipModel.removable\"\n (click)=\"onClickRemoveChip($event, chipModel.value)\">\n cancel\n </mat-icon>\n </mat-chip-row>\n\n <div class=\"layout-row place-start-center elder-chip-input\">\n\n <!-- [matChipInputFor]=\"chips\" -->\n <ng-container\n *ngTemplateOutlet=\"templates.input || selectInput;\">\n </ng-container>\n\n <button mat-icon-button type=\"button\" class=\"elder-control-icon-button elder-browse-icon\"\n *ngIf=\"selectionPopup\"\n [disabled]=\"isLocked\"\n (click)=\"openSelectionPopup($event)\" aria-label=\"Search\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon class=\"elder-mdc-control-icon\">search</mat-icon>\n </button>\n </div>\n </ng-container>\n </mat-chip-set>\n</div>\n\n<ng-template #selectInput>\n <!-- mat-mdc-chip-input -->\n <elder-select autocomplete elderClearSelect\n class=\"elder-chip-input-select flex\"\n [data]=\"dataContext$ | async\"\n [disabled]=\"!!disabled\"\n [required]=\"!!required\"\n [readonly]=\"!!readonly\"\n [placeholder]=\"placeholder\"\n (entityUpdated)=\"appendEntity($event)\"\n [displayPropertyResolver]=\"displayPropertyResolver$ | async\"\n [valueTemplate]=\"valueTemplate\"\n [queryFilter]=\"queryFilter\" [filters]=\"filters\" [sorts]=\"sorts\"\n [isOptionDisabledFn]=\"isOptionDisabledInternalFn\"\n [isOptionHiddenFn]=\"isOptionHiddenInternalFn\"\n ></elder-select>\n</ng-template>\n\n<ng-template #simpleChipTemplate let-chipModel>\n <span class=\"elder-chip-text\">{{chipModel.displayText | elderTruncate:20}}</span>\n</ng-template>\n\n", styles: [".elder-chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.elder-trailing-icon{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color);opacity:.54}.cdk-drag-preview{box-sizing:border-box;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i8.MatChipAvatar, selector: "mat-chip-avatar, [matChipAvatar]" }, { kind: "directive", type: i8.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i8.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i8.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "directive", type: i8.MatChipTrailingIcon, selector: "mat-chip-trailing-icon, [matChipTrailingIcon]" }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i10.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i10.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i11.ElderStopEventPropagationDirective, selector: "[elderStopEventPropagation]" }, { kind: "directive", type: i12.ElderChipLabelDirective, selector: "[elderChipLabel]", inputs: ["appearance", "color", "stateColor", "levelColor"] }, { kind: "component", type: i13.ElderSelectComponent, selector: "elder-select", inputs: ["nullDisplay", "autocomplete", "allowNull", "entity", "entityId"], outputs: ["entityIdChange", "entityIdUpdated", "entityChange", "entityUpdated"] }, { kind: "directive", type: i14.ElderClearSelectDirective, selector: "[elderClearSelect]" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i15.ElderTruncatePipe, name: "elderTruncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
198
198
|
}
|
|
199
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.
|
|
199
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElderMultiSelectChipsComponent, decorators: [{
|
|
200
200
|
type: Component,
|
|
201
201
|
args: [{ selector: 'elder-multi-select-chips', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
202
202
|
{ provide: MatFormFieldControl, useExisting: ElderMultiSelectChipsComponent },
|
|
@@ -62,10 +62,10 @@ export class ElderMultiSelectFormField extends ElderFromFieldMultiEntityBase {
|
|
|
62
62
|
control.customInputTemplate = dir?.templateRef;
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.
|
|
66
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.
|
|
65
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElderMultiSelectFormField, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
|
|
66
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: ElderMultiSelectFormField, viewQueries: [{ propertyName: "selectValueTemplate", first: true, predicate: ElderSelectValueDirective, descendants: true }, { propertyName: "selectionModelPopupDirective", first: true, predicate: SelectionModelPopupDirective, descendants: true }, { propertyName: "selectChipDirective", first: true, predicate: ElderSelectChipDirective, descendants: true }, { propertyName: "selectChipAvatarDirective", first: true, predicate: ElderSelectChipAvatarDirective, descendants: true }, { propertyName: "selectCustomInputDirective", first: true, predicate: ElderSelectCustomInputDirective, descendants: true }], usesInheritance: true, ngImport: i0 }); }
|
|
67
67
|
}
|
|
68
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElderMultiSelectFormField, decorators: [{
|
|
69
69
|
type: Directive
|
|
70
70
|
}], ctorParameters: () => [{ type: undefined }], propDecorators: { selectValueTemplate: [{
|
|
71
71
|
type: ViewChild,
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Directive, Optional } from "@angular/core";
|
|
2
|
+
import { takeUntilDestroyed } from "@angular/core/rxjs-interop";
|
|
3
|
+
import { combineLatest } from "rxjs";
|
|
4
|
+
import { filter, first, map, switchMap } from "rxjs/operators";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "./elder-multi-select-chip-options/elder-multi-select-chip-options.component";
|
|
7
|
+
export class ElderMultiSelectAllInitialDirective {
|
|
8
|
+
/***************************************************************************
|
|
9
|
+
* *
|
|
10
|
+
* Constructor *
|
|
11
|
+
* *
|
|
12
|
+
**************************************************************************/
|
|
13
|
+
constructor(select, destroyRef) {
|
|
14
|
+
this.select = select;
|
|
15
|
+
this.destroyRef = destroyRef;
|
|
16
|
+
const data$ = this.select.dataContext$.pipe(filter(dc => !!dc), switchMap(dc => dc.data));
|
|
17
|
+
const templateOptions$ = this.select.templateOptions$.pipe(map(options => options.map(option => option.value)));
|
|
18
|
+
combineLatest([
|
|
19
|
+
data$,
|
|
20
|
+
templateOptions$
|
|
21
|
+
]).pipe(takeUntilDestroyed(destroyRef), filter(([data, templateEntities]) => data.length > 0), first()).subscribe(([entities, templateEntities]) => this.select.appendEntities([...entities, ...templateEntities]));
|
|
22
|
+
}
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElderMultiSelectAllInitialDirective, deps: [{ token: i1.ElderMultiSelectChipOptionsComponent, optional: true }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
24
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: ElderMultiSelectAllInitialDirective, selector: "[elderMultiSelectAllInitial]", ngImport: i0 }); }
|
|
25
|
+
}
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElderMultiSelectAllInitialDirective, decorators: [{
|
|
27
|
+
type: Directive,
|
|
28
|
+
args: [{
|
|
29
|
+
selector: "[elderMultiSelectAllInitial]"
|
|
30
|
+
}]
|
|
31
|
+
}], ctorParameters: () => [{ type: i1.ElderMultiSelectChipOptionsComponent, decorators: [{
|
|
32
|
+
type: Optional
|
|
33
|
+
}] }, { type: i0.DestroyRef }] });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXV0bGktc2VsZWN0LWFsbC1kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9tdWx0aS9lbGRlci1tdXRsaS1zZWxlY3QtYWxsLWRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUloRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBSy9ELE1BQU0sT0FBTyxtQ0FBbUM7SUFFOUM7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ3FCLE1BQTBELEVBQ3RFLFVBQXNCO1FBRFYsV0FBTSxHQUFOLE1BQU0sQ0FBb0Q7UUFDdEUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUc3QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3pDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDbEIsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUN6QixDQUFDO1FBRUYsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDeEQsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUNwRCxDQUFDO1FBRUYsYUFBYSxDQUFDO1lBQ1osS0FBSztZQUNMLGdCQUFnQjtTQUNqQixDQUFDLENBQUMsSUFBSSxDQUNMLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxFQUM5QixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUNyRCxLQUFLLEVBQUUsQ0FDUixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxDQUMzQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUMvRCxDQUFDO0lBQ0osQ0FBQzs4R0FoQ1UsbUNBQW1DO2tHQUFuQyxtQ0FBbUM7OzJGQUFuQyxtQ0FBbUM7a0JBSC9DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDhCQUE4QjtpQkFDekM7OzBCQVVJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBEaXJlY3RpdmUsIE9wdGlvbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIEVsZGVyTXVsdGlTZWxlY3RDaGlwT3B0aW9uc0NvbXBvbmVudFxufSBmcm9tIFwiLi9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcC1vcHRpb25zL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwLW9wdGlvbnMuY29tcG9uZW50XCI7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3BcIjtcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgZmlsdGVyLCBmaXJzdCwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltlbGRlck11bHRpU2VsZWN0QWxsSW5pdGlhbF1cIlxufSlcbmV4cG9ydCBjbGFzcyBFbGRlck11bHRpU2VsZWN0QWxsSW5pdGlhbERpcmVjdGl2ZTxUSWQsIFRFbnRpdHk+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBwdWJsaWMgc2VsZWN0OiBFbGRlck11bHRpU2VsZWN0Q2hpcE9wdGlvbnNDb21wb25lbnQ8VElkLCBURW50aXR5PixcbiAgICBwdWJsaWMgZGVzdHJveVJlZjogRGVzdHJveVJlZlxuICApIHtcblxuICAgIGNvbnN0IGRhdGEkID0gdGhpcy5zZWxlY3QuZGF0YUNvbnRleHQkLnBpcGUoXG4gICAgICBmaWx0ZXIoZGMgPT4gISFkYyksXG4gICAgICBzd2l0Y2hNYXAoZGMgPT4gZGMuZGF0YSlcbiAgICApO1xuXG4gICAgY29uc3QgdGVtcGxhdGVPcHRpb25zJCA9IHRoaXMuc2VsZWN0LnRlbXBsYXRlT3B0aW9ucyQucGlwZShcbiAgICAgIG1hcChvcHRpb25zID0+IG9wdGlvbnMubWFwKG9wdGlvbiA9PiBvcHRpb24udmFsdWUpKVxuICAgICk7XG5cbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIGRhdGEkLFxuICAgICAgdGVtcGxhdGVPcHRpb25zJFxuICAgIF0pLnBpcGUoXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQoZGVzdHJveVJlZiksXG4gICAgICBmaWx0ZXIoKFtkYXRhLCB0ZW1wbGF0ZUVudGl0aWVzXSkgPT4gZGF0YS5sZW5ndGggPiAwKSxcbiAgICAgIGZpcnN0KClcbiAgICApLnN1YnNjcmliZSgoW2VudGl0aWVzLCB0ZW1wbGF0ZUVudGl0aWVzXSkgPT5cbiAgICAgIHRoaXMuc2VsZWN0LmFwcGVuZEVudGl0aWVzKFsuLi5lbnRpdGllcywgLi4udGVtcGxhdGVFbnRpdGllc10pXG4gICAgKTtcbiAgfVxufVxuXG4iXX0=
|
package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs
CHANGED
|
@@ -53,10 +53,10 @@ export class ElderSelectionPopupTriggerAdapterDirective {
|
|
|
53
53
|
this.log.warn('Cant open selection browser popup, since [SelectionModelPopupDirective] was not found!');
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.
|
|
57
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.
|
|
56
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElderSelectionPopupTriggerAdapterDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
57
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: ElderSelectionPopupTriggerAdapterDirective, selector: "[elderSelectionPopupTriggerAdapter]", inputs: { keyGetter: "keyGetter", selection: "selection", filters: "filters", sorts: "sorts", multiSelectionEnabled: "multiSelectionEnabled" }, outputs: { selectionChange: "selectionChange", selectionSingleChange: "selectionSingleChange" }, host: { listeners: { "click": "handleClick($event)" } }, queries: [{ propertyName: "selectionPopup", first: true, predicate: SelectionModelPopupDirective, descendants: true }], exportAs: ["elderSelectionPopupTriggerAdapter"], ngImport: i0 }); }
|
|
58
58
|
}
|
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ElderSelectionPopupTriggerAdapterDirective, decorators: [{
|
|
60
60
|
type: Directive,
|
|
61
61
|
args: [{
|
|
62
62
|
selector: '[elderSelectionPopupTriggerAdapter]',
|
|
@@ -89,8 +89,8 @@ export class SelectionModelPopupDirective {
|
|
|
89
89
|
viewContainerRef: this.viewContainer
|
|
90
90
|
});
|
|
91
91
|
}
|
|
92
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.
|
|
93
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.
|
|
92
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: SelectionModelPopupDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i1.MatDialog }, { token: i2.ElderDataViewOptionsProvider }, { token: i3.SelectionModel }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
93
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: SelectionModelPopupDirective, selector: "[elderSelectionModelPopup]", inputs: { elderSelectionModelPopupTransform: "elderSelectionModelPopupTransform" }, providers: [
|
|
94
94
|
{
|
|
95
95
|
provide: SelectionModel,
|
|
96
96
|
useFactory: createSelectionModel
|
|
@@ -102,7 +102,7 @@ export class SelectionModelPopupDirective {
|
|
|
102
102
|
ElderTableProviders.ClearTableModel // Since this popup is frequently used inside an elder-table search box
|
|
103
103
|
], exportAs: ["elderSelectionModelPopup"], ngImport: i0 }); }
|
|
104
104
|
}
|
|
105
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: SelectionModelPopupDirective, decorators: [{
|
|
106
106
|
type: Directive,
|
|
107
107
|
args: [{
|
|
108
108
|
selector: '[elderSelectionModelPopup]',
|