@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,345 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ContentChild, Directive, forwardRef, Input, Optional, SkipSelf, TemplateRef, ViewChild, } from '@angular/core';
|
|
2
|
-
import { LoggerFactory } from '@elderbyte/ts-logger';
|
|
3
|
-
import { BehaviorSubject, combineLatest, of } from 'rxjs';
|
|
4
|
-
import { isContinuableDataContext, } from '../../../../common/data/data-context/data-context';
|
|
5
|
-
import { CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf, } from '@angular/cdk/scrolling';
|
|
6
|
-
import { debounceTime, filter, map, startWith, switchMap, takeUntil } from 'rxjs/operators';
|
|
7
|
-
import { ELDER_DATA_VIEW } from '../../base/elder-data-view';
|
|
8
|
-
import { ElderDataViewBaseComponent } from '../../base/elder-data-view-base';
|
|
9
|
-
import { MatPaginator } from '@angular/material/paginator';
|
|
10
|
-
import { MatTableDataContextBindingBuilder } from '../../../../common/data/data-context/mat-table-data-context-binding';
|
|
11
|
-
import { Breakpoints } from '@angular/cdk/layout';
|
|
12
|
-
import { MatProgressBar } from '@angular/material/progress-bar';
|
|
13
|
-
import { MatIcon } from '@angular/material/icon';
|
|
14
|
-
import { ElderStopEventPropagationDirective } from '../../../forms/directives/elder-stop-event-propagation.directive';
|
|
15
|
-
import { MatIconButton } from '@angular/material/button';
|
|
16
|
-
import { ElderInfiniteScrollDirective } from '../../../infinitescroll/elder-infinite-scroll.directive';
|
|
17
|
-
import { DataContextStateIndicatorComponent } from '../../common/data-context-state-indicator/data-context-state-indicator.component';
|
|
18
|
-
import { MatDivider } from '@angular/material/divider';
|
|
19
|
-
import { ElderSingleSortComponent } from '../../common/elder-single-sort/elder-single-sort.component';
|
|
20
|
-
import { ElderSelectionMasterCheckboxComponent } from '../../common/selection/elder-selection-master-checkbox/elder-selection-master-checkbox.component';
|
|
21
|
-
import { DataContextSelectionDirective } from '../../common/selection/data-context-selection.directive';
|
|
22
|
-
import { NgIf, NgTemplateOutlet, NgFor, AsyncPipe } from '@angular/common';
|
|
23
|
-
import { MatCard } from '@angular/material/card';
|
|
24
|
-
import { ElderCompositeSortComponent } from '../../common/composite-sort/elder-composite-sort/elder-composite-sort.component';
|
|
25
|
-
import { CompositeSort } from '../../common/composite-sort/composite-sort';
|
|
26
|
-
import { ElderCompositeSortDcDirective } from '../../common/composite-sort/composite-sort-dc.directive';
|
|
27
|
-
import { UuidUtil } from '../../../../common/utils/uuid-util';
|
|
28
|
-
import * as i0 from "@angular/core";
|
|
29
|
-
import * as i1 from "../../../../common/selection/selection-model";
|
|
30
|
-
import * as i2 from "../../base/elder-data-view-options-provider";
|
|
31
|
-
import * as i3 from "@angular/cdk/layout";
|
|
32
|
-
class GridRow {
|
|
33
|
-
constructor(id, cells) {
|
|
34
|
-
this.id = id;
|
|
35
|
-
this.cells = cells;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
export class ElderGridTileDirective {
|
|
39
|
-
constructor(templateRef, viewContainer) {
|
|
40
|
-
this.templateRef = templateRef;
|
|
41
|
-
this.viewContainer = viewContainer;
|
|
42
|
-
}
|
|
43
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderGridTileDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
44
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ElderGridTileDirective, isStandalone: true, selector: "[elderGridTile]", ngImport: i0 }); }
|
|
45
|
-
}
|
|
46
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderGridTileDirective, decorators: [{
|
|
47
|
-
type: Directive,
|
|
48
|
-
args: [{
|
|
49
|
-
selector: '[elderGridTile]',
|
|
50
|
-
standalone: true,
|
|
51
|
-
}]
|
|
52
|
-
}], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }] });
|
|
53
|
-
/**
|
|
54
|
-
* This directive projects marked content into a toolbar.
|
|
55
|
-
*/
|
|
56
|
-
export class ElderGridToolbarDirective {
|
|
57
|
-
constructor(templateRef, viewContainer) {
|
|
58
|
-
this.templateRef = templateRef;
|
|
59
|
-
this.viewContainer = viewContainer;
|
|
60
|
-
}
|
|
61
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderGridToolbarDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
62
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: ElderGridToolbarDirective, isStandalone: true, selector: "[elderGridToolbar]", ngImport: i0 }); }
|
|
63
|
-
}
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderGridToolbarDirective, decorators: [{
|
|
65
|
-
type: Directive,
|
|
66
|
-
args: [{
|
|
67
|
-
selector: '[elderGridToolbar]',
|
|
68
|
-
standalone: true,
|
|
69
|
-
}]
|
|
70
|
-
}], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }] });
|
|
71
|
-
export class ElderGridComponent extends ElderDataViewBaseComponent {
|
|
72
|
-
set availableSorts(availableSorts) {
|
|
73
|
-
this.availableCompositeSorts = CompositeSort.coerce(availableSorts);
|
|
74
|
-
}
|
|
75
|
-
/***************************************************************************
|
|
76
|
-
* *
|
|
77
|
-
* Constructor *
|
|
78
|
-
* *
|
|
79
|
-
**************************************************************************/
|
|
80
|
-
constructor(selectionModel, dataViewOptionsProvider, breakpointObserver) {
|
|
81
|
-
super(selectionModel, dataViewOptionsProvider);
|
|
82
|
-
this.breakpointObserver = breakpointObserver;
|
|
83
|
-
/***************************************************************************
|
|
84
|
-
* *
|
|
85
|
-
* Fields *
|
|
86
|
-
* *
|
|
87
|
-
**************************************************************************/
|
|
88
|
-
this.log = LoggerFactory.getLogger(this.constructor.name);
|
|
89
|
-
this._columnCount = new BehaviorSubject(4);
|
|
90
|
-
this.sizeToColumns = new Map([
|
|
91
|
-
[Breakpoints.XSmall, 1],
|
|
92
|
-
[Breakpoints.Small, 2],
|
|
93
|
-
[Breakpoints.Medium, 3],
|
|
94
|
-
[Breakpoints.Large, 4],
|
|
95
|
-
[Breakpoints.XLarge, 5],
|
|
96
|
-
]);
|
|
97
|
-
/**
|
|
98
|
-
* Load next chunk after current is done
|
|
99
|
-
*/
|
|
100
|
-
this.loadNextQueued = false;
|
|
101
|
-
this.scrollContainerId = 'documents-container-' + UuidUtil.weakUuid4();
|
|
102
|
-
this.TrackGridRowByIdFn = (index, row) => row.id;
|
|
103
|
-
this.toolbarVisible = true;
|
|
104
|
-
this.footerVisible = true;
|
|
105
|
-
this.itemHeight = 250;
|
|
106
|
-
this.responsiveColumnCount = true;
|
|
107
|
-
this.availableCompositeSorts = [];
|
|
108
|
-
this.sortTranslationPrefix = 'documents.sorts.';
|
|
109
|
-
this.hiddenField = null;
|
|
110
|
-
/**
|
|
111
|
-
* @deprecated No longer required. Id is automatically picked from the DataSource.
|
|
112
|
-
*/
|
|
113
|
-
this.idField = 'id';
|
|
114
|
-
this.selectionVisible = true;
|
|
115
|
-
this.pageSizeOptions = [30, 50, 100, 150, 200];
|
|
116
|
-
}
|
|
117
|
-
/***************************************************************************
|
|
118
|
-
* *
|
|
119
|
-
* Lifecycle *
|
|
120
|
-
* *
|
|
121
|
-
**************************************************************************/
|
|
122
|
-
ngOnInit() {
|
|
123
|
-
super.ngOnInit();
|
|
124
|
-
const columnCount$ = this.responsiveColumnCount ? this.responsiveColumn() : this._columnCount;
|
|
125
|
-
this.dataRows$ = combineLatest([
|
|
126
|
-
this.dataContext$.pipe(filter((dc) => !!dc), switchMap((dc) => dc.data)),
|
|
127
|
-
columnCount$,
|
|
128
|
-
]).pipe(debounceTime(50), map(([data, columnCount]) => this.buildGridRow(data, columnCount)));
|
|
129
|
-
}
|
|
130
|
-
ngAfterViewInit() {
|
|
131
|
-
MatTableDataContextBindingBuilder.start(this.dataContext$)
|
|
132
|
-
.withPaginator(of(this.matPaginator))
|
|
133
|
-
.bindUntil(this.destroy$);
|
|
134
|
-
}
|
|
135
|
-
/***************************************************************************
|
|
136
|
-
* *
|
|
137
|
-
* Properties *
|
|
138
|
-
* *
|
|
139
|
-
**************************************************************************/
|
|
140
|
-
set tileTemplate(template) {
|
|
141
|
-
this._tileTemplate = template;
|
|
142
|
-
}
|
|
143
|
-
get tileTemplate() {
|
|
144
|
-
return this._tileTemplate || this.tileTemplateQuery;
|
|
145
|
-
}
|
|
146
|
-
set toolbarTemplate(template) {
|
|
147
|
-
this._toolbarTemplate = template;
|
|
148
|
-
}
|
|
149
|
-
get toolbarTemplate() {
|
|
150
|
-
return this._toolbarTemplate || this.toolbarTemplateQuery;
|
|
151
|
-
}
|
|
152
|
-
set data(data) {
|
|
153
|
-
this.dataContext$.next(data);
|
|
154
|
-
this.total$ = data.total.pipe(map((total) => (total ? total + '' : '∞')));
|
|
155
|
-
if (isContinuableDataContext(data)) {
|
|
156
|
-
this.canLoadMore$ = combineLatest([data.loading, data.hasMoreData]).pipe(map(([loading, hasMoreData]) => !loading && hasMoreData));
|
|
157
|
-
}
|
|
158
|
-
else {
|
|
159
|
-
this.canLoadMore$ = of(false);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
get dataSnapshot() {
|
|
163
|
-
return this.dataContinuable;
|
|
164
|
-
}
|
|
165
|
-
set columnCount(count) {
|
|
166
|
-
this._columnCount.next(count);
|
|
167
|
-
}
|
|
168
|
-
get columnCount() {
|
|
169
|
-
return this._columnCount.getValue();
|
|
170
|
-
}
|
|
171
|
-
/***************************************************************************
|
|
172
|
-
* *
|
|
173
|
-
* Public API *
|
|
174
|
-
* *
|
|
175
|
-
**************************************************************************/
|
|
176
|
-
inSelectionMode(currentSelection) {
|
|
177
|
-
if (this.interactionMode === 'selection') {
|
|
178
|
-
return true;
|
|
179
|
-
}
|
|
180
|
-
if (currentSelection && currentSelection.length > 0) {
|
|
181
|
-
return true;
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
requestMoreDataZoned(event) {
|
|
185
|
-
if (this.dataSnapshot.hasMoreDataSnapshot) {
|
|
186
|
-
if (this.dataSnapshot.snapshot.isLoading) {
|
|
187
|
-
this.loadNextQueued = true;
|
|
188
|
-
}
|
|
189
|
-
else {
|
|
190
|
-
this.dataSnapshot.loadMore().subscribe((loaded) => {
|
|
191
|
-
if (this.loadNextQueued) {
|
|
192
|
-
this.loadNextQueued = false;
|
|
193
|
-
this.requestMoreDataZoned(event);
|
|
194
|
-
}
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
else {
|
|
199
|
-
this.loadNextQueued = false;
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
showTile(tile) {
|
|
203
|
-
return tile && (this.hiddenField ? !tile[this.hiddenField] : true);
|
|
204
|
-
}
|
|
205
|
-
/***************************************************************************
|
|
206
|
-
* *
|
|
207
|
-
* Private Methods *
|
|
208
|
-
* *
|
|
209
|
-
**************************************************************************/
|
|
210
|
-
scrollTop() {
|
|
211
|
-
this.virtualScrollViewPort.scrollToIndex(0, 'smooth');
|
|
212
|
-
}
|
|
213
|
-
buildGridRow(nodes, columnCount) {
|
|
214
|
-
const rows = [];
|
|
215
|
-
const rowCount = nodes.length / columnCount;
|
|
216
|
-
for (let rowIndex = 0; rowIndex < rowCount; rowIndex++) {
|
|
217
|
-
const rowStartIndex = rowIndex * columnCount;
|
|
218
|
-
const rowCells = nodes.slice(rowStartIndex, rowStartIndex + columnCount);
|
|
219
|
-
while (rowCells.length < columnCount) {
|
|
220
|
-
rowCells.push(null); // Fill up remaining
|
|
221
|
-
}
|
|
222
|
-
rows.push(new GridRow(this.rowId(rowCells), rowCells));
|
|
223
|
-
}
|
|
224
|
-
return rows;
|
|
225
|
-
}
|
|
226
|
-
rowId(cells) {
|
|
227
|
-
return cells
|
|
228
|
-
.map((cell) => {
|
|
229
|
-
if (cell) {
|
|
230
|
-
return this.getId(cell);
|
|
231
|
-
}
|
|
232
|
-
else {
|
|
233
|
-
return '_';
|
|
234
|
-
}
|
|
235
|
-
})
|
|
236
|
-
.join('-');
|
|
237
|
-
}
|
|
238
|
-
responsiveColumn() {
|
|
239
|
-
const breakpoints = Array.from(this.sizeToColumns.keys());
|
|
240
|
-
return this.breakpointObserver.observe(breakpoints).pipe(takeUntil(this.destroy$), map((result) => {
|
|
241
|
-
let activeSize = Breakpoints.Medium;
|
|
242
|
-
for (const query of Object.keys(result.breakpoints)) {
|
|
243
|
-
if (result.breakpoints[query]) {
|
|
244
|
-
activeSize = query;
|
|
245
|
-
break;
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
return this.sizeToColumns.get(activeSize);
|
|
249
|
-
}), debounceTime(100), startWith(this.activeColumnCount()));
|
|
250
|
-
}
|
|
251
|
-
activeColumnCount() {
|
|
252
|
-
let columnCount = 1;
|
|
253
|
-
this.sizeToColumns.forEach((cols, mqAlias) => {
|
|
254
|
-
if (this.breakpointObserver.isMatched(mqAlias)) {
|
|
255
|
-
columnCount = cols;
|
|
256
|
-
}
|
|
257
|
-
});
|
|
258
|
-
return columnCount;
|
|
259
|
-
}
|
|
260
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderGridComponent, deps: [{ token: i1.SelectionModel, optional: true }, { token: i2.ElderDataViewOptionsProvider, optional: true, skipSelf: true }, { token: i3.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
261
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ElderGridComponent, isStandalone: true, selector: "elder-grid", inputs: { toolbarVisible: "toolbarVisible", footerVisible: "footerVisible", itemHeight: "itemHeight", responsiveColumnCount: "responsiveColumnCount", availableSorts: "availableSorts", sortTranslationPrefix: "sortTranslationPrefix", hiddenField: "hiddenField", idField: "idField", selectionVisible: "selectionVisible", pageSizeOptions: "pageSizeOptions", tileTemplate: "tileTemplate", toolbarTemplate: "toolbarTemplate", data: "data", columnCount: "columnCount" }, providers: [
|
|
262
|
-
{
|
|
263
|
-
provide: ELDER_DATA_VIEW,
|
|
264
|
-
useExisting: forwardRef(() => ElderGridComponent),
|
|
265
|
-
},
|
|
266
|
-
], queries: [{ propertyName: "tileTemplateQuery", first: true, predicate: ElderGridTileDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "toolbarTemplateQuery", first: true, predicate: ElderGridToolbarDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "virtualScrollViewPort", first: true, predicate: ["virtualScrollViewPort"], descendants: true, static: true }, { propertyName: "matPaginator", first: true, predicate: MatPaginator, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-card class=\"full\" [class.embedded]=\"embedded\" [appearance]=\"appearance\">\n @if (dataContext$ | async; as data) {\n <!-- Grid Browser -->\n <div\n class=\"layout-col full elder-grid-container\"\n [elderDataContextSelection]=\"data\"\n #dataSelection=\"elderDataContextSelection\"\n [elderDataContextSelectionModel]=\"selectionModel\"\n >\n <!-- Toolbar Row -->\n @if (toolbarVisible) {\n <div class=\"layout-row place-start-center flex-none elder-grid-toolbar\">\n @if (selectionVisible) {\n <div class=\"layout-col flex-none\" style=\"padding-left: 8px; padding-right: 8px\">\n <elder-selection-master-checkbox\n class=\"flex-none\"\n style=\"padding-left: 12px\"\n ></elder-selection-master-checkbox>\n </div>\n }\n\n <!-- Toolbar -->\n @if (toolbarTemplate) {\n <ng-template\n *ngTemplateOutlet=\"toolbarTemplate; context: { $implicit: this }\"\n ></ng-template>\n }\n\n @if (availableCompositeSorts && availableCompositeSorts.length > 0) {\n <elder-composite-sort\n class=\"flex-none\"\n [availableSorts]=\"availableCompositeSorts\"\n [translationPrefix]=\"sortTranslationPrefix\"\n [elderCompositeSortDc]=\"data\"\n >\n </elder-composite-sort>\n }\n </div>\n\n <mat-divider></mat-divider>\n }\n\n <elder-data-context-state-indicator class=\"flex-none\" [dataContext]=\"data\">\n </elder-data-context-state-indicator>\n\n <!-- [cdkDropListSortingDisabled]=\"true\" -->\n <!-- cdkDropList -->\n <cdk-virtual-scroll-viewport\n class=\"layout-col flex elder-grid-browser\"\n id=\"{{ scrollContainerId }}\"\n [itemSize]=\"itemHeight\"\n [minBufferPx]=\"itemHeight * 2\"\n [maxBufferPx]=\"itemHeight * 3\"\n #virtualScrollViewPort\n elderInfiniteScroll\n [eventThrottle]=\"200\"\n [offsetFactor]=\"2\"\n [ignoreScrollEvent]=\"data.loading | async\"\n [containerId]=\"scrollContainerId\"\n [listenToHost]=\"false\"\n (closeToEnd)=\"requestMoreDataZoned($event)\"\n >\n <!-- (scrolling)=\"onScrolling($event)\" -->\n\n <div\n *cdkVirtualFor=\"\n let gridRow of dataRows$;\n trackBy: TrackGridRowByIdFn;\n templateCacheSize: 50\n \"\n class=\"elder-grid-tile-row\"\n [style.height]=\"itemHeight + 'px'\"\n >\n @for (tile of gridRow.cells; track getId(tile)) {\n <!-- Tile Cell -->\n @if (showTile(tile)) {\n <mat-card appearance=\"outlined\" class=\"elder-grid-tile\">\n <div\n class=\"elder-grid-tile-content\"\n (click)=\"onItemClick(tile)\"\n (dblclick)=\"onItemDoubleClick(tile)\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tileTemplate || simpleTileTemplate;\n context: { $implicit: tile }\n \"\n ></ng-container>\n <!-- Overlay (Selection) -->\n @if (selectionVisible) {\n @if (selectionModel.selection | async; as selection) {\n <div\n class=\"elder-grid-tile-overlay elder-click-through\"\n [class.elder-grid-tile-overlay-hidden]=\"!inSelectionMode(selection)\"\n [class.elder-grid-tile-overlay-visible]=\"inSelectionMode(selection)\"\n >\n <button\n mat-icon-button\n type=\"button\"\n (click)=\"selectionModel.toggle(tile)\"\n elderStopEventPropagation\n class=\"elder-grid-tile-check\"\n >\n <mat-icon\n [class.elder-selected]=\"selectionModel.observeSelection(tile) | async\"\n >\n {{\n (selectionModel.observeSelection(tile) | async)\n ? 'check_circle'\n : 'radio_button_unchecked'\n }}\n </mat-icon>\n </button>\n </div>\n }\n }\n </div>\n </mat-card>\n } @else {\n <div class=\"elder-grid-tile-hidden\"></div>\n }\n }\n </div>\n </cdk-virtual-scroll-viewport>\n\n <mat-progress-bar\n class=\"flex-none\"\n [mode]=\"(data?.loading | async) ? 'indeterminate' : 'determinate'\"\n [color]=\"data && (data.status | async)?.hasError ? 'warn' : 'primary'\"\n >\n </mat-progress-bar>\n\n <!-- Footer -->\n @if (footerVisible) {\n <div\n class=\"layout-row place-end-center gap-md flex-none elder-grid-footer\"\n style=\"padding-right: 12px\"\n >\n <!-- Continuable -->\n @if (isContinuable) {\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{ (dataSnapshot?.data | async)?.length }} / {{ total$ | async }}\n </span>\n\n <button\n mat-icon-button\n type=\"button\"\n color=\"primary\"\n [disabled]=\"!(canLoadMore$ | async)\"\n (click)=\"dataSnapshot.loadMore()\"\n >\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n }\n\n <!-- Paged -->\n @if (isActivePaged) {\n @if (dataActivePaged.page | async; as page) {\n <mat-paginator\n class=\"flex-none\"\n [length]=\"dataContext?.total | async\"\n [pageIndex]=\"page?.index\"\n [pageSize]=\"page?.size\"\n [pageSizeOptions]=\"pageSizeOptions\"\n >\n </mat-paginator>\n }\n }\n\n <!-- Local Source -->\n @if (!isActivePaged && !isContinuable) {\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{ (dataSnapshot?.data | async)?.length }}\n </span>\n }\n </div>\n }\n </div>\n }\n</mat-card>\n\n<ng-template #simpleTileTemplate let-tile>\n @if (tile) {\n <div class=\"layout-col place-center-center flex\" style=\"background-color: lightblue\">\n <p class=\"noselect\">Tile: {{ tile }}</p>\n </div>\n }\n</ng-template>\n", styles: [":host{min-width:0;min-height:0}.elder-grid-tile-row{display:flex;flex-direction:row;padding:8px}.elder-grid-tile-row:first-child{padding-top:16px}.elder-grid-tile-hidden{flex:0 1 100%;margin:8px;width:100%;height:100%}.elder-grid-tile-content{position:relative;width:100%;height:100%;overflow:hidden}.elder-grid-tile-overlay{position:absolute;inset:0;-webkit-transition:background-color .1s ease-in,opacity .1s ease-in;transition:background-color .1s ease-in,opacity .1s ease-in}.elder-click-through{pointer-events:none}.elder-grid-tile-overlay-visible{opacity:1}.elder-grid-tile-overlay-hidden{opacity:0}\n"], dependencies: [{ kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: DataContextSelectionDirective, selector: "[elderDataContextSelection]", inputs: ["elderDataContextSelectionModel", "elderDataContextSelection"], exportAs: ["elderDataContextSelection"] }, { kind: "component", type: ElderSelectionMasterCheckboxComponent, selector: "elder-selection-master-checkbox" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: DataContextStateIndicatorComponent, selector: "elder-data-context-state-indicator", inputs: ["dataContext"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: ElderInfiniteScrollDirective, selector: "[elderInfiniteScroll]", inputs: ["listenToHost", "eventThrottle", "offsetFactor", "ignoreScrollEvent", "containerId", "scrollContainer"], outputs: ["closeToEnd", "scrolling"] }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: ElderStopEventPropagationDirective, selector: "[elderStopEventPropagation]" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: ElderCompositeSortComponent, selector: "elder-composite-sort", inputs: ["availableSorts", "sorts", "translationPrefix"], outputs: ["sortsChange"] }, { kind: "directive", type: ElderCompositeSortDcDirective, selector: "[elderCompositeSortDc]", inputs: ["elderCompositeSortDc"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
267
|
-
}
|
|
268
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderGridComponent, decorators: [{
|
|
269
|
-
type: Component,
|
|
270
|
-
args: [{ selector: 'elder-grid', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
271
|
-
{
|
|
272
|
-
provide: ELDER_DATA_VIEW,
|
|
273
|
-
useExisting: forwardRef(() => ElderGridComponent),
|
|
274
|
-
},
|
|
275
|
-
], standalone: true, imports: [
|
|
276
|
-
MatCard,
|
|
277
|
-
NgIf,
|
|
278
|
-
DataContextSelectionDirective,
|
|
279
|
-
ElderSelectionMasterCheckboxComponent,
|
|
280
|
-
NgTemplateOutlet,
|
|
281
|
-
ElderSingleSortComponent,
|
|
282
|
-
MatDivider,
|
|
283
|
-
DataContextStateIndicatorComponent,
|
|
284
|
-
CdkVirtualScrollViewport,
|
|
285
|
-
CdkFixedSizeVirtualScroll,
|
|
286
|
-
ElderInfiniteScrollDirective,
|
|
287
|
-
CdkVirtualForOf,
|
|
288
|
-
NgFor,
|
|
289
|
-
MatIconButton,
|
|
290
|
-
ElderStopEventPropagationDirective,
|
|
291
|
-
MatIcon,
|
|
292
|
-
MatProgressBar,
|
|
293
|
-
MatPaginator,
|
|
294
|
-
AsyncPipe,
|
|
295
|
-
ElderCompositeSortComponent,
|
|
296
|
-
ElderCompositeSortDcDirective,
|
|
297
|
-
], template: "<mat-card class=\"full\" [class.embedded]=\"embedded\" [appearance]=\"appearance\">\n @if (dataContext$ | async; as data) {\n <!-- Grid Browser -->\n <div\n class=\"layout-col full elder-grid-container\"\n [elderDataContextSelection]=\"data\"\n #dataSelection=\"elderDataContextSelection\"\n [elderDataContextSelectionModel]=\"selectionModel\"\n >\n <!-- Toolbar Row -->\n @if (toolbarVisible) {\n <div class=\"layout-row place-start-center flex-none elder-grid-toolbar\">\n @if (selectionVisible) {\n <div class=\"layout-col flex-none\" style=\"padding-left: 8px; padding-right: 8px\">\n <elder-selection-master-checkbox\n class=\"flex-none\"\n style=\"padding-left: 12px\"\n ></elder-selection-master-checkbox>\n </div>\n }\n\n <!-- Toolbar -->\n @if (toolbarTemplate) {\n <ng-template\n *ngTemplateOutlet=\"toolbarTemplate; context: { $implicit: this }\"\n ></ng-template>\n }\n\n @if (availableCompositeSorts && availableCompositeSorts.length > 0) {\n <elder-composite-sort\n class=\"flex-none\"\n [availableSorts]=\"availableCompositeSorts\"\n [translationPrefix]=\"sortTranslationPrefix\"\n [elderCompositeSortDc]=\"data\"\n >\n </elder-composite-sort>\n }\n </div>\n\n <mat-divider></mat-divider>\n }\n\n <elder-data-context-state-indicator class=\"flex-none\" [dataContext]=\"data\">\n </elder-data-context-state-indicator>\n\n <!-- [cdkDropListSortingDisabled]=\"true\" -->\n <!-- cdkDropList -->\n <cdk-virtual-scroll-viewport\n class=\"layout-col flex elder-grid-browser\"\n id=\"{{ scrollContainerId }}\"\n [itemSize]=\"itemHeight\"\n [minBufferPx]=\"itemHeight * 2\"\n [maxBufferPx]=\"itemHeight * 3\"\n #virtualScrollViewPort\n elderInfiniteScroll\n [eventThrottle]=\"200\"\n [offsetFactor]=\"2\"\n [ignoreScrollEvent]=\"data.loading | async\"\n [containerId]=\"scrollContainerId\"\n [listenToHost]=\"false\"\n (closeToEnd)=\"requestMoreDataZoned($event)\"\n >\n <!-- (scrolling)=\"onScrolling($event)\" -->\n\n <div\n *cdkVirtualFor=\"\n let gridRow of dataRows$;\n trackBy: TrackGridRowByIdFn;\n templateCacheSize: 50\n \"\n class=\"elder-grid-tile-row\"\n [style.height]=\"itemHeight + 'px'\"\n >\n @for (tile of gridRow.cells; track getId(tile)) {\n <!-- Tile Cell -->\n @if (showTile(tile)) {\n <mat-card appearance=\"outlined\" class=\"elder-grid-tile\">\n <div\n class=\"elder-grid-tile-content\"\n (click)=\"onItemClick(tile)\"\n (dblclick)=\"onItemDoubleClick(tile)\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n tileTemplate || simpleTileTemplate;\n context: { $implicit: tile }\n \"\n ></ng-container>\n <!-- Overlay (Selection) -->\n @if (selectionVisible) {\n @if (selectionModel.selection | async; as selection) {\n <div\n class=\"elder-grid-tile-overlay elder-click-through\"\n [class.elder-grid-tile-overlay-hidden]=\"!inSelectionMode(selection)\"\n [class.elder-grid-tile-overlay-visible]=\"inSelectionMode(selection)\"\n >\n <button\n mat-icon-button\n type=\"button\"\n (click)=\"selectionModel.toggle(tile)\"\n elderStopEventPropagation\n class=\"elder-grid-tile-check\"\n >\n <mat-icon\n [class.elder-selected]=\"selectionModel.observeSelection(tile) | async\"\n >\n {{\n (selectionModel.observeSelection(tile) | async)\n ? 'check_circle'\n : 'radio_button_unchecked'\n }}\n </mat-icon>\n </button>\n </div>\n }\n }\n </div>\n </mat-card>\n } @else {\n <div class=\"elder-grid-tile-hidden\"></div>\n }\n }\n </div>\n </cdk-virtual-scroll-viewport>\n\n <mat-progress-bar\n class=\"flex-none\"\n [mode]=\"(data?.loading | async) ? 'indeterminate' : 'determinate'\"\n [color]=\"data && (data.status | async)?.hasError ? 'warn' : 'primary'\"\n >\n </mat-progress-bar>\n\n <!-- Footer -->\n @if (footerVisible) {\n <div\n class=\"layout-row place-end-center gap-md flex-none elder-grid-footer\"\n style=\"padding-right: 12px\"\n >\n <!-- Continuable -->\n @if (isContinuable) {\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{ (dataSnapshot?.data | async)?.length }} / {{ total$ | async }}\n </span>\n\n <button\n mat-icon-button\n type=\"button\"\n color=\"primary\"\n [disabled]=\"!(canLoadMore$ | async)\"\n (click)=\"dataSnapshot.loadMore()\"\n >\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n }\n\n <!-- Paged -->\n @if (isActivePaged) {\n @if (dataActivePaged.page | async; as page) {\n <mat-paginator\n class=\"flex-none\"\n [length]=\"dataContext?.total | async\"\n [pageIndex]=\"page?.index\"\n [pageSize]=\"page?.size\"\n [pageSizeOptions]=\"pageSizeOptions\"\n >\n </mat-paginator>\n }\n }\n\n <!-- Local Source -->\n @if (!isActivePaged && !isContinuable) {\n <span class=\"mat-caption noselect\" style=\"color: gray\">\n {{ (dataSnapshot?.data | async)?.length }}\n </span>\n }\n </div>\n }\n </div>\n }\n</mat-card>\n\n<ng-template #simpleTileTemplate let-tile>\n @if (tile) {\n <div class=\"layout-col place-center-center flex\" style=\"background-color: lightblue\">\n <p class=\"noselect\">Tile: {{ tile }}</p>\n </div>\n }\n</ng-template>\n", styles: [":host{min-width:0;min-height:0}.elder-grid-tile-row{display:flex;flex-direction:row;padding:8px}.elder-grid-tile-row:first-child{padding-top:16px}.elder-grid-tile-hidden{flex:0 1 100%;margin:8px;width:100%;height:100%}.elder-grid-tile-content{position:relative;width:100%;height:100%;overflow:hidden}.elder-grid-tile-overlay{position:absolute;inset:0;-webkit-transition:background-color .1s ease-in,opacity .1s ease-in;transition:background-color .1s ease-in,opacity .1s ease-in}.elder-click-through{pointer-events:none}.elder-grid-tile-overlay-visible{opacity:1}.elder-grid-tile-overlay-hidden{opacity:0}\n"] }]
|
|
298
|
-
}], ctorParameters: () => [{ type: i1.SelectionModel, decorators: [{
|
|
299
|
-
type: Optional
|
|
300
|
-
}] }, { type: i2.ElderDataViewOptionsProvider, decorators: [{
|
|
301
|
-
type: Optional
|
|
302
|
-
}, {
|
|
303
|
-
type: SkipSelf
|
|
304
|
-
}] }, { type: i3.BreakpointObserver }], propDecorators: { tileTemplateQuery: [{
|
|
305
|
-
type: ContentChild,
|
|
306
|
-
args: [ElderGridTileDirective, { read: TemplateRef, static: true }]
|
|
307
|
-
}], toolbarVisible: [{
|
|
308
|
-
type: Input
|
|
309
|
-
}], footerVisible: [{
|
|
310
|
-
type: Input
|
|
311
|
-
}], itemHeight: [{
|
|
312
|
-
type: Input
|
|
313
|
-
}], responsiveColumnCount: [{
|
|
314
|
-
type: Input
|
|
315
|
-
}], virtualScrollViewPort: [{
|
|
316
|
-
type: ViewChild,
|
|
317
|
-
args: ['virtualScrollViewPort', { static: true }]
|
|
318
|
-
}], availableSorts: [{
|
|
319
|
-
type: Input
|
|
320
|
-
}], sortTranslationPrefix: [{
|
|
321
|
-
type: Input
|
|
322
|
-
}], hiddenField: [{
|
|
323
|
-
type: Input
|
|
324
|
-
}], idField: [{
|
|
325
|
-
type: Input
|
|
326
|
-
}], selectionVisible: [{
|
|
327
|
-
type: Input
|
|
328
|
-
}], pageSizeOptions: [{
|
|
329
|
-
type: Input
|
|
330
|
-
}], matPaginator: [{
|
|
331
|
-
type: ViewChild,
|
|
332
|
-
args: [MatPaginator]
|
|
333
|
-
}], toolbarTemplateQuery: [{
|
|
334
|
-
type: ContentChild,
|
|
335
|
-
args: [ElderGridToolbarDirective, { read: TemplateRef, static: true }]
|
|
336
|
-
}], tileTemplate: [{
|
|
337
|
-
type: Input
|
|
338
|
-
}], toolbarTemplate: [{
|
|
339
|
-
type: Input
|
|
340
|
-
}], data: [{
|
|
341
|
-
type: Input
|
|
342
|
-
}], columnCount: [{
|
|
343
|
-
type: Input
|
|
344
|
-
}] } });
|
|
345
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9ncmlkL2VsZGVyLWdyaWQvZWxkZXItZ3JpZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9ncmlkL2VsZGVyLWdyaWQvZWxkZXItZ3JpZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsUUFBUSxFQUNSLFFBQVEsRUFDUixXQUFXLEVBRVgsU0FBUyxHQUVWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDckUsT0FBTyxFQUdMLHdCQUF3QixHQUN6QixNQUFNLG1EQUFtRCxDQUFBO0FBQzFELE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLGVBQWUsR0FDaEIsTUFBTSx3QkFBd0IsQ0FBQTtBQUUvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUzRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDNUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFDNUUsT0FB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QUFLO2dCQUlDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBSUMsVUFBVTtzQkFEaEIsS0FBSztnQkFJQyxxQkFBcUI7c0JBRDNCLEtBQUs7Z0JBSUMscUJBQXFCO3NCQUQzQixTQUFTO3VCQUFDLHVCQUF1QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFNekMsY0FBYztzQkFEeEIsS0FBSztnQkFNQyxxQkFBcUI7c0JBRDNCLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFPQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBR0MsWUFBWTtzQkFEbEIsU0FBUzt1QkFBQyxZQUFZO2dCQUloQixvQkFBb0I7c0JBRDFCLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBc0RqRSxZQUFZO3NCQUR0QixLQUFLO2dCQVVLLGVBQWU7c0JBRHpCLEtBQUs7Z0JBVUssSUFBSTtzQkFEZCxLQUFLO2dCQW9CSyxXQUFXO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBEaXJlY3RpdmUsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBTa2lwU2VsZixcbiAgVGVtcGxhdGVSZWYsXG4gIFRyYWNrQnlGdW5jdGlvbixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgTG9nZ2VyRmFjdG9yeSB9IGZyb20gJ0BlbGRlcmJ5dGUvdHMtbG9nZ2VyJ1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBJRGF0YUNvbnRleHQsXG4gIElEYXRhQ29udGV4dENvbnRpbnVhYmxlLFxuICBpc0NvbnRpbnVhYmxlRGF0YUNvbnRleHQsXG59IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9kYXRhL2RhdGEtY29udGV4dC9kYXRhLWNvbnRleHQnXG5pbXBvcnQge1xuICBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQsXG4gIENka0ZpeGVkU2l6ZVZpcnR1YWxTY3JvbGwsXG4gIENka1ZpcnR1YWxGb3JPZixcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZydcbmltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL3NlbGVjdGlvbi9zZWxlY3Rpb24tbW9kZWwnXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBTb3J0IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvc29ydCdcbmltcG9ydCB7IEVMREVSX0RBVEFfVklFVyB9IGZyb20gJy4uLy4uL2Jhc2UvZWxkZXItZGF0YS12aWV3J1xuaW1wb3J0IHsgRWxkZXJEYXRhVmlld0Jhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlL2VsZGVyLWRhdGEtdmlldy1iYXNlJ1xuaW1wb3J0IHsgTWF0UGFnaW5hdG9yIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJ1xuaW1wb3J0IHsgTWF0VGFibGVEYXRhQ29udGV4dEJpbmRpbmdCdWlsZGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tbW9uL2RhdGEvZGF0YS1jb250ZXh0L21hdC10YWJsZS1kYXRhLWNvbnRleHQtYmluZGluZydcbmltcG9ydCB7IEVsZGVyRGF0YVZpZXdPcHRpb25zUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9iYXNlL2VsZGVyLWRhdGEtdmlldy1vcHRpb25zLXByb3ZpZGVyJ1xuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnXG5pbXBvcnQgeyBNYXRQcm9ncmVzc0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcidcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgRWxkZXJTdG9wRXZlbnRQcm9wYWdhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2Zvcm1zL2RpcmVjdGl2ZXMvZWxkZXItc3RvcC1ldmVudC1wcm9wYWdhdGlvbi5kaXJlY3RpdmUnXG5pbXBvcnQgeyBNYXRJY29uQnV0dG9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJ1xuaW1wb3J0IHsgRWxkZXJJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2luZmluaXRlc2Nyb2xsL2VsZGVyLWluZmluaXRlLXNjcm9sbC5kaXJlY3RpdmUnXG5pbXBvcnQgeyBEYXRhQ29udGV4dFN0YXRlSW5kaWNhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbW9uL2RhdGEtY29udGV4dC1zdGF0ZS1pbmRpY2F0b3IvZGF0YS1jb250ZXh0LXN0YXRlLWluZGljYXRvci5jb21wb25lbnQnXG5pbXBvcnQgeyBNYXREaXZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGl2aWRlcidcbmltcG9ydCB7IEVsZGVyU2luZ2xlU29ydENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbW1vbi9lbGRlci1zaW5nbGUtc29ydC9lbGRlci1zaW5nbGUtc29ydC5jb21wb25lbnQnXG5pbXBvcnQgeyBFbGRlclNlbGVjdGlvbk1hc3RlckNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlbGVjdGlvbi9lbGRlci1zZWxlY3Rpb24tbWFzdGVyLWNoZWNrYm94L2VsZGVyLXNlbGVjdGlvbi1tYXN0ZXItY2hlY2tib3guY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0YUNvbnRleHRTZWxlY3Rpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9jb21tb24vc2VsZWN0aW9uL2RhdGEtY29udGV4dC1zZWxlY3Rpb24uZGlyZWN0aXZlJ1xuaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCwgTmdGb3IsIEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IE1hdENhcmQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJ1xuaW1wb3J0IHsgRWxkZXJDb21wb3NpdGVTb3J0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvbXBvc2l0ZS1zb3J0L2VsZGVyLWNvbXBvc2l0ZS1zb3J0L2VsZGVyLWNvbXBvc2l0ZS1zb3J0LmNvbXBvbmVudCdcbmltcG9ydCB7IENvbXBvc2l0ZVNvcnQgfSBmcm9tICcuLi8uLi9jb21tb24vY29tcG9zaXRlLXNvcnQvY29tcG9zaXRlLXNvcnQnXG5pbXBvcnQgeyBFbGRlckNvbXBvc2l0ZVNvcnREY0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9jb21wb3NpdGUtc29ydC9jb21wb3NpdGUtc29ydC1kYy5kaXJlY3RpdmUnXG5pbXBvcnQgeyBVdWlkVXRpbCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi91dGlscy91dWlkLXV0aWwnXG5cbmNsYXNzIEdyaWRSb3c8VD4ge1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGlkOiBzdHJpbmcsXG4gICAgcHVibGljIGNlbGxzOiBUW11cbiAgKSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZWxkZXJHcmlkVGlsZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlckdyaWRUaWxlRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgIHB1YmxpYyB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge31cbn1cblxuLyoqXG4gKiBUaGlzIGRpcmVjdGl2ZSBwcm9qZWN0cyBtYXJrZWQgY29udGVudCBpbnRvIGEgdG9vbGJhci5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2VsZGVyR3JpZFRvb2xiYXJdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJHcmlkVG9vbGJhckRpcmVjdGl2ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZlxuICApIHt9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VsZGVyLWdyaWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZWxkZXItZ3JpZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VsZGVyLWdyaWQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVMREVSX0RBVEFfVklFVyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEVsZGVyR3JpZENvbXBvbmVudCksXG4gICAgfSxcbiAgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdENhcmQsXG4gICAgTmdJZixcbiAgICBEYXRhQ29udGV4dFNlbGVjdGlvbkRpcmVjdGl2ZSxcbiAgICBFbGRlclNlbGVjdGlvbk1hc3RlckNoZWNrYm94Q29tcG9uZW50LFxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgRWxkZXJTaW5nbGVTb3J0Q29tcG9uZW50LFxuICAgIE1hdERpdmlkZXIsXG4gICAgRGF0YUNvbnRleHRTdGF0ZUluZGljYXRvckNvbXBvbmVudCxcbiAgICBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQsXG4gICAgQ2RrRml4ZWRTaXplVmlydHVhbFNjcm9sbCxcbiAgICBFbGRlckluZmluaXRlU2Nyb2xsRGlyZWN0aXZlLFxuICAgIENka1ZpcnR1YWxGb3JPZixcbiAgICBOZ0ZvcixcbiAgICBNYXRJY29uQnV0dG9uLFxuICAgIEVsZGVyU3RvcEV2ZW50UHJvcGFnYXRpb25EaXJlY3RpdmUsXG4gICAgTWF0SWNvbixcbiAgICBNYXRQcm9ncmVzc0JhcixcbiAgICBNYXRQYWdpbmF0b3IsXG4gICAgQXN5bmNQaXBlLFxuICAgIEVsZGVyQ29tcG9zaXRlU29ydENvbXBvbmVudCxcbiAgICBFbGRlckNvbXBvc2l0ZVNvcnREY0RpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJHcmlkQ29tcG9uZW50PFQgPSBhbnk+XG4gIGV4dGVuZHMgRWxkZXJEYXRhVmlld0Jhc2VDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXRcbntcbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2cgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpXG5cbiAgcHJpdmF0ZSBfY29sdW1uQ291bnQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oNClcblxuICBwcml2YXRlIHJlYWRvbmx5IHNpemVUb0NvbHVtbnMgPSBuZXcgTWFwKFtcbiAgICBbQnJlYWtwb2ludHMuWFNtYWxsLCAxXSxcbiAgICBbQnJlYWtwb2ludHMuU21hbGwsIDJdLFxuICAgIFtCcmVha3BvaW50cy5NZWRpdW0sIDNdLFxuICAgIFtCcmVha3BvaW50cy5MYXJnZSwgNF0sXG4gICAgW0JyZWFrcG9pbnRzLlhMYXJnZSwgNV0sXG4gIF0pXG5cbiAgLyoqXG4gICAqIExvYWQgbmV4dCBjaHVuayBhZnRlciBjdXJyZW50IGlzIGRvbmVcbiAgICovXG4gIHByaXZhdGUgbG9hZE5leHRRdWV1ZWQgPSBmYWxzZVxuXG4gIHB1YmxpYyByZWFkb25seSBzY3JvbGxDb250YWluZXJJZCA9ICdkb2N1bWVudHMtY29udGFpbmVyLScgKyBVdWlkVXRpbC53ZWFrVXVpZDQoKVxuXG4gIHB1YmxpYyByZWFkb25seSBUcmFja0dyaWRSb3dCeUlkRm46IFRyYWNrQnlGdW5jdGlvbjxHcmlkUm93PFQ+PiA9IChpbmRleCwgcm93KSA9PiByb3cuaWRcbiAgcHVibGljIGRhdGFSb3dzJDogT2JzZXJ2YWJsZTxHcmlkUm93PFQ+W10+XG5cbiAgcHVibGljIGNhbkxvYWRNb3JlJDogT2JzZXJ2YWJsZTxib29sZWFuPlxuICBwdWJsaWMgdG90YWwkOiBPYnNlcnZhYmxlPHN0cmluZz5cblxuICBAQ29udGVudENoaWxkKEVsZGVyR3JpZFRpbGVEaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgdGlsZVRlbXBsYXRlUXVlcnk6IFRlbXBsYXRlUmVmPGFueT5cbiAgcHJpdmF0ZSBfdGlsZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+XG5cbiAgQElucHV0KClcbiAgcHVibGljIHRvb2xiYXJWaXNpYmxlID0gdHJ1ZVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmb290ZXJWaXNpYmxlID0gdHJ1ZVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpdGVtSGVpZ2h0ID0gMjUwXG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlc3BvbnNpdmVDb2x1bW5Db3VudCA9IHRydWVcblxuICBAVmlld0NoaWxkKCd2aXJ0dWFsU2Nyb2xsVmlld1BvcnQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgdmlydHVhbFNjcm9sbFZpZXdQb3J0OiBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnRcblxuICBwdWJsaWMgYXZhaWxhYmxlQ29tcG9zaXRlU29ydHM6IENvbXBvc2l0ZVNvcnRbXSA9IFtdXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhdmFpbGFibGVTb3J0cyhhdmFpbGFibGVTb3J0czogc3RyaW5nW10gfCBDb21wb3NpdGVTb3J0W10pIHtcbiAgICB0aGlzLmF2YWlsYWJsZUNvbXBvc2l0ZVNvcnRzID0gQ29tcG9zaXRlU29ydC5jb2VyY2UoYXZhaWxhYmxlU29ydHMpXG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc29ydFRyYW5zbGF0aW9uUHJlZml4ID0gJ2RvY3VtZW50cy5zb3J0cy4nXG5cbiAgQElucHV0KClcbiAgcHVibGljIGhpZGRlbkZpZWxkOiBzdHJpbmcgPSBudWxsXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIE5vIGxvbmdlciByZXF1aXJlZC4gSWQgaXMgYXV0b21hdGljYWxseSBwaWNrZWQgZnJvbSB0aGUgRGF0YVNvdXJjZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpZEZpZWxkID0gJ2lkJ1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3Rpb25WaXNpYmxlID0gdHJ1ZVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwYWdlU2l6ZU9wdGlvbnMgPSBbMzAsIDUwLCAxMDAsIDE1MCwgMjAwXVxuICBAVmlld0NoaWxkKE1hdFBhZ2luYXRvcilcbiAgcHVibGljIG1hdFBhZ2luYXRvcjogTWF0UGFnaW5hdG9yXG5cbiAgQENvbnRlbnRDaGlsZChFbGRlckdyaWRUb29sYmFyRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIHRvb2xiYXJUZW1wbGF0ZVF1ZXJ5OiBUZW1wbGF0ZVJlZjxhbnk+XG4gIHByaXZhdGUgX3Rvb2xiYXJUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PlxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIHNlbGVjdGlvbk1vZGVsOiBTZWxlY3Rpb25Nb2RlbDxhbnk+LFxuICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIGRhdGFWaWV3T3B0aW9uc1Byb3ZpZGVyOiBFbGRlckRhdGFWaWV3T3B0aW9uc1Byb3ZpZGVyLFxuICAgIHByaXZhdGUgYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXJcbiAgKSB7XG4gICAgc3VwZXIoc2VsZWN0aW9uTW9kZWwsIGRhdGFWaWV3T3B0aW9uc1Byb3ZpZGVyKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIExpZmVjeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KClcblxuICAgIGNvbnN0IGNvbHVtbkNvdW50JCA9IHRoaXMucmVzcG9uc2l2ZUNvbHVtbkNvdW50ID8gdGhpcy5yZXNwb25zaXZlQ29sdW1uKCkgOiB0aGlzLl9jb2x1bW5Db3VudFxuXG4gICAgdGhpcy5kYXRhUm93cyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuZGF0YUNvbnRleHQkLnBpcGUoXG4gICAgICAgIGZpbHRlcigoZGMpID0+ICEhZGMpLFxuICAgICAgICBzd2l0Y2hNYXAoKGRjKSA9PiBkYy5kYXRhKVxuICAgICAgKSxcbiAgICAgIGNvbHVtbkNvdW50JCxcbiAgICBdKS5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKDUwKSxcbiAgICAgIG1hcCgoW2RhdGEsIGNvbHVtbkNvdW50XSkgPT4gdGhpcy5idWlsZEdyaWRSb3coZGF0YSwgY29sdW1uQ291bnQpKVxuICAgIClcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgTWF0VGFibGVEYXRhQ29udGV4dEJpbmRpbmdCdWlsZGVyLnN0YXJ0KHRoaXMuZGF0YUNvbnRleHQkKVxuICAgICAgLndpdGhQYWdpbmF0b3Iob2YodGhpcy5tYXRQYWdpbmF0b3IpKVxuICAgICAgLmJpbmRVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFByb3BlcnRpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCB0aWxlVGVtcGxhdGUodGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICB0aGlzLl90aWxlVGVtcGxhdGUgPSB0ZW1wbGF0ZVxuICB9XG5cbiAgcHVibGljIGdldCB0aWxlVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX3RpbGVUZW1wbGF0ZSB8fCB0aGlzLnRpbGVUZW1wbGF0ZVF1ZXJ5XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHRvb2xiYXJUZW1wbGF0ZSh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIHRoaXMuX3Rvb2xiYXJUZW1wbGF0ZSA9IHRlbXBsYXRlXG4gIH1cblxuICBwdWJsaWMgZ2V0IHRvb2xiYXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fdG9vbGJhclRlbXBsYXRlIHx8IHRoaXMudG9vbGJhclRlbXBsYXRlUXVlcnlcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGF0YShkYXRhOiBJRGF0YUNvbnRleHQ8YW55Pikge1xuICAgIHRoaXMuZGF0YUNvbnRleHQkLm5leHQoZGF0YSlcblxuICAgIHRoaXMudG90YWwkID0gZGF0YS50b3RhbC5waXBlKG1hcCgodG90YWwpID0+ICh0b3RhbCA/IHRvdGFsICsgJycgOiAn4oieJykpKVxuXG4gICAgaWYgKGlzQ29udGludWFibGVEYXRhQ29udGV4dChkYXRhKSkge1xuICAgICAgdGhpcy5jYW5Mb2FkTW9yZSQgPSBjb21iaW5lTGF0ZXN0KFtkYXRhLmxvYWRpbmcsIGRhdGEuaGFzTW9yZURhdGFdKS5waXBlKFxuICAgICAgICBtYXAoKFtsb2FkaW5nLCBoYXNNb3JlRGF0YV0pID0+ICFsb2FkaW5nICYmIGhhc01vcmVEYXRhKVxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNhbkxvYWRNb3JlJCA9IG9mKGZhbHNlKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGF0YVNuYXBzaG90KCk6IElEYXRhQ29udGV4dENvbnRpbnVhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFDb250aW51YWJsZVxuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBjb2x1bW5Db3VudChjb3VudDogbnVtYmVyKSB7XG4gICAgdGhpcy5fY29sdW1uQ291bnQubmV4dChjb3VudClcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29sdW1uQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1uQ291bnQuZ2V0VmFsdWUoKVxuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGluU2VsZWN0aW9uTW9kZShjdXJyZW50U2VsZWN0aW9uOiBhbnlbXSk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmludGVyYWN0aW9uTW9kZSA9PT0gJ3NlbGVjdGlvbicpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuXG4gICAgaWYgKGN1cnJlbnRTZWxlY3Rpb24gJiYgY3VycmVudFNlbGVjdGlvbi5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZXF1ZXN0TW9yZURhdGFab25lZChldmVudDogdW5rbm93bik6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGFTbmFwc2hvdC5oYXNNb3JlRGF0YVNuYXBzaG90KSB7XG4gICAgICBpZiAodGhpcy5kYXRhU25hcHNob3Quc25hcHNob3QuaXNMb2FkaW5nKSB7XG4gICAgICAgIHRoaXMubG9hZE5leHRRdWV1ZWQgPSB0cnVlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRhdGFTbmFwc2hvdC5sb2FkTW9yZSgpLnN1YnNjcmliZSgobG9hZGVkKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMubG9hZE5leHRRdWV1ZWQpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZE5leHRRdWV1ZWQgPSBmYWxzZVxuICAgICAgICAgICAgdGhpcy5yZXF1ZXN0TW9yZURhdGFab25lZChldmVudClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9hZE5leHRRdWV1ZWQgPSBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzaG93VGlsZSh0aWxlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGlsZSAmJiAodGhpcy5oaWRkZW5GaWVsZCA/ICF0aWxlW3RoaXMuaGlkZGVuRmllbGRdIDogdHJ1ZSlcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgc2Nyb2xsVG9wKCkge1xuICAgIHRoaXMudmlydHVhbFNjcm9sbFZpZXdQb3J0LnNjcm9sbFRvSW5kZXgoMCwgJ3Ntb290aCcpXG4gIH1cblxuICBwcml2YXRlIGJ1aWxkR3JpZFJvdyhub2RlczogVFtdLCBjb2x1bW5Db3VudDogbnVtYmVyKTogR3JpZFJvdzxUPltdIHtcbiAgICBjb25zdCByb3dzOiBHcmlkUm93PFQ+W10gPSBbXVxuXG4gICAgY29uc3Qgcm93Q291bnQgPSBub2Rlcy5sZW5ndGggLyBjb2x1bW5Db3VudFxuXG4gICAgZm9yIChsZXQgcm93SW5kZXggPSAwOyByb3dJbmRleCA8IHJvd0NvdW50OyByb3dJbmRleCsrKSB7XG4gICAgICBjb25zdCByb3dTdGFydEluZGV4ID0gcm93SW5kZXggKiBjb2x1bW5Db3VudFxuICAgICAgY29uc3Qgcm93Q2VsbHMgPSBub2Rlcy5zbGljZShyb3dTdGFydEluZGV4LCByb3dTdGFydEluZGV4ICsgY29sdW1uQ291bnQpXG5cbiAgICAgIHdoaWxlIChyb3dDZWxscy5sZW5ndGggPCBjb2x1bW5Db3VudCkge1xuICAgICAgICByb3dDZWxscy5wdXNoKG51bGwpIC8vIEZpbGwgdXAgcmVtYWluaW5nXG4gICAgICB9XG4gICAgICByb3dzLnB1c2gobmV3IEdyaWRSb3c8VD4odGhpcy5yb3dJZChyb3dDZWxscyksIHJvd0NlbGxzKSlcbiAgICB9XG5cbiAgICByZXR1cm4gcm93c1xuICB9XG5cbiAgcHJpdmF0ZSByb3dJZChjZWxsczogVFtdKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY2VsbHNcbiAgICAgIC5tYXAoKGNlbGwpID0+IHtcbiAgICAgICAgaWYgKGNlbGwpIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRJZChjZWxsKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiAnXydcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIC5qb2luKCctJylcbiAgfVxuXG4gIHByaXZhdGUgcmVzcG9uc2l2ZUNvbHVtbigpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIGNvbnN0IGJyZWFrcG9pbnRzID0gQXJyYXkuZnJvbSh0aGlzLnNpemVUb0NvbHVtbnMua2V5cygpKVxuICAgIHJldHVybiB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKGJyZWFrcG9pbnRzKS5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgbWFwKChyZXN1bHQpID0+IHtcbiAgICAgICAgbGV0IGFjdGl2ZVNpemUgPSBCcmVha3BvaW50cy5NZWRpdW1cbiAgICAgICAgZm9yIChjb25zdCBxdWVyeSBvZiBPYmplY3Qua2V5cyhyZXN1bHQuYnJlYWtwb2ludHMpKSB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5icmVha3BvaW50c1txdWVyeV0pIHtcbiAgICAgICAgICAgIGFjdGl2ZVNpemUgPSBxdWVyeVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuc2l6ZVRvQ29sdW1ucy5nZXQoYWN0aXZlU2l6ZSlcbiAgICAgIH0pLFxuICAgICAgZGVib3VuY2VUaW1lKDEwMCksXG4gICAgICBzdGFydFdpdGgodGhpcy5hY3RpdmVDb2x1bW5Db3VudCgpKVxuICAgIClcbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZlQ29sdW1uQ291bnQoKTogbnVtYmVyIHtcbiAgICBsZXQgY29sdW1uQ291bnQgPSAxXG4gICAgdGhpcy5zaXplVG9Db2x1bW5zLmZvckVhY2goKGNvbHMsIG1xQWxpYXMpID0+IHtcbiAgICAgIGlmICh0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5pc01hdGNoZWQobXFBbGlhcykpIHtcbiAgICAgICAgY29sdW1uQ291bnQgPSBjb2xzXG4gICAgICB9XG4gICAgfSlcbiAgICByZXR1cm4gY29sdW1uQ291bnRcbiAgfVxufVxuIiwiPG1hdC1jYXJkIGNsYXNzPVwiZnVsbFwiIFtjbGFzcy5lbWJlZGRlZF09XCJlbWJlZGRlZFwiIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIj5cbiAgQGlmIChkYXRhQ29udGV4dCQgfCBhc3luYzsgYXMgZGF0YSkge1xuICAgIDwhLS0gR3JpZCBCcm93c2VyIC0tPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwibGF5b3V0LWNvbCBmdWxsIGVsZGVyLWdyaWQtY29udGFpbmVyXCJcbiAgICAgIFtlbGRlckRhdGFDb250ZXh0U2VsZWN0aW9uXT1cImRhdGFcIlxuICAgICAgI2RhdGFTZWxlY3Rpb249XCJlbGRlckRhdGFDb250ZXh0U2VsZWN0aW9uXCJcbiAgICAgIFtlbGRlckRhdGFDb250ZXh0U2VsZWN0aW9uTW9kZWxdPVwic2VsZWN0aW9uTW9kZWxcIlxuICAgID5cbiAgICAgIDwhLS0gVG9vbGJhciBSb3cgLS0+XG4gICAgICBAaWYgKHRvb2xiYXJWaXNpYmxlKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsYXlvdXQtcm93IHBsYWNlLXN0YXJ0LWNlbnRlciBmbGV4LW5vbmUgZWxkZXItZ3JpZC10b29sYmFyXCI+XG4gICAgICAgICAgQGlmIChzZWxlY3Rpb25WaXNpYmxlKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBmbGV4LW5vbmVcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4OyBwYWRkaW5nLXJpZ2h0OiA4cHhcIj5cbiAgICAgICAgICAgICAgPGVsZGVyLXNlbGVjdGlvbi1tYXN0ZXItY2hlY2tib3hcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtbm9uZVwiXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDEycHhcIlxuICAgICAgICAgICAgICA+PC9lbGRlci1zZWxlY3Rpb24tbWFzdGVyLWNoZWNrYm94PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPCEtLSBUb29sYmFyIC0tPlxuICAgICAgICAgIEBpZiAodG9vbGJhclRlbXBsYXRlKSB7XG4gICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0b29sYmFyVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiB0aGlzIH1cIlxuICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChhdmFpbGFibGVDb21wb3NpdGVTb3J0cyAmJiBhdmFpbGFibGVDb21wb3NpdGVTb3J0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICA8ZWxkZXItY29tcG9zaXRlLXNvcnRcbiAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4LW5vbmVcIlxuICAgICAgICAgICAgICBbYXZhaWxhYmxlU29ydHNdPVwiYXZhaWxhYmxlQ29tcG9zaXRlU29ydHNcIlxuICAgICAgICAgICAgICBbdHJhbnNsYXRpb25QcmVmaXhdPVwic29ydFRyYW5zbGF0aW9uUHJlZml4XCJcbiAgICAgICAgICAgICAgW2VsZGVyQ29tcG9zaXRlU29ydERjXT1cImRhdGFcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9lbGRlci1jb21wb3NpdGUtc29ydD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgfVxuXG4gICAgICA8ZWxkZXItZGF0YS1jb250ZXh0LXN0YXRlLWluZGljYXRvciBjbGFzcz1cImZsZXgtbm9uZVwiIFtkYXRhQ29udGV4dF09XCJkYXRhXCI+XG4gICAgICA8L2VsZGVyLWRhdGEtY29udGV4dC1zdGF0ZS1pbmRpY2F0b3I+XG5cbiAgICAgIDwhLS0gW2Nka0Ryb3BMaXN0U29ydGluZ0Rpc2FibGVkXT1cInRydWVcIiAtLT5cbiAgICAgIDwhLS0gY2RrRHJvcExpc3QgLS0+XG4gICAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0XG4gICAgICAgIGNsYXNzPVwibGF5b3V0LWNvbCBmbGV4IGVsZGVyLWdyaWQtYnJvd3NlclwiXG4gICAgICAgIGlkPVwie3sgc2Nyb2xsQ29udGFpbmVySWQgfX1cIlxuICAgICAgICBbaXRlbVNpemVdPVwiaXRlbUhlaWdodFwiXG4gICAgICAgIFttaW5CdWZmZXJQeF09XCJpdGVtSGVpZ2h0ICogMlwiXG4gICAgICAgIFttYXhCdWZmZXJQeF09XCJpdGVtSGVpZ2h0ICogM1wiXG4gICAgICAgICN2aXJ0dWFsU2Nyb2xsVmlld1BvcnRcbiAgICAgICAgZWxkZXJJbmZpbml0ZVNjcm9sbFxuICAgICAgICBbZXZlbnRUaHJvdHRsZV09XCIyMDBcIlxuICAgICAgICBbb2Zmc2V0RmFjdG9yXT1cIjJcIlxuICAgICAgICBbaWdub3JlU2Nyb2xsRXZlbnRdPVwiZGF0YS5sb2FkaW5nIHwgYXN5bmNcIlxuICAgICAgICBbY29udGFpbmVySWRdPVwic2Nyb2xsQ29udGFpbmVySWRcIlxuICAgICAgICBbbGlzdGVuVG9Ib3N0XT1cImZhbHNlXCJcbiAgICAgICAgKGNsb3NlVG9FbmQpPVwicmVxdWVzdE1vcmVEYXRhWm9uZWQoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDwhLS0gKHNjcm9sbGluZyk9XCJvblNjcm9sbGluZygkZXZlbnQpXCIgLS0+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICpjZGtWaXJ0dWFsRm9yPVwiXG4gICAgICAgICAgICBsZXQgZ3JpZFJvdyBvZiBkYXRhUm93cyQ7XG4gICAgICAgICAgICB0cmFja0J5OiBUcmFja0dyaWRSb3dCeUlkRm47XG4gICAgICAgICAgICB0ZW1wbGF0ZUNhY2hlU2l6ZTogNTBcbiAgICAgICAgICBcIlxuICAgICAgICAgIGNsYXNzPVwiZWxkZXItZ3JpZC10aWxlLXJvd1wiXG4gICAgICAgICAgW3N0eWxlLmhlaWdodF09XCJpdGVtSGVpZ2h0ICsgJ3B4J1wiXG4gICAgICAgID5cbiAgICAgICAgICBAZm9yICh0aWxlIG9mIGdyaWRSb3cuY2VsbHM7IHRyYWNrIGdldElkKHRpbGUpKSB7XG4gICAgICAgICAgICA8IS0tIFRpbGUgQ2VsbCAtLT5cbiAgICAgICAgICAgIEBpZiAoc2hvd1RpbGUodGlsZSkpIHtcbiAgICAgICAgICAgICAgPG1hdC1jYXJkIGFwcGVhcmFuY2U9XCJvdXRsaW5lZFwiIGNsYXNzPVwiZWxkZXItZ3JpZC10aWxlXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlbGRlci1ncmlkLXRpbGUtY29udGVudFwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2sodGlsZSlcIlxuICAgICAgICAgICAgICAgICAgKGRibGNsaWNrKT1cIm9uSXRlbURvdWJsZUNsaWNrKHRpbGUpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgICAgdGlsZVRlbXBsYXRlIHx8IHNpbXBsZVRpbGVUZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogdGlsZSB9XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8IS0tIE92ZXJsYXkgKFNlbGVjdGlvbikgLS0+XG4gICAgICAgICAgICAgICAgICBAaWYgKHNlbGVjdGlvblZpc2libGUpIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmIChzZWxlY3Rpb25Nb2RlbC5zZWxlY3Rpb24gfCBhc3luYzsgYXMgc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlbGRlci1ncmlkLXRpbGUtb3ZlcmxheSBlbGRlci1jbGljay10aHJvdWdoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5lbGRlci1ncmlkLXRpbGUtb3ZlcmxheS1oaWRkZW5dPVwiIWluU2VsZWN0aW9uTW9kZShzZWxlY3Rpb24pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5lbGRlci1ncmlkLXRpbGUtb3ZlcmxheS12aXNpYmxlXT1cImluU2VsZWN0aW9uTW9kZShzZWxlY3Rpb24pXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGlvbk1vZGVsLnRvZ2dsZSh0aWxlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVsZGVyU3RvcEV2ZW50UHJvcGFnYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlbGRlci1ncmlkLXRpbGUtY2hlY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZWxkZXItc2VsZWN0ZWRdPVwic2VsZWN0aW9uTW9kZWwub2JzZXJ2ZVNlbGVjdGlvbih0aWxlKSB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uTW9kZWwub2JzZXJ2ZVNlbGVjdGlvbih0aWxlKSB8IGFzeW5jKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdjaGVja19jaXJjbGUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ3JhZGlvX2J1dHRvbl91bmNoZWNrZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbWF0LWNhcmQ+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVsZGVyLWdyaWQtdGlsZS1oaWRkZW5cIj48L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG5cbiAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyXG4gICAgICAgIGNsYXNzPVwiZmxleC1ub25lXCJcbiAgICAgICAgW21vZGVdPVwiKGRhdGE/LmxvYWRpbmcgfCBhc3luYykgPyAnaW5kZXRlcm1pbmF0ZScgOiAnZGV0ZXJtaW5hdGUnXCJcbiAgICAgICAgW2NvbG9yXT1cImRhdGEgJiYgKGRhdGEuc3RhdHVzIHwgYXN5bmMpPy5oYXNFcnJvciA/ICd3YXJuJyA6ICdwcmltYXJ5J1wiXG4gICAgICA+XG4gICAgICA8L21hdC1wcm9ncmVzcy1iYXI+XG5cbiAgICAgIDwhLS0gRm9vdGVyIC0tPlxuICAgICAgQGlmIChmb290ZXJWaXNpYmxlKSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImxheW91dC1yb3cgcGxhY2UtZW5kLWNlbnRlciBnYXAtbWQgZmxleC1ub25lIGVsZGVyLWdyaWQtZm9vdGVyXCJcbiAgICAgICAgICBzdHlsZT1cInBhZGRpbmctcmlnaHQ6IDEycHhcIlxuICAgICAgICA+XG4gICAgICAgICAgPCEtLSBDb250aW51YWJsZSAtLT5cbiAgICAgICAgICBAaWYgKGlzQ29udGludWFibGUpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWNhcHRpb24gbm9zZWxlY3RcIiBzdHlsZT1cImNvbG9yOiBncmF5XCI+XG4gICAgICAgICAgICAgIHt7IChkYXRhU25hcHNob3Q/LmRhdGEgfCBhc3luYyk/Lmxlbmd0aCB9fSAvIHt7IHRvdGFsJCB8IGFzeW5jIH19XG4gICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIShjYW5Mb2FkTW9yZSQgfCBhc3luYylcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGF0YVNuYXBzaG90LmxvYWRNb3JlKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bWF0LWljb24+a2V5Ym9hcmRfYXJyb3dfZG93bjwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICA8IS0tIFBhZ2VkIC0tPlxuICAgICAgICAgIEBpZiAoaXNBY3RpdmVQYWdlZCkge1xuICAgICAgICAgICAgQGlmIChkYXRhQWN0aXZlUGFnZWQucGFnZSB8IGFzeW5jOyBhcyBwYWdlKSB7XG4gICAgICAgICAgICAgIDxtYXQtcGFnaW5hdG9yXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4LW5vbmVcIlxuICAgICAgICAgICAgICAgIFtsZW5ndGhdPVwiZGF0YUNvbnRleHQ/LnRvdGFsIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgIFtwYWdlSW5kZXhdPVwicGFnZT8uaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtwYWdlU2l6ZV09XCJwYWdlPy5zaXplXCJcbiAgICAgICAgICAgICAgICBbcGFnZVNpemVPcHRpb25zXT1cInBhZ2VTaXplT3B0aW9uc1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPC9tYXQtcGFnaW5hdG9yPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIDwhLS0gTG9jYWwgU291cmNlIC0tPlxuICAgICAgICAgIEBpZiAoIWlzQWN0aXZlUGFnZWQgJiYgIWlzQ29udGludWFibGUpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0LWNhcHRpb24gbm9zZWxlY3RcIiBzdHlsZT1cImNvbG9yOiBncmF5XCI+XG4gICAgICAgICAgICAgIHt7IChkYXRhU25hcHNob3Q/LmRhdGEgfCBhc3luYyk/Lmxlbmd0aCB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cbjwvbWF0LWNhcmQ+XG5cbjxuZy10ZW1wbGF0ZSAjc2ltcGxlVGlsZVRlbXBsYXRlIGxldC10aWxlPlxuICBAaWYgKHRpbGUpIHtcbiAgICA8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbCBwbGFjZS1jZW50ZXItY2VudGVyIGZsZXhcIiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IGxpZ2h0Ymx1ZVwiPlxuICAgICAgPHAgY2xhc3M9XCJub3NlbGVjdFwiPlRpbGU6IHt7IHRpbGUgfX08L3A+XG4gICAgPC9kaXY+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { ElderGridComponent, ElderGridTileDirective, ElderGridToolbarDirective, } from './elder-grid/elder-grid.component';
|
|
4
|
-
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
-
import { MatCommonModule } from '@angular/material/core';
|
|
6
|
-
import { MatDividerModule } from '@angular/material/divider';
|
|
7
|
-
import { MatIconModule } from '@angular/material/icon';
|
|
8
|
-
import { MatMenuModule } from '@angular/material/menu';
|
|
9
|
-
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
10
|
-
import { MatSelectModule } from '@angular/material/select';
|
|
11
|
-
import { A11yModule } from '@angular/cdk/a11y';
|
|
12
|
-
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
13
|
-
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
14
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
15
|
-
import { ElderInfiniteScrollModule } from '../../infinitescroll/elder-infinite-scroll.module';
|
|
16
|
-
import { ElderFormsDirectivesModule } from '../../forms/directives/elder-forms-directives.module';
|
|
17
|
-
import { ElderDataCommonModule } from '../common/elder-data-common.module';
|
|
18
|
-
import { MatPaginatorModule } from '@angular/material/paginator';
|
|
19
|
-
import { MatCardModule } from '@angular/material/card';
|
|
20
|
-
import * as i0 from "@angular/core";
|
|
21
|
-
export { ElderGridTileDirective, ElderGridToolbarDirective, ElderGridComponent, } from './elder-grid/elder-grid.component';
|
|
22
|
-
export class ElderGridModule {
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
24
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ElderGridModule, imports: [CommonModule,
|
|
25
|
-
MatCommonModule,
|
|
26
|
-
MatProgressBarModule,
|
|
27
|
-
MatMenuModule,
|
|
28
|
-
A11yModule,
|
|
29
|
-
MatDividerModule,
|
|
30
|
-
MatIconModule,
|
|
31
|
-
MatButtonModule,
|
|
32
|
-
MatSelectModule,
|
|
33
|
-
DragDropModule,
|
|
34
|
-
ScrollingModule,
|
|
35
|
-
TranslateModule,
|
|
36
|
-
ElderDataCommonModule,
|
|
37
|
-
ElderInfiniteScrollModule,
|
|
38
|
-
ElderFormsDirectivesModule,
|
|
39
|
-
MatPaginatorModule,
|
|
40
|
-
MatCardModule,
|
|
41
|
-
ElderGridComponent,
|
|
42
|
-
ElderGridTileDirective,
|
|
43
|
-
ElderGridToolbarDirective], exports: [ElderGridComponent, ElderGridTileDirective, ElderGridToolbarDirective] }); }
|
|
44
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderGridModule, imports: [CommonModule,
|
|
45
|
-
MatCommonModule,
|
|
46
|
-
MatProgressBarModule,
|
|
47
|
-
MatMenuModule,
|
|
48
|
-
A11yModule,
|
|
49
|
-
MatDividerModule,
|
|
50
|
-
MatIconModule,
|
|
51
|
-
MatButtonModule,
|
|
52
|
-
MatSelectModule,
|
|
53
|
-
DragDropModule,
|
|
54
|
-
ScrollingModule,
|
|
55
|
-
TranslateModule,
|
|
56
|
-
ElderDataCommonModule,
|
|
57
|
-
ElderInfiniteScrollModule,
|
|
58
|
-
ElderFormsDirectivesModule,
|
|
59
|
-
MatPaginatorModule,
|
|
60
|
-
MatCardModule,
|
|
61
|
-
ElderGridComponent] }); }
|
|
62
|
-
}
|
|
63
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ElderGridModule, decorators: [{
|
|
64
|
-
type: NgModule,
|
|
65
|
-
args: [{
|
|
66
|
-
imports: [
|
|
67
|
-
CommonModule,
|
|
68
|
-
MatCommonModule,
|
|
69
|
-
MatProgressBarModule,
|
|
70
|
-
MatMenuModule,
|
|
71
|
-
A11yModule,
|
|
72
|
-
MatDividerModule,
|
|
73
|
-
MatIconModule,
|
|
74
|
-
MatButtonModule,
|
|
75
|
-
MatSelectModule,
|
|
76
|
-
DragDropModule,
|
|
77
|
-
ScrollingModule,
|
|
78
|
-
TranslateModule,
|
|
79
|
-
ElderDataCommonModule,
|
|
80
|
-
ElderInfiniteScrollModule,
|
|
81
|
-
ElderFormsDirectivesModule,
|
|
82
|
-
MatPaginatorModule,
|
|
83
|
-
MatCardModule,
|
|
84
|
-
ElderGridComponent,
|
|
85
|
-
ElderGridTileDirective,
|
|
86
|
-
ElderGridToolbarDirective,
|
|
87
|
-
],
|
|
88
|
-
exports: [ElderGridComponent, ElderGridTileDirective, ElderGridToolbarDirective],
|
|
89
|
-
}]
|
|
90
|
-
}] });
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItZ3JpZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdmlldy9ncmlkL2VsZGVyLWdyaWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsc0JBQXNCLEVBQ3RCLHlCQUF5QixHQUMxQixNQUFNLG1DQUFtQyxDQUFBO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDNUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFBO0FBQzdGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFBO0FBQ2pHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBQzFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFBO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTs7QUFFdEQsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDekIsa0JBQWtCLEdBQ25CLE1BQU0sbUNBQW1DLENBQUE7QUEyQjFDLE1BQU0sT0FBTyxlQUFlOytHQUFmLGVBQWU7Z0hBQWYsZUFBZSxZQXZCeEIsWUFBWTtZQUNaLGVBQWU7WUFDZixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLFVBQVU7WUFDVixnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGVBQWU7WUFDZixlQUFlO1lBQ2YsY0FBYztZQUNkLGVBQWU7WUFDZixlQUFlO1lBQ2YscUJBQXFCO1lBQ3JCLHlCQUF5QjtZQUN6QiwwQkFBMEI7WUFDMUIsa0JBQWtCO1lBQ2xCLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsc0JBQXNCO1lBQ3RCLHlCQUF5QixhQUVqQixrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSx5QkFBeUI7Z0hBRXBFLGVBQWUsWUF2QnhCLFlBQVk7WUFDWixlQUFlO1lBQ2Ysb0JBQW9CO1lBQ3BCLGFBQWE7WUFDYixVQUFVO1lBQ1YsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixlQUFlO1lBQ2YsZUFBZTtZQUNmLGNBQWM7WUFDZCxlQUFlO1lBQ2YsZUFBZTtZQUNmLHFCQUFxQjtZQUNyQix5QkFBeUI7WUFDekIsMEJBQTBCO1lBQzFCLGtCQUFrQjtZQUNsQixhQUFhO1lBQ2Isa0JBQWtCOzs0RkFNVCxlQUFlO2tCQXpCM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFDYixVQUFVO3dCQUNWLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQix5QkFBeUI7d0JBQ3pCLDBCQUEwQjt3QkFDMUIsa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0Qix5QkFBeUI7cUJBQzFCO29CQUNELE9BQU8sRUFBRSxDQUFDLGtCQUFrQixFQUFFLHNCQUFzQixFQUFFLHlCQUF5QixDQUFDO2lCQUNqRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIEVsZGVyR3JpZENvbXBvbmVudCxcbiAgRWxkZXJHcmlkVGlsZURpcmVjdGl2ZSxcbiAgRWxkZXJHcmlkVG9vbGJhckRpcmVjdGl2ZSxcbn0gZnJvbSAnLi9lbGRlci1ncmlkL2VsZGVyLWdyaWQuY29tcG9uZW50J1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJ1xuaW1wb3J0IHsgTWF0Q29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSdcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJ1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSdcbmltcG9ydCB7IE1hdFByb2dyZXNzQmFyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3MtYmFyJ1xuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0J1xuaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5J1xuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJ1xuaW1wb3J0IHsgU2Nyb2xsaW5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZydcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBFbGRlckluZmluaXRlU2Nyb2xsTW9kdWxlIH0gZnJvbSAnLi4vLi4vaW5maW5pdGVzY3JvbGwvZWxkZXItaW5maW5pdGUtc2Nyb2xsLm1vZHVsZSdcbmltcG9ydCB7IEVsZGVyRm9ybXNEaXJlY3RpdmVzTW9kdWxlIH0gZnJvbSAnLi4vLi4vZm9ybXMvZGlyZWN0aXZlcy9lbGRlci1mb3Jtcy1kaXJlY3RpdmVzLm1vZHVsZSdcbmltcG9ydCB7IEVsZGVyRGF0YUNvbW1vbk1vZHVsZSB9IGZyb20gJy4uL2NvbW1vbi9lbGRlci1kYXRhLWNvbW1vbi5tb2R1bGUnXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3JNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InXG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCdcblxuZXhwb3J0IHtcbiAgRWxkZXJHcmlkVGlsZURpcmVjdGl2ZSxcbiAgRWxkZXJHcmlkVG9vbGJhckRpcmVjdGl2ZSxcbiAgRWxkZXJHcmlkQ29tcG9uZW50LFxufSBmcm9tICcuL2VsZGVyLWdyaWQvZWxkZXItZ3JpZC5jb21wb25lbnQnXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0Q29tbW9uTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzQmFyTW9kdWxlLFxuICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgQTExeU1vZHVsZSxcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBEcmFnRHJvcE1vZHVsZSxcbiAgICBTY3JvbGxpbmdNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIEVsZGVyRGF0YUNvbW1vbk1vZHVsZSxcbiAgICBFbGRlckluZmluaXRlU2Nyb2xsTW9kdWxlLFxuICAgIEVsZGVyRm9ybXNEaXJlY3RpdmVzTW9kdWxlLFxuICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcbiAgICBNYXRDYXJkTW9kdWxlLFxuICAgIEVsZGVyR3JpZENvbXBvbmVudCxcbiAgICBFbGRlckdyaWRUaWxlRGlyZWN0aXZlLFxuICAgIEVsZGVyR3JpZFRvb2xiYXJEaXJlY3RpdmUsXG4gIF0sXG4gIGV4cG9ydHM6IFtFbGRlckdyaWRDb21wb25lbnQsIEVsZGVyR3JpZFRpbGVEaXJlY3RpdmUsIEVsZGVyR3JpZFRvb2xiYXJEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBFbGRlckdyaWRNb2R1bGUge31cbiJdfQ==
|