@elderbyte/ngx-starter 14.4.0-beta.8 → 14.5.1
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/_index.scss +3 -0
- package/esm2020/lib/common/data/entity-set-patch.mjs +76 -3
- package/esm2020/lib/common/enums/elder-enum-translation.service.mjs +3 -3
- package/esm2020/lib/common/forms/elder-form-field-control-base.directive.mjs +17 -8
- package/esm2020/lib/common/forms/elder-from-field-base.mjs +4 -4
- package/esm2020/lib/common/forms/elder-from-field-entity-base.mjs +3 -3
- package/esm2020/lib/common/forms/elder-from-field-multi-entity-base.mjs +12 -4
- package/esm2020/lib/common/forms/elder-multi-entity-value-accessor.mjs +1 -1
- package/esm2020/lib/common/forms/form-field-base.component.mjs +3 -3
- package/esm2020/lib/common/forms/multi-model-base.component.mjs +3 -3
- package/esm2020/lib/common/forms/template-composite-control.mjs +3 -3
- package/esm2020/lib/common/forms/value-accessor-base.mjs +3 -3
- package/esm2020/lib/common/http/http-client-builder.service.mjs +3 -3
- package/esm2020/lib/common/http/http-client-pristine.mjs +3 -3
- package/esm2020/lib/common/http/transfer/data-transfer-factory.mjs +3 -3
- package/esm2020/lib/common/json-map.mjs +3 -3
- package/esm2020/lib/common/url/elder-url-fragment-params.service.mjs +3 -3
- package/esm2020/lib/components/access-denied/elder-access-denied.component.mjs +3 -3
- package/esm2020/lib/components/access-denied/elder-access-denied.module.mjs +4 -4
- package/esm2020/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +3 -3
- package/esm2020/lib/components/auditing/elder-audit.module.mjs +4 -4
- package/esm2020/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +3 -3
- package/esm2020/lib/components/button-group/elder-button-group.module.mjs +4 -4
- package/esm2020/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +3 -3
- package/esm2020/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +3 -3
- package/esm2020/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +3 -3
- package/esm2020/lib/components/card-organizer/elder-card-organizer.module.mjs +4 -4
- package/esm2020/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +3 -3
- package/esm2020/lib/components/cards/elder-card/elder-card.component.mjs +18 -18
- package/esm2020/lib/components/cards/elder-card/elder-card.module.mjs +4 -4
- package/esm2020/lib/components/connectivity/elder-connectivity.module.mjs +4 -4
- package/esm2020/lib/components/connectivity/elder-connectivity.service.mjs +3 -3
- package/esm2020/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +3 -3
- package/esm2020/lib/components/containers/elder-containers.module.mjs +4 -4
- package/esm2020/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +3 -3
- package/esm2020/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +3 -3
- package/esm2020/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +3 -3
- package/esm2020/lib/components/csv/elder-csv.module.mjs +4 -4
- package/esm2020/lib/components/currency/elder-currency.module.mjs +4 -4
- package/esm2020/lib/components/currency/elder-currency.pipe.mjs +3 -3
- package/esm2020/lib/components/data-transfer/elder-data-transfer.module.mjs +4 -4
- package/esm2020/lib/components/data-transfer/elder-data-transfer.service.mjs +3 -3
- package/esm2020/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +3 -3
- package/esm2020/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +3 -3
- package/esm2020/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +3 -3
- package/esm2020/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +3 -3
- package/esm2020/lib/components/data-view/base/data-view-options-provider-binding.mjs +63 -0
- package/esm2020/lib/components/data-view/base/elder-data-view-base.mjs +56 -13
- package/esm2020/lib/components/data-view/base/elder-data-view-options-provider.mjs +44 -0
- package/esm2020/lib/components/data-view/base/elder-data-view-options.mjs +42 -0
- package/esm2020/lib/components/data-view/base/public_api.mjs +6 -0
- package/esm2020/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +3 -3
- package/esm2020/lib/components/data-view/common/elder-data-common.module.mjs +4 -4
- package/esm2020/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +6 -6
- package/esm2020/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +3 -3
- package/esm2020/lib/components/data-view/common/selection/data-context-selection.directive.mjs +3 -3
- package/esm2020/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +3 -3
- package/esm2020/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +18 -32
- package/esm2020/lib/components/data-view/grid/elder-grid.module.mjs +4 -4
- package/esm2020/lib/components/data-view/public_api.mjs +2 -2
- package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +3 -3
- package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +4 -4
- package/esm2020/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +3 -3
- package/esm2020/lib/components/data-view/table/elder-number-cell.directive.mjs +3 -3
- package/esm2020/lib/components/data-view/table/elder-paginator-intl.mjs +3 -3
- package/esm2020/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +3 -3
- package/esm2020/lib/components/data-view/table/elder-table/elder-table.component.mjs +12 -46
- package/esm2020/lib/components/data-view/table/elder-table-column.directive.mjs +3 -3
- package/esm2020/lib/components/data-view/table/elder-table-extension.directive.mjs +3 -3
- package/esm2020/lib/components/data-view/table/elder-table-root.directive.mjs +3 -3
- package/esm2020/lib/components/data-view/table/elder-table-row.directive.mjs +3 -3
- package/esm2020/lib/components/data-view/table/elder-table-sort.directive.mjs +3 -3
- package/esm2020/lib/components/data-view/table/elder-table.module.mjs +4 -4
- package/esm2020/lib/components/data-view/table/model/elder-table-model.mjs +3 -3
- package/esm2020/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +3 -3
- package/esm2020/lib/components/dialogs/elder-dialog.module.mjs +7 -7
- package/esm2020/lib/components/dialogs/elder-dialog.service.mjs +3 -3
- package/esm2020/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +3 -3
- package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +3 -3
- package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +3 -3
- package/esm2020/lib/components/errors/elder-error.module.mjs +4 -4
- package/esm2020/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +3 -3
- package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +3 -3
- package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +4 -4
- package/esm2020/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +3 -3
- package/esm2020/lib/components/files/elder-file-drop-zone.directive.mjs +3 -3
- package/esm2020/lib/components/files/elder-file-select.directive.mjs +3 -3
- package/esm2020/lib/components/files/elder-file.module.mjs +4 -4
- package/esm2020/lib/components/files/file-select/file-select.component.mjs +3 -3
- package/esm2020/lib/components/files/file-upload/file-upload.component.mjs +3 -3
- package/esm2020/lib/components/forms/clipboard/elder-clipboard.service.mjs +3 -3
- package/esm2020/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-clipboard-put.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-delayed-focus.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-form-field-dense.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-form-field-label.directive.mjs +33 -20
- package/esm2020/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-forms-directives.module.mjs +13 -13
- package/esm2020/lib/components/forms/directives/elder-input-pattern.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-key-event.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-max.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-min.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-next-focusable.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-touched.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +3 -3
- package/esm2020/lib/components/forms/directives/validation/elder-multiple-of.validator.mjs +3 -3
- package/esm2020/lib/components/forms/directives/validation/elder-required-ignore-zero.validator.mjs +3 -3
- package/esm2020/lib/components/forms/elder-forms.module.mjs +4 -4
- package/esm2020/lib/components/forms/search/elder-search-context.directive.mjs +3 -3
- package/esm2020/lib/components/forms/search/elder-search-input.directive.mjs +3 -3
- package/esm2020/lib/components/forms/search/elder-search.module.mjs +4 -4
- package/esm2020/lib/components/forms/search/search-box/elder-search-box.component.mjs +8 -6
- package/esm2020/lib/components/forms/search/search-box/elder-search-panel.component.mjs +3 -3
- package/esm2020/lib/components/global-search/elder-global-search.component.mjs +3 -3
- package/esm2020/lib/components/global-search/elder-global-search.module.mjs +4 -4
- package/esm2020/lib/components/global-search/elder-global-search.service.mjs +3 -3
- package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +3 -3
- package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +4 -4
- package/esm2020/lib/components/headers/elder-header/elder-header.component.mjs +3 -3
- package/esm2020/lib/components/headers/elder-header.module.mjs +4 -4
- package/esm2020/lib/components/http-support/elder-http-client.service.mjs +3 -3
- package/esm2020/lib/components/i18n/entities/elder-i18n-entities.module.mjs +4 -4
- package/esm2020/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +3 -3
- package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +3 -3
- package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +3 -3
- package/esm2020/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +3 -3
- package/esm2020/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +3 -3
- package/esm2020/lib/components/i18n/entities/elder-localized-texts.directive.mjs +3 -3
- package/esm2020/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +3 -3
- package/esm2020/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +3 -3
- package/esm2020/lib/components/i18n/entities/picker/localisation-picker.service.mjs +3 -3
- package/esm2020/lib/components/i18n/language/elder-language-interceptor.mjs +3 -3
- package/esm2020/lib/components/i18n/language/elder-language.module.mjs +4 -4
- package/esm2020/lib/components/i18n/language/elder-language.service.mjs +3 -3
- package/esm2020/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +3 -3
- package/esm2020/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +4 -4
- package/esm2020/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +119 -0
- package/esm2020/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +137 -0
- package/esm2020/lib/components/iframes/elder-iframe.module.mjs +22 -10
- package/esm2020/lib/components/iframes/iframe-close.directive.mjs +3 -3
- package/esm2020/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +3 -3
- package/esm2020/lib/components/iframes/iframe-host/iframe-host.component.mjs +58 -32
- package/esm2020/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +3 -3
- package/esm2020/lib/components/iframes/iframe.service.mjs +6 -8
- package/esm2020/lib/components/iframes/typed-event-message.mjs +42 -0
- package/esm2020/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +3 -3
- package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +3 -3
- package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +7 -7
- package/esm2020/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +3 -3
- package/esm2020/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +3 -3
- package/esm2020/lib/components/input/autocomplete/elder-autocomplete.module.mjs +4 -4
- package/esm2020/lib/components/labels/elder-labels.module.mjs +4 -4
- package/esm2020/lib/components/labels/labels-input/labels-input.component.mjs +3 -3
- package/esm2020/lib/components/measures/dimensions-input/elder-dimensions-input.component.mjs +3 -3
- package/esm2020/lib/components/measures/directives/elder-unit-select.directive.mjs +3 -3
- package/esm2020/lib/components/measures/elder-measures.module.mjs +8 -8
- package/esm2020/lib/components/measures/elder-quantity-transform.pipe.mjs +3 -3
- package/esm2020/lib/components/measures/elder-quantity.pipe.mjs +3 -3
- package/esm2020/lib/components/measures/elder-unit.service.mjs +3 -3
- package/esm2020/lib/components/measures/quantity-input/elder-quantity-input.component.mjs +3 -3
- package/esm2020/lib/components/measures/util/elder-quantity.service.mjs +3 -3
- package/esm2020/lib/components/multi-autocomplete/elder-multi-auto-complete.module.mjs +4 -4
- package/esm2020/lib/components/multi-autocomplete/elder-multi-autocomplete.component.mjs +3 -3
- package/esm2020/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +3 -3
- package/esm2020/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +4 -4
- package/esm2020/lib/components/navigation/nav/elder-nav.module.mjs +4 -4
- package/esm2020/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +3 -3
- package/esm2020/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +3 -3
- package/esm2020/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +3 -3
- package/esm2020/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +3 -3
- package/esm2020/lib/components/navigation/toolbar/elder-toolbar.module.mjs +4 -4
- package/esm2020/lib/components/navigation/toolbar/elder-toolbar.service.mjs +3 -3
- package/esm2020/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +3 -3
- package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +3 -3
- package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +3 -3
- package/esm2020/lib/components/overlays/elder-overlay-origin.directive.mjs +3 -3
- package/esm2020/lib/components/overlays/elder-overlay-trigger.directive.mjs +3 -3
- package/esm2020/lib/components/overlays/elder-overlay.component.mjs +3 -3
- package/esm2020/lib/components/overlays/elder-overlay.module.mjs +4 -4
- package/esm2020/lib/components/panels/card-panel/elder-card-panel.component.mjs +4 -6
- package/esm2020/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +13 -0
- package/esm2020/lib/components/panels/elder-panel.module.mjs +15 -9
- package/esm2020/lib/components/panels/flat/elder-panel.component.mjs +3 -3
- package/esm2020/lib/components/select/auto/elder-auto-select-first.directive.mjs +3 -3
- package/esm2020/lib/components/select/elder-select-base.mjs +9 -8
- package/esm2020/lib/components/select/elder-select-chip.directive.mjs +9 -9
- package/esm2020/lib/components/select/elder-select-on-tab.directive.mjs +3 -3
- package/esm2020/lib/components/select/elder-select-value.directive.mjs +3 -3
- package/esm2020/lib/components/select/elder-select.module.mjs +6 -6
- package/esm2020/lib/components/select/multi/elder-multi-select-base.mjs +47 -39
- package/esm2020/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +30 -22
- package/esm2020/lib/components/select/multi/elder-multi-select-form-field.mjs +3 -3
- package/esm2020/lib/components/select/popup/selection-model-popup.directive.mjs +24 -41
- package/esm2020/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +3 -3
- package/esm2020/lib/components/select/public_api.mjs +2 -1
- package/esm2020/lib/components/select/single/elder-clear-select.directive.mjs +3 -3
- package/esm2020/lib/components/select/single/elder-select/elder-select.component.mjs +24 -37
- package/esm2020/lib/components/select/single/elder-select-form-field.mjs +3 -3
- package/esm2020/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +3 -3
- package/esm2020/lib/components/select-chip-list/elder-chip-list-select.module.mjs +4 -4
- package/esm2020/lib/components/select-list/elder-select-list.module.mjs +4 -4
- package/esm2020/lib/components/select-list/select-list/elder-select-list.component.mjs +3 -3
- package/esm2020/lib/components/select-list/select-list-item/elder-select-list-item.component.mjs +3 -3
- package/esm2020/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +3 -3
- package/esm2020/lib/components/shell/drawers/elder-router-outlet.service.mjs +3 -3
- package/esm2020/lib/components/shell/elder-shell-slot.directive.mjs +3 -3
- package/esm2020/lib/components/shell/elder-shell.module.mjs +4 -4
- package/esm2020/lib/components/shell/elder-shell.service.mjs +3 -3
- package/esm2020/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +3 -3
- package/esm2020/lib/components/shell/shell/elder-shell.component.mjs +25 -15
- package/esm2020/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +3 -3
- package/esm2020/lib/components/tabs/elder-tab/elder-tab.directive.mjs +3 -3
- package/esm2020/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +3 -3
- package/esm2020/lib/components/tabs/elder-tab.module.mjs +4 -4
- package/esm2020/lib/components/theme/elder-theme-applier.directive.mjs +3 -3
- package/esm2020/lib/components/theme/elder-theme-preference.service.mjs +3 -3
- package/esm2020/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +3 -3
- package/esm2020/lib/components/theme/elder-theme.directive.mjs +3 -3
- package/esm2020/lib/components/theme/elder-theme.module.mjs +4 -4
- package/esm2020/lib/components/theme/elder-theme.service.mjs +3 -3
- package/esm2020/lib/components/time/date-adapters/custom-date-adapter.mjs +3 -3
- package/esm2020/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +3 -3
- package/esm2020/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +3 -3
- package/esm2020/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +3 -3
- package/esm2020/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +3 -3
- package/esm2020/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +3 -3
- package/esm2020/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +3 -3
- package/esm2020/lib/components/time/elder-time.module.mjs +8 -8
- package/esm2020/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +3 -3
- package/esm2020/lib/components/toasts/elder-toast.module.mjs +4 -4
- package/esm2020/lib/components/toasts/elder-toast.service.mjs +9 -9
- package/esm2020/lib/components/toasts/standard-toast/standard-toast.component.mjs +3 -3
- package/esm2020/lib/components/url-fragment/elder-url-fragment.module.mjs +4 -4
- package/esm2020/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +3 -3
- package/esm2020/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +3 -3
- package/esm2020/lib/components/viewers/elder-viewers.module.mjs +4 -4
- package/esm2020/lib/features/event-source/elder-event-source.service.mjs +3 -3
- package/esm2020/lib/features/kafent/access-token-provider.mjs +3 -3
- package/esm2020/lib/features/kafent/kafent-config.mjs +3 -3
- package/esm2020/lib/features/kafent/kafent-event-stream.mjs +3 -3
- package/esm2020/lib/features/kafent/kafent-event.service.mjs +3 -3
- package/esm2020/lib/features/kafent/kafent.module.mjs +4 -4
- package/esm2020/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +3 -3
- package/esm2020/lib/pipes/bytes.pipe.mjs +3 -3
- package/esm2020/lib/pipes/elder-pipes.module.mjs +10 -10
- package/esm2020/lib/pipes/elder-repeat.pipe.mjs +3 -3
- package/esm2020/lib/pipes/elder-round.pipe.mjs +3 -3
- package/esm2020/lib/pipes/elder-safe-url.pipe.mjs +3 -3
- package/esm2020/lib/pipes/elder-truncate.pipe.mjs +3 -3
- package/esm2020/lib/pipes/iso-duration.pipe.mjs +3 -3
- package/esm2020/lib/pipes/iso-interval-parse.pipe.mjs +3 -3
- package/esm2020/lib/pipes/iso-interval.pipe.mjs +3 -3
- package/esm2020/lib/pipes/time-ago.pipe.mjs +3 -3
- package/esm2020/lib/pipes/time-duration.pipe.mjs +3 -3
- package/esm2020/lib/pipes/weight.pipe.mjs +3 -3
- package/fesm2015/elderbyte-ngx-starter.mjs +2827 -2283
- package/fesm2015/elderbyte-ngx-starter.mjs.map +1 -1
- package/fesm2020/elderbyte-ngx-starter.mjs +2816 -2274
- package/fesm2020/elderbyte-ngx-starter.mjs.map +1 -1
- package/lib/common/data/entity-set-patch.d.ts +32 -1
- package/lib/common/forms/elder-form-field-control-base.directive.d.ts +3 -1
- package/lib/common/forms/elder-from-field-base.d.ts +1 -1
- package/lib/common/forms/elder-from-field-multi-entity-base.d.ts +4 -0
- package/lib/common/forms/elder-multi-entity-value-accessor.d.ts +12 -2
- package/lib/common/json-map.d.ts +1 -1
- package/lib/components/data-view/base/data-view-options-provider-binding.d.ts +39 -0
- package/lib/components/data-view/base/elder-data-view-base.d.ts +29 -6
- package/lib/components/data-view/base/elder-data-view-options-provider.d.ts +38 -0
- package/lib/components/data-view/base/elder-data-view-options.d.ts +33 -0
- package/lib/components/data-view/base/public_api.d.ts +5 -0
- package/lib/components/data-view/grid/elder-grid/elder-grid.component.d.ts +4 -6
- package/lib/components/data-view/public_api.d.ts +1 -1
- package/lib/components/data-view/table/elder-table/elder-table.component.d.ts +5 -19
- package/lib/components/forms/directives/elder-form-field-label.directive.d.ts +19 -6
- package/lib/components/forms/search/search-box/elder-search-box.component.d.ts +2 -1
- package/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.d.ts +66 -0
- package/lib/components/iframes/data-view/data-view-iframe-adapter.directive.d.ts +62 -0
- package/lib/components/iframes/elder-iframe.module.d.ts +14 -10
- package/lib/components/iframes/iframe-host/iframe-host.component.d.ts +28 -10
- package/lib/components/iframes/iframe.service.d.ts +3 -3
- package/lib/components/iframes/typed-event-message.d.ts +26 -0
- package/lib/components/panels/card-panel/elder-card-panel.component.d.ts +1 -3
- package/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.d.ts +6 -0
- package/lib/components/panels/elder-panel.module.d.ts +6 -4
- package/lib/components/select/elder-select-base.d.ts +2 -1
- package/lib/components/select/elder-select.module.d.ts +1 -1
- package/lib/components/select/multi/elder-multi-select-base.d.ts +5 -2
- package/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.d.ts +9 -3
- package/lib/components/select/popup/selection-model-popup.directive.d.ts +7 -27
- package/lib/components/select/public_api.d.ts +1 -0
- package/lib/components/select/single/elder-select/elder-select.component.d.ts +6 -9
- package/lib/components/shell/shell/elder-shell.component.d.ts +4 -1
- package/package.json +4 -4
- package/src/lib/components/cards/elder-card/elder-card.component.scss +1 -6
- package/src/lib/components/data-view/grid/elder-grid/elder-grid.component.scss +13 -23
- package/src/lib/components/forms/search/search-box/elder-search-box.component.scss +1 -1
- package/src/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.scss +0 -0
- package/src/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.scss +22 -0
- package/src/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.scss +4 -0
- package/theming/_elder-common.scss +4 -0
- package/theming/_elder-palettes.scss +59 -0
- package/theming/_elder-scrollbar-theme.scss +1 -1
- package/theming/_elder-theme.scss +46 -0
- package/theming/_elder-toast-theme.scss +5 -5
- package/esm2020/lib/components/data-view/base/elder-data-view-base.module.mjs +0 -18
- package/esm2020/lib/components/iframes/iframe-message.mjs +0 -2
- package/lib/components/data-view/base/elder-data-view-base.module.d.ts +0 -9
- package/lib/components/iframes/iframe-message.d.ts +0 -5
|
@@ -4,12 +4,12 @@ import { BehaviorSubject, EMPTY, of, throwError } from 'rxjs';
|
|
|
4
4
|
import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
5
5
|
import { catchError, filter, map, skip, switchMap, take, tap, timeout } from 'rxjs/operators';
|
|
6
6
|
import { Sets } from '../../../common/sets';
|
|
7
|
-
import { CollectionUtil } from '../../../common/utils/collection-util';
|
|
8
7
|
import { SortUtil } from '../../../common/utils/sort-util';
|
|
9
8
|
import * as i0 from "@angular/core";
|
|
10
9
|
import * as i1 from "@angular/cdk/a11y";
|
|
11
|
-
import * as i2 from "
|
|
12
|
-
import * as i3 from "
|
|
10
|
+
import * as i2 from "@ngx-translate/core";
|
|
11
|
+
import * as i3 from "../../dialogs/elder-dialog.service";
|
|
12
|
+
import * as i4 from "@angular/forms";
|
|
13
13
|
/**
|
|
14
14
|
* Base component implementation of elder-multi-select.
|
|
15
15
|
*
|
|
@@ -26,8 +26,8 @@ export class ElderMultiSelectBase extends ElderSelectBase {
|
|
|
26
26
|
* Constructor *
|
|
27
27
|
* *
|
|
28
28
|
**************************************************************************/
|
|
29
|
-
constructor(zone, hostRef, controlType, focusMonitor, dialogService, ngControl) {
|
|
30
|
-
super(zone, hostRef, controlType, focusMonitor, ngControl);
|
|
29
|
+
constructor(zone, hostRef, controlType, focusMonitor, translateService, dialogService, ngControl) {
|
|
30
|
+
super(zone, hostRef, controlType, focusMonitor, translateService, ngControl);
|
|
31
31
|
this.dialogService = dialogService;
|
|
32
32
|
/***************************************************************************
|
|
33
33
|
* *
|
|
@@ -72,18 +72,22 @@ export class ElderMultiSelectBase extends ElderSelectBase {
|
|
|
72
72
|
return this._entityIds$;
|
|
73
73
|
}
|
|
74
74
|
set entities(entities) {
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
if (!this.equalEntities(this.entities, entities)) {
|
|
76
|
+
entities = this.writeEntitiesSorted(entities);
|
|
77
|
+
this.writeValueInternal(this.entitiesToValues(entities));
|
|
78
|
+
}
|
|
77
79
|
}
|
|
78
80
|
get entities() {
|
|
79
81
|
return this._entities$.getValue();
|
|
80
82
|
}
|
|
81
83
|
set entityIds(ids) {
|
|
82
|
-
if (this.
|
|
83
|
-
this.
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
84
|
+
if (!this.equalIds(this.entityIds, ids)) {
|
|
85
|
+
if (this.valueAsId) {
|
|
86
|
+
this.writeValueInternal(ids);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
this.selectEntitiesByIds(ids);
|
|
90
|
+
}
|
|
87
91
|
}
|
|
88
92
|
}
|
|
89
93
|
get entityIds() {
|
|
@@ -180,6 +184,9 @@ export class ElderMultiSelectBase extends ElderSelectBase {
|
|
|
180
184
|
* Internal Methods *
|
|
181
185
|
* *
|
|
182
186
|
**************************************************************************/
|
|
187
|
+
valuesEquals(a, b) {
|
|
188
|
+
return this.equalIds(this.entityIdsFromValues(a), this.entityIdsFromValues(b));
|
|
189
|
+
}
|
|
183
190
|
onDataContextChanged(data) {
|
|
184
191
|
if (this.valueAsId) {
|
|
185
192
|
this.selectEntitiesByIds(this.entityIds);
|
|
@@ -258,35 +265,36 @@ export class ElderMultiSelectBase extends ElderSelectBase {
|
|
|
258
265
|
}
|
|
259
266
|
selectEntitiesByIds(ids) {
|
|
260
267
|
const currentEntities = this.entities;
|
|
261
|
-
this.logger.info('selectEntitiesByIds: ids' + ids + ', current entities:', currentEntities);
|
|
268
|
+
this.logger.info('selectEntitiesByIds: ids: ' + ids + ', current entities:', currentEntities);
|
|
262
269
|
if (currentEntities && this.equalIds(this.getEntityIds(currentEntities), ids)) {
|
|
263
270
|
return; // Entities already loaded
|
|
264
271
|
}
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
272
|
+
this.findOrLoadEntitiesByIds(ids)
|
|
273
|
+
.subscribe({
|
|
274
|
+
next: entities => this.entities = entities,
|
|
275
|
+
error: err => this.updateState(ElderSelectComponentState.error(err))
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
findOrLoadEntitiesByIds(ids) {
|
|
279
|
+
if (ids.length == 0) {
|
|
280
|
+
return of([]);
|
|
281
|
+
}
|
|
282
|
+
if (this.dataContext) {
|
|
283
|
+
const existing = this.findInDataContext(ids);
|
|
284
|
+
const missingIds = ids.filter(id => !existing.has(id));
|
|
285
|
+
const valueLoadRequest$ = missingIds.length > 0 ? this.loadEntitiesByIds(missingIds) : of(new Map());
|
|
286
|
+
return valueLoadRequest$.pipe(map(loaded => {
|
|
287
|
+
loaded.forEach((v, k) => existing.set(k, v));
|
|
288
|
+
return existing;
|
|
289
|
+
}), map(allValuesMap => Array.from(allValuesMap.values())) // TODO Sort?
|
|
290
|
+
);
|
|
269
291
|
}
|
|
270
292
|
else {
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
const missingIds = ids.filter(id => !existing.has(id));
|
|
274
|
-
const valueLoadRequest$ = missingIds.length > 0 ? this.loadEntityByIds(missingIds) : of(new Map());
|
|
275
|
-
valueLoadRequest$.pipe(map(loaded => {
|
|
276
|
-
loaded.forEach((v, k) => existing.set(k, v));
|
|
277
|
-
return existing;
|
|
278
|
-
}), map(allValuesMap => Array.from(allValuesMap.values())) // TODO Sort?
|
|
279
|
-
).subscribe({
|
|
280
|
-
next: entities => this.entities = entities,
|
|
281
|
-
error: err => this.updateState(ElderSelectComponentState.error(err))
|
|
282
|
-
});
|
|
283
|
-
}
|
|
284
|
-
else {
|
|
285
|
-
this.logger.warn('Failed to select value by Ids: ' + ids + ' - DataContext not available.');
|
|
286
|
-
}
|
|
293
|
+
this.logger.warn('Failed to select value by Ids: ' + ids + ' - DataContext not available.');
|
|
294
|
+
return EMPTY;
|
|
287
295
|
}
|
|
288
296
|
}
|
|
289
|
-
|
|
297
|
+
loadEntitiesByIds(ids) {
|
|
290
298
|
return this.dataContext.dataSource.findByIds(ids).pipe(catchError(err => {
|
|
291
299
|
this.logger.error('Failed to load entities by ids: ' + ids, err);
|
|
292
300
|
return throwError(err);
|
|
@@ -324,11 +332,11 @@ export class ElderMultiSelectBase extends ElderSelectBase {
|
|
|
324
332
|
return entities;
|
|
325
333
|
}
|
|
326
334
|
}
|
|
327
|
-
ElderMultiSelectBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0
|
|
328
|
-
ElderMultiSelectBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0
|
|
329
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0
|
|
335
|
+
ElderMultiSelectBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ElderMultiSelectBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
336
|
+
ElderMultiSelectBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.0", type: ElderMultiSelectBase, inputs: { entitiesSorts: "entitiesSorts", confirmRemoval: "confirmRemoval", entities: "entities", entityIds: "entityIds" }, outputs: { entityIdsChange: "entityIdsChange", entitiesChange: "entitiesChange", entityIdsUpdated: "entityIdsUpdated", entitiesUpdated: "entitiesUpdated" }, usesInheritance: true, ngImport: i0 });
|
|
337
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ElderMultiSelectBase, decorators: [{
|
|
330
338
|
type: Directive
|
|
331
|
-
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: undefined }, { type: i1.FocusMonitor }, { type: i2.
|
|
339
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: undefined }, { type: i1.FocusMonitor }, { type: i2.TranslateService }, { type: i3.ElderDialogService }, { type: i4.NgControl }]; }, propDecorators: { entitiesSorts: [{
|
|
332
340
|
type: Input
|
|
333
341
|
}], confirmRemoval: [{
|
|
334
342
|
type: Input
|
|
@@ -345,4 +353,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImpor
|
|
|
345
353
|
}], entityIds: [{
|
|
346
354
|
type: Input
|
|
347
355
|
}] } });
|
|
348
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9tdWx0aS9lbGRlci1tdWx0aS1zZWxlY3QtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFDLGVBQWUsRUFBRSx5QkFBeUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRWhGLE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUtyRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUNBQWlDLENBQUM7Ozs7O0FBS3pEOzs7Ozs7OztHQVFHO0FBRUgsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBZ0Isb0JBQ3BCLFNBQVEsZUFBdUM7SUFpRC9DOzs7O2dGQUk0RTtJQUU1RSxZQUNFLElBQVksRUFDWixPQUFtQixFQUNuQixXQUFtQixFQUNuQixZQUEwQixFQUNULGFBQWlDLEVBQ2xELFNBQXFCO1FBRXJCLEtBQUssQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVB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QUFtQjtRQUN0QyxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuRSxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDL0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFO2dCQUMvQyxnRUFBZ0U7Z0JBQ2hFLE9BQU8sTUFBTSxDQUFDO2FBQ2Y7U0FDRjtRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7O2lIQTFabUIsb0JBQW9CO3FHQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFGekMsU0FBUzsrTkF1QkQsYUFBYTtzQkFEbkIsS0FBSztnQkFRQyxjQUFjO3NCQURwQixLQUFLO2dCQUlVLGVBQWU7c0JBRDlCLE1BQU07Z0JBSVMsY0FBYztzQkFEN0IsTUFBTTtnQkFRUyxnQkFBZ0I7c0JBRC9CLE1BQU07Z0JBUVMsZUFBZTtzQkFEOUIsTUFBTTtnQkFxRUksUUFBUTtzQkFEbEIsS0FBSztnQkFhSyxTQUFTO3NCQURuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBOZ1pvbmUsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VsZGVyU2VsZWN0QmFzZSwgRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZX0gZnJvbSAnLi4vZWxkZXItc2VsZWN0LWJhc2UnO1xuaW1wb3J0IHtJRGF0YUNvbnRleHR9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIEVNUFRZLCBPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIHNraXAsIHN3aXRjaE1hcCwgdGFrZSwgdGFwLCB0aW1lb3V0fSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1NldHN9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9zZXRzJztcbmltcG9ydCB7Q29sbGVjdGlvblV0aWx9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi91dGlscy9jb2xsZWN0aW9uLXV0aWwnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Rm9jdXNNb25pdG9yfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge0lFbGRlck11bHRpRW50aXR5VmFsdWVBY2Nlc3Nvcn0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2Zvcm1zL2VsZGVyLW11bHRpLWVudGl0eS12YWx1ZS1hY2Nlc3Nvcic7XG5pbXBvcnQge1NvcnR9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9kYXRhL3NvcnQnO1xuaW1wb3J0IHtTb3J0VXRpbH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWxzL3NvcnQtdXRpbCc7XG5pbXBvcnQge0VsZGVyRGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vZGlhbG9ncy9lbGRlci1kaWFsb2cuc2VydmljZSc7XG5pbXBvcnQge01hdENoaXBFdmVudH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuXG5cbi8qKlxuICogQmFzZSBjb21wb25lbnQgaW1wbGVtZW50YXRpb24gb2YgZWxkZXItbXVsdGktc2VsZWN0LlxuICpcbiAqIE11bHRpIFNlbGVjdCBoYXMgdGhlIGZvbGxvd2luZyBhYnN0cmFjdCBjb25jZXB0OlxuICpcbiAqIC0gU3VnZ2VzdGlvbi1Nb2RlbDogQSBEYXRhU291cmNlIGFuZCBkZXJpdmVkIERhdGFDb250ZXh0IGZvciB0aGUgKGF1dG8tY29tcGxldGUpIHN1Z2dlc3Rpb25zLlxuICogLSBUaGUgYmFja2luZyBWYWx1ZSBpcyBhIGxpc3Qgb2YgdGhlIGN1cnJlbnQgc2VsZWN0ZWQgZW50aXRpZXMuIFRbXVxuICpcbiAqL1xuQERpcmVjdGl2ZSgpXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbGRlck11bHRpU2VsZWN0QmFzZTxUSWQsIFRFbnRpdHksIFRWYWx1ZT5cbiAgZXh0ZW5kcyBFbGRlclNlbGVjdEJhc2U8VElkLCBURW50aXR5LCBUVmFsdWVbXT5cbiAgaW1wbGVtZW50cyBJRWxkZXJNdWx0aUVudGl0eVZhbHVlQWNjZXNzb3I8VEVudGl0eSwgVElkLCBUVmFsdWU+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZW50aXR5SWRzJDogT2JzZXJ2YWJsZTxUSWRbXT47XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VudGl0aWVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VEVudGl0eVtdPihbXSk7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgaG93IHRoZSBlbnRpdGllcyBzaG91bGQgYmUgc29ydGVkIGxvY2FsbHkuXG4gICAqIFRoaXMgYWZmZWN0cyBob3cgZW50aXRpZXMgYXJlIGRpc3BsYXllZCB3aGVuIG1vcmUgdGhhblxuICAgKiBvbmUgaXMgc2VsZWN0ZWQsIHN1Y2ggYXMgaW4gYSBjaGlwIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZW50aXRpZXNTb3J0czogU29ydFtdID0gW107XG5cbiAgLyoqXG4gICAqIElmIGVuYWJsZWQsIGJlZm9yZSByZW1vdmluZyBzZWxlY3RlZCBlbnRpdGllc1xuICAgKiB0aGUgdXNlciB3aWxsIGJlIHByb21wdGVkIHRvIGNvbmZpcm0uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgY29uZmlybVJlbW92YWwgPSBmYWxzZTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGVudGl0eUlkc0NoYW5nZTogT2JzZXJ2YWJsZTxUSWRbXT47XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBlbnRpdGllc0NoYW5nZTogT2JzZXJ2YWJsZTxURW50aXR5W10+O1xuXG4gIC8qKlxuICAgKiBTaW1pbGFyIHRvIGVudGl0eS1pZCBjaGFuZ2UsIGJ1dCBlbWl0cyBvbmx5IHdoZW4gdGhlIHVzZXJcbiAgICogaGFzIHVwZGF0ZWQgdGhlIHZhbHVlLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBlbnRpdHlJZHNVcGRhdGVkOiBPYnNlcnZhYmxlPFRJZFtdPjtcblxuICAvKipcbiAgICogU2ltaWxhciB0byBlbnRpdHkgY2hhbmdlLCBidXQgZW1pdHMgb25seSB3aGVuIHRoZSB1c2VyXG4gICAqIGhhcyB1cGRhdGVkIHRoZSB2YWx1ZS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgZW50aXRpZXNVcGRhdGVkOiBPYnNlcnZhYmxlPFRFbnRpdHlbXT47XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHpvbmU6IE5nWm9uZSxcbiAgICBob3N0UmVmOiBFbGVtZW50UmVmLFxuICAgIGNvbnRyb2xUeXBlOiBzdHJpbmcsXG4gICAgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlOiBFbGRlckRpYWxvZ1NlcnZpY2UsXG4gICAgbmdDb250cm9sPzogTmdDb250cm9sXG4gICkge1xuICAgIHN1cGVyKHpvbmUsIGhvc3RSZWYsIGNvbnRyb2xUeXBlLCBmb2N1c01vbml0b3IsIG5nQ29udHJvbCk7XG5cbiAgICB0aGlzLmVudGl0eUlkc0NoYW5nZSA9IHRoaXMudmFsdWVDaGFuZ2UucGlwZShcbiAgICAgIG1hcCh2YWx1ZXMgPT4gdGhpcy5lbnRpdHlJZHNGcm9tVmFsdWVzKHZhbHVlcykpXG4gICAgKTtcblxuICAgIHRoaXMuX2VudGl0eUlkcyQgPSB0aGlzLnZhbHVlJC5waXBlKFxuICAgICAgbWFwKHZhbHVlcyA9PiB0aGlzLmVudGl0eUlkc0Zyb21WYWx1ZXModmFsdWVzKSlcbiAgICApO1xuXG4gICAgdGhpcy5lbnRpdGllc0NoYW5nZSA9IHRoaXMuX2VudGl0aWVzJC5waXBlKFxuICAgICAgc2tpcCgxKSAvLyBTa2lwIHRoZSBpbml0aWFsIG9yIGN1cnJlbnQgdmFsdWVcbiAgICApO1xuXG4gICAgdGhpcy5lbnRpdHlJZHNVcGRhdGVkID0gdGhpcy52YWx1ZVVwZGF0ZWQucGlwZShcbiAgICAgIG1hcCh2YWx1ZXMgPT4gdGhpcy5lbnRpdHlJZHNGcm9tVmFsdWVzKHZhbHVlcykpXG4gICAgKTtcblxuICAgIHRoaXMuZW50aXRpZXNVcGRhdGVkID0gdGhpcy5lbnRpdHlJZHNVcGRhdGVkLnBpcGUoXG4gICAgICB0YXAoZW50aXR5SWRzID0+IHRoaXMubG9nZ2VyLmRlYnVnKCdBd2FpdGluZyBlbnRpdGllcyB3aXRoIGlkcycsIGVudGl0eUlkcykpLFxuICAgICAgc3dpdGNoTWFwKGVudGl0eUlkcyA9PiB0aGlzLmF3YWl0RW50aXRpZXNXaXRoSWQoZW50aXR5SWRzLCB0aGlzLnRpbWVvdXRBZnRlck1zKSksXG4gICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLndhcm4oYGF3YWl0RW50aXRpZXNXaXRoSWQgLT4gdGltZWQgb3V0IGFmdGVyOiAke3RoaXMudGltZW91dEFmdGVyTXN9YCwgZXJyKTtcbiAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhd2FpdEVudGl0aWVzV2l0aElkKGVudGl0eUlkczogVElkW10sIHRpbWVvdXRNczogbnVtYmVyKTogT2JzZXJ2YWJsZTxURW50aXR5W10+IHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXRpZXMkLnBpcGUoXG4gICAgICB0YXAoZW50aXRpZXMgPT4gdGhpcy5sb2dnZXIuZGVidWcoJ0dvdCBlbnRpdGllcyBmb3IgaWRzJyArIGVudGl0eUlkcywgZW50aXRpZXMpKSxcbiAgICAgIGZpbHRlcihlbnRpdGllcyA9PiB0aGlzLmVxdWFsSWRzKHRoaXMuZ2V0RW50aXR5SWRzKGVudGl0aWVzKSwgZW50aXR5SWRzKSksXG4gICAgICB0YWtlKDEpLFxuICAgICAgdGltZW91dCh0aW1lb3V0TXMpXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgZW50aXRpZXMkKCk6IE9ic2VydmFibGU8VEVudGl0eVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0aWVzJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW50aXR5SWRzJCgpOiBPYnNlcnZhYmxlPFRJZFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eUlkcyQ7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGVudGl0aWVzKGVudGl0aWVzOiBURW50aXR5W10pIHtcbiAgICBlbnRpdGllcyA9IHRoaXMud3JpdGVFbnRpdGllc1NvcnRlZChlbnRpdGllcyk7XG4gICAgdGhpcy53cml0ZVZhbHVlSW50ZXJuYWwoXG4gICAgICB0aGlzLmVudGl0aWVzVG9WYWx1ZXMoZW50aXRpZXMpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW50aXRpZXMoKTogVEVudGl0eVtdIHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXRpZXMkLmdldFZhbHVlKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGVudGl0eUlkcyhpZHM6IFRJZFtdKSB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICB0aGlzLndyaXRlVmFsdWVJbnRlcm5hbCg8YW55PmlkcyBhcyBUVmFsdWVbXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0RW50aXRpZXNCeUlkcyhpZHMpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZW50aXR5SWRzKCk6IFRJZFtdIHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlJZHNGcm9tVmFsdWVzKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGdldCBpc09wdGlvbkRpc2FibGVkSW50ZXJuYWxGbigpOiAob3B0aW9uOiBURW50aXR5KSA9PiBib29sZWFuIHtcbiAgICByZXR1cm4gKG9wdGlvbjogVEVudGl0eSkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNPcHRpb25EaXNhYmxlZEZuKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzT3B0aW9uRGlzYWJsZWRGbihvcHRpb24pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzT3B0aW9uSGlkZGVuSW50ZXJuYWxGbigpOiAob3B0aW9uOiBURW50aXR5KSA9PiBib29sZWFuIHtcbiAgICByZXR1cm4gKG9wdGlvbjogVEVudGl0eSkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNBbHJlYWR5UHJlc2VudChvcHRpb24pKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaXNPcHRpb25IaWRkZW5Gbikge1xuICAgICAgICByZXR1cm4gdGhpcy5pc09wdGlvbkhpZGRlbkZuKG9wdGlvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyB1cGRhdGVWYWx1ZUJ5RW50aXRpZXMoZW50aXRpZXM6IFRFbnRpdHlbXSk6IHZvaWQge1xuICAgIGVudGl0aWVzID0gdGhpcy53cml0ZUVudGl0aWVzU29ydGVkKGVudGl0aWVzKTtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKFxuICAgICAgdGhpcy5lbnRpdGllc1RvVmFsdWVzKGVudGl0aWVzKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXBwZW5kRW50aXRpZXMobmV3RW50aXRpZXM6IFRFbnRpdHlbXSkge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmVudGl0aWVzID8gdGhpcy5lbnRpdGllcyA6IFtdO1xuICAgIHRoaXMudXBkYXRlVmFsdWVCeUVudGl0aWVzKFsuLi5jdXJyZW50LCAuLi5uZXdFbnRpdGllc10pO1xuICB9XG5cbiAgcHVibGljIGFwcGVuZEVudGl0eShuZXdFbnRpdHk6IGFueSkge1xuICAgIHRoaXMuYXBwZW5kRW50aXRpZXMoW25ld0VudGl0eV0pO1xuICB9XG5cbiAgcHVibGljIHJlcXVlc3RSZW1vdmVFbnRpdHkodG9SZW1vdmU6IFRFbnRpdHksIHNraXBDb25maXJtPzogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMucmVxdWVzdFJlbW92ZUVudGl0aWVzKFt0b1JlbW92ZV0sIHNraXBDb25maXJtKTtcbiAgfVxuXG4gIHB1YmxpYyByZXF1ZXN0UmVtb3ZlRW50aXRpZXMoXG4gICAgdG9SZW1vdmU6IFRFbnRpdHlbXSxcbiAgICBza2lwQ29uZmlybT86IGJvb2xlYW5cbiAgKTogdm9pZCB7XG4gICAgaWYgKCFza2lwQ29uZmlybSAmJiB0aGlzLmNvbmZpcm1SZW1vdmFsKSB7XG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2VcbiAgICAgICAgLnNob3dDb25maXJtKHtcbiAgICAgICAgICB0aXRsZTogJ2RpYWxvZ3MuY29uZmlybS1kZWxldGlvbi50aXRsZScsXG4gICAgICAgICAgbWVzc2FnZTogJ2RpYWxvZ3MuY29uZmlybS1kZWxldGlvbi5tZXNzYWdlJyxcbiAgICAgICAgICB5ZXNObzogdHJ1ZSxcbiAgICAgICAgICBpbnRlcnBvbGF0ZVBhcmFtczogeyBudW1PZkl0ZW1zOiB0b1JlbW92ZS5sZW5ndGggfSxcbiAgICAgICAgfSlcbiAgICAgICAgLnN1YnNjcmliZSgoY29uZmlybWVkKSA9PiB7XG4gICAgICAgICAgaWYgKGNvbmZpcm1lZCkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVFbnRpdGllcyh0b1JlbW92ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW1vdmVFbnRpdGllcyh0b1JlbW92ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbW92ZUVudGl0aWVzKHRvUmVtb3ZlOiBURW50aXR5W10pOiB2b2lkIHtcbiAgICB0b1JlbW92ZS5mb3JFYWNoKGUgPT4gdGhpcy5yZW1vdmVFbnRpdHkoZSkpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUVudGl0eSh0b1JlbW92ZTogVEVudGl0eSk6IHZvaWQge1xuICAgIGNvbnN0IHJlbWFpbmluZyA9IHRoaXMuZW50aXRpZXNcbiAgICAgIC5maWx0ZXIobCA9PiAhdGhpcy5pc0VxdWFsKGwsIHRvUmVtb3ZlKSk7XG4gICAgdGhpcy51cGRhdGVWYWx1ZUJ5RW50aXRpZXMocmVtYWluaW5nKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuU2VsZWN0aW9uUG9wdXAoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uUG9wdXApIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uUG9wdXAuY2hvb3NlKFxuICAgICAgICAoZTogVEVudGl0eSkgPT4gdGhpcy5nZXRFbnRpdHlJZChlKSxcbiAgICAgICAgdGhpcy5lbnRpdGllcyxcbiAgICAgICAgdGhpcy5maWx0ZXJzLFxuICAgICAgICB0aGlzLnNvcnRzLFxuICAgICAgICB0cnVlXG4gICAgICApLnN1YnNjcmliZShcbiAgICAgICAgKHNlbGVjdGlvbjogVEVudGl0eVtdKSA9PiB0aGlzLnVwZGF0ZVZhbHVlQnlFbnRpdGllcyhzZWxlY3Rpb24pXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKCdDYW50IG9wZW4gc2VsZWN0aW9uIGJyb3dzZXIgcG9wdXAsIHNpbmNlIFtTZWxlY3Rpb25Nb2RlbFBvcHVwRGlyZWN0aXZlXSB3YXMgbm90IGZvdW5kIScpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbnRpdHlUb1ZhbHVlKGVudGl0eTogVEVudGl0eSk6IFRWYWx1ZSB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICBjb25zdCBpZCA9IHRoaXMuZ2V0RW50aXR5SWQoZW50aXR5KTtcbiAgICAgIHJldHVybiA8YW55PmlkIGFzIFRWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDxhbnk+ZW50aXR5IGFzIFRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogSW50ZXJuYWwgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgb25EYXRhQ29udGV4dENoYW5nZWQoZGF0YTogSURhdGFDb250ZXh0PFRFbnRpdHk+KTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICB0aGlzLnNlbGVjdEVudGl0aWVzQnlJZHModGhpcy5lbnRpdHlJZHMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBpcyBpbnZva2VkIGFmdGVyIGEgdmFsdWUgaGFzIGJlZW4gd3JpdHRlbiB0byB0aGlzIGNvbnRyb2wuXG4gICAqXG4gICAqL1xuICBwcm90ZWN0ZWQgd3JpdGVUb0NvbnRyb2wodmFsdWU6IFRWYWx1ZVtdKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICBjb25zdCBlbnRpdHlJZHMgPSA8YW55PnZhbHVlIGFzIFRJZFtdO1xuICAgICAgLy8gVmFsdWUgd2FzIHdyaXR0ZW4gYXMgZW50aXR5IGlkcywgZW5zdXJlIHdlIHNlbGVjdCBlbnRpdHkgYnkgaWRcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd3cml0ZVRvQ29udHJvbDogdmFsdWUgd2FzIHdyaXR0ZW4gYXMgaWRzOiAnICsgZW50aXR5SWRzLCB2YWx1ZSk7XG4gICAgICB0aGlzLnNlbGVjdEVudGl0aWVzQnlJZHMoZW50aXR5SWRzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVmFsdWUgd2FzIHdyaXR0ZW4gYXMgZW50aXR5LCBlbnN1cmUgZW50aXR5IGlzIHVwZGF0ZWRcbiAgICAgIGNvbnN0IGN1cnJlbnRFbnRpdGllcyA9IHRoaXMuZW50aXRpZXM7XG4gICAgICBjb25zdCBuZXdFbnRpdGllcyA9IDxhbnk+dmFsdWUgYXMgVEVudGl0eVtdO1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3dyaXRlVG9Db250cm9sOiB2YWx1ZSB3YXMgd3JpdHRlbiBhcyBlbnRpdGllcyAoc2l6ZSk6ICcgKyBuZXdFbnRpdGllcz8ubGVuZ3RoLCB2YWx1ZSk7XG4gICAgICBpZiAoIXRoaXMuZXF1YWxFbnRpdGllcyhjdXJyZW50RW50aXRpZXMsIG5ld0VudGl0aWVzKSkge1xuICAgICAgICB0aGlzLndyaXRlRW50aXRpZXNTb3J0ZWQobmV3RW50aXRpZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybignSWdub3JlZCB3cml0dGVuIGVudGl0aWVzIGFzIHRoZXkgYXJlIGFscmVhZHkgc2V0IHRvIGVudGl0aWVzJCEnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgc3VwZXIud3JpdGVUb0NvbnRyb2wodmFsdWUpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuICBwcml2YXRlIGlzQWxyZWFkeVByZXNlbnQocXVlcnlWYWx1ZTogVEVudGl0eSk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmVudGl0aWVzKSB7XG4gICAgICByZXR1cm4gdGhpcy5lbnRpdGllcy5zb21lKHYgPT4gdGhpcy5pc0VxdWFsKHYsIHF1ZXJ5VmFsdWUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW50aXR5SWRzRnJvbVZhbHVlcyh2YWx1ZXM6IFRWYWx1ZVtdKTogVElkW10gfCBudWxsIHtcbiAgICBpZiAodmFsdWVzKSB7XG4gICAgICByZXR1cm4gdmFsdWVzLm1hcCh2ID0+IHRoaXMuZW50aXR5SWRGcm9tVmFsdWUodikpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZW50aXR5SWRGcm9tVmFsdWUodmFsdWU6IFRWYWx1ZSk6IFRJZCB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICByZXR1cm4gPGFueT52YWx1ZSBhcyBUSWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGVudGl0eSA9ICg8YW55PnZhbHVlKSBhcyBURW50aXR5O1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RW50aXR5SWQoZW50aXR5KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGVudGl0aWVzVG9WYWx1ZXMoZW50aXRpZXM6IFRFbnRpdHlbXSk6IFRWYWx1ZVtdIHwgbnVsbCB7XG4gICAgaWYgKGVudGl0aWVzKSB7XG4gICAgICByZXR1cm4gZW50aXRpZXMubWFwKGUgPT4gdGhpcy5lbnRpdHlUb1ZhbHVlKGUpKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGdldEVudGl0eUlkcyh2YWx1ZXM6IFRFbnRpdHlbXSB8IG51bGwpOiBUSWRbXSB7XG4gICAgaWYgKHZhbHVlcykge1xuICAgICAgcmV0dXJuIHZhbHVlcy5tYXAodiA9PiB0aGlzLmdldEVudGl0eUlkKHYpKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGVxdWFsSWRzKGlkc0E6IFRJZFtdLCBpZHNCOiBUSWRbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBTZXRzLmVxdWFsQ29udGVudChpZHNBLCBpZHNCKTtcbiAgfVxuXG4gIHByaXZhdGUgZXF1YWxFbnRpdGllcyhlbnRpdGllc0E6IFRFbnRpdHlbXSwgZW50aXRpZXNCOiBURW50aXR5W10pIHtcbiAgICByZXR1cm4gdGhpcy5lcXVhbElkcyh0aGlzLmdldEVudGl0eUlkcyhlbnRpdGllc0EpLCB0aGlzLmdldEVudGl0eUlkcyhlbnRpdGllc0IpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0RW50aXRpZXNCeUlkcyhpZHM6IFRJZFtdKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudEVudGl0aWVzID0gdGhpcy5lbnRpdGllcztcbiAgICB0aGlzLmxvZ2dlci5pbmZvKCdzZWxlY3RFbnRpdGllc0J5SWRzOiBpZHMnICsgaWRzICsgJywgY3VycmVudCBlbnRpdGllczonLCBjdXJyZW50RW50aXRpZXMpO1xuICAgIGlmIChjdXJyZW50RW50aXRpZXMgJiYgdGhpcy5lcXVhbElkcyh0aGlzLmdldEVudGl0eUlkcyhjdXJyZW50RW50aXRpZXMpLCBpZHMpKSB7XG4gICAgICByZXR1cm47IC8vIEVudGl0aWVzIGFscmVhZHkgbG9hZGVkXG4gICAgfVxuXG4gICAgaWYgKCFDb2xsZWN0aW9uVXRpbC5oYXNFbGVtZW50cyhpZHMpKSB7XG4gICAgICBpZiAoQ29sbGVjdGlvblV0aWwuaGFzRWxlbWVudHMoY3VycmVudEVudGl0aWVzKSkge1xuICAgICAgICB0aGlzLndyaXRlVmFsdWVJbnRlcm5hbChbXSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmRhdGFDb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nID0gdGhpcy5maW5kSW5EYXRhQ29udGV4dChpZHMpO1xuICAgICAgICBjb25zdCBtaXNzaW5nSWRzID0gaWRzLmZpbHRlcihpZCA9PiAhZXhpc3RpbmcuaGFzKGlkKSk7XG4gICAgICAgIGNvbnN0IHZhbHVlTG9hZFJlcXVlc3QkID0gbWlzc2luZ0lkcy5sZW5ndGggPiAwID8gdGhpcy5sb2FkRW50aXR5QnlJZHMobWlzc2luZ0lkcykgOiBvZihuZXcgTWFwKCkpO1xuXG4gICAgICAgIHZhbHVlTG9hZFJlcXVlc3QkLnBpcGUoXG4gICAgICAgICAgbWFwKGxvYWRlZCA9PiB7XG4gICAgICAgICAgICBsb2FkZWQuZm9yRWFjaCgodiwgaykgPT4gZXhpc3Rpbmcuc2V0KGssIHYpKTtcbiAgICAgICAgICAgIHJldHVybiBleGlzdGluZztcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBtYXAoYWxsVmFsdWVzTWFwID0+IEFycmF5LmZyb20oYWxsVmFsdWVzTWFwLnZhbHVlcygpKSkgLy8gVE9ETyBTb3J0P1xuICAgICAgICApLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogZW50aXRpZXMgPT4gdGhpcy5lbnRpdGllcyA9IGVudGl0aWVzLFxuICAgICAgICAgIGVycm9yOiBlcnIgPT4gdGhpcy51cGRhdGVTdGF0ZShFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlLmVycm9yKGVycikpXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybignRmFpbGVkIHRvIHNlbGVjdCB2YWx1ZSBieSBJZHM6ICcgKyBpZHMgKyAnIC0gRGF0YUNvbnRleHQgbm90IGF2YWlsYWJsZS4nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRFbnRpdHlCeUlkcyhpZHM6IFRJZFtdKTogT2JzZXJ2YWJsZTxNYXA8VElkLCBURW50aXR5Pj4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFDb250ZXh0LmRhdGFTb3VyY2UuZmluZEJ5SWRzKGlkcykucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGVudGl0aWVzIGJ5IGlkczogJyArIGlkcywgZXJyKTtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKHZhbHVlcyA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdMb2FkZWQgZW50aXRpZXMgYnkgaWQ6JywgdmFsdWVzKTtcbiAgICAgICAgY29uc3QgdmFsdWVNYXAgPSBuZXcgTWFwPFRJZCwgVEVudGl0eT4oKTtcbiAgICAgICAgdmFsdWVzLmZvckVhY2godiA9PiB2YWx1ZU1hcC5zZXQodGhpcy5nZXRFbnRpdHlJZCh2KSwgdikpO1xuICAgICAgICByZXR1cm4gdmFsdWVNYXA7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRJbkRhdGFDb250ZXh0KGlkczogVElkW10pOiBNYXA8VElkLCBURW50aXR5PiB7XG4gICAgY29uc3QgZXhpc3RpbmdWYWx1ZXMgPSBuZXcgTWFwPFRJZCwgVEVudGl0eT4oKTtcbiAgICBpZiAoaWRzPy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5kYXRhQ29udGV4dC5zbmFwc2hvdC5kYXRhO1xuICAgICAgY29uc3QgcmVxdWlyZWRJZHMgPSBuZXcgU2V0KGlkcyk7XG4gICAgICBkYXRhXG4gICAgICAgIC5maWx0ZXIoZCA9PiByZXF1aXJlZElkcy5oYXModGhpcy5nZXRFbnRpdHlJZChkKSkpXG4gICAgICAgIC5mb3JFYWNoKGQgPT4gZXhpc3RpbmdWYWx1ZXMuc2V0KHRoaXMuZ2V0RW50aXR5SWQoZCksIGQpKTtcbiAgICB9XG4gICAgcmV0dXJuIGV4aXN0aW5nVmFsdWVzO1xuICB9XG5cbiAgcHJpdmF0ZSB3cml0ZUVudGl0aWVzU29ydGVkKGVudGl0aWVzOiBURW50aXR5W10pOiBURW50aXR5W10ge1xuICAgIGNvbnN0IHNvcnRlZCA9IHRoaXMuc29ydEVudGl0aWVzKGVudGl0aWVzKTtcbiAgICB0aGlzLl9lbnRpdGllcyQubmV4dChzb3J0ZWQpO1xuICAgIHJldHVybiBzb3J0ZWQ7XG4gIH1cblxuICBwcml2YXRlIHNvcnRFbnRpdGllcyhlbnRpdGllczogVEVudGl0eVtdKTogVEVudGl0eVtdIHtcbiAgICBpZiAoZW50aXRpZXMgJiYgdGhpcy5lbnRpdGllc1NvcnRzICYmIHRoaXMuZW50aXRpZXNTb3J0cy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzb3J0ZWQgPSBTb3J0VXRpbC5zb3J0RGF0YShlbnRpdGllcywgdGhpcy5lbnRpdGllc1NvcnRzKTtcbiAgICAgIGlmICghU29ydFV0aWwuZXF1YWxzRXhhY3RSZWZzKGVudGl0aWVzLCBzb3J0ZWQpKSB7XG4gICAgICAgIC8vIE9ubHkgcmV0dXJuIGEgY29weSBvZiB0aGUgYXJyYXkgaWYgYWN0dWFsbHkgc29tZXRoaW5nIGNoYW5nZWRcbiAgICAgICAgcmV0dXJuIHNvcnRlZDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGVudGl0aWVzO1xuICB9XG59XG4iXX0=
|
|
356
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9tdWx0aS9lbGRlci1tdWx0aS1zZWxlY3QtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFDLGVBQWUsRUFBRSx5QkFBeUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRWhGLE9BQU8sRUFBQyxlQUFlLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUYsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBSzFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7O0FBS3pEOzs7Ozs7OztHQVFHO0FBRUgsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBZ0Isb0JBQ3BCLFNBQVEsZUFBdUM7SUFpRC9DOzs7O2dGQUk0RTtJQUU1RSxZQUNFLElBQVksRUFDWixPQUFtQixFQUNuQixXQUFtQixFQUNuQixZQUEwQixFQUMxQixnQkFBa0MsRUFDakIsYUFBaUMsRUFDbEQsU0FBcUI7UUFFckIsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsQ0FB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SW5wdXQsIE5nWm9uZSwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RWxkZXJTZWxlY3RCYXNlLCBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlfSBmcm9tICcuLi9lbGRlci1zZWxlY3QtYmFzZSc7XG5pbXBvcnQge0lEYXRhQ29udGV4dH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L2RhdGEtY29udGV4dCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgRU1QVFksIE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBmaWx0ZXIsIG1hcCwgc2tpcCwgc3dpdGNoTWFwLCB0YWtlLCB0YXAsIHRpbWVvdXR9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7U2V0c30gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3NldHMnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Rm9jdXNNb25pdG9yfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge0lFbGRlck11bHRpRW50aXR5VmFsdWVBY2Nlc3Nvcn0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2Zvcm1zL2VsZGVyLW11bHRpLWVudGl0eS12YWx1ZS1hY2Nlc3Nvcic7XG5pbXBvcnQge1NvcnR9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9kYXRhL3NvcnQnO1xuaW1wb3J0IHtTb3J0VXRpbH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWxzL3NvcnQtdXRpbCc7XG5pbXBvcnQge0VsZGVyRGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vZGlhbG9ncy9lbGRlci1kaWFsb2cuc2VydmljZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5cbi8qKlxuICogQmFzZSBjb21wb25lbnQgaW1wbGVtZW50YXRpb24gb2YgZWxkZXItbXVsdGktc2VsZWN0LlxuICpcbiAqIE11bHRpIFNlbGVjdCBoYXMgdGhlIGZvbGxvd2luZyBhYnN0cmFjdCBjb25jZXB0OlxuICpcbiAqIC0gU3VnZ2VzdGlvbi1Nb2RlbDogQSBEYXRhU291cmNlIGFuZCBkZXJpdmVkIERhdGFDb250ZXh0IGZvciB0aGUgKGF1dG8tY29tcGxldGUpIHN1Z2dlc3Rpb25zLlxuICogLSBUaGUgYmFja2luZyBWYWx1ZSBpcyBhIGxpc3Qgb2YgdGhlIGN1cnJlbnQgc2VsZWN0ZWQgZW50aXRpZXMuIFRbXVxuICpcbiAqL1xuQERpcmVjdGl2ZSgpXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbGRlck11bHRpU2VsZWN0QmFzZTxUSWQsIFRFbnRpdHksIFRWYWx1ZT5cbiAgZXh0ZW5kcyBFbGRlclNlbGVjdEJhc2U8VElkLCBURW50aXR5LCBUVmFsdWVbXT5cbiAgaW1wbGVtZW50cyBJRWxkZXJNdWx0aUVudGl0eVZhbHVlQWNjZXNzb3I8VEVudGl0eSwgVElkLCBUVmFsdWU+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZW50aXR5SWRzJDogT2JzZXJ2YWJsZTxUSWRbXT47XG4gIHByaXZhdGUgcmVhZG9ubHkgX2VudGl0aWVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VEVudGl0eVtdPihbXSk7XG5cbiAgLyoqXG4gICAqIERlZmluZXMgaG93IHRoZSBlbnRpdGllcyBzaG91bGQgYmUgc29ydGVkIGxvY2FsbHkuXG4gICAqIFRoaXMgYWZmZWN0cyBob3cgZW50aXRpZXMgYXJlIGRpc3BsYXllZCB3aGVuIG1vcmUgdGhhblxuICAgKiBvbmUgaXMgc2VsZWN0ZWQsIHN1Y2ggYXMgaW4gYSBjaGlwIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZW50aXRpZXNTb3J0czogU29ydFtdID0gW107XG5cbiAgLyoqXG4gICAqIElmIGVuYWJsZWQsIGJlZm9yZSByZW1vdmluZyBzZWxlY3RlZCBlbnRpdGllc1xuICAgKiB0aGUgdXNlciB3aWxsIGJlIHByb21wdGVkIHRvIGNvbmZpcm0uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgY29uZmlybVJlbW92YWwgPSBmYWxzZTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGVudGl0eUlkc0NoYW5nZTogT2JzZXJ2YWJsZTxUSWRbXT47XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBlbnRpdGllc0NoYW5nZTogT2JzZXJ2YWJsZTxURW50aXR5W10+O1xuXG4gIC8qKlxuICAgKiBTaW1pbGFyIHRvIGVudGl0eS1pZCBjaGFuZ2UsIGJ1dCBlbWl0cyBvbmx5IHdoZW4gdGhlIHVzZXJcbiAgICogaGFzIHVwZGF0ZWQgdGhlIHZhbHVlLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyByZWFkb25seSBlbnRpdHlJZHNVcGRhdGVkOiBPYnNlcnZhYmxlPFRJZFtdPjtcblxuICAvKipcbiAgICogU2ltaWxhciB0byBlbnRpdHkgY2hhbmdlLCBidXQgZW1pdHMgb25seSB3aGVuIHRoZSB1c2VyXG4gICAqIGhhcyB1cGRhdGVkIHRoZSB2YWx1ZS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgZW50aXRpZXNVcGRhdGVkOiBPYnNlcnZhYmxlPFRFbnRpdHlbXT47XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHpvbmU6IE5nWm9uZSxcbiAgICBob3N0UmVmOiBFbGVtZW50UmVmLFxuICAgIGNvbnRyb2xUeXBlOiBzdHJpbmcsXG4gICAgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1NlcnZpY2U6IEVsZGVyRGlhbG9nU2VydmljZSxcbiAgICBuZ0NvbnRyb2w/OiBOZ0NvbnRyb2xcbiAgKSB7XG4gICAgc3VwZXIoem9uZSwgaG9zdFJlZiwgY29udHJvbFR5cGUsIGZvY3VzTW9uaXRvciwgdHJhbnNsYXRlU2VydmljZSwgbmdDb250cm9sKTtcblxuICAgIHRoaXMuZW50aXR5SWRzQ2hhbmdlID0gdGhpcy52YWx1ZUNoYW5nZS5waXBlKFxuICAgICAgbWFwKHZhbHVlcyA9PiB0aGlzLmVudGl0eUlkc0Zyb21WYWx1ZXModmFsdWVzKSlcbiAgICApO1xuXG4gICAgdGhpcy5fZW50aXR5SWRzJCA9IHRoaXMudmFsdWUkLnBpcGUoXG4gICAgICBtYXAodmFsdWVzID0+IHRoaXMuZW50aXR5SWRzRnJvbVZhbHVlcyh2YWx1ZXMpKVxuICAgICk7XG5cbiAgICB0aGlzLmVudGl0aWVzQ2hhbmdlID0gdGhpcy5fZW50aXRpZXMkLnBpcGUoXG4gICAgICBza2lwKDEpIC8vIFNraXAgdGhlIGluaXRpYWwgb3IgY3VycmVudCB2YWx1ZVxuICAgICk7XG5cbiAgICB0aGlzLmVudGl0eUlkc1VwZGF0ZWQgPSB0aGlzLnZhbHVlVXBkYXRlZC5waXBlKFxuICAgICAgbWFwKHZhbHVlcyA9PiB0aGlzLmVudGl0eUlkc0Zyb21WYWx1ZXModmFsdWVzKSlcbiAgICApO1xuXG4gICAgdGhpcy5lbnRpdGllc1VwZGF0ZWQgPSB0aGlzLmVudGl0eUlkc1VwZGF0ZWQucGlwZShcbiAgICAgIHRhcChlbnRpdHlJZHMgPT4gdGhpcy5sb2dnZXIuZGVidWcoJ0F3YWl0aW5nIGVudGl0aWVzIHdpdGggaWRzJywgZW50aXR5SWRzKSksXG4gICAgICBzd2l0Y2hNYXAoZW50aXR5SWRzID0+IHRoaXMuYXdhaXRFbnRpdGllc1dpdGhJZChlbnRpdHlJZHMsIHRoaXMudGltZW91dEFmdGVyTXMpKSxcbiAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIud2FybihgYXdhaXRFbnRpdGllc1dpdGhJZCAtPiB0aW1lZCBvdXQgYWZ0ZXI6ICR7dGhpcy50aW1lb3V0QWZ0ZXJNc31gLCBlcnIpO1xuICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGF3YWl0RW50aXRpZXNXaXRoSWQoZW50aXR5SWRzOiBUSWRbXSwgdGltZW91dE1zOiBudW1iZXIpOiBPYnNlcnZhYmxlPFRFbnRpdHlbXT4ge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdGllcyQucGlwZShcbiAgICAgIHRhcChlbnRpdGllcyA9PiB0aGlzLmxvZ2dlci5kZWJ1ZygnR290IGVudGl0aWVzIGZvciBpZHMnICsgZW50aXR5SWRzLCBlbnRpdGllcykpLFxuICAgICAgZmlsdGVyKGVudGl0aWVzID0+IHRoaXMuZXF1YWxJZHModGhpcy5nZXRFbnRpdHlJZHMoZW50aXRpZXMpLCBlbnRpdHlJZHMpKSxcbiAgICAgIHRha2UoMSksXG4gICAgICB0aW1lb3V0KHRpbWVvdXRNcylcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGdldCBlbnRpdGllcyQoKTogT2JzZXJ2YWJsZTxURW50aXR5W10+IHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXRpZXMkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBlbnRpdHlJZHMkKCk6IE9ic2VydmFibGU8VElkW10+IHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5SWRzJDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZW50aXRpZXMoZW50aXRpZXM6IFRFbnRpdHlbXSkge1xuICAgIGlmKCF0aGlzLmVxdWFsRW50aXRpZXModGhpcy5lbnRpdGllcywgZW50aXRpZXMpKSB7XG4gICAgICBlbnRpdGllcyA9IHRoaXMud3JpdGVFbnRpdGllc1NvcnRlZChlbnRpdGllcyk7XG4gICAgICB0aGlzLndyaXRlVmFsdWVJbnRlcm5hbChcbiAgICAgICAgdGhpcy5lbnRpdGllc1RvVmFsdWVzKGVudGl0aWVzKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVudGl0aWVzKCk6IFRFbnRpdHlbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0aWVzJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBlbnRpdHlJZHMoaWRzOiBUSWRbXSkge1xuICAgIGlmKCF0aGlzLmVxdWFsSWRzKHRoaXMuZW50aXR5SWRzLCBpZHMpKSB7XG4gICAgICBpZiAodGhpcy52YWx1ZUFzSWQpIHtcbiAgICAgICAgdGhpcy53cml0ZVZhbHVlSW50ZXJuYWwoPGFueT5pZHMgYXMgVFZhbHVlW10pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RFbnRpdGllc0J5SWRzKGlkcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBlbnRpdHlJZHMoKTogVElkW10ge1xuICAgIHJldHVybiB0aGlzLmVudGl0eUlkc0Zyb21WYWx1ZXModGhpcy52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzT3B0aW9uRGlzYWJsZWRJbnRlcm5hbEZuKCk6IChvcHRpb246IFRFbnRpdHkpID0+IGJvb2xlYW4ge1xuICAgIHJldHVybiAob3B0aW9uOiBURW50aXR5KSA9PiB7XG4gICAgICBpZiAodGhpcy5pc09wdGlvbkRpc2FibGVkRm4pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNPcHRpb25EaXNhYmxlZEZuKG9wdGlvbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNPcHRpb25IaWRkZW5JbnRlcm5hbEZuKCk6IChvcHRpb246IFRFbnRpdHkpID0+IGJvb2xlYW4ge1xuICAgIHJldHVybiAob3B0aW9uOiBURW50aXR5KSA9PiB7XG4gICAgICBpZiAodGhpcy5pc0FscmVhZHlQcmVzZW50KG9wdGlvbikpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5pc09wdGlvbkhpZGRlbkZuKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzT3B0aW9uSGlkZGVuRm4ob3B0aW9uKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHVwZGF0ZVZhbHVlQnlFbnRpdGllcyhlbnRpdGllczogVEVudGl0eVtdKTogdm9pZCB7XG4gICAgZW50aXRpZXMgPSB0aGlzLndyaXRlRW50aXRpZXNTb3J0ZWQoZW50aXRpZXMpO1xuICAgIHRoaXMudXBkYXRlVmFsdWUoXG4gICAgICB0aGlzLmVudGl0aWVzVG9WYWx1ZXMoZW50aXRpZXMpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhcHBlbmRFbnRpdGllcyhuZXdFbnRpdGllczogVEVudGl0eVtdKSB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuZW50aXRpZXMgPyB0aGlzLmVudGl0aWVzIDogW107XG4gICAgdGhpcy51cGRhdGVWYWx1ZUJ5RW50aXRpZXMoWy4uLmN1cnJlbnQsIC4uLm5ld0VudGl0aWVzXSk7XG4gIH1cblxuICBwdWJsaWMgYXBwZW5kRW50aXR5KG5ld0VudGl0eTogYW55KSB7XG4gICAgdGhpcy5hcHBlbmRFbnRpdGllcyhbbmV3RW50aXR5XSk7XG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdFJlbW92ZUVudGl0eSh0b1JlbW92ZTogVEVudGl0eSwgc2tpcENvbmZpcm0/OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5yZXF1ZXN0UmVtb3ZlRW50aXRpZXMoW3RvUmVtb3ZlXSwgc2tpcENvbmZpcm0pO1xuICB9XG5cbiAgcHVibGljIHJlcXVlc3RSZW1vdmVFbnRpdGllcyhcbiAgICB0b1JlbW92ZTogVEVudGl0eVtdLFxuICAgIHNraXBDb25maXJtPzogYm9vbGVhblxuICApOiB2b2lkIHtcbiAgICBpZiAoIXNraXBDb25maXJtICYmIHRoaXMuY29uZmlybVJlbW92YWwpIHtcbiAgICAgIHRoaXMuZGlhbG9nU2VydmljZVxuICAgICAgICAuc2hvd0NvbmZpcm0oe1xuICAgICAgICAgIHRpdGxlOiAnZGlhbG9ncy5jb25maXJtLWRlbGV0aW9uLnRpdGxlJyxcbiAgICAgICAgICBtZXNzYWdlOiAnZGlhbG9ncy5jb25maXJtLWRlbGV0aW9uLm1lc3NhZ2UnLFxuICAgICAgICAgIHllc05vOiB0cnVlLFxuICAgICAgICAgIGludGVycG9sYXRlUGFyYW1zOiB7bnVtT2ZJdGVtczogdG9SZW1vdmUubGVuZ3RofSxcbiAgICAgICAgfSlcbiAgICAgICAgLnN1YnNjcmliZSgoY29uZmlybWVkKSA9PiB7XG4gICAgICAgICAgaWYgKGNvbmZpcm1lZCkge1xuICAgICAgICAgICAgdGhpcy5yZW1vdmVFbnRpdGllcyh0b1JlbW92ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW1vdmVFbnRpdGllcyh0b1JlbW92ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbW92ZUVudGl0aWVzKHRvUmVtb3ZlOiBURW50aXR5W10pOiB2b2lkIHtcbiAgICB0b1JlbW92ZS5mb3JFYWNoKGUgPT4gdGhpcy5yZW1vdmVFbnRpdHkoZSkpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUVudGl0eSh0b1JlbW92ZTogVEVudGl0eSk6IHZvaWQge1xuICAgIGNvbnN0IHJlbWFpbmluZyA9IHRoaXMuZW50aXRpZXNcbiAgICAgIC5maWx0ZXIobCA9PiAhdGhpcy5pc0VxdWFsKGwsIHRvUmVtb3ZlKSk7XG4gICAgdGhpcy51cGRhdGVWYWx1ZUJ5RW50aXRpZXMocmVtYWluaW5nKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuU2VsZWN0aW9uUG9wdXAoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uUG9wdXApIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uUG9wdXAuY2hvb3NlKFxuICAgICAgICAoZTogVEVudGl0eSkgPT4gdGhpcy5nZXRFbnRpdHlJZChlKSxcbiAgICAgICAgdGhpcy5lbnRpdGllcyxcbiAgICAgICAgdGhpcy5maWx0ZXJzLFxuICAgICAgICB0aGlzLnNvcnRzLFxuICAgICAgICB0cnVlXG4gICAgICApLnN1YnNjcmliZShcbiAgICAgICAgKHNlbGVjdGlvbjogVEVudGl0eVtdKSA9PiB0aGlzLnVwZGF0ZVZhbHVlQnlFbnRpdGllcyhzZWxlY3Rpb24pXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci53YXJuKCdDYW50IG9wZW4gc2VsZWN0aW9uIGJyb3dzZXIgcG9wdXAsIHNpbmNlIFtTZWxlY3Rpb25Nb2RlbFBvcHVwRGlyZWN0aXZlXSB3YXMgbm90IGZvdW5kIScpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbnRpdHlUb1ZhbHVlKGVudGl0eTogVEVudGl0eSk6IFRWYWx1ZSB7XG4gICAgaWYgKHRoaXMudmFsdWVBc0lkKSB7XG4gICAgICBjb25zdCBpZCA9IHRoaXMuZ2V0RW50aXR5SWQoZW50aXR5KTtcbiAgICAgIHJldHVybiA8YW55PmlkIGFzIFRWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDxhbnk+ZW50aXR5IGFzIFRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogSW50ZXJuYWwgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsdWVzRXF1YWxzKGE6IFRWYWx1ZVtdLCBiOiBUVmFsdWVbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVxdWFsSWRzKHRoaXMuZW50aXR5SWRzRnJvbVZhbHVlcyhhKSwgdGhpcy5lbnRpdHlJZHNGcm9tVmFsdWVzKGIpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkRhdGFDb250ZXh0Q2hhbmdlZChkYXRhOiBJRGF0YUNvbnRleHQ8VEVudGl0eT4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy52YWx1ZUFzSWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0RW50aXRpZXNCeUlkcyh0aGlzLmVudGl0eUlkcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGlzIGludm9rZWQgYWZ0ZXIgYSB2YWx1ZSBoYXMgYmVlbiB3cml0dGVuIHRvIHRoaXMgY29udHJvbC5cbiAgICpcbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3cml0ZVRvQ29udHJvbCh2YWx1ZTogVFZhbHVlW10pOiB2b2lkIHtcbiAgICBpZiAodGhpcy52YWx1ZUFzSWQpIHtcbiAgICAgIGNvbnN0IGVudGl0eUlkcyA9IDxhbnk+dmFsdWUgYXMgVElkW107XG4gICAgICAvLyBWYWx1ZSB3YXMgd3JpdHRlbiBhcyBlbnRpdHkgaWRzLCBlbnN1cmUgd2Ugc2VsZWN0IGVudGl0eSBieSBpZFxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3dyaXRlVG9Db250cm9sOiB2YWx1ZSB3YXMgd3JpdHRlbiBhcyBpZHM6ICcgKyBlbnRpdHlJZHMsIHZhbHVlKTtcbiAgICAgIHRoaXMuc2VsZWN0RW50aXRpZXNCeUlkcyhlbnRpdHlJZHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBWYWx1ZSB3YXMgd3JpdHRlbiBhcyBlbnRpdHksIGVuc3VyZSBlbnRpdHkgaXMgdXBkYXRlZFxuICAgICAgY29uc3QgY3VycmVudEVudGl0aWVzID0gdGhpcy5lbnRpdGllcztcbiAgICAgIGNvbnN0IG5ld0VudGl0aWVzID0gPGFueT52YWx1ZSBhcyBURW50aXR5W107XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1Zygnd3JpdGVUb0NvbnRyb2w6IHZhbHVlIHdhcyB3cml0dGVuIGFzIGVudGl0aWVzIChzaXplKTogJyArIG5ld0VudGl0aWVzPy5sZW5ndGgsIHZhbHVlKTtcbiAgICAgIGlmICghdGhpcy5lcXVhbEVudGl0aWVzKGN1cnJlbnRFbnRpdGllcywgbmV3RW50aXRpZXMpKSB7XG4gICAgICAgIHRoaXMud3JpdGVFbnRpdGllc1NvcnRlZChuZXdFbnRpdGllcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci53YXJuKCdJZ25vcmVkIHdyaXR0ZW4gZW50aXRpZXMgYXMgdGhleSBhcmUgYWxyZWFkeSBzZXQgdG8gZW50aXRpZXMkIScpO1xuICAgICAgfVxuICAgIH1cbiAgICBzdXBlci53cml0ZVRvQ29udHJvbCh2YWx1ZSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG4gIHByaXZhdGUgaXNBbHJlYWR5UHJlc2VudChxdWVyeVZhbHVlOiBURW50aXR5KTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuZW50aXRpZXMpIHtcbiAgICAgIHJldHVybiB0aGlzLmVudGl0aWVzLnNvbWUodiA9PiB0aGlzLmlzRXF1YWwodiwgcXVlcnlWYWx1ZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbnRpdHlJZHNGcm9tVmFsdWVzKHZhbHVlczogVFZhbHVlW10pOiBUSWRbXSB8IG51bGwge1xuICAgIGlmICh2YWx1ZXMpIHtcbiAgICAgIHJldHVybiB2YWx1ZXMubWFwKHYgPT4gdGhpcy5lbnRpdHlJZEZyb21WYWx1ZSh2KSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBlbnRpdHlJZEZyb21WYWx1ZSh2YWx1ZTogVFZhbHVlKTogVElkIHtcbiAgICBpZiAodGhpcy52YWx1ZUFzSWQpIHtcbiAgICAgIHJldHVybiA8YW55PnZhbHVlIGFzIFRJZDtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZW50aXR5ID0gKDxhbnk+dmFsdWUpIGFzIFRFbnRpdHk7XG4gICAgICByZXR1cm4gdGhpcy5nZXRFbnRpdHlJZChlbnRpdHkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW50aXRpZXNUb1ZhbHVlcyhlbnRpdGllczogVEVudGl0eVtdKTogVFZhbHVlW10gfCBudWxsIHtcbiAgICBpZiAoZW50aXRpZXMpIHtcbiAgICAgIHJldHVybiBlbnRpdGllcy5tYXAoZSA9PiB0aGlzLmVudGl0eVRvVmFsdWUoZSkpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RW50aXR5SWRzKHZhbHVlczogVEVudGl0eVtdIHwgbnVsbCk6IFRJZFtdIHtcbiAgICBpZiAodmFsdWVzKSB7XG4gICAgICByZXR1cm4gdmFsdWVzLm1hcCh2ID0+IHRoaXMuZ2V0RW50aXR5SWQodikpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZXF1YWxJZHMoaWRzQTogVElkW10sIGlkc0I6IFRJZFtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFNldHMuZXF1YWxDb250ZW50KGlkc0EsIGlkc0IpO1xuICB9XG5cbiAgcHJpdmF0ZSBlcXVhbEVudGl0aWVzKGVudGl0aWVzQTogVEVudGl0eVtdLCBlbnRpdGllc0I6IFRFbnRpdHlbXSkge1xuICAgIHJldHVybiB0aGlzLmVxdWFsSWRzKHRoaXMuZ2V0RW50aXR5SWRzKGVudGl0aWVzQSksIHRoaXMuZ2V0RW50aXR5SWRzKGVudGl0aWVzQikpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RFbnRpdGllc0J5SWRzKGlkczogVElkW10pOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50RW50aXRpZXMgPSB0aGlzLmVudGl0aWVzO1xuICAgIHRoaXMubG9nZ2VyLmluZm8oJ3NlbGVjdEVudGl0aWVzQnlJZHM6IGlkczogJyArIGlkcyArICcsIGN1cnJlbnQgZW50aXRpZXM6JywgY3VycmVudEVudGl0aWVzKTtcbiAgICBpZiAoY3VycmVudEVudGl0aWVzICYmIHRoaXMuZXF1YWxJZHModGhpcy5nZXRFbnRpdHlJZHMoY3VycmVudEVudGl0aWVzKSwgaWRzKSkge1xuICAgICAgcmV0dXJuOyAvLyBFbnRpdGllcyBhbHJlYWR5IGxvYWRlZFxuICAgIH1cblxuICAgIHRoaXMuZmluZE9yTG9hZEVudGl0aWVzQnlJZHMoaWRzKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IGVudGl0aWVzID0+IHRoaXMuZW50aXRpZXMgPSBlbnRpdGllcyxcbiAgICAgICAgZXJyb3I6IGVyciA9PiB0aGlzLnVwZGF0ZVN0YXRlKEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUuZXJyb3IoZXJyKSlcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kT3JMb2FkRW50aXRpZXNCeUlkcyhpZHM6IFRJZFtdKTogT2JzZXJ2YWJsZTxURW50aXR5W10+IHtcbiAgICBpZiAoaWRzLmxlbmd0aCA9PSAwKSB7XG4gICAgICByZXR1cm4gb2YoW10pO1xuICAgIH1cbiAgICBpZiAodGhpcy5kYXRhQ29udGV4dCkge1xuICAgICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLmZpbmRJbkRhdGFDb250ZXh0KGlkcyk7XG4gICAgICBjb25zdCBtaXNzaW5nSWRzID0gaWRzLmZpbHRlcihpZCA9PiAhZXhpc3RpbmcuaGFzKGlkKSk7XG4gICAgICBjb25zdCB2YWx1ZUxvYWRSZXF1ZXN0JCA9IG1pc3NpbmdJZHMubGVuZ3RoID4gMCA/IHRoaXMubG9hZEVudGl0aWVzQnlJZHMobWlzc2luZ0lkcykgOiBvZihuZXcgTWFwKCkpO1xuXG4gICAgICByZXR1cm4gdmFsdWVMb2FkUmVxdWVzdCQucGlwZShcbiAgICAgICAgbWFwKGxvYWRlZCA9PiB7XG4gICAgICAgICAgbG9hZGVkLmZvckVhY2goKHYsIGspID0+IGV4aXN0aW5nLnNldChrLCB2KSk7XG4gICAgICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgICAgICB9KSxcbiAgICAgICAgbWFwKGFsbFZhbHVlc01hcCA9PiBBcnJheS5mcm9tKGFsbFZhbHVlc01hcC52YWx1ZXMoKSkpIC8vIFRPRE8gU29ydD9cbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nZ2VyLndhcm4oJ0ZhaWxlZCB0byBzZWxlY3QgdmFsdWUgYnkgSWRzOiAnICsgaWRzICsgJyAtIERhdGFDb250ZXh0IG5vdCBhdmFpbGFibGUuJyk7XG4gICAgICByZXR1cm4gRU1QVFk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkRW50aXRpZXNCeUlkcyhpZHM6IFRJZFtdKTogT2JzZXJ2YWJsZTxNYXA8VElkLCBURW50aXR5Pj4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFDb250ZXh0LmRhdGFTb3VyY2UuZmluZEJ5SWRzKGlkcykucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ0ZhaWxlZCB0byBsb2FkIGVudGl0aWVzIGJ5IGlkczogJyArIGlkcywgZXJyKTtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyKTtcbiAgICAgIH0pLFxuICAgICAgbWFwKHZhbHVlcyA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdMb2FkZWQgZW50aXRpZXMgYnkgaWQ6JywgdmFsdWVzKTtcbiAgICAgICAgY29uc3QgdmFsdWVNYXAgPSBuZXcgTWFwPFRJZCwgVEVudGl0eT4oKTtcbiAgICAgICAgdmFsdWVzLmZvckVhY2godiA9PiB2YWx1ZU1hcC5zZXQodGhpcy5nZXRFbnRpdHlJZCh2KSwgdikpO1xuICAgICAgICByZXR1cm4gdmFsdWVNYXA7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRJbkRhdGFDb250ZXh0KGlkczogVElkW10pOiBNYXA8VElkLCBURW50aXR5PiB7XG4gICAgY29uc3QgZXhpc3RpbmdWYWx1ZXMgPSBuZXcgTWFwPFRJZCwgVEVudGl0eT4oKTtcbiAgICBpZiAoaWRzPy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5kYXRhQ29udGV4dC5zbmFwc2hvdC5kYXRhO1xuICAgICAgY29uc3QgcmVxdWlyZWRJZHMgPSBuZXcgU2V0KGlkcyk7XG4gICAgICBkYXRhXG4gICAgICAgIC5maWx0ZXIoZCA9PiByZXF1aXJlZElkcy5oYXModGhpcy5nZXRFbnRpdHlJZChkKSkpXG4gICAgICAgIC5mb3JFYWNoKGQgPT4gZXhpc3RpbmdWYWx1ZXMuc2V0KHRoaXMuZ2V0RW50aXR5SWQoZCksIGQpKTtcbiAgICB9XG4gICAgcmV0dXJuIGV4aXN0aW5nVmFsdWVzO1xuICB9XG5cbiAgcHJpdmF0ZSB3cml0ZUVudGl0aWVzU29ydGVkKGVudGl0aWVzOiBURW50aXR5W10pOiBURW50aXR5W10ge1xuICAgIGNvbnN0IHNvcnRlZCA9IHRoaXMuc29ydEVudGl0aWVzKGVudGl0aWVzKTtcbiAgICB0aGlzLl9lbnRpdGllcyQubmV4dChzb3J0ZWQpO1xuICAgIHJldHVybiBzb3J0ZWQ7XG4gIH1cblxuICBwcml2YXRlIHNvcnRFbnRpdGllcyhlbnRpdGllczogVEVudGl0eVtdKTogVEVudGl0eVtdIHtcbiAgICBpZiAoZW50aXRpZXMgJiYgdGhpcy5lbnRpdGllc1NvcnRzICYmIHRoaXMuZW50aXRpZXNTb3J0cy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzb3J0ZWQgPSBTb3J0VXRpbC5zb3J0RGF0YShlbnRpdGllcywgdGhpcy5lbnRpdGllc1NvcnRzKTtcbiAgICAgIGlmICghU29ydFV0aWwuZXF1YWxzRXhhY3RSZWZzKGVudGl0aWVzLCBzb3J0ZWQpKSB7XG4gICAgICAgIC8vIE9ubHkgcmV0dXJuIGEgY29weSBvZiB0aGUgYXJyYXkgaWYgYWN0dWFsbHkgc29tZXRoaW5nIGNoYW5nZWRcbiAgICAgICAgcmV0dXJuIHNvcnRlZDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGVudGl0aWVzO1xuICB9XG59XG4iXX0=
|
|
@@ -8,18 +8,19 @@ import { MatFormFieldControl } from '@angular/material/form-field';
|
|
|
8
8
|
import { ELDER_SELECT_BASE } from '../../elder-select-base';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
import * as i1 from "@angular/cdk/a11y";
|
|
11
|
-
import * as i2 from "
|
|
12
|
-
import * as i3 from "
|
|
13
|
-
import * as i4 from "@angular/
|
|
14
|
-
import * as i5 from "@angular/
|
|
15
|
-
import * as i6 from "@angular/material/
|
|
16
|
-
import * as i7 from "@angular/
|
|
17
|
-
import * as i8 from "
|
|
18
|
-
import * as i9 from "
|
|
19
|
-
import * as i10 from "@angular/material/
|
|
20
|
-
import * as i11 from "
|
|
21
|
-
import * as i12 from "../../single/elder-
|
|
22
|
-
import * as i13 from "
|
|
11
|
+
import * as i2 from "@ngx-translate/core";
|
|
12
|
+
import * as i3 from "../../../dialogs/elder-dialog.service";
|
|
13
|
+
import * as i4 from "@angular/forms";
|
|
14
|
+
import * as i5 from "@angular/common";
|
|
15
|
+
import * as i6 from "@angular/material/icon";
|
|
16
|
+
import * as i7 from "@angular/material/button";
|
|
17
|
+
import * as i8 from "@angular/flex-layout/flex";
|
|
18
|
+
import * as i9 from "../../../forms/directives/elder-stop-event-propagation.directive";
|
|
19
|
+
import * as i10 from "@angular/material/chips";
|
|
20
|
+
import * as i11 from "@angular/material/tooltip";
|
|
21
|
+
import * as i12 from "../../single/elder-select/elder-select.component";
|
|
22
|
+
import * as i13 from "../../single/elder-clear-select.directive";
|
|
23
|
+
import * as i14 from "../../../../pipes/elder-truncate.pipe";
|
|
23
24
|
class ChipModel {
|
|
24
25
|
constructor(value, displayText, color, removeable) {
|
|
25
26
|
this.value = value;
|
|
@@ -34,8 +35,8 @@ export class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
|
|
|
34
35
|
* Constructor *
|
|
35
36
|
* *
|
|
36
37
|
**************************************************************************/
|
|
37
|
-
constructor(hostRef, zone, focusMonitor, dialogService, ngControl) {
|
|
38
|
-
super(zone, hostRef, 'multi-select-chips', focusMonitor, dialogService, ngControl);
|
|
38
|
+
constructor(hostRef, zone, focusMonitor, translateService, dialogService, ngControl) {
|
|
39
|
+
super(zone, hostRef, 'multi-select-chips', focusMonitor, translateService, dialogService, ngControl);
|
|
39
40
|
/***************************************************************************
|
|
40
41
|
* *
|
|
41
42
|
* Fields *
|
|
@@ -43,6 +44,11 @@ export class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
|
|
|
43
44
|
**************************************************************************/
|
|
44
45
|
this.log = LoggerFactory.getLogger(this.constructor.name);
|
|
45
46
|
this.chipColorResolver$ = new BehaviorSubject((value) => undefined);
|
|
47
|
+
/**
|
|
48
|
+
* Hides the chip avatar if this function evaluates to true.
|
|
49
|
+
* Usefull if not all chips support avatars (empty chipAvatarTemplate).
|
|
50
|
+
*/
|
|
51
|
+
this.hideAvatarFn = e => false;
|
|
46
52
|
this.selectable = true;
|
|
47
53
|
this.allowRemove = true;
|
|
48
54
|
this._chipColorEnabled = false;
|
|
@@ -168,15 +174,15 @@ export class ElderMultiSelectChipsComponent extends ElderMultiSelectBase {
|
|
|
168
174
|
}
|
|
169
175
|
}
|
|
170
176
|
}
|
|
171
|
-
ElderMultiSelectChipsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0
|
|
172
|
-
ElderMultiSelectChipsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0
|
|
177
|
+
ElderMultiSelectChipsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", 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 });
|
|
178
|
+
ElderMultiSelectChipsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: ElderMultiSelectChipsComponent, selector: "elder-multi-select-chips", inputs: { hideAvatarFn: "hideAvatarFn", allowRemove: "allowRemove", chipTemplate: "chipTemplate", chipAvatarTemplate: "chipAvatarTemplate", customInputTemplate: "customInputTemplate", chipColorEnabled: "chipColorEnabled", chipColorResolver: "chipColorResolver" }, host: { properties: { "class": "this.hostClass", "class.mat-select-disabled": "this.disabledClass", "class.mat-select-invalid": "this.errorStateClass", "class.mat-select-required": "this.requiredClass", "class.mat-select-empty": "this.emptyClass" } }, providers: [
|
|
173
179
|
{ provide: MatFormFieldControl, useExisting: ElderMultiSelectChipsComponent },
|
|
174
180
|
{
|
|
175
181
|
provide: ELDER_SELECT_BASE,
|
|
176
182
|
useExisting: forwardRef(() => ElderMultiSelectChipsComponent)
|
|
177
183
|
}
|
|
178
|
-
], queries: [{ propertyName: "chipTemplateQuery", first: true, predicate: ElderSelectChipDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "chipAvatarTemplateQuery", first: true, predicate: ElderSelectChipAvatarDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "customInputTemplateQuery", first: true, predicate: ElderSelectCustomInputDirective, descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"(selectChips$ | async) as chipValues\" fxFlex\n class=\"elder-form-control\"\n [matTooltip]=\"(state$ | async)?.error\"\n>\n\n <mat-chip-list [selectable]=\"chipColorEnabled\" multiple #chips>\n\n <ng-container *ngIf=\"(mergedState$ | async) as state\">\n <div *ngIf=\"icon\" fxFlex=\"none\"\n class=\"elder-input-prefix-icon-container\"\n >\n <mat-icon *ngIf=\"icon\" disabled\n class=\"elder-prefix-icon elder-select-icon elder-icon-small noselect\"\n [class.loading]=\"state.loading\"\n >\n {{icon}}\n </mat-icon>\n </div>\n </ng-container>\n\n\n <mat-chip *ngFor=\"let chipModel of chipValues\"\n class=\"noselect clickable-chip\"\n [value]=\"resolveChipValue(chipModel.value)\"\n [color]=\"chipModel.color\" [selectable]=\"chipColorEnabled\" [selected]=\"chipColorEnabled\"\n [removable]=\"chipModel.removeable\"\n (keydown)=\"onChipKeyDown($event, chipModel.value)\"\n (click)=\"onCurrentClicked(chipModel.value)\"\n >\n <mat-chip-avatar *ngIf=\"chipAvatarTemplate\">\n <ng-container\n *ngTemplateOutlet=\"chipAvatarTemplate; context: {$implicit: chipModel}\">\n </ng-container>\n </mat-chip-avatar>\n <ng-container\n *ngTemplateOutlet=\"chipTemplate || simpleChipTemplate; context: {$implicit: chipModel}\">\n </ng-container>\n <mat-icon matChipRemove\n *ngIf=\"chipModel.removeable\"\n (click)=\"onClickRemoveChip($event, chipModel.value)\">\n cancel\n </mat-icon>\n </mat-chip>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxFlex\n style=\"padding-top: 7px; padding-bottom: 7px;\">\n\n <!-- [matChipInputFor]=\"chips\" -->\n <ng-container\n *ngTemplateOutlet=\"customInputTemplate || selectInput;\">\n </ng-container>\n\n <button mat-icon-button type=\"button\" class=\"elder-icon-button-small\"\n *ngIf=\"selectionPopup\"\n [disabled]=\"isLocked\"\n (click)=\"openSelectionPopup($event)\" aria-label=\"Search\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon class=\"elder-select-icon\">search</mat-icon>\n </button>\n </div>\n </mat-chip-list>\n</div>\n\n<ng-template #selectInput>\n <elder-select autocomplete elderClearSelect fxFlex
|
|
179
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0
|
|
184
|
+
], queries: [{ propertyName: "chipTemplateQuery", first: true, predicate: ElderSelectChipDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "chipAvatarTemplateQuery", first: true, predicate: ElderSelectChipAvatarDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "customInputTemplateQuery", first: true, predicate: ElderSelectCustomInputDirective, descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"(selectChips$ | async) as chipValues\" fxFlex\n class=\"elder-form-control\"\n [matTooltip]=\"(state$ | async)?.error\"\n>\n\n <mat-chip-list [selectable]=\"chipColorEnabled\" multiple #chips>\n\n <ng-container *ngIf=\"(mergedState$ | async) as state\">\n <div *ngIf=\"icon\" fxFlex=\"none\"\n class=\"elder-input-prefix-icon-container\"\n >\n <mat-icon *ngIf=\"icon\" disabled\n class=\"elder-prefix-icon elder-select-icon elder-icon-small noselect\"\n [class.loading]=\"state.loading\"\n >\n {{icon}}\n </mat-icon>\n </div>\n </ng-container>\n\n\n <mat-chip *ngFor=\"let chipModel of chipValues\"\n class=\"noselect clickable-chip\"\n [value]=\"resolveChipValue(chipModel.value)\"\n [color]=\"chipModel.color\" [selectable]=\"chipColorEnabled\" [selected]=\"chipColorEnabled\"\n [removable]=\"chipModel.removeable\"\n (keydown)=\"onChipKeyDown($event, chipModel.value)\"\n (click)=\"onCurrentClicked(chipModel.value)\"\n >\n <mat-chip-avatar *ngIf=\"chipAvatarTemplate && !hideAvatarFn(chipModel.value)\">\n <ng-container\n *ngTemplateOutlet=\"chipAvatarTemplate; context: {$implicit: chipModel}\">\n </ng-container>\n </mat-chip-avatar>\n <ng-container\n *ngTemplateOutlet=\"chipTemplate || simpleChipTemplate; context: {$implicit: chipModel}\">\n </ng-container>\n <mat-icon matChipRemove\n *ngIf=\"chipModel.removeable\"\n (click)=\"onClickRemoveChip($event, chipModel.value)\">\n cancel\n </mat-icon>\n </mat-chip>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxFlex\n style=\"padding-top: 7px; padding-bottom: 7px;\">\n\n <!-- [matChipInputFor]=\"chips\" -->\n <ng-container\n *ngTemplateOutlet=\"customInputTemplate || selectInput;\">\n </ng-container>\n\n <button mat-icon-button type=\"button\" class=\"elder-icon-button-small 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-select-icon\">search</mat-icon>\n </button>\n </div>\n </mat-chip-list>\n</div>\n\n<ng-template #selectInput>\n <elder-select autocomplete elderClearSelect fxFlex\n class=\"elder-chip-input\"\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: [".clickable-chip{cursor:pointer}.elder-chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i8.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i8.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i8.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i9.ElderStopEventPropagationDirective, selector: "[elderStopEventPropagation]" }, { kind: "component", type: i10.MatChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i10.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "directive", type: i10.MatChipRemove, selector: "[matChipRemove]" }, { kind: "directive", type: i10.MatChipAvatar, selector: "mat-chip-avatar, [matChipAvatar]" }, { kind: "directive", type: i11.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i12.ElderSelectComponent, selector: "elder-select", inputs: ["nullDisplay", "autocomplete", "allowNull", "entity", "entityId"], outputs: ["entityIdChange", "entityIdUpdated", "entityChange", "entityUpdated"] }, { kind: "directive", type: i13.ElderClearSelectDirective, selector: "[elderClearSelect]" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i14.ElderTruncatePipe, name: "elderTruncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
185
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ElderMultiSelectChipsComponent, decorators: [{
|
|
180
186
|
type: Component,
|
|
181
187
|
args: [{ selector: 'elder-multi-select-chips', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
182
188
|
{ provide: MatFormFieldControl, useExisting: ElderMultiSelectChipsComponent },
|
|
@@ -184,12 +190,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImpor
|
|
|
184
190
|
provide: ELDER_SELECT_BASE,
|
|
185
191
|
useExisting: forwardRef(() => ElderMultiSelectChipsComponent)
|
|
186
192
|
}
|
|
187
|
-
], template: "<div *ngIf=\"(selectChips$ | async) as chipValues\" fxFlex\n class=\"elder-form-control\"\n [matTooltip]=\"(state$ | async)?.error\"\n>\n\n <mat-chip-list [selectable]=\"chipColorEnabled\" multiple #chips>\n\n <ng-container *ngIf=\"(mergedState$ | async) as state\">\n <div *ngIf=\"icon\" fxFlex=\"none\"\n class=\"elder-input-prefix-icon-container\"\n >\n <mat-icon *ngIf=\"icon\" disabled\n class=\"elder-prefix-icon elder-select-icon elder-icon-small noselect\"\n [class.loading]=\"state.loading\"\n >\n {{icon}}\n </mat-icon>\n </div>\n </ng-container>\n\n\n <mat-chip *ngFor=\"let chipModel of chipValues\"\n class=\"noselect clickable-chip\"\n [value]=\"resolveChipValue(chipModel.value)\"\n [color]=\"chipModel.color\" [selectable]=\"chipColorEnabled\" [selected]=\"chipColorEnabled\"\n [removable]=\"chipModel.removeable\"\n (keydown)=\"onChipKeyDown($event, chipModel.value)\"\n (click)=\"onCurrentClicked(chipModel.value)\"\n >\n <mat-chip-avatar *ngIf=\"chipAvatarTemplate\">\n <ng-container\n *ngTemplateOutlet=\"chipAvatarTemplate; context: {$implicit: chipModel}\">\n </ng-container>\n </mat-chip-avatar>\n <ng-container\n *ngTemplateOutlet=\"chipTemplate || simpleChipTemplate; context: {$implicit: chipModel}\">\n </ng-container>\n <mat-icon matChipRemove\n *ngIf=\"chipModel.removeable\"\n (click)=\"onClickRemoveChip($event, chipModel.value)\">\n cancel\n </mat-icon>\n </mat-chip>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxFlex\n style=\"padding-top: 7px; padding-bottom: 7px;\">\n\n <!-- [matChipInputFor]=\"chips\" -->\n <ng-container\n *ngTemplateOutlet=\"customInputTemplate || selectInput;\">\n </ng-container>\n\n <button mat-icon-button type=\"button\" class=\"elder-icon-button-small\"\n *ngIf=\"selectionPopup\"\n [disabled]=\"isLocked\"\n (click)=\"openSelectionPopup($event)\" aria-label=\"Search\"\n elderStopEventPropagation\n tabIndex=\"-1\"\n >\n <mat-icon class=\"elder-select-icon\">search</mat-icon>\n </button>\n </div>\n </mat-chip-list>\n</div>\n\n<ng-template #selectInput>\n <elder-select autocomplete elderClearSelect fxFlex
|
|
188
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.FocusMonitor }, { type: i2.
|
|
193
|
+
], template: "<div *ngIf=\"(selectChips$ | async) as chipValues\" fxFlex\n class=\"elder-form-control\"\n [matTooltip]=\"(state$ | async)?.error\"\n>\n\n <mat-chip-list [selectable]=\"chipColorEnabled\" multiple #chips>\n\n <ng-container *ngIf=\"(mergedState$ | async) as state\">\n <div *ngIf=\"icon\" fxFlex=\"none\"\n class=\"elder-input-prefix-icon-container\"\n >\n <mat-icon *ngIf=\"icon\" disabled\n class=\"elder-prefix-icon elder-select-icon elder-icon-small noselect\"\n [class.loading]=\"state.loading\"\n >\n {{icon}}\n </mat-icon>\n </div>\n </ng-container>\n\n\n <mat-chip *ngFor=\"let chipModel of chipValues\"\n class=\"noselect clickable-chip\"\n [value]=\"resolveChipValue(chipModel.value)\"\n [color]=\"chipModel.color\" [selectable]=\"chipColorEnabled\" [selected]=\"chipColorEnabled\"\n [removable]=\"chipModel.removeable\"\n (keydown)=\"onChipKeyDown($event, chipModel.value)\"\n (click)=\"onCurrentClicked(chipModel.value)\"\n >\n <mat-chip-avatar *ngIf=\"chipAvatarTemplate && !hideAvatarFn(chipModel.value)\">\n <ng-container\n *ngTemplateOutlet=\"chipAvatarTemplate; context: {$implicit: chipModel}\">\n </ng-container>\n </mat-chip-avatar>\n <ng-container\n *ngTemplateOutlet=\"chipTemplate || simpleChipTemplate; context: {$implicit: chipModel}\">\n </ng-container>\n <mat-icon matChipRemove\n *ngIf=\"chipModel.removeable\"\n (click)=\"onClickRemoveChip($event, chipModel.value)\">\n cancel\n </mat-icon>\n </mat-chip>\n\n <div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxFlex\n style=\"padding-top: 7px; padding-bottom: 7px;\">\n\n <!-- [matChipInputFor]=\"chips\" -->\n <ng-container\n *ngTemplateOutlet=\"customInputTemplate || selectInput;\">\n </ng-container>\n\n <button mat-icon-button type=\"button\" class=\"elder-icon-button-small 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-select-icon\">search</mat-icon>\n </button>\n </div>\n </mat-chip-list>\n</div>\n\n<ng-template #selectInput>\n <elder-select autocomplete elderClearSelect fxFlex\n class=\"elder-chip-input\"\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: [".clickable-chip{cursor:pointer}.elder-chip-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"] }]
|
|
194
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.FocusMonitor }, { type: i2.TranslateService }, { type: i3.ElderDialogService }, { type: i4.NgControl, decorators: [{
|
|
189
195
|
type: Optional
|
|
190
196
|
}, {
|
|
191
197
|
type: Self
|
|
192
|
-
}] }]; }, propDecorators: {
|
|
198
|
+
}] }]; }, propDecorators: { hideAvatarFn: [{
|
|
199
|
+
type: Input
|
|
200
|
+
}], allowRemove: [{
|
|
193
201
|
type: Input
|
|
194
202
|
}], chipTemplateQuery: [{
|
|
195
203
|
type: ContentChild,
|
|
@@ -226,4 +234,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImpor
|
|
|
226
234
|
}], chipColorResolver: [{
|
|
227
235
|
type: Input
|
|
228
236
|
}] } });
|
|
229
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L211bHRpL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvbXVsdGkvZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULHVCQUF1QixFQUl2QixLQUFLLEVBQ0wsWUFBWSxFQUNaLFdBQVcsRUFDWCxRQUFRLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBYSxXQUFXLEVBQ25ELE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFzQixNQUFNLE1BQU0sQ0FBQztBQUN6RSxPQUFPLEVBQUMsR0FBRyxFQUFZLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyw4QkFBOEIsRUFBRSx3QkFBd0IsRUFBRSwrQkFBK0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRzVJLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxpQkFBaUIsRUFBNEMsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7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QUEwQjtnQkFJTyxhQUFhO3NCQUExRCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFJRyxVQUFVO3NCQUFwRCxXQUFXO3VCQUFDLHdCQUF3QjtnQkFXMUIsWUFBWTtzQkFEdEIsS0FBSztnQkFVSyxrQkFBa0I7c0JBRDVCLEtBQUs7Z0JBVUssbUJBQW1CO3NCQUQ3QixLQUFLO2dCQVVLLGdCQUFnQjtzQkFEMUIsS0FBSztnQkFjSyxpQkFBaUI7c0JBRDNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIE9uSW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIE5nWm9uZSxcbiAgVmlld0NoaWxkLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgQ29udGVudENoaWxkLFxuICBUZW1wbGF0ZVJlZixcbiAgT3B0aW9uYWwsIFNlbGYsIGZvcndhcmRSZWYsIE9uRGVzdHJveSwgSG9zdEJpbmRpbmdcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VsZGVyTXVsdGlTZWxlY3RCYXNlfSBmcm9tICcuLi9lbGRlci1tdWx0aS1zZWxlY3QtYmFzZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgdGFrZVVudGlsfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcbmltcG9ydCB7RWxkZXJTZWxlY3RDaGlwQXZhdGFyRGlyZWN0aXZlLCBFbGRlclNlbGVjdENoaXBEaXJlY3RpdmUsIEVsZGVyU2VsZWN0Q3VzdG9tSW5wdXREaXJlY3RpdmV9IGZyb20gJy4uLy4uL2VsZGVyLXNlbGVjdC1jaGlwLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1RoZW1lUGFsZXR0ZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQge05HX1ZBTElEQVRPUlMsIE5nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtNYXRGb3JtRmllbGRDb250cm9sfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7RUxERVJfU0VMRUNUX0JBU0UsIEVsZGVyU2VsZWN0Q29tcG9uZW50U3RhdGUsIFRleHRSZXNvbHZlckZufSBmcm9tICcuLi8uLi9lbGRlci1zZWxlY3QtYmFzZSc7XG5pbXBvcnQge0ZvY3VzTW9uaXRvcn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtFbGRlclNlbGVjdENvbXBvbmVudH0gZnJvbSAnLi4vLi4vc2luZ2xlL2VsZGVyLXNlbGVjdC9lbGRlci1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7RWxkZXJEaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9kaWFsb2dzL2VsZGVyLWRpYWxvZy5zZXJ2aWNlJztcblxuY2xhc3MgQ2hpcE1vZGVsPFQ+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHZhbHVlOiBULFxuICAgIHB1YmxpYyByZWFkb25seSBkaXNwbGF5VGV4dDogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSBjb2xvcjogVGhlbWVQYWxldHRlLFxuICAgIHB1YmxpYyByZWFkb25seSByZW1vdmVhYmxlOiBib29sZWFuXG4gICkge1xuICB9XG59XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge3Byb3ZpZGU6IE1hdEZvcm1GaWVsZENvbnRyb2wsIHVzZUV4aXN0aW5nOiBFbGRlck11bHRpU2VsZWN0Q2hpcHNDb21wb25lbnR9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVMREVSX1NFTEVDVF9CQVNFLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRWxkZXJNdWx0aVNlbGVjdENoaXBzQ29tcG9uZW50KVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlck11bHRpU2VsZWN0Q2hpcHNDb21wb25lbnQ8VElkID0gYW55LCBURW50aXR5ID0gYW55LCBUVmFsdWUgPSBhbnk+XG4gIGV4dGVuZHMgRWxkZXJNdWx0aVNlbGVjdEJhc2U8VElkLCBURW50aXR5LCBUVmFsdWU+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdENoaXBzJDogT2JzZXJ2YWJsZTxDaGlwTW9kZWw8VEVudGl0eT5bXT47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjaGlwQ29sb3JSZXNvbHZlciQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PChvMTogYW55KSA9PiBUaGVtZVBhbGV0dGU+KCh2YWx1ZTogVEVudGl0eSkgPT4gdW5kZWZpbmVkKTtcblxuXG4gIHB1YmxpYyBzZWxlY3RhYmxlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYWxsb3dSZW1vdmUgPSB0cnVlO1xuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTZWxlY3RDaGlwRGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZX0pXG4gIHB1YmxpYyBjaGlwVGVtcGxhdGVRdWVyeTogVGVtcGxhdGVSZWY8YW55PjtcbiAgcHJpdmF0ZSBfY2hpcFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTZWxlY3RDaGlwQXZhdGFyRGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZX0pXG4gIHB1YmxpYyBjaGlwQXZhdGFyVGVtcGxhdGVRdWVyeTogVGVtcGxhdGVSZWY8YW55PjtcbiAgcHJpdmF0ZSBfY2hpcEF2YXRhclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTZWxlY3RDdXN0b21JbnB1dERpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWV9KVxuICBwdWJsaWMgY3VzdG9tSW5wdXRUZW1wbGF0ZVF1ZXJ5OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBwcml2YXRlIF9jdXN0b21JbnB1dFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG5cbiAgcHJpdmF0ZSBfY2hpcENvbG9yRW5hYmxlZCA9IGZhbHNlO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGhvc3RSZWY6IEVsZW1lbnRSZWYsXG4gICAgem9uZTogTmdab25lLFxuICAgIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgIGRpYWxvZ1NlcnZpY2U6IEVsZGVyRGlhbG9nU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIG5nQ29udHJvbDogTmdDb250cm9sXG4gICkge1xuICAgIHN1cGVyKHpvbmUsIGhvc3RSZWYsICdtdWx0aS1zZWxlY3QtY2hpcHMnLCBmb2N1c01vbml0b3IsIGRpYWxvZ1NlcnZpY2UsIG5nQ29udHJvbCk7XG5cbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gJy4uLic7XG5cbiAgICB0aGlzLnNlbGVjdENoaXBzJCA9IGNvbWJpbmVMYXRlc3QoXG4gICAgICBbXG4gICAgICAgIHRoaXMuZW50aXRpZXMkLFxuICAgICAgICB0aGlzLmVudGl0eUlkcyQsXG4gICAgICAgIHRoaXMuc3RhdGUkLFxuICAgICAgICB0aGlzLmRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyJCxcbiAgICAgICAgdGhpcy5jaGlwQ29sb3JSZXNvbHZlciRcbiAgICAgIF1cbiAgICApLnBpcGUoXG4gICAgICBtYXAoKFtlbnRpdGllcywgZW50aXR5SWRzLCBzdGF0ZSwgZFBSLCBjQ1JdKSA9PlxuICAgICAgICB0aGlzLmJ1aWxkQ2hpcE1vZGVsc09yRmFsbGJhY2soZW50aXRpZXMsIGVudGl0eUlkcywgc3RhdGUsIGRQUiwgY0NSKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogSG9zdCBCaW5kaW5ncyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGhvc3RDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiAnZWxkZXItc2VsZWN0LWJhc2UgZWxkZXItbXVsdGktc2VsZWN0JztcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MubWF0LXNlbGVjdC1kaXNhYmxlZCcpIGdldCBkaXNhYmxlZENsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tYXQtc2VsZWN0LWludmFsaWQnKSBnZXQgZXJyb3JTdGF0ZUNsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVycm9yU3RhdGU7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1hdC1zZWxlY3QtcmVxdWlyZWQnKSBnZXQgcmVxdWlyZWRDbGFzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZXF1aXJlZDtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MubWF0LXNlbGVjdC1lbXB0eScpIGdldCBlbXB0eUNsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVtcHR5O1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjaGlwVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLl9jaGlwVGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hpcFRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9jaGlwVGVtcGxhdGUgfHwgdGhpcy5jaGlwVGVtcGxhdGVRdWVyeTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hpcEF2YXRhclRlbXBsYXRlKHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgdGhpcy5fY2hpcEF2YXRhclRlbXBsYXRlID0gdGVtcGxhdGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoaXBBdmF0YXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fY2hpcEF2YXRhclRlbXBsYXRlIHx8IHRoaXMuY2hpcEF2YXRhclRlbXBsYXRlUXVlcnk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGN1c3RvbUlucHV0VGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLl9jdXN0b21JbnB1dFRlbXBsYXRlID0gdGVtcGxhdGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1c3RvbUlucHV0VGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2N1c3RvbUlucHV0VGVtcGxhdGUgfHwgdGhpcy5jdXN0b21JbnB1dFRlbXBsYXRlUXVlcnk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoaXBDb2xvckVuYWJsZWQoZW5hYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMuX2NoaXBDb2xvckVuYWJsZWQgPSBlbmFibGVkO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGlwQ29sb3JFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVycm9yU3RhdGUgfHwgdGhpcy5fY2hpcENvbG9yRW5hYmxlZDtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyB0aGUgY29sb3Igb2YgYSBnaXZlbiBsYWJlbCBvYmplY3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoaXBDb2xvclJlc29sdmVyKGZuOiAobzE6IGFueSkgPT4gVGhlbWVQYWxldHRlKSB7XG4gICAgaWYgKCFmbikge1xuICAgICAgdGhpcy5jaGlwQ29sb3JFbmFibGVkID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0eXBlb2YgZm4gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY2hpcENvbG9yUmVzb2x2ZXIgbXVzdCBiZSBhIGZ1bmN0aW9uIScpO1xuICAgIH1cbiAgICB0aGlzLmNoaXBDb2xvckVuYWJsZWQgPSB0cnVlO1xuICAgIHRoaXMuY2hpcENvbG9yUmVzb2x2ZXIkLm5leHQoZm4pO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHJlc29sdmVDaGlwVmFsdWUoZTE6IFRFbnRpdHkpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmdldEVudGl0eUlkKGUxKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNoaXBLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCB0b1JlbW92ZTogVEVudGl0eSk6IHZvaWQge1xuICAgIHRoaXMubG9nLndhcm4oJ29uQ2hpcEtleURvd24nLCBldmVudCk7XG4gICAgaWYoZXZlbnQua2V5ID09ICdCYWNrc3BhY2UnIHx8IGV2ZW50LmtleSA9PSAnRGVsZXRlJyl7XG4gICAgICB0aGlzLnJlcXVlc3RSZW1vdmVFbnRpdHkodG9SZW1vdmUsIGV2ZW50LnNoaWZ0S2V5KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25DbGlja1JlbW92ZUNoaXAoXG4gICAgZXZlbnQ6IE1vdXNlRXZlbnQsXG4gICAgdG9SZW1vdmU6IFRFbnRpdHlcbiAgKTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnJlcXVlc3RSZW1vdmVFbnRpdHkodG9SZW1vdmUsIGV2ZW50LnNoaWZ0S2V5KTtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1cyhvcHRpb25zPzogRm9jdXNPcHRpb25zKSB7XG4gICAgLy8gVE9ETyB0aGlzLmlucHV0Q29udHJvbD8uZm9jdXMob3B0aW9ucyk7XG4gICAgLy8gdGhpcy5jdXN0b21JbnB1dFRlbXBsYXRlLmZvY3VzKG9wdGlvbnMpXG4gIH1cblxuICBwdWJsaWMgYmx1cigpIHtcbiAgICAvLyBUT0RPIHRoaXMuaW5wdXRDb250cm9sPy5ibHVyKCk7XG4gICAgLy8gdGhpcy5jdXN0b21JbnB1dFRlbXBsYXRlLmJsdXIoKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBidWlsZENoaXBNb2RlbHNPckZhbGxiYWNrKFxuICAgIGVudGl0aWVzOiBURW50aXR5W10sXG4gICAgZW50aXR5SWRzOiBUSWRbXSxcbiAgICBzdGF0ZTogRWxkZXJTZWxlY3RDb21wb25lbnRTdGF0ZSxcbiAgICBkUFI6IFRleHRSZXNvbHZlckZuLFxuICAgIGNDUjogKG8xOiBhbnkpID0+IFRoZW1lUGFsZXR0ZVxuICApOiBDaGlwTW9kZWw8VEVudGl0eT5bXSB7XG5cbiAgICBpZiAoc3RhdGUuZXJyb3IpIHtcbiAgICAgIHJldHVybiB0aGlzLmJ1aWxkQ2hpcEZhbGxiYWNrTW9kZWxzKGVudGl0eUlkcyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmJ1aWxkQ2hpcE1vZGVscyhlbnRpdGllcywgZFBSLCBjQ1IpO1xuICB9XG5cblxuICBwcml2YXRlIGJ1aWxkQ2hpcEZhbGxiYWNrTW9kZWxzKGVudGl0eUlkczogVElkW10pOiBDaGlwTW9kZWw8VEVudGl0eT5bXSB7XG4gICAgcmV0dXJuIGVudGl0eUlkcy5tYXAoXG4gICAgICBpZCA9PiBuZXcgQ2hpcE1vZGVsPFRFbnRpdHk+KFxuICAgICAgICA8YW55PntpZDogaWR9LFxuICAgICAgICBTdHJpbmcoaWQpLFxuICAgICAgICAnd2FybicsXG4gICAgICAgIHRoaXMuYWxsb3dSZW1vdmVcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZENoaXBNb2RlbHMoXG4gICAgZW50aXRpZXM6IFRFbnRpdHlbXSxcbiAgICBkUFI6IFRleHRSZXNvbHZlckZuLFxuICAgIGNDUjogKG8xOiBhbnkpID0+IFRoZW1lUGFsZXR0ZVxuICApOiBDaGlwTW9kZWw8VEVudGl0eT5bXSB7XG4gICAgaWYgKGVudGl0aWVzKSB7XG4gICAgICByZXR1cm4gZW50aXRpZXMubWFwKFxuICAgICAgICBlID0+IG5ldyBDaGlwTW9kZWw8VEVudGl0eT4oXG4gICAgICAgICAgZSxcbiAgICAgICAgICBkUFIoZSksXG4gICAgICAgICAgY0NSKGUpLFxuICAgICAgICAgIHRoaXMuYWxsb3dSZW1vdmVcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDxDaGlwTW9kZWw8VEVudGl0eT5bXT5bXTtcbiAgICB9XG4gIH1cblxufVxuIiwiPGRpdiAqbmdJZj1cIihzZWxlY3RDaGlwcyQgfCBhc3luYykgYXMgY2hpcFZhbHVlc1wiIGZ4RmxleFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZWxkZXItZm9ybS1jb250cm9sXCJcbiAgICAgW21hdFRvb2x0aXBdPVwiKHN0YXRlJCB8IGFzeW5jKT8uZXJyb3JcIlxuPlxuXG4gIDxtYXQtY2hpcC1saXN0IFtzZWxlY3RhYmxlXT1cImNoaXBDb2xvckVuYWJsZWRcIiBtdWx0aXBsZSAjY2hpcHM+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKG1lcmdlZFN0YXRlJCB8IGFzeW5jKSBhcyBzdGF0ZVwiPlxuICAgICAgPGRpdiAqbmdJZj1cImljb25cIiBmeEZsZXg9XCJub25lXCJcbiAgICAgICAgICAgY2xhc3M9XCJlbGRlci1pbnB1dC1wcmVmaXgtaWNvbi1jb250YWluZXJcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJpY29uXCIgZGlzYWJsZWRcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZWxkZXItcHJlZml4LWljb24gZWxkZXItc2VsZWN0LWljb24gZWxkZXItaWNvbi1zbWFsbCBub3NlbGVjdFwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MubG9hZGluZ109XCJzdGF0ZS5sb2FkaW5nXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7aWNvbn19XG4gICAgICAgIDwvbWF0LWljb24+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuXG4gICAgPG1hdC1jaGlwICpuZ0Zvcj1cImxldCBjaGlwTW9kZWwgb2YgY2hpcFZhbHVlc1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwibm9zZWxlY3QgY2xpY2thYmxlLWNoaXBcIlxuICAgICAgICAgICAgICBbdmFsdWVdPVwicmVzb2x2ZUNoaXBWYWx1ZShjaGlwTW9kZWwudmFsdWUpXCJcbiAgICAgICAgICAgICAgW2NvbG9yXT1cImNoaXBNb2RlbC5jb2xvclwiIFtzZWxlY3RhYmxlXT1cImNoaXBDb2xvckVuYWJsZWRcIiBbc2VsZWN0ZWRdPVwiY2hpcENvbG9yRW5hYmxlZFwiXG4gICAgICAgICAgICAgIFtyZW1vdmFibGVdPVwiY2hpcE1vZGVsLnJlbW92ZWFibGVcIlxuICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbkNoaXBLZXlEb3duKCRldmVudCwgY2hpcE1vZGVsLnZhbHVlKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkN1cnJlbnRDbGlja2VkKGNoaXBNb2RlbC52YWx1ZSlcIlxuICAgID5cbiAgICAgIDxtYXQtY2hpcC1hdmF0YXIgKm5nSWY9XCJjaGlwQXZhdGFyVGVtcGxhdGVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2hpcEF2YXRhclRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiBjaGlwTW9kZWx9XCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9tYXQtY2hpcC1hdmF0YXI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2hpcFRlbXBsYXRlIHx8IHNpbXBsZUNoaXBUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogY2hpcE1vZGVsfVwiPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZVxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY2hpcE1vZGVsLnJlbW92ZWFibGVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrUmVtb3ZlQ2hpcCgkZXZlbnQsIGNoaXBNb2RlbC52YWx1ZSlcIj5cbiAgICAgICAgY2FuY2VsXG4gICAgICA8L21hdC1pY29uPlxuICAgIDwvbWF0LWNoaXA+XG5cbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGZ4RmxleFxuICAgICAgICAgc3R5bGU9XCJwYWRkaW5nLXRvcDogN3B4OyBwYWRkaW5nLWJvdHRvbTogN3B4O1wiPlxuXG4gICAgICA8IS0tIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcHNcIiAtLT5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21JbnB1dFRlbXBsYXRlIHx8IHNlbGVjdElucHV0O1wiPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImVsZGVyLWljb24tYnV0dG9uLXNtYWxsXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3Rpb25Qb3B1cFwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xvY2tlZFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvcGVuU2VsZWN0aW9uUG9wdXAoJGV2ZW50KVwiIGFyaWEtbGFiZWw9XCJTZWFyY2hcIlxuICAgICAgICAgICAgICBlbGRlclN0b3BFdmVudFByb3BhZ2F0aW9uXG4gICAgICAgICAgICAgIHRhYkluZGV4PVwiLTFcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJlbGRlci1zZWxlY3QtaWNvblwiPnNlYXJjaDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtY2hpcC1saXN0PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2VsZWN0SW5wdXQ+XG4gIDxlbGRlci1zZWxlY3QgYXV0b2NvbXBsZXRlIGVsZGVyQ2xlYXJTZWxlY3QgZnhGbGV4PVwibm9ncm93XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImVsZGVyLWNoaXAtaW5wdXRcIlxuICAgICAgICAgICAgICAgIFtkYXRhXT1cImRhdGFDb250ZXh0JCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiISFkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cIiEhcmVxdWlyZWRcIlxuICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCIhIXJlYWRvbmx5XCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgIChlbnRpdHlVcGRhdGVkKT1cImFwcGVuZEVudGl0eSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbZGlzcGxheVByb3BlcnR5UmVzb2x2ZXJdPVwiZGlzcGxheVByb3BlcnR5UmVzb2x2ZXIkIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZVRlbXBsYXRlXT1cInZhbHVlVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgIFtxdWVyeUZpbHRlcl09XCJxdWVyeUZpbHRlclwiIFtmaWx0ZXJzXT1cImZpbHRlcnNcIiBbc29ydHNdPVwic29ydHNcIlxuICAgICAgICAgICAgICAgIFtpc09wdGlvbkRpc2FibGVkRm5dPVwiaXNPcHRpb25EaXNhYmxlZEludGVybmFsRm5cIlxuICAgICAgICAgICAgICAgIFtpc09wdGlvbkhpZGRlbkZuXT1cImlzT3B0aW9uSGlkZGVuSW50ZXJuYWxGblwiXG4gID48L2VsZGVyLXNlbGVjdD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2ltcGxlQ2hpcFRlbXBsYXRlIGxldC1jaGlwTW9kZWw+XG4gIDxzcGFuIGNsYXNzPVwiZWxkZXItY2hpcC10ZXh0XCI+e3tjaGlwTW9kZWwuZGlzcGxheVRleHQgfCBlbGRlclRydW5jYXRlOjIwfX08L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG4iXX0=
|
|
237
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0L211bHRpL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9zZWxlY3QvbXVsdGkvZWxkZXItbXVsdGktc2VsZWN0LWNoaXBzL2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULHVCQUF1QixFQUd2QixLQUFLLEVBQ0wsWUFBWSxFQUNaLFdBQVcsRUFDWCxRQUFRLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQ3hDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFDLDhCQUE4QixFQUFFLHdCQUF3QixFQUFFLCtCQUErQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFHNUksT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUFDLGlCQUFpQixFQUE0QyxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7Ozs7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QUFDO2dCQThDdEQsU0FBUztzQkFBbEMsV0FBVzt1QkFBQyxPQUFPO2dCQUkwQixhQUFhO3NCQUExRCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFJSyxlQUFlO3NCQUEzRCxXQUFXO3VCQUFDLDBCQUEwQjtnQkFJTyxhQUFhO3NCQUExRCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFJRyxVQUFVO3NCQUFwRCxXQUFXO3VCQUFDLHdCQUF3QjtnQkFXMUIsWUFBWTtzQkFEdEIsS0FBSztnQkFVSyxrQkFBa0I7c0JBRDVCLEtBQUs7Z0JBVUssbUJBQW1CO3NCQUQ3QixLQUFLO2dCQVVLLGdCQUFnQjtzQkFEMUIsS0FBSztnQkFjSyxpQkFBaUI7c0JBRDNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBOZ1pvbmUsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBDb250ZW50Q2hpbGQsXG4gIFRlbXBsYXRlUmVmLFxuICBPcHRpb25hbCwgU2VsZiwgZm9yd2FyZFJlZiwgSG9zdEJpbmRpbmdcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VsZGVyTXVsdGlTZWxlY3RCYXNlfSBmcm9tICcuLi9lbGRlci1tdWx0aS1zZWxlY3QtYmFzZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0VsZGVyU2VsZWN0Q2hpcEF2YXRhckRpcmVjdGl2ZSwgRWxkZXJTZWxlY3RDaGlwRGlyZWN0aXZlLCBFbGRlclNlbGVjdEN1c3RvbUlucHV0RGlyZWN0aXZlfSBmcm9tICcuLi8uLi9lbGRlci1zZWxlY3QtY2hpcC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtUaGVtZVBhbGV0dGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TWF0Rm9ybUZpZWxkQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQge0VMREVSX1NFTEVDVF9CQVNFLCBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlLCBUZXh0UmVzb2x2ZXJGbn0gZnJvbSAnLi4vLi4vZWxkZXItc2VsZWN0LWJhc2UnO1xuaW1wb3J0IHtGb2N1c01vbml0b3J9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7RWxkZXJEaWFsb2dTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9kaWFsb2dzL2VsZGVyLWRpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmNsYXNzIENoaXBNb2RlbDxUPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZTogVCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheVRleHQ6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29sb3I6IFRoZW1lUGFsZXR0ZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgcmVtb3ZlYWJsZTogYm9vbGVhblxuICApIHtcbiAgfVxufVxuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLW11bHRpLXNlbGVjdC1jaGlwcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lbGRlci1tdWx0aS1zZWxlY3QtY2hpcHMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogRWxkZXJNdWx0aVNlbGVjdENoaXBzQ29tcG9uZW50fSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBFTERFUl9TRUxFQ1RfQkFTRSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVsZGVyTXVsdGlTZWxlY3RDaGlwc0NvbXBvbmVudClcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJNdWx0aVNlbGVjdENoaXBzQ29tcG9uZW50PFRJZCA9IGFueSwgVEVudGl0eSA9IGFueSwgVFZhbHVlID0gYW55PlxuICBleHRlbmRzIEVsZGVyTXVsdGlTZWxlY3RCYXNlPFRJZCwgVEVudGl0eSwgVFZhbHVlPiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RDaGlwcyQ6IE9ic2VydmFibGU8Q2hpcE1vZGVsPFRFbnRpdHk+W10+O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2hpcENvbG9yUmVzb2x2ZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDwobzE6IGFueSkgPT4gVGhlbWVQYWxldHRlPigodmFsdWU6IFRFbnRpdHkpID0+IHVuZGVmaW5lZCk7XG5cbiAgLyoqXG4gICAqIEhpZGVzIHRoZSBjaGlwIGF2YXRhciBpZiB0aGlzIGZ1bmN0aW9uIGV2YWx1YXRlcyB0byB0cnVlLlxuICAgKiBVc2VmdWxsIGlmIG5vdCBhbGwgY2hpcHMgc3VwcG9ydCBhdmF0YXJzIChlbXB0eSBjaGlwQXZhdGFyVGVtcGxhdGUpLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGhpZGVBdmF0YXJGbjogKGU6IFRFbnRpdHkpID0+IGJvb2xlYW4gPSBlID0+IGZhbHNlO1xuXG4gIHB1YmxpYyBzZWxlY3RhYmxlID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYWxsb3dSZW1vdmUgPSB0cnVlO1xuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTZWxlY3RDaGlwRGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZX0pXG4gIHB1YmxpYyBjaGlwVGVtcGxhdGVRdWVyeTogVGVtcGxhdGVSZWY8YW55PjtcbiAgcHJpdmF0ZSBfY2hpcFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTZWxlY3RDaGlwQXZhdGFyRGlyZWN0aXZlLCB7cmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZX0pXG4gIHB1YmxpYyBjaGlwQXZhdGFyVGVtcGxhdGVRdWVyeTogVGVtcGxhdGVSZWY8YW55PjtcbiAgcHJpdmF0ZSBfY2hpcEF2YXRhclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoRWxkZXJTZWxlY3RDdXN0b21JbnB1dERpcmVjdGl2ZSwge3JlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWV9KVxuICBwdWJsaWMgY3VzdG9tSW5wdXRUZW1wbGF0ZVF1ZXJ5OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBwcml2YXRlIF9jdXN0b21JbnB1dFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG5cbiAgcHJpdmF0ZSBfY2hpcENvbG9yRW5hYmxlZCA9IGZhbHNlO1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGhvc3RSZWY6IEVsZW1lbnRSZWYsXG4gICAgem9uZTogTmdab25lLFxuICAgIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgZGlhbG9nU2VydmljZTogRWxkZXJEaWFsb2dTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgbmdDb250cm9sOiBOZ0NvbnRyb2xcbiAgKSB7XG4gICAgc3VwZXIoem9uZSwgaG9zdFJlZiwgJ211bHRpLXNlbGVjdC1jaGlwcycsIGZvY3VzTW9uaXRvciwgdHJhbnNsYXRlU2VydmljZSwgZGlhbG9nU2VydmljZSwgbmdDb250cm9sKTtcblxuICAgIHRoaXMucGxhY2Vob2xkZXIgPSAnLi4uJztcblxuICAgIHRoaXMuc2VsZWN0Q2hpcHMkID0gY29tYmluZUxhdGVzdChcbiAgICAgIFtcbiAgICAgICAgdGhpcy5lbnRpdGllcyQsXG4gICAgICAgIHRoaXMuZW50aXR5SWRzJCxcbiAgICAgICAgdGhpcy5zdGF0ZSQsXG4gICAgICAgIHRoaXMuZGlzcGxheVByb3BlcnR5UmVzb2x2ZXIkLFxuICAgICAgICB0aGlzLmNoaXBDb2xvclJlc29sdmVyJFxuICAgICAgXVxuICAgICkucGlwZShcbiAgICAgIG1hcCgoW2VudGl0aWVzLCBlbnRpdHlJZHMsIHN0YXRlLCBkUFIsIGNDUl0pID0+XG4gICAgICAgIHRoaXMuYnVpbGRDaGlwTW9kZWxzT3JGYWxsYmFjayhlbnRpdGllcywgZW50aXR5SWRzLCBzdGF0ZSwgZFBSLCBjQ1IpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBIb3N0IEJpbmRpbmdzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgaG9zdENsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdlbGRlci1zZWxlY3QtYmFzZSBlbGRlci1tdWx0aS1zZWxlY3QnO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tYXQtc2VsZWN0LWRpc2FibGVkJykgZ2V0IGRpc2FibGVkQ2xhc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQ7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1hdC1zZWxlY3QtaW52YWxpZCcpIGdldCBlcnJvclN0YXRlQ2xhc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JTdGF0ZTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MubWF0LXNlbGVjdC1yZXF1aXJlZCcpIGdldCByZXF1aXJlZENsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlcXVpcmVkO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5tYXQtc2VsZWN0LWVtcHR5JykgZ2V0IGVtcHR5Q2xhc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW1wdHk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGNoaXBUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuX2NoaXBUZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICB9XG5cbiAgcHVibGljIGdldCBjaGlwVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NoaXBUZW1wbGF0ZSB8fCB0aGlzLmNoaXBUZW1wbGF0ZVF1ZXJ5O1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjaGlwQXZhdGFyVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLl9jaGlwQXZhdGFyVGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hpcEF2YXRhclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9jaGlwQXZhdGFyVGVtcGxhdGUgfHwgdGhpcy5jaGlwQXZhdGFyVGVtcGxhdGVRdWVyeTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY3VzdG9tSW5wdXRUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuX2N1c3RvbUlucHV0VGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3VzdG9tSW5wdXRUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fY3VzdG9tSW5wdXRUZW1wbGF0ZSB8fCB0aGlzLmN1c3RvbUlucHV0VGVtcGxhdGVRdWVyeTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hpcENvbG9yRW5hYmxlZChlbmFibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5fY2hpcENvbG9yRW5hYmxlZCA9IGVuYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNoaXBDb2xvckVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JTdGF0ZSB8fCB0aGlzLl9jaGlwQ29sb3JFbmFibGVkO1xuICB9XG5cblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIHRoZSBjb2xvciBvZiBhIGdpdmVuIGxhYmVsIG9iamVjdC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY2hpcENvbG9yUmVzb2x2ZXIoZm46IChvMTogYW55KSA9PiBUaGVtZVBhbGV0dGUpIHtcbiAgICBpZiAoIWZuKSB7XG4gICAgICB0aGlzLmNoaXBDb2xvckVuYWJsZWQgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjaGlwQ29sb3JSZXNvbHZlciBtdXN0IGJlIGEgZnVuY3Rpb24hJyk7XG4gICAgfVxuICAgIHRoaXMuY2hpcENvbG9yRW5hYmxlZCA9IHRydWU7XG4gICAgdGhpcy5jaGlwQ29sb3JSZXNvbHZlciQubmV4dChmbik7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgcmVzb2x2ZUNoaXBWYWx1ZShlMTogVEVudGl0eSk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RW50aXR5SWQoZTEpO1xuICB9XG5cbiAgcHVibGljIG9uQ2hpcEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIHRvUmVtb3ZlOiBURW50aXR5KTogdm9pZCB7XG4gICAgdGhpcy5sb2cud2Fybignb25DaGlwS2V5RG93bicsIGV2ZW50KTtcbiAgICBpZihldmVudC5rZXkgPT0gJ0JhY2tzcGFjZScgfHwgZXZlbnQua2V5ID09ICdEZWxldGUnKXtcbiAgICAgIHRoaXMucmVxdWVzdFJlbW92ZUVudGl0eSh0b1JlbW92ZSwgZXZlbnQuc2hpZnRLZXkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkNsaWNrUmVtb3ZlQ2hpcChcbiAgICBldmVudDogTW91c2VFdmVudCxcbiAgICB0b1JlbW92ZTogVEVudGl0eVxuICApOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMucmVxdWVzdFJlbW92ZUVudGl0eSh0b1JlbW92ZSwgZXZlbnQuc2hpZnRLZXkpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKG9wdGlvbnM/OiBGb2N1c09wdGlvbnMpIHtcbiAgICAvLyBUT0RPIHRoaXMuaW5wdXRDb250cm9sPy5mb2N1cyhvcHRpb25zKTtcbiAgICAvLyB0aGlzLmN1c3RvbUlucHV0VGVtcGxhdGUuZm9jdXMob3B0aW9ucylcbiAgfVxuXG4gIHB1YmxpYyBibHVyKCkge1xuICAgIC8vIFRPRE8gdGhpcy5pbnB1dENvbnRyb2w/LmJsdXIoKTtcbiAgICAvLyB0aGlzLmN1c3RvbUlucHV0VGVtcGxhdGUuYmx1cigpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGJ1aWxkQ2hpcE1vZGVsc09yRmFsbGJhY2soXG4gICAgZW50aXRpZXM6IFRFbnRpdHlbXSxcbiAgICBlbnRpdHlJZHM6IFRJZFtdLFxuICAgIHN0YXRlOiBFbGRlclNlbGVjdENvbXBvbmVudFN0YXRlLFxuICAgIGRQUjogVGV4dFJlc29sdmVyRm4sXG4gICAgY0NSOiAobzE6IGFueSkgPT4gVGhlbWVQYWxldHRlXG4gICk6IENoaXBNb2RlbDxURW50aXR5PltdIHtcblxuICAgIGlmIChzdGF0ZS5lcnJvcikge1xuICAgICAgcmV0dXJuIHRoaXMuYnVpbGRDaGlwRmFsbGJhY2tNb2RlbHMoZW50aXR5SWRzKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYnVpbGRDaGlwTW9kZWxzKGVudGl0aWVzLCBkUFIsIGNDUik7XG4gIH1cblxuXG4gIHByaXZhdGUgYnVpbGRDaGlwRmFsbGJhY2tNb2RlbHMoZW50aXR5SWRzOiBUSWRbXSk6IENoaXBNb2RlbDxURW50aXR5PltdIHtcbiAgICByZXR1cm4gZW50aXR5SWRzLm1hcChcbiAgICAgIGlkID0+IG5ldyBDaGlwTW9kZWw8VEVudGl0eT4oXG4gICAgICAgIDxhbnk+e2lkOiBpZH0sXG4gICAgICAgIFN0cmluZyhpZCksXG4gICAgICAgICd3YXJuJyxcbiAgICAgICAgdGhpcy5hbGxvd1JlbW92ZVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkQ2hpcE1vZGVscyhcbiAgICBlbnRpdGllczogVEVudGl0eVtdLFxuICAgIGRQUjogVGV4dFJlc29sdmVyRm4sXG4gICAgY0NSOiAobzE6IGFueSkgPT4gVGhlbWVQYWxldHRlXG4gICk6IENoaXBNb2RlbDxURW50aXR5PltdIHtcbiAgICBpZiAoZW50aXRpZXMpIHtcbiAgICAgIHJldHVybiBlbnRpdGllcy5tYXAoXG4gICAgICAgIGUgPT4gbmV3IENoaXBNb2RlbDxURW50aXR5PihcbiAgICAgICAgICBlLFxuICAgICAgICAgIGRQUihlKSxcbiAgICAgICAgICBjQ1IoZSksXG4gICAgICAgICAgdGhpcy5hbGxvd1JlbW92ZVxuICAgICAgICApXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gPENoaXBNb2RlbDxURW50aXR5PltdPltdO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2ICpuZ0lmPVwiKHNlbGVjdENoaXBzJCB8IGFzeW5jKSBhcyBjaGlwVmFsdWVzXCIgZnhGbGV4XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbGRlci1mb3JtLWNvbnRyb2xcIlxuICAgICBbbWF0VG9vbHRpcF09XCIoc3RhdGUkIHwgYXN5bmMpPy5lcnJvclwiXG4+XG5cbiAgPG1hdC1jaGlwLWxpc3QgW3NlbGVjdGFibGVdPVwiY2hpcENvbG9yRW5hYmxlZFwiIG11bHRpcGxlICNjaGlwcz5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIobWVyZ2VkU3RhdGUkIHwgYXN5bmMpIGFzIHN0YXRlXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiaWNvblwiIGZ4RmxleD1cIm5vbmVcIlxuICAgICAgICAgICBjbGFzcz1cImVsZGVyLWlucHV0LXByZWZpeC1pY29uLWNvbnRhaW5lclwiXG4gICAgICA+XG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImljb25cIiBkaXNhYmxlZFxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlbGRlci1wcmVmaXgtaWNvbiBlbGRlci1zZWxlY3QtaWNvbiBlbGRlci1pY29uLXNtYWxsIG5vc2VsZWN0XCJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5sb2FkaW5nXT1cInN0YXRlLmxvYWRpbmdcIlxuICAgICAgICA+XG4gICAgICAgICAge3tpY29ufX1cbiAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG5cbiAgICA8bWF0LWNoaXAgKm5nRm9yPVwibGV0IGNoaXBNb2RlbCBvZiBjaGlwVmFsdWVzXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJub3NlbGVjdCBjbGlja2FibGUtY2hpcFwiXG4gICAgICAgICAgICAgIFt2YWx1ZV09XCJyZXNvbHZlQ2hpcFZhbHVlKGNoaXBNb2RlbC52YWx1ZSlcIlxuICAgICAgICAgICAgICBbY29sb3JdPVwiY2hpcE1vZGVsLmNvbG9yXCIgW3NlbGVjdGFibGVdPVwiY2hpcENvbG9yRW5hYmxlZFwiIFtzZWxlY3RlZF09XCJjaGlwQ29sb3JFbmFibGVkXCJcbiAgICAgICAgICAgICAgW3JlbW92YWJsZV09XCJjaGlwTW9kZWwucmVtb3ZlYWJsZVwiXG4gICAgICAgICAgICAgIChrZXlkb3duKT1cIm9uQ2hpcEtleURvd24oJGV2ZW50LCBjaGlwTW9kZWwudmFsdWUpXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ3VycmVudENsaWNrZWQoY2hpcE1vZGVsLnZhbHVlKVwiXG4gICAgPlxuICAgICAgPG1hdC1jaGlwLWF2YXRhciAqbmdJZj1cImNoaXBBdmF0YXJUZW1wbGF0ZSAmJiAhaGlkZUF2YXRhckZuKGNoaXBNb2RlbC52YWx1ZSlcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2hpcEF2YXRhclRlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiBjaGlwTW9kZWx9XCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9tYXQtY2hpcC1hdmF0YXI+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2hpcFRlbXBsYXRlIHx8IHNpbXBsZUNoaXBUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogY2hpcE1vZGVsfVwiPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZVxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY2hpcE1vZGVsLnJlbW92ZWFibGVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrUmVtb3ZlQ2hpcCgkZXZlbnQsIGNoaXBNb2RlbC52YWx1ZSlcIj5cbiAgICAgICAgY2FuY2VsXG4gICAgICA8L21hdC1pY29uPlxuICAgIDwvbWF0LWNoaXA+XG5cbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IGNlbnRlclwiIGZ4RmxleFxuICAgICAgICAgc3R5bGU9XCJwYWRkaW5nLXRvcDogN3B4OyBwYWRkaW5nLWJvdHRvbTogN3B4O1wiPlxuXG4gICAgICA8IS0tIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcHNcIiAtLT5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21JbnB1dFRlbXBsYXRlIHx8IHNlbGVjdElucHV0O1wiPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImVsZGVyLWljb24tYnV0dG9uLXNtYWxsIGVsZGVyLWJyb3dzZS1pY29uXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3Rpb25Qb3B1cFwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xvY2tlZFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvcGVuU2VsZWN0aW9uUG9wdXAoJGV2ZW50KVwiIGFyaWEtbGFiZWw9XCJTZWFyY2hcIlxuICAgICAgICAgICAgICBlbGRlclN0b3BFdmVudFByb3BhZ2F0aW9uXG4gICAgICAgICAgICAgIHRhYkluZGV4PVwiLTFcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJlbGRlci1zZWxlY3QtaWNvblwiPnNlYXJjaDwvbWF0LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtY2hpcC1saXN0PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2VsZWN0SW5wdXQ+XG4gIDxlbGRlci1zZWxlY3QgYXV0b2NvbXBsZXRlIGVsZGVyQ2xlYXJTZWxlY3QgZnhGbGV4XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJlbGRlci1jaGlwLWlucHV0XCJcbiAgICAgICAgICAgICAgICBbZGF0YV09XCJkYXRhQ29udGV4dCQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEhZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCIhIXJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiISFyZWFkb25seVwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAoZW50aXR5VXBkYXRlZCk9XCJhcHBlbmRFbnRpdHkoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW2Rpc3BsYXlQcm9wZXJ0eVJlc29sdmVyXT1cImRpc3BsYXlQcm9wZXJ0eVJlc29sdmVyJCB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVUZW1wbGF0ZV09XCJ2YWx1ZVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICBbcXVlcnlGaWx0ZXJdPVwicXVlcnlGaWx0ZXJcIiBbZmlsdGVyc109XCJmaWx0ZXJzXCIgW3NvcnRzXT1cInNvcnRzXCJcbiAgICAgICAgICAgICAgICBbaXNPcHRpb25EaXNhYmxlZEZuXT1cImlzT3B0aW9uRGlzYWJsZWRJbnRlcm5hbEZuXCJcbiAgICAgICAgICAgICAgICBbaXNPcHRpb25IaWRkZW5Gbl09XCJpc09wdGlvbkhpZGRlbkludGVybmFsRm5cIlxuICA+PC9lbGRlci1zZWxlY3Q+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NpbXBsZUNoaXBUZW1wbGF0ZSBsZXQtY2hpcE1vZGVsPlxuICA8c3BhbiBjbGFzcz1cImVsZGVyLWNoaXAtdGV4dFwiPnt7Y2hpcE1vZGVsLmRpc3BsYXlUZXh0IHwgZWxkZXJUcnVuY2F0ZToyMH19PC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuIl19
|
|
@@ -44,9 +44,9 @@ export class ElderMultiSelectFormField extends ElderFromFieldMultiEntityBase {
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
ElderMultiSelectFormField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0
|
|
48
|
-
ElderMultiSelectFormField.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0
|
|
47
|
+
ElderMultiSelectFormField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ElderMultiSelectFormField, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
48
|
+
ElderMultiSelectFormField.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.0", 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 });
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ElderMultiSelectFormField, decorators: [{
|
|
50
50
|
type: Directive
|
|
51
51
|
}], ctorParameters: function () { return [{ type: undefined }]; }, propDecorators: { selectValueTemplate: [{
|
|
52
52
|
type: ViewChild,
|