@elderbyte/ngx-starter 18.15.2 → 19.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/fesm2022/elderbyte-ngx-starter.mjs +1097 -1125
- package/fesm2022/elderbyte-ngx-starter.mjs.map +1 -1
- package/lib/common/forms/elder-form-field-control-base.directive.d.ts +1 -1
- package/lib/common/forms/elder-from-field-base.d.ts +1 -1
- package/lib/common/forms/elder-from-field-customizable-base.d.ts +1 -1
- package/lib/common/forms/elder-from-field-entity-base.d.ts +1 -1
- package/lib/common/forms/elder-from-field-multi-entity-base.d.ts +1 -1
- package/lib/common/forms/form-field-base.component.d.ts +1 -1
- package/lib/common/forms/multi-model-base.component.d.ts +1 -1
- package/lib/common/forms/template-composite-control.d.ts +1 -1
- package/lib/common/forms/value-accessor-base.d.ts +1 -1
- package/lib/common/reactive-map.d.ts +1 -1
- package/lib/components/data-view/base/elder-data-view-base.d.ts +1 -1
- package/lib/components/forms/directives/base/elder-class-hostbinding-base.d.ts +1 -1
- package/lib/components/iframes/typed-event-message.d.ts +1 -1
- package/lib/components/panels/elder-panel.module.d.ts +5 -7
- package/lib/components/select/elder-select-base.d.ts +1 -1
- package/lib/components/select/multi/elder-multi-select-base.d.ts +1 -1
- package/lib/components/select/multi/elder-multi-select-form-field.d.ts +1 -1
- package/lib/components/select/single/elder-select-form-field.d.ts +1 -1
- package/package.json +6 -8
- package/src/lib/components/errors/exception-detail/elder-exception-detail.component.scss +2 -3
- package/src/lib/components/shell/header/elder-app-header/elder-app-header.component.scss +3 -0
- package/esm2022/elderbyte-ngx-starter.mjs +0 -5
- package/esm2022/lib/common/arrays.mjs +0 -29
- package/esm2022/lib/common/async/public_api.mjs +0 -2
- package/esm2022/lib/common/async/refreshing-entity.mjs +0 -88
- package/esm2022/lib/common/csv/csv-serializer.mjs +0 -55
- package/esm2022/lib/common/csv/csv-spec.mjs +0 -99
- package/esm2022/lib/common/csv/public_api.mjs +0 -3
- package/esm2022/lib/common/data/continuable-listing.mjs +0 -10
- package/esm2022/lib/common/data/data-context/data-context-active-page.mjs +0 -131
- package/esm2022/lib/common/data/data-context/data-context-auto-starter.mjs +0 -78
- package/esm2022/lib/common/data/data-context/data-context-base.mjs +0 -339
- package/esm2022/lib/common/data/data-context/data-context-builder.mjs +0 -245
- package/esm2022/lib/common/data/data-context/data-context-continuable-base.mjs +0 -67
- package/esm2022/lib/common/data/data-context/data-context-continuable-paged.mjs +0 -142
- package/esm2022/lib/common/data/data-context/data-context-continuable-token.mjs +0 -146
- package/esm2022/lib/common/data/data-context/data-context-life-cycle-binding.mjs +0 -32
- package/esm2022/lib/common/data/data-context/data-context-simple.mjs +0 -61
- package/esm2022/lib/common/data/data-context/data-context-source-event-binding.mjs +0 -63
- package/esm2022/lib/common/data/data-context/data-context-status.mjs +0 -46
- package/esm2022/lib/common/data/data-context/data-context.mjs +0 -30
- package/esm2022/lib/common/data/data-context/indexed-entities.mjs +0 -153
- package/esm2022/lib/common/data/data-context/mat-table-data-context-binding.mjs +0 -145
- package/esm2022/lib/common/data/data-context/public_api.mjs +0 -15
- package/esm2022/lib/common/data/datasource/data-source-adapter.mjs +0 -59
- package/esm2022/lib/common/data/datasource/data-source-base.mjs +0 -38
- package/esm2022/lib/common/data/datasource/data-source-change-event.mjs +0 -34
- package/esm2022/lib/common/data/datasource/data-source-processor.mjs +0 -198
- package/esm2022/lib/common/data/datasource/data-source.mjs +0 -23
- package/esm2022/lib/common/data/datasource/entity-id-util.mjs +0 -11
- package/esm2022/lib/common/data/datasource/fetcher/delegate-data-source.mjs +0 -127
- package/esm2022/lib/common/data/datasource/local/local-list-data-source.mjs +0 -153
- package/esm2022/lib/common/data/datasource/local/local-paged-data-source.mjs +0 -75
- package/esm2022/lib/common/data/datasource/patch/deep-partial-patcher.mjs +0 -58
- package/esm2022/lib/common/data/datasource/public_api.mjs +0 -10
- package/esm2022/lib/common/data/datasource/rest/public_api.mjs +0 -2
- package/esm2022/lib/common/data/datasource/rest/rest-client.mjs +0 -290
- package/esm2022/lib/common/data/entity-set-patch.mjs +0 -161
- package/esm2022/lib/common/data/field-comparator.mjs +0 -108
- package/esm2022/lib/common/data/filters/filter-commons.mjs +0 -12
- package/esm2022/lib/common/data/filters/filter-context.mjs +0 -135
- package/esm2022/lib/common/data/filters/filter-value.mjs +0 -2
- package/esm2022/lib/common/data/filters/filter.mjs +0 -104
- package/esm2022/lib/common/data/http-params-builder.mjs +0 -116
- package/esm2022/lib/common/data/page.mjs +0 -58
- package/esm2022/lib/common/data/public_api.mjs +0 -12
- package/esm2022/lib/common/data/required-filter-evaluator.mjs +0 -71
- package/esm2022/lib/common/data/sort-context.mjs +0 -73
- package/esm2022/lib/common/data/sort.mjs +0 -11
- package/esm2022/lib/common/data/token-chunk-request.mjs +0 -8
- package/esm2022/lib/common/enums/elder-enum-translation.service.mjs +0 -84
- package/esm2022/lib/common/enums/public_api.mjs +0 -2
- package/esm2022/lib/common/errors/exception-detail.mjs +0 -2
- package/esm2022/lib/common/errors/public_api.mjs +0 -3
- package/esm2022/lib/common/errors/standard-error-detail.mjs +0 -2
- package/esm2022/lib/common/exceptions/public_api.mjs +0 -2
- package/esm2022/lib/common/exceptions/unreachable-case-error.mjs +0 -8
- package/esm2022/lib/common/format/bytes-format.mjs +0 -15
- package/esm2022/lib/common/format/bytes-per-second-format.mjs +0 -41
- package/esm2022/lib/common/format/curency-format-util.mjs +0 -43
- package/esm2022/lib/common/format/duration-format-util.mjs +0 -44
- package/esm2022/lib/common/format/iso-interval-format-util.mjs +0 -111
- package/esm2022/lib/common/format/public_api.mjs +0 -6
- package/esm2022/lib/common/forms/elder-entity-value-accessor.mjs +0 -22
- package/esm2022/lib/common/forms/elder-form-field-control-base.directive.mjs +0 -188
- package/esm2022/lib/common/forms/elder-from-field-base.mjs +0 -94
- package/esm2022/lib/common/forms/elder-from-field-customizable-base.mjs +0 -52
- package/esm2022/lib/common/forms/elder-from-field-entity-base.mjs +0 -39
- package/esm2022/lib/common/forms/elder-from-field-multi-entity-base.mjs +0 -47
- package/esm2022/lib/common/forms/elder-multi-entity-value-accessor.mjs +0 -22
- package/esm2022/lib/common/forms/form-field-base.component.mjs +0 -111
- package/esm2022/lib/common/forms/multi-model-base.component.mjs +0 -32
- package/esm2022/lib/common/forms/public_api.mjs +0 -12
- package/esm2022/lib/common/forms/template-composite-control.mjs +0 -136
- package/esm2022/lib/common/forms/value-accessor-base.mjs +0 -146
- package/esm2022/lib/common/forms/view-providers.mjs +0 -30
- package/esm2022/lib/common/http/http-client-builder.service.mjs +0 -14
- package/esm2022/lib/common/http/http-client-pristine.mjs +0 -21
- package/esm2022/lib/common/http/public_api.mjs +0 -5
- package/esm2022/lib/common/http/transfer/data-transfer-base.mjs +0 -77
- package/esm2022/lib/common/http/transfer/data-transfer-factory.mjs +0 -106
- package/esm2022/lib/common/http/transfer/data-transfer-progress-aggregate.mjs +0 -60
- package/esm2022/lib/common/http/transfer/data-transfer-progress.mjs +0 -17
- package/esm2022/lib/common/http/transfer/data-transfer-state.mjs +0 -82
- package/esm2022/lib/common/http/transfer/data-transfer-status.mjs +0 -24
- package/esm2022/lib/common/http/transfer/data-transfer.mjs +0 -2
- package/esm2022/lib/common/http/transfer/http-data-transfer.mjs +0 -132
- package/esm2022/lib/common/http/transfer/public_api.mjs +0 -7
- package/esm2022/lib/common/http/upload/file-upload-client.mjs +0 -42
- package/esm2022/lib/common/i18n/entity/elder-multi-translate-loader.mjs +0 -53
- package/esm2022/lib/common/i18n/entity/impl/i18n-base.mjs +0 -6
- package/esm2022/lib/common/i18n/entity/impl/i18n-text.mjs +0 -16
- package/esm2022/lib/common/i18n/entity/impl/translated.mjs +0 -15
- package/esm2022/lib/common/i18n/entity/language-tag.mjs +0 -12
- package/esm2022/lib/common/i18n/entity/locale.mjs +0 -12
- package/esm2022/lib/common/i18n/entity/localisation-picker.mjs +0 -30
- package/esm2022/lib/common/i18n/entity/localized.mjs +0 -2
- package/esm2022/lib/common/i18n/entity/public_api.mjs +0 -10
- package/esm2022/lib/common/i18n/entity/translated-converter.mjs +0 -18
- package/esm2022/lib/common/i18n/entity/translated.mjs +0 -2
- package/esm2022/lib/common/i18n/public_api.mjs +0 -2
- package/esm2022/lib/common/json-map.mjs +0 -17
- package/esm2022/lib/common/objects.mjs +0 -43
- package/esm2022/lib/common/public_api.mjs +0 -23
- package/esm2022/lib/common/reactive-map.mjs +0 -69
- package/esm2022/lib/common/rxjs/operators/lazy-sample.mjs +0 -34
- package/esm2022/lib/common/rxjs/public_api.mjs +0 -2
- package/esm2022/lib/common/selection/public_api.mjs +0 -2
- package/esm2022/lib/common/selection/selection-model.mjs +0 -213
- package/esm2022/lib/common/sets.mjs +0 -45
- package/esm2022/lib/common/suggestion-provider.mjs +0 -12
- package/esm2022/lib/common/templates/template-slot-manager.mjs +0 -135
- package/esm2022/lib/common/theme-sizes.mjs +0 -2
- package/esm2022/lib/common/time/date-util.mjs +0 -91
- package/esm2022/lib/common/time/interval-coerce.mjs +0 -30
- package/esm2022/lib/common/time/interval.mjs +0 -442
- package/esm2022/lib/common/time/period-duration.mjs +0 -133
- package/esm2022/lib/common/time/public_api.mjs +0 -8
- package/esm2022/lib/common/time/temporal-plain-date-interval.mjs +0 -34
- package/esm2022/lib/common/time/temporal-util.mjs +0 -205
- package/esm2022/lib/common/time/time-util.mjs +0 -38
- package/esm2022/lib/common/url/elder-router.service.mjs +0 -54
- package/esm2022/lib/common/url/elder-url-fragment-params.service.mjs +0 -117
- package/esm2022/lib/common/url/public_api.mjs +0 -4
- package/esm2022/lib/common/url/url-query-params.mjs +0 -133
- package/esm2022/lib/common/utils/batcher.mjs +0 -35
- package/esm2022/lib/common/utils/collection-util.mjs +0 -111
- package/esm2022/lib/common/utils/filter-util.mjs +0 -133
- package/esm2022/lib/common/utils/focus-util.mjs +0 -23
- package/esm2022/lib/common/utils/input-utils.mjs +0 -6
- package/esm2022/lib/common/utils/next-number-util.mjs +0 -89
- package/esm2022/lib/common/utils/ng-zone-utils.mjs +0 -16
- package/esm2022/lib/common/utils/parse-util.mjs +0 -17
- package/esm2022/lib/common/utils/property-path-util.mjs +0 -28
- package/esm2022/lib/common/utils/public_api.mjs +0 -14
- package/esm2022/lib/common/utils/query-list-binding.mjs +0 -68
- package/esm2022/lib/common/utils/signal-input.mjs +0 -3
- package/esm2022/lib/common/utils/sort-util.mjs +0 -42
- package/esm2022/lib/common/utils/url-builder.mjs +0 -275
- package/esm2022/lib/common/utils/uuid-util.mjs +0 -28
- package/esm2022/lib/common/utils/value-wrapper.mjs +0 -19
- package/esm2022/lib/components/access-denied/elder-access-denied.component.mjs +0 -15
- package/esm2022/lib/components/access-denied/elder-access-denied.module.mjs +0 -20
- package/esm2022/lib/components/auditing/audited-entity/elder-audited-entity.component.mjs +0 -50
- package/esm2022/lib/components/auditing/elder-audit.module.mjs +0 -40
- package/esm2022/lib/components/auditing/i-audited-entity.mjs +0 -3
- package/esm2022/lib/components/badge/elder-badge/elder-badge.component.mjs +0 -162
- package/esm2022/lib/components/badge/elder-badge.directive.mjs +0 -124
- package/esm2022/lib/components/badge/elder-badge.module.mjs +0 -58
- package/esm2022/lib/components/button-group/elder-button-group/elder-button-group.component.mjs +0 -13
- package/esm2022/lib/components/button-group/elder-button-group.module.mjs +0 -21
- package/esm2022/lib/components/card-organizer/card-organizer/elder-card-organizer.component.mjs +0 -118
- package/esm2022/lib/components/card-organizer/card-organizer/elder-stack-card.directive.mjs +0 -18
- package/esm2022/lib/components/card-organizer/card-organizer-data.mjs +0 -93
- package/esm2022/lib/components/card-organizer/card-stack/elder-card-stack.component.mjs +0 -220
- package/esm2022/lib/components/card-organizer/card-stack.mjs +0 -176
- package/esm2022/lib/components/card-organizer/elder-card-organizer.module.mjs +0 -62
- package/esm2022/lib/components/cards/elder-card/elder-card-header/elder-card-header.component.mjs +0 -17
- package/esm2022/lib/components/cards/elder-card/elder-card.component.mjs +0 -167
- package/esm2022/lib/components/cards/elder-card/elder-card.module.mjs +0 -71
- package/esm2022/lib/components/chips/elder-chip-label.directive.mjs +0 -171
- package/esm2022/lib/components/chips/elder-chips.module.mjs +0 -45
- package/esm2022/lib/components/connectivity/elder-connectivity.module.mjs +0 -57
- package/esm2022/lib/components/connectivity/elder-connectivity.service.mjs +0 -61
- package/esm2022/lib/components/connectivity/offline-indicator/elder-offline-indicator.component.mjs +0 -46
- package/esm2022/lib/components/connectivity/public_api.mjs +0 -3
- package/esm2022/lib/components/containers/elder-containers.module.mjs +0 -18
- package/esm2022/lib/components/containers/elder-scroll-container/elder-scroll-container.component.mjs +0 -24
- package/esm2022/lib/components/containers/public_api.mjs +0 -2
- package/esm2022/lib/components/csv/elder-csv-export-btn/elder-csv-export-btn.component.mjs +0 -77
- package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.mjs +0 -38
- package/esm2022/lib/components/csv/elder-csv-stream-exporter-builder.service.mjs +0 -38
- package/esm2022/lib/components/csv/elder-csv-stream-exporter.mjs +0 -114
- package/esm2022/lib/components/csv/elder-csv.module.mjs +0 -24
- package/esm2022/lib/components/currency/elder-currency.module.mjs +0 -18
- package/esm2022/lib/components/currency/elder-currency.pipe.mjs +0 -37
- package/esm2022/lib/components/currency/model/currency-code.mjs +0 -38
- package/esm2022/lib/components/currency/model/currency-unit-registry.mjs +0 -30
- package/esm2022/lib/components/currency/model/currency-unit.mjs +0 -10
- package/esm2022/lib/components/currency/model/currency.mjs +0 -15
- package/esm2022/lib/components/currency/public_api.mjs +0 -7
- package/esm2022/lib/components/data-transfer/elder-data-transfer.module.mjs +0 -91
- package/esm2022/lib/components/data-transfer/elder-data-transfer.service.mjs +0 -93
- package/esm2022/lib/components/data-transfer/http-data-transfer/http-data-transfer.component.mjs +0 -102
- package/esm2022/lib/components/data-transfer/http-data-transfer-aggregate/http-data-transfer-aggregate.component.mjs +0 -34
- package/esm2022/lib/components/data-transfer/http-data-transfer-indicator/http-data-transfer-indicator.component.mjs +0 -57
- package/esm2022/lib/components/data-transfer/http-data-transfer-overview/http-data-transfer-overview.component.mjs +0 -34
- package/esm2022/lib/components/data-view/base/data-view-options-provider-binding.mjs +0 -69
- package/esm2022/lib/components/data-view/base/elder-data-view-base.mjs +0 -265
- package/esm2022/lib/components/data-view/base/elder-data-view-options-provider.mjs +0 -44
- package/esm2022/lib/components/data-view/base/elder-data-view-options.mjs +0 -45
- package/esm2022/lib/components/data-view/base/elder-data-view.mjs +0 -3
- package/esm2022/lib/components/data-view/base/public_api.mjs +0 -6
- package/esm2022/lib/components/data-view/common/composite-sort/composite-sort-context.mjs +0 -30
- package/esm2022/lib/components/data-view/common/composite-sort/composite-sort-dc.directive.mjs +0 -55
- package/esm2022/lib/components/data-view/common/composite-sort/composite-sort.mjs +0 -68
- package/esm2022/lib/components/data-view/common/composite-sort/elder-composite-sort/elder-composite-sort.component.mjs +0 -101
- package/esm2022/lib/components/data-view/common/data-context-state-indicator/data-context-state-indicator.component.mjs +0 -45
- package/esm2022/lib/components/data-view/common/elder-data-common.module.mjs +0 -125
- package/esm2022/lib/components/data-view/common/elder-data-toolbar/elder-data-toolbar.component.mjs +0 -140
- package/esm2022/lib/components/data-view/common/elder-single-sort/elder-single-sort.component.mjs +0 -100
- package/esm2022/lib/components/data-view/common/selection/data-context-selection.directive.mjs +0 -103
- package/esm2022/lib/components/data-view/common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component.mjs +0 -36
- package/esm2022/lib/components/data-view/common/selection/master-selection-state.mjs +0 -10
- package/esm2022/lib/components/data-view/elder-data-view-interaction-mode.mjs +0 -2
- package/esm2022/lib/components/data-view/grid/elder-grid/elder-grid.component.mjs +0 -345
- package/esm2022/lib/components/data-view/grid/elder-grid.module.mjs +0 -91
- package/esm2022/lib/components/data-view/master-detail/elder-detail-dialog/elder-detail-dialog.component.mjs +0 -75
- package/esm2022/lib/components/data-view/master-detail/elder-detail.directive.mjs +0 -50
- package/esm2022/lib/components/data-view/master-detail/elder-master-activation.directive.mjs +0 -79
- package/esm2022/lib/components/data-view/master-detail/elder-master-detail-mode.mjs +0 -2
- package/esm2022/lib/components/data-view/master-detail/elder-master-detail-provider.mjs +0 -20
- package/esm2022/lib/components/data-view/master-detail/elder-master-detail.component.mjs +0 -119
- package/esm2022/lib/components/data-view/master-detail/elder-master-detail.module.mjs +0 -116
- package/esm2022/lib/components/data-view/master-detail/elder-master-detail.service.mjs +0 -89
- package/esm2022/lib/components/data-view/master-detail/elder-master.directive.mjs +0 -23
- package/esm2022/lib/components/data-view/master-detail/master-detail-activation-event.mjs +0 -12
- package/esm2022/lib/components/data-view/public_api.mjs +0 -7
- package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.component.mjs +0 -18
- package/esm2022/lib/components/data-view/simple/elder-simple-selection-view/elder-simple-selection-view.module.mjs +0 -104
- package/esm2022/lib/components/data-view/table/activation/activation-event-source.mjs +0 -7
- package/esm2022/lib/components/data-view/table/activation/elder-activation-context.mjs +0 -2
- package/esm2022/lib/components/data-view/table/activation/elder-delete-active.directive.mjs +0 -114
- package/esm2022/lib/components/data-view/table/activation/elder-table-activation-options.mjs +0 -2
- package/esm2022/lib/components/data-view/table/activation/elder-table-activation.directive.mjs +0 -315
- package/esm2022/lib/components/data-view/table/activation/item-activation-event.mjs +0 -8
- package/esm2022/lib/components/data-view/table/activation/item-activation-options.mjs +0 -7
- package/esm2022/lib/components/data-view/table/activation/public_api.mjs +0 -8
- package/esm2022/lib/components/data-view/table/elder-center-cell.directive.mjs +0 -23
- package/esm2022/lib/components/data-view/table/elder-number-cell.directive.mjs +0 -30
- package/esm2022/lib/components/data-view/table/elder-paginator-intl.mjs +0 -73
- package/esm2022/lib/components/data-view/table/elder-table/elder-table-toolbar.directive.mjs +0 -21
- package/esm2022/lib/components/data-view/table/elder-table/elder-table.component.mjs +0 -338
- package/esm2022/lib/components/data-view/table/elder-table-column.directive.mjs +0 -18
- package/esm2022/lib/components/data-view/table/elder-table-extension.directive.mjs +0 -92
- package/esm2022/lib/components/data-view/table/elder-table-root.directive.mjs +0 -26
- package/esm2022/lib/components/data-view/table/elder-table-row.directive.mjs +0 -156
- package/esm2022/lib/components/data-view/table/elder-table-sort.directive.mjs +0 -23
- package/esm2022/lib/components/data-view/table/elder-table.module.mjs +0 -184
- package/esm2022/lib/components/data-view/table/model/elder-column-layout.mjs +0 -110
- package/esm2022/lib/components/data-view/table/model/elder-table-model-cdk-table-binding.mjs +0 -85
- package/esm2022/lib/components/data-view/table/model/elder-table-model-provider.mjs +0 -40
- package/esm2022/lib/components/data-view/table/model/elder-table-model-query-group.mjs +0 -89
- package/esm2022/lib/components/data-view/table/model/elder-table-model.mjs +0 -167
- package/esm2022/lib/components/dialogs/confirm-dialog/elder-confirm-dialog.component.mjs +0 -37
- package/esm2022/lib/components/dialogs/elder-dialog-config.mjs +0 -3
- package/esm2022/lib/components/dialogs/elder-dialog.module.mjs +0 -87
- package/esm2022/lib/components/dialogs/elder-dialog.service.mjs +0 -199
- package/esm2022/lib/components/dialogs/question-dialog/elder-question-dialog.component.mjs +0 -57
- package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog/elder-selection-dialog.component.mjs +0 -43
- package/esm2022/lib/components/dialogs/selection-dialog/elder-selection-dialog.directive.mjs +0 -47
- package/esm2022/lib/components/errors/elder-error.module.mjs +0 -39
- package/esm2022/lib/components/errors/error-util.mjs +0 -94
- package/esm2022/lib/components/errors/exception-detail/elder-exception-detail.component.mjs +0 -77
- package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.component.mjs +0 -55
- package/esm2022/lib/components/expand-toggle-button/elder-expand-toggle-button.module.mjs +0 -35
- package/esm2022/lib/components/files/blob-url.mjs +0 -10
- package/esm2022/lib/components/files/blob-viewer/elder-blob-viewer.component.mjs +0 -224
- package/esm2022/lib/components/files/drag-n-drop/elder-drop-zone/elder-drop-zone.component.mjs +0 -44
- package/esm2022/lib/components/files/drag-n-drop/global-drag-drop.service.mjs +0 -84
- package/esm2022/lib/components/files/elder-file-drop-zone.directive.mjs +0 -145
- package/esm2022/lib/components/files/elder-file-select-input.mjs +0 -119
- package/esm2022/lib/components/files/elder-file-select.directive.mjs +0 -167
- package/esm2022/lib/components/files/elder-file.module.mjs +0 -85
- package/esm2022/lib/components/files/file-select/file-select.component.mjs +0 -54
- package/esm2022/lib/components/files/file-system-api.mjs +0 -100
- package/esm2022/lib/components/files/file-upload/file-upload.component.mjs +0 -80
- package/esm2022/lib/components/files/listing/file-entry.mjs +0 -92
- package/esm2022/lib/components/files/listing/file-listing-rx.mjs +0 -64
- package/esm2022/lib/components/files/listing/file-listing-system-handle.mjs +0 -35
- package/esm2022/lib/components/files/listing/file-listing-webkit.mjs +0 -76
- package/esm2022/lib/components/forms/clipboard/elder-clipboard.service.mjs +0 -51
- package/esm2022/lib/components/forms/directives/base/elder-class-hostbinding-base.mjs +0 -34
- package/esm2022/lib/components/forms/directives/checkbox/elder-single-state-checkbox-controller.mjs +0 -97
- package/esm2022/lib/components/forms/directives/checkbox/elder-single-state-checkbox.directive.mjs +0 -50
- package/esm2022/lib/components/forms/directives/checkbox/elder-triple-state-checkbox-controller.mjs +0 -102
- package/esm2022/lib/components/forms/directives/checkbox/elder-triple-state-checkbox.directive.mjs +0 -50
- package/esm2022/lib/components/forms/directives/elder-clipboard-put.directive.mjs +0 -38
- package/esm2022/lib/components/forms/directives/elder-delayed-focus.directive.mjs +0 -43
- package/esm2022/lib/components/forms/directives/elder-form-field-dense.directive.mjs +0 -83
- package/esm2022/lib/components/forms/directives/elder-form-field-label.directive.mjs +0 -84
- package/esm2022/lib/components/forms/directives/elder-form-field-no-hint.directive.mjs +0 -42
- package/esm2022/lib/components/forms/directives/elder-form-field-no-spinner.directive.mjs +0 -35
- package/esm2022/lib/components/forms/directives/elder-forms-directives.module.mjs +0 -142
- package/esm2022/lib/components/forms/directives/elder-initial-value.directive.mjs +0 -67
- package/esm2022/lib/components/forms/directives/elder-input-pattern.directive.mjs +0 -78
- package/esm2022/lib/components/forms/directives/elder-key-event.directive.mjs +0 -112
- package/esm2022/lib/components/forms/directives/elder-next-focusable.directive.mjs +0 -102
- package/esm2022/lib/components/forms/directives/elder-plug-parent-form.directive.mjs +0 -37
- package/esm2022/lib/components/forms/directives/elder-stop-event-propagation.directive.mjs +0 -30
- package/esm2022/lib/components/forms/directives/elder-tab-focus-trap.directive.mjs +0 -161
- package/esm2022/lib/components/forms/directives/elder-touched.directive.mjs +0 -28
- package/esm2022/lib/components/forms/directives/validation/elder-validation-error.directive.mjs +0 -88
- package/esm2022/lib/components/forms/directives/validation/strategies/common-validation-message-strategy.mjs +0 -47
- package/esm2022/lib/components/forms/directives/validation/strategies/dynamic-validation-message-strategy.mjs +0 -48
- package/esm2022/lib/components/forms/directives/validation/strategies/fallback-validation-message-strategy.mjs +0 -6
- package/esm2022/lib/components/forms/directives/validation/validation-message-renderer.service.mjs +0 -53
- package/esm2022/lib/components/forms/directives/validation/validation-message-strategy.mjs +0 -2
- package/esm2022/lib/components/forms/directives/validation/validators/elder-max.validator.mjs +0 -36
- package/esm2022/lib/components/forms/directives/validation/validators/elder-min.validator.mjs +0 -36
- package/esm2022/lib/components/forms/directives/validation/validators/elder-multiple-of.validator.mjs +0 -112
- package/esm2022/lib/components/forms/directives/validation/validators/elder-required-ignore-zero.validator.mjs +0 -69
- package/esm2022/lib/components/forms/elder-forms.module.mjs +0 -22
- package/esm2022/lib/components/forms/public_api.mjs +0 -6
- package/esm2022/lib/components/forms/search/domain/context/search-context.mjs +0 -73
- package/esm2022/lib/components/forms/search/domain/context/search-context.service.mjs +0 -42
- package/esm2022/lib/components/forms/search/domain/input/input-value.mjs +0 -2
- package/esm2022/lib/components/forms/search/domain/input/search-input-state.mjs +0 -88
- package/esm2022/lib/components/forms/search/domain/input/search-input.mjs +0 -2
- package/esm2022/lib/components/forms/search/domain/input/simple-search-input.mjs +0 -50
- package/esm2022/lib/components/forms/search/domain/url/elder-search-url.directive.mjs +0 -92
- package/esm2022/lib/components/forms/search/domain/url/elder-search-url.service.mjs +0 -166
- package/esm2022/lib/components/forms/search/domain/url/search-query-params-parser.mjs +0 -81
- package/esm2022/lib/components/forms/search/elder-search-context.directive.mjs +0 -256
- package/esm2022/lib/components/forms/search/elder-search-input.directive.mjs +0 -258
- package/esm2022/lib/components/forms/search/elder-search.module.mjs +0 -115
- package/esm2022/lib/components/forms/search/filter/default-input-filter-converter.mjs +0 -45
- package/esm2022/lib/components/forms/search/filter/input-filter-converter.mjs +0 -2
- package/esm2022/lib/components/forms/search/search-box/elder-search-box.component.mjs +0 -131
- package/esm2022/lib/components/forms/search/search-box/elder-search-panel.component.mjs +0 -24
- package/esm2022/lib/components/global-search/elder-global-search.component.mjs +0 -136
- package/esm2022/lib/components/global-search/elder-global-search.module.mjs +0 -47
- package/esm2022/lib/components/global-search/elder-global-search.service.mjs +0 -95
- package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.component.mjs +0 -90
- package/esm2022/lib/components/graph/elder-progress-bar/elder-progress-bar.module.mjs +0 -19
- package/esm2022/lib/components/graph/elder-progress-bar/sub-bar.mjs +0 -7
- package/esm2022/lib/components/graph/public_api.mjs +0 -2
- package/esm2022/lib/components/headers/elder-header/elder-header.component.mjs +0 -29
- package/esm2022/lib/components/headers/elder-header.module.mjs +0 -42
- package/esm2022/lib/components/http-support/elder-http-client.service.mjs +0 -63
- package/esm2022/lib/components/http-support/public_api.mjs +0 -2
- package/esm2022/lib/components/i18n/entities/elder-i18n-entities.module.mjs +0 -125
- package/esm2022/lib/components/i18n/entities/elder-localized-input/elder-localized-input.component.mjs +0 -157
- package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog/elder-localized-input-dialog.component.mjs +0 -39
- package/esm2022/lib/components/i18n/entities/elder-localized-input-dialog.service.mjs +0 -30
- package/esm2022/lib/components/i18n/entities/elder-localized-input-table/elder-localized-input-table.component.mjs +0 -177
- package/esm2022/lib/components/i18n/entities/elder-localized-text-column.directive.mjs +0 -31
- package/esm2022/lib/components/i18n/entities/elder-localized-texts.directive.mjs +0 -56
- package/esm2022/lib/components/i18n/entities/picker/i18n-pick-async.pipe.mjs +0 -40
- package/esm2022/lib/components/i18n/entities/picker/i18n-pick.pipe.mjs +0 -31
- package/esm2022/lib/components/i18n/entities/picker/localisation-picker.service.mjs +0 -74
- package/esm2022/lib/components/i18n/language/elder-language-config.mjs +0 -3
- package/esm2022/lib/components/i18n/language/elder-language-interceptor.mjs +0 -70
- package/esm2022/lib/components/i18n/language/elder-language.module.mjs +0 -73
- package/esm2022/lib/components/i18n/language/elder-language.service.mjs +0 -120
- package/esm2022/lib/components/i18n/language/language-switcher/elder-language-switcher.component.mjs +0 -79
- package/esm2022/lib/components/i18n/locales/elder-locales-de-ch.module.mjs +0 -53
- package/esm2022/lib/components/i18n/public_api.mjs +0 -4
- package/esm2022/lib/components/iframes/data-view/data-view-iframe/data-view-iframe.component.mjs +0 -129
- package/esm2022/lib/components/iframes/data-view/data-view-iframe-adapter.directive.mjs +0 -141
- package/esm2022/lib/components/iframes/elder-iframe.module.mjs +0 -106
- package/esm2022/lib/components/iframes/iframe-close.directive.mjs +0 -41
- package/esm2022/lib/components/iframes/iframe-dialog/iframe-dialog.component.mjs +0 -51
- package/esm2022/lib/components/iframes/iframe-host/iframe-host.component.mjs +0 -144
- package/esm2022/lib/components/iframes/iframe-messages.mjs +0 -5
- package/esm2022/lib/components/iframes/iframe-side-content/iframe-side-content.component.mjs +0 -80
- package/esm2022/lib/components/iframes/iframe.service.mjs +0 -54
- package/esm2022/lib/components/iframes/typed-event-message.mjs +0 -42
- package/esm2022/lib/components/infinitescroll/elder-infinite-autocomplete.directive.mjs +0 -65
- package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.directive.mjs +0 -166
- package/esm2022/lib/components/infinitescroll/elder-infinite-scroll.module.mjs +0 -20
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-autocomplete-option-selected.mjs +0 -9
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete/elder-suggestion-panel.component.mjs +0 -233
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete-many.directive.mjs +0 -202
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete.directive.mjs +0 -120
- package/esm2022/lib/components/input/autocomplete/elder-autocomplete.module.mjs +0 -61
- package/esm2022/lib/components/input/autocomplete/many/word-position-finder.mjs +0 -58
- package/esm2022/lib/components/input/public_api.mjs +0 -2
- package/esm2022/lib/components/labels/elder-labels.module.mjs +0 -50
- package/esm2022/lib/components/labels/labels-input/labels-input.component.mjs +0 -239
- package/esm2022/lib/components/measures/dimensions/dimensions-input/elder-dimensions-input.component.mjs +0 -268
- package/esm2022/lib/components/measures/dimensions/validation/elder-required-dimensions.validator.mjs +0 -92
- package/esm2022/lib/components/measures/directives/elder-unit-select.directive.mjs +0 -65
- package/esm2022/lib/components/measures/elder-measures.module.mjs +0 -130
- package/esm2022/lib/components/measures/elder-quantity-transform.pipe.mjs +0 -31
- package/esm2022/lib/components/measures/elder-quantity.pipe.mjs +0 -43
- package/esm2022/lib/components/measures/elder-unit.service.mjs +0 -113
- package/esm2022/lib/components/measures/model/dimensions.mjs +0 -17
- package/esm2022/lib/components/measures/model/quantity.mjs +0 -12
- package/esm2022/lib/components/measures/model/unit-dimension.mjs +0 -14
- package/esm2022/lib/components/measures/model/unit-registry.mjs +0 -81
- package/esm2022/lib/components/measures/model/unit.mjs +0 -143
- package/esm2022/lib/components/measures/public_api.mjs +0 -8
- package/esm2022/lib/components/measures/quantity-input/quantity-form-field/elder-quantity-form-field.component.mjs +0 -44
- package/esm2022/lib/components/measures/quantity-input/quantity-input-control/elder-quantity-input-control.component.mjs +0 -173
- package/esm2022/lib/components/measures/quantity-input/validation/elder-quantity-range.validator.mjs +0 -84
- package/esm2022/lib/components/measures/quantity-input/validation/elder-required-quantity.validator.mjs +0 -73
- package/esm2022/lib/components/measures/util/elder-quantity.service.mjs +0 -341
- package/esm2022/lib/components/navigation/bread-crumbs/bread-crumbs/elder-bread-crumbs.component.mjs +0 -184
- package/esm2022/lib/components/navigation/bread-crumbs/elder-bread-crumbs.module.mjs +0 -59
- package/esm2022/lib/components/navigation/bread-crumbs/path/path.mjs +0 -37
- package/esm2022/lib/components/navigation/nav/elder-nav.module.mjs +0 -60
- package/esm2022/lib/components/navigation/nav/nav-group/elder-nav-group.component.mjs +0 -121
- package/esm2022/lib/components/navigation/nav/nav-link/elder-nav-link.component.mjs +0 -174
- package/esm2022/lib/components/navigation/nav/nav-list/elder-nav-list.component.mjs +0 -68
- package/esm2022/lib/components/navigation/public_api.mjs +0 -4
- package/esm2022/lib/components/navigation/toolbar/elder-toolbar-column.directive.mjs +0 -48
- package/esm2022/lib/components/navigation/toolbar/elder-toolbar.module.mjs +0 -83
- package/esm2022/lib/components/navigation/toolbar/elder-toolbar.service.mjs +0 -68
- package/esm2022/lib/components/navigation/toolbar/toolbar/elder-toolbar.component.mjs +0 -71
- package/esm2022/lib/components/navigation/toolbar/toolbar-column-position.mjs +0 -2
- package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.component.mjs +0 -39
- package/esm2022/lib/components/navigation/toolbar/toolbar-title/elder-toolbar-title.service.mjs +0 -86
- package/esm2022/lib/components/overlays/elder-overlay-origin.directive.mjs +0 -44
- package/esm2022/lib/components/overlays/elder-overlay-ref.mjs +0 -41
- package/esm2022/lib/components/overlays/elder-overlay-trigger.directive.mjs +0 -73
- package/esm2022/lib/components/overlays/elder-overlay.component.mjs +0 -232
- package/esm2022/lib/components/overlays/elder-overlay.module.mjs +0 -35
- package/esm2022/lib/components/page/exit-guard/page-exit-guard.module.mjs +0 -20
- package/esm2022/lib/components/page/exit-guard/page-exit-guard.service.mjs +0 -129
- package/esm2022/lib/components/page/exit-guard/page-exit-lock/page-exit-lock.component.mjs +0 -25
- package/esm2022/lib/components/page/exit-guard/page-exit-lock-indicator/page-exit-lock-indicator.component.mjs +0 -29
- package/esm2022/lib/components/page/exit-guard/page-exit-lock-overview/page-exit-lock-overview.component.mjs +0 -26
- package/esm2022/lib/components/page/public_api.mjs +0 -2
- package/esm2022/lib/components/panels/card-panel/elder-card-panel.component.mjs +0 -12
- package/esm2022/lib/components/panels/elder-dialog-panel/elder-dialog-panel.component.mjs +0 -12
- package/esm2022/lib/components/panels/elder-panel.module.mjs +0 -60
- package/esm2022/lib/components/panels/flat/elder-panel.component.mjs +0 -26
- package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel-trigger.directive.mjs +0 -70
- package/esm2022/lib/components/panels/toggle-panel/elder-toggle-panel.component.mjs +0 -74
- package/esm2022/lib/components/public_api.mjs +0 -43
- package/esm2022/lib/components/scrollbar/elder-scrollbar.directive.mjs +0 -63
- package/esm2022/lib/components/scrollbar/elder-scrollbar.module.mjs +0 -17
- package/esm2022/lib/components/select/auto/elder-auto-select-first.directive.mjs +0 -95
- package/esm2022/lib/components/select/auto/elder-auto-select-first.service.mjs +0 -38
- package/esm2022/lib/components/select/auto/elder-auto-select-suggest-first.directive.mjs +0 -64
- package/esm2022/lib/components/select/auto/elder-select-first-util.mjs +0 -55
- package/esm2022/lib/components/select/elder-select-base.mjs +0 -333
- package/esm2022/lib/components/select/elder-select-chip.directive.mjs +0 -48
- package/esm2022/lib/components/select/elder-select-on-tab.directive.mjs +0 -139
- package/esm2022/lib/components/select/elder-select-value.directive.mjs +0 -18
- package/esm2022/lib/components/select/elder-select.module.mjs +0 -229
- package/esm2022/lib/components/select/filter/elder-chip-filter-style-resolver.mjs +0 -74
- package/esm2022/lib/components/select/filter/elder-chips-include-exclude.directive.mjs +0 -148
- package/esm2022/lib/components/select/filter/elder-filter-chip-template/elder-filter-chip-template.component.mjs +0 -51
- package/esm2022/lib/components/select/filter/include-exclude-model-filter-adapter.mjs +0 -61
- package/esm2022/lib/components/select/filter/include-exclude-selection-model.mjs +0 -160
- package/esm2022/lib/components/select/multi/elder-chip-select-option/elder-select-option.component.mjs +0 -16
- package/esm2022/lib/components/select/multi/elder-multi-select-base.mjs +0 -386
- package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/chip-options-provider.mjs +0 -87
- package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/elder-multi-select-chip-options.component.mjs +0 -263
- package/esm2022/lib/components/select/multi/elder-multi-select-chip-options/select-option-chip-spec.mjs +0 -15
- package/esm2022/lib/components/select/multi/elder-multi-select-chips/elder-multi-select-chips.component.mjs +0 -274
- package/esm2022/lib/components/select/multi/elder-multi-select-chips/select-chip-spec.mjs +0 -15
- package/esm2022/lib/components/select/multi/elder-multi-select-form-field.mjs +0 -86
- package/esm2022/lib/components/select/multi/elder-mutli-select-all-directive.mjs +0 -34
- package/esm2022/lib/components/select/multi/elder-search-include-exclude.directive.mjs +0 -146
- package/esm2022/lib/components/select/multi/public_api.mjs +0 -5
- package/esm2022/lib/components/select/popup/selection-model-popup-trigger-adapter.directive.mjs +0 -89
- package/esm2022/lib/components/select/popup/selection-model-popup.directive.mjs +0 -126
- package/esm2022/lib/components/select/popup/templated-selection-dialog/templated-selection-dialog.component.mjs +0 -58
- package/esm2022/lib/components/select/public_api.mjs +0 -5
- package/esm2022/lib/components/select/single/elder-clear-select.directive.mjs +0 -60
- package/esm2022/lib/components/select/single/elder-select/elder-select.component.mjs +0 -444
- package/esm2022/lib/components/select/single/elder-select-form-field.mjs +0 -45
- package/esm2022/lib/components/select-chip-list/chip-list-select/elder-chip-list-select.component.mjs +0 -148
- package/esm2022/lib/components/select-chip-list/elder-chip-list-select.module.mjs +0 -46
- package/esm2022/lib/components/shell/drawers/drawer-outlet-binding.mjs +0 -64
- package/esm2022/lib/components/shell/drawers/elder-route-outlet-drawer.service.mjs +0 -119
- package/esm2022/lib/components/shell/drawers/elder-router-outlet.service.mjs +0 -128
- package/esm2022/lib/components/shell/elder-shell-slot.directive.mjs +0 -47
- package/esm2022/lib/components/shell/elder-shell.module.mjs +0 -101
- package/esm2022/lib/components/shell/elder-shell.service.mjs +0 -142
- package/esm2022/lib/components/shell/header/elder-app-header/elder-app-header.component.mjs +0 -75
- package/esm2022/lib/components/shell/shell/elder-shell.component.mjs +0 -238
- package/esm2022/lib/components/shell/shell-content-slot.mjs +0 -2
- package/esm2022/lib/components/shell/shell-navigation-toggle/elder-shell-navigation-toggle.component.mjs +0 -137
- package/esm2022/lib/components/tabs/elder-tab/elder-tab.directive.mjs +0 -26
- package/esm2022/lib/components/tabs/elder-tab-group-routing/elder-tab-group-routing.directive.mjs +0 -257
- package/esm2022/lib/components/tabs/elder-tab.module.mjs +0 -21
- package/esm2022/lib/components/theme/elder-theme-applier.directive.mjs +0 -62
- package/esm2022/lib/components/theme/elder-theme-preference.service.mjs +0 -73
- package/esm2022/lib/components/theme/elder-theme-toggle/elder-theme-toggle.component.mjs +0 -74
- package/esm2022/lib/components/theme/elder-theme.directive.mjs +0 -64
- package/esm2022/lib/components/theme/elder-theme.module.mjs +0 -68
- package/esm2022/lib/components/theme/elder-theme.service.mjs +0 -121
- package/esm2022/lib/components/theme/known-elder-themes.mjs +0 -6
- package/esm2022/lib/components/theme/public_api.mjs +0 -2
- package/esm2022/lib/components/theme/theme-spec.mjs +0 -11
- package/esm2022/lib/components/time/date-adapters/custom-date-adapter.mjs +0 -43
- package/esm2022/lib/components/time/date-formats/locale-date-formats.mjs +0 -28
- package/esm2022/lib/components/time/duration/duration-bucket.mjs +0 -68
- package/esm2022/lib/components/time/duration/duration-format.mjs +0 -271
- package/esm2022/lib/components/time/duration/elder-duration-input/elder-duration-input.component.mjs +0 -110
- package/esm2022/lib/components/time/duration/iso-duration-str.mjs +0 -2
- package/esm2022/lib/components/time/elder-date-switcher/elder-date-switcher.component.mjs +0 -96
- package/esm2022/lib/components/time/elder-date-time-input/elder-date-time-input.component.mjs +0 -98
- package/esm2022/lib/components/time/elder-interval-input/elder-interval-input.component.mjs +0 -217
- package/esm2022/lib/components/time/elder-interval-picker/controller/interval-anchor-controller.mjs +0 -21
- package/esm2022/lib/components/time/elder-interval-picker/controller/interval-calendar-controller.mjs +0 -24
- package/esm2022/lib/components/time/elder-interval-picker/controller/interval-controller.mjs +0 -43
- package/esm2022/lib/components/time/elder-interval-picker/controller/interval-form-controller.mjs +0 -69
- package/esm2022/lib/components/time/elder-interval-picker/controller/interval-select-controller.mjs +0 -117
- package/esm2022/lib/components/time/elder-interval-picker/controller/interval-shift-controller.mjs +0 -44
- package/esm2022/lib/components/time/elder-interval-picker/elder-interval-picker.component.mjs +0 -198
- package/esm2022/lib/components/time/elder-interval-picker/interval-picker-binding/elder-interval-picker-binding.directive.mjs +0 -41
- package/esm2022/lib/components/time/elder-interval-picker/interval-picker-toggle/elder-interval-picker-toggle.component.mjs +0 -144
- package/esm2022/lib/components/time/elder-interval-picker/manager/interval-picker-state-manager.mjs +0 -93
- package/esm2022/lib/components/time/elder-interval-picker/model/anchor-state.mjs +0 -54
- package/esm2022/lib/components/time/elder-interval-picker/model/interval-state.mjs +0 -37
- package/esm2022/lib/components/time/elder-interval-picker/model/smart-shift-state.mjs +0 -10
- package/esm2022/lib/components/time/elder-interval-picker/presenter/interval-picker-presenter.mjs +0 -96
- package/esm2022/lib/components/time/elder-interval-picker/util/interval-picker-util.mjs +0 -194
- package/esm2022/lib/components/time/elder-local-date-input/elder-local-date-input.component.mjs +0 -268
- package/esm2022/lib/components/time/elder-local-time-input/elder-local-time-input.component.mjs +0 -85
- package/esm2022/lib/components/time/elder-time.module.mjs +0 -154
- package/esm2022/lib/components/time/period/elder-period-input/elder-period-input.component.mjs +0 -118
- package/esm2022/lib/components/time/period/period-bucket.mjs +0 -31
- package/esm2022/lib/components/time/period/period-format.mjs +0 -89
- package/esm2022/lib/components/time/pipes/to-iso-date-string.pipe.mjs +0 -39
- package/esm2022/lib/components/time/public_api.mjs +0 -8
- package/esm2022/lib/components/toasts/elder-toast.module.mjs +0 -36
- package/esm2022/lib/components/toasts/elder-toast.service.mjs +0 -170
- package/esm2022/lib/components/toasts/standard-toast/standard-toast.component.mjs +0 -80
- package/esm2022/lib/components/toasts/toast-type.mjs +0 -7
- package/esm2022/lib/components/toasts/toast.mjs +0 -2
- package/esm2022/lib/components/url-fragment/elder-url-fragment.mjs +0 -9
- package/esm2022/lib/components/url-fragment/elder-url-fragment.module.mjs +0 -52
- package/esm2022/lib/components/url-fragment/url-fragment-switcher/elder-url-fragment-switcher.component.mjs +0 -95
- package/esm2022/lib/components/viewers/elder-svg-viewer/elder-svg-viewer.component.mjs +0 -64
- package/esm2022/lib/components/viewers/elder-viewers.module.mjs +0 -18
- package/esm2022/lib/features/event-source/fetch/public_api.mjs +0 -3
- package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.mjs +0 -219
- package/esm2022/lib/features/event-source/fetch/reactive-fetch-event-source.service.mjs +0 -53
- package/esm2022/lib/features/event-source/public_api.mjs +0 -3
- package/esm2022/lib/features/event-source/standard/elder-event-source.service.mjs +0 -56
- package/esm2022/lib/features/event-source/standard/public_api.mjs +0 -3
- package/esm2022/lib/features/event-source/standard/reactive-event-source.mjs +0 -199
- package/esm2022/lib/features/kafent/access-token-provider.mjs +0 -20
- package/esm2022/lib/features/kafent/kafent-config.mjs +0 -24
- package/esm2022/lib/features/kafent/kafent-event-stream.mjs +0 -25
- package/esm2022/lib/features/kafent/kafent-event.mjs +0 -3
- package/esm2022/lib/features/kafent/kafent-event.service.mjs +0 -115
- package/esm2022/lib/features/kafent/kafent-live-event-request.mjs +0 -2
- package/esm2022/lib/features/kafent/kafent.module.mjs +0 -58
- package/esm2022/lib/features/kafent/sse/kafent-event-stream-sse.service.mjs +0 -131
- package/esm2022/lib/features/kafent/sse/kafent-topic-sse.mjs +0 -97
- package/esm2022/lib/features/public_api.mjs +0 -3
- package/esm2022/lib/pipes/bytes.pipe.mjs +0 -27
- package/esm2022/lib/pipes/elder-pipes.module.mjs +0 -114
- package/esm2022/lib/pipes/elder-repeat.pipe.mjs +0 -24
- package/esm2022/lib/pipes/elder-round.pipe.mjs +0 -36
- package/esm2022/lib/pipes/elder-safe-url.pipe.mjs +0 -21
- package/esm2022/lib/pipes/elder-truncate.pipe.mjs +0 -41
- package/esm2022/lib/pipes/iso-duration.pipe.mjs +0 -41
- package/esm2022/lib/pipes/iso-interval-parse.pipe.mjs +0 -49
- package/esm2022/lib/pipes/iso-interval.pipe.mjs +0 -62
- package/esm2022/lib/pipes/public_api.mjs +0 -2
- package/esm2022/lib/pipes/time-ago.pipe.mjs +0 -110
- package/esm2022/lib/pipes/time-duration.pipe.mjs +0 -101
- package/esm2022/lib/pipes/weight.pipe.mjs +0 -60
- package/esm2022/public_api.mjs +0 -8
- package/lib/components/panels/flat/elder-panel.component.d.ts +0 -15
- package/src/lib/components/panels/flat/elder-panel.component.scss +0 -3
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import { JsonMapUtil } from '../json-map';
|
|
2
|
-
export class EntitySetPatch {
|
|
3
|
-
/***************************************************************************
|
|
4
|
-
* *
|
|
5
|
-
* Static Builder *
|
|
6
|
-
* *
|
|
7
|
-
**************************************************************************/
|
|
8
|
-
static start(idToMapKeyFn) {
|
|
9
|
-
return new EntitySetPatch(idToMapKeyFn);
|
|
10
|
-
}
|
|
11
|
-
static idToMapKeyDefault(id) {
|
|
12
|
-
if (typeof id === 'string') {
|
|
13
|
-
return id;
|
|
14
|
-
}
|
|
15
|
-
else if (typeof id === 'number') {
|
|
16
|
-
return id;
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
return id + '';
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
/***************************************************************************
|
|
23
|
-
* *
|
|
24
|
-
* Constructor *
|
|
25
|
-
* *
|
|
26
|
-
**************************************************************************/
|
|
27
|
-
constructor(idToMapKeyFn) {
|
|
28
|
-
this.upsertsById = {};
|
|
29
|
-
this.updatesById = {};
|
|
30
|
-
this.upsertOnes = [];
|
|
31
|
-
this.updateOnes = [];
|
|
32
|
-
this.idToMapKeyFn = idToMapKeyFn ?? EntitySetPatch.idToMapKeyDefault;
|
|
33
|
-
}
|
|
34
|
-
/***************************************************************************
|
|
35
|
-
* *
|
|
36
|
-
* Query *
|
|
37
|
-
* *
|
|
38
|
-
**************************************************************************/
|
|
39
|
-
getUpsertsById() {
|
|
40
|
-
return JsonMapUtil.toMap(this.upsertsById);
|
|
41
|
-
}
|
|
42
|
-
getUpdatesById() {
|
|
43
|
-
return JsonMapUtil.toMap(this.updatesById);
|
|
44
|
-
}
|
|
45
|
-
getUpsertOnes() {
|
|
46
|
-
return [...this.upsertOnes];
|
|
47
|
-
}
|
|
48
|
-
getUpdateOnes() {
|
|
49
|
-
return [...this.updateOnes];
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Gets all ids which should be deleted.
|
|
53
|
-
* Also consider isDeleteOther, which means
|
|
54
|
-
* everything gets deleted.
|
|
55
|
-
*/
|
|
56
|
-
collectDeletions() {
|
|
57
|
-
return [
|
|
58
|
-
...Array.from(this.getUpsertsById().entries())
|
|
59
|
-
.filter(([id, update]) => !update)
|
|
60
|
-
.map(([id, update]) => id),
|
|
61
|
-
...Array.from(this.getUpdatesById().entries())
|
|
62
|
-
.filter(([id, update]) => !update)
|
|
63
|
-
.map(([id, update]) => id),
|
|
64
|
-
];
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Delete all entities which are not
|
|
68
|
-
* explicitly defined in this update.
|
|
69
|
-
* "Replace with" semantics.
|
|
70
|
-
*/
|
|
71
|
-
get isDeleteOther() {
|
|
72
|
-
return this.deleteOther;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Collects all upserts. (Updates are ignored)
|
|
76
|
-
*/
|
|
77
|
-
collectUpserts() {
|
|
78
|
-
return [
|
|
79
|
-
...Array.from(this.getUpsertsById().entries())
|
|
80
|
-
.filter(([id, update]) => !!update)
|
|
81
|
-
.map(([id, update]) => update),
|
|
82
|
-
...this.upsertOnes,
|
|
83
|
-
];
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* Collects all updates. (Upserts are ignored)
|
|
87
|
-
*/
|
|
88
|
-
collectUpdates() {
|
|
89
|
-
return [
|
|
90
|
-
...Array.from(this.getUpdatesById().entries())
|
|
91
|
-
.filter(([id, update]) => !!update)
|
|
92
|
-
.map(([id, update]) => update),
|
|
93
|
-
...this.updateOnes,
|
|
94
|
-
];
|
|
95
|
-
}
|
|
96
|
-
collectUpdatesAndUpserts() {
|
|
97
|
-
return [...this.collectUpserts(), ...this.collectUpdates()];
|
|
98
|
-
}
|
|
99
|
-
/***************************************************************************
|
|
100
|
-
* *
|
|
101
|
-
* Builder API *
|
|
102
|
-
* *
|
|
103
|
-
**************************************************************************/
|
|
104
|
-
update(updateOne) {
|
|
105
|
-
this.updateOnes.push(updateOne);
|
|
106
|
-
return this;
|
|
107
|
-
}
|
|
108
|
-
updateAll(updateOne) {
|
|
109
|
-
this.updateOnes.push(...updateOne);
|
|
110
|
-
return this;
|
|
111
|
-
}
|
|
112
|
-
updateById(id, updateOne) {
|
|
113
|
-
this.updatesById[this.idToMapKeyFn(id)] = updateOne;
|
|
114
|
-
return this;
|
|
115
|
-
}
|
|
116
|
-
updateAllById(updates) {
|
|
117
|
-
updates.forEach((v, k) => this.updateById(k, v));
|
|
118
|
-
return this;
|
|
119
|
-
}
|
|
120
|
-
upsert(updateOne) {
|
|
121
|
-
this.upsertOnes.push(updateOne);
|
|
122
|
-
return this;
|
|
123
|
-
}
|
|
124
|
-
upsertAll(updateOne) {
|
|
125
|
-
this.upsertOnes.push(...updateOne);
|
|
126
|
-
return this;
|
|
127
|
-
}
|
|
128
|
-
upsertById(id, updateOne) {
|
|
129
|
-
this.upsertsById[this.idToMapKeyFn(id)] = updateOne;
|
|
130
|
-
return this;
|
|
131
|
-
}
|
|
132
|
-
upsertAllById(upserts) {
|
|
133
|
-
upserts.forEach((v, k) => this.upsertById(k, v));
|
|
134
|
-
return this;
|
|
135
|
-
}
|
|
136
|
-
deleteById(...idArgs) {
|
|
137
|
-
idArgs.forEach((id) => this.upsertById(id, null));
|
|
138
|
-
return this;
|
|
139
|
-
}
|
|
140
|
-
deleteByIds(ids) {
|
|
141
|
-
ids.forEach((id) => this.upsertById(id, null));
|
|
142
|
-
return this;
|
|
143
|
-
}
|
|
144
|
-
deleteAllOther() {
|
|
145
|
-
this.deleteOther = true;
|
|
146
|
-
return this;
|
|
147
|
-
}
|
|
148
|
-
deleteAll() {
|
|
149
|
-
this.clear();
|
|
150
|
-
this.deleteAllOther();
|
|
151
|
-
return this;
|
|
152
|
-
}
|
|
153
|
-
clear() {
|
|
154
|
-
this.upsertOnes = [];
|
|
155
|
-
this.upsertsById = {};
|
|
156
|
-
this.updateOnes = [];
|
|
157
|
-
this.updatesById = {};
|
|
158
|
-
return this;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXNldC1wYXRjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi9kYXRhL2VudGl0eS1zZXQtcGF0Y2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUVsRCxNQUFNLE9BQU8sY0FBYztJQWV6Qjs7OztnRkFJNEU7SUFFckUsTUFBTSxDQUFDLEtBQUssQ0FDakIsWUFBMEM7UUFFMUMsT0FBTyxJQUFJLGNBQWMsQ0FBaUIsWUFBWSxDQUFDLENBQUE7SUFDekQsQ0FBQztJQUVPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBSyxFQUFNO1FBQ3pDLElBQUksT0FBTyxFQUFFLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDM0IsT0FBTyxFQUFFLENBQUE7UUFDWCxDQUFDO2FBQU0sSUFBSSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNsQyxPQUFPLEVBQUUsQ0FBQTtRQUNYLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFBO1FBQ2hCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFLFlBQVksWUFBMEM7UUFsQzlDLGdCQUFXLEdBQXdCLEVBQUUsQ0FBQTtRQUNyQyxnQkFBVyxHQUF3QixFQUFFLENBQUE7UUFDckMsZUFBVSxHQUFpQixFQUFFLENBQUE7UUFDN0IsZUFBVSxHQUFpQixFQUFFLENBQUE7UUFnQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxJQUFJLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQTtJQUN0RSxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLGNBQWM7UUFDbkIsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0lBRU0sY0FB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QixHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBO1FBQzlDLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVNLGNBQWM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUE7UUFDdkIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUNaLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUNyQixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUE7UUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUE7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUE7UUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUE7UUFDckIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKc29uTWFwLCBKc29uTWFwVXRpbCB9IGZyb20gJy4uL2pzb24tbWFwJ1xuXG5leHBvcnQgY2xhc3MgRW50aXR5U2V0UGF0Y2g8SUQsIEl0ZW1VcGRhdGU+IHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBpZFRvTWFwS2V5Rm46IChpZDogSUQpID0+IHN0cmluZyB8IG51bWJlclxuXG4gIHByaXZhdGUgdXBzZXJ0c0J5SWQ6IEpzb25NYXA8SXRlbVVwZGF0ZT4gPSB7fVxuICBwcml2YXRlIHVwZGF0ZXNCeUlkOiBKc29uTWFwPEl0ZW1VcGRhdGU+ID0ge31cbiAgcHJpdmF0ZSB1cHNlcnRPbmVzOiBJdGVtVXBkYXRlW10gPSBbXVxuICBwcml2YXRlIHVwZGF0ZU9uZXM6IEl0ZW1VcGRhdGVbXSA9IFtdXG4gIHByaXZhdGUgZGVsZXRlT3RoZXI/OiBib29sZWFuXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFN0YXRpYyBCdWlsZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHN0YXRpYyBzdGFydDxJRCwgSXRlbVVwZGF0ZT4oXG4gICAgaWRUb01hcEtleUZuPzogKGlkOiBJRCkgPT4gc3RyaW5nIHwgbnVtYmVyXG4gICk6IEVudGl0eVNldFBhdGNoPElELCBJdGVtVXBkYXRlPiB7XG4gICAgcmV0dXJuIG5ldyBFbnRpdHlTZXRQYXRjaDxJRCwgSXRlbVVwZGF0ZT4oaWRUb01hcEtleUZuKVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaWRUb01hcEtleURlZmF1bHQ8SUQ+KGlkOiBJRCk6IHN0cmluZyB8IG51bWJlciB7XG4gICAgaWYgKHR5cGVvZiBpZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBpZFxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGlkID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIGlkXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBpZCArICcnXG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoaWRUb01hcEtleUZuPzogKGlkOiBJRCkgPT4gc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgdGhpcy5pZFRvTWFwS2V5Rm4gPSBpZFRvTWFwS2V5Rm4gPz8gRW50aXR5U2V0UGF0Y2guaWRUb01hcEtleURlZmF1bHRcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBRdWVyeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXRVcHNlcnRzQnlJZCgpOiBNYXA8SUQsIEl0ZW1VcGRhdGU+IHtcbiAgICByZXR1cm4gSnNvbk1hcFV0aWwudG9NYXAodGhpcy51cHNlcnRzQnlJZClcbiAgfVxuXG4gIHB1YmxpYyBnZXRVcGRhdGVzQnlJZCgpOiBNYXA8SUQsIEl0ZW1VcGRhdGU+IHtcbiAgICByZXR1cm4gSnNvbk1hcFV0aWwudG9NYXAodGhpcy51cGRhdGVzQnlJZClcbiAgfVxuXG4gIHB1YmxpYyBnZXRVcHNlcnRPbmVzKCk6IEl0ZW1VcGRhdGVbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLnVwc2VydE9uZXNdXG4gIH1cblxuICBwdWJsaWMgZ2V0VXBkYXRlT25lcygpOiBJdGVtVXBkYXRlW10ge1xuICAgIHJldHVybiBbLi4udGhpcy51cGRhdGVPbmVzXVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYWxsIGlkcyB3aGljaCBzaG91bGQgYmUgZGVsZXRlZC5cbiAgICogQWxzbyBjb25zaWRlciBpc0RlbGV0ZU90aGVyLCB3aGljaCBtZWFuc1xuICAgKiBldmVyeXRoaW5nIGdldHMgZGVsZXRlZC5cbiAgICovXG4gIHB1YmxpYyBjb2xsZWN0RGVsZXRpb25zKCk6IElEW10ge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5BcnJheS5mcm9tKHRoaXMuZ2V0VXBzZXJ0c0J5SWQoKS5lbnRyaWVzKCkpXG4gICAgICAgIC5maWx0ZXIoKFtpZCwgdXBkYXRlXSkgPT4gIXVwZGF0ZSlcbiAgICAgICAgLm1hcCgoW2lkLCB1cGRhdGVdKSA9PiBpZCksXG4gICAgICAuLi5BcnJheS5mcm9tKHRoaXMuZ2V0VXBkYXRlc0J5SWQoKS5lbnRyaWVzKCkpXG4gICAgICAgIC5maWx0ZXIoKFtpZCwgdXBkYXRlXSkgPT4gIXVwZGF0ZSlcbiAgICAgICAgLm1hcCgoW2lkLCB1cGRhdGVdKSA9PiBpZCksXG4gICAgXVxuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhbGwgZW50aXRpZXMgd2hpY2ggYXJlIG5vdFxuICAgKiBleHBsaWNpdGx5IGRlZmluZWQgaW4gdGhpcyB1cGRhdGUuXG4gICAqIFwiUmVwbGFjZSB3aXRoXCIgc2VtYW50aWNzLlxuICAgKi9cbiAgcHVibGljIGdldCBpc0RlbGV0ZU90aGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRlbGV0ZU90aGVyXG4gIH1cblxuICAvKipcbiAgICogQ29sbGVjdHMgYWxsIHVwc2VydHMuIChVcGRhdGVzIGFyZSBpZ25vcmVkKVxuICAgKi9cbiAgcHVibGljIGNvbGxlY3RVcHNlcnRzKCk6IEl0ZW1VcGRhdGVbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLkFycmF5LmZyb20odGhpcy5nZXRVcHNlcnRzQnlJZCgpLmVudHJpZXMoKSlcbiAgICAgICAgLmZpbHRlcigoW2lkLCB1cGRhdGVdKSA9PiAhIXVwZGF0ZSlcbiAgICAgICAgLm1hcCgoW2lkLCB1cGRhdGVdKSA9PiB1cGRhdGUpLFxuICAgICAgLi4udGhpcy51cHNlcnRPbmVzLFxuICAgIF1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb2xsZWN0cyBhbGwgdXBkYXRlcy4gKFVwc2VydHMgYXJlIGlnbm9yZWQpXG4gICAqL1xuICBwdWJsaWMgY29sbGVjdFVwZGF0ZXMoKTogSXRlbVVwZGF0ZVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uQXJyYXkuZnJvbSh0aGlzLmdldFVwZGF0ZXNCeUlkKCkuZW50cmllcygpKVxuICAgICAgICAuZmlsdGVyKChbaWQsIHVwZGF0ZV0pID0+ICEhdXBkYXRlKVxuICAgICAgICAubWFwKChbaWQsIHVwZGF0ZV0pID0+IHVwZGF0ZSksXG4gICAgICAuLi50aGlzLnVwZGF0ZU9uZXMsXG4gICAgXVxuICB9XG5cbiAgcHVibGljIGNvbGxlY3RVcGRhdGVzQW5kVXBzZXJ0cygpOiBJdGVtVXBkYXRlW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5jb2xsZWN0VXBzZXJ0cygpLCAuLi50aGlzLmNvbGxlY3RVcGRhdGVzKCldXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQnVpbGRlciBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgdXBkYXRlKHVwZGF0ZU9uZTogSXRlbVVwZGF0ZSk6IHRoaXMge1xuICAgIHRoaXMudXBkYXRlT25lcy5wdXNoKHVwZGF0ZU9uZSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUFsbCh1cGRhdGVPbmU6IEl0ZW1VcGRhdGVbXSk6IHRoaXMge1xuICAgIHRoaXMudXBkYXRlT25lcy5wdXNoKC4uLnVwZGF0ZU9uZSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUJ5SWQoaWQ6IElELCB1cGRhdGVPbmU6IEl0ZW1VcGRhdGUpOiB0aGlzIHtcbiAgICB0aGlzLnVwZGF0ZXNCeUlkW3RoaXMuaWRUb01hcEtleUZuKGlkKV0gPSB1cGRhdGVPbmVcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUFsbEJ5SWQodXBkYXRlczogTWFwPElELCBJdGVtVXBkYXRlPik6IHRoaXMge1xuICAgIHVwZGF0ZXMuZm9yRWFjaCgodiwgaykgPT4gdGhpcy51cGRhdGVCeUlkKGssIHYpKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBwdWJsaWMgdXBzZXJ0KHVwZGF0ZU9uZTogSXRlbVVwZGF0ZSk6IHRoaXMge1xuICAgIHRoaXMudXBzZXJ0T25lcy5wdXNoKHVwZGF0ZU9uZSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgcHVibGljIHVwc2VydEFsbCh1cGRhdGVPbmU6IEl0ZW1VcGRhdGVbXSk6IHRoaXMge1xuICAgIHRoaXMudXBzZXJ0T25lcy5wdXNoKC4uLnVwZGF0ZU9uZSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgcHVibGljIHVwc2VydEJ5SWQoaWQ6IElELCB1cGRhdGVPbmU6IEl0ZW1VcGRhdGUpOiB0aGlzIHtcbiAgICB0aGlzLnVwc2VydHNCeUlkW3RoaXMuaWRUb01hcEtleUZuKGlkKV0gPSB1cGRhdGVPbmVcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgcHVibGljIHVwc2VydEFsbEJ5SWQodXBzZXJ0czogTWFwPElELCBJdGVtVXBkYXRlPik6IHRoaXMge1xuICAgIHVwc2VydHMuZm9yRWFjaCgodiwgaykgPT4gdGhpcy51cHNlcnRCeUlkKGssIHYpKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQnlJZCguLi5pZEFyZ3M6IElEW10pOiB0aGlzIHtcbiAgICBpZEFyZ3MuZm9yRWFjaCgoaWQpID0+IHRoaXMudXBzZXJ0QnlJZChpZCwgbnVsbCkpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVCeUlkcyhpZHM6IElEW10pOiB0aGlzIHtcbiAgICBpZHMuZm9yRWFjaCgoaWQpID0+IHRoaXMudXBzZXJ0QnlJZChpZCwgbnVsbCkpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVBbGxPdGhlcigpOiB0aGlzIHtcbiAgICB0aGlzLmRlbGV0ZU90aGVyID0gdHJ1ZVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBwdWJsaWMgZGVsZXRlQWxsKCk6IHRoaXMge1xuICAgIHRoaXMuY2xlYXIoKVxuICAgIHRoaXMuZGVsZXRlQWxsT3RoZXIoKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKTogdGhpcyB7XG4gICAgdGhpcy51cHNlcnRPbmVzID0gW11cbiAgICB0aGlzLnVwc2VydHNCeUlkID0ge31cbiAgICB0aGlzLnVwZGF0ZU9uZXMgPSBbXVxuICAgIHRoaXMudXBkYXRlc0J5SWQgPSB7fVxuICAgIHJldHVybiB0aGlzXG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
export function naturalValueComparator(a, b) {
|
|
2
|
-
if (a === b) {
|
|
3
|
-
return 0;
|
|
4
|
-
}
|
|
5
|
-
if (a === null || a === undefined) {
|
|
6
|
-
return -1;
|
|
7
|
-
}
|
|
8
|
-
if (b === null || b === undefined) {
|
|
9
|
-
return 1;
|
|
10
|
-
}
|
|
11
|
-
return a < b ? -1 : a > b ? 1 : 0;
|
|
12
|
-
}
|
|
13
|
-
export function alphaNumStringComparator(a, b) {
|
|
14
|
-
if (a === b) {
|
|
15
|
-
return 0;
|
|
16
|
-
}
|
|
17
|
-
if (a === null || a === undefined) {
|
|
18
|
-
return -1;
|
|
19
|
-
}
|
|
20
|
-
if (b === null || b === undefined) {
|
|
21
|
-
return 1;
|
|
22
|
-
}
|
|
23
|
-
return a.localeCompare(b, 'en', { numeric: true });
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Provides the ability to build a sorting comparator dynamically using
|
|
27
|
-
* a given array of fields / additional syntax.
|
|
28
|
-
*
|
|
29
|
-
* - Supports ASC / DESC
|
|
30
|
-
* - Supports multiple fields
|
|
31
|
-
* - Supports nested fields
|
|
32
|
-
*
|
|
33
|
-
* Example:
|
|
34
|
-
*
|
|
35
|
-
* ComparatorBuilder.fieldSort('simple', '-reveresed', 'some.very.deep.nested.path')
|
|
36
|
-
*
|
|
37
|
-
*/
|
|
38
|
-
export class ComparatorBuilder {
|
|
39
|
-
/***************************************************************************
|
|
40
|
-
* *
|
|
41
|
-
* Fields *
|
|
42
|
-
* *
|
|
43
|
-
**************************************************************************/
|
|
44
|
-
static { this.NATURAL_VALUE_COMPARATOR = naturalValueComparator; }
|
|
45
|
-
static { this.ALPHANUM_STRING_COMPARATOR = alphaNumStringComparator; }
|
|
46
|
-
/***************************************************************************
|
|
47
|
-
* *
|
|
48
|
-
* Public API *
|
|
49
|
-
* *
|
|
50
|
-
**************************************************************************/
|
|
51
|
-
/**
|
|
52
|
-
* Dynamically builds a comparator function, using the given fields for sorting.
|
|
53
|
-
*
|
|
54
|
-
* @param fields One or more field name to sort.
|
|
55
|
-
*/
|
|
56
|
-
static fieldSort(...fields) {
|
|
57
|
-
const props = fields;
|
|
58
|
-
return function (obj1, obj2) {
|
|
59
|
-
let i = 0;
|
|
60
|
-
let result = 0;
|
|
61
|
-
const numberOfProperties = props.length;
|
|
62
|
-
/* try getting a different result from 0 (equal)
|
|
63
|
-
* as long as we have extra properties to compare
|
|
64
|
-
*/
|
|
65
|
-
while (result === 0 && i < numberOfProperties) {
|
|
66
|
-
result = ComparatorBuilder.dynamicSort(props[i], ComparatorBuilder.NATURAL_VALUE_COMPARATOR, ComparatorBuilder.ALPHANUM_STRING_COMPARATOR)(obj1, obj2);
|
|
67
|
-
i++;
|
|
68
|
-
}
|
|
69
|
-
return result;
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
/***************************************************************************
|
|
73
|
-
* *
|
|
74
|
-
* Private methods *
|
|
75
|
-
* *
|
|
76
|
-
**************************************************************************/
|
|
77
|
-
static dynamicSort(property, genericValueComparator, stringValueComparator) {
|
|
78
|
-
let sortOrder = 1;
|
|
79
|
-
if (property[0] === '-') {
|
|
80
|
-
sortOrder = -1;
|
|
81
|
-
property = property.substring(1);
|
|
82
|
-
}
|
|
83
|
-
return (a, b) => {
|
|
84
|
-
const aValue = ComparatorBuilder.resolveProperty(a, property);
|
|
85
|
-
const bValue = ComparatorBuilder.resolveProperty(b, property);
|
|
86
|
-
let result;
|
|
87
|
-
if (typeof aValue === 'string' && typeof bValue === 'string') {
|
|
88
|
-
result = stringValueComparator(aValue, bValue);
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
result = genericValueComparator(aValue, bValue);
|
|
92
|
-
}
|
|
93
|
-
return result * sortOrder;
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
static resolveProperty(obj, property) {
|
|
97
|
-
const parts = property.split('.');
|
|
98
|
-
let resolved = obj;
|
|
99
|
-
for (const part of parts) {
|
|
100
|
-
if (!resolved) {
|
|
101
|
-
return null;
|
|
102
|
-
}
|
|
103
|
-
resolved = resolved[part];
|
|
104
|
-
}
|
|
105
|
-
return resolved;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtY29tcGFyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi9kYXRhL2ZpZWxkLWNvbXBhcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLHNCQUFzQixDQUFDLENBQU0sRUFBRSxDQUFNO0lBQ25ELElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ1osT0FBTyxDQUFDLENBQUE7SUFDVixDQUFDO0lBQ0QsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUNsQyxPQUFPLENBQUMsQ0FBQyxDQUFBO0lBQ1gsQ0FBQztJQUNELElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDbEMsT0FBTyxDQUFDLENBQUE7SUFDVixDQUFDO0lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDbkMsQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxDQUFNLEVBQUUsQ0FBTTtJQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNaLE9BQU8sQ0FBQyxDQUFBO0lBQ1YsQ0FBQztJQUNELElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDbEMsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUNYLENBQUM7SUFDRCxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sQ0FBQyxDQUFBO0lBQ1YsQ0FBQztJQUNELE9B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KGE6IFQsIGI6IFQpID0+IG51bWJlclxuXG5leHBvcnQgZnVuY3Rpb24gbmF0dXJhbFZhbHVlQ29tcGFyYXRvcihhOiBhbnksIGI6IGFueSk6IG51bWJlciB7XG4gIGlmIChhID09PSBiKSB7XG4gICAgcmV0dXJuIDBcbiAgfVxuICBpZiAoYSA9PT0gbnVsbCB8fCBhID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gLTFcbiAgfVxuICBpZiAoYiA9PT0gbnVsbCB8fCBiID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gMVxuICB9XG4gIHJldHVybiBhIDwgYiA/IC0xIDogYSA+IGIgPyAxIDogMFxufVxuXG5leHBvcnQgZnVuY3Rpb24gYWxwaGFOdW1TdHJpbmdDb21wYXJhdG9yKGE6IGFueSwgYjogYW55KTogbnVtYmVyIHtcbiAgaWYgKGEgPT09IGIpIHtcbiAgICByZXR1cm4gMFxuICB9XG4gIGlmIChhID09PSBudWxsIHx8IGEgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiAtMVxuICB9XG4gIGlmIChiID09PSBudWxsIHx8IGIgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiAxXG4gIH1cbiAgcmV0dXJuIGEubG9jYWxlQ29tcGFyZShiLCAnZW4nLCB7IG51bWVyaWM6IHRydWUgfSlcbn1cblxuLyoqXG4gKiBQcm92aWRlcyB0aGUgYWJpbGl0eSB0byBidWlsZCBhIHNvcnRpbmcgY29tcGFyYXRvciBkeW5hbWljYWxseSB1c2luZ1xuICogYSBnaXZlbiBhcnJheSBvZiBmaWVsZHMgLyBhZGRpdGlvbmFsIHN5bnRheC5cbiAqXG4gKiAtIFN1cHBvcnRzIEFTQyAvIERFU0NcbiAqIC0gU3VwcG9ydHMgbXVsdGlwbGUgZmllbGRzXG4gKiAtIFN1cHBvcnRzIG5lc3RlZCBmaWVsZHNcbiAqXG4gKiBFeGFtcGxlOlxuICpcbiAqIENvbXBhcmF0b3JCdWlsZGVyLmZpZWxkU29ydCgnc2ltcGxlJywgJy1yZXZlcmVzZWQnLCAnc29tZS52ZXJ5LmRlZXAubmVzdGVkLnBhdGgnKVxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIENvbXBhcmF0b3JCdWlsZGVyIHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHN0YXRpYyBOQVRVUkFMX1ZBTFVFX0NPTVBBUkFUT1I6IENvbXBhcmF0b3JGbjxhbnk+ID0gbmF0dXJhbFZhbHVlQ29tcGFyYXRvclxuICBwdWJsaWMgc3RhdGljIEFMUEhBTlVNX1NUUklOR19DT01QQVJBVE9SOiBDb21wYXJhdG9yRm48c3RyaW5nPiA9IGFscGhhTnVtU3RyaW5nQ29tcGFyYXRvclxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBEeW5hbWljYWxseSBidWlsZHMgYSBjb21wYXJhdG9yIGZ1bmN0aW9uLCB1c2luZyB0aGUgZ2l2ZW4gZmllbGRzIGZvciBzb3J0aW5nLlxuICAgKlxuICAgKiBAcGFyYW0gZmllbGRzIE9uZSBvciBtb3JlIGZpZWxkIG5hbWUgdG8gc29ydC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZmllbGRTb3J0PFQgPSBhbnk+KC4uLmZpZWxkczogc3RyaW5nW10pOiBDb21wYXJhdG9yRm48VD4ge1xuICAgIGNvbnN0IHByb3BzID0gZmllbGRzXG4gICAgcmV0dXJuIGZ1bmN0aW9uIChvYmoxLCBvYmoyKSB7XG4gICAgICBsZXQgaSA9IDBcbiAgICAgIGxldCByZXN1bHQgPSAwXG4gICAgICBjb25zdCBudW1iZXJPZlByb3BlcnRpZXMgPSBwcm9wcy5sZW5ndGhcbiAgICAgIC8qIHRyeSBnZXR0aW5nIGEgZGlmZmVyZW50IHJlc3VsdCBmcm9tIDAgKGVxdWFsKVxuICAgICAgICogYXMgbG9uZyBhcyB3ZSBoYXZlIGV4dHJhIHByb3BlcnRpZXMgdG8gY29tcGFyZVxuICAgICAgICovXG4gICAgICB3aGlsZSAocmVzdWx0ID09PSAwICYmIGkgPCBudW1iZXJPZlByb3BlcnRpZXMpIHtcbiAgICAgICAgcmVzdWx0ID0gQ29tcGFyYXRvckJ1aWxkZXIuZHluYW1pY1NvcnQoXG4gICAgICAgICAgcHJvcHNbaV0sXG4gICAgICAgICAgQ29tcGFyYXRvckJ1aWxkZXIuTkFUVVJBTF9WQUxVRV9DT01QQVJBVE9SLFxuICAgICAgICAgIENvbXBhcmF0b3JCdWlsZGVyLkFMUEhBTlVNX1NUUklOR19DT01QQVJBVE9SXG4gICAgICAgICkob2JqMSwgb2JqMilcbiAgICAgICAgaSsrXG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBzdGF0aWMgZHluYW1pY1NvcnQ8VCA9IGFueT4oXG4gICAgcHJvcGVydHk6IHN0cmluZyxcbiAgICBnZW5lcmljVmFsdWVDb21wYXJhdG9yOiBDb21wYXJhdG9yRm48VD4sXG4gICAgc3RyaW5nVmFsdWVDb21wYXJhdG9yOiBDb21wYXJhdG9yRm48c3RyaW5nPlxuICApOiBDb21wYXJhdG9yRm48VD4ge1xuICAgIGxldCBzb3J0T3JkZXIgPSAxXG4gICAgaWYgKHByb3BlcnR5WzBdID09PSAnLScpIHtcbiAgICAgIHNvcnRPcmRlciA9IC0xXG4gICAgICBwcm9wZXJ0eSA9IHByb3BlcnR5LnN1YnN0cmluZygxKVxuICAgIH1cblxuICAgIHJldHVybiAoYSwgYikgPT4ge1xuICAgICAgY29uc3QgYVZhbHVlID0gQ29tcGFyYXRvckJ1aWxkZXIucmVzb2x2ZVByb3BlcnR5KGEsIHByb3BlcnR5KVxuICAgICAgY29uc3QgYlZhbHVlID0gQ29tcGFyYXRvckJ1aWxkZXIucmVzb2x2ZVByb3BlcnR5KGIsIHByb3BlcnR5KVxuICAgICAgbGV0IHJlc3VsdDogbnVtYmVyXG4gICAgICBpZiAodHlwZW9mIGFWYWx1ZSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIGJWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmVzdWx0ID0gc3RyaW5nVmFsdWVDb21wYXJhdG9yKGFWYWx1ZSwgYlZhbHVlKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gZ2VuZXJpY1ZhbHVlQ29tcGFyYXRvcihhVmFsdWUsIGJWYWx1ZSlcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQgKiBzb3J0T3JkZXJcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZXNvbHZlUHJvcGVydHkob2JqOiBhbnksIHByb3BlcnR5OiBzdHJpbmcpOiBhbnkge1xuICAgIGNvbnN0IHBhcnRzID0gcHJvcGVydHkuc3BsaXQoJy4nKVxuICAgIGxldCByZXNvbHZlZDogYW55ID0gb2JqXG5cbiAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICAgIGlmICghcmVzb2x2ZWQpIHtcbiAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgIH1cbiAgICAgIHJlc29sdmVkID0gcmVzb2x2ZWRbcGFydF1cbiAgICB9XG4gICAgcmV0dXJuIHJlc29sdmVkXG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export default class FilterCommons {
|
|
2
|
-
static isArrayAndNotEmpty(value) {
|
|
3
|
-
return this.isArray(value) && this.isNotEmptyArray(value);
|
|
4
|
-
}
|
|
5
|
-
static isArray(value) {
|
|
6
|
-
return value !== null && Array.isArray(value);
|
|
7
|
-
}
|
|
8
|
-
static isNotEmptyArray(value) {
|
|
9
|
-
return value.length > 0;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWNvbW1vbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9maWx0ZXJzL2ZpbHRlci1jb21tb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxPQUFPLE9BQU8sYUFBYTtJQUN6QixNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBa0I7UUFDakQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBa0I7UUFDdEMsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDL0MsQ0FBQztJQUVNLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBa0I7UUFDOUMsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQTtJQUN6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWx0ZXJWYWx1ZSB9IGZyb20gJy4vZmlsdGVyLXZhbHVlJ1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGaWx0ZXJDb21tb25zIHtcbiAgcHVibGljIHN0YXRpYyBpc0FycmF5QW5kTm90RW1wdHkodmFsdWU6IEZpbHRlclZhbHVlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNBcnJheSh2YWx1ZSkgJiYgdGhpcy5pc05vdEVtcHR5QXJyYXkodmFsdWUpXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzQXJyYXkodmFsdWU6IEZpbHRlclZhbHVlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIEFycmF5LmlzQXJyYXkodmFsdWUpXG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGlzTm90RW1wdHlBcnJheSh2YWx1ZTogRmlsdGVyVmFsdWUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsdWUubGVuZ3RoID4gMFxuICB9XG59XG4iXX0=
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import { Filter } from './filter';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import { distinctUntilChanged } from 'rxjs/operators';
|
|
4
|
-
import { FilterUtil } from '../../utils/filter-util';
|
|
5
|
-
export class FilterContext {
|
|
6
|
-
constructor() {
|
|
7
|
-
/***************************************************************************
|
|
8
|
-
* *
|
|
9
|
-
* Fields *
|
|
10
|
-
* *
|
|
11
|
-
**************************************************************************/
|
|
12
|
-
this._filters$ = new BehaviorSubject([]);
|
|
13
|
-
/***************************************************************************
|
|
14
|
-
* *
|
|
15
|
-
* Private methods *
|
|
16
|
-
* *
|
|
17
|
-
**************************************************************************/
|
|
18
|
-
}
|
|
19
|
-
static empty() {
|
|
20
|
-
return new FilterContext();
|
|
21
|
-
}
|
|
22
|
-
/***************************************************************************
|
|
23
|
-
* *
|
|
24
|
-
* Static Utilities *
|
|
25
|
-
* *
|
|
26
|
-
**************************************************************************/
|
|
27
|
-
/**
|
|
28
|
-
* Update the given filters with new ones, merging the two.
|
|
29
|
-
* The updated filters take precedence.
|
|
30
|
-
* @param filters
|
|
31
|
-
* @param updatedFilters
|
|
32
|
-
*/
|
|
33
|
-
static updateFilters(filters, updatedFilters) {
|
|
34
|
-
const filterMap = new Map();
|
|
35
|
-
if (filters) {
|
|
36
|
-
filters.forEach((f) => filterMap.set(f.key, f));
|
|
37
|
-
}
|
|
38
|
-
if (updatedFilters) {
|
|
39
|
-
updatedFilters.forEach((f) => {
|
|
40
|
-
if (Filter.hasValue(f)) {
|
|
41
|
-
filterMap.set(f.key, f);
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
if (filterMap.has(f.key)) {
|
|
45
|
-
filterMap.delete(f.key);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
return Array.from(filterMap.values());
|
|
51
|
-
}
|
|
52
|
-
static of(filters) {
|
|
53
|
-
const filterContext = new FilterContext();
|
|
54
|
-
filterContext.replaceFilters(filters);
|
|
55
|
-
return filterContext;
|
|
56
|
-
}
|
|
57
|
-
/***************************************************************************
|
|
58
|
-
* *
|
|
59
|
-
* Read API *
|
|
60
|
-
* *
|
|
61
|
-
**************************************************************************/
|
|
62
|
-
get isEmpty() {
|
|
63
|
-
return this.filtersSnapshot.length == 0;
|
|
64
|
-
}
|
|
65
|
-
get filters() {
|
|
66
|
-
return this._filters$
|
|
67
|
-
.asObservable()
|
|
68
|
-
.pipe(distinctUntilChanged((a, b) => FilterUtil.equals(a, b)));
|
|
69
|
-
}
|
|
70
|
-
get filtersSnapshot() {
|
|
71
|
-
return [...this._filters$.getValue()];
|
|
72
|
-
}
|
|
73
|
-
findFilterValue(key) {
|
|
74
|
-
const f = this.findFilter(key);
|
|
75
|
-
return f ? f.value : undefined;
|
|
76
|
-
}
|
|
77
|
-
findFilter(key) {
|
|
78
|
-
return this.filtersSnapshot.filter((f) => f.key === key).find((first) => true);
|
|
79
|
-
}
|
|
80
|
-
/***************************************************************************
|
|
81
|
-
* *
|
|
82
|
-
* Public API *
|
|
83
|
-
* *
|
|
84
|
-
**************************************************************************/
|
|
85
|
-
removeFilter(key) {
|
|
86
|
-
const current = this.filtersSnapshot;
|
|
87
|
-
const newFilters = current.filter((f) => f.key !== key);
|
|
88
|
-
if (current.length !== newFilters.length) {
|
|
89
|
-
this.replaceFilters(newFilters);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
/**
|
|
93
|
-
* This method updatees / adds the given filter, leaving
|
|
94
|
-
* existing ones untouched.
|
|
95
|
-
* @param updatedFilter
|
|
96
|
-
*/
|
|
97
|
-
updateFilter(updatedFilter) {
|
|
98
|
-
if (updatedFilter) {
|
|
99
|
-
this.updateFilters([updatedFilter]);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* This method updates / adds the given filters, leaving
|
|
104
|
-
* existing ones untouched.
|
|
105
|
-
* @param updatedFilters
|
|
106
|
-
*/
|
|
107
|
-
updateFilters(updatedFilters) {
|
|
108
|
-
if (updatedFilters && updatedFilters.length > 0) {
|
|
109
|
-
this.replaceFilters(FilterContext.updateFilters(this.filtersSnapshot, updatedFilters));
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Replace all existing filters with the given new ones.
|
|
114
|
-
* @param newFilters
|
|
115
|
-
*/
|
|
116
|
-
replaceFilters(newFilters) {
|
|
117
|
-
this._filters$.next(newFilters || []);
|
|
118
|
-
}
|
|
119
|
-
clear() {
|
|
120
|
-
this.replaceFilters([]);
|
|
121
|
-
}
|
|
122
|
-
mergeFilters(filters) {
|
|
123
|
-
filters.forEach((filter) => this.mergeFilter(filter));
|
|
124
|
-
}
|
|
125
|
-
mergeFilter(filter) {
|
|
126
|
-
const existing = this.findFilter(filter.key);
|
|
127
|
-
if (!existing) {
|
|
128
|
-
this.updateFilter(filter);
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
this.updateFilter(Filter.merge(existing, filter));
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWNvbnRleHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9maWx0ZXJzL2ZpbHRlci1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDakMsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQTtBQUNsRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFFcEQsTUFBTSxPQUFPLGFBQWE7SUFBMUI7UUFLRTs7OztvRkFJNEU7UUFFM0QsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFXLEVBQUUsQ0FBQyxDQUFBO1FBb0k5RDs7OztvRkFJNEU7SUFDOUUsQ0FBQztJQW5KUSxNQUFNLENBQUMsS0FBSztRQUNqQixPQUFPLElBQUksYUFBYSxFQUFFLENBQUE7SUFDNUIsQ0FBQztJQVVEOzs7O2dGQUk0RTtJQUU1RTs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FBaUIsRUFBRSxjQUF3QjtRQUNyRSxNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQTtRQUUzQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDakQsQ0FBQztRQUVELElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUMzQixJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDdkIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFBO2dCQUN6QixDQUFDO3FCQUFNLENBQUM7b0JBQ04sSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUN6QixTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtvQkFDekIsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFBO0lBQ3ZDLENBQUM7SUFFTSxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQWlCO1FBQ2hDLE1BQU0sYUFBYSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUE7UUFDekMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUNyQyxPQUFPLGFBQWEsQ0FBQTtJQUN0QixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRTVFLElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQTtJQUN6QyxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFNBQVM7YUFDbEIsWUFBWSxFQUFFO2FBQ2QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2xFLENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO0lBQ3ZDLENBQUM7SUFFTSxlQUFlLENBQUMsR0FBVztRQUNoQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQzlCLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7SUFDaEMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxHQUFXO1FBQzNCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNoRixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLFlBQVksQ0FBQyxHQUFXO1FBQzdCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUE7UUFDcEMsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQTtRQUN2RCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDakMsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksWUFBWSxDQUFDLGFBQXNCO1FBQ3hDLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUE7UUFDckMsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksYUFBYSxDQUFDLGNBQXlCO1FBQzVDLElBQUksY0FBYyxJQUFJLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQTtRQUN4RixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGNBQWMsQ0FBQyxVQUFxQjtRQUN6QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3pCLENBQUM7SUFFTSxZQUFZLENBQUMsT0FBaUI7UUFDbkMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBQ3ZELENBQUM7SUFFTSxXQUFXLENBQUMsTUFBYztRQUMvQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUM1QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzNCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBQ25ELENBQUM7SUFDSCxDQUFDO0NBT0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuL2ZpbHRlcidcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgRmlsdGVyVXRpbCB9IGZyb20gJy4uLy4uL3V0aWxzL2ZpbHRlci11dGlsJ1xuXG5leHBvcnQgY2xhc3MgRmlsdGVyQ29udGV4dCB7XG4gIHB1YmxpYyBzdGF0aWMgZW1wdHkoKTogRmlsdGVyQ29udGV4dCB7XG4gICAgcmV0dXJuIG5ldyBGaWx0ZXJDb250ZXh0KClcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJbXT4oW10pXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFN0YXRpYyBVdGlsaXRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgZ2l2ZW4gZmlsdGVycyB3aXRoIG5ldyBvbmVzLCBtZXJnaW5nIHRoZSB0d28uXG4gICAqIFRoZSB1cGRhdGVkIGZpbHRlcnMgdGFrZSBwcmVjZWRlbmNlLlxuICAgKiBAcGFyYW0gZmlsdGVyc1xuICAgKiBAcGFyYW0gdXBkYXRlZEZpbHRlcnNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdXBkYXRlRmlsdGVycyhmaWx0ZXJzOiBGaWx0ZXJbXSwgdXBkYXRlZEZpbHRlcnM6IEZpbHRlcltdKTogRmlsdGVyW10ge1xuICAgIGNvbnN0IGZpbHRlck1hcCA9IG5ldyBNYXA8c3RyaW5nLCBGaWx0ZXI+KClcblxuICAgIGlmIChmaWx0ZXJzKSB7XG4gICAgICBmaWx0ZXJzLmZvckVhY2goKGYpID0+IGZpbHRlck1hcC5zZXQoZi5rZXksIGYpKVxuICAgIH1cblxuICAgIGlmICh1cGRhdGVkRmlsdGVycykge1xuICAgICAgdXBkYXRlZEZpbHRlcnMuZm9yRWFjaCgoZikgPT4ge1xuICAgICAgICBpZiAoRmlsdGVyLmhhc1ZhbHVlKGYpKSB7XG4gICAgICAgICAgZmlsdGVyTWFwLnNldChmLmtleSwgZilcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoZmlsdGVyTWFwLmhhcyhmLmtleSkpIHtcbiAgICAgICAgICAgIGZpbHRlck1hcC5kZWxldGUoZi5rZXkpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiBBcnJheS5mcm9tKGZpbHRlck1hcC52YWx1ZXMoKSlcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgb2YoZmlsdGVyczogRmlsdGVyW10pOiBGaWx0ZXJDb250ZXh0IHtcbiAgICBjb25zdCBmaWx0ZXJDb250ZXh0ID0gbmV3IEZpbHRlckNvbnRleHQoKVxuICAgIGZpbHRlckNvbnRleHQucmVwbGFjZUZpbHRlcnMoZmlsdGVycylcbiAgICByZXR1cm4gZmlsdGVyQ29udGV4dFxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFJlYWQgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGdldCBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcnNTbmFwc2hvdC5sZW5ndGggPT0gMFxuICB9XG5cbiAgcHVibGljIGdldCBmaWx0ZXJzKCk6IE9ic2VydmFibGU8RmlsdGVyW10+IHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVycyRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IEZpbHRlclV0aWwuZXF1YWxzKGEsIGIpKSlcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlsdGVyc1NuYXBzaG90KCk6IEZpbHRlcltdIHtcbiAgICByZXR1cm4gWy4uLnRoaXMuX2ZpbHRlcnMkLmdldFZhbHVlKCldXG4gIH1cblxuICBwdWJsaWMgZmluZEZpbHRlclZhbHVlKGtleTogc3RyaW5nKTogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGYgPSB0aGlzLmZpbmRGaWx0ZXIoa2V5KVxuICAgIHJldHVybiBmID8gZi52YWx1ZSA6IHVuZGVmaW5lZFxuICB9XG5cbiAgcHVibGljIGZpbmRGaWx0ZXIoa2V5OiBzdHJpbmcpOiBGaWx0ZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcnNTbmFwc2hvdC5maWx0ZXIoKGYpID0+IGYua2V5ID09PSBrZXkpLmZpbmQoKGZpcnN0KSA9PiB0cnVlKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHJlbW92ZUZpbHRlcihrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmZpbHRlcnNTbmFwc2hvdFxuICAgIGNvbnN0IG5ld0ZpbHRlcnMgPSBjdXJyZW50LmZpbHRlcigoZikgPT4gZi5rZXkgIT09IGtleSlcbiAgICBpZiAoY3VycmVudC5sZW5ndGggIT09IG5ld0ZpbHRlcnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLnJlcGxhY2VGaWx0ZXJzKG5ld0ZpbHRlcnMpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHVwZGF0ZWVzIC8gYWRkcyB0aGUgZ2l2ZW4gZmlsdGVyLCBsZWF2aW5nXG4gICAqIGV4aXN0aW5nIG9uZXMgdW50b3VjaGVkLlxuICAgKiBAcGFyYW0gdXBkYXRlZEZpbHRlclxuICAgKi9cbiAgcHVibGljIHVwZGF0ZUZpbHRlcih1cGRhdGVkRmlsdGVyPzogRmlsdGVyKTogdm9pZCB7XG4gICAgaWYgKHVwZGF0ZWRGaWx0ZXIpIHtcbiAgICAgIHRoaXMudXBkYXRlRmlsdGVycyhbdXBkYXRlZEZpbHRlcl0pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHVwZGF0ZXMgLyBhZGRzIHRoZSBnaXZlbiBmaWx0ZXJzLCBsZWF2aW5nXG4gICAqIGV4aXN0aW5nIG9uZXMgdW50b3VjaGVkLlxuICAgKiBAcGFyYW0gdXBkYXRlZEZpbHRlcnNcbiAgICovXG4gIHB1YmxpYyB1cGRhdGVGaWx0ZXJzKHVwZGF0ZWRGaWx0ZXJzPzogRmlsdGVyW10pOiB2b2lkIHtcbiAgICBpZiAodXBkYXRlZEZpbHRlcnMgJiYgdXBkYXRlZEZpbHRlcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5yZXBsYWNlRmlsdGVycyhGaWx0ZXJDb250ZXh0LnVwZGF0ZUZpbHRlcnModGhpcy5maWx0ZXJzU25hcHNob3QsIHVwZGF0ZWRGaWx0ZXJzKSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVwbGFjZSBhbGwgZXhpc3RpbmcgZmlsdGVycyB3aXRoIHRoZSBnaXZlbiBuZXcgb25lcy5cbiAgICogQHBhcmFtIG5ld0ZpbHRlcnNcbiAgICovXG4gIHB1YmxpYyByZXBsYWNlRmlsdGVycyhuZXdGaWx0ZXJzPzogRmlsdGVyW10pIHtcbiAgICB0aGlzLl9maWx0ZXJzJC5uZXh0KG5ld0ZpbHRlcnMgfHwgW10pXG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5yZXBsYWNlRmlsdGVycyhbXSlcbiAgfVxuXG4gIHB1YmxpYyBtZXJnZUZpbHRlcnMoZmlsdGVyczogRmlsdGVyW10pIHtcbiAgICBmaWx0ZXJzLmZvckVhY2goKGZpbHRlcikgPT4gdGhpcy5tZXJnZUZpbHRlcihmaWx0ZXIpKVxuICB9XG5cbiAgcHVibGljIG1lcmdlRmlsdGVyKGZpbHRlcjogRmlsdGVyKTogdm9pZCB7XG4gICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLmZpbmRGaWx0ZXIoZmlsdGVyLmtleSlcbiAgICBpZiAoIWV4aXN0aW5nKSB7XG4gICAgICB0aGlzLnVwZGF0ZUZpbHRlcihmaWx0ZXIpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBkYXRlRmlsdGVyKEZpbHRlci5tZXJnZShleGlzdGluZywgZmlsdGVyKSlcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbn1cbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXZhbHVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2RhdGEvZmlsdGVycy9maWx0ZXItdmFsdWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEZpbHRlclZhbHVlID0gc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsXG4iXX0=
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { Objects } from '../../objects';
|
|
2
|
-
import { CollectionUtil } from '../../utils/collection-util';
|
|
3
|
-
export class Filter {
|
|
4
|
-
/***************************************************************************
|
|
5
|
-
* *
|
|
6
|
-
* Constructor *
|
|
7
|
-
* *
|
|
8
|
-
**************************************************************************/
|
|
9
|
-
constructor(key, value) {
|
|
10
|
-
if (!key) {
|
|
11
|
-
throw new Error('ArgumentNull: Filter.key can not be null!');
|
|
12
|
-
}
|
|
13
|
-
this.key = key;
|
|
14
|
-
this.value = value;
|
|
15
|
-
}
|
|
16
|
-
/***************************************************************************
|
|
17
|
-
* *
|
|
18
|
-
* Public API *
|
|
19
|
-
* *
|
|
20
|
-
**************************************************************************/
|
|
21
|
-
static merge(current, forcedFilter) {
|
|
22
|
-
let newFilterValue;
|
|
23
|
-
if (Filter.isMulti(current) || Filter.isMulti(forcedFilter)) {
|
|
24
|
-
// We have a list of values. We just have to ensure our forced values are in there
|
|
25
|
-
const valueSet = new Set();
|
|
26
|
-
Filter.addValuesToSet(valueSet, current);
|
|
27
|
-
Filter.addValuesToSet(valueSet, forcedFilter);
|
|
28
|
-
newFilterValue = Array.from(valueSet);
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
newFilterValue = forcedFilter.value;
|
|
32
|
-
}
|
|
33
|
-
return new Filter(current.key, newFilterValue);
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Checks if this filter supports multiple values.
|
|
37
|
-
* @param filter
|
|
38
|
-
*/
|
|
39
|
-
static isMulti(filter) {
|
|
40
|
-
return Array.isArray(filter.value);
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Checks if this filter has a value.
|
|
44
|
-
* This is the case when the value is non-null.
|
|
45
|
-
* In case of an array, empty and non-empty return both true.
|
|
46
|
-
*/
|
|
47
|
-
static hasValue(self) {
|
|
48
|
-
if (!self) {
|
|
49
|
-
return false;
|
|
50
|
-
}
|
|
51
|
-
if (Objects.nonNull(self.value)) {
|
|
52
|
-
return true;
|
|
53
|
-
}
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Checks this filter has the same value as the other given filter.
|
|
58
|
-
* @param self
|
|
59
|
-
* @param other
|
|
60
|
-
*/
|
|
61
|
-
static equals(self, other) {
|
|
62
|
-
if (self === other) {
|
|
63
|
-
return true;
|
|
64
|
-
} // Same obj reference
|
|
65
|
-
if (!self) {
|
|
66
|
-
return false;
|
|
67
|
-
}
|
|
68
|
-
if (!other) {
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
if (self.key !== other.key) {
|
|
72
|
-
return false;
|
|
73
|
-
}
|
|
74
|
-
if (self.value === other.value) {
|
|
75
|
-
return true;
|
|
76
|
-
} // Same key and same value reference
|
|
77
|
-
// In case the filter has a multi value array, we need to compare those by value
|
|
78
|
-
if (Array.isArray(self.value) || Array.isArray(other.value)) {
|
|
79
|
-
const valueArr = Array.isArray(self.value) ? self.value : [self.value];
|
|
80
|
-
const otherArr = Array.isArray(other.value) ? other.value : [other.value];
|
|
81
|
-
return CollectionUtil.equalSetDeep(new Set(valueArr), new Set(otherArr));
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
return false; // Otherwise, they are not equal
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
/***************************************************************************
|
|
88
|
-
* *
|
|
89
|
-
* Private methods *
|
|
90
|
-
* *
|
|
91
|
-
**************************************************************************/
|
|
92
|
-
static addValuesToSet(valueSet, filter) {
|
|
93
|
-
const filterValue = filter.value;
|
|
94
|
-
if (Array.isArray(filterValue)) {
|
|
95
|
-
const values = filterValue;
|
|
96
|
-
values.forEach((v) => valueSet.add(v));
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
const value = filterValue;
|
|
100
|
-
valueSet.add(value);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tbW9uL2RhdGEvZmlsdGVycy9maWx0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFFNUQsTUFBTSxPQUFPLE1BQU07SUFtQmpCOzs7O2dGQUk0RTtJQUU1RSxZQUFZLEdBQVcsRUFBRSxLQUErQjtRQUN0RCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUE7UUFDOUQsQ0FBQztRQUVELElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFBO1FBQ2QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDcEIsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQWUsRUFBRSxZQUFvQjtRQUN2RCxJQUFJLGNBQWlDLENBQUE7UUFDckMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUM1RCxrRkFBa0Y7WUFDbEYsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQTtZQUNsQyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQTtZQUN4QyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQTtZQUM3QyxjQUFjLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUN2QyxDQUFDO2FBQU0sQ0FBQztZQUNOLGNBQWMsR0FBRyxZ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UUFDckIsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9iamVjdHMgfSBmcm9tICcuLi8uLi9vYmplY3RzJ1xuaW1wb3J0IHsgQ29sbGVjdGlvblV0aWwgfSBmcm9tICcuLi8uLi91dGlscy9jb2xsZWN0aW9uLXV0aWwnXG5cbmV4cG9ydCBjbGFzcyBGaWx0ZXIge1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogVGhlIGZpbHRlciBrZXkuXG4gICAqIFVuaXF1ZSBpbnNpZGUgYSBGaWx0ZXJDb250ZXh0IG9yIEZpbHRlciByZXF1ZXN0LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGtleTogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFRoZSBmaWx0ZXIgdmFsdWUgYXMgc3RyaW5nLlxuICAgKiBNdWx0aXBsZSBzdHJpbmcgdmFsdWVzIGFyZSBzdXBwb3J0ZWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbFxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10gfCBudWxsKSB7XG4gICAgaWYgKCFrZXkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQXJndW1lbnROdWxsOiBGaWx0ZXIua2V5IGNhbiBub3QgYmUgbnVsbCEnKVxuICAgIH1cblxuICAgIHRoaXMua2V5ID0ga2V5XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgc3RhdGljIG1lcmdlKGN1cnJlbnQ6IEZpbHRlciwgZm9yY2VkRmlsdGVyOiBGaWx0ZXIpOiBGaWx0ZXIge1xuICAgIGxldCBuZXdGaWx0ZXJWYWx1ZTogc3RyaW5nIHwgc3RyaW5nW11cbiAgICBpZiAoRmlsdGVyLmlzTXVsdGkoY3VycmVudCkgfHwgRmlsdGVyLmlzTXVsdGkoZm9yY2VkRmlsdGVyKSkge1xuICAgICAgLy8gV2UgaGF2ZSBhIGxpc3Qgb2YgdmFsdWVzLiBXZSBqdXN0IGhhdmUgdG8gZW5zdXJlIG91ciBmb3JjZWQgdmFsdWVzIGFyZSBpbiB0aGVyZVxuICAgICAgY29uc3QgdmFsdWVTZXQgPSBuZXcgU2V0PHN0cmluZz4oKVxuICAgICAgRmlsdGVyLmFkZFZhbHVlc1RvU2V0KHZhbHVlU2V0LCBjdXJyZW50KVxuICAgICAgRmlsdGVyLmFkZFZhbHVlc1RvU2V0KHZhbHVlU2V0LCBmb3JjZWRGaWx0ZXIpXG4gICAgICBuZXdGaWx0ZXJWYWx1ZSA9IEFycmF5LmZyb20odmFsdWVTZXQpXG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0ZpbHRlclZhbHVlID0gZm9yY2VkRmlsdGVyLnZhbHVlXG4gICAgfVxuICAgIHJldHVybiBuZXcgRmlsdGVyKGN1cnJlbnQua2V5LCBuZXdGaWx0ZXJWYWx1ZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhpcyBmaWx0ZXIgc3VwcG9ydHMgbXVsdGlwbGUgdmFsdWVzLlxuICAgKiBAcGFyYW0gZmlsdGVyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzTXVsdGkoZmlsdGVyOiBGaWx0ZXIpIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShmaWx0ZXIudmFsdWUpXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoaXMgZmlsdGVyIGhhcyBhIHZhbHVlLlxuICAgKiBUaGlzIGlzIHRoZSBjYXNlIHdoZW4gdGhlIHZhbHVlIGlzIG5vbi1udWxsLlxuICAgKiBJbiBjYXNlIG9mIGFuIGFycmF5LCBlbXB0eSBhbmQgbm9uLWVtcHR5IHJldHVybiBib3RoIHRydWUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGhhc1ZhbHVlKHNlbGY6IEZpbHRlcik6IGJvb2xlYW4ge1xuICAgIGlmICghc2VsZikge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuXG4gICAgaWYgKE9iamVjdHMubm9uTnVsbChzZWxmLnZhbHVlKSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHRoaXMgZmlsdGVyIGhhcyB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgb3RoZXIgZ2l2ZW4gZmlsdGVyLlxuICAgKiBAcGFyYW0gc2VsZlxuICAgKiBAcGFyYW0gb3RoZXJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZXF1YWxzKHNlbGY6IEZpbHRlciwgb3RoZXI6IEZpbHRlcik6IGJvb2xlYW4ge1xuICAgIGlmIChzZWxmID09PSBvdGhlcikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9IC8vIFNhbWUgb2JqIHJlZmVyZW5jZVxuXG4gICAgaWYgKCFzZWxmKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgaWYgKCFvdGhlcikge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICAgIGlmIChzZWxmLmtleSAhPT0gb3RoZXIua2V5KSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgaWYgKHNlbGYudmFsdWUgPT09IG90aGVyLnZhbHVlKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH0gLy8gU2FtZSBrZXkgYW5kIHNhbWUgdmFsdWUgcmVmZXJlbmNlXG5cbiAgICAvLyBJbiBjYXNlIHRoZSBmaWx0ZXIgaGFzIGEgbXVsdGkgdmFsdWUgYXJyYXksIHdlIG5lZWQgdG8gY29tcGFyZSB0aG9zZSBieSB2YWx1ZVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc2VsZi52YWx1ZSkgfHwgQXJyYXkuaXNBcnJheShvdGhlci52YWx1ZSkpIHtcbiAgICAgIGNvbnN0IHZhbHVlQXJyID0gQXJyYXkuaXNBcnJheShzZWxmLnZhbHVlKSA/IChzZWxmLnZhbHVlIGFzIHN0cmluZ1tdKSA6IFtzZWxmLnZhbHVlXVxuICAgICAgY29uc3Qgb3RoZXJBcnIgPSBBcnJheS5pc0FycmF5KG90aGVyLnZhbHVlKSA/IChvdGhlci52YWx1ZSBhcyBzdHJpbmdbXSkgOiBbb3RoZXIudmFsdWVdXG4gICAgICByZXR1cm4gQ29sbGVjdGlvblV0aWwuZXF1YWxTZXREZWVwKG5ldyBTZXQ8c3RyaW5nPih2YWx1ZUFyciksIG5ldyBTZXQ8c3RyaW5nPihvdGhlckFycikpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZSAvLyBPdGhlcndpc2UsIHRoZXkgYXJlIG5vdCBlcXVhbFxuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgc3RhdGljIGFkZFZhbHVlc1RvU2V0KHZhbHVlU2V0OiBTZXQ8c3RyaW5nPiwgZmlsdGVyOiBGaWx0ZXIpOiB2b2lkIHtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IGZpbHRlci52YWx1ZVxuICAgIGlmIChBcnJheS5pc0FycmF5KGZpbHRlclZhbHVlKSkge1xuICAgICAgY29uc3QgdmFsdWVzID0gZmlsdGVyVmFsdWUgYXMgc3RyaW5nW11cbiAgICAgIHZhbHVlcy5mb3JFYWNoKCh2KSA9PiB2YWx1ZVNldC5hZGQodikpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gZmlsdGVyVmFsdWUgYXMgc3RyaW5nXG4gICAgICB2YWx1ZVNldC5hZGQodmFsdWUpXG4gICAgfVxuICB9XG59XG4iXX0=
|