@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,110 @@
|
|
|
1
|
+
import { Inject, LOCALE_ID, Pipe } from '@angular/core';
|
|
2
|
+
import { Interval } from '../common/time/interval';
|
|
3
|
+
import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
4
|
+
import { ZoneId } from '@js-joda/core';
|
|
5
|
+
import { TimeUtil } from '../common/time/time-util';
|
|
6
|
+
import { DatePipe } from '@angular/common';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class IsoIntervalPipe {
|
|
9
|
+
/***************************************************************************
|
|
10
|
+
* *
|
|
11
|
+
* Fields *
|
|
12
|
+
* *
|
|
13
|
+
**************************************************************************/
|
|
14
|
+
static { this.log = LoggerFactory.getLogger('IsoIntervalPipe'); }
|
|
15
|
+
/***************************************************************************
|
|
16
|
+
* *
|
|
17
|
+
* Constructor *
|
|
18
|
+
* *
|
|
19
|
+
**************************************************************************/
|
|
20
|
+
constructor(localeId) {
|
|
21
|
+
this.localeId = localeId;
|
|
22
|
+
this.datePipe = new DatePipe(localeId);
|
|
23
|
+
}
|
|
24
|
+
/***************************************************************************
|
|
25
|
+
* *
|
|
26
|
+
* Public API *
|
|
27
|
+
* *
|
|
28
|
+
**************************************************************************/
|
|
29
|
+
/**
|
|
30
|
+
* Transforms an Interval / ISO Interval to a human readable display text.
|
|
31
|
+
*
|
|
32
|
+
* @param value The interval value, either as iso string or interval object
|
|
33
|
+
* @param format The format of the start (and if not specified otherwise, the end)
|
|
34
|
+
* @param formatEnd The format of the end
|
|
35
|
+
* @param timezone
|
|
36
|
+
* @param locale
|
|
37
|
+
*/
|
|
38
|
+
transform(value, format, formatEnd, timezone, locale) {
|
|
39
|
+
if (value) {
|
|
40
|
+
try {
|
|
41
|
+
const interval = (value instanceof Interval) ? value : Interval.parse(value);
|
|
42
|
+
const zone = timezone ? ZoneId.of(timezone) : ZoneId.SYSTEM;
|
|
43
|
+
const duration = interval.toDuration();
|
|
44
|
+
const period = interval.toPeriodDuration(zone);
|
|
45
|
+
const zonedStart = interval.start.atZone(zone);
|
|
46
|
+
const zonedEndExc = interval.end.atZone(zone);
|
|
47
|
+
const localStart = zonedStart.toLocalDate();
|
|
48
|
+
const localEndExc = zonedEndExc.toLocalDate();
|
|
49
|
+
if (period.period.days() === 0
|
|
50
|
+
&& (localStart.equals(localEndExc) || TimeUtil.isStartOfDay(zonedEndExc))) {
|
|
51
|
+
// If the period is less than a day, and the interval falls in the same local date
|
|
52
|
+
// We can improve the generated display text by omitting the redundant date information.
|
|
53
|
+
return this.formatSubDay(interval, format, zone, locale);
|
|
54
|
+
}
|
|
55
|
+
else if (TimeUtil.isStartOfDay(zonedStart) && TimeUtil.isFullDays(duration)) {
|
|
56
|
+
// We dont have to care about time since we are in days
|
|
57
|
+
const startDay = this.formatInstant(interval.start, format || 'mediumDate', zone, locale);
|
|
58
|
+
if (period.period.days() === 1) {
|
|
59
|
+
// Display a single, full day
|
|
60
|
+
return startDay;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
// Display a range of multiple 'full' days
|
|
64
|
+
const endDayInstant = zonedEndExc.minusDays(1).toInstant();
|
|
65
|
+
const endDay = this.formatInstant(endDayInstant, formatEnd || format || 'mediumDate', zone, locale);
|
|
66
|
+
return startDay + ' - ' + endDay;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
// No special handling, we render both instants
|
|
71
|
+
const start = this.formatInstant(interval.start, format || 'short', zone, locale);
|
|
72
|
+
const end = this.formatInstant(interval.end, formatEnd || format || 'short', zone, locale);
|
|
73
|
+
return start + ' - ' + end;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
IsoIntervalPipe.log.warn('Failed to parse iso interval: ' + value, err);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
/***************************************************************************
|
|
83
|
+
* *
|
|
84
|
+
* Private methods *
|
|
85
|
+
* *
|
|
86
|
+
**************************************************************************/
|
|
87
|
+
formatSubDay(interval, format, timezone, locale) {
|
|
88
|
+
const startDay = this.formatInstant(interval.start, format || 'short', timezone, locale);
|
|
89
|
+
const endTime = interval.end.atZone(timezone).toLocalTime().toString();
|
|
90
|
+
return startDay + ' - ' + endTime;
|
|
91
|
+
}
|
|
92
|
+
formatInstant(instant, format, timezone, locale) {
|
|
93
|
+
return this.format(instant.toEpochMilli(), format, timezone, locale);
|
|
94
|
+
}
|
|
95
|
+
format(value, format, timezone, locale) {
|
|
96
|
+
return this.datePipe.transform(value, format, timezone.id(), locale);
|
|
97
|
+
}
|
|
98
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: IsoIntervalPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
99
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.5", ngImport: i0, type: IsoIntervalPipe, name: "isoInterval" }); }
|
|
100
|
+
}
|
|
101
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: IsoIntervalPipe, decorators: [{
|
|
102
|
+
type: Pipe,
|
|
103
|
+
args: [{
|
|
104
|
+
name: 'isoInterval'
|
|
105
|
+
}]
|
|
106
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
107
|
+
type: Inject,
|
|
108
|
+
args: [LOCALE_ID]
|
|
109
|
+
}] }]; } });
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXNvLWludGVydmFsLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9waXBlcy9pc28taW50ZXJ2YWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxRQUFRLEVBQWlCLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFLekMsTUFBTSxPQUFPLGVBQWU7SUFFMUI7Ozs7Z0ZBSTRFO2FBRTdELFFBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLEFBQTdDLENBQThDO0lBSWhFOzs7O2dGQUk0RTtJQUU1RSxZQUNzQyxRQUFnQjtRQUFoQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBRXBELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RTs7Ozs7Ozs7T0FRRztJQUNJLFNBQVMsQ0FDZCxLQUFnQyxFQUNoQyxNQUFlLEVBQ2YsU0FBa0IsRUFDbEIsUUFBaUIsRUFDakIsTUFBZTtRQUVmLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSTtnQkFDRixNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQUssWUFBWSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMs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QUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sSUFBSSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3pGLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZFLE9BQU8sUUFBUSxHQUFHLEtBQUssR0FBRyxPQUFPLENBQUM7SUFDcEMsQ0FBQztJQUVPLGFBQWEsQ0FDbkIsT0FBZ0IsRUFDaEIsTUFBYyxFQUNkLFFBQWdCLEVBQ2hCLE1BQWU7UUFFZixPQUFPLElBQUksQ0FBQyxNQUFNLENBQ2hCLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFDdEIsTUFBTSxFQUNOLFFBQVEsRUFDUixNQUFNLENBQ1AsQ0FBQztJQUNKLENBQUM7SUFFTyxNQUFNLENBQ1osS0FBNkIsRUFDN0IsTUFBYyxFQUNkLFFBQWdCLEVBQ2hCLE1BQWU7UUFFZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7OEdBdElVLGVBQWUsa0JBbUJoQixTQUFTOzRHQW5CUixlQUFlOzsyRkFBZixlQUFlO2tCQUgzQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxhQUFhO2lCQUNwQjs7MEJBb0JJLE1BQU07MkJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBMT0NBTEVfSUQsIFBpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJbnRlcnZhbCwgSXNvSW50ZXJ2YWxTdHJ9IGZyb20gJy4uL2NvbW1vbi90aW1lL2ludGVydmFsJztcbmltcG9ydCB7TG9nZ2VyRmFjdG9yeX0gZnJvbSAnQGVsZGVyYnl0ZS90cy1sb2dnZXInO1xuaW1wb3J0IHtJbnN0YW50LCBab25lSWR9IGZyb20gJ0Bqcy1qb2RhL2NvcmUnO1xuaW1wb3J0IHtUaW1lVXRpbH0gZnJvbSAnLi4vY29tbW9uL3RpbWUvdGltZS11dGlsJztcbmltcG9ydCB7RGF0ZVBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2lzb0ludGVydmFsJ1xufSlcbmV4cG9ydCBjbGFzcyBJc29JbnRlcnZhbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHN0YXRpYyBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcignSXNvSW50ZXJ2YWxQaXBlJyk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkYXRlUGlwZTogRGF0ZVBpcGU7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChMT0NBTEVfSUQpIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxlSWQ6IHN0cmluZ1xuICApIHtcbiAgICB0aGlzLmRhdGVQaXBlID0gbmV3IERhdGVQaXBlKGxvY2FsZUlkKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm1zIGFuIEludGVydmFsIC8gSVNPIEludGVydmFsIHRvIGEgaHVtYW4gcmVhZGFibGUgZGlzcGxheSB0ZXh0LlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIGludGVydmFsIHZhbHVlLCBlaXRoZXIgYXMgaXNvIHN0cmluZyBvciBpbnRlcnZhbCBvYmplY3RcbiAgICogQHBhcmFtIGZvcm1hdCBUaGUgZm9ybWF0IG9mIHRoZSBzdGFydCAoYW5kIGlmIG5vdCBzcGVjaWZpZWQgb3RoZXJ3aXNlLCB0aGUgZW5kKVxuICAgKiBAcGFyYW0gZm9ybWF0RW5kIFRoZSBmb3JtYXQgb2YgdGhlIGVuZFxuICAgKiBAcGFyYW0gdGltZXpvbmVcbiAgICogQHBhcmFtIGxvY2FsZVxuICAgKi9cbiAgcHVibGljIHRyYW5zZm9ybShcbiAgICB2YWx1ZTogSXNvSW50ZXJ2YWxTdHIgfCBJbnRlcnZhbCxcbiAgICBmb3JtYXQ/OiBzdHJpbmcsXG4gICAgZm9ybWF0RW5kPzogc3RyaW5nLFxuICAgIHRpbWV6b25lPzogc3RyaW5nLFxuICAgIGxvY2FsZT86IHN0cmluZ1xuICApOiBzdHJpbmcge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgaW50ZXJ2YWwgPSAodmFsdWUgaW5zdGFuY2VvZiBJbnRlcnZhbCkgPyB2YWx1ZSA6IEludGVydmFsLnBhcnNlKHZhbHVlKTtcblxuICAgICAgICBjb25zdCB6b25lID0gdGltZXpvbmUgPyBab25lSWQub2YodGltZXpvbmUpIDogWm9uZUlkLlNZU1RFTTtcblxuICAgICAgICBjb25zdCBkdXJhdGlvbiA9IGludGVydmFsLnRvRHVyYXRpb24oKTtcbiAgICAgICAgY29uc3QgcGVyaW9kID0gaW50ZXJ2YWwudG9QZXJpb2REdXJhdGlvbih6b25lKTtcblxuICAgICAgICBjb25zdCB6b25lZFN0YXJ0ID0gaW50ZXJ2YWwuc3RhcnQuYXRab25lKHpvbmUpO1xuICAgICAgICBjb25zdCB6b25lZEVuZEV4YyA9IGludGVydmFsLmVuZC5hdFpvbmUoem9uZSk7XG5cbiAgICAgICAgY29uc3QgbG9jYWxTdGFydCA9IHpvbmVkU3RhcnQudG9Mb2NhbERhdGUoKTtcbiAgICAgICAgY29uc3QgbG9jYWxFbmRFeGMgPSB6b25lZEVuZEV4Yy50b0xvY2FsRGF0ZSgpO1xuXG4gICAgICAgIGlmIChwZXJpb2QucGVyaW9kLmRheXMoKSA9PT0gMFxuICAgICAgICAgICYmIChsb2NhbFN0YXJ0LmVxdWFscyhsb2NhbEVuZEV4YykgfHwgVGltZVV0aWwuaXNTdGFydE9mRGF5KHpvbmVkRW5kRXhjKSkpIHtcbiAgICAgICAgICAvLyBJZiB0aGUgcGVyaW9kIGlzIGxlc3MgdGhhbiBhIGRheSwgYW5kIHRoZSBpbnRlcnZhbCBmYWxscyBpbiB0aGUgc2FtZSBsb2NhbCBkYXRlXG4gICAgICAgICAgLy8gV2UgY2FuIGltcHJvdmUgdGhlIGdlbmVyYXRlZCBkaXNwbGF5IHRleHQgYnkgb21pdHRpbmcgdGhlIHJlZHVuZGFudCBkYXRlIGluZm9ybWF0aW9uLlxuICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdFN1YkRheShpbnRlcnZhbCwgZm9ybWF0LCB6b25lLCBsb2NhbGUpO1xuXG4gICAgICAgIH0gZWxzZSBpZiAoVGltZVV0aWwuaXNTdGFydE9mRGF5KHpvbmVkU3RhcnQpICYmIFRpbWVVdGlsLmlzRnVsbERheXMoZHVyYXRpb24pKSB7XG4gICAgICAgICAgLy8gV2UgZG9udCBoYXZlIHRvIGNhcmUgYWJvdXQgdGltZSBzaW5jZSB3ZSBhcmUgaW4gZGF5c1xuICAgICAgICAgIGNvbnN0IHN0YXJ0RGF5ID0gdGhpcy5mb3JtYXRJbnN0YW50KGludGVydmFsLnN0YXJ0LCBmb3JtYXQgfHwgJ21lZGl1bURhdGUnLCB6b25lLCBsb2NhbGUpO1xuXG4gICAgICAgICAgaWYgKHBlcmlvZC5wZXJpb2QuZGF5cygpID09PSAxKSB7XG4gICAgICAgICAgICAvLyBEaXNwbGF5IGEgc2luZ2xlLCBmdWxsIGRheVxuICAgICAgICAgICAgcmV0dXJuIHN0YXJ0RGF5O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBEaXNwbGF5IGEgcmFuZ2Ugb2YgbXVsdGlwbGUgJ2Z1bGwnIGRheXNcbiAgICAgICAgICAgIGNvbnN0IGVuZERheUluc3RhbnQgPSAgem9uZWRFbmRFeGMubWludXNEYXlzKDEpLnRvSW5zdGFudCgpO1xuICAgICAgICAgICAgY29uc3QgZW5kRGF5ID0gdGhpcy5mb3JtYXRJbnN0YW50KGVuZERheUluc3RhbnQsICBmb3JtYXRFbmQgfHwgZm9ybWF0IHx8ICdtZWRpdW1EYXRlJywgem9uZSwgbG9jYWxlKTtcblxuICAgICAgICAgICAgcmV0dXJuIHN0YXJ0RGF5ICsgJyAtICcgKyBlbmREYXk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIE5vIHNwZWNpYWwgaGFuZGxpbmcsIHdlIHJlbmRlciBib3RoIGluc3RhbnRzXG4gICAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLmZvcm1hdEluc3RhbnQoaW50ZXJ2YWwuc3RhcnQsIGZvcm1hdCB8fCAnc2hvcnQnLCB6b25lLCBsb2NhbGUpO1xuICAgICAgICAgIGNvbnN0IGVuZCA9IHRoaXMuZm9ybWF0SW5zdGFudChpbnRlcnZhbC5lbmQsIGZvcm1hdEVuZCB8fCBmb3JtYXQgfHwgJ3Nob3J0Jywgem9uZSwgbG9jYWxlKTtcbiAgICAgICAgICByZXR1cm4gc3RhcnQgKyAnIC0gJyArIGVuZDtcbiAgICAgICAgfVxuXG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgSXNvSW50ZXJ2YWxQaXBlLmxvZy53YXJuKCdGYWlsZWQgdG8gcGFyc2UgaXNvIGludGVydmFsOiAnICsgdmFsdWUsIGVycik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblxuICBwcml2YXRlIGZvcm1hdFN1YkRheShcbiAgICBpbnRlcnZhbDogSW50ZXJ2YWwsXG4gICAgZm9ybWF0OiBzdHJpbmcsXG4gICAgdGltZXpvbmU6IFpvbmVJZCxcbiAgICBsb2NhbGU6IHN0cmluZ1xuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IHN0YXJ0RGF5ID0gdGhpcy5mb3JtYXRJbnN0YW50KGludGVydmFsLnN0YXJ0LCBmb3JtYXQgfHwgJ3Nob3J0JywgdGltZXpvbmUsIGxvY2FsZSk7XG4gICAgY29uc3QgZW5kVGltZSA9IGludGVydmFsLmVuZC5hdFpvbmUodGltZXpvbmUpLnRvTG9jYWxUaW1lKCkudG9TdHJpbmcoKTtcbiAgICByZXR1cm4gc3RhcnREYXkgKyAnIC0gJyArIGVuZFRpbWU7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdEluc3RhbnQoXG4gICAgaW5zdGFudDogSW5zdGFudCxcbiAgICBmb3JtYXQ6IHN0cmluZyxcbiAgICB0aW1lem9uZTogWm9uZUlkLFxuICAgIGxvY2FsZT86IHN0cmluZ1xuICApOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZvcm1hdChcbiAgICAgIGluc3RhbnQudG9FcG9jaE1pbGxpKCksXG4gICAgICBmb3JtYXQsXG4gICAgICB0aW1lem9uZSxcbiAgICAgIGxvY2FsZVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdChcbiAgICB2YWx1ZTogc3RyaW5nIHwgRGF0ZSB8IG51bWJlcixcbiAgICBmb3JtYXQ6IHN0cmluZyxcbiAgICB0aW1lem9uZTogWm9uZUlkLFxuICAgIGxvY2FsZT86IHN0cmluZ1xuICApOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgZm9ybWF0LCB0aW1lem9uZS5pZCgpLCBsb2NhbGUpO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Source code from
|
|
5
|
+
* https://github.com/AndrewPoyntz/time-ago-pipe
|
|
6
|
+
*/
|
|
7
|
+
export class TimeAgoPipe {
|
|
8
|
+
constructor(changeDetectorRef, ngZone) {
|
|
9
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
10
|
+
this.ngZone = ngZone;
|
|
11
|
+
}
|
|
12
|
+
transform(value) {
|
|
13
|
+
this.removeTimer();
|
|
14
|
+
if (!value) {
|
|
15
|
+
return 'unknown time';
|
|
16
|
+
}
|
|
17
|
+
const d = new Date(value);
|
|
18
|
+
const now = new Date();
|
|
19
|
+
const seconds = Math.round(Math.abs((now.getTime() - d.getTime()) / 1000));
|
|
20
|
+
const timeToUpdate = this.getSecondsUntilUpdate(seconds) * 1000;
|
|
21
|
+
this.timer = this.ngZone.runOutsideAngular(() => {
|
|
22
|
+
if (typeof window !== 'undefined') {
|
|
23
|
+
return window.setTimeout(() => {
|
|
24
|
+
this.ngZone.run(() => this.changeDetectorRef.markForCheck());
|
|
25
|
+
}, timeToUpdate);
|
|
26
|
+
}
|
|
27
|
+
return null;
|
|
28
|
+
});
|
|
29
|
+
const minutes = Math.round(Math.abs(seconds / 60));
|
|
30
|
+
const hours = Math.round(Math.abs(minutes / 60));
|
|
31
|
+
const days = Math.round(Math.abs(hours / 24));
|
|
32
|
+
const months = Math.round(Math.abs(days / 30.416));
|
|
33
|
+
const years = Math.round(Math.abs(days / 365));
|
|
34
|
+
if (seconds <= 45) {
|
|
35
|
+
return 'a few seconds ago';
|
|
36
|
+
}
|
|
37
|
+
else if (seconds <= 90) {
|
|
38
|
+
return 'a minute ago';
|
|
39
|
+
}
|
|
40
|
+
else if (minutes <= 45) {
|
|
41
|
+
return minutes + ' minutes ago';
|
|
42
|
+
}
|
|
43
|
+
else if (minutes <= 90) {
|
|
44
|
+
return 'an hour ago';
|
|
45
|
+
}
|
|
46
|
+
else if (hours <= 22) {
|
|
47
|
+
return hours + ' hours ago';
|
|
48
|
+
}
|
|
49
|
+
else if (hours <= 36) {
|
|
50
|
+
return 'a day ago';
|
|
51
|
+
}
|
|
52
|
+
else if (days <= 25) {
|
|
53
|
+
return days + ' days ago';
|
|
54
|
+
}
|
|
55
|
+
else if (days <= 45) {
|
|
56
|
+
return 'a month ago';
|
|
57
|
+
}
|
|
58
|
+
else if (days <= 345) {
|
|
59
|
+
return months + ' months ago';
|
|
60
|
+
}
|
|
61
|
+
else if (days <= 545) {
|
|
62
|
+
return 'a year ago';
|
|
63
|
+
}
|
|
64
|
+
else { // (days > 545)
|
|
65
|
+
return years + ' years ago';
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
ngOnDestroy() {
|
|
69
|
+
this.removeTimer();
|
|
70
|
+
}
|
|
71
|
+
removeTimer() {
|
|
72
|
+
if (this.timer) {
|
|
73
|
+
window.clearTimeout(this.timer);
|
|
74
|
+
this.timer = null;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
getSecondsUntilUpdate(seconds) {
|
|
78
|
+
const min = 60;
|
|
79
|
+
const hr = min * 60;
|
|
80
|
+
const day = hr * 24;
|
|
81
|
+
if (seconds < min) { // less than 1 min, update ever 2 secs
|
|
82
|
+
return 2;
|
|
83
|
+
}
|
|
84
|
+
else if (seconds < hr) { // less than an hour, update every 30 secs
|
|
85
|
+
return 30;
|
|
86
|
+
}
|
|
87
|
+
else if (seconds < day) { // less then a day, update every 5 mins
|
|
88
|
+
return 300;
|
|
89
|
+
}
|
|
90
|
+
else { // update every hour
|
|
91
|
+
return 3600;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: TimeAgoPipe, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
95
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.5", ngImport: i0, type: TimeAgoPipe, name: "timeAgo", pure: false }); }
|
|
96
|
+
}
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: TimeAgoPipe, decorators: [{
|
|
98
|
+
type: Pipe,
|
|
99
|
+
args: [{
|
|
100
|
+
name: 'timeAgo',
|
|
101
|
+
pure: false
|
|
102
|
+
}]
|
|
103
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }]; } });
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1hZ28ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL3BpcGVzL3RpbWUtYWdvLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLElBQUksRUFBc0QsTUFBTSxlQUFlLENBQUM7O0FBR3hGOzs7R0FHRztBQUtILE1BQU0sT0FBTyxXQUFXO0lBSXRCLFlBQW9CLGlCQUFvQyxFQUFVLE1BQWM7UUFBNUQsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7SUFBRyxDQUFDO0lBRTdFLFNBQVMsQ0FBQyxLQUE2QjtRQUM1QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFbkIsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUFFLE9BQU8sY0FBYyxDQUFDO1NBQUU7UUFFdEMsTUFBTSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMzRSxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDOUMsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUU7Z0JBQ2pDLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQzVC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QztZQUNqRSxPQUFPLEdBQUcsQ0FBQztTQUNaO2FBQU0sRUFBRSxvQkFBb0I7WUFDM0IsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7OEdBMUVVLFdBQVc7NEdBQVgsV0FBVzs7MkZBQVgsV0FBVztrQkFKdkIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsU0FBUztvQkFDZixJQUFJLEVBQUUsS0FBSztpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtLCBOZ1pvbmUsIENoYW5nZURldGVjdG9yUmVmLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cbi8qKlxuICogU291cmNlIGNvZGUgZnJvbVxuICogaHR0cHM6Ly9naXRodWIuY29tL0FuZHJld1BveW50ei90aW1lLWFnby1waXBlXG4gKi9cbkBQaXBlKHtcbiAgbmFtZTogJ3RpbWVBZ28nLFxuICBwdXJlOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUaW1lQWdvUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSB0aW1lcjogbnVtYmVyIHwgbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSkge31cblxuICBwdWJsaWMgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBEYXRlKSB7XG4gICAgdGhpcy5yZW1vdmVUaW1lcigpO1xuXG4gICAgaWYgKCF2YWx1ZSkgeyByZXR1cm4gJ3Vua25vd24gdGltZSc7IH1cblxuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSh2YWx1ZSk7XG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCBzZWNvbmRzID0gTWF0aC5yb3VuZChNYXRoLmFicygobm93LmdldFRpbWUoKSAtIGQuZ2V0VGltZSgpKSAvIDEwMDApKTtcbiAgICBjb25zdCB0aW1lVG9VcGRhdGUgPSB0aGlzLmdldFNlY29uZHNVbnRpbFVwZGF0ZShzZWNvbmRzKSAqIDEwMDA7XG4gICAgdGhpcy50aW1lciA9IHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICByZXR1cm4gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKTtcbiAgICAgICAgfSwgdGltZVRvVXBkYXRlKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0pO1xuICAgIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLnJvdW5kKE1hdGguYWJzKHNlY29uZHMgLyA2MCkpO1xuICAgIGNvbnN0IGhvdXJzID0gTWF0aC5yb3VuZChNYXRoLmFicyhtaW51dGVzIC8gNjApKTtcbiAgICBjb25zdCBkYXlzID0gTWF0aC5yb3VuZChNYXRoLmFicyhob3VycyAvIDI0KSk7XG4gICAgY29uc3QgbW9udGhzID0gTWF0aC5yb3VuZChNYXRoLmFicyhkYXlzIC8gMzAuNDE2KSk7XG4gICAgY29uc3QgeWVhcnMgPSBNYXRoLnJvdW5kKE1hdGguYWJzKGRheXMgLyAzNjUpKTtcbiAgICBpZiAoc2Vjb25kcyA8PSA0NSkge1xuICAgICAgcmV0dXJuICdhIGZldyBzZWNvbmRzIGFnbyc7XG4gICAgfSBlbHNlIGlmIChzZWNvbmRzIDw9IDkwKSB7XG4gICAgICByZXR1cm4gJ2EgbWludXRlIGFnbyc7XG4gICAgfSBlbHNlIGlmIChtaW51dGVzIDw9IDQ1KSB7XG4gICAgICByZXR1cm4gbWludXRlcyArICcgbWludXRlcyBhZ28nO1xuICAgIH0gZWxzZSBpZiAobWludXRlcyA8PSA5MCkge1xuICAgICAgcmV0dXJuICdhbiBob3VyIGFnbyc7XG4gICAgfSBlbHNlIGlmIChob3VycyA8PSAyMikge1xuICAgICAgcmV0dXJuIGhvdXJzICsgJyBob3VycyBhZ28nO1xuICAgIH0gZWxzZSBpZiAoaG91cnMgPD0gMzYpIHtcbiAgICAgIHJldHVybiAnYSBkYXkgYWdvJztcbiAgICB9IGVsc2UgaWYgKGRheXMgPD0gMjUpIHtcbiAgICAgIHJldHVybiBkYXlzICsgJyBkYXlzIGFnbyc7XG4gICAgfSBlbHNlIGlmIChkYXlzIDw9IDQ1KSB7XG4gICAgICByZXR1cm4gJ2EgbW9udGggYWdvJztcbiAgICB9IGVsc2UgaWYgKGRheXMgPD0gMzQ1KSB7XG4gICAgICByZXR1cm4gbW9udGhzICsgJyBtb250aHMgYWdvJztcbiAgICB9IGVsc2UgaWYgKGRheXMgPD0gNTQ1KSB7XG4gICAgICByZXR1cm4gJ2EgeWVhciBhZ28nO1xuICAgIH0gZWxzZSB7IC8vIChkYXlzID4gNTQ1KVxuICAgICAgcmV0dXJuIHllYXJzICsgJyB5ZWFycyBhZ28nO1xuICAgIH1cbiAgfVxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZVRpbWVyKCk7XG4gIH1cbiAgcHJpdmF0ZSByZW1vdmVUaW1lcigpIHtcbiAgICBpZiAodGhpcy50aW1lcikge1xuICAgICAgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTtcbiAgICAgIHRoaXMudGltZXIgPSBudWxsO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGdldFNlY29uZHNVbnRpbFVwZGF0ZShzZWNvbmRzOiBudW1iZXIpIHtcbiAgICBjb25zdCBtaW4gPSA2MDtcbiAgICBjb25zdCBociA9IG1pbiAqIDYwO1xuICAgIGNvbnN0IGRheSA9IGhyICogMjQ7XG4gICAgaWYgKHNlY29uZHMgPCBtaW4pIHsgLy8gbGVzcyB0aGFuIDEgbWluLCB1cGRhdGUgZXZlciAyIHNlY3NcbiAgICAgIHJldHVybiAyO1xuICAgIH0gZWxzZSBpZiAoc2Vjb25kcyA8IGhyKSB7IC8vIGxlc3MgdGhhbiBhbiBob3VyLCB1cGRhdGUgZXZlcnkgMzAgc2Vjc1xuICAgICAgcmV0dXJuIDMwO1xuICAgIH0gZWxzZSBpZiAoc2Vjb25kcyA8IGRheSkgeyAvLyBsZXNzIHRoZW4gYSBkYXksIHVwZGF0ZSBldmVyeSA1IG1pbnNcbiAgICAgIHJldHVybiAzMDA7XG4gICAgfSBlbHNlIHsgLy8gdXBkYXRlIGV2ZXJ5IGhvdXJcbiAgICAgIHJldHVybiAzNjAwO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Shows a duration in an approximated, human friendly way.
|
|
5
|
+
* Based on time-ago pipe.
|
|
6
|
+
*/
|
|
7
|
+
export class TimeDurationPipe {
|
|
8
|
+
constructor() { }
|
|
9
|
+
transform(value = 0, unit = 's', precision = null) {
|
|
10
|
+
if (isNaN(parseFloat(String(value))) || !isFinite(value)) {
|
|
11
|
+
return '?';
|
|
12
|
+
}
|
|
13
|
+
// 10−3 s ms millisecond 103 s ks kilosecond
|
|
14
|
+
// 10−6 s µs microsecond 106 s Ms megasecond
|
|
15
|
+
// 10−9 s ns nanosecond
|
|
16
|
+
let ns = 0;
|
|
17
|
+
switch (unit) {
|
|
18
|
+
case 'ns':
|
|
19
|
+
ns = value;
|
|
20
|
+
break;
|
|
21
|
+
case 'micro':
|
|
22
|
+
case 'µs':
|
|
23
|
+
ns = value * 1000;
|
|
24
|
+
break;
|
|
25
|
+
case 'ms':
|
|
26
|
+
ns = value * 1000 * 1000;
|
|
27
|
+
break;
|
|
28
|
+
case 's':
|
|
29
|
+
ns = value * 1000 * 1000 * 1000;
|
|
30
|
+
break;
|
|
31
|
+
default: throw new Error(`Unknown input unit in weight pipe: '${unit}'`);
|
|
32
|
+
}
|
|
33
|
+
const nanoseconds = ns;
|
|
34
|
+
const microseconds = nanoseconds / 1000.0;
|
|
35
|
+
const milliseconds = microseconds / 1000.0;
|
|
36
|
+
const seconds = milliseconds / 1000.0;
|
|
37
|
+
const minutes = seconds / 60.0;
|
|
38
|
+
const hours = minutes / 60.0;
|
|
39
|
+
const days = hours / 24.0;
|
|
40
|
+
const months = days / 30.416;
|
|
41
|
+
const years = days / 365;
|
|
42
|
+
if (nanoseconds <= 999) {
|
|
43
|
+
return this.format(nanoseconds, precision || 0) + ' ns';
|
|
44
|
+
}
|
|
45
|
+
else if (microseconds <= 999) {
|
|
46
|
+
return this.format(microseconds, precision || 0) + ' µs';
|
|
47
|
+
}
|
|
48
|
+
else if (milliseconds <= 999) {
|
|
49
|
+
return this.format(milliseconds, precision || 0) + ' ms';
|
|
50
|
+
}
|
|
51
|
+
else if (seconds <= 59) {
|
|
52
|
+
return this.format(seconds, precision || 0) + ' seconds';
|
|
53
|
+
}
|
|
54
|
+
else if (seconds <= 90) {
|
|
55
|
+
return 'a minute';
|
|
56
|
+
}
|
|
57
|
+
else if (minutes <= 45) {
|
|
58
|
+
return this.format(minutes, precision || 0) + ' minutes';
|
|
59
|
+
}
|
|
60
|
+
else if (minutes <= 90) {
|
|
61
|
+
return 'an hour';
|
|
62
|
+
}
|
|
63
|
+
else if (hours <= 22) {
|
|
64
|
+
return this.format(hours, precision || 1) + ' hours';
|
|
65
|
+
}
|
|
66
|
+
else if (hours <= 36) {
|
|
67
|
+
return 'a day';
|
|
68
|
+
}
|
|
69
|
+
else if (days <= 25) {
|
|
70
|
+
return this.format(days, precision || 1) + ' days';
|
|
71
|
+
}
|
|
72
|
+
else if (days <= 45) {
|
|
73
|
+
return 'a month';
|
|
74
|
+
}
|
|
75
|
+
else if (days <= 345) {
|
|
76
|
+
return this.format(months, precision || 1) + ' months';
|
|
77
|
+
}
|
|
78
|
+
else if (days <= 545) {
|
|
79
|
+
return 'a year';
|
|
80
|
+
}
|
|
81
|
+
else { // (days > 545)
|
|
82
|
+
return this.format(years, precision || 1) + ' years';
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
format(value, precision) {
|
|
86
|
+
return +value.toFixed(precision);
|
|
87
|
+
}
|
|
88
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: TimeDurationPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
89
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.5", ngImport: i0, type: TimeDurationPipe, name: "caTimeDuration", pure: false }); }
|
|
90
|
+
}
|
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: TimeDurationPipe, decorators: [{
|
|
92
|
+
type: Pipe,
|
|
93
|
+
args: [{
|
|
94
|
+
name: 'caTimeDuration',
|
|
95
|
+
pure: false
|
|
96
|
+
}]
|
|
97
|
+
}], ctorParameters: function () { return []; } });
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1kdXJhdGlvbi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvcGlwZXMvdGltZS1kdXJhdGlvbi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOztBQUdsRDs7O0dBR0c7QUFLSCxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLGdCQUFlLENBQUM7SUFHaEIsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLEdBQUcsRUFBRSxZQUFvQixJQUFJO1FBRXZELElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQUUsT0FBTyxHQUFHLENBQUM7U0FBRTtRQUV6RSw0Q0FBNEM7UUFDNUMsNENBQTRDO1FBQzVDLHVCQUF1QjtRQUV2QixJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDWCxRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssSUFBSTtnQkFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDO2dCQUFDLE1BQU07WUFDN0IsS0FBSyxPQUFPLENBQUM7WUFDYixLQUFLLElBQUk7Z0JBQUcsRUFBRSxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUM7Z0JBQUMsTUFBTTtZQUNyQyxLQUFLLElBQUk7Z0JBQUUsRUFBRSxHQUFHLEtBQUssR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUFDLE1BQU07WUFDM0MsS0FBSyxHQUFHO2dCQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7Z0JBQUMsTUFBTTtZQUNsRCxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxJQUFJLEdB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QjtrQkFKNUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsZ0JBQWdCO29CQUN0QixJQUFJLEVBQUUsS0FBSztpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHtQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG4vKipcbiAqIFNob3dzIGEgZHVyYXRpb24gaW4gYW4gYXBwcm94aW1hdGVkLCBodW1hbiBmcmllbmRseSB3YXkuXG4gKiBCYXNlZCBvbiB0aW1lLWFnbyBwaXBlLlxuICovXG5AUGlwZSh7XG4gIG5hbWU6ICdjYVRpbWVEdXJhdGlvbicsXG4gIHB1cmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRpbWVEdXJhdGlvblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cblxuICB0cmFuc2Zvcm0odmFsdWUgPSAwLCB1bml0ID0gJ3MnLCBwcmVjaXNpb246IG51bWJlciA9IG51bGwpIHtcblxuICAgIGlmIChpc05hTihwYXJzZUZsb2F0KFN0cmluZyh2YWx1ZSkpKSB8fCAhaXNGaW5pdGUodmFsdWUpKSB7IHJldHVybiAnPyc7IH1cblxuICAgIC8vIDEw4oiSMyBzXHRtc1x0bWlsbGlzZWNvbmRcdDEwMyBzXHRrc1x0a2lsb3NlY29uZFxuICAgIC8vIDEw4oiSNiBzXHTCtXNcdG1pY3Jvc2Vjb25kXHQxMDYgc1x0TXNcdG1lZ2FzZWNvbmRcbiAgICAvLyAxMOKIkjkgc1x0bnNcdG5hbm9zZWNvbmRcblxuICAgIGxldCBucyA9IDA7XG4gICAgc3dpdGNoICh1bml0KSB7XG4gICAgICBjYXNlICducyc6IG5zID0gdmFsdWU7IGJyZWFrO1xuICAgICAgY2FzZSAnbWljcm8nOlxuICAgICAgY2FzZSAnwrVzJyA6IG5zID0gdmFsdWUgKiAxMDAwOyBicmVhaztcbiAgICAgIGNhc2UgJ21zJzogbnMgPSB2YWx1ZSAqIDEwMDAgKiAxMDAwOyBicmVhaztcbiAgICAgIGNhc2UgJ3MnIDogbnMgPSB2YWx1ZSAqIDEwMDAgKiAxMDAwICogMTAwMDsgYnJlYWs7XG4gICAgICBkZWZhdWx0OiB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gaW5wdXQgdW5pdCBpbiB3ZWlnaHQgcGlwZTogJyR7dW5pdH0nYCk7XG4gICAgfVxuXG4gICAgY29uc3QgbmFub3NlY29uZHMgPSBucztcbiAgICBjb25zdCBtaWNyb3NlY29uZHMgPSBuYW5vc2Vjb25kcyAvIDEwMDAuMDtcbiAgICBjb25zdCBtaWxsaXNlY29uZHMgPSBtaWNyb3NlY29uZHMgLyAxMDAwLjA7XG4gICAgY29uc3Qgc2Vjb25kcyA9IG1pbGxpc2Vjb25kcyAvIDEwMDAuMDtcbiAgICBjb25zdCBtaW51dGVzID0gc2Vjb25kcyAvIDYwLjA7XG4gICAgY29uc3QgaG91cnMgPSBtaW51dGVzIC8gNjAuMDtcbiAgICBjb25zdCBkYXlzID0gaG91cnMgLyAyNC4wO1xuICAgIGNvbnN0IG1vbnRocyA9IGRheXMgLyAzMC40MTY7XG4gICAgY29uc3QgeWVhcnMgPSBkYXlzIC8gMzY1O1xuXG4gICAgaWYgKG5hbm9zZWNvbmRzIDw9IDk5OSkge1xuICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0KG5hbm9zZWNvbmRzLCBwcmVjaXNpb24gfHwgMCkgKyAnIG5zJztcbiAgICB9IGVsc2UgaWYgKG1pY3Jvc2Vjb25kcyA8PSA5OTkpIHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1hdChtaWNyb3NlY29uZHMsIHByZWNpc2lvbiAgfHwgMCkgKyAnIMK1cyc7XG4gICAgfSBlbHNlIGlmIChtaWxsaXNlY29uZHMgPD0gOTk5KSB7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtYXQobWlsbGlzZWNvbmRzLCBwcmVjaXNpb24gfHwgMCkgKyAnIG1zJztcbiAgICB9IGVsc2UgaWYgKHNlY29uZHMgPD0gNTkpIHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1hdChzZWNvbmRzLCBwcmVjaXNpb24gfHwgMCkgKyAnIHNlY29uZHMnO1xuICAgIH0gZWxzZSBpZiAoc2Vjb25kcyA8PSA5MCkge1xuICAgICAgcmV0dXJuICdhIG1pbnV0ZSc7XG4gICAgfSBlbHNlIGlmIChtaW51dGVzIDw9IDQ1KSB7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtYXQobWludXRlcywgcHJlY2lzaW9uIHx8IDApICsgJyBtaW51dGVzJztcbiAgICB9IGVsc2UgaWYgKG1pbnV0ZXMgPD0gOTApIHtcbiAgICAgIHJldHVybiAnYW4gaG91cic7XG4gICAgfSBlbHNlIGlmIChob3VycyA8PSAyMikge1xuICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0KGhvdXJzLCBwcmVjaXNpb24gfHwgMSkgKyAnIGhvdXJzJztcbiAgICB9IGVsc2UgaWYgKGhvdXJzIDw9IDM2KSB7XG4gICAgICByZXR1cm4gJ2EgZGF5JztcbiAgICB9IGVsc2UgaWYgKGRheXMgPD0gMjUpIHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1hdChkYXlzLCBwcmVjaXNpb24gfHwgMSkgKyAnIGRheXMnO1xuICAgIH0gZWxzZSBpZiAoZGF5cyA8PSA0NSkge1xuICAgICAgcmV0dXJuICdhIG1vbnRoJztcbiAgICB9IGVsc2UgaWYgKGRheXMgPD0gMzQ1KSB7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtYXQobW9udGhzLCBwcmVjaXNpb24gfHwgMSkgKyAnIG1vbnRocyc7XG4gICAgfSBlbHNlIGlmIChkYXlzIDw9IDU0NSkge1xuICAgICAgcmV0dXJuICdhIHllYXInO1xuICAgIH0gZWxzZSB7IC8vIChkYXlzID4gNTQ1KVxuICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0KHllYXJzLCBwcmVjaXNpb24gfHwgMSkgKyAnIHllYXJzJztcbiAgICB9XG4gIH1cblxuXG4gIHByaXZhdGUgZm9ybWF0KHZhbHVlOiBudW1iZXIsIHByZWNpc2lvbjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gK3ZhbHVlLnRvRml4ZWQocHJlY2lzaW9uKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/*
|
|
4
|
+
* Convert milligrams into largest possible unit.
|
|
5
|
+
* Takes an precision argument that defaults to 2.
|
|
6
|
+
* Usage:
|
|
7
|
+
* weight | weight:unit:precision
|
|
8
|
+
* Example:
|
|
9
|
+
* {{ 1024 | weight:'g':2}}
|
|
10
|
+
* formats to: 1.02kg
|
|
11
|
+
*/
|
|
12
|
+
export class WeightPipe {
|
|
13
|
+
transform(value = 0, unit = 'kg', precision = 2) {
|
|
14
|
+
if (isNaN(parseFloat(String(value))) || !isFinite(value)) {
|
|
15
|
+
return '?';
|
|
16
|
+
}
|
|
17
|
+
let mg = 0;
|
|
18
|
+
switch (unit) {
|
|
19
|
+
case 'mg':
|
|
20
|
+
mg = value;
|
|
21
|
+
break;
|
|
22
|
+
case 'g':
|
|
23
|
+
mg = value * 1000;
|
|
24
|
+
break;
|
|
25
|
+
case 'kg':
|
|
26
|
+
mg = value * 1000 * 1000;
|
|
27
|
+
break;
|
|
28
|
+
case 't':
|
|
29
|
+
mg = value * 1000 * 1000 * 1000;
|
|
30
|
+
break;
|
|
31
|
+
default: throw new Error(`Unknown input unit in weight pipe: '${unit}'`);
|
|
32
|
+
}
|
|
33
|
+
const g = mg / 1000.0;
|
|
34
|
+
const kg = g / 1000.0;
|
|
35
|
+
const t = kg / 1000.0;
|
|
36
|
+
if (t > 1) {
|
|
37
|
+
return t.toFixed(+precision) + 't';
|
|
38
|
+
}
|
|
39
|
+
else if (kg > 1) {
|
|
40
|
+
return kg.toFixed(+precision) + 'kg';
|
|
41
|
+
}
|
|
42
|
+
else if (g > 1) {
|
|
43
|
+
return kg.toFixed(+precision) + 'g';
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
return mg.toFixed(+precision) + 'mg';
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: WeightPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
50
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.5", ngImport: i0, type: WeightPipe, name: "weight" }); }
|
|
51
|
+
}
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: WeightPipe, decorators: [{
|
|
53
|
+
type: Pipe,
|
|
54
|
+
args: [{ name: 'weight' }]
|
|
55
|
+
}] });
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VpZ2h0LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9waXBlcy93ZWlnaHQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFHcEQ7Ozs7Ozs7O0dBUUc7QUFFSCxNQUFNLE9BQU8sVUFBVTtJQUVuQixTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsSUFBSSxFQUFFLFNBQVMsR0FBRyxDQUFDO1FBRTNDLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQUUsT0FBTyxHQUFHLENBQUM7U0FBRTtRQUV6RSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDWCxRQUFRLElBQUksRUFBRTtZQUNWLEtBQUssSUFBSTtnQkFBRSxFQUFFLEdBQUcsS0FBSyxDQUFDO2dCQUFDLE1BQU07WUFDN0IsS0FBSyxHQUFHO2dCQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDO2dCQUFDLE1BQU07WUFDcEMsS0FBSyxJQUFJO2dCQUFFLEVBQUUsR0FBRyxLQUFLLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFBQyxNQUFNO1lBQzNDLEtBQUssR0FBRztnQkFBRyxFQUFFLEdBQUcsS0FBSyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUFDLE1BQU07WUFDbEQsT0FBTyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsSUFBSSxHQUFHLENBQUMsQ0FBQztTQUM1RTtRQUVELE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDdEIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUN0QixNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBRXRCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNQLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUN0QzthQUFNLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRTtZQUNmLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQztTQUN4QzthQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNkLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUN2QzthQUFNO1lBQ0gsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQ3hDO0lBQ0wsQ0FBQzs4R0E1QlEsVUFBVTs0R0FBVixVQUFVOzsyRkFBVixVQUFVO2tCQUR0QixJQUFJO21CQUFDLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG4vKlxuICogQ29udmVydCBtaWxsaWdyYW1zIGludG8gbGFyZ2VzdCBwb3NzaWJsZSB1bml0LlxuICogVGFrZXMgYW4gcHJlY2lzaW9uIGFyZ3VtZW50IHRoYXQgZGVmYXVsdHMgdG8gMi5cbiAqIFVzYWdlOlxuICogICB3ZWlnaHQgfCB3ZWlnaHQ6dW5pdDpwcmVjaXNpb25cbiAqIEV4YW1wbGU6XG4gKiAgIHt7IDEwMjQgfCAgd2VpZ2h0OidnJzoyfX1cbiAqICAgZm9ybWF0cyB0bzogMS4wMmtnXG4gKi9cbkBQaXBlKHtuYW1lOiAnd2VpZ2h0J30pXG5leHBvcnQgY2xhc3MgV2VpZ2h0UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gICAgdHJhbnNmb3JtKHZhbHVlID0gMCwgdW5pdCA9ICdrZycsIHByZWNpc2lvbiA9IDIpOiBzdHJpbmcge1xuXG4gICAgICAgIGlmIChpc05hTihwYXJzZUZsb2F0KFN0cmluZyh2YWx1ZSkpKSB8fCAhaXNGaW5pdGUodmFsdWUpKSB7IHJldHVybiAnPyc7IH1cblxuICAgICAgICBsZXQgbWcgPSAwO1xuICAgICAgICBzd2l0Y2ggKHVuaXQpIHtcbiAgICAgICAgICAgIGNhc2UgJ21nJzogbWcgPSB2YWx1ZTsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdnJyA6IG1nID0gdmFsdWUgKiAxMDAwOyBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2tnJzogbWcgPSB2YWx1ZSAqIDEwMDAgKiAxMDAwOyBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3QnIDogbWcgPSB2YWx1ZSAqIDEwMDAgKiAxMDAwICogMTAwMDsgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OiB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gaW5wdXQgdW5pdCBpbiB3ZWlnaHQgcGlwZTogJyR7dW5pdH0nYCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBnID0gbWcgLyAxMDAwLjA7XG4gICAgICAgIGNvbnN0IGtnID0gZyAvIDEwMDAuMDtcbiAgICAgICAgY29uc3QgdCA9IGtnIC8gMTAwMC4wO1xuXG4gICAgICAgIGlmICh0ID4gMSkge1xuICAgICAgICAgICAgcmV0dXJuIHQudG9GaXhlZCgrcHJlY2lzaW9uKSArICd0JztcbiAgICAgICAgfSBlbHNlIGlmIChrZyA+IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBrZy50b0ZpeGVkKCtwcmVjaXNpb24pICsgJ2tnJztcbiAgICAgICAgfSBlbHNlIGlmIChnID4gMSkge1xuICAgICAgICAgICAgcmV0dXJuIGtnLnRvRml4ZWQoK3ByZWNpc2lvbikgKyAnZyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbWcudG9GaXhlZCgrcHJlY2lzaW9uKSArICdtZyc7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxuIl19
|