@elderbyte/ngx-starter 14.12.0-beta4 → 15.0.0-mdc
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 +4 -3
- package/esm2020/lib/common/enums/elder-enum-translation.service.mjs +4 -4
- package/esm2020/lib/common/forms/elder-form-field-control-base.directive.mjs +4 -4
- package/esm2020/lib/common/forms/elder-from-field-base.mjs +4 -4
- package/esm2020/lib/common/forms/elder-from-field-customizable-base.mjs +52 -0
- package/esm2020/lib/common/forms/elder-from-field-entity-base.mjs +4 -4
- package/esm2020/lib/common/forms/elder-from-field-multi-entity-base.mjs +4 -4
- package/esm2020/lib/common/forms/form-field-base.component.mjs +10 -4
- package/esm2020/lib/common/forms/multi-model-base.component.mjs +4 -4
- package/esm2020/lib/common/forms/template-composite-control.mjs +4 -4
- package/esm2020/lib/common/forms/value-accessor-base.mjs +4 -4
- package/esm2020/lib/common/http/http-client-builder.service.mjs +4 -4
- package/esm2020/lib/common/http/http-client-pristine.mjs +4 -4
- package/esm2020/lib/common/http/transfer/data-transfer-factory.mjs +4 -4
- package/esm2020/lib/common/url/elder-router.service.mjs +4 -4
- package/esm2020/lib/common/url/elder-url-fragment-params.service.mjs +4 -4
- package/esm2020/lib/components/access-denied/elder-access-denied.component.mjs +5 -5
- package/esm2020/lib/components/access-denied/elder-access-denied.module.mjs +5 -5
- package/esm2020/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +6 -6
- package/esm2020/lib/components/auditing/elder-audit.module.mjs +5 -5
- package/esm2020/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +4 -4
- package/esm2020/lib/components/button-group/elder-button-group.module.mjs +5 -5
- package/esm2020/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +4 -4
- package/esm2020/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +5 -5
- package/esm2020/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +5 -5
- package/esm2020/lib/components/card-organizer/elder-card-organizer.module.mjs +5 -5
- package/esm2020/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +4 -4
- package/esm2020/lib/components/cards/elder-card/elder-card.component.mjs +40 -51
- package/esm2020/lib/components/cards/elder-card/elder-card.module.mjs +9 -8
- package/esm2020/lib/components/connectivity/elder-connectivity.module.mjs +5 -5
- package/esm2020/lib/components/connectivity/elder-connectivity.service.mjs +4 -4
- package/esm2020/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +4 -4
- package/esm2020/lib/components/containers/elder-containers.module.mjs +5 -5
- package/esm2020/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +4 -4
- package/esm2020/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +4 -4
- package/esm2020/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +4 -4
- package/esm2020/lib/components/csv/elder-csv.module.mjs +5 -5
- package/esm2020/lib/components/currency/elder-currency.module.mjs +5 -5
- package/esm2020/lib/components/currency/elder-currency.pipe.mjs +4 -4
- package/esm2020/lib/components/data-transfer/elder-data-transfer.module.mjs +5 -5
- package/esm2020/lib/components/data-transfer/elder-data-transfer.service.mjs +4 -4
- package/esm2020/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +5 -5
- package/esm2020/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +4 -4
- package/esm2020/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +4 -4
- package/esm2020/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +5 -5
- package/esm2020/lib/components/data-view/base/elder-data-view-base.mjs +17 -10
- package/esm2020/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +5 -5
- package/esm2020/lib/components/data-view/common/elder-data-common.module.mjs +5 -5
- package/esm2020/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +8 -8
- package/esm2020/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +5 -5
- package/esm2020/lib/components/data-view/common/selection/data-context-selection.directive.mjs +4 -4
- package/esm2020/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +5 -5
- package/esm2020/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +13 -12
- package/esm2020/lib/components/data-view/grid/elder-grid.module.mjs +9 -8
- package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +4 -4
- package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +5 -5
- package/esm2020/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +4 -4
- package/esm2020/lib/components/data-view/table/elder-number-cell.directive.mjs +4 -4
- package/esm2020/lib/components/data-view/table/elder-paginator-intl.mjs +4 -4
- package/esm2020/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +4 -4
- package/esm2020/lib/components/data-view/table/elder-table/elder-table.component.mjs +9 -8
- package/esm2020/lib/components/data-view/table/elder-table-column.directive.mjs +4 -4
- package/esm2020/lib/components/data-view/table/elder-table-extension.directive.mjs +4 -4
- package/esm2020/lib/components/data-view/table/elder-table-root.directive.mjs +4 -4
- package/esm2020/lib/components/data-view/table/elder-table-row.directive.mjs +4 -4
- package/esm2020/lib/components/data-view/table/elder-table-sort.directive.mjs +4 -4
- package/esm2020/lib/components/data-view/table/elder-table.module.mjs +9 -8
- package/esm2020/lib/components/data-view/table/model/elder-table-model.mjs +4 -4
- package/esm2020/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +5 -5
- package/esm2020/lib/components/dialogs/elder-dialog.module.mjs +6 -26
- package/esm2020/lib/components/dialogs/elder-dialog.service.mjs +5 -5
- package/esm2020/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +7 -7
- package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +4 -4
- package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +4 -4
- package/esm2020/lib/components/errors/elder-error.module.mjs +5 -5
- package/esm2020/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +6 -6
- package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +5 -5
- package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +5 -5
- package/esm2020/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +4 -4
- package/esm2020/lib/components/files/elder-file-drop-zone.directive.mjs +4 -4
- package/esm2020/lib/components/files/elder-file-select.directive.mjs +4 -4
- package/esm2020/lib/components/files/elder-file.module.mjs +5 -5
- package/esm2020/lib/components/files/file-select/file-select.component.mjs +5 -5
- package/esm2020/lib/components/files/file-upload/file-upload.component.mjs +11 -12
- package/esm2020/lib/components/forms/clipboard/elder-clipboard.service.mjs +4 -4
- package/esm2020/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +4 -4
- package/esm2020/lib/components/forms/directives/elder-clipboard-put.directive.mjs +4 -4
- package/esm2020/lib/components/forms/directives/elder-delayed-focus.directive.mjs +4 -4
- package/esm2020/lib/components/forms/directives/elder-form-field-dense.directive.mjs +17 -6
- package/esm2020/lib/components/forms/directives/elder-form-field-label.directive.mjs +5 -4
- package/esm2020/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +11 -6
- package/esm2020/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +4 -4
- package/esm2020/lib/components/forms/directives/elder-forms-directives.module.mjs +44 -71
- package/esm2020/lib/components/forms/directives/elder-input-pattern.directive.mjs +4 -4
- package/esm2020/lib/components/forms/directives/elder-key-event.directive.mjs +4 -4
- package/esm2020/lib/components/forms/directives/elder-next-focusable.directive.mjs +4 -4
- package/esm2020/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +4 -4
- package/esm2020/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +4 -4
- package/esm2020/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +4 -4
- package/esm2020/lib/components/forms/directives/elder-touched.directive.mjs +4 -4
- package/esm2020/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +4 -4
- package/esm2020/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +85 -0
- package/esm2020/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +47 -0
- package/esm2020/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +48 -0
- package/esm2020/lib/components/forms/directives/validation/strategies/fallback-validation-message-strategy.mjs +6 -0
- package/esm2020/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +55 -0
- package/esm2020/lib/components/forms/directives/validation/validation-message-strategy.mjs +2 -0
- package/esm2020/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +40 -0
- package/esm2020/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +40 -0
- package/esm2020/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +96 -0
- package/esm2020/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +68 -0
- package/esm2020/lib/components/forms/elder-forms.module.mjs +5 -5
- package/esm2020/lib/components/forms/search/elder-search-context.directive.mjs +4 -4
- package/esm2020/lib/components/forms/search/elder-search-input.directive.mjs +4 -4
- package/esm2020/lib/components/forms/search/elder-search.module.mjs +5 -5
- package/esm2020/lib/components/forms/search/search-box/elder-search-box.component.mjs +9 -7
- package/esm2020/lib/components/forms/search/search-box/elder-search-panel.component.mjs +4 -4
- package/esm2020/lib/components/global-search/elder-global-search.component.mjs +7 -7
- package/esm2020/lib/components/global-search/elder-global-search.module.mjs +5 -5
- package/esm2020/lib/components/global-search/elder-global-search.service.mjs +4 -4
- package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +7 -7
- package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +5 -5
- package/esm2020/lib/components/headers/elder-header/elder-header.component.mjs +4 -4
- package/esm2020/lib/components/headers/elder-header.module.mjs +5 -5
- package/esm2020/lib/components/http-support/elder-http-client.service.mjs +4 -4
- package/esm2020/lib/components/i18n/entities/elder-i18n-entities.module.mjs +5 -5
- package/esm2020/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +6 -6
- package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +4 -4
- package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +4 -4
- package/esm2020/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +9 -8
- package/esm2020/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +4 -4
- package/esm2020/lib/components/i18n/entities/elder-localized-texts.directive.mjs +4 -4
- package/esm2020/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +4 -4
- package/esm2020/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +4 -4
- package/esm2020/lib/components/i18n/entities/picker/localisation-picker.service.mjs +4 -4
- package/esm2020/lib/components/i18n/language/elder-language-interceptor.mjs +4 -4
- package/esm2020/lib/components/i18n/language/elder-language.module.mjs +5 -5
- package/esm2020/lib/components/i18n/language/elder-language.service.mjs +4 -4
- package/esm2020/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +6 -6
- package/esm2020/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +5 -5
- package/esm2020/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +4 -4
- package/esm2020/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +4 -4
- package/esm2020/lib/components/iframes/elder-iframe.module.mjs +16 -8
- package/esm2020/lib/components/iframes/iframe-close.directive.mjs +4 -4
- package/esm2020/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +4 -4
- package/esm2020/lib/components/iframes/iframe-host/iframe-host.component.mjs +8 -6
- package/esm2020/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +4 -4
- package/esm2020/lib/components/iframes/iframe.service.mjs +4 -4
- package/esm2020/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +4 -4
- package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +4 -4
- package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +8 -8
- package/esm2020/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +4 -4
- package/esm2020/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +4 -4
- package/esm2020/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +4 -4
- package/esm2020/lib/components/input/autocomplete/elder-autocomplete.module.mjs +5 -5
- package/esm2020/lib/components/labels/elder-labels.module.mjs +5 -5
- package/esm2020/lib/components/labels/labels-input/labels-input.component.mjs +8 -9
- package/esm2020/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +273 -0
- package/esm2020/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +91 -0
- package/esm2020/lib/components/measures/directives/elder-unit-select.directive.mjs +4 -4
- package/esm2020/lib/components/measures/elder-measures.module.mjs +44 -20
- package/esm2020/lib/components/measures/elder-quantity-transform.pipe.mjs +4 -4
- package/esm2020/lib/components/measures/elder-quantity.pipe.mjs +4 -4
- package/esm2020/lib/components/measures/elder-unit.service.mjs +4 -4
- package/esm2020/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +33 -0
- package/esm2020/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +176 -0
- package/esm2020/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +87 -0
- package/esm2020/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +76 -0
- package/esm2020/lib/components/measures/util/elder-quantity.service.mjs +4 -4
- package/esm2020/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +4 -4
- package/esm2020/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +5 -5
- package/esm2020/lib/components/navigation/nav/elder-nav.module.mjs +10 -8
- package/esm2020/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +52 -18
- package/esm2020/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +115 -32
- package/esm2020/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +64 -8
- package/esm2020/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +5 -5
- package/esm2020/lib/components/navigation/toolbar/elder-toolbar.module.mjs +5 -5
- package/esm2020/lib/components/navigation/toolbar/elder-toolbar.service.mjs +4 -4
- package/esm2020/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +5 -5
- package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +5 -5
- package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +4 -4
- package/esm2020/lib/components/overlays/elder-overlay-origin.directive.mjs +4 -4
- package/esm2020/lib/components/overlays/elder-overlay-trigger.directive.mjs +4 -4
- package/esm2020/lib/components/overlays/elder-overlay.component.mjs +4 -4
- package/esm2020/lib/components/overlays/elder-overlay.module.mjs +5 -5
- package/esm2020/lib/components/panels/card-panel/elder-card-panel.component.mjs +4 -4
- package/esm2020/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +4 -4
- package/esm2020/lib/components/panels/elder-panel.module.mjs +5 -5
- package/esm2020/lib/components/panels/flat/elder-panel.component.mjs +4 -4
- package/esm2020/lib/components/public_api.mjs +1 -2
- package/esm2020/lib/components/select/auto/elder-auto-select-first.directive.mjs +4 -4
- package/esm2020/lib/components/select/elder-select-base.mjs +4 -4
- package/esm2020/lib/components/select/elder-select-chip.directive.mjs +10 -10
- package/esm2020/lib/components/select/elder-select-on-tab.directive.mjs +4 -4
- package/esm2020/lib/components/select/elder-select-value.directive.mjs +4 -4
- package/esm2020/lib/components/select/elder-select.module.mjs +5 -5
- package/esm2020/lib/components/select/multi/elder-multi-select-base.mjs +4 -4
- package/esm2020/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +44 -21
- package/esm2020/lib/components/select/multi/elder-multi-select-form-field.mjs +37 -13
- package/esm2020/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +4 -4
- package/esm2020/lib/components/select/popup/selection-model-popup.directive.mjs +4 -4
- package/esm2020/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +4 -4
- package/esm2020/lib/components/select/single/elder-clear-select.directive.mjs +4 -4
- package/esm2020/lib/components/select/single/elder-select/elder-select.component.mjs +9 -8
- package/esm2020/lib/components/select/single/elder-select-form-field.mjs +4 -4
- package/esm2020/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +10 -13
- package/esm2020/lib/components/select-chip-list/elder-chip-list-select.module.mjs +5 -5
- package/esm2020/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +4 -4
- package/esm2020/lib/components/shell/drawers/elder-router-outlet.service.mjs +4 -4
- package/esm2020/lib/components/shell/elder-shell-slot.directive.mjs +4 -4
- package/esm2020/lib/components/shell/elder-shell.module.mjs +5 -5
- package/esm2020/lib/components/shell/elder-shell.service.mjs +4 -4
- package/esm2020/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +4 -4
- package/esm2020/lib/components/shell/shell/elder-shell.component.mjs +17 -17
- package/esm2020/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +4 -4
- package/esm2020/lib/components/tabs/elder-tab/elder-tab.directive.mjs +4 -4
- package/esm2020/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +4 -4
- package/esm2020/lib/components/tabs/elder-tab.module.mjs +5 -5
- package/esm2020/lib/components/theme/elder-theme-applier.directive.mjs +4 -4
- package/esm2020/lib/components/theme/elder-theme-preference.service.mjs +4 -4
- package/esm2020/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +4 -4
- package/esm2020/lib/components/theme/elder-theme.directive.mjs +4 -4
- package/esm2020/lib/components/theme/elder-theme.module.mjs +5 -5
- package/esm2020/lib/components/theme/elder-theme.service.mjs +4 -4
- package/esm2020/lib/components/time/date-adapters/custom-date-adapter.mjs +4 -4
- package/esm2020/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +6 -6
- package/esm2020/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +5 -5
- package/esm2020/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +6 -6
- package/esm2020/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +4 -4
- package/esm2020/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +6 -6
- package/esm2020/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +8 -8
- package/esm2020/lib/components/time/elder-time.module.mjs +9 -9
- package/esm2020/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +6 -6
- package/esm2020/lib/components/toasts/elder-toast.module.mjs +5 -5
- package/esm2020/lib/components/toasts/elder-toast.service.mjs +5 -31
- package/esm2020/lib/components/toasts/standard-toast/standard-toast.component.mjs +6 -6
- package/esm2020/lib/components/url-fragment/elder-url-fragment.module.mjs +5 -5
- package/esm2020/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +4 -4
- package/esm2020/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +4 -4
- package/esm2020/lib/components/viewers/elder-viewers.module.mjs +5 -5
- package/esm2020/lib/features/event-source/elder-event-source.service.mjs +4 -4
- package/esm2020/lib/features/kafent/access-token-provider.mjs +4 -4
- package/esm2020/lib/features/kafent/kafent-config.mjs +4 -4
- package/esm2020/lib/features/kafent/kafent-event-stream.mjs +4 -4
- package/esm2020/lib/features/kafent/kafent-event.service.mjs +4 -4
- package/esm2020/lib/features/kafent/kafent.module.mjs +5 -5
- package/esm2020/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +4 -4
- package/esm2020/lib/pipes/bytes.pipe.mjs +4 -4
- package/esm2020/lib/pipes/elder-pipes.module.mjs +11 -11
- package/esm2020/lib/pipes/elder-repeat.pipe.mjs +4 -4
- package/esm2020/lib/pipes/elder-round.pipe.mjs +4 -4
- package/esm2020/lib/pipes/elder-safe-url.pipe.mjs +4 -4
- package/esm2020/lib/pipes/elder-truncate.pipe.mjs +4 -4
- package/esm2020/lib/pipes/iso-duration.pipe.mjs +4 -4
- package/esm2020/lib/pipes/iso-interval-parse.pipe.mjs +4 -4
- package/esm2020/lib/pipes/iso-interval.pipe.mjs +4 -4
- package/esm2020/lib/pipes/time-ago.pipe.mjs +4 -4
- package/esm2020/lib/pipes/time-duration.pipe.mjs +4 -4
- package/esm2020/lib/pipes/weight.pipe.mjs +4 -4
- package/fesm2015/elderbyte-ngx-starter.mjs +2600 -2012
- package/fesm2015/elderbyte-ngx-starter.mjs.map +1 -1
- package/fesm2020/elderbyte-ngx-starter.mjs +2604 -2024
- package/fesm2020/elderbyte-ngx-starter.mjs.map +1 -1
- package/lib/common/forms/elder-form-field-control-base.directive.d.ts +1 -1
- package/lib/common/forms/elder-from-field-base.d.ts +1 -1
- package/lib/common/forms/elder-from-field-customizable-base.d.ts +36 -0
- package/lib/common/forms/elder-from-field-entity-base.d.ts +1 -1
- package/lib/common/forms/elder-from-field-multi-entity-base.d.ts +1 -1
- package/lib/common/forms/form-field-base.component.d.ts +7 -1
- package/lib/common/forms/multi-model-base.component.d.ts +1 -1
- package/lib/common/forms/template-composite-control.d.ts +1 -1
- package/lib/common/forms/value-accessor-base.d.ts +1 -1
- package/lib/components/access-denied/elder-access-denied.component.d.ts +1 -1
- package/lib/components/auditing/audited-entity/elder-audited-entity.component.d.ts +1 -1
- package/lib/components/button-group/elder-button-group/elder-button-group.component.d.ts +1 -1
- package/lib/components/card-organizer/card-organizer/elder-card-organizer.component.d.ts +1 -1
- package/lib/components/card-organizer/card-organizer/elder-stack-card.directive.d.ts +1 -1
- package/lib/components/card-organizer/card-stack/elder-card-stack.component.d.ts +1 -1
- package/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.d.ts +1 -1
- package/lib/components/cards/elder-card/elder-card.component.d.ts +18 -20
- package/lib/components/cards/elder-card/elder-card.module.d.ts +2 -1
- package/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.d.ts +1 -1
- package/lib/components/containers/elder-scroll-container/elder-scroll-container.component.d.ts +1 -1
- package/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.d.ts +1 -1
- package/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.d.ts +1 -1
- package/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.d.ts +1 -1
- package/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.d.ts +1 -1
- package/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.d.ts +1 -1
- package/lib/components/data-view/base/elder-data-view-base.d.ts +11 -6
- package/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.d.ts +1 -1
- package/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.d.ts +2 -2
- package/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.d.ts +1 -1
- package/lib/components/data-view/common/selection/data-context-selection.directive.d.ts +1 -1
- package/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.d.ts +1 -1
- package/lib/components/data-view/grid/elder-grid/elder-grid.component.d.ts +3 -3
- package/lib/components/data-view/grid/elder-grid.module.d.ts +2 -1
- package/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.d.ts +1 -1
- package/lib/components/data-view/table/activation/elder-table-activation.directive.d.ts +1 -1
- package/lib/components/data-view/table/elder-number-cell.directive.d.ts +1 -1
- package/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.d.ts +1 -1
- package/lib/components/data-view/table/elder-table/elder-table.component.d.ts +1 -1
- package/lib/components/data-view/table/elder-table-column.directive.d.ts +1 -1
- package/lib/components/data-view/table/elder-table-extension.directive.d.ts +1 -1
- package/lib/components/data-view/table/elder-table-root.directive.d.ts +1 -1
- package/lib/components/data-view/table/elder-table-row.directive.d.ts +1 -1
- package/lib/components/data-view/table/elder-table-sort.directive.d.ts +1 -1
- package/lib/components/data-view/table/elder-table.module.d.ts +2 -1
- package/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.d.ts +1 -1
- package/lib/components/dialogs/elder-dialog.module.d.ts +0 -10
- package/lib/components/dialogs/question-dialog/elder-question-dialog.component.d.ts +1 -1
- package/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.d.ts +1 -1
- package/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.d.ts +1 -1
- package/lib/components/errors/exception-detail/elder-exception-detail.component.d.ts +1 -1
- package/lib/components/expand-toggle-button/elder-expand-toggle-button.component.d.ts +1 -1
- package/lib/components/files/blob-viewer/elder-blob-viewer.component.d.ts +1 -1
- package/lib/components/files/elder-file-drop-zone.directive.d.ts +1 -1
- package/lib/components/files/elder-file-select.directive.d.ts +1 -1
- package/lib/components/files/file-select/file-select.component.d.ts +1 -1
- package/lib/components/files/file-upload/file-upload.component.d.ts +1 -1
- package/lib/components/forms/directives/base/elder-class-hostbinding-base.d.ts +1 -1
- package/lib/components/forms/directives/elder-clipboard-put.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-delayed-focus.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-form-field-dense.directive.d.ts +12 -3
- package/lib/components/forms/directives/elder-form-field-label.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-form-field-no-hint.directive.d.ts +7 -3
- package/lib/components/forms/directives/elder-form-field-no-spinner.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-forms-directives.module.d.ts +13 -35
- package/lib/components/forms/directives/elder-input-pattern.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-key-event.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-next-focusable.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-plug-parent-form.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-stop-event-propagation.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-tab-focus-trap.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-touched.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-triple-state-checkbox.directive.d.ts +1 -1
- package/lib/components/forms/directives/validation/elder-validation-error.directive.d.ts +44 -0
- package/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.d.ts +26 -0
- package/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.d.ts +36 -0
- package/lib/components/forms/directives/validation/strategies/fallback-validation-message-strategy.d.ts +5 -0
- package/lib/components/forms/directives/validation/validation-message-renderer.service.d.ts +28 -0
- package/lib/components/forms/directives/validation/validation-message-strategy.d.ts +4 -0
- package/lib/components/forms/directives/validation/validators/elder-max.validator.d.ts +11 -0
- package/lib/components/forms/directives/validation/validators/elder-min.validator.d.ts +11 -0
- package/lib/components/forms/directives/validation/{elder-multiple-of.validator.d.ts → validators/elder-multiple-of.validator.d.ts} +17 -2
- package/lib/components/forms/directives/validation/{elder-required-ignore-zero.validator.d.ts → validators/elder-required-ignore-zero.validator.d.ts} +1 -1
- package/lib/components/forms/search/elder-search-context.directive.d.ts +1 -1
- package/lib/components/forms/search/elder-search-input.directive.d.ts +1 -1
- package/lib/components/forms/search/search-box/elder-search-box.component.d.ts +3 -1
- package/lib/components/forms/search/search-box/elder-search-panel.component.d.ts +1 -1
- package/lib/components/global-search/elder-global-search.component.d.ts +1 -1
- package/lib/components/graph/elder-progress-bar/elder-progress-bar.component.d.ts +1 -1
- package/lib/components/headers/elder-header/elder-header.component.d.ts +1 -1
- package/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.d.ts +1 -1
- package/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.d.ts +1 -1
- package/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.d.ts +1 -1
- package/lib/components/i18n/entities/elder-localized-text-column.directive.d.ts +1 -1
- package/lib/components/i18n/entities/elder-localized-texts.directive.d.ts +1 -1
- package/lib/components/i18n/language/language-switcher/elder-language-switcher.component.d.ts +1 -1
- package/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.d.ts +1 -1
- package/lib/components/iframes/data-view/data-view-iframe-adapter.directive.d.ts +1 -1
- package/lib/components/iframes/elder-iframe.module.d.ts +3 -1
- package/lib/components/iframes/iframe-close.directive.d.ts +1 -1
- package/lib/components/iframes/iframe-dialog/iframe-dialog.component.d.ts +1 -1
- package/lib/components/iframes/iframe-host/iframe-host.component.d.ts +1 -1
- package/lib/components/iframes/iframe-side-content/iframe-side-content.component.d.ts +1 -1
- package/lib/components/infinitescroll/elder-infinite-autocomplete.directive.d.ts +1 -1
- package/lib/components/infinitescroll/elder-infinite-scroll.directive.d.ts +1 -1
- package/lib/components/infinitescroll/elder-infinite-scroll.module.d.ts +1 -1
- package/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.d.ts +1 -1
- package/lib/components/input/autocomplete/elder-autocomplete-many.directive.d.ts +1 -1
- package/lib/components/input/autocomplete/elder-autocomplete.directive.d.ts +1 -1
- package/lib/components/labels/labels-input/labels-input.component.d.ts +1 -2
- package/lib/components/measures/{dimensions-input → dimensions/dimensions-input}/elder-dimensions-input.component.d.ts +41 -30
- package/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.d.ts +37 -0
- package/lib/components/measures/directives/elder-unit-select.directive.d.ts +1 -1
- package/lib/components/measures/elder-measures.module.d.ts +20 -12
- package/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.d.ts +20 -0
- package/lib/components/measures/quantity-input/{elder-quantity-input.component.d.ts → quantity-input-control/elder-quantity-input-control.component.d.ts} +27 -42
- package/lib/components/{select-list/select-list/elder-select-list.component.d.ts → measures/quantity-input/validation/elder-quantity-range.validator.d.ts} +22 -32
- package/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.d.ts +36 -0
- package/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.d.ts +1 -1
- package/lib/components/navigation/nav/elder-nav.module.d.ts +3 -1
- package/lib/components/navigation/nav/nav-group/elder-nav-group.component.d.ts +23 -9
- package/lib/components/navigation/nav/nav-link/elder-nav-link.component.d.ts +69 -13
- package/lib/components/navigation/nav/nav-list/elder-nav-list.component.d.ts +43 -3
- package/lib/components/navigation/toolbar/elder-toolbar-column.directive.d.ts +1 -1
- package/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.d.ts +1 -1
- package/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.d.ts +1 -1
- package/lib/components/overlays/elder-overlay-origin.directive.d.ts +1 -1
- package/lib/components/overlays/elder-overlay-trigger.directive.d.ts +1 -1
- package/lib/components/overlays/elder-overlay.component.d.ts +1 -1
- package/lib/components/panels/card-panel/elder-card-panel.component.d.ts +1 -1
- package/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.d.ts +1 -1
- package/lib/components/panels/flat/elder-panel.component.d.ts +1 -1
- package/lib/components/public_api.d.ts +0 -1
- package/lib/components/select/auto/elder-auto-select-first.directive.d.ts +1 -1
- package/lib/components/select/elder-select-base.d.ts +1 -1
- package/lib/components/select/elder-select-chip.directive.d.ts +3 -3
- package/lib/components/select/elder-select-on-tab.directive.d.ts +1 -1
- package/lib/components/select/elder-select-value.directive.d.ts +1 -1
- package/lib/components/select/multi/elder-multi-select-base.d.ts +1 -1
- package/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.d.ts +13 -7
- package/lib/components/select/multi/elder-multi-select-form-field.d.ts +10 -5
- package/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.d.ts +1 -1
- package/lib/components/select/popup/selection-model-popup.directive.d.ts +1 -1
- package/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.d.ts +1 -1
- package/lib/components/select/single/elder-clear-select.directive.d.ts +1 -1
- package/lib/components/select/single/elder-select/elder-select.component.d.ts +3 -2
- package/lib/components/select/single/elder-select-form-field.d.ts +1 -1
- package/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.d.ts +5 -10
- package/lib/components/shell/elder-shell-slot.directive.d.ts +1 -1
- package/lib/components/shell/header/elder-app-header/elder-app-header.component.d.ts +1 -1
- package/lib/components/shell/shell/elder-shell.component.d.ts +4 -4
- package/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.d.ts +1 -1
- package/lib/components/tabs/elder-tab/elder-tab.directive.d.ts +1 -1
- package/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.d.ts +1 -1
- package/lib/components/theme/elder-theme-applier.directive.d.ts +1 -1
- package/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.d.ts +1 -1
- package/lib/components/theme/elder-theme.directive.d.ts +1 -1
- package/lib/components/time/duration/elder-duration-input/elder-duration-input.component.d.ts +1 -1
- package/lib/components/time/elder-date-switcher/elder-date-switcher.component.d.ts +1 -1
- package/lib/components/time/elder-date-time-input/elder-date-time-input.component.d.ts +1 -1
- package/lib/components/time/elder-interval-input/elder-interval-input.component.d.ts +1 -1
- package/lib/components/time/elder-local-date-input/elder-local-date-input.component.d.ts +1 -1
- package/lib/components/time/elder-local-time-input/elder-local-time-input.component.d.ts +1 -1
- package/lib/components/time/period/elder-period-input/elder-period-input.component.d.ts +1 -1
- package/lib/components/toasts/elder-toast.service.d.ts +0 -14
- package/lib/components/toasts/standard-toast/standard-toast.component.d.ts +3 -2
- package/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.d.ts +1 -1
- package/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.d.ts +1 -1
- package/package.json +5 -5
- package/src/lib/components/cards/elder-card/elder-card.component.scss +1 -9
- package/src/lib/components/data-view/grid/elder-grid/elder-grid.component.scss +1 -2
- package/src/lib/components/data-view/table/elder-table/elder-table.component.scss +9 -8
- package/src/lib/components/forms/search/search-box/elder-search-box.component.scss +7 -0
- package/src/lib/components/iframes/iframe-host/iframe-host.component.scss +7 -4
- package/src/lib/components/measures/{dimensions-input → dimensions/dimensions-input}/elder-dimensions-input.component.scss +0 -0
- package/src/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.scss +0 -0
- package/src/lib/components/measures/quantity-input/{elder-quantity-input.component.scss → quantity-input-control/elder-quantity-input-control.component.scss} +0 -3
- package/src/lib/components/navigation/nav/_elder-nav-theme.scss +68 -0
- package/src/lib/components/navigation/nav/nav-group/elder-nav-group.component.scss +12 -32
- package/src/lib/components/navigation/nav/nav-link/elder-nav-link.component.scss +12 -42
- package/src/lib/components/navigation/nav/nav-list/elder-nav-list.component.scss +1 -1
- package/src/lib/components/panels/flat/_elder-panel-theme.scss +3 -2
- package/src/lib/components/select/_elder-select-base.scss +15 -92
- package/src/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.scss +0 -8
- package/theming/_elder-common.scss +114 -19
- package/theming/_elder-flex-layout.scss +1 -0
- package/theming/_elder-mdc-support.scss +147 -0
- package/theming/_elder-style-fixes.scss +35 -2
- package/theming/_elder-toast-theme.scss +2 -1
- package/theming/_mat-icon-button-size.scss +29 -0
- package/esm2020/lib/components/forms/directives/elder-max.directive.mjs +0 -39
- package/esm2020/lib/components/forms/directives/elder-min.directive.mjs +0 -39
- package/esm2020/lib/components/forms/directives/validation/elder-multiple-of.validator.mjs +0 -57
- package/esm2020/lib/components/forms/directives/validation/elder-required-ignore-zero.validator.mjs +0 -68
- package/esm2020/lib/components/measures/dimensions-input/elder-dimensions-input.component.mjs +0 -229
- package/esm2020/lib/components/measures/quantity-input/elder-quantity-input.component.mjs +0 -189
- package/esm2020/lib/components/select-list/elder-select-list.module.mjs +0 -36
- package/esm2020/lib/components/select-list/select-list/elder-select-list.component.mjs +0 -75
- package/esm2020/lib/components/select-list/select-list-item/elder-select-list-item.component.mjs +0 -118
- package/lib/components/forms/directives/elder-max.directive.d.ts +0 -11
- package/lib/components/forms/directives/elder-min.directive.d.ts +0 -11
- package/lib/components/select-list/elder-select-list.module.d.ts +0 -15
- package/lib/components/select-list/select-list-item/elder-select-list-item.component.d.ts +0 -57
- package/src/lib/components/select-list/select-list/elder-select-list.component.scss +0 -19
- package/src/lib/components/select-list/select-list-item/elder-select-list-item.component.scss +0 -37
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, Optional, Output, Self, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
3
|
+
import { MatFormFieldControl } from '@angular/material/form-field';
|
|
4
|
+
import { Dimensions } from '../../model/dimensions';
|
|
5
|
+
import { BehaviorSubject } from 'rxjs';
|
|
6
|
+
import { map } from 'rxjs/operators';
|
|
7
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
8
|
+
import { ElderFormFieldControlBase } from '../../../../common/forms/elder-form-field-control-base.directive';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/cdk/a11y";
|
|
11
|
+
import * as i2 from "@ngx-translate/core";
|
|
12
|
+
import * as i3 from "@angular/forms";
|
|
13
|
+
import * as i4 from "@angular/common";
|
|
14
|
+
import * as i5 from "../../quantity-input/quantity-input-control/elder-quantity-input-control.component";
|
|
15
|
+
class DimensionsContext {
|
|
16
|
+
constructor(lengthActive, widthActive, heightActive) {
|
|
17
|
+
this.lengthActive = lengthActive;
|
|
18
|
+
this.widthActive = widthActive;
|
|
19
|
+
this.heightActive = heightActive;
|
|
20
|
+
}
|
|
21
|
+
static of(mode) {
|
|
22
|
+
switch (mode) {
|
|
23
|
+
case 'length': return new DimensionsContext(true, false, false);
|
|
24
|
+
case 'width': return new DimensionsContext(false, true, false);
|
|
25
|
+
case 'height': return new DimensionsContext(false, false, true);
|
|
26
|
+
case 'area': return new DimensionsContext(true, true, false);
|
|
27
|
+
case 'volume': return new DimensionsContext(true, true, true);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
get isLengthLast() {
|
|
31
|
+
return this.lengthActive && !this.widthActive && !this.heightActive;
|
|
32
|
+
}
|
|
33
|
+
get isWidthLast() {
|
|
34
|
+
return this.widthActive && !this.heightActive;
|
|
35
|
+
}
|
|
36
|
+
get isHeightLast() {
|
|
37
|
+
return this.heightActive;
|
|
38
|
+
}
|
|
39
|
+
get isHeightFirst() {
|
|
40
|
+
return !this.lengthActive && !this.widthActive && this.heightActive;
|
|
41
|
+
}
|
|
42
|
+
get isWidthFirst() {
|
|
43
|
+
return !this.lengthActive && this.widthActive;
|
|
44
|
+
}
|
|
45
|
+
get isLengthFirst() {
|
|
46
|
+
return this.lengthActive;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export class ElderDimensionsInputComponent extends ElderFormFieldControlBase {
|
|
50
|
+
/***************************************************************************
|
|
51
|
+
* *
|
|
52
|
+
* Constructor *
|
|
53
|
+
* *
|
|
54
|
+
**************************************************************************/
|
|
55
|
+
constructor(hostRef, zone, focusMonitor, translateService, ngControl) {
|
|
56
|
+
super(hostRef, 'dimensions-input', focusMonitor, translateService, ngControl);
|
|
57
|
+
this.ngControl = ngControl;
|
|
58
|
+
/***************************************************************************
|
|
59
|
+
* *
|
|
60
|
+
* Fields *
|
|
61
|
+
* *
|
|
62
|
+
**************************************************************************/
|
|
63
|
+
this.log = LoggerFactory.getLogger(this.constructor.name);
|
|
64
|
+
this._requiredLength = false;
|
|
65
|
+
this._requiredWidth = false;
|
|
66
|
+
this._requiredHeight = false;
|
|
67
|
+
/**
|
|
68
|
+
* Display format for the quantity value:
|
|
69
|
+
* {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}
|
|
70
|
+
*/
|
|
71
|
+
this.displayFormat = null;
|
|
72
|
+
this.defaultMode = 'volume';
|
|
73
|
+
this.mode$ = new BehaviorSubject(this.defaultMode);
|
|
74
|
+
this.context$ = new BehaviorSubject(DimensionsContext.of(this.defaultMode));
|
|
75
|
+
this.afterInit = false;
|
|
76
|
+
}
|
|
77
|
+
/***************************************************************************
|
|
78
|
+
* *
|
|
79
|
+
* Life Cycle *
|
|
80
|
+
* *
|
|
81
|
+
**************************************************************************/
|
|
82
|
+
ngOnInit() {
|
|
83
|
+
this.value = Dimensions.from(this.initialUnit, this.initialLength, this.initialWidth, this.initialHeight);
|
|
84
|
+
this.afterInit = true;
|
|
85
|
+
}
|
|
86
|
+
/***************************************************************************
|
|
87
|
+
* *
|
|
88
|
+
* Properties *
|
|
89
|
+
* *
|
|
90
|
+
**************************************************************************/
|
|
91
|
+
set mode(mode) {
|
|
92
|
+
this.mode$.next(mode ?? this.defaultMode);
|
|
93
|
+
this.context$.next(DimensionsContext.of(this.mode$.getValue()));
|
|
94
|
+
}
|
|
95
|
+
get mode() {
|
|
96
|
+
return this.mode$.getValue();
|
|
97
|
+
}
|
|
98
|
+
set requiredLength(value) {
|
|
99
|
+
this._requiredLength = coerceBooleanProperty(value);
|
|
100
|
+
}
|
|
101
|
+
get requiredLength() {
|
|
102
|
+
return this._requiredLength;
|
|
103
|
+
}
|
|
104
|
+
set requiredWidth(value) {
|
|
105
|
+
this._requiredWidth = coerceBooleanProperty(value);
|
|
106
|
+
}
|
|
107
|
+
get requiredWidth() {
|
|
108
|
+
return this._requiredWidth;
|
|
109
|
+
}
|
|
110
|
+
set requiredHeight(value) {
|
|
111
|
+
this._requiredHeight = coerceBooleanProperty(value);
|
|
112
|
+
}
|
|
113
|
+
get requiredHeight() {
|
|
114
|
+
return this._requiredHeight;
|
|
115
|
+
}
|
|
116
|
+
get unitChange() {
|
|
117
|
+
return this.valueChange.pipe(map(d => d?.unit));
|
|
118
|
+
}
|
|
119
|
+
get unit() {
|
|
120
|
+
return this.value?.unit;
|
|
121
|
+
}
|
|
122
|
+
set unit(unit) {
|
|
123
|
+
if (this.afterInit) {
|
|
124
|
+
this.value = Dimensions.from(unit, this.value?.length, this.value?.width, this.value?.height);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
this.initialUnit = unit;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
get lengthValueChange() {
|
|
131
|
+
return this.valueChange.pipe(map(d => d?.length));
|
|
132
|
+
}
|
|
133
|
+
get lengthValue() {
|
|
134
|
+
return this.value?.length;
|
|
135
|
+
}
|
|
136
|
+
set lengthValue(lengthValue) {
|
|
137
|
+
if (this.afterInit) {
|
|
138
|
+
this.value = this.dimensionsOfLength(lengthValue);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
this.initialLength = lengthValue;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
get widthValueChange() {
|
|
145
|
+
return this.valueChange.pipe(map(d => d?.width));
|
|
146
|
+
}
|
|
147
|
+
get widthValue() {
|
|
148
|
+
return this.value?.width;
|
|
149
|
+
}
|
|
150
|
+
set widthValue(widthValue) {
|
|
151
|
+
if (this.afterInit) {
|
|
152
|
+
this.value = this.dimensionsOfWidth(widthValue);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
this.initialWidth = widthValue;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
get heightValueChange() {
|
|
159
|
+
return this.valueChange.pipe(map(d => d?.height));
|
|
160
|
+
}
|
|
161
|
+
get heightValue() {
|
|
162
|
+
return this.value?.height;
|
|
163
|
+
}
|
|
164
|
+
set heightValue(heightValue) {
|
|
165
|
+
if (this.afterInit) {
|
|
166
|
+
this.value = this.dimensionsOfHeight(heightValue);
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
this.initialHeight = heightValue;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/***************************************************************************
|
|
173
|
+
* *
|
|
174
|
+
* Public API *
|
|
175
|
+
* *
|
|
176
|
+
**************************************************************************/
|
|
177
|
+
onLengthValueChanged(value) {
|
|
178
|
+
this.updateValue(this.dimensionsOfLength(value));
|
|
179
|
+
}
|
|
180
|
+
onWidthValueChanged(value) {
|
|
181
|
+
this.updateValue(this.dimensionsOfWidth(value));
|
|
182
|
+
}
|
|
183
|
+
onHeightValueChanged(value) {
|
|
184
|
+
this.updateValue(this.dimensionsOfHeight(value));
|
|
185
|
+
}
|
|
186
|
+
blur() {
|
|
187
|
+
// TODO this.inputRef?.nativeElement?.blur();
|
|
188
|
+
}
|
|
189
|
+
focus(options) {
|
|
190
|
+
// TODO this.inputRef?.nativeElement?.focus(options);
|
|
191
|
+
}
|
|
192
|
+
/***************************************************************************
|
|
193
|
+
* *
|
|
194
|
+
* Protected *
|
|
195
|
+
* *
|
|
196
|
+
**************************************************************************/
|
|
197
|
+
valuesEquals(a, b) {
|
|
198
|
+
if (a === b) {
|
|
199
|
+
return true;
|
|
200
|
+
}
|
|
201
|
+
return a?.length === b?.length
|
|
202
|
+
&& a?.width === b?.width
|
|
203
|
+
&& a?.height === b?.height
|
|
204
|
+
&& a?.unit === b?.unit;
|
|
205
|
+
}
|
|
206
|
+
/***************************************************************************
|
|
207
|
+
* *
|
|
208
|
+
* Private Methods *
|
|
209
|
+
* *
|
|
210
|
+
**************************************************************************/
|
|
211
|
+
dimensionsOfLength(value) {
|
|
212
|
+
return Dimensions.from(this.unit, value, this.widthValue, this.heightValue);
|
|
213
|
+
}
|
|
214
|
+
dimensionsOfWidth(value) {
|
|
215
|
+
return Dimensions.from(this.unit, this.lengthValue, value, this.heightValue);
|
|
216
|
+
}
|
|
217
|
+
dimensionsOfHeight(value) {
|
|
218
|
+
return Dimensions.from(this.unit, this.lengthValue, this.widthValue, value);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
ElderDimensionsInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ElderDimensionsInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.FocusMonitor }, { token: i2.TranslateService }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
222
|
+
ElderDimensionsInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: ElderDimensionsInputComponent, selector: "elder-dimensions-input", inputs: { name: "name", appearance: "appearance", color: "color", placeholderLength: "placeholderLength", placeholderWidth: "placeholderWidth", placeholderHeight: "placeholderHeight", displayFormat: "displayFormat", mode: "mode", requiredLength: "requiredLength", requiredWidth: "requiredWidth", requiredHeight: "requiredHeight", unit: "unit", lengthValue: "lengthValue", widthValue: "widthValue", heightValue: "heightValue" }, outputs: { unitChange: "unitChange", lengthValueChange: "lengthValueChange", widthValueChange: "widthValueChange", heightValueChange: "heightValueChange" }, providers: [
|
|
223
|
+
{ provide: MatFormFieldControl, useExisting: ElderDimensionsInputComponent },
|
|
224
|
+
], usesInheritance: true, ngImport: i0, template: "<div role=\"group\" class=\"layout-row place-start-baseline g-md full\"\n *ngIf=\"context$ | async as context\">\n\n <!-- elder-form-field-small -->\n <elder-quantity-input *ngIf=\"context.lengthActive\"\n [quantityValue]=\"lengthValue\"\n (quantityValueChange)=\"onLengthValueChanged($event)\"\n [unit]=\"unit\"\n [placeholder]=\"(placeholderLength ? placeholderLength : 'dimensions.length') | translate\"\n [displayFormat]=\"displayFormat\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [hideUnit]=\"!context.isLengthLast\"\n >\n </elder-quantity-input>\n\n <span class=\"noselect\" *ngIf=\"context.lengthActive && context.widthActive\">×</span>\n\n <elder-quantity-input *ngIf=\"context.widthActive\"\n [quantityValue]=\"widthValue\"\n (quantityValueChange)=\"onWidthValueChanged($event)\"\n [unit]=\"unit\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderWidth ? placeholderWidth : 'dimensions.width') | translate\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [hideUnit]=\"!context.isWidthLast\"\n >\n </elder-quantity-input>\n\n <span class=\"noselect\" *ngIf=\"context.widthActive && context.heightActive\">×</span>\n\n <elder-quantity-input *ngIf=\"context.heightActive\"\n [quantityValue]=\"heightValue\"\n (quantityValueChange)=\"onHeightValueChanged($event)\"\n [unit]=\"unit\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderHeight ? placeholderHeight : 'dimensions.height') | translate\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n >\n </elder-quantity-input>\n\n <!--\n[requiredIgnoreZero]=\"requiredIgnoreZero\"\n [elderMultipleOf]=\"multipleOf\" ngModel\n [min]=\"min\"\n [max]=\"max\"\n [required]=\"requiredLength\"\n -->\n</div>\n\n\n", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.ElderQuantityInputControlComponent, selector: "elder-quantity-input", inputs: ["displayFormat", "quantityValue", "unit", "hideUnit"], outputs: ["quantityValueChange", "unitChange"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
225
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ElderDimensionsInputComponent, decorators: [{
|
|
226
|
+
type: Component,
|
|
227
|
+
args: [{ selector: 'elder-dimensions-input', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
228
|
+
{ provide: MatFormFieldControl, useExisting: ElderDimensionsInputComponent },
|
|
229
|
+
], template: "<div role=\"group\" class=\"layout-row place-start-baseline g-md full\"\n *ngIf=\"context$ | async as context\">\n\n <!-- elder-form-field-small -->\n <elder-quantity-input *ngIf=\"context.lengthActive\"\n [quantityValue]=\"lengthValue\"\n (quantityValueChange)=\"onLengthValueChanged($event)\"\n [unit]=\"unit\"\n [placeholder]=\"(placeholderLength ? placeholderLength : 'dimensions.length') | translate\"\n [displayFormat]=\"displayFormat\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [hideUnit]=\"!context.isLengthLast\"\n >\n </elder-quantity-input>\n\n <span class=\"noselect\" *ngIf=\"context.lengthActive && context.widthActive\">×</span>\n\n <elder-quantity-input *ngIf=\"context.widthActive\"\n [quantityValue]=\"widthValue\"\n (quantityValueChange)=\"onWidthValueChanged($event)\"\n [unit]=\"unit\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderWidth ? placeholderWidth : 'dimensions.width') | translate\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [hideUnit]=\"!context.isWidthLast\"\n >\n </elder-quantity-input>\n\n <span class=\"noselect\" *ngIf=\"context.widthActive && context.heightActive\">×</span>\n\n <elder-quantity-input *ngIf=\"context.heightActive\"\n [quantityValue]=\"heightValue\"\n (quantityValueChange)=\"onHeightValueChanged($event)\"\n [unit]=\"unit\"\n [displayFormat]=\"displayFormat\"\n [placeholder]=\"(placeholderHeight ? placeholderHeight : 'dimensions.height') | translate\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n >\n </elder-quantity-input>\n\n <!--\n[requiredIgnoreZero]=\"requiredIgnoreZero\"\n [elderMultipleOf]=\"multipleOf\" ngModel\n [min]=\"min\"\n [max]=\"max\"\n [required]=\"requiredLength\"\n -->\n</div>\n\n\n" }]
|
|
230
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.FocusMonitor }, { type: i2.TranslateService }, { type: i3.NgControl, decorators: [{
|
|
231
|
+
type: Optional
|
|
232
|
+
}, {
|
|
233
|
+
type: Self
|
|
234
|
+
}] }]; }, propDecorators: { name: [{
|
|
235
|
+
type: Input
|
|
236
|
+
}], appearance: [{
|
|
237
|
+
type: Input
|
|
238
|
+
}], color: [{
|
|
239
|
+
type: Input
|
|
240
|
+
}], placeholderLength: [{
|
|
241
|
+
type: Input
|
|
242
|
+
}], placeholderWidth: [{
|
|
243
|
+
type: Input
|
|
244
|
+
}], placeholderHeight: [{
|
|
245
|
+
type: Input
|
|
246
|
+
}], displayFormat: [{
|
|
247
|
+
type: Input
|
|
248
|
+
}], mode: [{
|
|
249
|
+
type: Input
|
|
250
|
+
}], requiredLength: [{
|
|
251
|
+
type: Input
|
|
252
|
+
}], requiredWidth: [{
|
|
253
|
+
type: Input
|
|
254
|
+
}], requiredHeight: [{
|
|
255
|
+
type: Input
|
|
256
|
+
}], unitChange: [{
|
|
257
|
+
type: Output
|
|
258
|
+
}], unit: [{
|
|
259
|
+
type: Input
|
|
260
|
+
}], lengthValueChange: [{
|
|
261
|
+
type: Output
|
|
262
|
+
}], lengthValue: [{
|
|
263
|
+
type: Input
|
|
264
|
+
}], widthValueChange: [{
|
|
265
|
+
type: Output
|
|
266
|
+
}], widthValue: [{
|
|
267
|
+
type: Input
|
|
268
|
+
}], heightValueChange: [{
|
|
269
|
+
type: Output
|
|
270
|
+
}], heightValue: [{
|
|
271
|
+
type: Input
|
|
272
|
+
}] } });
|
|
273
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZGltZW5zaW9ucy1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL21lYXN1cmVzL2RpbWVuc2lvbnMvZGltZW5zaW9ucy1pbnB1dC9lbGRlci1kaW1lbnNpb25zLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbXBvbmVudHMvbWVhc3VyZXMvZGltZW5zaW9ucy9kaW1lbnNpb25zLWlucHV0L2VsZGVyLWRpbWVuc2lvbnMtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUF5QixtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3pGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsZUFBZSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuQyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQzs7Ozs7OztBQU8zRyxNQUFNLGlCQUFpQjtJQVlyQixZQUNrQixZQUFxQixFQUNyQixXQUFvQixFQUNwQixZQUFxQjtRQUZyQixp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UUFDVCxFQUFDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsNkJBQTZCLEVBQUM7S0FDM0UsaURDM0VILGk0REFxREE7MkZEd0JhLDZCQUE2QjtrQkFWekMsU0FBUzsrQkFDRSx3QkFBd0IsaUJBR25CLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1QsRUFBQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsV0FBVywrQkFBK0IsRUFBQztxQkFDM0U7OzBCQThERSxRQUFROzswQkFBSSxJQUFJOzRDQTdDWixJQUFJO3NCQURWLEtBQUs7Z0JBSUMsVUFBVTtzQkFEaEIsS0FBSztnQkFJQyxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsaUJBQWlCO3NCQUR2QixLQUFLO2dCQUlDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFJQyxpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBUUMsYUFBYTtzQkFEbkIsS0FBSztnQkF5REssSUFBSTtzQkFEZCxLQUFLO2dCQVdLLGNBQWM7c0JBRHhCLEtBQUs7Z0JBVUssYUFBYTtzQkFEdkIsS0FBSztnQkFVSyxjQUFjO3NCQUR4QixLQUFLO2dCQVVLLFVBQVU7c0JBRHBCLE1BQU07Z0JBWUksSUFBSTtzQkFEZCxLQUFLO2dCQWVLLGlCQUFpQjtzQkFEM0IsTUFBTTtnQkFZSSxXQUFXO3NCQURyQixLQUFLO2dCQVVLLGdCQUFnQjtzQkFEMUIsTUFBTTtnQkFZSSxVQUFVO3NCQURwQixLQUFLO2dCQVVLLGlCQUFpQjtzQkFEM0IsTUFBTTtnQkFZSSxXQUFXO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTZWxmLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtNYXRGb3JtRmllbGRBcHBlYXJhbmNlLCBNYXRGb3JtRmllbGRDb250cm9sfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7RGltZW5zaW9uc30gZnJvbSAnLi4vLi4vbW9kZWwvZGltZW5zaW9ucyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtVbml0fSBmcm9tICcuLi8uLi9tb2RlbC91bml0JztcbmltcG9ydCB7Y29lcmNlQm9vbGVhblByb3BlcnR5fSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtUaGVtZVBhbGV0dGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHtFbGRlckZvcm1GaWVsZENvbnRyb2xCYXNlfSBmcm9tICcuLi8uLi8uLi8uLi9jb21tb24vZm9ybXMvZWxkZXItZm9ybS1maWVsZC1jb250cm9sLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7Rm9jdXNNb25pdG9yfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxudHlwZSBEaW1lbnNpb25zTW9kZSA9ICdsZW5ndGgnIHwgJ3dpZHRoJyB8ICdoZWlnaHQnIHwgJ2FyZWEnIHwgJ3ZvbHVtZSc7XG5cbmNsYXNzIERpbWVuc2lvbnNDb250ZXh0IHtcblxuICBwdWJsaWMgc3RhdGljIG9mKG1vZGU6IERpbWVuc2lvbnNNb2RlKTogRGltZW5zaW9uc0NvbnRleHQge1xuICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgY2FzZSAnbGVuZ3RoJzogcmV0dXJuIG5ldyBEaW1lbnNpb25zQ29udGV4dCh0cnVlLCBmYWxzZSwgZmFsc2UpO1xuICAgICAgY2FzZSAnd2lkdGgnOiByZXR1cm4gbmV3IERpbWVuc2lvbnNDb250ZXh0KGZhbHNlLCB0cnVlLCBmYWxzZSk7XG4gICAgICBjYXNlICdoZWlnaHQnOiByZXR1cm4gbmV3IERpbWVuc2lvbnNDb250ZXh0KGZhbHNlLCBmYWxzZSwgdHJ1ZSk7XG4gICAgICBjYXNlICdhcmVhJzogcmV0dXJuIG5ldyBEaW1lbnNpb25zQ29udGV4dCh0cnVlLCB0cnVlLCBmYWxzZSk7XG4gICAgICBjYXNlICd2b2x1bWUnOiByZXR1cm4gbmV3IERpbWVuc2lvbnNDb250ZXh0KHRydWUsIHRydWUsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBsZW5ndGhBY3RpdmU6IGJvb2xlYW4sXG4gICAgcHVibGljIHJlYWRvbmx5IHdpZHRoQWN0aXZlOiBib29sZWFuLFxuICAgIHB1YmxpYyByZWFkb25seSBoZWlnaHRBY3RpdmU6IGJvb2xlYW4sXG4gICkgeyB9XG5cbiAgcHVibGljIGdldCBpc0xlbmd0aExhc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubGVuZ3RoQWN0aXZlICYmICF0aGlzLndpZHRoQWN0aXZlICYmICF0aGlzLmhlaWdodEFjdGl2ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzV2lkdGhMYXN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLndpZHRoQWN0aXZlICYmICF0aGlzLmhlaWdodEFjdGl2ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzSGVpZ2h0TGFzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oZWlnaHRBY3RpdmU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzSGVpZ2h0Rmlyc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmxlbmd0aEFjdGl2ZSAmJiAhdGhpcy53aWR0aEFjdGl2ZSAmJiB0aGlzLmhlaWdodEFjdGl2ZTtcbiAgfVxuICBwdWJsaWMgZ2V0IGlzV2lkdGhGaXJzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMubGVuZ3RoQWN0aXZlICYmIHRoaXMud2lkdGhBY3RpdmU7XG4gIH1cbiAgcHVibGljIGdldCBpc0xlbmd0aEZpcnN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmxlbmd0aEFjdGl2ZTtcbiAgfVxufVxuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLWRpbWVuc2lvbnMtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItZGltZW5zaW9ucy1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZGVyLWRpbWVuc2lvbnMtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtwcm92aWRlOiBNYXRGb3JtRmllbGRDb250cm9sLCB1c2VFeGlzdGluZzogRWxkZXJEaW1lbnNpb25zSW5wdXRDb21wb25lbnR9LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyRGltZW5zaW9uc0lucHV0Q29tcG9uZW50IGV4dGVuZHMgRWxkZXJGb3JtRmllbGRDb250cm9sQmFzZTxEaW1lbnNpb25zPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgX3JlcXVpcmVkTGVuZ3RoID0gZmFsc2U7XG4gIHByaXZhdGUgX3JlcXVpcmVkV2lkdGggPSBmYWxzZTtcbiAgcHJpdmF0ZSBfcmVxdWlyZWRIZWlnaHQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhcHBlYXJhbmNlOiBNYXRGb3JtRmllbGRBcHBlYXJhbmNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb2xvcjogVGhlbWVQYWxldHRlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwbGFjZWhvbGRlckxlbmd0aDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwbGFjZWhvbGRlcldpZHRoOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBsYWNlaG9sZGVySGVpZ2h0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERpc3BsYXkgZm9ybWF0IGZvciB0aGUgcXVhbnRpdHkgdmFsdWU6XG4gICAqIHttaW5JbnRlZ2VyRGlnaXRzfS57bWluRnJhY3Rpb25EaWdpdHN9LXttYXhGcmFjdGlvbkRpZ2l0c31cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBkaXNwbGF5Rm9ybWF0OiBzdHJpbmcgPSBudWxsO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdE1vZGU6IERpbWVuc2lvbnNNb2RlID0gJ3ZvbHVtZSdcbiAgcHJpdmF0ZSByZWFkb25seSBtb2RlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGltZW5zaW9uc01vZGU+KHRoaXMuZGVmYXVsdE1vZGUpO1xuICByZWFkb25seSBjb250ZXh0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGltZW5zaW9uc0NvbnRleHQ+KERpbWVuc2lvbnNDb250ZXh0Lm9mKHRoaXMuZGVmYXVsdE1vZGUpKTtcblxuICBwcml2YXRlIGFmdGVySW5pdCA9IGZhbHNlO1xuICBwcml2YXRlIGluaXRpYWxVbml0OiBVbml0O1xuICBwcml2YXRlIGluaXRpYWxMZW5ndGg6IG51bWJlcjtcbiAgcHJpdmF0ZSBpbml0aWFsV2lkdGg6IG51bWJlcjtcbiAgcHJpdmF0ZSBpbml0aWFsSGVpZ2h0OiBudW1iZXI7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgaG9zdFJlZjogRWxlbWVudFJlZixcbiAgICB6b25lOiBOZ1pvbmUsXG4gICAgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbFxuICApIHtcbiAgICBzdXBlcihcbiAgICAgIGhvc3RSZWYsXG4gICAgICAnZGltZW5zaW9ucy1pbnB1dCcsXG4gICAgICBmb2N1c01vbml0b3IsXG4gICAgICB0cmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgbmdDb250cm9sXG4gICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gRGltZW5zaW9ucy5mcm9tKFxuICAgICAgdGhpcy5pbml0aWFsVW5pdCxcbiAgICAgIHRoaXMuaW5pdGlhbExlbmd0aCxcbiAgICAgIHRoaXMuaW5pdGlhbFdpZHRoLFxuICAgICAgdGhpcy5pbml0aWFsSGVpZ2h0XG4gICAgKTtcbiAgICB0aGlzLmFmdGVySW5pdCA9IHRydWU7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtb2RlKG1vZGU6IERpbWVuc2lvbnNNb2RlKXtcbiAgICB0aGlzLm1vZGUkLm5leHQobW9kZSA/PyB0aGlzLmRlZmF1bHRNb2RlKTtcbiAgICB0aGlzLmNvbnRleHQkLm5leHQoRGltZW5zaW9uc0NvbnRleHQub2YodGhpcy5tb2RlJC5nZXRWYWx1ZSgpKSlcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbW9kZSgpOiBEaW1lbnNpb25zTW9kZSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcmVxdWlyZWRMZW5ndGgodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yZXF1aXJlZExlbmd0aCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlcXVpcmVkTGVuZ3RoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZExlbmd0aDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcmVxdWlyZWRXaWR0aCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlcXVpcmVkV2lkdGggPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGdldCByZXF1aXJlZFdpZHRoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZFdpZHRoO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCByZXF1aXJlZEhlaWdodCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3JlcXVpcmVkSGVpZ2h0ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVxdWlyZWRIZWlnaHQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkSGVpZ2h0O1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgdW5pdENoYW5nZSgpOiBPYnNlcnZhYmxlPFVuaXQgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVDaGFuZ2UucGlwZShcbiAgICAgIG1hcChkID0+IGQ/LnVuaXQpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdW5pdCgpOiBVbml0IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZT8udW5pdDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgdW5pdCh1bml0OiBVbml0KSB7XG4gICAgaWYgKHRoaXMuYWZ0ZXJJbml0KSB7XG4gICAgICB0aGlzLnZhbHVlID0gRGltZW5zaW9ucy5mcm9tKFxuICAgICAgICB1bml0LFxuICAgICAgICB0aGlzLnZhbHVlPy5sZW5ndGgsXG4gICAgICAgIHRoaXMudmFsdWU/LndpZHRoLFxuICAgICAgICB0aGlzLnZhbHVlPy5oZWlnaHRcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5pdGlhbFVuaXQgPSB1bml0O1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IGxlbmd0aFZhbHVlQ2hhbmdlKCk6IE9ic2VydmFibGU8bnVtYmVyIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLnZhbHVlQ2hhbmdlLnBpcGUoXG4gICAgICBtYXAoZCA9PiBkPy5sZW5ndGgpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgbGVuZ3RoVmFsdWUoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU/Lmxlbmd0aDtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgbGVuZ3RoVmFsdWUobGVuZ3RoVmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICBpZiAodGhpcy5hZnRlckluaXQpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmRpbWVuc2lvbnNPZkxlbmd0aChsZW5ndGhWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaW5pdGlhbExlbmd0aCA9IGxlbmd0aFZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZ2V0IHdpZHRoVmFsdWVDaGFuZ2UoKTogT2JzZXJ2YWJsZTxudW1iZXIgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVDaGFuZ2UucGlwZShcbiAgICAgIG1hcChkID0+IGQ/LndpZHRoKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHdpZHRoVmFsdWUoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWU/LndpZHRoO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB3aWR0aFZhbHVlKHdpZHRoVmFsdWU6IG51bWJlciB8IG51bGwpIHtcbiAgICBpZiAodGhpcy5hZnRlckluaXQpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmRpbWVuc2lvbnNPZldpZHRoKHdpZHRoVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmluaXRpYWxXaWR0aCA9IHdpZHRoVmFsdWU7XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBnZXQgaGVpZ2h0VmFsdWVDaGFuZ2UoKTogT2JzZXJ2YWJsZTxudW1iZXIgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVDaGFuZ2UucGlwZShcbiAgICAgIG1hcChkID0+IGQ/LmhlaWdodClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBoZWlnaHRWYWx1ZSgpOiBudW1iZXIgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZT8uaGVpZ2h0O1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBoZWlnaHRWYWx1ZShoZWlnaHRWYWx1ZTogbnVtYmVyIHwgbnVsbCkge1xuICAgIGlmICh0aGlzLmFmdGVySW5pdCkge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZGltZW5zaW9uc09mSGVpZ2h0KGhlaWdodFZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbml0aWFsSGVpZ2h0ID0gaGVpZ2h0VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG9uTGVuZ3RoVmFsdWVDaGFuZ2VkKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMuZGltZW5zaW9uc09mTGVuZ3RoKHZhbHVlKSk7XG4gIH1cblxuICBwdWJsaWMgb25XaWR0aFZhbHVlQ2hhbmdlZCh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLmRpbWVuc2lvbnNPZldpZHRoKHZhbHVlKSk7XG4gIH1cblxuICBwdWJsaWMgb25IZWlnaHRWYWx1ZUNoYW5nZWQodmFsdWU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlVmFsdWUodGhpcy5kaW1lbnNpb25zT2ZIZWlnaHQodmFsdWUpKTtcbiAgfVxuXG4gIHB1YmxpYyBibHVyKCk6IHZvaWQge1xuICAgIC8vIFRPRE8gdGhpcy5pbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8uYmx1cigpO1xuICB9XG5cbiAgcHVibGljIGZvY3VzKG9wdGlvbnM6IEZvY3VzT3B0aW9ucyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIC8vIFRPRE8gdGhpcy5pbnB1dFJlZj8ubmF0aXZlRWxlbWVudD8uZm9jdXMob3B0aW9ucyk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvdGVjdGVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgdmFsdWVzRXF1YWxzKGE6IERpbWVuc2lvbnMsIGI6IERpbWVuc2lvbnMpOiBib29sZWFuIHtcbiAgICBpZiAoYSA9PT0gYikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBhPy5sZW5ndGggPT09IGI/Lmxlbmd0aFxuICAgICAgJiYgYT8ud2lkdGggPT09IGI/LndpZHRoXG4gICAgICAmJiBhPy5oZWlnaHQgPT09IGI/LmhlaWdodFxuICAgICAgJiYgYT8udW5pdCA9PT0gYj8udW5pdDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgZGltZW5zaW9uc09mTGVuZ3RoKHZhbHVlOiBudW1iZXIpIHtcbiAgICByZXR1cm4gRGltZW5zaW9ucy5mcm9tKFxuICAgICAgdGhpcy51bml0LFxuICAgICAgdmFsdWUsXG4gICAgICB0aGlzLndpZHRoVmFsdWUsXG4gICAgICB0aGlzLmhlaWdodFZhbHVlXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZGltZW5zaW9uc09mV2lkdGgodmFsdWU6IG51bWJlcikge1xuICAgIHJldHVybiBEaW1lbnNpb25zLmZyb20oXG4gICAgICB0aGlzLnVuaXQsXG4gICAgICB0aGlzLmxlbmd0aFZhbHVlLFxuICAgICAgdmFsdWUsXG4gICAgICB0aGlzLmhlaWdodFZhbHVlXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZGltZW5zaW9uc09mSGVpZ2h0KHZhbHVlOiBudW1iZXIpIHtcbiAgICByZXR1cm4gRGltZW5zaW9ucy5mcm9tKFxuICAgICAgdGhpcy51bml0LFxuICAgICAgdGhpcy5sZW5ndGhWYWx1ZSxcbiAgICAgIHRoaXMud2lkdGhWYWx1ZSxcbiAgICAgIHZhbHVlXG4gICAgKTtcbiAgfVxufVxuIiwiPGRpdiByb2xlPVwiZ3JvdXBcIiBjbGFzcz1cImxheW91dC1yb3cgcGxhY2Utc3RhcnQtYmFzZWxpbmUgZy1tZCBmdWxsXCJcbiAgICAgKm5nSWY9XCJjb250ZXh0JCB8IGFzeW5jIGFzIGNvbnRleHRcIj5cblxuICA8IS0tIGVsZGVyLWZvcm0tZmllbGQtc21hbGwgLS0+XG4gIDxlbGRlci1xdWFudGl0eS1pbnB1dCAqbmdJZj1cImNvbnRleHQubGVuZ3RoQWN0aXZlXCJcbiAgICBbcXVhbnRpdHlWYWx1ZV09XCJsZW5ndGhWYWx1ZVwiXG4gICAgKHF1YW50aXR5VmFsdWVDaGFuZ2UpPVwib25MZW5ndGhWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgW3VuaXRdPVwidW5pdFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cIihwbGFjZWhvbGRlckxlbmd0aCA/IHBsYWNlaG9sZGVyTGVuZ3RoIDogJ2RpbWVuc2lvbnMubGVuZ3RoJykgfCB0cmFuc2xhdGVcIlxuICAgIFtkaXNwbGF5Rm9ybWF0XT1cImRpc3BsYXlGb3JtYXRcIlxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbaGlkZVVuaXRdPVwiIWNvbnRleHQuaXNMZW5ndGhMYXN0XCJcbiAgPlxuICA8L2VsZGVyLXF1YW50aXR5LWlucHV0PlxuXG4gIDxzcGFuIGNsYXNzPVwibm9zZWxlY3RcIiAqbmdJZj1cImNvbnRleHQubGVuZ3RoQWN0aXZlICYmIGNvbnRleHQud2lkdGhBY3RpdmVcIj4mdGltZXM7PC9zcGFuPlxuXG4gIDxlbGRlci1xdWFudGl0eS1pbnB1dCAqbmdJZj1cImNvbnRleHQud2lkdGhBY3RpdmVcIlxuICAgIFtxdWFudGl0eVZhbHVlXT1cIndpZHRoVmFsdWVcIlxuICAgIChxdWFudGl0eVZhbHVlQ2hhbmdlKT1cIm9uV2lkdGhWYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgW3VuaXRdPVwidW5pdFwiXG4gICAgW2Rpc3BsYXlGb3JtYXRdPVwiZGlzcGxheUZvcm1hdFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cIihwbGFjZWhvbGRlcldpZHRoID8gcGxhY2Vob2xkZXJXaWR0aCA6ICdkaW1lbnNpb25zLndpZHRoJykgfCB0cmFuc2xhdGVcIlxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbaGlkZVVuaXRdPVwiIWNvbnRleHQuaXNXaWR0aExhc3RcIlxuICA+XG4gIDwvZWxkZXItcXVhbnRpdHktaW5wdXQ+XG5cbiAgPHNwYW4gY2xhc3M9XCJub3NlbGVjdFwiICpuZ0lmPVwiY29udGV4dC53aWR0aEFjdGl2ZSAmJiBjb250ZXh0LmhlaWdodEFjdGl2ZVwiPiZ0aW1lczs8L3NwYW4+XG5cbiAgPGVsZGVyLXF1YW50aXR5LWlucHV0ICpuZ0lmPVwiY29udGV4dC5oZWlnaHRBY3RpdmVcIlxuICAgIFtxdWFudGl0eVZhbHVlXT1cImhlaWdodFZhbHVlXCJcbiAgICAocXVhbnRpdHlWYWx1ZUNoYW5nZSk9XCJvbkhlaWdodFZhbHVlQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICBbdW5pdF09XCJ1bml0XCJcbiAgICBbZGlzcGxheUZvcm1hdF09XCJkaXNwbGF5Rm9ybWF0XCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiKHBsYWNlaG9sZGVySGVpZ2h0ID8gcGxhY2Vob2xkZXJIZWlnaHQgOiAnZGltZW5zaW9ucy5oZWlnaHQnKSB8IHRyYW5zbGF0ZVwiXG4gICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICA+XG4gIDwvZWxkZXItcXVhbnRpdHktaW5wdXQ+XG5cbiAgPCEtLVxuW3JlcXVpcmVkSWdub3JlWmVyb109XCJyZXF1aXJlZElnbm9yZVplcm9cIlxuICAgICAgICAgICAgICAgICAgICAgIFtlbGRlck11bHRpcGxlT2ZdPVwibXVsdGlwbGVPZlwiIG5nTW9kZWxcbiAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cIm1pblwiXG4gICAgICAgICAgICAgICAgICAgICAgW21heF09XCJtYXhcIlxuICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZExlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgLS0+XG48L2Rpdj5cblxuXG4iXX0=
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import { NG_VALIDATORS } from '@angular/forms';
|
|
3
|
+
import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
4
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class ElderRequiredDimensionsValidator {
|
|
7
|
+
constructor() {
|
|
8
|
+
/***************************************************************************
|
|
9
|
+
* *
|
|
10
|
+
* Fields *
|
|
11
|
+
* *
|
|
12
|
+
**************************************************************************/
|
|
13
|
+
this.log = LoggerFactory.getLogger(this.constructor.name);
|
|
14
|
+
this._requiredIgnoreZero = false;
|
|
15
|
+
}
|
|
16
|
+
/***************************************************************************
|
|
17
|
+
* *
|
|
18
|
+
* Properties *
|
|
19
|
+
* *
|
|
20
|
+
**************************************************************************/
|
|
21
|
+
set requiredIgnoreZero(value) {
|
|
22
|
+
this._requiredIgnoreZero = coerceBooleanProperty(value);
|
|
23
|
+
}
|
|
24
|
+
get requiredIgnoreZero() {
|
|
25
|
+
return this._requiredIgnoreZero;
|
|
26
|
+
}
|
|
27
|
+
set required(value) {
|
|
28
|
+
this._required = coerceBooleanProperty(value);
|
|
29
|
+
}
|
|
30
|
+
get required() {
|
|
31
|
+
return this._required;
|
|
32
|
+
}
|
|
33
|
+
/***************************************************************************
|
|
34
|
+
* *
|
|
35
|
+
* Public API *
|
|
36
|
+
* *
|
|
37
|
+
**************************************************************************/
|
|
38
|
+
validate(c) {
|
|
39
|
+
let result = {};
|
|
40
|
+
if (this.required && !this.isDimensionsDefined(c.value)) {
|
|
41
|
+
result = Object.assign(result, { required: { valid: false } });
|
|
42
|
+
}
|
|
43
|
+
// this.log.info('"' + c.value + '" --> validate result: ' + JSON.stringify(result), c);
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
/***************************************************************************
|
|
47
|
+
* *
|
|
48
|
+
* Private Methods *
|
|
49
|
+
* *
|
|
50
|
+
**************************************************************************/
|
|
51
|
+
isDimensionsDefined(dimensions) {
|
|
52
|
+
if (dimensions?.unit != null) {
|
|
53
|
+
if (!this.isValueDefined(dimensions.length)) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
if (!this.isValueDefined(dimensions.width)) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
if (!this.isValueDefined(dimensions.height)) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
isValueDefined(value) {
|
|
67
|
+
if (value != null) {
|
|
68
|
+
return !(this._requiredIgnoreZero && value === 0);
|
|
69
|
+
}
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
ElderRequiredDimensionsValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ElderRequiredDimensionsValidator, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
74
|
+
ElderRequiredDimensionsValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: ElderRequiredDimensionsValidator, selector: "elder-dimensions-input[required][formControl],elder-dimensions-input[required][formControlName],elder-dimensions-input[required][ngModel]", inputs: { requiredIgnoreZero: "requiredIgnoreZero", required: "required" }, providers: [
|
|
75
|
+
{ provide: NG_VALIDATORS, useExisting: ElderRequiredDimensionsValidator, multi: true }
|
|
76
|
+
], ngImport: i0 });
|
|
77
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ElderRequiredDimensionsValidator, decorators: [{
|
|
78
|
+
type: Directive,
|
|
79
|
+
args: [{
|
|
80
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
81
|
+
selector: 'elder-dimensions-input[required][formControl],elder-dimensions-input[required][formControlName],elder-dimensions-input[required][ngModel]',
|
|
82
|
+
providers: [
|
|
83
|
+
{ provide: NG_VALIDATORS, useExisting: ElderRequiredDimensionsValidator, multi: true }
|
|
84
|
+
]
|
|
85
|
+
}]
|
|
86
|
+
}], propDecorators: { requiredIgnoreZero: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], required: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}] } });
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItcmVxdWlyZWQtZGltZW5zaW9ucy52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL21lYXN1cmVzL2RpbWVuc2lvbnMvdmFsaWRhdGlvbi9lbGRlci1yZXF1aXJlZC1kaW1lbnNpb25zLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBQWtCLGFBQWEsRUFBOEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFlLHFCQUFxQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7O0FBVzFFLE1BQU0sT0FBTyxnQ0FBZ0M7SUFQN0M7UUFTRTs7OztvRkFJNEU7UUFFM0QsUUFBRyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUc5RCx3QkFBbUIsR0FBWSxLQUFLLENBQUM7S0F3RTlDO0lBdEVDOzs7O2dGQUk0RTtJQUU1RSxJQUNXLGtCQUFrQixDQUFDLEtBQW1CO1FBQy9DLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBVyxrQkFBa0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQ1csUUFBUSxDQUFDLEtBQW1CO1FBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxRQUFRLENBQUMsQ0FBa0I7UUFFaEMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWhCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdkQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUMsUUFBUSxFQUFFLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBQyxFQUFDLENBQUMsQ0FBQztTQUM1RDtRQUNELHdGQUF3RjtRQUN4RixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXBFLG1CQUFtQixDQUFDLFVBQXNCO1FBQ2hELElBQUksVUFBVSxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUU7WUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUMzQyxPQUFPLEtBQUssQ0FBQzthQUNkO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUMxQyxPQUFPLEtBQUssQ0FBQzthQUNkO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUMzQyxPQUFPLEtBQUssQ0FBQzthQUNkO1lBQ0QsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLGNBQWMsQ0FBQyxLQUFhO1FBQ2xDLElBQUksS0FBSyxJQUFJLElBQUksRUFBRTtZQUNqQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ25EO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOzs2SEFqRlUsZ0NBQWdDO2lIQUFoQyxnQ0FBZ0MsZ1BBSmhDO1FBQ1QsRUFBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxnQ0FBZ0MsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO0tBQ3JGOzJGQUVVLGdDQUFnQztrQkFQNUMsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSwySUFBMkk7b0JBQ3JKLFNBQVMsRUFBRTt3QkFDVCxFQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxrQ0FBa0MsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO3FCQUNyRjtpQkFDRjs4QkFxQlksa0JBQWtCO3NCQUQ1QixLQUFLO2dCQVVLLFFBQVE7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvcn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0Jvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5fSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtRdWFudGl0eX0gZnJvbSAnLi4vLi4vbW9kZWwvcXVhbnRpdHknO1xuaW1wb3J0IHtEaW1lbnNpb25zfSBmcm9tICcuLi8uLi9tb2RlbC9kaW1lbnNpb25zJztcblxuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnZWxkZXItZGltZW5zaW9ucy1pbnB1dFtyZXF1aXJlZF1bZm9ybUNvbnRyb2xdLGVsZGVyLWRpbWVuc2lvbnMtaW5wdXRbcmVxdWlyZWRdW2Zvcm1Db250cm9sTmFtZV0sZWxkZXItZGltZW5zaW9ucy1pbnB1dFtyZXF1aXJlZF1bbmdNb2RlbF0nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7cHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IEVsZGVyUmVxdWlyZWREaW1lbnNpb25zVmFsaWRhdG9yLCBtdWx0aTogdHJ1ZX1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclJlcXVpcmVkRGltZW5zaW9uc1ZhbGlkYXRvciBpbXBsZW1lbnRzIFZhbGlkYXRvciB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByaXZhdGUgX3JlcXVpcmVkOiBib29sZWFuO1xuICBwcml2YXRlIF9yZXF1aXJlZElnbm9yZVplcm86IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHJlcXVpcmVkSWdub3JlWmVybyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fcmVxdWlyZWRJZ25vcmVaZXJvID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcmVxdWlyZWRJZ25vcmVaZXJvKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZElnbm9yZVplcm87XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHJlcXVpcmVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyB2YWxpZGF0ZShjOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgYW55IHtcblxuICAgIGxldCByZXN1bHQgPSB7fTtcblxuICAgIGlmICh0aGlzLnJlcXVpcmVkICYmICF0aGlzLmlzRGltZW5zaW9uc0RlZmluZWQoYy52YWx1ZSkpIHtcbiAgICAgIHJlc3VsdCA9IE9iamVjdC5hc3NpZ24ocmVzdWx0LCB7cmVxdWlyZWQ6IHt2YWxpZDogZmFsc2V9fSk7XG4gICAgfVxuICAgIC8vIHRoaXMubG9nLmluZm8oJ1wiJyArIGMudmFsdWUgKyAnXCIgLS0+IHZhbGlkYXRlIHJlc3VsdDogJyArIEpTT04uc3RyaW5naWZ5KHJlc3VsdCksIGMpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGlzRGltZW5zaW9uc0RlZmluZWQoZGltZW5zaW9uczogRGltZW5zaW9ucyk6IGJvb2xlYW4ge1xuICAgIGlmIChkaW1lbnNpb25zPy51bml0ICE9IG51bGwpIHtcbiAgICAgIGlmICghdGhpcy5pc1ZhbHVlRGVmaW5lZChkaW1lbnNpb25zLmxlbmd0aCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmlzVmFsdWVEZWZpbmVkKGRpbWVuc2lvbnMud2lkdGgpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5pc1ZhbHVlRGVmaW5lZChkaW1lbnNpb25zLmhlaWdodCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgaXNWYWx1ZURlZmluZWQodmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gISh0aGlzLl9yZXF1aXJlZElnbm9yZVplcm8gJiYgdmFsdWUgPT09IDApO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxufVxuIl19
|
|
@@ -49,9 +49,9 @@ export class ElderUnitSelectDirective {
|
|
|
49
49
|
this.select.filters = [];
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
ElderUnitSelectDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
53
|
-
ElderUnitSelectDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
54
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
52
|
+
ElderUnitSelectDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ElderUnitSelectDirective, deps: [{ token: i1.ElderSelectComponent }, { token: i2.ElderUnitService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
53
|
+
ElderUnitSelectDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.4", type: ElderUnitSelectDirective, selector: "[elderUnitSelect]", inputs: { unitDimension: "unitDimension", baseUnit: "baseUnit" }, ngImport: i0 });
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: ElderUnitSelectDirective, decorators: [{
|
|
55
55
|
type: Directive,
|
|
56
56
|
args: [{
|
|
57
57
|
selector: '[elderUnitSelect]'
|
|
@@ -61,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
|
|
|
61
61
|
}], baseUnit: [{
|
|
62
62
|
type: Input
|
|
63
63
|
}] } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdW5pdC1zZWxlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9tZWFzdXJlcy9kaXJlY3RpdmVzL2VsZGVyLXVuaXQtc2VsZWN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUcvQyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUdqRyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDM0QsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQzs7OztBQUs3RCxNQUFNLE9BQU8sd0JBQXdCO0lBRW5DOzs7O2dGQUk0RTtJQUU1RSxZQUNVLE1BQTRCLEVBQzVCLFdBQTZCO1FBRDdCLFdBQU0sR0FBTixNQUFNLENBQXNCO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUVyQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEdBQUcsWUFBWSxDQUFDO1FBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FDL0MsV0FBVyxDQUFDLGVBQWUsRUFBRSxFQUM3QixNQUFNLEVBQ04sUUFBUSxDQUFDLFFBQVEsRUFDakIsVUFBVSxDQUFDLFVBQVUsQ0FDdEIsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUUsSUFDVyxhQUFhLENBQUMsYUFBNEI7UUFDbkQsSUFBSSxhQUFhLEVBQUU7WUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztTQUNoRTthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQztJQUVELElBQ1csUUFBUSxDQUFDLFFBQWM7UUFDaEMsSUFBSSxRQUFRLEVBQUU7WUFDWixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDbEU7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsWUFBWTtRQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7cUhBdERVLHdCQUF3Qjt5R0FBeEIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBSHBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtpQkFDOUI7MElBOEJZLGFBQWE7c0JBRHZCLEtBQUs7Z0JBVUssUUFBUTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VsZGVyU2VsZWN0Q29tcG9uZW50fSBmcm9tICcuLi8uLi9zZWxlY3Qvc2luZ2xlL2VsZGVyLXNlbGVjdC9lbGRlci1zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7RWxkZXJVbml0U2VydmljZX0gZnJvbSAnLi4vZWxkZXItdW5pdC5zZXJ2aWNlJztcbmltcG9ydCB7TG9jYWxMaXN0RGF0YVNvdXJjZX0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YXNvdXJjZS9sb2NhbC9sb2NhbC1saXN0LWRhdGEtc291cmNlJztcbmltcG9ydCB7VW5pdH0gZnJvbSAnLi4vbW9kZWwvdW5pdCc7XG5pbXBvcnQge1VuaXREaW1lbnNpb259IGZyb20gJy4uL21vZGVsL3VuaXQtZGltZW5zaW9uJztcbmltcG9ydCB7RmlsdGVyfSBmcm9tICcuLi8uLi8uLi9jb21tb24vZGF0YS9maWx0ZXJzL2ZpbHRlcic7XG5pbXBvcnQge1NvcnRVdGlsfSBmcm9tICcuLi8uLi8uLi9jb21tb24vdXRpbHMvc29ydC11dGlsJztcbmltcG9ydCB7RmlsdGVyVXRpbH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3V0aWxzL2ZpbHRlci11dGlsJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2VsZGVyVW5pdFNlbGVjdF0nXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyVW5pdFNlbGVjdERpcmVjdGl2ZSB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZWxlY3Q6IEVsZGVyU2VsZWN0Q29tcG9uZW50LFxuICAgIHByaXZhdGUgdW5pdFNlcnZpY2U6IEVsZGVyVW5pdFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5zZWxlY3QucGxhY2Vob2xkZXIgPSAnY29udGV4dC51bml0JztcbiAgICB0aGlzLnNlbGVjdC5kaXNwbGF5UHJvcGVydHkgPSAndW5pdFN5bWJvbCc7XG4gICAgdGhpcy5zZWxlY3QuZGF0YVNvdXJjZSA9IExvY2FsTGlzdERhdGFTb3VyY2UuZnJvbShcbiAgICAgIHVuaXRTZXJ2aWNlLmdldEFsbFVuaXRJbmZvcygpLFxuICAgICAgJ3VuaXQnLFxuICAgICAgU29ydFV0aWwuc29ydERhdGEsXG4gICAgICBGaWx0ZXJVdGlsLmZpbHRlckRhdGFcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB1bml0RGltZW5zaW9uKHVuaXREaW1lbnNpb246IFVuaXREaW1lbnNpb24pIHtcbiAgICBpZiAodW5pdERpbWVuc2lvbikge1xuICAgICAgdGhpcy5zZWxlY3QuZmlsdGVycyA9IFtuZXcgRmlsdGVyKCdkaW1lbnNpb24nLCB1bml0RGltZW5zaW9uKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVzZXRGaWx0ZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBiYXNlVW5pdChiYXNlVW5pdDogVW5pdCkge1xuICAgIGlmIChiYXNlVW5pdCkge1xuICAgICAgdGhpcy51bml0RGltZW5zaW9uID0gdGhpcy51bml0U2VydmljZS5nZXRVbml0RGltZW5zaW9uKGJhc2VVbml0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZXNldEZpbHRlcnMoKTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlc2V0RmlsdGVycygpIHtcbiAgICB0aGlzLnNlbGVjdC5maWx0ZXJzID0gW107XG4gIH1cblxufVxuIl19
|