@elderbyte/ngx-starter 17.5.0 → 17.6.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 +7 -7
- package/esm2022/lib/components/access-denied/elder-access-denied.module.mjs +11 -11
- package/esm2022/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +12 -11
- package/esm2022/lib/components/auditing/elder-audit.module.mjs +11 -11
- package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +20 -18
- package/esm2022/lib/components/badge/elder-badge.directive.mjs +6 -5
- package/esm2022/lib/components/badge/elder-badge.module.mjs +17 -17
- package/esm2022/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +5 -5
- package/esm2022/lib/components/button-group/elder-button-group.module.mjs +9 -8
- package/esm2022/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +7 -7
- package/esm2022/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +8 -5
- package/esm2022/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +13 -12
- package/esm2022/lib/components/card-organizer/elder-card-organizer.module.mjs +11 -9
- package/esm2022/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +6 -6
- package/esm2022/lib/components/cards/elder-card/elder-card.component.mjs +31 -26
- package/esm2022/lib/components/cards/elder-card/elder-card.module.mjs +14 -15
- package/esm2022/lib/components/chips/elder-chip-label.directive.mjs +6 -5
- package/esm2022/lib/components/chips/elder-chips.module.mjs +8 -9
- package/esm2022/lib/components/connectivity/elder-connectivity.module.mjs +10 -10
- package/esm2022/lib/components/connectivity/elder-connectivity.service.mjs +3 -3
- package/esm2022/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +10 -10
- package/esm2022/lib/components/containers/elder-containers.module.mjs +7 -8
- package/esm2022/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +6 -6
- package/esm2022/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +7 -7
- package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +3 -3
- package/esm2022/lib/components/csv/elder-csv.module.mjs +10 -10
- package/esm2022/lib/components/currency/elder-currency.module.mjs +7 -8
- package/esm2022/lib/components/currency/elder-currency.pipe.mjs +6 -5
- package/esm2022/lib/components/data-transfer/elder-data-transfer.module.mjs +17 -14
- 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 +10 -10
- package/esm2022/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +8 -8
- package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +13 -13
- package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +10 -10
- 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 +9 -8
- package/esm2022/lib/components/data-view/common/elder-data-common.module.mjs +18 -15
- package/esm2022/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +24 -13
- package/esm2022/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +11 -10
- package/esm2022/lib/components/data-view/common/selection/data-context-selection.directive.mjs +6 -5
- package/esm2022/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +8 -8
- package/esm2022/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +33 -28
- package/esm2022/lib/components/data-view/grid/elder-grid.module.mjs +12 -12
- package/esm2022/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +10 -10
- package/esm2022/lib/components/data-view/master-detail/elder-detail.directive.mjs +8 -5
- package/esm2022/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +5 -4
- package/esm2022/lib/components/data-view/master-detail/elder-master-detail.component.mjs +7 -7
- package/esm2022/lib/components/data-view/master-detail/elder-master-detail.module.mjs +19 -19
- 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 +6 -5
- package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +5 -5
- package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +8 -7
- package/esm2022/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +6 -5
- package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +6 -5
- package/esm2022/lib/components/data-view/table/elder-number-cell.directive.mjs +6 -5
- 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 +8 -5
- package/esm2022/lib/components/data-view/table/elder-table/elder-table.component.mjs +17 -20
- package/esm2022/lib/components/data-view/table/elder-table-column.directive.mjs +6 -5
- package/esm2022/lib/components/data-view/table/elder-table-extension.directive.mjs +6 -5
- package/esm2022/lib/components/data-view/table/elder-table-root.directive.mjs +6 -5
- package/esm2022/lib/components/data-view/table/elder-table-row.directive.mjs +6 -5
- package/esm2022/lib/components/data-view/table/elder-table-sort.directive.mjs +8 -5
- package/esm2022/lib/components/data-view/table/elder-table.module.mjs +19 -19
- 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 +13 -11
- package/esm2022/lib/components/dialogs/elder-dialog.module.mjs +15 -13
- package/esm2022/lib/components/dialogs/elder-dialog.service.mjs +3 -3
- package/esm2022/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +16 -14
- package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +10 -9
- package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +6 -5
- package/esm2022/lib/components/errors/elder-error.module.mjs +11 -11
- package/esm2022/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +10 -10
- package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +8 -8
- package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +8 -8
- package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +6 -6
- package/esm2022/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +9 -8
- 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 +6 -5
- package/esm2022/lib/components/files/elder-file-select.directive.mjs +6 -5
- package/esm2022/lib/components/files/elder-file.module.mjs +16 -14
- package/esm2022/lib/components/files/file-select/file-select.component.mjs +8 -8
- package/esm2022/lib/components/files/file-upload/file-upload.component.mjs +13 -13
- 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 +6 -5
- package/esm2022/lib/components/forms/directives/elder-delayed-focus.directive.mjs +6 -5
- package/esm2022/lib/components/forms/directives/elder-form-field-dense.directive.mjs +5 -4
- package/esm2022/lib/components/forms/directives/elder-form-field-label.directive.mjs +6 -5
- package/esm2022/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +6 -5
- package/esm2022/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +6 -5
- package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +8 -11
- package/esm2022/lib/components/forms/directives/elder-initial-value.directive.mjs +6 -5
- package/esm2022/lib/components/forms/directives/elder-input-pattern.directive.mjs +6 -5
- package/esm2022/lib/components/forms/directives/elder-key-event.directive.mjs +6 -5
- package/esm2022/lib/components/forms/directives/elder-next-focusable.directive.mjs +6 -5
- package/esm2022/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +6 -5
- package/esm2022/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +6 -5
- package/esm2022/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +6 -5
- package/esm2022/lib/components/forms/directives/elder-touched.directive.mjs +6 -5
- package/esm2022/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +6 -5
- package/esm2022/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +6 -5
- 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 +6 -5
- package/esm2022/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +6 -5
- package/esm2022/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +6 -5
- package/esm2022/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +6 -5
- 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 +6 -5
- 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 +6 -5
- package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +6 -5
- package/esm2022/lib/components/forms/search/elder-search.module.mjs +15 -15
- package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +21 -19
- package/esm2022/lib/components/forms/search/search-box/elder-search-panel.component.mjs +6 -5
- package/esm2022/lib/components/global-search/elder-global-search.component.mjs +13 -12
- package/esm2022/lib/components/global-search/elder-global-search.module.mjs +6 -9
- 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 +6 -6
- package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +8 -9
- package/esm2022/lib/components/headers/elder-header/elder-header.component.mjs +6 -5
- package/esm2022/lib/components/headers/elder-header.module.mjs +10 -9
- package/esm2022/lib/components/http-support/elder-http-client.service.mjs +3 -3
- package/esm2022/lib/components/i18n/entities/elder-i18n-entities.module.mjs +24 -22
- package/esm2022/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +15 -13
- package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +14 -13
- 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 +20 -18
- package/esm2022/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +8 -5
- package/esm2022/lib/components/i18n/entities/elder-localized-texts.directive.mjs +6 -5
- package/esm2022/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +6 -5
- package/esm2022/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +6 -5
- 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 +11 -11
- 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 +16 -14
- 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 +5 -6
- package/esm2022/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +6 -5
- package/esm2022/lib/components/iframes/elder-iframe.module.mjs +18 -15
- package/esm2022/lib/components/iframes/iframe-close.directive.mjs +5 -4
- package/esm2022/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +7 -7
- package/esm2022/lib/components/iframes/iframe-host/iframe-host.component.mjs +11 -11
- package/esm2022/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +7 -7
- package/esm2022/lib/components/iframes/iframe.service.mjs +3 -3
- package/esm2022/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +6 -5
- package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +8 -5
- package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +8 -11
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +12 -12
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +6 -5
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +6 -5
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete.module.mjs +14 -14
- package/esm2022/lib/components/labels/elder-labels.module.mjs +10 -8
- package/esm2022/lib/components/labels/labels-input/labels-input.component.mjs +16 -15
- package/esm2022/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +9 -8
- package/esm2022/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +6 -5
- package/esm2022/lib/components/measures/directives/elder-unit-select.directive.mjs +6 -5
- package/esm2022/lib/components/measures/elder-measures.module.mjs +24 -22
- package/esm2022/lib/components/measures/elder-quantity-transform.pipe.mjs +6 -5
- package/esm2022/lib/components/measures/elder-quantity.pipe.mjs +6 -5
- 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 +11 -10
- package/esm2022/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +11 -8
- package/esm2022/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +6 -5
- package/esm2022/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +6 -5
- 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 +17 -17
- package/esm2022/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +10 -10
- package/esm2022/lib/components/navigation/nav/elder-nav.module.mjs +16 -15
- package/esm2022/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +8 -8
- package/esm2022/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +11 -11
- package/esm2022/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +5 -5
- package/esm2022/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +6 -5
- package/esm2022/lib/components/navigation/toolbar/elder-toolbar.module.mjs +13 -12
- package/esm2022/lib/components/navigation/toolbar/elder-toolbar.service.mjs +3 -3
- package/esm2022/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +9 -9
- package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +8 -7
- 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 +6 -5
- package/esm2022/lib/components/overlays/elder-overlay-trigger.directive.mjs +6 -5
- package/esm2022/lib/components/overlays/elder-overlay.component.mjs +6 -5
- package/esm2022/lib/components/overlays/elder-overlay.module.mjs +9 -10
- package/esm2022/lib/components/panels/card-panel/elder-card-panel.component.mjs +5 -5
- package/esm2022/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +5 -5
- package/esm2022/lib/components/panels/elder-panel.module.mjs +8 -9
- package/esm2022/lib/components/panels/flat/elder-panel.component.mjs +5 -5
- package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +6 -5
- package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +20 -14
- package/esm2022/lib/components/scrollbar/elder-scrollbar.directive.mjs +6 -5
- package/esm2022/lib/components/scrollbar/elder-scrollbar.module.mjs +6 -6
- package/esm2022/lib/components/select/auto/elder-auto-select-first.directive.mjs +6 -5
- package/esm2022/lib/components/select/elder-select-base.mjs +3 -3
- package/esm2022/lib/components/select/elder-select-chip.directive.mjs +16 -13
- package/esm2022/lib/components/select/elder-select-on-tab.directive.mjs +6 -5
- package/esm2022/lib/components/select/elder-select-value.directive.mjs +8 -5
- package/esm2022/lib/components/select/elder-select.module.mjs +26 -23
- package/esm2022/lib/components/select/multi/elder-chip-select-option/elder-select-option.component.mjs +5 -5
- package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +3 -3
- package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +14 -15
- package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +16 -18
- 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 +6 -5
- package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +5 -4
- package/esm2022/lib/components/select/popup/selection-model-popup.directive.mjs +6 -5
- package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +13 -12
- package/esm2022/lib/components/select/single/elder-clear-select.directive.mjs +6 -5
- package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +18 -16
- 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 +8 -8
- package/esm2022/lib/components/select-chip-list/elder-chip-list-select.module.mjs +10 -10
- 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 +6 -5
- package/esm2022/lib/components/shell/elder-shell.module.mjs +18 -16
- 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 +8 -8
- package/esm2022/lib/components/shell/shell/elder-shell.component.mjs +34 -25
- package/esm2022/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +8 -8
- package/esm2022/lib/components/tabs/elder-tab/elder-tab.directive.mjs +6 -5
- package/esm2022/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +6 -5
- package/esm2022/lib/components/tabs/elder-tab.module.mjs +8 -9
- package/esm2022/lib/components/theme/elder-theme-applier.directive.mjs +6 -5
- 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 +10 -9
- package/esm2022/lib/components/theme/elder-theme.directive.mjs +6 -5
- package/esm2022/lib/components/theme/elder-theme.module.mjs +12 -12
- 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 +10 -9
- package/esm2022/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +11 -10
- package/esm2022/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +10 -8
- package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +14 -12
- package/esm2022/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +15 -14
- package/esm2022/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +10 -8
- package/esm2022/lib/components/time/elder-time.module.mjs +23 -17
- package/esm2022/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +11 -11
- package/esm2022/lib/components/time/pipes/to-iso-date-string.pipe.mjs +6 -5
- package/esm2022/lib/components/toasts/elder-toast.module.mjs +6 -7
- package/esm2022/lib/components/toasts/elder-toast.service.mjs +3 -3
- package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +8 -8
- package/esm2022/lib/components/url-fragment/elder-url-fragment.module.mjs +11 -11
- package/esm2022/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +10 -10
- package/esm2022/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +5 -5
- package/esm2022/lib/components/viewers/elder-viewers.module.mjs +8 -9
- 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 +8 -5
- package/esm2022/lib/pipes/elder-pipes.module.mjs +21 -18
- package/esm2022/lib/pipes/elder-repeat.pipe.mjs +8 -5
- package/esm2022/lib/pipes/elder-round.pipe.mjs +6 -5
- package/esm2022/lib/pipes/elder-safe-url.pipe.mjs +6 -5
- package/esm2022/lib/pipes/elder-truncate.pipe.mjs +6 -5
- package/esm2022/lib/pipes/iso-duration.pipe.mjs +6 -5
- package/esm2022/lib/pipes/iso-interval-parse.pipe.mjs +6 -5
- package/esm2022/lib/pipes/iso-interval.pipe.mjs +6 -5
- package/esm2022/lib/pipes/time-ago.pipe.mjs +6 -5
- package/esm2022/lib/pipes/time-duration.pipe.mjs +6 -5
- package/esm2022/lib/pipes/weight.pipe.mjs +8 -5
- package/fesm2022/elderbyte-ngx-starter.mjs +2008 -1854
- package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
- package/lib/components/access-denied/elder-access-denied.component.d.ts +1 -1
- package/lib/components/access-denied/elder-access-denied.module.d.ts +5 -5
- package/lib/components/auditing/audited-entity/elder-audited-entity.component.d.ts +1 -1
- package/lib/components/auditing/elder-audit.module.d.ts +7 -7
- package/lib/components/badge/elder-badge/elder-badge.component.d.ts +3 -3
- package/lib/components/badge/elder-badge.directive.d.ts +1 -1
- package/lib/components/badge/elder-badge.module.d.ts +8 -8
- package/lib/components/button-group/elder-button-group/elder-button-group.component.d.ts +1 -1
- package/lib/components/button-group/elder-button-group.module.d.ts +6 -6
- package/lib/components/card-organizer/card-organizer/elder-card-organizer.component.d.ts +1 -1
- package/lib/components/card-organizer/card-organizer/elder-stack-card.directive.d.ts +1 -1
- package/lib/components/card-organizer/card-stack/elder-card-stack.component.d.ts +1 -1
- package/lib/components/card-organizer/elder-card-organizer.module.d.ts +12 -12
- package/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.d.ts +1 -1
- package/lib/components/cards/elder-card/elder-card.component.d.ts +6 -6
- package/lib/components/cards/elder-card/elder-card.module.d.ts +7 -7
- package/lib/components/chips/elder-chip-label.directive.d.ts +1 -1
- package/lib/components/chips/elder-chips.module.d.ts +6 -6
- package/lib/components/connectivity/elder-connectivity.module.d.ts +8 -8
- package/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.d.ts +1 -1
- package/lib/components/containers/elder-containers.module.d.ts +3 -3
- package/lib/components/containers/elder-scroll-container/elder-scroll-container.component.d.ts +1 -1
- package/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.d.ts +1 -1
- package/lib/components/csv/elder-csv.module.d.ts +5 -5
- package/lib/components/currency/elder-currency.module.d.ts +3 -3
- package/lib/components/currency/elder-currency.pipe.d.ts +1 -1
- package/lib/components/data-transfer/elder-data-transfer.module.d.ts +17 -17
- package/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.d.ts +1 -1
- package/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.d.ts +1 -1
- package/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.d.ts +1 -1
- package/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.d.ts +1 -1
- package/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.d.ts +1 -1
- package/lib/components/data-view/common/elder-data-common.module.d.ts +19 -19
- package/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.d.ts +2 -2
- package/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.d.ts +1 -1
- package/lib/components/data-view/common/selection/data-context-selection.directive.d.ts +1 -1
- package/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.d.ts +1 -1
- package/lib/components/data-view/grid/elder-grid/elder-grid.component.d.ts +3 -3
- package/lib/components/data-view/grid/elder-grid.module.d.ts +19 -19
- package/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.d.ts +1 -1
- package/lib/components/data-view/master-detail/elder-detail.directive.d.ts +1 -1
- package/lib/components/data-view/master-detail/elder-master-activation.directive.d.ts +1 -1
- package/lib/components/data-view/master-detail/elder-master-detail.component.d.ts +1 -1
- package/lib/components/data-view/master-detail/elder-master-detail.module.d.ts +23 -23
- package/lib/components/data-view/master-detail/elder-master.directive.d.ts +1 -1
- package/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.d.ts +1 -1
- package/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.d.ts +22 -22
- package/lib/components/data-view/table/activation/elder-delete-active.directive.d.ts +1 -1
- package/lib/components/data-view/table/activation/elder-table-activation.directive.d.ts +1 -1
- package/lib/components/data-view/table/elder-number-cell.directive.d.ts +1 -1
- package/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.d.ts +1 -1
- package/lib/components/data-view/table/elder-table/elder-table.component.d.ts +1 -1
- package/lib/components/data-view/table/elder-table-column.directive.d.ts +1 -1
- package/lib/components/data-view/table/elder-table-extension.directive.d.ts +1 -1
- package/lib/components/data-view/table/elder-table-root.directive.d.ts +1 -1
- package/lib/components/data-view/table/elder-table-row.directive.d.ts +1 -1
- package/lib/components/data-view/table/elder-table-sort.directive.d.ts +1 -1
- package/lib/components/data-view/table/elder-table.module.d.ts +32 -32
- package/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.d.ts +1 -1
- package/lib/components/dialogs/elder-dialog.module.d.ts +16 -16
- package/lib/components/dialogs/question-dialog/elder-question-dialog.component.d.ts +1 -1
- package/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.d.ts +1 -1
- package/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.d.ts +1 -1
- package/lib/components/errors/elder-error.module.d.ts +6 -6
- package/lib/components/errors/exception-detail/elder-exception-detail.component.d.ts +1 -1
- package/lib/components/expand-toggle-button/elder-expand-toggle-button.component.d.ts +1 -1
- package/lib/components/expand-toggle-button/elder-expand-toggle-button.module.d.ts +6 -6
- package/lib/components/files/blob-viewer/elder-blob-viewer.component.d.ts +1 -1
- package/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.d.ts +1 -1
- package/lib/components/files/elder-file-drop-zone.directive.d.ts +1 -1
- package/lib/components/files/elder-file-select.directive.d.ts +1 -1
- package/lib/components/files/elder-file.module.d.ts +14 -14
- package/lib/components/files/file-select/file-select.component.d.ts +1 -1
- package/lib/components/files/file-upload/file-upload.component.d.ts +1 -1
- package/lib/components/forms/directives/elder-clipboard-put.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-delayed-focus.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-form-field-dense.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-form-field-label.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-form-field-no-hint.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-form-field-no-spinner.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-forms-directives.module.d.ts +22 -22
- package/lib/components/forms/directives/elder-initial-value.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-input-pattern.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-key-event.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-next-focusable.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-plug-parent-form.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-stop-event-propagation.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-tab-focus-trap.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-touched.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-triple-state-checkbox.directive.d.ts +1 -1
- package/lib/components/forms/directives/validation/elder-validation-error.directive.d.ts +1 -1
- package/lib/components/forms/directives/validation/validators/elder-max.validator.d.ts +1 -1
- package/lib/components/forms/directives/validation/validators/elder-min.validator.d.ts +1 -1
- package/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.d.ts +1 -1
- package/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.d.ts +1 -1
- package/lib/components/forms/search/domain/url/elder-search-url.directive.d.ts +1 -1
- package/lib/components/forms/search/elder-search-context.directive.d.ts +1 -1
- package/lib/components/forms/search/elder-search-input.directive.d.ts +1 -1
- package/lib/components/forms/search/elder-search.module.d.ts +18 -18
- package/lib/components/forms/search/search-box/elder-search-box.component.d.ts +1 -1
- package/lib/components/forms/search/search-box/elder-search-panel.component.d.ts +1 -1
- package/lib/components/global-search/elder-global-search.component.d.ts +1 -1
- package/lib/components/global-search/elder-global-search.module.d.ts +8 -8
- package/lib/components/graph/elder-progress-bar/elder-progress-bar.component.d.ts +1 -1
- package/lib/components/graph/elder-progress-bar/elder-progress-bar.module.d.ts +3 -3
- package/lib/components/headers/elder-header/elder-header.component.d.ts +1 -1
- package/lib/components/headers/elder-header.module.d.ts +5 -5
- package/lib/components/i18n/entities/elder-i18n-entities.module.d.ts +24 -24
- package/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.d.ts +1 -1
- package/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.d.ts +1 -1
- package/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.d.ts +1 -1
- package/lib/components/i18n/entities/elder-localized-text-column.directive.d.ts +1 -1
- package/lib/components/i18n/entities/elder-localized-texts.directive.d.ts +1 -1
- package/lib/components/i18n/entities/picker/i18n-pick-async.pipe.d.ts +1 -1
- package/lib/components/i18n/entities/picker/i18n-pick.pipe.d.ts +1 -1
- package/lib/components/i18n/language/elder-language.module.d.ts +10 -10
- package/lib/components/i18n/language/language-switcher/elder-language-switcher.component.d.ts +1 -1
- package/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.d.ts +1 -1
- package/lib/components/iframes/data-view/data-view-iframe-adapter.directive.d.ts +1 -1
- package/lib/components/iframes/elder-iframe.module.d.ts +16 -16
- package/lib/components/iframes/iframe-close.directive.d.ts +1 -1
- package/lib/components/iframes/iframe-dialog/iframe-dialog.component.d.ts +1 -1
- package/lib/components/iframes/iframe-host/iframe-host.component.d.ts +1 -1
- package/lib/components/iframes/iframe-side-content/iframe-side-content.component.d.ts +1 -1
- package/lib/components/infinitescroll/elder-infinite-autocomplete.directive.d.ts +1 -1
- package/lib/components/infinitescroll/elder-infinite-scroll.directive.d.ts +1 -1
- package/lib/components/infinitescroll/elder-infinite-scroll.module.d.ts +4 -4
- package/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.d.ts +1 -1
- package/lib/components/input/autocomplete/elder-autocomplete-many.directive.d.ts +1 -1
- package/lib/components/input/autocomplete/elder-autocomplete.directive.d.ts +1 -1
- package/lib/components/input/autocomplete/elder-autocomplete.module.d.ts +11 -11
- package/lib/components/labels/elder-labels.module.d.ts +9 -9
- package/lib/components/labels/labels-input/labels-input.component.d.ts +1 -1
- package/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.d.ts +1 -1
- package/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.d.ts +1 -1
- package/lib/components/measures/directives/elder-unit-select.directive.d.ts +1 -1
- package/lib/components/measures/elder-measures.module.d.ts +17 -17
- package/lib/components/measures/elder-quantity-transform.pipe.d.ts +1 -1
- package/lib/components/measures/elder-quantity.pipe.d.ts +1 -1
- package/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.d.ts +1 -1
- package/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.d.ts +1 -1
- package/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.d.ts +1 -1
- package/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.d.ts +1 -1
- package/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.d.ts +1 -1
- package/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.d.ts +11 -11
- package/lib/components/navigation/nav/elder-nav.module.d.ts +12 -12
- package/lib/components/navigation/nav/nav-group/elder-nav-group.component.d.ts +1 -1
- package/lib/components/navigation/nav/nav-link/elder-nav-link.component.d.ts +1 -1
- package/lib/components/navigation/nav/nav-list/elder-nav-list.component.d.ts +1 -1
- package/lib/components/navigation/toolbar/elder-toolbar-column.directive.d.ts +1 -1
- package/lib/components/navigation/toolbar/elder-toolbar.module.d.ts +13 -13
- package/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.d.ts +1 -1
- package/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.d.ts +1 -1
- package/lib/components/overlays/elder-overlay-origin.directive.d.ts +1 -1
- package/lib/components/overlays/elder-overlay-trigger.directive.d.ts +1 -1
- package/lib/components/overlays/elder-overlay.component.d.ts +1 -1
- package/lib/components/overlays/elder-overlay.module.d.ts +6 -6
- package/lib/components/panels/card-panel/elder-card-panel.component.d.ts +1 -1
- package/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.d.ts +1 -1
- package/lib/components/panels/elder-panel.module.d.ts +8 -8
- package/lib/components/panels/flat/elder-panel.component.d.ts +1 -1
- package/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.d.ts +1 -1
- package/lib/components/panels/toggle-panel/elder-toggle-panel.component.d.ts +3 -3
- package/lib/components/scrollbar/elder-scrollbar.directive.d.ts +1 -1
- package/lib/components/scrollbar/elder-scrollbar.module.d.ts +1 -1
- package/lib/components/select/auto/elder-auto-select-first.directive.d.ts +1 -1
- package/lib/components/select/elder-select-chip.directive.d.ts +3 -3
- package/lib/components/select/elder-select-on-tab.directive.d.ts +1 -1
- package/lib/components/select/elder-select-value.directive.d.ts +1 -1
- package/lib/components/select/elder-select.module.d.ts +37 -37
- package/lib/components/select/multi/elder-chip-select-option/elder-select-option.component.d.ts +1 -1
- package/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.d.ts +1 -1
- package/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.d.ts +1 -1
- package/lib/components/select/multi/elder-mutli-select-all-directive.d.ts +1 -1
- package/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.d.ts +1 -1
- package/lib/components/select/popup/selection-model-popup.directive.d.ts +1 -1
- package/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.d.ts +1 -1
- package/lib/components/select/single/elder-clear-select.directive.d.ts +1 -1
- package/lib/components/select/single/elder-select/elder-select.component.d.ts +1 -1
- package/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.d.ts +1 -1
- package/lib/components/select-chip-list/elder-chip-list-select.module.d.ts +6 -6
- package/lib/components/shell/elder-shell-slot.directive.d.ts +1 -1
- package/lib/components/shell/elder-shell.module.d.ts +16 -16
- package/lib/components/shell/header/elder-app-header/elder-app-header.component.d.ts +1 -1
- package/lib/components/shell/shell/elder-shell.component.d.ts +4 -4
- package/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.d.ts +1 -1
- package/lib/components/tabs/elder-tab/elder-tab.directive.d.ts +1 -1
- package/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.d.ts +1 -1
- package/lib/components/tabs/elder-tab.module.d.ts +5 -5
- package/lib/components/theme/elder-theme-applier.directive.d.ts +1 -1
- package/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.d.ts +1 -1
- package/lib/components/theme/elder-theme.directive.d.ts +1 -1
- package/lib/components/theme/elder-theme.module.d.ts +8 -8
- package/lib/components/time/duration/elder-duration-input/elder-duration-input.component.d.ts +1 -1
- package/lib/components/time/elder-date-switcher/elder-date-switcher.component.d.ts +1 -1
- package/lib/components/time/elder-date-time-input/elder-date-time-input.component.d.ts +1 -1
- package/lib/components/time/elder-interval-input/elder-interval-input.component.d.ts +1 -1
- package/lib/components/time/elder-local-date-input/elder-local-date-input.component.d.ts +1 -1
- package/lib/components/time/elder-local-time-input/elder-local-time-input.component.d.ts +1 -1
- package/lib/components/time/elder-time.module.d.ts +19 -19
- package/lib/components/time/period/elder-period-input/elder-period-input.component.d.ts +1 -1
- package/lib/components/time/pipes/to-iso-date-string.pipe.d.ts +1 -1
- package/lib/components/toasts/elder-toast.module.d.ts +6 -6
- package/lib/components/toasts/standard-toast/standard-toast.component.d.ts +1 -1
- package/lib/components/url-fragment/elder-url-fragment.module.d.ts +10 -10
- package/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.d.ts +1 -1
- package/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.d.ts +1 -1
- package/lib/components/viewers/elder-viewers.module.d.ts +3 -3
- package/lib/pipes/bytes.pipe.d.ts +1 -1
- package/lib/pipes/elder-pipes.module.d.ts +15 -15
- package/lib/pipes/elder-repeat.pipe.d.ts +1 -1
- package/lib/pipes/elder-round.pipe.d.ts +1 -1
- package/lib/pipes/elder-safe-url.pipe.d.ts +1 -1
- package/lib/pipes/elder-truncate.pipe.d.ts +1 -1
- package/lib/pipes/iso-duration.pipe.d.ts +1 -1
- package/lib/pipes/iso-interval-parse.pipe.d.ts +1 -1
- package/lib/pipes/iso-interval.pipe.d.ts +1 -1
- package/lib/pipes/time-ago.pipe.d.ts +1 -1
- package/lib/pipes/time-duration.pipe.d.ts +1 -1
- package/lib/pipes/weight.pipe.d.ts +1 -1
- package/package.json +1 -1
|
@@ -7,22 +7,21 @@ import { ElderSelectChipAvatarDirective, ElderSelectChipDirective } from "../../
|
|
|
7
7
|
import { ELDER_SELECT_BASE } from "../../elder-select-base";
|
|
8
8
|
import { MatFormFieldControl } from "@angular/material/form-field";
|
|
9
9
|
import { SelectOptionChipSpecUtil } from "./select-option-chip-spec";
|
|
10
|
-
import { MatChipListbox } from "@angular/material/chips";
|
|
10
|
+
import { MatChipListbox, MatChipOption, MatChipAvatar, MatChipTrailingIcon } from "@angular/material/chips";
|
|
11
11
|
import { coerceBooleanProperty } from "@angular/cdk/coercion";
|
|
12
12
|
import ChipOptionsProvider from "./chip-options-provider";
|
|
13
|
+
import { ElderTruncatePipe } from "../../../../pipes/elder-truncate.pipe";
|
|
14
|
+
import { ElderStopEventPropagationDirective } from "../../../forms/directives/elder-stop-event-propagation.directive";
|
|
15
|
+
import { MatIconButton } from "@angular/material/button";
|
|
16
|
+
import { NgTemplateOutlet, AsyncPipe } from "@angular/common";
|
|
17
|
+
import { ElderChipLabelDirective } from "../../../chips/elder-chip-label.directive";
|
|
18
|
+
import { MatIcon } from "@angular/material/icon";
|
|
19
|
+
import { MatTooltip } from "@angular/material/tooltip";
|
|
13
20
|
import * as i0 from "@angular/core";
|
|
14
21
|
import * as i1 from "@angular/cdk/a11y";
|
|
15
22
|
import * as i2 from "@ngx-translate/core";
|
|
16
23
|
import * as i3 from "../../../dialogs/elder-dialog.service";
|
|
17
24
|
import * as i4 from "@angular/forms";
|
|
18
|
-
import * as i5 from "@angular/common";
|
|
19
|
-
import * as i6 from "@angular/material/icon";
|
|
20
|
-
import * as i7 from "@angular/material/button";
|
|
21
|
-
import * as i8 from "@angular/material/chips";
|
|
22
|
-
import * as i9 from "@angular/material/tooltip";
|
|
23
|
-
import * as i10 from "../../../forms/directives/elder-stop-event-propagation.directive";
|
|
24
|
-
import * as i11 from "../../../chips/elder-chip-label.directive";
|
|
25
|
-
import * as i12 from "../../../../pipes/elder-truncate.pipe";
|
|
26
25
|
export class ElderMultiSelectChipOptionsComponent extends ElderMultiSelectBase {
|
|
27
26
|
/***************************************************************************
|
|
28
27
|
* *
|
|
@@ -214,16 +213,16 @@ export class ElderMultiSelectChipOptionsComponent extends ElderMultiSelectBase {
|
|
|
214
213
|
return new Map(templateChips.filter(chip => chip.label != undefined)
|
|
215
214
|
.map(chip => [chip.value, chip.label]));
|
|
216
215
|
}
|
|
217
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2
|
|
218
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2
|
|
216
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", 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 }); }
|
|
217
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: ElderMultiSelectChipOptionsComponent, isStandalone: true, selector: "elder-multi-select-chip-options", inputs: { defaultChipSpec: "defaultChipSpec", stacked: "stacked", multiple: "multiple", chipSpecFn: "chipSpecFn", chipTemplate: "chipTemplate", chipAvatarTemplate: "chipAvatarTemplate" }, providers: [
|
|
219
218
|
{ provide: MatFormFieldControl, useExisting: ElderMultiSelectChipOptionsComponent },
|
|
220
219
|
{
|
|
221
220
|
provide: ELDER_SELECT_BASE,
|
|
222
221
|
useExisting: forwardRef(() => ElderMultiSelectChipOptionsComponent)
|
|
223
222
|
}
|
|
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:
|
|
223
|
+
], 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: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: ElderChipLabelDirective, selector: "[elderChipLabel]", inputs: ["appearance", "color", "stateColor", "levelColor"] }, { kind: "directive", type: MatChipAvatar, selector: "mat-chip-avatar, [matChipAvatar]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: MatChipTrailingIcon, selector: "mat-chip-trailing-icon, [matChipTrailingIcon]" }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: ElderStopEventPropagationDirective, selector: "[elderStopEventPropagation]" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: ElderTruncatePipe, name: "elderTruncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
225
224
|
}
|
|
226
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2
|
|
225
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ElderMultiSelectChipOptionsComponent, decorators: [{
|
|
227
226
|
type: Component,
|
|
228
227
|
args: [{ selector: "elder-multi-select-chip-options", changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
229
228
|
{ provide: MatFormFieldControl, useExisting: ElderMultiSelectChipOptionsComponent },
|
|
@@ -231,7 +230,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
231
230
|
provide: ELDER_SELECT_BASE,
|
|
232
231
|
useExisting: forwardRef(() => ElderMultiSelectChipOptionsComponent)
|
|
233
232
|
}
|
|
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"] }]
|
|
233
|
+
], standalone: true, imports: [MatTooltip, MatChipListbox, MatIcon, MatChipOption, ElderChipLabelDirective, MatChipAvatar, NgTemplateOutlet, MatChipTrailingIcon, MatIconButton, ElderStopEventPropagationDirective, AsyncPipe, ElderTruncatePipe], 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
234
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.FocusMonitor }, { type: i2.TranslateService }, { type: i3.ElderDialogService }, { type: i0.DestroyRef }, { type: i4.NgControl, decorators: [{
|
|
236
235
|
type: Optional
|
|
237
236
|
}, {
|
|
@@ -258,4 +257,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
258
257
|
}], chipAvatarTemplate: [{
|
|
259
258
|
type: Input
|
|
260
259
|
}] } });
|
|
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==
|
|
260
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWNoaXAtb3B0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9tdWx0aS9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcC1vcHRpb25zL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwLW9wdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvbXVsdGkvZWxkZXItbXVsdGktc2VsZWN0LWNoaXAtb3B0aW9ucy9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcC1vcHRpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFJWixVQUFVLEVBQ1YsS0FBSyxFQUVMLFFBQVEsRUFDUixJQUFJLEVBQ0osV0FBVyxFQUNYLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFLckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM3RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVB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LEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQ0FBcUMsQ0FBQzt5QkFDdEU7cUJBQ0osY0FDVyxJQUFJLFdBQ1AsQ0FBQyxVQUFVLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsdUJBQXVCLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxrQ0FBa0MsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLENBQUM7OzBCQStDNU4sUUFBUTs7MEJBQUksSUFBSTt5Q0F6QlosZUFBZTtzQkFEckIsS0FBSztnQkFPQyxPQUFPO3NCQURiLEtBQUs7Z0JBS3FCLFFBQVE7c0JBQWxDLFNBQVM7dUJBQUMsY0FBYztnQkErRmQsUUFBUTtzQkFEbEIsS0FBSztnQkFlSyxVQUFVO3NCQURwQixLQUFLO2dCQWNLLGlCQUFpQjtzQkFEM0IsWUFBWTt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFNakUsWUFBWTtzQkFEdEIsS0FBSztnQkFVSyx1QkFBdUI7c0JBRGpDLFlBQVk7dUJBQUMsOEJBQThCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBTXZFLGtCQUFrQjtzQkFENUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBEZXN0cm95UmVmLFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPcHRpb25hbCxcbiAgU2VsZixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRWxkZXJNdWx0aVNlbGVjdEJhc2UgfSBmcm9tIFwiLi4vZWxkZXItbXVsdGktc2VsZWN0LWJhc2VcIjtcbmltcG9ydCB7IExvZ2dlckZhY3RvcnkgfSBmcm9tIFwiQGVsZGVyYnl0ZS90cy1sb2dnZXJcIjtcbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gXCJAYW5ndWxhci9jZGsvYTExeVwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBFbGRlckRpYWxvZ1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vZGlhbG9ncy9lbGRlci1kaWFsb2cuc2VydmljZVwiO1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IEVsZGVyU2VsZWN0Q2hpcEF2YXRhckRpcmVjdGl2ZSwgRWxkZXJTZWxlY3RDaGlwRGlyZWN0aXZlIH0gZnJvbSBcIi4uLy4uL2VsZGVyLXNlbGVjdC1jaGlwLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgRUxERVJfU0VMRUNUX0JBU0UgfSBmcm9tIFwiLi4vLi4vZWxkZXItc2VsZWN0LWJhc2VcIjtcbmltcG9ydCB7IE1hdEZvcm1GaWVsZENvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xuaW1wb3J0IHsgSURhdGFDb250ZXh0IH0gZnJvbSBcIi4uLy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9kYXRhLWNvbnRleHRcIjtcbmltcG9ydCB7IFNlbGVjdE9wdGlvbkNoaXBTcGVjLCBTZWxlY3RPcHRpb25DaGlwU3BlY1V0aWwgfSBmcm9tIFwiLi9zZWxlY3Qtb3B0aW9uLWNoaXAtc3BlY1wiO1xuaW1wb3J0IHsgTWF0Q2hpcExpc3Rib3gsIE1hdENoaXBTZWxlY3Rpb25DaGFuZ2UsIE1hdENoaXBPcHRpb24sIE1hdENoaXBBdmF0YXIsIE1hdENoaXBUcmFpbGluZ0ljb24gfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHNcIjtcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9jb2VyY2lvblwiO1xuaW1wb3J0IHsgRWxkZXJTZWxlY3RPcHRpb25Db21wb25lbnQgfSBmcm9tIFwiLi4vZWxkZXItY2hpcC1zZWxlY3Qtb3B0aW9uL2VsZGVyLXNlbGVjdC1vcHRpb24uY29tcG9uZW50XCI7XG5pbXBvcnQgQ2hpcE9wdGlvbnNQcm92aWRlciwgeyBDaGlwT3B0aW9uTW9kZWwsIE11bHRpU2VsZWN0Q2hpcE9wdGlvbnNDb250ZXh0IH0gZnJvbSBcIi4vY2hpcC1vcHRpb25zLXByb3ZpZGVyXCI7XG5pbXBvcnQgeyBFbGRlclRydW5jYXRlUGlwZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9waXBlcy9lbGRlci10cnVuY2F0ZS5waXBlXCI7XG5pbXBvcnQgeyBFbGRlclN0b3BFdmVudFByb3BhZ2F0aW9uRGlyZWN0aXZlIH0gZnJvbSBcIi4uLy4uLy4uL2Zvcm1zL2RpcmVjdGl2ZXMvZWxkZXItc3RvcC1ldmVudC1wcm9wYWdhdGlvbi5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IE1hdEljb25CdXR0b24gfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uXCI7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0LCBBc3luY1BpcGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBFbGRlckNoaXBMYWJlbERpcmVjdGl2ZSB9IGZyb20gXCIuLi8uLi8uLi9jaGlwcy9lbGRlci1jaGlwLWxhYmVsLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XG5pbXBvcnQgeyBNYXRUb29sdGlwIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcblxuaW50ZXJmYWNlIFRlbXBsYXRlV3JhcHBlciB7XG4gIGNoaXA6IFRlbXBsYXRlUmVmPGFueT47XG4gIGF2YXRhcjogVGVtcGxhdGVSZWY8YW55Pjtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwiZWxkZXItbXVsdGktc2VsZWN0LWNoaXAtb3B0aW9uc1wiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vZWxkZXItbXVsdGktc2VsZWN0LWNoaXAtb3B0aW9ucy5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcC1vcHRpb25zLmNvbXBvbmVudC5zY3NzXCJdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsIHVzZUV4aXN0aW5nOiBFbGRlck11bHRpU2VsZWN0Q2hpcE9wdGlvbnNDb21wb25lbnQgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRUxERVJfU0VMRUNUX0JBU0UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFbGRlck11bHRpU2VsZWN0Q2hpcE9wdGlvbnNDb21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW01hdFRvb2x0aXAsIE1hdENoaXBMaXN0Ym94LCBNYXRJY29uLCBNYXRDaGlwT3B0aW9uLCBFbGRlckNoaXBMYWJlbERpcmVjdGl2ZSwgTWF0Q2hpcEF2YXRhciwgTmdUZW1wbGF0ZU91dGxldCwgTWF0Q2hpcFRyYWlsaW5nSWNvbiwgTWF0SWNvbkJ1dHRvbiwgRWxkZXJTdG9wRXZlbnRQcm9wYWdhdGlvbkRpcmVjdGl2ZSwgQXN5bmNQaXBlLCBFbGRlclRydW5jYXRlUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJNdWx0aVNlbGVjdENoaXBPcHRpb25zQ29tcG9uZW50PFRJZCA9IGFueSwgVEVudGl0eSA9IGFueSwgVFZhbHVlID0gYW55PlxuICBleHRlbmRzIEVsZGVyTXVsdGlTZWxlY3RCYXNlPFRJZCwgVEVudGl0eSwgVFZhbHVlPiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHJlYWRvbmx5IHRlbXBsYXRlcyQ6IE9ic2VydmFibGU8VGVtcGxhdGVXcmFwcGVyPjtcbiAgcHJpdmF0ZSByZWFkb25seSBjb250ZXh0JDogT2JzZXJ2YWJsZTxNdWx0aVNlbGVjdENoaXBPcHRpb25zQ29udGV4dD47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjaGlwVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZVJlZjxhbnk+PihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjaGlwQXZhdGFyVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZVJlZjxhbnk+PihudWxsKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgb3B0aW9uc1Byb3ZpZGVyJDogT2JzZXJ2YWJsZTxDaGlwT3B0aW9uc1Byb3ZpZGVyPFRJZCwgVEVudGl0eT4+O1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0Q2hpcHMkOiBPYnNlcnZhYmxlPENoaXBPcHRpb25Nb2RlbDxURW50aXR5PltdPjtcbiAgQElucHV0KClcbiAgcHVibGljIGRlZmF1bHRDaGlwU3BlYzogU2VsZWN0T3B0aW9uQ2hpcFNwZWMgPSBTZWxlY3RPcHRpb25DaGlwU3BlY1V0aWwuRGVmYXVsdENoaXBTcGVjO1xuXG4gIHB1YmxpYyBfY2hpcFNwZWNGbiQgPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8KGU6IFRFbnRpdHkpID0+IFNlbGVjdE9wdGlvbkNoaXBTcGVjPihlID0+IHRoaXMuZGVmYXVsdENoaXBTcGVjKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc3RhY2tlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX211bHRpcGxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZChNYXRDaGlwTGlzdGJveCkgX2xpc3RCb3g6IE1hdENoaXBMaXN0Ym94O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGhvc3RSZWY6IEVsZW1lbnRSZWYsXG4gICAgem9uZTogTmdab25lLFxuICAgIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgZGlhbG9nU2VydmljZTogRWxkZXJEaWFsb2dTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGVzdHJveVJlZjogRGVzdHJveVJlZixcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIG5nQ29udHJvbDogTmdDb250cm9sXG4gICkge1xuICAgIHN1cGVyKHpvbmUsIGhvc3RSZWYsIFwibXVsdGktc2VsZWN0LWNoaXAtb3B0aW9uc1wiLCBmb2N1c01vbml0b3IsIHRyYW5zbGF0ZVNlcnZpY2UsIGRpYWxvZ1NlcnZpY2UsIG5nQ29udHJvbCk7XG5cbiAgICB0aGlzLmNvbnRleHQkID0gY29tYmluZUxhdGVzdChcbiAgICAgIFtcbiAgICAgICAgdGhpcy5zdGF0ZSQsXG4gICAgICAgIHRoaXMuZGlzcGxheVByb3BlcnR5UmVzb2x2ZXIkLFxuICAgICAgICB0aGlzLnJlYWRvbmx5JCxcbiAgICAgICAgdGhpcy5kaXNhYmxlZCRcbiAgICAgIF1cbiAgICApLnBpcGUoXG4gICAgICBtYXAoKFtzdGF0ZSwgZFBSLCByZWFkb25seSwgZGlzYWJsZWRdKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIDxNdWx0aVNlbGVjdENoaXBPcHRpb25zQ29udGV4dD57XG4gICAgICAgICAgICBzdGF0ZTogc3RhdGUsXG4gICAgICAgICAgICBkaXNwbGF5UHJvcGVydHlSZXNvbHZlcjogZFBSLFxuICAgICAgICAgICAgcmVhZG9ubHk6IHJlYWRvbmx5LFxuICAgICAgICAgICAgZGlzYWJsZWQ6IGRpc2FibGVkXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLm9wdGlvbnNQcm92aWRlciQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuZGF0YUNvbnRleHQkLFxuICAgICAgdGhpcy5kYXRhQ29udGV4dCQucGlwZShzd2l0Y2hNYXAoZGMgPT4gZGMuZGF0YSkpLFxuICAgICAgdGhpcy5jaGlwU3BlY0ZuJCxcbiAgICAgIHRoaXMudGVtcGxhdGVPcHRpb25zJFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtkYywgZGF0YSwgY2hpcFNwZWNGbiwgdGVtcGxhdGVDaGlwc10pID0+XG4gICAgICAgIG5ldyBDaGlwT3B0aW9uc1Byb3ZpZGVyPFRJZCwgVEVudGl0eT4oXG4gICAgICAgICAgZGMuZGF0YVNvdXJjZSxcbiAgICAgICAgICB0aGlzLmJ1aWxkQXZhaWxhYmxlRW50aXRpZXMoZGF0YSwgdGVtcGxhdGVDaGlwcyksXG4gICAgICAgICAgY2hpcFNwZWNGblxuICAgICAgICApKVxuICAgICk7XG5cbiAgICB0aGlzLnNlbGVjdENoaXBzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5vcHRpb25zUHJvdmlkZXIkLFxuICAgICAgdGhpcy5lbnRpdGllcyQsXG4gICAgICB0aGlzLmVudGl0eUlkcyQsXG4gICAgICB0aGlzLnRlbXBsYXRlT3B0aW9ucyQsXG4gICAgICB0aGlzLmNvbnRleHQkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW1xuICAgICAgICAgICAgIG9wdGlvbnNQcm92aWRlcixcbiAgICAgICAgICAgICBlbnRpdGllcyxcbiAgICAgICAgICAgICBlbnRpdHlJZHMsXG4gICAgICAgICAgICAgdGVtcGxhdGVTZWxlY3RDaGlwcyxcbiAgICAgICAgICAgICBjb250ZXh0XSkgPT5cbiAgICAgICAgdGhpcy5idWlsZENoaXBNb2RlbHMoXG4gICAgICAgICAgb3B0aW9uc1Byb3ZpZGVyLFxuICAgICAgICAgIGVudGl0aWVzLFxuICAgICAgICAgIGVudGl0eUlkcyxcbiAgICAgICAgICB0aGlzLmJ1aWxkRW50aXRpZXNMYWJlbE1hcCh0ZW1wbGF0ZVNlbGVjdENoaXBzKSxcbiAgICAgICAgICBjb250ZXh0XG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuXG4gICAgdGhpcy50ZW1wbGF0ZXMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNoaXBUZW1wbGF0ZSQsXG4gICAgICB0aGlzLmNoaXBBdmF0YXJUZW1wbGF0ZSRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbY2hpcCwgYXZhdGFyXSkgPT4ge1xuICAgICAgICByZXR1cm4gPFRlbXBsYXRlV3JhcHBlcj57XG4gICAgICAgICAgY2hpcCxcbiAgICAgICAgICBhdmF0YXJcbiAgICAgICAgfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbXVsdGlwbGUodmFsOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9tdWx0aXBsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWwpO1xuICAgIGlmICghdGhpcy5fbXVsdGlwbGUgJiYgdGhpcy5lbnRpdGllcy5sZW5ndGggPiAxKSB7XG4gICAgICB0aGlzLnNlbGVjdEVudGl0eShcbiAgICAgICAgdGhpcy5lbnRpdGllc1t0aGlzLmVudGl0aWVzLmxlbmd0aCAtIDFdXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvd3MgdG8gY3VzdG9taXplIGVhY2ggY2hpcCBpbmRpdmlkdWFsbHkgKENvbG9yLCBSZW1vdmFibGUsIEF2YXRhcikuXG4gICAqXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoaXBTcGVjRm4oZm46IChlOiBURW50aXR5KSA9PiBTZWxlY3RPcHRpb25DaGlwU3BlYykge1xuICAgIHRoaXMuX2NoaXBTcGVjRm4kLm5leHQoZm4pO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGlwU3BlY0ZuJCgpOiBPYnNlcnZhYmxlPChlOiBURW50aXR5KSA9PiBTZWxlY3RPcHRpb25DaGlwU3BlYz4ge1xuICAgIHJldHVybiB0aGlzLl9jaGlwU3BlY0ZuJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbXVsdGlwbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX211bHRpcGxlO1xuICB9XG5cbiAgQENvbnRlbnRDaGlsZChFbGRlclNlbGVjdENoaXBEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogZmFsc2UgfSlcbiAgcHVibGljIHNldCBjaGlwVGVtcGxhdGVRdWVyeSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuY2hpcFRlbXBsYXRlID0gdGVtcGxhdGU7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoaXBUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuY2hpcFRlbXBsYXRlJC5uZXh0KHRlbXBsYXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hpcFRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmNoaXBUZW1wbGF0ZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTZWxlY3RDaGlwQXZhdGFyRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyBzZXQgY2hpcEF2YXRhclRlbXBsYXRlUXVlcnkodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmNoaXBBdmF0YXJUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjaGlwQXZhdGFyVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmNoaXBBdmF0YXJUZW1wbGF0ZSQubmV4dCh0ZW1wbGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoaXBBdmF0YXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jaGlwQXZhdGFyVGVtcGxhdGUkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHNob3VsZExhYmVsRmxvYXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgc2VsZWN0aW9uQ2hhbmdlZChjaGFuZ2VFdmVudDogTWF0Q2hpcFNlbGVjdGlvbkNoYW5nZSwgZW50aXR5OiBURW50aXR5KTogdm9pZCB7XG4gICAgLyoqL1xuICAgIHRoaXMubG9nLmRlYnVnKFwic2VsZWN0aW9uQ2hhbmdlZFwiLCB7XG4gICAgICBjaGFuZ2VFdmVudDogY2hhbmdlRXZlbnQsXG4gICAgICBlbnRpdHk6IGVudGl0eVxuICAgIH0pO1xuXG4gICAgaWYgKGNoYW5nZUV2ZW50LmlzVXNlcklucHV0KSB7XG4gICAgICBpZiAoY2hhbmdlRXZlbnQuc2VsZWN0ZWQpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RFbnRpdHkoZW50aXR5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlRW50aXR5KGVudGl0eSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlc29sdmVDaGlwVmFsdWUoZTE6IFRFbnRpdHkpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmdldEVudGl0eUlkKGUxKTtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2xpc3RCb3gpIHtcbiAgICAgIHRoaXMuX2xpc3RCb3guZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLmxvZy53YXJuKFwiYmx1cigpIG5vdCB5ZXQgc3VwcG9ydGVkIVwiKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm90ZWN0ZWQgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IHN0YXJ0IERDIGlmIG5vdCB5ZXQgc3RhcnRlZFxuICAgKiBAcGFyYW0gZGF0YVxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgb25EYXRhQ29udGV4dENoYW5nZWQoZGF0YTogSURhdGFDb250ZXh0PFRFbnRpdHk+KTogdm9pZCB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGlmICghZGF0YS5pc1N0YXJ0ZWQpIHtcbiAgICAgICAgZGF0YS5zdGFydCh0aGlzLnNvcnRzLCB0aGlzLmZpbHRlcnMpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgc3VwZXIub25EYXRhQ29udGV4dENoYW5nZWQoZGF0YSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdXBlci5vbkRhdGFDb250ZXh0Q2hhbmdlZChkYXRhKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgc2VsZWN0RW50aXR5KGVudGl0eTogVEVudGl0eSk6IHZvaWQge1xuICAgIGNvbnN0IGlkVG9TZWxlY3QgPSB0aGlzLmdldEVudGl0eUlkKGVudGl0eSk7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLnJlbW92ZUVudGl0aWVzKFxuICAgICAgICB0aGlzLmVudGl0aWVzLmZpbHRlcihlID0+IHRoaXMuZ2V0RW50aXR5SWQoZSkgIT09IGlkVG9TZWxlY3QpXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuaXNFbnRpdHlJZFNlbGVjdGVkKGlkVG9TZWxlY3QpKSB7XG4gICAgICB0aGlzLmFwcGVuZEVudGl0eShlbnRpdHkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNFbnRpdHlJZFNlbGVjdGVkKGVudGl0eUlkOiBUSWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdGllcy5zb21lKGUgPT4gdGhpcy5nZXRFbnRpdHlJZChlKSA9PSBlbnRpdHlJZCk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ2hpcE1vZGVscyhcbiAgICBvcHRpb25zUHJvdmlkZXI6IENoaXBPcHRpb25zUHJvdmlkZXI8VElkLCBURW50aXR5PixcbiAgICBlbnRpdGllczogVEVudGl0eVtdLFxuICAgIGVudGl0eUlkczogVElkW10sXG4gICAgZW50aXRpZXNMYWJlbHM6IE1hcDxhbnksIHN0cmluZz4sXG4gICAgY29udGV4dDogTXVsdGlTZWxlY3RDaGlwT3B0aW9uc0NvbnRleHRcbiAgKTogQ2hpcE9wdGlvbk1vZGVsPFRFbnRpdHk+W10ge1xuICAgIHJldHVybiBvcHRpb25zUHJvdmlkZXIuYnVpbGRDaGlwTW9kZWxzT3JGYWxsYmFjayhcbiAgICAgIGVudGl0aWVzLFxuICAgICAgZW50aXR5SWRzLFxuICAgICAge1xuICAgICAgICBjb250ZXh0OiBjb250ZXh0LFxuICAgICAgICBpc0xvY2tlZDogdGhpcy5pc0xvY2tlZCxcbiAgICAgICAgZW50aXR5TGFiZWxNYXA6IGVudGl0aWVzTGFiZWxzXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRBdmFpbGFibGVFbnRpdGllcyhcbiAgICBkYXRhOiBURW50aXR5W10sXG4gICAgdGVtcGxhdGVDaGlwczogRWxkZXJTZWxlY3RPcHRpb25Db21wb25lbnQ8VEVudGl0eT5bXVxuICApOiBURW50aXR5W10ge1xuICAgIHJldHVybiBbLi4udGhpcy5leHRyYWN0RW50aXRpZXNGcm9tVGVtcGxhdGVDaGlwcyh0ZW1wbGF0ZUNoaXBzKSwgLi4uZGF0YV07XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RFbnRpdGllc0Zyb21UZW1wbGF0ZUNoaXBzKHRlbXBsYXRlQ2hpcHM6IEVsZGVyU2VsZWN0T3B0aW9uQ29tcG9uZW50PFRFbnRpdHk+W10pOiBURW50aXR5W10ge1xuICAgIHJldHVybiB0ZW1wbGF0ZUNoaXBzLm1hcChjaGlwID0+IGNoaXAudmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEVudGl0aWVzTGFiZWxNYXAodGVtcGxhdGVDaGlwczogRWxkZXJTZWxlY3RPcHRpb25Db21wb25lbnQ8VEVudGl0eT5bXSk6IE1hcDxURW50aXR5LCBzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IE1hcChcbiAgICAgIHRlbXBsYXRlQ2hpcHMuZmlsdGVyKGNoaXAgPT4gY2hpcC5sYWJlbCAhPSB1bmRlZmluZWQpXG4gICAgICAgIC5tYXAoY2hpcCA9PiBbY2hpcC52YWx1ZSwgY2hpcC5sYWJlbF0pKTtcbiAgfVxufVxuIiwiQGlmIChzZWxlY3RDaGlwcyQgfCBhc3luYzthcyBzZWxlY3RDaGlwcykge1xuICA8ZGl2IGNsYXNzPVwiZWxkZXItZmxleC1jb250cm9sXCJcbiAgICAgICBbbWF0VG9vbHRpcF09XCIoc3RhdGUkIHwgYXN5bmMpPy5lcnJvclwiXG4gID5cbiAgICA8bWF0LWNoaXAtbGlzdGJveCAjY2hpcHNcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MubWF0LW1kYy1jaGlwLXNldC1zdGFja2VkXT1cInN0YWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgPlxuXG4gICAgICBAaWYgKG1lcmdlZFN0YXRlJCB8IGFzeW5jO2FzIHN0YXRlKSB7XG4gICAgICAgIEBpZiAoaWNvbikge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbGRlci1pbnB1dC1wcmVmaXgtaWNvbi1jb250YWluZXIgZmxleC1ub25lXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gZGlzYWJsZWRcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImVsZGVyLXByZWZpeC1pY29uIGVsZGVyLW1kYy1jb250cm9sLWljb24gZWxkZXItaWNvbi1zbWFsbCBub3NlbGVjdFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmxvYWRpbmddPVwic3RhdGUubG9hZGluZ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGljb24gfX1cbiAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQGlmICh0ZW1wbGF0ZXMkIHwgYXN5bmM7YXMgdGVtcGxhdGVzKSB7XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblxuICAgICAgICBAZm9yIChjaGlwTW9kZWwgb2Ygc2VsZWN0Q2hpcHM7dHJhY2sgY2hpcE1vZGVsLnZhbHVlKSB7XG4gICAgICAgICAgPG1hdC1jaGlwLW9wdGlvbiBjbGFzcz1cIm5vc2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJyZXNvbHZlQ2hpcFZhbHVlKGNoaXBNb2RlbC52YWx1ZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxkZXJDaGlwTGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsZXZlbENvbG9yXT1cImNoaXBNb2RlbC5jb2xvclNwZWM/LmxldmVsQ29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXRlQ29sb3JdPVwiY2hpcE1vZGVsLmNvbG9yU3BlYz8uc3RhdGVDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiY2hpcE1vZGVsLmNvbG9yU3BlYz8udGhlbWVDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0YWJsZV09XCIhY2hpcE1vZGVsLmxvY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiY2hpcE1vZGVsLmxvY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwiY2hpcE1vZGVsLnNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwic2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQsIGNoaXBNb2RlbC52YWx1ZSlcIlxuICAgICAgICAgID5cblxuICAgICAgICAgICAgQGlmICh0ZW1wbGF0ZXMuYXZhdGFyICYmICFjaGlwTW9kZWwuYXZhdGFyU3BlYz8uaGlkZSkge1xuICAgICAgICAgICAgICA8bWF0LWNoaXAtYXZhdGFyXG4gICAgICAgICAgICAgICAgW2NsYXNzLmNoaXAtYXZhdGFyLXhsXT1cImNoaXBNb2RlbC5hdmF0YXJTcGVjPy5sYXJnZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlcy5hdmF0YXI7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGNoaXBNb2RlbH1cIj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9tYXQtY2hpcC1hdmF0YXI+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZXMuY2hpcCB8fCBzaW1wbGVDaGlwVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGNoaXBNb2RlbH1cIj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICBAaWYgKGNoaXBNb2RlbC50cmFpbGluZ1NwZWM/Lmljb24pIHtcbiAgICAgICAgICAgICAgPG1hdC1pY29uIG1hdENoaXBUcmFpbGluZ0ljb24gY2xhc3M9XCJlbGRlci10cmFpbGluZy1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb250U2V0XT1cImNoaXBNb2RlbC50cmFpbGluZ1NwZWM/Lmljb25Gb250U2V0XCJcbiAgICAgICAgICAgICAgPnt7IGNoaXBNb2RlbC50cmFpbGluZ1NwZWM/Lmljb24gfX1cbiAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgIDwvbWF0LWNoaXAtb3B0aW9uPlxuICAgICAgICB9XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxheW91dC1yb3cgcGxhY2Utc3RhcnQtY2VudGVyIGVsZGVyLWNoaXAtaW5wdXRcIj5cblxuICAgICAgICAgIEBpZiAoc2VsZWN0aW9uUG9wdXApIHtcbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImVsZGVyLWNvbnRyb2wtaWNvbi1idXR0b24gZWxkZXItYnJvd3NlLWljb25cIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2NrZWRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblNlbGVjdGlvblBvcHVwKCRldmVudClcIiBhcmlhLWxhYmVsPVwiU2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgZWxkZXJTdG9wRXZlbnRQcm9wYWdhdGlvblxuICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD1cIi0xXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZWxkZXItbWRjLWNvbnRyb2wtaWNvblwiPnNlYXJjaDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuXG4gICAgPC9tYXQtY2hpcC1saXN0Ym94PlxuICA8L2Rpdj5cbn1cblxuPG5nLXRlbXBsYXRlICNzaW1wbGVDaGlwVGVtcGxhdGUgbGV0LWNoaXBNb2RlbD5cbiAgPHNwYW4gY2xhc3M9XCJlbGRlci1jaGlwLXRleHRcIj57eyBjaGlwTW9kZWwuZGlzcGxheVRleHQgfCBlbGRlclRydW5jYXRlOjIwIH19PC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuIl19
|
|
@@ -7,24 +7,22 @@ import { ElderSelectChipAvatarDirective, ElderSelectChipDirective, ElderSelectCu
|
|
|
7
7
|
import { MatFormFieldControl } from '@angular/material/form-field';
|
|
8
8
|
import { ELDER_SELECT_BASE } from '../../elder-select-base';
|
|
9
9
|
import { ElderSelectComponent } from '../../single/elder-select/elder-select.component';
|
|
10
|
-
import { moveItemInArray } from '@angular/cdk/drag-drop';
|
|
10
|
+
import { moveItemInArray, CdkDropList, CdkDrag } from '@angular/cdk/drag-drop';
|
|
11
11
|
import { SelectChipSpecUtil } from './select-chip-spec';
|
|
12
|
+
import { ElderTruncatePipe } from '../../../../pipes/elder-truncate.pipe';
|
|
13
|
+
import { ElderClearSelectDirective } from '../../single/elder-clear-select.directive';
|
|
14
|
+
import { ElderStopEventPropagationDirective } from '../../../forms/directives/elder-stop-event-propagation.directive';
|
|
15
|
+
import { MatIconButton } from '@angular/material/button';
|
|
16
|
+
import { ElderChipLabelDirective } from '../../../chips/elder-chip-label.directive';
|
|
17
|
+
import { MatIcon } from '@angular/material/icon';
|
|
18
|
+
import { MatChipSet, MatChipRow, MatChipAvatar, MatChipTrailingIcon, MatChipRemove } from '@angular/material/chips';
|
|
19
|
+
import { MatTooltip } from '@angular/material/tooltip';
|
|
20
|
+
import { NgIf, NgFor, NgTemplateOutlet, AsyncPipe } from '@angular/common';
|
|
12
21
|
import * as i0 from "@angular/core";
|
|
13
22
|
import * as i1 from "@angular/cdk/a11y";
|
|
14
23
|
import * as i2 from "@ngx-translate/core";
|
|
15
24
|
import * as i3 from "../../../dialogs/elder-dialog.service";
|
|
16
25
|
import * as i4 from "@angular/forms";
|
|
17
|
-
import * as i5 from "@angular/common";
|
|
18
|
-
import * as i6 from "@angular/material/icon";
|
|
19
|
-
import * as i7 from "@angular/material/button";
|
|
20
|
-
import * as i8 from "@angular/material/chips";
|
|
21
|
-
import * as i9 from "@angular/material/tooltip";
|
|
22
|
-
import * as i10 from "@angular/cdk/drag-drop";
|
|
23
|
-
import * as i11 from "../../../forms/directives/elder-stop-event-propagation.directive";
|
|
24
|
-
import * as i12 from "../../../chips/elder-chip-label.directive";
|
|
25
|
-
import * as i13 from "../../single/elder-select/elder-select.component";
|
|
26
|
-
import * as i14 from "../../single/elder-clear-select.directive";
|
|
27
|
-
import * as i15 from "../../../../pipes/elder-truncate.pipe";
|
|
28
26
|
class ChipModel {
|
|
29
27
|
constructor(value, displayText, colorSpec, removable, avatarSpec, trailingSpec) {
|
|
30
28
|
this.value = value;
|
|
@@ -187,16 +185,16 @@ export class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
|
|
|
187
185
|
}
|
|
188
186
|
return new ChipModel(e, dPR(e), chipSpec?.colorSpec, removable, chipSpec.avatarSpec, chipSpec.trailingSpec);
|
|
189
187
|
}
|
|
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
|
|
188
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", 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 }); }
|
|
189
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: ElderMultiSelectChipsComponent, isStandalone: true, selector: "elder-multi-select-chips", inputs: { defaultChipSpec: "defaultChipSpec", chipSpecFn: "chipSpecFn", allowRemove: "allowRemove", allowSorting: "allowSorting", stacked: "stacked", chipTemplate: "chipTemplate", chipAvatarTemplate: "chipAvatarTemplate", customInputTemplate: "customInputTemplate" }, providers: [
|
|
192
190
|
{ provide: MatFormFieldControl, useExisting: ElderMultiSelectChipsComponent },
|
|
193
191
|
{
|
|
194
192
|
provide: ELDER_SELECT_BASE,
|
|
195
193
|
useExisting: forwardRef(() => ElderMultiSelectChipsComponent)
|
|
196
194
|
}
|
|
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:
|
|
195
|
+
], 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: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "directive", type: 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: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "directive", type: ElderChipLabelDirective, selector: "[elderChipLabel]", inputs: ["appearance", "color", "stateColor", "levelColor"] }, { kind: "directive", type: 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: MatChipAvatar, selector: "mat-chip-avatar, [matChipAvatar]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: MatChipTrailingIcon, selector: "mat-chip-trailing-icon, [matChipTrailingIcon]" }, { kind: "directive", type: MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: ElderStopEventPropagationDirective, selector: "[elderStopEventPropagation]" }, { kind: "component", type: ElderSelectComponent, selector: "elder-select", inputs: ["nullDisplay", "autocomplete", "allowNull", "entity", "entityId"], outputs: ["entityIdChange", "entityIdUpdated", "entityChange", "entityUpdated"] }, { kind: "directive", type: ElderClearSelectDirective, selector: "[elderClearSelect]" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: ElderTruncatePipe, name: "elderTruncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
198
196
|
}
|
|
199
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2
|
|
197
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ElderMultiSelectChipsComponent, decorators: [{
|
|
200
198
|
type: Component,
|
|
201
199
|
args: [{ selector: 'elder-multi-select-chips', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
202
200
|
{ provide: MatFormFieldControl, useExisting: ElderMultiSelectChipsComponent },
|
|
@@ -204,7 +202,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
204
202
|
provide: ELDER_SELECT_BASE,
|
|
205
203
|
useExisting: forwardRef(() => ElderMultiSelectChipsComponent)
|
|
206
204
|
}
|
|
207
|
-
], 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"] }]
|
|
205
|
+
], standalone: true, imports: [NgIf, MatTooltip, MatChipSet, CdkDropList, MatIcon, NgFor, MatChipRow, ElderChipLabelDirective, CdkDrag, MatChipAvatar, NgTemplateOutlet, MatChipTrailingIcon, MatChipRemove, MatIconButton, ElderStopEventPropagationDirective, ElderSelectComponent, ElderClearSelectDirective, AsyncPipe, ElderTruncatePipe], 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"] }]
|
|
208
206
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.FocusMonitor }, { type: i2.TranslateService }, { type: i3.ElderDialogService }, { type: i4.NgControl, decorators: [{
|
|
209
207
|
type: Optional
|
|
210
208
|
}, {
|
|
@@ -241,4 +239,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
241
239
|
}], customInputTemplate: [{
|
|
242
240
|
type: Input
|
|
243
241
|
}] } });
|
|
244
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L211bHRpL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvbXVsdGkvZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBRVosVUFBVSxFQUVWLEtBQUssRUFFTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFdBQVcsRUFBRSxTQUFTLEVBQ3ZCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFrQixNQUFNLE1BQU0sQ0FBQztBQUNyRSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyw4QkFBOEIsRUFBRSx3QkFBd0IsRUFBRSwrQkFBK0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRTVJLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxpQkFBaUIsRUFBNEMsTUFBTSx5QkFBeUIsQ0FBQztBQUlyRyxPQUFP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M0IsWUFBWTt1QkFBQyx3QkFBd0IsRUFBRSxFQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFNL0QsWUFBWTtzQkFEdEIsS0FBSztnQkFVSyx1QkFBdUI7c0JBRGpDLFlBQVk7dUJBQUMsOEJBQThCLEVBQUUsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBTXJFLGtCQUFrQjtzQkFENUIsS0FBSztnQkFVSyx3QkFBd0I7c0JBRGxDLFlBQVk7dUJBQUMsK0JBQStCLEVBQUUsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBTXRFLG1CQUFtQjtzQkFEN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9wdGlvbmFsLFxuICBTZWxmLFxuICBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtFbGRlck11bHRpU2VsZWN0QmFzZX0gZnJvbSAnLi4vZWxkZXItbXVsdGktc2VsZWN0LWJhc2UnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0VsZGVyU2VsZWN0Q2hpcEF2YXRhckRpcmVjdGl2ZSwgRWxkZXJTZWxlY3RDaGlwRGlyZWN0aXZlLCBFbGRlclNlbGVjdEN1c3RvbUlucHV0RGlyZWN0aXZlfSBmcm9tICcuLi8uLi9lbGRlci1zZWxlY3QtY2hpcC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TWF0Rm9ybUZpZWxkQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQge0VMREVSX1NFTEVDVF9CQVNFLCBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlLCBUZXh0UmVzb2x2ZXJGbn0gZnJvbSAnLi4vLi4vZWxkZXItc2VsZWN0LWJhc2UnO1xuaW1wb3J0IHtGb2N1c01vbml0b3J9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7RWxkZXJEaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9kaWFsb2dzL2VsZGVyLWRpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0VsZGVyU2VsZWN0Q29tcG9uZW50fSBmcm9tICcuLi8uLi9zaW5nbGUvZWxkZXItc2VsZWN0L2VsZGVyLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHtDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5fSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7Q2hpcEF2YXRhclNwZWMsIENoaXBDb2xvclNwZWMsIFNlbGVjdENoaXBTcGVjLCBTZWxlY3RDaGlwU3BlY1V0aWwsIFRyYWlsaW5nU3BlY30gZnJvbSAnLi9zZWxlY3QtY2hpcC1zcGVjJztcblxuY2xhc3MgQ2hpcE1vZGVsPFQ+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBULFxuICAgIHB1YmxpYyByZWFkb25seSBkaXNwbGF5VGV4dDogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSBjb2xvclNwZWM6IENoaXBDb2xvclNwZWMsXG4gICAgcHVibGljIHJlYWRvbmx5IHJlbW92YWJsZTogYm9vbGVhbixcbiAgICBwdWJsaWMgcmVhZG9ubHkgYXZhdGFyU3BlYzogQ2hpcEF2YXRhclNwZWMsXG4gICAgcHVibGljIHJlYWRvbmx5IHRyYWlsaW5nU3BlYzogVHJhaWxpbmdTcGVjLFxuICApIHtcbiAgfVxufVxuXG5pbnRlcmZhY2UgVGVtcGxhdGVXcmFwcGVyIHtcbiAgY2hpcDogVGVtcGxhdGVSZWY8YW55PjtcbiAgYXZhdGFyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIGlucHV0OiBUZW1wbGF0ZVJlZjxhbnk+O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlbGRlci1tdWx0aS1zZWxlY3QtY2hpcHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzLmNvbXBvbmVudC5zY3NzJ10sXG4gIC8vIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7cHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCwgdXNlRXhpc3Rpbmc6IEVsZGVyTXVsdGlTZWxlY3RDaGlwc0NvbXBvbmVudH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogRUxERVJfU0VMRUNUX0JBU0UsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFbGRlck11bHRpU2VsZWN0Q2hpcHNDb21wb25lbnQpXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyTXVsdGlTZWxlY3RDaGlwc0NvbXBvbmVudDxUSWQgPSBhbnksIFRFbnRpdHkgPSBhbnksIFRWYWx1ZSA9IGFueT5cbiAgZXh0ZW5kcyBFbGRlck11bHRpU2VsZWN0QmFzZTxUSWQsIFRFbnRpdHksIFRWYWx1ZT4ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RDaGlwcyQ6IE9ic2VydmFibGU8Q2hpcE1vZGVsPFRFbnRpdHk+W10+O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkZWZhdWx0Q2hpcFNwZWM6IFNlbGVjdENoaXBTcGVjID0gU2VsZWN0Q2hpcFNwZWNVdGlsLkRlZmF1bHRDaGlwU3BlYztcblxuICAvKipcbiAgICogQWxsb3dzIHRvIGN1c3RvbWl6ZSBlYWNoIGNoaXAgaW5kaXZpZHVhbGx5IChDb2xvciwgUmVtb3ZhYmxlLCBBdmF0YXIpLlxuICAgKlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGNoaXBTcGVjRm46IChlOiBURW50aXR5KSA9PiBTZWxlY3RDaGlwU3BlYyA9IGUgPT4gdGhpcy5kZWZhdWx0Q2hpcFNwZWM7XG5cbiAgcHVibGljIHNlbGVjdGFibGUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhbGxvd1JlbW92ZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGFsbG93U29ydGluZyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGFja2VkID0gZmFsc2U7XG5cbiAgQENvbnRlbnRDaGlsZChNYXRGb3JtRmllbGRDb250cm9sKSBfY3VzdG9tQ2hpcElucHV0OiBNYXRGb3JtRmllbGRDb250cm9sPGFueT47XG4gIEBWaWV3Q2hpbGQoRWxkZXJTZWxlY3RDb21wb25lbnQpIF9jaGlwSW5wdXQ6IE1hdEZvcm1GaWVsZENvbnRyb2w8YW55PjtcblxuICByZWFkb25seSB0ZW1wbGF0ZXMkOiBPYnNlcnZhYmxlPFRlbXBsYXRlV3JhcHBlcj47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjaGlwVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZVJlZjxhbnk+PihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjaGlwQXZhdGFyVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZVJlZjxhbnk+PihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjdXN0b21JbnB1dFRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWY8YW55Pj4obnVsbCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGhvc3RSZWY6IEVsZW1lbnRSZWYsXG4gICAgem9uZTogTmdab25lLFxuICAgIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgZGlhbG9nU2VydmljZTogRWxkZXJEaWFsb2dTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2xcbiAgKSB7XG4gICAgc3VwZXIoem9uZSwgaG9zdFJlZiwgJ211bHRpLXNlbGVjdC1jaGlwcycsIGZvY3VzTW9uaXRvciwgdHJhbnNsYXRlU2VydmljZSwgZGlhbG9nU2VydmljZSwgbmdDb250cm9sKTtcblxuICAgIHRoaXMucGxhY2Vob2xkZXIgPSAnLi4uJztcblxuICAgIHRoaXMuc2VsZWN0Q2hpcHMkID0gY29tYmluZUxhdGVzdChcbiAgICAgIFtcbiAgICAgICAgdGhpcy5lbnRpdGllcyQsXG4gICAgICAgIHRoaXMuZW50aXR5SWRzJCxcbiAgICAgICAgdGhpcy5zdGF0ZSQsXG4gICAgICAgIHRoaXMuZGlzcGxheVByb3BlcnR5UmVzb2x2ZXIkLFxuICAgICAgICB0aGlzLnJlYWRvbmx5JCxcbiAgICAgICAgdGhpcy5kaXNhYmxlZCRcbiAgICAgIF1cbiAgICApLnBpcGUoXG4gICAgICBtYXAoKFtlbnRpdGllcywgZW50aXR5SWRzLCBzdGF0ZSwgZFBSXSkgPT5cbiAgICAgICAgdGhpcy5idWlsZENoaXBNb2RlbHNPckZhbGxiYWNrKGVudGl0aWVzLCBlbnRpdHlJZHMsIHN0YXRlLCBkUFIpXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMudGVtcGxhdGVzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jaGlwVGVtcGxhdGUkLFxuICAgICAgdGhpcy5jaGlwQXZhdGFyVGVtcGxhdGUkLFxuICAgICAgdGhpcy5jdXN0b21JbnB1dFRlbXBsYXRlJFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtjaGlwLCBhdmF0YXIsIGlucHV0XSkgPT4ge1xuICAgICAgICByZXR1cm4gPFRlbXBsYXRlV3JhcHBlcj57XG4gICAgICAgICAgY2hpcCxcbiAgICAgICAgICBhdmF0YXIsXG4gICAgICAgICAgaW5wdXRcbiAgICAgICAgfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTZWxlY3RDaGlwRGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogZmFsc2V9KVxuICBwdWJsaWMgc2V0IGNoaXBUZW1wbGF0ZVF1ZXJ5KHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5jaGlwVGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hpcFRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5jaGlwVGVtcGxhdGUkLm5leHQodGVtcGxhdGUpO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGlwVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuY2hpcFRlbXBsYXRlJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgQENvbnRlbnRDaGlsZChFbGRlclNlbGVjdENoaXBBdmF0YXJEaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiBmYWxzZX0pXG4gIHB1YmxpYyBzZXQgY2hpcEF2YXRhclRlbXBsYXRlUXVlcnkodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmNoaXBBdmF0YXJUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjaGlwQXZhdGFyVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmNoaXBBdmF0YXJUZW1wbGF0ZSQubmV4dCh0ZW1wbGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoaXBBdmF0YXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jaGlwQXZhdGFyVGVtcGxhdGUkLmdldFZhbHVlKCk7XG4gIH1cblxuICBAQ29udGVudENoaWxkKEVsZGVyU2VsZWN0Q3VzdG9tSW5wdXREaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiBmYWxzZX0pXG4gIHB1YmxpYyBzZXQgY3VzdG9tSW5wdXRUZW1wbGF0ZVF1ZXJ5KHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5jdXN0b21JbnB1dFRlbXBsYXRlID0gdGVtcGxhdGU7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGN1c3RvbUlucHV0VGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmN1c3RvbUlucHV0VGVtcGxhdGUkLm5leHQodGVtcGxhdGUpO1xuICB9XG5cbiAgcHVibGljIGdldCBjdXN0b21JbnB1dFRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbUlucHV0VGVtcGxhdGUkLmdldFZhbHVlKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8YW55Pik6IHZvaWQge1xuICAgIGNvbnN0IHJlb3JkZXJlZCA9IFsuLi50aGlzLmVudGl0aWVzXTtcbiAgICBtb3ZlSXRlbUluQXJyYXkocmVvcmRlcmVkLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIHRoaXMuZW50aXRpZXMgPSByZW9yZGVyZWQ7XG4gIH1cblxuICBwdWJsaWMgcmVzb2x2ZUNoaXBWYWx1ZShlMTogVEVudGl0eSk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RW50aXR5SWQoZTEpO1xuICB9XG5cbiAgcHVibGljIG9uQ2hpcEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHRvUmVtb3ZlOiBURW50aXR5KTogdm9pZCB7XG4gICAgdGhpcy5sb2cud2Fybignb25DaGlwS2V5RG93bicsIGV2ZW50KTtcbiAgICBpZiAoZXZlbnQua2V5ID09ICdCYWNrc3BhY2UnIHx8IGV2ZW50LmtleSA9PSAnRGVsZXRlJykge1xuICAgICAgdGhpcy5yZXF1ZXN0UmVtb3ZlRW50aXR5KHRvUmVtb3ZlLCBldmVudC5zaGlmdEtleSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQ2xpY2tSZW1vdmVDaGlwKFxuICAgIGV2ZW50OiBNb3VzZUV2ZW50LFxuICAgIHRvUmVtb3ZlOiBURW50aXR5XG4gICk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5yZXF1ZXN0UmVtb3ZlRW50aXR5KHRvUmVtb3ZlLCBldmVudC5zaGlmdEtleSk7XG4gIH1cblxuICBwdWJsaWMgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucykge1xuXG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLl9jdXN0b21DaGlwSW5wdXQgPz8gdGhpcy5fY2hpcElucHV0O1xuXG4gICAgaWYgKGlucHV0KSB7XG4gICAgICBpbnB1dC5vbkNvbnRhaW5lckNsaWNrKG5ldyBNb3VzZUV2ZW50KCcnKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nLndhcm4oJ0NhbnQgZm9jdXMgc2luY2Ugbm8gY2hpcC1pbnB1dC1jb250cm9sIGZvdW5kIScpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBibHVyKCkge1xuICAgIHRoaXMubG9nLndhcm4oJ2JsdXIoKSBub3QgeWV0IHN1cHBvcnRlZCEnKTtcbiAgICAvLyBUT0RPIHRoaXMuaW5wdXRDb250cm9sPy5ibHVyKCk7XG4gICAgLy8gdGhpcy5jdXN0b21JbnB1dFRlbXBsYXRlLmJsdXIoKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBidWlsZENoaXBNb2RlbHNPckZhbGxiYWNrKFxuICAgIGVudGl0aWVzOiBURW50aXR5W10sXG4gICAgZW50aXR5SWRzOiBUSWRbXSxcbiAgICBzdGF0ZTogRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZSxcbiAgICBkUFI6IFRleHRSZXNvbHZlckZuXG4gICk6IENoaXBNb2RlbDxURW50aXR5PltdIHtcblxuICAgIGlmIChzdGF0ZS5lcnJvcikge1xuICAgICAgcmV0dXJuIHRoaXMuYnVpbGRDaGlwRmFsbGJhY2tNb2RlbHMoZW50aXR5SWRzKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYnVpbGRDaGlwTW9kZWxzKGVudGl0aWVzLCBkUFIpO1xuICB9XG5cblxuICBwcml2YXRlIGJ1aWxkQ2hpcEZhbGxiYWNrTW9kZWxzKGVudGl0eUlkczogVElkW10pOiBDaGlwTW9kZWw8VEVudGl0eT5bXSB7XG4gICAgcmV0dXJuIGVudGl0eUlkcy5tYXAoXG4gICAgICBpZCA9PiB0aGlzLmJ1aWxkQ2hpcEJ5U3BlYyhcbiAgICAgICAgPGFueT57aWQ6IGlkfSxcbiAgICAgICAgKCkgPT4gU3RyaW5nKGlkKSxcbiAgICAgICAge1xuICAgICAgICAgIGNvbG9yU3BlYzoge1xuICAgICAgICAgICAgdGhlbWVDb2xvcjogJ3dhcm4nXG4gICAgICAgICAgfSxcbiAgICAgICAgICBhdmF0YXJTcGVjOiB7XG4gICAgICAgICAgICBoaWRlOiBmYWxzZSxcbiAgICAgICAgICAgIGxhcmdlOiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZENoaXBNb2RlbHMoXG4gICAgZW50aXRpZXM6IFRFbnRpdHlbXSxcbiAgICBkUFI6IFRleHRSZXNvbHZlckZuXG4gICk6IENoaXBNb2RlbDxURW50aXR5PltdIHtcbiAgICBpZiAoZW50aXRpZXMpIHtcbiAgICAgIHJldHVybiBlbnRpdGllcy5tYXAoXG4gICAgICAgIGUgPT4gdGhpcy5idWlsZENoaXBCeVNwZWMoXG4gICAgICAgICAgZSxcbiAgICAgICAgICBkUFIsXG4gICAgICAgICAgdGhpcy5jaGlwU3BlY0ZuKGUpID8/IHRoaXMuZGVmYXVsdENoaXBTcGVjXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiA8Q2hpcE1vZGVsPFRFbnRpdHk+W10+W107XG4gICAgfVxuICB9XG5cblxuICBwcml2YXRlIGJ1aWxkQ2hpcEJ5U3BlYyhcbiAgICBlOiBURW50aXR5LFxuICAgIGRQUjogVGV4dFJlc29sdmVyRm4sXG4gICAgY2hpcFNwZWM6IFNlbGVjdENoaXBTcGVjXG4gICk6IENoaXBNb2RlbDxURW50aXR5PiB7XG5cbiAgICBsZXQgcmVtb3ZhYmxlID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuYWxsb3dSZW1vdmUgJiYgIXRoaXMuaXNMb2NrZWQpIHtcbiAgICAgIGlmIChjaGlwU3BlYy5yZW1vdmFibGUgIT09IGZhbHNlKSB7XG4gICAgICAgIHJlbW92YWJsZSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXcgQ2hpcE1vZGVsPFRFbnRpdHk+KFxuICAgICAgZSxcbiAgICAgIGRQUihlKSxcbiAgICAgIGNoaXBTcGVjPy5jb2xvclNwZWMsXG4gICAgICByZW1vdmFibGUsXG4gICAgICBjaGlwU3BlYy5hdmF0YXJTcGVjLFxuICAgICAgY2hpcFNwZWMudHJhaWxpbmdTcGVjXG4gICAgKTtcbiAgfVxuXG59XG4iLCI8ZGl2ICpuZ0lmPVwiKHNlbGVjdENoaXBzJCB8IGFzeW5jKSBhcyBjaGlwVmFsdWVzXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImVsZGVyLWZsZXgtY29udHJvbFwiXG4gICAgIFttYXRUb29sdGlwXT1cIihzdGF0ZSQgfCBhc3luYyk/LmVycm9yXCJcbj5cbiAgPG1hdC1jaGlwLXNldCAjY2hpcHNcbiAgICAgICAgICAgICAgICBbY2xhc3MubWF0LW1kYy1jaGlwLXNldC1zdGFja2VkXT1cInN0YWNrZWRcIlxuICAgICAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0T3JpZW50YXRpb25dPVwic3RhY2tlZCA/ICd2ZXJ0aWNhbCcgOiAnaG9yaXpvbnRhbCdcIlxuICAgICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3REaXNhYmxlZF09XCIhYWxsb3dTb3J0aW5nXCJcbiAgPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihtZXJnZWRTdGF0ZSQgfCBhc3luYykgYXMgc3RhdGVcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJpY29uXCJcbiAgICAgICAgICAgY2xhc3M9XCJlbGRlci1pbnB1dC1wcmVmaXgtaWNvbi1jb250YWluZXIgZmxleC1ub25lXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaWNvblwiIGRpc2FibGVkXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImVsZGVyLXByZWZpeC1pY29uIGVsZGVyLW1kYy1jb250cm9sLWljb24gZWxkZXItaWNvbi1zbWFsbCBub3NlbGVjdFwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MubG9hZGluZ109XCJzdGF0ZS5sb2FkaW5nXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7aWNvbn19XG4gICAgICAgIDwvbWF0LWljb24+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZXMkIHwgYXN5bmMgYXMgdGVtcGxhdGVzXCI+XG4gICAgICA8bWF0LWNoaXAtcm93IGVsZGVyQ2hpcExhYmVsICpuZ0Zvcj1cImxldCBjaGlwTW9kZWwgb2YgY2hpcFZhbHVlc1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJub3NlbGVjdCBjbGlja2FibGUtY2hpcFwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cInJlc29sdmVDaGlwVmFsdWUoY2hpcE1vZGVsLnZhbHVlKVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cImNoaXBNb2RlbC5jb2xvclNwZWM/LnRoZW1lQ29sb3JcIlxuICAgICAgICAgICAgICAgIFtsZXZlbENvbG9yXT1cImNoaXBNb2RlbC5jb2xvclNwZWM/LmxldmVsQ29sb3JcIlxuICAgICAgICAgICAgICAgIFtzdGF0ZUNvbG9yXT1cImNoaXBNb2RlbC5jb2xvclNwZWM/LnN0YXRlQ29sb3JcIlxuICAgICAgICAgICAgICAgIFtyZW1vdmFibGVdPVwiY2hpcE1vZGVsLnJlbW92YWJsZVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25DaGlwS2V5RG93bigkZXZlbnQsIGNoaXBNb2RlbC52YWx1ZSlcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkN1cnJlbnRDbGlja2VkKGNoaXBNb2RlbC52YWx1ZSlcIlxuICAgICAgICAgICAgICAgIGNka0RyYWcgW2Nka0RyYWdEYXRhXT1cImNoaXBNb2RlbC52YWx1ZVwiIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWFsbG93U29ydGluZ1wiXG4gICAgICA+XG4gICAgICAgIDxtYXQtY2hpcC1hdmF0YXJcbiAgICAgICAgICAqbmdJZj1cInRlbXBsYXRlcy5hdmF0YXIgJiYgIWNoaXBNb2RlbC5hdmF0YXJTcGVjPy5oaWRlXCJcbiAgICAgICAgICBbY2xhc3MuY2hpcC1hdmF0YXIteGxdPVwiY2hpcE1vZGVsLmF2YXRhclNwZWM/LmxhcmdlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVzLmF2YXRhcjsgY29udGV4dDogeyRpbXBsaWNpdDogY2hpcE1vZGVsfVwiPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L21hdC1jaGlwLWF2YXRhcj5cblxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZXMuY2hpcCB8fCBzaW1wbGVDaGlwVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGNoaXBNb2RlbH1cIj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG1hdC1pY29uIG1hdENoaXBUcmFpbGluZ0ljb24gY2xhc3M9XCJlbGRlci10cmFpbGluZy1pY29uXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY2hpcE1vZGVsLnRyYWlsaW5nU3BlYz8uaWNvblwiXG4gICAgICAgICAgICAgICAgICBbZm9udFNldF09XCJjaGlwTW9kZWwudHJhaWxpbmdTcGVjPy5pY29uRm9udFNldFwiXG4gICAgICAgID57e2NoaXBNb2RlbC50cmFpbGluZ1NwZWM/Lmljb259fTwvbWF0LWljb24+XG5cbiAgICAgICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmVcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY2hpcE1vZGVsLnJlbW92YWJsZVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGlja1JlbW92ZUNoaXAoJGV2ZW50LCBjaGlwTW9kZWwudmFsdWUpXCI+XG4gICAgICAgICAgY2FuY2VsXG4gICAgICAgIDwvbWF0LWljb24+XG4gICAgICA8L21hdC1jaGlwLXJvdz5cblxuICAgICAgPGRpdiBjbGFzcz1cImxheW91dC1yb3cgcGxhY2Utc3RhcnQtY2VudGVyIGVsZGVyLWNoaXAtaW5wdXRcIj5cblxuICAgICAgICA8IS0tIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcHNcIiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVzLmlucHV0IHx8IHNlbGVjdElucHV0O1wiPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJlbGRlci1jb250cm9sLWljb24tYnV0dG9uIGVsZGVyLWJyb3dzZS1pY29uXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGlvblBvcHVwXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2NrZWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuU2VsZWN0aW9uUG9wdXAoJGV2ZW50KVwiIGFyaWEtbGFiZWw9XCJTZWFyY2hcIlxuICAgICAgICAgICAgICAgIGVsZGVyU3RvcEV2ZW50UHJvcGFnYXRpb25cbiAgICAgICAgICAgICAgICB0YWJJbmRleD1cIi0xXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImVsZGVyLW1kYy1jb250cm9sLWljb25cIj5zZWFyY2g8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L21hdC1jaGlwLXNldD5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3NlbGVjdElucHV0PlxuICA8IS0tIG1hdC1tZGMtY2hpcC1pbnB1dCAtLT5cbiAgPGVsZGVyLXNlbGVjdCBhdXRvY29tcGxldGUgZWxkZXJDbGVhclNlbGVjdFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZWxkZXItY2hpcC1pbnB1dC1zZWxlY3QgZmxleFwiXG4gICAgICAgICAgICAgICAgW2RhdGFdPVwiZGF0YUNvbnRleHQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhIWRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiISFyZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIiEhcmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgKGVudGl0eVVwZGF0ZWQpPVwiYXBwZW5kRW50aXR5KCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtkaXNwbGF5UHJvcGVydHlSZXNvbHZlcl09XCJkaXNwbGF5UHJvcGVydHlSZXNvbHZlciQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgW3ZhbHVlVGVtcGxhdGVdPVwidmFsdWVUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgW3F1ZXJ5RmlsdGVyXT1cInF1ZXJ5RmlsdGVyXCIgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiIFtzb3J0c109XCJzb3J0c1wiXG4gICAgICAgICAgICAgICAgW2lzT3B0aW9uRGlzYWJsZWRGbl09XCJpc09wdGlvbkRpc2FibGVkSW50ZXJuYWxGblwiXG4gICAgICAgICAgICAgICAgW2lzT3B0aW9uSGlkZGVuRm5dPVwiaXNPcHRpb25IaWRkZW5JbnRlcm5hbEZuXCJcbiAgPjwvZWxkZXItc2VsZWN0PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzaW1wbGVDaGlwVGVtcGxhdGUgbGV0LWNoaXBNb2RlbD5cbiAgPHNwYW4gY2xhc3M9XCJlbGRlci1jaGlwLXRleHRcIj57e2NoaXBNb2RlbC5kaXNwbGF5VGV4dCB8IGVsZGVyVHJ1bmNhdGU6MjB9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbiJdfQ==
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L211bHRpL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvbXVsdGkvZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBRVosVUFBVSxFQUVWLEtBQUssRUFFTCxRQUFRLEVBQ1IsSUFBSSxFQUNKLFdBQVcsRUFBRSxTQUFTLEVBQ3ZCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFrQixNQUFNLE1BQU0sQ0FBQztBQUNyRSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyw4QkFBOEIsRUFBRSx3QkFBd0IsRUFBRSwrQkFBK0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRTVJLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxpQkFBaUIsRUFBNEMsTUFBTSx5QkFBeUIsQ0FBQztBQUlyRyxPQUFP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QyxvQkFBb0I7Z0JBaUVwQixpQkFBaUI7c0JBRDNCLFlBQVk7dUJBQUMsd0JBQXdCLEVBQUUsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBTS9ELFlBQVk7c0JBRHRCLEtBQUs7Z0JBVUssdUJBQXVCO3NCQURqQyxZQUFZO3VCQUFDLDhCQUE4QixFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQU1yRSxrQkFBa0I7c0JBRDVCLEtBQUs7Z0JBVUssd0JBQXdCO3NCQURsQyxZQUFZO3VCQUFDLCtCQUErQixFQUFFLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQU10RSxtQkFBbUI7c0JBRDdCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPcHRpb25hbCxcbiAgU2VsZixcbiAgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RWxkZXJNdWx0aVNlbGVjdEJhc2V9IGZyb20gJy4uL2VsZGVyLW11bHRpLXNlbGVjdC1iYXNlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCB0YXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtFbGRlclNlbGVjdENoaXBBdmF0YXJEaXJlY3RpdmUsIEVsZGVyU2VsZWN0Q2hpcERpcmVjdGl2ZSwgRWxkZXJTZWxlY3RDdXN0b21JbnB1dERpcmVjdGl2ZX0gZnJvbSAnLi4vLi4vZWxkZXItc2VsZWN0LWNoaXAuZGlyZWN0aXZlJztcbmltcG9ydCB7TmdDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge01hdEZvcm1GaWVsZENvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHtFTERFUl9TRUxFQ1RfQkFTRSwgRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZSwgVGV4dFJlc29sdmVyRm59IGZyb20gJy4uLy4uL2VsZGVyLXNlbGVjdC1iYXNlJztcbmltcG9ydCB7Rm9jdXNNb25pdG9yfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge0VsZGVyRGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vZGlhbG9ncy9lbGRlci1kaWFsb2cuc2VydmljZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtFbGRlclNlbGVjdENvbXBvbmVudH0gZnJvbSAnLi4vLi4vc2luZ2xlL2VsZGVyLXNlbGVjdC9lbGRlci1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXksIENka0Ryb3BMaXN0LCBDZGtEcmFnIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQge0NoaXBBdmF0YXJTcGVjLCBDaGlwQ29sb3JTcGVjLCBTZWxlY3RDaGlwU3BlYywgU2VsZWN0Q2hpcFNwZWNVdGlsLCBUcmFpbGluZ1NwZWN9IGZyb20gJy4vc2VsZWN0LWNoaXAtc3BlYyc7XG5pbXBvcnQgeyBFbGRlclRydW5jYXRlUGlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL3BpcGVzL2VsZGVyLXRydW5jYXRlLnBpcGUnO1xuaW1wb3J0IHsgRWxkZXJDbGVhclNlbGVjdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3NpbmdsZS9lbGRlci1jbGVhci1zZWxlY3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IEVsZGVyU3RvcEV2ZW50UHJvcGFnYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9mb3Jtcy9kaXJlY3RpdmVzL2VsZGVyLXN0b3AtZXZlbnQtcHJvcGFnYXRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IE1hdEljb25CdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgRWxkZXJDaGlwTGFiZWxEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9jaGlwcy9lbGRlci1jaGlwLWxhYmVsLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRDaGlwU2V0LCBNYXRDaGlwUm93LCBNYXRDaGlwQXZhdGFyLCBNYXRDaGlwVHJhaWxpbmdJY29uLCBNYXRDaGlwUmVtb3ZlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgTmdJZiwgTmdGb3IsIE5nVGVtcGxhdGVPdXRsZXQsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmNsYXNzIENoaXBNb2RlbDxUPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZTogVCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheVRleHQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29sb3JTcGVjOiBDaGlwQ29sb3JTcGVjLFxuICAgIHB1YmxpYyByZWFkb25seSByZW1vdmFibGU6IGJvb2xlYW4sXG4gICAgcHVibGljIHJlYWRvbmx5IGF2YXRhclNwZWM6IENoaXBBdmF0YXJTcGVjLFxuICAgIHB1YmxpYyByZWFkb25seSB0cmFpbGluZ1NwZWM6IFRyYWlsaW5nU3BlYyxcbiAgKSB7XG4gIH1cbn1cblxuaW50ZXJmYWNlIFRlbXBsYXRlV3JhcHBlciB7XG4gIGNoaXA6IFRlbXBsYXRlUmVmPGFueT47XG4gIGF2YXRhcjogVGVtcGxhdGVSZWY8YW55PjtcblxuICBpbnB1dDogVGVtcGxhdGVSZWY8YW55Pjtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlbGRlci1tdWx0aS1zZWxlY3QtY2hpcHMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcHMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy5jb21wb25lbnQuc2NzcyddLFxuICAgIC8vIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogTWF0Rm9ybUZpZWxkQ29udHJvbCwgdXNlRXhpc3Rpbmc6IEVsZGVyTXVsdGlTZWxlY3RDaGlwc0NvbXBvbmVudCB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBFTERFUl9TRUxFQ1RfQkFTRSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVsZGVyTXVsdGlTZWxlY3RDaGlwc0NvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgTWF0VG9vbHRpcCwgTWF0Q2hpcFNldCwgQ2RrRHJvcExpc3QsIE1hdEljb24sIE5nRm9yLCBNYXRDaGlwUm93LCBFbGRlckNoaXBMYWJlbERpcmVjdGl2ZSwgQ2RrRHJhZywgTWF0Q2hpcEF2YXRhciwgTmdUZW1wbGF0ZU91dGxldCwgTWF0Q2hpcFRyYWlsaW5nSWNvbiwgTWF0Q2hpcFJlbW92ZSwgTWF0SWNvbkJ1dHRvbiwgRWxkZXJTdG9wRXZlbnRQcm9wYWdhdGlvbkRpcmVjdGl2ZSwgRWxkZXJTZWxlY3RDb21wb25lbnQsIEVsZGVyQ2xlYXJTZWxlY3REaXJlY3RpdmUsIEFzeW5jUGlwZSwgRWxkZXJUcnVuY2F0ZVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyTXVsdGlTZWxlY3RDaGlwc0NvbXBvbmVudDxUSWQgPSBhbnksIFRFbnRpdHkgPSBhbnksIFRWYWx1ZSA9IGFueT5cbiAgZXh0ZW5kcyBFbGRlck11bHRpU2VsZWN0QmFzZTxUSWQsIFRFbnRpdHksIFRWYWx1ZT4ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RDaGlwcyQ6IE9ic2VydmFibGU8Q2hpcE1vZGVsPFRFbnRpdHk+W10+O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkZWZhdWx0Q2hpcFNwZWM6IFNlbGVjdENoaXBTcGVjID0gU2VsZWN0Q2hpcFNwZWNVdGlsLkRlZmF1bHRDaGlwU3BlYztcblxuICAvKipcbiAgICogQWxsb3dzIHRvIGN1c3RvbWl6ZSBlYWNoIGNoaXAgaW5kaXZpZHVhbGx5IChDb2xvciwgUmVtb3ZhYmxlLCBBdmF0YXIpLlxuICAgKlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGNoaXBTcGVjRm46IChlOiBURW50aXR5KSA9PiBTZWxlY3RDaGlwU3BlYyA9IGUgPT4gdGhpcy5kZWZhdWx0Q2hpcFNwZWM7XG5cbiAgcHVibGljIHNlbGVjdGFibGUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhbGxvd1JlbW92ZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGFsbG93U29ydGluZyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGFja2VkID0gZmFsc2U7XG5cbiAgQENvbnRlbnRDaGlsZChNYXRGb3JtRmllbGRDb250cm9sKSBfY3VzdG9tQ2hpcElucHV0OiBNYXRGb3JtRmllbGRDb250cm9sPGFueT47XG4gIEBWaWV3Q2hpbGQoRWxkZXJTZWxlY3RDb21wb25lbnQpIF9jaGlwSW5wdXQ6IE1hdEZvcm1GaWVsZENvbnRyb2w8YW55PjtcblxuICByZWFkb25seSB0ZW1wbGF0ZXMkOiBPYnNlcnZhYmxlPFRlbXBsYXRlV3JhcHBlcj47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjaGlwVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZVJlZjxhbnk+PihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjaGlwQXZhdGFyVGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZVJlZjxhbnk+PihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjdXN0b21JbnB1dFRlbXBsYXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVSZWY8YW55Pj4obnVsbCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGhvc3RSZWY6IEVsZW1lbnRSZWYsXG4gICAgem9uZTogTmdab25lLFxuICAgIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgZGlhbG9nU2VydmljZTogRWxkZXJEaWFsb2dTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2xcbiAgKSB7XG4gICAgc3VwZXIoem9uZSwgaG9zdFJlZiwgJ211bHRpLXNlbGVjdC1jaGlwcycsIGZvY3VzTW9uaXRvciwgdHJhbnNsYXRlU2VydmljZSwgZGlhbG9nU2VydmljZSwgbmdDb250cm9sKTtcblxuICAgIHRoaXMucGxhY2Vob2xkZXIgPSAnLi4uJztcblxuICAgIHRoaXMuc2VsZWN0Q2hpcHMkID0gY29tYmluZUxhdGVzdChcbiAgICAgIFtcbiAgICAgICAgdGhpcy5lbnRpdGllcyQsXG4gICAgICAgIHRoaXMuZW50aXR5SWRzJCxcbiAgICAgICAgdGhpcy5zdGF0ZSQsXG4gICAgICAgIHRoaXMuZGlzcGxheVByb3BlcnR5UmVzb2x2ZXIkLFxuICAgICAgICB0aGlzLnJlYWRvbmx5JCxcbiAgICAgICAgdGhpcy5kaXNhYmxlZCRcbiAgICAgIF1cbiAgICApLnBpcGUoXG4gICAgICBtYXAoKFtlbnRpdGllcywgZW50aXR5SWRzLCBzdGF0ZSwgZFBSXSkgPT5cbiAgICAgICAgdGhpcy5idWlsZENoaXBNb2RlbHNPckZhbGxiYWNrKGVudGl0aWVzLCBlbnRpdHlJZHMsIHN0YXRlLCBkUFIpXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMudGVtcGxhdGVzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5jaGlwVGVtcGxhdGUkLFxuICAgICAgdGhpcy5jaGlwQXZhdGFyVGVtcGxhdGUkLFxuICAgICAgdGhpcy5jdXN0b21JbnB1dFRlbXBsYXRlJFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtjaGlwLCBhdmF0YXIsIGlucHV0XSkgPT4ge1xuICAgICAgICByZXR1cm4gPFRlbXBsYXRlV3JhcHBlcj57XG4gICAgICAgICAgY2hpcCxcbiAgICAgICAgICBhdmF0YXIsXG4gICAgICAgICAgaW5wdXRcbiAgICAgICAgfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTZWxlY3RDaGlwRGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogZmFsc2V9KVxuICBwdWJsaWMgc2V0IGNoaXBUZW1wbGF0ZVF1ZXJ5KHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5jaGlwVGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hpcFRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5jaGlwVGVtcGxhdGUkLm5leHQodGVtcGxhdGUpO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGlwVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuY2hpcFRlbXBsYXRlJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgQENvbnRlbnRDaGlsZChFbGRlclNlbGVjdENoaXBBdmF0YXJEaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiBmYWxzZX0pXG4gIHB1YmxpYyBzZXQgY2hpcEF2YXRhclRlbXBsYXRlUXVlcnkodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmNoaXBBdmF0YXJUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjaGlwQXZhdGFyVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmNoaXBBdmF0YXJUZW1wbGF0ZSQubmV4dCh0ZW1wbGF0ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoaXBBdmF0YXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5jaGlwQXZhdGFyVGVtcGxhdGUkLmdldFZhbHVlKCk7XG4gIH1cblxuICBAQ29udGVudENoaWxkKEVsZGVyU2VsZWN0Q3VzdG9tSW5wdXREaXJlY3RpdmUsIHtyZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiBmYWxzZX0pXG4gIHB1YmxpYyBzZXQgY3VzdG9tSW5wdXRUZW1wbGF0ZVF1ZXJ5KHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5jdXN0b21JbnB1dFRlbXBsYXRlID0gdGVtcGxhdGU7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGN1c3RvbUlucHV0VGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLmN1c3RvbUlucHV0VGVtcGxhdGUkLm5leHQodGVtcGxhdGUpO1xuICB9XG5cbiAgcHVibGljIGdldCBjdXN0b21JbnB1dFRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbUlucHV0VGVtcGxhdGUkLmdldFZhbHVlKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8YW55Pik6IHZvaWQge1xuICAgIGNvbnN0IHJlb3JkZXJlZCA9IFsuLi50aGlzLmVudGl0aWVzXTtcbiAgICBtb3ZlSXRlbUluQXJyYXkocmVvcmRlcmVkLCBldmVudC5wcmV2aW91c0luZGV4LCBldmVudC5jdXJyZW50SW5kZXgpO1xuICAgIHRoaXMuZW50aXRpZXMgPSByZW9yZGVyZWQ7XG4gIH1cblxuICBwdWJsaWMgcmVzb2x2ZUNoaXBWYWx1ZShlMTogVEVudGl0eSk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RW50aXR5SWQoZTEpO1xuICB9XG5cbiAgcHVibGljIG9uQ2hpcEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHRvUmVtb3ZlOiBURW50aXR5KTogdm9pZCB7XG4gICAgdGhpcy5sb2cud2Fybignb25DaGlwS2V5RG93bicsIGV2ZW50KTtcbiAgICBpZiAoZXZlbnQua2V5ID09ICdCYWNrc3BhY2UnIHx8IGV2ZW50LmtleSA9PSAnRGVsZXRlJykge1xuICAgICAgdGhpcy5yZXF1ZXN0UmVtb3ZlRW50aXR5KHRvUmVtb3ZlLCBldmVudC5zaGlmdEtleSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQ2xpY2tSZW1vdmVDaGlwKFxuICAgIGV2ZW50OiBNb3VzZUV2ZW50LFxuICAgIHRvUmVtb3ZlOiBURW50aXR5XG4gICk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5yZXF1ZXN0UmVtb3ZlRW50aXR5KHRvUmVtb3ZlLCBldmVudC5zaGlmdEtleSk7XG4gIH1cblxuICBwdWJsaWMgZm9jdXMob3B0aW9ucz86IEZvY3VzT3B0aW9ucykge1xuXG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLl9jdXN0b21DaGlwSW5wdXQgPz8gdGhpcy5fY2hpcElucHV0O1xuXG4gICAgaWYgKGlucHV0KSB7XG4gICAgICBpbnB1dC5vbkNvbnRhaW5lckNsaWNrKG5ldyBNb3VzZUV2ZW50KCcnKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nLndhcm4oJ0NhbnQgZm9jdXMgc2luY2Ugbm8gY2hpcC1pbnB1dC1jb250cm9sIGZvdW5kIScpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBibHVyKCkge1xuICAgIHRoaXMubG9nLndhcm4oJ2JsdXIoKSBub3QgeWV0IHN1cHBvcnRlZCEnKTtcbiAgICAvLyBUT0RPIHRoaXMuaW5wdXRDb250cm9sPy5ibHVyKCk7XG4gICAgLy8gdGhpcy5jdXN0b21JbnB1dFRlbXBsYXRlLmJsdXIoKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBidWlsZENoaXBNb2RlbHNPckZhbGxiYWNrKFxuICAgIGVudGl0aWVzOiBURW50aXR5W10sXG4gICAgZW50aXR5SWRzOiBUSWRbXSxcbiAgICBzdGF0ZTogRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZSxcbiAgICBkUFI6IFRleHRSZXNvbHZlckZuXG4gICk6IENoaXBNb2RlbDxURW50aXR5PltdIHtcblxuICAgIGlmIChzdGF0ZS5lcnJvcikge1xuICAgICAgcmV0dXJuIHRoaXMuYnVpbGRDaGlwRmFsbGJhY2tNb2RlbHMoZW50aXR5SWRzKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYnVpbGRDaGlwTW9kZWxzKGVudGl0aWVzLCBkUFIpO1xuICB9XG5cblxuICBwcml2YXRlIGJ1aWxkQ2hpcEZhbGxiYWNrTW9kZWxzKGVudGl0eUlkczogVElkW10pOiBDaGlwTW9kZWw8VEVudGl0eT5bXSB7XG4gICAgcmV0dXJuIGVudGl0eUlkcy5tYXAoXG4gICAgICBpZCA9PiB0aGlzLmJ1aWxkQ2hpcEJ5U3BlYyhcbiAgICAgICAgPGFueT57aWQ6IGlkfSxcbiAgICAgICAgKCkgPT4gU3RyaW5nKGlkKSxcbiAgICAgICAge1xuICAgICAgICAgIGNvbG9yU3BlYzoge1xuICAgICAgICAgICAgdGhlbWVDb2xvcjogJ3dhcm4nXG4gICAgICAgICAgfSxcbiAgICAgICAgICBhdmF0YXJTcGVjOiB7XG4gICAgICAgICAgICBoaWRlOiBmYWxzZSxcbiAgICAgICAgICAgIGxhcmdlOiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZENoaXBNb2RlbHMoXG4gICAgZW50aXRpZXM6IFRFbnRpdHlbXSxcbiAgICBkUFI6IFRleHRSZXNvbHZlckZuXG4gICk6IENoaXBNb2RlbDxURW50aXR5PltdIHtcbiAgICBpZiAoZW50aXRpZXMpIHtcbiAgICAgIHJldHVybiBlbnRpdGllcy5tYXAoXG4gICAgICAgIGUgPT4gdGhpcy5idWlsZENoaXBCeVNwZWMoXG4gICAgICAgICAgZSxcbiAgICAgICAgICBkUFIsXG4gICAgICAgICAgdGhpcy5jaGlwU3BlY0ZuKGUpID8/IHRoaXMuZGVmYXVsdENoaXBTcGVjXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiA8Q2hpcE1vZGVsPFRFbnRpdHk+W10+W107XG4gICAgfVxuICB9XG5cblxuICBwcml2YXRlIGJ1aWxkQ2hpcEJ5U3BlYyhcbiAgICBlOiBURW50aXR5LFxuICAgIGRQUjogVGV4dFJlc29sdmVyRm4sXG4gICAgY2hpcFNwZWM6IFNlbGVjdENoaXBTcGVjXG4gICk6IENoaXBNb2RlbDxURW50aXR5PiB7XG5cbiAgICBsZXQgcmVtb3ZhYmxlID0gZmFsc2U7XG4gICAgaWYgKHRoaXMuYWxsb3dSZW1vdmUgJiYgIXRoaXMuaXNMb2NrZWQpIHtcbiAgICAgIGlmIChjaGlwU3BlYy5yZW1vdmFibGUgIT09IGZhbHNlKSB7XG4gICAgICAgIHJlbW92YWJsZSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXcgQ2hpcE1vZGVsPFRFbnRpdHk+KFxuICAgICAgZSxcbiAgICAgIGRQUihlKSxcbiAgICAgIGNoaXBTcGVjPy5jb2xvclNwZWMsXG4gICAgICByZW1vdmFibGUsXG4gICAgICBjaGlwU3BlYy5hdmF0YXJTcGVjLFxuICAgICAgY2hpcFNwZWMudHJhaWxpbmdTcGVjXG4gICAgKTtcbiAgfVxuXG59XG4iLCI8ZGl2ICpuZ0lmPVwiKHNlbGVjdENoaXBzJCB8IGFzeW5jKSBhcyBjaGlwVmFsdWVzXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImVsZGVyLWZsZXgtY29udHJvbFwiXG4gICAgIFttYXRUb29sdGlwXT1cIihzdGF0ZSQgfCBhc3luYyk/LmVycm9yXCJcbj5cbiAgPG1hdC1jaGlwLXNldCAjY2hpcHNcbiAgICAgICAgICAgICAgICBbY2xhc3MubWF0LW1kYy1jaGlwLXNldC1zdGFja2VkXT1cInN0YWNrZWRcIlxuICAgICAgICAgICAgICAgIGNka0Ryb3BMaXN0XG4gICAgICAgICAgICAgICAgW2Nka0Ryb3BMaXN0T3JpZW50YXRpb25dPVwic3RhY2tlZCA/ICd2ZXJ0aWNhbCcgOiAnaG9yaXpvbnRhbCdcIlxuICAgICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbY2RrRHJvcExpc3REaXNhYmxlZF09XCIhYWxsb3dTb3J0aW5nXCJcbiAgPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihtZXJnZWRTdGF0ZSQgfCBhc3luYykgYXMgc3RhdGVcIj5cbiAgICAgIDxkaXYgKm5nSWY9XCJpY29uXCJcbiAgICAgICAgICAgY2xhc3M9XCJlbGRlci1pbnB1dC1wcmVmaXgtaWNvbi1jb250YWluZXIgZmxleC1ub25lXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaWNvblwiIGRpc2FibGVkXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImVsZGVyLXByZWZpeC1pY29uIGVsZGVyLW1kYy1jb250cm9sLWljb24gZWxkZXItaWNvbi1zbWFsbCBub3NlbGVjdFwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MubG9hZGluZ109XCJzdGF0ZS5sb2FkaW5nXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7aWNvbn19XG4gICAgICAgIDwvbWF0LWljb24+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZXMkIHwgYXN5bmMgYXMgdGVtcGxhdGVzXCI+XG4gICAgICA8bWF0LWNoaXAtcm93IGVsZGVyQ2hpcExhYmVsICpuZ0Zvcj1cImxldCBjaGlwTW9kZWwgb2YgY2hpcFZhbHVlc1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJub3NlbGVjdCBjbGlja2FibGUtY2hpcFwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cInJlc29sdmVDaGlwVmFsdWUoY2hpcE1vZGVsLnZhbHVlKVwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cImNoaXBNb2RlbC5jb2xvclNwZWM/LnRoZW1lQ29sb3JcIlxuICAgICAgICAgICAgICAgIFtsZXZlbENvbG9yXT1cImNoaXBNb2RlbC5jb2xvclNwZWM/LmxldmVsQ29sb3JcIlxuICAgICAgICAgICAgICAgIFtzdGF0ZUNvbG9yXT1cImNoaXBNb2RlbC5jb2xvclNwZWM/LnN0YXRlQ29sb3JcIlxuICAgICAgICAgICAgICAgIFtyZW1vdmFibGVdPVwiY2hpcE1vZGVsLnJlbW92YWJsZVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25DaGlwS2V5RG93bigkZXZlbnQsIGNoaXBNb2RlbC52YWx1ZSlcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkN1cnJlbnRDbGlja2VkKGNoaXBNb2RlbC52YWx1ZSlcIlxuICAgICAgICAgICAgICAgIGNka0RyYWcgW2Nka0RyYWdEYXRhXT1cImNoaXBNb2RlbC52YWx1ZVwiIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWFsbG93U29ydGluZ1wiXG4gICAgICA+XG4gICAgICAgIDxtYXQtY2hpcC1hdmF0YXJcbiAgICAgICAgICAqbmdJZj1cInRlbXBsYXRlcy5hdmF0YXIgJiYgIWNoaXBNb2RlbC5hdmF0YXJTcGVjPy5oaWRlXCJcbiAgICAgICAgICBbY2xhc3MuY2hpcC1hdmF0YXIteGxdPVwiY2hpcE1vZGVsLmF2YXRhclNwZWM/LmxhcmdlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVzLmF2YXRhcjsgY29udGV4dDogeyRpbXBsaWNpdDogY2hpcE1vZGVsfVwiPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L21hdC1jaGlwLWF2YXRhcj5cblxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZW1wbGF0ZXMuY2hpcCB8fCBzaW1wbGVDaGlwVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IGNoaXBNb2RlbH1cIj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG1hdC1pY29uIG1hdENoaXBUcmFpbGluZ0ljb24gY2xhc3M9XCJlbGRlci10cmFpbGluZy1pY29uXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY2hpcE1vZGVsLnRyYWlsaW5nU3BlYz8uaWNvblwiXG4gICAgICAgICAgICAgICAgICBbZm9udFNldF09XCJjaGlwTW9kZWwudHJhaWxpbmdTcGVjPy5pY29uRm9udFNldFwiXG4gICAgICAgID57e2NoaXBNb2RlbC50cmFpbGluZ1NwZWM/Lmljb259fTwvbWF0LWljb24+XG5cbiAgICAgICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmVcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY2hpcE1vZGVsLnJlbW92YWJsZVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGlja1JlbW92ZUNoaXAoJGV2ZW50LCBjaGlwTW9kZWwudmFsdWUpXCI+XG4gICAgICAgICAgY2FuY2VsXG4gICAgICAgIDwvbWF0LWljb24+XG4gICAgICA8L21hdC1jaGlwLXJvdz5cblxuICAgICAgPGRpdiBjbGFzcz1cImxheW91dC1yb3cgcGxhY2Utc3RhcnQtY2VudGVyIGVsZGVyLWNoaXAtaW5wdXRcIj5cblxuICAgICAgICA8IS0tIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcHNcIiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGVzLmlucHV0IHx8IHNlbGVjdElucHV0O1wiPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJlbGRlci1jb250cm9sLWljb24tYnV0dG9uIGVsZGVyLWJyb3dzZS1pY29uXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGlvblBvcHVwXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2NrZWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuU2VsZWN0aW9uUG9wdXAoJGV2ZW50KVwiIGFyaWEtbGFiZWw9XCJTZWFyY2hcIlxuICAgICAgICAgICAgICAgIGVsZGVyU3RvcEV2ZW50UHJvcGFnYXRpb25cbiAgICAgICAgICAgICAgICB0YWJJbmRleD1cIi0xXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImVsZGVyLW1kYy1jb250cm9sLWljb25cIj5zZWFyY2g8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L21hdC1jaGlwLXNldD5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3NlbGVjdElucHV0PlxuICA8IS0tIG1hdC1tZGMtY2hpcC1pbnB1dCAtLT5cbiAgPGVsZGVyLXNlbGVjdCBhdXRvY29tcGxldGUgZWxkZXJDbGVhclNlbGVjdFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZWxkZXItY2hpcC1pbnB1dC1zZWxlY3QgZmxleFwiXG4gICAgICAgICAgICAgICAgW2RhdGFdPVwiZGF0YUNvbnRleHQkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhIWRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiISFyZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIiEhcmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgKGVudGl0eVVwZGF0ZWQpPVwiYXBwZW5kRW50aXR5KCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtkaXNwbGF5UHJvcGVydHlSZXNvbHZlcl09XCJkaXNwbGF5UHJvcGVydHlSZXNvbHZlciQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgW3ZhbHVlVGVtcGxhdGVdPVwidmFsdWVUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgW3F1ZXJ5RmlsdGVyXT1cInF1ZXJ5RmlsdGVyXCIgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiIFtzb3J0c109XCJzb3J0c1wiXG4gICAgICAgICAgICAgICAgW2lzT3B0aW9uRGlzYWJsZWRGbl09XCJpc09wdGlvbkRpc2FibGVkSW50ZXJuYWxGblwiXG4gICAgICAgICAgICAgICAgW2lzT3B0aW9uSGlkZGVuRm5dPVwiaXNPcHRpb25IaWRkZW5JbnRlcm5hbEZuXCJcbiAgPjwvZWxkZXItc2VsZWN0PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzaW1wbGVDaGlwVGVtcGxhdGUgbGV0LWNoaXBNb2RlbD5cbiAgPHNwYW4gY2xhc3M9XCJlbGRlci1jaGlwLXRleHRcIj57e2NoaXBNb2RlbC5kaXNwbGF5VGV4dCB8IGVsZGVyVHJ1bmNhdGU6MjB9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbiJdfQ==
|
|
@@ -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.3.2", ngImport: i0, type: ElderMultiSelectFormField, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
|
|
66
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.2", 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.3.2", ngImport: i0, type: ElderMultiSelectFormField, decorators: [{
|
|
69
69
|
type: Directive
|
|
70
70
|
}], ctorParameters: () => [{ type: undefined }], propDecorators: { selectValueTemplate: [{
|
|
71
71
|
type: ViewChild,
|