geonetwork-ui 2.6.0-dev.3a78a5eaa → 2.6.0-dev.47d0cd11c
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/README.md +2 -3
- package/esm2022/libs/api/metadata-converter/src/index.mjs +2 -1
- package/esm2022/libs/api/metadata-converter/src/lib/base.converter.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/common/distribution.mapper.mjs +3 -1
- package/esm2022/libs/api/metadata-converter/src/lib/common/resource-types.mjs +17 -15
- package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.mjs +11 -2
- package/esm2022/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.mjs +59 -15
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.mjs +1 -1
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.mjs +6 -6
- package/esm2022/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.mjs +3 -3
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.mjs +14 -6
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/read-parts.mjs +7 -7
- package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +8 -8
- package/esm2022/libs/api/metadata-converter/src/lib/translate-utils.mjs +17 -0
- package/esm2022/libs/api/repository/src/lib/gn4/auth/auth.service.mjs +4 -4
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +5 -2
- package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +21 -27
- package/esm2022/libs/api/repository/src/lib/gn4/gn4-repository.mjs +79 -16
- package/esm2022/libs/api/repository/src/lib/gn4/gn4.provider.mjs +7 -1
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.mjs +8 -8
- package/esm2022/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.mjs +14 -11
- package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +23 -13
- package/esm2022/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.mjs +2 -1
- package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +1 -1
- package/esm2022/libs/common/domain/src/lib/repository/records-repository.interface.mjs +1 -1
- package/esm2022/libs/feature/catalog/src/lib/feature-catalog.module.mjs +7 -31
- package/esm2022/libs/feature/catalog/src/lib/sources/sources.service.mjs +9 -8
- package/esm2022/libs/feature/dataviz/src/lib/chart-view/chart-view.component.mjs +51 -11
- package/esm2022/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.mjs +4 -5
- package/esm2022/libs/feature/dataviz/src/lib/geo-table-view/geo-table-view.component.mjs +2 -2
- package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +36 -3
- package/esm2022/libs/feature/dataviz/src/lib/table-view/table-view.component.mjs +31 -8
- package/esm2022/libs/feature/editor/src/index.mjs +2 -4
- package/esm2022/libs/feature/editor/src/lib/+state/editor.actions.mjs +2 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.effects.mjs +13 -7
- package/esm2022/libs/feature/editor/src/lib/+state/editor.facade.mjs +4 -1
- package/esm2022/libs/feature/editor/src/lib/+state/editor.reducer.mjs +5 -1
- package/esm2022/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.mjs +5 -7
- package/esm2022/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.mjs +8 -13
- package/esm2022/libs/feature/editor/src/lib/components/import-record/import-record.component.mjs +5 -6
- package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +275 -0
- package/esm2022/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.mjs +5 -15
- package/esm2022/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +5 -5
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints/form-field-constraints.component.mjs +5 -8
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints-shortcuts/form-field-constraints-shortcuts.component.mjs +4 -5
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.mjs +6 -10
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.mjs +9 -14
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.mjs +4 -15
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.mjs +7 -7
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.mjs +4 -4
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.mjs +6 -17
- package/esm2022/libs/feature/editor/src/lib/components/record-form/record-form.component.mjs +4 -5
- package/esm2022/libs/feature/editor/src/lib/feature-editor.module.mjs +12 -30
- package/esm2022/libs/feature/editor/src/lib/models/index.mjs +1 -3
- package/esm2022/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.mjs +5 -6
- package/esm2022/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.mjs +11 -8
- package/esm2022/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.mjs +11 -8
- package/esm2022/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.mjs +11 -6
- package/esm2022/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.mjs +10 -5
- package/esm2022/libs/feature/map/src/lib/feature-map.module.mjs +3 -36
- package/esm2022/libs/feature/map/src/lib/geocoding/geocoding.component.mjs +5 -11
- package/esm2022/libs/feature/map/src/lib/layers-panel/layers-panel.component.mjs +6 -6
- package/esm2022/libs/feature/map/src/lib/map-state-container/map-state-container.component.mjs +2 -2
- package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +2 -4
- package/esm2022/libs/feature/record/src/index.mjs +2 -4
- package/esm2022/libs/feature/record/src/lib/data-view/data-view.component.mjs +20 -19
- package/esm2022/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.mjs +10 -15
- package/esm2022/libs/feature/record/src/lib/data-view-share/data-view-share.component.mjs +5 -6
- package/esm2022/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.mjs +12 -17
- package/esm2022/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.mjs +7 -4
- package/esm2022/libs/feature/record/src/lib/feature-record.module.mjs +8 -22
- package/esm2022/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.mjs +5 -5
- package/esm2022/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.mjs +15 -7
- package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +136 -30
- package/esm2022/libs/feature/record/src/lib/record-meta/record-meta.component.mjs +1 -1
- package/esm2022/libs/feature/record/src/lib/state/mdview.actions.mjs +3 -1
- package/esm2022/libs/feature/record/src/lib/state/mdview.effects.mjs +14 -5
- package/esm2022/libs/feature/record/src/lib/state/mdview.facade.mjs +13 -15
- package/esm2022/libs/feature/record/src/lib/state/mdview.reducer.mjs +7 -1
- package/esm2022/libs/feature/record/src/lib/state/mdview.selectors.mjs +3 -1
- package/esm2022/libs/feature/router/src/lib/default/constants.mjs +3 -1
- package/esm2022/libs/feature/router/src/lib/default/router.config.mjs +1 -1
- package/esm2022/libs/feature/router/src/lib/default/router.service.mjs +10 -2
- package/esm2022/libs/feature/router/src/lib/default/state/router.facade.mjs +9 -3
- package/esm2022/libs/feature/search/src/index.mjs +2 -2
- package/esm2022/libs/feature/search/src/lib/constants.mjs +4 -2
- package/esm2022/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.mjs +12 -8
- package/esm2022/libs/feature/search/src/lib/feature-search.module.mjs +33 -42
- package/esm2022/libs/feature/search/src/lib/filter-dropdown/filter-dropdown.component.mjs +3 -3
- package/esm2022/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.mjs +8 -6
- package/esm2022/libs/feature/search/src/lib/record-url.token.mjs +4 -2
- package/esm2022/libs/feature/search/src/lib/results-hits/results-hits.container.component.mjs +41 -0
- package/esm2022/libs/feature/search/src/lib/results-list/results-list.container.component.mjs +35 -15
- package/esm2022/libs/feature/search/src/lib/results-table/results-table-container.component.mjs +13 -10
- package/esm2022/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.mjs +5 -7
- package/esm2022/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.mjs +4 -4
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.mjs +74 -4
- package/esm2022/libs/feature/search/src/lib/utils/service/fields.service.mjs +4 -3
- package/esm2022/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.mjs +3 -3
- package/esm2022/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.mjs +4 -5
- package/esm2022/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.mjs +4 -5
- package/esm2022/libs/ui/catalog/src/lib/organisations-result/organisations-result.component.mjs +4 -5
- package/esm2022/libs/ui/dataviz/src/index.mjs +1 -2
- package/esm2022/libs/ui/dataviz/src/lib/chart/chart.component.mjs +5 -3
- package/esm2022/libs/ui/dataviz/src/lib/data-table/data-table.component.mjs +13 -8
- package/esm2022/libs/ui/dataviz/src/lib/figure/figure.component.mjs +5 -5
- package/esm2022/libs/ui/elements/src/index.mjs +6 -3
- package/esm2022/libs/ui/elements/src/lib/api-card/api-card.component.mjs +31 -10
- package/esm2022/libs/ui/elements/src/lib/application-banner/application-banner.component.mjs +5 -5
- package/esm2022/libs/ui/elements/src/lib/avatar/avatar.component.mjs +4 -3
- package/esm2022/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.mjs +5 -3
- package/esm2022/libs/ui/elements/src/lib/download-item/download-item.component.mjs +24 -9
- package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +20 -9
- package/esm2022/libs/ui/elements/src/lib/error/error.component.mjs +4 -5
- package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +54 -0
- package/esm2022/libs/ui/elements/src/lib/image-input/image-input.component.mjs +4 -5
- package/esm2022/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.mjs +3 -3
- package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +120 -0
- package/esm2022/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.mjs +58 -0
- package/esm2022/libs/ui/elements/src/lib/kind-badge/kind-badge.component.mjs +65 -0
- package/esm2022/libs/ui/elements/src/lib/link-card/link-card.component.mjs +28 -7
- package/esm2022/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.mjs +3 -6
- package/esm2022/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.mjs +4 -5
- package/esm2022/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.mjs +5 -6
- package/esm2022/libs/ui/elements/src/lib/metadata-info/metadata-info.component.mjs +10 -8
- package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +40 -17
- package/esm2022/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.mjs +8 -5
- package/esm2022/libs/ui/elements/src/lib/record-api-form/record-api-form.component.mjs +9 -6
- package/esm2022/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.mjs +71 -0
- package/esm2022/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.mjs +170 -0
- package/esm2022/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.mjs +4 -5
- package/esm2022/libs/ui/elements/src/lib/user-preview/user-preview.component.mjs +5 -4
- package/esm2022/libs/ui/inputs/src/index.mjs +3 -3
- package/esm2022/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.mjs +10 -13
- package/esm2022/libs/ui/inputs/src/lib/button/button.component.mjs +2 -2
- package/esm2022/libs/ui/inputs/src/lib/checkbox/checkbox.component.mjs +4 -3
- package/esm2022/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.mjs +7 -6
- package/esm2022/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.mjs +29 -7
- package/esm2022/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.mjs +5 -6
- package/esm2022/libs/ui/inputs/src/lib/file-input/file-input.component.mjs +5 -7
- package/esm2022/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.mjs +43 -0
- package/esm2022/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.mjs +2 -0
- package/esm2022/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.mjs +73 -0
- package/esm2022/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.mjs +8 -3
- package/esm2022/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.mjs +4 -5
- package/esm2022/libs/ui/inputs/src/lib/viewport-intersector/viewport-intersector.component.mjs +3 -3
- package/esm2022/libs/ui/layout/src/index.mjs +3 -2
- package/esm2022/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.mjs +44 -3
- package/esm2022/libs/ui/layout/src/lib/block-list/block-list.component.mjs +48 -11
- package/esm2022/libs/ui/layout/src/lib/carousel/carousel.component.mjs +3 -3
- package/esm2022/libs/ui/layout/src/lib/cell-popin/cell-popin.component.mjs +110 -0
- package/esm2022/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.mjs +34 -13
- package/esm2022/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.mjs +4 -5
- package/esm2022/libs/ui/layout/src/lib/interactive-table/interactive-table.component.mjs +26 -5
- package/esm2022/libs/ui/layout/src/lib/max-lines/max-lines.component.mjs +4 -5
- package/esm2022/libs/ui/layout/src/lib/pagination/pagination.component.mjs +4 -5
- package/esm2022/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.mjs +6 -6
- package/esm2022/libs/ui/layout/src/lib/sticky-header/sticky-header.component.mjs +4 -3
- package/esm2022/libs/ui/layout/src/lib/truncated-text/truncated-text.component.mjs +71 -0
- package/esm2022/libs/ui/map/src/index.mjs +2 -1
- package/esm2022/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.mjs +29 -4
- package/esm2022/libs/ui/map/src/lib/components/map-container/map-container.component.mjs +17 -7
- package/esm2022/libs/ui/map/src/lib/components/map-legend/map-legend.component.mjs +5 -1
- package/esm2022/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.mjs +80 -0
- package/esm2022/libs/ui/search/src/index.mjs +3 -1
- package/esm2022/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.mjs +6 -6
- package/esm2022/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.mjs +4 -8
- package/esm2022/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.mjs +3 -3
- package/esm2022/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.mjs +53 -0
- package/esm2022/libs/ui/search/src/lib/results-list/results-layout.config.mjs +2 -2
- package/esm2022/libs/ui/search/src/lib/results-list/results-list.component.mjs +3 -3
- package/esm2022/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.mjs +24 -17
- package/esm2022/libs/ui/search/src/lib/results-table/results-table.component.mjs +45 -20
- package/esm2022/libs/ui/search/src/lib/ui-search.module.mjs +39 -26
- package/esm2022/libs/ui/widgets/src/index.mjs +1 -2
- package/esm2022/libs/ui/widgets/src/lib/color-scale/color-scale.component.mjs +3 -3
- package/esm2022/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.mjs +3 -3
- package/esm2022/libs/util/app-config/src/lib/app-config.mjs +2 -3
- package/esm2022/libs/util/app-config/src/lib/fixtures.mjs +2 -1
- package/esm2022/libs/util/data-fetcher/src/lib/data-fetcher.mjs +6 -2
- package/esm2022/libs/util/data-fetcher/src/lib/model.mjs +4 -1
- package/esm2022/libs/util/data-fetcher/src/lib/readers/wfs.mjs +30 -2
- package/esm2022/libs/util/i18n/src/index.mjs +2 -3
- package/esm2022/libs/util/i18n/src/lib/embedded.translate.loader.mjs +3 -2
- package/esm2022/libs/util/i18n/src/lib/i18n.constants.mjs +36 -28
- package/esm2022/libs/util/i18n/src/lib/i18n.interceptor.mjs +10 -9
- package/esm2022/libs/util/i18n/src/lib/i18n.providers.mjs +41 -0
- package/esm2022/libs/util/i18n/src/lib/language-codes.mjs +63 -3
- package/esm2022/libs/util/shared/src/index.mjs +3 -2
- package/esm2022/libs/util/shared/src/lib/gn-ui-version.mjs +6 -0
- package/esm2022/libs/util/shared/src/lib/image-fallback.directive.mjs +3 -2
- package/esm2022/libs/util/shared/src/lib/links/link-classifier.service.mjs +5 -1
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +36 -24
- package/esm2022/libs/util/shared/src/lib/record.util.mjs +56 -0
- package/esm2022/translations/de.json +87 -24
- package/esm2022/translations/en.json +88 -25
- package/esm2022/translations/es.json +86 -23
- package/esm2022/translations/fr.json +88 -25
- package/esm2022/translations/it.json +86 -24
- package/esm2022/translations/nl.json +86 -23
- package/esm2022/translations/pt.json +86 -23
- package/esm2022/translations/sk.json +603 -0
- package/fesm2022/geonetwork-ui.mjs +12220 -9875
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/api/metadata-converter/src/index.d.ts +1 -0
- package/libs/api/metadata-converter/src/index.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/base.converter.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/common/distribution.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts +21 -0
- package/libs/api/metadata-converter/src/lib/common/resource-types.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts +4 -4
- package/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts +0 -1
- package/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts +1 -0
- package/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.d.ts.map +1 -1
- package/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.d.ts.map +1 -1
- 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.map +1 -1
- package/libs/api/metadata-converter/src/lib/translate-utils.d.ts +2 -0
- package/libs/api/metadata-converter/src/lib/translate-utils.d.ts.map +1 -0
- package/libs/api/repository/src/lib/gn4/auth/auth.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +9 -7
- package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts +14 -3
- package/libs/api/repository/src/lib/gn4/gn4-repository.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/gn4.provider.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.d.ts +1 -0
- package/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.d.ts +4 -4
- 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.service.d.ts +6 -3
- package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
- package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts +1 -0
- package/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.d.ts.map +1 -1
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts +27 -17
- package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts +7 -1
- package/libs/common/domain/src/lib/repository/records-repository.interface.d.ts.map +1 -1
- package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts +4 -8
- package/libs/feature/catalog/src/lib/feature-catalog.module.d.ts.map +1 -1
- package/libs/feature/catalog/src/lib/sources/sources.service.d.ts +3 -3
- package/libs/feature/catalog/src/lib/sources/sources.service.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts +12 -8
- package/libs/feature/dataviz/src/lib/chart-view/chart-view.component.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts +1 -0
- package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
- package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts +6 -3
- package/libs/feature/dataviz/src/lib/table-view/table-view.component.d.ts.map +1 -1
- package/libs/feature/editor/src/index.d.ts +1 -3
- package/libs/feature/editor/src/index.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts +8 -1
- package/libs/feature/editor/src/lib/+state/editor.actions.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.effects.d.ts +10 -12
- package/libs/feature/editor/src/lib/+state/editor.effects.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts +2 -1
- package/libs/feature/editor/src/lib/+state/editor.facade.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.reducer.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts +1 -1
- package/libs/feature/editor/src/lib/+state/editor.selectors.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/import-record/import-record.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.d.ts +52 -0
- package/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.d.ts.map +1 -0
- package/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +6 -6
- package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints/form-field-constraints.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/feature-editor.module.d.ts +10 -17
- package/libs/feature/editor/src/lib/feature-editor.module.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/models/index.d.ts +0 -2
- package/libs/feature/editor/src/lib/models/index.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/feature-map.module.d.ts +2 -11
- 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.map +1 -1
- package/libs/feature/map/src/lib/layers-panel/layers-panel.component.d.ts.map +1 -1
- package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
- package/libs/feature/record/src/index.d.ts +1 -3
- package/libs/feature/record/src/index.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts +15 -4
- package/libs/feature/record/src/lib/data-view/data-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts +2 -3
- package/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts +1 -2
- package/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts +2 -1
- package/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/feature-record.module.d.ts +8 -12
- package/libs/feature/record/src/lib/feature-record.module.d.ts.map +1 -1
- package/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts +20 -8
- package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
- package/libs/feature/record/src/lib/record-meta/record-meta.component.d.ts +2 -2
- package/libs/feature/record/src/lib/state/mdview.actions.d.ts +10 -0
- package/libs/feature/record/src/lib/state/mdview.actions.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.effects.d.ts +9 -1
- package/libs/feature/record/src/lib/state/mdview.effects.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.facade.d.ts +28 -21
- package/libs/feature/record/src/lib/state/mdview.facade.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.reducer.d.ts +2 -0
- package/libs/feature/record/src/lib/state/mdview.reducer.d.ts.map +1 -1
- package/libs/feature/record/src/lib/state/mdview.selectors.d.ts +2 -0
- package/libs/feature/record/src/lib/state/mdview.selectors.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/constants.d.ts +2 -0
- package/libs/feature/router/src/lib/default/constants.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/router.config.d.ts +2 -0
- package/libs/feature/router/src/lib/default/router.config.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/router.service.d.ts.map +1 -1
- package/libs/feature/router/src/lib/default/state/router.facade.d.ts +5 -0
- package/libs/feature/router/src/lib/default/state/router.facade.d.ts.map +1 -1
- package/libs/feature/search/src/index.d.ts +1 -1
- package/libs/feature/search/src/index.d.ts.map +1 -1
- package/libs/feature/search/src/lib/constants.d.ts.map +1 -1
- package/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.d.ts +2 -1
- 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 +24 -22
- package/libs/feature/search/src/lib/feature-search.module.d.ts.map +1 -1
- package/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.d.ts +2 -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 -1
- package/libs/feature/search/src/lib/record-url.token.d.ts.map +1 -1
- package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts +21 -0
- package/libs/feature/search/src/lib/results-hits/results-hits.container.component.d.ts.map +1 -0
- package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts +5 -3
- package/libs/feature/search/src/lib/results-list/results-list.container.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts +6 -5
- package/libs/feature/search/src/lib/results-table/results-table-container.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.d.ts +1 -2
- package/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.d.ts.map +1 -1
- package/libs/feature/search/src/lib/utils/service/fields.d.ts +22 -2
- 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/index.d.ts +0 -1
- package/libs/ui/dataviz/src/index.d.ts.map +1 -1
- package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts +2 -1
- package/libs/ui/dataviz/src/lib/chart/chart.component.d.ts.map +1 -1
- package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts +6 -1
- package/libs/ui/dataviz/src/lib/data-table/data-table.component.d.ts.map +1 -1
- package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts +1 -1
- package/libs/ui/dataviz/src/lib/figure/figure.component.d.ts.map +1 -1
- package/libs/ui/elements/src/index.d.ts +5 -2
- package/libs/ui/elements/src/index.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts +9 -1
- package/libs/ui/elements/src/lib/api-card/api-card.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/avatar/avatar.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/avatar/avatar.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts +2 -0
- package/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts +8 -1
- package/libs/ui/elements/src/lib/download-item/download-item.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +7 -1
- package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts +15 -0
- package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts +36 -0
- package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.d.ts +14 -0
- package/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts +13 -0
- package/libs/ui/elements/src/lib/kind-badge/kind-badge.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts +10 -2
- package/libs/ui/elements/src/lib/link-card/link-card.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-info/metadata-info.component.d.ts +2 -2
- 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 +3 -0
- package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.d.ts.map +1 -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/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts +27 -0
- package/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts +31 -0
- package/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.d.ts.map +1 -0
- package/libs/ui/elements/src/lib/user-preview/user-preview.component.d.ts +1 -1
- package/libs/ui/elements/src/lib/user-preview/user-preview.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/index.d.ts +2 -2
- package/libs/ui/inputs/src/index.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.d.ts +1 -2
- package/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.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/checkbox/checkbox.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/checkbox/checkbox.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/file-input/file-input.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.d.ts +14 -0
- package/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.d.ts.map +1 -0
- package/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.d.ts +6 -0
- package/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.d.ts.map +1 -0
- package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts +17 -0
- package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts.map +1 -0
- package/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.d.ts +2 -1
- package/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.d.ts.map +1 -1
- package/libs/ui/inputs/src/lib/viewport-intersector/viewport-intersector.component.d.ts +1 -1
- package/libs/ui/inputs/src/lib/viewport-intersector/viewport-intersector.component.d.ts.map +1 -1
- package/libs/ui/layout/src/index.d.ts +2 -1
- package/libs/ui/layout/src/index.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts +10 -3
- package/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts +9 -2
- package/libs/ui/layout/src/lib/block-list/block-list.component.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/cell-popin/cell-popin.component.d.ts +28 -0
- package/libs/ui/layout/src/lib/cell-popin/cell-popin.component.d.ts.map +1 -0
- package/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.d.ts +15 -8
- package/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts +5 -1
- package/libs/ui/layout/src/lib/interactive-table/interactive-table.component.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/sticky-header/sticky-header.component.d.ts +1 -1
- package/libs/ui/layout/src/lib/sticky-header/sticky-header.component.d.ts.map +1 -1
- package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts +22 -0
- package/libs/ui/layout/src/lib/truncated-text/truncated-text.component.d.ts.map +1 -0
- package/libs/ui/map/src/index.d.ts +1 -0
- package/libs/ui/map/src/index.d.ts.map +1 -1
- package/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.d.ts +6 -2
- package/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.d.ts.map +1 -1
- package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts +4 -2
- package/libs/ui/map/src/lib/components/map-container/map-container.component.d.ts.map +1 -1
- package/libs/ui/map/src/lib/components/map-legend/map-legend.component.d.ts.map +1 -1
- package/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.d.ts +15 -0
- package/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.d.ts.map +1 -0
- package/libs/ui/search/src/index.d.ts +2 -0
- package/libs/ui/search/src/index.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts +17 -0
- package/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.d.ts.map +1 -0
- package/libs/ui/search/src/lib/results-list/results-list.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts +4 -3
- package/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts +10 -4
- package/libs/ui/search/src/lib/results-table/results-table.component.d.ts.map +1 -1
- package/libs/ui/search/src/lib/ui-search.module.d.ts +22 -19
- package/libs/ui/search/src/lib/ui-search.module.d.ts.map +1 -1
- package/libs/ui/widgets/src/index.d.ts +0 -1
- package/libs/ui/widgets/src/index.d.ts.map +1 -1
- package/libs/ui/widgets/src/lib/color-scale/color-scale.component.d.ts +1 -1
- package/libs/ui/widgets/src/lib/color-scale/color-scale.component.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/app-config.d.ts +0 -1
- package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
- package/libs/util/app-config/src/lib/fixtures.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/data-fetcher.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/model.d.ts +3 -2
- package/libs/util/data-fetcher/src/lib/model.d.ts.map +1 -1
- package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts +1 -0
- package/libs/util/data-fetcher/src/lib/readers/wfs.d.ts.map +1 -1
- package/libs/util/i18n/src/index.d.ts +1 -2
- package/libs/util/i18n/src/index.d.ts.map +1 -1
- package/libs/util/i18n/src/lib/embedded.translate.loader.d.ts +1 -1
- package/libs/util/i18n/src/lib/embedded.translate.loader.d.ts.map +1 -1
- package/libs/util/i18n/src/lib/i18n.constants.d.ts +6 -15
- package/libs/util/i18n/src/lib/i18n.constants.d.ts.map +1 -1
- package/libs/util/i18n/src/lib/i18n.interceptor.d.ts +5 -5
- package/libs/util/i18n/src/lib/i18n.interceptor.d.ts.map +1 -1
- package/libs/util/i18n/src/lib/i18n.providers.d.ts +4 -0
- package/libs/util/i18n/src/lib/i18n.providers.d.ts.map +1 -0
- package/libs/util/i18n/src/lib/language-codes.d.ts +15 -19
- package/libs/util/i18n/src/lib/language-codes.d.ts.map +1 -1
- package/libs/util/shared/src/index.d.ts +2 -1
- package/libs/util/shared/src/index.d.ts.map +1 -1
- package/libs/util/shared/src/lib/gn-ui-version.d.ts +3 -0
- package/libs/util/shared/src/lib/gn-ui-version.d.ts.map +1 -0
- package/libs/util/shared/src/lib/image-fallback.directive.d.ts +1 -1
- package/libs/util/shared/src/lib/image-fallback.directive.d.ts.map +1 -1
- package/libs/util/shared/src/lib/links/link-classifier.service.d.ts +3 -3
- package/libs/util/shared/src/lib/links/link-classifier.service.d.ts.map +1 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts +30 -23
- package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
- package/libs/util/shared/src/lib/record.util.d.ts +3 -0
- package/libs/util/shared/src/lib/record.util.d.ts.map +1 -0
- package/package.json +4 -4
- package/src/libs/api/metadata-converter/src/index.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/base.converter.ts +1 -4
- package/src/libs/api/metadata-converter/src/lib/common/distribution.mapper.ts +1 -0
- package/src/libs/api/metadata-converter/src/lib/common/resource-types.ts +29 -15
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/dcat-ap.converter.ts +10 -1
- package/src/libs/api/metadata-converter/src/lib/dcat-ap/read-parts.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/fixtures/geo2france.records.service+eaux-usees.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/fixtures/geocat-ch.records.ts +3 -3
- package/src/libs/api/metadata-converter/src/lib/fixtures/metadata-for-i18n.records.ts +4196 -0
- package/src/libs/api/metadata-converter/src/lib/fixtures/metawal.records.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/fixtures/wallonie.records.service+napitswallonia.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/gn4/gn4.field.mapper.ts +81 -11
- package/src/libs/api/metadata-converter/src/lib/gn4/metadata-url.service.ts +4 -4
- package/src/libs/api/metadata-converter/src/lib/gn4/types/metadata.model.ts +0 -1
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/read-parts.ts +11 -5
- package/src/libs/api/metadata-converter/src/lib/iso19115-3/write-parts.ts +2 -2
- package/src/libs/api/metadata-converter/src/lib/iso19139/iso19139.converter.ts +14 -8
- package/src/libs/api/metadata-converter/src/lib/iso19139/read-parts.ts +12 -8
- package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +8 -7
- package/src/libs/api/metadata-converter/src/lib/translate-utils.ts +17 -0
- package/src/libs/api/repository/src/lib/gn4/auth/auth.service.ts +3 -6
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +4 -1
- package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +17 -17
- package/src/libs/api/repository/src/lib/gn4/gn4-repository.ts +119 -16
- package/src/libs/api/repository/src/lib/gn4/gn4.provider.ts +6 -0
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-groups.service.ts +8 -7
- package/src/libs/api/repository/src/lib/gn4/organizations/organizations-from-metadata.service.ts +13 -6
- package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +24 -20
- package/src/libs/api/repository/src/lib/gn4/settings/gn4-settings.service.ts +3 -0
- package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +28 -11
- package/src/libs/common/domain/src/lib/repository/records-repository.interface.ts +11 -1
- package/src/libs/common/fixtures/src/lib/elasticsearch/metadata-links.fixtures.ts +36 -26
- package/src/libs/common/fixtures/src/lib/link.fixtures.ts +16 -2
- package/src/libs/common/fixtures/src/lib/record-link.fixtures.ts +5 -5
- package/src/libs/common/fixtures/src/lib/records.fixtures.ts +114 -1
- package/src/libs/feature/catalog/src/lib/feature-catalog.module.ts +4 -17
- package/src/libs/feature/catalog/src/lib/sources/sources.service.ts +7 -3
- package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.html +13 -9
- package/src/libs/feature/dataviz/src/lib/chart-view/chart-view.component.ts +60 -12
- package/src/libs/feature/dataviz/src/lib/figure/figure-container/figure-container.component.ts +2 -2
- package/src/libs/feature/dataviz/src/lib/service/data.service.ts +41 -1
- package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.html +11 -8
- package/src/libs/feature/dataviz/src/lib/table-view/table-view.component.ts +33 -3
- package/src/libs/feature/editor/src/index.ts +1 -3
- package/src/libs/feature/editor/src/lib/+state/editor.actions.ts +9 -1
- package/src/libs/feature/editor/src/lib/+state/editor.effects.ts +23 -12
- package/src/libs/feature/editor/src/lib/+state/editor.facade.ts +13 -1
- package/src/libs/feature/editor/src/lib/+state/editor.reducer.ts +9 -1
- package/src/libs/feature/editor/src/lib/components/constraint-card/constraint-card.component.ts +3 -4
- package/src/libs/feature/editor/src/lib/components/generic-keywords/generic-keywords.component.ts +5 -16
- package/src/libs/feature/editor/src/lib/components/import-record/import-record.component.ts +7 -5
- package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +120 -0
- package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.ts +331 -0
- package/src/libs/feature/editor/src/lib/components/online-resource-card/online-resource-card.component.ts +3 -12
- package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +5 -4
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints/form-field-constraints.component.ts +3 -4
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-constraints-shortcuts/form-field-constraints-shortcuts.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts/form-field-contacts.component.ts +4 -11
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-contacts-for-resource/form-field-contacts-for-resource.component.ts +6 -9
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-keywords/form-field-keywords.component.ts +2 -17
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-link-resources/form-field-online-link-resources.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-overviews/form-field-overviews.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.html +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-spatial-extent/form-field-spatial-extent.component.ts +4 -4
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-temporal-extents/form-field-temporal-extents.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-update-frequency/form-field-update-frequency.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field.component.ts +2 -15
- package/src/libs/feature/editor/src/lib/components/record-form/record-form.component.ts +2 -2
- package/src/libs/feature/editor/src/lib/feature-editor.module.ts +4 -17
- package/src/libs/feature/editor/src/lib/models/index.ts +0 -2
- package/src/libs/feature/map/src/lib/add-layer-from-catalog/add-layer-from-catalog.component.ts +2 -1
- package/src/libs/feature/map/src/lib/add-layer-from-file/add-layer-from-file.component.ts +8 -3
- package/src/libs/feature/map/src/lib/add-layer-from-ogc-api/add-layer-from-ogc-api.component.ts +10 -3
- package/src/libs/feature/map/src/lib/add-layer-from-wfs/add-layer-from-wfs.component.ts +8 -2
- package/src/libs/feature/map/src/lib/add-layer-from-wms/add-layer-from-wms.component.ts +8 -2
- package/src/libs/feature/map/src/lib/feature-map.module.ts +0 -17
- package/src/libs/feature/map/src/lib/geocoding/geocoding.component.ts +3 -8
- package/src/libs/feature/map/src/lib/layers-panel/layers-panel.component.ts +3 -2
- package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +1 -3
- package/src/libs/feature/record/src/index.ts +1 -3
- package/src/libs/feature/record/src/lib/data-view/data-view.component.html +17 -11
- package/src/libs/feature/record/src/lib/data-view/data-view.component.ts +22 -19
- package/src/libs/feature/record/src/lib/data-view-permalink/data-view-permalink.component.ts +4 -5
- package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.html +1 -1
- package/src/libs/feature/record/src/lib/data-view-share/data-view-share.component.ts +2 -2
- package/src/libs/feature/record/src/lib/data-view-web-component/data-view-web-component.component.ts +6 -7
- package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.html +2 -2
- package/src/libs/feature/record/src/lib/external-viewer-button/external-viewer-button.component.ts +3 -2
- package/src/libs/feature/record/src/lib/feature-record.module.ts +4 -13
- package/src/libs/feature/record/src/lib/gpf-api-dl/gpf-api-dl.component.ts +4 -3
- package/src/libs/feature/record/src/lib/gpf-api-dl-list-item/gpf-api-dl-list-item.component.ts +10 -4
- package/src/libs/feature/record/src/lib/map-view/map-view.component.html +39 -11
- package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +173 -25
- package/src/libs/feature/record/src/lib/record-meta/record-meta.component.ts +2 -2
- package/src/libs/feature/record/src/lib/state/mdview.actions.ts +10 -0
- package/src/libs/feature/record/src/lib/state/mdview.effects.ts +27 -3
- package/src/libs/feature/record/src/lib/state/mdview.facade.ts +21 -17
- package/src/libs/feature/record/src/lib/state/mdview.reducer.ts +12 -0
- package/src/libs/feature/record/src/lib/state/mdview.selectors.ts +9 -0
- package/src/libs/feature/router/src/lib/default/constants.ts +2 -0
- package/src/libs/feature/router/src/lib/default/router.config.ts +2 -0
- package/src/libs/feature/router/src/lib/default/router.service.ts +10 -0
- package/src/libs/feature/router/src/lib/default/state/router.facade.ts +10 -1
- package/src/libs/feature/search/src/index.ts +1 -1
- package/src/libs/feature/search/src/lib/constants.ts +3 -1
- package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.html +2 -7
- package/src/libs/feature/search/src/lib/favorites/favorite-star/favorite-star.component.ts +16 -7
- package/src/libs/feature/search/src/lib/feature-search.module.ts +17 -23
- package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.html +1 -1
- package/src/libs/feature/search/src/lib/fuzzy-search/fuzzy-search.component.ts +5 -0
- package/src/libs/feature/search/src/lib/record-url.token.ts +10 -1
- package/src/libs/feature/search/src/lib/results-hits/results-hits.container.component.html +16 -0
- package/src/libs/feature/search/src/lib/results-hits/results-hits.container.component.ts +59 -0
- package/src/libs/feature/search/src/lib/results-list/results-list.container.component.css +6 -0
- package/src/libs/feature/search/src/lib/results-list/results-list.container.component.html +1 -0
- package/src/libs/feature/search/src/lib/results-list/results-list.container.component.ts +26 -5
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.html +1 -0
- package/src/libs/feature/search/src/lib/results-table/results-table-container.component.ts +13 -3
- package/src/libs/feature/search/src/lib/search-filters-summary/search-filters-summary.component.ts +10 -4
- package/src/libs/feature/search/src/lib/search-filters-summary-item/search-filters-summary-item.component.ts +2 -2
- package/src/libs/feature/search/src/lib/utils/service/fields.service.ts +4 -5
- package/src/libs/feature/search/src/lib/utils/service/fields.ts +103 -3
- package/src/libs/ui/catalog/src/lib/language-switcher/language-switcher.component.html +1 -1
- package/src/libs/ui/catalog/src/lib/organisation-preview/organisation-preview.component.ts +2 -2
- package/src/libs/ui/catalog/src/lib/organisations-filter/organisations-filter.component.ts +2 -2
- package/src/libs/ui/catalog/src/lib/organisations-result/organisations-result.component.ts +2 -2
- package/src/libs/ui/dataviz/src/index.ts +0 -1
- package/src/libs/ui/dataviz/src/lib/chart/chart.component.ts +2 -1
- package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.html +6 -3
- package/src/libs/ui/dataviz/src/lib/data-table/data-table.component.ts +7 -6
- package/src/libs/ui/dataviz/src/lib/figure/figure.component.html +0 -1
- package/src/libs/ui/dataviz/src/lib/figure/figure.component.ts +4 -0
- package/src/libs/ui/elements/src/index.ts +5 -2
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.html +64 -38
- package/src/libs/ui/elements/src/lib/api-card/api-card.component.ts +29 -4
- package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.html +6 -6
- package/src/libs/ui/elements/src/lib/application-banner/application-banner.component.ts +2 -2
- package/src/libs/ui/elements/src/lib/avatar/avatar.component.ts +3 -0
- package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.html +6 -2
- package/src/libs/ui/elements/src/lib/confirmation-dialog/confirmation-dialog.component.ts +5 -1
- package/src/libs/ui/elements/src/lib/download-item/download-item.component.html +21 -18
- package/src/libs/ui/elements/src/lib/download-item/download-item.component.ts +22 -4
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +42 -10
- package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +28 -4
- package/src/libs/ui/elements/src/lib/error/error.component.ts +2 -2
- package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.css +4 -0
- package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.html +13 -0
- package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +54 -0
- package/src/libs/ui/elements/src/lib/image-input/image-input.component.ts +2 -2
- package/src/libs/ui/elements/src/lib/image-overlay-preview/image-overlay-preview.component.html +1 -1
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.css +0 -0
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +83 -0
- package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +129 -0
- package/src/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.html +69 -0
- package/src/libs/ui/elements/src/lib/internal-link-card-contact/internal-link-card-contact.component.ts +61 -0
- package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.css +6 -0
- package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.html +11 -0
- package/src/libs/ui/elements/src/lib/kind-badge/kind-badge.component.ts +69 -0
- package/src/libs/ui/elements/src/lib/link-card/link-card.component.html +30 -29
- package/src/libs/ui/elements/src/lib/link-card/link-card.component.ts +28 -2
- package/src/libs/ui/elements/src/lib/markdown-editor/markdown-editor.component.ts +1 -4
- package/src/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.html +3 -5
- package/src/libs/ui/elements/src/lib/metadata-catalog/metadata-catalog.component.ts +2 -2
- package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.html +12 -9
- package/src/libs/ui/elements/src/lib/metadata-contact/metadata-contact.component.ts +2 -2
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css +9 -0
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +24 -7
- package/src/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +11 -6
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +3 -2
- package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +51 -13
- package/src/libs/ui/elements/src/lib/metadata-quality-item/metadata-quality-item.component.ts +6 -2
- package/src/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +6 -3
- package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.html +107 -0
- package/src/libs/ui/elements/src/lib/record-feature-catalog/feature-catalog-list/feature-catalog-list.component.ts +83 -0
- package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.css +0 -0
- package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.html +110 -0
- package/src/libs/ui/elements/src/lib/service-capabilities/service-capabilities.component.ts +196 -0
- package/src/libs/ui/elements/src/lib/user-feedback-item/user-feedback-item.component.ts +2 -2
- package/src/libs/ui/elements/src/lib/user-preview/user-preview.component.ts +4 -0
- package/src/libs/ui/inputs/src/index.ts +2 -2
- package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.html +3 -3
- package/src/libs/ui/inputs/src/lib/autocomplete/autocomplete.component.ts +6 -9
- package/src/libs/ui/inputs/src/lib/button/button.component.ts +2 -2
- package/src/libs/ui/inputs/src/lib/checkbox/checkbox.component.ts +3 -0
- package/src/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/drag-and-drop-file-input/drag-and-drop-file-input.component.ts +4 -0
- package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/dropdown-multiselect/dropdown-multiselect.component.ts +27 -0
- package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.html +1 -1
- package/src/libs/ui/inputs/src/lib/dropdown-selector/dropdown-selector.component.ts +2 -2
- package/src/libs/ui/inputs/src/lib/file-input/file-input.component.ts +3 -4
- package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.html +23 -0
- package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.component.ts +47 -0
- package/src/libs/ui/inputs/src/lib/inline-filter/inline-filter.model.ts +5 -0
- package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.css +0 -0
- package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.html +43 -0
- package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +83 -0
- package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.css +0 -1
- package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.html +11 -8
- package/src/libs/ui/inputs/src/lib/star-toggle/star-toggle.component.ts +4 -1
- package/src/libs/ui/inputs/src/lib/switch-toggle/switch-toggle.component.ts +2 -2
- package/src/libs/ui/inputs/src/lib/viewport-intersector/viewport-intersector.component.ts +1 -0
- package/src/libs/ui/layout/src/index.ts +2 -1
- package/src/libs/ui/layout/src/lib/anchor-link/anchor-link.directive.ts +47 -2
- package/src/libs/ui/layout/src/lib/block-list/block-list.component.css +22 -0
- package/src/libs/ui/layout/src/lib/block-list/block-list.component.html +2 -2
- package/src/libs/ui/layout/src/lib/block-list/block-list.component.ts +43 -5
- package/src/libs/ui/layout/src/lib/carousel/carousel.component.css +0 -5
- package/src/libs/ui/layout/src/lib/carousel/carousel.component.html +1 -1
- package/src/libs/ui/layout/src/lib/cell-popin/cell-popin.component.html +40 -0
- package/src/libs/ui/layout/src/lib/cell-popin/cell-popin.component.ts +141 -0
- package/src/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.html +24 -8
- package/src/libs/ui/layout/src/lib/expandable-panel/expandable-panel.component.ts +36 -10
- package/src/libs/ui/layout/src/lib/form-field-wrapper/form-field-wrapper.component.ts +2 -2
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.html +4 -7
- package/src/libs/ui/layout/src/lib/interactive-table/interactive-table.component.ts +22 -2
- package/src/libs/ui/layout/src/lib/max-lines/max-lines.component.html +1 -1
- package/src/libs/ui/layout/src/lib/max-lines/max-lines.component.ts +2 -2
- package/src/libs/ui/layout/src/lib/pagination/pagination.component.ts +2 -2
- package/src/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.html +17 -5
- package/src/libs/ui/layout/src/lib/previous-next-buttons/previous-next-buttons.component.ts +3 -3
- package/src/libs/ui/layout/src/lib/sticky-header/sticky-header.component.ts +3 -0
- package/src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.html +27 -0
- package/src/libs/ui/layout/src/lib/truncated-text/truncated-text.component.ts +84 -0
- package/src/libs/ui/map/src/index.ts +1 -0
- package/src/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.html +3 -3
- package/src/libs/ui/map/src/lib/components/feature-detail/feature-detail.component.ts +27 -3
- package/src/libs/ui/map/src/lib/components/map-container/map-container.component.ts +16 -2
- package/src/libs/ui/map/src/lib/components/map-legend/map-legend.component.ts +3 -0
- package/src/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.css +0 -0
- package/src/libs/ui/map/src/lib/components/spatial-extent/spatial-extent.component.html +4 -0
- package/src/libs/{feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.ts → ui/map/src/lib/components/spatial-extent/spatial-extent.component.ts} +8 -8
- package/src/libs/ui/search/src/index.ts +2 -0
- package/src/libs/ui/search/src/lib/record-preview-feed/record-preview-feed.component.html +4 -1
- package/src/libs/ui/search/src/lib/record-preview-row/record-preview-row.component.html +9 -81
- package/src/libs/ui/search/src/lib/results-hits-number/results-hits-number.component.html +1 -1
- package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.html +25 -0
- package/src/libs/ui/search/src/lib/results-hits-search-kind/results-hits-search-kind.component.ts +53 -0
- package/src/libs/ui/search/src/lib/results-list/results-layout.config.ts +2 -2
- package/src/libs/ui/search/src/lib/results-list/results-list.component.html +1 -0
- package/src/libs/ui/search/src/lib/results-list/results-list.component.ts +0 -1
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.html +16 -6
- package/src/libs/ui/search/src/lib/results-table/action-menu/action-menu.component.ts +18 -15
- package/src/libs/ui/search/src/lib/results-table/results-table.component.css +4 -0
- package/src/libs/ui/search/src/lib/results-table/results-table.component.html +29 -24
- package/src/libs/ui/search/src/lib/results-table/results-table.component.ts +49 -17
- package/src/libs/ui/search/src/lib/ui-search.module.ts +19 -10
- package/src/libs/ui/widgets/src/index.ts +0 -1
- package/src/libs/ui/widgets/src/lib/color-scale/color-scale.component.ts +1 -0
- package/src/libs/ui/widgets/src/lib/progress-bar/progress-bar.component.html +4 -3
- package/src/libs/util/app-config/src/lib/app-config.ts +1 -2
- package/src/libs/util/app-config/src/lib/fixtures.ts +1 -0
- package/src/libs/util/data-fetcher/src/lib/data-fetcher.ts +3 -1
- package/src/libs/util/data-fetcher/src/lib/model.ts +11 -1
- package/src/libs/util/data-fetcher/src/lib/readers/wfs.ts +29 -3
- package/src/libs/util/i18n/src/index.ts +1 -2
- package/src/libs/util/i18n/src/lib/embedded.translate.loader.ts +4 -3
- package/src/libs/util/i18n/src/lib/i18n.constants.ts +39 -29
- package/src/libs/util/i18n/src/lib/i18n.interceptor.ts +11 -9
- package/src/libs/util/i18n/src/lib/i18n.providers.ts +68 -0
- package/src/libs/util/i18n/src/lib/language-codes.ts +67 -2
- package/src/libs/util/shared/src/index.ts +2 -1
- package/src/libs/util/shared/src/lib/gn-ui-version.ts +8 -0
- package/src/libs/util/shared/src/lib/image-fallback.directive.ts +1 -0
- package/src/libs/util/shared/src/lib/links/link-classifier.service.ts +15 -3
- package/src/libs/util/shared/src/lib/links/link-utils.ts +53 -30
- package/src/libs/util/shared/src/lib/record.util.ts +114 -0
- package/tailwind.base.config.js +3 -0
- package/tailwind.base.css +39 -13
- package/translations/de.json +87 -24
- package/translations/en.json +88 -25
- package/translations/es.json +86 -23
- package/translations/fr.json +88 -25
- package/translations/it.json +86 -24
- package/translations/nl.json +86 -23
- package/translations/pt.json +86 -23
- package/translations/sk.json +86 -23
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.mjs +0 -79
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.mjs +0 -44
- package/esm2022/libs/feature/editor/src/lib/components/wizard/wizard.component.mjs +0 -75
- package/esm2022/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.mjs +0 -160
- package/esm2022/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.mjs +0 -53
- package/esm2022/libs/feature/editor/src/lib/models/wizard-field.model.mjs +0 -2
- package/esm2022/libs/feature/editor/src/lib/models/wizard-field.type.mjs +0 -8
- package/esm2022/libs/feature/editor/src/lib/services/wizard.service.mjs +0 -87
- package/esm2022/libs/feature/record/src/lib/gn-ui-version.token.mjs +0 -3
- package/esm2022/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.mjs +0 -18
- package/esm2022/libs/ui/dataviz/src/lib/ui-dataviz.module.mjs +0 -47
- package/esm2022/libs/ui/elements/src/lib/related-record-card/related-record-card.component.mjs +0 -46
- package/esm2022/libs/ui/elements/src/lib/ui-elements.module.mjs +0 -106
- package/esm2022/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.mjs +0 -16
- package/esm2022/libs/ui/inputs/src/lib/ui-inputs.module.mjs +0 -161
- package/esm2022/libs/ui/layout/src/lib/ui-layout.module.mjs +0 -31
- package/esm2022/libs/ui/widgets/src/lib/ui-widgets.module.mjs +0 -46
- package/esm2022/libs/util/i18n/src/lib/lang.service.mjs +0 -31
- package/esm2022/libs/util/i18n/src/lib/util-i18n.module.mjs +0 -37
- package/esm2022/libs/util/shared/src/lib/util-shared.module.mjs +0 -18
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts +0 -15
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.d.ts.map +0 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts +0 -14
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-open-data/form-field-open-data.component.d.ts.map +0 -1
- package/libs/feature/editor/src/lib/components/wizard/wizard.component.d.ts +0 -31
- package/libs/feature/editor/src/lib/components/wizard/wizard.component.d.ts.map +0 -1
- package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts +0 -43
- package/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.d.ts.map +0 -1
- package/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.d.ts +0 -17
- package/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.d.ts.map +0 -1
- package/libs/feature/editor/src/lib/models/wizard-field.model.d.ts +0 -10
- package/libs/feature/editor/src/lib/models/wizard-field.model.d.ts.map +0 -1
- package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts +0 -7
- package/libs/feature/editor/src/lib/models/wizard-field.type.d.ts.map +0 -1
- package/libs/feature/editor/src/lib/services/wizard.service.d.ts +0 -33
- package/libs/feature/editor/src/lib/services/wizard.service.d.ts.map +0 -1
- package/libs/feature/record/src/lib/gn-ui-version.token.d.ts +0 -3
- package/libs/feature/record/src/lib/gn-ui-version.token.d.ts.map +0 -1
- package/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.d.ts +0 -9
- package/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.d.ts.map +0 -1
- package/libs/ui/dataviz/src/lib/ui-dataviz.module.d.ts +0 -11
- package/libs/ui/dataviz/src/lib/ui-dataviz.module.d.ts.map +0 -1
- package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts +0 -12
- package/libs/ui/elements/src/lib/related-record-card/related-record-card.component.d.ts.map +0 -1
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts +0 -27
- package/libs/ui/elements/src/lib/ui-elements.module.d.ts.map +0 -1
- package/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.d.ts +0 -8
- package/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.d.ts.map +0 -1
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts +0 -34
- package/libs/ui/inputs/src/lib/ui-inputs.module.d.ts.map +0 -1
- package/libs/ui/layout/src/lib/ui-layout.module.d.ts +0 -12
- package/libs/ui/layout/src/lib/ui-layout.module.d.ts.map +0 -1
- package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts +0 -15
- package/libs/ui/widgets/src/lib/ui-widgets.module.d.ts.map +0 -1
- package/libs/util/i18n/src/lib/lang.service.d.ts +0 -13
- package/libs/util/i18n/src/lib/lang.service.d.ts.map +0 -1
- package/libs/util/i18n/src/lib/util-i18n.module.d.ts +0 -12
- package/libs/util/i18n/src/lib/util-i18n.module.d.ts.map +0 -1
- package/libs/util/shared/src/lib/util-shared.module.d.ts +0 -9
- package/libs/util/shared/src/lib/util-shared.module.d.ts.map +0 -1
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-map-container/form-field-map-container.component.html +0 -1
- package/src/libs/feature/editor/src/lib/components/wizard/wizard.component.css +0 -5
- package/src/libs/feature/editor/src/lib/components/wizard/wizard.component.html +0 -22
- package/src/libs/feature/editor/src/lib/components/wizard/wizard.component.ts +0 -93
- package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.css +0 -31
- package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.html +0 -62
- package/src/libs/feature/editor/src/lib/components/wizard-field/wizard-field.component.ts +0 -206
- package/src/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.css +0 -3
- package/src/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.html +0 -21
- package/src/libs/feature/editor/src/lib/components/wizard-summarize/wizard-summarize.component.ts +0 -58
- package/src/libs/feature/editor/src/lib/models/wizard-field.model.ts +0 -10
- package/src/libs/feature/editor/src/lib/models/wizard-field.type.ts +0 -6
- package/src/libs/feature/editor/src/lib/services/wizard.service.ts +0 -105
- package/src/libs/feature/record/src/lib/gn-ui-version.token.ts +0 -3
- package/src/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.html +0 -4
- package/src/libs/feature/search/src/lib/results-hits-number/results-hits.container.component.ts +0 -10
- package/src/libs/ui/dataviz/src/lib/ui-dataviz.module.ts +0 -27
- package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.html +0 -30
- package/src/libs/ui/elements/src/lib/related-record-card/related-record-card.component.ts +0 -48
- package/src/libs/ui/elements/src/lib/ui-elements.module.ts +0 -61
- package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.css +0 -3
- package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.html +0 -9
- package/src/libs/ui/inputs/src/lib/navigation-button/navigation-button.component.ts +0 -15
- package/src/libs/ui/inputs/src/lib/ui-inputs.module.ts +0 -96
- package/src/libs/ui/layout/src/lib/ui-layout.module.ts +0 -18
- package/src/libs/ui/widgets/src/lib/ui-widgets.module.ts +0 -25
- package/src/libs/util/i18n/src/lib/lang.service.ts +0 -23
- package/src/libs/util/i18n/src/lib/util-i18n.module.ts +0 -26
- package/src/libs/util/shared/src/lib/util-shared.module.ts +0 -10
- /package/src/libs/feature/editor/src/lib/components/{record-form/form-field/form-field-map-container/form-field-map-container.component.css → multilingual-panel/multilingual-panel.component.css} +0 -0
- /package/src/libs/{ui/elements/src/lib/related-record-card/related-record-card.component.css → feature/search/src/lib/results-hits/results-hits.container.component.css} +0 -0
|
@@ -1,57 +1,75 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild, } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
2
2
|
import { MapUtilsService } from '../../../../../../libs/feature/map/src';
|
|
3
3
|
import { getLinkLabel } from '../../../../../../libs/util/shared/src';
|
|
4
4
|
import { BehaviorSubject, combineLatest, from, of, startWith, throwError, withLatestFrom, } from 'rxjs';
|
|
5
|
-
import { catchError, distinctUntilChanged, finalize, map, shareReplay, switchMap, tap, } from 'rxjs/operators';
|
|
5
|
+
import { catchError, distinctUntilChanged, finalize, map, shareReplay, switchMap, take, tap, } from 'rxjs/operators';
|
|
6
6
|
import { MdViewFacade } from '../state/mdview.facade';
|
|
7
7
|
import { DataService } from '../../../../../../libs/feature/dataviz/src';
|
|
8
8
|
import { createViewFromLayer, } from '@geospatial-sdk/core';
|
|
9
|
-
import { FeatureDetailComponent, MapContainerComponent,
|
|
9
|
+
import { FeatureDetailComponent, MapContainerComponent, MapLegendComponent, prioritizePageScroll, } from '../../../../../../libs/ui/map/src';
|
|
10
10
|
import { NgIconComponent, provideIcons } from '@ng-icons/core';
|
|
11
11
|
import { matClose } from '@ng-icons/material-icons/baseline';
|
|
12
12
|
import { CommonModule } from '@angular/common';
|
|
13
13
|
import { ButtonComponent, DropdownSelectorComponent, } from '../../../../../../libs/ui/inputs/src';
|
|
14
|
-
import {
|
|
14
|
+
import { TranslateDirective, TranslatePipe, TranslateService, } from '@ngx-translate/core';
|
|
15
15
|
import { ExternalViewerButtonComponent } from '../external-viewer-button/external-viewer-button.component';
|
|
16
16
|
import { LoadingMaskComponent, PopupAlertComponent, } from '../../../../../../libs/ui/widgets/src';
|
|
17
17
|
import { marker } from '@biesbjerg/ngx-translate-extract-marker';
|
|
18
|
+
import { FetchError } from '../../../../../../libs/util/data-fetcher/src';
|
|
18
19
|
import * as i0 from "@angular/core";
|
|
19
20
|
import * as i1 from "../state/mdview.facade";
|
|
20
21
|
import * as i2 from "../../../../../../libs/feature/map/src";
|
|
21
22
|
import * as i3 from "../../../../../../libs/feature/dataviz/src";
|
|
22
|
-
import * as i4 from "@
|
|
23
|
-
import * as i5 from "@
|
|
23
|
+
import * as i4 from "@ngx-translate/core";
|
|
24
|
+
import * as i5 from "@angular/common";
|
|
24
25
|
marker('map.dropdown.placeholder');
|
|
25
26
|
marker('wfs.feature.limit');
|
|
27
|
+
marker('dataset.error.restrictedAccess');
|
|
28
|
+
marker('map.select.style');
|
|
26
29
|
export class MapViewComponent {
|
|
27
30
|
set exceedsLimit(value) {
|
|
28
31
|
this.excludeWfs$.next(value);
|
|
29
32
|
}
|
|
33
|
+
set selectedView(value) {
|
|
34
|
+
if (value === 'map') {
|
|
35
|
+
this.selectedLink$.pipe(take(1)).subscribe((link) => {
|
|
36
|
+
this.linkSelected.emit(link);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
selectLinkToDisplay(i) {
|
|
41
|
+
this.selectedLinkIndex$.next(i);
|
|
42
|
+
}
|
|
43
|
+
selectStyleToDisplay(i) {
|
|
44
|
+
this.selectedStyleIndex$.next(i);
|
|
45
|
+
}
|
|
30
46
|
toggleLegend() {
|
|
31
47
|
this.showLegend = !this.showLegend;
|
|
32
48
|
}
|
|
33
|
-
onLegendStatusChange(
|
|
34
|
-
this.legendExists =
|
|
35
|
-
if (!status) {
|
|
36
|
-
this.showLegend = false;
|
|
37
|
-
}
|
|
49
|
+
onLegendStatusChange(v) {
|
|
50
|
+
this.legendExists = v;
|
|
38
51
|
}
|
|
39
|
-
constructor(mdViewFacade, mapUtils, dataService, changeRef) {
|
|
52
|
+
constructor(mdViewFacade, mapUtils, dataService, changeRef, translateService) {
|
|
40
53
|
this.mdViewFacade = mdViewFacade;
|
|
41
54
|
this.mapUtils = mapUtils;
|
|
42
55
|
this.dataService = dataService;
|
|
43
56
|
this.changeRef = changeRef;
|
|
57
|
+
this.translateService = translateService;
|
|
44
58
|
this.displaySource = true;
|
|
59
|
+
this.linkSelected = new EventEmitter();
|
|
45
60
|
this.excludeWfs$ = new BehaviorSubject(false);
|
|
46
61
|
this.hidePreview = false;
|
|
47
62
|
this.showLegend = true;
|
|
48
63
|
this.legendExists = false;
|
|
64
|
+
this.loading = false;
|
|
65
|
+
this.error = null;
|
|
49
66
|
this.compatibleMapLinks$ = combineLatest([
|
|
50
67
|
this.mdViewFacade.mapApiLinks$,
|
|
51
68
|
this.mdViewFacade.geoDataLinksWithGeometry$,
|
|
52
|
-
]).pipe(map(([mapApiLinks, geoDataLinksWithGeometry]) =>
|
|
53
|
-
|
|
54
|
-
|
|
69
|
+
]).pipe(map(([mapApiLinks, geoDataLinksWithGeometry]) => [
|
|
70
|
+
...mapApiLinks,
|
|
71
|
+
...geoDataLinksWithGeometry,
|
|
72
|
+
]), shareReplay(1));
|
|
55
73
|
this.dropdownChoices$ = this.compatibleMapLinks$.pipe(map((links) => links.length
|
|
56
74
|
? links.map((link, index) => ({
|
|
57
75
|
label: getLinkLabel(link),
|
|
@@ -59,12 +77,50 @@ export class MapViewComponent {
|
|
|
59
77
|
}))
|
|
60
78
|
: [{ label: 'map.dropdown.placeholder', value: 0 }]));
|
|
61
79
|
this.selectedLinkIndex$ = new BehaviorSubject(0);
|
|
62
|
-
this.
|
|
63
|
-
this.
|
|
64
|
-
this.selectedLink$ = combineLatest([
|
|
80
|
+
this.selectedStyleIndex$ = new BehaviorSubject(0);
|
|
81
|
+
this.selectedSourceLink$ = combineLatest([
|
|
65
82
|
this.compatibleMapLinks$,
|
|
66
83
|
this.selectedLinkIndex$.pipe(distinctUntilChanged()),
|
|
67
|
-
]).pipe(
|
|
84
|
+
]).pipe(tap(() => {
|
|
85
|
+
this.error = null;
|
|
86
|
+
}), map(([links, index]) => {
|
|
87
|
+
this.linkSelected.emit(links[index]);
|
|
88
|
+
return links[index];
|
|
89
|
+
}));
|
|
90
|
+
this.styleLinks$ = this.selectedSourceLink$.pipe(switchMap((src) => {
|
|
91
|
+
if (src &&
|
|
92
|
+
src.type === 'service' &&
|
|
93
|
+
src.accessServiceProtocol === 'tms') {
|
|
94
|
+
return from(
|
|
95
|
+
// WARNING: when using "getGeodataLinksFromTms", make sure to add error handling to prevent the rest of the logic from failing
|
|
96
|
+
// this may happen when TMS endpoint is in error
|
|
97
|
+
this.dataService.getGeodataLinksFromTms(src, false)).pipe(
|
|
98
|
+
// We need to check for maplibre-style links because when a TMS service has no styles,
|
|
99
|
+
// getGeodataLinksFromTms returns the original TMS link, which isn't a maplibre-style link
|
|
100
|
+
map((links) => links?.filter((link) => link.type === 'service' &&
|
|
101
|
+
link.accessServiceProtocol === 'maplibre-style') || []), catchError((error) => {
|
|
102
|
+
this.handleError(error);
|
|
103
|
+
return of(src);
|
|
104
|
+
}));
|
|
105
|
+
}
|
|
106
|
+
return of([]);
|
|
107
|
+
}), tap(() => this.selectedStyleIndex$.next(0)), shareReplay(1));
|
|
108
|
+
this.styleDropdownChoices$ = this.styleLinks$.pipe(map((links) => links.length
|
|
109
|
+
? links.map((link, index) => ({
|
|
110
|
+
label: getLinkLabel(link),
|
|
111
|
+
value: index,
|
|
112
|
+
}))
|
|
113
|
+
: [
|
|
114
|
+
{
|
|
115
|
+
label: '\u00A0\u00A0\u00A0\u00A0',
|
|
116
|
+
value: 0,
|
|
117
|
+
},
|
|
118
|
+
]));
|
|
119
|
+
this.selectedLink$ = combineLatest([
|
|
120
|
+
this.selectedSourceLink$,
|
|
121
|
+
this.styleLinks$,
|
|
122
|
+
this.selectedStyleIndex$.pipe(distinctUntilChanged()),
|
|
123
|
+
]).pipe(map(([src, styles, styleIdx]) => (styles.length ? styles[styleIdx] : src)), shareReplay(1));
|
|
68
124
|
this.currentLayers$ = combineLatest([this.selectedLink$, this.excludeWfs$]).pipe(switchMap(([link, excludeWfs]) => {
|
|
69
125
|
if (!link) {
|
|
70
126
|
return of([]);
|
|
@@ -75,10 +131,12 @@ export class MapViewComponent {
|
|
|
75
131
|
}
|
|
76
132
|
this.hidePreview = false;
|
|
77
133
|
this.loading = true;
|
|
78
|
-
|
|
134
|
+
if (link.accessRestricted) {
|
|
135
|
+
this.handleError('dataset.error.restrictedAccess');
|
|
136
|
+
return of([]);
|
|
137
|
+
}
|
|
79
138
|
return this.getLayerFromLink(link).pipe(map((layer) => [layer]), catchError((e) => {
|
|
80
|
-
this.
|
|
81
|
-
console.warn(e.stack || e.message);
|
|
139
|
+
this.handleError(e);
|
|
82
140
|
return of([]);
|
|
83
141
|
}), finalize(() => (this.loading = false)));
|
|
84
142
|
}));
|
|
@@ -115,6 +173,16 @@ export class MapViewComponent {
|
|
|
115
173
|
}
|
|
116
174
|
this.changeRef.detectChanges();
|
|
117
175
|
}
|
|
176
|
+
onSourceLoadError(error) {
|
|
177
|
+
if (error.httpStatus === 403 || error.httpStatus === 401) {
|
|
178
|
+
this.error = this.translateService.instant(`dataset.error.forbidden`);
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
this.error = this.translateService.instant(`dataset.error.http`, {
|
|
182
|
+
info: error.httpStatus,
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
}
|
|
118
186
|
resetSelection() {
|
|
119
187
|
if (this.selection) {
|
|
120
188
|
// FIXME: restore styling of selected feature
|
|
@@ -130,6 +198,24 @@ export class MapViewComponent {
|
|
|
130
198
|
name: link.name,
|
|
131
199
|
});
|
|
132
200
|
}
|
|
201
|
+
else if (link.type === 'service' &&
|
|
202
|
+
link.accessServiceProtocol === 'tms') {
|
|
203
|
+
// FIXME: here we're assuming that the TMS serves vector tiles only; should be checked with ogc-client first
|
|
204
|
+
return of({
|
|
205
|
+
url: link.url.toString().replace(/\/?$/, '/{z}/{x}/{y}.pbf'),
|
|
206
|
+
type: 'xyz',
|
|
207
|
+
tileFormat: 'application/vnd.mapbox-vector-tile',
|
|
208
|
+
name: link.name,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
else if (link.type === 'service' &&
|
|
212
|
+
link.accessServiceProtocol === 'maplibre-style') {
|
|
213
|
+
return of({
|
|
214
|
+
type: 'maplibre-style',
|
|
215
|
+
name: link.name,
|
|
216
|
+
styleUrl: link.url.toString(),
|
|
217
|
+
});
|
|
218
|
+
}
|
|
133
219
|
else if (link.type === 'service' &&
|
|
134
220
|
link.accessServiceProtocol === 'wmts') {
|
|
135
221
|
return of({
|
|
@@ -151,11 +237,26 @@ export class MapViewComponent {
|
|
|
151
237
|
}
|
|
152
238
|
return throwError(() => 'protocol not supported');
|
|
153
239
|
}
|
|
154
|
-
|
|
155
|
-
|
|
240
|
+
handleError(error) {
|
|
241
|
+
if (error instanceof FetchError) {
|
|
242
|
+
this.error = this.translateService.instant(`dataset.error.${error.type}`, {
|
|
243
|
+
info: error.info,
|
|
244
|
+
});
|
|
245
|
+
console.warn(error.message);
|
|
246
|
+
}
|
|
247
|
+
else if (error instanceof Error) {
|
|
248
|
+
this.error = this.translateService.instant(error.message);
|
|
249
|
+
console.warn(error.stack || error);
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
this.error = this.translateService.instant(error);
|
|
253
|
+
console.warn(error);
|
|
254
|
+
}
|
|
255
|
+
this.loading = false;
|
|
256
|
+
this.changeRef.detectChanges();
|
|
156
257
|
}
|
|
157
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapViewComponent, deps: [{ token: i1.MdViewFacade }, { token: i2.MapUtilsService }, { token: i3.DataService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
158
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MapViewComponent, isStandalone: true, selector: "gn-ui-map-view", inputs: { exceedsLimit: "exceedsLimit", displaySource: "displaySource" }, viewQueries: [{ propertyName: "mapContainer", first: true, predicate: ["mapContainer"], descendants: true }], ngImport: i0, template: "<div class=\"w-full h-full flex flex-col
|
|
258
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapViewComponent, deps: [{ token: i1.MdViewFacade }, { token: i2.MapUtilsService }, { token: i3.DataService }, { token: i0.ChangeDetectorRef }, { token: i4.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
259
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MapViewComponent, isStandalone: true, selector: "gn-ui-map-view", inputs: { exceedsLimit: "exceedsLimit", selectedView: "selectedView", displaySource: "displaySource" }, outputs: { linkSelected: "linkSelected" }, viewQueries: [{ propertyName: "mapContainer", first: true, predicate: ["mapContainer"], descendants: true }], ngImport: i0, template: "<div class=\"w-full h-full flex flex-col gap-[13px]\">\n <div\n class=\"flex flex-col md:flex-row gap-4 py-4 px-5 bg-white border border-color-border rounded-lg mt-6\"\n >\n <gn-ui-dropdown-selector\n *ngIf=\"displaySource\"\n class=\"w-full md:flex-1 md:min-w-0\"\n extraBtnClass=\"font-sans font-bold\"\n [title]=\"'map.select.layer' | translate\"\n [choices]=\"dropdownChoices$ | async\"\n (selectValue)=\"selectLinkToDisplay($event)\"\n ></gn-ui-dropdown-selector>\n\n <ng-container *ngIf=\"(styleLinks$ | async)?.length > 0; else styleDisabled\">\n <gn-ui-dropdown-selector\n class=\"w-full md:flex-1 md:min-w-0\"\n extraBtnClass=\"font-sans font-bold\"\n [title]=\"'map.select.style' | translate\"\n [choices]=\"styleDropdownChoices$ | async\"\n (selectValue)=\"selectStyleToDisplay($event)\"\n ></gn-ui-dropdown-selector>\n </ng-container>\n <ng-template #styleDisabled>\n <gn-ui-dropdown-selector\n class=\"w-full md:flex-1 md:min-w-0 text-gray-400\"\n extraBtnClass=\"font-sans font-bold text-gray-400\"\n [title]=\"'map.select.style' | translate\"\n [choices]=\"styleDropdownChoices$ | async\"\n [disabled]=\"true\"\n ></gn-ui-dropdown-selector>\n </ng-template>\n\n <div class=\"self-end md:ml-2\">\n <gn-ui-external-viewer-button\n extraClass=\"w-[44px] h-[44px]\"\n [link]=\"selectedLink$ | async\"\n >\n </gn-ui-external-viewer-button>\n </div>\n </div>\n <ng-container *ngIf=\"hidePreview; else mapView\">\n <gn-ui-popup-alert\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"block h-12 p-1\"\n >\n <span translate>record.feature.limit</span>\n </gn-ui-popup-alert>\n </ng-container>\n <ng-template #mapView>\n <div\n class=\"relative w-full h-full bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-map-container\n #mapContainer\n [context]=\"mapContext$ | async\"\n (featuresClick)=\"onMapFeatureSelect($event)\"\n (sourceLoadError)=\"onSourceLoadError($event)\"\n ></gn-ui-map-container>\n <div\n class=\"top-[1em] right-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [class.hidden]=\"!selection\"\n >\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"resetSelection()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"absolute right-[0.5em] ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n <gn-ui-feature-detail\n [featureCatalog]=\"mdViewFacade.featureCatalog$ | async\"\n [feature]=\"selection\"\n ></gn-ui-feature-detail>\n </div>\n\n <div\n class=\"top-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [ngClass]=\"{ 'right-[1em]': !selection, 'right-[16em]': selection }\"\n [hidden]=\"!showLegend || !legendExists\"\n >\n <div class=\"flex justify-between items-center mb-2\">\n <div class=\"text-primary font-bold\">Legend</div>\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"toggleLegend()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n </div>\n <gn-ui-map-legend\n [context]=\"mapContext$ | async\"\n (legendStatusChange)=\"onLegendStatusChange($event)\"\n ></gn-ui-map-legend>\n </div>\n\n <gn-ui-button\n *ngIf=\"!showLegend && legendExists && !selection\"\n type=\"outline\"\n (buttonClick)=\"toggleLegend()\"\n extraClass=\"absolute top-[1em] right-[1em] rounded p-1 text-xs bg-white\"\n >\n Legend\n </gn-ui-button>\n\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'map.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n </ng-template>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: MapContainerComponent, selector: "gn-ui-map-container", inputs: ["context"], outputs: ["featuresClick", "featuresHover", "mapClick", "sourceLoadError"] }, { kind: "component", type: FeatureDetailComponent, selector: "gn-ui-feature-detail", inputs: ["feature", "featureCatalog"] }, { kind: "component", type: PopupAlertComponent, selector: "gn-ui-popup-alert", inputs: ["icon", "type", "position"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: LoadingMaskComponent, selector: "gn-ui-loading-mask", inputs: ["message"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: ExternalViewerButtonComponent, selector: "gn-ui-external-viewer-button", inputs: ["link", "extraClass"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: MapLegendComponent, selector: "gn-ui-map-legend", inputs: ["context"], outputs: ["legendStatusChange"] }], viewProviders: [provideIcons({ matClose })], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
159
260
|
}
|
|
160
261
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MapViewComponent, decorators: [{
|
|
161
262
|
type: Component,
|
|
@@ -165,19 +266,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
165
266
|
MapContainerComponent,
|
|
166
267
|
FeatureDetailComponent,
|
|
167
268
|
PopupAlertComponent,
|
|
168
|
-
|
|
269
|
+
TranslateDirective,
|
|
270
|
+
TranslatePipe,
|
|
169
271
|
LoadingMaskComponent,
|
|
170
272
|
NgIconComponent,
|
|
171
273
|
ExternalViewerButtonComponent,
|
|
172
274
|
ButtonComponent,
|
|
173
275
|
MapLegendComponent,
|
|
174
|
-
], viewProviders: [provideIcons({ matClose })], template: "<div class=\"w-full h-full flex flex-col
|
|
175
|
-
}], ctorParameters: () => [{ type: i1.MdViewFacade }, { type: i2.MapUtilsService }, { type: i3.DataService }, { type: i0.ChangeDetectorRef }], propDecorators: { exceedsLimit: [{
|
|
276
|
+
], viewProviders: [provideIcons({ matClose })], template: "<div class=\"w-full h-full flex flex-col gap-[13px]\">\n <div\n class=\"flex flex-col md:flex-row gap-4 py-4 px-5 bg-white border border-color-border rounded-lg mt-6\"\n >\n <gn-ui-dropdown-selector\n *ngIf=\"displaySource\"\n class=\"w-full md:flex-1 md:min-w-0\"\n extraBtnClass=\"font-sans font-bold\"\n [title]=\"'map.select.layer' | translate\"\n [choices]=\"dropdownChoices$ | async\"\n (selectValue)=\"selectLinkToDisplay($event)\"\n ></gn-ui-dropdown-selector>\n\n <ng-container *ngIf=\"(styleLinks$ | async)?.length > 0; else styleDisabled\">\n <gn-ui-dropdown-selector\n class=\"w-full md:flex-1 md:min-w-0\"\n extraBtnClass=\"font-sans font-bold\"\n [title]=\"'map.select.style' | translate\"\n [choices]=\"styleDropdownChoices$ | async\"\n (selectValue)=\"selectStyleToDisplay($event)\"\n ></gn-ui-dropdown-selector>\n </ng-container>\n <ng-template #styleDisabled>\n <gn-ui-dropdown-selector\n class=\"w-full md:flex-1 md:min-w-0 text-gray-400\"\n extraBtnClass=\"font-sans font-bold text-gray-400\"\n [title]=\"'map.select.style' | translate\"\n [choices]=\"styleDropdownChoices$ | async\"\n [disabled]=\"true\"\n ></gn-ui-dropdown-selector>\n </ng-template>\n\n <div class=\"self-end md:ml-2\">\n <gn-ui-external-viewer-button\n extraClass=\"w-[44px] h-[44px]\"\n [link]=\"selectedLink$ | async\"\n >\n </gn-ui-external-viewer-button>\n </div>\n </div>\n <ng-container *ngIf=\"hidePreview; else mapView\">\n <gn-ui-popup-alert\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"block h-12 p-1\"\n >\n <span translate>record.feature.limit</span>\n </gn-ui-popup-alert>\n </ng-container>\n <ng-template #mapView>\n <div\n class=\"relative w-full h-full bg-white border border-gray-300 rounded-lg overflow-hidden\"\n >\n <gn-ui-map-container\n #mapContainer\n [context]=\"mapContext$ | async\"\n (featuresClick)=\"onMapFeatureSelect($event)\"\n (sourceLoadError)=\"onSourceLoadError($event)\"\n ></gn-ui-map-container>\n <div\n class=\"top-[1em] right-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [class.hidden]=\"!selection\"\n >\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"resetSelection()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"absolute right-[0.5em] ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n <gn-ui-feature-detail\n [featureCatalog]=\"mdViewFacade.featureCatalog$ | async\"\n [feature]=\"selection\"\n ></gn-ui-feature-detail>\n </div>\n\n <div\n class=\"top-[1em] p-3 bg-white absolute overflow-y-auto overflow-x-hidden max-h-72 w-56\"\n [ngClass]=\"{ 'right-[1em]': !selection, 'right-[16em]': selection }\"\n [hidden]=\"!showLegend || !legendExists\"\n >\n <div class=\"flex justify-between items-center mb-2\">\n <div class=\"text-primary font-bold\">Legend</div>\n <gn-ui-button\n type=\"light\"\n (buttonClick)=\"toggleLegend()\"\n style=\"\n --gn-ui-button-padding: 0px;\n --gn-ui-button-width: 24px;\n --gn-ui-button-height: 24px;\n \"\n extraClass=\"ml-[8px] mr-[10px]\"\n >\n <ng-icon name=\"matClose\" class=\"align-middle text-sm\"></ng-icon>\n </gn-ui-button>\n </div>\n <gn-ui-map-legend\n [context]=\"mapContext$ | async\"\n (legendStatusChange)=\"onLegendStatusChange($event)\"\n ></gn-ui-map-legend>\n </div>\n\n <gn-ui-button\n *ngIf=\"!showLegend && legendExists && !selection\"\n type=\"outline\"\n (buttonClick)=\"toggleLegend()\"\n extraClass=\"absolute top-[1em] right-[1em] rounded p-1 text-xs bg-white\"\n >\n Legend\n </gn-ui-button>\n\n <gn-ui-loading-mask\n *ngIf=\"loading\"\n class=\"absolute inset-0\"\n [message]=\"'map.loading.data' | translate\"\n ></gn-ui-loading-mask>\n <gn-ui-popup-alert\n *ngIf=\"error\"\n type=\"warning\"\n icon=\"matErrorOutlineOutline\"\n class=\"absolute m-2 inset-0\"\n >\n <span translate>{{ error }}</span>\n </gn-ui-popup-alert>\n </div>\n </ng-template>\n</div>\n" }]
|
|
277
|
+
}], ctorParameters: () => [{ type: i1.MdViewFacade }, { type: i2.MapUtilsService }, { type: i3.DataService }, { type: i0.ChangeDetectorRef }, { type: i4.TranslateService }], propDecorators: { exceedsLimit: [{
|
|
278
|
+
type: Input
|
|
279
|
+
}], selectedView: [{
|
|
176
280
|
type: Input
|
|
177
281
|
}], displaySource: [{
|
|
178
282
|
type: Input
|
|
283
|
+
}], linkSelected: [{
|
|
284
|
+
type: Output
|
|
179
285
|
}], mapContainer: [{
|
|
180
286
|
type: ViewChild,
|
|
181
287
|
args: ['mapContainer']
|
|
182
288
|
}] } });
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3JlY29yZC9zcmMvbGliL21hcC12aWV3L21hcC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9tYXAtdmlldy9tYXAtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxFQUNMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQ3JFLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLElBQUksRUFFSixFQUFFLEVBQ0YsU0FBUyxFQUNULFVBQVUsRUFDVixjQUFjLEdBQ2YsTUFBTSxNQUFNLENBQUE7QUFDYixPQUFPLEVBQ0wsVUFBVSxFQUNWLG9CQUFvQixFQUNwQixRQUFRLEVBQ1IsR0FBRyxFQUNILFdBQVcsRUFDWCxTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUV4RSxPQUFPLEVBQ0wsbUJBQW1CLEdBR3BCLE1BQU0sc0JBQXNCLENBQUE7QUFDN0IsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGtCQUFrQixHQUNuQixNQUFNLG1DQUFtQyxDQUFBO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1B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b0JBQW9CLG9GQUNwQixlQUFlLDZHQUNmLDZCQUE2QiwyRkFDN0IsZUFBZSwrSEFDZixrQkFBa0Isd0dBRUwsQ0FBQyxZQUFZLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDOzs0RkFFaEMsZ0JBQWdCO2tCQXJCNUIsU0FBUzsrQkFDRSxnQkFBZ0IsbUJBR1QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWix5QkFBeUI7d0JBQ3pCLHFCQUFxQjt3QkFDckIsc0JBQXNCO3dCQUN0QixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2Ysb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLDZCQUE2Qjt3QkFDN0IsZUFBZTt3QkFDZixrQkFBa0I7cUJBQ25CLGlCQUNjLENBQUMsWUFBWSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQzt5S0FHOUIsWUFBWTtzQkFBeEIsS0FBSztnQkFHRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNxQixZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hcFV0aWxzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjJ1xuaW1wb3J0IHsgZ2V0TGlua0xhYmVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZyb20sXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBzdGFydFdpdGgsXG4gIHRocm93RXJyb3IsXG4gIHdpdGhMYXRlc3RGcm9tLFxufSBmcm9tICdyeGpzJ1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvcixcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHNoYXJlUmVwbGF5LFxuICBzd2l0Y2hNYXAsXG4gIHRhcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBNZFZpZXdGYWNhZGUgfSBmcm9tICcuLi9zdGF0ZS9tZHZpZXcuZmFjYWRlJ1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZGF0YXZpei9zcmMnXG5pbXBvcnQgeyBEYXRhc2V0T25saW5lUmVzb3VyY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBjcmVhdGVWaWV3RnJvbUxheWVyLFxuICBNYXBDb250ZXh0LFxuICBNYXBDb250ZXh0TGF5ZXIsXG59IGZyb20gJ0BnZW9zcGF0aWFsLXNkay9jb3JlJ1xuaW1wb3J0IHtcbiAgRmVhdHVyZURldGFpbENvbXBvbmVudCxcbiAgTWFwQ29udGFpbmVyQ29tcG9uZW50LFxuICBwcmlvcml0aXplUGFnZVNjcm9sbCxcbiAgTWFwTGVnZW5kQ29tcG9uZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL21hcC9zcmMnXG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7IE5nSWNvbkNvbXBvbmVudCwgcHJvdmlkZUljb25zIH0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBtYXRDbG9zZSB9IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9iYXNlbGluZSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIEJ1dHRvbkNvbXBvbmVudCxcbiAgRHJvcGRvd25TZWxlY3RvckNvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEV4dGVybmFsVmlld2VyQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vZXh0ZXJuYWwtdmlld2VyLWJ1dHRvbi9leHRlcm5hbC12aWV3ZXItYnV0dG9uLmNvbXBvbmVudCdcbmltcG9ydCB7XG4gIExvYWRpbmdNYXNrQ29tcG9uZW50LFxuICBQb3B1cEFsZXJ0Q29tcG9uZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3dpZGdldHMvc3JjJ1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuXG5tYXJrZXIoJ21hcC5kcm9wZG93bi5wbGFjZWhvbGRlcicpXG5tYXJrZXIoJ3dmcy5mZWF0dXJlLmxpbWl0JylcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktbWFwLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFwLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYXAtdmlldy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQsXG4gICAgTWFwQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIEZlYXR1cmVEZXRhaWxDb21wb25lbnQsXG4gICAgUG9wdXBBbGVydENvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgTG9hZGluZ01hc2tDb21wb25lbnQsXG4gICAgTmdJY29uQ29tcG9uZW50LFxuICAgIEV4dGVybmFsVmlld2VyQnV0dG9uQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBNYXBMZWdlbmRDb21wb25lbnQsXG4gIF0sXG4gIHZpZXdQcm92aWRlcnM6IFtwcm92aWRlSWNvbnMoeyBtYXRDbG9zZSB9KV0sXG59KVxuZXhwb3J0IGNsYXNzIE1hcFZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgc2V0IGV4Y2VlZHNMaW1pdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZXhjbHVkZVdmcyQubmV4dCh2YWx1ZSlcbiAgfVxuICBASW5wdXQoKSBkaXNwbGF5U291cmNlID0gdHJ1ZVxuICBAVmlld0NoaWxkKCdtYXBDb250YWluZXInKSBtYXBDb250YWluZXI6IE1hcENvbnRhaW5lckNvbXBvbmVudFxuXG4gIGV4Y2x1ZGVXZnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSlcbiAgaGlkZVByZXZpZXcgPSBmYWxzZVxuICBzZWxlY3Rpb246IEZlYXR1cmVcbiAgc2hvd0xlZ2VuZCA9IHRydWVcbiAgbGVnZW5kRXhpc3RzID0gZmFsc2VcblxuICB0b2dnbGVMZWdlbmQoKSB7XG4gICAgdGhpcy5zaG93TGVnZW5kID0gIXRoaXMuc2hvd0xlZ2VuZFxuICB9XG5cbiAgb25MZWdlbmRTdGF0dXNDaGFuZ2Uoc3RhdHVzOiBib29sZWFuKSB7XG4gICAgdGhpcy5sZWdlbmRFeGlzdHMgPSBzdGF0dXNcbiAgICBpZiAoIXN0YXR1cykge1xuICAgICAgdGhpcy5zaG93TGVnZW5kID0gZmFsc2VcbiAgICB9XG4gIH1cblxuICBjb21wYXRpYmxlTWFwTGlua3MkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5tZFZpZXdGYWNhZGUubWFwQXBpTGlua3MkLFxuICAgIHRoaXMubWRWaWV3RmFjYWRlLmdlb0RhdGFMaW5rc1dpdGhHZW9tZXRyeSQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbbWFwQXBpTGlua3MsIGdlb0RhdGFMaW5rc1dpdGhHZW9tZXRyeV0pID0+IHtcbiAgICAgIHJldHVybiBbLi4ubWFwQXBpTGlua3MsIC4uLmdlb0RhdGFMaW5rc1dpdGhHZW9tZXRyeV1cbiAgICB9KVxuICApXG5cbiAgZHJvcGRvd25DaG9pY2VzJCA9IHRoaXMuY29tcGF0aWJsZU1hcExpbmtzJC5waXBlKFxuICAgIG1hcCgobGlua3MpID0+XG4gICAgICBsaW5rcy5sZW5ndGhcbiAgICAgICAgPyBsaW5rcy5tYXAoKGxpbmssIGluZGV4KSA9PiAoe1xuICAgICAgICAgICAgbGFiZWw6IGdldExpbmtMYWJlbChsaW5rKSxcbiAgICAgICAgICAgIHZhbHVlOiBpbmRleCxcbiAgICAgICAgICB9KSlcbiAgICAgICAgOiBbeyBsYWJlbDogJ21hcC5kcm9wZG93bi5wbGFjZWhvbGRlcicsIHZhbHVlOiAwIH1dXG4gICAgKVxuICApXG4gIHNlbGVjdGVkTGlua0luZGV4JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMClcblxuICBsb2FkaW5nID0gZmFsc2VcbiAgZXJyb3IgPSBudWxsXG5cbiAgc2VsZWN0ZWRMaW5rJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuY29tcGF0aWJsZU1hcExpbmtzJCxcbiAgICB0aGlzLnNlbGVjdGVkTGlua0luZGV4JC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICBdKS5waXBlKG1hcCgoW2xpbmtzLCBpbmRleF0pID0+IGxpbmtzW2luZGV4XSkpXG5cbiAgY3VycmVudExheWVycyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnNlbGVjdGVkTGluayQsIHRoaXMuZXhjbHVkZVdmcyRdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW2xpbmssIGV4Y2x1ZGVXZnNdKSA9PiB7XG4gICAgICBpZiAoIWxpbmspIHtcbiAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgfVxuICAgICAgaWYgKGV4Y2x1ZGVXZnMgJiYgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3ZnMnKSB7XG4gICAgICAgIHRoaXMuaGlkZVByZXZpZXcgPSB0cnVlXG4gICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgIH1cbiAgICAgIHRoaXMuaGlkZVByZXZpZXcgPSBmYWxzZVxuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZVxuICAgICAgdGhpcy5lcnJvciA9IG51bGxcbiAgICAgIHJldHVybiB0aGlzLmdldExheWVyRnJvbUxpbmsobGluaykucGlwZShcbiAgICAgICAgbWFwKChsYXllcikgPT4gW2xheWVyXSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcbiAgICAgICAgICB0aGlzLmVycm9yID0gZS5tZXNzYWdlXG4gICAgICAgICAgY29uc29sZS53YXJuKGUuc3RhY2sgfHwgZS5tZXNzYWdlKVxuICAgICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgICAgfSksXG4gICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSkpXG4gICAgICApXG4gICAgfSlcbiAgKVxuXG4gIG1hcENvbnRleHQkOiBPYnNlcnZhYmxlPE1hcENvbnRleHQ+ID0gdGhpcy5jdXJyZW50TGF5ZXJzJC5waXBlKFxuICAgIHN3aXRjaE1hcCgobGF5ZXJzKSA9PlxuICAgICAgZnJvbShjcmVhdGVWaWV3RnJvbUxheWVyKGxheWVyc1swXSkpLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YobnVsbCkpLCAvLyBjb3VsZCBub3Qgem9vbSBvbiB0aGUgbGF5ZXI6IHVzZSB0aGUgcmVjb3JkIGV4dGVudFxuICAgICAgICBtYXAoKHZpZXcpID0+ICh7XG4gICAgICAgICAgbGF5ZXJzLFxuICAgICAgICAgIHZpZXcsXG4gICAgICAgIH0pKSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnJlc2V0U2VsZWN0aW9uKClcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApLFxuICAgIHN0YXJ0V2l0aCh7XG4gICAgICBsYXllcnM6IFtdLFxuICAgICAgdmlldzogbnVsbCxcbiAgICB9KSxcbiAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLm1kVmlld0ZhY2FkZS5tZXRhZGF0YSQpLFxuICAgIG1hcCgoW2NvbnRleHQsIG1ldGFkYXRhXSkgPT4ge1xuICAgICAgaWYgKGNvbnRleHQudmlldykgcmV0dXJuIGNvbnRleHRcbiAgICAgIGNvbnN0IGV4dGVudCA9IHRoaXMubWFwVXRpbHMuZ2V0UmVjb3JkRXh0ZW50KG1ldGFkYXRhKVxuICAgICAgY29uc3QgdmlldyA9IGV4dGVudCA/IHsgZXh0ZW50IH0gOiBudWxsXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5jb250ZXh0LFxuICAgICAgICB2aWV3LFxuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gIClcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG1kVmlld0ZhY2FkZTogTWRWaWV3RmFjYWRlLFxuICAgIHByaXZhdGUgbWFwVXRpbHM6IE1hcFV0aWxzU2VydmljZSxcbiAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZVJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBjb25zdCBtYXAgPSBhd2FpdCB0aGlzLm1hcENvbnRhaW5lci5vcGVubGF5ZXJzTWFwXG4gICAgcHJpb3JpdGl6ZVBhZ2VTY3JvbGwobWFwLmdldEludGVyYWN0aW9ucygpKVxuICB9XG5cbiAgb25NYXBGZWF0dXJlU2VsZWN0KGZlYXR1cmVzOiBGZWF0dXJlW10pOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0U2VsZWN0aW9uKClcbiAgICB0aGlzLnNlbGVjdGlvbiA9IGZlYXR1cmVzPy5sZW5ndGggPiAwICYmIGZlYXR1cmVzWzBdXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICAvLyBGSVhNRTogcmVzdG9yZSBzdHlsaW5nIG9mIHNlbGVjdGVkIGZlYXR1cmVcbiAgICAgIC8vIHRoaXMuc2VsZWN0aW9uLnNldFN0eWxlKHRoaXMuc2VsZWN0aW9uU3R5bGUpXG4gICAgfVxuICAgIHRoaXMuY2hhbmdlUmVmLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgcmVzZXRTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICAvLyBGSVhNRTogcmVzdG9yZSBzdHlsaW5nIG9mIHNlbGVjdGVkIGZlYXR1cmVcbiAgICAgIC8vIHRoaXMuc2VsZWN0aW9uLnNldFN0eWxlKG51bGwpXG4gICAgfVxuICAgIHRoaXMuc2VsZWN0aW9uID0gbnVsbFxuICB9XG5cbiAgZ2V0TGF5ZXJGcm9tTGluayhsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UpOiBPYnNlcnZhYmxlPE1hcENvbnRleHRMYXllcj4ge1xuICAgIGlmIChsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJiBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dtcycpIHtcbiAgICAgIHJldHVybiBvZih7XG4gICAgICAgIHVybDogbGluay51cmwudG9TdHJpbmcoKSxcbiAgICAgICAgdHlwZTogJ3dtcycsXG4gICAgICAgIG5hbWU6IGxpbmsubmFtZSxcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGxpbmsudHlwZSA9PT0gJ3NlcnZpY2UnICYmXG4gICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dtdHMnXG4gICAgKSB7XG4gICAgICByZXR1cm4gb2Yoe1xuICAgICAgICB1cmw6IGxpbmsudXJsLnRvU3RyaW5nKCksXG4gICAgICAgIHR5cGU6ICd3bXRzJyxcbiAgICAgICAgbmFtZTogbGluay5uYW1lLFxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgKGxpbmsudHlwZSA9PT0gJ3NlcnZpY2UnICYmXG4gICAgICAgIChsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dmcycgfHxcbiAgICAgICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ2VzcmlSZXN0JyB8fFxuICAgICAgICAgIGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnb2djRmVhdHVyZXMnKSkgfHxcbiAgICAgIGxpbmsudHlwZSA9PT0gJ2Rvd25sb2FkJ1xuICAgICkge1xuICAgICAgY29uc3QgY2FjaGVBY3RpdmUgPSB0cnVlIC8vIFRPRE8gaW1wbGVtZW50IHdoZXRoZXIgc2hvdWxkIGJlIHRydWUgb3IgZmFsc2VcbiAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLnJlYWRBc0dlb0pzb24obGluaywgY2FjaGVBY3RpdmUpLnBpcGUoXG4gICAgICAgIG1hcCgoZGF0YSkgPT4gKHtcbiAgICAgICAgICB0eXBlOiAnZ2VvanNvbicsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgfSkpXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+ICdwcm90b2NvbCBub3Qgc3VwcG9ydGVkJylcbiAgfVxuXG4gIHNlbGVjdExpbmtUb0Rpc3BsYXkobGluazogbnVtYmVyKSB7XG4gICAgdGhpcy5zZWxlY3RlZExpbmtJbmRleCQubmV4dChsaW5rKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidy1mdWxsIGgtZnVsbCBmbGV4IGZsZXgtY29sIHAtMVwiPlxuICA8ZGl2IGNsYXNzPVwidy1mdWxsIGZsZXgganVzdGlmeS1lbmRcIj5cbiAgICA8Z24tdWktZHJvcGRvd24tc2VsZWN0b3JcbiAgICAgIFtuZ0NsYXNzXT1cInsgaGlkZGVuOiAhZGlzcGxheVNvdXJjZSB9XCJcbiAgICAgIGNsYXNzPVwidHJ1bmNhdGUgcC0xIC1teC0xIG1iLTFcIlxuICAgICAgZXh0cmFCdG5DbGFzcz1cIiF0ZXh0LXByaW1hcnkgZm9udC1zYW5zIGZvbnQtbWVkaXVtXCJcbiAgICAgIFt0aXRsZV09XCInbWFwLnNlbGVjdC5sYXllcicgfCB0cmFuc2xhdGVcIlxuICAgICAgW2Nob2ljZXNdPVwiZHJvcGRvd25DaG9pY2VzJCB8IGFzeW5jXCJcbiAgICAgIChzZWxlY3RWYWx1ZSk9XCJzZWxlY3RMaW5rVG9EaXNwbGF5KCRldmVudClcIlxuICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuICAgIDxnbi11aS1leHRlcm5hbC12aWV3ZXItYnV0dG9uXG4gICAgICBjbGFzcz1cInNocmluay0wIHB5LTEgcGxhY2Utc2VsZi1lbmRcIlxuICAgICAgW2xpbmtdPVwic2VsZWN0ZWRMaW5rJCB8IGFzeW5jXCJcbiAgICA+XG4gICAgPC9nbi11aS1leHRlcm5hbC12aWV3ZXItYnV0dG9uPlxuICA8L2Rpdj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhpZGVQcmV2aWV3OyBlbHNlIG1hcFZpZXdcIj5cbiAgICA8Z24tdWktcG9wdXAtYWxlcnRcbiAgICAgIHR5cGU9XCJ3YXJuaW5nXCJcbiAgICAgIGljb249XCJtYXRFcnJvck91dGxpbmVPdXRsaW5lXCJcbiAgICAgIGNsYXNzPVwiYmxvY2sgaC0xMiBwLTFcIlxuICAgID5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5yZWNvcmQuZmVhdHVyZS5saW1pdDwvc3Bhbj5cbiAgICA8L2duLXVpLXBvcHVwLWFsZXJ0PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLXRlbXBsYXRlICNtYXBWaWV3PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicmVsYXRpdmUgdy1mdWxsIGgtZnVsbCBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtbGcgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICA+XG4gICAgICA8Z24tdWktbWFwLWNvbnRhaW5lclxuICAgICAgICAjbWFwQ29udGFpbmVyXG4gICAgICAgIFtjb250ZXh0XT1cIm1hcENvbnRleHQkIHwgYXN5bmNcIlxuICAgICAgICAoZmVhdHVyZXNDbGljayk9XCJvbk1hcEZlYXR1cmVTZWxlY3QoJGV2ZW50KVwiXG4gICAgICA+PC9nbi11aS1tYXAtY29udGFpbmVyPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRvcC1bMWVtXSByaWdodC1bMWVtXSBwLTMgYmctd2hpdGUgYWJzb2x1dGUgb3ZlcmZsb3cteS1hdXRvIG92ZXJmbG93LXgtaGlkZGVuIG1heC1oLTcyIHctNTZcIlxuICAgICAgICBbY2xhc3MuaGlkZGVuXT1cIiFzZWxlY3Rpb25cIlxuICAgICAgPlxuICAgICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICAgdHlwZT1cImxpZ2h0XCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwicmVzZXRTZWxlY3Rpb24oKVwiXG4gICAgICAgICAgc3R5bGU9XCJcbiAgICAgICAgICAgIC0tZ24tdWktYnV0dG9uLXBhZGRpbmc6IDBweDtcbiAgICAgICAgICAgIC0tZ24tdWktYnV0dG9uLXdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgLS1nbi11aS1idXR0b24taGVpZ2h0OiAyNHB4O1xuICAgICAgICAgIFwiXG4gICAgICAgICAgZXh0cmFDbGFzcz1cImFic29sdXRlIHJpZ2h0LVswLjVlbV0gbWwtWzhweF0gbXItWzEwcHhdXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1pY29uIG5hbWU9XCJtYXRDbG9zZVwiIGNsYXNzPVwiYWxpZ24tbWlkZGxlIHRleHQtc21cIj48L25nLWljb24+XG4gICAgICAgIDwvZ24tdWktYnV0dG9uPlxuICAgICAgICA8Z24tdWktZmVhdHVyZS1kZXRhaWwgW2ZlYXR1cmVdPVwic2VsZWN0aW9uXCI+PC9nbi11aS1mZWF0dXJlLWRldGFpbD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidG9wLVsxZW1dIHAtMyBiZy13aGl0ZSBhYnNvbHV0ZSBvdmVyZmxvdy15LWF1dG8gb3ZlcmZsb3cteC1oaWRkZW4gbWF4LWgtNzIgdy01NlwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ3JpZ2h0LVsxZW1dJzogIXNlbGVjdGlvbiwgJ3JpZ2h0LVsxNmVtXSc6IHNlbGVjdGlvbiB9XCJcbiAgICAgICAgW2hpZGRlbl09XCIhc2hvd0xlZ2VuZCB8fCAhbGVnZW5kRXhpc3RzXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBtYi0yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtcHJpbWFyeSBmb250LWJvbGRcIj5MZWdlbmQ8L2Rpdj5cbiAgICAgICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwibGlnaHRcIlxuICAgICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cInRvZ2dsZUxlZ2VuZCgpXCJcbiAgICAgICAgICAgIHN0eWxlPVwiXG4gICAgICAgICAgICAgIC0tZ24tdWktYnV0dG9uLXBhZGRpbmc6IDBweDtcbiAgICAgICAgICAgICAgLS1nbi11aS1idXR0b24td2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgIC0tZ24tdWktYnV0dG9uLWhlaWdodDogMjRweDtcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBleHRyYUNsYXNzPVwibWwtWzhweF0gbXItWzEwcHhdXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctaWNvbiBuYW1lPVwibWF0Q2xvc2VcIiBjbGFzcz1cImFsaWduLW1pZGRsZSB0ZXh0LXNtXCI+PC9uZy1pY29uPlxuICAgICAgICAgIDwvZ24tdWktYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGduLXVpLW1hcC1sZWdlbmRcbiAgICAgICAgICBbY29udGV4dF09XCJtYXBDb250ZXh0JCB8IGFzeW5jXCJcbiAgICAgICAgICAobGVnZW5kU3RhdHVzQ2hhbmdlKT1cIm9uTGVnZW5kU3RhdHVzQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9nbi11aS1tYXAtbGVnZW5kPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgKm5nSWY9XCIhc2hvd0xlZ2VuZCAmJiBsZWdlbmRFeGlzdHMgJiYgIXNlbGVjdGlvblwiXG4gICAgICAgIHR5cGU9XCJvdXRsaW5lXCJcbiAgICAgICAgKGJ1dHRvbkNsaWNrKT1cInRvZ2dsZUxlZ2VuZCgpXCJcbiAgICAgICAgZXh0cmFDbGFzcz1cImFic29sdXRlIHRvcC1bMWVtXSByaWdodC1bMWVtXSByb3VuZGVkIHAtMSB0ZXh0LXhzIGJnLXdoaXRlXCJcbiAgICAgID5cbiAgICAgICAgTGVnZW5kXG4gICAgICA8L2duLXVpLWJ1dHRvbj5cblxuICAgICAgPGduLXVpLWxvYWRpbmctbWFza1xuICAgICAgICAqbmdJZj1cImxvYWRpbmdcIlxuICAgICAgICBjbGFzcz1cImFic29sdXRlIGluc2V0LTBcIlxuICAgICAgICBbbWVzc2FnZV09XCInbWFwLmxvYWRpbmcuZGF0YScgfCB0cmFuc2xhdGVcIlxuICAgICAgPjwvZ24tdWktbG9hZGluZy1tYXNrPlxuICAgICAgPGduLXVpLXBvcHVwLWFsZXJ0XG4gICAgICAgICpuZ0lmPVwiZXJyb3JcIlxuICAgICAgICB0eXBlPVwid2FybmluZ1wiXG4gICAgICAgIGljb249XCJtYXRFcnJvck91dGxpbmVPdXRsaW5lXCJcbiAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBtLTIgaW5zZXQtMFwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIHRyYW5zbGF0ZT57eyBlcnJvciB9fTwvc3Bhbj5cbiAgICAgIDwvZ24tdWktcG9wdXAtYWxlcnQ+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
|
|
289
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3JlY29yZC9zcmMvbGliL21hcC12aWV3L21hcC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9tYXAtdmlldy9tYXAtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUN4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFDckUsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2IsSUFBSSxFQUVKLEVBQUUsRUFDRixTQUFTLEVBQ1QsVUFBVSxFQUNWLGNBQWMsR0FDZixNQUFNLE1BQU0sQ0FBQTtBQUNiLE9BQU8sRUFDTCxVQUFVLEVBQ1Ysb0JBQW9CLEVBQ3BCLFFBQVEsRUFDUixHQUFHLEVBQ0gsV0FBVyxFQUNYLFNBQVMsRUFDVCxJQUFJLEVBQ0osR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUt4RSxPQUFPLEVBQ0wsbUJBQW1CLEdBSXBCLE1BQU0sc0JBQXNCLENBQUE7QUFDN0IsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUNyQixNQUFNLG1DQUFtQyxDQUFBO0FBRTFDLE9B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QUFBO0lBQ2hDLENBQUM7K0dBbFRVLGdCQUFnQjttR0FBaEIsZ0JBQWdCLDJVQ2xHN0IsNG9KQW9JQSx5RERqREksWUFBWSxzUkFDWix5QkFBeUIscU5BQ3pCLHFCQUFxQixpS0FDckIsc0JBQXNCLHdHQUN0QixtQkFBbUIsb0dBQ25CLGtCQUFrQiw2R0FDbEIsYUFBYSxrREFDYixvQkFBb0Isb0ZBQ3BCLGVBQWUsNkdBQ2YsNkJBQTZCLHlHQUM3QixlQUFlLCtIQUNmLGtCQUFrQix3R0FFTCxDQUFDLFlBQVksQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7OzRGQUVoQyxnQkFBZ0I7a0JBdEI1QixTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLHlCQUF5Qjt3QkFDekIscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZiw2QkFBNkI7d0JBQzdCLGVBQWU7d0JBQ2Ysa0JBQWtCO3FCQUNuQixpQkFDYyxDQUFDLFlBQVksQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7d01BRzlCLFlBQVk7c0JBQXhCLEtBQUs7Z0JBR08sWUFBWTtzQkFBeEIsS0FBSztnQkFPRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ29CLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hcFV0aWxzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjJ1xuaW1wb3J0IHsgZ2V0TGlua0xhYmVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZyb20sXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBzdGFydFdpdGgsXG4gIHRocm93RXJyb3IsXG4gIHdpdGhMYXRlc3RGcm9tLFxufSBmcm9tICdyeGpzJ1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvcixcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHNoYXJlUmVwbGF5LFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRhcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBNZFZpZXdGYWNhZGUgfSBmcm9tICcuLi9zdGF0ZS9tZHZpZXcuZmFjYWRlJ1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZGF0YXZpei9zcmMnXG5pbXBvcnQge1xuICBEYXRhc2V0T25saW5lUmVzb3VyY2UsXG4gIERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBjcmVhdGVWaWV3RnJvbUxheWVyLFxuICBNYXBDb250ZXh0LFxuICBNYXBDb250ZXh0TGF5ZXIsXG4gIFNvdXJjZUxvYWRFcnJvckV2ZW50LFxufSBmcm9tICdAZ2Vvc3BhdGlhbC1zZGsvY29yZSdcbmltcG9ydCB7XG4gIEZlYXR1cmVEZXRhaWxDb21wb25lbnQsXG4gIE1hcENvbnRhaW5lckNvbXBvbmVudCxcbiAgTWFwTGVnZW5kQ29tcG9uZW50LFxuICBwcmlvcml0aXplUGFnZVNjcm9sbCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9tYXAvc3JjJ1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJ2dlb2pzb24nXG5pbXBvcnQgeyBOZ0ljb25Db21wb25lbnQsIHByb3ZpZGVJY29ucyB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgbWF0Q2xvc2UgfSBmcm9tICdAbmctaWNvbnMvbWF0ZXJpYWwtaWNvbnMvYmFzZWxpbmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBCdXR0b25Db21wb25lbnQsXG4gIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7XG4gIFRyYW5zbGF0ZURpcmVjdGl2ZSxcbiAgVHJhbnNsYXRlUGlwZSxcbiAgVHJhbnNsYXRlU2VydmljZSxcbn0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEV4dGVybmFsVmlld2VyQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vZXh0ZXJuYWwtdmlld2VyLWJ1dHRvbi9leHRlcm5hbC12aWV3ZXItYnV0dG9uLmNvbXBvbmVudCdcbmltcG9ydCB7XG4gIExvYWRpbmdNYXNrQ29tcG9uZW50LFxuICBQb3B1cEFsZXJ0Q29tcG9uZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3dpZGdldHMvc3JjJ1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHsgRmV0Y2hFcnJvciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9kYXRhLWZldGNoZXIvc3JjJ1xuXG5tYXJrZXIoJ21hcC5kcm9wZG93bi5wbGFjZWhvbGRlcicpXG5tYXJrZXIoJ3dmcy5mZWF0dXJlLmxpbWl0Jylcbm1hcmtlcignZGF0YXNldC5lcnJvci5yZXN0cmljdGVkQWNjZXNzJylcbm1hcmtlcignbWFwLnNlbGVjdC5zdHlsZScpXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW1hcC12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hcC12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFwLXZpZXcuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50LFxuICAgIE1hcENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBGZWF0dXJlRGV0YWlsQ29tcG9uZW50LFxuICAgIFBvcHVwQWxlcnRDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlRGlyZWN0aXZlLFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgTG9hZGluZ01hc2tDb21wb25lbnQsXG4gICAgTmdJY29uQ29tcG9uZW50LFxuICAgIEV4dGVybmFsVmlld2VyQnV0dG9uQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBNYXBMZWdlbmRDb21wb25lbnQsXG4gIF0sXG4gIHZpZXdQcm92aWRlcnM6IFtwcm92aWRlSWNvbnMoeyBtYXRDbG9zZSB9KV0sXG59KVxuZXhwb3J0IGNsYXNzIE1hcFZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgc2V0IGV4Y2VlZHNMaW1pdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZXhjbHVkZVdmcyQubmV4dCh2YWx1ZSlcbiAgfVxuICBASW5wdXQoKSBzZXQgc2VsZWN0ZWRWaWV3KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUgPT09ICdtYXAnKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkTGluayQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKGxpbmspID0+IHtcbiAgICAgICAgdGhpcy5saW5rU2VsZWN0ZWQuZW1pdChsaW5rKVxuICAgICAgfSlcbiAgICB9XG4gIH1cbiAgQElucHV0KCkgZGlzcGxheVNvdXJjZSA9IHRydWVcbiAgQE91dHB1dCgpIGxpbmtTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0YXNldE9ubGluZVJlc291cmNlPigpXG4gIEBWaWV3Q2hpbGQoJ21hcENvbnRhaW5lcicpIG1hcENvbnRhaW5lcjogTWFwQ29udGFpbmVyQ29tcG9uZW50XG5cbiAgZXhjbHVkZVdmcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKVxuICBoaWRlUHJldmlldyA9IGZhbHNlXG4gIHNlbGVjdGlvbjogRmVhdHVyZVxuICBzaG93TGVnZW5kID0gdHJ1ZVxuICBsZWdlbmRFeGlzdHMgPSBmYWxzZVxuICBsb2FkaW5nID0gZmFsc2VcbiAgZXJyb3IgPSBudWxsXG5cbiAgc2VsZWN0TGlua1RvRGlzcGxheShpOiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdGVkTGlua0luZGV4JC5uZXh0KGkpXG4gIH1cblxuICBzZWxlY3RTdHlsZVRvRGlzcGxheShpOiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdGVkU3R5bGVJbmRleCQubmV4dChpKVxuICB9XG5cbiAgdG9nZ2xlTGVnZW5kKCkge1xuICAgIHRoaXMuc2hvd0xlZ2VuZCA9ICF0aGlzLnNob3dMZWdlbmRcbiAgfVxuICBvbkxlZ2VuZFN0YXR1c0NoYW5nZSh2OiBib29sZWFuKSB7XG4gICAgdGhpcy5sZWdlbmRFeGlzdHMgPSB2XG4gIH1cblxuICBjb21wYXRpYmxlTWFwTGlua3MkID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5tZFZpZXdGYWNhZGUubWFwQXBpTGlua3MkLFxuICAgIHRoaXMubWRWaWV3RmFjYWRlLmdlb0RhdGFMaW5rc1dpdGhHZW9tZXRyeSQsXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbbWFwQXBpTGlua3MsIGdlb0RhdGFMaW5rc1dpdGhHZW9tZXRyeV0pID0+IFtcbiAgICAgIC4uLm1hcEFwaUxpbmtzLFxuICAgICAgLi4uZ2VvRGF0YUxpbmtzV2l0aEdlb21ldHJ5LFxuICAgIF0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gIClcblxuICBkcm9wZG93bkNob2ljZXMkID0gdGhpcy5jb21wYXRpYmxlTWFwTGlua3MkLnBpcGUoXG4gICAgbWFwKChsaW5rcykgPT5cbiAgICAgIGxpbmtzLmxlbmd0aFxuICAgICAgICA/IGxpbmtzLm1hcCgobGluaywgaW5kZXgpID0+ICh7XG4gICAgICAgICAgICBsYWJlbDogZ2V0TGlua0xhYmVsKGxpbmspLFxuICAgICAgICAgICAgdmFsdWU6IGluZGV4LFxuICAgICAgICAgIH0pKVxuICAgICAgICA6IFt7IGxhYmVsOiAnbWFwLmRyb3Bkb3duLnBsYWNlaG9sZGVyJywgdmFsdWU6IDAgfV1cbiAgICApXG4gIClcblxuICBzZWxlY3RlZExpbmtJbmRleCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDApXG4gIHByaXZhdGUgc2VsZWN0ZWRTdHlsZUluZGV4JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoMClcblxuICBzZWxlY3RlZFNvdXJjZUxpbmskID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5jb21wYXRpYmxlTWFwTGlua3MkLFxuICAgIHRoaXMuc2VsZWN0ZWRMaW5rSW5kZXgkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gIF0pLnBpcGUoXG4gICAgdGFwKCgpID0+IHtcbiAgICAgIHRoaXMuZXJyb3IgPSBudWxsXG4gICAgfSksXG4gICAgbWFwKChbbGlua3MsIGluZGV4XSkgPT4ge1xuICAgICAgdGhpcy5saW5rU2VsZWN0ZWQuZW1pdChsaW5rc1tpbmRleF0pXG4gICAgICByZXR1cm4gbGlua3NbaW5kZXhdXG4gICAgfSlcbiAgKVxuXG4gIHN0eWxlTGlua3MkID0gdGhpcy5zZWxlY3RlZFNvdXJjZUxpbmskLnBpcGUoXG4gICAgc3dpdGNoTWFwKChzcmMpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgc3JjICYmXG4gICAgICAgIHNyYy50eXBlID09PSAnc2VydmljZScgJiZcbiAgICAgICAgc3JjLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3RtcydcbiAgICAgICkge1xuICAgICAgICByZXR1cm4gZnJvbShcbiAgICAgICAgICAvLyBXQVJOSU5HOiB3aGVuIHVzaW5nIFwiZ2V0R2VvZGF0YUxpbmtzRnJvbVRtc1wiLCBtYWtlIHN1cmUgdG8gYWRkIGVycm9yIGhhbmRsaW5nIHRvIHByZXZlbnQgdGhlIHJlc3Qgb2YgdGhlIGxvZ2ljIGZyb20gZmFpbGluZ1xuICAgICAgICAgIC8vIHRoaXMgbWF5IGhhcHBlbiB3aGVuIFRNUyBlbmRwb2ludCBpcyBpbiBlcnJvclxuICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2UuZ2V0R2VvZGF0YUxpbmtzRnJvbVRtcyhcbiAgICAgICAgICAgIHNyYyBhcyBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbixcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICAgKVxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgLy8gV2UgbmVlZCB0byBjaGVjayBmb3IgbWFwbGlicmUtc3R5bGUgbGlua3MgYmVjYXVzZSB3aGVuIGEgVE1TIHNlcnZpY2UgaGFzIG5vIHN0eWxlcyxcbiAgICAgICAgICAvLyBnZXRHZW9kYXRhTGlua3NGcm9tVG1zIHJldHVybnMgdGhlIG9yaWdpbmFsIFRNUyBsaW5rLCB3aGljaCBpc24ndCBhIG1hcGxpYnJlLXN0eWxlIGxpbmtcbiAgICAgICAgICBtYXAoXG4gICAgICAgICAgICAobGlua3MpID0+XG4gICAgICAgICAgICAgIGxpbmtzPy5maWx0ZXIoXG4gICAgICAgICAgICAgICAgKGxpbmspID0+XG4gICAgICAgICAgICAgICAgICBsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgICAgICAgICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdtYXBsaWJyZS1zdHlsZSdcbiAgICAgICAgICAgICAgKSB8fCBbXVxuICAgICAgICAgICksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpXG4gICAgICAgICAgICByZXR1cm4gb2Yoc3JjKVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIH1cbiAgICAgIHJldHVybiBvZihbXSlcbiAgICB9KSxcbiAgICB0YXAoKCkgPT4gdGhpcy5zZWxlY3RlZFN0eWxlSW5kZXgkLm5leHQoMCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gIClcblxuICBzdHlsZURyb3Bkb3duQ2hvaWNlcyQgPSB0aGlzLnN0eWxlTGlua3MkLnBpcGUoXG4gICAgbWFwKChsaW5rcykgPT5cbiAgICAgIGxpbmtzLmxlbmd0aFxuICAgICAgICA/IGxpbmtzLm1hcCgobGluaywgaW5kZXgpID0+ICh7XG4gICAgICAgICAgICBsYWJlbDogZ2V0TGlua0xhYmVsKGxpbmspLFxuICAgICAgICAgICAgdmFsdWU6IGluZGV4LFxuICAgICAgICAgIH0pKVxuICAgICAgICA6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbGFiZWw6ICdcXHUwMEEwXFx1MDBBMFxcdTAwQTBcXHUwMEEwJyxcbiAgICAgICAgICAgICAgdmFsdWU6IDAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF1cbiAgICApXG4gIClcblxuICBzZWxlY3RlZExpbmskID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5zZWxlY3RlZFNvdXJjZUxpbmskLFxuICAgIHRoaXMuc3R5bGVMaW5rcyQsXG4gICAgdGhpcy5zZWxlY3RlZFN0eWxlSW5kZXgkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gIF0pLnBpcGUoXG4gICAgbWFwKChbc3JjLCBzdHlsZXMsIHN0eWxlSWR4XSkgPT4gKHN0eWxlcy5sZW5ndGggPyBzdHlsZXNbc3R5bGVJZHhdIDogc3JjKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIGN1cnJlbnRMYXllcnMkID0gY29tYmluZUxhdGVzdChbdGhpcy5zZWxlY3RlZExpbmskLCB0aGlzLmV4Y2x1ZGVXZnMkXSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKFtsaW5rLCBleGNsdWRlV2ZzXSkgPT4ge1xuICAgICAgaWYgKCFsaW5rKSB7XG4gICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgIH1cbiAgICAgIGlmIChleGNsdWRlV2ZzICYmIGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd2ZzJykge1xuICAgICAgICB0aGlzLmhpZGVQcmV2aWV3ID0gdHJ1ZVxuICAgICAgICByZXR1cm4gb2YoW10pXG4gICAgICB9XG4gICAgICB0aGlzLmhpZGVQcmV2aWV3ID0gZmFsc2VcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWVcbiAgICAgIGlmIChsaW5rLmFjY2Vzc1Jlc3RyaWN0ZWQpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVFcnJvcignZGF0YXNldC5lcnJvci5yZXN0cmljdGVkQWNjZXNzJylcbiAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuZ2V0TGF5ZXJGcm9tTGluayhsaW5rKS5waXBlKFxuICAgICAgICBtYXAoKGxheWVyKSA9PiBbbGF5ZXJdKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZSlcbiAgICAgICAgICByZXR1cm4gb2YoW10pXG4gICAgICAgIH0pLFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiAodGhpcy5sb2FkaW5nID0gZmFsc2UpKVxuICAgICAgKVxuICAgIH0pXG4gIClcblxuICBtYXBDb250ZXh0JDogT2JzZXJ2YWJsZTxNYXBDb250ZXh0PiA9IHRoaXMuY3VycmVudExheWVycyQucGlwZShcbiAgICBzd2l0Y2hNYXAoKGxheWVycykgPT5cbiAgICAgIGZyb20oY3JlYXRlVmlld0Zyb21MYXllcihsYXllcnNbMF0pKS5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKG51bGwpKSwgLy8gY291bGQgbm90IHpvb20gb24gdGhlIGxheWVyOiB1c2UgdGhlIHJlY29yZCBleHRlbnRcbiAgICAgICAgbWFwKCh2aWV3KSA9PiAoe1xuICAgICAgICAgIGxheWVycyxcbiAgICAgICAgICB2aWV3LFxuICAgICAgICB9KSksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZXNldFNlbGVjdGlvbigpXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKSxcbiAgICBzdGFydFdpdGgoe1xuICAgICAgbGF5ZXJzOiBbXSxcbiAgICAgIHZpZXc6IG51bGwsXG4gICAgfSksXG4gICAgd2l0aExhdGVzdEZyb20odGhpcy5tZFZpZXdGYWNhZGUubWV0YWRhdGEkKSxcbiAgICBtYXAoKFtjb250ZXh0LCBtZXRhZGF0YV0pID0+IHtcbiAgICAgIGlmIChjb250ZXh0LnZpZXcpIHJldHVybiBjb250ZXh0XG4gICAgICBjb25zdCBleHRlbnQgPSB0aGlzLm1hcFV0aWxzLmdldFJlY29yZEV4dGVudChtZXRhZGF0YSlcbiAgICAgIGNvbnN0IHZpZXcgPSBleHRlbnQgPyB7IGV4dGVudCB9IDogbnVsbFxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uY29udGV4dCxcbiAgICAgICAgdmlldyxcbiAgICAgIH1cbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtZFZpZXdGYWNhZGU6IE1kVmlld0ZhY2FkZSxcbiAgICBwcml2YXRlIG1hcFV0aWxzOiBNYXBVdGlsc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFuZ2VSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHt9XG5cbiAgYXN5bmMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNvbnN0IG1hcCA9IGF3YWl0IHRoaXMubWFwQ29udGFpbmVyLm9wZW5sYXllcnNNYXBcbiAgICBwcmlvcml0aXplUGFnZVNjcm9sbChtYXAuZ2V0SW50ZXJhY3Rpb25zKCkpXG4gIH1cblxuICBvbk1hcEZlYXR1cmVTZWxlY3QoZmVhdHVyZXM6IEZlYXR1cmVbXSk6IHZvaWQge1xuICAgIHRoaXMucmVzZXRTZWxlY3Rpb24oKVxuICAgIHRoaXMuc2VsZWN0aW9uID0gZmVhdHVyZXM/Lmxlbmd0aCA+IDAgJiYgZmVhdHVyZXNbMF1cbiAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgIC8vIEZJWE1FOiByZXN0b3JlIHN0eWxpbmcgb2Ygc2VsZWN0ZWQgZmVhdHVyZVxuICAgICAgLy8gdGhpcy5zZWxlY3Rpb24uc2V0U3R5bGUodGhpcy5zZWxlY3Rpb25TdHlsZSlcbiAgICB9XG4gICAgdGhpcy5jaGFuZ2VSZWYuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICBvblNvdXJjZUxvYWRFcnJvcihlcnJvcjogU291cmNlTG9hZEVycm9yRXZlbnQpIHtcbiAgICBpZiAoZXJyb3IuaHR0cFN0YXR1cyA9PT0gNDAzIHx8IGVycm9yLmh0dHBTdGF0dXMgPT09IDQwMSkge1xuICAgICAgdGhpcy5lcnJvciA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGBkYXRhc2V0LmVycm9yLmZvcmJpZGRlbmApXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgZGF0YXNldC5lcnJvci5odHRwYCwge1xuICAgICAgICBpbmZvOiBlcnJvci5odHRwU3RhdHVzLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICByZXNldFNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24pIHtcbiAgICAgIC8vIEZJWE1FOiByZXN0b3JlIHN0eWxpbmcgb2Ygc2VsZWN0ZWQgZmVhdHVyZVxuICAgICAgLy8gdGhpcy5zZWxlY3Rpb24uc2V0U3R5bGUobnVsbClcbiAgICB9XG4gICAgdGhpcy5zZWxlY3Rpb24gPSBudWxsXG4gIH1cblxuICBnZXRMYXllckZyb21MaW5rKGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSk6IE9ic2VydmFibGU8TWFwQ29udGV4dExheWVyPiB7XG4gICAgaWYgKGxpbmsudHlwZSA9PT0gJ3NlcnZpY2UnICYmIGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd21zJykge1xuICAgICAgcmV0dXJuIG9mKHtcbiAgICAgICAgdXJsOiBsaW5rLnVybC50b1N0cmluZygpLFxuICAgICAgICB0eXBlOiAnd21zJyxcbiAgICAgICAgbmFtZTogbGluay5uYW1lLFxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgbGluay50eXBlID09PSAnc2VydmljZScgJiZcbiAgICAgIGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAndG1zJ1xuICAgICkge1xuICAgICAgLy8gRklYTUU6IGhlcmUgd2UncmUgYXNzdW1pbmcgdGhhdCB0aGUgVE1TIHNlcnZlcyB2ZWN0b3IgdGlsZXMgb25seTsgc2hvdWxkIGJlIGNoZWNrZWQgd2l0aCBvZ2MtY2xpZW50IGZpcnN0XG4gICAgICByZXR1cm4gb2Yoe1xuICAgICAgICB1cmw6IGxpbmsudXJsLnRvU3RyaW5nKCkucmVwbGFjZSgvXFwvPyQvLCAnL3t6fS97eH0ve3l9LnBiZicpLFxuICAgICAgICB0eXBlOiAneHl6JyxcbiAgICAgICAgdGlsZUZvcm1hdDogJ2FwcGxpY2F0aW9uL3ZuZC5tYXBib3gtdmVjdG9yLXRpbGUnLFxuICAgICAgICBuYW1lOiBsaW5rLm5hbWUsXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICBsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdtYXBsaWJyZS1zdHlsZSdcbiAgICApIHtcbiAgICAgIHJldHVybiBvZih7XG4gICAgICAgIHR5cGU6ICdtYXBsaWJyZS1zdHlsZScsXG4gICAgICAgIG5hbWU6IGxpbmsubmFtZSxcbiAgICAgICAgc3R5bGVVcmw6IGxpbmsudXJsLnRvU3RyaW5nKCksXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICBsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3bXRzJ1xuICAgICkge1xuICAgICAgcmV0dXJuIG9mKHtcbiAgICAgICAgdXJsOiBsaW5rLnVybC50b1N0cmluZygpLFxuICAgICAgICB0eXBlOiAnd210cycsXG4gICAgICAgIG5hbWU6IGxpbmsubmFtZSxcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIChsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgICAobGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3ZnMnIHx8XG4gICAgICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdlc3JpUmVzdCcgfHxcbiAgICAgICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ29nY0ZlYXR1cmVzJykpIHx8XG4gICAgICBsaW5rLnR5cGUgPT09ICdkb3dubG9hZCdcbiAgICApIHtcbiAgICAgIGNvbnN0IGNhY2hlQWN0aXZlID0gdHJ1ZSAvLyBUT0RPIGltcGxlbWVudCB3aGV0aGVyIHNob3VsZCBiZSB0cnVlIG9yIGZhbHNlXG4gICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5yZWFkQXNHZW9Kc29uKGxpbmssIGNhY2hlQWN0aXZlKS5waXBlKFxuICAgICAgICBtYXAoKGRhdGEpID0+ICh7XG4gICAgICAgICAgdHlwZTogJ2dlb2pzb24nLFxuICAgICAgICAgIGRhdGEsXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAncHJvdG9jb2wgbm90IHN1cHBvcnRlZCcpXG4gIH1cbiAgaGFuZGxlRXJyb3IoZXJyb3I6IEZldGNoRXJyb3IgfCBFcnJvciB8IHN0cmluZykge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEZldGNoRXJyb3IpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgYGRhdGFzZXQuZXJyb3IuJHtlcnJvci50eXBlfWAsXG4gICAgICAgIHtcbiAgICAgICAgICBpbmZvOiBlcnJvci5pbmZvLFxuICAgICAgICB9XG4gICAgICApXG4gICAgICBjb25zb2xlLndhcm4oZXJyb3IubWVzc2FnZSlcbiAgICB9IGVsc2UgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChlcnJvci5tZXNzYWdlKVxuICAgICAgY29uc29sZS53YXJuKGVycm9yLnN0YWNrIHx8IGVycm9yKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZXJyb3IpXG4gICAgICBjb25zb2xlLndhcm4oZXJyb3IpXG4gICAgfVxuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXG4gICAgdGhpcy5jaGFuZ2VSZWYuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsIGZsZXggZmxleC1jb2wgZ2FwLVsxM3B4XVwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC00IHB5LTQgcHgtNSBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWNvbG9yLWJvcmRlciByb3VuZGVkLWxnIG10LTZcIlxuICA+XG4gICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICAqbmdJZj1cImRpc3BsYXlTb3VyY2VcIlxuICAgICAgY2xhc3M9XCJ3LWZ1bGwgbWQ6ZmxleC0xIG1kOm1pbi13LTBcIlxuICAgICAgZXh0cmFCdG5DbGFzcz1cImZvbnQtc2FucyBmb250LWJvbGRcIlxuICAgICAgW3RpdGxlXT1cIidtYXAuc2VsZWN0LmxheWVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbY2hvaWNlc109XCJkcm9wZG93bkNob2ljZXMkIHwgYXN5bmNcIlxuICAgICAgKHNlbGVjdFZhbHVlKT1cInNlbGVjdExpbmtUb0Rpc3BsYXkoJGV2ZW50KVwiXG4gICAgPjwvZ24tdWktZHJvcGRvd24tc2VsZWN0b3I+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKHN0eWxlTGlua3MkIHwgYXN5bmMpPy5sZW5ndGggPiAwOyBlbHNlIHN0eWxlRGlzYWJsZWRcIj5cbiAgICAgIDxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICAgICAgICBjbGFzcz1cInctZnVsbCBtZDpmbGV4LTEgbWQ6bWluLXctMFwiXG4gICAgICAgIGV4dHJhQnRuQ2xhc3M9XCJmb250LXNhbnMgZm9udC1ib2xkXCJcbiAgICAgICAgW3RpdGxlXT1cIidtYXAuc2VsZWN0LnN0eWxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtjaG9pY2VzXT1cInN0eWxlRHJvcGRvd25DaG9pY2VzJCB8IGFzeW5jXCJcbiAgICAgICAgKHNlbGVjdFZhbHVlKT1cInNlbGVjdFN0eWxlVG9EaXNwbGF5KCRldmVudClcIlxuICAgICAgPjwvZ24tdWktZHJvcGRvd24tc2VsZWN0b3I+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNzdHlsZURpc2FibGVkPlxuICAgICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICAgIGNsYXNzPVwidy1mdWxsIG1kOmZsZXgtMSBtZDptaW4tdy0wIHRleHQtZ3JheS00MDBcIlxuICAgICAgICBleHRyYUJ0bkNsYXNzPVwiZm9udC1zYW5zIGZvbnQtYm9sZCB0ZXh0LWdyYXktNDAwXCJcbiAgICAgICAgW3RpdGxlXT1cIidtYXAuc2VsZWN0LnN0eWxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtjaG9pY2VzXT1cInN0eWxlRHJvcGRvd25DaG9pY2VzJCB8IGFzeW5jXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIlxuICAgICAgPjwvZ24tdWktZHJvcGRvd24tc2VsZWN0b3I+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxkaXYgY2xhc3M9XCJzZWxmLWVuZCBtZDptbC0yXCI+XG4gICAgICA8Z24tdWktZXh0ZXJuYWwtdmlld2VyLWJ1dHRvblxuICAgICAgICBleHRyYUNsYXNzPVwidy1bNDRweF0gaC1bNDRweF1cIlxuICAgICAgICBbbGlua109XCJzZWxlY3RlZExpbmskIHwgYXN5bmNcIlxuICAgICAgPlxuICAgICAgPC9nbi11aS1leHRlcm5hbC12aWV3ZXItYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhpZGVQcmV2aWV3OyBlbHNlIG1hcFZpZXdcIj5cbiAgICA8Z24tdWktcG9wdXAtYWxlcnRcbiAgICAgIHR5cGU9XCJ3YXJuaW5nXCJcbiAgICAgIGljb249XCJtYXRFcnJvck91dGxpbmVPdXRsaW5lXCJcbiAgICAgIGNsYXNzPVwiYmxvY2sgaC0xMiBwLTFcIlxuICAgID5cbiAgICAgIDxzcGFuIHRyYW5zbGF0ZT5yZWNvcmQuZmVhdHVyZS5saW1pdDwvc3Bhbj5cbiAgICA8L2duLXVpLXBvcHVwLWFsZXJ0PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLXRlbXBsYXRlICNtYXBWaWV3PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicmVsYXRpdmUgdy1mdWxsIGgtZnVsbCBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMzAwIHJvdW5kZWQtbGcgb3ZlcmZsb3ctaGlkZGVuXCJcbiAgICA+XG4gICAgICA8Z24tdWktbWFwLWNvbnRhaW5lclxuICAgICAgICAjbWFwQ29udGFpbmVyXG4gICAgICAgIFtjb250ZXh0XT1cIm1hcENvbnRleHQkIHwgYXN5bmNcIlxuICAgICAgICAoZmVhdHVyZXNDbGljayk9XCJvbk1hcEZlYXR1cmVTZWxlY3QoJGV2ZW50KVwiXG4gICAgICAgIChzb3VyY2VMb2FkRXJyb3IpPVwib25Tb3VyY2VMb2FkRXJyb3IoJGV2ZW50KVwiXG4gICAgICA+PC9nbi11aS1tYXAtY29udGFpbmVyPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRvcC1bMWVtXSByaWdodC1bMWVtXSBwLTMgYmctd2hpdGUgYWJzb2x1dGUgb3ZlcmZsb3cteS1hdXRvIG92ZXJmbG93LXgtaGlkZGVuIG1heC1oLTcyIHctNTZcIlxuICAgICAgICBbY2xhc3MuaGlkZGVuXT1cIiFzZWxlY3Rpb25cIlxuICAgICAgPlxuICAgICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICAgdHlwZT1cImxpZ2h0XCJcbiAgICAgICAgICAoYnV0dG9uQ2xpY2spPVwicmVzZXRTZWxlY3Rpb24oKVwiXG4gICAgICAgICAgc3R5bGU9XCJcbiAgICAgICAgICAgIC0tZ24tdWktYnV0dG9uLXBhZGRpbmc6IDBweDtcbiAgICAgICAgICAgIC0tZ24tdWktYnV0dG9uLXdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgLS1nbi11aS1idXR0b24taGVpZ2h0OiAyNHB4O1xuICAgICAgICAgIFwiXG4gICAgICAgICAgZXh0cmFDbGFzcz1cImFic29sdXRlIHJpZ2h0LVswLjVlbV0gbWwtWzhweF0gbXItWzEwcHhdXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1pY29uIG5hbWU9XCJtYXRDbG9zZVwiIGNsYXNzPVwiYWxpZ24tbWlkZGxlIHRleHQtc21cIj48L25nLWljb24+XG4gICAgICAgIDwvZ24tdWktYnV0dG9uPlxuICAgICAgICA8Z24tdWktZmVhdHVyZS1kZXRhaWxcbiAgICAgICAgICBbZmVhdHVyZUNhdGFsb2ddPVwibWRWaWV3RmFjYWRlLmZlYXR1cmVDYXRhbG9nJCB8IGFzeW5jXCJcbiAgICAgICAgICBbZmVhdHVyZV09XCJzZWxlY3Rpb25cIlxuICAgICAgICA+PC9nbi11aS1mZWF0dXJlLWRldGFpbD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidG9wLVsxZW1dIHAtMyBiZy13aGl0ZSBhYnNvbHV0ZSBvdmVyZmxvdy15LWF1dG8gb3ZlcmZsb3cteC1oaWRkZW4gbWF4LWgtNzIgdy01NlwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ3JpZ2h0LVsxZW1dJzogIXNlbGVjdGlvbiwgJ3JpZ2h0LVsxNmVtXSc6IHNlbGVjdGlvbiB9XCJcbiAgICAgICAgW2hpZGRlbl09XCIhc2hvd0xlZ2VuZCB8fCAhbGVnZW5kRXhpc3RzXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBtYi0yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtcHJpbWFyeSBmb250LWJvbGRcIj5MZWdlbmQ8L2Rpdj5cbiAgICAgICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwibGlnaHRcIlxuICAgICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cInRvZ2dsZUxlZ2VuZCgpXCJcbiAgICAgICAgICAgIHN0eWxlPVwiXG4gICAgICAgICAgICAgIC0tZ24tdWktYnV0dG9uLXBhZGRpbmc6IDBweDtcbiAgICAgICAgICAgICAgLS1nbi11aS1idXR0b24td2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgIC0tZ24tdWktYnV0dG9uLWhlaWdodDogMjRweDtcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBleHRyYUNsYXNzPVwibWwtWzhweF0gbXItWzEwcHhdXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctaWNvbiBuYW1lPVwibWF0Q2xvc2VcIiBjbGFzcz1cImFsaWduLW1pZGRsZSB0ZXh0LXNtXCI+PC9uZy1pY29uPlxuICAgICAgICAgIDwvZ24tdWktYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGduLXVpLW1hcC1sZWdlbmRcbiAgICAgICAgICBbY29udGV4dF09XCJtYXBDb250ZXh0JCB8IGFzeW5jXCJcbiAgICAgICAgICAobGVnZW5kU3RhdHVzQ2hhbmdlKT1cIm9uTGVnZW5kU3RhdHVzQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9nbi11aS1tYXAtbGVnZW5kPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgKm5nSWY9XCIhc2hvd0xlZ2VuZCAmJiBsZWdlbmRFeGlzdHMgJiYgIXNlbGVjdGlvblwiXG4gICAgICAgIHR5cGU9XCJvdXRsaW5lXCJcbiAgICAgICAgKGJ1dHRvbkNsaWNrKT1cInRvZ2dsZUxlZ2VuZCgpXCJcbiAgICAgICAgZXh0cmFDbGFzcz1cImFic29sdXRlIHRvcC1bMWVtXSByaWdodC1bMWVtXSByb3VuZGVkIHAtMSB0ZXh0LXhzIGJnLXdoaXRlXCJcbiAgICAgID5cbiAgICAgICAgTGVnZW5kXG4gICAgICA8L2duLXVpLWJ1dHRvbj5cblxuICAgICAgPGduLXVpLWxvYWRpbmctbWFza1xuICAgICAgICAqbmdJZj1cImxvYWRpbmdcIlxuICAgICAgICBjbGFzcz1cImFic29sdXRlIGluc2V0LTBcIlxuICAgICAgICBbbWVzc2FnZV09XCInbWFwLmxvYWRpbmcuZGF0YScgfCB0cmFuc2xhdGVcIlxuICAgICAgPjwvZ24tdWktbG9hZGluZy1tYXNrPlxuICAgICAgPGduLXVpLXBvcHVwLWFsZXJ0XG4gICAgICAgICpuZ0lmPVwiZXJyb3JcIlxuICAgICAgICB0eXBlPVwid2FybmluZ1wiXG4gICAgICAgIGljb249XCJtYXRFcnJvck91dGxpbmVPdXRsaW5lXCJcbiAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBtLTIgaW5zZXQtMFwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIHRyYW5zbGF0ZT57eyBlcnJvciB9fTwvc3Bhbj5cbiAgICAgIDwvZ24tdWktcG9wdXAtYWxlcnQ+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -42,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
42
42
|
}], ctorParameters: () => [{ type: i1.Meta }], propDecorators: { metadata: [{
|
|
43
43
|
type: Input
|
|
44
44
|
}] } });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLW1ldGEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3JlY29yZC9zcmMvbGliL3JlY29yZC1tZXRhL3JlY29yZC1tZXRhLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEdBR04sTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFBOzs7QUFTaEQsTUFBTSxPQUFPLG1CQUFtQjtJQUc5QixZQUFvQixJQUFVO1FBQVYsU0FBSSxHQUFKLElBQUksQ0FBTTtJQUFHLENBQUM7SUFFbEMsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQTtZQUN4RSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDZixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTthQUN6QyxDQUFDLENBQUE7WUFDRixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDekMsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQzt3QkFDZixRQUFRLEVBQUUsVUFBVTt3QkFDcEIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFO3FCQUNqQyxDQUFDLENBQUE7Z0JBQ0osQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFBO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsQ0FBQTtJQUM1QyxDQUFDOytHQTNCVSxtQkFBbUI7bUdBQW5CLG1CQUFtQixvSUFKcEIsRUFBRTs7NEZBSUQsbUJBQW1CO2tCQU4vQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7eUVBRVUsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1ldGEgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJ1xuaW1wb3J0IHsgQ2F0YWxvZ1JlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktcmVjb3JkLW1ldGEnLFxuICB0ZW1wbGF0ZTogJycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBSZWNvcmRNZXRhQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBtZXRhZGF0YTogQ2F0YWxvZ1JlY29yZFxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWV0YTogTWV0YSkge31cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICBpZiAodGhpcy5tZXRhZGF0YT8udGl0bGUpIHtcbiAgICAgIHRoaXMubWV0YS5hZGRUYWcoeyBwcm9wZXJ0eTogJ29nOnRpdGxlJywgY29udGVudDogdGhpcy5tZXRhZGF0YS50aXRsZSB9KVxuICAgICAgdGhpcy5tZXRhLmFkZFRhZyh7XG4gICAgICAgIHByb3BlcnR5OiAnb2c6dXJsJyxcbiAgICAgICAgY29udGVudDogd2luZG93LmxvY2F0aW9uLmhyZWYudG9TdHJpbmcoKSxcbiAgICAgIH0pXG4gICAgICBpZiAodGhpcy5tZXRhZGF0YT8ub3ZlcnZpZXdzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvciAoY29uc3Qgb3ZlcnZpZXcgb2YgdGhpcy5tZXRhZGF0YS5vdmVydmlld3MpIHtcbiAgICAgICAgICB0aGlzLm1ldGEuYWRkVGFnKHtcbiAgICAgICAgICAgIHByb3BlcnR5OiAnb2c6aW1hZ2UnLFxuICAgICAgICAgICAgY29udGVudDogb3ZlcnZpZXcudXJsLnRvU3RyaW5nKCksXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMubWV0YS5yZW1vdmVUYWcoJ3Byb3BlcnR5PVwib2c6aW1hZ2VcIicpXG4gICAgdGhpcy5tZXRhLnJlbW92ZVRhZygncHJvcGVydHk9XCJvZzp1cmxcIicpXG4gICAgdGhpcy5tZXRhLnJlbW92ZVRhZygncHJvcGVydHk9XCJvZzp0aXRsZVwiJylcbiAgfVxufVxuIl19
|
|
@@ -14,6 +14,8 @@ export const closeMetadata = createAction('[Metadata view] close');
|
|
|
14
14
|
Related actions
|
|
15
15
|
*/
|
|
16
16
|
export const setRelated = createAction('[Metadata view] Set related records', props());
|
|
17
|
+
export const setSources = createAction('[Metadata view] Set sources', props());
|
|
18
|
+
export const setSourceOf = createAction('[Metadata view] Set has sources', props());
|
|
17
19
|
/*
|
|
18
20
|
ChartConfig actions
|
|
19
21
|
*/
|
|
@@ -27,4 +29,4 @@ export const addUserFeedbackFailure = createAction('[Metadata view] Add UserFeed
|
|
|
27
29
|
export const loadUserFeedbacks = createAction('[Metadata view] Load UserFeedbacks', props());
|
|
28
30
|
export const loadUserFeedbacksSuccess = createAction('[Metadata view] Load UserFeedbacks Success', props());
|
|
29
31
|
export const loadUserFeedbacksFailure = createAction('[Metadata view] Load UserFeedbacks Failure', props());
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWR2aWV3LmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvcmVjb3JkL3NyYy9saWIvc3RhdGUvbWR2aWV3LmFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFPakQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQzFDLG9DQUFvQyxFQUNwQyxLQUFLLEVBQW9CLENBQzFCLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxZQUFZLENBQy9DLHlDQUF5QyxFQUN6QyxLQUFLLEVBQTBDLENBQ2hELENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxZQUFZLENBQ2pELDRDQUE0QyxFQUM1QyxLQUFLLEVBQTJCLENBQ2pDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxZQUFZLENBQ2pELDRDQUE0QyxFQUM1QyxLQUFLLEVBQStDLENBQ3JELENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxZQUFZLENBQzVDLGlEQUFpRCxFQUNqRCxLQUFLLEVBQStCLENBQ3JDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxZQUFZLENBQ25ELHVEQUF1RCxFQUN2RCxLQUFLLEVBQW9ELENBQzFELENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxZQUFZLENBQ25ELHVEQUF1RCxFQUN2RCxLQUFLLEVBQXNCLENBQzVCLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLHVCQUF1QixDQUFDLENBQUE7QUFFbEU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUNwQyxxQ0FBcUMsRUFDckMsS0FBSyxFQUFnQyxDQUN0QyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FDcEMsNkJBQTZCLEVBQzdCLEtBQUssRUFBZ0MsQ0FDdEMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQ3JDLGlDQUFpQyxFQUNqQyxLQUFLLEVBQWlDLENBQ3ZDLENBQUE7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQ3hDLGtDQUFrQyxFQUNsQyxLQUFLLEVBQThDLENBQ3BELENBQUE7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxZQUFZLENBQ3pDLGtDQUFrQyxFQUNsQyxLQUFLLEVBQWtDLENBQ3hDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxZQUFZLENBQ2hELDBDQUEwQyxFQUMxQyxLQUFLLEVBQTJCLENBQ2pDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxZQUFZLENBQ2hELDBDQUEwQyxFQUMxQyxLQUFLLEVBQStDLENBQ3JELENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxZQUFZLENBQzNDLG9DQUFvQyxFQUNwQyxLQUFLLEVBQTJCLENBQ2pDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxZQUFZLENBQ2xELDRDQUE0QyxFQUM1QyxLQUFLLEVBQXFDLENBQzNDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxZQUFZLENBQ2xELDRDQUE0QyxFQUM1QyxLQUFLLEVBQStDLENBQ3JELENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhdml6Q29uZmlndXJhdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvZGF0YXZpei9kYXRhdml6LWNvbmZpZ3VyYXRpb24ubW9kZWwnXG5pbXBvcnQgeyBjcmVhdGVBY3Rpb24sIHByb3BzIH0gZnJvbSAnQG5ncngvc3RvcmUnXG5pbXBvcnQge1xuICBDYXRhbG9nUmVjb3JkLFxuICBEYXRhc2V0RmVhdHVyZUNhdGFsb2csXG4gIFVzZXJGZWVkYmFjayxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuXG4vKlxuICBNZXRhZGF0YSBhY3Rpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBsb2FkRnVsbE1ldGFkYXRhID0gY3JlYXRlQWN0aW9uKFxuICAnW01ldGFkYXRhIHZpZXddIExvYWQgZnVsbCBtZXRhZGF0YScsXG4gIHByb3BzPHsgdXVpZDogc3RyaW5nIH0+KClcbilcblxuZXhwb3J0IGNvbnN0IHNldEluY29tcGxldGVNZXRhZGF0YSA9IGNyZWF0ZUFjdGlvbihcbiAgJ1tNZXRhZGF0YSB2aWV3XSBTZXQgaW5jb21wbGV0ZSBtZXRhZGF0YScsXG4gIHByb3BzPHsgaW5jb21wbGV0ZTogUGFydGlhbDxDYXRhbG9nUmVjb3JkPiB9PigpXG4pXG5cbmV4cG9ydCBjb25zdCBsb2FkRnVsbE1ldGFkYXRhU3VjY2VzcyA9IGNyZWF0ZUFjdGlvbihcbiAgJ1tNZXRhZGF0YSB2aWV3XSBMb2FkIGZ1bGwgbWV0YWRhdGEgc3VjY2VzcycsXG4gIHByb3BzPHsgZnVsbDogQ2F0YWxvZ1JlY29yZCB9PigpXG4pXG5cbmV4cG9ydCBjb25zdCBsb2FkRnVsbE1ldGFkYXRhRmFpbHVyZSA9IGNyZWF0ZUFjdGlvbihcbiAgJ1tNZXRhZGF0YSB2aWV3XSBMb2FkIGZ1bGwgbWV0YWRhdGEgZmFpbHVyZScsXG4gIHByb3BzPHsgb3RoZXJFcnJvcj86IHN0cmluZzsgbm90Rm91bmQ/OiBib29sZWFuIH0+KClcbilcblxuZXhwb3J0IGNvbnN0IGxvYWRGZWF0dXJlQ2F0YWxvZyA9IGNyZWF0ZUFjdGlvbihcbiAgXCJbTWV0YWRhdGEgdmlld10gTG9hZCBtZXRhZGF0YSdzIGZlYXR1cmUgY2F0YWxvZ1wiLFxuICBwcm9wczx7IG1ldGFkYXRhOiBDYXRhbG9nUmVjb3JkIH0+KClcbilcblxuZXhwb3J0IGNvbnN0IGxvYWRGZWF0dXJlQ2F0YWxvZ1N1Y2Nlc3MgPSBjcmVhdGVBY3Rpb24oXG4gICdbTWV0YWRhdGEgdmlld10gTG9hZCBtZXRhZGF0YSBmZWF0dXJlIGNhdGFsb2cgc3VjY2VzcycsXG4gIHByb3BzPHsgZGF0YXNldENhdGFsb2c6IERhdGFzZXRGZWF0dXJlQ2F0YWxvZyB8IG51bGwgfT4oKVxuKVxuXG5leHBvcnQgY29uc3QgbG9hZEZlYXR1cmVDYXRhbG9nRmFpbHVyZSA9IGNyZWF0ZUFjdGlvbihcbiAgJ1tNZXRhZGF0YSB2aWV3XSBMb2FkIG1ldGFkYXRhIGZlYXR1cmUgY2F0YWxvZyBmYWlsdXJlJyxcbiAgcHJvcHM8eyBlcnJvcj86IHN0cmluZyB9PigpXG4pXG5cbmV4cG9ydCBjb25zdCBjbG9zZU1ldGFkYXRhID0gY3JlYXRlQWN0aW9uKCdbTWV0YWRhdGEgdmlld10gY2xvc2UnKVxuXG4vKlxuICBSZWxhdGVkIGFjdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IHNldFJlbGF0ZWQgPSBjcmVhdGVBY3Rpb24oXG4gICdbTWV0YWRhdGEgdmlld10gU2V0IHJlbGF0ZWQgcmVjb3JkcycsXG4gIHByb3BzPHsgcmVsYXRlZDogQ2F0YWxvZ1JlY29yZFtdIH0+KClcbilcblxuZXhwb3J0IGNvbnN0IHNldFNvdXJjZXMgPSBjcmVhdGVBY3Rpb24oXG4gICdbTWV0YWRhdGEgdmlld10gU2V0IHNvdXJjZXMnLFxuICBwcm9wczx7IHNvdXJjZXM6IENhdGFsb2dSZWNvcmRbXSB9PigpXG4pXG5cbmV4cG9ydCBjb25zdCBzZXRTb3VyY2VPZiA9IGNyZWF0ZUFjdGlvbihcbiAgJ1tNZXRhZGF0YSB2aWV3XSBTZXQgaGFzIHNvdXJjZXMnLFxuICBwcm9wczx7IHNvdXJjZU9mOiBDYXRhbG9nUmVjb3JkW10gfT4oKVxuKVxuXG4vKlxuICBDaGFydENvbmZpZyBhY3Rpb25zXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRDaGFydENvbmZpZyA9IGNyZWF0ZUFjdGlvbihcbiAgJ1tNZXRhZGF0YSB2aWV3XSBTZXQgY2hhcnQgY29uZmlnJyxcbiAgcHJvcHM8eyBjaGFydENvbmZpZzogRGF0YXZpekNvbmZpZ3VyYXRpb25Nb2RlbCB9PigpXG4pXG5cbi8qXG4gIFVzZXIgRmVlZGJhY2tzIGFjdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IGFkZFVzZXJGZWVkYmFjayA9IGNyZWF0ZUFjdGlvbihcbiAgJ1tNZXRhZGF0YSB2aWV3XSBBZGQgVXNlckZlZWRiYWNrJyxcbiAgcHJvcHM8eyB1c2VyRmVlZGJhY2s6IFVzZXJGZWVkYmFjayB9PigpXG4pXG5cbmV4cG9ydCBjb25zdCBhZGRVc2VyRmVlZGJhY2tTdWNjZXNzID0gY3JlYXRlQWN0aW9uKFxuICAnW01ldGFkYXRhIHZpZXddIEFkZCBVc2VyRmVlZGJhY2sgU3VjY2VzcycsXG4gIHByb3BzPHsgZGF0YXNldFV1aWQ6IHN0cmluZyB9PigpXG4pXG5cbmV4cG9ydCBjb25zdCBhZGRVc2VyRmVlZGJhY2tGYWlsdXJlID0gY3JlYXRlQWN0aW9uKFxuICAnW01ldGFkYXRhIHZpZXddIEFkZCBVc2VyRmVlZGJhY2sgRmFpbHVyZScsXG4gIHByb3BzPHsgb3RoZXJFcnJvcj86IHN0cmluZzsgbm90Rm91bmQ/OiBib29sZWFuIH0+KClcbilcblxuZXhwb3J0IGNvbnN0IGxvYWRVc2VyRmVlZGJhY2tzID0gY3JlYXRlQWN0aW9uKFxuICAnW01ldGFkYXRhIHZpZXddIExvYWQgVXNlckZlZWRiYWNrcycsXG4gIHByb3BzPHsgZGF0YXNldFV1aWQ6IHN0cmluZyB9PigpXG4pXG5cbmV4cG9ydCBjb25zdCBsb2FkVXNlckZlZWRiYWNrc1N1Y2Nlc3MgPSBjcmVhdGVBY3Rpb24oXG4gICdbTWV0YWRhdGEgdmlld10gTG9hZCBVc2VyRmVlZGJhY2tzIFN1Y2Nlc3MnLFxuICBwcm9wczx7IHVzZXJGZWVkYmFja3M6IFVzZXJGZWVkYmFja1tdIH0+KClcbilcblxuZXhwb3J0IGNvbnN0IGxvYWRVc2VyRmVlZGJhY2tzRmFpbHVyZSA9IGNyZWF0ZUFjdGlvbihcbiAgJ1tNZXRhZGF0YSB2aWV3XSBMb2FkIFVzZXJGZWVkYmFja3MgRmFpbHVyZScsXG4gIHByb3BzPHsgb3RoZXJFcnJvcj86IHN0cmluZzsgbm90Rm91bmQ/OiBib29sZWFuIH0+KClcbilcbiJdfQ==
|