@elderbyte/ngx-starter 15.19.3 → 16.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/common/async/refreshing-entity.mjs +86 -0
- package/esm2022/lib/common/csv/csv-spec.mjs +99 -0
- package/esm2022/lib/common/data/data-context/data-context-auto-starter.mjs +76 -0
- package/esm2022/lib/common/data/data-context/data-context-builder.mjs +247 -0
- package/esm2022/lib/common/data/data-context/data-context-status.mjs +46 -0
- package/esm2022/lib/common/data/data-context/mat-table-data-context-binding.mjs +139 -0
- package/esm2022/lib/common/data/datasource/data-source-adapter.mjs +55 -0
- package/esm2022/lib/common/data/datasource/data-source-change-event.mjs +24 -0
- package/esm2022/lib/common/data/datasource/data-source-processor.mjs +199 -0
- package/esm2022/lib/common/data/datasource/fetcher/delegate-data-source.mjs +127 -0
- package/esm2022/lib/common/data/datasource/local/local-list-data-source.mjs +141 -0
- package/esm2022/lib/common/data/datasource/local/local-paged-data-source.mjs +73 -0
- package/esm2022/lib/common/data/entity-set-patch.mjs +164 -0
- package/esm2022/lib/common/data/field-comparator.mjs +99 -0
- package/esm2022/lib/common/data/http-params-builder.mjs +118 -0
- package/esm2022/lib/common/data/sort.mjs +11 -0
- package/esm2022/lib/common/enums/elder-enum-translation.service.mjs +81 -0
- package/esm2022/lib/common/format/bytes-format.mjs +22 -0
- package/esm2022/lib/common/forms/elder-form-field-control-base.directive.mjs +181 -0
- package/esm2022/lib/common/forms/elder-from-field-base.mjs +94 -0
- package/esm2022/lib/common/forms/elder-from-field-customizable-base.mjs +52 -0
- package/esm2022/lib/common/forms/elder-from-field-entity-base.mjs +39 -0
- package/esm2022/lib/common/forms/elder-from-field-multi-entity-base.mjs +47 -0
- package/esm2022/lib/common/forms/form-field-base.component.mjs +112 -0
- package/esm2022/lib/common/forms/multi-model-base.component.mjs +32 -0
- package/esm2022/lib/common/forms/template-composite-control.mjs +133 -0
- package/esm2022/lib/common/forms/value-accessor-base.mjs +146 -0
- package/esm2022/lib/common/forms/view-providers.mjs +30 -0
- package/esm2022/lib/common/http/http-client-builder.service.mjs +14 -0
- package/esm2022/lib/common/http/http-client-pristine.mjs +21 -0
- package/esm2022/lib/common/http/transfer/data-transfer-factory.mjs +95 -0
- package/esm2022/lib/common/http/transfer/data-transfer-progress-aggregate.mjs +49 -0
- package/esm2022/lib/common/http/transfer/data-transfer-progress.mjs +17 -0
- package/esm2022/lib/common/http/transfer/data-transfer-state.mjs +82 -0
- package/esm2022/lib/common/http/transfer/http-data-transfer.mjs +132 -0
- package/esm2022/lib/common/i18n/entity/impl/i18n-text.mjs +16 -0
- package/esm2022/lib/common/i18n/entity/locale.mjs +12 -0
- package/esm2022/lib/common/i18n/entity/localisation-picker.mjs +30 -0
- package/esm2022/lib/common/objects.mjs +41 -0
- package/esm2022/lib/common/selection/selection-model.mjs +212 -0
- package/esm2022/lib/common/suggestion-provider.mjs +12 -0
- package/esm2022/lib/common/time/date-util.mjs +93 -0
- package/esm2022/lib/common/time/time-util.mjs +41 -0
- package/esm2022/lib/common/url/elder-router.service.mjs +54 -0
- package/esm2022/lib/common/url/elder-url-fragment-params.service.mjs +119 -0
- package/esm2022/lib/common/url/url-query-params.mjs +133 -0
- package/esm2022/lib/common/utils/collection-util.mjs +109 -0
- package/esm2022/lib/common/utils/filter-util.mjs +52 -0
- package/esm2022/lib/common/utils/focus-util.mjs +23 -0
- package/esm2022/lib/common/utils/query-list-binding.mjs +67 -0
- package/esm2022/lib/common/utils/url-builder.mjs +275 -0
- package/esm2022/lib/common/utils/value-wrapper.mjs +19 -0
- package/esm2022/lib/components/access-denied/elder-access-denied.component.mjs +16 -0
- package/esm2022/lib/components/access-denied/elder-access-denied.module.mjs +30 -0
- package/esm2022/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +39 -0
- package/esm2022/lib/components/auditing/elder-audit.module.mjs +42 -0
- package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +39 -0
- package/esm2022/lib/components/badge/elder-badge.directive.mjs +48 -0
- package/esm2022/lib/components/badge/elder-badge.module.mjs +40 -0
- package/esm2022/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +15 -0
- package/esm2022/lib/components/button-group/elder-button-group.module.mjs +35 -0
- package/esm2022/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +123 -0
- package/esm2022/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +15 -0
- package/esm2022/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +211 -0
- package/esm2022/lib/components/card-organizer/card-stack.mjs +176 -0
- package/esm2022/lib/components/card-organizer/elder-card-organizer.module.mjs +49 -0
- package/esm2022/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +17 -0
- package/esm2022/lib/components/cards/elder-card/elder-card.component.mjs +145 -0
- package/esm2022/lib/components/cards/elder-card/elder-card.module.mjs +66 -0
- package/esm2022/lib/components/chips/elder-chip-label.directive.mjs +170 -0
- package/esm2022/lib/components/chips/elder-chips.module.mjs +48 -0
- package/esm2022/lib/components/connectivity/elder-connectivity.module.mjs +56 -0
- package/esm2022/lib/components/connectivity/elder-connectivity.service.mjs +63 -0
- package/esm2022/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +46 -0
- package/esm2022/lib/components/containers/elder-containers.module.mjs +25 -0
- package/esm2022/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +24 -0
- package/esm2022/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +77 -0
- package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +38 -0
- package/esm2022/lib/components/csv/elder-csv-stream-exporter.mjs +114 -0
- package/esm2022/lib/components/csv/elder-csv.module.mjs +37 -0
- package/esm2022/lib/components/currency/elder-currency.module.mjs +24 -0
- package/esm2022/lib/components/currency/elder-currency.pipe.mjs +33 -0
- package/esm2022/lib/components/currency/model/currency-unit.mjs +10 -0
- package/esm2022/lib/components/data-transfer/elder-data-transfer.module.mjs +76 -0
- package/esm2022/lib/components/data-transfer/elder-data-transfer.service.mjs +91 -0
- package/esm2022/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +91 -0
- package/esm2022/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +34 -0
- package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +47 -0
- package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +26 -0
- package/esm2022/lib/components/data-view/base/data-view-options-provider-binding.mjs +67 -0
- package/esm2022/lib/components/data-view/base/elder-data-view-base.mjs +266 -0
- package/esm2022/lib/components/data-view/base/elder-data-view-options.mjs +45 -0
- package/esm2022/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +45 -0
- package/esm2022/lib/components/data-view/common/elder-data-common.module.mjs +90 -0
- package/esm2022/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +137 -0
- package/esm2022/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +89 -0
- package/esm2022/lib/components/data-view/common/selection/data-context-selection.directive.mjs +98 -0
- package/esm2022/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +38 -0
- package/esm2022/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +307 -0
- package/esm2022/lib/components/data-view/grid/elder-grid.module.mjs +82 -0
- package/esm2022/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +69 -0
- package/esm2022/lib/components/data-view/master-detail/elder-detail.directive.mjs +49 -0
- package/esm2022/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +76 -0
- package/esm2022/lib/components/data-view/master-detail/elder-master-detail-provider.mjs +20 -0
- package/esm2022/lib/components/data-view/master-detail/elder-master-detail.component.mjs +125 -0
- package/esm2022/lib/components/data-view/master-detail/elder-master-detail.module.mjs +116 -0
- package/esm2022/lib/components/data-view/master-detail/elder-master-detail.service.mjs +88 -0
- package/esm2022/lib/components/data-view/master-detail/elder-master.directive.mjs +22 -0
- package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +19 -0
- package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +78 -0
- package/esm2022/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +113 -0
- package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +299 -0
- package/esm2022/lib/components/data-view/table/elder-number-cell.directive.mjs +29 -0
- package/esm2022/lib/components/data-view/table/elder-paginator-intl.mjs +72 -0
- package/esm2022/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +18 -0
- package/esm2022/lib/components/data-view/table/elder-table/elder-table.component.mjs +325 -0
- package/esm2022/lib/components/data-view/table/elder-table-column.directive.mjs +17 -0
- package/esm2022/lib/components/data-view/table/elder-table-extension.directive.mjs +96 -0
- package/esm2022/lib/components/data-view/table/elder-table-root.directive.mjs +29 -0
- package/esm2022/lib/components/data-view/table/elder-table-row.directive.mjs +153 -0
- package/esm2022/lib/components/data-view/table/elder-table-sort.directive.mjs +20 -0
- package/esm2022/lib/components/data-view/table/elder-table.module.mjs +146 -0
- package/esm2022/lib/components/data-view/table/model/elder-column-layout.mjs +110 -0
- package/esm2022/lib/components/data-view/table/model/elder-table-model-cdk-table-binding.mjs +81 -0
- package/esm2022/lib/components/data-view/table/model/elder-table-model-provider.mjs +40 -0
- package/esm2022/lib/components/data-view/table/model/elder-table-model-query-group.mjs +87 -0
- package/esm2022/lib/components/data-view/table/model/elder-table-model.mjs +165 -0
- package/esm2022/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +25 -0
- package/esm2022/lib/components/dialogs/elder-dialog.module.mjs +64 -0
- package/esm2022/lib/components/dialogs/elder-dialog.service.mjs +202 -0
- package/esm2022/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +43 -0
- package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +43 -0
- package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +46 -0
- package/esm2022/lib/components/errors/elder-error.module.mjs +41 -0
- package/esm2022/lib/components/errors/error-util.mjs +94 -0
- package/esm2022/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +66 -0
- package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +55 -0
- package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +28 -0
- package/esm2022/lib/components/files/blob-url.mjs +10 -0
- package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +225 -0
- package/esm2022/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +43 -0
- package/esm2022/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +84 -0
- package/esm2022/lib/components/files/elder-file-drop-zone.directive.mjs +144 -0
- package/esm2022/lib/components/files/elder-file-select.directive.mjs +166 -0
- package/esm2022/lib/components/files/elder-file.module.mjs +77 -0
- package/esm2022/lib/components/files/file-select/file-select.component.mjs +55 -0
- package/esm2022/lib/components/files/file-upload/file-upload.component.mjs +67 -0
- package/esm2022/lib/components/files/listing/file-entry.mjs +76 -0
- package/esm2022/lib/components/files/listing/file-listing-rx.mjs +104 -0
- package/esm2022/lib/components/forms/clipboard/elder-clipboard.service.mjs +51 -0
- package/esm2022/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +34 -0
- package/esm2022/lib/components/forms/directives/elder-clipboard-put.directive.mjs +35 -0
- package/esm2022/lib/components/forms/directives/elder-delayed-focus.directive.mjs +42 -0
- package/esm2022/lib/components/forms/directives/elder-form-field-dense.directive.mjs +82 -0
- package/esm2022/lib/components/forms/directives/elder-form-field-label.directive.mjs +83 -0
- package/esm2022/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +41 -0
- package/esm2022/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +34 -0
- package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +132 -0
- package/esm2022/lib/components/forms/directives/elder-input-pattern.directive.mjs +77 -0
- package/esm2022/lib/components/forms/directives/elder-key-event.directive.mjs +111 -0
- package/esm2022/lib/components/forms/directives/elder-next-focusable.directive.mjs +101 -0
- package/esm2022/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +36 -0
- package/esm2022/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +29 -0
- package/esm2022/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +157 -0
- package/esm2022/lib/components/forms/directives/elder-touched.directive.mjs +27 -0
- package/esm2022/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +108 -0
- package/esm2022/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +85 -0
- package/esm2022/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +47 -0
- package/esm2022/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +48 -0
- package/esm2022/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +55 -0
- package/esm2022/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +40 -0
- package/esm2022/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +40 -0
- package/esm2022/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +96 -0
- package/esm2022/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +68 -0
- package/esm2022/lib/components/forms/elder-forms.module.mjs +22 -0
- package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +146 -0
- package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +185 -0
- package/esm2022/lib/components/forms/search/elder-search.module.mjs +66 -0
- package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +125 -0
- package/esm2022/lib/components/forms/search/search-box/elder-search-panel.component.mjs +16 -0
- package/esm2022/lib/components/global-search/elder-global-search.component.mjs +126 -0
- package/esm2022/lib/components/global-search/elder-global-search.module.mjs +32 -0
- package/esm2022/lib/components/global-search/elder-global-search.service.mjs +93 -0
- package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +90 -0
- package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +26 -0
- package/esm2022/lib/components/headers/elder-header/elder-header.component.mjs +28 -0
- package/esm2022/lib/components/headers/elder-header.module.mjs +43 -0
- package/esm2022/lib/components/http-support/elder-http-client.service.mjs +68 -0
- package/esm2022/lib/components/i18n/entities/elder-i18n-entities.module.mjs +123 -0
- package/esm2022/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +144 -0
- package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +29 -0
- package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +30 -0
- package/esm2022/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +152 -0
- package/esm2022/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +28 -0
- package/esm2022/lib/components/i18n/entities/elder-localized-texts.directive.mjs +56 -0
- package/esm2022/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +39 -0
- package/esm2022/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +30 -0
- package/esm2022/lib/components/i18n/entities/picker/localisation-picker.service.mjs +74 -0
- package/esm2022/lib/components/i18n/language/elder-language-interceptor.mjs +69 -0
- package/esm2022/lib/components/i18n/language/elder-language.module.mjs +72 -0
- package/esm2022/lib/components/i18n/language/elder-language.service.mjs +121 -0
- package/esm2022/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +65 -0
- package/esm2022/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +53 -0
- package/esm2022/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +130 -0
- package/esm2022/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +138 -0
- package/esm2022/lib/components/iframes/elder-iframe.module.mjs +103 -0
- package/esm2022/lib/components/iframes/iframe-close.directive.mjs +41 -0
- package/esm2022/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +51 -0
- package/esm2022/lib/components/iframes/iframe-host/iframe-host.component.mjs +136 -0
- package/esm2022/lib/components/iframes/iframe-messages.mjs +5 -0
- package/esm2022/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +78 -0
- package/esm2022/lib/components/iframes/iframe.service.mjs +52 -0
- package/esm2022/lib/components/iframes/typed-event-message.mjs +42 -0
- package/esm2022/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +61 -0
- package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +158 -0
- package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +29 -0
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +186 -0
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +197 -0
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +114 -0
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete.module.mjs +58 -0
- package/esm2022/lib/components/labels/elder-labels.module.mjs +30 -0
- package/esm2022/lib/components/labels/labels-input/labels-input.component.mjs +229 -0
- package/esm2022/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +273 -0
- package/esm2022/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +91 -0
- package/esm2022/lib/components/measures/directives/elder-unit-select.directive.mjs +64 -0
- package/esm2022/lib/components/measures/elder-measures.module.mjs +140 -0
- package/esm2022/lib/components/measures/elder-quantity-transform.pipe.mjs +41 -0
- package/esm2022/lib/components/measures/elder-quantity.pipe.mjs +73 -0
- package/esm2022/lib/components/measures/elder-unit.service.mjs +115 -0
- package/esm2022/lib/components/measures/model/unit-registry.mjs +81 -0
- package/esm2022/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +33 -0
- package/esm2022/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +176 -0
- package/esm2022/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +87 -0
- package/esm2022/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +76 -0
- package/esm2022/lib/components/measures/util/elder-quantity.service.mjs +237 -0
- package/esm2022/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +164 -0
- package/esm2022/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +55 -0
- package/esm2022/lib/components/navigation/bread-crumbs/path/path.mjs +37 -0
- package/esm2022/lib/components/navigation/nav/elder-nav.module.mjs +53 -0
- package/esm2022/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +127 -0
- package/esm2022/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +161 -0
- package/esm2022/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +68 -0
- package/esm2022/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +46 -0
- package/esm2022/lib/components/navigation/toolbar/elder-toolbar.module.mjs +76 -0
- package/esm2022/lib/components/navigation/toolbar/elder-toolbar.service.mjs +68 -0
- package/esm2022/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +66 -0
- package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +39 -0
- package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +85 -0
- package/esm2022/lib/components/overlays/elder-overlay-origin.directive.mjs +43 -0
- package/esm2022/lib/components/overlays/elder-overlay-trigger.directive.mjs +72 -0
- package/esm2022/lib/components/overlays/elder-overlay.component.mjs +204 -0
- package/esm2022/lib/components/overlays/elder-overlay.module.mjs +41 -0
- package/esm2022/lib/components/panels/card-panel/elder-card-panel.component.mjs +12 -0
- package/esm2022/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +12 -0
- package/esm2022/lib/components/panels/elder-panel.module.mjs +58 -0
- package/esm2022/lib/components/panels/flat/elder-panel.component.mjs +26 -0
- package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +69 -0
- package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +68 -0
- package/esm2022/lib/components/scrollbar/elder-scrollbar.directive.mjs +62 -0
- package/esm2022/lib/components/scrollbar/elder-scrollbar.module.mjs +17 -0
- package/esm2022/lib/components/select/auto/elder-auto-select-first.directive.mjs +77 -0
- package/esm2022/lib/components/select/auto/elder-select-first-util.mjs +62 -0
- package/esm2022/lib/components/select/elder-select-base.mjs +284 -0
- package/esm2022/lib/components/select/elder-select-chip.directive.mjs +45 -0
- package/esm2022/lib/components/select/elder-select-on-tab.directive.mjs +133 -0
- package/esm2022/lib/components/select/elder-select-value.directive.mjs +15 -0
- package/esm2022/lib/components/select/elder-select.module.mjs +146 -0
- package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +350 -0
- package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +287 -0
- package/esm2022/lib/components/select/multi/elder-multi-select-form-field.mjs +91 -0
- package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +86 -0
- package/esm2022/lib/components/select/popup/selection-model-popup.directive.mjs +126 -0
- package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +47 -0
- package/esm2022/lib/components/select/single/elder-clear-select.directive.mjs +57 -0
- package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +443 -0
- package/esm2022/lib/components/select/single/elder-select-form-field.mjs +45 -0
- package/esm2022/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +149 -0
- package/esm2022/lib/components/select-chip-list/elder-chip-list-select.module.mjs +48 -0
- package/esm2022/lib/components/shell/drawers/drawer-outlet-binding.mjs +60 -0
- package/esm2022/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +117 -0
- package/esm2022/lib/components/shell/drawers/elder-router-outlet.service.mjs +128 -0
- package/esm2022/lib/components/shell/elder-shell-slot.directive.mjs +46 -0
- package/esm2022/lib/components/shell/elder-shell.module.mjs +96 -0
- package/esm2022/lib/components/shell/elder-shell.service.mjs +145 -0
- package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +73 -0
- package/esm2022/lib/components/shell/shell/elder-shell.component.mjs +209 -0
- package/esm2022/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +137 -0
- package/esm2022/lib/components/tabs/elder-tab/elder-tab.directive.mjs +25 -0
- package/esm2022/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +256 -0
- package/esm2022/lib/components/tabs/elder-tab.module.mjs +32 -0
- package/esm2022/lib/components/theme/elder-theme-applier.directive.mjs +62 -0
- package/esm2022/lib/components/theme/elder-theme-preference.service.mjs +74 -0
- package/esm2022/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +74 -0
- package/esm2022/lib/components/theme/elder-theme.directive.mjs +61 -0
- package/esm2022/lib/components/theme/elder-theme.module.mjs +74 -0
- package/esm2022/lib/components/theme/elder-theme.service.mjs +123 -0
- package/esm2022/lib/components/theme/known-elder-themes.mjs +6 -0
- package/esm2022/lib/components/time/date-adapters/custom-date-adapter.mjs +23 -0
- package/esm2022/lib/components/time/duration/duration-format.mjs +271 -0
- package/esm2022/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +122 -0
- package/esm2022/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +89 -0
- package/esm2022/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +108 -0
- package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +173 -0
- package/esm2022/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +264 -0
- package/esm2022/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +95 -0
- package/esm2022/lib/components/time/elder-time.module.mjs +120 -0
- package/esm2022/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +131 -0
- package/esm2022/lib/components/time/period/period-format.mjs +89 -0
- package/esm2022/lib/components/time/pipes/to-iso-date-string.pipe.mjs +38 -0
- package/esm2022/lib/components/toasts/elder-toast.module.mjs +23 -0
- package/esm2022/lib/components/toasts/elder-toast.service.mjs +171 -0
- package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +74 -0
- package/esm2022/lib/components/url-fragment/elder-url-fragment.module.mjs +54 -0
- package/esm2022/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +84 -0
- package/esm2022/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +65 -0
- package/esm2022/lib/components/viewers/elder-viewers.module.mjs +25 -0
- package/esm2022/lib/features/event-source/elder-event-source.service.mjs +56 -0
- package/esm2022/lib/features/event-source/reactive-event-source.mjs +198 -0
- package/esm2022/lib/features/kafent/access-token-provider.mjs +20 -0
- package/esm2022/lib/features/kafent/kafent-config.mjs +24 -0
- package/esm2022/lib/features/kafent/kafent-event-stream.mjs +25 -0
- package/esm2022/lib/features/kafent/kafent-event.service.mjs +107 -0
- package/esm2022/lib/features/kafent/kafent.module.mjs +61 -0
- package/esm2022/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +128 -0
- package/esm2022/lib/pipes/bytes.pipe.mjs +24 -0
- package/esm2022/lib/pipes/elder-pipes.module.mjs +67 -0
- package/esm2022/lib/pipes/elder-repeat.pipe.mjs +21 -0
- package/esm2022/lib/pipes/elder-round.pipe.mjs +35 -0
- package/esm2022/lib/pipes/elder-safe-url.pipe.mjs +20 -0
- package/esm2022/lib/pipes/elder-truncate.pipe.mjs +40 -0
- package/esm2022/lib/pipes/iso-duration.pipe.mjs +58 -0
- package/esm2022/lib/pipes/iso-interval-parse.pipe.mjs +49 -0
- package/esm2022/lib/pipes/iso-interval.pipe.mjs +110 -0
- package/esm2022/lib/pipes/time-ago.pipe.mjs +104 -0
- package/esm2022/lib/pipes/time-duration.pipe.mjs +98 -0
- package/esm2022/lib/pipes/weight.pipe.mjs +56 -0
- package/fesm2022/elderbyte-ngx-starter.mjs +30269 -0
- package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -0
- package/lib/common/data/field-comparator.d.ts +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 +1 -1
- package/lib/common/forms/form-field-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/common/i18n/entity/language-tag.d.ts +1 -1
- package/lib/common/i18n/entity/translated.d.ts +1 -1
- package/lib/common/json-map.d.ts +1 -1
- package/lib/common/selection/selection-model.d.ts +1 -1
- package/lib/common/theme-sizes.d.ts +1 -1
- package/lib/common/time/date-util.d.ts +1 -1
- package/lib/common/time/interval.d.ts +1 -1
- package/lib/components/auditing/audited-entity/elder-audited-entity.component.d.ts +1 -1
- package/lib/components/badge/elder-badge/elder-badge.component.d.ts +1 -1
- package/lib/components/badge/elder-badge.directive.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-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 +3 -3
- package/lib/components/chips/elder-chip-label.directive.d.ts +4 -4
- package/lib/components/containers/elder-scroll-container/elder-scroll-container.component.d.ts +2 -2
- 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-view/base/elder-data-view-base.d.ts +1 -1
- package/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.d.ts +1 -1
- package/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.d.ts +3 -3
- 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/elder-data-view-interaction-mode.d.ts +1 -1
- package/lib/components/data-view/grid/elder-grid/elder-grid.component.d.ts +1 -1
- package/lib/components/data-view/master-detail/elder-master-detail-mode.d.ts +1 -1
- package/lib/components/data-view/master-detail/elder-master-detail.component.d.ts +1 -1
- package/lib/components/data-view/table/activation/elder-delete-active.directive.d.ts +1 -1
- package/lib/components/data-view/table/activation/elder-table-activation-options.d.ts +2 -2
- package/lib/components/data-view/table/activation/elder-table-activation.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-extension.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/model/elder-column-layout.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/drag-n-drop/elder-drop-zone/elder-drop-zone.component.d.ts +1 -1
- package/lib/components/files/elder-file-drop-zone.directive.d.ts +1 -1
- package/lib/components/files/elder-file-select.directive.d.ts +1 -1
- package/lib/components/files/file-select/file-select.component.d.ts +1 -1
- package/lib/components/files/file-upload/file-upload.component.d.ts +1 -1
- package/lib/components/forms/directives/elder-clipboard-put.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-delayed-focus.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-form-field-dense.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-form-field-label.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-form-field-no-hint.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-form-field-no-spinner.directive.d.ts +1 -1
- package/lib/components/forms/directives/elder-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-tab-focus-trap.directive.d.ts +1 -1
- package/lib/components/forms/directives/validation/validators/elder-max.validator.d.ts +1 -1
- package/lib/components/forms/directives/validation/validators/elder-min.validator.d.ts +1 -1
- package/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.d.ts +1 -1
- package/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.d.ts +1 -1
- package/lib/components/forms/search/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 +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-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/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/iframe-close.directive.d.ts +1 -1
- package/lib/components/iframes/iframe-host/iframe-host.component.d.ts +2 -2
- package/lib/components/iframes/typed-event-message.d.ts +1 -1
- package/lib/components/infinitescroll/elder-infinite-scroll.directive.d.ts +1 -1
- package/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.d.ts +2 -2
- 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 -1
- package/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.d.ts +2 -2
- package/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.d.ts +1 -1
- package/lib/components/measures/directives/elder-unit-select.directive.d.ts +1 -1
- package/lib/components/measures/model/unit.d.ts +1 -1
- package/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.d.ts +1 -1
- package/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.d.ts +1 -1
- package/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.d.ts +1 -1
- package/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.d.ts +1 -1
- package/lib/components/navigation/nav/nav-group/elder-nav-group.component.d.ts +1 -1
- package/lib/components/navigation/nav/nav-link/elder-nav-link.component.d.ts +1 -1
- package/lib/components/navigation/nav/nav-list/elder-nav-list.component.d.ts +1 -1
- package/lib/components/navigation/toolbar/elder-toolbar-column.directive.d.ts +1 -1
- package/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.d.ts +1 -1
- package/lib/components/navigation/toolbar/toolbar-column-position.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/flat/elder-panel.component.d.ts +1 -1
- package/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.d.ts +1 -1
- package/lib/components/scrollbar/elder-scrollbar.directive.d.ts +1 -1
- package/lib/components/select/auto/elder-auto-select-first.directive.d.ts +1 -1
- package/lib/components/select/elder-select-base.d.ts +2 -2
- 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 +1 -1
- package/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.d.ts +1 -1
- package/lib/components/select/popup/selection-model-popup.directive.d.ts +1 -1
- package/lib/components/select/single/elder-select/elder-select.component.d.ts +1 -1
- package/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.d.ts +1 -1
- package/lib/components/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 +1 -1
- package/lib/components/shell/shell-content-slot.d.ts +1 -1
- 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-toggle/elder-theme-toggle.component.d.ts +2 -2
- package/lib/components/time/duration/elder-duration-input/elder-duration-input.component.d.ts +1 -1
- package/lib/components/time/duration/iso-duration-str.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 +2 -2
- 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/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.d.ts +1 -1
- package/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.d.ts +1 -1
- package/lib/pipes/elder-truncate.pipe.d.ts +1 -1
- package/package.json +12 -18
- package/esm2020/lib/common/async/refreshing-entity.mjs +0 -86
- package/esm2020/lib/common/csv/csv-spec.mjs +0 -99
- package/esm2020/lib/common/data/data-context/data-context-auto-starter.mjs +0 -76
- package/esm2020/lib/common/data/data-context/data-context-builder.mjs +0 -247
- package/esm2020/lib/common/data/data-context/data-context-status.mjs +0 -46
- package/esm2020/lib/common/data/data-context/mat-table-data-context-binding.mjs +0 -139
- package/esm2020/lib/common/data/datasource/data-source-adapter.mjs +0 -55
- package/esm2020/lib/common/data/datasource/data-source-change-event.mjs +0 -24
- package/esm2020/lib/common/data/datasource/data-source-processor.mjs +0 -199
- package/esm2020/lib/common/data/datasource/fetcher/delegate-data-source.mjs +0 -127
- package/esm2020/lib/common/data/datasource/local/local-list-data-source.mjs +0 -141
- package/esm2020/lib/common/data/datasource/local/local-paged-data-source.mjs +0 -73
- package/esm2020/lib/common/data/entity-set-patch.mjs +0 -164
- package/esm2020/lib/common/data/field-comparator.mjs +0 -99
- package/esm2020/lib/common/data/http-params-builder.mjs +0 -118
- package/esm2020/lib/common/data/sort.mjs +0 -11
- package/esm2020/lib/common/enums/elder-enum-translation.service.mjs +0 -81
- package/esm2020/lib/common/format/bytes-format.mjs +0 -22
- package/esm2020/lib/common/forms/elder-form-field-control-base.directive.mjs +0 -181
- package/esm2020/lib/common/forms/elder-from-field-base.mjs +0 -94
- package/esm2020/lib/common/forms/elder-from-field-customizable-base.mjs +0 -52
- package/esm2020/lib/common/forms/elder-from-field-entity-base.mjs +0 -39
- package/esm2020/lib/common/forms/elder-from-field-multi-entity-base.mjs +0 -47
- package/esm2020/lib/common/forms/form-field-base.component.mjs +0 -112
- package/esm2020/lib/common/forms/multi-model-base.component.mjs +0 -32
- package/esm2020/lib/common/forms/template-composite-control.mjs +0 -133
- package/esm2020/lib/common/forms/value-accessor-base.mjs +0 -146
- package/esm2020/lib/common/forms/view-providers.mjs +0 -30
- package/esm2020/lib/common/http/http-client-builder.service.mjs +0 -14
- package/esm2020/lib/common/http/http-client-pristine.mjs +0 -21
- package/esm2020/lib/common/http/transfer/data-transfer-factory.mjs +0 -95
- package/esm2020/lib/common/http/transfer/data-transfer-progress-aggregate.mjs +0 -49
- package/esm2020/lib/common/http/transfer/data-transfer-progress.mjs +0 -17
- package/esm2020/lib/common/http/transfer/data-transfer-state.mjs +0 -82
- package/esm2020/lib/common/http/transfer/http-data-transfer.mjs +0 -132
- package/esm2020/lib/common/i18n/entity/impl/i18n-text.mjs +0 -16
- package/esm2020/lib/common/i18n/entity/locale.mjs +0 -12
- package/esm2020/lib/common/i18n/entity/localisation-picker.mjs +0 -30
- package/esm2020/lib/common/objects.mjs +0 -41
- package/esm2020/lib/common/selection/selection-model.mjs +0 -212
- package/esm2020/lib/common/suggestion-provider.mjs +0 -12
- package/esm2020/lib/common/time/date-util.mjs +0 -93
- package/esm2020/lib/common/time/time-util.mjs +0 -41
- package/esm2020/lib/common/url/elder-router.service.mjs +0 -54
- package/esm2020/lib/common/url/elder-url-fragment-params.service.mjs +0 -119
- package/esm2020/lib/common/url/url-query-params.mjs +0 -133
- package/esm2020/lib/common/utils/collection-util.mjs +0 -109
- package/esm2020/lib/common/utils/filter-util.mjs +0 -52
- package/esm2020/lib/common/utils/focus-util.mjs +0 -23
- package/esm2020/lib/common/utils/query-list-binding.mjs +0 -67
- package/esm2020/lib/common/utils/url-builder.mjs +0 -275
- package/esm2020/lib/common/utils/value-wrapper.mjs +0 -19
- package/esm2020/lib/components/access-denied/elder-access-denied.component.mjs +0 -16
- package/esm2020/lib/components/access-denied/elder-access-denied.module.mjs +0 -30
- package/esm2020/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +0 -39
- package/esm2020/lib/components/auditing/elder-audit.module.mjs +0 -42
- package/esm2020/lib/components/badge/elder-badge/elder-badge.component.mjs +0 -39
- package/esm2020/lib/components/badge/elder-badge.directive.mjs +0 -48
- package/esm2020/lib/components/badge/elder-badge.module.mjs +0 -40
- package/esm2020/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +0 -15
- package/esm2020/lib/components/button-group/elder-button-group.module.mjs +0 -35
- package/esm2020/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +0 -123
- package/esm2020/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +0 -15
- package/esm2020/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +0 -211
- package/esm2020/lib/components/card-organizer/card-stack.mjs +0 -176
- package/esm2020/lib/components/card-organizer/elder-card-organizer.module.mjs +0 -49
- package/esm2020/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +0 -17
- package/esm2020/lib/components/cards/elder-card/elder-card.component.mjs +0 -145
- package/esm2020/lib/components/cards/elder-card/elder-card.module.mjs +0 -66
- package/esm2020/lib/components/chips/elder-chip-label.directive.mjs +0 -170
- package/esm2020/lib/components/chips/elder-chips.module.mjs +0 -48
- package/esm2020/lib/components/connectivity/elder-connectivity.module.mjs +0 -56
- package/esm2020/lib/components/connectivity/elder-connectivity.service.mjs +0 -63
- package/esm2020/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +0 -46
- package/esm2020/lib/components/containers/elder-containers.module.mjs +0 -25
- package/esm2020/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +0 -24
- package/esm2020/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +0 -77
- package/esm2020/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +0 -38
- package/esm2020/lib/components/csv/elder-csv-stream-exporter.mjs +0 -114
- package/esm2020/lib/components/csv/elder-csv.module.mjs +0 -37
- package/esm2020/lib/components/currency/elder-currency.module.mjs +0 -24
- package/esm2020/lib/components/currency/elder-currency.pipe.mjs +0 -33
- package/esm2020/lib/components/currency/model/currency-unit.mjs +0 -10
- package/esm2020/lib/components/data-transfer/elder-data-transfer.module.mjs +0 -76
- package/esm2020/lib/components/data-transfer/elder-data-transfer.service.mjs +0 -91
- package/esm2020/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +0 -91
- package/esm2020/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +0 -34
- package/esm2020/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +0 -47
- package/esm2020/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +0 -26
- package/esm2020/lib/components/data-view/base/data-view-options-provider-binding.mjs +0 -67
- package/esm2020/lib/components/data-view/base/elder-data-view-base.mjs +0 -266
- package/esm2020/lib/components/data-view/base/elder-data-view-options.mjs +0 -45
- package/esm2020/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +0 -45
- package/esm2020/lib/components/data-view/common/elder-data-common.module.mjs +0 -90
- package/esm2020/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +0 -137
- package/esm2020/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +0 -89
- package/esm2020/lib/components/data-view/common/selection/data-context-selection.directive.mjs +0 -98
- package/esm2020/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +0 -38
- package/esm2020/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +0 -307
- package/esm2020/lib/components/data-view/grid/elder-grid.module.mjs +0 -82
- package/esm2020/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +0 -69
- package/esm2020/lib/components/data-view/master-detail/elder-detail.directive.mjs +0 -49
- package/esm2020/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +0 -76
- package/esm2020/lib/components/data-view/master-detail/elder-master-detail-provider.mjs +0 -20
- package/esm2020/lib/components/data-view/master-detail/elder-master-detail.component.mjs +0 -125
- package/esm2020/lib/components/data-view/master-detail/elder-master-detail.module.mjs +0 -116
- package/esm2020/lib/components/data-view/master-detail/elder-master-detail.service.mjs +0 -88
- package/esm2020/lib/components/data-view/master-detail/elder-master.directive.mjs +0 -22
- package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +0 -19
- package/esm2020/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +0 -78
- package/esm2020/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +0 -113
- package/esm2020/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +0 -299
- package/esm2020/lib/components/data-view/table/elder-number-cell.directive.mjs +0 -29
- package/esm2020/lib/components/data-view/table/elder-paginator-intl.mjs +0 -72
- package/esm2020/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +0 -18
- package/esm2020/lib/components/data-view/table/elder-table/elder-table.component.mjs +0 -325
- package/esm2020/lib/components/data-view/table/elder-table-column.directive.mjs +0 -17
- package/esm2020/lib/components/data-view/table/elder-table-extension.directive.mjs +0 -96
- package/esm2020/lib/components/data-view/table/elder-table-root.directive.mjs +0 -29
- package/esm2020/lib/components/data-view/table/elder-table-row.directive.mjs +0 -151
- package/esm2020/lib/components/data-view/table/elder-table-sort.directive.mjs +0 -20
- package/esm2020/lib/components/data-view/table/elder-table.module.mjs +0 -146
- package/esm2020/lib/components/data-view/table/model/elder-column-layout.mjs +0 -110
- package/esm2020/lib/components/data-view/table/model/elder-table-model-cdk-table-binding.mjs +0 -81
- package/esm2020/lib/components/data-view/table/model/elder-table-model-provider.mjs +0 -40
- package/esm2020/lib/components/data-view/table/model/elder-table-model-query-group.mjs +0 -87
- package/esm2020/lib/components/data-view/table/model/elder-table-model.mjs +0 -165
- package/esm2020/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +0 -25
- package/esm2020/lib/components/dialogs/elder-dialog.module.mjs +0 -64
- package/esm2020/lib/components/dialogs/elder-dialog.service.mjs +0 -202
- package/esm2020/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +0 -43
- package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +0 -43
- package/esm2020/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +0 -46
- package/esm2020/lib/components/errors/elder-error.module.mjs +0 -41
- package/esm2020/lib/components/errors/error-util.mjs +0 -94
- package/esm2020/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +0 -66
- package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +0 -55
- package/esm2020/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +0 -28
- package/esm2020/lib/components/files/blob-url.mjs +0 -10
- package/esm2020/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +0 -225
- package/esm2020/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +0 -43
- package/esm2020/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +0 -84
- package/esm2020/lib/components/files/elder-file-drop-zone.directive.mjs +0 -144
- package/esm2020/lib/components/files/elder-file-select.directive.mjs +0 -166
- package/esm2020/lib/components/files/elder-file.module.mjs +0 -77
- package/esm2020/lib/components/files/file-select/file-select.component.mjs +0 -55
- package/esm2020/lib/components/files/file-upload/file-upload.component.mjs +0 -67
- package/esm2020/lib/components/files/listing/file-entry.mjs +0 -76
- package/esm2020/lib/components/files/listing/file-listing-rx.mjs +0 -104
- package/esm2020/lib/components/forms/clipboard/elder-clipboard.service.mjs +0 -51
- package/esm2020/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +0 -34
- package/esm2020/lib/components/forms/directives/elder-clipboard-put.directive.mjs +0 -35
- package/esm2020/lib/components/forms/directives/elder-delayed-focus.directive.mjs +0 -42
- package/esm2020/lib/components/forms/directives/elder-form-field-dense.directive.mjs +0 -82
- package/esm2020/lib/components/forms/directives/elder-form-field-label.directive.mjs +0 -83
- package/esm2020/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +0 -41
- package/esm2020/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +0 -34
- package/esm2020/lib/components/forms/directives/elder-forms-directives.module.mjs +0 -132
- package/esm2020/lib/components/forms/directives/elder-input-pattern.directive.mjs +0 -77
- package/esm2020/lib/components/forms/directives/elder-key-event.directive.mjs +0 -111
- package/esm2020/lib/components/forms/directives/elder-next-focusable.directive.mjs +0 -101
- package/esm2020/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +0 -36
- package/esm2020/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +0 -29
- package/esm2020/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +0 -157
- package/esm2020/lib/components/forms/directives/elder-touched.directive.mjs +0 -27
- package/esm2020/lib/components/forms/directives/elder-triple-state-checkbox.directive.mjs +0 -108
- package/esm2020/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +0 -85
- package/esm2020/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +0 -47
- package/esm2020/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +0 -48
- package/esm2020/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +0 -55
- package/esm2020/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +0 -40
- package/esm2020/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +0 -40
- package/esm2020/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +0 -96
- package/esm2020/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +0 -68
- package/esm2020/lib/components/forms/elder-forms.module.mjs +0 -22
- package/esm2020/lib/components/forms/search/elder-search-context.directive.mjs +0 -146
- package/esm2020/lib/components/forms/search/elder-search-input.directive.mjs +0 -185
- package/esm2020/lib/components/forms/search/elder-search.module.mjs +0 -66
- package/esm2020/lib/components/forms/search/search-box/elder-search-box.component.mjs +0 -125
- package/esm2020/lib/components/forms/search/search-box/elder-search-panel.component.mjs +0 -16
- package/esm2020/lib/components/global-search/elder-global-search.component.mjs +0 -126
- package/esm2020/lib/components/global-search/elder-global-search.module.mjs +0 -32
- package/esm2020/lib/components/global-search/elder-global-search.service.mjs +0 -93
- package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +0 -90
- package/esm2020/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +0 -26
- package/esm2020/lib/components/headers/elder-header/elder-header.component.mjs +0 -28
- package/esm2020/lib/components/headers/elder-header.module.mjs +0 -43
- package/esm2020/lib/components/http-support/elder-http-client.service.mjs +0 -68
- package/esm2020/lib/components/i18n/entities/elder-i18n-entities.module.mjs +0 -123
- package/esm2020/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +0 -144
- package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +0 -29
- package/esm2020/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +0 -30
- package/esm2020/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +0 -152
- package/esm2020/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +0 -28
- package/esm2020/lib/components/i18n/entities/elder-localized-texts.directive.mjs +0 -56
- package/esm2020/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +0 -39
- package/esm2020/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +0 -30
- package/esm2020/lib/components/i18n/entities/picker/localisation-picker.service.mjs +0 -74
- package/esm2020/lib/components/i18n/language/elder-language-interceptor.mjs +0 -69
- package/esm2020/lib/components/i18n/language/elder-language.module.mjs +0 -72
- package/esm2020/lib/components/i18n/language/elder-language.service.mjs +0 -121
- package/esm2020/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +0 -65
- package/esm2020/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +0 -53
- package/esm2020/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +0 -130
- package/esm2020/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +0 -138
- package/esm2020/lib/components/iframes/elder-iframe.module.mjs +0 -103
- package/esm2020/lib/components/iframes/iframe-close.directive.mjs +0 -41
- package/esm2020/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +0 -51
- package/esm2020/lib/components/iframes/iframe-host/iframe-host.component.mjs +0 -136
- package/esm2020/lib/components/iframes/iframe-messages.mjs +0 -5
- package/esm2020/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +0 -78
- package/esm2020/lib/components/iframes/iframe.service.mjs +0 -52
- package/esm2020/lib/components/iframes/typed-event-message.mjs +0 -42
- package/esm2020/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +0 -61
- package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +0 -158
- package/esm2020/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +0 -29
- package/esm2020/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete.component.mjs +0 -186
- package/esm2020/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +0 -197
- package/esm2020/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +0 -114
- package/esm2020/lib/components/input/autocomplete/elder-autocomplete.module.mjs +0 -58
- package/esm2020/lib/components/labels/elder-labels.module.mjs +0 -30
- package/esm2020/lib/components/labels/labels-input/labels-input.component.mjs +0 -229
- package/esm2020/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +0 -273
- package/esm2020/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +0 -91
- package/esm2020/lib/components/measures/directives/elder-unit-select.directive.mjs +0 -64
- package/esm2020/lib/components/measures/elder-measures.module.mjs +0 -140
- package/esm2020/lib/components/measures/elder-quantity-transform.pipe.mjs +0 -41
- package/esm2020/lib/components/measures/elder-quantity.pipe.mjs +0 -73
- package/esm2020/lib/components/measures/elder-unit.service.mjs +0 -115
- package/esm2020/lib/components/measures/model/unit-registry.mjs +0 -81
- package/esm2020/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +0 -33
- package/esm2020/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +0 -176
- package/esm2020/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +0 -87
- package/esm2020/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +0 -76
- package/esm2020/lib/components/measures/util/elder-quantity.service.mjs +0 -237
- package/esm2020/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +0 -164
- package/esm2020/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +0 -55
- package/esm2020/lib/components/navigation/bread-crumbs/path/path.mjs +0 -37
- package/esm2020/lib/components/navigation/nav/elder-nav.module.mjs +0 -53
- package/esm2020/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +0 -127
- package/esm2020/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +0 -161
- package/esm2020/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +0 -68
- package/esm2020/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +0 -46
- package/esm2020/lib/components/navigation/toolbar/elder-toolbar.module.mjs +0 -76
- package/esm2020/lib/components/navigation/toolbar/elder-toolbar.service.mjs +0 -68
- package/esm2020/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +0 -66
- package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +0 -39
- package/esm2020/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +0 -85
- package/esm2020/lib/components/overlays/elder-overlay-origin.directive.mjs +0 -43
- package/esm2020/lib/components/overlays/elder-overlay-trigger.directive.mjs +0 -72
- package/esm2020/lib/components/overlays/elder-overlay.component.mjs +0 -204
- package/esm2020/lib/components/overlays/elder-overlay.module.mjs +0 -41
- package/esm2020/lib/components/panels/card-panel/elder-card-panel.component.mjs +0 -12
- package/esm2020/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +0 -12
- package/esm2020/lib/components/panels/elder-panel.module.mjs +0 -58
- package/esm2020/lib/components/panels/flat/elder-panel.component.mjs +0 -26
- package/esm2020/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +0 -69
- package/esm2020/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +0 -68
- package/esm2020/lib/components/scrollbar/elder-scrollbar.directive.mjs +0 -62
- package/esm2020/lib/components/scrollbar/elder-scrollbar.module.mjs +0 -17
- package/esm2020/lib/components/select/auto/elder-auto-select-first.directive.mjs +0 -77
- package/esm2020/lib/components/select/auto/elder-select-first-util.mjs +0 -62
- package/esm2020/lib/components/select/elder-select-base.mjs +0 -284
- package/esm2020/lib/components/select/elder-select-chip.directive.mjs +0 -45
- package/esm2020/lib/components/select/elder-select-on-tab.directive.mjs +0 -133
- package/esm2020/lib/components/select/elder-select-value.directive.mjs +0 -15
- package/esm2020/lib/components/select/elder-select.module.mjs +0 -146
- package/esm2020/lib/components/select/multi/elder-multi-select-base.mjs +0 -350
- package/esm2020/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +0 -287
- package/esm2020/lib/components/select/multi/elder-multi-select-form-field.mjs +0 -91
- package/esm2020/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +0 -86
- package/esm2020/lib/components/select/popup/selection-model-popup.directive.mjs +0 -126
- package/esm2020/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +0 -47
- package/esm2020/lib/components/select/single/elder-clear-select.directive.mjs +0 -57
- package/esm2020/lib/components/select/single/elder-select/elder-select.component.mjs +0 -443
- package/esm2020/lib/components/select/single/elder-select-form-field.mjs +0 -45
- package/esm2020/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +0 -149
- package/esm2020/lib/components/select-chip-list/elder-chip-list-select.module.mjs +0 -48
- package/esm2020/lib/components/shell/drawers/drawer-outlet-binding.mjs +0 -60
- package/esm2020/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +0 -117
- package/esm2020/lib/components/shell/drawers/elder-router-outlet.service.mjs +0 -128
- package/esm2020/lib/components/shell/elder-shell-slot.directive.mjs +0 -46
- package/esm2020/lib/components/shell/elder-shell.module.mjs +0 -96
- package/esm2020/lib/components/shell/elder-shell.service.mjs +0 -145
- package/esm2020/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +0 -73
- package/esm2020/lib/components/shell/shell/elder-shell.component.mjs +0 -209
- package/esm2020/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +0 -137
- package/esm2020/lib/components/tabs/elder-tab/elder-tab.directive.mjs +0 -25
- package/esm2020/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +0 -256
- package/esm2020/lib/components/tabs/elder-tab.module.mjs +0 -32
- package/esm2020/lib/components/theme/elder-theme-applier.directive.mjs +0 -62
- package/esm2020/lib/components/theme/elder-theme-preference.service.mjs +0 -74
- package/esm2020/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +0 -74
- package/esm2020/lib/components/theme/elder-theme.directive.mjs +0 -61
- package/esm2020/lib/components/theme/elder-theme.module.mjs +0 -74
- package/esm2020/lib/components/theme/elder-theme.service.mjs +0 -123
- package/esm2020/lib/components/theme/known-elder-themes.mjs +0 -6
- package/esm2020/lib/components/time/date-adapters/custom-date-adapter.mjs +0 -23
- package/esm2020/lib/components/time/duration/duration-format.mjs +0 -271
- package/esm2020/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +0 -122
- package/esm2020/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +0 -89
- package/esm2020/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +0 -108
- package/esm2020/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +0 -173
- package/esm2020/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +0 -264
- package/esm2020/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +0 -95
- package/esm2020/lib/components/time/elder-time.module.mjs +0 -120
- package/esm2020/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +0 -131
- package/esm2020/lib/components/time/period/period-format.mjs +0 -89
- package/esm2020/lib/components/time/pipes/to-iso-date-string.pipe.mjs +0 -38
- package/esm2020/lib/components/toasts/elder-toast.module.mjs +0 -23
- package/esm2020/lib/components/toasts/elder-toast.service.mjs +0 -171
- package/esm2020/lib/components/toasts/standard-toast/standard-toast.component.mjs +0 -74
- package/esm2020/lib/components/url-fragment/elder-url-fragment.module.mjs +0 -54
- package/esm2020/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +0 -84
- package/esm2020/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +0 -65
- package/esm2020/lib/components/viewers/elder-viewers.module.mjs +0 -25
- package/esm2020/lib/features/event-source/elder-event-source.service.mjs +0 -56
- package/esm2020/lib/features/event-source/reactive-event-source.mjs +0 -198
- package/esm2020/lib/features/kafent/access-token-provider.mjs +0 -20
- package/esm2020/lib/features/kafent/kafent-config.mjs +0 -24
- package/esm2020/lib/features/kafent/kafent-event-stream.mjs +0 -25
- package/esm2020/lib/features/kafent/kafent-event.service.mjs +0 -107
- package/esm2020/lib/features/kafent/kafent.module.mjs +0 -61
- package/esm2020/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +0 -128
- package/esm2020/lib/pipes/bytes.pipe.mjs +0 -24
- package/esm2020/lib/pipes/elder-pipes.module.mjs +0 -67
- package/esm2020/lib/pipes/elder-repeat.pipe.mjs +0 -21
- package/esm2020/lib/pipes/elder-round.pipe.mjs +0 -35
- package/esm2020/lib/pipes/elder-safe-url.pipe.mjs +0 -20
- package/esm2020/lib/pipes/elder-truncate.pipe.mjs +0 -40
- package/esm2020/lib/pipes/iso-duration.pipe.mjs +0 -58
- package/esm2020/lib/pipes/iso-interval-parse.pipe.mjs +0 -49
- package/esm2020/lib/pipes/iso-interval.pipe.mjs +0 -110
- package/esm2020/lib/pipes/time-ago.pipe.mjs +0 -104
- package/esm2020/lib/pipes/time-duration.pipe.mjs +0 -98
- package/esm2020/lib/pipes/weight.pipe.mjs +0 -56
- package/fesm2015/elderbyte-ngx-starter.mjs +0 -30441
- package/fesm2015/elderbyte-ngx-starter.mjs.map +0 -1
- package/fesm2020/elderbyte-ngx-starter.mjs +0 -30267
- package/fesm2020/elderbyte-ngx-starter.mjs.map +0 -1
- /package/{esm2020 → esm2022}/elderbyte-ngx-starter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/arrays.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/async/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/csv/csv-serializer.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/csv/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/continuable-listing.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-active-page.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-base.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-continuable-base.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-continuable-paged.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-continuable-token.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-life-cycle-binding.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-simple.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context-source-event-binding.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/data-context/data-context.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/data-context/indexed-entities.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/data-context/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/datasource/data-source-base.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/datasource/data-source.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/datasource/entity-id-util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/datasource/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/datasource/rest/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/datasource/rest/rest-client.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/filters/filter-context.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/filters/filter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/page.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/required-filter-evaluator.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/sort-context.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/data/token-chunk-request.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/enums/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/errors/exception-detail.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/errors/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/errors/standard-error-detail.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/format/bytes-per-second-format.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/format/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/forms/elder-entity-value-accessor.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/forms/elder-multi-entity-value-accessor.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/forms/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/http/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/http/transfer/data-transfer-base.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/http/transfer/data-transfer-status.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/http/transfer/data-transfer.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/http/transfer/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/http/upload/file-upload-client.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/i18n/entity/impl/i18n-base.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/i18n/entity/impl/translated.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/i18n/entity/language-tag.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/i18n/entity/localized.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/i18n/entity/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/i18n/entity/translated-converter.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/i18n/entity/translated.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/i18n/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/json-map.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/reactive-map.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/rxjs/operators/lazy-sample.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/rxjs/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/selection/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/sets.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/templates/template-slot-manager.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/theme-sizes.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/time/interval.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/time/period-duration.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/time/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/url/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/utils/batcher.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/utils/next-number-util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/utils/ng-zone-utils.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/utils/parse-util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/utils/property-path-util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/utils/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/utils/sort-util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/common/utils/uuid-util.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/auditing/i-audited-entity.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/card-organizer/card-organizer-data.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/connectivity/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/containers/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/csv/elder-csv-stream-exporter-builder.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/currency/model/currency-code.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/currency/model/currency-unit-registry.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/currency/model/currency.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/currency/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/data-view/base/elder-data-view-options-provider.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/data-view/base/elder-data-view.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/data-view/base/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/data-view/common/selection/master-selection-state.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/data-view/elder-data-view-interaction-mode.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/data-view/master-detail/elder-master-detail-mode.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/data-view/master-detail/master-detail-activation-event.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/data-view/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/data-view/table/activation/activation-event-source.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/data-view/table/activation/elder-activation-context.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/data-view/table/activation/elder-table-activation-options.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/data-view/table/activation/item-activation-event.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/data-view/table/activation/item-activation-options.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/data-view/table/activation/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/dialogs/elder-dialog-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/forms/directives/validation/strategies/fallback-validation-message-strategy.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/forms/directives/validation/validation-message-strategy.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/forms/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/forms/search/model/search-input-state.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/forms/search/model/search-input.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/graph/elder-progress-bar/sub-bar.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/graph/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/http-support/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/i18n/language/elder-language-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/i18n/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/input/autocomplete/many/word-position-finder.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/input/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/measures/model/dimensions.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/measures/model/quantity.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/measures/model/unit-dimension.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/measures/model/unit.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/measures/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/navigation/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/navigation/toolbar/toolbar-column-position.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/select/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/shell/shell-content-slot.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/theme/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/theme/theme-spec.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/time/duration/duration-bucket.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/time/duration/iso-duration-str.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/time/period/period-bucket.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/time/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/toasts/toast-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/toasts/toast.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/components/url-fragment/elder-url-fragment.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/features/event-source/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/features/kafent/kafent-event.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/features/kafent/kafent-live-event-request.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/features/kafent/sse/kafent-topic-sse.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/features/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/pipes/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/public_api.mjs +0 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
export class DateUtil {
|
|
2
|
+
static { this.IsoDateDelimiter = '-'; }
|
|
3
|
+
static { this.IsoTimeDelimiter = ':'; }
|
|
4
|
+
static { this.DateTimeSeparator = 'T'; }
|
|
5
|
+
/***************************************************************************
|
|
6
|
+
* *
|
|
7
|
+
* Public API *
|
|
8
|
+
* *
|
|
9
|
+
**************************************************************************/
|
|
10
|
+
static instantToDate(instant) {
|
|
11
|
+
return new Date(instant.toEpochMilli());
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Returns the given Date as ISO formatted local date string.
|
|
15
|
+
*
|
|
16
|
+
* YYYY-MM-DD
|
|
17
|
+
*
|
|
18
|
+
* @param date
|
|
19
|
+
*/
|
|
20
|
+
static toLocalDateIso(date) {
|
|
21
|
+
return DateUtil.dateString(date);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Returns the given Date as ISO formatted local date-time string.
|
|
25
|
+
*
|
|
26
|
+
* YYYY-MM-DDTHH:mm:ss.sss
|
|
27
|
+
*
|
|
28
|
+
* @param date
|
|
29
|
+
*/
|
|
30
|
+
static toLocalDateTimeIso(date) {
|
|
31
|
+
const dateString = DateUtil.toLocalDateIso(date);
|
|
32
|
+
const timeString = DateUtil.timeString(date);
|
|
33
|
+
return dateString + DateUtil.DateTimeSeparator + timeString;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Checks if the given DateTime is represents the start of the day.
|
|
37
|
+
*
|
|
38
|
+
* @param dateTime DateTime to check
|
|
39
|
+
*/
|
|
40
|
+
static isStartOfDay(date) {
|
|
41
|
+
date = new Date(date);
|
|
42
|
+
return date.getMilliseconds() === 0
|
|
43
|
+
&& date.getSeconds() === 0
|
|
44
|
+
&& date.getMinutes() === 0
|
|
45
|
+
&& date.getHours() === 0;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Sets the given Date to the start of its day by setting its time to 0.
|
|
49
|
+
*
|
|
50
|
+
* @param localDate Date to set to start of day
|
|
51
|
+
*/
|
|
52
|
+
static startOfDay(localDate) {
|
|
53
|
+
const startOfDay = new Date(localDate);
|
|
54
|
+
startOfDay.setHours(0, 0, 0, 0);
|
|
55
|
+
return startOfDay;
|
|
56
|
+
}
|
|
57
|
+
static plusDays(date, days) {
|
|
58
|
+
const plus = new Date(date);
|
|
59
|
+
plus.setDate(plus.getDate() + days);
|
|
60
|
+
return plus;
|
|
61
|
+
}
|
|
62
|
+
/***************************************************************************
|
|
63
|
+
* *
|
|
64
|
+
* private Methods *
|
|
65
|
+
* *
|
|
66
|
+
**************************************************************************/
|
|
67
|
+
static dateString(date) {
|
|
68
|
+
const values = [
|
|
69
|
+
String(date.getFullYear()),
|
|
70
|
+
DateUtil.format(date.getMonth() + 1),
|
|
71
|
+
DateUtil.format(date.getDate())
|
|
72
|
+
];
|
|
73
|
+
return values.join(DateUtil.IsoDateDelimiter);
|
|
74
|
+
}
|
|
75
|
+
static timeString(date) {
|
|
76
|
+
const values = [
|
|
77
|
+
DateUtil.format(date.getHours()),
|
|
78
|
+
DateUtil.format(date.getMinutes()),
|
|
79
|
+
DateUtil.format(date.getSeconds())
|
|
80
|
+
];
|
|
81
|
+
return values.join(DateUtil.IsoTimeDelimiter) +
|
|
82
|
+
'.' +
|
|
83
|
+
DateUtil.format(date.getMilliseconds(), 3);
|
|
84
|
+
}
|
|
85
|
+
static format(value, digitCount = 2) {
|
|
86
|
+
let zeros = '';
|
|
87
|
+
for (let i = 0; i < digitCount; i++) {
|
|
88
|
+
zeros += '0';
|
|
89
|
+
}
|
|
90
|
+
return (zeros + value).slice(-digitCount);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL3RpbWUvZGF0ZS11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE1BQU0sT0FBTyxRQUFRO2FBRUkscUJBQWdCLEdBQUcsR0FBRyxDQUFDO2FBQ3ZCLHFCQUFnQixHQUFHLEdBQUcsQ0FBQzthQUN2QixzQkFBaUIsR0FBRyxHQUFHLENBQUM7SUFFL0M7Ozs7Z0ZBSTRFO0lBRXJFLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FBZ0I7UUFDMUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFVO1FBQ3JDLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLGtCQUFrQixDQUFDLElBQVU7UUFDekMsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLE9BQU8sVUFBVSxHQUFHLFFBQVEsQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLENBQUM7SUFDOUQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQVU7UUFDbkMsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUM7ZUFDOUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUM7ZUFDdkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUM7ZUFDdkIsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsU0FBZTtRQUN0QyxNQUFNLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQVUsRUFBRSxJQUFZO1FBQzdDLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVwRSxNQUFNLENBQUMsVUFBVSxDQUFDLElBQVU7UUFDbEMsTUFBTSxNQUFNLEdBQUc7WUFDYixNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzFCLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNwQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNoQyxDQUFDO1FBRUYsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQVU7UUFFbEMsTUFBTSxNQUFNLEdBQUc7WUFDYixRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNuQyxDQUFDO1FBRUYsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztZQUMzQyxHQUFHO1lBQ0gsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFL0MsQ0FBQztJQUVPLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBYSxFQUFFLFVBQVUsR0FBRyxDQUFDO1FBQ2pELElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUVmLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbkMsS0FBSyxJQUFJLEdBQUcsQ0FBQztTQUNkO1FBRUQsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXByZXNlbnRzIGFuIElTTy04NjAxIGRhdGUgc3RyaW5nLlxuICogaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzg2MDEjRGF0ZXNcbiAqL1xuaW1wb3J0IHtJbnN0YW50fSBmcm9tICdAanMtam9kYS9jb3JlJztcblxuZXhwb3J0IHR5cGUgSXNvRGF0ZVN0ciA9IHN0cmluZztcblxuZXhwb3J0IGNsYXNzIERhdGVVdGlsIHtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IElzb0RhdGVEZWxpbWl0ZXIgPSAnLSc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgSXNvVGltZURlbGltaXRlciA9ICc6JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBEYXRlVGltZVNlcGFyYXRvciA9ICdUJztcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgc3RhdGljIGluc3RhbnRUb0RhdGUoaW5zdGFudDogSW5zdGFudCk6IERhdGUge1xuICAgIHJldHVybiBuZXcgRGF0ZShpbnN0YW50LnRvRXBvY2hNaWxsaSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBnaXZlbiBEYXRlIGFzIElTTyBmb3JtYXR0ZWQgbG9jYWwgZGF0ZSBzdHJpbmcuXG4gICAqXG4gICAqIFlZWVktTU0tRERcbiAgICpcbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdG9Mb2NhbERhdGVJc28oZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIERhdGVVdGlsLmRhdGVTdHJpbmcoZGF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgZ2l2ZW4gRGF0ZSBhcyBJU08gZm9ybWF0dGVkIGxvY2FsIGRhdGUtdGltZSBzdHJpbmcuXG4gICAqXG4gICAqIFlZWVktTU0tRERUSEg6bW06c3Muc3NzXG4gICAqXG4gICAqIEBwYXJhbSBkYXRlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHRvTG9jYWxEYXRlVGltZUlzbyhkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICBjb25zdCBkYXRlU3RyaW5nID0gRGF0ZVV0aWwudG9Mb2NhbERhdGVJc28oZGF0ZSk7XG4gICAgY29uc3QgdGltZVN0cmluZyA9IERhdGVVdGlsLnRpbWVTdHJpbmcoZGF0ZSk7XG4gICAgcmV0dXJuIGRhdGVTdHJpbmcgKyBEYXRlVXRpbC5EYXRlVGltZVNlcGFyYXRvciArIHRpbWVTdHJpbmc7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBEYXRlVGltZSBpcyByZXByZXNlbnRzIHRoZSBzdGFydCBvZiB0aGUgZGF5LlxuICAgKlxuICAgKiBAcGFyYW0gZGF0ZVRpbWUgRGF0ZVRpbWUgdG8gY2hlY2tcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNTdGFydE9mRGF5KGRhdGU6IERhdGUpOiBib29sZWFuIHtcbiAgICBkYXRlID0gbmV3IERhdGUoZGF0ZSk7XG4gICAgcmV0dXJuIGRhdGUuZ2V0TWlsbGlzZWNvbmRzKCkgPT09IDBcbiAgICAgICYmIGRhdGUuZ2V0U2Vjb25kcygpID09PSAwXG4gICAgICAmJiBkYXRlLmdldE1pbnV0ZXMoKSA9PT0gMFxuICAgICAgJiYgZGF0ZS5nZXRIb3VycygpID09PSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGdpdmVuIERhdGUgdG8gdGhlIHN0YXJ0IG9mIGl0cyBkYXkgYnkgc2V0dGluZyBpdHMgdGltZSB0byAwLlxuICAgKlxuICAgKiBAcGFyYW0gbG9jYWxEYXRlIERhdGUgdG8gc2V0IHRvIHN0YXJ0IG9mIGRheVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzdGFydE9mRGF5KGxvY2FsRGF0ZTogRGF0ZSk6IERhdGUge1xuICAgIGNvbnN0IHN0YXJ0T2ZEYXkgPSBuZXcgRGF0ZShsb2NhbERhdGUpO1xuICAgIHN0YXJ0T2ZEYXkuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gICAgcmV0dXJuIHN0YXJ0T2ZEYXk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHBsdXNEYXlzKGRhdGU6IERhdGUsIGRheXM6IG51bWJlcik6IERhdGUge1xuICAgIGNvbnN0IHBsdXMgPSBuZXcgRGF0ZShkYXRlKTtcbiAgICBwbHVzLnNldERhdGUocGx1cy5nZXREYXRlKCkgKyBkYXlzKTtcbiAgICByZXR1cm4gcGx1cztcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBwcml2YXRlIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgc3RhdGljIGRhdGVTdHJpbmcoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgY29uc3QgdmFsdWVzID0gW1xuICAgICAgU3RyaW5nKGRhdGUuZ2V0RnVsbFllYXIoKSksXG4gICAgICBEYXRlVXRpbC5mb3JtYXQoZGF0ZS5nZXRNb250aCgpICsgMSksXG4gICAgICBEYXRlVXRpbC5mb3JtYXQoZGF0ZS5nZXREYXRlKCkpXG4gICAgXTtcblxuICAgIHJldHVybiB2YWx1ZXMuam9pbihEYXRlVXRpbC5Jc29EYXRlRGVsaW1pdGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHRpbWVTdHJpbmcoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG5cbiAgICBjb25zdCB2YWx1ZXMgPSBbXG4gICAgICBEYXRlVXRpbC5mb3JtYXQoZGF0ZS5nZXRIb3VycygpKSxcbiAgICAgIERhdGVVdGlsLmZvcm1hdChkYXRlLmdldE1pbnV0ZXMoKSksXG4gICAgICBEYXRlVXRpbC5mb3JtYXQoZGF0ZS5nZXRTZWNvbmRzKCkpXG4gICAgXTtcblxuICAgIHJldHVybiB2YWx1ZXMuam9pbihEYXRlVXRpbC5Jc29UaW1lRGVsaW1pdGVyKSArXG4gICAgICAnLicgK1xuICAgICAgRGF0ZVV0aWwuZm9ybWF0KGRhdGUuZ2V0TWlsbGlzZWNvbmRzKCksIDMpO1xuXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBmb3JtYXQodmFsdWU6IG51bWJlciwgZGlnaXRDb3VudCA9IDIpOiBzdHJpbmcge1xuICAgIGxldCB6ZXJvcyA9ICcnO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkaWdpdENvdW50OyBpKyspIHtcbiAgICAgIHplcm9zICs9ICcwJztcbiAgICB9XG5cbiAgICByZXR1cm4gKHplcm9zICsgdmFsdWUpLnNsaWNlKC1kaWdpdENvdW50KTtcbiAgfVxuXG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Instant, LocalDate, nativeJs, ZoneId } from '@js-joda/core';
|
|
2
|
+
export class TimeUtil {
|
|
3
|
+
static { this.SECONDS_PER_DAY = 86400; }
|
|
4
|
+
/**
|
|
5
|
+
* Returns an instant for a javascript date / iso date string.
|
|
6
|
+
* @param date
|
|
7
|
+
*/
|
|
8
|
+
static instant(date) {
|
|
9
|
+
if (date instanceof Date) {
|
|
10
|
+
return Instant.from(TimeUtil.temporalAccessor(date));
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
return Instant.parse(date);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
static dateToLocalDate(date) {
|
|
17
|
+
return LocalDate.from(TimeUtil.temporalAccessor(date));
|
|
18
|
+
}
|
|
19
|
+
static temporalAccessor(date) {
|
|
20
|
+
return nativeJs(date);
|
|
21
|
+
}
|
|
22
|
+
static date(instant) {
|
|
23
|
+
const d = new Date(0); // The 0 there is the key, which sets the date to the epoch
|
|
24
|
+
d.setUTCMilliseconds(instant.toEpochMilli());
|
|
25
|
+
return d;
|
|
26
|
+
}
|
|
27
|
+
static localDateToDate(localDate, zone = ZoneId.systemDefault()) {
|
|
28
|
+
return new Date(localDate.year(), localDate.monthValue() - 1, localDate.dayOfMonth(), 0, 0, 0, 0);
|
|
29
|
+
}
|
|
30
|
+
static isFullDays(duration) {
|
|
31
|
+
const r = duration.seconds() % TimeUtil.SECONDS_PER_DAY;
|
|
32
|
+
return r === 0;
|
|
33
|
+
}
|
|
34
|
+
static isStartOfDay(date) {
|
|
35
|
+
return date.second() === 0
|
|
36
|
+
&& date.minute() === 0
|
|
37
|
+
&& date.hour() === 0
|
|
38
|
+
&& date.nano() === 0;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL3RpbWUvdGltZS11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBbUMsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTlHLE1BQU0sT0FBTyxRQUFRO2FBRUksb0JBQWUsR0FBRyxLQUFLLENBQUM7SUFFL0M7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFtQjtRQUN2QyxJQUFJLElBQUksWUFBWSxJQUFJLEVBQUU7WUFDeEIsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3REO2FBQU07WUFDTCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFVO1FBQ3RDLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQVU7UUFDdkMsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBZ0I7UUFDakMsTUFBTSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQywyREFBMkQ7UUFDbEYsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVNLE1BQU0sQ0FBQyxlQUFlLENBQUMsU0FBb0IsRUFBRSxJQUFJLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRTtRQUMvRSxPQUFPLElBQUksSUFBSSxDQUNiLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFDaEIsU0FBUyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsRUFDMUIsU0FBUyxDQUFDLFVBQVUsRUFBRSxFQUN0QixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQ1gsQ0FBQztJQUNKLENBQUM7SUFFTSxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQWtCO1FBQ3pDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBQ3hELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQixDQUFDO0lBRU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFtQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO2VBQ3JCLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO2VBQ25CLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDO2VBQ2pCLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQ25CO0lBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RHVyYXRpb24sIEluc3RhbnQsIExvY2FsRGF0ZSwgbmF0aXZlSnMsIFRlbXBvcmFsQWNjZXNzb3IsIFpvbmVkRGF0ZVRpbWUsIFpvbmVJZH0gZnJvbSAnQGpzLWpvZGEvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBUaW1lVXRpbCB7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBTRUNPTkRTX1BFUl9EQVkgPSA4NjQwMDtcblxuICAvKipcbiAgICogUmV0dXJucyBhbiBpbnN0YW50IGZvciBhIGphdmFzY3JpcHQgZGF0ZSAvIGlzbyBkYXRlIHN0cmluZy5cbiAgICogQHBhcmFtIGRhdGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaW5zdGFudChkYXRlOiBEYXRlIHwgc3RyaW5nKTogSW5zdGFudCB7XG4gICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICByZXR1cm4gSW5zdGFudC5mcm9tKFRpbWVVdGlsLnRlbXBvcmFsQWNjZXNzb3IoZGF0ZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gSW5zdGFudC5wYXJzZShkYXRlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGRhdGVUb0xvY2FsRGF0ZShkYXRlOiBEYXRlKTogTG9jYWxEYXRlIHtcbiAgICByZXR1cm4gTG9jYWxEYXRlLmZyb20oVGltZVV0aWwudGVtcG9yYWxBY2Nlc3NvcihkYXRlKSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHRlbXBvcmFsQWNjZXNzb3IoZGF0ZTogRGF0ZSk6IFRlbXBvcmFsQWNjZXNzb3Ige1xuICAgIHJldHVybiBuYXRpdmVKcyhkYXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZGF0ZShpbnN0YW50OiBJbnN0YW50KTogRGF0ZSB7XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKDApOyAvLyBUaGUgMCB0aGVyZSBpcyB0aGUga2V5LCB3aGljaCBzZXRzIHRoZSBkYXRlIHRvIHRoZSBlcG9jaFxuICAgIGQuc2V0VVRDTWlsbGlzZWNvbmRzKGluc3RhbnQudG9FcG9jaE1pbGxpKCkpO1xuICAgIHJldHVybiBkO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBsb2NhbERhdGVUb0RhdGUobG9jYWxEYXRlOiBMb2NhbERhdGUsIHpvbmUgPSBab25lSWQuc3lzdGVtRGVmYXVsdCgpKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKFxuICAgICAgbG9jYWxEYXRlLnllYXIoKSxcbiAgICAgIGxvY2FsRGF0ZS5tb250aFZhbHVlKCkgLSAxLFxuICAgICAgbG9jYWxEYXRlLmRheU9mTW9udGgoKSxcbiAgICAgIDAsIDAsIDAsIDBcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc0Z1bGxEYXlzKGR1cmF0aW9uOiBEdXJhdGlvbik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHIgPSBkdXJhdGlvbi5zZWNvbmRzKCkgJSBUaW1lVXRpbC5TRUNPTkRTX1BFUl9EQVk7XG4gICAgcmV0dXJuIHIgPT09IDA7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzU3RhcnRPZkRheShkYXRlOiBab25lZERhdGVUaW1lKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGRhdGUuc2Vjb25kKCkgPT09IDBcbiAgICAgICYmIGRhdGUubWludXRlKCkgPT09IDBcbiAgICAgICYmIGRhdGUuaG91cigpID09PSAwXG4gICAgICAmJiBkYXRlLm5hbm8oKSA9PT0gMFxuICAgICAgO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/router";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
/**
|
|
6
|
+
* Provides advanced router navigation support for Angular.
|
|
7
|
+
*
|
|
8
|
+
* Provides the ability to build external & absolute urls which
|
|
9
|
+
* can be used in iframes or external navigation, such as opening
|
|
10
|
+
* new tabs.
|
|
11
|
+
*
|
|
12
|
+
*/
|
|
13
|
+
export class ElderRouterService {
|
|
14
|
+
/***************************************************************************
|
|
15
|
+
* *
|
|
16
|
+
* Constructor *
|
|
17
|
+
* *
|
|
18
|
+
**************************************************************************/
|
|
19
|
+
constructor(router, location) {
|
|
20
|
+
this.router = router;
|
|
21
|
+
this.location = location;
|
|
22
|
+
}
|
|
23
|
+
/***************************************************************************
|
|
24
|
+
* *
|
|
25
|
+
* Public API *
|
|
26
|
+
* *
|
|
27
|
+
**************************************************************************/
|
|
28
|
+
/**
|
|
29
|
+
* Open the given url in a new window / tab.
|
|
30
|
+
* @param urlTree
|
|
31
|
+
* @param target
|
|
32
|
+
*/
|
|
33
|
+
openUrl(urlTree, target) {
|
|
34
|
+
const absoluteUrl = this.serializeUrlAbsolute(urlTree);
|
|
35
|
+
window.open(absoluteUrl, target);
|
|
36
|
+
}
|
|
37
|
+
serializeUrlAbsolute(urlTree) {
|
|
38
|
+
const externalUrl = this.serializeUrlExternal(urlTree);
|
|
39
|
+
return window.location.origin + externalUrl;
|
|
40
|
+
}
|
|
41
|
+
serializeUrlExternal(urlTree) {
|
|
42
|
+
const url = this.router.serializeUrl(urlTree);
|
|
43
|
+
return this.location.prepareExternalUrl(url);
|
|
44
|
+
}
|
|
45
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: ElderRouterService, deps: [{ token: i1.Router }, { token: i2.Location }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
46
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: ElderRouterService, providedIn: 'root' }); }
|
|
47
|
+
}
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: ElderRouterService, decorators: [{
|
|
49
|
+
type: Injectable,
|
|
50
|
+
args: [{
|
|
51
|
+
providedIn: 'root'
|
|
52
|
+
}]
|
|
53
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.Location }]; } });
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItcm91dGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vdXJsL2VsZGVyLXJvdXRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFJM0M7Ozs7Ozs7R0FPRztBQUlILE1BQU0sT0FBTyxrQkFBa0I7SUFFN0I7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ1UsTUFBYyxFQUNkLFFBQWtCO1FBRGxCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQ3hCLENBQUM7SUFFTDs7OztnRkFJNEU7SUFFNUU7Ozs7T0FJRztJQUNJLE9BQU8sQ0FBQyxPQUFnQixFQUFFLE1BQWU7UUFDOUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxPQUFnQjtRQUMxQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkQsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUM7SUFDOUMsQ0FBQztJQUVNLG9CQUFvQixDQUFDLE9BQWdCO1FBQzFDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQyxDQUFDOzhHQXJDVSxrQkFBa0I7a0hBQWxCLGtCQUFrQixjQUZqQixNQUFNOzsyRkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXIsIFVybFRyZWV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0xvY2F0aW9ufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG4vKipcbiAqIFByb3ZpZGVzIGFkdmFuY2VkIHJvdXRlciBuYXZpZ2F0aW9uIHN1cHBvcnQgZm9yIEFuZ3VsYXIuXG4gKlxuICogUHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gYnVpbGQgZXh0ZXJuYWwgJiBhYnNvbHV0ZSB1cmxzIHdoaWNoXG4gKiBjYW4gYmUgdXNlZCBpbiBpZnJhbWVzIG9yIGV4dGVybmFsIG5hdmlnYXRpb24sIHN1Y2ggYXMgb3BlbmluZ1xuICogbmV3IHRhYnMuXG4gKlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBFbGRlclJvdXRlclNlcnZpY2Uge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICkgeyB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIE9wZW4gdGhlIGdpdmVuIHVybCBpbiBhIG5ldyB3aW5kb3cgLyB0YWIuXG4gICAqIEBwYXJhbSB1cmxUcmVlXG4gICAqIEBwYXJhbSB0YXJnZXRcbiAgICovXG4gIHB1YmxpYyBvcGVuVXJsKHVybFRyZWU6IFVybFRyZWUsIHRhcmdldD86IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGFic29sdXRlVXJsID0gdGhpcy5zZXJpYWxpemVVcmxBYnNvbHV0ZSh1cmxUcmVlKTtcbiAgICB3aW5kb3cub3BlbihhYnNvbHV0ZVVybCwgdGFyZ2V0KTtcbiAgfVxuXG4gIHB1YmxpYyBzZXJpYWxpemVVcmxBYnNvbHV0ZSh1cmxUcmVlOiBVcmxUcmVlKTogc3RyaW5nIHtcbiAgICBjb25zdCBleHRlcm5hbFVybCA9IHRoaXMuc2VyaWFsaXplVXJsRXh0ZXJuYWwodXJsVHJlZSk7XG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyBleHRlcm5hbFVybDtcbiAgfVxuXG4gIHB1YmxpYyBzZXJpYWxpemVVcmxFeHRlcm5hbCh1cmxUcmVlOiBVcmxUcmVlKTogc3RyaW5nIHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLnJvdXRlci5zZXJpYWxpemVVcmwodXJsVHJlZSk7XG4gICAgcmV0dXJuIHRoaXMubG9jYXRpb24ucHJlcGFyZUV4dGVybmFsVXJsKHVybCk7XG4gIH1cblxufVxuIl19
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
import { UrlQueryParams } from './url-query-params';
|
|
4
|
+
import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/router";
|
|
7
|
+
/**
|
|
8
|
+
* Manages bidirectional binding of
|
|
9
|
+
* query params within the current URL fragment.
|
|
10
|
+
*/
|
|
11
|
+
export class ElderUrlFragmentParamsService {
|
|
12
|
+
/***************************************************************************
|
|
13
|
+
* *
|
|
14
|
+
* Constructor *
|
|
15
|
+
* *
|
|
16
|
+
**************************************************************************/
|
|
17
|
+
constructor(router, activatedRoute) {
|
|
18
|
+
this.router = router;
|
|
19
|
+
this.activatedRoute = activatedRoute;
|
|
20
|
+
/***************************************************************************
|
|
21
|
+
* *
|
|
22
|
+
* Fields *
|
|
23
|
+
* *
|
|
24
|
+
**************************************************************************/
|
|
25
|
+
this._log = LoggerFactory.getLogger(this.constructor.name);
|
|
26
|
+
this._queryParams$ = new BehaviorSubject(UrlQueryParams.empty());
|
|
27
|
+
this.activatedRoute
|
|
28
|
+
.fragment
|
|
29
|
+
.subscribe(fragment => {
|
|
30
|
+
const params = this.parseQueryParams(fragment);
|
|
31
|
+
this.updateModel(params);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
/***************************************************************************
|
|
35
|
+
* *
|
|
36
|
+
* Properties *
|
|
37
|
+
* *
|
|
38
|
+
**************************************************************************/
|
|
39
|
+
get params$() {
|
|
40
|
+
return this._queryParams$.asObservable();
|
|
41
|
+
}
|
|
42
|
+
get params() {
|
|
43
|
+
return new UrlQueryParams(this._queryParams$.getValue());
|
|
44
|
+
}
|
|
45
|
+
/***************************************************************************
|
|
46
|
+
* *
|
|
47
|
+
* Public API *
|
|
48
|
+
* *
|
|
49
|
+
**************************************************************************/
|
|
50
|
+
/**
|
|
51
|
+
* Replaces all current params with the given ones.
|
|
52
|
+
*/
|
|
53
|
+
setParams(params) {
|
|
54
|
+
// Create new instance to trigger change detection on subscribers.
|
|
55
|
+
const updated = new UrlQueryParams(params);
|
|
56
|
+
this.setCurrentParams(updated);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Updates the current params with the given ones, effectively
|
|
60
|
+
* resulting in a merge.
|
|
61
|
+
*/
|
|
62
|
+
updateParams(params) {
|
|
63
|
+
// Create new instance to trigger change detection on subscribers.
|
|
64
|
+
const updated = this.params;
|
|
65
|
+
updated.setAll(params.getAll());
|
|
66
|
+
this.setCurrentParams(updated);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Clears all current params.
|
|
70
|
+
*/
|
|
71
|
+
clearParams() {
|
|
72
|
+
this.setCurrentParams(UrlQueryParams.empty());
|
|
73
|
+
}
|
|
74
|
+
/***************************************************************************
|
|
75
|
+
* *
|
|
76
|
+
* Private Methods *
|
|
77
|
+
* *
|
|
78
|
+
**************************************************************************/
|
|
79
|
+
setCurrentParams(params) {
|
|
80
|
+
this.updateModel(params);
|
|
81
|
+
this.updateFragment(params);
|
|
82
|
+
}
|
|
83
|
+
updateModel(params) {
|
|
84
|
+
this._queryParams$.next(params);
|
|
85
|
+
}
|
|
86
|
+
updateFragment(queryParams) {
|
|
87
|
+
const queryParamsStr = queryParams.toString();
|
|
88
|
+
// Since both URLSearchParams.toString and angular router.navigate use encodeURIComponent
|
|
89
|
+
// we need to decode the component to avoid duplicate encoding.
|
|
90
|
+
const fragmentStr = decodeURIComponent(queryParamsStr);
|
|
91
|
+
this.replaceUrlFragment(fragmentStr);
|
|
92
|
+
}
|
|
93
|
+
replaceUrlFragment(fragment) {
|
|
94
|
+
this._log.trace('Replacing URL fragment with: ' + fragment);
|
|
95
|
+
this.router.navigate([], {
|
|
96
|
+
fragment: decodeURIComponent(fragment),
|
|
97
|
+
replaceUrl: true,
|
|
98
|
+
queryParamsHandling: 'merge'
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
parseQueryParams(queryParamsStr) {
|
|
102
|
+
// avoids invalid search params
|
|
103
|
+
if (queryParamsStr) {
|
|
104
|
+
return new UrlQueryParams(queryParamsStr);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
return new UrlQueryParams();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: ElderUrlFragmentParamsService, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
111
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: ElderUrlFragmentParamsService, providedIn: 'root' }); }
|
|
112
|
+
}
|
|
113
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: ElderUrlFragmentParamsService, decorators: [{
|
|
114
|
+
type: Injectable,
|
|
115
|
+
args: [{
|
|
116
|
+
providedIn: 'root'
|
|
117
|
+
}]
|
|
118
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }]; } });
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItdXJsLWZyYWdtZW50LXBhcmFtcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL3VybC9lbGRlci11cmwtZnJhZ21lbnQtcGFyYW1zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsZUFBZSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBRWpELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7OztBQUduRDs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sNkJBQTZCO0lBWXhDOzs7O2dGQUk0RTtJQUU1RSxZQUNVLE1BQWMsRUFDZCxjQUE4QjtRQUQ5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBbEJ4Qzs7OztvRkFJNEU7UUFFM0QsU0FBSSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0RCxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFpQixjQUFjLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQVkzRixJQUFJLENBQUMsY0FBYzthQUNoQixRQUFRO2FBQ1IsU0FBUyxDQUNSLFFBQVEsQ0FBQyxFQUFFO1lBQ1QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUNGLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFLElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUU7O09BRUc7SUFDSSxTQUFTLENBQUMsTUFBc0I7UUFDckMsa0VBQWtFO1FBQ2xFLE1BQU0sT0FBTyxHQUFHLElBQUksY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksWUFBWSxDQUFDLE1BQXNCO1FBQ3hDLGtFQUFrRTtRQUNsRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRDs7OztnRkFJNEU7SUFFcEUsZ0JBQWdCLENBQUMsTUFBc0I7UUFDN0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTyxXQUFXLENBQUMsTUFBc0I7UUFDeEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLGNBQWMsQ0FBQyxXQUEyQjtRQUNoRCxNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFOUMseUZBQXlGO1FBQ3pGLCtEQUErRDtRQUMvRCxNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFFBQWdCO1FBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLCtCQUErQixHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUN2QixRQUFRLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxDQUFDO1lBQ3RDLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLG1CQUFtQixFQUFFLE9BQU87U0FDN0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUFDLGNBQXNCO1FBRTdDLCtCQUErQjtRQUMvQixJQUFJLGNBQWMsRUFBRTtZQUNsQixPQUFPLElBQUksY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQzNDO2FBQU07WUFDTCxPQUFPLElBQUksY0FBYyxFQUFFLENBQUM7U0FDN0I7SUFFSCxDQUFDOzhHQXpIVSw2QkFBNkI7a0hBQTdCLDZCQUE2QixjQUY1QixNQUFNOzsyRkFFUCw2QkFBNkI7a0JBSHpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7VXJsUXVlcnlQYXJhbXN9IGZyb20gJy4vdXJsLXF1ZXJ5LXBhcmFtcyc7XG5pbXBvcnQge0xvZ2dlckZhY3Rvcnl9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJztcblxuXG4vKipcbiAqIE1hbmFnZXMgYmlkaXJlY3Rpb25hbCBiaW5kaW5nIG9mXG4gKiBxdWVyeSBwYXJhbXMgd2l0aGluIHRoZSBjdXJyZW50IFVSTCBmcmFnbWVudC5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJVcmxGcmFnbWVudFBhcmFtc1NlcnZpY2Uge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvZyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcXVlcnlQYXJhbXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxVcmxRdWVyeVBhcmFtcz4oVXJsUXVlcnlQYXJhbXMuZW1wdHkoKSk7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICApIHtcbiAgICB0aGlzLmFjdGl2YXRlZFJvdXRlXG4gICAgICAuZnJhZ21lbnRcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIGZyYWdtZW50ID0+IHtcbiAgICAgICAgICBjb25zdCBwYXJhbXMgPSB0aGlzLnBhcnNlUXVlcnlQYXJhbXMoZnJhZ21lbnQpO1xuICAgICAgICAgIHRoaXMudXBkYXRlTW9kZWwocGFyYW1zKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgcGFyYW1zJCgpOiBPYnNlcnZhYmxlPFVybFF1ZXJ5UGFyYW1zPiB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXJ5UGFyYW1zJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGFyYW1zKCk6IFVybFF1ZXJ5UGFyYW1zIHtcbiAgICByZXR1cm4gbmV3IFVybFF1ZXJ5UGFyYW1zKHRoaXMuX3F1ZXJ5UGFyYW1zJC5nZXRWYWx1ZSgpKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBSZXBsYWNlcyBhbGwgY3VycmVudCBwYXJhbXMgd2l0aCB0aGUgZ2l2ZW4gb25lcy5cbiAgICovXG4gIHB1YmxpYyBzZXRQYXJhbXMocGFyYW1zOiBVcmxRdWVyeVBhcmFtcyk6IHZvaWQge1xuICAgIC8vIENyZWF0ZSBuZXcgaW5zdGFuY2UgdG8gdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uIG9uIHN1YnNjcmliZXJzLlxuICAgIGNvbnN0IHVwZGF0ZWQgPSBuZXcgVXJsUXVlcnlQYXJhbXMocGFyYW1zKTtcbiAgICB0aGlzLnNldEN1cnJlbnRQYXJhbXModXBkYXRlZCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyB0aGUgY3VycmVudCBwYXJhbXMgd2l0aCB0aGUgZ2l2ZW4gb25lcywgZWZmZWN0aXZlbHlcbiAgICogcmVzdWx0aW5nIGluIGEgbWVyZ2UuXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlUGFyYW1zKHBhcmFtczogVXJsUXVlcnlQYXJhbXMpOiB2b2lkIHtcbiAgICAvLyBDcmVhdGUgbmV3IGluc3RhbmNlIHRvIHRyaWdnZXIgY2hhbmdlIGRldGVjdGlvbiBvbiBzdWJzY3JpYmVycy5cbiAgICBjb25zdCB1cGRhdGVkID0gdGhpcy5wYXJhbXM7XG4gICAgdXBkYXRlZC5zZXRBbGwocGFyYW1zLmdldEFsbCgpKTtcbiAgICB0aGlzLnNldEN1cnJlbnRQYXJhbXModXBkYXRlZCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJzIGFsbCBjdXJyZW50IHBhcmFtcy5cbiAgICovXG4gIHB1YmxpYyBjbGVhclBhcmFtcygpOiB2b2lkIHtcbiAgICB0aGlzLnNldEN1cnJlbnRQYXJhbXMoVXJsUXVlcnlQYXJhbXMuZW1wdHkoKSk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBNZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHNldEN1cnJlbnRQYXJhbXMocGFyYW1zOiBVcmxRdWVyeVBhcmFtcyk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlTW9kZWwocGFyYW1zKTtcbiAgICB0aGlzLnVwZGF0ZUZyYWdtZW50KHBhcmFtcyk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZU1vZGVsKHBhcmFtczogVXJsUXVlcnlQYXJhbXMpOiB2b2lkIHtcbiAgICB0aGlzLl9xdWVyeVBhcmFtcyQubmV4dChwYXJhbXMpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVGcmFnbWVudChxdWVyeVBhcmFtczogVXJsUXVlcnlQYXJhbXMpOiB2b2lkIHtcbiAgICBjb25zdCBxdWVyeVBhcmFtc1N0ciA9IHF1ZXJ5UGFyYW1zLnRvU3RyaW5nKCk7XG5cbiAgICAvLyBTaW5jZSBib3RoIFVSTFNlYXJjaFBhcmFtcy50b1N0cmluZyBhbmQgYW5ndWxhciByb3V0ZXIubmF2aWdhdGUgdXNlIGVuY29kZVVSSUNvbXBvbmVudFxuICAgIC8vIHdlIG5lZWQgdG8gZGVjb2RlIHRoZSBjb21wb25lbnQgdG8gYXZvaWQgZHVwbGljYXRlIGVuY29kaW5nLlxuICAgIGNvbnN0IGZyYWdtZW50U3RyID0gZGVjb2RlVVJJQ29tcG9uZW50KHF1ZXJ5UGFyYW1zU3RyKTtcbiAgICB0aGlzLnJlcGxhY2VVcmxGcmFnbWVudChmcmFnbWVudFN0cik7XG4gIH1cblxuICBwcml2YXRlIHJlcGxhY2VVcmxGcmFnbWVudChmcmFnbWVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fbG9nLnRyYWNlKCdSZXBsYWNpbmcgVVJMIGZyYWdtZW50IHdpdGg6ICcgKyBmcmFnbWVudCk7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHtcbiAgICAgIGZyYWdtZW50OiBkZWNvZGVVUklDb21wb25lbnQoZnJhZ21lbnQpLFxuICAgICAgcmVwbGFjZVVybDogdHJ1ZSwgLy8gaWYgdHJ1ZSwgd29uJ3QgYWRkIGEgbmV3IGJyb3dzZXIgaGlzdG9yeSBlbnRyeVxuICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJ1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVF1ZXJ5UGFyYW1zKHF1ZXJ5UGFyYW1zU3RyOiBzdHJpbmcpOiBVcmxRdWVyeVBhcmFtcyB7XG5cbiAgICAvLyBhdm9pZHMgaW52YWxpZCBzZWFyY2ggcGFyYW1zXG4gICAgaWYgKHF1ZXJ5UGFyYW1zU3RyKSB7XG4gICAgICByZXR1cm4gbmV3IFVybFF1ZXJ5UGFyYW1zKHF1ZXJ5UGFyYW1zU3RyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG5ldyBVcmxRdWVyeVBhcmFtcygpO1xuICAgIH1cblxuICB9XG5cblxufVxuIl19
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility class for handling query params.
|
|
3
|
+
*/
|
|
4
|
+
export class UrlQueryParams {
|
|
5
|
+
/***************************************************************************
|
|
6
|
+
* *
|
|
7
|
+
* Static *
|
|
8
|
+
* *
|
|
9
|
+
**************************************************************************/
|
|
10
|
+
/**
|
|
11
|
+
* Creates a new empty UrlQueryParams object.
|
|
12
|
+
*/
|
|
13
|
+
static empty() {
|
|
14
|
+
return new UrlQueryParams();
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Parses the given string into a UrlQueryParams object.
|
|
18
|
+
*/
|
|
19
|
+
static parse(queryParamsStr) {
|
|
20
|
+
return new UrlQueryParams(queryParamsStr);
|
|
21
|
+
}
|
|
22
|
+
/***************************************************************************
|
|
23
|
+
* *
|
|
24
|
+
* Constructor *
|
|
25
|
+
* *
|
|
26
|
+
**************************************************************************/
|
|
27
|
+
constructor(init) {
|
|
28
|
+
if (init instanceof UrlQueryParams) {
|
|
29
|
+
this._searchParams = new URLSearchParams(init.toString());
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
this._searchParams = new URLSearchParams(init);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/***************************************************************************
|
|
36
|
+
* *
|
|
37
|
+
* Public API *
|
|
38
|
+
* *
|
|
39
|
+
**************************************************************************/
|
|
40
|
+
/**
|
|
41
|
+
* Appends a new query parameter with the given key / value,
|
|
42
|
+
* regardless if the same parameter is already present.
|
|
43
|
+
*/
|
|
44
|
+
append(key, value) {
|
|
45
|
+
this._searchParams.append(key, value);
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Appends each of the given parameters as new query parameter,
|
|
50
|
+
* regardless if the same parameter is already present.
|
|
51
|
+
*/
|
|
52
|
+
appendAll(params) {
|
|
53
|
+
params.forEach((value, key) => this.append(key, value));
|
|
54
|
+
return this;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Removes the given query parameter if present.
|
|
58
|
+
*/
|
|
59
|
+
remove(key) {
|
|
60
|
+
this._searchParams.delete(key);
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Removes all given query parameters if present.
|
|
65
|
+
*/
|
|
66
|
+
removeAll(keys) {
|
|
67
|
+
keys.forEach(key => this.remove(key));
|
|
68
|
+
return this;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Updates the given query parameter with the given new value.
|
|
72
|
+
* If multiple with the same key exists, they will be removed.
|
|
73
|
+
* If the key does not exist, the query param will be added.
|
|
74
|
+
*/
|
|
75
|
+
set(key, value) {
|
|
76
|
+
this._searchParams.set(key, value);
|
|
77
|
+
return this;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Updates each parameter with the given value.
|
|
81
|
+
* Each entry will be added using the set(key, value) logic.
|
|
82
|
+
*/
|
|
83
|
+
setAll(params) {
|
|
84
|
+
params.forEach((value, key) => this.set(key, value));
|
|
85
|
+
return this;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Returns true if a query parameter with the given key exists.
|
|
89
|
+
*/
|
|
90
|
+
has(key) {
|
|
91
|
+
return this._searchParams.has(key);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Returns the first value of the associated query param.
|
|
95
|
+
*/
|
|
96
|
+
get(key) {
|
|
97
|
+
return this._searchParams.get(key);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Returns all values of the associated query params.
|
|
101
|
+
*/
|
|
102
|
+
getAllOf(key) {
|
|
103
|
+
return this._searchParams.getAll(key);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Returns a map with all key-value pairs.
|
|
107
|
+
*/
|
|
108
|
+
getAll() {
|
|
109
|
+
const paramsMap = new Map();
|
|
110
|
+
this._searchParams.forEach((value, key) => paramsMap.set(key, value));
|
|
111
|
+
return paramsMap;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Returns true only if there are any query parameters present.
|
|
115
|
+
*/
|
|
116
|
+
hasParams() {
|
|
117
|
+
return !this.isEmpty();
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Return true only if there are no query parameters present.
|
|
121
|
+
*/
|
|
122
|
+
isEmpty() {
|
|
123
|
+
return this.getAll().size === 0;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Returns a string containing all query parameters in URL conform fashion.
|
|
127
|
+
* (Returns an empty string if no query parameters have been set).
|
|
128
|
+
*/
|
|
129
|
+
toString() {
|
|
130
|
+
return this._searchParams.toString();
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLXF1ZXJ5LXBhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi91cmwvdXJsLXF1ZXJ5LXBhcmFtcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBYXZCOzs7O2dGQUk0RTtJQUU1RTs7T0FFRztJQUNJLE1BQU0sQ0FBQyxLQUFLO1FBQ2YsT0FBTyxJQUFJLGNBQWMsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBc0I7UUFDdEMsT0FBTyxJQUFJLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFLFlBQW1CLElBQXNGO1FBRXJHLElBQUksSUFBSSxZQUFZLGNBQWMsRUFBRTtZQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQzdEO2FBQU07WUFDSCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2xEO0lBQ0wsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RTs7O09BR0c7SUFDSSxNQUFNLENBQUMsR0FBVyxFQUFFLEtBQWE7UUFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxTQUFTLENBQUMsTUFBMkI7UUFDeEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDeEQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEdBQVc7UUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUyxDQUFDLElBQWM7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEdBQUcsQ0FBQyxHQUFXLEVBQUUsS0FBYTtRQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxNQUEyQjtRQUNyQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNyRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxHQUFHLENBQUMsR0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNJLEdBQUcsQ0FBQyxHQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUSxDQUFDLEdBQVc7UUFDdkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNO1FBQ1QsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7UUFDNUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNJLFNBQVM7UUFDWixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDVixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxRQUFRO1FBQ1gsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3pDLENBQUM7Q0FRSiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVXRpbGl0eSBjbGFzcyBmb3IgaGFuZGxpbmcgcXVlcnkgcGFyYW1zLlxuICovXG5leHBvcnQgY2xhc3MgVXJsUXVlcnlQYXJhbXMge1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIC8qKlxuICAgICAqIEludGVybmFsIGRhdGEgY29udGV4dCBob2xkaW5nIGFsbCBxdWVyeSBwYXJhbXMuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfc2VhcmNoUGFyYW1zOiBVUkxTZWFyY2hQYXJhbXM7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqIFN0YXRpYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBlbXB0eSBVcmxRdWVyeVBhcmFtcyBvYmplY3QuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBlbXB0eSgpOiBVcmxRdWVyeVBhcmFtcyB7XG4gICAgICAgIHJldHVybiBuZXcgVXJsUXVlcnlQYXJhbXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQYXJzZXMgdGhlIGdpdmVuIHN0cmluZyBpbnRvIGEgVXJsUXVlcnlQYXJhbXMgb2JqZWN0LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdGF0aWMgcGFyc2UocXVlcnlQYXJhbXNTdHI6IHN0cmluZyk6IFVybFF1ZXJ5UGFyYW1zIHtcbiAgICAgICAgcmV0dXJuIG5ldyBVcmxRdWVyeVBhcmFtcyhxdWVyeVBhcmFtc1N0cik7XG4gICAgfVxuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihpbml0Pzogc3RyaW5nW11bXSB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gfCBzdHJpbmcgfCBVUkxTZWFyY2hQYXJhbXMgfCBVcmxRdWVyeVBhcmFtcykge1xuXG4gICAgICAgIGlmIChpbml0IGluc3RhbmNlb2YgVXJsUXVlcnlQYXJhbXMpIHtcbiAgICAgICAgICAgIHRoaXMuX3NlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoaW5pdC50b1N0cmluZygpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoaW5pdCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgLyoqXG4gICAgICogQXBwZW5kcyBhIG5ldyBxdWVyeSBwYXJhbWV0ZXIgd2l0aCB0aGUgZ2l2ZW4ga2V5IC8gdmFsdWUsXG4gICAgICogcmVnYXJkbGVzcyBpZiB0aGUgc2FtZSBwYXJhbWV0ZXIgaXMgYWxyZWFkeSBwcmVzZW50LlxuICAgICAqL1xuICAgIHB1YmxpYyBhcHBlbmQoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fc2VhcmNoUGFyYW1zLmFwcGVuZChrZXksIHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXBwZW5kcyBlYWNoIG9mIHRoZSBnaXZlbiBwYXJhbWV0ZXJzIGFzIG5ldyBxdWVyeSBwYXJhbWV0ZXIsXG4gICAgICogcmVnYXJkbGVzcyBpZiB0aGUgc2FtZSBwYXJhbWV0ZXIgaXMgYWxyZWFkeSBwcmVzZW50LlxuICAgICAqL1xuICAgIHB1YmxpYyBhcHBlbmRBbGwocGFyYW1zOiBNYXA8c3RyaW5nLCBzdHJpbmc+KTogdGhpcyB7XG4gICAgICAgIHBhcmFtcy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB0aGlzLmFwcGVuZChrZXksIHZhbHVlKSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgdGhlIGdpdmVuIHF1ZXJ5IHBhcmFtZXRlciBpZiBwcmVzZW50LlxuICAgICAqL1xuICAgIHB1YmxpYyByZW1vdmUoa2V5OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fc2VhcmNoUGFyYW1zLmRlbGV0ZShrZXkpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGFsbCBnaXZlbiBxdWVyeSBwYXJhbWV0ZXJzIGlmIHByZXNlbnQuXG4gICAgICovXG4gICAgcHVibGljIHJlbW92ZUFsbChrZXlzOiBzdHJpbmdbXSk6IHRoaXMge1xuICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHRoaXMucmVtb3ZlKGtleSkpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIHRoZSBnaXZlbiBxdWVyeSBwYXJhbWV0ZXIgd2l0aCB0aGUgZ2l2ZW4gbmV3IHZhbHVlLlxuICAgICAqIElmIG11bHRpcGxlIHdpdGggdGhlIHNhbWUga2V5IGV4aXN0cywgdGhleSB3aWxsIGJlIHJlbW92ZWQuXG4gICAgICogSWYgdGhlIGtleSBkb2VzIG5vdCBleGlzdCwgdGhlIHF1ZXJ5IHBhcmFtIHdpbGwgYmUgYWRkZWQuXG4gICAgICovXG4gICAgcHVibGljIHNldChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9zZWFyY2hQYXJhbXMuc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGVzIGVhY2ggcGFyYW1ldGVyIHdpdGggdGhlIGdpdmVuIHZhbHVlLlxuICAgICAqIEVhY2ggZW50cnkgd2lsbCBiZSBhZGRlZCB1c2luZyB0aGUgc2V0KGtleSwgdmFsdWUpIGxvZ2ljLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRBbGwocGFyYW1zOiBNYXA8c3RyaW5nLCBzdHJpbmc+KTogdGhpcyB7XG4gICAgICAgIHBhcmFtcy5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB0aGlzLnNldChrZXksIHZhbHVlKSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiBhIHF1ZXJ5IHBhcmFtZXRlciB3aXRoIHRoZSBnaXZlbiBrZXkgZXhpc3RzLlxuICAgICAqL1xuICAgIHB1YmxpYyBoYXMoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlYXJjaFBhcmFtcy5oYXMoa2V5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBmaXJzdCB2YWx1ZSBvZiB0aGUgYXNzb2NpYXRlZCBxdWVyeSBwYXJhbS5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlYXJjaFBhcmFtcy5nZXQoa2V5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFsbCB2YWx1ZXMgb2YgdGhlIGFzc29jaWF0ZWQgcXVlcnkgcGFyYW1zLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRBbGxPZihrZXk6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlYXJjaFBhcmFtcy5nZXRBbGwoa2V5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgbWFwIHdpdGggYWxsIGtleS12YWx1ZSBwYWlycy5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0QWxsKCk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgICAgICBjb25zdCBwYXJhbXNNYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICAgICAgICB0aGlzLl9zZWFyY2hQYXJhbXMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4gcGFyYW1zTWFwLnNldChrZXksIHZhbHVlKSk7XG4gICAgICAgIHJldHVybiBwYXJhbXNNYXA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlIG9ubHkgaWYgdGhlcmUgYXJlIGFueSBxdWVyeSBwYXJhbWV0ZXJzIHByZXNlbnQuXG4gICAgICovXG4gICAgcHVibGljIGhhc1BhcmFtcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzRW1wdHkoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm4gdHJ1ZSBvbmx5IGlmIHRoZXJlIGFyZSBubyBxdWVyeSBwYXJhbWV0ZXJzIHByZXNlbnQuXG4gICAgICovXG4gICAgcHVibGljIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFsbCgpLnNpemUgPT09IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIHN0cmluZyBjb250YWluaW5nIGFsbCBxdWVyeSBwYXJhbWV0ZXJzIGluIFVSTCBjb25mb3JtIGZhc2hpb24uXG4gICAgICogKFJldHVybnMgYW4gZW1wdHkgc3RyaW5nIGlmIG5vIHF1ZXJ5IHBhcmFtZXRlcnMgaGF2ZSBiZWVuIHNldCkuXG4gICAgICovXG4gICAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWFyY2hQYXJhbXMudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAqIFByaXZhdGUgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG59XG4iXX0=
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
2
|
+
// @dynamic
|
|
3
|
+
export class CollectionUtil {
|
|
4
|
+
static { this.logger = LoggerFactory.getLogger('CollectionUtil'); }
|
|
5
|
+
static flatten(groups) {
|
|
6
|
+
return groups
|
|
7
|
+
.reduce((acc, val) => acc.concat(val), []);
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Moves the given item down in the given array - if not already at the bottom
|
|
11
|
+
* @param items
|
|
12
|
+
* @param toMove
|
|
13
|
+
*/
|
|
14
|
+
static moveDown(items, toMove) {
|
|
15
|
+
if (items.length < 2) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
const position = items.indexOf(toMove);
|
|
19
|
+
if (position >= 0) {
|
|
20
|
+
const targetIndex = position + 1;
|
|
21
|
+
const bottom = items.length - 1;
|
|
22
|
+
if (!(bottom < targetIndex)) {
|
|
23
|
+
items[position] = items[targetIndex];
|
|
24
|
+
items[targetIndex] = toMove;
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
this.logger.debug('Can not move item down since target index ' + targetIndex + ' is already at the bottom: ' + bottom);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Moves the given item up in the given array - if not already at the top
|
|
35
|
+
* @param items
|
|
36
|
+
* @param toMove
|
|
37
|
+
*/
|
|
38
|
+
static moveUp(items, toMove) {
|
|
39
|
+
if (items.length < 2) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
const position = items.indexOf(toMove);
|
|
43
|
+
if (position >= 0) {
|
|
44
|
+
const targetIndex = position - 1;
|
|
45
|
+
if (targetIndex >= 0) {
|
|
46
|
+
items[position] = items[targetIndex];
|
|
47
|
+
items[targetIndex] = toMove;
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Groups the given items by the given field into a Map
|
|
55
|
+
*/
|
|
56
|
+
// @dynamic
|
|
57
|
+
static groupByField(items, field) {
|
|
58
|
+
return CollectionUtil.groupByKey(items, it => it[field]);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Groups the given items, using the group key getter, into a Map
|
|
62
|
+
* @dynamic
|
|
63
|
+
*/
|
|
64
|
+
// @dynamic
|
|
65
|
+
static groupByKey(items, keyGetter) {
|
|
66
|
+
return items.reduce((map, p) => {
|
|
67
|
+
let subset;
|
|
68
|
+
const key = keyGetter(p);
|
|
69
|
+
if (map.has(key)) {
|
|
70
|
+
subset = map.get(key);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
subset = [];
|
|
74
|
+
map.set(key, subset);
|
|
75
|
+
}
|
|
76
|
+
subset.push(p);
|
|
77
|
+
return map;
|
|
78
|
+
}, new Map());
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Compares two sets values deep.
|
|
82
|
+
* If both sets have the same items, they are considered equal.
|
|
83
|
+
*
|
|
84
|
+
* Warning: Duplicate elements are ignored.
|
|
85
|
+
* @param aSet
|
|
86
|
+
* @param bSet
|
|
87
|
+
*/
|
|
88
|
+
static equalSetDeep(aSet, bSet) {
|
|
89
|
+
if (aSet === bSet) {
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
if (!aSet || !bSet) {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
if (aSet.size !== bSet.size) {
|
|
96
|
+
return false;
|
|
97
|
+
} // Must have same length
|
|
98
|
+
for (const a of aSet) {
|
|
99
|
+
if (!bSet.has(a)) {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
static hasElements(list) {
|
|
106
|
+
return list !== null && list !== undefined && list.length > 0;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL3V0aWxzL2NvbGxlY3Rpb24tdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsV0FBVztBQUNYLE1BQU0sT0FBTyxjQUFjO2FBRUQsV0FBTSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUdwRSxNQUFNLENBQUMsT0FBTyxDQUFJLE1BQWE7UUFDcEMsT0FBTyxNQUFNO2FBQ1YsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxRQUFRLENBQUksS0FBVSxFQUFFLE1BQVM7UUFFN0MsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUFFLE9BQU8sS0FBSyxDQUFDO1NBQUU7UUFFdkMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV2QyxJQUFJLFFBQVEsSUFBSSxDQUFDLEVBQUU7WUFFakIsTUFBTSxXQUFXLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQztZQUNqQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLEVBQUU7Z0JBQzNCLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3JDLEtBQUssQ0FBQyxXQUFXLENBQUMsR0FBRyxNQUFNLENBQUM7Z0JBQzVCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsNENBQTRDLEdBQUcsV0FBVyxHQUFHLDZCQUE2QixHQUFHLE1BQU0sQ0FBQyxDQUFDO2FBQ3hIO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBSSxLQUFVLEVBQUUsTUFBUztRQUUzQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQUUsT0FBTyxLQUFLLENBQUM7U0FBRTtRQUV2QyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXZDLElBQUksUUFBUSxJQUFJLENBQUMsRUFBRTtZQUVqQixNQUFNLFdBQVcsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1lBRWpDLElBQUksV0FBVyxJQUFJLENBQUMsRUFBRTtnQkFDcEIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDckMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztnQkFDNUIsT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO0lBQ0osTUFBTSxDQUFDLFlBQVksQ0FBTyxLQUFVLEVBQUUsS0FBYTtRQUN4RCxPQUFPLGNBQWMsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUUsRUFBVSxDQUFDLEtBQUssQ0FBTSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVc7SUFDSixNQUFNLENBQUMsVUFBVSxDQUFPLEtBQVUsRUFBRSxTQUEyQjtRQUVwRSxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFFN0IsSUFBSSxNQUFXLENBQUM7WUFFaEIsTUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXpCLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDaEIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDdkI7aUJBQU07Z0JBQ0wsTUFBTSxHQUFHLEVBQUUsQ0FBQztnQkFDWixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUN0QjtZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDZixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSSxNQUFNLENBQUMsWUFBWSxDQUFJLElBQVksRUFBRSxJQUFZO1FBRXRELElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDO1NBQUU7UUFFbkMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUFFLE9BQU8sS0FBSyxDQUFDO1NBQUU7UUFDckMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFBRSxPQUFPLEtBQUssQ0FBQztTQUFFLENBQUMsd0JBQXdCO1FBRXZFLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNoQixPQUFPLEtBQUssQ0FBQzthQUNkO1NBQ0Y7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxNQUFNLENBQUMsV0FBVyxDQUFDLElBQVc7UUFDbkMsT0FBTyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDaEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuXG4vLyBAZHluYW1pY1xuZXhwb3J0IGNsYXNzIENvbGxlY3Rpb25VdGlsIHtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBsb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcignQ29sbGVjdGlvblV0aWwnKTtcblxuXG4gIHB1YmxpYyBzdGF0aWMgZmxhdHRlbjxUPihncm91cHM6IFRbXVtdKTogVFtdIHtcbiAgICByZXR1cm4gZ3JvdXBzXG4gICAgICAucmVkdWNlKChhY2MsIHZhbCkgPT4gYWNjLmNvbmNhdCh2YWwpLCBbXSk7XG4gIH1cblxuICAvKipcbiAgICogTW92ZXMgdGhlIGdpdmVuIGl0ZW0gZG93biBpbiB0aGUgZ2l2ZW4gYXJyYXkgLSBpZiBub3QgYWxyZWFkeSBhdCB0aGUgYm90dG9tXG4gICAqIEBwYXJhbSBpdGVtc1xuICAgKiBAcGFyYW0gdG9Nb3ZlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG1vdmVEb3duPFQ+KGl0ZW1zOiBUW10sIHRvTW92ZTogVCk6IGJvb2xlYW4ge1xuXG4gICAgaWYgKGl0ZW1zLmxlbmd0aCA8IDIpIHsgcmV0dXJuIGZhbHNlOyB9XG5cbiAgICBjb25zdCBwb3NpdGlvbiA9IGl0ZW1zLmluZGV4T2YodG9Nb3ZlKTtcblxuICAgIGlmIChwb3NpdGlvbiA+PSAwKSB7XG5cbiAgICAgIGNvbnN0IHRhcmdldEluZGV4ID0gcG9zaXRpb24gKyAxO1xuICAgICAgY29uc3QgYm90dG9tID0gaXRlbXMubGVuZ3RoIC0gMTtcbiAgICAgIGlmICghKGJvdHRvbSA8IHRhcmdldEluZGV4KSkge1xuICAgICAgICBpdGVtc1twb3NpdGlvbl0gPSBpdGVtc1t0YXJnZXRJbmRleF07XG4gICAgICAgIGl0ZW1zW3RhcmdldEluZGV4XSA9IHRvTW92ZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnQ2FuIG5vdCBtb3ZlIGl0ZW0gZG93biBzaW5jZSB0YXJnZXQgaW5kZXggJyArIHRhcmdldEluZGV4ICsgJyBpcyBhbHJlYWR5IGF0IHRoZSBib3R0b206ICcgKyBib3R0b20pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogTW92ZXMgdGhlIGdpdmVuIGl0ZW0gdXAgaW4gdGhlIGdpdmVuIGFycmF5IC0gaWYgbm90IGFscmVhZHkgYXQgdGhlIHRvcFxuICAgKiBAcGFyYW0gaXRlbXNcbiAgICogQHBhcmFtIHRvTW92ZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBtb3ZlVXA8VD4oaXRlbXM6IFRbXSwgdG9Nb3ZlOiBUKTogYm9vbGVhbiB7XG5cbiAgICBpZiAoaXRlbXMubGVuZ3RoIDwgMikgeyByZXR1cm4gZmFsc2U7IH1cblxuICAgIGNvbnN0IHBvc2l0aW9uID0gaXRlbXMuaW5kZXhPZih0b01vdmUpO1xuXG4gICAgaWYgKHBvc2l0aW9uID49IDApIHtcblxuICAgICAgY29uc3QgdGFyZ2V0SW5kZXggPSBwb3NpdGlvbiAtIDE7XG5cbiAgICAgIGlmICh0YXJnZXRJbmRleCA+PSAwKSB7XG4gICAgICAgIGl0ZW1zW3Bvc2l0aW9uXSA9IGl0ZW1zW3RhcmdldEluZGV4XTtcbiAgICAgICAgaXRlbXNbdGFyZ2V0SW5kZXhdID0gdG9Nb3ZlO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyb3VwcyB0aGUgZ2l2ZW4gaXRlbXMgYnkgdGhlIGdpdmVuIGZpZWxkIGludG8gYSBNYXBcbiAgICovXG4gIC8vIEBkeW5hbWljXG4gIHB1YmxpYyBzdGF0aWMgZ3JvdXBCeUZpZWxkPEcsIFQ+KGl0ZW1zOiBUW10sIGZpZWxkOiBzdHJpbmcpOiBNYXA8RywgVFtdPiB7XG4gICAgcmV0dXJuIENvbGxlY3Rpb25VdGlsLmdyb3VwQnlLZXkoaXRlbXMsIGl0ID0+IChpdCBhcyBhbnkpW2ZpZWxkXSBhcyBHKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcm91cHMgdGhlIGdpdmVuIGl0ZW1zLCB1c2luZyB0aGUgZ3JvdXAga2V5IGdldHRlciwgaW50byBhIE1hcFxuICAgKiBAZHluYW1pY1xuICAgKi9cbiAgLy8gQGR5bmFtaWNcbiAgcHVibGljIHN0YXRpYyBncm91cEJ5S2V5PEcsIFQ+KGl0ZW1zOiBUW10sIGtleUdldHRlcjogKChpdGVtOiBUKSA9PiBHKSk6IE1hcDxHLCBUW10+IHtcblxuICAgIHJldHVybiBpdGVtcy5yZWR1Y2UoKG1hcCwgcCkgPT4ge1xuXG4gICAgICBsZXQgc3Vic2V0OiBUW107XG5cbiAgICAgIGNvbnN0IGtleSA9IGtleUdldHRlcihwKTtcblxuICAgICAgaWYgKG1hcC5oYXMoa2V5KSkge1xuICAgICAgICBzdWJzZXQgPSBtYXAuZ2V0KGtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdWJzZXQgPSBbXTtcbiAgICAgICAgbWFwLnNldChrZXksIHN1YnNldCk7XG4gICAgICB9XG4gICAgICBzdWJzZXQucHVzaChwKTtcbiAgICAgIHJldHVybiBtYXA7XG4gICAgfSwgbmV3IE1hcCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wYXJlcyB0d28gc2V0cyB2YWx1ZXMgZGVlcC5cbiAgICogSWYgYm90aCBzZXRzIGhhdmUgdGhlIHNhbWUgaXRlbXMsIHRoZXkgYXJlIGNvbnNpZGVyZWQgZXF1YWwuXG4gICAqXG4gICAqIFdhcm5pbmc6IER1cGxpY2F0ZSBlbGVtZW50cyBhcmUgaWdub3JlZC5cbiAgICogQHBhcmFtIGFTZXRcbiAgICogQHBhcmFtIGJTZXRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZXF1YWxTZXREZWVwPFQ+KGFTZXQ6IFNldDxUPiwgYlNldDogU2V0PFQ+KTogYm9vbGVhbiB7XG5cbiAgICBpZiAoYVNldCA9PT0gYlNldCkgeyByZXR1cm4gdHJ1ZTsgfVxuXG4gICAgaWYgKCFhU2V0IHx8ICFiU2V0KSB7IHJldHVybiBmYWxzZTsgfVxuICAgIGlmIChhU2V0LnNpemUgIT09IGJTZXQuc2l6ZSkgeyByZXR1cm4gZmFsc2U7IH0gLy8gTXVzdCBoYXZlIHNhbWUgbGVuZ3RoXG5cbiAgICBmb3IgKGNvbnN0IGEgb2YgYVNldCkge1xuICAgICAgaWYgKCFiU2V0LmhhcyhhKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBoYXNFbGVtZW50cyhsaXN0OiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBsaXN0ICE9PSBudWxsICYmIGxpc3QgIT09IHVuZGVmaW5lZCAmJiBsaXN0Lmxlbmd0aCA+IDA7XG4gIH1cblxufVxuXG5cbiJdfQ==
|