@elderbyte/ngx-starter 18.15.2 → 19.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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/panels/flat/_elder-panel-theme.scss +5 -1
- 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,75 +0,0 @@
|
|
|
1
|
-
import { Page } from '../../page';
|
|
2
|
-
import { LocalListDataSource } from './local-list-data-source';
|
|
3
|
-
import { map } from 'rxjs/operators';
|
|
4
|
-
export class LocalPagedDataSource {
|
|
5
|
-
/***************************************************************************
|
|
6
|
-
* *
|
|
7
|
-
* Static Builder *
|
|
8
|
-
* *
|
|
9
|
-
**************************************************************************/
|
|
10
|
-
/**
|
|
11
|
-
* Creates an empty local list data-source.
|
|
12
|
-
* You can set / modify data by using the data property.
|
|
13
|
-
* @param idProperty
|
|
14
|
-
* @param localSort
|
|
15
|
-
* @param localFilter
|
|
16
|
-
*/
|
|
17
|
-
static empty(idProperty, localSort, localFilter) {
|
|
18
|
-
return LocalPagedDataSource.of(LocalListDataSource.empty(idProperty, localSort, localFilter));
|
|
19
|
-
}
|
|
20
|
-
static of(listDataSource) {
|
|
21
|
-
return new LocalPagedDataSource(listDataSource);
|
|
22
|
-
}
|
|
23
|
-
/***************************************************************************
|
|
24
|
-
* *
|
|
25
|
-
* Constructor *
|
|
26
|
-
* *
|
|
27
|
-
**************************************************************************/
|
|
28
|
-
constructor(listDataSource) {
|
|
29
|
-
if (!listDataSource) {
|
|
30
|
-
throw new Error('listDataSource must not be null!');
|
|
31
|
-
}
|
|
32
|
-
this.localListFetcher = listDataSource;
|
|
33
|
-
}
|
|
34
|
-
/***************************************************************************
|
|
35
|
-
* *
|
|
36
|
-
* Public API *
|
|
37
|
-
* *
|
|
38
|
-
**************************************************************************/
|
|
39
|
-
get dataChanged() {
|
|
40
|
-
return this.localListFetcher.dataChanged;
|
|
41
|
-
}
|
|
42
|
-
findById(id) {
|
|
43
|
-
return this.localListFetcher.findById(id);
|
|
44
|
-
}
|
|
45
|
-
findByIds(ids) {
|
|
46
|
-
return this.localListFetcher.findByIds(ids);
|
|
47
|
-
}
|
|
48
|
-
findAllPaged(pageable, filters) {
|
|
49
|
-
return this.localListFetcher
|
|
50
|
-
.findAllFiltered(filters, pageable.sorts)
|
|
51
|
-
.pipe(map((data) => this.pageSlice(pageable, data)));
|
|
52
|
-
}
|
|
53
|
-
getId(entity) {
|
|
54
|
-
return this.localListFetcher.getId(entity);
|
|
55
|
-
}
|
|
56
|
-
/***************************************************************************
|
|
57
|
-
* *
|
|
58
|
-
* Private methods *
|
|
59
|
-
* *
|
|
60
|
-
**************************************************************************/
|
|
61
|
-
pageSlice(pageable, data) {
|
|
62
|
-
let page;
|
|
63
|
-
if (data) {
|
|
64
|
-
const start = pageable.page * pageable.size;
|
|
65
|
-
const end = start + pageable.size;
|
|
66
|
-
const slice = data.slice(start, end);
|
|
67
|
-
page = Page.fromPage(slice, data.length, pageable);
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
page = Page.from([]);
|
|
71
|
-
}
|
|
72
|
-
return page;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtcGFnZWQtZGF0YS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhc291cmNlL2xvY2FsL2xvY2FsLXBhZ2VkLWRhdGEtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQVksTUFBTSxZQUFZLENBQUE7QUFHM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDOUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBS3BDLE1BQU0sT0FBTyxvQkFBb0I7SUFTL0I7Ozs7Z0ZBSTRFO0lBRTVFOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQ2pCLFVBQXlCLEVBQ3pCLFNBQTZDLEVBQzdDLFdBQW1EO1FBRW5ELE9BQU8sb0JBQW9CLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUE7SUFDL0YsQ0FBQztJQUVNLE1BQU0sQ0FBQyxFQUFFLENBQUksY0FBc0M7UUFDeEQsT0FBTyxJQUFJLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ2pELENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUUsWUFBWSxjQUFzQztRQUNoRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFBO1FBQ3JELENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsY0FBYyxDQUFBO0lBQ3hDLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUUsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQTtJQUMxQyxDQUFDO0lBRU0sUUFBUSxDQUFDLEVBQU87UUFDckIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFFTSxTQUFTLENBQUMsR0FBVTtRQUN6QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDN0MsQ0FBQztJQUVNLFlBQVksQ0FBQyxRQUFrQixFQUFFLE9BQWtCO1FBQ3hELE9BQU8sSUFBSSxDQUFDLGdCQUFnQjthQUN6QixlQUFlLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUM7YUFDeEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3hELENBQUM7SUFFTSxLQUFLLENBQUMsTUFBUztRQUNwQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVwRSxTQUFTLENBQUMsUUFBa0IsRUFBRSxJQUFTO1FBQzdDLElBQUksSUFBYSxDQUFBO1FBRWpCLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUE7WUFDM0MsTUFBTSxHQUFHLEdBQUcsS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUE7WUFDakMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUE7WUFDcEMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFDcEQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUN0QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQYWdlLCBQYWdlYWJsZSB9IGZyb20gJy4uLy4uL3BhZ2UnXG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuLi8uLi9maWx0ZXJzL2ZpbHRlcidcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgTG9jYWxMaXN0RGF0YVNvdXJjZSB9IGZyb20gJy4vbG9jYWwtbGlzdC1kYXRhLXNvdXJjZSdcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgU29ydCB9IGZyb20gJy4uLy4uL3NvcnQnXG5pbXBvcnQgeyBJUGFnZWREYXRhU291cmNlIH0gZnJvbSAnLi4vZGF0YS1zb3VyY2UnXG5pbXBvcnQgeyBEYXRhU291cmNlQ2hhbmdlRXZlbnQgfSBmcm9tICcuLi9kYXRhLXNvdXJjZS1jaGFuZ2UtZXZlbnQnXG5cbmV4cG9ydCBjbGFzcyBMb2NhbFBhZ2VkRGF0YVNvdXJjZTxUPiBpbXBsZW1lbnRzIElQYWdlZERhdGFTb3VyY2U8VD4ge1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsTGlzdEZldGNoZXI6IExvY2FsTGlzdERhdGFTb3VyY2U8VD5cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogU3RhdGljIEJ1aWxkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBlbXB0eSBsb2NhbCBsaXN0IGRhdGEtc291cmNlLlxuICAgKiBZb3UgY2FuIHNldCAvIG1vZGlmeSBkYXRhIGJ5IHVzaW5nIHRoZSBkYXRhIHByb3BlcnR5LlxuICAgKiBAcGFyYW0gaWRQcm9wZXJ0eVxuICAgKiBAcGFyYW0gbG9jYWxTb3J0XG4gICAqIEBwYXJhbSBsb2NhbEZpbHRlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBlbXB0eTxUPihcbiAgICBpZFByb3BlcnR5OiBzdHJpbmcgfCBudWxsLFxuICAgIGxvY2FsU29ydD86IChkYXRhOiBUW10sIHNvcnRzOiBTb3J0W10pID0+IFRbXSxcbiAgICBsb2NhbEZpbHRlcj86IChkYXRhOiBUW10sIGZpbHRlcnM6IEZpbHRlcltdKSA9PiBUW11cbiAgKTogTG9jYWxQYWdlZERhdGFTb3VyY2U8VD4ge1xuICAgIHJldHVybiBMb2NhbFBhZ2VkRGF0YVNvdXJjZS5vZihMb2NhbExpc3REYXRhU291cmNlLmVtcHR5KGlkUHJvcGVydHksIGxvY2FsU29ydCwgbG9jYWxGaWx0ZXIpKVxuICB9XG5cbiAgcHVibGljIHN0YXRpYyBvZjxUPihsaXN0RGF0YVNvdXJjZTogTG9jYWxMaXN0RGF0YVNvdXJjZTxUPik6IExvY2FsUGFnZWREYXRhU291cmNlPFQ+IHtcbiAgICByZXR1cm4gbmV3IExvY2FsUGFnZWREYXRhU291cmNlKGxpc3REYXRhU291cmNlKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IobGlzdERhdGFTb3VyY2U6IExvY2FsTGlzdERhdGFTb3VyY2U8VD4pIHtcbiAgICBpZiAoIWxpc3REYXRhU291cmNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2xpc3REYXRhU291cmNlIG11c3Qgbm90IGJlIG51bGwhJylcbiAgICB9XG4gICAgdGhpcy5sb2NhbExpc3RGZXRjaGVyID0gbGlzdERhdGFTb3VyY2VcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBnZXQgZGF0YUNoYW5nZWQoKTogT2JzZXJ2YWJsZTxEYXRhU291cmNlQ2hhbmdlRXZlbnQ8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5sb2NhbExpc3RGZXRjaGVyLmRhdGFDaGFuZ2VkXG4gIH1cblxuICBwdWJsaWMgZmluZEJ5SWQoaWQ6IGFueSk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmxvY2FsTGlzdEZldGNoZXIuZmluZEJ5SWQoaWQpXG4gIH1cblxuICBwdWJsaWMgZmluZEJ5SWRzKGlkczogYW55W10pOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIHJldHVybiB0aGlzLmxvY2FsTGlzdEZldGNoZXIuZmluZEJ5SWRzKGlkcylcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQWxsUGFnZWQocGFnZWFibGU6IFBhZ2VhYmxlLCBmaWx0ZXJzPzogRmlsdGVyW10pOiBPYnNlcnZhYmxlPFBhZ2U8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5sb2NhbExpc3RGZXRjaGVyXG4gICAgICAuZmluZEFsbEZpbHRlcmVkKGZpbHRlcnMsIHBhZ2VhYmxlLnNvcnRzKVxuICAgICAgLnBpcGUobWFwKChkYXRhKSA9PiB0aGlzLnBhZ2VTbGljZShwYWdlYWJsZSwgZGF0YSkpKVxuICB9XG5cbiAgcHVibGljIGdldElkKGVudGl0eTogVCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxMaXN0RmV0Y2hlci5nZXRJZChlbnRpdHkpXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHBhZ2VTbGljZShwYWdlYWJsZTogUGFnZWFibGUsIGRhdGE6IFRbXSk6IFBhZ2U8VD4ge1xuICAgIGxldCBwYWdlOiBQYWdlPFQ+XG5cbiAgICBpZiAoZGF0YSkge1xuICAgICAgY29uc3Qgc3RhcnQgPSBwYWdlYWJsZS5wYWdlICogcGFnZWFibGUuc2l6ZVxuICAgICAgY29uc3QgZW5kID0gc3RhcnQgKyBwYWdlYWJsZS5zaXplXG4gICAgICBjb25zdCBzbGljZSA9IGRhdGEuc2xpY2Uoc3RhcnQsIGVuZClcbiAgICAgIHBhZ2UgPSBQYWdlLmZyb21QYWdlKHNsaWNlLCBkYXRhLmxlbmd0aCwgcGFnZWFibGUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHBhZ2UgPSBQYWdlLmZyb20oW10pXG4gICAgfVxuICAgIHJldHVybiBwYWdlXG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
export class DeepPartialPatcher {
|
|
2
|
-
/***************************************************************************
|
|
3
|
-
* *
|
|
4
|
-
* Public API *
|
|
5
|
-
* *
|
|
6
|
-
**************************************************************************/
|
|
7
|
-
/**
|
|
8
|
-
* All modified parts are deep cloned so the original is never modified.
|
|
9
|
-
*/
|
|
10
|
-
static patchDeepClone(original, patch) {
|
|
11
|
-
return this.mapReducePatch(original, patch);
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Returns a shallow copy of the original, but may modify nested objects.
|
|
15
|
-
*/
|
|
16
|
-
static patchShallowCopy(original, patch) {
|
|
17
|
-
const shallowCopy = { ...original };
|
|
18
|
-
return this.patchOriginal(shallowCopy, patch);
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Modifies the original directly. Returns a reference to the original object.
|
|
22
|
-
*/
|
|
23
|
-
static patchOriginal(original, patch) {
|
|
24
|
-
const result = original;
|
|
25
|
-
for (const key in patch) {
|
|
26
|
-
if (patch[key] && typeof patch[key] === 'object' && !Array.isArray(patch[key])) {
|
|
27
|
-
// Recursively apply patch for nested objects
|
|
28
|
-
result[key] = DeepPartialPatcher.patchOriginal(result[key] ?? new Object(patch[key]), patch[key]);
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
// Apply patch for non-object fields
|
|
32
|
-
result[key] = patch[key];
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
return result;
|
|
36
|
-
}
|
|
37
|
-
/***************************************************************************
|
|
38
|
-
* *
|
|
39
|
-
* Private methods *
|
|
40
|
-
* *
|
|
41
|
-
**************************************************************************/
|
|
42
|
-
static mapReducePatch(obj, pobj) {
|
|
43
|
-
return Object.entries(obj).reduce((acc, [key, value]) => {
|
|
44
|
-
if (!(key in pobj)) {
|
|
45
|
-
return { ...acc, [key]: value }; // If key doesn't exist in pobj, copy the value from obj
|
|
46
|
-
}
|
|
47
|
-
if (typeof pobj[key] === 'object' && pobj[key] !== null && !Array.isArray(pobj[key])) {
|
|
48
|
-
// If it's an object (but not an array), recursively apply rmap
|
|
49
|
-
return { ...acc, [key]: this.mapReducePatch(obj[key], pobj[key]) };
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
// Otherwise, copy the value from pobj
|
|
53
|
-
return { ...acc, [key]: pobj[key] };
|
|
54
|
-
}
|
|
55
|
-
}, {});
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcC1wYXJ0aWFsLXBhdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhc291cmNlL3BhdGNoL2RlZXAtcGFydGlhbC1wYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxrQkFBa0I7SUFDN0I7Ozs7Z0ZBSTRFO0lBRTVFOztPQUVHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBSSxRQUFXLEVBQUUsS0FBMEI7UUFDckUsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQU0sQ0FBQTtJQUNsRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsZ0JBQWdCLENBQUksUUFBVyxFQUFFLEtBQTBCO1FBQ3ZFLE1BQU0sV0FBVyxHQUFHLEVBQUUsR0FBRyxRQUFRLEVBQUUsQ0FBQTtRQUNuQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQy9DLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUksUUFBVyxFQUFFLEtBQTBCO1FBQ3BFLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQTtRQUV2QixLQUFLLE1BQU0sR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3hCLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDL0UsNkNBQTZDO2dCQUM3QyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsa0JBQWtCLENBQUMsYUFBYSxDQUM1QyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ3JDLEtBQUssQ0FBQyxHQUFHLENBQWlDLENBQ3BDLENBQUE7WUFDVixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sb0NBQW9DO2dCQUNwQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBUSxDQUFBO1lBQ2pDLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUE7SUFDZixDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXBFLE1BQU0sQ0FBQyxjQUFjLENBQzNCLEdBQXdCLEVBQ3hCLElBQXlCO1FBRXpCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUN0RCxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUEsQ0FBQyx3REFBd0Q7WUFDMUYsQ0FBQztZQUNELElBQUksT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JGLCtEQUErRDtnQkFDL0QsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtZQUNwRSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sc0NBQXNDO2dCQUN0QyxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQTtZQUNyQyxDQUFDO1FBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ1IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgRGVlcFBhcnRpYWxQYXRjaDxUPiA9IHtcbiAgW0sgaW4ga2V5b2YgVF0/OiBUW0tdIGV4dGVuZHMgb2JqZWN0ID8gRGVlcFBhcnRpYWxQYXRjaDxUW0tdPiA6IFRbS11cbn1cblxuZXhwb3J0IGNsYXNzIERlZXBQYXJ0aWFsUGF0Y2hlciB7XG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBBbGwgbW9kaWZpZWQgcGFydHMgYXJlIGRlZXAgY2xvbmVkIHNvIHRoZSBvcmlnaW5hbCBpcyBuZXZlciBtb2RpZmllZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcGF0Y2hEZWVwQ2xvbmU8VD4ob3JpZ2luYWw6IFQsIHBhdGNoOiBEZWVwUGFydGlhbFBhdGNoPFQ+KTogVCB7XG4gICAgcmV0dXJuIHRoaXMubWFwUmVkdWNlUGF0Y2gob3JpZ2luYWwsIHBhdGNoKSBhcyBUXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHNoYWxsb3cgY29weSBvZiB0aGUgb3JpZ2luYWwsIGJ1dCBtYXkgbW9kaWZ5IG5lc3RlZCBvYmplY3RzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwYXRjaFNoYWxsb3dDb3B5PFQ+KG9yaWdpbmFsOiBULCBwYXRjaDogRGVlcFBhcnRpYWxQYXRjaDxUPik6IFQge1xuICAgIGNvbnN0IHNoYWxsb3dDb3B5ID0geyAuLi5vcmlnaW5hbCB9XG4gICAgcmV0dXJuIHRoaXMucGF0Y2hPcmlnaW5hbChzaGFsbG93Q29weSwgcGF0Y2gpXG4gIH1cblxuICAvKipcbiAgICogTW9kaWZpZXMgdGhlIG9yaWdpbmFsIGRpcmVjdGx5LiBSZXR1cm5zIGEgcmVmZXJlbmNlIHRvIHRoZSBvcmlnaW5hbCBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHBhdGNoT3JpZ2luYWw8VD4ob3JpZ2luYWw6IFQsIHBhdGNoOiBEZWVwUGFydGlhbFBhdGNoPFQ+KTogVCB7XG4gICAgY29uc3QgcmVzdWx0ID0gb3JpZ2luYWxcblxuICAgIGZvciAoY29uc3Qga2V5IGluIHBhdGNoKSB7XG4gICAgICBpZiAocGF0Y2hba2V5XSAmJiB0eXBlb2YgcGF0Y2hba2V5XSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkocGF0Y2hba2V5XSkpIHtcbiAgICAgICAgLy8gUmVjdXJzaXZlbHkgYXBwbHkgcGF0Y2ggZm9yIG5lc3RlZCBvYmplY3RzXG4gICAgICAgIHJlc3VsdFtrZXldID0gRGVlcFBhcnRpYWxQYXRjaGVyLnBhdGNoT3JpZ2luYWwoXG4gICAgICAgICAgcmVzdWx0W2tleV0gPz8gbmV3IE9iamVjdChwYXRjaFtrZXldKSxcbiAgICAgICAgICBwYXRjaFtrZXldIGFzIERlZXBQYXJ0aWFsUGF0Y2g8VFtrZXlvZiBUXT5cbiAgICAgICAgKSBhcyBhbnlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIEFwcGx5IHBhdGNoIGZvciBub24tb2JqZWN0IGZpZWxkc1xuICAgICAgICByZXN1bHRba2V5XSA9IHBhdGNoW2tleV0gYXMgYW55XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByaXZhdGUgbWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSBzdGF0aWMgbWFwUmVkdWNlUGF0Y2goXG4gICAgb2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIHBvYmo6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG9iaikucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgaWYgKCEoa2V5IGluIHBvYmopKSB7XG4gICAgICAgIHJldHVybiB7IC4uLmFjYywgW2tleV06IHZhbHVlIH0gLy8gSWYga2V5IGRvZXNuJ3QgZXhpc3QgaW4gcG9iaiwgY29weSB0aGUgdmFsdWUgZnJvbSBvYmpcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgcG9ialtrZXldID09PSAnb2JqZWN0JyAmJiBwb2JqW2tleV0gIT09IG51bGwgJiYgIUFycmF5LmlzQXJyYXkocG9ialtrZXldKSkge1xuICAgICAgICAvLyBJZiBpdCdzIGFuIG9iamVjdCAoYnV0IG5vdCBhbiBhcnJheSksIHJlY3Vyc2l2ZWx5IGFwcGx5IHJtYXBcbiAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBba2V5XTogdGhpcy5tYXBSZWR1Y2VQYXRjaChvYmpba2V5XSwgcG9ialtrZXldKSB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBPdGhlcndpc2UsIGNvcHkgdGhlIHZhbHVlIGZyb20gcG9ialxuICAgICAgICByZXR1cm4geyAuLi5hY2MsIFtrZXldOiBwb2JqW2tleV0gfVxuICAgICAgfVxuICAgIH0sIHt9KVxuICB9XG59XG4iXX0=
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export * from './data-source';
|
|
2
|
-
export * from './data-source-base';
|
|
3
|
-
export * from './data-source-adapter';
|
|
4
|
-
export * from './data-source-processor';
|
|
5
|
-
export * from './rest/public_api';
|
|
6
|
-
export * from './local/local-list-data-source';
|
|
7
|
-
export * from './local/local-paged-data-source';
|
|
8
|
-
export * from './fetcher/delegate-data-source';
|
|
9
|
-
export * from './data-source-change-event';
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi9kYXRhL2RhdGFzb3VyY2UvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQTtBQUM3QixjQUFjLG9CQUFvQixDQUFBO0FBQ2xDLGNBQWMsdUJBQXVCLENBQUE7QUFDckMsY0FBYyx5QkFBeUIsQ0FBQTtBQUV2QyxjQUFjLG1CQUFtQixDQUFBO0FBRWpDLGNBQWMsZ0NBQWdDLENBQUE7QUFDOUMsY0FBYyxpQ0FBaUMsQ0FBQTtBQUUvQyxjQUFjLGdDQUFnQyxDQUFBO0FBRTlDLGNBQWMsNEJBQTRCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGEtc291cmNlJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLXNvdXJjZS1iYXNlJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLXNvdXJjZS1hZGFwdGVyJ1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLXNvdXJjZS1wcm9jZXNzb3InXG5cbmV4cG9ydCAqIGZyb20gJy4vcmVzdC9wdWJsaWNfYXBpJ1xuXG5leHBvcnQgKiBmcm9tICcuL2xvY2FsL2xvY2FsLWxpc3QtZGF0YS1zb3VyY2UnXG5leHBvcnQgKiBmcm9tICcuL2xvY2FsL2xvY2FsLXBhZ2VkLWRhdGEtc291cmNlJ1xuXG5leHBvcnQgKiBmcm9tICcuL2ZldGNoZXIvZGVsZWdhdGUtZGF0YS1zb3VyY2UnXG5cbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1zb3VyY2UtY2hhbmdlLWV2ZW50J1xuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './rest-client';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VsZGVyYnl0ZS9uZ3gtc3RhcnRlci9zcmMvbGliL2NvbW1vbi9kYXRhL2RhdGFzb3VyY2UvcmVzdC9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZXN0LWNsaWVudCdcbiJdfQ==
|
|
@@ -1,290 +0,0 @@
|
|
|
1
|
-
import { EMPTY, forkJoin, of } from 'rxjs';
|
|
2
|
-
import { expand, map, reduce, tap } from 'rxjs/operators';
|
|
3
|
-
import { HttpParamsBuilder } from '../../http-params-builder';
|
|
4
|
-
import { Filter } from '../../filters/filter';
|
|
5
|
-
import { Pageable } from '../../page';
|
|
6
|
-
import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
7
|
-
import { TokenChunkRequest } from '../../token-chunk-request';
|
|
8
|
-
import { Batcher } from '../../../utils/batcher';
|
|
9
|
-
import { DataSourceChangeEvent } from '../data-source-change-event';
|
|
10
|
-
import { DataSourceBase } from '../data-source-base';
|
|
11
|
-
export class InternalRestClientConfig {
|
|
12
|
-
constructor(userConfig) {
|
|
13
|
-
this.idField = 'id';
|
|
14
|
-
this.idsParam = 'ids';
|
|
15
|
-
if (userConfig) {
|
|
16
|
-
if (userConfig.idField) {
|
|
17
|
-
this.idField = userConfig.idField;
|
|
18
|
-
}
|
|
19
|
-
if (userConfig.idsParam) {
|
|
20
|
-
this.idsParam = userConfig.idsParam;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Allows to customize the rest client
|
|
27
|
-
*/
|
|
28
|
-
export class RestClientConfig {
|
|
29
|
-
}
|
|
30
|
-
export class RestClient extends DataSourceBase {
|
|
31
|
-
/***************************************************************************
|
|
32
|
-
* *
|
|
33
|
-
* Constructor *
|
|
34
|
-
* *
|
|
35
|
-
**************************************************************************/
|
|
36
|
-
constructor(restEndpoint, http, config) {
|
|
37
|
-
super(new InternalRestClientConfig(config).idField);
|
|
38
|
-
this.restEndpoint = restEndpoint;
|
|
39
|
-
this.http = http;
|
|
40
|
-
/***************************************************************************
|
|
41
|
-
* *
|
|
42
|
-
* Fields *
|
|
43
|
-
* *
|
|
44
|
-
**************************************************************************/
|
|
45
|
-
this._logger = LoggerFactory.getLogger(this.constructor.name);
|
|
46
|
-
this.config = new InternalRestClientConfig(config);
|
|
47
|
-
}
|
|
48
|
-
/***************************************************************************
|
|
49
|
-
* *
|
|
50
|
-
* Public API *
|
|
51
|
-
* *
|
|
52
|
-
**************************************************************************/
|
|
53
|
-
findById(id, params) {
|
|
54
|
-
if (id === undefined || id === null) {
|
|
55
|
-
throw new Error('findById: id argument required!');
|
|
56
|
-
}
|
|
57
|
-
params = HttpParamsBuilder.start(params).build();
|
|
58
|
-
return this.http.get(this.getEntityUrl(id), { params: params });
|
|
59
|
-
}
|
|
60
|
-
findByIds(ids, params) {
|
|
61
|
-
if (ids === undefined || ids === null) {
|
|
62
|
-
throw new Error('findByIds: ids array argument required!');
|
|
63
|
-
}
|
|
64
|
-
this._logger.warn('Very inefficient findByIds handling ' + ids.length);
|
|
65
|
-
return forkJoin(ids.map((id) => this.findById(id, params)));
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Creates or Updates the given entity depending if it already has a valid id.
|
|
69
|
-
*/
|
|
70
|
-
save(entity, params) {
|
|
71
|
-
const id = this.getId(entity);
|
|
72
|
-
return id ? this.update(entity, params) : this.create(entity, params);
|
|
73
|
-
}
|
|
74
|
-
create(newEntity, params) {
|
|
75
|
-
return this.http
|
|
76
|
-
.post(this.restEndpoint, newEntity, {
|
|
77
|
-
params: params,
|
|
78
|
-
})
|
|
79
|
-
.pipe(tap((e) => this.publishChangeEvent(DataSourceChangeEvent.created([e]))));
|
|
80
|
-
}
|
|
81
|
-
update(update, params) {
|
|
82
|
-
return this.http
|
|
83
|
-
.put(this.getEntityUrlBy(update), update, {
|
|
84
|
-
params: params,
|
|
85
|
-
})
|
|
86
|
-
.pipe(tap((e) => this.publishChangeEvent(DataSourceChangeEvent.modified([e]))));
|
|
87
|
-
}
|
|
88
|
-
updateAll(updatedEntities, params) {
|
|
89
|
-
return this.http
|
|
90
|
-
.put(this.restEndpoint, updatedEntities, {
|
|
91
|
-
params: params,
|
|
92
|
-
})
|
|
93
|
-
.pipe(tap((entities) => this.publishChangeEvent(DataSourceChangeEvent.modified(entities))));
|
|
94
|
-
}
|
|
95
|
-
delete(entity, params) {
|
|
96
|
-
return this.http
|
|
97
|
-
.delete(this.getEntityUrlBy(entity), {
|
|
98
|
-
responseType: 'text',
|
|
99
|
-
params: params,
|
|
100
|
-
})
|
|
101
|
-
.pipe(tap(() => this.publishChangeEvent(DataSourceChangeEvent.deleted([this.getId(entity)]))));
|
|
102
|
-
}
|
|
103
|
-
deleteAll(entities, params) {
|
|
104
|
-
const ids = entities.map((e) => String(this.getId(e)));
|
|
105
|
-
const maxBatchSize = 100;
|
|
106
|
-
const deleteRequests = Batcher.batchMap(ids, maxBatchSize, (batch) => this.deleteIdBatch(batch, params));
|
|
107
|
-
this._logger.debug('Deleting ' + entities.length + ' in ' + deleteRequests.length + ' batches: ', deleteRequests);
|
|
108
|
-
return forkJoin(deleteRequests);
|
|
109
|
-
}
|
|
110
|
-
/***************************************************************************
|
|
111
|
-
* *
|
|
112
|
-
* Sub Resource Builder *
|
|
113
|
-
* *
|
|
114
|
-
**************************************************************************/
|
|
115
|
-
subResourceList(parent, subPath, config) {
|
|
116
|
-
return new RestClientList(this.getEntityUrlBy(parent) + '/' + subPath, this.http, config);
|
|
117
|
-
}
|
|
118
|
-
subResourcePaged(parent, subPath, config) {
|
|
119
|
-
return new RestClientPaged(this.getEntityUrlBy(parent) + '/' + subPath, this.http, config);
|
|
120
|
-
}
|
|
121
|
-
subResourceContinuable(parent, subPath, config) {
|
|
122
|
-
return new RestClientContinuable(this.getEntityUrlBy(parent) + '/' + subPath, this.http, config);
|
|
123
|
-
}
|
|
124
|
-
/***************************************************************************
|
|
125
|
-
* *
|
|
126
|
-
* Protected methods *
|
|
127
|
-
* *
|
|
128
|
-
**************************************************************************/
|
|
129
|
-
patchInternal(id, entityPatch, params) {
|
|
130
|
-
return this.http
|
|
131
|
-
.patch(this.getEntityUrl(id), entityPatch, {
|
|
132
|
-
params: params,
|
|
133
|
-
})
|
|
134
|
-
.pipe(tap((e) => this.publishChangeEvent(DataSourceChangeEvent.modified([e]))));
|
|
135
|
-
}
|
|
136
|
-
patchAllInternal(entityPatches, params) {
|
|
137
|
-
return this.http
|
|
138
|
-
.patch(this.restEndpoint, entityPatches, {
|
|
139
|
-
params: params,
|
|
140
|
-
})
|
|
141
|
-
.pipe(tap((e) => this.publishChangeEvent(DataSourceChangeEvent.modified(e))));
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* @deprecated Switch to publishChangeEvent
|
|
145
|
-
*/
|
|
146
|
-
onLocalChanged(entity) {
|
|
147
|
-
this.publishChangeEvent(DataSourceChangeEvent.unknownChanges());
|
|
148
|
-
}
|
|
149
|
-
getEntityUrlBy(entity) {
|
|
150
|
-
return this.getEntityUrl(this.getId(entity));
|
|
151
|
-
}
|
|
152
|
-
getEntityUrl(id) {
|
|
153
|
-
return this.restEndpoint + '/' + id;
|
|
154
|
-
}
|
|
155
|
-
/***************************************************************************
|
|
156
|
-
* *
|
|
157
|
-
* Private methods *
|
|
158
|
-
* *
|
|
159
|
-
**************************************************************************/
|
|
160
|
-
/**
|
|
161
|
-
* Deletes the given ids in a batch call.
|
|
162
|
-
* Note that due HTTP Request URI limitations,
|
|
163
|
-
* the number of ids that can be deleted in a single batch is
|
|
164
|
-
* limited (around 150, depending on id length, since they are
|
|
165
|
-
* part of the request uri parameters.
|
|
166
|
-
*/
|
|
167
|
-
deleteIdBatch(ids, params) {
|
|
168
|
-
const builder = HttpParamsBuilder.start(params);
|
|
169
|
-
builder.appendFilter(new Filter(this.config.idsParam, ids));
|
|
170
|
-
return this.http
|
|
171
|
-
.delete(this.restEndpoint, {
|
|
172
|
-
params: builder.build(),
|
|
173
|
-
responseType: 'text',
|
|
174
|
-
})
|
|
175
|
-
.pipe(tap(() => this.publishChangeEvent(DataSourceChangeEvent.deleted(ids))));
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
export class RestClientList extends RestClient {
|
|
179
|
-
/***************************************************************************
|
|
180
|
-
* *
|
|
181
|
-
* Constructor *
|
|
182
|
-
* *
|
|
183
|
-
**************************************************************************/
|
|
184
|
-
constructor(restEndpoint, http, config) {
|
|
185
|
-
super(restEndpoint, http, config);
|
|
186
|
-
}
|
|
187
|
-
/***************************************************************************
|
|
188
|
-
* *
|
|
189
|
-
* Public API *
|
|
190
|
-
* *
|
|
191
|
-
**************************************************************************/
|
|
192
|
-
findAllFiltered(filters, sorts, params) {
|
|
193
|
-
return this.findAll(HttpParamsBuilder.start(params).appendFilters(filters).appendSorts(sorts).build());
|
|
194
|
-
}
|
|
195
|
-
findByIds(ids, params) {
|
|
196
|
-
if (ids?.length > 0) {
|
|
197
|
-
return this.findAllFiltered([new Filter(this.config.idsParam, ids)], [], params);
|
|
198
|
-
}
|
|
199
|
-
else {
|
|
200
|
-
return of([]);
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
findAll(params) {
|
|
204
|
-
return this.http.get(this.restEndpoint, {
|
|
205
|
-
params: params,
|
|
206
|
-
});
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
export class RestClientPaged extends RestClient {
|
|
210
|
-
/***************************************************************************
|
|
211
|
-
* *
|
|
212
|
-
* Constructor *
|
|
213
|
-
* *
|
|
214
|
-
**************************************************************************/
|
|
215
|
-
constructor(restEndpoint, http, config) {
|
|
216
|
-
super(restEndpoint, http, config);
|
|
217
|
-
}
|
|
218
|
-
/***************************************************************************
|
|
219
|
-
* *
|
|
220
|
-
* Public API *
|
|
221
|
-
* *
|
|
222
|
-
**************************************************************************/
|
|
223
|
-
findAllPaged(pageable, filters, params) {
|
|
224
|
-
return this.getPaged(this.restEndpoint, pageable, filters, params);
|
|
225
|
-
}
|
|
226
|
-
findByIds(ids, params) {
|
|
227
|
-
if (ids?.length > 0) {
|
|
228
|
-
return this.findAllPaged(new Pageable(0, ids.length), [new Filter(this.config.idsParam, ids)], params).pipe(map((page) => page.content));
|
|
229
|
-
}
|
|
230
|
-
else {
|
|
231
|
-
return of([]);
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
/***************************************************************************
|
|
235
|
-
* *
|
|
236
|
-
* Private methods *
|
|
237
|
-
* *
|
|
238
|
-
**************************************************************************/
|
|
239
|
-
/**
|
|
240
|
-
* Gets the requested data page as Page<T>
|
|
241
|
-
* @param url The resource url
|
|
242
|
-
* @param pageable The page request
|
|
243
|
-
* @param filters The filtersSnapshot request
|
|
244
|
-
* @param params Additional parameters
|
|
245
|
-
*/
|
|
246
|
-
getPaged(url, pageable, filters, params) {
|
|
247
|
-
params = HttpParamsBuilder.start(params).appendPageable(pageable).appendFilters(filters).build();
|
|
248
|
-
return this.http.get(url, { params: params });
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
export class RestClientContinuable extends RestClient {
|
|
252
|
-
/***************************************************************************
|
|
253
|
-
* *
|
|
254
|
-
* Constructor *
|
|
255
|
-
* *
|
|
256
|
-
**************************************************************************/
|
|
257
|
-
constructor(restEndpoint, http, config) {
|
|
258
|
-
super(restEndpoint, http, config);
|
|
259
|
-
}
|
|
260
|
-
/***************************************************************************
|
|
261
|
-
* *
|
|
262
|
-
* Public API *
|
|
263
|
-
* *
|
|
264
|
-
**************************************************************************/
|
|
265
|
-
findAllContinuable(request, params) {
|
|
266
|
-
return this.http.get(this.restEndpoint, {
|
|
267
|
-
params: HttpParamsBuilder.start(params).appendContinuationRequest(request).build(),
|
|
268
|
-
});
|
|
269
|
-
}
|
|
270
|
-
findByIds(ids, params) {
|
|
271
|
-
if (ids?.length > 0) {
|
|
272
|
-
return this.loadAll([new Filter(this.config.idsParam, ids)], [], params);
|
|
273
|
-
}
|
|
274
|
-
else {
|
|
275
|
-
return of([]);
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
loadAll(filters, sorts, params) {
|
|
279
|
-
return this.findAllContinuable(new TokenChunkRequest(null, filters, sorts), params).pipe(expand((listing) => {
|
|
280
|
-
// the previous "listing" -> This is recursive
|
|
281
|
-
return listing.nextContinuationToken // if there's "nextContinuationToken", we refetch or we EMPTY to complete the "expand()"
|
|
282
|
-
? this.findAllContinuable(new TokenChunkRequest(listing.nextContinuationToken, filters, sorts), params)
|
|
283
|
-
: EMPTY;
|
|
284
|
-
}), map((listing) => listing.content), reduce((agg, listing) => {
|
|
285
|
-
agg.push(...listing);
|
|
286
|
-
return agg;
|
|
287
|
-
}, []));
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhc291cmNlL3Jlc3QvcmVzdC1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3RELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUU3RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDN0MsT0FBTyxFQUFRLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFPN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ2hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUVwRCxNQUFNLE9BQU8sd0JBQXdCO0lBSW5DLFlBQVksVUFBNkI7UUFIbEMsWUFBTyxHQUFHLElBQUksQ0FBQTtRQUNkLGFBQVEsR0FBRyxLQUFLLENBQUE7UUFHckIsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNmLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUE7WUFDbkMsQ0FBQztZQUNELElBQUks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QUM7WUFDcEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDMUUsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNmLENBQUM7SUFDSCxDQUFDO0lBRU8sT0FBTyxDQUFDLE9BQWtCLEVBQUUsS0FBYyxFQUFFLE1BQW1CO1FBQ3JFLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksaUJBQWlCLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ3RGLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2pCLDhDQUE4QztZQUM5QyxPQUFPLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyx3RkFBd0Y7Z0JBQzNILENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQ3JCLElBQUksaUJBQWlCLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFDcEUsTUFBTSxDQUNQO2dCQUNILENBQUMsQ0FBQyxLQUFLLENBQUE7UUFDWCxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFDakMsTUFBTSxDQUNKLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ2YsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFBO1lBQ3BCLE9BQU8sR0FBRyxDQUFBO1FBQ1osQ0FBQyxFQUNJLEVBQUUsQ0FDUixDQUNGLENBQUE7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBFTVBUWSwgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGV4cGFuZCwgbWFwLCByZWR1Y2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHsgSHR0cFBhcmFtc0J1aWxkZXIgfSBmcm9tICcuLi8uLi9odHRwLXBhcmFtcy1idWlsZGVyJ1xuaW1wb3J0IHsgU29ydCB9IGZyb20gJy4uLy4uL3NvcnQnXG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuLi8uLi9maWx0ZXJzL2ZpbHRlcidcbmltcG9ydCB7IFBhZ2UsIFBhZ2VhYmxlIH0gZnJvbSAnLi4vLi4vcGFnZSdcbmltcG9ydCB7IExvZ2dlckZhY3RvcnkgfSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcidcbmltcG9ydCB7IENvbnRpbnVhYmxlTGlzdGluZyB9IGZyb20gJy4uLy4uL2NvbnRpbnVhYmxlLWxpc3RpbmcnXG5pbXBvcnQgeyBUb2tlbkNodW5rUmVxdWVzdCB9IGZyb20gJy4uLy4uL3Rva2VuLWNodW5rLXJlcXVlc3QnXG5pbXBvcnQge1xuICBJQ29udGludWFibGVEYXRhU291cmNlLFxuICBJRGF0YVNvdXJjZSxcbiAgSUxpc3REYXRhU291cmNlLFxuICBJUGFnZWREYXRhU291cmNlLFxufSBmcm9tICcuLi9kYXRhLXNvdXJjZSdcbmltcG9ydCB7IEJhdGNoZXIgfSBmcm9tICcuLi8uLi8uLi91dGlscy9iYXRjaGVyJ1xuaW1wb3J0IHsgRGF0YVNvdXJjZUNoYW5nZUV2ZW50IH0gZnJvbSAnLi4vZGF0YS1zb3VyY2UtY2hhbmdlLWV2ZW50J1xuaW1wb3J0IHsgRGF0YVNvdXJjZUJhc2UgfSBmcm9tICcuLi9kYXRhLXNvdXJjZS1iYXNlJ1xuXG5leHBvcnQgY2xhc3MgSW50ZXJuYWxSZXN0Q2xpZW50Q29uZmlnIHtcbiAgcHVibGljIGlkRmllbGQgPSAnaWQnXG4gIHB1YmxpYyBpZHNQYXJhbSA9ICdpZHMnXG5cbiAgY29uc3RydWN0b3IodXNlckNvbmZpZz86IFJlc3RDbGllbnRDb25maWcpIHtcbiAgICBpZiAodXNlckNvbmZpZykge1xuICAgICAgaWYgKHVzZXJDb25maWcuaWRGaWVsZCkge1xuICAgICAgICB0aGlzLmlkRmllbGQgPSB1c2VyQ29uZmlnLmlkRmllbGRcbiAgICAgIH1cbiAgICAgIGlmICh1c2VyQ29uZmlnLmlkc1BhcmFtKSB7XG4gICAgICAgIHRoaXMuaWRzUGFyYW0gPSB1c2VyQ29uZmlnLmlkc1BhcmFtXG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQWxsb3dzIHRvIGN1c3RvbWl6ZSB0aGUgcmVzdCBjbGllbnRcbiAqL1xuZXhwb3J0IGNsYXNzIFJlc3RDbGllbnRDb25maWcge1xuICAvKipcbiAgICogVGhlIGZpZWxkIHRvIHVzZSBhcyBpZC4gRGVmYXVsdHMgdG8gJ2lkJy5cbiAgICovXG4gIHB1YmxpYyBpZEZpZWxkPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFRoZSBxdWVyeSBwYXJhbSB0byB1c2UgZm9yIG11bHRpcGxlIGlkcy4gRGVmYXVsdHMgdG8gJ2lkcydcbiAgICovXG4gIHB1YmxpYyBpZHNQYXJhbT86IHN0cmluZ1xufVxuXG5leHBvcnQgY2xhc3MgUmVzdENsaWVudDxULCBUSUQ+IGV4dGVuZHMgRGF0YVNvdXJjZUJhc2U8VD4gaW1wbGVtZW50cyBJRGF0YVNvdXJjZTxUPiB7XG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvZ2dlciA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSlcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbmZpZzogSW50ZXJuYWxSZXN0Q2xpZW50Q29uZmlnXG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlc3RFbmRwb2ludDogc3RyaW5nLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIGNvbmZpZz86IFJlc3RDbGllbnRDb25maWdcbiAgKSB7XG4gICAgc3VwZXIobmV3IEludGVybmFsUmVzdENsaWVudENvbmZpZyhjb25maWcpLmlkRmllbGQpXG4gICAgdGhpcy5jb25maWcgPSBuZXcgSW50ZXJuYWxSZXN0Q2xpZW50Q29uZmlnKGNvbmZpZylcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBmaW5kQnlJZChpZDogVElELCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgaWYgKGlkID09PSB1bmRlZmluZWQgfHwgaWQgPT09IG51bGwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZmluZEJ5SWQ6IGlkIGFyZ3VtZW50IHJlcXVpcmVkIScpXG4gICAgfVxuICAgIHBhcmFtcyA9IEh0dHBQYXJhbXNCdWlsZGVyLnN0YXJ0KHBhcmFtcykuYnVpbGQoKVxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KHRoaXMuZ2V0RW50aXR5VXJsKGlkKSwgeyBwYXJhbXM6IHBhcmFtcyB9KVxuICB9XG5cbiAgcHVibGljIGZpbmRCeUlkcyhpZHM6IGFueVtdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICBpZiAoaWRzID09PSB1bmRlZmluZWQgfHwgaWRzID09PSBudWxsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZpbmRCeUlkczogaWRzIGFycmF5IGFyZ3VtZW50IHJlcXVpcmVkIScpXG4gICAgfVxuICAgIHRoaXMuX2xvZ2dlci53YXJuKCdWZXJ5IGluZWZmaWNpZW50IGZpbmRCeUlkcyBoYW5kbGluZyAnICsgaWRzLmxlbmd0aClcbiAgICByZXR1cm4gZm9ya0pvaW4oaWRzLm1hcCgoaWQpID0+IHRoaXMuZmluZEJ5SWQoaWQsIHBhcmFtcykpKVxuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgb3IgVXBkYXRlcyB0aGUgZ2l2ZW4gZW50aXR5IGRlcGVuZGluZyBpZiBpdCBhbHJlYWR5IGhhcyBhIHZhbGlkIGlkLlxuICAgKi9cbiAgcHVibGljIHNhdmUoZW50aXR5OiBULCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgaWQgPSB0aGlzLmdldElkKGVudGl0eSlcbiAgICByZXR1cm4gaWQgPyB0aGlzLnVwZGF0ZShlbnRpdHksIHBhcmFtcykgOiB0aGlzLmNyZWF0ZShlbnRpdHksIHBhcmFtcylcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGU8VEMgPSBUPihuZXdFbnRpdHk6IFRDLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8VD4odGhpcy5yZXN0RW5kcG9pbnQsIG5ld0VudGl0eSwge1xuICAgICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgIH0pXG4gICAgICAucGlwZSh0YXAoKGUpID0+IHRoaXMucHVibGlzaENoYW5nZUV2ZW50KERhdGFTb3VyY2VDaGFuZ2VFdmVudC5jcmVhdGVkKFtlXSkpKSlcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGU8VEVudGl0eVVwZGF0ZT4odXBkYXRlOiBURW50aXR5VXBkYXRlLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnB1dDxUPih0aGlzLmdldEVudGl0eVVybEJ5KDxUPig8dW5rbm93bj51cGRhdGUpKSwgdXBkYXRlLCB7XG4gICAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgfSlcbiAgICAgIC5waXBlKHRhcCgoZSkgPT4gdGhpcy5wdWJsaXNoQ2hhbmdlRXZlbnQoRGF0YVNvdXJjZUNoYW5nZUV2ZW50Lm1vZGlmaWVkKFtlXSkpKSlcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVBbGw8VEVudGl0eVVwZGF0ZT4oXG4gICAgdXBkYXRlZEVudGl0aWVzOiBURW50aXR5VXBkYXRlW10sXG4gICAgcGFyYW1zPzogSHR0cFBhcmFtc1xuICApOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wdXQ8VFtdPih0aGlzLnJlc3RFbmRwb2ludCwgdXBkYXRlZEVudGl0aWVzLCB7XG4gICAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgfSlcbiAgICAgIC5waXBlKHRhcCgoZW50aXRpZXMpID0+IHRoaXMucHVibGlzaENoYW5nZUV2ZW50KERhdGFTb3VyY2VDaGFuZ2VFdmVudC5tb2RpZmllZChlbnRpdGllcykpKSlcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGUoZW50aXR5OiBULCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZGVsZXRlKHRoaXMuZ2V0RW50aXR5VXJsQnkoZW50aXR5KSwge1xuICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0JyxcbiAgICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgICB9KVxuICAgICAgLnBpcGUodGFwKCgpID0+IHRoaXMucHVibGlzaENoYW5nZUV2ZW50KERhdGFTb3VyY2VDaGFuZ2VFdmVudC5kZWxldGVkKFt0aGlzLmdldElkKGVudGl0eSldKSkpKVxuICB9XG5cbiAgcHVibGljIGRlbGV0ZUFsbChlbnRpdGllczogVFtdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBpZHMgPSBlbnRpdGllcy5tYXAoKGUpID0+IFN0cmluZyh0aGlzLmdldElkKGUpKSlcblxuICAgIGNvbnN0IG1heEJhdGNoU2l6ZSA9IDEwMFxuICAgIGNvbnN0IGRlbGV0ZVJlcXVlc3RzID0gQmF0Y2hlci5iYXRjaE1hcChpZHMsIG1heEJhdGNoU2l6ZSwgKGJhdGNoKSA9PlxuICAgICAgdGhpcy5kZWxldGVJZEJhdGNoKGJhdGNoLCBwYXJhbXMpXG4gICAgKVxuICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZyhcbiAgICAgICdEZWxldGluZyAnICsgZW50aXRpZXMubGVuZ3RoICsgJyBpbiAnICsgZGVsZXRlUmVxdWVzdHMubGVuZ3RoICsgJyBiYXRjaGVzOiAnLFxuICAgICAgZGVsZXRlUmVxdWVzdHNcbiAgICApXG4gICAgcmV0dXJuIGZvcmtKb2luKGRlbGV0ZVJlcXVlc3RzKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFN1YiBSZXNvdXJjZSBCdWlsZGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHN1YlJlc291cmNlTGlzdDxUUywgVFNJRD4oXG4gICAgcGFyZW50OiBULFxuICAgIHN1YlBhdGg6IHN0cmluZyxcbiAgICBjb25maWc/OiBSZXN0Q2xpZW50Q29uZmlnXG4gICk6IFJlc3RDbGllbnRMaXN0PFRTLCBUU0lEPiB7XG4gICAgcmV0dXJuIG5ldyBSZXN0Q2xpZW50TGlzdCh0aGlzLmdldEVudGl0eVVybEJ5KHBhcmVudCkgKyAnLycgKyBzdWJQYXRoLCB0aGlzLmh0dHAsIGNvbmZpZylcbiAgfVxuXG4gIHB1YmxpYyBzdWJSZXNvdXJjZVBhZ2VkPFRTLCBUU0lEPihcbiAgICBwYXJlbnQ6IFQsXG4gICAgc3ViUGF0aDogc3RyaW5nLFxuICAgIGNvbmZpZz86IFJlc3RDbGllbnRDb25maWdcbiAgKTogUmVzdENsaWVudFBhZ2VkPFRTLCBUU0lEPiB7XG4gICAgcmV0dXJuIG5ldyBSZXN0Q2xpZW50UGFnZWQodGhpcy5nZXRFbnRpdHlVcmxCeShwYXJlbnQpICsgJy8nICsgc3ViUGF0aCwgdGhpcy5odHRwLCBjb25maWcpXG4gIH1cblxuICBwdWJsaWMgc3ViUmVzb3VyY2VDb250aW51YWJsZTxUUywgVFNJRD4oXG4gICAgcGFyZW50OiBULFxuICAgIHN1YlBhdGg6IHN0cmluZyxcbiAgICBjb25maWc/OiBSZXN0Q2xpZW50Q29uZmlnXG4gICk6IFJlc3RDbGllbnRDb250aW51YWJsZTxUUywgVFNJRD4ge1xuICAgIHJldHVybiBuZXcgUmVzdENsaWVudENvbnRpbnVhYmxlKHRoaXMuZ2V0RW50aXR5VXJsQnkocGFyZW50KSArICcvJyArIHN1YlBhdGgsIHRoaXMuaHR0cCwgY29uZmlnKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3RlY3RlZCBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJvdGVjdGVkIHBhdGNoSW50ZXJuYWw8UD4oaWQ6IFRJRCwgZW50aXR5UGF0Y2g6IFAsIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAucGF0Y2g8VD4odGhpcy5nZXRFbnRpdHlVcmwoaWQpLCBlbnRpdHlQYXRjaCwge1xuICAgICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgIH0pXG4gICAgICAucGlwZSh0YXAoKGUpID0+IHRoaXMucHVibGlzaENoYW5nZUV2ZW50KERhdGFTb3VyY2VDaGFuZ2VFdmVudC5tb2RpZmllZChbZV0pKSkpXG4gIH1cblxuICBwcm90ZWN0ZWQgcGF0Y2hBbGxJbnRlcm5hbDxQPihlbnRpdHlQYXRjaGVzOiBQW10sIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wYXRjaDxUW10+KHRoaXMucmVzdEVuZHBvaW50LCBlbnRpdHlQYXRjaGVzLCB7XG4gICAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgfSlcbiAgICAgIC5waXBlKHRhcCgoZSkgPT4gdGhpcy5wdWJsaXNoQ2hhbmdlRXZlbnQoRGF0YVNvdXJjZUNoYW5nZUV2ZW50Lm1vZGlmaWVkKGUpKSkpXG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgU3dpdGNoIHRvIHB1Ymxpc2hDaGFuZ2VFdmVudFxuICAgKi9cbiAgcHJvdGVjdGVkIG9uTG9jYWxDaGFuZ2VkKGVudGl0eT86IFQpOiB2b2lkIHtcbiAgICB0aGlzLnB1Ymxpc2hDaGFuZ2VFdmVudChEYXRhU291cmNlQ2hhbmdlRXZlbnQudW5rbm93bkNoYW5nZXMoKSlcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRFbnRpdHlVcmxCeShlbnRpdHk6IFQpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldEVudGl0eVVybCh0aGlzLmdldElkKGVudGl0eSkpXG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RW50aXR5VXJsKGlkOiBUSUQpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc3RFbmRwb2ludCArICcvJyArIGlkXG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogRGVsZXRlcyB0aGUgZ2l2ZW4gaWRzIGluIGEgYmF0Y2ggY2FsbC5cbiAgICogTm90ZSB0aGF0IGR1ZSBIVFRQIFJlcXVlc3QgVVJJIGxpbWl0YXRpb25zLFxuICAgKiB0aGUgbnVtYmVyIG9mIGlkcyB0aGF0IGNhbiBiZSBkZWxldGVkIGluIGEgc2luZ2xlIGJhdGNoIGlzXG4gICAqIGxpbWl0ZWQgKGFyb3VuZCAxNTAsIGRlcGVuZGluZyBvbiBpZCBsZW5ndGgsIHNpbmNlIHRoZXkgYXJlXG4gICAqIHBhcnQgb2YgdGhlIHJlcXVlc3QgdXJpIHBhcmFtZXRlcnMuXG4gICAqL1xuICBwcml2YXRlIGRlbGV0ZUlkQmF0Y2goaWRzOiBzdHJpbmdbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgYnVpbGRlciA9IEh0dHBQYXJhbXNCdWlsZGVyLnN0YXJ0KHBhcmFtcylcbiAgICBidWlsZGVyLmFwcGVuZEZpbHRlcihuZXcgRmlsdGVyKHRoaXMuY29uZmlnLmlkc1BhcmFtLCBpZHMpKVxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5kZWxldGUodGhpcy5yZXN0RW5kcG9pbnQsIHtcbiAgICAgICAgcGFyYW1zOiBidWlsZGVyLmJ1aWxkKCksXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgICAgfSlcbiAgICAgIC5waXBlKHRhcCgoKSA9PiB0aGlzLnB1Ymxpc2hDaGFuZ2VFdmVudChEYXRhU291cmNlQ2hhbmdlRXZlbnQuZGVsZXRlZChpZHMpKSkpXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlc3RDbGllbnRMaXN0PFQsIFRJRD4gZXh0ZW5kcyBSZXN0Q2xpZW50PFQsIFRJRD4gaW1wbGVtZW50cyBJTGlzdERhdGFTb3VyY2U8VD4ge1xuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihyZXN0RW5kcG9pbnQ6IHN0cmluZywgaHR0cDogSHR0cENsaWVudCwgY29uZmlnPzogUmVzdENsaWVudENvbmZpZykge1xuICAgIHN1cGVyKHJlc3RFbmRwb2ludCwgaHR0cCwgY29uZmlnKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGZpbmRBbGxGaWx0ZXJlZChmaWx0ZXJzPzogRmlsdGVyW10sIHNvcnRzPzogU29ydFtdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICByZXR1cm4gdGhpcy5maW5kQWxsKFxuICAgICAgSHR0cFBhcmFtc0J1aWxkZXIuc3RhcnQocGFyYW1zKS5hcHBlbmRGaWx0ZXJzKGZpbHRlcnMpLmFwcGVuZFNvcnRzKHNvcnRzKS5idWlsZCgpXG4gICAgKVxuICB9XG5cbiAgcHVibGljIGZpbmRCeUlkcyhpZHM6IGFueVtdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICBpZiAoaWRzPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5maW5kQWxsRmlsdGVyZWQoW25ldyBGaWx0ZXIodGhpcy5jb25maWcuaWRzUGFyYW0sIGlkcyldLCBbXSwgcGFyYW1zKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2YoW10pXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZpbmRBbGwocGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VFtdPih0aGlzLnJlc3RFbmRwb2ludCwge1xuICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgfSlcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVzdENsaWVudFBhZ2VkPFQsIFRJRD4gZXh0ZW5kcyBSZXN0Q2xpZW50PFQsIFRJRD4gaW1wbGVtZW50cyBJUGFnZWREYXRhU291cmNlPFQ+IHtcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IocmVzdEVuZHBvaW50OiBzdHJpbmcsIGh0dHA6IEh0dHBDbGllbnQsIGNvbmZpZz86IFJlc3RDbGllbnRDb25maWcpIHtcbiAgICBzdXBlcihyZXN0RW5kcG9pbnQsIGh0dHAsIGNvbmZpZylcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBmaW5kQWxsUGFnZWQoXG4gICAgcGFnZWFibGU6IFBhZ2VhYmxlLFxuICAgIGZpbHRlcnM/OiBGaWx0ZXJbXSxcbiAgICBwYXJhbXM/OiBIdHRwUGFyYW1zXG4gICk6IE9ic2VydmFibGU8UGFnZTxUPj4ge1xuICAgIHJldHVybiB0aGlzLmdldFBhZ2VkKHRoaXMucmVzdEVuZHBvaW50LCBwYWdlYWJsZSwgZmlsdGVycywgcGFyYW1zKVxuICB9XG5cbiAgcHVibGljIGZpbmRCeUlkcyhpZHM6IGFueVtdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICBpZiAoaWRzPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5maW5kQWxsUGFnZWQoXG4gICAgICAgIG5ldyBQYWdlYWJsZSgwLCBpZHMubGVuZ3RoKSxcbiAgICAgICAgW25ldyBGaWx0ZXIodGhpcy5jb25maWcuaWRzUGFyYW0sIGlkcyldLFxuICAgICAgICBwYXJhbXNcbiAgICAgICkucGlwZShtYXAoKHBhZ2UpID0+IHBhZ2UuY29udGVudCkpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZihbXSlcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAvKipcbiAgICogR2V0cyB0aGUgcmVxdWVzdGVkIGRhdGEgcGFnZSBhcyBQYWdlPFQ+XG4gICAqIEBwYXJhbSB1cmwgVGhlIHJlc291cmNlIHVybFxuICAgKiBAcGFyYW0gcGFnZWFibGUgVGhlIHBhZ2UgcmVxdWVzdFxuICAgKiBAcGFyYW0gZmlsdGVycyBUaGUgZmlsdGVyc1NuYXBzaG90IHJlcXVlc3RcbiAgICogQHBhcmFtIHBhcmFtcyBBZGRpdGlvbmFsIHBhcmFtZXRlcnNcbiAgICovXG4gIHByaXZhdGUgZ2V0UGFnZWQoXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgcGFnZWFibGU6IFBhZ2VhYmxlLFxuICAgIGZpbHRlcnM/OiBGaWx0ZXJbXSxcbiAgICBwYXJhbXM/OiBIdHRwUGFyYW1zXG4gICk6IE9ic2VydmFibGU8UGFnZTxUPj4ge1xuICAgIHBhcmFtcyA9IEh0dHBQYXJhbXNCdWlsZGVyLnN0YXJ0KHBhcmFtcykuYXBwZW5kUGFnZWFibGUocGFnZWFibGUpLmFwcGVuZEZpbHRlcnMoZmlsdGVycykuYnVpbGQoKVxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFBhZ2U8VD4+KHVybCwgeyBwYXJhbXM6IHBhcmFtcyB9KVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZXN0Q2xpZW50Q29udGludWFibGU8VCwgVElEPlxuICBleHRlbmRzIFJlc3RDbGllbnQ8VCwgVElEPlxuICBpbXBsZW1lbnRzIElDb250aW51YWJsZURhdGFTb3VyY2U8VD5cbntcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IocmVzdEVuZHBvaW50OiBzdHJpbmcsIGh0dHA6IEh0dHBDbGllbnQsIGNvbmZpZz86IFJlc3RDbGllbnRDb25maWcpIHtcbiAgICBzdXBlcihyZXN0RW5kcG9pbnQsIGh0dHAsIGNvbmZpZylcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBmaW5kQWxsQ29udGludWFibGUoXG4gICAgcmVxdWVzdDogVG9rZW5DaHVua1JlcXVlc3QsXG4gICAgcGFyYW1zPzogSHR0cFBhcmFtc1xuICApOiBPYnNlcnZhYmxlPENvbnRpbnVhYmxlTGlzdGluZzxUPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PENvbnRpbnVhYmxlTGlzdGluZzxUPj4odGhpcy5yZXN0RW5kcG9pbnQsIHtcbiAgICAgIHBhcmFtczogSHR0cFBhcmFtc0J1aWxkZXIuc3RhcnQocGFyYW1zKS5hcHBlbmRDb250aW51YXRpb25SZXF1ZXN0KHJlcXVlc3QpLmJ1aWxkKCksXG4gICAgfSlcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQnlJZHMoaWRzOiBhbnlbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgaWYgKGlkcz8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHRoaXMubG9hZEFsbChbbmV3IEZpbHRlcih0aGlzLmNvbmZpZy5pZHNQYXJhbSwgaWRzKV0sIFtdLCBwYXJhbXMpXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZihbXSlcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGxvYWRBbGwoZmlsdGVycz86IEZpbHRlcltdLCBzb3J0cz86IFNvcnRbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZmluZEFsbENvbnRpbnVhYmxlKG5ldyBUb2tlbkNodW5rUmVxdWVzdChudWxsLCBmaWx0ZXJzLCBzb3J0cyksIHBhcmFtcykucGlwZShcbiAgICAgIGV4cGFuZCgobGlzdGluZykgPT4ge1xuICAgICAgICAvLyB0aGUgcHJldmlvdXMgXCJsaXN0aW5nXCIgLT4gVGhpcyBpcyByZWN1cnNpdmVcbiAgICAgICAgcmV0dXJuIGxpc3RpbmcubmV4dENvbnRpbnVhdGlvblRva2VuIC8vIGlmIHRoZXJlJ3MgXCJuZXh0Q29udGludWF0aW9uVG9rZW5cIiwgd2UgcmVmZXRjaCBvciB3ZSBFTVBUWSB0byBjb21wbGV0ZSB0aGUgXCJleHBhbmQoKVwiXG4gICAgICAgICAgPyB0aGlzLmZpbmRBbGxDb250aW51YWJsZShcbiAgICAgICAgICAgICAgbmV3IFRva2VuQ2h1bmtSZXF1ZXN0KGxpc3RpbmcubmV4dENvbnRpbnVhdGlvblRva2VuLCBmaWx0ZXJzLCBzb3J0cyksXG4gICAgICAgICAgICAgIHBhcmFtc1xuICAgICAgICAgICAgKVxuICAgICAgICAgIDogRU1QVFlcbiAgICAgIH0pLFxuICAgICAgbWFwKChsaXN0aW5nKSA9PiBsaXN0aW5nLmNvbnRlbnQpLFxuICAgICAgcmVkdWNlKFxuICAgICAgICAoYWdnLCBsaXN0aW5nKSA9PiB7XG4gICAgICAgICAgYWdnLnB1c2goLi4ubGlzdGluZylcbiAgICAgICAgICByZXR1cm4gYWdnXG4gICAgICAgIH0sXG4gICAgICAgIDxUW10+W11cbiAgICAgIClcbiAgICApXG4gIH1cbn1cbiJdfQ==
|