geonetwork-ui 2.2.0-dev.f866474c → 2.3.0-dev.28c8df17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/atomic-operations.mjs +28 -1
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +96 -59
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.mjs +8 -4
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.mjs +14 -0
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/converter.mjs +25 -17
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +55 -23
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +52 -32
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +2 -2
- package/esm2022/libs/api/repository/src/lib/gn4/index.mjs +3 -1
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +10 -3
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.mjs +14 -5
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +33 -8
- package/esm2022/libs/api/repository/src/lib/gn4/selection/selection.service.mjs +13 -26
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/search/aggregation.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/search/field.model.mjs +2 -0
- package/esm2022/libs/common/domain/src/lib/model/search/filter.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/search/index.mjs +2 -1
- package/esm2022/libs/common/domain/src/lib/model/search/search.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/platform.service.interface.mjs +1 -1
- package/esm2022/libs/feature/catalog/src/lib/my-org/my-org.service.mjs +4 -10
- package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +5 -4
- package/esm2022/libs/feature/editor/src/index.mjs +6 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +8 -0
- package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +26 -0
- package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +30 -0
- package/esm2022/libs/feature/editor/src/lib/+state/editor.models.mjs +2 -0
- package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +42 -0
- package/esm2022/libs/feature/editor/src/lib/+state/editor.selectors.mjs +13 -0
- package/esm2022/libs/feature/editor/src/lib/expressions.mjs +13 -0
- package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +16 -4
- package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +34 -0
- package/esm2022/libs/feature/editor/src/lib/models/fields.model.mjs +2 -0
- package/esm2022/libs/feature/editor/src/lib/record-form/record-form.component.mjs +17 -11
- package/esm2022/libs/feature/editor/src/lib/services/editor.service.mjs +22 -44
- package/esm2022/libs/feature/map/src/index.mjs +2 -1
- package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-record-preview/add-layer-record-preview.component.mjs +1 -1
- package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +106 -0
- package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +64 -0
- package/esm2022/libs/feature/map/src/lib/constant/index.mjs +2 -1
- package/esm2022/libs/feature/map/src/lib/constant/projections.mjs +2 -0
- package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +23 -3
- package/esm2022/libs/feature/map/src/lib/geocoding/geocoding.component.mjs +93 -0
- package/esm2022/libs/feature/map/src/lib/geocoding.service.mjs +40 -0
- package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +5 -3
- package/esm2022/libs/feature/map/src/lib/map-context/map-context.service.mjs +11 -1
- package/esm2022/libs/feature/map/src/lib/utils/index.mjs +1 -3
- package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +60 -29
- package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +13 -13
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +29 -20
- package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +2 -2
- package/esm2022/libs/feature/router/src/lib/default/index.mjs +2 -1
- package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +1 -1
- package/esm2022/libs/feature/search/src/index.mjs +4 -1
- package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +7 -4
- package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +2 -6
- package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +1 -1
- package/esm2022/libs/feature/search/src/lib/filter-geometry.token.mjs +4 -0
- package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +7 -3
- package/esm2022/libs/feature/search/src/lib/record-url.token.mjs +4 -0
- package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +3 -3
- package/esm2022/libs/feature/search/src/lib/results-table/results-table.component.mjs +128 -0
- package/esm2022/libs/feature/search/src/lib/state/effects.mjs +6 -4
- package/esm2022/libs/feature/search/src/lib/state/search.facade.mjs +3 -2
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +41 -26
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +11 -9
- package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +4 -4
- package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +1 -1
- package/esm2022/libs/ui/elements/src/index.mjs +4 -1
- package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +27 -0
- package/esm2022/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.mjs +17 -0
- package/esm2022/libs/ui/elements/src/lib/max-lines/max-lines.component.mjs +5 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +47 -16
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +3 -4
- package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +9 -6
- package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/thumbnail/thumbnail.component.mjs +8 -4
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +16 -4
- package/esm2022/libs/ui/inputs/src/index.mjs +2 -1
- package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +9 -9
- package/esm2022/libs/ui/inputs/src/lib/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/editable-label/editable-label.directive.mjs +46 -0
- package/esm2022/libs/ui/inputs/src/lib/form-field/form-field.component.mjs +4 -2
- package/esm2022/libs/ui/inputs/src/lib/form-field/form-field.model.mjs +1 -1
- package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +2 -2
- package/esm2022/libs/ui/inputs/src/lib/text-area/text-area.component.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +12 -7
- package/esm2022/libs/ui/layout/src/index.mjs +3 -1
- package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +3 -3
- package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.mjs +36 -0
- package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +37 -0
- package/esm2022/libs/ui/search/src/index.mjs +1 -2
- package/esm2022/libs/ui/search/src/lib/record-preview-card/record-preview-card.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/record-preview-list/record-preview-list.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/record-preview-title/record-preview-title.component.mjs +1 -1
- package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +9 -10
- package/esm2022/libs/ui/widgets/src/lib/badge/badge.component.mjs +3 -3
- package/esm2022/libs/util/i18n/src/index.mjs +1 -2
- package/esm2022/libs/util/i18n/src/lib/i18n.constants.mjs +18 -1
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +29 -13
- package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
- package/esm2022/libs/util/shared/src/lib/utils/temporal-extent-union.mjs +32 -0
- package/esm2022/translations/de.json +131 -109
- package/esm2022/translations/en.json +63 -41
- package/esm2022/translations/es.json +41 -19
- package/esm2022/translations/fr.json +57 -35
- package/esm2022/translations/it.json +58 -36
- package/esm2022/translations/nl.json +42 -20
- package/esm2022/translations/pt.json +41 -19
- package/fesm2022/geonetwork-ui.mjs +1933 -1071
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts +3 -0
- package/libs/api/metadata-converter/src/lib/gn4/atomic-operations.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +0 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +4 -5
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.d.ts +3 -0
- package/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.d.ts.map +1 -0
- package/libs/api/metadata-converter/src/lib/iso19139/converter.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts +7 -6
- package/libs/api/metadata-converter/src/lib/iso19139/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts +4 -3
- package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/index.d.ts +2 -0
- package/libs/api/repository/src/lib/gn4/index.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +9 -2
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts +4 -5
- package/libs/api/repository/src/lib/gn4/selection/selection.service.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +31 -17
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts +1 -1
- package/libs/common/domain/src/lib/model/search/aggregation.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/field.model.d.ts +2 -0
- package/libs/common/domain/src/lib/model/search/field.model.d.ts.map +1 -0
- package/libs/common/domain/src/lib/model/search/filter.model.d.ts +1 -1
- package/libs/common/domain/src/lib/model/search/filter.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/index.d.ts +1 -0
- package/libs/common/domain/src/lib/model/search/index.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/search/search.model.d.ts +2 -3
- package/libs/common/domain/src/lib/model/search/search.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts +1 -0
- package/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts +1 -1
- package/libs/common/domain/src/lib/platform.service.interface.d.ts.map +1 -1
- package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts +0 -1
- package/libs/feature/catalog/src/lib/my-org/my-org.service.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts +15 -2
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
- package/libs/feature/editor/src/index.d.ts +5 -0
- package/libs/feature/editor/src/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +23 -0
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +15 -0
- package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +19 -0
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/+state/editor.models.d.ts +2 -0
- package/libs/feature/editor/src/lib/+state/editor.models.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts +18 -0
- package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +15 -0
- package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/expressions.d.ts +4 -0
- package/libs/feature/editor/src/lib/expressions.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/feature-editor.module.d.ts +3 -1
- package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/fields.config.d.ts +3 -0
- package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/models/fields.model.d.ts +15 -0
- package/libs/feature/editor/src/lib/models/fields.model.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/record-form/record-form.component.d.ts +10 -5
- package/libs/feature/editor/src/lib/record-form/record-form.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/services/editor.service.d.ts +3 -13
- package/libs/feature/editor/src/lib/services/editor.service.d.ts.map +1 -1
- package/libs/feature/map/src/index.d.ts +1 -0
- package/libs/feature/map/src/index.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts +22 -0
- package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -0
- package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts +22 -0
- package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -0
- package/libs/feature/map/src/lib/constant/index.d.ts +1 -0
- package/libs/feature/map/src/lib/constant/index.d.ts.map +1 -1
- package/libs/feature/map/src/lib/constant/projections.d.ts.map +1 -0
- package/libs/feature/map/src/lib/feature-map.module.d.ts +15 -12
- package/libs/feature/map/src/lib/feature-map.module.d.ts.map +1 -1
- package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts +25 -0
- package/libs/feature/map/src/lib/geocoding/geocoding.component.d.ts.map +1 -0
- package/libs/feature/map/src/lib/geocoding.service.d.ts +18 -0
- package/libs/feature/map/src/lib/geocoding.service.d.ts.map +1 -0
- package/libs/feature/map/src/lib/map-context/map-context.service.d.ts +2 -0
- package/libs/feature/map/src/lib/map-context/map-context.service.d.ts.map +1 -1
- package/libs/feature/map/src/lib/utils/index.d.ts +0 -2
- package/libs/feature/map/src/lib/utils/index.d.ts.map +1 -1
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +13 -11
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +1 -3
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/index.d.ts +1 -0
- package/libs/feature/router/src/lib/default/index.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/router.service.d.ts +1 -1
- package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
- package/libs/feature/search/src/index.d.ts +3 -0
- package/libs/feature/search/src/index.d.ts.map +1 -1
- package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts +5 -4
- package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/feature-search.module.d.ts +0 -4
- package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
- package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts +3 -2
- package/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/filter-geometry.token.d.ts +4 -0
- package/libs/feature/search/src/lib/filter-geometry.token.d.ts.map +1 -0
- package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +1 -1
- package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/record-url.token.d.ts +3 -0
- package/libs/feature/search/src/lib/record-url.token.d.ts.map +1 -0
- package/libs/feature/search/src/lib/results-table/results-table.component.d.ts +33 -0
- package/libs/feature/search/src/lib/results-table/results-table.component.d.ts.map +1 -0
- package/libs/feature/search/src/lib/state/effects.d.ts.map +1 -1
- package/libs/feature/search/src/lib/state/search.facade.d.ts +1 -1
- package/libs/feature/search/src/lib/state/search.facade.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.d.ts +21 -8
- package/libs/feature/search/src/lib/utils/service/fields.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.service.d.ts.map +1 -1
- package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts +1 -1
- package/libs/ui/elements/src/index.d.ts +3 -0
- package/libs/ui/elements/src/index.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts +10 -0
- package/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts +8 -0
- package/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/max-lines/max-lines.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +16 -5
- package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +3 -1
- package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts +3 -2
- package/libs/ui/elements/src/lib/thumbnail/thumbnail.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +13 -11
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +1 -1
- package/libs/ui/inputs/src/index.d.ts +1 -0
- package/libs/ui/inputs/src/index.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/button/button.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/button/button.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts +13 -0
- package/libs/ui/inputs/src/lib/editable-label/editable-label.directive.d.ts.map +1 -0
- package/libs/ui/inputs/src/lib/form-field/form-field.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/form-field/form-field.model.d.ts +0 -1
- package/libs/ui/inputs/src/lib/form-field/form-field.model.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/text-area/text-area.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +40 -39
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +1 -1
- package/libs/ui/layout/src/index.d.ts +2 -0
- package/libs/ui/layout/src/index.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts +14 -0
- package/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.d.ts.map +1 -0
- package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +15 -0
- package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -0
- package/libs/ui/search/src/index.d.ts +0 -1
- package/libs/ui/search/src/index.d.ts.map +1 -1
- package/libs/ui/search/src/lib/ui-search.module.d.ts +15 -15
- package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
- package/libs/util/i18n/src/index.d.ts +0 -1
- package/libs/util/i18n/src/index.d.ts.map +1 -1
- package/libs/util/i18n/src/lib/i18n.constants.d.ts +17 -0
- package/libs/util/i18n/src/lib/i18n.constants.d.ts.map +1 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts +19 -7
- package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/index.d.ts +1 -0
- package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
- package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts +5 -0
- package/libs/util/shared/src/lib/utils/temporal-extent-union.d.ts.map +1 -0
- package/package.json +4 -1
- package/src/libs/api/metadata-converter/src/lib/fixtures/generic.records.ts +63 -8
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.ts +57 -9
- package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +229 -24
- package/src/libs/api/metadata-converter/src/lib/gn4/atomic-operations.ts +32 -0
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +140 -74
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.metadata.mapper.ts +7 -3
- package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +4 -5
- package/src/libs/api/metadata-converter/src/lib/iso19139/codelists/keyword.mapper.ts +16 -0
- package/src/libs/api/metadata-converter/src/lib/iso19139/converter.ts +30 -21
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +120 -63
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +177 -97
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +1 -1
- package/src/libs/api/repository/src/lib/gn4/index.ts +2 -0
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +22 -2
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.mapper.ts +15 -4
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +47 -8
- package/src/libs/api/repository/src/lib/gn4/selection/selection.service.ts +14 -38
- package/src/libs/common/domain/src/lib/index.ts +2 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +37 -21
- package/src/libs/common/domain/src/lib/model/search/aggregation.model.ts +1 -1
- package/src/libs/common/domain/src/lib/model/search/field.model.ts +1 -0
- package/src/libs/common/domain/src/lib/model/search/filter.model.ts +1 -1
- package/src/libs/common/domain/src/lib/model/search/index.ts +1 -0
- package/src/libs/common/domain/src/lib/model/search/search.model.ts +2 -2
- package/src/libs/common/domain/src/lib/model/thesaurus/thesaurus.model.ts +1 -0
- package/src/libs/common/domain/src/lib/model/user/index.ts +1 -0
- package/src/libs/common/domain/src/lib/platform.service.interface.ts +1 -4
- package/src/libs/common/fixtures/src/lib/elasticsearch/full-response.ts +1 -1
- package/src/libs/common/fixtures/src/lib/gn4/groups.fixtures.ts +1 -1
- package/src/libs/common/fixtures/src/lib/records.fixtures.ts +52 -10
- package/src/libs/feature/catalog/src/lib/my-org/my-org.service.ts +4 -16
- package/src/libs/feature/dataviz/src/lib/service/data.service.ts +8 -5
- package/src/libs/feature/editor/src/index.ts +5 -0
- package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +24 -0
- package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +49 -0
- package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +30 -0
- package/src/libs/feature/editor/src/lib/+state/editor.models.ts +1 -0
- package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +68 -0
- package/src/libs/feature/editor/src/lib/+state/editor.selectors.ts +39 -0
- package/src/libs/feature/editor/src/lib/expressions.ts +16 -0
- package/src/libs/feature/editor/src/lib/feature-editor.module.ts +11 -0
- package/src/libs/feature/editor/src/lib/fields.config.ts +35 -0
- package/src/libs/feature/editor/src/lib/models/fields.model.ts +29 -0
- package/src/libs/feature/editor/src/lib/record-form/record-form.component.html +9 -7
- package/src/libs/feature/editor/src/lib/record-form/record-form.component.ts +13 -6
- package/src/libs/feature/editor/src/lib/services/editor.service.ts +34 -73
- package/src/libs/feature/map/src/index.ts +1 -0
- package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.css +0 -0
- package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.html +21 -0
- package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +107 -0
- package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.css +0 -0
- package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.html +37 -0
- package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +64 -0
- package/src/libs/feature/map/src/lib/constant/index.ts +1 -0
- package/src/libs/feature/map/src/lib/feature-map.module.ts +12 -0
- package/src/libs/feature/map/src/lib/geocoding/geocoding.component.css +0 -0
- package/src/libs/feature/map/src/lib/geocoding/geocoding.component.html +39 -0
- package/src/libs/feature/map/src/lib/geocoding/geocoding.component.ts +99 -0
- package/src/libs/feature/map/src/lib/geocoding.service.ts +59 -0
- package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.html +6 -2
- package/src/libs/feature/map/src/lib/map-context/map-context.service.ts +16 -0
- package/src/libs/feature/map/src/lib/utils/index.ts +0 -2
- package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +85 -50
- package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +12 -12
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +18 -3
- package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +1 -1
- package/src/libs/feature/router/src/lib/default/index.ts +1 -0
- package/src/libs/feature/router/src/lib/default/router.service.ts +1 -1
- package/src/libs/feature/search/src/index.ts +3 -0
- package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +13 -4
- package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +2 -1
- package/src/libs/feature/search/src/lib/feature-search.module.ts +1 -10
- package/src/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.ts +4 -4
- package/src/libs/feature/search/src/lib/filter-geometry.token.ts +7 -0
- package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +9 -3
- package/src/libs/feature/search/src/lib/record-url.token.ts +4 -0
- package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +1 -1
- package/src/libs/feature/search/src/lib/results-table/results-table.component.css +0 -0
- package/src/libs/feature/search/src/lib/results-table/results-table.component.html +112 -0
- package/src/libs/feature/search/src/lib/results-table/results-table.component.ts +164 -0
- package/src/libs/feature/search/src/lib/state/effects.ts +5 -4
- package/src/libs/feature/search/src/lib/state/search.facade.ts +2 -1
- package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +21 -16
- package/src/libs/feature/search/src/lib/utils/service/fields.ts +43 -34
- package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -0
- package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.ts +1 -1
- package/src/libs/ui/elements/src/index.ts +3 -0
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +4 -1
- package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.css +0 -0
- package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +30 -0
- package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.ts +15 -0
- package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.css +5 -0
- package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.html +39 -0
- package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +58 -0
- package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.css +264 -0
- package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.html +1 -0
- package/src/libs/ui/elements/src/lib/markdown-parser/markdown-parser.component.ts +17 -0
- package/src/libs/ui/elements/src/lib/max-lines/max-lines.component.html +5 -1
- package/src/libs/ui/elements/src/lib/max-lines/max-lines.component.ts +1 -0
- package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +3 -3
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css +4 -0
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +212 -68
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +51 -10
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +2 -3
- package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.html +5 -5
- package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +12 -4
- package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +1 -1
- package/src/libs/ui/elements/src/lib/thumbnail/thumbnail.component.html +2 -2
- package/src/libs/ui/elements/src/lib/thumbnail/thumbnail.component.ts +4 -0
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +7 -0
- package/src/libs/ui/inputs/src/index.ts +1 -0
- package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/button/button.component.css +0 -5
- package/src/libs/ui/inputs/src/lib/button/button.component.html +0 -1
- package/src/libs/ui/inputs/src/lib/button/button.component.ts +7 -6
- package/src/libs/ui/inputs/src/lib/checkbox/checkbox.component.html +0 -1
- package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +2 -2
- package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.html +3 -1
- package/src/libs/ui/inputs/src/lib/editable-label/editable-label.directive.ts +48 -0
- package/src/libs/ui/inputs/src/lib/form-field/form-field.component.ts +3 -1
- package/src/libs/ui/inputs/src/lib/form-field/form-field.model.ts +0 -1
- package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.css +3 -0
- package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.html +8 -3
- package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.css +1 -0
- package/src/libs/ui/inputs/src/lib/text-area/text-area.component.ts +1 -0
- package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +5 -2
- package/src/libs/ui/layout/src/index.ts +2 -0
- package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +1 -1
- package/src/libs/ui/layout/src/lib/carousel/carousel.component.html +1 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.css +0 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.html +1 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table-column/interactive-table-column.component.ts +33 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.css +15 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +54 -0
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +42 -0
- package/src/libs/ui/search/src/index.ts +0 -1
- package/src/libs/ui/search/src/lib/ui-search.module.ts +2 -3
- package/src/libs/ui/widgets/src/lib/badge/badge.component.html +3 -1
- package/src/libs/util/i18n/src/index.ts +0 -1
- package/src/libs/util/i18n/src/lib/i18n.constants.ts +18 -0
- package/src/libs/util/shared/src/lib/links/link-utils.ts +34 -11
- package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
- package/src/libs/util/shared/src/lib/utils/temporal-extent-union.ts +32 -0
- package/tailwind.base.css +44 -15
- package/translations/de.json +131 -109
- package/translations/en.json +63 -41
- package/translations/es.json +41 -19
- package/translations/fr.json +57 -35
- package/translations/it.json +58 -36
- package/translations/nl.json +42 -20
- package/translations/pt.json +41 -19
- package/translations/sk.json +119 -97
- package/esm2022/libs/feature/map/src/lib/utils/map-utils-wms.service.mjs +0 -55
- package/esm2022/libs/feature/map/src/lib/utils/projections.mjs +0 -2
- package/esm2022/libs/ui/search/src/lib/record-table/record-table.component.mjs +0 -145
- package/esm2022/libs/util/i18n/src/lib/testing/test.translate.loader.mjs +0 -24
- package/esm2022/libs/util/i18n/src/lib/testing/test.translate.module.mjs +0 -109
- package/esm2022/libs/util/i18n/src/lib/testing/translations.model.mjs +0 -6
- package/libs/feature/map/src/lib/utils/map-utils-wms.service.d.ts +0 -17
- package/libs/feature/map/src/lib/utils/map-utils-wms.service.d.ts.map +0 -1
- package/libs/feature/map/src/lib/utils/projections.d.ts.map +0 -1
- package/libs/ui/search/src/lib/record-table/record-table.component.d.ts +0 -31
- package/libs/ui/search/src/lib/record-table/record-table.component.d.ts.map +0 -1
- package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts +0 -17
- package/libs/util/i18n/src/lib/testing/test.translate.loader.d.ts.map +0 -1
- package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts +0 -131
- package/libs/util/i18n/src/lib/testing/test.translate.module.d.ts.map +0 -1
- package/libs/util/i18n/src/lib/testing/translations.model.d.ts +0 -21
- package/libs/util/i18n/src/lib/testing/translations.model.d.ts.map +0 -1
- package/src/libs/feature/map/src/lib/utils/map-utils-wms.service.ts +0 -58
- package/src/libs/ui/search/src/lib/record-table/record-table.component.css +0 -7
- package/src/libs/ui/search/src/lib/record-table/record-table.component.html +0 -215
- package/src/libs/ui/search/src/lib/record-table/record-table.component.ts +0 -149
- package/src/libs/util/i18n/src/lib/testing/test.translate.loader.ts +0 -26
- package/src/libs/util/i18n/src/lib/testing/test.translate.module.ts +0 -235
- package/src/libs/util/i18n/src/lib/testing/translations.model.ts +0 -28
- /package/libs/feature/map/src/lib/{utils → constant}/projections.d.ts +0 -0
- /package/src/libs/feature/map/src/lib/{utils → constant}/projections.ts +0 -0
package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs
CHANGED
|
@@ -4,7 +4,7 @@ import { filter, map } from 'rxjs/operators';
|
|
|
4
4
|
import { SearchFacade } from '../state/search.facade';
|
|
5
5
|
import { ErrorType } from '../../../../../../libs/ui/elements/src';
|
|
6
6
|
import { RESULTS_LAYOUT_CONFIG, } from '../../../../../../libs/ui/search/src';
|
|
7
|
-
import { RECORD_URL_TOKEN } from '../
|
|
7
|
+
import { RECORD_URL_TOKEN } from '../record-url.token';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "../state/search.facade";
|
|
10
10
|
import * as i2 from "@angular/common";
|
|
@@ -51,7 +51,7 @@ export class ResultsListContainerComponent {
|
|
|
51
51
|
return this.recordUrlTemplate.replace('${uuid}', metadata.uniqueIdentifier);
|
|
52
52
|
}
|
|
53
53
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ResultsListContainerComponent, deps: [{ token: i1.SearchFacade }, { token: RESULTS_LAYOUT_CONFIG }, { token: RECORD_URL_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
54
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ResultsListContainerComponent, selector: "gn-ui-results-list-container", inputs: { metadataQualityDisplay: "metadataQualityDisplay", layout: "layout", showMore: "showMore" }, outputs: { mdSelect: "mdSelect" }, ngImport: i0, template: "<div *ngIf=\"(error$ | async) === null\" class=\"search-results relative\">\n <gn-ui-results-list\n [records]=\"facade.results$ | async\"\n [layoutConfig]=\"layoutConfig$ | async\"\n [metadataQualityDisplay]=\"\n metadataQualityDisplay && (pipelineForQualityScoreActivated | async)\n \"\n [favoriteTemplate]=\"favoriteToggle\"\n [recordUrlGetter]=\"recordUrlGetter\"\n (mdSelect)=\"onMetadataSelection($event)\"\n ></gn-ui-results-list>\n <ng-container\n *ngIf=\"\n (facade.isLoading$ | async) === false &&\n (facade.isEndOfResults$ | async) === false\n \"\n >\n <div class=\"show-more h-[100px] pt-[30px]\" *ngIf=\"showMore === 'button'\">\n <gn-ui-button\n data-cy=\"addMoreBtn\"\n type=\"secondary\"\n (buttonClick)=\"onShowMore()\"\n extraClass=\"m-auto !p-[22px]\"\n >\n <span class=\"uppercase font-medium tracking-widest\" translate\n >results.showMore</span\n >\n </gn-ui-button>\n </div>\n <div class=\"show-more h-[100px]\" *ngIf=\"showMore === 'auto'\">\n <gn-ui-viewport-intersector\n (entersViewport)=\"onShowMore()\"\n ></gn-ui-viewport-intersector>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"(facade.isLoading$ | async) === true\">\n <div class=\"loading flex justify-center h-[100px] pt-[45px]\">\n <gn-ui-spinning-loader></gn-ui-spinning-loader>\n </div>\n </ng-container>\n</div>\n\n<div class=\"p-4 max-w-[600px] m-auto text-[13px]\">\n <gn-ui-search-results-error\n *ngIf=\"(errorCode$ | async) === 0\"\n [type]=\"errorTypes.COULD_NOT_REACH_API\"\n >\n </gn-ui-search-results-error>\n <gn-ui-search-results-error\n *ngIf=\"(error$ | async) !== null && (errorCode$ | async) !== 0\"\n [type]=\"errorTypes.RECEIVED_ERROR\"\n [error]=\"errorMessage$ | async\"\n ></gn-ui-search-results-error>\n</div>\n\n<ng-template #favoriteToggle let-record>\n <gn-ui-favorite-star [record]=\"record\"></gn-ui-favorite-star>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4.ResultsListComponent, selector: "gn-ui-results-list", inputs: ["records", "layoutConfig", "favoriteTemplate", "recordUrlGetter", "metadataQualityDisplay"], outputs: ["mdSelect"] }, { kind: "component", type: i5.ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: i6.ViewportIntersectorComponent, selector: "gn-ui-viewport-intersector", outputs: ["isInViewport", "entersViewport", "exitsViewport"] }, { kind: "component", type: i7.SearchResultsErrorComponent, selector: "gn-ui-search-results-error", inputs: ["type", "error", "recordId"] }, { kind: "component", type: i8.SpinningLoaderComponent, selector: "gn-ui-spinning-loader" }, { kind: "component", type: i9.FavoriteStarComponent, selector: "gn-ui-favorite-star", inputs: ["record"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
|
|
54
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ResultsListContainerComponent, selector: "gn-ui-results-list-container", inputs: { metadataQualityDisplay: "metadataQualityDisplay", layout: "layout", showMore: "showMore" }, outputs: { mdSelect: "mdSelect" }, ngImport: i0, template: "<div *ngIf=\"(error$ | async) === null\" class=\"search-results relative\">\n <gn-ui-results-list\n [records]=\"facade.results$ | async\"\n [layoutConfig]=\"layoutConfig$ | async\"\n [metadataQualityDisplay]=\"\n metadataQualityDisplay && (pipelineForQualityScoreActivated | async)\n \"\n [favoriteTemplate]=\"favoriteToggle\"\n [recordUrlGetter]=\"recordUrlGetter\"\n (mdSelect)=\"onMetadataSelection($event)\"\n ></gn-ui-results-list>\n <ng-container\n *ngIf=\"\n (facade.isLoading$ | async) === false &&\n (facade.isEndOfResults$ | async) === false\n \"\n >\n <div class=\"show-more h-[100px] pt-[30px]\" *ngIf=\"showMore === 'button'\">\n <gn-ui-button\n data-cy=\"addMoreBtn\"\n type=\"secondary\"\n (buttonClick)=\"onShowMore()\"\n extraClass=\"m-auto !p-[22px]\"\n >\n <span class=\"uppercase font-medium tracking-widest\" translate\n >results.showMore</span\n >\n </gn-ui-button>\n </div>\n <div class=\"show-more h-[100px]\" *ngIf=\"showMore === 'auto'\">\n <gn-ui-viewport-intersector\n (entersViewport)=\"onShowMore()\"\n ></gn-ui-viewport-intersector>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"(facade.isLoading$ | async) === true\">\n <div class=\"loading flex justify-center h-[100px] pt-[45px]\">\n <gn-ui-spinning-loader></gn-ui-spinning-loader>\n </div>\n </ng-container>\n</div>\n\n<div class=\"p-4 max-w-[600px] m-auto text-[13px]\">\n <gn-ui-search-results-error\n *ngIf=\"(errorCode$ | async) === 0\"\n [type]=\"errorTypes.COULD_NOT_REACH_API\"\n >\n </gn-ui-search-results-error>\n <gn-ui-search-results-error\n *ngIf=\"(error$ | async) !== null && (errorCode$ | async) !== 0\"\n [type]=\"errorTypes.RECEIVED_ERROR\"\n [error]=\"errorMessage$ | async\"\n ></gn-ui-search-results-error>\n</div>\n\n<ng-template #favoriteToggle let-record>\n <gn-ui-favorite-star [record]=\"record\"></gn-ui-favorite-star>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4.ResultsListComponent, selector: "gn-ui-results-list", inputs: ["records", "layoutConfig", "favoriteTemplate", "recordUrlGetter", "metadataQualityDisplay"], outputs: ["mdSelect"] }, { kind: "component", type: i5.ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: i6.ViewportIntersectorComponent, selector: "gn-ui-viewport-intersector", outputs: ["isInViewport", "entersViewport", "exitsViewport"] }, { kind: "component", type: i7.SearchResultsErrorComponent, selector: "gn-ui-search-results-error", inputs: ["type", "error", "recordId"] }, { kind: "component", type: i8.SpinningLoaderComponent, selector: "gn-ui-spinning-loader" }, { kind: "component", type: i9.FavoriteStarComponent, selector: "gn-ui-favorite-star", inputs: ["displayCount", "record"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] }); }
|
|
55
55
|
}
|
|
56
56
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ResultsListContainerComponent, decorators: [{
|
|
57
57
|
type: Component,
|
|
@@ -73,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
73
73
|
}], mdSelect: [{
|
|
74
74
|
type: Output
|
|
75
75
|
}] } });
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0cy1saXN0LmNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvc2VhcmNoL3NyYy9saWIvcmVzdWx0cy1saXN0L3Jlc3VsdHMtbGlzdC5jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3NlYXJjaC9zcmMvbGliL3Jlc3VsdHMtbGlzdC9yZXN1bHRzLWxpc3QuY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQWMsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBRXJELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUNsRSxPQUFPLEVBQ0wscUJBQXFCLEdBR3RCLE1BQU0sc0NBQXNDLENBQUE7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7Ozs7Ozs7Ozs7O0FBVTNELE1BQU0sT0FBTyw2QkFBNkI7SUFnQnhDLFlBQ1MsTUFBb0IsRUFFbkIsbUJBQTZDLEVBRzdDLGlCQUF5QjtRQUwxQixXQUFNLEdBQU4sTUFBTSxDQUFjO1FBRW5CLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBMEI7UUFHN0Msc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFRO1FBbkIxQixhQUFRLEdBQWdDLE1BQU0sQ0FBQTtRQUM3QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVB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ICBJbmplY3QsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0YXAgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IFNlYXJjaEZhY2FkZSB9IGZyb20gJy4uL3N0YXRlL3NlYXJjaC5mYWNhZGUnXG5pbXBvcnQgeyBTZWFyY2hFcnJvciB9IGZyb20gJy4uL3N0YXRlL3JlZHVjZXInXG5pbXBvcnQgeyBFcnJvclR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYydcbmltcG9ydCB7XG4gIFJFU1VMVFNfTEFZT1VUX0NPTkZJRyxcbiAgUmVzdWx0c0xheW91dENvbmZpZ0l0ZW0sXG4gIFJlc3VsdHNMYXlvdXRDb25maWdNb2RlbCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9zZWFyY2gvc3JjJ1xuaW1wb3J0IHsgUkVDT1JEX1VSTF9UT0tFTiB9IGZyb20gJy4uL2ZlYXR1cmUtc2VhcmNoLm1vZHVsZSdcbmltcG9ydCB7IENhdGFsb2dSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5cbmV4cG9ydCB0eXBlIFJlc3VsdHNMaXN0U2hvd01vcmVTdHJhdGVneSA9ICdhdXRvJyB8ICdidXR0b24nIHwgJ25vbmUnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLXJlc3VsdHMtbGlzdC1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVzdWx0cy1saXN0LmNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Jlc3VsdHMtbGlzdC5jb250YWluZXIuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBSZXN1bHRzTGlzdENvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG1ldGFkYXRhUXVhbGl0eURpc3BsYXk6IGJvb2xlYW5cbiAgQElucHV0KCkgbGF5b3V0OiBzdHJpbmdcbiAgQElucHV0KCkgc2hvd01vcmU6IFJlc3VsdHNMaXN0U2hvd01vcmVTdHJhdGVneSA9ICdhdXRvJ1xuICBAT3V0cHV0KCkgbWRTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPENhdGFsb2dSZWNvcmQ+KClcblxuICBsYXlvdXRDb25maWckOiBPYnNlcnZhYmxlPFJlc3VsdHNMYXlvdXRDb25maWdJdGVtPlxuXG4gIGVycm9yJDogT2JzZXJ2YWJsZTxTZWFyY2hFcnJvcj5cbiAgZXJyb3JDb2RlJDogT2JzZXJ2YWJsZTxudW1iZXI+XG4gIGVycm9yTWVzc2FnZSQ6IE9ic2VydmFibGU8c3RyaW5nPlxuICBwaXBlbGluZUZvclF1YWxpdHlTY29yZUFjdGl2YXRlZDogT2JzZXJ2YWJsZTxib29sZWFuPlxuXG4gIGVycm9yVHlwZXMgPSBFcnJvclR5cGVcbiAgcmVjb3JkVXJsR2V0dGVyID0gdGhpcy5nZXRSZWNvcmRVcmwuYmluZCh0aGlzKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBmYWNhZGU6IFNlYXJjaEZhY2FkZSxcbiAgICBASW5qZWN0KFJFU1VMVFNfTEFZT1VUX0NPTkZJRylcbiAgICBwcml2YXRlIHJlc3VsdHNMYXlvdXRDb25maWc6IFJlc3VsdHNMYXlvdXRDb25maWdNb2RlbCxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoUkVDT1JEX1VSTF9UT0tFTilcbiAgICBwcml2YXRlIHJlY29yZFVybFRlbXBsYXRlOiBzdHJpbmdcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubGF5b3V0Q29uZmlnJCA9IHRoaXMuZmFjYWRlLmxheW91dCQucGlwZShcbiAgICAgIG1hcCgobGF5b3V0KSA9PiB0aGlzLnJlc3VsdHNMYXlvdXRDb25maWdbbGF5b3V0XSlcbiAgICApXG5cbiAgICBpZiAodGhpcy5sYXlvdXQpIHtcbiAgICAgIHRoaXMuZmFjYWRlLnNldFJlc3VsdHNMYXlvdXQodGhpcy5sYXlvdXQpXG4gICAgfVxuXG4gICAgdGhpcy5waXBlbGluZUZvclF1YWxpdHlTY29yZUFjdGl2YXRlZCA9IHRoaXMuZmFjYWRlLnJlc3VsdHMkLnBpcGUoXG4gICAgICB0YXAoKHJlY29yZHMpID0+IHtcbiAgICAgICAgaWYgKHJlY29yZHM/Lmxlbmd0aCA+IDAgJiYgIXJlY29yZHNbMF0uZXh0cmFzPy5xdWFsaXR5U2NvcmUpIHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAnSXQgbG9va3MgbGlrZSB0aGUgbWV0YWRhdGEgcXVhbGl0eSBpbmRpY2F0b3IgaXMgbm90IGF2YWlsYWJsZSBvbiB0aGVzZSByZWNvcmRzLCBwcm9iYWJseSBkdWUgdG8gYSBtaXNzaW5nIGluZGV4aW5nIHBpcGVsaW5lJ1xuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBtYXAoKHJlY29yZHMpID0+ICEhcmVjb3Jkc1swXT8uZXh0cmFzLnF1YWxpdHlTY29yZSlcbiAgICApXG5cbiAgICB0aGlzLmVycm9yJCA9IHRoaXMuZmFjYWRlLmVycm9yJFxuICAgIHRoaXMuZXJyb3JDb2RlJCA9IHRoaXMuZXJyb3IkLnBpcGUoXG4gICAgICBmaWx0ZXIoKGVycm9yKSA9PiBlcnJvciAhPT0gbnVsbCksXG4gICAgICBtYXAoKGVycm9yKSA9PiBlcnJvci5jb2RlKVxuICAgIClcbiAgICB0aGlzLmVycm9yTWVzc2FnZSQgPSB0aGlzLmVycm9yJC5waXBlKFxuICAgICAgZmlsdGVyKChlcnJvcikgPT4gZXJyb3IgIT09IG51bGwpLFxuICAgICAgbWFwKChlcnJvcikgPT4gZXJyb3IubWVzc2FnZSlcbiAgICApXG4gIH1cblxuICBvbk1ldGFkYXRhU2VsZWN0aW9uKG1ldGFkYXRhOiBDYXRhbG9nUmVjb3JkKTogdm9pZCB7XG4gICAgdGhpcy5tZFNlbGVjdC5lbWl0KG1ldGFkYXRhKVxuICB9XG5cbiAgb25TaG93TW9yZSgpIHtcbiAgICB0aGlzLmZhY2FkZS5zY3JvbGwoKVxuICB9XG5cbiAgZ2V0UmVjb3JkVXJsKG1ldGFkYXRhOiBDYXRhbG9nUmVjb3JkKSB7XG4gICAgaWYgKCF0aGlzLnJlY29yZFVybFRlbXBsYXRlKSByZXR1cm4gbnVsbFxuICAgIHJldHVybiB0aGlzLnJlY29yZFVybFRlbXBsYXRlLnJlcGxhY2UoJyR7dXVpZH0nLCBtZXRhZGF0YS51bmlxdWVJZGVudGlmaWVyKVxuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiKGVycm9yJCB8IGFzeW5jKSA9PT0gbnVsbFwiIGNsYXNzPVwic2VhcmNoLXJlc3VsdHMgcmVsYXRpdmVcIj5cbiAgPGduLXVpLXJlc3VsdHMtbGlzdFxuICAgIFtyZWNvcmRzXT1cImZhY2FkZS5yZXN1bHRzJCB8IGFzeW5jXCJcbiAgICBbbGF5b3V0Q29uZmlnXT1cImxheW91dENvbmZpZyQgfCBhc3luY1wiXG4gICAgW21ldGFkYXRhUXVhbGl0eURpc3BsYXldPVwiXG4gICAgICBtZXRhZGF0YVF1YWxpdHlEaXNwbGF5ICYmIChwaXBlbGluZUZvclF1YWxpdHlTY29yZUFjdGl2YXRlZCB8IGFzeW5jKVxuICAgIFwiXG4gICAgW2Zhdm9yaXRlVGVtcGxhdGVdPVwiZmF2b3JpdGVUb2dnbGVcIlxuICAgIFtyZWNvcmRVcmxHZXR0ZXJdPVwicmVjb3JkVXJsR2V0dGVyXCJcbiAgICAobWRTZWxlY3QpPVwib25NZXRhZGF0YVNlbGVjdGlvbigkZXZlbnQpXCJcbiAgPjwvZ24tdWktcmVzdWx0cy1saXN0PlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nSWY9XCJcbiAgICAgIChmYWNhZGUuaXNMb2FkaW5nJCB8IGFzeW5jKSA9PT0gZmFsc2UgJiZcbiAgICAgIChmYWNhZGUuaXNFbmRPZlJlc3VsdHMkIHwgYXN5bmMpID09PSBmYWxzZVxuICAgIFwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwic2hvdy1tb3JlIGgtWzEwMHB4XSBwdC1bMzBweF1cIiAqbmdJZj1cInNob3dNb3JlID09PSAnYnV0dG9uJ1wiPlxuICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICBkYXRhLWN5PVwiYWRkTW9yZUJ0blwiXG4gICAgICAgIHR5cGU9XCJzZWNvbmRhcnlcIlxuICAgICAgICAoYnV0dG9uQ2xpY2spPVwib25TaG93TW9yZSgpXCJcbiAgICAgICAgZXh0cmFDbGFzcz1cIm0tYXV0byAhcC1bMjJweF1cIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInVwcGVyY2FzZSBmb250LW1lZGl1bSB0cmFja2luZy13aWRlc3RcIiB0cmFuc2xhdGVcbiAgICAgICAgICA+cmVzdWx0cy5zaG93TW9yZTwvc3BhblxuICAgICAgICA+XG4gICAgICA8L2duLXVpLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwic2hvdy1tb3JlIGgtWzEwMHB4XVwiICpuZ0lmPVwic2hvd01vcmUgPT09ICdhdXRvJ1wiPlxuICAgICAgPGduLXVpLXZpZXdwb3J0LWludGVyc2VjdG9yXG4gICAgICAgIChlbnRlcnNWaWV3cG9ydCk9XCJvblNob3dNb3JlKClcIlxuICAgICAgPjwvZ24tdWktdmlld3BvcnQtaW50ZXJzZWN0b3I+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZmFjYWRlLmlzTG9hZGluZyQgfCBhc3luYykgPT09IHRydWVcIj5cbiAgICA8ZGl2IGNsYXNzPVwibG9hZGluZyBmbGV4IGp1c3RpZnktY2VudGVyIGgtWzEwMHB4XSBwdC1bNDVweF1cIj5cbiAgICAgIDxnbi11aS1zcGlubmluZy1sb2FkZXI+PC9nbi11aS1zcGlubmluZy1sb2FkZXI+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJwLTQgbWF4LXctWzYwMHB4XSBtLWF1dG8gdGV4dC1bMTNweF1cIj5cbiAgPGduLXVpLXNlYXJjaC1yZXN1bHRzLWVycm9yXG4gICAgKm5nSWY9XCIoZXJyb3JDb2RlJCB8IGFzeW5jKSA9PT0gMFwiXG4gICAgW3R5cGVdPVwiZXJyb3JUeXBlcy5DT1VMRF9OT1RfUkVBQ0hfQVBJXCJcbiAgPlxuICA8L2duLXVpLXNlYXJjaC1yZXN1bHRzLWVycm9yPlxuICA8Z24tdWktc2VhcmNoLXJlc3VsdHMtZXJyb3JcbiAgICAqbmdJZj1cIihlcnJvciQgfCBhc3luYykgIT09IG51bGwgJiYgKGVycm9yQ29kZSQgfCBhc3luYykgIT09IDBcIlxuICAgIFt0eXBlXT1cImVycm9yVHlwZXMuUkVDRUlWRURfRVJST1JcIlxuICAgIFtlcnJvcl09XCJlcnJvck1lc3NhZ2UkIHwgYXN5bmNcIlxuICA+PC9nbi11aS1zZWFyY2gtcmVzdWx0cy1lcnJvcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2Zhdm9yaXRlVG9nZ2xlIGxldC1yZWNvcmQ+XG4gIDxnbi11aS1mYXZvcml0ZS1zdGFyIFtyZWNvcmRdPVwicmVjb3JkXCI+PC9nbi11aS1mYXZvcml0ZS1zdGFyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0cy1saXN0LmNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvc2VhcmNoL3NyYy9saWIvcmVzdWx0cy1saXN0L3Jlc3VsdHMtbGlzdC5jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3NlYXJjaC9zcmMvbGliL3Jlc3VsdHMtbGlzdC9yZXN1bHRzLWxpc3QuY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQWMsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBRXJELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUNsRSxPQUFPLEVBQ0wscUJBQXFCLEdBR3RCLE1BQU0sc0NBQXNDLENBQUE7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUE7Ozs7Ozs7Ozs7O0FBVXRELE1BQU0sT0FBTyw2QkFBNkI7SUFnQnhDLFlBQ1MsTUFBb0IsRUFFbkIsbUJBQTZDLEVBRzdDLGlCQUF5QjtRQUwxQixXQUFNLEdBQU4sTUFBTSxDQUFjO1FBRW5CLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBMEI7UUFHN0Msc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFRO1FBbkIxQixhQUFRLEdBQWdDLE1BQU0sQ0FBQTtRQUM3QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVB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ICBJbmplY3QsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0YXAgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IFNlYXJjaEZhY2FkZSB9IGZyb20gJy4uL3N0YXRlL3NlYXJjaC5mYWNhZGUnXG5pbXBvcnQgeyBTZWFyY2hFcnJvciB9IGZyb20gJy4uL3N0YXRlL3JlZHVjZXInXG5pbXBvcnQgeyBFcnJvclR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL2VsZW1lbnRzL3NyYydcbmltcG9ydCB7XG4gIFJFU1VMVFNfTEFZT1VUX0NPTkZJRyxcbiAgUmVzdWx0c0xheW91dENvbmZpZ0l0ZW0sXG4gIFJlc3VsdHNMYXlvdXRDb25maWdNb2RlbCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9zZWFyY2gvc3JjJ1xuaW1wb3J0IHsgUkVDT1JEX1VSTF9UT0tFTiB9IGZyb20gJy4uL3JlY29yZC11cmwudG9rZW4nXG5pbXBvcnQgeyBDYXRhbG9nUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuXG5leHBvcnQgdHlwZSBSZXN1bHRzTGlzdFNob3dNb3JlU3RyYXRlZ3kgPSAnYXV0bycgfCAnYnV0dG9uJyB8ICdub25lJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1yZXN1bHRzLWxpc3QtY29udGFpbmVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc3VsdHMtbGlzdC5jb250YWluZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZXN1bHRzLWxpc3QuY29udGFpbmVyLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVzdWx0c0xpc3RDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBtZXRhZGF0YVF1YWxpdHlEaXNwbGF5OiBib29sZWFuXG4gIEBJbnB1dCgpIGxheW91dDogc3RyaW5nXG4gIEBJbnB1dCgpIHNob3dNb3JlOiBSZXN1bHRzTGlzdFNob3dNb3JlU3RyYXRlZ3kgPSAnYXV0bydcbiAgQE91dHB1dCgpIG1kU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxDYXRhbG9nUmVjb3JkPigpXG5cbiAgbGF5b3V0Q29uZmlnJDogT2JzZXJ2YWJsZTxSZXN1bHRzTGF5b3V0Q29uZmlnSXRlbT5cblxuICBlcnJvciQ6IE9ic2VydmFibGU8U2VhcmNoRXJyb3I+XG4gIGVycm9yQ29kZSQ6IE9ic2VydmFibGU8bnVtYmVyPlxuICBlcnJvck1lc3NhZ2UkOiBPYnNlcnZhYmxlPHN0cmluZz5cbiAgcGlwZWxpbmVGb3JRdWFsaXR5U2NvcmVBY3RpdmF0ZWQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cblxuICBlcnJvclR5cGVzID0gRXJyb3JUeXBlXG4gIHJlY29yZFVybEdldHRlciA9IHRoaXMuZ2V0UmVjb3JkVXJsLmJpbmQodGhpcylcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZmFjYWRlOiBTZWFyY2hGYWNhZGUsXG4gICAgQEluamVjdChSRVNVTFRTX0xBWU9VVF9DT05GSUcpXG4gICAgcHJpdmF0ZSByZXN1bHRzTGF5b3V0Q29uZmlnOiBSZXN1bHRzTGF5b3V0Q29uZmlnTW9kZWwsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KFJFQ09SRF9VUkxfVE9LRU4pXG4gICAgcHJpdmF0ZSByZWNvcmRVcmxUZW1wbGF0ZTogc3RyaW5nXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxheW91dENvbmZpZyQgPSB0aGlzLmZhY2FkZS5sYXlvdXQkLnBpcGUoXG4gICAgICBtYXAoKGxheW91dCkgPT4gdGhpcy5yZXN1bHRzTGF5b3V0Q29uZmlnW2xheW91dF0pXG4gICAgKVxuXG4gICAgaWYgKHRoaXMubGF5b3V0KSB7XG4gICAgICB0aGlzLmZhY2FkZS5zZXRSZXN1bHRzTGF5b3V0KHRoaXMubGF5b3V0KVxuICAgIH1cblxuICAgIHRoaXMucGlwZWxpbmVGb3JRdWFsaXR5U2NvcmVBY3RpdmF0ZWQgPSB0aGlzLmZhY2FkZS5yZXN1bHRzJC5waXBlKFxuICAgICAgdGFwKChyZWNvcmRzKSA9PiB7XG4gICAgICAgIGlmIChyZWNvcmRzPy5sZW5ndGggPiAwICYmICFyZWNvcmRzWzBdLmV4dHJhcz8ucXVhbGl0eVNjb3JlKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgJ0l0IGxvb2tzIGxpa2UgdGhlIG1ldGFkYXRhIHF1YWxpdHkgaW5kaWNhdG9yIGlzIG5vdCBhdmFpbGFibGUgb24gdGhlc2UgcmVjb3JkcywgcHJvYmFibHkgZHVlIHRvIGEgbWlzc2luZyBpbmRleGluZyBwaXBlbGluZSdcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgbWFwKChyZWNvcmRzKSA9PiAhIXJlY29yZHNbMF0/LmV4dHJhcy5xdWFsaXR5U2NvcmUpXG4gICAgKVxuXG4gICAgdGhpcy5lcnJvciQgPSB0aGlzLmZhY2FkZS5lcnJvciRcbiAgICB0aGlzLmVycm9yQ29kZSQgPSB0aGlzLmVycm9yJC5waXBlKFxuICAgICAgZmlsdGVyKChlcnJvcikgPT4gZXJyb3IgIT09IG51bGwpLFxuICAgICAgbWFwKChlcnJvcikgPT4gZXJyb3IuY29kZSlcbiAgICApXG4gICAgdGhpcy5lcnJvck1lc3NhZ2UkID0gdGhpcy5lcnJvciQucGlwZShcbiAgICAgIGZpbHRlcigoZXJyb3IpID0+IGVycm9yICE9PSBudWxsKSxcbiAgICAgIG1hcCgoZXJyb3IpID0+IGVycm9yLm1lc3NhZ2UpXG4gICAgKVxuICB9XG5cbiAgb25NZXRhZGF0YVNlbGVjdGlvbihtZXRhZGF0YTogQ2F0YWxvZ1JlY29yZCk6IHZvaWQge1xuICAgIHRoaXMubWRTZWxlY3QuZW1pdChtZXRhZGF0YSlcbiAgfVxuXG4gIG9uU2hvd01vcmUoKSB7XG4gICAgdGhpcy5mYWNhZGUuc2Nyb2xsKClcbiAgfVxuXG4gIGdldFJlY29yZFVybChtZXRhZGF0YTogQ2F0YWxvZ1JlY29yZCkge1xuICAgIGlmICghdGhpcy5yZWNvcmRVcmxUZW1wbGF0ZSkgcmV0dXJuIG51bGxcbiAgICByZXR1cm4gdGhpcy5yZWNvcmRVcmxUZW1wbGF0ZS5yZXBsYWNlKCcke3V1aWR9JywgbWV0YWRhdGEudW5pcXVlSWRlbnRpZmllcilcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIihlcnJvciQgfCBhc3luYykgPT09IG51bGxcIiBjbGFzcz1cInNlYXJjaC1yZXN1bHRzIHJlbGF0aXZlXCI+XG4gIDxnbi11aS1yZXN1bHRzLWxpc3RcbiAgICBbcmVjb3Jkc109XCJmYWNhZGUucmVzdWx0cyQgfCBhc3luY1wiXG4gICAgW2xheW91dENvbmZpZ109XCJsYXlvdXRDb25maWckIHwgYXN5bmNcIlxuICAgIFttZXRhZGF0YVF1YWxpdHlEaXNwbGF5XT1cIlxuICAgICAgbWV0YWRhdGFRdWFsaXR5RGlzcGxheSAmJiAocGlwZWxpbmVGb3JRdWFsaXR5U2NvcmVBY3RpdmF0ZWQgfCBhc3luYylcbiAgICBcIlxuICAgIFtmYXZvcml0ZVRlbXBsYXRlXT1cImZhdm9yaXRlVG9nZ2xlXCJcbiAgICBbcmVjb3JkVXJsR2V0dGVyXT1cInJlY29yZFVybEdldHRlclwiXG4gICAgKG1kU2VsZWN0KT1cIm9uTWV0YWRhdGFTZWxlY3Rpb24oJGV2ZW50KVwiXG4gID48L2duLXVpLXJlc3VsdHMtbGlzdD5cbiAgPG5nLWNvbnRhaW5lclxuICAgICpuZ0lmPVwiXG4gICAgICAoZmFjYWRlLmlzTG9hZGluZyQgfCBhc3luYykgPT09IGZhbHNlICYmXG4gICAgICAoZmFjYWRlLmlzRW5kT2ZSZXN1bHRzJCB8IGFzeW5jKSA9PT0gZmFsc2VcbiAgICBcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cInNob3ctbW9yZSBoLVsxMDBweF0gcHQtWzMwcHhdXCIgKm5nSWY9XCJzaG93TW9yZSA9PT0gJ2J1dHRvbidcIj5cbiAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgZGF0YS1jeT1cImFkZE1vcmVCdG5cIlxuICAgICAgICB0eXBlPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgKGJ1dHRvbkNsaWNrKT1cIm9uU2hvd01vcmUoKVwiXG4gICAgICAgIGV4dHJhQ2xhc3M9XCJtLWF1dG8gIXAtWzIycHhdXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ1cHBlcmNhc2UgZm9udC1tZWRpdW0gdHJhY2tpbmctd2lkZXN0XCIgdHJhbnNsYXRlXG4gICAgICAgICAgPnJlc3VsdHMuc2hvd01vcmU8L3NwYW5cbiAgICAgICAgPlxuICAgICAgPC9nbi11aS1idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNob3ctbW9yZSBoLVsxMDBweF1cIiAqbmdJZj1cInNob3dNb3JlID09PSAnYXV0bydcIj5cbiAgICAgIDxnbi11aS12aWV3cG9ydC1pbnRlcnNlY3RvclxuICAgICAgICAoZW50ZXJzVmlld3BvcnQpPVwib25TaG93TW9yZSgpXCJcbiAgICAgID48L2duLXVpLXZpZXdwb3J0LWludGVyc2VjdG9yPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiKGZhY2FkZS5pc0xvYWRpbmckIHwgYXN5bmMpID09PSB0cnVlXCI+XG4gICAgPGRpdiBjbGFzcz1cImxvYWRpbmcgZmxleCBqdXN0aWZ5LWNlbnRlciBoLVsxMDBweF0gcHQtWzQ1cHhdXCI+XG4gICAgICA8Z24tdWktc3Bpbm5pbmctbG9hZGVyPjwvZ24tdWktc3Bpbm5pbmctbG9hZGVyPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwicC00IG1heC13LVs2MDBweF0gbS1hdXRvIHRleHQtWzEzcHhdXCI+XG4gIDxnbi11aS1zZWFyY2gtcmVzdWx0cy1lcnJvclxuICAgICpuZ0lmPVwiKGVycm9yQ29kZSQgfCBhc3luYykgPT09IDBcIlxuICAgIFt0eXBlXT1cImVycm9yVHlwZXMuQ09VTERfTk9UX1JFQUNIX0FQSVwiXG4gID5cbiAgPC9nbi11aS1zZWFyY2gtcmVzdWx0cy1lcnJvcj5cbiAgPGduLXVpLXNlYXJjaC1yZXN1bHRzLWVycm9yXG4gICAgKm5nSWY9XCIoZXJyb3IkIHwgYXN5bmMpICE9PSBudWxsICYmIChlcnJvckNvZGUkIHwgYXN5bmMpICE9PSAwXCJcbiAgICBbdHlwZV09XCJlcnJvclR5cGVzLlJFQ0VJVkVEX0VSUk9SXCJcbiAgICBbZXJyb3JdPVwiZXJyb3JNZXNzYWdlJCB8IGFzeW5jXCJcbiAgPjwvZ24tdWktc2VhcmNoLXJlc3VsdHMtZXJyb3I+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNmYXZvcml0ZVRvZ2dsZSBsZXQtcmVjb3JkPlxuICA8Z24tdWktZmF2b3JpdGUtc3RhciBbcmVjb3JkXT1cInJlY29yZFwiPjwvZ24tdWktZmF2b3JpdGUtc3Rhcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { Component, EventEmitter, Output } from '@angular/core';
|
|
2
|
+
import { getBadgeColor, getFileFormat, getFormatPriority, } from '../../../../../../libs/util/shared/src';
|
|
3
|
+
import { UiInputsModule } from '../../../../../../libs/ui/inputs/src';
|
|
4
|
+
import { InteractiveTableColumnComponent, InteractiveTableComponent, } from '../../../../../../libs/ui/layout/src';
|
|
5
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
6
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
7
|
+
import { SearchFacade } from '../state/search.facade';
|
|
8
|
+
import { SelectionService } from '../../../../../../libs/api/repository/src';
|
|
9
|
+
import { combineLatest, firstValueFrom } from 'rxjs';
|
|
10
|
+
import { CommonModule } from '@angular/common';
|
|
11
|
+
import { map, take } from 'rxjs/operators';
|
|
12
|
+
import { SearchService } from '../utils/service/search.service';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "../state/search.facade";
|
|
15
|
+
import * as i2 from "../utils/service/search.service";
|
|
16
|
+
import * as i3 from "../../../../../../libs/api/repository/src";
|
|
17
|
+
import * as i4 from "@angular/common";
|
|
18
|
+
import * as i5 from "../../../../../ui/inputs/src/lib/checkbox/checkbox.component";
|
|
19
|
+
import * as i6 from "@angular/material/icon";
|
|
20
|
+
import * as i7 from "@ngx-translate/core";
|
|
21
|
+
export class ResultsTableComponent {
|
|
22
|
+
constructor(searchFacade, searchService, selectionService) {
|
|
23
|
+
this.searchFacade = searchFacade;
|
|
24
|
+
this.searchService = searchService;
|
|
25
|
+
this.selectionService = selectionService;
|
|
26
|
+
this.recordClick = new EventEmitter();
|
|
27
|
+
this.records$ = this.searchFacade.results$;
|
|
28
|
+
this.selectedRecords$ = this.selectionService.selectedRecordsIdentifiers$;
|
|
29
|
+
}
|
|
30
|
+
dateToString(date) {
|
|
31
|
+
return date?.toLocaleDateString(undefined, {
|
|
32
|
+
year: 'numeric',
|
|
33
|
+
month: 'long',
|
|
34
|
+
day: 'numeric',
|
|
35
|
+
timeZone: 'UTC',
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
getStatus(isPublishedToAll) {
|
|
39
|
+
return isPublishedToAll ? 'published' : 'not published';
|
|
40
|
+
}
|
|
41
|
+
getRecordFormats(record) {
|
|
42
|
+
if (record.kind === 'service' || !('distributions' in record)) {
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
45
|
+
const formats = Array.from(new Set(record.distributions.map((distribution) => getFileFormat(distribution)))).filter((format) => !!format);
|
|
46
|
+
formats.sort((a, b) => getFormatPriority(b) - getFormatPriority(a));
|
|
47
|
+
return formats;
|
|
48
|
+
}
|
|
49
|
+
formatUserInfo(userInfo) {
|
|
50
|
+
const infos = (typeof userInfo === 'string' ? userInfo : '').split('|');
|
|
51
|
+
if (infos && infos.length === 4) {
|
|
52
|
+
return `${infos[2]} ${infos[1]}`;
|
|
53
|
+
}
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
getBadgeColor(format) {
|
|
57
|
+
return getBadgeColor(format);
|
|
58
|
+
}
|
|
59
|
+
handleRecordClick(item) {
|
|
60
|
+
this.recordClick.emit(item);
|
|
61
|
+
}
|
|
62
|
+
setSortBy(col, order) {
|
|
63
|
+
this.searchService.setSortBy([order, col]);
|
|
64
|
+
}
|
|
65
|
+
isSortedBy(col) {
|
|
66
|
+
return this.searchFacade.sortBy$.pipe(take(1), map((sortOrder) => {
|
|
67
|
+
const sortArray = Array.isArray(sortOrder[0])
|
|
68
|
+
? sortOrder
|
|
69
|
+
: [sortOrder];
|
|
70
|
+
for (const sort of sortArray) {
|
|
71
|
+
if (sort[1] === col) {
|
|
72
|
+
return sort[0];
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return null;
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
isChecked(record) {
|
|
79
|
+
return this.selectedRecords$.pipe(take(1), map((selectedRecords) => {
|
|
80
|
+
return selectedRecords.includes(record.uniqueIdentifier);
|
|
81
|
+
}));
|
|
82
|
+
}
|
|
83
|
+
handleRecordSelectedChange(selected, record) {
|
|
84
|
+
if (!selected) {
|
|
85
|
+
this.selectionService.deselectRecords([record]);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
this.selectionService.selectRecords([record]);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
async toggleSelectAll() {
|
|
92
|
+
const records = await firstValueFrom(this.records$);
|
|
93
|
+
if (await firstValueFrom(this.isAllSelected())) {
|
|
94
|
+
this.selectionService.deselectRecords(records);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
this.selectionService.selectRecords(records);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
isAllSelected() {
|
|
101
|
+
return combineLatest([this.records$, this.selectedRecords$]).pipe(take(1), map(([records, selectedRecords]) => {
|
|
102
|
+
return records.every((record) => selectedRecords.includes(record.uniqueIdentifier));
|
|
103
|
+
}));
|
|
104
|
+
}
|
|
105
|
+
isSomeSelected() {
|
|
106
|
+
return combineLatest([this.records$, this.selectedRecords$]).pipe(take(1), map(([records, selectedRecords]) => {
|
|
107
|
+
const allSelected = records.every((record) => selectedRecords.includes(record.uniqueIdentifier));
|
|
108
|
+
const someSelected = records.some((record) => selectedRecords.includes(record.uniqueIdentifier));
|
|
109
|
+
return !allSelected && someSelected;
|
|
110
|
+
}));
|
|
111
|
+
}
|
|
112
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ResultsTableComponent, deps: [{ token: i1.SearchFacade }, { token: i2.SearchService }, { token: i3.SelectionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
113
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: ResultsTableComponent, isStandalone: true, selector: "gn-ui-results-table", outputs: { recordClick: "recordClick" }, ngImport: i0, template: "<gn-ui-interactive-table\n [items]=\"records$ | async\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <gn-ui-checkbox\n [checked]=\"isAllSelected() | async\"\n [indeterminate]=\"isSomeSelected() | async\"\n (changed)=\"toggleSelectAll()\"\n type=\"default\"\n class=\"-m-2 mr-3\"\n >\n </gn-ui-checkbox>\n </ng-template>\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item) | async\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword') | async\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.title }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 flex-shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 flex-shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"flex-shrink-0\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner') | async\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.author</span>\n </ng-template>\n <ng-template #cell let-item>\n <mat-icon class=\"material-symbols-outlined\">person</mat-icon>\n <span>{{ formatUserInfo(item.extras?.ownerInfo) }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.status }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate') | async\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.updatedOn</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ dateToString(item.recordUpdated) }}\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "ngmodule", type: UiInputsModule }, { kind: "component", type: i5.CheckboxComponent, selector: "gn-ui-checkbox", inputs: ["type", "checked", "indeterminate"], outputs: ["changed"] }, { kind: "component", type: InteractiveTableComponent, selector: "gn-ui-interactive-table", inputs: ["items"], outputs: ["itemClick"] }, { kind: "component", type: InteractiveTableColumnComponent, selector: "gn-ui-interactive-table-column", inputs: ["grow", "sortable", "activeSort"], outputs: ["sortChange"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i7.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }] }); }
|
|
114
|
+
}
|
|
115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: ResultsTableComponent, decorators: [{
|
|
116
|
+
type: Component,
|
|
117
|
+
args: [{ selector: 'gn-ui-results-table', standalone: true, imports: [
|
|
118
|
+
CommonModule,
|
|
119
|
+
UiInputsModule,
|
|
120
|
+
InteractiveTableComponent,
|
|
121
|
+
InteractiveTableColumnComponent,
|
|
122
|
+
MatIconModule,
|
|
123
|
+
TranslateModule,
|
|
124
|
+
], template: "<gn-ui-interactive-table\n [items]=\"records$ | async\"\n (itemClick)=\"handleRecordClick($event)\"\n>\n <!-- SELECTED COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <gn-ui-checkbox\n [checked]=\"isAllSelected() | async\"\n [indeterminate]=\"isSomeSelected() | async\"\n (changed)=\"toggleSelectAll()\"\n type=\"default\"\n class=\"-m-2 mr-3\"\n >\n </gn-ui-checkbox>\n </ng-template>\n <ng-template #cell let-item>\n <gn-ui-checkbox\n [checked]=\"isChecked(item) | async\"\n (changed)=\"handleRecordSelectedChange($event, item)\"\n class=\"-m-2\"\n type=\"default\"\n ></gn-ui-checkbox>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- TITLE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('resourceTitleObject.default.keyword') | async\"\n (sortChange)=\"setSortBy('resourceTitleObject.default.keyword', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.title</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.title }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- FORMATS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.formats</span>\n </ng-template>\n <ng-template #cell let-item>\n <div\n class=\"flex justify-start items-center gap-2\"\n *ngIf=\"getRecordFormats(item) as formats\"\n [title]=\"formats.join(', ')\"\n >\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 flex-shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[0])\"\n *ngIf=\"formats[0]\"\n >\n {{ formats[0] }}\n </span>\n <span\n class=\"badge-btn min-w-[45px] text-sm text-white px-2 flex-shrink-0\"\n [style.background-color]=\"getBadgeColor(formats[1])\"\n *ngIf=\"formats[1]\"\n >\n {{ formats[1] }}\n </span>\n <div class=\"flex-shrink-0\" *ngIf=\"formats.slice(2).length > 0\">\n <span>+{{ formats.slice(2).length }}</span>\n </div>\n </div>\n <div *ngIf=\"!getRecordFormats(item)\"></div>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- OWNER COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('recordOwner') | async\"\n (sortChange)=\"setSortBy('recordOwner', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.author</span>\n </ng-template>\n <ng-template #cell let-item>\n <mat-icon class=\"material-symbols-outlined\">person</mat-icon>\n <span>{{ formatUserInfo(item.extras?.ownerInfo) }}</span>\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- STATUS COLUMN -->\n <gn-ui-interactive-table-column>\n <ng-template #header>\n <span translate>record.metadata.status</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ item.status }}\n </ng-template>\n </gn-ui-interactive-table-column>\n\n <!-- UPDATE DATE COLUMN -->\n <gn-ui-interactive-table-column\n [sortable]=\"true\"\n [activeSort]=\"isSortedBy('changeDate') | async\"\n (sortChange)=\"setSortBy('changeDate', $event)\"\n >\n <ng-template #header>\n <span translate>record.metadata.updatedOn</span>\n </ng-template>\n <ng-template #cell let-item>\n {{ dateToString(item.recordUpdated) }}\n </ng-template>\n </gn-ui-interactive-table-column>\n</gn-ui-interactive-table>\n" }]
|
|
125
|
+
}], ctorParameters: function () { return [{ type: i1.SearchFacade }, { type: i2.SearchService }, { type: i3.SelectionService }]; }, propDecorators: { recordClick: [{
|
|
126
|
+
type: Output
|
|
127
|
+
}] } });
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdWx0cy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvc2VhcmNoL3NyYy9saWIvcmVzdWx0cy10YWJsZS9yZXN1bHRzLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9zZWFyY2gvc3JjL2xpYi9yZXN1bHRzLXRhYmxlL3Jlc3VsdHMtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRS9ELE9BQU8sRUFFTCxhQUFhLEVBQ2IsYUFBYSxFQUNiLGlCQUFpQixHQUNsQixNQUFNLHdDQUF3QyxDQUFBO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQTtBQUNyRSxPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLHlCQUF5QixHQUMxQixNQUFNLHNDQUFzQyxDQUFBO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFBO0FBQzVFLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFjLE1BQU0sTUFBTSxDQUFBO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRTFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTs7Ozs7Ozs7O0FBZ0IvRCxNQUFNLE9BQU8scUJBQXFCO0lBTWhDLFlBQ1UsWUFBMEIsRUFDMUIsYUFBNEIsRUFDNUIsZ0JBQWtDO1FBRmxDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFSbEMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQTtRQUV6RCxhQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUE7UUFDckMscUJBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLDJCQUEyQixDQUFBO0lBTWpFLENBQUM7SUFFSixZQUFZLENBQUMsSUFBVTtRQUNyQixPQUFPLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxTQUFTLEVBQUU7WUFDekMsSUFBSSxFQUFFLFNBQVM7WUFDZixLQUFLLEVBQUUsTUFBTTtZQUNiLEdBQUcsRUFBRSxTQUFTO1lBQ2QsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFNBQVMsQ0FBQyxnQkFBbUM7UUFDM0MsT0FBTyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUE7SUFDekQsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQXFCO1FBQ3BDLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLGVBQWUsSUFBSSxNQUFNLENBQUMsRUFBRTtZQUM3RCxPQUFPLEVBQUUsQ0FBQTtTQUNWO1FBQ0QsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FDeEIsSUFBSSxHQUFHLENBQ0wsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUN4RSxDQUNGLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDOUIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDbkUsT0FBTyxPQUFPLENBQUE7SUFDaEIsQ0FBQztJQUVELGNBQWMsQ0FBQyxRQUEwQjtRQUN2QyxNQUFNLEtBQUssR0FBRyxDQUFDLE9BQU8sUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDdkUsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDL0IsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtTQUNqQztRQUNELE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUM7SUFFRCxhQUFhLENBQUMsTUFBa0I7UUFDOUIsT0FBTyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDOUIsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBQWE7UUFDN0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBcUIsQ0FBQyxDQUFBO0lBQzlDLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBVyxFQUFFLEtBQXFCO1FBQzFDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNuQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDaEIsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLENBQUMsQ0FBRSxTQUF5QjtnQkFDNUIsQ0FBQyxDQUFFLENBQUMsU0FBUyxDQUFpQixDQUFBO1lBQ2hDLEtBQUssTUFBTSxJQUFJLElBQUksU0FBUyxFQUFFO2dCQUM1QixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7b0JBQ25CLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO2lCQUNmO2FBQ0Y7WUFDRCxPQUFPLElBQUksQ0FBQTtRQUNiLENBQUMsQ0FBQyxDQUNILENBQUE7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQXFCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FDL0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUFFO1lBQ3RCLE9BQU8sZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUMxRCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVELDBCQUEwQixDQUFDLFFBQWlCLEVBQUUsTUFBcUI7UUFDakUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNiLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO1NBQ2hEO2FBQU07WUFDTCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtTQUM5QztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZTtRQUNuQixNQUFNLE9BQU8sR0FBRyxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDbkQsSUFBSSxNQUFNLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBRTtZQUM5QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQy9DO2FBQU07WUFDTCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQzdDO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQy9ELElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsRUFBRSxFQUFFO1lBQ2pDLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQzlCLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQ2xELENBQUE7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQy9ELElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsRUFBRSxFQUFFO1lBQ2pDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUMzQyxlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUNsRCxDQUFBO1lBQ0QsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQzNDLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQ2xELENBQUE7WUFDRCxPQUFPLENBQUMsV0FBVyxJQUFJLFlBQVksQ0FBQTtRQUNyQyxDQUFDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQzs4R0E3SFUscUJBQXFCO2tHQUFyQixxQkFBcUIsd0hDckNsQyxxbEhBZ0hBLHlERG5GSSxZQUFZLHVMQUNaLGNBQWMsa0xBQ2QseUJBQXlCLCtHQUN6QiwrQkFBK0IsK0lBQy9CLGFBQWEsbUxBQ2IsZUFBZTs7MkZBR04scUJBQXFCO2tCQWRqQyxTQUFTOytCQUNFLHFCQUFxQixjQUduQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLHlCQUF5Qjt3QkFDekIsK0JBQStCO3dCQUMvQixhQUFhO3dCQUNiLGVBQWU7cUJBQ2hCOzhKQUdTLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IENhdGFsb2dSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBGaWxlRm9ybWF0LFxuICBnZXRCYWRnZUNvbG9yLFxuICBnZXRGaWxlRm9ybWF0LFxuICBnZXRGb3JtYXRQcmlvcml0eSxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQgeyBVaUlucHV0c01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7XG4gIEludGVyYWN0aXZlVGFibGVDb2x1bW5Db21wb25lbnQsXG4gIEludGVyYWN0aXZlVGFibGVDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYydcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IFNlYXJjaEZhY2FkZSB9IGZyb20gJy4uL3N0YXRlL3NlYXJjaC5mYWNhZGUnXG5pbXBvcnQgeyBTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvcmVwb3NpdG9yeS9zcmMnXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IEZpZWxkU29ydCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3NlYXJjaCdcbmltcG9ydCB7IFNlYXJjaFNlcnZpY2UgfSBmcm9tICcuLi91dGlscy9zZXJ2aWNlL3NlYXJjaC5zZXJ2aWNlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1yZXN1bHRzLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc3VsdHMtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZXN1bHRzLXRhYmxlLmNvbXBvbmVudC5jc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBVaUlucHV0c01vZHVsZSxcbiAgICBJbnRlcmFjdGl2ZVRhYmxlQ29tcG9uZW50LFxuICAgIEludGVyYWN0aXZlVGFibGVDb2x1bW5Db21wb25lbnQsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFJlc3VsdHNUYWJsZUNvbXBvbmVudCB7XG4gIEBPdXRwdXQoKSByZWNvcmRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q2F0YWxvZ1JlY29yZD4oKVxuXG4gIHJlY29yZHMkID0gdGhpcy5zZWFyY2hGYWNhZGUucmVzdWx0cyRcbiAgc2VsZWN0ZWRSZWNvcmRzJCA9IHRoaXMuc2VsZWN0aW9uU2VydmljZS5zZWxlY3RlZFJlY29yZHNJZGVudGlmaWVycyRcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNlYXJjaEZhY2FkZTogU2VhcmNoRmFjYWRlLFxuICAgIHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSxcbiAgICBwcml2YXRlIHNlbGVjdGlvblNlcnZpY2U6IFNlbGVjdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIGRhdGVUb1N0cmluZyhkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZGF0ZT8udG9Mb2NhbGVEYXRlU3RyaW5nKHVuZGVmaW5lZCwge1xuICAgICAgeWVhcjogJ251bWVyaWMnLFxuICAgICAgbW9udGg6ICdsb25nJyxcbiAgICAgIGRheTogJ251bWVyaWMnLFxuICAgICAgdGltZVpvbmU6ICdVVEMnLFxuICAgIH0pXG4gIH1cblxuICBnZXRTdGF0dXMoaXNQdWJsaXNoZWRUb0FsbDogYm9vbGVhbiB8IHVua25vd24pIHtcbiAgICByZXR1cm4gaXNQdWJsaXNoZWRUb0FsbCA/ICdwdWJsaXNoZWQnIDogJ25vdCBwdWJsaXNoZWQnXG4gIH1cblxuICBnZXRSZWNvcmRGb3JtYXRzKHJlY29yZDogQ2F0YWxvZ1JlY29yZCk6IEZpbGVGb3JtYXRbXSB7XG4gICAgaWYgKHJlY29yZC5raW5kID09PSAnc2VydmljZScgfHwgISgnZGlzdHJpYnV0aW9ucycgaW4gcmVjb3JkKSkge1xuICAgICAgcmV0dXJuIFtdXG4gICAgfVxuICAgIGNvbnN0IGZvcm1hdHMgPSBBcnJheS5mcm9tKFxuICAgICAgbmV3IFNldChcbiAgICAgICAgcmVjb3JkLmRpc3RyaWJ1dGlvbnMubWFwKChkaXN0cmlidXRpb24pID0+IGdldEZpbGVGb3JtYXQoZGlzdHJpYnV0aW9uKSlcbiAgICAgIClcbiAgICApLmZpbHRlcigoZm9ybWF0KSA9PiAhIWZvcm1hdClcbiAgICBmb3JtYXRzLnNvcnQoKGEsIGIpID0+IGdldEZvcm1hdFByaW9yaXR5KGIpIC0gZ2V0Rm9ybWF0UHJpb3JpdHkoYSkpXG4gICAgcmV0dXJuIGZvcm1hdHNcbiAgfVxuXG4gIGZvcm1hdFVzZXJJbmZvKHVzZXJJbmZvOiBzdHJpbmcgfCB1bmtub3duKTogc3RyaW5nIHtcbiAgICBjb25zdCBpbmZvcyA9ICh0eXBlb2YgdXNlckluZm8gPT09ICdzdHJpbmcnID8gdXNlckluZm8gOiAnJykuc3BsaXQoJ3wnKVxuICAgIGlmIChpbmZvcyAmJiBpbmZvcy5sZW5ndGggPT09IDQpIHtcbiAgICAgIHJldHVybiBgJHtpbmZvc1syXX0gJHtpbmZvc1sxXX1gXG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuXG4gIGdldEJhZGdlQ29sb3IoZm9ybWF0OiBGaWxlRm9ybWF0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gZ2V0QmFkZ2VDb2xvcihmb3JtYXQpXG4gIH1cblxuICBoYW5kbGVSZWNvcmRDbGljayhpdGVtOiB1bmtub3duKSB7XG4gICAgdGhpcy5yZWNvcmRDbGljay5lbWl0KGl0ZW0gYXMgQ2F0YWxvZ1JlY29yZClcbiAgfVxuXG4gIHNldFNvcnRCeShjb2w6IHN0cmluZywgb3JkZXI6ICdhc2MnIHwgJ2Rlc2MnKSB7XG4gICAgdGhpcy5zZWFyY2hTZXJ2aWNlLnNldFNvcnRCeShbb3JkZXIsIGNvbF0pXG4gIH1cblxuICBpc1NvcnRlZEJ5KGNvbDogc3RyaW5nKTogT2JzZXJ2YWJsZTwnYXNjJyB8ICdkZXNjJyB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hGYWNhZGUuc29ydEJ5JC5waXBlKFxuICAgICAgdGFrZSgxKSxcbiAgICAgIG1hcCgoc29ydE9yZGVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHNvcnRBcnJheSA9IEFycmF5LmlzQXJyYXkoc29ydE9yZGVyWzBdKVxuICAgICAgICAgID8gKHNvcnRPcmRlciBhcyBGaWVsZFNvcnRbXSlcbiAgICAgICAgICA6IChbc29ydE9yZGVyXSBhcyBGaWVsZFNvcnRbXSlcbiAgICAgICAgZm9yIChjb25zdCBzb3J0IG9mIHNvcnRBcnJheSkge1xuICAgICAgICAgIGlmIChzb3J0WzFdID09PSBjb2wpIHtcbiAgICAgICAgICAgIHJldHVybiBzb3J0WzBdXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGlzQ2hlY2tlZChyZWNvcmQ6IENhdGFsb2dSZWNvcmQpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFJlY29yZHMkLnBpcGUoXG4gICAgICB0YWtlKDEpLFxuICAgICAgbWFwKChzZWxlY3RlZFJlY29yZHMpID0+IHtcbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkUmVjb3Jkcy5pbmNsdWRlcyhyZWNvcmQudW5pcXVlSWRlbnRpZmllcilcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgaGFuZGxlUmVjb3JkU2VsZWN0ZWRDaGFuZ2Uoc2VsZWN0ZWQ6IGJvb2xlYW4sIHJlY29yZDogQ2F0YWxvZ1JlY29yZCkge1xuICAgIGlmICghc2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uU2VydmljZS5kZXNlbGVjdFJlY29yZHMoW3JlY29yZF0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uU2VydmljZS5zZWxlY3RSZWNvcmRzKFtyZWNvcmRdKVxuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHRvZ2dsZVNlbGVjdEFsbCgpIHtcbiAgICBjb25zdCByZWNvcmRzID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5yZWNvcmRzJClcbiAgICBpZiAoYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5pc0FsbFNlbGVjdGVkKCkpKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvblNlcnZpY2UuZGVzZWxlY3RSZWNvcmRzKHJlY29yZHMpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uU2VydmljZS5zZWxlY3RSZWNvcmRzKHJlY29yZHMpXG4gICAgfVxuICB9XG5cbiAgaXNBbGxTZWxlY3RlZCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbdGhpcy5yZWNvcmRzJCwgdGhpcy5zZWxlY3RlZFJlY29yZHMkXSkucGlwZShcbiAgICAgIHRha2UoMSksXG4gICAgICBtYXAoKFtyZWNvcmRzLCBzZWxlY3RlZFJlY29yZHNdKSA9PiB7XG4gICAgICAgIHJldHVybiByZWNvcmRzLmV2ZXJ5KChyZWNvcmQpID0+XG4gICAgICAgICAgc2VsZWN0ZWRSZWNvcmRzLmluY2x1ZGVzKHJlY29yZC51bmlxdWVJZGVudGlmaWVyKVxuICAgICAgICApXG4gICAgICB9KVxuICAgIClcbiAgfVxuXG4gIGlzU29tZVNlbGVjdGVkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFt0aGlzLnJlY29yZHMkLCB0aGlzLnNlbGVjdGVkUmVjb3JkcyRdKS5waXBlKFxuICAgICAgdGFrZSgxKSxcbiAgICAgIG1hcCgoW3JlY29yZHMsIHNlbGVjdGVkUmVjb3Jkc10pID0+IHtcbiAgICAgICAgY29uc3QgYWxsU2VsZWN0ZWQgPSByZWNvcmRzLmV2ZXJ5KChyZWNvcmQpID0+XG4gICAgICAgICAgc2VsZWN0ZWRSZWNvcmRzLmluY2x1ZGVzKHJlY29yZC51bmlxdWVJZGVudGlmaWVyKVxuICAgICAgICApXG4gICAgICAgIGNvbnN0IHNvbWVTZWxlY3RlZCA9IHJlY29yZHMuc29tZSgocmVjb3JkKSA9PlxuICAgICAgICAgIHNlbGVjdGVkUmVjb3Jkcy5pbmNsdWRlcyhyZWNvcmQudW5pcXVlSWRlbnRpZmllcilcbiAgICAgICAgKVxuICAgICAgICByZXR1cm4gIWFsbFNlbGVjdGVkICYmIHNvbWVTZWxlY3RlZFxuICAgICAgfSlcbiAgICApXG4gIH1cbn1cbiIsIjxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZVxuICBbaXRlbXNdPVwicmVjb3JkcyQgfCBhc3luY1wiXG4gIChpdGVtQ2xpY2spPVwiaGFuZGxlUmVjb3JkQ2xpY2soJGV2ZW50KVwiXG4+XG4gIDwhLS0gU0VMRUNURUQgQ09MVU1OIC0tPlxuICA8Z24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgPGduLXVpLWNoZWNrYm94XG4gICAgICAgIFtjaGVja2VkXT1cImlzQWxsU2VsZWN0ZWQoKSB8IGFzeW5jXCJcbiAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwiaXNTb21lU2VsZWN0ZWQoKSB8IGFzeW5jXCJcbiAgICAgICAgKGNoYW5nZWQpPVwidG9nZ2xlU2VsZWN0QWxsKClcIlxuICAgICAgICB0eXBlPVwiZGVmYXVsdFwiXG4gICAgICAgIGNsYXNzPVwiLW0tMiBtci0zXCJcbiAgICAgID5cbiAgICAgIDwvZ24tdWktY2hlY2tib3g+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LWl0ZW0+XG4gICAgICA8Z24tdWktY2hlY2tib3hcbiAgICAgICAgW2NoZWNrZWRdPVwiaXNDaGVja2VkKGl0ZW0pIHwgYXN5bmNcIlxuICAgICAgICAoY2hhbmdlZCk9XCJoYW5kbGVSZWNvcmRTZWxlY3RlZENoYW5nZSgkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgY2xhc3M9XCItbS0yXCJcbiAgICAgICAgdHlwZT1cImRlZmF1bHRcIlxuICAgICAgPjwvZ24tdWktY2hlY2tib3g+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9nbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4+XG5cbiAgPCEtLSBUSVRMRSBDT0xVTU4gLS0+XG4gIDxnbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW5cbiAgICBbc29ydGFibGVdPVwidHJ1ZVwiXG4gICAgW2FjdGl2ZVNvcnRdPVwiaXNTb3J0ZWRCeSgncmVzb3VyY2VUaXRsZU9iamVjdC5kZWZhdWx0LmtleXdvcmQnKSB8IGFzeW5jXCJcbiAgICAoc29ydENoYW5nZSk9XCJzZXRTb3J0QnkoJ3Jlc291cmNlVGl0bGVPYmplY3QuZGVmYXVsdC5rZXl3b3JkJywgJGV2ZW50KVwiXG4gID5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEudGl0bGU8L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LWl0ZW0+XG4gICAgICB7eyBpdGVtLnRpdGxlIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9nbi11aS1pbnRlcmFjdGl2ZS10YWJsZS1jb2x1bW4+XG5cbiAgPCEtLSBGT1JNQVRTIENPTFVNTiAtLT5cbiAgPGduLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEuZm9ybWF0czwvc3Bhbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjY2VsbCBsZXQtaXRlbT5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmbGV4IGp1c3RpZnktc3RhcnQgaXRlbXMtY2VudGVyIGdhcC0yXCJcbiAgICAgICAgKm5nSWY9XCJnZXRSZWNvcmRGb3JtYXRzKGl0ZW0pIGFzIGZvcm1hdHNcIlxuICAgICAgICBbdGl0bGVdPVwiZm9ybWF0cy5qb2luKCcsICcpXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImJhZGdlLWJ0biBtaW4tdy1bNDVweF0gdGV4dC1zbSB0ZXh0LXdoaXRlIHB4LTIgZmxleC1zaHJpbmstMFwiXG4gICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZ2V0QmFkZ2VDb2xvcihmb3JtYXRzWzBdKVwiXG4gICAgICAgICAgKm5nSWY9XCJmb3JtYXRzWzBdXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGZvcm1hdHNbMF0gfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwiYmFkZ2UtYnRuIG1pbi13LVs0NXB4XSB0ZXh0LXNtIHRleHQtd2hpdGUgcHgtMiBmbGV4LXNocmluay0wXCJcbiAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJnZXRCYWRnZUNvbG9yKGZvcm1hdHNbMV0pXCJcbiAgICAgICAgICAqbmdJZj1cImZvcm1hdHNbMV1cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgZm9ybWF0c1sxXSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNocmluay0wXCIgKm5nSWY9XCJmb3JtYXRzLnNsaWNlKDIpLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICA8c3Bhbj4re3sgZm9ybWF0cy5zbGljZSgyKS5sZW5ndGggfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiIWdldFJlY29yZEZvcm1hdHMoaXRlbSlcIj48L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2duLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cblxuICA8IS0tIE9XTkVSIENPTFVNTiAtLT5cbiAgPGduLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtblxuICAgIFtzb3J0YWJsZV09XCJ0cnVlXCJcbiAgICBbYWN0aXZlU29ydF09XCJpc1NvcnRlZEJ5KCdyZWNvcmRPd25lcicpIHwgYXN5bmNcIlxuICAgIChzb3J0Q2hhbmdlKT1cInNldFNvcnRCeSgncmVjb3JkT3duZXInLCAkZXZlbnQpXCJcbiAgPlxuICAgIDxuZy10ZW1wbGF0ZSAjaGVhZGVyPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPnJlY29yZC5tZXRhZGF0YS5hdXRob3I8L3NwYW4+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2NlbGwgbGV0LWl0ZW0+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCI+cGVyc29uPC9tYXQtaWNvbj5cbiAgICAgIDxzcGFuPnt7IGZvcm1hdFVzZXJJbmZvKGl0ZW0uZXh0cmFzPy5vd25lckluZm8pIH19PC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGUtY29sdW1uPlxuXG4gIDwhLS0gU1RBVFVTIENPTFVNTiAtLT5cbiAgPGduLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEuc3RhdHVzPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1pdGVtPlxuICAgICAge3sgaXRlbS5zdGF0dXMgfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2duLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cblxuICA8IS0tIFVQREFURSBEQVRFIENPTFVNTiAtLT5cbiAgPGduLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtblxuICAgIFtzb3J0YWJsZV09XCJ0cnVlXCJcbiAgICBbYWN0aXZlU29ydF09XCJpc1NvcnRlZEJ5KCdjaGFuZ2VEYXRlJykgfCBhc3luY1wiXG4gICAgKHNvcnRDaGFuZ2UpPVwic2V0U29ydEJ5KCdjaGFuZ2VEYXRlJywgJGV2ZW50KVwiXG4gID5cbiAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5yZWNvcmQubWV0YWRhdGEudXBkYXRlZE9uPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNjZWxsIGxldC1pdGVtPlxuICAgICAge3sgZGF0ZVRvU3RyaW5nKGl0ZW0ucmVjb3JkVXBkYXRlZCkgfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2duLXVpLWludGVyYWN0aXZlLXRhYmxlLWNvbHVtbj5cbjwvZ24tdWktaW50ZXJhY3RpdmUtdGFibGU+XG4iXX0=
|
|
@@ -6,7 +6,7 @@ import { catchError, map, shareReplay, switchMap, take, withLatestFrom, } from '
|
|
|
6
6
|
import { AddResults, ClearError, ClearResults, Paginate, PAGINATE, PatchResultsAggregations, REQUEST_MORE_ON_AGGREGATION, REQUEST_MORE_RESULTS, REQUEST_NEW_RESULTS, RequestNewResults, SET_FAVORITES_ONLY, SET_FILTERS, SET_INCLUDE_ON_AGGREGATION, SET_PAGE_SIZE, SET_SEARCH, SET_SORT_BY, SET_SPATIAL_FILTER_ENABLED, SetError, SetResultsAggregations, SetResultsHits, UPDATE_FILTERS, } from './actions';
|
|
7
7
|
import { getSearchStateSearch } from './selectors';
|
|
8
8
|
import { switchMapWithSearchId } from '../utils/operators/search.operator';
|
|
9
|
-
import { FILTER_GEOMETRY } from '../
|
|
9
|
+
import { FILTER_GEOMETRY } from '../filter-geometry.token';
|
|
10
10
|
import { RecordsRepositoryInterface } from '../../../../../../libs/common/domain/src/lib/repository/records-repository.interface';
|
|
11
11
|
import { FavoritesService } from '../../../../../../libs/api/repository/src';
|
|
12
12
|
import { PlatformServiceInterface } from '../../../../../../libs/common/domain/src/lib/platform.service.interface';
|
|
@@ -45,9 +45,11 @@ export class SearchEffects {
|
|
|
45
45
|
// I could not get this to work (maybe a bug in rxjs?)
|
|
46
46
|
switchMap(([, state]) => this.favoritesService.myFavoritesUuid$.pipe(take(1), map((favorites) => [state, favorites]))), switchMap(([state, favorites]) => {
|
|
47
47
|
if (!state.params.useSpatialFilter || !this.filterGeometry$) {
|
|
48
|
-
return of([state, favorites,
|
|
48
|
+
return of([state, favorites, undefined]);
|
|
49
49
|
}
|
|
50
50
|
return this.filterGeometry$.pipe(tap((geom) => {
|
|
51
|
+
if (!geom)
|
|
52
|
+
return;
|
|
51
53
|
try {
|
|
52
54
|
const trace = validGeoJson(geom, true);
|
|
53
55
|
if (trace?.length > 0) {
|
|
@@ -59,7 +61,7 @@ export class SearchEffects {
|
|
|
59
61
|
throw new Error();
|
|
60
62
|
}
|
|
61
63
|
}), map((geom) => [state, favorites, geom]), catchError((e) => {
|
|
62
|
-
return of([state, favorites,
|
|
64
|
+
return of([state, favorites, undefined]);
|
|
63
65
|
}));
|
|
64
66
|
}), switchMap(([state, favorites, geometry]) => {
|
|
65
67
|
const { currentPage, pageSize, sort } = state.params;
|
|
@@ -119,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
119
121
|
type: Inject,
|
|
120
122
|
args: [FILTER_GEOMETRY]
|
|
121
123
|
}] }]; } });
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9zZWFyY2gvc3JjL2xpYi9zdGF0ZS9lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDN0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDN0UsT0FBTyxFQUNMLFVBQVUsRUFDVixHQUFHLEVBQ0gsV0FBVyxFQUNYLFNBQVMsRUFDVCxJQUFJLEVBQ0osY0FBYyxHQUNmLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUNMLFVBQVUsRUFDVixVQUFVLEVBQ1YsWUFBWSxFQUNaLFFBQVEsRUFDUixRQUFRLEVBQ1Isd0JBQXdCLEVBQ3hCLDJCQUEyQixFQUMzQixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBRW5CLGlCQUFpQixFQUVqQixrQkFBa0IsRUFDbEIsV0FBVyxFQUNYLDBCQUEwQixFQUMxQixhQUFhLEVBQ2IsVUFBVSxFQUNWLFdBQVcsRUFDWCwwQkFBMEIsRUFDMUIsUUFBUSxFQUVSLHNCQUFzQixFQUN0QixjQUFjLEVBQ2QsY0FBYyxHQUNmLE1BQU0sV0FBVyxDQUFBO0FBRWxCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUVsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUUxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0s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LENBQUMsSUFBSSxDQUN2QixNQUFNLENBQ0osMEJBQTBCLEVBQzFCLDJCQUEyQixDQUM1QixFQUNELFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ25CLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUMvQixjQUFjLENBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUMxRCxFQUNELFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQ3RCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUM7Z0JBQy9CLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxFQUN0QixLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDO2FBQ3BELENBQUMsQ0FDSCxFQUNELEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO2dCQUNuQixPQUFPLElBQUksd0JBQXdCLENBQ2pDLE1BQU0sQ0FBQyxlQUFlLEVBQ3RCLFlBQVksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEVBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQ1YsQ0FBQTtZQUNILENBQUMsQ0FBQyxDQUNILENBQ0YsQ0FBQyw0QkFBNEI7YUFDL0IsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFBO0lBdktDLENBQUM7OEdBZE8sYUFBYSxnTEFZZCxlQUFlO2tIQVpkLGFBQWE7OzJGQUFiLGFBQWE7a0JBRHpCLFVBQVU7OzBCQVlOLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJ1xuaW1wb3J0IHsgc2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJ1xuaW1wb3J0IHsgYnVmZmVyLCBjb21iaW5lTGF0ZXN0V2l0aCwgZGVib3VuY2VUaW1lLCBmcm9tLCBvZiwgdGFwIH0gZnJvbSAncnhqcydcbmltcG9ydCB7XG4gIGNhdGNoRXJyb3IsXG4gIG1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHtcbiAgQWRkUmVzdWx0cyxcbiAgQ2xlYXJFcnJvcixcbiAgQ2xlYXJSZXN1bHRzLFxuICBQYWdpbmF0ZSxcbiAgUEFHSU5BVEUsXG4gIFBhdGNoUmVzdWx0c0FnZ3JlZ2F0aW9ucyxcbiAgUkVRVUVTVF9NT1JFX09OX0FHR1JFR0FUSU9OLFxuICBSRVFVRVNUX01PUkVfUkVTVUxUUyxcbiAgUkVRVUVTVF9ORVdfUkVTVUxUUyxcbiAgUmVxdWVzdE1vcmVPbkFnZ3JlZ2F0aW9uLFxuICBSZXF1ZXN0TmV3UmVzdWx0cyxcbiAgU2VhcmNoQWN0aW9ucyxcbiAgU0VUX0ZBVk9SSVRFU19PTkxZLFxuICBTRVRfRklMVEVSUyxcbiAgU0VUX0lOQ0xVREVfT05fQUdHUkVHQVRJT04sXG4gIFNFVF9QQUdFX1NJWkUsXG4gIFNFVF9TRUFSQ0gsXG4gIFNFVF9TT1JUX0JZLFxuICBTRVRfU1BBVElBTF9GSUxURVJfRU5BQkxFRCxcbiAgU2V0RXJyb3IsXG4gIFNldEluY2x1ZGVPbkFnZ3JlZ2F0aW9uLFxuICBTZXRSZXN1bHRzQWdncmVnYXRpb25zLFxuICBTZXRSZXN1bHRzSGl0cyxcbiAgVVBEQVRFX0ZJTFRFUlMsXG59IGZyb20gJy4vYWN0aW9ucydcbmltcG9ydCB7IFNlYXJjaFN0YXRlLCBTZWFyY2hTdGF0ZVNlYXJjaCB9IGZyb20gJy4vcmVkdWNlcidcbmltcG9ydCB7IGdldFNlYXJjaFN0YXRlU2VhcmNoIH0gZnJvbSAnLi9zZWxlY3RvcnMnXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xuaW1wb3J0IHsgc3dpdGNoTWFwV2l0aFNlYXJjaElkIH0gZnJvbSAnLi4vdXRpbHMvb3BlcmF0b3JzL3NlYXJjaC5vcGVyYXRvcidcbmltcG9ydCB7IEdlb21ldHJ5IH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7IEZJTFRFUl9HRU9NRVRSWSB9IGZyb20gJy4uL2ZlYXR1cmUtc2VhcmNoLm1vZHVsZSdcbmltcG9ydCB7IFJlY29yZHNSZXBvc2l0b3J5SW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvcmVwb3NpdG9yeS9yZWNvcmRzLXJlcG9zaXRvcnkuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgRmF2b3JpdGVzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3JlcG9zaXRvcnkvc3JjJ1xuaW1wb3J0IHsgUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvcGxhdGZvcm0uc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyB2YWxpZCBhcyB2YWxpZEdlb0pzb24gfSBmcm9tICdnZW9qc29uLXZhbGlkYXRpb24nXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTZWFyY2hFZmZlY3RzIHtcbiAgZmlsdGVyR2VvbWV0cnkkID0gdGhpcy5maWx0ZXJHZW9tZXRyeVxuICAgID8gZnJvbSh0aGlzLmZpbHRlckdlb21ldHJ5KS5waXBlKHNoYXJlUmVwbGF5KCkpXG4gICAgOiB1bmRlZmluZWRcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLFxuICAgIHByaXZhdGUgc3RvcmUkOiBTdG9yZTxTZWFyY2hTdGF0ZT4sXG4gICAgcHJpdmF0ZSByZWNvcmRzUmVwb3NpdG9yeTogUmVjb3Jkc1JlcG9zaXRvcnlJbnRlcmZhY2UsXG4gICAgcHJpdmF0ZSBmYXZvcml0ZXNTZXJ2aWNlOiBGYXZvcml0ZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGxhdGZvcm1TZXJ2aWNlOiBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KEZJTFRFUl9HRU9NRVRSWSlcbiAgICBwcml2YXRlIGZpbHRlckdlb21ldHJ5OiBQcm9taXNlPEdlb21ldHJ5PlxuICApIHt9XG5cbiAgcmVzZXRQYWdpbmF0aW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShcbiAgICAgICAgU0VUX0ZJTFRFUlMsXG4gICAgICAgIFVQREFURV9GSUxURVJTLFxuICAgICAgICBTRVRfU0VBUkNILFxuICAgICAgICBTRVRfRkFWT1JJVEVTX09OTFksXG4gICAgICAgIFNFVF9TUEFUSUFMX0ZJTFRFUl9FTkFCTEVEXG4gICAgICApLFxuICAgICAgbWFwKChhY3Rpb246IFNlYXJjaEFjdGlvbnMpID0+IG5ldyBQYWdpbmF0ZSgxLCBhY3Rpb24uaWQpKVxuICAgIClcbiAgKVxuXG4gIHByaXZhdGUgYWN0aW9uc1dpdGhOZXdSZXN1bHRzJCA9IHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUoXG4gICAgICBTRVRfU09SVF9CWSxcbiAgICAgIFNFVF9GSUxURVJTLFxuICAgICAgVVBEQVRFX0ZJTFRFUlMsXG4gICAgICBTRVRfU0VBUkNILFxuICAgICAgU0VUX0ZBVk9SSVRFU19PTkxZLFxuICAgICAgU0VUX1NQQVRJQUxfRklMVEVSX0VOQUJMRUQsXG4gICAgICBQQUdJTkFURSxcbiAgICAgIFNFVF9QQUdFX1NJWkVcbiAgICApXG4gIClcblxuICByZXF1ZXN0TmV3UmVzdWx0cyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnNXaXRoTmV3UmVzdWx0cyQucGlwZShcbiAgICAgIC8vIHRoaXMgd2lsbCBhZ2dyZWdhdGUgYWN0aW9ucyB1bnRpbCB0aGUgZGVib3VuY2VUaW1lIHRpY2tzXG4gICAgICBidWZmZXIodGhpcy5hY3Rpb25zV2l0aE5ld1Jlc3VsdHMkLnBpcGUoZGVib3VuY2VUaW1lKDApKSksXG4gICAgICBzd2l0Y2hNYXAoKGFjdGlvbnM6IFNlYXJjaEFjdGlvbnNbXSkgPT4ge1xuICAgICAgICAvLyBvbmNlIHdlIGhhdmUgYSBsaXN0IG9mIGFjdGlvbnMgZW1pdHRlZCBzaW5jZSBsYXN0IHRpbWUsIHdlIGNhbiBzcGxpdCB0aGVtIGJ5IHNlYXJjaCBpZFxuICAgICAgICBjb25zdCByZXF1ZXN0TmV3UmVzdWx0cyA9IGFjdGlvbnNcbiAgICAgICAgICAubWFwKChhY3Rpb24pID0+IGFjdGlvbi5pZClcbiAgICAgICAgICAuZmlsdGVyKCh2YWx1ZSwgaW5kZXgsIGFycmF5KSA9PiBhcnJheS5pbmRleE9mKHZhbHVlKSA9PT0gaW5kZXgpXG4gICAgICAgICAgLm1hcCgoc2VhcmNoSWQpID0+IG5ldyBSZXF1ZXN0TmV3UmVzdWx0cyhzZWFyY2hJZCkpXG4gICAgICAgIHJldHVybiBvZiguLi5yZXF1ZXN0TmV3UmVzdWx0cylcbiAgICAgIH0pXG4gICAgKVxuICApXG5cbiAgbG9hZFJlc3VsdHMkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFJFUVVFU1RfTU9SRV9SRVNVTFRTLCBSRVFVRVNUX05FV19SRVNVTFRTKSxcbiAgICAgIHN3aXRjaE1hcFdpdGhTZWFyY2hJZCgoYWN0aW9uOiBTZWFyY2hBY3Rpb25zKSA9PlxuICAgICAgICB0aGlzLnBsYXRmb3JtU2VydmljZS5nZXRNZSgpLnBpcGUoXG4gICAgICAgICAgd2l0aExhdGVzdEZyb20oXG4gICAgICAgICAgICB0aGlzLnN0b3JlJC5waXBlKHNlbGVjdChnZXRTZWFyY2hTdGF0ZVNlYXJjaCwgYWN0aW9uLmlkKSlcbiAgICAgICAgICApLFxuICAgICAgICAgIC8vIE5vdGU6IHRoaXMgY291bGQgaGF2ZSBiZWVuIGludGVncmF0ZWQgaW4gd2l0aExhdGVzdEZyb20gYWJvdmUgYnV0XG4gICAgICAgICAgLy8gSSBjb3VsZCBub3QgZ2V0IHRoaXMgdG8gd29yayAobWF5YmUgYSBidWcgaW4gcnhqcz8pXG4gICAgICAgICAgc3dpdGNoTWFwKChbLCBzdGF0ZV0pID0+XG4gICAgICAgICAgICB0aGlzLmZhdm9yaXRlc1NlcnZpY2UubXlGYXZvcml0ZXNVdWlkJC5waXBlKFxuICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgKGZhdm9yaXRlcykgPT5cbiAgICAgICAgICAgICAgICAgIFtzdGF0ZSwgZmF2b3JpdGVzXSBhcyBbU2VhcmNoU3RhdGVTZWFyY2gsIHN0cmluZ1tdXVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgKSxcbiAgICAgICAgICBzd2l0Y2hNYXAoKFtzdGF0ZSwgZmF2b3JpdGVzXSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFzdGF0ZS5wYXJhbXMudXNlU3BhdGlhbEZpbHRlciB8fCAhdGhpcy5maWx0ZXJHZW9tZXRyeSQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKFtzdGF0ZSwgZmF2b3JpdGVzLCBudWxsXSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZpbHRlckdlb21ldHJ5JC5waXBlKFxuICAgICAgICAgICAgICB0YXAoKGdlb20pID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgdHJhY2UgPSB2YWxpZEdlb0pzb24oZ2VvbSwgdHJ1ZSkgYXMgc3RyaW5nW11cbiAgICAgICAgICAgICAgICAgIGlmICh0cmFjZT8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IodHJhY2Uuam9pbignXFxuJykpXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAgICAgJ0Vycm9yIHdoaWxlIHBhcnNpbmcgdGhlIGdlb21ldHJ5IGZpbHRlclxcbicsXG4gICAgICAgICAgICAgICAgICAgIGVycm9yXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIG1hcCgoZ2VvbSkgPT4gW3N0YXRlLCBmYXZvcml0ZXMsIGdlb21dKSxcbiAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBvZihbc3RhdGUsIGZhdm9yaXRlcywgbnVsbF0pXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgfSksXG4gICAgICAgICAgc3dpdGNoTWFwKFxuICAgICAgICAgICAgKFtzdGF0ZSwgZmF2b3JpdGVzLCBnZW9tZXRyeV06IFtcbiAgICAgICAgICAgICAgU2VhcmNoU3RhdGVTZWFyY2gsXG4gICAgICAgICAgICAgIHN0cmluZ1tdLFxuICAgICAgICAgICAgICBHZW9tZXRyeSB8IG51bGxcbiAgICAgICAgICAgIF0pID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgeyBjdXJyZW50UGFnZSwgcGFnZVNpemUsIHNvcnQgfSA9IHN0YXRlLnBhcmFtc1xuICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJzID0ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLmNvbmZpZy5maWx0ZXJzLFxuICAgICAgICAgICAgICAgIC4uLnN0YXRlLnBhcmFtcy5maWx0ZXJzLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMkID0gdGhpcy5yZWNvcmRzUmVwb3NpdG9yeS5zZWFyY2goe1xuICAgICAgICAgICAgICAgIGZpbHRlcnMsXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiBjdXJyZW50UGFnZSAqIHBhZ2VTaXplLFxuICAgICAgICAgICAgICAgIGxpbWl0OiBwYWdlU2l6ZSxcbiAgICAgICAgICAgICAgICBzb3J0LFxuICAgICAgICAgICAgICAgIGZpZWxkczogc3RhdGUuY29uZmlnLnNvdXJjZSxcbiAgICAgICAgICAgICAgICBmaWx0ZXJJZHM6XG4gICAgICAgICAgICAgICAgICBzdGF0ZS5wYXJhbXMuZmF2b3JpdGVzT25seSAmJiBmYXZvcml0ZXNcbiAgICAgICAgICAgICAgICAgICAgPyBmYXZvcml0ZXNcbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgZmlsdGVyR2VvbWV0cnk6IGdlb21ldHJ5ID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgY29uc3QgYWdncmVnYXRpb25zJCA9IHRoaXMucmVjb3Jkc1JlcG9zaXRvcnkuYWdncmVnYXRlKFxuICAgICAgICAgICAgICAgIHN0YXRlLmNvbmZpZy5hZ2dyZWdhdGlvbnNcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0cyQucGlwZShjb21iaW5lTGF0ZXN0V2l0aChhZ2dyZWdhdGlvbnMkKSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApLFxuICAgICAgICAgIHN3aXRjaE1hcCgoW3Jlc3VsdHMsIGFnZ3JlZ2F0aW9uc10pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFjdGlvbnM6IFNlYXJjaEFjdGlvbnNbXSA9IFtcbiAgICAgICAgICAgICAgbmV3IENsZWFyRXJyb3IoYWN0aW9uLmlkKSxcbiAgICAgICAgICAgICAgbmV3IEFkZFJlc3VsdHMocmVzdWx0cy5yZWNvcmRzLCBhY3Rpb24uaWQpLFxuICAgICAgICAgICAgICBuZXcgU2V0UmVzdWx0c0FnZ3JlZ2F0aW9ucyhhZ2dyZWdhdGlvbnMsIGFjdGlvbi5pZCksXG4gICAgICAgICAgICAgIG5ldyBTZXRSZXN1bHRzSGl0cyhyZXN1bHRzLmNvdW50LCBhY3Rpb24uaWQpLFxuICAgICAgICAgICAgXVxuICAgICAgICAgICAgaWYgKGFjdGlvbi50eXBlID09PSBSRVFVRVNUX05FV19SRVNVTFRTKSB7XG4gICAgICAgICAgICAgIGFjdGlvbnMudW5zaGlmdChuZXcgQ2xlYXJSZXN1bHRzKGFjdGlvbi5pZCkpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gb2YoLi4uYWN0aW9ucylcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UgfCBFcnJvcikgPT4ge1xuICAgICAgICAgICAgaWYgKCdzdGF0dXMnIGluIGVycm9yKSB7XG4gICAgICAgICAgICAgIHJldHVybiBvZihuZXcgU2V0RXJyb3IoZXJyb3Iuc3RhdHVzLCBlcnJvci5tZXNzYWdlLCBhY3Rpb24uaWQpKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKG5ldyBTZXRFcnJvcigwLCBlcnJvci5tZXNzYWdlLCBhY3Rpb24uaWQpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gIClcblxuICB1cGRhdGVSZXF1ZXN0QWdncmVnYXRpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlPFNldEluY2x1ZGVPbkFnZ3JlZ2F0aW9uIHwgUmVxdWVzdE1vcmVPbkFnZ3JlZ2F0aW9uPihcbiAgICAgICAgU0VUX0lOQ0xVREVfT05fQUdHUkVHQVRJT04sXG4gICAgICAgIFJFUVVFU1RfTU9SRV9PTl9BR0dSRUdBVElPTlxuICAgICAgKSxcbiAgICAgIHN3aXRjaE1hcCgoYWN0aW9uKSA9PlxuICAgICAgICB0aGlzLnBsYXRmb3JtU2VydmljZS5nZXRNZSgpLnBpcGUoXG4gICAgICAgICAgd2l0aExhdGVzdEZyb20oXG4gICAgICAgICAgICB0aGlzLnN0b3JlJC5waXBlKHNlbGVjdChnZXRTZWFyY2hTdGF0ZVNlYXJjaCwgYWN0aW9uLmlkKSlcbiAgICAgICAgICApLFxuICAgICAgICAgIHN3aXRjaE1hcCgoWywgc3RhdGVdKSA9PlxuICAgICAgICAgICAgdGhpcy5yZWNvcmRzUmVwb3NpdG9yeS5hZ2dyZWdhdGUoe1xuICAgICAgICAgICAgICBbYWN0aW9uLmFnZ3JlZ2F0aW9uTmFtZV06XG4gICAgICAgICAgICAgICAgc3RhdGUuY29uZmlnLmFnZ3JlZ2F0aW9uc1thY3Rpb24uYWdncmVnYXRpb25OYW1lXSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKSxcbiAgICAgICAgICBtYXAoKGFnZ3JlZ2F0aW9ucykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBQYXRjaFJlc3VsdHNBZ2dyZWdhdGlvbnMoXG4gICAgICAgICAgICAgIGFjdGlvbi5hZ2dyZWdhdGlvbk5hbWUsXG4gICAgICAgICAgICAgIGFnZ3JlZ2F0aW9uc1thY3Rpb24uYWdncmVnYXRpb25OYW1lXSxcbiAgICAgICAgICAgICAgYWN0aW9uLmlkXG4gICAgICAgICAgICApXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKSAvLyB3YWl0IGZvciBhdXRoIHRvIGJlIGtub3duXG4gICAgKVxuICB9KVxufVxuIl19
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9zZWFyY2gvc3JjL2xpYi9zdGF0ZS9lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDN0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDN0UsT0FBTyxFQUNMLFVBQVUsRUFDVixHQUFHLEVBQ0gsV0FBVyxFQUNYLFNBQVMsRUFDVCxJQUFJLEVBQ0osY0FBYyxHQUNmLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUNMLFVBQVUsRUFDVixVQUFVLEVBQ1YsWUFBWSxFQUNaLFFBQVEsRUFDUixRQUFRLEVBQ1Isd0JBQXdCLEVBQ3hCLDJCQUEyQixFQUMzQixvQkFBb0IsRUFDcEIsbUJBQW1CLEVBRW5CLGlCQUFpQixFQUVqQixrQkFBa0IsRUFDbEIsV0FBVyxFQUNYLDBCQUEwQixFQUMxQixhQUFhLEVBQ2IsVUFBVSxFQUNWLFdBQVcsRUFDWCwwQkFBMEIsRUFDMUIsUUFBUSxFQUVSLHNCQUFzQixFQUN0QixjQUFjLEVBQ2QsY0FBYyxHQUNmLE1BQU0sV0FBVyxDQUFBO0FBRWxCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUVsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUUxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0s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QUcsRUFBRTtZQUM1QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUN2QixNQUFNLENBQ0osMEJBQTBCLEVBQzFCLDJCQUEyQixDQUM1QixFQUNELFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ25CLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUMvQixjQUFjLENBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUMxRCxFQUNELFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQ3RCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUM7Z0JBQy9CLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxFQUN0QixLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDO2FBQ3BELENBQUMsQ0FDSCxFQUNELEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO2dCQUNuQixPQUFPLElBQUksd0JBQXdCLENBQ2pDLE1BQU0sQ0FBQyxlQUFlLEVBQ3RCLFlBQVksQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEVBQ3BDLE1BQU0sQ0FBQyxFQUFFLENBQ1YsQ0FBQTtZQUNILENBQUMsQ0FBQyxDQUNILENBQ0YsQ0FBQyw0QkFBNEI7YUFDL0IsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFBO0lBeEtDLENBQUM7OEdBZE8sYUFBYSxnTEFZZCxlQUFlO2tIQVpkLGFBQWE7OzJGQUFiLGFBQWE7a0JBRHpCLFVBQVU7OzBCQVlOLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJ1xuaW1wb3J0IHsgc2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJ1xuaW1wb3J0IHsgYnVmZmVyLCBjb21iaW5lTGF0ZXN0V2l0aCwgZGVib3VuY2VUaW1lLCBmcm9tLCBvZiwgdGFwIH0gZnJvbSAncnhqcydcbmltcG9ydCB7XG4gIGNhdGNoRXJyb3IsXG4gIG1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuaW1wb3J0IHtcbiAgQWRkUmVzdWx0cyxcbiAgQ2xlYXJFcnJvcixcbiAgQ2xlYXJSZXN1bHRzLFxuICBQYWdpbmF0ZSxcbiAgUEFHSU5BVEUsXG4gIFBhdGNoUmVzdWx0c0FnZ3JlZ2F0aW9ucyxcbiAgUkVRVUVTVF9NT1JFX09OX0FHR1JFR0FUSU9OLFxuICBSRVFVRVNUX01PUkVfUkVTVUxUUyxcbiAgUkVRVUVTVF9ORVdfUkVTVUxUUyxcbiAgUmVxdWVzdE1vcmVPbkFnZ3JlZ2F0aW9uLFxuICBSZXF1ZXN0TmV3UmVzdWx0cyxcbiAgU2VhcmNoQWN0aW9ucyxcbiAgU0VUX0ZBVk9SSVRFU19PTkxZLFxuICBTRVRfRklMVEVSUyxcbiAgU0VUX0lOQ0xVREVfT05fQUdHUkVHQVRJT04sXG4gIFNFVF9QQUdFX1NJWkUsXG4gIFNFVF9TRUFSQ0gsXG4gIFNFVF9TT1JUX0JZLFxuICBTRVRfU1BBVElBTF9GSUxURVJfRU5BQkxFRCxcbiAgU2V0RXJyb3IsXG4gIFNldEluY2x1ZGVPbkFnZ3JlZ2F0aW9uLFxuICBTZXRSZXN1bHRzQWdncmVnYXRpb25zLFxuICBTZXRSZXN1bHRzSGl0cyxcbiAgVVBEQVRFX0ZJTFRFUlMsXG59IGZyb20gJy4vYWN0aW9ucydcbmltcG9ydCB7IFNlYXJjaFN0YXRlLCBTZWFyY2hTdGF0ZVNlYXJjaCB9IGZyb20gJy4vcmVkdWNlcidcbmltcG9ydCB7IGdldFNlYXJjaFN0YXRlU2VhcmNoIH0gZnJvbSAnLi9zZWxlY3RvcnMnXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xuaW1wb3J0IHsgc3dpdGNoTWFwV2l0aFNlYXJjaElkIH0gZnJvbSAnLi4vdXRpbHMvb3BlcmF0b3JzL3NlYXJjaC5vcGVyYXRvcidcbmltcG9ydCB7IEdlb21ldHJ5IH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7IEZJTFRFUl9HRU9NRVRSWSB9IGZyb20gJy4uL2ZpbHRlci1nZW9tZXRyeS50b2tlbidcbmltcG9ydCB7IFJlY29yZHNSZXBvc2l0b3J5SW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvcmVwb3NpdG9yeS9yZWNvcmRzLXJlcG9zaXRvcnkuaW50ZXJmYWNlJ1xuaW1wb3J0IHsgRmF2b3JpdGVzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3JlcG9zaXRvcnkvc3JjJ1xuaW1wb3J0IHsgUGxhdGZvcm1TZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvcGxhdGZvcm0uc2VydmljZS5pbnRlcmZhY2UnXG5pbXBvcnQgeyB2YWxpZCBhcyB2YWxpZEdlb0pzb24gfSBmcm9tICdnZW9qc29uLXZhbGlkYXRpb24nXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTZWFyY2hFZmZlY3RzIHtcbiAgZmlsdGVyR2VvbWV0cnkkID0gdGhpcy5maWx0ZXJHZW9tZXRyeVxuICAgID8gZnJvbSh0aGlzLmZpbHRlckdlb21ldHJ5KS5waXBlKHNoYXJlUmVwbGF5KCkpXG4gICAgOiB1bmRlZmluZWRcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zLFxuICAgIHByaXZhdGUgc3RvcmUkOiBTdG9yZTxTZWFyY2hTdGF0ZT4sXG4gICAgcHJpdmF0ZSByZWNvcmRzUmVwb3NpdG9yeTogUmVjb3Jkc1JlcG9zaXRvcnlJbnRlcmZhY2UsXG4gICAgcHJpdmF0ZSBmYXZvcml0ZXNTZXJ2aWNlOiBGYXZvcml0ZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGxhdGZvcm1TZXJ2aWNlOiBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KEZJTFRFUl9HRU9NRVRSWSlcbiAgICBwcml2YXRlIGZpbHRlckdlb21ldHJ5OiBQcm9taXNlPEdlb21ldHJ5PlxuICApIHt9XG5cbiAgcmVzZXRQYWdpbmF0aW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICAgIG9mVHlwZShcbiAgICAgICAgU0VUX0ZJTFRFUlMsXG4gICAgICAgIFVQREFURV9GSUxURVJTLFxuICAgICAgICBTRVRfU0VBUkNILFxuICAgICAgICBTRVRfRkFWT1JJVEVTX09OTFksXG4gICAgICAgIFNFVF9TUEFUSUFMX0ZJTFRFUl9FTkFCTEVEXG4gICAgICApLFxuICAgICAgbWFwKChhY3Rpb246IFNlYXJjaEFjdGlvbnMpID0+IG5ldyBQYWdpbmF0ZSgxLCBhY3Rpb24uaWQpKVxuICAgIClcbiAgKVxuXG4gIHByaXZhdGUgYWN0aW9uc1dpdGhOZXdSZXN1bHRzJCA9IHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUoXG4gICAgICBTRVRfU09SVF9CWSxcbiAgICAgIFNFVF9GSUxURVJTLFxuICAgICAgVVBEQVRFX0ZJTFRFUlMsXG4gICAgICBTRVRfU0VBUkNILFxuICAgICAgU0VUX0ZBVk9SSVRFU19PTkxZLFxuICAgICAgU0VUX1NQQVRJQUxfRklMVEVSX0VOQUJMRUQsXG4gICAgICBQQUdJTkFURSxcbiAgICAgIFNFVF9QQUdFX1NJWkVcbiAgICApXG4gIClcblxuICByZXF1ZXN0TmV3UmVzdWx0cyQgPSBjcmVhdGVFZmZlY3QoKCkgPT5cbiAgICB0aGlzLmFjdGlvbnNXaXRoTmV3UmVzdWx0cyQucGlwZShcbiAgICAgIC8vIHRoaXMgd2lsbCBhZ2dyZWdhdGUgYWN0aW9ucyB1bnRpbCB0aGUgZGVib3VuY2VUaW1lIHRpY2tzXG4gICAgICBidWZmZXIodGhpcy5hY3Rpb25zV2l0aE5ld1Jlc3VsdHMkLnBpcGUoZGVib3VuY2VUaW1lKDApKSksXG4gICAgICBzd2l0Y2hNYXAoKGFjdGlvbnM6IFNlYXJjaEFjdGlvbnNbXSkgPT4ge1xuICAgICAgICAvLyBvbmNlIHdlIGhhdmUgYSBsaXN0IG9mIGFjdGlvbnMgZW1pdHRlZCBzaW5jZSBsYXN0IHRpbWUsIHdlIGNhbiBzcGxpdCB0aGVtIGJ5IHNlYXJjaCBpZFxuICAgICAgICBjb25zdCByZXF1ZXN0TmV3UmVzdWx0cyA9IGFjdGlvbnNcbiAgICAgICAgICAubWFwKChhY3Rpb24pID0+IGFjdGlvbi5pZClcbiAgICAgICAgICAuZmlsdGVyKCh2YWx1ZSwgaW5kZXgsIGFycmF5KSA9PiBhcnJheS5pbmRleE9mKHZhbHVlKSA9PT0gaW5kZXgpXG4gICAgICAgICAgLm1hcCgoc2VhcmNoSWQpID0+IG5ldyBSZXF1ZXN0TmV3UmVzdWx0cyhzZWFyY2hJZCkpXG4gICAgICAgIHJldHVybiBvZiguLi5yZXF1ZXN0TmV3UmVzdWx0cylcbiAgICAgIH0pXG4gICAgKVxuICApXG5cbiAgbG9hZFJlc3VsdHMkID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgICAgb2ZUeXBlKFJFUVVFU1RfTU9SRV9SRVNVTFRTLCBSRVFVRVNUX05FV19SRVNVTFRTKSxcbiAgICAgIHN3aXRjaE1hcFdpdGhTZWFyY2hJZCgoYWN0aW9uOiBTZWFyY2hBY3Rpb25zKSA9PlxuICAgICAgICB0aGlzLnBsYXRmb3JtU2VydmljZS5nZXRNZSgpLnBpcGUoXG4gICAgICAgICAgd2l0aExhdGVzdEZyb20oXG4gICAgICAgICAgICB0aGlzLnN0b3JlJC5waXBlKHNlbGVjdChnZXRTZWFyY2hTdGF0ZVNlYXJjaCwgYWN0aW9uLmlkKSlcbiAgICAgICAgICApLFxuICAgICAgICAgIC8vIE5vdGU6IHRoaXMgY291bGQgaGF2ZSBiZWVuIGludGVncmF0ZWQgaW4gd2l0aExhdGVzdEZyb20gYWJvdmUgYnV0XG4gICAgICAgICAgLy8gSSBjb3VsZCBub3QgZ2V0IHRoaXMgdG8gd29yayAobWF5YmUgYSBidWcgaW4gcnhqcz8pXG4gICAgICAgICAgc3dpdGNoTWFwKChbLCBzdGF0ZV0pID0+XG4gICAgICAgICAgICB0aGlzLmZhdm9yaXRlc1NlcnZpY2UubXlGYXZvcml0ZXNVdWlkJC5waXBlKFxuICAgICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAgICAgKGZhdm9yaXRlcykgPT5cbiAgICAgICAgICAgICAgICAgIFtzdGF0ZSwgZmF2b3JpdGVzXSBhcyBbU2VhcmNoU3RhdGVTZWFyY2gsIHN0cmluZ1tdXVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgKSxcbiAgICAgICAgICBzd2l0Y2hNYXAoKFtzdGF0ZSwgZmF2b3JpdGVzXSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFzdGF0ZS5wYXJhbXMudXNlU3BhdGlhbEZpbHRlciB8fCAhdGhpcy5maWx0ZXJHZW9tZXRyeSQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKFtzdGF0ZSwgZmF2b3JpdGVzLCB1bmRlZmluZWRdKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyR2VvbWV0cnkkLnBpcGUoXG4gICAgICAgICAgICAgIHRhcCgoZ2VvbSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghZ2VvbSkgcmV0dXJuXG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYWNlID0gdmFsaWRHZW9Kc29uKGdlb20sIHRydWUpIGFzIHN0cmluZ1tdXG4gICAgICAgICAgICAgICAgICBpZiAodHJhY2U/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHRyYWNlLmpvaW4oJ1xcbicpKVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgICAgICdFcnJvciB3aGlsZSBwYXJzaW5nIHRoZSBnZW9tZXRyeSBmaWx0ZXJcXG4nLFxuICAgICAgICAgICAgICAgICAgICBlcnJvclxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBtYXAoKGdlb20pID0+IFtzdGF0ZSwgZmF2b3JpdGVzLCBnZW9tXSksXG4gICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoW3N0YXRlLCBmYXZvcml0ZXMsIHVuZGVmaW5lZF0pXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgfSksXG4gICAgICAgICAgc3dpdGNoTWFwKFxuICAgICAgICAgICAgKFtzdGF0ZSwgZmF2b3JpdGVzLCBnZW9tZXRyeV06IFtcbiAgICAgICAgICAgICAgU2VhcmNoU3RhdGVTZWFyY2gsXG4gICAgICAgICAgICAgIHN0cmluZ1tdLFxuICAgICAgICAgICAgICBHZW9tZXRyeSB8IHVuZGVmaW5lZFxuICAgICAgICAgICAgXSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB7IGN1cnJlbnRQYWdlLCBwYWdlU2l6ZSwgc29ydCB9ID0gc3RhdGUucGFyYW1zXG4gICAgICAgICAgICAgIGNvbnN0IGZpbHRlcnMgPSB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUuY29uZmlnLmZpbHRlcnMsXG4gICAgICAgICAgICAgICAgLi4uc3RhdGUucGFyYW1zLmZpbHRlcnMsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc3QgcmVzdWx0cyQgPSB0aGlzLnJlY29yZHNSZXBvc2l0b3J5LnNlYXJjaCh7XG4gICAgICAgICAgICAgICAgZmlsdGVycyxcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IGN1cnJlbnRQYWdlICogcGFnZVNpemUsXG4gICAgICAgICAgICAgICAgbGltaXQ6IHBhZ2VTaXplLFxuICAgICAgICAgICAgICAgIHNvcnQsXG4gICAgICAgICAgICAgICAgZmllbGRzOiBzdGF0ZS5jb25maWcuc291cmNlLFxuICAgICAgICAgICAgICAgIGZpbHRlcklkczpcbiAgICAgICAgICAgICAgICAgIHN0YXRlLnBhcmFtcy5mYXZvcml0ZXNPbmx5ICYmIGZhdm9yaXRlc1xuICAgICAgICAgICAgICAgICAgICA/IGZhdm9yaXRlc1xuICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBmaWx0ZXJHZW9tZXRyeTogZ2VvbWV0cnkgPz8gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICBjb25zdCBhZ2dyZWdhdGlvbnMkID0gdGhpcy5yZWNvcmRzUmVwb3NpdG9yeS5hZ2dyZWdhdGUoXG4gICAgICAgICAgICAgICAgc3RhdGUuY29uZmlnLmFnZ3JlZ2F0aW9uc1xuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIHJldHVybiByZXN1bHRzJC5waXBlKGNvbWJpbmVMYXRlc3RXaXRoKGFnZ3JlZ2F0aW9ucyQpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICksXG4gICAgICAgICAgc3dpdGNoTWFwKChbcmVzdWx0cywgYWdncmVnYXRpb25zXSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWN0aW9uczogU2VhcmNoQWN0aW9uc1tdID0gW1xuICAgICAgICAgICAgICBuZXcgQ2xlYXJFcnJvcihhY3Rpb24uaWQpLFxuICAgICAgICAgICAgICBuZXcgQWRkUmVzdWx0cyhyZXN1bHRzLnJlY29yZHMsIGFjdGlvbi5pZCksXG4gICAgICAgICAgICAgIG5ldyBTZXRSZXN1bHRzQWdncmVnYXRpb25zKGFnZ3JlZ2F0aW9ucywgYWN0aW9uLmlkKSxcbiAgICAgICAgICAgICAgbmV3IFNldFJlc3VsdHNIaXRzKHJlc3VsdHMuY291bnQsIGFjdGlvbi5pZCksXG4gICAgICAgICAgICBdXG4gICAgICAgICAgICBpZiAoYWN0aW9uLnR5cGUgPT09IFJFUVVFU1RfTkVXX1JFU1VMVFMpIHtcbiAgICAgICAgICAgICAgYWN0aW9ucy51bnNoaWZ0KG5ldyBDbGVhclJlc3VsdHMoYWN0aW9uLmlkKSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBvZiguLi5hY3Rpb25zKVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSB8IEVycm9yKSA9PiB7XG4gICAgICAgICAgICBpZiAoJ3N0YXR1cycgaW4gZXJyb3IpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKG5ldyBTZXRFcnJvcihlcnJvci5zdGF0dXMsIGVycm9yLm1lc3NhZ2UsIGFjdGlvbi5pZCkpXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gb2YobmV3IFNldEVycm9yKDAsIGVycm9yLm1lc3NhZ2UsIGFjdGlvbi5pZCkpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKVxuXG4gIHVwZGF0ZVJlcXVlc3RBZ2dyZWdhdGlvbiQgPSBjcmVhdGVFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgICBvZlR5cGU8U2V0SW5jbHVkZU9uQWdncmVnYXRpb24gfCBSZXF1ZXN0TW9yZU9uQWdncmVnYXRpb24+KFxuICAgICAgICBTRVRfSU5DTFVERV9PTl9BR0dSRUdBVElPTixcbiAgICAgICAgUkVRVUVTVF9NT1JFX09OX0FHR1JFR0FUSU9OXG4gICAgICApLFxuICAgICAgc3dpdGNoTWFwKChhY3Rpb24pID0+XG4gICAgICAgIHRoaXMucGxhdGZvcm1TZXJ2aWNlLmdldE1lKCkucGlwZShcbiAgICAgICAgICB3aXRoTGF0ZXN0RnJvbShcbiAgICAgICAgICAgIHRoaXMuc3RvcmUkLnBpcGUoc2VsZWN0KGdldFNlYXJjaFN0YXRlU2VhcmNoLCBhY3Rpb24uaWQpKVxuICAgICAgICAgICksXG4gICAgICAgICAgc3dpdGNoTWFwKChbLCBzdGF0ZV0pID0+XG4gICAgICAgICAgICB0aGlzLnJlY29yZHNSZXBvc2l0b3J5LmFnZ3JlZ2F0ZSh7XG4gICAgICAgICAgICAgIFthY3Rpb24uYWdncmVnYXRpb25OYW1lXTpcbiAgICAgICAgICAgICAgICBzdGF0ZS5jb25maWcuYWdncmVnYXRpb25zW2FjdGlvbi5hZ2dyZWdhdGlvbk5hbWVdLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApLFxuICAgICAgICAgIG1hcCgoYWdncmVnYXRpb25zKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFBhdGNoUmVzdWx0c0FnZ3JlZ2F0aW9ucyhcbiAgICAgICAgICAgICAgYWN0aW9uLmFnZ3JlZ2F0aW9uTmFtZSxcbiAgICAgICAgICAgICAgYWdncmVnYXRpb25zW2FjdGlvbi5hZ2dyZWdhdGlvbk5hbWVdLFxuICAgICAgICAgICAgICBhY3Rpb24uaWRcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApIC8vIHdhaXQgZm9yIGF1dGggdG8gYmUga25vd25cbiAgICApXG4gIH0pXG59XG4iXX0=
|
|
@@ -3,7 +3,7 @@ import { select, Store } from '@ngrx/store';
|
|
|
3
3
|
import { from, of } from 'rxjs';
|
|
4
4
|
import { AddSearch, ClearResults, DEFAULT_SEARCH_KEY, Paginate, RequestMoreOnAggregation, RequestMoreResults, SetConfigAggregations, SetConfigFilters, SetConfigRequestFields, SetFavoritesOnly, SetFilters, SetIncludeOnAggregation, SetPageSize, SetResultsLayout, SetSearch, SetSortBy, SetSpatialFilterEnabled, UpdateConfigAggregations, UpdateFilters, } from './actions';
|
|
5
5
|
import { currentPage, getError, getFavoritesOnly, getPageSize, getSearchConfigAggregations, getSearchFilters, getSearchResults, getSearchResultsAggregations, getSearchResultsHits, getSearchResultsLayout, getSearchResultsLoading, getSearchSortBy, getSpatialFilterEnabled, isEndOfResults, totalPages, } from './selectors';
|
|
6
|
-
import { FILTER_GEOMETRY } from '../
|
|
6
|
+
import { FILTER_GEOMETRY } from '../filter-geometry.token';
|
|
7
7
|
import { catchError, map, shareReplay } from 'rxjs/operators';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
import * as i1 from "@ngrx/store";
|
|
@@ -111,6 +111,7 @@ export class SearchFacade {
|
|
|
111
111
|
this.store.dispatch(new SetFilters({}, this.searchId));
|
|
112
112
|
this.store.dispatch(new SetSortBy([], this.searchId));
|
|
113
113
|
this.store.dispatch(new SetFavoritesOnly(false, this.searchId));
|
|
114
|
+
return this;
|
|
114
115
|
}
|
|
115
116
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SearchFacade, deps: [{ token: i1.Store }, { token: FILTER_GEOMETRY, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
116
117
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SearchFacade }); }
|
|
@@ -123,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
|
|
|
123
124
|
type: Inject,
|
|
124
125
|
args: [FILTER_GEOMETRY]
|
|
125
126
|
}] }]; } });
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9zZWFyY2gvc3JjL2xpYi9zdGF0ZS9zZWFyY2guZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUMzQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixrQkFBa0IsRUFDbEIsUUFBUSxFQUNSLHdCQUF3QixFQUN4QixrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNoQixzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLFVBQVUsRUFDVix1QkFBdUIsRUFDdkIsV0FBVyxFQUNYLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsU0FBUyxFQUNULHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsYUFBYSxHQUNkLE1BQU0sV0FBVyxDQUFBO0FBRWxCLE9BQU8sRUFDTCxXQUFXLEVBQ1gsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsMkJBQTJCLEVBQzNCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsNEJBQTRCLEVBQzVCLG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsY0FBYyxFQUNkLFVBQVUsR0FDWCxNQUFNLGFBQWEsQ0FBQTtBQUNwQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7OztBQVc3RCxNQUFNLE9BQU8sWUFBWTtJQXdCdkIsWUFDVSxLQUF5QixFQUd6QixjQUFpQztRQUhqQyxVQUFLLEdBQUwsS0FBSyxDQUFvQjtRQUd6QixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFaM0Msc0JBQWlCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM1RCxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFDckIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUMzQixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQTtJQVNFLENBQUM7SUFFSixJQUFJLENBQUMsV0FBbUIsa0JBQWtCO1FBQ3hDLElBQUksSUFBSSxDQUFDLFFBQVE7WUFDZixNQUFNLElBQUksS0FBSyxDQUNiLG1GQUFtRixJQUFJLENBQUMsUUFBUSxFQUFFLENBQ25HLENBQUE7UUFFSCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQTtRQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBRTVDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUE7UUFDbkUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQTtRQUN4RSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBQzVFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUE7UUFDekUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQTtRQUMzRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQTtRQUN4RSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQTtRQUNoRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQTtRQUNsRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQTtRQUMvRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ3hDLE1BQU0sQ0FBQywyQkFBMkIsRUFBRSxRQUFRLENBQUMsQ0FDOUMsQ0FBQTtRQUNELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDekMsTUFBTSxDQUFDLDRCQUE0QixFQUFFLFFBQVEsQ0FBQyxDQUMvQyxDQUFBO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUE7UUFDakUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQTtRQUN6RSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQTtRQUN6RCxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQzFDLE1BQU0sQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsQ0FDMUMsQ0FBQTtJQUNILENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7UUFDcEQsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQscUJBQXFCLENBQUMsTUFBVztRQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtRQUNyRSxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxNQUFXO1FBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksd0JBQXdCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBQ3hFLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELHNCQUFzQixDQUFDLE1BQW1CO1FBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksc0JBQXNCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBQ3RFLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQXFCO1FBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksZ0JBQWdCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBQ2pFLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBQzFELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELHdCQUF3QixDQUFDLEdBQVcsRUFBRSxTQUFpQjtRQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsSUFBSSx3QkFBd0IsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDNUQsQ0FBQTtRQUNELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQWM7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7UUFDaEUsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsVUFBVSxDQUFDLE9BQXFCO1FBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtRQUMzRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxhQUFhLENBQUMsT0FBcUI7UUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxhQUFhLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBQzlELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUF5QjtRQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7UUFDekQsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsYUFBc0I7UUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7UUFDdkUsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsdUJBQXVCLENBQUMsR0FBVyxFQUFFLE9BQWU7UUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLElBQUksdUJBQXVCLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQ3pELENBQUE7UUFDRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBWTtRQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7UUFDekQsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsUUFBUSxDQUFDLFVBQWtCO1FBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtRQUM1RCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtRQUMxRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBbUI7UUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBQ3pELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELHVCQUF1QixDQUFDLE9BQWdCO1FBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksdUJBQXVCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBQ3hFLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7UUFDbkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxVQUFVLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBQ3RELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtRQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtJQUNqRSxDQUFDOzhHQWxLVSxZQUFZLHVDQTJCYixlQUFlO2tIQTNCZCxZQUFZOzsyRkFBWixZQUFZO2tCQUR4QixVQUFVOzswQkEyQk4sUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBzZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBBZGRTZWFyY2gsXG4gIENsZWFyUmVzdWx0cyxcbiAgREVGQVVMVF9TRUFSQ0hfS0VZLFxuICBQYWdpbmF0ZSxcbiAgUmVxdWVzdE1vcmVPbkFnZ3JlZ2F0aW9uLFxuICBSZXF1ZXN0TW9yZVJlc3VsdHMsXG4gIFNldENvbmZpZ0FnZ3JlZ2F0aW9ucyxcbiAgU2V0Q29uZmlnRmlsdGVycyxcbiAgU2V0Q29uZmlnUmVxdWVzdEZpZWxkcyxcbiAgU2V0RmF2b3JpdGVzT25seSxcbiAgU2V0RmlsdGVycyxcbiAgU2V0SW5jbHVkZU9uQWdncmVnYXRpb24sXG4gIFNldFBhZ2VTaXplLFxuICBTZXRSZXN1bHRzTGF5b3V0LFxuICBTZXRTZWFyY2gsXG4gIFNldFNvcnRCeSxcbiAgU2V0U3BhdGlhbEZpbHRlckVuYWJsZWQsXG4gIFVwZGF0ZUNvbmZpZ0FnZ3JlZ2F0aW9ucyxcbiAgVXBkYXRlRmlsdGVycyxcbn0gZnJvbSAnLi9hY3Rpb25zJ1xuaW1wb3J0IHsgU2VhcmNoRXJyb3IsIFNlYXJjaFN0YXRlLCBTZWFyY2hTdGF0ZVBhcmFtcyB9IGZyb20gJy4vcmVkdWNlcidcbmltcG9ydCB7XG4gIGN1cnJlbnRQYWdlLFxuICBnZXRFcnJvcixcbiAgZ2V0RmF2b3JpdGVzT25seSxcbiAgZ2V0UGFnZVNpemUsXG4gIGdldFNlYXJjaENvbmZpZ0FnZ3JlZ2F0aW9ucyxcbiAgZ2V0U2VhcmNoRmlsdGVycyxcbiAgZ2V0U2VhcmNoUmVzdWx0cyxcbiAgZ2V0U2VhcmNoUmVzdWx0c0FnZ3JlZ2F0aW9ucyxcbiAgZ2V0U2VhcmNoUmVzdWx0c0hpdHMsXG4gIGdldFNlYXJjaFJlc3VsdHNMYXlvdXQsXG4gIGdldFNlYXJjaFJlc3VsdHNMb2FkaW5nLFxuICBnZXRTZWFyY2hTb3J0QnksXG4gIGdldFNwYXRpYWxGaWx0ZXJFbmFibGVkLFxuICBpc0VuZE9mUmVzdWx0cyxcbiAgdG90YWxQYWdlcyxcbn0gZnJvbSAnLi9zZWxlY3RvcnMnXG5pbXBvcnQgeyBGSUxURVJfR0VPTUVUUlkgfSBmcm9tICcuLi9mZWF0dXJlLXNlYXJjaC5tb2R1bGUnXG5pbXBvcnQgeyBHZW9tZXRyeSB9IGZyb20gJ2dlb2pzb24nXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQge1xuICBBZ2dyZWdhdGlvbnMsXG4gIEFnZ3JlZ2F0aW9uc1BhcmFtcyxcbiAgRmllbGRGaWx0ZXJzLFxuICBGaWVsZE5hbWUsXG4gIFNvcnRCeUZpZWxkLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9zZWFyY2gnXG5pbXBvcnQgeyBDYXRhbG9nUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2VhcmNoRmFjYWRlIHtcbiAgcmVzdWx0cyQ6IE9ic2VydmFibGU8Q2F0YWxvZ1JlY29yZFtdPlxuICBsYXlvdXQkOiBPYnNlcnZhYmxlPHN0cmluZz5cbiAgc29ydEJ5JDogT2JzZXJ2YWJsZTxTb3J0QnlGaWVsZD5cbiAgaXNMb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPlxuICBpc0VuZE9mUmVzdWx0cyQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cbiAgdG90YWxQYWdlcyQ6IE9ic2VydmFibGU8bnVtYmVyPlxuICBjdXJyZW50UGFnZSQ6IE9ic2VydmFibGU8bnVtYmVyPlxuICBwYWdlU2l6ZSQ6IE9ic2VydmFibGU8bnVtYmVyPlxuICBzZWFyY2hGaWx0ZXJzJDogT2JzZXJ2YWJsZTxGaWVsZEZpbHRlcnM+XG4gIGNvbmZpZ0FnZ3JlZ2F0aW9ucyQ6IE9ic2VydmFibGU8QWdncmVnYXRpb25zUGFyYW1zPlxuICByZXN1bHRzQWdncmVnYXRpb25zJDogT2JzZXJ2YWJsZTxBZ2dyZWdhdGlvbnM+XG4gIHJlc3VsdHNIaXRzJDogT2JzZXJ2YWJsZTxudW1iZXI+XG4gIGZhdm9yaXRlc09ubHkkOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG4gIGVycm9yJDogT2JzZXJ2YWJsZTxTZWFyY2hFcnJvcj5cbiAgc3BhdGlhbEZpbHRlckVuYWJsZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG4gIGhhc1NwYXRpYWxGaWx0ZXIkID0gZnJvbSh0aGlzLmZpbHRlckdlb21ldHJ5ID8/IG9mKG51bGwpKS5waXBlKFxuICAgIG1hcCgoZ2VvbSkgPT4gISFnZW9tKSxcbiAgICBjYXRjaEVycm9yKCgpID0+IG9mKGZhbHNlKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIHNlYXJjaElkOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxTZWFyY2hTdGF0ZT4sXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KEZJTFRFUl9HRU9NRVRSWSlcbiAgICBwcml2YXRlIGZpbHRlckdlb21ldHJ5OiBQcm9taXNlPEdlb21ldHJ5PlxuICApIHt9XG5cbiAgaW5pdChzZWFyY2hJZDogc3RyaW5nID0gREVGQVVMVF9TRUFSQ0hfS0VZKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VhcmNoSWQpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBUaGlzIFNlYXJjaEZhY2FkZSBpbnN0YW5jZSB3YXMgYWxyZWFkeSBpbml0aWFsaXplZCB3aXRoIHRoZSBmb2xsb3dpbmcgc2VhcmNoSWQ6ICR7dGhpcy5zZWFyY2hJZH1gXG4gICAgICApXG5cbiAgICB0aGlzLnNlYXJjaElkID0gc2VhcmNoSWRcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBBZGRTZWFyY2goc2VhcmNoSWQpKVxuXG4gICAgdGhpcy5yZXN1bHRzJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZ2V0U2VhcmNoUmVzdWx0cywgc2VhcmNoSWQpKVxuICAgIHRoaXMubGF5b3V0JCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZ2V0U2VhcmNoUmVzdWx0c0xheW91dCwgc2VhcmNoSWQpKVxuICAgIHRoaXMuaXNMb2FkaW5nJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZ2V0U2VhcmNoUmVzdWx0c0xvYWRpbmcsIHNlYXJjaElkKSlcbiAgICB0aGlzLnNlYXJjaEZpbHRlcnMkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChnZXRTZWFyY2hGaWx0ZXJzLCBzZWFyY2hJZCkpXG4gICAgdGhpcy5yZXN1bHRzSGl0cyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGdldFNlYXJjaFJlc3VsdHNIaXRzLCBzZWFyY2hJZCkpXG4gICAgdGhpcy5pc0VuZE9mUmVzdWx0cyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGlzRW5kT2ZSZXN1bHRzLCBzZWFyY2hJZCkpXG4gICAgdGhpcy50b3RhbFBhZ2VzJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QodG90YWxQYWdlcywgc2VhcmNoSWQpKVxuICAgIHRoaXMuY3VycmVudFBhZ2UkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChjdXJyZW50UGFnZSwgc2VhcmNoSWQpKVxuICAgIHRoaXMucGFnZVNpemUkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChnZXRQYWdlU2l6ZSwgc2VhcmNoSWQpKVxuICAgIHRoaXMuY29uZmlnQWdncmVnYXRpb25zJCA9IHRoaXMuc3RvcmUucGlwZShcbiAgICAgIHNlbGVjdChnZXRTZWFyY2hDb25maWdBZ2dyZWdhdGlvbnMsIHNlYXJjaElkKVxuICAgIClcbiAgICB0aGlzLnJlc3VsdHNBZ2dyZWdhdGlvbnMkID0gdGhpcy5zdG9yZS5waXBlKFxuICAgICAgc2VsZWN0KGdldFNlYXJjaFJlc3VsdHNBZ2dyZWdhdGlvbnMsIHNlYXJjaElkKVxuICAgIClcbiAgICB0aGlzLnNvcnRCeSQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGdldFNlYXJjaFNvcnRCeSwgc2VhcmNoSWQpKVxuICAgIHRoaXMuZmF2b3JpdGVzT25seSQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGdldEZhdm9yaXRlc09ubHksIHNlYXJjaElkKSlcbiAgICB0aGlzLmVycm9yJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZ2V0RXJyb3IsIHNlYXJjaElkKSlcbiAgICB0aGlzLnNwYXRpYWxGaWx0ZXJFbmFibGVkJCA9IHRoaXMuc3RvcmUucGlwZShcbiAgICAgIHNlbGVjdChnZXRTcGF0aWFsRmlsdGVyRW5hYmxlZCwgc2VhcmNoSWQpXG4gICAgKVxuICB9XG5cbiAgY2xlYXJSZXN1bHRzKCk6IFNlYXJjaEZhY2FkZSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgQ2xlYXJSZXN1bHRzKHRoaXMuc2VhcmNoSWQpKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBzZXRDb25maWdBZ2dyZWdhdGlvbnMoY29uZmlnOiBhbnkpOiBTZWFyY2hGYWNhZGUge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNldENvbmZpZ0FnZ3JlZ2F0aW9ucyhjb25maWcsIHRoaXMuc2VhcmNoSWQpKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICB1cGRhdGVDb25maWdBZ2dyZWdhdGlvbnMoY29uZmlnOiBhbnkpOiBTZWFyY2hGYWNhZGUge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFVwZGF0ZUNvbmZpZ0FnZ3JlZ2F0aW9ucyhjb25maWcsIHRoaXMuc2VhcmNoSWQpKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBzZXRDb25maWdSZXF1ZXN0RmllbGRzKGZpZWxkczogRmllbGROYW1lW10pOiBTZWFyY2hGYWNhZGUge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNldENvbmZpZ1JlcXVlc3RGaWVsZHMoZmllbGRzLCB0aGlzLnNlYXJjaElkKSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgc2V0Q29uZmlnRmlsdGVycyhmaWx0ZXJzOiBGaWVsZEZpbHRlcnMpOiBTZWFyY2hGYWNhZGUge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNldENvbmZpZ0ZpbHRlcnMoZmlsdGVycywgdGhpcy5zZWFyY2hJZCkpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHJlcXVlc3RNb3JlUmVzdWx0cygpOiBTZWFyY2hGYWNhZGUge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFJlcXVlc3RNb3JlUmVzdWx0cyh0aGlzLnNlYXJjaElkKSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgcmVxdWVzdE1vcmVPbkFnZ3JlZ2F0aW9uKGtleTogc3RyaW5nLCBpbmNyZW1lbnQ6IG51bWJlcik6IFNlYXJjaEZhY2FkZSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIG5ldyBSZXF1ZXN0TW9yZU9uQWdncmVnYXRpb24oa2V5LCBpbmNyZW1lbnQsIHRoaXMuc2VhcmNoSWQpXG4gICAgKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBzZXRSZXN1bHRzTGF5b3V0KGxheW91dDogc3RyaW5nKTogU2VhcmNoRmFjYWRlIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBTZXRSZXN1bHRzTGF5b3V0KGxheW91dCwgdGhpcy5zZWFyY2hJZCkpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHNldEZpbHRlcnMoZmlsdGVyczogRmllbGRGaWx0ZXJzKTogU2VhcmNoRmFjYWRlIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBTZXRGaWx0ZXJzKGZpbHRlcnMsIHRoaXMuc2VhcmNoSWQpKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICB1cGRhdGVGaWx0ZXJzKGZpbHRlcnM6IEZpZWxkRmlsdGVycyk6IFNlYXJjaEZhY2FkZSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgVXBkYXRlRmlsdGVycyhmaWx0ZXJzLCB0aGlzLnNlYXJjaElkKSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgc2V0U2VhcmNoKHBhcmFtczogU2VhcmNoU3RhdGVQYXJhbXMpOiBTZWFyY2hGYWNhZGUge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNldFNlYXJjaChwYXJhbXMsIHRoaXMuc2VhcmNoSWQpKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBzZXRGYXZvcml0ZXNPbmx5KGZhdm9yaXRlc09ubHk6IGJvb2xlYW4pOiBTZWFyY2hGYWNhZGUge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNldEZhdm9yaXRlc09ubHkoZmF2b3JpdGVzT25seSwgdGhpcy5zZWFyY2hJZCkpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHNldEluY2x1ZGVPbkFnZ3JlZ2F0aW9uKGtleTogc3RyaW5nLCBpbmNsdWRlOiBzdHJpbmcpOiBTZWFyY2hGYWNhZGUge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBuZXcgU2V0SW5jbHVkZU9uQWdncmVnYXRpb24oa2V5LCBpbmNsdWRlLCB0aGlzLnNlYXJjaElkKVxuICAgIClcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgc2V0UGFnZVNpemUoc2l6ZTogbnVtYmVyKTogU2VhcmNoRmFjYWRlIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBTZXRQYWdlU2l6ZShzaXplLCB0aGlzLnNlYXJjaElkKSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgcGFnaW5hdGUocGFnZU51bWJlcjogbnVtYmVyKTogU2VhcmNoRmFjYWRlIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBQYWdpbmF0ZShwYWdlTnVtYmVyLCB0aGlzLnNlYXJjaElkKSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgc2Nyb2xsKCk6IFNlYXJjaEZhY2FkZSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgUmVxdWVzdE1vcmVSZXN1bHRzKHRoaXMuc2VhcmNoSWQpKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBzZXRTb3J0Qnkoc29ydEJ5OiBTb3J0QnlGaWVsZCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNldFNvcnRCeShzb3J0QnksIHRoaXMuc2VhcmNoSWQpKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBzZXRTcGF0aWFsRmlsdGVyRW5hYmxlZChlbmFibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0U3BhdGlhbEZpbHRlckVuYWJsZWQoZW5hYmxlZCwgdGhpcy5zZWFyY2hJZCkpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHJlc2V0U2VhcmNoKCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFBhZ2luYXRlKDEsIHRoaXMuc2VhcmNoSWQpKVxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNldEZpbHRlcnMoe30sIHRoaXMuc2VhcmNoSWQpKVxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNldFNvcnRCeShbXSwgdGhpcy5zZWFyY2hJZCkpXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0RmF2b3JpdGVzT25seShmYWxzZSwgdGhpcy5zZWFyY2hJZCkpXG4gIH1cbn1cbiJdfQ==
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmZhY2FkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9zZWFyY2gvc3JjL2xpYi9zdGF0ZS9zZWFyY2guZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUM1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUMzQyxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixrQkFBa0IsRUFDbEIsUUFBUSxFQUNSLHdCQUF3QixFQUN4QixrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3JCLGdCQUFnQixFQUNoQixzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLFVBQVUsRUFDVix1QkFBdUIsRUFDdkIsV0FBVyxFQUNYLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsU0FBUyxFQUNULHVCQUF1QixFQUN2Qix3QkFBd0IsRUFDeEIsYUFBYSxHQUNkLE1BQU0sV0FBVyxDQUFBO0FBRWxCLE9BQU8sRUFDTCxXQUFXLEVBQ1gsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsMkJBQTJCLEVBQzNCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsNEJBQTRCLEVBQzVCLG9CQUFvQixFQUNwQixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsY0FBYyxFQUNkLFVBQVUsR0FDWCxNQUFNLGFBQWEsQ0FBQTtBQUNwQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7OztB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QUF1QixDQUFDLE9BQWdCO1FBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksdUJBQXVCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBQ3hFLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7UUFDbkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxVQUFVLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBQ3RELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksU0FBUyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtRQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtRQUMvRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7OEdBbktVLFlBQVksdUNBMkJiLGVBQWU7a0hBM0JkLFlBQVk7OzJGQUFaLFlBQVk7a0JBRHhCLFVBQVU7OzBCQTJCTixRQUFROzswQkFDUixNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSdcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7XG4gIEFkZFNlYXJjaCxcbiAgQ2xlYXJSZXN1bHRzLFxuICBERUZBVUxUX1NFQVJDSF9LRVksXG4gIFBhZ2luYXRlLFxuICBSZXF1ZXN0TW9yZU9uQWdncmVnYXRpb24sXG4gIFJlcXVlc3RNb3JlUmVzdWx0cyxcbiAgU2V0Q29uZmlnQWdncmVnYXRpb25zLFxuICBTZXRDb25maWdGaWx0ZXJzLFxuICBTZXRDb25maWdSZXF1ZXN0RmllbGRzLFxuICBTZXRGYXZvcml0ZXNPbmx5LFxuICBTZXRGaWx0ZXJzLFxuICBTZXRJbmNsdWRlT25BZ2dyZWdhdGlvbixcbiAgU2V0UGFnZVNpemUsXG4gIFNldFJlc3VsdHNMYXlvdXQsXG4gIFNldFNlYXJjaCxcbiAgU2V0U29ydEJ5LFxuICBTZXRTcGF0aWFsRmlsdGVyRW5hYmxlZCxcbiAgVXBkYXRlQ29uZmlnQWdncmVnYXRpb25zLFxuICBVcGRhdGVGaWx0ZXJzLFxufSBmcm9tICcuL2FjdGlvbnMnXG5pbXBvcnQgeyBTZWFyY2hFcnJvciwgU2VhcmNoU3RhdGUsIFNlYXJjaFN0YXRlUGFyYW1zIH0gZnJvbSAnLi9yZWR1Y2VyJ1xuaW1wb3J0IHtcbiAgY3VycmVudFBhZ2UsXG4gIGdldEVycm9yLFxuICBnZXRGYXZvcml0ZXNPbmx5LFxuICBnZXRQYWdlU2l6ZSxcbiAgZ2V0U2VhcmNoQ29uZmlnQWdncmVnYXRpb25zLFxuICBnZXRTZWFyY2hGaWx0ZXJzLFxuICBnZXRTZWFyY2hSZXN1bHRzLFxuICBnZXRTZWFyY2hSZXN1bHRzQWdncmVnYXRpb25zLFxuICBnZXRTZWFyY2hSZXN1bHRzSGl0cyxcbiAgZ2V0U2VhcmNoUmVzdWx0c0xheW91dCxcbiAgZ2V0U2VhcmNoUmVzdWx0c0xvYWRpbmcsXG4gIGdldFNlYXJjaFNvcnRCeSxcbiAgZ2V0U3BhdGlhbEZpbHRlckVuYWJsZWQsXG4gIGlzRW5kT2ZSZXN1bHRzLFxuICB0b3RhbFBhZ2VzLFxufSBmcm9tICcuL3NlbGVjdG9ycydcbmltcG9ydCB7IEZJTFRFUl9HRU9NRVRSWSB9IGZyb20gJy4uL2ZpbHRlci1nZW9tZXRyeS50b2tlbidcbmltcG9ydCB7IEdlb21ldHJ5IH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7XG4gIEFnZ3JlZ2F0aW9ucyxcbiAgQWdncmVnYXRpb25zUGFyYW1zLFxuICBGaWVsZEZpbHRlcnMsXG4gIEZpZWxkTmFtZSxcbiAgU29ydEJ5RmllbGQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3NlYXJjaCdcbmltcG9ydCB7IENhdGFsb2dSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTZWFyY2hGYWNhZGUge1xuICByZXN1bHRzJDogT2JzZXJ2YWJsZTxDYXRhbG9nUmVjb3JkW10+XG4gIGxheW91dCQ6IE9ic2VydmFibGU8c3RyaW5nPlxuICBzb3J0QnkkOiBPYnNlcnZhYmxlPFNvcnRCeUZpZWxkPlxuICBpc0xvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG4gIGlzRW5kT2ZSZXN1bHRzJDogT2JzZXJ2YWJsZTxib29sZWFuPlxuICB0b3RhbFBhZ2VzJDogT2JzZXJ2YWJsZTxudW1iZXI+XG4gIGN1cnJlbnRQYWdlJDogT2JzZXJ2YWJsZTxudW1iZXI+XG4gIHBhZ2VTaXplJDogT2JzZXJ2YWJsZTxudW1iZXI+XG4gIHNlYXJjaEZpbHRlcnMkOiBPYnNlcnZhYmxlPEZpZWxkRmlsdGVycz5cbiAgY29uZmlnQWdncmVnYXRpb25zJDogT2JzZXJ2YWJsZTxBZ2dyZWdhdGlvbnNQYXJhbXM+XG4gIHJlc3VsdHNBZ2dyZWdhdGlvbnMkOiBPYnNlcnZhYmxlPEFnZ3JlZ2F0aW9ucz5cbiAgcmVzdWx0c0hpdHMkOiBPYnNlcnZhYmxlPG51bWJlcj5cbiAgZmF2b3JpdGVzT25seSQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cbiAgZXJyb3IkOiBPYnNlcnZhYmxlPFNlYXJjaEVycm9yPlxuICBzcGF0aWFsRmlsdGVyRW5hYmxlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj5cbiAgaGFzU3BhdGlhbEZpbHRlciQgPSBmcm9tKHRoaXMuZmlsdGVyR2VvbWV0cnkgPz8gb2YobnVsbCkpLnBpcGUoXG4gICAgbWFwKChnZW9tKSA9PiAhIWdlb20pLFxuICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YoZmFsc2UpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgc2VhcmNoSWQ6IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPFNlYXJjaFN0YXRlPixcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoRklMVEVSX0dFT01FVFJZKVxuICAgIHByaXZhdGUgZmlsdGVyR2VvbWV0cnk6IFByb21pc2U8R2VvbWV0cnk+XG4gICkge31cblxuICBpbml0KHNlYXJjaElkOiBzdHJpbmcgPSBERUZBVUxUX1NFQVJDSF9LRVkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWFyY2hJZClcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFRoaXMgU2VhcmNoRmFjYWRlIGluc3RhbmNlIHdhcyBhbHJlYWR5IGluaXRpYWxpemVkIHdpdGggdGhlIGZvbGxvd2luZyBzZWFyY2hJZDogJHt0aGlzLnNlYXJjaElkfWBcbiAgICAgIClcblxuICAgIHRoaXMuc2VhcmNoSWQgPSBzZWFyY2hJZFxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IEFkZFNlYXJjaChzZWFyY2hJZCkpXG5cbiAgICB0aGlzLnJlc3VsdHMkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChnZXRTZWFyY2hSZXN1bHRzLCBzZWFyY2hJZCkpXG4gICAgdGhpcy5sYXlvdXQkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChnZXRTZWFyY2hSZXN1bHRzTGF5b3V0LCBzZWFyY2hJZCkpXG4gICAgdGhpcy5pc0xvYWRpbmckID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChnZXRTZWFyY2hSZXN1bHRzTG9hZGluZywgc2VhcmNoSWQpKVxuICAgIHRoaXMuc2VhcmNoRmlsdGVycyQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGdldFNlYXJjaEZpbHRlcnMsIHNlYXJjaElkKSlcbiAgICB0aGlzLnJlc3VsdHNIaXRzJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZ2V0U2VhcmNoUmVzdWx0c0hpdHMsIHNlYXJjaElkKSlcbiAgICB0aGlzLmlzRW5kT2ZSZXN1bHRzJCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoaXNFbmRPZlJlc3VsdHMsIHNlYXJjaElkKSlcbiAgICB0aGlzLnRvdGFsUGFnZXMkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdCh0b3RhbFBhZ2VzLCBzZWFyY2hJZCkpXG4gICAgdGhpcy5jdXJyZW50UGFnZSQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGN1cnJlbnRQYWdlLCBzZWFyY2hJZCkpXG4gICAgdGhpcy5wYWdlU2l6ZSQgPSB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGdldFBhZ2VTaXplLCBzZWFyY2hJZCkpXG4gICAgdGhpcy5jb25maWdBZ2dyZWdhdGlvbnMkID0gdGhpcy5zdG9yZS5waXBlKFxuICAgICAgc2VsZWN0KGdldFNlYXJjaENvbmZpZ0FnZ3JlZ2F0aW9ucywgc2VhcmNoSWQpXG4gICAgKVxuICAgIHRoaXMucmVzdWx0c0FnZ3JlZ2F0aW9ucyQgPSB0aGlzLnN0b3JlLnBpcGUoXG4gICAgICBzZWxlY3QoZ2V0U2VhcmNoUmVzdWx0c0FnZ3JlZ2F0aW9ucywgc2VhcmNoSWQpXG4gICAgKVxuICAgIHRoaXMuc29ydEJ5JCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZ2V0U2VhcmNoU29ydEJ5LCBzZWFyY2hJZCkpXG4gICAgdGhpcy5mYXZvcml0ZXNPbmx5JCA9IHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZ2V0RmF2b3JpdGVzT25seSwgc2VhcmNoSWQpKVxuICAgIHRoaXMuZXJyb3IkID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChnZXRFcnJvciwgc2VhcmNoSWQpKVxuICAgIHRoaXMuc3BhdGlhbEZpbHRlckVuYWJsZWQkID0gdGhpcy5zdG9yZS5waXBlKFxuICAgICAgc2VsZWN0KGdldFNwYXRpYWxGaWx0ZXJFbmFibGVkLCBzZWFyY2hJZClcbiAgICApXG4gIH1cblxuICBjbGVhclJlc3VsdHMoKTogU2VhcmNoRmFjYWRlIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBDbGVhclJlc3VsdHModGhpcy5zZWFyY2hJZCkpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHNldENvbmZpZ0FnZ3JlZ2F0aW9ucyhjb25maWc6IGFueSk6IFNlYXJjaEZhY2FkZSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0Q29uZmlnQWdncmVnYXRpb25zKGNvbmZpZywgdGhpcy5zZWFyY2hJZCkpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHVwZGF0ZUNvbmZpZ0FnZ3JlZ2F0aW9ucyhjb25maWc6IGFueSk6IFNlYXJjaEZhY2FkZSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgVXBkYXRlQ29uZmlnQWdncmVnYXRpb25zKGNvbmZpZywgdGhpcy5zZWFyY2hJZCkpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHNldENvbmZpZ1JlcXVlc3RGaWVsZHMoZmllbGRzOiBGaWVsZE5hbWVbXSk6IFNlYXJjaEZhY2FkZSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0Q29uZmlnUmVxdWVzdEZpZWxkcyhmaWVsZHMsIHRoaXMuc2VhcmNoSWQpKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBzZXRDb25maWdGaWx0ZXJzKGZpbHRlcnM6IEZpZWxkRmlsdGVycyk6IFNlYXJjaEZhY2FkZSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0Q29uZmlnRmlsdGVycyhmaWx0ZXJzLCB0aGlzLnNlYXJjaElkKSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgcmVxdWVzdE1vcmVSZXN1bHRzKCk6IFNlYXJjaEZhY2FkZSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgUmVxdWVzdE1vcmVSZXN1bHRzKHRoaXMuc2VhcmNoSWQpKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICByZXF1ZXN0TW9yZU9uQWdncmVnYXRpb24oa2V5OiBzdHJpbmcsIGluY3JlbWVudDogbnVtYmVyKTogU2VhcmNoRmFjYWRlIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgbmV3IFJlcXVlc3RNb3JlT25BZ2dyZWdhdGlvbihrZXksIGluY3JlbWVudCwgdGhpcy5zZWFyY2hJZClcbiAgICApXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHNldFJlc3VsdHNMYXlvdXQobGF5b3V0OiBzdHJpbmcpOiBTZWFyY2hGYWNhZGUge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNldFJlc3VsdHNMYXlvdXQobGF5b3V0LCB0aGlzLnNlYXJjaElkKSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgc2V0RmlsdGVycyhmaWx0ZXJzOiBGaWVsZEZpbHRlcnMpOiBTZWFyY2hGYWNhZGUge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNldEZpbHRlcnMoZmlsdGVycywgdGhpcy5zZWFyY2hJZCkpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHVwZGF0ZUZpbHRlcnMoZmlsdGVyczogRmllbGRGaWx0ZXJzKTogU2VhcmNoRmFjYWRlIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBVcGRhdGVGaWx0ZXJzKGZpbHRlcnMsIHRoaXMuc2VhcmNoSWQpKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBzZXRTZWFyY2gocGFyYW1zOiBTZWFyY2hTdGF0ZVBhcmFtcyk6IFNlYXJjaEZhY2FkZSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0U2VhcmNoKHBhcmFtcywgdGhpcy5zZWFyY2hJZCkpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHNldEZhdm9yaXRlc09ubHkoZmF2b3JpdGVzT25seTogYm9vbGVhbik6IFNlYXJjaEZhY2FkZSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0RmF2b3JpdGVzT25seShmYXZvcml0ZXNPbmx5LCB0aGlzLnNlYXJjaElkKSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgc2V0SW5jbHVkZU9uQWdncmVnYXRpb24oa2V5OiBzdHJpbmcsIGluY2x1ZGU6IHN0cmluZyk6IFNlYXJjaEZhY2FkZSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIG5ldyBTZXRJbmNsdWRlT25BZ2dyZWdhdGlvbihrZXksIGluY2x1ZGUsIHRoaXMuc2VhcmNoSWQpXG4gICAgKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBzZXRQYWdlU2l6ZShzaXplOiBudW1iZXIpOiBTZWFyY2hGYWNhZGUge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFNldFBhZ2VTaXplKHNpemUsIHRoaXMuc2VhcmNoSWQpKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBwYWdpbmF0ZShwYWdlTnVtYmVyOiBudW1iZXIpOiBTZWFyY2hGYWNhZGUge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFBhZ2luYXRlKHBhZ2VOdW1iZXIsIHRoaXMuc2VhcmNoSWQpKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBzY3JvbGwoKTogU2VhcmNoRmFjYWRlIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBSZXF1ZXN0TW9yZVJlc3VsdHModGhpcy5zZWFyY2hJZCkpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHNldFNvcnRCeShzb3J0Qnk6IFNvcnRCeUZpZWxkKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0U29ydEJ5KHNvcnRCeSwgdGhpcy5zZWFyY2hJZCkpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIHNldFNwYXRpYWxGaWx0ZXJFbmFibGVkKGVuYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBTZXRTcGF0aWFsRmlsdGVyRW5hYmxlZChlbmFibGVkLCB0aGlzLnNlYXJjaElkKSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgcmVzZXRTZWFyY2goKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgUGFnaW5hdGUoMSwgdGhpcy5zZWFyY2hJZCkpXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0RmlsdGVycyh7fSwgdGhpcy5zZWFyY2hJZCkpXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgU2V0U29ydEJ5KFtdLCB0aGlzLnNlYXJjaElkKSlcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBTZXRGYXZvcml0ZXNPbmx5KGZhbHNlLCB0aGlzLnNlYXJjaElkKSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG59XG4iXX0=
|